From 3eefc05406aa9b9be50d62ab40d721d3765e9a27 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 26 Sep 2025 05:51:37 +0300 Subject: [PATCH] open box --- .cproject | 177 + .mxproject | 25 + .project | 32 + .settings/language.settings.xml | 25 + .settings/stm32cubeide.project.prefs | 3 + Core/Inc/main.h | 81 + Core/Inc/stm32f3xx_hal_conf.h | 359 + Core/Inc/stm32f3xx_it.h | 66 + Core/Src/main.c | 277 + Core/Src/stm32f3xx_hal_msp.c | 153 + Core/Src/stm32f3xx_it.c | 203 + Core/Src/syscalls.c | 176 + Core/Src/sysmem.c | 79 + Core/Src/system_stm32f3xx.c | 287 + Core/Startup/startup_stm32f302c8tx.s | 417 + Debug/Core/Src/main.cyclo | 5 + Debug/Core/Src/main.d | 56 + Debug/Core/Src/main.o | Bin 0 -> 879720 bytes Debug/Core/Src/main.su | 5 + Debug/Core/Src/stm32f3xx_hal_msp.cyclo | 4 + Debug/Core/Src/stm32f3xx_hal_msp.d | 56 + Debug/Core/Src/stm32f3xx_hal_msp.o | Bin 0 -> 876208 bytes Debug/Core/Src/stm32f3xx_hal_msp.su | 4 + Debug/Core/Src/stm32f3xx_it.cyclo | 9 + Debug/Core/Src/stm32f3xx_it.d | 58 + Debug/Core/Src/stm32f3xx_it.o | Bin 0 -> 872156 bytes Debug/Core/Src/stm32f3xx_it.su | 9 + 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 -> 76948 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 -> 46620 bytes Debug/Core/Src/sysmem.su | 1 + Debug/Core/Src/system_stm32f3xx.cyclo | 2 + Debug/Core/Src/system_stm32f3xx.d | 55 + Debug/Core/Src/system_stm32f3xx.o | Bin 0 -> 871780 bytes Debug/Core/Src/system_stm32f3xx.su | 2 + Debug/Core/Startup/startup_stm32f302c8tx.d | 2 + Debug/Core/Startup/startup_stm32f302c8tx.o | Bin 0 -> 5744 bytes Debug/Core/Startup/subdir.mk | 27 + .../Src/stm32f3xx_hal.cyclo | 25 + .../STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.d | 56 + .../STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o | Bin 0 -> 883144 bytes .../STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.su | 25 + .../Src/stm32f3xx_hal_cortex.cyclo | 29 + .../Src/stm32f3xx_hal_cortex.d | 56 + .../Src/stm32f3xx_hal_cortex.o | Bin 0 -> 886144 bytes .../Src/stm32f3xx_hal_cortex.su | 29 + .../Src/stm32f3xx_hal_dma.cyclo | 14 + .../Src/stm32f3xx_hal_dma.d | 56 + .../Src/stm32f3xx_hal_dma.o | Bin 0 -> 880200 bytes .../Src/stm32f3xx_hal_dma.su | 14 + .../Src/stm32f3xx_hal_exti.cyclo | 9 + .../Src/stm32f3xx_hal_exti.d | 56 + .../Src/stm32f3xx_hal_exti.o | Bin 0 -> 876656 bytes .../Src/stm32f3xx_hal_exti.su | 9 + .../Src/stm32f3xx_hal_flash.cyclo | 14 + .../Src/stm32f3xx_hal_flash.d | 56 + .../Src/stm32f3xx_hal_flash.o | Bin 0 -> 878472 bytes .../Src/stm32f3xx_hal_flash.su | 14 + .../Src/stm32f3xx_hal_flash_ex.cyclo | 16 + .../Src/stm32f3xx_hal_flash_ex.d | 56 + .../Src/stm32f3xx_hal_flash_ex.o | Bin 0 -> 881580 bytes .../Src/stm32f3xx_hal_flash_ex.su | 16 + .../Src/stm32f3xx_hal_gpio.cyclo | 8 + .../Src/stm32f3xx_hal_gpio.d | 56 + .../Src/stm32f3xx_hal_gpio.o | Bin 0 -> 876464 bytes .../Src/stm32f3xx_hal_gpio.su | 8 + .../Src/stm32f3xx_hal_i2c.cyclo | 81 + .../Src/stm32f3xx_hal_i2c.d | 56 + .../Src/stm32f3xx_hal_i2c.o | Bin 0 -> 948744 bytes .../Src/stm32f3xx_hal_i2c.su | 81 + .../Src/stm32f3xx_hal_i2c_ex.cyclo | 6 + .../Src/stm32f3xx_hal_i2c_ex.d | 56 + .../Src/stm32f3xx_hal_i2c_ex.o | Bin 0 -> 876608 bytes .../Src/stm32f3xx_hal_i2c_ex.su | 6 + .../Src/stm32f3xx_hal_pwr.cyclo | 12 + .../Src/stm32f3xx_hal_pwr.d | 56 + .../Src/stm32f3xx_hal_pwr.o | Bin 0 -> 875016 bytes .../Src/stm32f3xx_hal_pwr.su | 12 + .../Src/stm32f3xx_hal_pwr_ex.cyclo | 5 + .../Src/stm32f3xx_hal_pwr_ex.d | 56 + .../Src/stm32f3xx_hal_pwr_ex.o | Bin 0 -> 871788 bytes .../Src/stm32f3xx_hal_pwr_ex.su | 5 + .../Src/stm32f3xx_hal_rcc.cyclo | 14 + .../Src/stm32f3xx_hal_rcc.d | 56 + .../Src/stm32f3xx_hal_rcc.o | Bin 0 -> 892252 bytes .../Src/stm32f3xx_hal_rcc.su | 14 + .../Src/stm32f3xx_hal_rcc_ex.cyclo | 4 + .../Src/stm32f3xx_hal_rcc_ex.d | 56 + .../Src/stm32f3xx_hal_rcc_ex.o | Bin 0 -> 877112 bytes .../Src/stm32f3xx_hal_rcc_ex.su | 4 + .../Src/stm32f3xx_hal_tim.cyclo | 121 + .../Src/stm32f3xx_hal_tim.d | 56 + .../Src/stm32f3xx_hal_tim.o | Bin 0 -> 968880 bytes .../Src/stm32f3xx_hal_tim.su | 121 + .../Src/stm32f3xx_hal_tim_ex.cyclo | 44 + .../Src/stm32f3xx_hal_tim_ex.d | 56 + .../Src/stm32f3xx_hal_tim_ex.o | Bin 0 -> 908208 bytes .../Src/stm32f3xx_hal_tim_ex.su | 44 + .../STM32F3xx_HAL_Driver/Src/subdir.mk | 69 + Debug/Open_Box.elf | Bin 0 -> 990272 bytes Debug/Open_Box.list | 6601 ++++++++ Debug/Open_Box.map | 3216 ++++ Debug/makefile | 94 + Debug/objects.list | 22 + Debug/objects.mk | 9 + Debug/sources.mk | 28 + .../Device/ST/STM32F3xx/Include/stm32f302x8.h | 12393 ++++++++++++++++ .../Device/ST/STM32F3xx/Include/stm32f3xx.h | 280 + .../ST/STM32F3xx/Include/system_stm32f3xx.h | 104 + Drivers/CMSIS/Device/ST/STM32F3xx/LICENSE.txt | 6 + Drivers/CMSIS/Include/cmsis_armcc.h | 865 ++ Drivers/CMSIS/Include/cmsis_armclang.h | 1869 +++ Drivers/CMSIS/Include/cmsis_compiler.h | 266 + Drivers/CMSIS/Include/cmsis_gcc.h | 2085 +++ Drivers/CMSIS/Include/cmsis_iccarm.h | 935 ++ Drivers/CMSIS/Include/cmsis_version.h | 39 + Drivers/CMSIS/Include/core_armv8mbl.h | 1918 +++ Drivers/CMSIS/Include/core_armv8mml.h | 2927 ++++ Drivers/CMSIS/Include/core_cm0.h | 949 ++ Drivers/CMSIS/Include/core_cm0plus.h | 1083 ++ Drivers/CMSIS/Include/core_cm1.h | 976 ++ Drivers/CMSIS/Include/core_cm23.h | 1993 +++ Drivers/CMSIS/Include/core_cm3.h | 1941 +++ Drivers/CMSIS/Include/core_cm33.h | 3002 ++++ Drivers/CMSIS/Include/core_cm4.h | 2129 +++ Drivers/CMSIS/Include/core_cm7.h | 2671 ++++ Drivers/CMSIS/Include/core_sc000.h | 1022 ++ Drivers/CMSIS/Include/core_sc300.h | 1915 +++ Drivers/CMSIS/Include/mpu_armv7.h | 270 + Drivers/CMSIS/Include/mpu_armv8.h | 333 + Drivers/CMSIS/Include/tz_context.h | 70 + Drivers/CMSIS/LICENSE.txt | 201 + .../Inc/Legacy/stm32_hal_legacy.h | 4360 ++++++ .../STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h | 944 ++ .../Inc/stm32f3xx_hal_cortex.h | 426 + .../Inc/stm32f3xx_hal_def.h | 178 + .../Inc/stm32f3xx_hal_dma.h | 452 + .../Inc/stm32f3xx_hal_dma_ex.h | 272 + .../Inc/stm32f3xx_hal_exti.h | 402 + .../Inc/stm32f3xx_hal_flash.h | 378 + .../Inc/stm32f3xx_hal_flash_ex.h | 472 + .../Inc/stm32f3xx_hal_gpio.h | 323 + .../Inc/stm32f3xx_hal_gpio_ex.h | 1520 ++ .../Inc/stm32f3xx_hal_i2c.h | 838 ++ .../Inc/stm32f3xx_hal_i2c_ex.h | 177 + .../Inc/stm32f3xx_hal_pwr.h | 216 + .../Inc/stm32f3xx_hal_pwr_ex.h | 319 + .../Inc/stm32f3xx_hal_rcc.h | 1737 +++ .../Inc/stm32f3xx_hal_rcc_ex.h | 3824 +++++ .../Inc/stm32f3xx_hal_tim.h | 2567 ++++ .../Inc/stm32f3xx_hal_tim_ex.h | 342 + .../Inc/stm32f3xx_ll_bus.h | 1060 ++ .../Inc/stm32f3xx_ll_cortex.h | 638 + .../Inc/stm32f3xx_ll_dma.h | 1994 +++ .../Inc/stm32f3xx_ll_exti.h | 1381 ++ .../Inc/stm32f3xx_ll_gpio.h | 978 ++ .../Inc/stm32f3xx_ll_pwr.h | 551 + .../Inc/stm32f3xx_ll_rcc.h | 2839 ++++ .../Inc/stm32f3xx_ll_system.h | 1725 +++ .../Inc/stm32f3xx_ll_tim.h | 5087 +++++++ .../Inc/stm32f3xx_ll_utils.h | 280 + Drivers/STM32F3xx_HAL_Driver/LICENSE.txt | 6 + .../STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c | 532 + .../Src/stm32f3xx_hal_cortex.c | 537 + .../Src/stm32f3xx_hal_dma.c | 903 ++ .../Src/stm32f3xx_hal_exti.c | 619 + .../Src/stm32f3xx_hal_flash.c | 692 + .../Src/stm32f3xx_hal_flash_ex.c | 980 ++ .../Src/stm32f3xx_hal_gpio.c | 541 + .../Src/stm32f3xx_hal_i2c.c | 7548 ++++++++++ .../Src/stm32f3xx_hal_i2c_ex.c | 364 + .../Src/stm32f3xx_hal_pwr.c | 460 + .../Src/stm32f3xx_hal_pwr_ex.c | 269 + .../Src/stm32f3xx_hal_rcc.c | 1224 ++ .../Src/stm32f3xx_hal_rcc_ex.c | 1581 ++ .../Src/stm32f3xx_hal_tim.c | 7950 ++++++++++ .../Src/stm32f3xx_hal_tim_ex.c | 2536 ++++ Open_Box Debug.launch | 78 + Open_Box.ioc | 145 + STM32F302C8TX_FLASH.ld | 185 + 185 files changed, 120091 insertions(+) create mode 100644 .cproject create mode 100644 .mxproject create mode 100644 .project create mode 100644 .settings/language.settings.xml create mode 100644 .settings/stm32cubeide.project.prefs create mode 100644 Core/Inc/main.h create mode 100644 Core/Inc/stm32f3xx_hal_conf.h create mode 100644 Core/Inc/stm32f3xx_it.h create mode 100644 Core/Src/main.c create mode 100644 Core/Src/stm32f3xx_hal_msp.c create mode 100644 Core/Src/stm32f3xx_it.c create mode 100644 Core/Src/syscalls.c create mode 100644 Core/Src/sysmem.c create mode 100644 Core/Src/system_stm32f3xx.c create mode 100644 Core/Startup/startup_stm32f302c8tx.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/stm32f3xx_hal_msp.cyclo create mode 100644 Debug/Core/Src/stm32f3xx_hal_msp.d create mode 100644 Debug/Core/Src/stm32f3xx_hal_msp.o create mode 100644 Debug/Core/Src/stm32f3xx_hal_msp.su create mode 100644 Debug/Core/Src/stm32f3xx_it.cyclo create mode 100644 Debug/Core/Src/stm32f3xx_it.d create mode 100644 Debug/Core/Src/stm32f3xx_it.o create mode 100644 Debug/Core/Src/stm32f3xx_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_stm32f3xx.cyclo create mode 100644 Debug/Core/Src/system_stm32f3xx.d create mode 100644 Debug/Core/Src/system_stm32f3xx.o create mode 100644 Debug/Core/Src/system_stm32f3xx.su create mode 100644 Debug/Core/Startup/startup_stm32f302c8tx.d create mode 100644 Debug/Core/Startup/startup_stm32f302c8tx.o create mode 100644 Debug/Core/Startup/subdir.mk create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.cyclo create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.d create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.su create mode 100644 Debug/Drivers/STM32F3xx_HAL_Driver/Src/subdir.mk create mode 100644 Debug/Open_Box.elf create mode 100644 Debug/Open_Box.list create mode 100644 Debug/Open_Box.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/STM32F3xx/Include/stm32f302x8.h create mode 100644 Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h create mode 100644 Drivers/CMSIS/Device/ST/STM32F3xx/Include/system_stm32f3xx.h create mode 100644 Drivers/CMSIS/Device/ST/STM32F3xx/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_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_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_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/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_bus.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_cortex.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_dma.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_exti.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_gpio.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_pwr.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_rcc.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_system.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_tim.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_utils.h create mode 100644 Drivers/STM32F3xx_HAL_Driver/LICENSE.txt create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c create mode 100644 Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c create mode 100644 Open_Box Debug.launch create mode 100644 Open_Box.ioc create mode 100644 STM32F302C8TX_FLASH.ld diff --git a/.cproject b/.cproject new file mode 100644 index 0000000..b27d04b --- /dev/null +++ b/.cproject @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.mxproject b/.mxproject new file mode 100644 index 0000000..94b3623 --- /dev/null +++ b/.mxproject @@ -0,0 +1,25 @@ +[PreviousLibFiles] +LibFiles=Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_tim.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_tim_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_tim.h;Drivers\STM32F3xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_def.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_bus.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_crs.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_system.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_utils.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_exti.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_exti.h;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_tim.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_tim_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_gpio.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_dma.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cortex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_exti.c;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_tim.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_tim_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_tim.h;Drivers\STM32F3xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_def.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_bus.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_crs.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_system.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_utils.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_exti.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_exti.h;Drivers\CMSIS\Device\ST\STM32F3xx\Include\stm32f302x8.h;Drivers\CMSIS\Device\ST\STM32F3xx\Include\stm32f3xx.h;Drivers\CMSIS\Device\ST\STM32F3xx\Include\system_stm32f3xx.h;Drivers\CMSIS\Device\ST\STM32F3xx\Source\Templates\system_stm32f3xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h; + +[PreviousUsedCubeIDEFiles] +SourceFiles=Core\Src\main.c;Core\Src\stm32f3xx_it.c;Core\Src\stm32f3xx_hal_msp.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_tim.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_tim_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_gpio.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_dma.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cortex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_exti.c;Drivers\CMSIS\Device\ST\STM32F3xx\Source\Templates\system_stm32f3xx.c;Core\Src\system_stm32f3xx.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_tim.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_tim_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_gpio.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_dma.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cortex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_exti.c;Drivers\CMSIS\Device\ST\STM32F3xx\Source\Templates\system_stm32f3xx.c;Core\Src\system_stm32f3xx.c;;; +HeaderPath=Drivers\STM32F3xx_HAL_Driver\Inc;Drivers\STM32F3xx_HAL_Driver\Inc\Legacy;Drivers\CMSIS\Device\ST\STM32F3xx\Include;Drivers\CMSIS\Include;Core\Inc; +CDefines=USE_HAL_DRIVER;STM32F302x8;USE_HAL_DRIVER;USE_HAL_DRIVER; + +[PreviousGenFiles] +AdvancedFolderStructure=true +HeaderFileListSize=3 +HeaderFiles#0=..\Core\Inc\stm32f3xx_it.h +HeaderFiles#1=..\Core\Inc\stm32f3xx_hal_conf.h +HeaderFiles#2=..\Core\Inc\main.h +HeaderFolderListSize=1 +HeaderPath#0=..\Core\Inc +HeaderFiles=; +SourceFileListSize=3 +SourceFiles#0=..\Core\Src\stm32f3xx_it.c +SourceFiles#1=..\Core\Src\stm32f3xx_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..682ebf1 --- /dev/null +++ b/.project @@ -0,0 +1,32 @@ + + + Open_Box + + + + + + 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..91d1a0b --- /dev/null +++ b/.settings/language.settings.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs new file mode 100644 index 0000000..101f282 --- /dev/null +++ b/.settings/stm32cubeide.project.prefs @@ -0,0 +1,3 @@ +8DF89ED150041C4CBC7CB9A9CAA90856=DC01E15D9A4C6402F95720CA4A1669D5 +DC22A860405A8BF2F2C095E5B6529F12=DC01E15D9A4C6402F95720CA4A1669D5 +eclipse.preferences.version=1 diff --git a/Core/Inc/main.h b/Core/Inc/main.h new file mode 100644 index 0000000..381e6a2 --- /dev/null +++ b/Core/Inc/main.h @@ -0,0 +1,81 @@ +/* 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 "stm32f3xx_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 */ + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + +/* Exported functions prototypes ---------------------------------------------*/ +void Error_Handler(void); + +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +/* Private defines -----------------------------------------------------------*/ +#define PWM1_Out_Pin GPIO_PIN_1 +#define PWM1_Out_GPIO_Port GPIOA +#define Ctr_Vin2_Pin GPIO_PIN_3 +#define Ctr_Vin2_GPIO_Port GPIOA +#define Sens2_Pin GPIO_PIN_4 +#define Sens2_GPIO_Port GPIOA +#define Sens1_Pin GPIO_PIN_5 +#define Sens1_GPIO_Port GPIOA +#define Ctr_Vin1_Pin GPIO_PIN_6 +#define Ctr_Vin1_GPIO_Port GPIOA + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ diff --git a/Core/Inc/stm32f3xx_hal_conf.h b/Core/Inc/stm32f3xx_hal_conf.h new file mode 100644 index 0000000..7d839b1 --- /dev/null +++ b/Core/Inc/stm32f3xx_hal_conf.h @@ -0,0 +1,359 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f3xx_hal_conf.h + * @brief HAL configuration file. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_CONF_H +#define __STM32F3xx_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_CRYP_MODULE_ENABLED */ +/*#define HAL_CAN_MODULE_ENABLED */ +/*#define HAL_CEC_MODULE_ENABLED */ +/*#define HAL_NAND_MODULE_ENABLED */ +/*#define HAL_NOR_MODULE_ENABLED */ +/*#define HAL_PCCARD_MODULE_ENABLED */ +/*#define HAL_SRAM_MODULE_ENABLED */ +/*#define HAL_HRTIM_MODULE_ENABLED */ +/*#define HAL_OPAMP_MODULE_ENABLED */ +/*#define HAL_SDADC_MODULE_ENABLED */ +/*#define HAL_TSC_MODULE_ENABLED */ +/*#define HAL_COMP_MODULE_ENABLED */ +/*#define HAL_CRC_MODULE_ENABLED */ +/*#define HAL_CRYP_MODULE_ENABLED */ +/*#define HAL_DAC_MODULE_ENABLED */ +/*#define HAL_I2S_MODULE_ENABLED */ +/*#define HAL_IWDG_MODULE_ENABLED */ +/*#define HAL_LCD_MODULE_ENABLED */ +/*#define HAL_LPTIM_MODULE_ENABLED */ +/*#define HAL_RNG_MODULE_ENABLED */ +/*#define HAL_RTC_MODULE_ENABLED */ +/*#define HAL_SPI_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED +/*#define HAL_UART_MODULE_ENABLED */ +/*#define HAL_USART_MODULE_ENABLED */ +/*#define HAL_IRDA_MODULE_ENABLED */ +/*#define HAL_SMARTCARD_MODULE_ENABLED */ +/*#define HAL_SMBUS_MODULE_ENABLED */ +/*#define HAL_WWDG_MODULE_ENABLED */ +/*#define HAL_PCD_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +/* #define HAL_CAN_LEGACY_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 +#define HAL_I2C_MODULE_ENABLED +/* ########################## HSE/HSI 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 ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +/** + * @brief In the following line adjust the External High Speed oscillator (HSE) Startup + * Timeout value + */ +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)100) /*!< 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 ((uint32_t)8000000) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief In the following line adjust the Internal High Speed oscillator (HSI) Startup + * Timeout value + */ +#if !defined (HSI_STARTUP_TIMEOUT) + #define HSI_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for HSI start up */ +#endif /* HSI_STARTUP_TIMEOUT */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE ((uint32_t)40000) +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature. */ +/** + * @brief External Low Speed oscillator (LSE) value. + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768) /*!< Value of the External Low Speed oscillator in Hz */ +#endif /* LSE_VALUE */ + +/** + * @brief Time out for LSE start up value in ms. + */ +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/** + * @brief External clock source for I2S peripheral + * This value is used by the I2S HAL module to compute the I2S clock source + * frequency, this source is inserted directly through I2S_CKIN pad. + * - External clock generated through external PLL component on EVAL 303 (based on MCO or crystal) + * - External clock not generated on EVAL 373 + */ +#if !defined (EXTERNAL_CLOCK_VALUE) + #define EXTERNAL_CLOCK_VALUE ((uint32_t)8000000) /*!< 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 ((uint32_t)3300) /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY ((uint32_t)15) /*!< tick interrupt priority (lowest by default) */ +#define USE_RTOS 0 +#define PREFETCH_ENABLE 1 +#define INSTRUCTION_CACHE_ENABLE 0 +#define DATA_CACHE_ENABLE 0 +#define USE_SPI_CRC 0U + +#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */ +#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */ +#define USE_HAL_COMP_REGISTER_CALLBACKS 0U /* COMP register callback disabled */ +#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */ +#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */ +#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */ +#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U /* SMBUS register callback disabled */ +#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */ +#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */ +#define USE_HAL_PCCARD_REGISTER_CALLBACKS 0U /* PCCARD register callback disabled */ +#define USE_HAL_HRTIM_REGISTER_CALLBACKS 0U /* HRTIM register callback disabled */ +#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */ +#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */ +#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */ +#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */ +#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */ +#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */ +#define USE_HAL_OPAMP_REGISTER_CALLBACKS 0U /* OPAMP register callback disabled */ +#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */ +#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */ +#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */ +#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */ +#define USE_HAL_TSC_REGISTER_CALLBACKS 0U /* TSC register callback disabled */ +#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */ + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "stm32f3xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "stm32f3xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "stm32f3xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED + #include "stm32f3xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "stm32f3xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "stm32f3xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED + #include "stm32f3xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CAN_LEGACY_MODULE_ENABLED + #include "stm32f3xx_hal_can_legacy.h" +#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */ + +#ifdef HAL_CEC_MODULE_ENABLED + #include "stm32f3xx_hal_cec.h" +#endif /* HAL_CEC_MODULE_ENABLED */ + +#ifdef HAL_COMP_MODULE_ENABLED + #include "stm32f3xx_hal_comp.h" +#endif /* HAL_COMP_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "stm32f3xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED + #include "stm32f3xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "stm32f3xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED + #include "stm32f3xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED + #include "stm32f3xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED + #include "stm32f3xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_PCCARD_MODULE_ENABLED + #include "stm32f3xx_hal_pccard.h" +#endif /* HAL_PCCARD_MODULE_ENABLED */ + +#ifdef HAL_HRTIM_MODULE_ENABLED + #include "stm32f3xx_hal_hrtim.h" +#endif /* HAL_HRTIM_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "stm32f3xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED + #include "stm32f3xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED + #include "stm32f3xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "stm32f3xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_OPAMP_MODULE_ENABLED + #include "stm32f3xx_hal_opamp.h" +#endif /* HAL_OPAMP_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED + #include "stm32f3xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "stm32f3xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED + #include "stm32f3xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SDADC_MODULE_ENABLED + #include "stm32f3xx_hal_sdadc.h" +#endif /* HAL_SDADC_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED + #include "stm32f3xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_SMBUS_MODULE_ENABLED + #include "stm32f3xx_hal_smbus.h" +#endif /* HAL_SMBUS_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "stm32f3xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "stm32f3xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_TSC_MODULE_ENABLED + #include "stm32f3xx_hal_tsc.h" +#endif /* HAL_TSC_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "stm32f3xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "stm32f3xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED + #include "stm32f3xx_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 /* __STM32F3xx_HAL_CONF_H */ diff --git a/Core/Inc/stm32f3xx_it.h b/Core/Inc/stm32f3xx_it.h new file mode 100644 index 0000000..7c1f147 --- /dev/null +++ b/Core/Inc/stm32f3xx_it.h @@ -0,0 +1,66 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f3xx_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 __STM32F3xx_IT_H +#define __STM32F3xx_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); +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_IT_H */ diff --git a/Core/Src/main.c b/Core/Src/main.c new file mode 100644 index 0000000..78d8958 --- /dev/null +++ b/Core/Src/main.c @@ -0,0 +1,277 @@ +/* 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 */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +TIM_HandleTypeDef htim2; + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_TIM2_Init(void); +/* USER CODE BEGIN PFP */ + +/* 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_TIM2_Init(); + /* USER CODE BEGIN 2 */ + HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2); + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + if(HAL_GPIO_ReadPin(Sens1_GPIO_Port, Sens1_Pin) == GPIO_PIN_SET) + { + __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 8000); + } + if(HAL_GPIO_ReadPin(Sens2_GPIO_Port, Sens2_Pin) == GPIO_PIN_SET) + { + __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 16000); + } + + HAL_Delay(2000); + + HAL_GPIO_WritePin(Ctr_Vin1_GPIO_Port, Ctr_Vin1_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(Ctr_Vin2_GPIO_Port, Ctr_Vin2_Pin, GPIO_PIN_RESET); + + + + /* 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}; + + /** 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.PLLMUL = RCC_PLL_MUL4; + 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_DIV2; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @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_MasterConfigTypeDef sMasterConfig = {0}; + TIM_OC_InitTypeDef sConfigOC = {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 = 159999; + htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_PWM_Init(&htim2) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + sConfigOC.OCMode = TIM_OCMODE_PWM1; + sConfigOC.Pulse = 8000; + sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM2_Init 2 */ + + /* USER CODE END TIM2_Init 2 */ + HAL_TIM_MspPostInit(&htim2); + +} + +/** + * @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(); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOA, Ctr_Vin2_Pin|Ctr_Vin1_Pin, GPIO_PIN_SET); + + /*Configure GPIO pins : Ctr_Vin2_Pin Ctr_Vin1_Pin */ + GPIO_InitStruct.Pin = Ctr_Vin2_Pin|Ctr_Vin1_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /*Configure GPIO pins : Sens2_Pin Sens1_Pin */ + GPIO_InitStruct.Pin = Sens2_Pin|Sens1_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_PULLDOWN; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + +/* USER CODE BEGIN MX_GPIO_Init_2 */ +/* USER CODE END MX_GPIO_Init_2 */ +} + +/* USER CODE BEGIN 4 */ + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + __disable_irq(); + while (1) + { + } + /* USER CODE END Error_Handler_Debug */ +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ diff --git a/Core/Src/stm32f3xx_hal_msp.c b/Core/Src/stm32f3xx_hal_msp.c new file mode 100644 index 0000000..c4f8762 --- /dev/null +++ b/Core/Src/stm32f3xx_hal_msp.c @@ -0,0 +1,153 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f3xx_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 */ + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + /** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +/** +* @brief TIM_PWM MSP Initialization +* This function configures the hardware resources used in this example +* @param htim_pwm: TIM_PWM handle pointer +* @retval None +*/ +void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm) +{ + if(htim_pwm->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspInit 0 */ + + /* USER CODE END TIM2_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM2_CLK_ENABLE(); + /* USER CODE BEGIN TIM2_MspInit 1 */ + + /* USER CODE END TIM2_MspInit 1 */ + } + +} + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(htim->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspPostInit 0 */ + + /* USER CODE END TIM2_MspPostInit 0 */ + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**TIM2 GPIO Configuration + PA1 ------> TIM2_CH2 + */ + GPIO_InitStruct.Pin = PWM1_Out_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF1_TIM2; + HAL_GPIO_Init(PWM1_Out_GPIO_Port, &GPIO_InitStruct); + + /* USER CODE BEGIN TIM2_MspPostInit 1 */ + + /* USER CODE END TIM2_MspPostInit 1 */ + } + +} +/** +* @brief TIM_PWM MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param htim_pwm: TIM_PWM handle pointer +* @retval None +*/ +void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm) +{ + if(htim_pwm->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspDeInit 0 */ + + /* USER CODE END TIM2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM2_CLK_DISABLE(); + /* USER CODE BEGIN TIM2_MspDeInit 1 */ + + /* USER CODE END TIM2_MspDeInit 1 */ + } + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/Core/Src/stm32f3xx_it.c b/Core/Src/stm32f3xx_it.c new file mode 100644 index 0000000..3beb5b2 --- /dev/null +++ b/Core/Src/stm32f3xx_it.c @@ -0,0 +1,203 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f3xx_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 "stm32f3xx_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 --------------------------------------------------------*/ + +/* 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 Pre-fetch 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 */ +} + +/******************************************************************************/ +/* STM32F3xx 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_stm32f3xx.s). */ +/******************************************************************************/ + +/* 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..d190edf --- /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-2023 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Includes */ +#include +#include +#include +#include +#include +#include +#include +#include + + +/* Variables */ +extern int __io_putchar(int ch) __attribute__((weak)); +extern int __io_getchar(void) __attribute__((weak)); + + +char *__env[1] = { 0 }; +char **environ = __env; + + +/* Functions */ +void initialise_monitor_handles() +{ +} + +int _getpid(void) +{ + return 1; +} + +int _kill(int pid, int sig) +{ + (void)pid; + (void)sig; + errno = EINVAL; + return -1; +} + +void _exit (int status) +{ + _kill(status, -1); + while (1) {} /* Make sure we hang here */ +} + +__attribute__((weak)) int _read(int file, char *ptr, int len) +{ + (void)file; + int DataIdx; + + for (DataIdx = 0; DataIdx < len; DataIdx++) + { + *ptr++ = __io_getchar(); + } + + return len; +} + +__attribute__((weak)) int _write(int file, char *ptr, int len) +{ + (void)file; + int DataIdx; + + for (DataIdx = 0; DataIdx < len; DataIdx++) + { + __io_putchar(*ptr++); + } + return len; +} + +int _close(int file) +{ + (void)file; + return -1; +} + + +int _fstat(int file, struct stat *st) +{ + (void)file; + st->st_mode = S_IFCHR; + return 0; +} + +int _isatty(int file) +{ + (void)file; + return 1; +} + +int _lseek(int file, int ptr, int dir) +{ + (void)file; + (void)ptr; + (void)dir; + return 0; +} + +int _open(char *path, int flags, ...) +{ + (void)path; + (void)flags; + /* Pretend like we always fail */ + return -1; +} + +int _wait(int *status) +{ + (void)status; + errno = ECHILD; + return -1; +} + +int _unlink(char *name) +{ + (void)name; + errno = ENOENT; + return -1; +} + +int _times(struct tms *buf) +{ + (void)buf; + return -1; +} + +int _stat(char *file, struct stat *st) +{ + (void)file; + st->st_mode = S_IFCHR; + return 0; +} + +int _link(char *old, char *new) +{ + (void)old; + (void)new; + errno = EMLINK; + return -1; +} + +int _fork(void) +{ + errno = EAGAIN; + return -1; +} + +int _execve(char *name, char **argv, char **env) +{ + (void)name; + (void)argv; + (void)env; + errno = ENOMEM; + return -1; +} diff --git a/Core/Src/sysmem.c b/Core/Src/sysmem.c new file mode 100644 index 0000000..921ecef --- /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) 2023 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Includes */ +#include +#include + +/** + * Pointer to the current high watermark of the heap usage + */ +static uint8_t *__sbrk_heap_end = NULL; + +/** + * @brief _sbrk() allocates memory to the newlib heap and is used by malloc + * and others from the C library + * + * @verbatim + * ############################################################################ + * # .data # .bss # newlib heap # MSP stack # + * # # # # Reserved by _Min_Stack_Size # + * ############################################################################ + * ^-- RAM start ^-- _end _estack, RAM end --^ + * @endverbatim + * + * This implementation starts allocating at the '_end' linker symbol + * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack + * The implementation considers '_estack' linker symbol to be RAM end + * NOTE: If the MSP stack, at any point during execution, grows larger than the + * reserved size, please increase the '_Min_Stack_Size'. + * + * @param incr Memory size + * @return Pointer to allocated memory + */ +void *_sbrk(ptrdiff_t incr) +{ + extern uint8_t _end; /* Symbol defined in the linker script */ + extern uint8_t _estack; /* Symbol defined in the linker script */ + extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */ + const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size; + const uint8_t *max_heap = (uint8_t *)stack_limit; + uint8_t *prev_heap_end; + + /* Initialize heap end at first call */ + if (NULL == __sbrk_heap_end) + { + __sbrk_heap_end = &_end; + } + + /* Protect heap from growing into the reserved MSP stack */ + if (__sbrk_heap_end + incr > max_heap) + { + errno = ENOMEM; + return (void *)-1; + } + + prev_heap_end = __sbrk_heap_end; + __sbrk_heap_end += incr; + + return (void *)prev_heap_end; +} diff --git a/Core/Src/system_stm32f3xx.c b/Core/Src/system_stm32f3xx.c new file mode 100644 index 0000000..27d9350 --- /dev/null +++ b/Core/Src/system_stm32f3xx.c @@ -0,0 +1,287 @@ +/** + ****************************************************************************** + * @file system_stm32f3xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File. + * + * 1. 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_stm32f3xx.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. + * + * 2. After each device reset the HSI (8 MHz) is used as system clock source. + * Then SystemInit() function is called, in "startup_stm32f3xx.s" file, to + * configure the system clock before to branch to main program. + * + * 3. This file configures the system clock as follows: + *============================================================================= + * Supported STM32F3xx device + *----------------------------------------------------------------------------- + * System Clock source | HSI + *----------------------------------------------------------------------------- + * SYSCLK(Hz) | 8000000 + *----------------------------------------------------------------------------- + * HCLK(Hz) | 8000000 + *----------------------------------------------------------------------------- + * AHB Prescaler | 1 + *----------------------------------------------------------------------------- + * APB2 Prescaler | 1 + *----------------------------------------------------------------------------- + * APB1 Prescaler | 1 + *----------------------------------------------------------------------------- + * USB Clock | DISABLE + *----------------------------------------------------------------------------- + *============================================================================= + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 stm32f3xx_system + * @{ + */ + +/** @addtogroup STM32F3xx_System_Private_Includes + * @{ + */ + +#include "stm32f3xx.h" + +/** + * @} + */ + +/** @addtogroup STM32F3xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F3xx_System_Private_Defines + * @{ + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)8000000) /*!< Default value of the External oscillator in Hz. + This value can be provided and adapted by the user application. */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)8000000) /*!< Default value of the Internal oscillator in Hz. + This value can be provided and adapted by the user application. */ +#endif /* HSI_VALUE */ + +/* 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 STM32F3xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F3xx_System_Private_Variables + * @{ + */ + /* This 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 there is no need to + call the 2 first functions listed above, since SystemCoreClock variable is + updated automatically. + */ +uint32_t SystemCoreClock = 8000000; + +const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; + +/** + * @} + */ + +/** @addtogroup STM32F3xx_System_Private_FunctionPrototypes + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F3xx_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 -------------------------------------*/ +#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 stm32f3xx_hal.h file (default value + * 8 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32f3xx_hal.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. + * + * - 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 = 0, pllmull = 0, pllsource = 0, predivfactor = 0; + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case RCC_CFGR_SWS_HSI: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + case RCC_CFGR_SWS_HSE: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + case RCC_CFGR_SWS_PLL: /* PLL used as system clock */ + /* Get PLL clock source and multiplication factor ----------------------*/ + pllmull = RCC->CFGR & RCC_CFGR_PLLMUL; + pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; + pllmull = ( pllmull >> 18) + 2; + +#if defined (STM32F302xE) || defined (STM32F303xE) || defined (STM32F398xx) + predivfactor = (RCC->CFGR2 & RCC_CFGR2_PREDIV) + 1; + if (pllsource == RCC_CFGR_PLLSRC_HSE_PREDIV) + { + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / predivfactor) * pllmull; + } + else + { + /* HSI oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSI_VALUE / predivfactor) * pllmull; + } +#else + if (pllsource == RCC_CFGR_PLLSRC_HSI_DIV2) + { + /* HSI oscillator clock divided by 2 selected as PLL clock entry */ + SystemCoreClock = (HSI_VALUE >> 1) * pllmull; + } + else + { + predivfactor = (RCC->CFGR2 & RCC_CFGR2_PREDIV) + 1; + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / predivfactor) * pllmull; + } +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + break; + default: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + 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_stm32f302c8tx.s b/Core/Startup/startup_stm32f302c8tx.s new file mode 100644 index 0000000..327d46b --- /dev/null +++ b/Core/Startup/startup_stm32f302c8tx.s @@ -0,0 +1,417 @@ +/** + ****************************************************************************** + * @file startup_stm32f302x8.s + * @author MCD Application Team + * @brief STM32F302x6/STM32F302x8 devices vector table for 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) 2016 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 sp, =_estack /* Atollic update: 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 + .size g_pfnVectors, .-g_pfnVectors + + +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_IRQHandler + .word TAMP_STAMP_IRQHandler + .word RTC_WKUP_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_TSC_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 DMA1_Channel7_IRQHandler + .word ADC1_IRQHandler + .word USB_HP_CAN_TX_IRQHandler + .word USB_LP_CAN_RX0_IRQHandler + .word CAN_RX1_IRQHandler + .word CAN_SCE_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 0 + .word 0 + .word I2C1_EV_IRQHandler + .word I2C1_ER_IRQHandler + .word I2C2_EV_IRQHandler + .word I2C2_ER_IRQHandler + .word 0 + .word SPI2_IRQHandler + .word USART1_IRQHandler + .word USART2_IRQHandler + .word USART3_IRQHandler + .word EXTI15_10_IRQHandler + .word RTC_Alarm_IRQHandler + .word USBWakeUp_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word SPI3_IRQHandler + .word 0 + .word 0 + .word TIM6_DAC_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word COMP2_IRQHandler + .word COMP4_6_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word I2C3_EV_IRQHandler + .word I2C3_ER_IRQHandler + .word USB_HP_IRQHandler + .word USB_LP_IRQHandler + .word USBWakeUp_RMP_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word FPU_IRQHandler + +/******************************************************************************* +* +* 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_IRQHandler + .thumb_set PVD_IRQHandler,Default_Handler + + .weak TAMP_STAMP_IRQHandler + .thumb_set TAMP_STAMP_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_TSC_IRQHandler + .thumb_set EXTI2_TSC_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 DMA1_Channel7_IRQHandler + .thumb_set DMA1_Channel7_IRQHandler,Default_Handler + + .weak ADC1_IRQHandler + .thumb_set ADC1_IRQHandler,Default_Handler + + .weak USB_HP_CAN_TX_IRQHandler + .thumb_set USB_HP_CAN_TX_IRQHandler,Default_Handler + + .weak USB_LP_CAN_RX0_IRQHandler + .thumb_set USB_LP_CAN_RX0_IRQHandler,Default_Handler + + .weak CAN_RX1_IRQHandler + .thumb_set CAN_RX1_IRQHandler,Default_Handler + + .weak CAN_SCE_IRQHandler + .thumb_set CAN_SCE_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 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 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 SPI3_IRQHandler + .thumb_set SPI3_IRQHandler,Default_Handler + + .weak TIM6_DAC_IRQHandler + .thumb_set TIM6_DAC_IRQHandler,Default_Handler + + .weak COMP2_IRQHandler + .thumb_set COMP2_IRQHandler,Default_Handler + + .weak COMP4_6_IRQHandler + .thumb_set COMP4_6_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 USB_HP_IRQHandler + .thumb_set USB_HP_IRQHandler,Default_Handler + + .weak USB_LP_IRQHandler + .thumb_set USB_LP_IRQHandler,Default_Handler + + .weak USBWakeUp_RMP_IRQHandler + .thumb_set USBWakeUp_RMP_IRQHandler,Default_Handler + + .weak FPU_IRQHandler + .thumb_set FPU_IRQHandler,Default_Handler +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Debug/Core/Src/main.cyclo b/Debug/Core/Src/main.cyclo new file mode 100644 index 0000000..87de3ff --- /dev/null +++ b/Debug/Core/Src/main.cyclo @@ -0,0 +1,5 @@ +main.c:66:5:main 3 +main.c:126:6:SystemClock_Config 3 +main.c:165:13:MX_TIM2_Init 4 +main.c:214:13:MX_GPIO_Init 1 +main.c:251:6:Error_Handler 1 diff --git a/Debug/Core/Src/main.d b/Debug/Core/Src/main.d new file mode 100644 index 0000000..5c1e7f6 --- /dev/null +++ b/Debug/Core/Src/main.d @@ -0,0 +1,56 @@ +Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Core/Inc/main.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Core/Src/main.o b/Debug/Core/Src/main.o new file mode 100644 index 0000000000000000000000000000000000000000..7e73e4dda0e28fef2d7d7cc67746e86413e90944 GIT binary patch literal 879720 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 WftR5dc=)7~G71Nq>b=m0 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�p}{*M)&S<;rsp&o)CV}3xJzY9f+vi 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%0DlVi{KiSwZ+#QFI7!2jwsw)g6_Nv|)8pwh4f9 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 z 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

    WSp9$O}2@QyD4=vb>-#w!!ns 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 literal 0 HcmV?d00001 diff --git a/Debug/Core/Src/stm32f3xx_it.su b/Debug/Core/Src/stm32f3xx_it.su new file mode 100644 index 0000000..d71cc44 --- /dev/null +++ b/Debug/Core/Src/stm32f3xx_it.su @@ -0,0 +1,9 @@ +../Core/Src/stm32f3xx_it.c:69:6:NMI_Handler 4 static +../Core/Src/stm32f3xx_it.c:84:6:HardFault_Handler 4 static +../Core/Src/stm32f3xx_it.c:99:6:MemManage_Handler 4 static +../Core/Src/stm32f3xx_it.c:114:6:BusFault_Handler 4 static +../Core/Src/stm32f3xx_it.c:129:6:UsageFault_Handler 4 static +../Core/Src/stm32f3xx_it.c:144:6:SVC_Handler 4 static +../Core/Src/stm32f3xx_it.c:157:6:DebugMon_Handler 4 static +../Core/Src/stm32f3xx_it.c:170:6:PendSV_Handler 4 static +../Core/Src/stm32f3xx_it.c:183:6:SysTick_Handler 8 static diff --git a/Debug/Core/Src/subdir.mk b/Debug/Core/Src/subdir.mk new file mode 100644 index 0000000..e9cac87 --- /dev/null +++ b/Debug/Core/Src/subdir.mk @@ -0,0 +1,42 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (10.3-2021.10) +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../Core/Src/main.c \ +../Core/Src/stm32f3xx_hal_msp.c \ +../Core/Src/stm32f3xx_it.c \ +../Core/Src/syscalls.c \ +../Core/Src/sysmem.c \ +../Core/Src/system_stm32f3xx.c + +OBJS += \ +./Core/Src/main.o \ +./Core/Src/stm32f3xx_hal_msp.o \ +./Core/Src/stm32f3xx_it.o \ +./Core/Src/syscalls.o \ +./Core/Src/sysmem.o \ +./Core/Src/system_stm32f3xx.o + +C_DEPS += \ +./Core/Src/main.d \ +./Core/Src/stm32f3xx_hal_msp.d \ +./Core/Src/stm32f3xx_it.d \ +./Core/Src/syscalls.d \ +./Core/Src/sysmem.d \ +./Core/Src/system_stm32f3xx.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 -DSTM32F302x8 -c -I../Core/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F3xx/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/stm32f3xx_hal_msp.cyclo ./Core/Src/stm32f3xx_hal_msp.d ./Core/Src/stm32f3xx_hal_msp.o ./Core/Src/stm32f3xx_hal_msp.su ./Core/Src/stm32f3xx_it.cyclo ./Core/Src/stm32f3xx_it.d ./Core/Src/stm32f3xx_it.o ./Core/Src/stm32f3xx_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_stm32f3xx.cyclo ./Core/Src/system_stm32f3xx.d ./Core/Src/system_stm32f3xx.o ./Core/Src/system_stm32f3xx.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..7283e9f --- /dev/null +++ b/Debug/Core/Src/syscalls.cyclo @@ -0,0 +1,18 @@ +syscalls.c:44:6:initialise_monitor_handles 1 +syscalls.c:48:5:_getpid 1 +syscalls.c:53:5:_kill 1 +syscalls.c:61:6:_exit 1 +syscalls.c:67:27:_read 2 +syscalls.c:80:27:_write 2 +syscalls.c:92:5:_close 1 +syscalls.c:99:5:_fstat 1 +syscalls.c:106:5:_isatty 1 +syscalls.c:112:5:_lseek 1 +syscalls.c:120:5:_open 1 +syscalls.c:128:5:_wait 1 +syscalls.c:135:5:_unlink 1 +syscalls.c:142:5:_times 1 +syscalls.c:148:5:_stat 1 +syscalls.c:155:5:_link 1 +syscalls.c:163:5:_fork 1 +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..924581182b5575376a69c8d5766020b3f95dafbb GIT binary patch literal 76948 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

    b0Ya8MjeZ2jI-|V#3Y(`)W zE8u$>9^k{~z=4t?2?)@_F=S&82&I!rJkkPn5ryuDqXssM)f&Z}R(XaBbZ2c8m)>Jm zg*K)E4>FpanBJD97WHuTXbkZJ;)RKWvFhSPbuQY#l#%hwR5hMy+Xf~&hXgT3fuEVo z?%#%o+zvM8t4B8#Camgxbyjt6#KMbkxosF2nyxO`+-J20<|5L-$!FYg&~4cR)zihy zzC3cXM_?!bqrKs5HQu9}7~xTIL|#CEW<&r-5$3QWphZ2(Auu32CS(;{AqN!$C&^V>~Dokk4^<0#`~8J9aO{=^>Z!chk@@w-a`U_Vs?pj8ZLe*$LY zNk~J%imH^90S!13Wv>ZWibuNeIt8x%Pr~x;aD}UK;V9=?3hWqdM7pc9KLtKOV2DHp zc`rwE31|^!mW*T1c7Y~d7vs%3SP|h4h5AnLKH5`*!Rrs|y049wXemN0p+IjoI+Lgf z8(W=>`aqxontJOOGnJu=%cc!Qx#MZT<1(nn#d^HAlNrk5y`4m7 z7tA^F_zFpA+nPs;|2w65^fPvCuI?qJGVpt&jaKVp6g5tb-{Tqf;&+e+Q$1Q?OF<8>O57=nk@xS@n1(BWoyoKPp($f^qT~<3^65Jm!!N!iBLJoGcQyuJRCrDi-?C8ggup)$& z7(mvwgz8mMiJ+@XqM3<&AAI6)ttTu7vOrUM;+`HL}{Y2WKxK2)fP|1tp<)$ zlf5|G<%%qlpsx4SCfHbAJX9y!O!AH<6jbpl54BQi<`M7O7u;+gkHXZV&<=r@9`7qp z4qcOi?GouukR`T_Np^IC7aFSIbAwjck9tA(S}_D-0st%~%96nszAThfS@PZ&wX@Dg zP8Pr7dO2rWW1?Hb!GO!Yj8c)(6wHtrD2Wj{9c`OXLPMf-#zj#u2ey3zafW_dj#j@4 z#6;>WG`(A*NiinbX_`3!djH#`6<@w_(LXb&A2%r`q?P-FIZ3P1Q#quWW>8t`xg5J$ zMX?>9%EFtc;FYytmgEyHlSJcW?}a8WSqqL@T{eNRNOrA@LQB{307lQ`Z4#lMwMMF| zt)Dt2&(Y{8pxwz@9!hPp>v%*AHV5*m)hyCb7WSW#cIALDNAw{QWbmIF8G&q z<9RbBDpW~9jwDiX1*l?hL1VBI!0AbIF0VqFA}~jYA_cFX#Kd{3TH6h)SJ0ft!Dw!6 zHg|~gnxk|5byizN>Ra>$IlNE=<6!sYa=BcQL1ngvO4CBNg@Zg8)lW!J7VHkcheZY< zSc;am5D*Z|X*$H}X14n|gSe@~?u(#JE@}H!HEsx@EfWs`?#m>khj_(KM9Jz76X`|$ z+S_p`5wcviUXVx*Mn|=B?Lret#o3KK)wIs7lLeIoEeN5<-CuF-bb1=?~VnheRL zDJaII@mWpCQun~-grY0Tf;+qQ5ZvUl>{bf0uu58d!qr#Lu<+i1n~FF%J_2SLkEPiG zWe_hnPIy-8s}s~-`9x)Co}j4=^8w8E1wiTtp`6sad>?5q;z zpIt^S+_F?8idC<1AT7smnpVvIb{KL9$(oF|Z{*5_-*(smk;m{0A)S;`x8y*=RZncQ zmP7{z;x!spN+P#>cP;^`OVT?-L~4J}m8`Nx^P?0**?J?-hY&_-l;r+K&g5hqw>p5y z#Y9}8Em8kUhmO*mP2W4RHsX~vQ19tN=0IMti*x6VPfyLA36l%4lPg)wv42!Q_&uc0 zmE|j6>bZt*w?Uqiwe9h|ZCEtV<6hUu5I`rd8z*`OMDJ`{VBm;^Mq8c?)8Of%tLGr6 z1qw;KiPft1(Hulv`aD$+x{|*HvyP`>ASi(5UF^R^q$4lrNp$^s>nzEDN-$l_4dZb? zz8Hfr1F(RDv6$~^9dPtm20u%WB*Hi89b9pCgcV4VafuYlQCq`a6PNN!>JT9qlyU~C zjw!db_Ape*X?g0>fEEo3XnngN(K85kg*00`j7Mj`B_VR!*PcxZYx#y%(N>)B4J)Na zfyLhd-cGU6Be{8b!$`d+RR#Y;7X=oN;$0zp z?00&=t&4fboHqjX##Gk;?F)ewloVjEV&ANhO<^gmyj7geX7SWqK8I^7wx}C}u<2zv zf!&AR&i=M;&~XAOUO-_fxzFvG*u#W|Sd~_|APMaY@Q$dtL~PoMJ>^434Q)CN#&MHU z#OluL%~0&fL;vZi%)San4h)awsu&o~9j>Cm26GsZ%hz(}8=x+G#W9_fR1DUI9I$>$ zOmozOFa^&j-8-yHiTf(4@$i0_#`7Y*c+7#>*lU;@5C(htJ3F?gX1o2P`E$MUw3Oh) z)j_oY>k3}MAPvMH6hIEpi|f5n{HViNffvau3Zs08xT-KbS)4+%2y@SuEG|UNtFNS| ziK*pNLWKSj1}vpdW#P4&4B7>o=TVP1&-P+6-*R@IP$rK-WI(QawzHWS6v9>mOEofr zaubu_s0)!f$AKa)!MXiRijvjp_u8>n23z|E_zp$_ z+KV#UZRM|?Z-;%DJl+n!^jwa*vWEEUi_}ufYdkMT*0E^c%@VdlXc)>a3CJqY4DLAu`^%q zpi6Dn?Xrv&3bAxqUkQ+X*r$|j+u4Aw=M_f`#@63z94Ip^9F4t9`m&%S&+=2yN{A)I znF!6~+Afb?m!Pu_=8U*Xf(Ih;G%DWY7@orGZu{~4^9Zgk%OUM716NY-8{H*GGC;~J zZOib5_=3g#ao^aMOMd!Q)&t6hSl-@tr6aYJg!_Pulg_nGk$Fw9fJ0wiO>y!(mdIX; zgO77M2MTv#su$Q1yTEl)DgKU=ga>@I>Hra2$WyX3bOfGU4Ufdro+L&8D7?_PUEu}z zM3eRduX-h2G7(B1DPAb;%TklG88`anq3Gz04k>#?j>$G&n%h`X?#1J-qP8+dN8Il> zG|5dXpi%pUOHzuyCoW5GT4KSRM=f#u@rg^FDH1nVu1NAXLNy-24G7N)&T^p$+nn&G zZl^)T-o>8*aRlLt6~OA+qAKCV^b$)ZNf7WcC85;}-cWz7SVOLtYx&)qk9ZQf`!fgg zz;RzVG4*IpH7jNJ~lEI&_z|B`0N^?(oR5zG33UIR* z3MrKCJf@WXaz@!`$`8w4X*xIn-rHt7ulYDt>DN|X^BMqOvYCyi(d$hq4zvh^v+Km2SMKFl zgbfF*3@8M0cBd$^$-rPssyPF*DbE^#hLHCFL9sUgXo(s zID$@GyS`*u4iJNgsizm$#*!&oUZE|N_R9!it~ix}rRpT~gNLh%RTR)1RgdjCq9_Y% z0OB7da5I){4wMoohxa}YbFUs2JEb;do!h>LMIeW;-x<+jEzKeElWNpwn|)T`&4W>p z{a0bTxZa8&(t)|WfNuse;v>c3BEHgb{p&ikruC4nL+fK83;z67|(dh%5wape;6#-|1gsBTCj)9A;?^vLmJA1YAa%kPY- zr(n@-`#CLlvi?CH!NdMn@hEN-?YQvLVDLP>SGd(Vka)N{l0*tiiFEAYYZ0#q%GE|Y zp4cSaP9x)9%$fN5QgcTtnF9Dw2uHdy!8h`$nE)ajEb~iFSdKl zmO!aj;rZmc3($n?KuOW6LdGIuah#29>Sl=x4f(K?mn<%DO3<{MOM&DMzogVk)hHUk zh64tU0h#fahs5k8mskA-bQ6%>42%mAx_Db|1Gix#)~K%+HYM;od%5u;dE(*fme@zA zU#qK&@b_|(inVs34dM0JIL!V!@M0N}R2PnJTSn;~k0`Qc`+*%>%H<=v_3!?W&7Y}? z23tQhDHr9L7NL@6Pc=>?b_9L~0VWsk z1Vt-G0I!O~XVG$M4$r zN9>FVhLlBW7<7L4qKk|(9^QisN?Wc0y7x_M8;$OifJ9>+NSJMyK$e*7H^gjtwA+wh zr5di^3c`{B(3GNc0{2O$Vf%{T=@`OIJ{~+?a>8GL3w8W2Jh{O1!~0;#U>hd;ezgE^ zdXx@BZKh1f2b-prLdXxiNI+narw2u5HuXPyd2mhX;X%(!7~GReXf5kYLl8a7vR{<+ za8BXjafP7j+v7<=fvLRB^KAm$%NoH__~aXQj))J{%PB<17Df4@79UV5UgrVJ(o>d$ zNaNCZ7gr?KFs*|a2JiOD;PopoxJnZrR4R}7m)+zyGBAny7L_a@-d9(bs9bNW$*-Z=ZzdIBF`vOT zd0eFzE(O$KFK(YI_BjUhuHZl@M*^BlO(H+?r7kjxfiZbB3O@iqGu6p7oN~%SPkEfe z$n})Q@Q+g(xk_K7kenOfxfO7Pf^%-ij@Zsk;sJlT#ptttlo2<00v7wos{ey0{sh*>!!3O7B zDISAXWwhrM5#g1X=Q&odqTLbmJ*N~a@)jbYPJ}jy`&PDS8=b}3=DdrE6Pk9PJ~k1u zR6dvdKSSsGTcPpUoSe*VcKtp&wqlZR0|`GR`_qL2Jt_cDbl9CG z!fXx`6B^j^iCn^qJmM`sm;xF2Xa>KS!ZY2K%tQ;R>Z$hjcxM-|vO4!X%3%_QnwN4P zh8`r}-zoJa81$DAr{EWN`8y4cbitFZuL5j`o>cAvQ2L`qhU&>rp*q0@ z;jzL7oGKpB9{^QFlwt=k((3Aw6KSpf-uCd6#flkDRxFqSaZ%LxBiZLJuTpi85x>g6gsx8z)Z4eZyWpcR41O)}1 z+acy`1ctzD_{8OUe%#Ew(;WzI5`(P?-0M~%Nc)^XukEh5WFYQ=@ZrKX5OafrxJSs_ zJQQnCaOcOw$^PA<-G)%fG5Q8YGFjpI5oa79H2oF}Z+SWy>n@LVC=c(g50-yY!B~aqm)pV0Il|}ct^T-Ak{a3_atOTyNO9q7dQ=3E6DT0b({(M8? z11j9Pvu2WkXSPC5Hou=By#({t-H>EZJTJiL0ktAuIvg8U6r8#cg9IUWX_f?WFYXY| zycy@xHR63W{Zna{7#_&4rlBnXYmHt8)cr#|R}H>{=2FU7OOO@LypsL0s0wBXdsS5; z>L|TwIe<1e`=ZY;S&%!5Rj2Fe9kWTQZ3QaH3QEt?$^;1WFS0bpAjoN=w8ACs8t9!5 z=x^s+{$g=eGX17ugjlRdx19?jbI6|Yvd?TPN@w@kmuq-Tl@Pq=7sxOh$=-D7IZM9I zg3@xy)qQr63U$Ps@;*%ImzJ!U`t?Xaydz}RRz5HR(pEt{aD69OsSH}OiwQ;~2M>V4 zMMp@Ldj5v-Mh?Z{@9N`yR z{CfWL(|uoYh3cx!lR0aR9rh1nOWD^c|8RwfSK*GV@m%2!8}t zuj%+4<+v{K78vl`i)CwNA{@(I#O_Wa{;-EI&d8$p8J}(_3U{MT%HMm zjxoLq+y@{Kszp%bG(AOCz^*0f9~P66cA+GFQaQ3>gwX#vBge0g!^x%lW}G@DZLUaX z#2DhZKPTbbUf{1cm6&c>d726VmX3ch!B=R#00(AC3(WAI9!}#f5F$yKMaZw`I!3Q< z`y3Fec!mI$C^N8(N>>JnHjSqVNWg}s;z`_#DKm+3>`D2t9Mau_+O*p4_)ih)pAT_8 zZ4NfaeOCyuhgL+sA+it1Hz~a#86q}N_@xgBk)d9n;PW8*Cl=CUh{)rs6I8d4LGt1} zOIH$*(#~G}&|)g7x17OGL-y)d>G_lAPzMuM z)w%oHHge#SA@3A%r=l(0cOTRbZ8}CHB|U8dt$^6{{=ObsC56ci>OX*-gGdYv6{P`c zNRd+5t)vuvW`}rHgFi1t>l6H1m}2&55UiN5($mPwqJVTLi68x>xV_!welOGQ4!KxQ zCJQ+Rnr;s5q?Y&FAB!0fktcso3xqmw46Xo;qG=(z_0>LTL};6dyHLoGWx$;`oR2sa z6@fX&wOf51r}SdonmJz(Sz{Pr5patX1iFzN zvOk8;aD2(Un*(>6@g>Vp$&MxS;)}g)oZv5`zk?@#Ti`l%Sg2!A)nTb@ahv>QcB?XH zyUMJRG8~KaB(Wrfp2&y{!(Gnumg}6W+)3VYZF7}7rBrSedf)CY7eSu=$9at}S#)ji zy1@19?QhPIZ(Q?x!OXdttBiZh|9{MlWp@fb!_Jzy z)}8Ixe`@|z-xrswZ|pq4dFgvjLYEp>ybc+eJYL5!%t{2qjfv`Rqik_`_x!+uvK65d z%oEL%gR9Kd<|*c>=4s{`Wot~kPTO}UgpB|AtDR0iXt-B|@u)i+@mgQJPWDeJksU1k z1&x?5KUT^_C}=boOFbzKo>ps~f5&)rn|3mRK}`CChw2nCIE zefj75^3V6>pYO|$`|{(y{1#t+i!Z;`m*48kZ}a81`SKIK{Dd#R!FMgRXKH`gy`Qj74_@pmB<%=Km#Si=9SNP&r`r=pn;>UdP>wNJW zeDRxn@mqZH+kEjmeDOPd@w;&1lF-|CCM-50;#7k|JPf0r-*9$)++ zU;O>P_y>IPM||-Q`Qjh;#XsVUKkkcv+!z0hvBHyL8qJ<~!0OAp9M&1)&Y~1IGFEPI4i7z!?^2C=J z>w@n3mm9l0@fF6+p7=`RE%;_H0z^}hH9U%bK>Cl^rq z3mO|s5rl%+5AMI9QRR*zzuFhC@x?bA5Yxyy|@W3eY5GfqUDyMU0h0`z=D#|bGb zK)*NXxFzu><6Qkcq5@6rI-iiS0`z*9j&DJH4e0ZJS9uF*X`SCB`R5u1Uw%>N6H-&jnC>hA!mgF`qpKZa(2!*d&)R88mo!a4Atf8b9K$p zLbN#-sf*QShw!s{`B;4nPF<#{PKrVBerRNPD2*R;E)I{6)$Ff{)eIGKh5Fb~BvXjQ z>T|J7W3;ZZA(M|p3JrCc+S;sqsJ=t_x>!wJG?uBWkJQJa`MQQeYzPczT|V2`7^$nv zL^Bc9(r`YXFHGQr#>Sd#Q&W9ieYUQ?5NoK|xS3NJ-X|Z#@J4T4Lv6M$ zo5Q#xg?wbFDc4*-l#2{yW4ZcleN2r%GgchtD55pFe0^=KP~TMF6pPkJo9Y_!&5>MF zLv17zZ74M5n^bxIW1XURV%HjKn(Ogn9QS zQ(?@7LcVUOP@l=-6$aHY(VXCe+DJ_<7s*9pxooBmze|{jbL~)}X(%$3&o*S68}j(^lT3ZAE{0XC&(uYv zJSF2C0;Z@Tnu|h=*i_4*HnD5jTHIe~EMVzlYKrXI0Z?_dgzu94#3DlxJkX5i zJoEKK`Anf9uOLu~uh|_e_E2ps4}dL18)DHIVzsfMLUU6?4sQ@g8}n+4>;~#1F}$Ij z10>|~b@=%fG&7VP!cs&V(X&Qujb^n7)JCxWSWOdt;iWN>%{DeSH)4%q`AB^pvm0y3 z*Ecj}n$-Xtpx_b=Wg45BU}fEeda;e_3$+a~4i)l905RTT;)Lo3YHMQkP1p{RLSd+( zp|&ww$O0???adekeiAk7EnQy|$)nanZs`A(cP7wQR96}<9?;+vG!T)90R&WnKJPq4 ziJ;Ixqd^14S-8^!0>~^FK{1FU28|lA!6rBa2Q(Tq=n{iQiPAVmX%fY#0i#9@jxolm z|6TVxkMjDexZTk#*Gesl@9wHyf1SC`IW@deUVm7#DV>cekJG7yf>TaZVmaLH-kXA- ziZ$jGyHc@`&Xg)m#bP|3O=Yt2oE}xJluNm$G(}F~*DX7XaICSUx>HCNnp8pK*;q!Q zDi+h}e6pbWTv3gxmLNSMJFZ}@jOtq^UC?~1c4v~Mq-saJP*Pjdl*uS3Q@MQgh~@+G zstGE-sZ2gyiWf5~rv?4h&73ksN9mD~Qn7jlOCh~bVy8$ns;nhdZJG+%f(mo2sIz49 zN}W`^7>CLn(wdIX#DpDT_cdp zG&bq;EctvUu2wdlvGmR8gq5ajHlda@pWPOBi$+Q%Dwb4>R4J?K6f^QJB+7}VM7)qp zsY+GynQFLn*IoYURAX8xs*lQN)LJHz`qX$OTTo`Ge5f?(yD-&@gbIi*E_MRF%Tg&P zbD1XPULhAND-E)VcvfGdPnYv5hE3J*RNo`i0lCJq%5+JWkWwnETvTSL4CWHLRAkHf ziV6wg;RI<#IHktA)KqLrC3T%rBN>Y;Y-Kh1P1!_AZ~0jT(yjDUCP`mqL)AA^&Zwb@ zrPW60Q;msav7%-_8B^g;R`bodtI@8M%2{2f)aAeC*5>r$0UtGSY1EG^YiAzvwHGb)FQc$spf8d{BRs!+&f6Dg&5LZ7A7 zb*4#|>b$B?vaA5cKkc4V?To1aNKZjl_7-z-IjcZtn=0u_vP`kAzA>)wt2`vs&gQa} zVnXG(qB5S2XEQ23=|o92s#Hz=X8(9jWv-Mf$4W6JRJ;<)WV7i^GO4S4Hkr?>Jg3{YveZ^^hJuv_V?HL zu#BI_?nAD8Ku4cCke9vL>y4T@b=-7&z%lsw1OF)%eGIw!VBENAdT{16ZxqjmR3GD= zS+Kt#!dqtkXOHw;L)G7Z@r*Ai^B3OLm$Rke0nf7$*^cX~{o@@UvOb>dhpYFIc6`+H zM|8H|Ms`N$Z~bkvZNz4@kzs?n=Vmu(n%zcTMjJsHZ6wqX^ZXG>L&EcHWYM7Md+YJr ze*N=l{c5uZz#-6PUTymcun5P&Q{X&!0bB?d!{u-#Tm#p`jc_yE3O|4yG?=h(bb{UC z0q|RJ2pkDV!wGN}JR4pNm%!`c?eJds2z(m81mA(J8mi&@3fvR!2h;FSI2@h`$H7zK zGI$HT8$Ja81m8BQJpB#3t)>0ldQ4$MdenzS*c@ z=QG%UGO94Wi`_*9)6Un+*wgcdVvjWT@VpZCGziCuq&tngTBaNCaC}E!k7Z_DZ7GvK8e`)OKd26xXf(@!@cAi~~s$^ZU zhr;9FXk!P@n}mHPyuhewl{>NTH)ix4%*G@$0SPd!*S)k7JEWuhB-O>sX`GeX>#cGRvs^nrrOsdFL6G&lek&|BH+& zC$?C4luaIR75aW*{9 zsB~EXTN~BBwl^vgos23kHj`xB2db&|8q&lw0@kmt=aDv{1N_Vc_;*}v2%alhR?#Pe=r`zm99&%4JsK;_(csOPOW9_IP;@(oJl zr_CPZdCwaaxR;HCRqu>LJnuc@P(34I{14Bczi$|(>rX4$if6Z$8@>!pn^+1dEMI#Ov68i}8D& z_e-PVaWC7~8ISS2$BZg8zcU`EcpH!RygwUH@VvK-I_`a=;^(*bDqQWX-95?kIv7vZ zb=Npb@ixkDU*l-cJHS}*yo|A^cpJ69t)-u+D&$jD#Aj#d%8!bwzggma)@&J<3+oQVtBemPtWm%-)mX1EgG1=m2o z{7KI*f8rBt-w2PD|{Dz09&=H#>?&}S-S25J3_x)YP(-9#olc13*#^g`@zHD zP&gbO4NrgtI0jCH)8J|FOz6t*h1i$CE8tb|8h8WzIlKej4ex^wLf3D368rb?Irt)c z6}}1IgCD`xl-C`gU*45|et8#Nf2Rlg{c^AEez_Oz{+s1T9v%W+Js5_46g&o=1WVBM zlO|!$fTzQ=;JNT3cqzORE``^@o8WD56}$)D57)uR;0E{%d;z`$Ux$7_P4Ryp`xEH* z*R*}7*46ac4R(fm!Je=WJP@YgL2v*Z43B^#;BjyitibVb3Y-b&zV-(xEa0zw?fzd`~bUE8|pvY1$Kn4pV|$(H|z`JFbn&^ z!=UTe4#z$ko&XDQ44epEzxOokGvR!AA-n`$0bRfN8tfb3&*2^LZg?Mj5IzE*gm$0U z>fv+nMffUo{p$CyKZ31wp|a!bzOu0c{2JU7_JI4s17H%m{`n!;gWxcD6g&o=1WRxn zwENcbUg7?7t;X3#j+yI|}FTj`J>+o&(KKul> zwSK?iu@l@4c7}Vwp0E!*5T@ZlZ~z<(kANef8>fuIuE6nd3Y-b&zh_&)puw%vjH4|ju|;a;#O>;n&k zX?PGE00+Y(;0SmewEN|jpA|SBPJuJw95@f!eQ`T(A-o(ehRfh`cr#oH?}BUKTDTrQ z0XM>D;b!;>+zQ`?AHY_cD7EmlgS)_vunX)4d&9mk4zsWyJPZzn!{O2J1XzG$;6ykL zs@eC$x4rRRy?#B>>jUc@7uM>3mE*g>+Wl@^x(EBa!F}KXP*Wd%{M>l-Q0$@5pQlm& zXvppRX~^ue0{!_I?VpD2&vVE=3;R6i#-D2T{o{9mZr){2?7g8&pBQ!)hQ+fp`?oj# z{zs436p$bOesCZh1~t{;?+-iAmn}bjLU^x&*TS3NFQA(TxEK3D_$b@}H^I&D&+tw7 zH~0zsH^!@O+}{a%PiSvGSo`4Sqhi=@y#HE<6tU^NPwxH&1g4+h@Spa2~t>y7`$!*h}Hh;LXt8KXUUjzh=8X->CCGj=d57 z0lN8^*RbD)e}}D@H)s#tJk0Lcd%<3?FHAr;|I#0OF#HZY8oK*ZZr+b@Eb!Nu@u=JKNVdekx&WA$@=TP{0&p-aF&v%_lzRrQ}x!SON4BK9BJ*#)V^vlvO+@uKGbCZ8D z?xg3v)N!-tBlk9T@VtITH8y7$J9?gfU-WC9=imQSqP%6>yXaZ(cH*8o&Zvw1w~XEN ze5bL8=bdWQ#rsFb-k#^*C*0Tb{QH1?JkP(+*O%uKOFW;caHXtX$oBh{3g1ZVV~q;u zENs93tne?V-T?Yw-*9-_0RSvL z{<{o8MSH6uVDo+h-uAkNB3})x|E@#8)qm?DVCzF%sgq_*RynA5QMs|cf?KRU*<7BDH_BSuuv+;H`t{d#=U0jFvw0`y z*A(Gr_0{=}iSV;9IX|1T3Jaelf%6*|;b-lF^ZR~;pWU}}e&ZwjE(`cgi17Pqz;9xN z-->{r%?X6X_s)RdqzJzU0)Cc8VS0}T{H8?sZ3_5JjqrOp;5RM8@120(^awvs?WW6* z84-TgZaY7l(+rF69s$3Z5q{PWbb5Ae3DdLdg!4Ns!tdaKpWQ1C(;E`-J3Yd0WWdkL zc9`DifZv=5zX<`qGa~$E1^mv8@U!cpOP9G3eisM)&Wi9`67c(Bgx~c6zj+aUcD;7t zJ3GSf-hkiy2tONlI=you{H$N#{LYQ=+Y<1zHYqHB-w61fAK_>H4|iT0lZENo{W|A& zVT50&fZu`$KN~MQy^A9J_7C{|D8ern@LL$+H!$FLafF}sw_NxxiSV=gjLy&QiMaGr zSJ0X$Pu*XC87sfw;>;e}Xnw8PS?g!}Y*E+Ge>Z1)e*3rJXJK-S`+bl$)SlPvGhg>R ztKaHod;PWAvP2Djd(rv_)>kk;vxjOmJr~~zir`mdyT!%VuCYPCA85y}&PjBB)^-K` zF3^tdE%;d*91P#Jf$-(D&xLP+eh2k#lwPM6^sG(=^;QJ*z7^10Qln@0e{H{8Ts#(O zLs0MbfZoB{=fbx_zk}hk_aQC(ZgG0oYeP_PbwJPV$vVBe^gE~*Q^DE8iHT0{H#L4k z#K^7W`hQ@jF9)UvI(hFExIP-jozk!-Vp&kd;UcKn(O(=(%aibLUi%4dEa38 zwgmKs2lU3H=OpGz?|IjVXrrCW7JJSmsP~%m9#>jhJ9Ly*7vGsRdZTyJyBkhKe(vY_ zHGUm6S73F^EzWPgegx0E`uXY{f}MAyR(D?Ohqz-*<8J9$-FJ)Ix2Q&M~Iz3-=g&C3WirZyMg7Ps$4{RoC{`XAM9$j|hS)%qDdG?uE-owcJ=+jg#IJ^WT| z@w_(_7t=dFLa(zfczbV?YYuy@-jcVf?*Nf9pl8rFue)V8>{^mK4X~P$I_ebL?ZN_lAiV5P0x+b z+v|68{UG0_Dsu;@J#dSYt}TDF|GKT+m>}n{@U86e>2@+q?{Hmsti8AJof4t9PI`xF zzgxoe%F-JmC)1m(H7tBP?_FR1u8>|1JvTmYDgF9OFW3(Y3*Q#$nV*GkdPMk+l%BOe zZVA(SM|u`d(>qmbSbVRSp3OtJB}}jUf#=PYlj+UU8m8B!=coG{VR~Dn*B!kdMChfZ z_f01vKlih?{I&T|-!{-r3*YPry-~gD%a4&CZOe}{BJ?InFRlG<2@79Ydak_8m2+77 zU0Y}PmIT80!w9|G>(pBj&^tRq?}0k?RtNOXiO_pWde;89B`p0Omfm@Cvivo+(b`gd z`?lux)dV&#VR|D!-d6rDkaw8g@zVQlvs!rhn=ZYv^0V;Sm?%tdh4fVAnwPNfZIa%8 z@-n?2X${kRRC@KaFKs^AR-P}8(ECH3@$Do%7vCR8=*9N&ybap#mazEFmY!8^i|=Jx z!{Xak1NM6Icecd3OULwn5~0^adi}KDEn(qXBE2DUGQCAw!@_s6^y+C3wn)#l2mcwN zcd7LDcY%_h`&rxmb=3{`^R&~#wa7mw z{WL=FRq6H7ez$~$?o^Y!=I2)$m?8_*yJmay=3lHNn| zv+(^)YgqUyed{aFo7!$G&(}xjoh7|`;`^cW%+JDiV}#x%b?WV`7i^rK&AEidcbW9+ zDSut1=gQwL5qhhnXJc%)xSzH4BPBgoKW>fC`*44K%fyMu&;6{`TdfEC9@0)rzh6Y? z&2OwPzGv^SExxx$=q;AsquTG5u<$LB-WzhV@cmM&%a1iWz#U^6;|}z^kK5U=>f-j< z`zgWk?}8m$`QLsry*sr!z4hqDIDU*KHZQabDvRma`ad;(Z{1g&U#RuljGx;+@YkNV zB2eG#ytX_izhL;f?xgymZ5F=OT3z^TzFxzZ$##q_Z#>X)|6Xp*b1df9Ypv(qs`2@~ p`mIBJysDZ!Ubh3&dffrspw}CL8NEIgxJj=&fn9pt4eZhDUf^c@UwH3jcR6?N zKl89t58w36QRnB+A6}bZuxarwXJz19^EVxO>QQGNvgxQ@=kHq3zGnEttuwy;`YV5X zJ=ig4=}~9){QmX$tRK%r+SksUp=m;=E;#eGT}O5t+4Nw?g%2Y8iem(Xu927;_q!n4 zoS%ZyznEE(MgoDF(D0rKC-~aYjuW{0DE3QD&5WOdhBY%ozd<+D%&b`n>eRTkuO8+& z!58P?wDQOz)44OxB?LnMh33`-W_)fNpeD5b5G45(dOO&&=shOCMuci+&S(WmLp6AA z*CO1V3*y!sxd0D2wI9bRxMd3>B8Oebh|l9R;{|l7d(8aja2*Qb}6m9H@T2Z6u721=f)WbHXX`r=G+TzaGTBb zG3Y(FWq}ks1}<>d9Qv?4GBG2E%DQV0Wp06M_RjcrAA;-Vuu_3*cB4vn;>vO7yC=+B zFgrMJ@w|bB^W8%h-q^Yj366JW&pv5(5QGmN;RNTcnZ0&)%k0bov{UcQV@r?-O+L}# zjTs4Fy1f{>Gem<&1FAsK@)60Q2LmYNoFM0icJTUkX-h=tJYRUAYYF3D1-plwf0w@A zF4sXwu#j{8DxSZvm}lomo(GTTd8VA7m-A~W#$=@C{nFm=N`1b&l=1&@7|%;2hhGSX zBqis)(id-+5?iF#64HZBLffG5hG86XE*5^c zSo&h(5XSuVAf6|LCQnJ46;g*wCASYs%s~mJ`N1rn&li4stMJTP$$yjd@|@#%_xsXE zn`Lx7-oltA!fDsG^ZHcDd9BpperfgXM=^ep+)c~%ere07Q0cEVyt_qOdj8?O&I-j| zke>Q%7h{&S@?4Zr^NO_nwjg6xZsz%2Lh~D%c>M)w??RzxV>4rRzJ=$%NdBFjy#DW6 zo}^(yr^Il#fXdo+17IfdJF*6<#`C>iMwTJtWKcOQm(6lfDbe_^OlZ3r^$R-NH*h zIhEJXOAbFcf!9|EKYTsitl8R3d+g|}~z9=}NFcJvuc`NRgEA5HW8W$Bkkgu=_WFlKx%&tDP#NlVR3 zGD1&~QXUxK-Seb>zbO=cN=i&iZnwz!2+4C)a=S%(^9rGPe~8bzLZ1f7|9e8WXN1#g z+j#drsrm3$UOz1*t`MrOl5zBsQ2QCl?axB1f1bmX8R4HL(woaxGp1Rn_fIksPZO@* zEv>#pa^5CA{!cQ}hlDF05c*#&IlNuyf4j8qPRV(Pl=x{G#XlBl`E%iluI(&q;B=nv zlm7jrwC+Tq!=I$YBP6#=giF^*k1Uk>%#)fIC1ty$c|>Y;h4k_T($aTIeP&5n`=!Uv z+{m(yl$edeT@6yJUrJA1FJm)t3e$kVIG-x*iV6>mEMm-+!oAHhnr=RfG1o~;_e!t5 zB56Q{$28Ubp}&jAUXU*di)P2AK|NqSMcsfrAO|S^lPNwKe~zW>!iKM$k@3@ z;$J?V@pno-zmy(-O(^j0B;$W4^|?oA^)J%W!%kp)D`a4;v#gERbI>of&QoYY3&Th1*)(HwoByDOxNb1h`0C{TW9M*BxGw3Tx zvGlk`gipAObX)l==9at^^$E3{%_rBbCAClf8#$!)?Wk>N^V?bT{#(f#JLXesD6W`31>=mLa3=3Y<6yxF~*wSC3Clm-3O{bUkwX&{*fygP6qdM~hXRk1slFDt4j?uDv0IOhtNl;+D|2zySGZd^malYg2it|- z?H+#$;41fPNLhQ6dkk~D*S(PieZhU6ee^~5OH6W~`zi9s{cfrb@Fn+j*60EEWETEq z_iOCm2i-oh*T1;GYX&^z9?oJPc5gZY@Q8aq%X`#)hM~vYkFc-4;vP%>`MUc(RH^nC z?v>2tl0f@vz@>pJK-bV^f$P{2mj@n@$_E-*i7Ny5l84?MxR~W#6^JYayeCjVzl7c! zIBf&qeSybV>#GB=gTkTr2bPi9uL-Or**_5YJ&LWpIk1?#@oXT#(k}~smXi9a;N=*a zwbuk+;0V1w_$rtwbW`y8O-l2_{+0P1G0c&;@HEIz_Jk5nTcA0Hz8hGFRJA`2JdG|t zQ2x@HwJ))q2mg>PdDPFS5SDC#APlXpAs??Vu>RQ>+3b-^Nb~o&KVs*8(rsX0ec8Q* z_5G$h6VKQF(S0Y9NX_1LNIT*`;C_;#=7a7F?B9D_=PblEYd;=H1RI(rqIZceD-nC&=69wu|d)}ydc;;V~s zZaj#+(fp3L;Jo$~cHa6UzyVTD*AfniGoK?xN7hlQ-Ra)J%pMFphO$Hd5-6<%JQR3{ zB|jWkO;PnoAjNx+2Hv{{@L1qrN~5O&9qhcP1Ly7ld@FEA0PsxkLFWJ4;N57B5M%bu z9O8%E&%trj*LYp;q9Ib5SA#vLAmSftn&ttns_B>oxVq++C4djsd?W<8xn?tKa9hpo zVZf(rn%Gx&)Z7^de6Hq9a_v`Y?q{{0tob2p@U@!wBEZ*ct|t-xttL%+f1~E?1mK%B zZy_b0s(A)X6neVmdPt_ww`#sa0r2gb&#_CMsrfty(z7*xA`5({<~=0nzt_|s4|uL- z9-sScWW}_p6}JX-UN8QX4PE4_iNh0o1q`n?B&q;Va>;80De^Sd>7!yHQUJ- zKdCv1dEQc+PXRt%`v_}&SM85`01ww5!cKdvHp&N{tbGsqLMS!w3U>a{>-fmAziz`h z{3UkDlJi;VrJrMkj{706kH3&Z_=IOUtWRuVZp&^Uo7UCO#CiEsOL1QD1Z%hQELMEg zRaE22TzT3TP1>k+|ID6)5ck^n% z``rjzaE<$GlHvpI2+O|KJ%>Z*gYNrD)$80A7JI$>x1#_ba-U^$Zg8(>c{jQz^0^PY zJID|pbDtz3ZgvOR54X5WNrYS703&a6f3*(qDfdFs^V9C%Sf$UnZKnY4c7MVF^v~`+ z$A&gdT1y|RuqC~2#r;E0> z;dFFrU^P9&wUJpn5EK0q*rGPp#LkY7kX)fRkZUOvKd!H+HzhA^@?U!7s{R6I4|I4n_|3R0Pu6@*%c0A^?A%+Ck zEJsF%|AduTG@m@axSu0q$;a4lC;WvxyKFxDqW)#3iLPbO$KS#pZ+RaZx&D%7oKHTP z>D%X0Q)I46oOjxaeSQ((-`)S} z1pKG_b<*Y+?q4WEe(B!8mjAc=JNCsZ?p_YCSKWVPrd zO&0%9Ah-r_L*O0E^OJ#pW&eIEa3Wj#>A<<00AC2)&02pk@MlKe7uXvHJP~-6r9T-s z=5WAMfq&$4&jo$}0*8JOD3X>x3_N!f;HQDR8T!w_ms$B=2YUFxe+RB*YcC8w5(8Ws z1O=eBgZtQ%?+wl*1#bu*&i=kJxQ^rE6Tu=Yczdw51#oxpouvFf2S3D=j|6XH){h47 z2U|J6uYv2>xdZ2b``Wy@j*A1)_;(u`R=16gl~!lR3Ql3oj`0cnjl^SxeS@XpVksAG zh{hTs6>&TE?%ua^c+dEb!stlD_yqnmeFGk77%A*)DD9spjqSIZ$&%S!O zsvjC1tC!Rb(MUtQJ{E}~`$)sN!+YW}loV-*Mfe|!N21ZjXe1KfAaoXLL`gzLXyv-oZQ?qC1B76n5_`mj1_9zOvF<+Z`kM!mi;x|J!Oke%|>1E;|43 zs_l+FrE|gS^?UMrMjZ#l9x0796gW)BCyK?=P{S@RZsl;5-?w`rH*wzH(m3LvY;#Be zJ%Rwncxh~G&uHZ(%+aw@$tK9<_lyrC0b)&wxUNMeCXhR)G&Vjwy2m6ajP4m4-f40h zE|p3{dvT2thf4X0ePdESiuCH@zecLvqlL4~v-$Dy(ikg4w7Hp=3C8Xn1vKPApX05IQ^(T6jvR_S8`5q|oejp*gEV^G^;fSRXoQ zSIAuwm;(uy%Wc@UE!V%jH=XJ3=*guw52QLX{o8Yy?#@hiIvjDfX1e=xU77B1T`p&@ zbGhYCF4vxJ%XFnWbM2W8xm-Bfgs6dysa!{ErXS&E1hZQ*?YS+PY^Jp{9gZRbHIGHY zD`U<+kap*uQZZcEl^?^6j?VtZ1aj=|>FZ)?$RN?sl87`W8xzUqL^PIYOeRY8@mQjx zF@f|O+S+od{+_N(TW)LH##CRfKiApQwkg-qmrjRcNFb2|-Pz2B?sPk==j2+`8<26f zzdhF$c2H7(d!{cOi+H7POl8sRj!ZY(FHaydG`=s@-JWR9rP|x;_D+l~57!CQpOhO* zG~=8v7MD99Qnb;KsXm8XB$V2QZ0f^N605T_)z&s(+g4W}*%s}MM>{(=m9Hcj8^IdX z6?TIcR*^H7hmEEPk57#4D@=rQImRmF!p9vKW_WE_o(LN{^h;cLefUI^+DnG2^!E3) zXF57^T~fcu{-z;wIC!*sL$1ANfZerwbkELkadh9{?h>9siw};Cqt25U!hVWdvt*5)YFWoVa#S_se`J#VwE@RlH+#QqI%XA036kM0h zoQ9qTFKimg?+@3F55K)MI%F_6u{^wPT{sScnn&6;ra@MHuyvrL?wmaO(SMUMtHL=l zWqx;VaNp1>;mq&~L{2JpRhV5hpgpSm9w*lsUbJnuZ63fKR=1~vbR=s#X*{(d9BXpY z?VAUB`omFqToXw*$jJ<&_SR16tY{>c-qwrf;}MQ7GiJI{$kGhKWSp^msWus~NC!4+ zNcPEzHSX=nX100b5mrQVqy^CfS!GSb58FC$^wu{IY}|yKS(BeOl4D$1VQZ$nek#JEEa2SN(X^0qNqBJ~S$=K|HPU&H!HQifRABD~5aWBPz3L(R|#nJHjo-h!F6<(1W z!(f-&Ys0xQPdJU2O2yM7XW*U{W7#z1VPtZm=%hr^$%$f<62&SKjX>d67S}ZZ3Re~< zi7JYdM3u!!qKe`qQDt!uy}p(~Kvz^|EWf7+Wxam_X^{B^;d6Hl?=FSwB4j#4@`|xT zrszmzs|2|h<(KA^e9bBikr_f@TPjg--T1E2v57EQF5TPL)8EtGlO5>o?diiHkI4WP zRcB;Gw4te`sj(#t>21v`sd-Lto}C)YZ+fZ@R>0Xq7l#-sg35t2J zPi`nbJ^|@F!HEIpl*MYE^C>h_+qSy>FcNfdGvGjj;ubUy&SD@TYweD7Z#Dy!4PJ}v zkM`C#ZA6Fk8zTjYtbDI-46M*>Z(BG)wYGs+}zO6ldn@|R0 zp%Ja=!C-d}QqX2Mx6_@O_7vvC=v_#ZCiIHluw1s4ZLQqQzw#`R#Tu7LQ8z zST*Jo%cSo>nNn55N9xBo|M<~bs4y0d*4fk38*cGPA%-=j)v9xM+MVTr8n1&gw;+PFNt5*bSjx}~QN@h8Ee;sY|9 zFe&QzEPANlnEI40qQ+=LZXU>_`*Yo5jY4;tSxz<$y&r+Lv&5_zZK|Lr%{77K)dHW5g}>R7t-<`D8{i_o`4%ss53^ZmpHXF6;W|$ZPE&7i%)a6 z_VjdCc}_ST>rPXZiTGDJWF@~RmOQG8%rFy|s3G;M_J@V*p>hlW7*U7(4M2EXrtVx0~NV~7iPR+Z_WYj*Ua3%8`(`Z3u3b4@c% zZp&qR2Kw6IV~}|=^^PZ6IR~61T7{D)5kosjXY+|l0qmJWMpxO<0Me?a>BU8sGpJ3~ zv+2E@;+4kf;5-Yq8N6BPuHOFb;TD=^TBz~lfPtvtIOJ3dRp_)fvD;vyd6XjEAmK7y zm`LZsK8{EIFsXsb(%%W0kRC=7D~1RAADO?!s8w6pm9#V@yw)OQ-vKIJkN0XFpzV=shD(6~v-V)#syTyA35zL7!O2axR*CJMA3CfnkbSBpp8 zf?3);B7J>!s?|u7WTzE>zL6<1Fx?GW!SS4G+X%Na6=iQ`jb|u9l01+vL4jW z0VX4Xf-XFbTNG);%}}0`mzRpfuhQO&wH(Y!a|3=4HeIJ2A$Fv}&)blQ#F`=G8XIBh z#hRNN;WBIPaKxw65s$?7H-l)tF{n*fuP+RhI<^7IK}MQ&-3Xz?E6lc8gUjaT&7!L^D~*(3 zo9`){XGg6LVt5>6$co6$7tY={JXWd}#o=n(ewuVzhj4CqWG~h&b7&4~sLs-D>Ys*p z8k)GfC%rA*2HOJbIB+Cl9k36|vrlFq82^}QSB!ib?2|n0Qss%U^K#QvXHvBfkd_05 zx<+)hu)1mi za1vtHfoO7=3_YJxSHZI+`&=}Rzj%fxVWio+0~otO=hdOXoQyI-sJdl$1|s$bjs)FjYcS#C~Yga zen2c>T`BSy80D&|+RCM$1N%g{?o)P&kPzjjKy0+cA}z7zmLw)`&CwWEQ<^%|g-)pi z(n1fRR(&$Z@l2WwBx*k$WT-UN&eU_WE%c3Y>5QGmwt15@Pqd4K_BxJzUgjjf97QI& zrt34#vK!&xudvLNfXZOy5ZTBph3rvXipMfqid{=mbxaGxS8zWZ1;%L)-$Q@jKzd8c zc+jYqqk`U%mI8IC3uXkjS&_C^u6zflV zwt@+&)U)LQNP5$Bvx1$Z*Ojuim^3>GQ%NZI4U4$abrmY4X%z4B=U|cXv z23w~rD6Qe65)uppQD-zTyA1mxqcN&0j|1!jbTcB}CqJ#{tYY=5qQ^I5V~VH^KO3}l zo+fdAn`;`+rd>&SK#e&kpDm z%j+I=yB(nP@$~e<1Hwh~aEnZKxe04SXHP4}CH9qUv)y6#Q&q7(r_|iHVpv8w&g*pX z*tBm=^>x6Y@5tm**)E|!$5^$&T4Aiq8qG#&&PFt6im6eqVrFOiNmwldsgg{#$QnC( z7MtoSxu9!H8Zo}ED*F>;qmOV5os}Kf9S3(sCY|O3RHYP-{%r@IHG>9mxsn@xbP(lo zTmYjCvEvvE)s@o~aC3Qinj=>q@EP*5tdVMkwIiFipqtGqr-%?S>3rg|Kbwm-H#SCd zaf&Bc2Xrr)^*ZjJu*<9FT3aNRz+~%8+T-n_Qzg6pceSSbxB@h|Zx|aC_T=pSut^Zs6xvB5 zr|nii(G0?kMxx-R@}vxtsm98H4lbWfYj%TptLRfN!a(hIbKeK_YA@H-s2_d8oGwx^ z7yQ!Pw{?HDw^>-1(nV3k&uX;ozPVben@3&t&r;g#b3rWw6$@}!odpsH{D zUfL+VwE4k;xWWh8{rlP~gQwnvV`V^%MCXco4 zghD5ADmkse0Lj@n0MSXYg7F8wD{tyVlhCWiFDj26VB=C65*ltwT5tWHc}5i_JzT+_ z(`@lo)qUWhWfy;QC9{?bI2jw@U_dR8gx7$RO@iFezC8ub%d%i zHTL}0Hrdd1p!xE-1=-G3o-m6))9OizK3#-Hd7Ofzp~`5j>ME`E-lE9y!LhS=!?d8R z)Wv;(PVd7_Z{dQHdVr}n`#DqhM_40^etQZc-`JDd`NtiyQ1>nvlDWc_M?Zy8;kowh zFp%N$OLgKQ$;{^;MAn|qi7v${cgc}WC{Vew5eB#EQURzD*^bCE>sc|3iQOheXt*3Utr%AHyH+sl z_)0>B|&Mo-!LhRMX^si5w6ocFU!OABZa;D z))%l_x3s^0B!Tb{!b5w{Nz{+;tuJEgg_zx=`H6bGN4FlHlp-Qz0SlNPE9_d2m)6c{ zD%Fpy9NHVM-x&|r_e8>Yb+5P{FY}@3`XMTx3A`j!KVA|XM;uz4_lGfX3uo2u8_(}7 z;cnqP7^x$9?A5Esi-UW2Q}v%`B~q^yC&nFAUMQIEeFksIVAAUh-m@Y$&DK&#L=e`S ziivgYm+)009!^Diqr#2UI%0gnI1y1l%}yM%g~kX(wTQT>yJ`|*_6l(SHzl#LJZR`t z7;1KoTTXGng2^*e&1PV{VZ9$4p)=hZWlq8UZMps)*a)q73Bh<$#hydJBphSJAZxna>~0AV9us8jSLlI0 z<|a?<$fY*+nKR*>7(Q4~OJ_QfvI&HCEX$X@Itm~x-<$X;x2uF#am$xAZpOrg9USK%5G z!$BuY=pQqs#QRD6@h_{1Q%1IKha=nUx8(*GbA{L5`mrU&zEFaqg{OT^kg3-wWSG!k zkWEt^7^CQ%jeR{^VFuDhq#cco4zvu~+R|8O+=X4~fbm(}o(E<+ zYly@Gr^&keB>R;npe#h^T_i;FHhQ}C^ZtzfvXgX|MAP3bNS zSk|yy3#GmntuKMe;+-k9%2qYgJ1bqv(>vQKU>YTNWel|`UdSFZn@|ny$7Di?9wa$63HmUj5Gg4xX!i9|eMYZsyEQzV}U!|aBbV#5d+kMF$dw1SR2Y=FxmOy#Q1 zLAb|cu|_-#)|0AYnp=fAb z*9_XsJ7u2N5cwUVs!MCF z^HpX>-z8cBPp?mKcVRz~ymmo}COehzFg&!dA$$sj%{Nn8SQ4Ip*LxXDm0DTDBlVQi zbxb(H0VOdS?HG{vg~bFsKa7Ptb#`DK2`~SS51~)aDq%KbZD@ja6b9dJ8+UQ(2w=sZP8G)Sc?bUK`6&J}Y6G7Q%1ZI)I)393vjTTF0`F zZ{auDAR7ugvAL~_>n^f+m;>DtHsoZi&a0Z@dW~7Ffnh@{yW-Uhc=+pRlTGWHo6<2? zXO^v(gUgl*Rm0}}kMQ`uLIHb-OU0#h)S2Op>R6RVZ+V65W^-SA7Z=jVFS7sD+bkmM zy5+fLSy@@~cq51hsr2oDLcq|Ihgq zi|;a|xG@gy_!W|1Ip1bG zuHoC+BJ3dnx%NUwKAxH6;k3?8(e*U=$oAeW$h@NL^#W!h-5Vew$pdDPn3vLNkH|)* z#)R>!i|ESj9v*>DJICyBrjn|jb(A-dR9HIZmDOHs*6ze0z-tQGR0lSar#c5roAhON z70`47l6%clQ@-e$5K^d_h6du@4EZJl))6g|qJC}J*0;U4zXy??K7#@1pZ1BV=~H*s zc9pGql`Q64J<&awmKiJ4;q5K6pk%&!k!r(xEPdFlt+lXPP&Aa9vAwDOwvCl$Ecgv0?;Rn#m?RF*8U^S@x$stc)=V-V*Ok!-{I!4j;V2C*Ujc@T`8$*kG5 z(Xb{^278sgXskuC7qK^xTB~e$m5Vg*saN(HDmJ+SRZ|#ijrvM4PH?;WX6QLp_Esh9 z7h||#YQVqIoLbw?n5wj|-N+)JXED3bay{Lh{7?(&@1v-n6*z=&cUS(L65eRog9Wuc zJ0XWS2Go8q8~4mUpX%MH(`@MQ?LoDhI!Ir1cxBI7wdCU>Z$-rCfU$HW!oo+7VMW0V z9!`faC*3x+i_H7JK?M(p1e3LvKJ0>q0StO@2-s`G{1wZNBHLs+dP*AuZF>XpCgY4f zAsdl>uWgX`{hOjh(9`k2`A|B`g&T|}ODLp9Syhezu`X!!!+mS%f{m^G&`&4U8LL!p z#dbaJ@9yFI67r4{K1DQXA)jwq(tQ>epG@UfXna;a8I>GnD=LPDC^=bMV zV&GLc)r9D2?j1HWc>E}nTp4OZ`q@|8tCw$Ov#W@7vaw$+wP$;UwbR_01%cbc&l^QJ zJp5~UX>6`b!wGGsYKmK2*QT(?4PsygU_ve2rO<7QhlvoXBPmrs1cwc-_C_N(ovDU6qL5mg*s zDHbcJjEP3N4-1zlAH4*YG@pku-!S3Yez8<4a7d!HtfSv95H(3nBL&;_dNV+)qD7=f%&ovYY>k|_+=eF%o^Z}UK{X=5C>x?1Ynr8z_p)sWQH-t zcXzt56$C7SSB0~%Pw|l5ja((3^=m;i5+{4e3`>{y`+(MBrg|-|WD2VqZ3o*oXvJ{N zv|$=*U#T^`%Vt$+z{xtQG0qoBEBYJxd$xh_lpSg8Jgaq8P@A{4pl?A{vlC4ublC3E zsCZq1rHD3|!WWc-Xx{+2#m^V{HeU*l8kU~!4Hq$X#O-RnwmtCHdHXFB+8b9XsOIegJzbRl$35sabHeqNvRgD-hx!H;jqE^a15C_luUZ?4F z#5$*tp>_vf_N6dYWw+W%2lVqaFLxuApO4$xIV-L(#xUo#bu&{k^PZfY+=zLGI)Mkh znGkw|7W*WD!A-f`>MgHN@^x*$9V#rO`!$X6%#l#B`JG!qbZ;|y5B?#(a%Q(P8oM5w zjZ)iSazbjS`uqDbtpoUy7GE46=kBbEH^@zFH38(aIEWPcmyPqXp-YS3*dl9sQ@TlY zq^01!zbHcxYTa&a^JI-ky9i}Xsj(3|nbP=f9$(*uyfs{BR)&mZGIL)44aUH|gQdQ* zW0vMjqIpWEEYel^WHn=*EVIylzEs>VpFE+I%wX3wSxB@&#YBj)*qy|T@z8M8Z!d$iH{tbvRY z*(2!-S^A1fW>5Ou0{C)<5Cm^Ch`SH#>C^iH*ZR}K{da)GxLc7Ly7~aAahLuH(SJs; zgWC)XA(Fcru?M&VJhqWsnC{*N8;wo^Yg`FyX0tHy;5E*4YzLJvgB2^kg3y_+cKyiF zHf+SQp3{hfRmOAtOI>9rz3d2rX@tjElQNrEOrFi)FYC9dcOuFsx(usJSEv&c`5KOs zuZ`q#_mT!J5Tia zP`EwHe&AB3svHR3%-rJ(ou(NjNQvb4_!uIag=bX6qXfk>7>m2gIAfA+v(!q)1#kL8 z#(3E0SvHr}wM;IR^%1*&YZn;>w)!lXfr)G4C8e*Qk@2z(Z;NobXf(fqUE}v@1sQ@-qyyh zip)lQsiz6vI8?G~JEv9~#d|wE^%HgSc5ixHTN=A-D_`|N`L;06)}~kzwdn~d4T&R# zieI}0=}>_AaE%&PRqRR2%Dh8{NeRjlyBBot=uBZUpaj2+}TP14-lvr50Y^uI+K^04#h`|XZ?2-w7WSPiVAxEpjfN$Q zR3{fgF)-xo#-1r&xiBkM`%1HXqaQe=gT?#UF^xNT4+gE8s#t!P{kG+I6g=5b#lU9P z1s1K`chm$&mwX}5o10gBh|_Mv(A~!2rHKZ7_MY!R8ymrL7ZhH)y$2sLjGJAzScgh& zNoBArB2uA@wmcWLlNB&i*;G8FaqY z$Z3`gXsDRB*eyI1Vf-u^a-~h{BZCBe_HpIMnb3U{=^O%f7+8s95jqm7WFlF?WVQjE z=ov>qWsLfkRKa>W54;QuR{StxzZy!|!tEGDiOfx;Aqto@Sq7<*L==^N_!tvc*u^jq z__1R=>%I1`g8(9H>9ku}m*R)b+uGKI>!66j{rowJFn&ZLET6=X4Y1yiNN^i$6dwhu z$0@RW`pvQYpgewN!+9Nt>jd60Z_ZpN%t$?U15@*6ULJU#o0=C+&7CnkZ)R%lTqhOB zjXZyN!f}`5GSrl=?{aGA&ghyIIH>l}n#0_~-G#v;-9_$E?qc^X?lHAX`4bxzhd-jm zdFgfk&7gxHBJmwT{>-lL2s-#Z58n}Vj&kr5B);P)2S0Nn2fv>0;=ca~I*T3re2VW_ zEYIWjOY~T5F9d^Cse=xFZpC*5E2zew7eQb7j-YeAFU0%!u^itKbnweaz9Z=1myUc# z(82GX_>Q2n!WUwGtE$5I$rs-dbRxbG)8kiFd`Hm1?=$(1po1S7@*P13za8T{f)0KY z#&-mrb-obuKdCBwN>#YED%@Tb#xL{uj-Z3z?(rQ#2fvTwJA(2{p5=(3gJ10N9YF`b zb>%yP&X%eka~=NjPx%Nq=ad7u3OaXIgln81SA;{(d_P0u7bMy%!ZVz6D#A0JPgaCy zInPyu4{~M(`~}Q*)>MS&IAayzxy~ml!tP z3!JZ1gb#E6yCQtJQ^$ek9Y=Uqya+l2RpD(_;fls1eMRLFt|$zlioy`a4`%p|Ab-Kb zcLW{$l#%ZUI`}~*-w||X`9iF3r8EgT_@yD=5frIejtF|v#>54kdF7k93Oe|8Dc=!v z4)KL}e|}XMKOf~gf)0MI$#(?#8-%_i=p60~F~1|6?I01UN*R7Ah z_Dfu;t@l>t@%Uo7ylqzYzZ^f|oI8@hj}{Hai^*cVB{~#sDMsRnSYZ&~dMPFF1^rSY zo^OszGFb&`*wqkg7|chajm5?Ue&8sXA8IV*i?R4%sX5*lj|?{E<3o}hGc5iRO!=o+ z8WIhIL&c$FVla{)iX@W7M7}8+Z)(h!B9WoScs>>@$bL3H58hglksFBo*crDk`yAzL45S5r7=<%ibR`Q zB27stq5Q)ya9lSG<%`imsSqD5z(R;LCYt$~pG3U5I9MzU6(ccu#Qug19!TJgw|HZ$ z5HA!#rpQn!GT2;fNe&hxgM~yfSx6>K`^_)Zpa~7dQZkkp!k16+V=2if=u~Qn6!A^@ zNIu#))Ld$o^zaJG@8dMYTNlJWpJ1k+eXi4J3tE}Bnq@^jIDCL`yQPioW)Qn=HgT>0K;k)eU z#+F31Sc(qDlJS-zT9GW|3z0}EQY^-r^6(00VNf>5ibF%F1)5ZdVUewA2wj;lq_Vk#LE^EY zVpEa*R*2;jk--RFU&IT)rQ~1-}bNezP3VS~h`QAW;kuLN)#&K?E_*lpJEHUgj_Yjvj z&cno|j`IZZILG-n;_;62JtFe?DG`aC-UcyDUv=j6z3`~P+X*VtfJ-L zl^V8u+@xX4&utpcDE250C|W+xYj~&Ph~l{7d5Z5+yj1Zj#cLElr1(+Ak1Kvg@lM5i z6(3N1MDa<*Zzw*a_+7;xDZZfiYsHroUs3$4Vh|=V={igCV8z1~7b`ANT&7sB7*}jj zJXtZVxJhxd;#S2o6bp*Oild7A6wg<@Nbz#T_bOhic%$OYinlBBXQ$b|yA{8v_@Lrr zieFWHO7T02&nx~!@fV7}ReV|T&x)@rhJvQt*^2WO7b+gDc%0&L#np;Q#kGnl#SMyG zidn_&iaEuS;#rDkEAnTUNskK@FIK!#@oL5E6mL?zRq<1bpH;j^@qWdJ6dzaoy5hGK zpHuvS;?ERcRQ#RdpA=tHbfHjW{435?T%fo}@mR$Z6jv%n6`K^-E4C?S6nhj06i-*o zD{_9rdW<5vE4C<}te95Zq_|metKu1o1;t^-QN?|V=PO>Mc)8+x6|YsiQSoNQ+ZFFnyj$^$ ziVrICH`LkwuPQ#J_#MUP6@Q}m3&r0mzO49X#n%->aQ!jg*^2WO7b+gDc%0&L#np;Q z#kGnl#SMyGidn_&iaEuS;#rDkE1s)(f#SuAS1Mkuc%9-+inl6$O7XLb_bA@4_>kh` zieFd!mf~}YKT!Oc;){yEQ~Z56&9or)uhGF4ub%(C*>uP0^UD?A>^!kLe|msPM@*FktMA)- zVoELdF*O!EQL$c;D?7}`&QDu4oKfsm+^YCi#gd}T*YW(ghTpDuk>VAKc0LLF7M&^Z(Q6Wc@)O)pmbE@eaj*RH6vamVZvt_Dz@no8_ZM&1b!0yW%FrK1Ev&T#iDo1&VNONqC83ouZWo_PN;_ zUmXVN<@q;T-@n%nHC=iCe~pvr%D3(Pf5iuBrDLa}^~0T};k@E5#Zkp`6s`a55)EIa z_yNTm6>m}el;Yt_q-IGUw+h~h%UV-&4_ z?TzStwB|pZT>X3bYrE!`Q!FW-rFgdDxr&y~7i;)RMXOh?)9_7-w<=nC|8MbguF`&q zE3Q#YDQ;A>{>?2KK0~pnc$VUrqV;QDsNu^M-=}z;;zty%Kl2|oe7E9#iVrD1p=kY> z&uaL2#h)s^sQ7zD>%aV)hC}Lao1?fu@hC;>x2)6fYQ;vyzn6cloc*7|w;xe{{kY;k zD&DPlpW;J`Pbhvv@ma;^6@RMud&O52|EBo&(#zUo|F7xxe_M|?tB0+;IaAxeQ*pZW zIV)%0t?8~&yg~71#ZM|)`SN)UKcM)i;#U=)R(wwJhl(#K{zma-#lI-JI!`fOH@9rHdXQ-7UU!u>++0Cttew0n$o^oGu;bj5b}<0n+`_m#+B$>Hg?T*K&Y#+?Zy|U2}kRbA0L69w6P3zI5vj zkdCs`mdknFbadfd*QVoq(xzLCYuxg77p`N#cfeGUV+qc@6*NJoI-PxN8SYcWy-~VV zQ>0^^>|w9dh+y8FJMmz-yUnGXZMqafv+#e4#5&H?7$9}Hrrcl~nU3`uz`w04E}c&! zKs{j(d$}1A{`_7=e(V$G$9aX#FOO^c3@)8TXgKw#J?y=4MA&QIdlu=!ywJnm8%5Y( z?jca-haisShVgI9y$sj(8C*JlM1D+X4}0$)5aG`+?8|Q{?%Diqz_opbdDP&>>%7pz z-lIJ6=NCbKuOg21J0Aa&@>2%lTHpSIkU)<~`Dwa3Oh$h{*W`C1(oUD(`3FzkUax+d z-;p<#=|_H;F2AdgAL(I_Y3qmlEMKia;_34HEb{BLnE|KEuNV29iTk7<$Ha8`{TcZk zgZuWFF2B2wUl@s)pVc$ud#`_$E(^gdq?J9U%kOFA_h}?zei8gnSHC-uALW!irps^t zhs_veepb&+Rli>#zl6;UI9-1C`SN4>>FT!_M#Y59D!C^HXP5%%lLyFO{`5a!p1f1BUExaKnv{PUO_ zcAO{AkV`r79{(R!wCSF`z;S4+*u$oykA>IvsC#GS__bC2DiZkXcOU9^2;x}3E%>+f z`yQ@gV(bOTv7;(KTNcsBM$Y?@?qTTu(-2R2#Qc~)%S3+O(R+#GaQ~7$Y<>{i73uyJ M^?S)C0@`%{2Po2Q1poj5 literal 0 HcmV?d00001 diff --git a/Debug/Core/Src/sysmem.su b/Debug/Core/Src/sysmem.su new file mode 100644 index 0000000..12d5f17 --- /dev/null +++ b/Debug/Core/Src/sysmem.su @@ -0,0 +1 @@ +../Core/Src/sysmem.c:53:7:_sbrk 32 static diff --git a/Debug/Core/Src/system_stm32f3xx.cyclo b/Debug/Core/Src/system_stm32f3xx.cyclo new file mode 100644 index 0000000..c36a228 --- /dev/null +++ b/Debug/Core/Src/system_stm32f3xx.cyclo @@ -0,0 +1,2 @@ +system_stm32f3xx.c:170:6:SystemInit 1 +system_stm32f3xx.c:219:6:SystemCoreClockUpdate 6 diff --git a/Debug/Core/Src/system_stm32f3xx.d b/Debug/Core/Src/system_stm32f3xx.d new file mode 100644 index 0000000..814ef52 --- /dev/null +++ b/Debug/Core/Src/system_stm32f3xx.d @@ -0,0 +1,55 @@ +Core/Src/system_stm32f3xx.o: ../Core/Src/system_stm32f3xx.c \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Core/Src/system_stm32f3xx.o b/Debug/Core/Src/system_stm32f3xx.o new file mode 100644 index 0000000000000000000000000000000000000000..cc9996823d15868bf8445981ecfbdd68f62bbccd GIT binary patch literal 871780 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%0D=M5Q(GHw}l~OI=2&7DVgg)tV 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

    A85IqxR|K)B;=7tp?(gF>1mQh7Fu@iS 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

    ^RN=|cINKf_#CvJUCZFyx#C;=Ld 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 G4E_&a;hoL^ literal 0 HcmV?d00001 diff --git a/Debug/Core/Src/system_stm32f3xx.su b/Debug/Core/Src/system_stm32f3xx.su new file mode 100644 index 0000000..1925747 --- /dev/null +++ b/Debug/Core/Src/system_stm32f3xx.su @@ -0,0 +1,2 @@ +../Core/Src/system_stm32f3xx.c:170:6:SystemInit 4 static +../Core/Src/system_stm32f3xx.c:219:6:SystemCoreClockUpdate 24 static diff --git a/Debug/Core/Startup/startup_stm32f302c8tx.d b/Debug/Core/Startup/startup_stm32f302c8tx.d new file mode 100644 index 0000000..75c3db3 --- /dev/null +++ b/Debug/Core/Startup/startup_stm32f302c8tx.d @@ -0,0 +1,2 @@ +Core/Startup/startup_stm32f302c8tx.o: \ + ../Core/Startup/startup_stm32f302c8tx.s diff --git a/Debug/Core/Startup/startup_stm32f302c8tx.o b/Debug/Core/Startup/startup_stm32f302c8tx.o new file mode 100644 index 0000000000000000000000000000000000000000..ce417a9f2ff46566daa8edeaaac74592550be51e GIT binary patch literal 5744 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 P9K-J>6#TsnTHyCDyA@X=1@ju>fLMKq-QP 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%0A3#B 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%0DwDAkyVj`6X++Nx5>dM|lTrZ*!L2?(8nMoI^ErU= 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 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.su b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.su new file mode 100644 index 0000000..446ffbd --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.su @@ -0,0 +1,25 @@ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:138:19:HAL_Init 8 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:163:19:HAL_DeInit 8 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:186:13:HAL_MspInit 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:197:13:HAL_MspDeInit 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:220:26:HAL_InitTick 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:278:13:HAL_IncTick 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:289:17:HAL_GetTick 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:298:10:HAL_GetTickPrio 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:307:19:HAL_SetTickFreq 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:340:21:HAL_GetTickFreq 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:356:13:HAL_Delay 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:382:13:HAL_SuspendTick 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:400:13:HAL_ResumeTick 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:411:10:HAL_GetHalVersion 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:420:10:HAL_GetREVID 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:429:10:HAL_GetDEVID 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:438:10:HAL_GetUIDw0 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:447:10:HAL_GetUIDw1 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:456:10:HAL_GetUIDw2 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:465:6:HAL_DBGMCU_EnableDBGSleepMode 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:474:6:HAL_DBGMCU_DisableDBGSleepMode 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:483:6:HAL_DBGMCU_EnableDBGStopMode 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:492:6:HAL_DBGMCU_DisableDBGStopMode 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:501:6:HAL_DBGMCU_EnableDBGStandbyMode 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:510:6:HAL_DBGMCU_DisableDBGStandbyMode 4 static diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.cyclo b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.cyclo new file mode 100644 index 0000000..4b1c2d2 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.cyclo @@ -0,0 +1,29 @@ +core_cm4.h:1657:22:__NVIC_SetPriorityGrouping 1 +core_cm4.h:1676:26:__NVIC_GetPriorityGrouping 1 +core_cm4.h:1688:22:__NVIC_EnableIRQ 2 +core_cm4.h:1724:22:__NVIC_DisableIRQ 2 +core_cm4.h:1743:26:__NVIC_GetPendingIRQ 2 +core_cm4.h:1762:22:__NVIC_SetPendingIRQ 2 +core_cm4.h:1777:22:__NVIC_ClearPendingIRQ 2 +core_cm4.h:1794:26:__NVIC_GetActive 2 +core_cm4.h:1816:22:__NVIC_SetPriority 2 +core_cm4.h:1838:26:__NVIC_GetPriority 2 +core_cm4.h:1863:26:NVIC_EncodePriority 2 +core_cm4.h:1890:22:NVIC_DecodePriority 2 +core_cm4.h:1939:34:__NVIC_SystemReset 1 +core_cm4.h:2022:26:SysTick_Config 2 +stm32f3xx_hal_cortex.c:168:6:HAL_NVIC_SetPriorityGrouping 1 +stm32f3xx_hal_cortex.c:190:6:HAL_NVIC_SetPriority 1 +stm32f3xx_hal_cortex.c:212:6:HAL_NVIC_EnableIRQ 1 +stm32f3xx_hal_cortex.c:228:6:HAL_NVIC_DisableIRQ 1 +stm32f3xx_hal_cortex.c:241:6:HAL_NVIC_SystemReset 0 +stm32f3xx_hal_cortex.c:254:10:HAL_SYSTICK_Config 1 +stm32f3xx_hal_cortex.c:389:10:HAL_NVIC_GetPriorityGrouping 1 +stm32f3xx_hal_cortex.c:416:6:HAL_NVIC_GetPriority 1 +stm32f3xx_hal_cortex.c:431:6:HAL_NVIC_SetPendingIRQ 1 +stm32f3xx_hal_cortex.c:446:10:HAL_NVIC_GetPendingIRQ 1 +stm32f3xx_hal_cortex.c:459:6:HAL_NVIC_ClearPendingIRQ 1 +stm32f3xx_hal_cortex.c:473:10:HAL_NVIC_GetActive 1 +stm32f3xx_hal_cortex.c:487:6:HAL_SYSTICK_CLKSourceConfig 2 +stm32f3xx_hal_cortex.c:505:6:HAL_SYSTICK_IRQHandler 1 +stm32f3xx_hal_cortex.c:514:13:HAL_SYSTICK_Callback 1 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.d b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.d new file mode 100644 index 0000000..b47ac01 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.d @@ -0,0 +1,56 @@ +Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o: \ + ../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o new file mode 100644 index 0000000000000000000000000000000000000000..b7f55a9ed2d08e2f28a62a3d0532946f4ace6216 GIT binary patch literal 886144 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

    N8lm%O0W)*mAb) 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�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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.su b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.su new file mode 100644 index 0000000..33e464b --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.su @@ -0,0 +1,29 @@ +../Drivers/CMSIS/Include/core_cm4.h:1657:22:__NVIC_SetPriorityGrouping 24 static +../Drivers/CMSIS/Include/core_cm4.h:1676:26:__NVIC_GetPriorityGrouping 4 static +../Drivers/CMSIS/Include/core_cm4.h:1688:22:__NVIC_EnableIRQ 16 static +../Drivers/CMSIS/Include/core_cm4.h:1724:22:__NVIC_DisableIRQ 16 static,ignoring_inline_asm +../Drivers/CMSIS/Include/core_cm4.h:1743:26:__NVIC_GetPendingIRQ 16 static +../Drivers/CMSIS/Include/core_cm4.h:1762:22:__NVIC_SetPendingIRQ 16 static +../Drivers/CMSIS/Include/core_cm4.h:1777:22:__NVIC_ClearPendingIRQ 16 static +../Drivers/CMSIS/Include/core_cm4.h:1794:26:__NVIC_GetActive 16 static +../Drivers/CMSIS/Include/core_cm4.h:1816:22:__NVIC_SetPriority 16 static +../Drivers/CMSIS/Include/core_cm4.h:1838:26:__NVIC_GetPriority 16 static +../Drivers/CMSIS/Include/core_cm4.h:1863:26:NVIC_EncodePriority 40 static +../Drivers/CMSIS/Include/core_cm4.h:1890:22:NVIC_DecodePriority 40 static +../Drivers/CMSIS/Include/core_cm4.h:1939:34:__NVIC_SystemReset 4 static,ignoring_inline_asm +../Drivers/CMSIS/Include/core_cm4.h:2022:26:SysTick_Config 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:168:6:HAL_NVIC_SetPriorityGrouping 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:190:6:HAL_NVIC_SetPriority 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:212:6:HAL_NVIC_EnableIRQ 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:228:6:HAL_NVIC_DisableIRQ 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:241:6:HAL_NVIC_SystemReset 8 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:254:10:HAL_SYSTICK_Config 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:389:10:HAL_NVIC_GetPriorityGrouping 8 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:416:6:HAL_NVIC_GetPriority 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:431:6:HAL_NVIC_SetPendingIRQ 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:446:10:HAL_NVIC_GetPendingIRQ 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:459:6:HAL_NVIC_ClearPendingIRQ 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:473:10:HAL_NVIC_GetActive 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:487:6:HAL_SYSTICK_CLKSourceConfig 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:505:6:HAL_SYSTICK_IRQHandler 8 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c:514:13:HAL_SYSTICK_Callback 4 static diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.cyclo b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.cyclo new file mode 100644 index 0000000..2abb189 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.cyclo @@ -0,0 +1,14 @@ +stm32f3xx_hal_dma.c:136:19:HAL_DMA_Init 2 +stm32f3xx_hal_dma.c:198:19:HAL_DMA_DeInit 2 +stm32f3xx_hal_dma.c:280:19:HAL_DMA_Start 3 +stm32f3xx_hal_dma.c:327:19:HAL_DMA_Start_IT 4 +stm32f3xx_hal_dma.c:383:19:HAL_DMA_Abort 3 +stm32f3xx_hal_dma.c:427:19:HAL_DMA_Abort_IT 3 +stm32f3xx_hal_dma.c:472:19:HAL_DMA_PollForTransfer 10 +stm32f3xx_hal_dma.c:573:6:HAL_DMA_IRQHandler 12 +stm32f3xx_hal_dma.c:665:19:HAL_DMA_RegisterCallback 7 +stm32f3xx_hal_dma.c:716:19:HAL_DMA_UnRegisterCallback 8 +stm32f3xx_hal_dma.c:792:22:HAL_DMA_GetState 1 +stm32f3xx_hal_dma.c:803:10:HAL_DMA_GetError 1 +stm32f3xx_hal_dma.c:829:13:DMA_SetConfig 2 +stm32f3xx_hal_dma.c:863:13:DMA_CalcBaseAndBitshift 1 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.d b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.d new file mode 100644 index 0000000..401654e --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.d @@ -0,0 +1,56 @@ +Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o: \ + ../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o new file mode 100644 index 0000000000000000000000000000000000000000..dfe0a645140718ddc658e74b2b8d86fcfe837b80 GIT binary patch literal 880200 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

    Oj*%${21D`C-L#0p^(h?km2Dx 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%0D)isi{M+eAb~ma?{@j%NN;^ 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 W@&$)J{~@kHog`5u?pr`4?*9UO;WM)U literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.su b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.su new file mode 100644 index 0000000..599890e --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.su @@ -0,0 +1,14 @@ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:136:19:HAL_DMA_Init 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:198:19:HAL_DMA_DeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:280:19:HAL_DMA_Start 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:327:19:HAL_DMA_Start_IT 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:383:19:HAL_DMA_Abort 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:427:19:HAL_DMA_Abort_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:472:19:HAL_DMA_PollForTransfer 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:573:6:HAL_DMA_IRQHandler 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:665:19:HAL_DMA_RegisterCallback 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:716:19:HAL_DMA_UnRegisterCallback 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:792:22:HAL_DMA_GetState 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:803:10:HAL_DMA_GetError 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:829:13:DMA_SetConfig 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c:863:13:DMA_CalcBaseAndBitshift 16 static diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.cyclo b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.cyclo new file mode 100644 index 0000000..7d902db --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.cyclo @@ -0,0 +1,9 @@ +stm32f3xx_hal_exti.c:143:19:HAL_EXTI_SetConfigLine 9 +stm32f3xx_hal_exti.c:264:19:HAL_EXTI_GetConfigLine 9 +stm32f3xx_hal_exti.c:357:19:HAL_EXTI_ClearConfigLine 4 +stm32f3xx_hal_exti.c:422:19:HAL_EXTI_RegisterCallback 2 +stm32f3xx_hal_exti.c:447:19:HAL_EXTI_GetHandle 2 +stm32f3xx_hal_exti.c:487:6:HAL_EXTI_IRQHandler 3 +stm32f3xx_hal_exti.c:524:10:HAL_EXTI_GetPending 1 +stm32f3xx_hal_exti.c:558:6:HAL_EXTI_ClearPending 1 +stm32f3xx_hal_exti.c:585:6:HAL_EXTI_GenerateSWI 1 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.d b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.d new file mode 100644 index 0000000..34f4eec --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.d @@ -0,0 +1,56 @@ +Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o: \ + ../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o new file mode 100644 index 0000000000000000000000000000000000000000..69206329b30d03a2f9444da304935d4e8462d1b6 GIT binary patch literal 876656 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 =2Jcn+MstdE`-2iaviaE>x3nyj2; zYiJkbEDKKnn2W3{2En_^qUh&$lTEb2k-KcT4jw#Y*J*JUCx|ghgHtXK9URpPO zWHXlm?JL`t2$`R(`4}*d%fe=1;4gcX!VQo;7Kp(UvTzPG17$C*#9)w2bq~NiIc6Ng&|&cSpc^QvOX%AoRYmjiP34AzQQzcA2uMD1c?j_^IHsWsbBL z&XMU|;4fdcgO=-aG9I-x6v)~su`QGp+<~k}cJP0&J1^VP0s$eqa# zR5rK`WK8Bu>*l!ZQWRtpvL*X5I4Ki0V{l5AdLCfYGHd#6XJpOveZWK6;#-L9kxV%S zZdUd`y7oDl<4Xu>Ugk~>EH?5Snl5bRm4g_xlkcO+%3i+F8W-&#pQW;^qkL-K)IYUjUahHb+rV`JzoPC zCf{-tcH#1%mw*x>@03F`QhuEJ$fD$lHqbmNKlcwvw7hTxDlu|*`W7lyZn+EdIJxc- zWbtwX&DRNXp$6oXeDVvB)AD63s3giSJcM16JUtkg$?^wuuT$hdQt2aAUQSiNH2Hzs z7(64lPr)5bm*4#Wva|BeaoAqrHB%+?Qt49Qg}BBKTZ+@oCuQ z$-kll%6z$J8)WC?i+vy~ke_u!fQ9mMda{b-|K@``FJCnSm16n#lsA^hUwIbcUXb5V zAeK^j1)VdO$^ZKXD&_LdPXK*U?nQZOg?yUU%}eqxj{>DqUiuEV4XNTN> zD{j^;x%55Q-ImAAgX@$pr7}gA{M#UK-SQzT*xiwb&mpqA^7DBJ>7HD=7AigRiblxp z%Qw@?+$;a>H8|>%2PeUk2b$U{6^9eMkzh4;5#HjRqcE z6tg_YTouY`ptvcl4uNx5ET9Hs55>>R5um5yxyvx{QuJN}=dJiA5x;|vqJ(lhUquC_ zxqgbDY5{#*@eO^)?ytDL3|xTXCT(L*D2~yx8>n#p7tle9+6zz#R;*qMln})e0zii< z*fu~3Q+UyqDqPWe2~kHV((XbQsd%g#vM9yUG7O$nG^_y^tq6Gn&@l?9n^1{W?4YSK zPI0jrj^Y)YvLH)PWX-_eDaDjCWTzERDPfnWa9jnHB!z*Bl*tO8M=(fHNGQNm#ef4; z(iE@d0P~C@&<LQVJctYYP}K*><7rj2K&BJX7wWGQyg=}xwygAO)x6q918m6>(GyuTt34JAGLp=OCnN zh3RoX*C^6%K~}2>{1_qCDPE$ZqI$&-RI|FGkVZh(pjdDVva1T8e8kzPP~<~)O_7=o za$T|cFff}G@6#@?S>Z^}S&QNx)q8FzvS$!dt74xQP;M%|xDV2%D0v-rw-nE9f%n^r zkD?Jvr=tH~c<53zQOez|7@C9T9fgGQ&AW=q*MV|Rk@Gja_b5K19rb<1Pj#^CRcv_| z{`wSU`S9Ma$fd0Hf#SE5&>T>tQGdvwfJJ%LyhH_t3B~gLK$%p`JOlG7MY$2OX~izeK4%mw;}P{k#anNIJW~9y0VuPIp&HoD zDMr48%DlpBDKKr68I)GrD&M2O$Y-bYptr+bX+;4#C@=OS2uI~YD)u`m!|9_WXJzvX zuyawyrox}AvVRJLZc2F%RNR$U_Cn^N-1|Iap2|OHvhq@1)d9s@xt{K)k5cs;WWGw* zSa5#Im+8dzxbmrPM?!X<4RPLuf_$cL@99;BC7{Z^#mjcTzOO3PK)Whw{Pfn+Jy(xxq2x$j-ba+D!Hh$UC) z{{t}dl!qx#%~zJE0PLKy@)!mSl&-Yw7Ah+@;-@N7J`)Amd1dYvm|sw`JYZg`jH-g$ zGNoAw^Kxa_BvdXcMfAtwDwJ<6hsq_ial)Wd`D+*MV3qQ~N)~uny2ylNd$%elw?gHnGKhNN+LU?L2(VqLNQT=E<E!eCOFYs587DIcSwqG{!Jn&f7bLGsv@Hxvs2}K02F)GF-of)ROwW|c2rsA!jY4z{vkA- zRTUl3bWs&ie&nj!M(dHAYHl+I-BqvM2BwEpYt_-V+FtK8|J(O-3o4txVt2HMDIl5J4tFHe6S+VNCb;MGlx@3h|E~r|mY*(s^ zrX;3JwUpB8a#hdo0K2F<^ECWbsQ#i2xu z8r3a2|EpCk_yJ&bs^5kHRT7V6xzNSs^psJd-I76!Ylqw9X0{%cqBdU@ExRg=V zPHHn4Q~lx#yK&VzTK^_g6WJh>s$udsrTUd-;c3-0Wl}S$pl-N*s4AlB&m)y5on6nW z5^3(4Q<>%!q!I6!66@8v%tIi`kJN4#bpxCSHe}v3QUB430&gutWfVik%rDBJx zdXE$#xvBpsMJ(>>W2eD+sDo+a;;CNw0f?76xBv#;YTI6T_ffCi1`odKkEo{Vr;eQj z%5k;hW3cmAe@UCK0QI*tL7Y%8T!kD)$AecX>iHM7@3)z(Unq?0^!c zc3BG&u0BnZe}wuc2SgpI?!zws$tZO*P5vjYmy&M{5> znJWy=sGki1Nmo}s1F*Ad-Ax!|sCO3wB~v{`Nm`bArU7oV)vID5%TaGz2clspa!GyTD}Yt1l?!24rCv)t8JE>w+3;Si zE}>keM(swceXV*yCuDVMRu|0c)knQxa7F!c8c2is?op7d>ULU>8r2`uao06Mn2 z)E(3k-miX0+mQ$AFPB1dK)ve)aD!?$FK|QZS4)67to}v}%n|kb3iChX4D5`aSI-*|Ds3uk@`2PU(c!+vj8@y zerrF-yxQ>)h>gaM5=L7Ms|}cTnz5}gu-EK-AD9lBFX(*QQFBBIw@#WDZNNEenwNre z(X_O~&Q(VAMQxlcE%NRvpV@$;HJ-+~ltR__I7iKd#i z02eeI9U?2$#14Qf(;PN}E7v?u$Bq{@X4(Q&Xd37ts?t0<1(nO1=XOA)T4POT&^4Nc zv{$Uv9HFgWoyMIy8|yW9vk~VNO&jfk8Z?j7fyGtLQ)N(T)I6eo#cP^CS8&%gHni|H zY0_yI)U0`H74A!mW`zEH#SM*&j#64RTPrbmQ&YMD&}|xj+6A?1KKKWh(xLI(2(Vik z7s~r@YZN@lIyKE-gX_|a(=Mo6^UV|--O=3n65L(Q>o&l=r&&rXNsnes2+aGM=P8%z z)g-(JS)b-Hswnkq(&;eqf#$t1$ObgC^mhvfHOeDU8Pe?bfoxb~qHco`O((5RqnbS@ z;Al+K5DeM4=J}s-MH8Bw`v_@L)AK*5OlkDvFqqbCYes-GnpPDYJ=8eU1pi1ALEFMv z%`fkPo6~$wt-AA?{lCMljkY5d(6-vOzk;*Vdee(%uYIx#C=S}Gm9TTvw$Qxmq}_f3 zGH2~>`o7UcyLB}I!Ed>OJh?dJ91;;YrYbuZ7(yt*9F0v{pHVkdn2}W`ax6wo8}uCf zZ0GNf^fc4;twD+l4d|taT5u{jqEd+KY+H+30lndIW zefNo#&DT++W*F3SFb%mm4z$XNm_auv=gI6{z&_L zGi0;ckLXxnPP=;(Jj`n|wt(2^#5Ewcy3%g|W~Uo@33m3n=4seD=zgT6&{6lL1m;e< zqqO=u>yl_I?V{^g2TfO91lXu zP~Cc}e1+*O)Jqkv+qeKK5xNuGVGyaSEyrM#&XJywle%Jh*rRoI)VLd?`;s2oSY1g8 zWN|w69z-3lYo!uYf-dYNFi+{&R46#D`zH|o5_OMJ-)M^Np%CV&x@NkRG~IHF`m8SR z9PBc5tLV+i)WuWPuT)q2IQ*6AYJ$L(>t^UZx~Nko0lGrB?q%3r()IL0R;klaa$cpI zr_%9d-2p1i)#$bfAgk4_qf4pN>1o-m*A-AF!WG?WLTS+X*Fm#Umq|x<*L1Hm0Q0(T zluD0Hx|f_lnss;R4D5!kW*CvR>MCf%dQ&$;H?mE4ViOG7b-hBEcj#8IaSgY0FH-5h zQzxRyze~4+id@|~!!zLS=pK6nl)E|wZKdz&KEDp`zOHc(WWBogX_Mcl+ir&WfX+g_ zO@q1*sSRyNw~$h{QJv2$!X4A)JPFyj?!ON}rgQ>lgfy)SeF`Wux;Com%<7({sONO1 zW~j{Tc038rPXFyU;OzD4OrSXE|DkP#vp%L51}^&a#ke7^`qgy0kHE#X@Fh0UK1aq&F7= ztXaQ>Dp)Q0pK@S#LtmQ+@2z^%c{9$|IO)h2XP1I^~-2)V`JD^4m(>z)EW%h8MxFjVQ)CR5hxCZldHiw z8m#CUbTYh5g->V0?r5O67{po-S3~RwP}~eQ)O+V{sES1J9)=m}OZPN$Xw{Gf8bUq?W{~03 z5d;xzIDHB#A%<@$WeYX@?hlkOgP1yR!ws8zp%P&jq5^xQ;bR+ISd?Mi&rmsO*l&hi zwBZgNQN$Q_Qd%8rc<&NOoZ%4l*2fzL9)U|R{I?FVoHG1K3&Uwca4Vn_4V_CMOEN@l z1$46E_9lR(7#f~}W~#xB1CnNVkIn|q82s}Pb-E#sUc9r09h=}i!=O$FN~S?X8{I6! zf(ejp!zZr+Gskew1_rqXdpdH>Gc>IQSiZsXDa;EEmrWo=hEM5i{=DI81H2a-f@u3% zVi^AcvI_>&S#YHWHw)~_3^Pvwy4+x-{??0zpPm3$Vc^rj`z1pj-H=K{!P}5k8U8GQ z?6M(|g0D6lqXU^5!{j@V)f&Qth`P>@L@RT>!SOL@UNIPaq0(UZ_Apeg8U!u4+D5}; zTftp3+@OlYb%Phx2b&D7VvuITW|FlSqUf`{8-}@h7_=H*ip164G$?58Xfu3AYh$}% zXd8m)FsLaZzGVo18V0uwX>GXZPJ{P0KzA87@Ikr_j#O{GW4Mt6gS&<|dO_|P{-oTg z$8f0~m}v**m|;@_RL1c;fSWL^4u)*fpnU-sHf1=_jgY1d>7PM1W4IFu?xDfy zCpda!P)9&z))4U<$ebaF3MlgiX%1vI#)D2Uur&@k!NAT~;Q+Vx#@+9NI2g|b;4V2D zZ5BYq$(Yax6=!4VpD=eZW_$+D)#yRlyqobH%?0kpp(bE@80(7=r>F6C>U8olzDaqU zw^8*fz*Tw7&lKsCD3^4ChUTYp_JSO8{dt9W{7dy zXFv%x#*V{Zn6WDpvT);#4!Dgljts#d()i8}Xhs=#?1G1r#vWf_MjOAD;0K5?dey)# z)|f)8Xq++L8?tz#djk9=7}wDpa>}^g9(JdV(eHyK8lUIEL$a}hTGUdEKQ4o2s&OT? z3Z@yghafv+6t_e3tTBoX-ZPBf(fg2TjO+n)mhoSzPG%cFjfC4=V=g($GxDj;Am6y~ z3^dOfJ#K(2Fn&vW#UkTEXOQ#8kEuhW*w{v8{hcG;Sr?BcoP_$YzaW5|BA#f*r`bu_^#4Hm2dd@L+5Dh-Q5|)9^eD z>`m=d>~JtmE{2MuDfS9DCsR%aWX`5Qngm=-(Uiu!nvT&P)6H~#9Nyhcckh7nFx{Xj z&(oAkm0&N^FJIxJy-knPgW_ZQ+zp(s$@@G|{7g&@G>@Aix4^r<$?paR15DSr&^%#k zZw41=nymyEWE$NK@4==gN8l*LR9y{}P}4(C_zN>N(kVu`Y5%Lxj4+i>!!FX)N4Z** z=|BviPntRdAd5CVXA4=3sa}J@Sd-BjB+fKNhgk8ZGe04g1XCA%ua;;sDnODGTq zrn}tqZxK9Hn3^a@uQdI<0w}d6D@t3MO!sdBrOi})1S;(&*H@v^VS0snYC278se`u5 zRNo4NZd0TK!0wpb=)3v5rX)RN_e`UgKzdBK89=#j@|}jP*R+IAD*8+(zr$d^Y29v+ z2d3}*Kn6@3mf(gAnmBa;8#0xbz+l+aK}CcSliinaJ8G(-IdaUDA_dC0X(O#_6Q))4 z<-(-trHA0AOrOzt|Fr3`JqUNkG(#J@ho%zR={zz8?S_Y0llKy+%$Z^+=bAVDYXxFs zMp}$#*PPk|13R<*7I60F>P|%FU>-gTb4RnY9K^}|nhOGSHmhAAb1^F^OLjG{pmP#8 zv(+GoyP5R|Fg?smjseBfEJ_6NGC$!6nYa1R3846x?G_>kU-Qih$o$OZRGB?)zS;#$ ze{*&?R07NiZ{QkEnCI4k3p8hZiHi<0Z>MK4*nFGT{t)wUHynkU*?EXM%&e#SS-AOA zD*Z>8J8Z#4n*Y`VGs>JA0L_!;YMS|?%^%aG6JuU50PnHpcxxEMnalfN5O20V4_ShF z=vjn&%6#q`22Yz0-iO;nvorlorzEq1YShW*i&WH3F~3Ng{8aNk%9hg1k9`Mn#vDw) zX1e(tE#7C%9S4D#W&Vy2F56sc1zC>yB0c)KW`Ekk<(XTu5lg<=rxPmY%qs$MMFr+B zyx_0UJjsWnBJ;5kkn`rTBQPj7|4wD)60?wg{tM<1x@VL-%2D=gSU-VJ# zsJS-^vN7}G?*Tn-{vie^6XpZ-C{CKU9>DcYnG15kO`F^8!OfT#`9tNQIqz+Fcx0Y` z9bmKO_9~#vnZKo->byC69Gs1%^8{qJ79OQLc9tV$K(V)+(t&fZyhvqwN6Wj*Vc=wO zr5W1UQb4D&E|#BZU*KxVegT}DW#MUDk-KH92Z)DdIhDLTEtL%j-pg_<03bL)x6FP61Aj}x5`YC*R#3V9goWu2S)e7E&X0mDC%=QgU`ziF zkPwR~5$2(m73YB&W~n_45^mY$4)X}hR1~;K%V*T*7-cC6h51QKBK^&dXv^J)fR3>! z6bK^Ll1rxpah77LE5=(+gu*<*a(fbPPgxdy4M(RfyVhYa(em~`7)-K!LT^>FW%mil zQY@S6V0Xq6vL1u!mL+dN^Q`6H-SCiM3Fbm2({eNvv1D1A--j&QGEAMmIhJw}WVx30 z7hsoXc}U$i`IgEj;o+R6F$<)?@+p-*3N3#Hz^=$rTMKgD;6(LR-{fOTs0P5lg`+$fzZjwlQOtuj%0%x4e-G%n8eC zs+&$))GNVFSv32AGHvmt^5TqTd?Wllv_w&f`;jFe7%H=tOO#>GS>FBxLCjlLtOc>L z-uXT3Y_0d?LS|>(MJtfKHHW%(9IWdoRdBQ}qdoyAYe!leovnS^L0qgmZo$CS`giJ< zbhF;H1cUC@U(=zBhxO0Ynd)in82~#k>)D&Y^tK*!K)62E(X>PIwLU3>xu5k|0#uG$ z7u&+z-@1+gy8!DHM+}~@{?iI}f!6ORK!U87y$(mg)@79KhFCXuhGUj+PWkTb}`l~_d_Mtx|4bq;;gSxMjLP4 zL!A~0*0-q3VPcUTGS0$jx{#hcoeM@=>LA?S%-&$%eVeNlD<2x ztNQytZM#>cR#ui-+0=NydGEdVG|kd7&Dp1E(_#w95C_VVAtFPW$`k|z0TmTx3CdDr zFIgh<_dMUSNe+fid9mI45ZgZIU46(F3yhERI zbU4f{g0W7Am39_JgAN9&YYaJ9$n>zoH2Qw!vBQdMP#AGoM_cR@hu`S^FzS#+U!;yXOwp-)++lqy zOiwsSUV+}EgPx}5rX2pJ%DNLHi}rG7M&(n8#f8CMgveYO*~tKIjK5V7acAuChu%KM zg-`$w#xry-_GB#Afak?9QQu-eL%9t8ycq|l!?a4f_I3)@dS;MmOl$(D8oA);5cJq4~&H|E?);PoN;OatVA&0rJW&?ae>;7Cm2ivf{0=~ zr0>U0GNvoBlxRl$T8Nxt?70sthOvQ~-LZ@hW_iqx^GVnT$(T zNM(3|0SXxr zClOf*V64XmB<7R}pqFkYaVRVQP32&?U4Je`Qu zb~A+kK)r|2FNDor#&|yT`WOqkA^C{mPgSFS#vgRn9$@4xgvcP{TPh+9G3HZ~XPEJK zIS&HKcC7+7#u%glh;hbaCcp$^{&SF=WIU$tUZxla*JABX z%*FKOtTXdtIyAX3f2YcRWrk91CXQL04S(^>x)O*aFlBVkNo3aKf|$e%@q|b+Gs+*t6y|QKAg3}9 z{{iAz=61?k&;5Up#?1Z$ymV#;9ZfQrizv=a=I=Brk;VL~2F9|Pv#&wqJagYgILcwp znFh&RW;qp^FEG!nLr8f{+c{ttnJ>s7S-@n;pvC2(;Ja)7$4>GGalBuFSYjRjxP%qOIety=l{1cVs$*t4dM838 z%Q1xhyhFC*#0L<`b$pR#7OprJMS*zLamE`^zvgIj2JwdDX6lR9I?n8Z_q&e2S3>=s zjPjR3$9O8=3^~sE7b3%sif4h1IEGMf>4~Fv z79>XM_^@vGfauHGNUu6S*0;Yw@&M~q z+L{ls*3f+NVb<(>aC?Nci8lYEtmmjlbc{9n92^C+2G#+H0zCM7(2uIk&1W;tfzJXB(knj{+Yy@-Vcz>@}L)c3hQfkfK=A2ccFKd z)j$W$bF8k{KulxR(Sw)HN{+{hGFT$IJee#O!USn!*BpzsGvzf8f=zrqdK~J!@wy z+%~WrFJNJftiR|r-^3EqLF_*3?O#BAz`9ci(9H7mf`^B!QaXXPu+Gv$(#jH3VZM!3 zRSeVZtZHiDb+Gn+4PqxNbvCdr)~felvzzthDya9cn%cqZWnHI!Tp!Do3T}^B&rt%| z&tkrX$Oc#)^e_*z#^@;fg!MAr<)bXseHa^Kz5f=Xc49C20|7d-Q|W@Zu!n3=aAjYj zQi~f~LoFD0w&N{$@MLdJf?F^4bSf9^XY*v>d9!`)L(+%+kq_MZvcIOmL4Wp=s{jYt zPh>E5h@JKx935uI(YAJk{ox`=2C!#R*DH|yeH=g#`wi;S1hY%1-WtN@JOwP2y>%G8 z^b}ucngzex4D_7WcwUE5Z&Y?}<8r!`Q z#8UR<-N3H1Psf9IgB?pJ+MDcGsa#aXF8=^lZn4jX!OCs+e}PaaXa7xQg9`TR!vK}+ zmD`|K#lGtbE7k1vbfUe(-blye8n)mrtkkmWUPIJ(*{^>L;yw1ihhVdgeUP@2dUgkW zi_yUTi;iWD?9ModG_m7p9rH1+QY(9H6->9W z|M&?}x3hidFw(&ekpOhEdnhmHVl$gyx|@B2s&GB*E9VhXFIz!<*gp1bDh)hh2hy># zpUr;^Y=Au&gUANiZ>pg%#Gd{MOpmZXq|(k4cA6_}j4C*c%rBIB_cYu;R?&(XZ*k38&lCmE*7rl5QLsP06}*&e3arALqYX1mVFM zr37R@$1w^-Z_Z9i;e0r=C{6R_e7XR7ew-PPfgRxNc>>Iz<4CWwgPaojOzse8-#Vxt z=0q(5?+7R54%`NCo~F*-QH}>?vBx+u{{RGX!g~;45NEa!Aei&>JgA3oiZ(+bl*11| zWXCzNiy#@s`F<4Y;T$cUS0XrDKZ=mU*-j*e1})11p*AfDj_e+0<{&Icy|5;?6a0FpQ_&_OJj z^P~KJb!~^28T;ypqZQvIao>-Cy5e* zY>qD#yw7uHi6NQ8nVApCTuzrCh!;5DZUixp^9L0^^EvuFc(};vXaMmN=iR-KEa2Q4 zMbw3y`I*2ja~4hj6mg0^he$Ce?l*WS;k4Ewz$=__2_&y_2HRom8s}Hq;7d7wQg8k` z=T(|nxWTbg3VxHb{!L(IoQgWE;TGrFLojxmvx{bs%Q<0m60YDx)5)}wbNn;dtl|`x z15|U&l)~NNM9+m@4JVF18o0-)rc9uY^Ujwb)^n<;f7HO)KNH3pIddu3Z{iHT4c>i@ zav8#XzlxwR750OuzMSQ+Fzc@64AoRF7* z4Re0m0FlR>cfJF0gkz@D(i6_;Y}g#-R9uJN7-y3DjpLl>X*z6zQ)&R1zhy$skv?huts4solg z{dAc7E-m^9cPZ7#0=U2a1L9Hcda67h;z{l<>f%Rp7YqYC z#dV>Rehk->%EPhTr^=xo#~s=XfAQSxKOlLUdtfa{D$Bn1NI*t23E!?Ja=hF!~gF8l_R%CLg1p>?BZlQ)~Hg}2&eCN4k zzaaP=u858bx!l!M6wT)zq|(Pl?gA=DU*fJQ03kb60LfWH-18@o;;S+y6ayx4F+Z zL%p19*$0IR?k1YxtK>$|NJka-BK1D2xp%98-QoJu!(78X77tL%eN+rbce(9vz~(*f zvQikUcAU1I?`~`5I`wRVL;0N3vk3g@P`wkVy9&)p< z0Bhl1r=wRZmql-qHZGU8!*=eElqYv^`*NY)$-OATb?M?x?f}-!eUWar9`4^%zwYHW zQr6tZy+_&aBX0CghzxR*!oVBi+IGP7Fn3uM)E{&Gp2r$SxKHl}c*0#zUA<9m%Y677 z&98ccIH2m+yYoeK<{k(Il;m@0wHxA5)=hzJqU*1|;rXMe! z9^V5zPby^j^CIiOJIM2;D{+W-g0hmsJUzWrkMPdrf)~J3(sx8hd5uQ!j`7%kz-=J! zozGw;h_~$@NCxwEkcSZ7+L`bd%DYJE&vBk7r4?bk*J+vIypiW&C4!fJ1R#=kV;l-6 zcm)|hsmoN@2p69e1;54t7>g8v6J80)i;6>1t zPvq@83CSeh=`C=S%yUdcWGTE_>fELB{OI+0mUre?NS@>UR0_9gJh>kNOy~Ir!)69= z`(mhP^8TZ_wJe@)KP0nx$$bFlc|-4jn8RC4#hhH;Unc-A@TSQ?%;Oz<0!R70fEr*0 zywQ2^Uda3HJ*?p}ZxeYa;)Q$wf5p7tz6Msp>j;6(E4(r%NM7Y_;zRNp?{gYsD&-YY z1NJ)4>qmeayx$98^CoXj6+jv9K8-5f;>~k|vD>_IDl?Vy_IW_Ef~Oe)R>^z)Pk<`k zx7#6E&HMdTc(}vca}~rI-Y8XEYI)`_5PTgklzzr~UI>Xa@YeqUn~l7FDt0vSwk?9> zeIAcSAs_HK^aM2XE~EfFjc?5Ue1wVcz>x{(j7Bhy!ngS4HXh6W(idOO5iv>GmGuRlfm$V;2oaP5o1K|w+V@l5x z_&IcgCGuZh29YHG@f={u{Czap;xn51Rq9`Aj-q zo#$84GIRJ}?tywP|7q&ZUEq%{L7aJfo&v;t{)QBYT;%`#GK^i~t7zn*fPYy8ULk*F zJ>tB~H_&ZU#DCidlEwTP^bRlKkADiuEBtP1tX$>$(TvhH{!^6bmhy`v(7Vq6mA>S; z!GDf6otymQG<06ZHx5JZ7Jm=bIB)Z9yKn`|`JU96uHgTj4q_#LE!{m;{CjgitmZ4{ zL;Vha*Ex8&%a3>t-tY0>sD)%5zoQ0NJ^!P>z-!>oqPJ)x-$+w>P5ghUJ8+*rCIasP z|40l#3;*_F5L@}~RDx>b+v(NQ&Ywjk?hd{iy-Yj#0(uO)_z^0Ibn{u8KNmtKNR4Cw6_yf_=iyagfT)|K{oMH1@h;yl(T}WQTRJ2Xj%cuG{N!<0O^8ld>G3Rd`1a*rXai! z>RE!jLV#>RlpjRS3l=LNk|T)v2eIS|P6Wa91%b>D3VDM2e}b1Uc8pb5m!W=55ZD4^ zrGgy#jODtZaunDNK?RkLZwkh!`co!YLym3K!{WbOms6;3bGCZ zs}gW!5UCb)89}@w2sjU7jlf8cVXeS=5LWIA=AVUny5o*CD8K2j~<` z(z&WjV4{x{x&<8zu-YEMIx5ii3VyXiy-(2Z3f?2ZCm#Ux3#9aUp3Q9+YZTb!9Sh=6M}L|GMt3>n{ct5g)(1=xClGj zz;hRVaRUDK3D=oG^bo!~8<@Xv{TPfL6c$jI=8zBv2HfSszr(>hDlC*Cq+`N#T4tc| z^NWZqNEr1wOa}`;d=uDlVSFDV3ln~q4G=EOp&jgmus9Y$LZT_o(IV`qslfofe>gcG!fTorcEd+eIZygkSr6Pqr&_x;btX>w}rk}VWnJ{-+{;~glDM*Qz;A@!BVP(=lsE|7JmK>cs0UB zA3(2GSYrZqSNKCKuzF#A7O)0klpUZ^IE`jpnuMJ_GaOZcVP3O z@W6bCvo8xVdHg^wknMW^V4tT0hLJvrf`W-9MT zh~_i^M2a>HLhppAi481D#Go0$lcMkG^%*T|{~!GXSX~ZWOGX6`iFY=bUJI9>UEKh12*`rs#JnC}xRv zQo@=o+Ct^N^P;ad!Ah=ZF-;a<5G|uzI8U^m3PhJgdByNoAi7oxUZJSh5xmQy{4QWc zq9K}5Di-mnEl?t=Tmo=a6iS=iHPLf&sF#X5>DY2z6#F@XxFKq82l1w8UL6)zCSp(* z&JyLx7E<4BCDlh}>zsvRR~);_5yWmC>o7Mda^~;9Es&Xk%#;WiTMw zAu6I~cc+M5423R{&$kfi7PZpH6g{G2l;ZS>9#dcDk!U$}?)pW0=vohmO56YjMZeLb zJuG_76&K{O=xhWWjfj%BL*a=iCKRSeMIK85CPbgnp?6XgKL?y|tUt9S*ybKJ%8M}h4VhtWj2hxlDePCUhd2B>?9qhADXzqp2mBfQ0Hlfd&4 zzsZCZUonHa$A02!dYK*&&pZdrUwn@VM+e1A>4!Tc{({PchsB!$!8T=THkKK^*fsf=?7@d;^dqW~gB-S^Q!kjHQU{sUDIl z{`vqE&Wh)@f|n+~_Z&dFcplxY8R8w^fR`yYQaw3KeDh;~Z1J2zxXlqi;|29x@o%-j zE{IR=g=C(%ln;sFv3Q75>8oOI z9>6v6Thys26?3Utab0YoqWukV|BoQv6i-lXv`lJ0Ch;nfdZQB*% zP-_2Hi#w>pct^bY4%Sd3w$rzdwc`G-f!!5%&<}7=d@vDMojCjqjMa+`bYyD~*Y(0? zqj=3#SZNYh(!kSw@e0Zr9*D;`!%DOG8yetzD1JTz#1`>VD#Esk*91YbP5jnI7;6_N zQRdhoev^(#onqU^kn9p)afV2@c;7l;J>tac(CZb)QRT8veD`(4@<@DqBZBA`J0$@O zh)p`gGAQ1-3)ql&f@bT7#ly3KJr*xELT^O;1C>*rh|m9m$VSBrsN66n=Fs028yC+= zhW80^$6UlRDV}!%yeaXn&tb($@-7w8oh7yO*X&#*yFLKsDzVuSpqnI!j+X9{(<9K^ zC;1<35FV0%IEZ*khUjhKC7CpW=p)%iACmY=f@VX~PqP02umh6Ud?4a4d5s?CgOY`m zOC6GY_#HwzENLu2xJM)nzd$lTlHUm4QAsy-fsaXEpiLl9QbaYYAjvb)uo5iEwE=`k zR{jZ*P|0iiVdc1_D-e1Sl8bblik`-a_o-X;H14J?;Q#7WPDOpD$Wl8*~Fp(|U z8G%^NOXjx2QI3R5!!5ZIb0ZWkNHmm(FI=mB1_q^}Fa5=l}K6s|~)O$V=3Qu#k9T$em!z}jy}HajASo03n0 zvGy`aH(lLZl8Xj_+mf=MK`fW}dVZR>|U4fHukGF$CW(`Gwm49g@EJ5b2csL!HSkN!jxd z>6J86xwcQT-~>b-N#@^$v3|*mT<``YHFN+UlzdwTy&*{}&DRY}*7gE>EV)jV#1V-H zZJbXe!PGezmHb2#6JwJ1sed#s*+n<>gyfY@*qoFU(9vs3^4De%oupUkh2kn*M29pt zsrWURc9*_LA?=eMrcK8~%2(nJ@su{7gr1kQtO;x1FO8+W&RbeYg+U)_Ftwt6rHj6U zq@UDAA8#Cx{zuIkf9Y2g#6f9h85|vw{`3_j4@<>I;OK}n@O`KUNP|lNj!Mg@(soSh zunSnAbVd}s2T48Y#2zfw)*_@3scAaAhf32T0FFxqR0j)_uAc^xaH-}Wh(t(NQHC2S z&7kDug!Bpx=SE4-{|0bUTG5BdqNNV+fp<#!_;q-Qk?yzvg;=Tc19*><`cv^QUfLUp zAWlo`>ApTAeVdA#Nzxg#K_pAvcY~NBZTbUPs?;F}l4qrMx-RFWH|9VxO}d481?ke& z)Lh7rvIpTkQ(CegAWJ%%itpLd*>t4IkshKuIahk=SzM(H(&IE+ktbbC{o8!$x3Q4C zBz<-d^a`Y36d}Mu>B6_*;j%RUEr=9JzjKF&E7DEdA#znZ@-KMTq&wGxSSpR70__cH z*UPYZQ@XtjpiKJpXJ>9SF%-;+)$5m}vd?(3aHHs#iLTa>YJr)@ERjq?J9;>z6JILr4SCkaZvqN)K-YHY9cX6OM+Z zGe3m-6KUi&@J6MFXvSEtpJnKxi3I(O1jq(dQP(aRM&8p<dmyPVp7GNH-Alf56Wej=@y<|7#P}nbfl@e=jnNKK; z`N+O{6GUIx>NtRdvT`ch9gbm9e*O;XM`Zt_195=td2)1A_RRO-9g|(5T6&O7 zxCM@aWj}m@a6@FN_n{stoieWV>fTq*S(t%tt`*`6=KYm|LS&C4cP#cf1=U$!s}>JMZ~UIW%FE2bvFLz&eD zakj`d5V2LZI}mGVlR46NXC1P8{_x%@`{zHH?vf?ZIlNo;knWxySp;pWy|UvP==I4y zKM(AYY(8DHep!ANz<_K$W%q+J#~|u;MIVMx`HIWh;lP~<{77kkLx^aRmU{^11NdduH=3RZmNyT5~iuRN7L0r8WwR>Ezd z{G2C5LI!1070Em^V5}+O@KYkP<@p48lyq}iOp9gS8zLHL+3GyGP zC6Xw2ngx&~&!W+xWO?cjFr6ZQgC-PH<*eIS%31k$n!;7Q77k zGWwJ%Q=T>-rnBUAEQn;w6KP=Py!`Kzkj#4_Y1NpXifM&U4FBBfi%jW>J$XPTO)G7~p7D2ShC+>sTE}wTF z#145Ny?Q$3ZeF;aU2^98Aa=_G#31&_rF)>zE8n>o#6Ee51$vL<5tIe>%a{LOdrf|P z8Uh@abG;G7WBFE^-yM-BhBw~i~~mIH(-rc=E{yGRN(TWvL z;GI%Ty^2N0C^TPy7psub+T#?z-U1e{@OuNi(+UnHrDqgflszRVRL{d$qQcz+R+1D( z>S-h^PCEljQRJP1NUGvJ3DnOj*i;igrzoO&a+>0M8rjTLv}b{sr6^bdVzy#i06?yy ziwb8K6oOd@DNn)q6vTYRFl}TP72$8d^d-d(Czvi!oVgD5LPbd(uKZ=iekujEHhMUhCG$5llwy&|tEHeG;1sp1tnfL~YSybH-2iV(VKZz^OdSag{p zoTmP7DLh|65VsYlsL@}p;QBzJLeWzIP^nlbfJl|%-(3i>S|O!Y^c_WP6s*)JW>TS` zRw0iAxT`3f4v~9`b?+hSI>kQPX6hAuIvzJDP8|Z)s5nb!-zLQmy&&FK48_CP1I6qY z!E07H`5^d*icb?D(xN!y04uGEk6plPQ=GD3MeT}(??JCaA#;Lcr{WDG)VmZebXe|H z#CHMoDRg51j}#vJA=$5pq`L5c!ih#U2NglzgZNl6MqgBoD7Mnk@`>W>+YlL7WX*)X z3B~j#V3UfuU67noB-0Pzqc^E4G)Wnze6JV^;mY`{FczUqprj^JSwmkto={%92@s{+ zPo1rk$^jWbv@$IS%RHqV_!OpNlzpBc#wyR!7ou^>CI5gJuVlmloK{BC8{v#Hh#HLv z%5AjICn}#a!9$X=nD)VB<-c?%rzk6^>y@fZJ_T@AInsw%&MCiZ0547X*G_mySI(zl zuMFid)q*mW{~ZD`OL=rLuxw=*Wdi4wS84nyN14_G^;~81HUx1&xtN~mJY~BI-Y+Tp z>8MbkWcq_wsGRd0^e!u#=-^kRw9Eu3R;E#bs6^>OO}Z<}($gSbRmPL)Ysz*SnJ!h9 z(@gMnWg=z2HIP`IgN(c7X-d5Y4lTgsyGS5slS zO8FgaR@F*#2t@8EIrE@bqr67%m0D$ME7b2QJ#GNpQ+`Z^IXC_wHqLLU-`ka2;zaVW+x<@mCJvD$U~)xPDCxrdb$#=%J=_7_WO%$N^yB(RTt=&_EoLl0iK^~*8>m_sK%)Tbx1Y+46wthHtOjgQB6047@(@4-215N zC)%ElsaDZRKUmeY6d*(uzY`!-S_MtNf^udP+6l8z4rtCJR<#Rlka{lsMI?YGCoI8c*;}t5&`O za7JYb14vMH)A(qj>Zh&1l2mth!F00f9KEhnRNt3lDXFSYuVd|JRUdSKcTV*n2R74G zpY=f`UG)}yE1RK;(E-a;Eu%_emTKt`ux!;ZRpigB7E|9aM-{UJyj)cW#d$%+IR(8u zmH89!@>TCrh3BGb6+M5KRDHhST~>uHgrg!=nHYM-s+V$MtVFf#F2EI4+yO*(Rh38m z+iNQ30}xA9;S|z!)y~I=^M)$g2bbrjYAd}o%2Yd7!t^bbg+?=OtLD(GQMoGm2CP)5 z+#kY2rAk%>VwK8oCM2s>6I8moqe>lxdW|afI6$o`=nMF}t6DJ+*Ylq0=3aQHQ@xsq zIO|ofTLBtW`AcD?QFV}}1|Fz5RQqjK#mN93s-hg=uT5obfQNR~>)Trqv65m~P)lV*+jR4=>_@JRKQ3yA$HT{nyks6u}PHmF*92_A-2 zuS|o;uu4pAq{pf|+rb-Ay|f9~6IHSmU{sYs+xD1hhdUI;RSasKPN__TSgn(~_z8&4 z>M0t;bWtB@1J6}`i#8TFb!{R1xvRIl1P}YvyN7WlJk$*w=y|F$0|C6$uP=e#e)WP& zz`WH<4Y(ja>J)nLeAQ8M&sHI`%QGn9V@stYNT3sQeVWBbAColhf{5cN;A=ukD6j)BM3E4~IV zOg;4(K)BlcGejcPAMb)*q#AWkJV$EVazqxT7HLXNoJfqgF0x?0oiguesbq3X}lGL|5VLDmuL-|XJ z+D2pasp{Hl=$%#1^@6c;>fpt|($q4#2Q$^pw9TAXul@|n%u&DaIRea8ze(Be1@$sN zNam^k>3~SSdNWNMTvV4*;&MrCqOx6q`geMn7OFeA;1#QL=t(V6*J&YgMO`3(&8upj z9>i;EFZxcZRGoGdlGoKAZHLGW^$hCZ+*J2c>7z{TJsshetF80`t5APTd0nOYS0xng zsNW`Dje1cXY}TqJX6V(aeW)Z`uP&jlJsQ-v=mdRV?PkCQd7vJn#(T5cowkxz^^1wX z+SG0|D%h?r`4JbZOMPJ#taPjYr1|+C^}T5zK2k5C&zk$ynT7B-pzhlWY*>AhW|SVQ z$DRUlM7>c3n`7$9{m>g%f1Cp=6YA(bU{0EuI!HQevZ?0iqUqrRxNDSD{n@A4oCISY z8Y6Xq_iH@p?CY&La|{YTn%1{q<$y*@%>{qW-ml>3pytCCgnL9&_yW`eG|OlPDc#@vs!himqkU?oDczaNrOnr*)VoYV-e07Pr#luN~G zo+a;bnoEb_AzqV5?UDq|%1~g5nr$y3z$8uDT8N}-R#T1otfurI=$+HN_ZmbpG+w7* z?2?A_7))UZb{gsiu+6ao07n z6o4C=?C$|?Y9cA;E7PQ~;O~}Z+BfiUTa!cQ@N$hK9eOJ?d5_?zQX|?5$tq13O$AnK z?i3-2I~omjg=#bjDNS5*d$d8*M5nAqO&Wcm z(WFVB6!pI5F&oAnXv{ZZx>+;biXa|plr(10qVZ<|v}$Hh5wA_tLrvs%%}VM%c4*Q| z!Rypa(YD>C*+3`#ZcW(=NcL!Cw7d0cf}RHG)9j;m>?7O^5b4(_RKSKb|Ij$@ux4Ku zL>_Cx7lJpUDR~LYe4^>5lxkG-9NiORnmcs<8`m7BbNGbjD=!cyHJ|JOaY|D~$)1ze zXA9QgtUZzjqKmfw4%A(>O;qo3(>7%SbJu2gVqyEV2{e=Mp;z*}2D>OR^_l)?)X4{DcE+IvXr+YG(K+SRWh zz$4o9*#H6BVd@DV)$Za!e=%B*XCV@+-8cfh zIIZmnK)kl65yaD45moZfXtSvfmY~hmzFM%511#&^pjTEKmE}BiPK>vgk#7QLCXY%_VIhooouUskDt2X-lf0SFD|r2VRNx zoDtxfRzC`bQf(6*xvy)JXlkHLE9n96meyw)yx-QE4?(0-t62blRoZLRWvkX^Y{Dg| z)!w0o(_QTx6Tm&K-=7ev(>|bAR=t)VgP*EF``U{z)~MY<#i}N)`53VK+TF!af1s^b z05oe)Q{wqhn@h=Fi#AaQW3AdBLIK*e>SzSfuI;58tV3&b1=guuszJD2+6ww?ty}9Y z1lFTXS3{v!JNXF$?9(#$!sa9G(+?ohuYH|{cLuaC&?MKOw(BU24QXprKpfW2{05Sb zwO5vaII1|!*A9e0VM4p$JWNk&-=zp!1>x*{1(_TotFoAfx1>Ywgl-4-bd8Ix-FZa9-^B`r>sz&=tuC5 z>r^jbVPQJyFnHm*J#!FJgw7reEK)a~2)8G6>)!^5(yciNwMWa|E*lVX&jz5JgJ;c-PZj>E#-3EK1x_CbO#rLSgCWrjmWBWY%Ub4b;Iw2cu)6zGbHPD z^C(lT*S(R9H8kkvQ)=6&bDY8&nsoo|g-DA|N+T<+x}RMk(x!WT3L@>gb;Rq?Eu`Xf zr!HU^Hv4ot|AgB|x-$BDv|pE60)+wH;=>Rb)SaOjkRjbV9!!tw7zMz_bS?D88`mwO zyQ9dwN{p!a6Zu%HIB;EB_sQb82FYSjT5B*p1ko43y z2oRZ<{uM1G_v<~^z=O9whgwWN`i)Ztf2hal2fZN~ua`<8nWPW>8pe|Kxu>C!qTfm9_f&l@9V5=_d7jWq*9&)pm!TIg z1us)yDZs_b(qG*NEL*>Va*gx)BTQJy(chg7kgKnH7rYC4IqlGS`V-XI%Gc*m3U^W8 zMCIBd{c^mXo-NjIptE*~{xEfLuIQs9;OMGe?hSBLe`Gm$W%?#+BHz-R4q_>{_0wo? zE!Q7QhldJ%1-;*E^vY})tJN={KO1yc|MVhA-qV-A481!2$CP;1>%aXEZXf9P2LWr= z|2GDOhkEA<7;Djg@jM*0>O-lS-=W_c4!utO@J@(y>F=$^RqEECiGyB`em>pvz502S zl=kWG{RNwk^r=%&=+`?x1!DvHf9ZK2)Q`}qU`Q{bv-YUIm=45a`p^Xc}vR3Z9>#P!1~x z46`>w&);x~a{U0qM|yZTYWVkUSUG0+hKjI(hEghW1sP^ff*5M}ntsjW1|H46h8bST zfI_(8l_jtlVHluTA`QQO17mT9e^-DPZ}|5OD4aH2rV_>(!y;;(CK!?);kqOm=AH&I z$>2|Ki)6zF1te1pldS-$hDj;FSp%1j1Lq9o>!FusxImMz>4xX&f@B!JAV*n-%QOX? zZHS@|^v@gK6~c6mVc7scu3^a}K%RkPf=IsMRobC18s<=DRbW_TgOx(V_OD>`vZ3l7 zs23UHXz;Vxz&{Fb#qe1@7Jbz)&kyR?4E{?1ZW#E#0NgYT#6qFWaEsE4TLxEJ(QU)i zbD>vmFpk4!g<<_3V3mfvHh?Na@_$&-9YZ3$=4%WO*TG7yVN*V^yM~@uz`JL7wGddH z;a3(G-C#H{9eRz1uU|&EO$OTq*t~B@`UoNq3?E4$(rg&Vk@ne#hTJI_YcUkKfY)lM zO$4#cAa#dcyP=Bii4McjKM`)H;TqkFT?Ty;)VmEkX_&3YFff4&*=tzg3aroYh-wLs z49jRg>o*K{f;eFKJS*%O0+jwYjqjica=8LZLJ z8#ny74tf)Y5Dh#`83Jj;buuP=2|Z_Hn?H=X7|**w($)C=0jRqf2kAL-H!h8V6;ETC zFZ8^OAN~p6exna<+up`eTAz>6iw13cjdy2Z(SF89*%0wJZdnS`2aR`g5&R+JLF(Tg zF;1uVN`P@SrD8{ohv`**%;=g2(}Bi&R5%MVM$_>l#P|>9=${QWCS8Qh@(PZ~26;6)ohy#^3t^;0VEmUIu4O!<2?GoQ;g3|0;C#Uet?HG<0o?vS-Nq~ z6X<0apU{_=na1o!U|Gh~u~5%8wiW|BZ`@1$haBS>D);3YgToNn1>ag zSbrG2i^l&_p>WA~Z8JcD@y%Z$QfPb>0)@-Qu6kfa#$$9qEjGG`1C$sW_Tjo*F}_2) z##Q5@47j~!v@Zg&)VTcvSh;T0XCbm1#v3Q#;ifUH2E;Ps{YeYcg7?_?)ou_+j2CGj?}<_T3%rjSH_;C_X8eo} zcjLw^Dtt~D&Gh_D8oyw`-;~kqJ?J@^77qeAn;H*5!NugMgQTlz>24TvGhICh1$Wb_ z$57a3`s*%CdzjQz`1CYwqIRX1DU?Q>_M2`}VZz&V=UMpkF^y0O-`B*u1Dk%P;9sDA zz~r+7dj6&nI=vh=ovDVSBc{pK;02g2{oiTO^uph}&1sV;8pJcEFd>X3nCATq z)5)fHD6vj4eM0@lRMU|K5IJi)5e`S^O!uiRo^IMhc}Rw-^)nDNO)Yc}W|`jdguiT) zjY=5jO=VQp$~84p5$J+xmIVrVreFUAFW=Nfr=^Rg030TIk0qHwDrNP=)CgD&JI@lBvpHZA$(Y*d0^ZPtdC|WmC7M*7O3EH}0Ausk(g6 z6!HbuS8w{I6bcQdfA_&kqbXnoc+IBO)XaEjlF`ep#k7c;8Lg(FEX3JnI_U>19j1S% zBGGAL4T0BXy6ONA-KIOeu-Ri`%>w8(Ri}a1XZn@izWt{CLl7A-z5h0dgQgxj4Gx)N zdJ*TaN$?VQBc|Ug;r)r}=G!2Sn&hn}`sLDTKx=0n5Nz?R=5OFp~QF+6~ zyo{RUu4YXS+`5@x`5Suf=6ntGJj|hDEXC7&b2)&Q*+jqee)DrVQ1CW8`$NRXTpkCW zpZO=+1P+)JKZXZ?^VoO54w}>H^N>U4TVKM_Ve<_7#g3S>=EOkg7g9Yr-ptw!;%ReJ74*)SgQ)VHU_Sf}6q3w8{$Ib} zJW8J(rkGD(1u@NBK?nYHbHX^(GtA33LNC+YM|((?*_XPj=gl`igh-BA7LLer%}><= zTrl%IAd+X+bOFmZYq$`(Xr4_o83pF=X+p8kymkX(xorN?0#Ic3ISgaP=AT~yxMJqi zAhN6GC^xvhW`6%V)Jx5_A*f$BS8T_1xnbT;%e-lhzXA2z=09JCNV$1H4TTExTAJ#t zG_QCDSe5xhD&>rxWz@BtFi)ES$w~7odtrLYynv>Foh)m9!ZMvLW-9%=SS%cfxLOM6SnX!Hyb)I1 zE%WF+z0VSu0Z9+bQJVVjv{cl=ikGGCCfx3~ETHGe*K&yJ^L~~afr$Emlq%WV3T1x3gIc9192)tlRTry0DST0ciJ=Bs$4^X%zl9K!g z%e`pmMOv~b^*d>~NRt8478L`;Ql#`e*`Sv@@5{?Pg@?*Y(=6abv8hfl8#iBDUYuXV@mL-Z_^VydDN8#bTWxo@!9LxM^h$Yu@ zhCYhFV2L2pd6sVK@#R~T)Y7^L9waYWrc*7Uz|!XptjKbw8Vf774AbGY#PS-oA+A|w z9t9}1{5cCE*DW7VVfTi`@)Ux&X*u@+6v`|vl!@Q6JnTS#w=Le6fR$U?sH;$6iIPIH z(sKVMh}D+Lb-?ae;%NV@vAkXb@3oe5v`gK!#L}Cx&hq(g_^Y>UqgmSq%e{xN(r8Hy zK-5hZ<5lqPTfAbydtk|+E?cu@H6O%>79T2rwOB5@Af#5yyIWwh%~DLyZM)@N4_N82 zl>P(BPRl!#)^}NE_CTcD;!4|EkEJvpB7K&6%AOus=20=V-_k+ouw;8oGumQ#_Unhb$Zuy*^hbc=leJSB&{ljrpOx`4c%IfZ*AcvzHQ_Jt_FFw|2;STJ3ngtn z){(D)`C2zBA>wCcHUS*4-lXmDkTvBpc!#YupThJJtHUlBJ7#VB36TX_XXHXM$eN#z zAcCzgQCA_vdZHP`FsuD(D1=+Pi{K%`%6tP>BCWUX06Sq__c;`ztcx2#JZarT-If@u zU>$76TIG~~##v+5Vzu$sG@4R4Z5{g*l4q=cc7T{@T|$MyBx@e+pUKuAMxl^mUFHm8 zs?~?;>}Rb8syUvs?$`=mx|P?BSTd|x|G`nF_4k)yEZh3Z2*7#k(5nDBR*^p>bFIth zYS-1>nJtW;Q2=HT*FS|9m9q{^E4J3zH{i67kFv6ePNq{gbE zVn?mjuMLuSt>>?Uch71!0jslm(xJZI+Cyiq2J69(A=zmCnQAjl)>0akcwn7#6~t!i zoCg38t$keRwOCW=0M}|2(inZ4HJf(K4r_-S6gsVUIKaBBM!JyQ)(_|{+G9SqI1ANp#4&?-Cz-jMaBX4o9I{x$=8Bi0vsVe^T#fbP~&YgH16 zW7hedAdXvSAAyGnYdIAkCavP9fK6F>DnJnaR^HcKOjDYoWSP*1hZeGkO5wjO$wpR@57!fl%E zIXY;j+rHZYVuo#39Q%!Wy!m?A07eR zv%N+|^g7$OOn`dZJUaU}*vxdAXtdS*0QDwY`zHYRZLwbfJh1sw^4x5b3_$&%ZS{IY z)?&+}+q>1~JBka^X8Zh4sJGiV>kw{-ZTV@$(rGKFPaV2!S@!_CZO!`udTcAE5OuF@ z@3+wFvpwGe(~oS^Xbt_gWO|Pc*o=GNcF?w#j-5j`4YeqSZQs!=@Q&J7&^!E?y@)1r z0`0F*Lng>BO9B>bZ#WBoA@--A2Nr7oeKR~9x0ldkA7=lOj(XwtkFsDh!hVOk1CjRS za+p40Um6daQTCgI5IJcNr{-6*{b?FMJY`=)6`mOT?>c~3`(gUpD$aiKc__r&J*j1P z+TKfd`5C)g3$O(H6}op5?UyNtBzra!ddc?L^uwjt=RXZB)&4deEzjCB#-VV|-ti-d zY4*3tX1cw2K8P81FBU{H?Y)#lW!Yak0+4NA!o-CnK}0BF^DtQe%S@;7wmgy zK_t%}KsQmoJ%QfL7wu_A@GjY#CSk0={vkbFg?8gsfXnt)s)-lbk)q&-NLg zZTnJ6jmquYc@U|vFQq?RP-zc)51`5(Ow*aw_Jbz@?%1Dt9_lsrw|DwVn(Y}>8hB{; z_rmpTv0JF6+-esT0<_r!zK3MHeKj?CI_!I1hKEjjwHT6J_78RdblZ2#0_d}6#Q;3A zzc>TN`tAPo<{Ge{%0m!?_HjxshwK*xSi`VAeeZE)(WVr=dtz(wLLu7=IwJd6+d8w<-K)ltV4lwPb=1`5#S6#Fonttj- z^c6j>e!dJIPN++$h;>q(8xGU{>cVFb2B_!ILKdjDq3X^lbrNL{g4Cz!{kULtVgxi# ztDjIS`5E=Q`w*U0|E&TEQOjoo5UOte4N;#{f7}CqVd@DD%?h>BWZJaUOmPO zfJk+A6NFLf6xw)RP&>qeTvXqC17Wm!$Hy>sNqsp3!pmxpgK&FA?W@5wuc{4ofL~Mh z(YrL))yO?3Q@t_@D!0_%)9rm*y`I`?k-5IdMgz~ z0M5B*g2OcpLdnmUvk ziPF`Re}^zb9Yf1@raJH?xGeQ&RBE`db~y*r+3J=^a5?IpJcRT>y+aHSx$4jU!&sg= zj&ARVYDY4iuin27T!H$W8#D{m)^v6%QeUJEWQqC@x?f7wPsc)~Ox;M;|8lkcdCZ|g zy@U1zm1^|`s8p%F*@)$_de&5^RI7U^pH-vwqqoUw)gMuvvQAw{tA4#Yv>c>CJ!=7k zjcVa};F{Ed^p_)=)!!6D_(W|S2oF!y6KGfROnpKFV=Zbabz!us%c#AiO})Ds!gjSc zosv7$lhR@3xjMcR!cO%X+RwjGe?gu0FV%Z?VPdb;2SvCbUFw-sj_p5YIs^<&zA^s6_~`Sy*vf(i%&>eYWk_*T7c1Gsl;b0NkC)s25+?nCO= z9z*(a|i;!G2866<5 zn#c4VJEnQif~egz!?cvRYjWr;>Y+JsA7h@Hu4(Y@rTK%Zmfo7)SeW+FtRKewd^JCO z2%MkhAjNrHBeDc{LUSkv7;u%NRvxd;9yNH zl_*YYB1^!X(eSe2{j8>LH@Fau%^m&zIHxiB6+wh)3Y0J%uK9fff{4(_e}Kw) zjbtylNDZqMBudi~2rCyf9ki{#sNqpLC|bk*8NpxD+@<{PWzFXOi0q2ygB<`|)y&C; z>1lwrND2~L3b7>!XVRBmYYRX})CvoRPdcQo%l!F9Q-(NWGgRx@fbJj7{u-++tP z?0gAh37Su-oR_FsPUZA_npjG>C24|bN1d$U=K_$TnMT2lh%qETVe!!bGv%UcCiDolZ(pofmw3@bRq@5sb8Y#j1G_jN}8qlo$6^`C& zdVc}@oyPb8aD$rILI{U6&W}KbHAfy}4kMZ-%3ZwIY@G_Bqqc%7g-5h+A3%uz*X~P@ zquOLD(m88){edwT?SUN-x@sfOgFB|Z$Ac9&?XOD!ch~NZ1o6;*+Xa7~+DmaDUfOft z1K_P)y$Jvx?XQ1B#aBC=hdKCZueE_3*ZR@3@r3pk{qcp9T3=(#!CxEkDM*0!+o!l7 zf!eHCsGQP1rgu1kv_Ts%7Oefo74XyAlE2~Mj5d){EoZemqTwM#J6{Jts8&HamUG&z zv{;2{`-dS6*WRLSXoU6?Dovf&{xyuTNG^K0NP zX{+hMepxHu49zRrX%^7Ds-0~Da!tFW2Y~C^DN!IX+CYDpzMk2XOM8UY z>)Tp;1-LufndTsOwcbMj#A@Z#A{wVXPJ6z1ZRlcnNYETNm?7~ z2TRuOc>|K7^`}!vsy3z^@HFic`gWvilWt&s8QPUsa9uLB36x*T*3R1i(>YrGY>)?9 zkt2Nrv?5xJ^Rz$E_wS+h4-)|LwNI&TU!eVvb_s>rj~75#q&-U&qet3hPY^`0b|ziH z676&9qAAs0qoi7yc3dI2a;@bbh^#`}zZ5E!+JVh*RHbbig34pwI<+_GYyU!P?uT$+Y6oc7 z^-3Gt0C<i`(hwoZV*_u9k{L7a5k>79zBx^5XL-pv)eJ|rE^#VoVRW? zr7(PSs#tjU)lE7Mp`XrjAppm9W4{6Xgsz@Gs*^hH9&rA;PaU8cpi`Cs7pUV7L3m0x zm1+z@x@5Xo!Mama3puR|n+eS`x@t8v&+58uU?oJCW{j&8s@r4+&2zegR5lLN{d65; z;kr0VH$>=~p88{h``nK)@JqGXS zW>Yrpu5JRIonm!ge+^-r&g%uZc-0g`wl9JxU+AaAHZ0W&W#);>jr3k zDY{tNl&0ziDRYvcQ@X%=rfwzOXIZ+Nbbh$6>$L!vt#hNCYL3o-KS-W#4IL35>Q2c4 z&(}p7;IBX@TZ^$mojYZQigaRXoG8@|`@>3^?v@cqxo!@9(iOT1$T}HU>h^U)rAk+v zg!$Fzc2MP@R`+i$RO)mAA3>#F_mVcV4La#Zu-T{^qBBX8u9lXBW?e7s4xi|h?*MqJ zi})7gnQjzKrA1fO2Y;=)$7Hij=R()BUFY5hT&FJB2*zIM?(PS9smt7hu~#~CdQ5cb zqBer-)|t`D(4(7Z4|uO`-);o>T9^G2T%YbADk=Bt?$YZFZ*+3Xmk;O;-h#ikI@f=I zd#8I;fU!Z{w^Z;Q(tY~|!eL#W1ezl{uS^Kv>q^$ailhEZ>R&pd-+LNDC%qfJeQ{L3 zo{IU-dQaM8y6BC0h|E>Ln@-oq^n=uK=BDqX{e-)I2DJxy=#NE!c0-pL1UgY@Hn02i!xqG!%&eaHgf&gf-ym!H*#(4rcmH%macp?a_5&^)KVwhg#2 z{Ztp24%d%84$~3(8|3f2K5{z%k@{^SkSKjMRTVDikI`#S7xgRYSsbmuPhI$z^uJL> z^RoVs6ppUw|7yV4RecW&+%Q{9`B~HKn4utXgL_fe2^s}g*lc<04CC2XQ$51^yNq<-gE?K{VQb{R#@5>OT z>Z>W=lcu-X4=!DQih+j=eFGhLGWE-;5T2zErt;H$y{!r0+4>AVggN?#-+_Ce|C{!F zx%vS*4&>q1Q z`bo1uTJ>)OV5LpJycB?T{oi#^>D2%59I?F6e@Ypim-@4l;qR4x92x7JsJf5Yd`F&1DL zcN-+oP*j0fP8pu}!oz99LTh+9V{kbIx1k2_c&MB+?0yV*nBh8AkHZaG%BDpc)|LYh zWtd5mzF^>Qh47+bizhUr4W^Gkt{5IX1G#G0T7j_`Lv9MZ-!SYSg7BtcA7!v^8JyF= z-8S@$LhyGCEr|&JuECnV53z;|ln0A9gwm@O35M6t5oe;I?+nO2gRmIFB!h`POeY(@ zuL751Sa$_usfJf3fTtNmIq;Wm(5}Q-mcbq!GsfA5iL^_|F=X)J{egi;r>tB<%Q|?^ zGn7&;=%K;>dsrzj1U<1%&?X=QRRlZ zCK#(U?4uEo`~cndJ7WJL5}dRBR(dG9+fSz>o438uOhg@MzkUadh1y?UgRw~a>~ElX$$mGr4PUp< zpwi+k``Og;7jJ)+R^cT3gdN~A>_fI69P0q7Tr+1POgFBn;$p0Ajn)~$S8I%^ zA@=ne7Ilsdtoh0TV}omgo`N_!%%R2qsDt@jcz1JH=?voS(CY=9pF?^QxRVZH_c6a9 zhyQ312yxg#U$roYXIB9~@9_2x;86~KClO$@!vQLm#yhN}bt1t*XAZZC4wkkQyh9Cb z=#m^dsevWgf!hYtDGn-QjHNm}_yoq%94<}ASh|DTG}z2=s9FG(Ob7K0Sjlo2re2Qw z4wH&uI@`f_E?okLR41rBbeQ%9LdtjWr`%|PLmcgG3LQSDtV)r?SgMFUaT;UK&S(Qo$^Up!596sI&++&9)^Wd-A;h#d* zC=?QLUoaf}W}Lz-pcj+U7%iPdGMLe>aF)ds`oc>#BN>6p1IF3~DtXLlIuhhFFM8qS z5wl}I%s*z>TnL*PmJi5t=Hoz+*UW*R5&1A94u>alCb0~Hy>V4k{T=^XEIdtUeGJKm z+zPn+Xc6Vszq+~?nqTKTVRZU9`ZT`Tn}nY;?)?ItnMIVwowbA#aNlnK84=7LMLB^v zzxP5i_boNud}m9Q%kPy%ko@4Ah~Iy#qdnD6o5sNAJZ}a%KZ`Sfn!kq*Knt{L{QPC7 z5k?nUW+H|~zcoXD@l86^E!k@i$NN3c(v#Sh<#Z zu~*IPhyLoP^mc{%XE(?-UGyPoJ1L>B`|Bhu=%4R~#K5C1i9Ks4P-|vVk=J1qm2lSH z-H*|AmDC~n`{X3pUw@jOCIw#SEi7bv}4Snx!~NGl-p2uXQpq! z74u-`(eB8TNyNoB_F{G)0`54o-V~mmG0Y!u@|tO+5?MbZq<6rMunxR}(212hi2$s} zKS0x)W%vX_AJzoQQ~I(-j|cH%X(+{XoHfS|j!v*rX@NV*njyuQKdXK{;CEPq^!D9d z)?~`O#ZyfFI_m-jk;!V|VA5Hvti^D2pC#G|%}n+}SHQE_`ri=QefB^a{AIIM zN1>9#zI7LX2ke8i4a;Spph|TfyOt6w57}JWY3H+Ll;|&Dn|=Y!LUyGiND+HlILIS* zC~ZZG*%kvJCG598fS0oO9m7}|`wbNx%Gv4F5LU3`6o{pgZFU_Kt78B04TO)`ZL<({ zHG33QGi%sO=vZ0HUNIWDI`#-{XzJOC^hXOC*xEk88`+=HBdLkq-Gdo5v!!JE37bQ? zkf-dMpJVJ9TiXhF3;UoIOt-S9&W5m!UA+;2cJ{Pp2s_xkj{tbio)`fSo$T4Pr+dK; zp|r|JFbhpi_Y%dY`XwltRD7{&tavPZ5#j(ui0wK4)n3Vhz8fs<_rM- zhMjc+HV4>GHbC<&doDdl-?3NJVt#|{C|Xd4*p90p9A^8|QD=mGna(Qj*(H>Pax|Ly z9U?now3U*HPDcEEcsOb_&l<$pXyY#!b20L#R!&!=I?6^IGwS*nj@*orDnQ(gf+>aV zW3+|}d%i|9Y4`rnD7g!`e4~}r>R4d3%O2hfjbwC$C^8b$w&9VHCH-xiVxzByKuV0x zQhK}82wnQnH1?x!W07%A7~qeLzo$)LvGGTg%B(R?PC^j1#!F^H^QrOPY2cn2uP_1N zn90&bu;OMieKmq`H#tFh`!goL(c}NDNel~PAtpztni6Irae=XXlNsAU3QSC2ffSmA z)0eWyWJ4&(Ba=)Yz>7^jc?U-&CYLrrSZcD3YDZ-z%V@c-Fe#%=XQfFq?UAcYKBtn$ zW0N3i$*eZ{ijtl+ChU{YtToY5b5)(md+Hyk8(-3!w#9PiV>wQ|0rBuF=>gRV;t=k*kjUXI@`kk_1h@1fGinKB=d^>gef7xIR) zfL`Mt;B0n=zd_D_?id^51W3RQbH+`Eu@O%5pTNE6oSO_Qj@)uRRNT2UC|Bpf-A*qx zp5&h11{HtqB|6Cma0ma_7sLH22OiFG&wm1AVO#?>lZ11p(3Obbwts*tAIUAIopu!0 z>3`)x?#^jYiRSK#f|X0$dzAdT%ypo9{t9>9Z}1nxT|@`a8{8iwA-u^wxfWa;m!k!F zz^yZY=d%;>Ro1P|h+*uP~te#u+6@(4kMYb^3#2pt8)6LxUh4}oQbD6z}rIWk*7PuGO z_jG`H$vsS)fiCVBt#H)My`KxNhkKo#T)o_x99)n-?rv(U>F3T0fN+4jo}Pbix!JTz z4RRByo;bu^Oc!#5tD<_oBQNPEXddAW(Aw(6JKqnLK;D!|z+L54StF!tyck-7uJcr4 z%r=HsOUdpVyodp)+~hg60(XmdO$N=|ymukcyu-UdPnkI0;zW$a^9;KINZ{>_hv`IK zA00=Nc<$Rkl6iCK&l{xh4D>2WDld<&XBscs7F;eb#26m(cz3p8I8-xYCLlbOzZ5phcr&OWt(+&`0%0YufGQ?cJRRi&9`m?# z>aONJ+YGLjH|8i}spIXXH}mRw+AIXo$dl5Uzlj(2BgUF}X0$0g&Y!y&fD`<%DiDAE zhu`934B(4vKmz&w(_r%yfAUR`V7~4qaHsi>kKz3+|K?6`A^Zd%Sh>KTMbD0l{8^MM zh~}FJF?NZ6osQI(`NeNx>wTxXyQ81=BHn>3@sd;FcW>rdjprDS&s|H4^#Pvv`1Q+XwS>~4@Me&H;PRr7ZqfXy2IOInF) z`GX_C)$xs`;OhD9{&3sCA5A-yM*cMF?P=mSQ$?tmKS2%L6aHE{C_m+A(3bZZpH&3S z7XA`T;9B_;K1E1v{CQL*Z0E;r1H6OZ%R$D+6wbzh*nG(lCEKZTCm`cG&nCI|}@${&hrNrcF9;qy1sZzZdI@T_0_QDQdJ>nw zN08zU)4qaS+AI1A3JPHCxFC*h{b0e+L1-oj>?p;XC|E*ixeP%wRlhR@R&;jA5}Znc z=6%7Oi!hxdm^c}Z9tdLPz~u>y4#3z$L5M9>@&#?7AO(WlJ_w5hL7%|NBf(Wi0Ez{d z6G2J@pLN1RncyWGV-QBrlis{feo##EdmEh1iTcyp9Oz! z1pm>YXh1NE?uoa8`HdKRC#YNjn}dQm^MD%?aQ^{rSkO=R;D{iCjmz_1uvQN5j;37` zA@nfaG6%%dbl=~AdznhDVAI>Q;t+5?rqgM!;cJ?0fQp}~Hx47l$4yUAYVoA$#~~2< zo4SpG%>dJj#sCDGx|l=dl<92jql|-07yg1+f=zFKg0a)4%kRV38PkubE^*eBp=^AJ zsSWK5&Y8}qwJyxGjUMyirdw#qi!fDD=JmYkwtpdvGA;N3{w|u@QsVZKY4;f5E}Nd8 z0`7`w%66z+GxfIzAjY(q&L}rc2dRnumZ^?*#6*`=l5Kk7Jpd0( ze|3ZDVpFq!;Jw5&fAp-wje}>P#Phm1#O{AOp_-i( z+%Xe&fZR2!qk~th*%sO!#F_QY2N!R4_#H@s*;LB#C!2jkcVvp$5G|akX7{P^m1Z_P z1P>WzA76$r)2weSRPLMcC^M36HkK08EoM`^VWriqns)GQX4fk))^0YPvO67SCVb4{ zx!Lt{aGhr9%c1$o?5A!ByUY$AfQMeQK+1FVnMF2(^qaBP0q$o0iq4Ym=D$)#)5ARX zE4cMEUpEoN%l!ID;JnS>(1Fs&JS-WePnnN|VJyhpnF`Or=5JhpJ8fQQfr*_ppS2i( z^X44FMVhNXr6Z#B;UNp7sd+AGbu4vXl^%x z0E^7`t%l7<=HvImd$IWtr9Dc_&(T+=)O`MD&@40mldf*L`7t^_RG43W2~uhP;Ad!7 zncLEGSZzLqdNFIvT_~wkYu@7ol{$0DPLO)@Pp&}NV7|>4Dvjn#&w(_Xw-o~S#QZIt z)SsG5DIvYdC?}2#?i4yK$=G1qgKx5(I>>?anfUD}w=)pB3eP(N z;3J$xk4Rr(IK3a{C$#3k zp_Fd7$HLR}LSVIU%R!JDA)lT{wZfNX@K-17pxSM{u-y$d8-$B#C*CLwp|!P1Sc(+5 zakFsBw-|dOw4n^#Q(@~8j6D;oXz$h{+)2gPR^hL9z_kfKvxKl+_}U4=4&nYNkmo`k zHI{V>2RlJt3X{jf*el^5w?Mjt(lt=&7JfyKkRG9L6awrOhDKoQwQ$sUaDBoEN?P{| zm(_!NBV1n#{sCl16>ba^v8 zIEhB*V(v#pOa$3#z$L+B=AQ^CbuR2hhfb!d*IzyR2_#gKhdAhz#SJA(+Yh;w80;-oD?Nd($im*un!&rM7wE^ z5-9rXC`_Ld2}*$r6P3_TAY7!Q%5j9q;SIkfq1Mc1e(79$$J z1=sq9XowCKH${qikXxc<`vJHuVim&J9noKB;P$R)^?U>oD@sm=Fiuq44S2lhE2`Qh zi1vBIN}{O26kL+%W-3UsXvNn6q=@Fw+W@JeRXG5piCSoXoi17)i&!#5cWR)SDH41E zc$R2%FXnJx{9zggGMSEw~4wDU|KY6}|fzfP9go6O0vzocF*(p=cW2Aw{By zIH)`lt+xQ6SfrzUR*7g)J2Xp0CmTSjMgF-E)`&KIj*x0ap~oPs6P1QS*dTg64#Gy! z)HVdzBw9f`k7m(!D~vr6y`pX5Q&Au#*Pe+wZa}j|)XE2G6>X=QeVgbTUvTZB(o=wU zhyti!_F5E9m#$BAycE~0U!+E2)A*f8vJik_k<(lV9miCB3Y$mAEEfXcIz}P@zAi;&mwP+{@cb!b*v@J0h(WzpsU;bV*K z3&B-eh#tX1jYaGZaJ3eXcZ1Yf#8K|L-XesOM-3K{)D_oe;l357+b!mLLHNdE6kUk{ zi<&x`w8eo2OnT75<`PtfEbM42J!~=hKWM(U7)AMF56d-FsPVKcp#52ZWyVJ!ftH?E zp>oRd>pl2T!!1>G;E%BU{s_49mVa3S7iq~Jgy|^D#oqyb!IEPG+(pZcr=b~b`R*lD zE?FKjgUV&gX38X9vHWa4RIXZn@ed|_&2qpLB+l|BoowPQPf}_p!Ls%gxI{}&$ zfj7Y=S)QOId9vm7R+vt){5u1?QOCx>uCYZv7EOHfIQ2T1+ena@_Hiz%(pyD4LAjsix}VvEq|a(S7fHDLW!m4U$_M2mM`-mtgAwN+ zcb31(C2aO);ckAY2h@hd7wc!*EuLg*<@o(i0oczh~2Z}9*RbMO)OFM&;8 zF_)?oeqyf*_&Y8>^9sgJh<~Gwfs^9G8<>&5xZ)}_1H`=+uo)=+kXDpa;tnOog2Z#n zp&2ax{WNTz76<-{8 zSh*_JvcO#v&(r~MN4%&U@VjDLY9@&l7Yae*#N%isiWg6(XIz5#)f{k%;=KVdeNX(3 zdgqhGKmUNSWbs&fe5Q!QAo!S6w1ur z7eCs8$g;)DX)VYRPqN3v9*Cc?Kyt-zDC?dlesTmhABsbYLGr~hv@{op^c);ZDQ5}0NTYnskN&^YC~n$gNeq7>4L7b4xrN*+8 zlF77(_Lr=u?|Xox;|+`jN|OD6J0K?L2~v_ za2F-nUxGwSejNh2B)KvfHZM!6snBsnGNgy2tCDH7{9coU61gs!y9k;wk~t4BzZ;SU zYH7GBaivV#Es0qG$Zg3iTEXr}CY}QPt|Z$4T&(0uB;3YHKJCIB;w7sZp^_l^kiPGU zk}v+ZA(wd3!kHu~JcSu0OEzD{l}M4uxe%sG=3fIzlVsA`lP>w`E#MiFBUOkcQ&Rc_ znpu)P*MYk)*+iEvTM}OmM>&$yJE8JGlD!UqT**$#Rpv<|SAaZ}IDLlel8-R}3M9#1 z;0h(5%>}MVGJG23k>qo#KNL%fyup=7E*n5fC52|Vx@D4-d~oFw@i!n9lH9rQP$@ZR zj3BBc%bcO|SYqA-VYTE#cW^b5dCNg+C30&3>Li)emt8Mm%;2^`5;F^9jgsanMAjr3 zPq$RF6Uy)HK`tn_fvT2l`N;~)oV!> zwZQaAKBKm_e#rtl^uCce)0S~Sa;*sDt>n872;WI&&?bLSvhxhMA;}x+aU7O#X$vqS z(b94Cy@YcC#8GQi$|p+9iZa&(cZboOE>?aADHz zbhHeY9;T=xq@zEB%6aMGVT?seOBuu&C4HL*?-!)(RA^q5>M1)CE&YpfhnJ+f2>81! z-8l*HD^lB!F?LlN8Uk`nx<3ZO>(X2w_=}Oo(8=b8^x`=PZ%Q}f<~6=0b#w-ITbgqQ z#_mYn8bR(#JL_OGR?4AUKTfKSLJ;xNAbNl$Ncm+LOO*bZ0^vRBmv=ytq$;Y4CrdNw z#!Qj^NEb3yn*9bI(xkPtbx)TLQBP2Ybdd`#NTzi8WsofCfH`d5mxiteJX>0~29wT_ z?xHNm18E99xGRz-|ADbb(o>UR ztXMkq7f6ZphymBLRQh%`G|QyUGH8}dM^SCCLi*1<04k+BDj=+qTCBoU9!oz?fxl|$ z3d%LtNN3U)y;k~yW?Ls+N#~AwsX>e28>HC<7;BW4Q436y^v7Os&C*Wl{d^+bB!tbU z((kB*{Y?4~<%L_MZ>wRtRr({9_}ipGZBS{KPNIWthcudQjpx!G4j`S<4<5tO3+a<| zxP2-8ZXc%dO8R#NG`pm)s6^2%^`gCgkJQZ@-g~7lsUG)Q`U~B=eNvlOfcH!PrRT~U zsc$LZ1Ja`VF!oleeGBfL^oRc)fu;9v!sd{)-~@!jQYl^Q5$VAR5Wbhry9g_eGC#_H z9+AzRjyX8VCQ;Vts4RC1#++piw6M6ytmtXsDjVDcm1DAiWl(XGbyq;eUB*6)AUtGs zz7TrKrbQzNFWJZf#OWE0>-Y&sw{CmugM}?A-pbgNkh0XGK)iq?1s#T zOy88n(gEj|>=30MZ_9Mq7`r1|{XIO~l`Z`kR$^uIZh(uEg|3HYyzCl1vJzxYF5nVn z&a^AJC)*ti?@6-!1_+a7<0$KpB1_l-VXDl5Qe|nfk2b?!y6hrtPBLU^w9U?xz4nD> zmTWzxgzn3t)tGy>Y|sRnIkMko!21IkYZ=CJWpdik<;f(pV|ge`;b1IZwrB_Z709%7 zmMN5Ft3irn19ZPUl11%?>0;T15vY{Nrnf*?DhrE(uuRsiN7UuA=sW~bArn%rxl-2h zA#7I3rjV7#vSTI~tCnr0w!IqJYdRm*%1)1gN}cR$dIr?X4$w)zL3W7Jr;V~z_rW#E zR!3qE%`(+;s63Ii{0-q#+5Ioz_L=No7jP{yTRNk+%KYhz-X>%G5MaA(9JM}m$j+Y! zc`lne2Y^o5j-L_r5&6(o5GT2s`ZbQqx6|pxSuT+vBp3N#>oDdjAKwMyCSO0k4ZqdcjS|3Wwgp?=e(nj#1{G2On=F8V=z!k_}bpu`~ z=h9!5Et2~j2YDnf-42yvc?jk5O60SGV6#;2Ol=fp@*}SiM7jJ&I*e4vyUs(iQr;L3 zM^$n@RSq7@OD2I-%MAj!t&uZy;;WSx{{(oQd^*WjY0MH$iH(28IT7T<4U}hCq2g4JNZT`3J%J*o(FD7Zc0%P%cs)cf*6rU z#6b97K1ekiN5xj^Mn0klpq#&xV%!*v9aW5?Z;rEK#&ZPdqFBra&Q;;}DLfogL{OuY zo5GCxL);ZoT4FsE-_fbZQ!#@&7rhkAX}{#H=r_k@^--+Zgc!24O5fG3p(x1SajCx~w=e3*?Go%YKYqRrt{(@|vQ!6~gO^ z+11dDQT$CA>syLXCV{)H2%iVdyNU(o2tHQP`4ys$Q!JqMC0?QW7%B-0E-fsHiaFE< zb5GGqySyaDj49AeR*Z52JVg;iHH}oo;CB$FDQ40EJYDgKG9Vd>ALj#*sd)W8+-4~z zxr5wS+_wWRTX8!cxEw{S0JsN=VtO9sDLOYp_)w9afFSY}BUFPfP#CCsRj6oL31N}q z((j1nkz>1X!#n+yg*~B8XleC{?VU43#p)kA3i7uE?QI>^JTgBgv0K8M=2LUjs$TfkLA;n@k{0uARlp~fAg{=z0_lmdF+32VY zpriT`r5|lros>RQz&om}q^h2?Qko8bF3OhA;K5b7b3as$DV>&rxG8N5q2jKzrOrkV z<&zI_T|AX#$#CSQTyYaPZ)G@bZGDtQ)Q{q;%vcZae#&$I%Pc6JgTS3ouIz{DlS=gU z;LD{9@zBllhQ@El%>?;a$9NAfpG6A6Pys>U1jP4kXWU+62ds;*Q?+*Ub(ps#uAi`zknnv zlYRm2o^lbrT$7|cNBz~w%ItW=nW9|393)k_iy9Tvlr^+Mrz<@uy_lh#I1R=!l`k3K zvXo8qD8H}VOs~^qE2FMMn4|QhbN>Tn7`+FatGr83*gWMgJ0X0i+n@OY%9jjs2tOv8KQFJ!sa>Ew@<=tH#q8@3Klv3DYYoiwtmARafaz zcTKg1;MY}a+TbrnbuI$J8!9u(#@tj@QP$y>YCLUG@2FDg*?(6xkOz3I%9FAO@hUmx z1QJxG1<*`XyYHI0lle3ZTxF6qSk+-l;0@hfqmV^8d;`h-Ro3 z{tBC!sx#Cco27a@17r79O|t;VR<(oykfYMfh2{g*s#D-{RW?pg$x|ivLikXXKus$7 zD&ckr3sk>`0avM7KvjimRSCUTSfgsa2F+SkIn|)+RA1f3SiLHlz5xv?@5>0jQRPY} z_9oTo@en>yh1vr5RQ2LRkY}ptofvCTt?L14RVnG*-=^AJhj80feurSJL$!J*tUOo! zmI$s>)laM93so!?-e0Qz+YOtqRN8SE>rw^0hOk=|QvzX+s_P{}>Qz~N2;pnhA9SGV zQ`J)nqhEEL`kvmXKGeeBfNEhoVtK1NPuZAvs-Q2y4XW-^J$y*D;2T6XtokPw+=yx! z6|vr{n!f~bw0cWv!Xs8X+B!H{vFYU+XRDv4L+E1F)sHw`t^T7b#xW~)6KuL!wHaZ| z-Rds21FkPK5TkhxzHNvV`cOna9^ukwA}kyb#=k}aVvK^?Vhk& z@dp4Wtxl2KM`a#))G?*wwgW(fYVkv*#Mlin)?ArsFi`f z)90-2Tm~TAYUytXBEo7Ft#0S7#!(A;q*X~Qgi%&QeeiI>DxW&CqOEf1VqLNt-iNWv zR>og~T(MeAcimMht6yOAn$Hf>pu=P zD$8kBU)=&A-Rdp1f@D}N`5j!Ql^JcDvaEzMko#7Rw8hC9>vIM0lCkLm2+PKfF@dmr zZ2bk0=CS|HMu5-8rUbxW+t?UNct0PT_yNevu^(Rrc{6q+?YiEL{h2P^;Mgu|0U8=x zl?=e}*o(i>tuc1(W>|SYmQ8y_N9)DtDK|c1y}KQplXX8W5J#MDr4P0<3_^ssUL7C29v71ZYHWizq~-o0%K>46ex z(?kNlS<3J(~sj2r0$J78xSrRGUUR{G{7>3_#_f z%|~>%7T7f8@&Andwh;1xcxDtIfA}Z<*+Z@mWH)8X} zTsU&HO_w5wBev}QuyWLP;s2^FwlX>*y4sr33UX1lN%aCh6Kar6<}CWXSE zr|p>|Fzsbq@E%sYZ8P~GKDG>HhJ0;zbz#iUwq-OlPuSj|+?v1bCGrqpTYDH>sBJGT zoabzJdBbLy?cVoeQm^#&xZ13a%o^0#r0YHka$yto0+NS>mVVdox z=YXf%j$Vwh4BI{50-kBRpH7ikwu*F&-M1A`Str|8M_i5VF$v(cwjVtNyv}xUJ%shP zKQmBiuuXXiuF>|@9A?xg+V_2wB86b$-z@x`d~`HjWo9K6Se%&))HUhCq*J4uE7KGN zzsHzu9T2)PJ$He1XB_AO;lY%@0NRsjcVv$;Im7f&&--1*ssXrIrmGetj+qh$&3Gp4 z9$f=w>LUmfnGe5*qkGK9lru?U9@c>*Gb?vNC55@GLG-CiEuALQ7^e;3(wQp;sAMpn z)L5CxL>$Ig7V{zs#vU?BNN1b0GGEZC(3usI3xEr24K;GQvO-ov=rSE$JwRD2se=3`Ux)G8Mbv6=l`zxOf?r~XWOK~ z)!gZH693MQwxd62x8is84XRQbTp9t|*i74wJ*#Lj+FwQo7k6eM9YDO8IWG`X1oJz# zSpWMVKdBrK)z2&_A@I3B?f#}&`$FZ5?0xbg_CxT{X2Arkf3PDnHp zs$f~yLRlBR2jxud+~?q@{jNAzSXUbj`@bKa06TvsU4qUAhj#q_m%JJBElWPa&uzBf zAj0iODRsQ_+HL&YwW=E)_asw>dG89UAsjwUTOKFoAIguoFh5m-xG^8mTIA0B{1Vz8 z%pywWdNMERQ}t$yOdt$o%8KD3h|`q?|c85vHq{XO$q2 znHU3%wKKtNz>8UHzXT~|dDG`t%i>aozK%7IlK=Ir@#MCFRYd93M%L&5Vq$HqK1%hp zvwmVBmJZg-T8#CuCX9jGURER>(_XW3RwATfRsxl4Mp!(mAUU!lrvc~A76`$4u$NB( z;3WH>I%xW{Pn+UX4`7$lni51XL_c`rNu58z(2FOCJ*$DTudCjD%|4fuP*u24ZU#K?6M<{oNveHO;f z8Pyhpgc${Oz;w8giw#Ui82u}Q@VrqVC21m!+UPVBWweIA2p5b@N+7&wwBv7hh&JLG zBkD^=iSyv$vXSFPj9oD@rv%PbquOpbDlvK}0Vy?_OiigZM!TF~tk!4~B_p00nZ*Op zV)Rh~;H^ea=pti7?gG>8MtVv&b{O@{hOu`>e0z{VBS#MAH)P~S`@Hu?U)VzBh;gtB ztQ<8SRRo-~v8f203-Uqm=W1Ny2b;%?Z&I&}oAJ0wP;obQrjw4Bad|n-!T7T*kQn1W zx|3s#TdXk#^X~!3!hd&w;2#>lD8*Qb@wgwsJvI*f8m1eK8))HcHNN~K#$Fkx76R90 zoJpJFZsXO@G1g=3{tw1_aa;iIwQ&Q3u|E7K*qBPcv54AG-x!Oik9)wlZ!i2gn=o$R zJWWjQ0e8YAmeM4_ChO~=8D?_k0<2s#Nuoyj>n6_IFwMIrX+6+PHW{INBE_VG5{0QI zIrZ?KX7Ud;6Qr9|QgdR4N$m>&GEL^afUzu-?`U0qWHNaMY*v~~JPw=nCO)$vd}i{P z`e-^$_&;BR9rc0-yw)& zoHczQZkz-)RNOiLg(D;n&Y?7DdU8HeBP1`5W*xkHb1t>Om@lWS0g?G}Dy$(q&Y3kA zxD%Ym=^!ULVn>+v=WLq@D*+sj>o6V2IY;dgr#MEPuo=WLl7oxn%%+E26enK}l?xpA zXw2av=SNR?h~`{B1K}l34=p;EIq9`4atIbRlltKe+PK}eOH!&NX= z#mSlqw~skZ1K?^nwf3-C%h?nI%{orH12pS7`$HgX;N<-Yl}64?dd@d-%6S;;;B2AR z!RH($EvlWI`D$=4IO+5?e91AV=jkiXYx+)iam=Zmw40Mg-Az55B@(!O&6&>w>EpBp zfb?_T(_`-q=lW(`-2u+>a2R{bNk0VB?>M&^kU@@LAgl~=?zmom6ldH~Pmo{WaucCH;Q&B465)4;X!uCIZyvwW8ZkV^jk zZ$TRPYv>^Vk{@yl@Ls;TKLA7g!+Kcp5j@(6*#-$Zvk`T!z;q18x&(0+z`Yf$n}D$q z!8j_P95r=50JytpIGu&PO%sv;4>x^I8H1~)<3_`Kys4Iw3inM5BcS=v^!+y&8! zOtlwCGBfcM0I5uV5V$nf{iz5$hjnBP0xe>tJAmBgs43-ohZDRA@Vgw-bFriDN|@&cAxig zA%xjHK?tnm@NUR3zX!bQf5A#FZyO&T@_0L^1OAXVeG|BR-Udn_l=Fst5MTxG5cN1V z@Q%~AtC43TH+mTz4+lqI*nv3nMEP`-D-p#l0C_B`oq@3? zQ5yY+aV=w_EC7EwW;HD^r!1J;h&tHfQ#!PlS}2EMv&>>4m5|CUv`b*R!eSS7m{eKZ zd5QoZTfC#WS6fW*gi4LY^C5gV7c8%jhOubNFX+$t$5>vV`ua^vk0-#rw(MU3m43^! zbfoqZXHm)cgt)I2K@^KClQC8z9%~Iiskqn@R?5VER35AlYcfD8#d$VxTP4;Rz&#ds zYhW`{f7pAL%asn(9EzoO%K&&REnWp-lXOu8gzeJkwU~6bbOP1hon(hc zfq2T!T!WP;SyT@k#mgqJF!vyp!zcj4RAZ9>&#?O3)%gFG2Jx@^AYai+A+D6Y2Vzy? zmrz;#Z8c(04>n;`!?A~4JC|bAO*V#HKYclV8n$uZ&#s*MGwna1lGqv%Iv|W4w$N^1 zZO<;)TxUrwxxYt+;pZPwl!@NCM2?tum45)#zuR8G*Y2YA_&(0nDgp?JKBo_~f_YdDr)3aBs2qF%kZcQQO9hf{A@k5;S@*%BXxjEBQrvY{3b^D1w1q}-jt$# z!njdg!xz)pu$RAvmh#v9`VNo*{-lHO@RlD+ z8-jQI4GtiK{82YS90iqB6geW8=mdXGg3TX7cvLWz3K7nNC$zA;3xdZXBoDzL4)u6_ z_zI=fyaZEehkIPGl2Rup1f5!pofJ$Nj{t)N^)jdg3tEs`Fb)-bNr|oVg1Hn@v|#u% zs9Y8_QQvB+zyevB|GU6$UXbhly9`}@?tJ_-WHAWBE_4C>*zcvU)S86N@Zun*?8(}k z@rZQYO8QR!UP5*C_0vSq`6G)5?4Q2B0JY)pXpC;WPv4MD(>?%dvuptJzsAv3{d?s) z$ah|&&C;%me9Uy8uQlu({GQs+5BX37up^Vd2>=)70UcsIn5DO1(1$sm4oo1k)(vB! z%tIZp5llVpTQ4)aUjTQF310!>Ek;90ig>1O0Js$9MGr_W^Esui^O$&AmL4+2%MeB> zlfM<8Lm6Yc5nMUbW`wy^Fon+%Py;iGcCn4jihOuzVj3^PdovR_8^RW5{1Xb0RZ5!^ zSC;!>kYlV#jqu>cn*R(o-C4)zdE&uZsYfintT$B9^J9h5Q~o$B>jQ8nSlM)jJ;|y! z0~f^lijT1nRyl3V&a+Ulz)ppgISt0*SbR6AB(m;GF_y%-9fPqHmiSMQV%Fq)2)>FH zuq%|rl!%=c8+I>jtEfCMqKsJs=%M3#UHXKX2-8^Jh*L3o8( z+79?t=H{p1?l9*(Fw?ut`E1N4nfZ?rKPgPG9mZ0b?X(@rVHyV!#{-5R07tn@FLfvt zGZQ*tvxHgp1Y^~VtusgsGvO)x)iQ;VFjmJDP`bN?Sw}&%GOIKIv@xe2LbHou2Z8Hm zs_3cO!z{jmdG|6rO31xt!lwh*$84Ak@BPeUDl@)e`sw^Lz$`xu;akRv+KApUTx!`G zWJ3Kxh8Tv5@WV{?aj1+iyVU@^XXZCyDvqr4XQ6V0HRcS2PArZUG>@{DP<_Lhb@%}| z7uNQ_;N6uq`4fC1$5_R#;M`ch&@$-G+IbNw9;^kOxICV$gH!$=b#DSDSy818S5{V5 zl`P#b4sL@^3L{o4G?iIPcgvcUOI6ajb!JvCsB^!jyMWeSu)A78(Q#aG2X$0jL2w&H zP#F{%9T9QEQCv_2S3pF?aRb~?obP?lIdN~?n_1mG-~a#5^MB0Pl@TW*ZY(EGoGnhE zl}iS%q|)_$gQrkS^P$0mZUO9*gJ)CI_{G8hplSBj!DCMa?0bW^ACk5WS^Ftkzan+_ z^SSJ)LtcRnd_FbLs<)=DeIdH~v(%&h1F7GohTwKAoA@p1XTJ%>-U`hU#_-Pc^~V8z zY5Hw+OuRgO|MSta_ot72DPSK=-$v%>s`N|CDf`}apF+l_PrVr(e)_+^4j+Bym7hmW z@H>uc^Zk#-zt8&ZNAcZf|KO{DUOo6~a)Z|nZtCLC#|K|M1JEZ1H{En--*mmrS4jXhQFSA@II9MUg{l(1NQUOrz`lvuT#5osPK}(+wMl@YX`qWQ`K7s zPrVQo-ZOZ{sgQ_e5I_7Cz$%_R7yA|BM^fBj>qy(h~f+RPoUOd?mG;YU;11 zUiMlv^4-)ur=r~VQUgyx!SAQ8dKISa2Pr6!xm9kN1MH`%Wq(A4-=r?4e(SfXiR1C- z{?w12h82DwRjdN`VCn+8JpL~A=m${m_o++%idO!R`W-Ravx6H-`194l z_dF7xy=CydWGlZm_}(X=gSQXfM$zVu!T+Y!=&r#JosW8V55D0BWZpNpGx`f8!d{oF7rA z&fz_&$Cpv{y{XUB&F+1v-+lz&dVlKLl}LRcwFP(%8SvR(X8%*?kk$EM>iax z78Ln#YBhZbt{VK^?P%rd!Ee!T^uvR1XrRJJ2D{W1esu6FREb_QIPy6Bxo)s>2DCr~DXw{PJLy+~hY0ul*%T-a7c>VWhq__`E^1`R&01 zkFVPXKlLco`_ABD9QW;m-`;{Q-7)w%cImFc7g4=%_u$`B9=&gHIkDpxg9kqwe;ybt z-GnbZICwFwWq%pGoQ{JJ4^Ewj54}8n8E5Z;^i#MEUXdPu0I7@8uWX~S*QcM$dj)Su zf9{`<`Ns4!NqOIu{?Lucyd=GWy0lBv@8C)P?)35WS-32HA(b1Kr~gDBiT9*G%FT3T zy80)iK9ugT&8yNgBdBn7`oVEzemH&5AJCVNq%ZvmQXfsP=dQUX{pT0s3;&kBhpLWi z)Azp`MLw23brP_Tr#BKeuS@T`8JV9*fAJ`!u1{Y@)6&1EpZHsh{afjeGG@n5(qEv) z@ptLJ9FKZ0AKLr~WL`Sdz73st_t3Ylz=*CL>J-tzPYu1{r6~E?p|>4|&wgp>;KrbC zZVe>yP*({@w5%60MCH=5P96JbzCA{e}2_ z#v&E@TQ>X?+T42aYf)z5A8tj*&TKsg(6c^AwaD35@O0YoEh-e=l$s+S|MpaeBG$W8 zJAQ@g?@x_Vu>4Redo&upCUpnBj6RXN?H*KyX>l5@elGQkX=Hvm^;1&$ucwxuhw8Vb z=6{RS_ft>gir%04$hBzY52@DKZb&cM4Di>|pZ*g*^7Zs73}E@q^w)lX!rx2(@bhTz z`{^H2=lO&5lPR11FkN4T)Q{57C7#`x{_S1pz+LIj{5wkCoqpE^DDva-Kqz4~~3J<5BP)6oo(+_5m z`tS6uPeg?m4^3T;>i;~nns%C(3|+bfpMB}j$`euV(G}9=I`nQ7`TWqM+W5j(haN`* z%`HRM{u4598#?4`NPTDMLNa7`4z0E^ z8_}0P4=s>C{>xDNgJ|<*nL#4w%QJW0i+ZoioI`H%!p!GBh&JDndE^zyycq8`p~71; zg}xcp?}N#`Es-ZCpyX#AIlWDAwHh@ z*LMT<>CBTlXyt~?Q~wr4zL@#R7`pVO%;OjE=jP1dZnW}^%#WG+X6BY#Q18~vzf+<0 ztxSdF^4o~akLtH&p86Q1zLR;@=kfL1Gus}(gxs0=ehU@u%50))^yits-wN1$nTy|y z>c7amh4l5mGJpCF{`@lY7&^xMD)Tm~34Wc~{tooz4`>JV{+RhS?W->yeu!lKpNH>1 z9Bsa2_}{2IdFk*WboYGO@asQ|>K6<@MCR^Q!_|4fUNih(Gbs7m;rrf>4!&-<#$~){ z_@?E6y`yq5a@1e>l>79NPTR$PEQfhOdo|(1Ygdqd)sFs()j2;vH!0o1-`V8TD=*{io}Y z`qt>X$oYSJboQ?p(QTvm(i7@CqkH~@R&F0XW-Bu97=6wjH1^%mNuCyWk3NcVNq#)~ zUu4Jb8D0AvRQSp0QC~%cdq>|!%fnAculN}H^0U#>W|aKR=MmmU2+eErAE{_!iE-DPWY_}(v;J@h0L`PH&dUXC_@yX^8d zT6u8UrIfP%ux#PIsQ1va2k4~w@UkBqf$A?_{!*SDFI&EX?Bpw#pY#fR@51G`KMO_P zy!`IJLFQYRzxx9y`Of9PejKLY(&Zbe$-H{`U6%p&(dET6komFY@BIS4cm47+@8#H+ z|6u@`UtWI1k!b8|%ctqJ@Qvlyybo=DYx%WwMY&`7hqHivZ~3FnMAJW9K6VVoaM$t= zyb783F8}(;DEYJH&-oBa{$lx`cOdiE%Xd)Lxqo?u%G}>CpMM{E{m}BS@IZNZ`6182 zpI03A*G+)E{jj^Z{FfZ|k}J@Os}8$@IC1@9rKh12Uq0;IFQT8f9(LQUsD8&`t1koW zM~8j<@qpcP*ah@*x%aRqza1a?`C&)>3MKz?*b82c)L#!f?(OK(iw}Q155AWk{;PjL zg;yQ^#IK{3iw@6y7M*|d;rCMXe8=JMI|-e*{O~8=jOrge{L-6{dClR69*gSVKKzOa zq`r6fhu;s_U59`8kOAY_@7jU^@ zP;Okjo}$|OQV%RVLK}GM=Z;5D+SkxIW&W_Y0l2>^L|3JobI80peeWDbcw_oA9klt`^ldi)_M`M_ULL$N{rXp<6ZfRA-i*e6 zlD^~7`1AAh@rR(~ed*=@fO-gE`6RUY>-2-efIX0|UxzjyOy9H-)&H3O4UfD(rT_CX z{CPP2x*GxeYx>PEN6A+X{R^}%h!uS{O#*Kmx{Va+UxvPMDZYO3&De~@|M zkx2bA^B$_u-#+}pZS2Hw>L+OI2g7$Rhx+%iu(G8G-UiWhF!kqUhYqChAJ7T^ORZda zd};T#=PvBtb9|>;pU77x&OJAnE7StbJ-)Mh%fObWJ!8)z{(r|re#_o77Pf6&2y!cP z`IY0byl0%VeeYS@cJ6t`mR&nm?pehDTltl!uyV(iy(<^aU0m3`bMyAaUAwmLS$WpZ zy~oL~_*;<)^H9?g%heBQR56M1}Td}V%||I1H|=W^4z@$rdgNWEul z-o4|vox64}9JjFfjBU@@wsXt&y;~Qav19X=v$ySB_`j^zd(PW4;H^cm-l=wuFD*QG z+m;0^Otdz~S9O?v;l2xpax7EawR?ee{PNnkYv}*4tGj*M8P7Ot%a+6{6GK+!++zRV zwaES&EVX9G*A~v&yyd)s0of2|ayOp6d3%7Zvu))T?$}`K!kL@*ZeI)*&pT&f&&sn0 zpvwyOEN&rZo%X=bUZZ7k2CCG!J-WUq5fp;=&Hh7ibeF7rAbRWS+On>?0Qx z6TQ>PlAc-xDTR?@MNq0|8qYds+peYZm#DIJ$L4-DkiA3&%;#eNub;Vn^PaQ&H70;1 zn%kC7E}M)I*-KP7=Xsplo}nXqi3*F`cJ!-&?6AT>21gh$8RyhRsZ?h8e`Ov$FgTPt zF>}btnIoq&%U5O|o6F=@W)8|`9(z*e;FXy}PRcy;>6yo^%nYy0966CWRC10uCG+=) z*swCQY&>)LGcwCoo|-xGl%-)PexwwCR3Y=^EQ)7ZYcu5&Gh^Az;U{L6WiyXIDbrk; zDV=E0Lr=;)A)9#;`qE?<4%(D?zDVF#U@Nj-6JInLi` zxUU>c4tFYZM8Dxa_UZP~<)>tZPs}`eypehAsrD_Gm3hpwybm8aZeu_El+5UfnIp$f zO{6nNJj>0%sW!&O+D!4p%rV)_CRD%}^SwR(347e;$~#;pVs9oro_WG4nURw+%Z|>B9G^MpXqFs~mAnBZho8wo9X`Q-Q%5BV{1gQqxz5IW zlwL@qnedxyIygf!1ciG9A zM|0lRvVZZ4S4+i%UByHP4ml;0Iw?`(W~p(|X~{1CU5#DF{y~jVbgo@22CZ_t+L|lY z)&_-AF_#@1KX+XITRlF%VxU-P1eK|FKB&yB%KC|*zUSEkv#n|~C{%L!pj)k@>eyaT z>D9sF3bau~ZG%q*omO=s4xR$Iys=vi%Jnw>mmklDsd_sGFJMCMdTi+u1SxnkjV3 z*{5d5&&_eL(t}nzXjLn@N$n3)?cAi!LoV0OVIp!9u1h)Xi_A*|l>RhZg?cL}cG^L= zST8pcHIh)RvK}+BzTD_$u@FJir3RSltZPr;AI$V5=K|f8S%`zA6~8liT{7!hUM3(2 z3hjDODHpo)?Q+m5bhEjEYA2}7H;UbAvjOhE(=Bw%WAg6`ESmdu(n;A;wNsd>l~-iX zKOX=qf&6kqvR4euwSfpkhElm!*iQ&wxP4;bU<9Up=1LQc-VFi zOeVfr0rEF1l}@>v5A0);(d5U#(fqFxM9EJE$jXl8C(*HX7oR9pfS+ApMy1wuC}9ZQ z3lE#?Zsb(YW04BgTDcV8NE|fLpvsBdP@1TgUBiZ*381t}A+O#n&DY9-u3ahXZ}og% z3|BG$m^6{-Z@auM7#Gyk$>{?Q$5U|#ITgpxDOn}xl_&0wPT41C`|~)Y|o#b}%>JGtvkmALwlApp!C+Tu{vyK{e{F zY~NfNGCSF>}V+(hi^=dIF6xRjqaxFWlq^sQpxoLNE zMoT5xZRf@Z?8~HY#r9;tzaV0*LSpX(LAg6uFBDr{P%g|&r&cbv`s|c_l+upWs*Q5c zn8{8|@2w5YcgnKIicJv2c6qki=>k=Yg<5TgYvKFE(2sbuxYV)tEo5Z&2i!*525iOCVSrX6WKm%ylzWl1$lE znC{cc%}&-&$hTt?KA{tig~is@({%zTEIJ~{IU%QO-umZq^LEte4sodvTW}`JQ8b?D zzO)#^tow^+@7-}m5TMsQ6G4HB-BvA-qdu>@)z7y|JiF(XAeB8ZhhfCloKaFBZO~4l zy%Jdi$!O%ztq^l7-PL;NN~+sl4ZI+s;zD-Xg}U3YM!HL5Je>eM?&QMUOu5m{9+PD< z(3DguH&(33;(%(GLBBnQqmEsn6D|io*AFLb9{)@QU{tV3t0Nj8LS$x2Gqd&Ld{Ai3 zU;$1Kki?cl^=`A3Sc`p?l%|NVn2MRbyZ0>C7IvPscy=(+-Mx9|o--l&3OW-y-|lp4 z<;E;fb)wrYG&+@XyCe8_S_y~YX{AE9AQ%`WLo}&lT06DE+CE6)SLfcgTYVAPqsafin;M!kGKP#g2YsO;Iwp0@MX`Aplte zQiJFw2AYH#Zg)!HTR}L>VE^zJxZx3+UZD4p4fFf>h5*BrB~>aGbF+qLLbq}3V@gWp zMiV?(z1rZWTsaA@cFpR^>B))w8kPgG)WwNdszE|=2Ol>~ajwv4lxsml z`P2Z5M}!&UOf*VhXo6#du#m8*L9imbbyxNUS+C5B<4!J~y?N)(h3$>b;^xJLr;k4~ zdlCz{=3UJb_E{_Ue^e{~e^hH?$yzVWKJRR3y~f6IqTrAPgNrqhU)V61Dvw8=0j!&K2`J_@Bq>wk!)*4 z2pafj(iOG=B!E(Z)G8>JuvbX0F_QHG_%xn0lVAm$FqbS6eXH4NmCGeCPWq#rn~E`^ z^2t7BqyZ%ooWR+I#UfOsn|Ci5k&sO6AYx0QT~;YYSX@CGlXQfcmt3#CcDY_?l^ew- zd&P+b)#o---Us`Oyg>Gtld>-wi*dfL3gnOSiW7`0cE!&>Db6PQg@f@EvM)4DcZjz} zNLPNfVxDk!98$Mkot-VW!S;1Pnb5ydb$wnL#BL&&hYqVu-AR3?QTTNM`?DUg!2YHa`&SYN6wJa=Jx5vu)dXW_ipY)t|vl|^U#TEM6N*?omy})i2`oMskz|nD>drljn|E$mz)Ba}S*$aw;U}tsF(V&dFSe^~ z=wd|slpCL%x8q5LHzzAvN~nm;LNj;!pMuzp;6QM%}f z7|ge@Kg*shq12LmRHX|}%<3wpiOy*bW0>V3=~PZphICRVsnRZ&PcQ3QkZA-DX>0?osk`XMz@xIT0e=A?9_8HoY$8^<0jFcE^@D zpio{fK#-&eSDmpzxIzi2RZ>OZOuHRGd=>?ktns+402gs)EmU%jidO7DrHT<)*Rdn= zK#{{FH#!DERkT$4;~3>D9W)^2VFAhj)F1T#M3dFOE_I@PYHIdA>QOC))2HW?mcO5x zIG_5~%;R{H1yfnDuZG5fWTr?zs1$;L+H=ImVG%MYIbG#e!atB5C~P}A%<3IgS;le% zgSflMixelDZqwyKH<(>4)*-z#i&I72ZC+Zca^11Bx*$Ap_P_&3Uvz(U>N8M~2``Uo zxojeBq(n}OHCg3OG@%~@ZbW);YHT7(mp7FQIQCYt6RfYaAV`-A#b5)Nk=b&i+{SKb zHiAa83T3hbXwu2WG0n>q+HuXpyFoZIW2B)+nyF+tLbBD8lKz#>+_QB@ar>?<&+aU2 zU)Zt;vuIZGa`8+Z=4xT9a;AOEk=PenXzz5PdlOK&h+I&G<{fKbf-tg`Gb~j)rFtGX zY!nfaZeBJ|5+LeV$VNCf8#s^3?RMQx8R%GP1F*sQWX7%K1opV@?-(?~#GI)-Fj+#Y zX)mZYx_aPJbjpq$7vP`{a|#bAC*Ixhd-naBJ}7Xet7=F4}e`*3Hk3pVnn+R&>jPoD_@aVn-G_N*cksu7G5Ic<@2(2wW+ZH_~*3Nz9&~r6er- zc735HY9p4@>J{oD1dAqxMvQ0ugltGKjpQhr8yd2Pn{xt*iJ0K%BtI$3mDaqMTjmUvsAB@gTA%lzS}}Vf5Os$^>(W{h>>#)OWg)B(F)R zeqYb%+?uu!Cmh%KDHFk-Q5OdNn+O3trmj8(!XZI3n=>ji*Qx3WP0c^@17rxQm#VP6 zz$H!pIOf4OfW=El<2s0Q-4-;Sa(p~DFKt5gkjL2~f96yXN`}Ogq1;9B64EAg1BC|m zViO9k9;Hzdq#TbE5Odj>NGL>UU_+Y{7i?dJ#@ZZ=a^=EIwmB2@$yQukBUHWbx$i*I zPmi|83{adC@Z7#WaWd2=I<^~%>3NY1s1@0}hpNER!kI>i^3nsd1A{=5FbS`q=SgP+ z*$w$Oms3q{EKBeOwinp4z&*-5RvR=GfJAOyT-?3wjJ=BsK`=J9dHeG=pSK4dKilEU z2L&z!hsAAMvYK`aIH3zTQJf3b=xK`MCKRN_6c&|`iIFvEfx*W<=f9A@d$XjIvIA9J zkuz?=r38+t%mqyxc{ui{;!dQcjL_nBu(rTz8|`pA^x{D29nVonkg|GWKiN=NTb^%a znGeyCFwKdI=(4ExE^peqJhgWuO<;n8_QoF0F9wni%V1T3vxYtAWcsJ214VO4$sL=N z|Ar$oE2d0n3@+7_N8_m3Ey(0h8#LBulNm;u{uWIfmpjtu#Yqa=slASu&(Lynv~!Hn&? zE%Jf`L9hY(L=Z->CMx5CZR~EWR4YyF^J=#Y3tqRnzAU>BdLaC#yH9j06p#h8L{grc z7KvFPvFw3vtBMl`{|4Ny*{7_?^0&A)Xa^x!!@O7n|H^rz3PJr3TC)W#Ljwl-V10c& z8)iZeqPf+^`Z6r~joE6WH4iO&bKIMp+|)j2r-Ip0EwaeNlhh(7(5nY5>(j?}2CYc1 ztx`-wIG1#Vpu-{q05&4pLD2gOTN2BmaOG;rBEv5Mti52witH(lT|*HA&`E{%4QYNw z_Gt&wrtVZM9#FYY%Q0|I`?^`!NqP#P1-1jK2_Zf{RATC(E`7#wgBpEV?D*NQ} zx~E+#>|D1xjx7V~E<1(O=qLu!L-wQQeOi@SQ7?1C`K&W34dePkZ$%CcT$CE)eoS8stSR+Y;d;S zoNpE9rl1JOwab;Fd<9y;sbChGft)Uu*@JTvx>{jUmW!Av!ZOTBZZ_=rih*Q0bb8|& zH>|3-6qSJ~G+ZhaMrCldmD8!Iw5*uTS8Az}f!h;xF(N@Nbr~~_bdLT8?#%7X6tmv% z5ZfxM(-g-VrO(7RY##8y&}7$*LpAm^0h4h>A2w;8hz^1Uqb{0hwy4yOZ?gnYT9IvO zIwWH!CW!k1ov(xK3!C?d6hkj`FlJk!29X-8gb~b#tborvgfMUVbpTv7-@Rae=KLbq z?zlBysffBy!(egJOcPOX_o1|K#@@4n z(j4)kLvNO@6v(YIBu;aL+Yptdr3y!Y0(nUXvU|(Z(~liThzVE zRI6Si=MyQ}l{{3iH>hLKgU!p3nJjGpUUcT6@N<7`A*CaFOx8NppxKD(cc2}W^OF`q z^rT%T-r|2|02RJ>JT!Sx0f1$q&@XezsU$|h)e`z*@x+{PGP@_S$G|dvG6|9YL=xqa z&}hoc9bz>HoD_yam=q^5Zx%47W+7kitQF$!rDethGAz_!c?b&?B_JwMD9S}Q_qyFROw97+h2;$SAhf||ERUKHbD$}K2n&RlC(OJlwS-|Jedvjg{Va0?UgpRwf` zA2;qN0heAFMU_opdOSVh@?u!idGG{Q*wuZ`6U;}L3MFLYCntX8_|}F-*=eD1&8Wv z15Wfg??}Q>b2yedJd~V<8OmbOFez&SnuCiUK9i}+i&-A*v#UdQA>(}$K#9(L3Uy?m)9fQdF@Ro(-qIHrkn=Uh{$BV<{vqFGL;T(q^+E?H>;`D|54AgDzGX&^zDvRwI)im3TE>2`{ zN$I$JunOJrgi?DU_9ESN;co;ftGj#imW7$Ud#VtnLGQr=`to3S!rF>^XTNyUnOR01 zkVu$m=z`d0=&CA8Do=5NJ21gZ?U>hHbXRi-##H+o3R(OdGojO!>ZZ4E|hH znRdrRI_a^~6Lzy8mL;>J8->wei#yKQy>J#h$-vf!UdBow)y+8W5PpJHfWK$lF?nBA<{P-iP#V)uiTyEhM1x_d zcDfq*c=s&`&e*$c`{K5p!4|yt>!I#y-KmP>!d` zHNZu0R_9vWj_5iyyBZVWczZI?@-<`m`|__LELsEQO>Jc@A>YwGp_I@1ZaYFdPxuVv zvrZMN<@oU#14W-Ag9yjDDb?dByO^IcywrJ#lQTh5$E%J*PAkA$BqouQJ;qt5_y-+a zKO3m$#;1C$rF}zf3T+!0y%(E`;H#;gJi;NA8zPISka#OiQyRx*W21H>!wX==B7EL(Ay6ekNK_u?p>qXIIO509PC zJ-nanFFV!2t(h| zh9)XpKcX|F%cW+y7Z~SoI-P8cpHXfHb10Suu+YM#;3SOtN)8%(UDd+SkBAGaUN-^@ z%?zuApO7w0k|NRIfylq;e&jzpC4wUH(~v*n4|RuVaSjfAk;-RHNFFgAp(1FF@Z#tX+~~-YDo*!t(P>i=+JwWfvXR1Tz(UR| zK=L~xwY0oc7CVc(&N*jcE3-Lx$DNZF#|ubzagI>HK9EC1zS;K}QPeRp)g4D7iwb1I z6Fr5v!vROo+WAF-5>uQETAgBKfh+KiWT9A`$0fLsX_qah$^Qpm~nm(X;$mI`ckol=;U<&5J zoj0r1aTLOGsLipHNQ?quS$ONLo9tUwA+i(Y`bOm1f)lJp+NBCncn`#N?MXvn5^B_D zmiVgo-04Jv;~zE$UT)w`iEO^tho#ZnzY9yFX}pYv@>oI&4uKJ!F{Q1k23*Pr#cX39 zCc1W+K@ftm9h;Bcv28^*2)t}&W|1pjr^%mWGNeg%E|DfhFq;O)lIZoJr8pkPKfy~Z zR%Adu3gJI9Tkhn?yUl#W-t*!a4)nM*nX{Xop?IlgNKs?LED=Tp=((Q{#-JCjlWo#e z(gGtSID|!0Jt-omaeJZ3%4oGyXN5^w0!|X_R%Lj6?xfA5Qv#|N5N>c+c%dl{6NUqX z)AMupJy6}HWbs0ke%gwgdvf}5JQuP0^*Gkmg9#@#49 zr0NTgEqHvrb-5ioJrOhz4j|;NH7Okxe509`e%e4Nkt-O|0{>xw1%*OUP%$b@N&~#$ zZ?-@Up5bR$2bC~HxBjS?)BrK?T$n-l8t8t@8(Yv{j~$mA&%1jcszpj#TBS=4WV0uM z4Lk|Yo46#%X_$CYanFIb6CU01xGtgECGoN*3lEXRSc|B9PZ7rpELo(3&9J{_O3-rb zuS{pZC7^QLUn8`b?SD`xl;3|#`|mQ`4EEOy#H9TdDYW-HtoHt=n2PQFeFq4bbN_|fQwLDSG2BbyX|s(ZM|2bn=~jNnKmsTgKuBTO zpc)D{89T9y_X&^`7iyy?6)xe$n~%e!ILzv6=VrQNh4yUjSp1XcKfsYOocF5h))Sv_ z+=f^I+pX$xcu$u1uPAUN3gWgXrAM|2jf2!+X`#@l5tFpxhU522{UVqHFE<>lR2W*o z2MJ^*t0o+5wX#ZslDL#Cju^_4p$I~P?B5gUEoAe7NuBU`&AzeP`V<)0a`xuk*{6<+ zl8R&#u2PklQiH1%0>ZT-&t0f>x;hVGN=8GGspo^F9`(0C3SSW&Wl;}p9@lh&j`zj`$oDzEn5PZy)5J{E{R-GJ zk&6msglf-~;6lxNTsymU^3mY*jRDRjm& zLndX)UbysGg&mC&sW%dkjn#BUH#y$aBP^6;jI7jOZb*W_+lt%f^knv^?c0wc<05lgsEie$#sQh&A9p7)3e{=K6u`is z_#Usgtf;yG?4|+&7ezXF?j_IyIl_1th1yC45aM^utD{`5x8$BB9XxR7WfL6C^#{8X z{XP-(B_05@YhJJ~cT6gKq){$A$*3!qUGBQDD>9duVKBC0)GO(4p+NE_^`j1{sHZTfIFNKJF4`ax zkQfNSui^{2Y2Z+2*WTS*aLaB*7J^E(vI!#AtQs~*$6|50q)KPQv5F6R2K8wOgb-I9 zI^yE$?lfRpmF`$a`|E$3FQ zTC-|;%|vcua`kk6A~&^a;i(hjt1Hu!DrTqv*4I?-K+$rW&S6^jfVlWlV-uc|cHy2f z5N35A_ln|DPBPOZ9hH&$_QB+5Q^~2w-NCJoMzfK)o3*}`H|K?6a&<1Yu~-Db_+MIUg`7C3LH( z!bi!BN5r_de2}VBK;<;^fhYISfX+kDDhUSSkSlaILiz z*B5&z+6Sr}9L@=0_CmYULar_FX- z*cq^i#*^|bcW8hirkNm47!p7mx||)MGP_s6=nFSpxq61=;oaytisZ!_ZfFOKKki)k z{3;K4TBwU_BLb*|%ZEg3Z|v<${pb*kO=_+JZU$PL`9N zer-@L-rwNBi27c1KVJSq z2n0P`qti86L_Q$*L0j`U7~5r1V`#lO!8kT$dLb@he#L!Bx0;tBpO#~0a>-qc?k0e? z{=7?HZP$|Wp{{fYlrFkF9&XSyCN@|SDpg3N{0OruF$?LkLps4lRg6^oE_b@WB<3jk z+Jq0RY`7>xCV&%Im2(qb(jD9z>S_l))-wT?9^y(&vjs{7zlu&h``lgI5o2QeLU!z^ zox9FC3JxX^v%yLh$IfLDFXcq*R;>e3YrV2iqWUhAM*${8mjJ{2U>X75r*Bvn(znE1 z#z>$mBHitrx2L;p%d_dI6BOs$Z8!%zJVBI!a)Eb+V?i{Yx3Kxy?i{pRn5O4(DVaU) zEB0CKW;1)wMC{?t!p=Rrb_c~BTgSHS*eX&Z{$^L4bdpjRUX!79}br;th4^9n=xNg`G!=%)vaTI~ftDR*Z=W8%xQapl4cpUZ3VD7K(H3AqYqUz(F}>bq)f09D=o%Eb%^c+M z&WbFq5phg=)!duBS^~d9yyv2$rKFdH%Lu>$O2kgaZ|(M6B}zi23Y1^!Bxg5UCUO$X zh-EdNGqwb;!Xs256dxOfJVijuWe{LqDxnS6yXVDRyXYl&ZH^0OijJ-dX+BPWuM|W* zVzuBt*e;7Cs;D2OrHs@vXM@Nm)RS>TSh&m;FpCssmvCkYfl@&zX%m7q!?&mzVYQlV ziI@=oqdT@v*=I2TDo~tzhH{)Y+#MWK0%Ajfr94ejh2xSC`rq-^%PwGZ;DH#~4QA;_q?9oS`i~j|IO`x&?u@Ij* zai$2_-aNx%A^23pw@O+Xw%sSJL|@CDJ*^>{KBr_*^_oS|sD5~9 zI6CHA>w)X~(h`^`iCj;diXHVRlN(!cLce^(;XXkqTe8B$5)~#{!HXeJ+|bBFxgZ~a z^L9SH<}{DpsBwuxKn!_3#$E`X2rT8K1fv-;>BL+fRq~Wd=y1*y9nNJMbx&gr-<-)&f4jTWB6GD4nv9V{A!0;F}!; zI?xW0FO1U^Y`FxLu}uhm4lQ6PIA+OdC`(=P$Z0>YT@r!QATISa!7r+vjq9(GToMpZ z$fx35dMRfVdykHTgHj9&tv29oMR;*6#zfzTP=v)W!<0jCQFh3VzzjuqEbSn4ThS$D z$)mj|@22=fBmt6bLz1JKQ2EtswC__uDk|441~;1foCFzVga{Z>(illgP*rJ^^qaaI zdgb*DAukc0HVI)`8g$-=826|(fIVRVY4=ixndLyovJ9AkVY?~SukA}mj0&XbDz9>^Xl@7D4nzgsK?ZXy8a^X_AXe>Vj~3 zv9(!*POu4cBCY4}7P6n=6&pXp{0mVf%$=*w&V`1SFc(r>pR%u)w9a84tJFX8FQ>$;04)VqC{xv z>9gl7xRcj0k_9dm0~gIBC{SyYDssc5Y+sfD=j%Vnl^gHw>qRbr!za09Z<=x~>nEgb z$uK@9G$A?0nY1~CMH}5j8DoK6O1m1VLRWbwo9IR*Bl@WCWXvh?KN`a1qi+10_bl-K zxf8L(#RKW^d7MV4W3Jw0lwzKCDh~rqlvsk` zfdxS%JQi#ONoX{2YO9RBQ$(7M6S&;Qeq+2ZwH&BXz~M`>473^R#lR3N29iU*s|L3g z1TciU89_@V%tE#o;2zp?Pb+!^y2nz3TQm@7drH{nNUMZ{h@SJZ?-Anj4^aW*0-LQBIJ{&qP6Xxhw0{ZUwGH zWh`U2-K_B)Ah%oFmGL@znb^KPjWdsfFk1 z+_@EUB}u1D6X$ZIplTEG9$$ckMEz`{hZmGNv5s28I*R?8N5BEFC{Fl@xX&J#p{3L7 zdq*xepKxf{bWmF&;%&8Ynn=7+E^-KoiA}9pDdfvbyc2Jmgd9DB#73KAUM;$8llEY&gde97kI!Dye2T`iV-zNNRH!D3*&G6R(*Y-31{!aJ@5_LzV5#Kdy>Rz; zCa~fgRqH33a?LOTC^{!>jHY=wh^R!S$xhG-yaStGou8PTo}O4em0!Jj8lI}FD~>yp zLG)#xOv5b1K>ZJ3-O*Pjjez?UJcL>Ifi}=ZlHB$1qe+m`2;s&&wThf7JRiY^!h)Na z=Ok3V8gl;{c)XXalfJ2@ik)@Rw>Q5YA~$3FeqLiE|7hf8wE#k7wmc=?pj?h zgaK9J)WA5_yvU{?mVnMsqQwrJRL0(JEigk>aY?3kbyhTVJ=wBSvUI9mH0!TUMIu<8 z;TU&70wSV}&o=5l_4q6w7~zh({l%gyNncDrOUe>)Sk#R97TTRIqO(W(LfwH!n|r|8 zR^;<7_qEs4ExicM5Oxfhx2bu?9zfJQD9-pV-!_U;GLd>@X^^u#9#x7Hf+RFH0Fpyz zSx~d68u^F`7RSsCY_x6*uIhAH&??`}%oIp)=E8wJ3c> zlFXDf!jg%$L**hcxCqHkCIdINXK+2dLye$_NOJS7z$*eGm&;3=aINE&0Y-;WQb7g5 z0o=}*$e$Y>Hnw{c;pR<57lOt^hl&qI zgpiFSq?i&?Us5$4JCT+sB7G2!uLQr3(ws0X&a-rLZQG?T(`rlq6g&h%N+8h5$l3zcch;a!$;Lzz;=d<2y7_DEhmonq6M)PW>` z+A%B|1ud9a_<*%-9HW3-Q4c5;AOND{qM5DolowW?bmx ztPrPJa0z)cRwOh%xG9D-UYxABaK{>;9%-3QnH)W#-CcH<61cEX(4+O}O(U9@P_&k7 z6;Z5uTo07v;jz(IIc~=WXA)u~WR>}tf0Lgt)64xS$_J{7<76xblEOk=@QeV|a`?w- z52%%J5PfC9-rM7Y1M=#CY98nrRHz~X10t*yyK7y=5bG@>-<5NRWd5{ubv<+} zArnhzQeOp{iC)DH&sB-TbCu}><-*Bq*A#-5l7?krR2nhLz@6GD?v!p8yESpHs5EOD z2s$6>Z0hw+Jjk9P5QH58$e8rnFvv*U!!yd(<-r+O!gYaC(AW+8)Ru+n&U5xIx{1qi z-;g;+^Ai+&@Q_RIla;+d-PU$OSs-4Q3a6Bg5_vkF;o#*Idub`-)449+?6I4mq1K>J z0T~l#PaO3d^(roAm6mkm_ux`dc9=N}_qD8ru&B7Hl^w3~808lC9wcR4n~+>upc_xn zppL`b!fI>I;2jzyRnIfNaLHGgNb0#{5c1E7oW%GQ;3ju&bX+)JW~jZ z8uZr)Z(wno61!Y)dn6uq9Q+QsY1a=9}SiO-wi;LQPWV^L{Vb7M$+YxLx z2E~1Ca=B0i-~~%qlj6GA_{6!L?bNh-l#79{UYZIj+jef-bG97k5^N~SlVQUN%N`Ex zQO-r65PkR@?5LODgu3;YEo^g>4UU{-tl>B;8lEDf z?QQ3fhHKimflL;6()G{Hks!GTj#^S}je7&urDUQ+$pg(s?1fBtWt#pk0f5?1wuN0B z0go7UBHoQIga<5w%)Jt&P%h&%(FcW7ufE2PDcdm5tE`&uVs=M_Iix~ns*ICuqeEPH zF`tz1*sQd~J?Qi4su~cG#J`hsFpR-r#@aAlhRIeVb$J5c*x1%xdl8>+#S-`OYi7lg zpssiu)y!C7Qf5A62ffECe7#pcIC^cm(b#j+?gc7d01AyLXO`a0cW*dy$A9pVxt6v=a@h&1zJn3O&Vv9>HHGloeip=U5o*6NJ9H{;(j?$N@zRY4_0 zE*8}j{5=ErkUd1-5?suMERohb@dQq2LKIwtTQ6Twi9!IErVQGdMrm&o!0 z^Fksxm9==Fv*V(3Fo%jB4#x*dr>VVz%Nbs62UG6$T}hOBJ=wrwQUI9f)Vqvqij+w~;Y6FUk=!?9EKYm7nJy@m&w8JU!=mCQUG}~E6vCu9u|MQw!2s~~yX>!IrYx?Mo|{1#ymCawDlDDIl+rY) zG#HR*LjjCVrHnVPV6HX#8UpcFO}_#6g7nVKE2r$lVeqm$)&wQ|RWVqnMtc;V;PIDV_-g z?*@s23gKA%VMtH7@JTUT!qZq3V@K`Tvl%aKXP-2FZ1zbx{4akLVksPT((a@9WCp4- zw8BwUq)w{)!vFgU!ReO09Yup)Wkukjl9}Fj^G5TW*Lf+#0pD@duwd4|ZOf zDM1yLW>&zbOv>azI7^SG*tI*!ka^-_sCpCE89QZ~lMz8RWY{7wo-m>UJ6=Hdrs=Md z#t%WU5Ec$lwJ)U_6uqV^)7fD02qwjOsi6u7;~CiO!2Nak!r7+SK8ahJp;)R#nlHP> z<(r+YfHaPaKkmgP3C=;Huwnw?Mf5bmX@?-A@-Q-?x*Aiu)8k2 zTe4`Q$=w1wtlD$oiUEiIB9tY3+8BY~$5&3(+WN0jG=wZ3S1n(N625xP2g{tv1UWme zIfckAemRxJg+SaW^oHd)L%`ra5CI4GBm=xZ0=`TNL}fzm2858hyEym8R+1&8UoPB_ zNW(#AZFz&%G`6h|SgOgM>2KYWTrGr;ii|Z!r#7ESb%P275=~I(7aZ@sOkN0+;-GF& z2|>3J>K=M^2uqZZDWwx(_&!k%-Z<eClrES;jk=LF{HHbNk-;lmSKF z`ZAO#X}#;Lb1!;X2neOYy*}9HbD$4}Cpq&7Xsf_IKbK%BO)}z)_5%;_9_Xxla!0Rq zjGw#eO#Kf~VOBx2m8g^(yo3&tu%X(;JWA%$;bA~Xh?`NV0z9no$mx2-v0^x>sC5G% z2$M&4_zf~Wu-hj-)zh%vgu?lTBfC%YF>wEnM18S12W$*v2)esILtlZT*1v<=qt(&5 zjubv}Fn8Ot@G!QrJd7!=i4}NUd_Lqu2xOqKhHBe(F5n|zAA>VD?*VHVyCf%voyl!> zbc_9rFO!$%+T=~}vzWtgd96H=Cy2hU`5K! zLKWfrD0I7&G|c*utt1>tUt5Xj?{O!^o_xk%EFoJVXGoj7j6%6Vcx}YVWgI4xA_Uh9 zkYP+_$YrYPByVm8`s$Dc5}=8k_xX4~F}W%F?GjlMUVNOz#;{n3cJI-;?cUbu(`yHc zR#JQB+1PB?khnnY0_1^SL~r|&rErfm)jAF#^{CFR(*EcM*O;H?<3!2=^{c30y*Px3 z=N#uv;oOB|%fl`5bdV6SP9Qt}A&8aYI_h(d@fRE0`7E>r(L%n+UsN_I`X*dB!E+QY z>0Ts^a>RYH;}uc2d_P0(3oBK1>Jgs#N-OCHxWv6UY-*I_gIBy2r^OAk?RZ33B}_lI zDn)o%78Mctx?Va^gz^>uIb)v`S(D zIt_tfUvH#F97f!F%S$W9;L=P&VHoW-JH=|PhG+KLbg0GRM;T#wfp``V+@6XINbY#} zo<@%8R{_t$ipr%=TLO~D9S^iA#F6gbttiCwfi;D|*h@7fp#MRyV5(TUsj|uE`rbsf zn6u~+Tp0?D+)I_Vm&wCeR3NxN+pO2!I~%$O$q%g1ON>)~G))+*a;mHeB^-^;(CW6K zv8+gd2BI$&>u{f}mQ|e*CFOtw^N@Fe>>)0Yt#DT-bHdCN?b=zx958wD!aWJu-dMpC ztN|Z^*c9Hgq`uwJ2NfRifE%)>2KCyly&jjk(!N)j1GpcKuH zxt%aG3}(1%SP(-C9XdfDO7^6M5?HMOyUmeApXZo0^uIK9z2woDjBp-@>PtgNxV_Rvn~ zp{XvQeXV8=B;BQpfs3UxmkqsgpmdsPQxg$7=7c#>-;`l=J;Szjf{qw0Lse!%&M}~V zUALRD^t@krfE<0q&{KBZqswD>2L zb`!w^nuzs`@V13UvFu$k?0?~~|Lqyb;;JC_!*L~V1LnEtHZJAVlB7+B>_Af3C_Q*p zUR9B#c4!M)1I=cDp7esu`uNVC5Cg4k%8$}a~;(i zSVH=yXaJoA96Eh|oFghCk}__SX1(81M~`SRjPnH+cV0#MkhY!`;MpZ&7{jr*Ac#Qq;vIN*FQWM094>w$~Xc3DYuJJZ`B8ER|~ovTy2H42`-M z{Tcx(c;{0#j8jj;Sy*FV8&D=P;&Q^fT119u6Nr98@k5P|{f)jZc(5@Gkg1Y30Wk@* z$*4F9vQk4VAkXUx>mY$uaT+zVPC1cX+;PtCg|kk`QZj~&WeX)1cO_{BwZ2PhSfmrI z2IS4ST0_e%QD?pZzvt4Je#{TOioFwYF?mSzl7e>|PE<(9l7g3X4!?o1Gke_t6>Fh( z@l5l!obgPf!FlXQ9R7ARvCH*Bi}XV#B`-o#ac){4s%#UOgisV# zXKvnh+yB9#xBHFmTVxdTq<1Nq1N1z3wa`Lt!?5a{jguv09NHT?C-TBHpV#(+O1Lcf zhHMsHPTa_hr37w-opWjK`Mm8*kf&-`qL6fj{67}Bu5PCCOB+VMUCArWi)uei37pIV zV(roB)M+IHE2;xR>;_-CQRKT0VqReo7$^hnZl4bc$Hee}Vg;HO-GW%NTHrJ23%Wix z-FrSUXk&cTJx7?ub&P3-K!7j}P`6QI)Qetlhvum@hdb8%;h|RqQNIQ~s*}zUti-4$ zIJmv|p4}=;n0SexBnuj*Wbiy&Q43oRF$}bCWa@=9m@eMC*Y7x}_C^#p*;OCAbPnxy zJn5m~J4sTvSaGM9fqAk+WJRduxy?Jb@_Gz2pn+T~hn)`r=~Z`hU8v-9_dT!yA|be< zB0SbagXe1(HQFTfdUClK58MmGg3@Xur^4?k*$HTWLy)!-2HOM}aw|9*QWMNoA_yRr zSHdj#pfL6yp*q2If2menlq;s%`TT&I-79#ZFj^0xT9I#{++MP?F#(cYCL7m6i}&Rr zLzom-)Gbiq*{*bFI@x4~po-vxS!eBXhD!;YH+tldo~i8f{fY=2_LVon5DX-gAv{fJ z2$I4?SJMtn8iy!>TNM3p-!IM`d5jhDuLmyY7uZUub@ug=po2>nWWMzPF-i{&S^Y6dVbcKTS7Yv zJ41hxS~rh(6Y0en9R(pkx@}x%|Lucjppg?2C_BsZo#H*j(1vB}B4j4KrD!%R!8x_- z*vVlDK@QCQhIVUQ|3Qb)R}3ECoeI|Ha1JXcp+*z$5-iu-#YQ)lFyyV{Fc~EKP$n+n zNlSl^`1v*)a-2^t!G$Y1@i=slpCT|1Znzy>SZm9xT6I3EIEJ_+M&a$)G!s@7>`WDR z-k@Y7dFqa&0iYKyeYR7KP(G){zc@`?v|Oqj$au*zsLUU`<}GUmJ6hQ{o-vb($}Zk? zK~)WF34x7~#<)nlkB5VK14t9^Q8P={&7JV!B|Ti%Q)o17r$Dt6FZ6QMO97oguNSb} z78qH2?m}qwHF`xrnGjLhREzYh!n*=;8k=|>he%b16}P-_Pz^oQye-U?7myUDOpJ^|T@={zOLlI= zdh^n9EZh~*fH$07geyT@Q6qs8P3)C^g?Ty()7C9br$t|v0L!#{SE&&ei0(HLtHz#L zrfvWg_xgLChcFqoV4cz(T=GB`bSL85j_EFfKh?lzjP$XF^p!zjLS{QrK&Md|DhUu( zXvaeyBP|?*^D1zEJ91vQl>6J!Q&p@t&~I*RHfo#XjtV1-YEnu7F%n!qn@eO#NjW`n zc^|=Qak7Nhj>+R{Aggk>9nTHTE*%(<@iYWYFXCSpz&oP49`C$5|1?CpjKqv?5q=Dw zj3Mc;3zUYd#qdLT>S~^rLT4sE7PJ<>8=ye}exoEX(|Nas5V3{HfUGPW!cW*;|b3W3dwxGDc5?I5eDWR6WQ1O=~C787H3nIE)@s!YP(+PmvY{3I6$(*VL6#`{?X^3}$#PHWi0mML)R$)ekv>He07)aW2 z)^?4X9i|E!vr*LSkQt3PCi^3VNoycoh_=Z0!w@uRL$%bM)0^F)V8Ub14)ZWi4|5^E zE?AWRmMyf(#XQM2cMor+)cGhXIHpDy%HR1$wNizs#9;2qmdWQQpyBVsnu&XW=qKj+ zJdXJbcp35$&*&~1{lp~pfMw`Z!00=rP$hR3cb!w;wRJ%_KT|FD0I9J6$7~Uq>ZU*h z6|q=xR8v*Vp)Mh;iDMnKsQN??3i%=SO`wx9k#3-Ercu!hi1(jSKV@P1`U47CsmzGq zro|N%OT19!^&uTFHZVG}9b6_x(8QFFeT|ACEGpiCl#C#C76>McQmwQpW|@g$G;}Th zk5n_dWjqHar<&2Dz&N|OR~~w!h*>Kk@CXBC;k}(EkdzoHI9|Zh(pYL-`1T(=rF<1e zZ}g5i?X917O;F9oPRPKIl# zy^oW{G6%q>L2@YIjSRFUC!N#8Ed{}VW*hUxpjE*6s39xeBMXRdf;DA?6TNHerDgt1 zBAGOaq*obDfy6-tQK&y`7QntX3!$!O!riBc0i`%UU>bRoBE{2=)8wx5!g)SU;SxY; zM|ZzIvpxkAqB!Wdq#FttW(Ym&XW)aLB*Dr~M^GILUNEW^I&*j;6g7%`NXLGKho6_m zu@);G-ms3<>M0c+fct7IZ?;t&H+XFVYS!K<2|?0#n)%kjWP>vVKk3}lCm;23&H!`9A zL)2#XO3RWf9g(eX{!*qG2(?CWSXA6N%Kmgj5+cP$~cRO1hGafi<**CDa$8->D)C3B4%3w78@vY=h?z_O6S`$T-l_FX&A z5_M3tl&Xx6q^6j$QLa&+lzma???AN>YtY`Vqtk=ZMrR2b9aS9Q-49S#RA_J~>|9vb z8a!{y*_(F28Hdw;<@1uoPib7RLoe8@n&uFkBJ5FXL;f1wjhu zwglCg%w&%Pkv2OO=EqM`Q~f@pA|y`9JX4xdlHQ^g+3KVFVZb1?JOFt_0eYjvN^iFrLu~ftS8%pulA! zISE$L;Pz`J87U2S2p1h0Yw z7#Z14c-A(yl^_Hg#4bQ5piW7KdBo%2>OIej~kG6r2^5lxG&M@eZ? z!lvPk>?IvCu(x`^_)N1q3*A`E!Oxq#K2W6=rhV$Wi$a*p1oeq>W4RRGVwUY1M)JnQ z*jpVFvR`GlPJ5g&{gUExEqwrthD~5vP1SDBtxC)zu=K*CmEjrWGo(r?#c6Ven!*Won?jzHdwfE!1VBOMWeGAnI__CtY>};NeF{X&tUP01rrv?H zFs$?MST~Q(^AreEV?R%oLieq*(V$(<0d6<*SpZ1Vgv^3cG^5b$KY}M zY7Y#K?htCL6~0+NtDe+F@K#3nQG*7H$RdoY;Ax7YMhvG2l3lT!@EaSrL%%&EdIrnd1kP1tAf4YXCH-R;E z28@%lF~}h|wd84qBQ60HIToFsg^UwDLWtiwEvifL9ByU8<+3dpiuh}&x%_}~0uss* zM`?JCCCU)QfaxEPGWB1a1O&u?@$9`j&d7@;#4K-h1S&E4)~O3!uzXSZd*0{3*YGg_ zHEK$fd@sZ;ou_2aCIKxVPafaL2|uSigN7P5?DY`Jnb7(bLj%#xjHMb_qJ%Dig)CE+ zfJ!ete1(4^Cy)NnPp;aSZ_Xpc>b&<*NDs*Bs$N6%;c(-gnXMP+Z8*ks`vv?(<$Yoo zP+JyNGGtLHnE)SWa7|>bNG4(snW>f~78ikXRKV4zOUndK4fz?GCj1ODxx<6Sl~Vmd z7$YvshZjz7VdsphVZ7qs>McFf?9MU72*|7&hFx^cPPJZw-+N9(<9sL@=lkq>l9XhL zh(_j=!h(1q58hn7Lgty7Vf%v(I)L!w&Nbd0@8lQGT?C;ZyX`$eWdM7Gij-d;!L7rU zHO>LVVM>YYJg_&2e4VE|Dhw2M9zo+^R>0yq=KuyWn zMX{J~^r(tt4nm+*kOQ(nKjc<1Hz^wL`03E6Kr};UnC?4>5T+gT?S-~5blsMzvd34l zenKXS0|faFuLi)o0soIMO(HG%5YUtL4#+nS#YR$?EqC(yZZjVVA$rY)A963Km~|)g z`-N^^j#X2dgvn^-REz96Z$+Fd=07(LwSSebh z0=Us4&eT?HX@{nA@e}V@VOp^8`(@dU}I1=qk;BlHP0IErIoQa*1Q;d*g>j1~5>r6HM* zq_}9Tcxdl&o{Ax*_T}pcC=Gfj;w+ou$xfef;IbDv!cyYZA@{SKn~$(kOhifp37jM| zszQ***vSX=f`sW?EFsfitUn%AlO^CrNmyR+5oEf}OCcMN4X=-#4Lv{^Y3wc>Bw)}B zaPIP%(0W`^B5obCgmg?4MwBn~33Bm09SOM18if}+2hdv^Qe)B?Klf9Q9_&{JRJdUkFy(EArx3=*O z{Asj1LKI9R4T?lU>bSN=y$6*cKmh{T?TU7NT2{(Px!EYXsFyJzm2vPg6z8ybnu&Q+ z6PE2rND5wUK7SKqO>bs5tIc-|J=o1|B>Xs4^ko%Bb~{Pzz+A#81ar$|3H7B^9d(n< zma78!6_JhDeafuHy0k$>Ai}v204XoBd9#3Os!Z1;v3+*+6=ZHr&g=@@o`GpAwcfaU!JW)oUIl^A^o1!nSj}Fy*QPqbVzvU z?;!0TgmvuLP85e)^?k7;pLbA8!}LPquF$kB@t;A}7VmKcs~a8QNh8)z_);g;)$ z5xUXnKp%Yob|3^nkX)rSU{Hg70!ch4y<4VpDm>}78|gu&K?uj7<*mz+Mp{7i_JYW| zmxvw8I$53Z8SdYK{c-+8WsOJzQXMHxZs;8=h~7}{NeGdv+xg-O(hr?(k?-~W=MUdM zQUdDek-+E_DMrv8wM=VOQu~bO&)$N!`RV<~E)519F6x&Yhk^(639RkKGC7TovSK*H zGz{vQ<>EPf#Y#JGoAmf6)wFlv(q_wDIQ>$3g z!}Vr$MN1LfFd#*FY6O#@UQxrn{u)^^H)8Rm*qBUCC6EHk@N+TONx7a(_sBlF`+5Fm z{$9S0Xqo+-+gb{B-O{J)Or65KY&>^d2~K-!6TFy4?i++h*dhfl`k;9A*b@gzPF|OneQqU3xI5h^JRK$-F`3o6G)>&&azQ7GeF8;=q z5Uk+l%!`<(pJP@H!^`b!3ZAAXgsgz-j%s6$bQ0hQn`bWTlmj9&vOpe1aQ;~I1J$q# zupSMkWYiBp2*a%m?)mZ=nKnhLEOTn#z+`N3BN@G&^k5-{;VlYwqY0|xfH$y~cWU#bV60_OmDCg{l=es{at!GNRO*P`1)U+Oq%4#??o z;;kk04DwIC+fbF|uve($lnXNZwffj5bX8sw>+mMIkpJ_AQkXI85*#kx&6~j-rDz@2 zp5Gzk2)~@RI>|w6oET#9s6Ng%ptE30>GBcS#qE3T7-g^U_@J;=N&=r6tWF zc`+l0X=|9(N@t)?J8%N=!Htwxd`~aDRpt)|M!1tQUwC3HB)(g$bbPxLGI7!grjLR8 zggH$XJGVx$OKNiym6L|MHD*?Y^NuUQ#0Wc6ncXYuQjFEj*Lt0gi3+#yfivB$ z1-0u4Of-raG_ZMGqNvE1$i7d7Pm#}1OpqBJAt=|IRUeRGnjq~A9yj!sNZw<^`DgA` z)0BAx-^V|_|M00!v7pV5gY;s9^b7T?Dv%?h?WbN$Y(XLK(9=$5E|?IVM>*`(Htd6ecb8KP^l*ByMg!u}ET6d=R>fEZYhlVaM4gb}Y=X(+wP< z>V|L+t}jqdlm}bYxY`cGeFb8|yF?m5eNlDd)kYl*h{R9W>D02c3lJkbhaq=m zWPwpsP|0ie80R`*eM)8r67rz}EwPIqi5;nLEiAOUrb^dooNu8@i_hdeW#%4azSV7H z`H?BDjItdc+gP0+ZZ@r^AwV{D2$#Nr^rZ4vH;b)~=Jf?!b&WnkeSohQ#iv+Agy}h5pRmhlA#Zl*h2h{jg271}7|ib6n|FS!=+3 zQk?cs7yRNRmX-v^Gg5j+96k=Zgu_`ZpS{3p&>upszE%&aV*U2lLvpN9bP zSgbB$)PD7+U)hcd^YNG%YWt~bGVISfRgrnfdQ6AphZvP$9o=i$PYafri<@KjDI?9h zDfX9W%+_@*BKK!*2{0hIBTvi zMU?0;JWD)*qH@S2#}Wt(rI(26DwPfH2vXjgz+d(@>AfxdPC^@ECFdFaA3ifhi>)IL zD7gFch)vR#a|YTa0kT;JX#g#rarQqj|K{(&+W>Uyv_lY*Pt-a{|G zBxOUg2z)bqZ^A5;-@;3 zA=0|VAf|U!^ibLE`{AxC9eMm4*grP~^4@I`e|NV;Y5?c%5M#qr%pAEO7R!Xqqs)~Q z4Nz|pmr}66y{d`|uG^$-!nUU-s@MFHVCt@uL0%{3dx9;{ZPMIovYicd?RZ=X&S}EL z&po}b{WJ)uDa9_)%@OFP>Dvk89F)qAo?iOQ*p_<4I6neFEBI?$%4IxxM#^OvHDKvO z==;jRDB6tIr~=hLjtZ%8RNetbrtXc@_J{gLVMhs3I19ZXPUO=;j)h|PKsKqzUBfh5 zHM#ihyDhFXp{7WZbC05cT(guL)GJdNuBas}cjFN0Hl`Fr`*7sQT#+L>wNfUJL4B#$ zaB1Anfnk!!{nlwwKXR>b{KfWq*kO0B*_bTX9iZl+Pg<%cudj!0t^G@-T~6VPsKUD> z(e)yr)pz{u}KXhmK=IaYlAv;F=?9gILtb zqDxGwQOR9hatIPC&O?C@CeZcAwLV-2NI?c#sD|l|MU0az%zc?^t|nuz+s7etqTtvz z#vl07*en)vm_d3rp8~ABTcjvY{1nDoxDt2Oa=TWg;J{e(zEa@8<&;U#HNBemqS#aN z(}<)p!5L&fM@j}f&c#I?af(|WZdh@M!#rh!t0k}*KUUT&+iv}o2l zZ3)e_*R^W$nQ)q-X}}=U6f0zg>kDiA7z?9+t}XpBPI73fQl5pnhu&t>HMWiCZYW?f zv=7Y@MTag_Wv1gDe$Hu3(FjG~V!nI+OnIKLftXql@e#`zMlsu;OAW9lvg3 zxZT1X3a*fd%W!KFQ3A-wA=2$CG5TX|DKzC%06=p3W2kEs4-j(#55B%R8G~u$oJjQ# zA4O7-s=h+qmdD@;Qf%ZDv~3G`R=Ixlc;uY3vN@4@0_eYPbE24T*dSVtcsh;Nqe*SV z#05tz{P>8X#OXLr=`^6K!=li|HKB`^y>$Xc^zwmr4HKWXg*ZpNBl0QC$q|iO z0T9rdx2R#7O{kDYIk8B1+7#z!A2=s)`|#%dhc}=8cJ<-?=bzpn-Ozr2dk=Ft)3`Mt zp=?C5(ct(0MFZCrZy9@)%|B=Z*XeMuU32x>F_ha@spCl9cb< znCA{N-wecJ#g!qC*-7WS<$Vf%cg2XC3k{@Ec$*59yJ;_9OxyD>i!gpU}3yR7_|DW8kUCZ@hOm->xET!3s*6j+Drpr zg|Ls27E9A>0`PWsGak*yKmRPz)>x)63qk-ogW!0#UZaZjK&Ye@!a)aryyl&0{T!-~ ztWM1R#SSqJ3sYeuXiD53HrnOukB?9Xf`Jz?^CW6)0KWVQj^BIcBjo>QCy1e|X=_^H^3w1!ME5Xg51a(~C@PG|-*sDah8cjraiWXR5Oq~iK z1Ev|_93q7T4XpkTbCAMu20}t1Hr8EiMS0$&I$4Q9N-R z=xag@nEe$Du!ky4CMUv;TKqooEn`9}@)P!K0+(nld7)`TsKYRp43>3H1RJJz2sJqI zP3W)cPrX#>c>-OTdZUPvi#ExYBz<`2%ealpQmW1;_+OmdNQ+#)FdjCQ0b-)0Nw`6`ZK4tf<5v zP&lhGirs`oT`sHKd13eUq+hN!i7S0qF#nVWrjxp07_KEPc(mN9n@23T3gneGSJ_8E zDYAVeg%Y~nq<8WXOvB0_K3i`WOHc_W$QiD`9uJqxZ;d%}O_4LK3R^ZL_FNYrjY|42 zw#K|Loau6xjGlh>WK$!#iwEU1KO!U^BsZHkqMGlC67|G|@CK^R zDYF0d>K__NX`xtOU7>DeHL_w~I#jO@#Qgl>(?9(sp4lV&$s>&{tNgTvj6CS>6+eZGqYfbMApMO4~5pbcp>%hXm6| zNOs_K?0l zG+)FVCt2gQFeP1OIL(zeTZ7tf!6-9QGQFH%&u?!QS6++7H-8tJrbk+bRI@t==x{K} z9{}o+m*?F|x!adi6$6ro7p`q+85~7^1a3h3FSh9pLJ4FrJw%fonfpxP88KzgU|-)Z zem^tYx=+nXZ%_=fG-EaZ(=(a+Xtu`PWKO_WF_x0*#OH&5BoHcVEvGOETLUfD;$#$s z&*g;0VK?JW6na)ImZvF9$3-G}*bQk&jS7dR&TwdHF|M!))TTi>jm>ECN_y4N*y*z82>oYGKKI}=~ z`zLOBlHH>r$TWaJHSGrTabbIk8n$-ou!2_7h!a+PH})E#^B!Kp%!zVQ&@7_4xPiis zgcs)scmy2bJrZp%=Eo=xgy4sb?}jE;3u*9V!776SNt{wXkvhXq3DNpudtiltw9pK| zmT8qd^5Im%3?DEl8Y-(l}86CTgbOWZ8|7(Uh zaGp7&HX^2Y-3w5fZY?c&v*bxDvfdH@CR`SCZk*)|S( zGNdInKdq?w=`)>n{Z(~Mwcl3N&ANPP^v)}ljVLlqmk!d1D>fUiJL^?|{- zOOAn;5L+QJt!BQkzliNgC4x1jv+Ei)O4C#%S4?Tx@Tm_{!winNceh)I{l$X#jF%&6gD!14nl4g5eI;!2N81s70>g(;&qtK|~xJkmr> z!6S+hM^Zy`uVesPaA_z@SS zd5W!518OVu`9Sj+Mrj>(9n;cT#i!_o!tmrS2Sx<=iSVFTLZC2_G^a^<*>PxwpAjEH z6pqIv+X<-{oux^`P9yyd1-i&A^c?AefQfKFwV(u^He-{O^waL#KCse5t-4;^5=(+@ zH?>?}4_l#}f(vKW%C(oW@N*M+>4%%!ZXj6!(v!3~OzMS?TTRJpn6Ea6jyTt+O6zpt zwg=5_(W_GpkX|A-)U+bspky4qLe6bMDv0`O4|^HJ>cqIhQh7Qk$mR;IqK7uvZ5$_P zIY(k$3F}TC_wOKj+}jM0kjFLy8qARnv}b0_K<`^j#1Jgukx|7WNq|8l8 zB{l$9PA~Gc0ozPAzRSRC$|_(XrUCC-IVYxgjPx7;>LWz7%3R7F_i7NWE?oMpYt&Uo zc34ykyng-ehqsR(Bxkay>`RHaxj1`~?K0bb0%F@DO4q$^-qbHxaO ziA<&;!EUF9G6n3y6D6`)!Y$VNbB8nJpq~61rfE!M7n_4e12W*H?PiGwVjJ-L4{ZZf zHS{uf$N9UK+q>C)irj}kDP5wu$K@{R8y!BBa)sd{QBg}t)+Qb^#rBkfA)3|-FtV0W`O+u?md zXM%b$MR^OTKE+o!t8s8@#5u3ikvwAaAkkAEq=KcXfC|sK0`7`)AyyGRQ-2KKTL67p zG>yeB>d>zK4xzJu$y_k=&CBL{jZAJ5R4*%zMS8WinBM^xv*m?(+FNWY6Hqru*H5j2 z6>b1AoIk8Ks1}&TCeskY(m>lJZFZ!Xe)NLhF zQ{jX**;8UA+||Y?Y=YWSP=+wiV7TIE{cc;llS+Cs=2KI4KScl{vg0pM53*38mCgDd z%~WKM>91K_K=aJIrq*qgag`rw^xmV3{X$S~L>@F&0fkKkC)xn@y5i(Vc|e_UE{D|+ zbv9ki#qJX78f066)78b)OOu0!8CsacWNF=scQ-&iPTPy8B8t5BABc8n23R+VHFe)o z&(|4OngMwBTMqfg(FlCt#*2eeCx1Cl#sKHjb0ogO@+Vdt)ssp4$a3jE1b^M$A+geC zhJfLtzr6n6U;X9HJ5q87?CJdg&)dPj4!i|9ACQ54KfqCY#2cRH9!Ik+pkSh6J zZWQ`JNr+4va9_!fFtS9%UO3ukfIcm@A&LSTN17a>jP0y^{ub5!V(C zC7?hWXg5&^-%aBI9=y8JYOw{itU<>S?Ot!w3Y4*s=MZZLEeOj;dUz%TBtKM!XI_U__ zWT^_Eh9vSuq?N;W5p6{};vO~;Lqwcrf0l!k1EX-1zKn+RD!$aF(YSZ-m5r}R==z&f z8bvpK7cDxBBe7g*lj|8Q3&Mf{Ai_%rsS&fvI;l@F(7o_9yNISkCXxYX$Z|a?F$pOE zo9eh>GsmU4;i2Y)+|DQpIx!#NTgv35$;fWQeWWiI~aj{N3pmgRyvbO}zTY!XszIu>JDubsd%@rCDGpN&vya`-a;|{5pW0qW-KCX|L zo)x;|$7DDKN7HH1`l|JMGaM~5b5t0=b7LZKbGK21EiPTEN5$t+`dMF|u_RN3JP}X9 zv1WkoD$f7v_&4jOopp1BLZ1%u@BOJWC&sh7w+?dv19Ku)f?5?;fSw6u><6%=1QRbk znWV)XsCQ4NNF8aY^@V4J+nWn;{k`R8883h8vDWdId_eigU-S)NP;OLAifBNmllje*-Lb4|B@@i{ev$G6c?xWYbDek;L2k$VBjd-Ao)y6EKfQkU?(yx5aLGB4 zS%#iBG!Z6lb4t#S3A0_vC??ad)ho)ocy25|26%r!>|;T4u$d;4Gt1>vaJwWi38c;% ztio)-K>}>1WgL;t546=E+cM-nwzM^`vj^op6BX9vLN9@M#ab@W6_m*h8v)6NOU`q_-o7` z4^N&7ENG3CT(6jsYk}5jR$$`{6ux-r&Q5_=P^RH0js+`E2U9>FU3ZJ4k%FoU20&N%bD!9t|TJQgDb(csTMqBLvafKA8xd& z4Ig&5?bRck-(7EnN}K6&XuO+6gB90$5f=p#S&>05#SENeV@%ycv#66)6YOgzS1Eeaa%g5GG5cd=3JpkpEfAt3vkw{AsOYxcNGF) zh-5M`3j!rP&2Ei#xG<-rgy{wy3Tsd#R5fzfS6*#~r_Y?(W)xbm&=@>jB8&P}oRi|{ z{bl#)&7|N5yy*ErHy$7ArAH`Ugb7C%xA$vsu%xP~Es_!dOu)Ym!bX?pU^uAfMD$z+ zUfSGPJ0lVl@ZN&9RKD`$QH9ZoKMj8F0Q(wX^TD}Yt?!mg4wdjpen}E*72$bjvGMl(43mm(lgdmCZh6_bu!Lu>2y*Wwqr5FiiZ)($jZf45+Xgz zVi{aO_6zM>t`Z2=)&3r_E^utXELcoC9+{iww#x1a=#PmjJx6b`W z!tL_Sr`yke`2&o`90o9jZPI(}VrCsN|!&p$)X_X>*7>3){D3%K>$$9|`|DmiZ9iVpUj@i@^Ro(h5M7w|T#Rk=lX7Cc< z;M`yBPzhja#LqD*muhCN9-x%y@=Fr8mpvo|>PCb3<3T@r(<-lwg&h z+b@Np8X{~HzH^kUxdDGAD65%+7M#Vs<#3c|Gi=hVi4uU0pYm{M4rGOMvYB?pGx6ik zlvcahDOzX8sX=)m46##~8*ObFb9uM(Mm4P7H&FVfQ&VNrxH!E>Z#F+a<=T#3dVvlS zP>h=i5^IzfB|g)cqSqhE4h(mj^)mr+DRis80=*y;v_RFBSEZ9S74_N0x`br+ZL1xc zyOnyt;q&MJp)*vEzgiAaP4vI_#8LCa(SQ4ih!xDYOaleRp5<56UKYnqtv zt$d`{WAhg%CG#_$QFMNr?r%50w{(iNT-nn>8$~ilt~*pM!PJkc1d z&!pbWu2W`t$C*@x;M1GOwz=3?ADzco2CZQaPsvgR3|-tbyyl%1{MxYE=ilTG-}V z4CA*@S_(+`!yg|_u;x9;iQ0Ouaf%p|ZZJKnluU5k&XOyw?7-bq?MBF{zu z^i-1*uIMUs^+JlV0zVsInoJrEl!1qJ$#^~{g%%|-jITU$`|=#QPGjqtW!W7guIwDh zn%}k}vnmT6!CegQxfgH$_7!C9=z*f8&2Q^Rmj^42aq4!Ja*ZMj)5L;hm(_c(ZQt*STyS2a>sHwG$L#%X* zXyKkg+cF?#Sf(R`EEMdUJR9sLz!(|8z$6$l%$Q*|4HsoXQPZDvNID$nKGXidN|1z9 zl2z;-hZO@z(jLj1Nq~)IeE3A^Hr`Yi##sc{+>L4~%x)Q`x6{0V-VaCvKdi`I1yI*u zq{jQz?TjLO{qPRhM`s0V4#}lG(4Krq{w7C*!d6mdMAE@vvJ8^V)*n~H^koQ>y_xK9 zw?92Tq7a7hv4dz-xe9MI0vDc!vIJtglORE;Ls+aTMiB1e;Z zrvwP4&+P*3t%dJ-L1HwT0QoeNYlTSCTaCQ~qvc*-PrWCYMg5k2)m%Q>re7OVAuXw; z-h;0e6`r4;4}Ogr_4LfEp7HC!KhpCp#SO~~*&R9@k=UzO177%TNIi4a%5#oCuzP(!yj+A=`F&1`h1}~CgvilHZD7~~UJUZ#&g3E$JkaP6! zv>Rp@p!ioQq>YT@ZI$Y|$64bWI%_moda#?uMd}BR<+8~5H9XxtmGTSV&Bg6jIlqK6 zZdr4ey0{XGR#cJe@q+GN^)Bk~;|M52D0xUa8T{ttcyvA*pPZeI&re6^=Vy=qIzFFA zzCG87^~O0Sm>#RIcCjyIqNdaX9%-R(H3Em~yt5D9L^Z zTz%UiSi`sI?GaJuFO^U&P{^`xzM;se;G}LqO+^-Hj>-m6( z%^mWk`i)1Bmq?@QMDV^YV;T!G-(L689N5C!HtCgvJYkM2U_$?Tyr=%Pv4cQ0n71?{ z_UiKNNE1c-Cqy5toPJphdvV~%w^te`9NCAfQ0iFug4T627(^CapcNukXIjV>&>0aEn&4{sms)7%gd4oTF#=mmx(9kYMP$xDtXdu3|gz1qCg z1J#LFdLGYVI<2s1eBxqML7wMS@W6CT?!*E#z&zrx`q=l!m0m||lwdZzxI-3O$U%O1 zVbju`M5ocA4y=ztDkCl$C_UU?-0fBm7l^m+Ha!c(#|}e1OQe?|KYl_6pIQ<8H^r>+ zEIUx6nrMpXDKcT4pxrj<48k>{fN1b0bQv!Jb>aQpcGGb&^mgB5h3Tlrn8X#xuSfX3 zbTIZY48|us(~`{&w$gmL+YHA-bZT_rKRytXZ*@tANC1WzGasQFb|`fTHAEwG@qtf| z)Qm6?&x*<94l1bKh|UaVpIC`HszG1ui~h!H5X9d*vkcI>lzE^GL2to47SqOuiyT-e*MSC^@sO=M4`33)(By5 zV75+napz*MS$MI%^B&m${kd;$3W;?0R5IU)^J=<_j71xlODK&+v9ysDhj4aGXi!z z!H`J#()dI1TX-xam>x-*O=`dWjw{w^I~<^nq!!%jlgWA_(h(P0X%0}yCluL}^we~y zu>rLm^vuj7MjodZ|K&VRFD#FfaXli5uiS%zp3Tek@_xE4Jc6R3bO*u^M;IXVbEeVk zQ#bc?&`FC*Wb$BWrErmr1kgk{xh5ewLo0so+zJaC2 zFWHdc7XXbP97C@Ajqpe+r_hS>H0UTU8=$Wc5CjA3)%CR?Fx*T_y?I5E9w|>`{v~OB z4j)ZmXxeW?Q7d+$vysj&c3?Aks)^QYvxyB^)g}CN=@f<%`5}#O2d2$|)OjbKSP#ND zDGt9aZMy=jDIkME+s^dO$Jby5=Wkzs{L}jVe?ESgzW>j6BJqHN!1uy61e8Y|f?t3E zMI(nQ_CIJ#!csX3?p{G=r8wX=v7GXh3Kn);e*+7!M-3Cr@ z$O#Nq1{ByQ*bXvRSTHX~q4lPlvC*h(0_*C=%U*hCB*|k~>*Q{Oe4a_cXJ-KB+Z3c^ z@@OxigJBN)l%!>h3ad#+l%h#RNPJ$_%rX}7vS}>~b0=Mv+ux+{DvENqaA#Z;F>_il zF1bM~N0Nxb9I&C-jCz;``4|$B4*947Hu`V<0{{@qV26$v0{p#b#*PjOe^Z2X5{~Y4~(XZfx z@T>pz;aAiI;l}5@T;NJ?`D*YhgXkFpJq4YhzOjOasP3|Y6V-0TIxqO;G>PBwJg^Ip z5&kdK_24*O!SS%8eJwZ=gA3J5ve}CJHB8;L-9!0Tszc>kK=&>vUgnFd(!U_L`i?b8 zwAb?F9s(Xk=ERHS>G3s8v42If-ql}0yFR@6>tmOAC6L67luhbRaz?()bj#mX*y58w zH~Nx5*VDmbe~?y7P7bbxk1M^EXXEY_2ps+}cNQs`_MMYa9m4JxXif%j9Hd;7sG#Q> zs=1vOs-@EYHUSA4l1q6BmwG6BSOo8CGMv{1)p4ypoDdQ@>a{7WtBRvg&SUNaZDl0bj#)H zBNI$hqbAeF4@)FAgh#E3?e${5!x{5gDg#iO2|}QgPb-GNg%q0x_s8OQ8ui@O9N-@` zY^8_uEEh-@DI=;CDlLWvLqY{B(Rdol5uR}JDu9CS&?I4DTc}BF7BK1G#Ef;EiJUfQ zP+z9egdQwbii?Ps3xCYWAayKgoD8244IdW}?uxEzy<59#GT-^~h+J5;RaIkY)21Xb*w$N?)RhqcDMa350=R!Se9kukfh6z(CcpyL| z3f)6bUf>H;rq~H<`vgj9DIIE4!>7Oe^x^T3|2BYz!W0zl=fN$V3a)8?YwwMpO#Nw; z;NWdfW&h-fWnl>5h%E4+5ZGF1-lu-rKtZXUBvrp7pJ$=?CCFDNtT>1xb+?0vQFj}{ zgVTAG(3WN8iQC$s*VtUpWk{qv6){u=!FvSt%8udLosbCBi%r#7p>0_5I#lk^u z+Q7EWO#}|(XIyEUCwDO!7I}rWrw1AQ#6;?N<;23`rdoxWKG&0#x^I*P*{P8W2tE#K7G2a( zr)Gvc&+h17{}y(2vnJ=xwf4`-y~3H-+!0I#SU1YTitNhdW?*YQaYd+ek}ees(&;1I z$OZ^%Zy4Gj6GZ6f5F>X+G$fi|P#p%g6C*#xO^U-K@{^IoUYj_g*W}&0k zLB$}ytJ|SGi{KjzgFN;sKKZH0VKbmmc3H1FR5f1{2B@M z&B|^Kb`wB2e<6U&1cYH$n_2=)4Y7GsG73vVaVkuyBFu~2uxJh|kYTuDT7Ihk{E6t$r$Bw?wv-)Y3R5yjKD|exzn5xPRV5PwkLr7#v>4-$aYu+VGI10^XGg2+NSb8#{e6z z6V!(35Vzm9EPM;qM`|VIG&(~5ayx})+u7zGB=PTVK2q>pxqfimQRm!O{Oc?@X;b%DW0 z^oBx3gXqgt6~v5=MLmolK#J+~ni$-`WtI{=&;xG(V8G#?$))$$)P;jgZSlW8mks78&jAdK>IRW&o{1*45LvE?kGe41LNTum7r&P zm_snr^F0y(+w>-deCVJ|w*xa+eQXSjN6<;u!i?o8R(?2gvPObIas>6k2zcV0h}*DD zp3Gp4v7o$FIcc>!&+l5zxDuM#=V?D|VF8`*9xkAM7AM+qx;p?4&YFh6J-OZF*3x8D zPu4~kiS=#nbtJyq84z>R86{^2s%b{%t*TpGyXtd=sVc)blx`54(SkiNbvDcGiH{)G zGVV>gvZs&cHd7qsg{w(UG-)>ZdC15(w4^_#3@)zKr^kT>gGU5=Oq;wVE%+!^*s(2F zDpPSJAoXUgM%4aDNmY_TxTzPYKpuDaHe|jKHbXO;9A%1@G%)vx8?ix@$PiIW;!9>E zPA!(!pqC2>kS3Q12$7p~#cbc*L#V%lHV78_5=TFtG~kBdB{Xihv{f(Sug{FmmMwW? zF2Pp{Wr|Ztn)+G3nk0sb($fgxO()EB<(8IB0C(l@Rc0rc2H*I%$QiWGIK=l7iS=Of zC+y9?5g)7F=T0VZS@bm*-tI;a&XqpH4nkt@mlYc$_i6@cWW8jcNiI0T_KrXFA?k)FGPsly$ zm#!%c^8rc4=1rOcDXkSnhupVdC(vj$wDV?0;;o#UC(>?Y2OiZ%IU%CgChoe2UX~T0 zNVU-Jj|Qk4aQeJ@g_&N2x@|B#9-iP(x?SP;U@<$K8 zc3Fa6LklhuZxbCxiq@bf@V(VuQM!|dshQN`LMxCxdV$b64=qZY(d|pmr~R9#M1M?u z=i-)Jas8QtqruU;_ix_4MH=$wZe@pXPLIbEN$9ws;(;SwuJ51%Kb#4!7jEOYUAP7%rTm9svK<2c^6QkFUOFPh%L@1GFlR^g{ zGjQXJpd~hROv=m(q=gr*1979MPfbc&sBX#lL*08K>VAf{P~8HX_ysbt9CA+S0-dQb zs?V%IAzxY9O;zSN_&ECBcsY*hjXpCN?ZXChg9+juBx}QQ7G)%T63E`zk<+${)PEWmkZwTm zRNP=gy_kdHhoQH|d-=mcfLu+Iw+XXf8ifST!XtO>U+yQ`z{cTM8W|Z_7B#V|5gw|O zuREi!Og`d%-4Kn}o&_TwUsfi|_F=xi_{y_7xLE(u@c{sM)7iR`8un75LITN;%CimT79 z4dI|F6QwW)CKKFE)*l`}K1QlCnFD?1{JAw$r|?JLGrcVL)Fa0W@y&Lg+_2q!`#41eL}tfh~W>!(KvNHgrU9l?Elru}OJJ!4anyw?PSZ zj6xAAl+ksU$`|fZxs)cY^h6v(gWSw+kWcE-N#E7QpGv$ToNmnAvlOFNcks1Tlv~6s z_SK{PN+g|r?kI!Kpfw_cDa^LWn_FFJmb6Q(%J|s1LUPUg0wT2;jnHWZ6d`U~7ew8hd1n_KWf0mDz~HgV_*Pb^HRycmiDYdzNous$Rw%!JYeGV@$Kustv|p0_&E9L z?I$C1ZL82zJXsxZ$q&eenAwWSh+TQ9_SAy!Pv;0!->xNv`KM+nAc3hfx{RAQZ z0g`jGhIX>lu<~O{mB3DcZ^Fyax$}DEWQIU0~JrR03=!sfwQxJO)u3u7cK}4rfZtN=zQ)$?pQq^;7#D z%94|6!$V=DFEnRZ)H&`sClXAr2dbH&Ri}Hpa`I;4UjK7k*J;I+LG+E`Lq_x22HCc+ zbhPj9Z;s(Rj-|vASOFHRV|$0yAsjgcjVnz(Q2`tOyKb#|Yt;Z~lm_pdixZKn*Ce=* z?Sxl3i-~d7;r)&8zAW2UV8fqW$?KYXhao<@g-jwkK)?V7MQ7>&ZqtII7foqUX2Ze5 z@pk`Om;_+fp`hk69|0;ypVAbTLIkaz8f0jk-OD^(>Rm?9B+rj6{kkZt4YmPlsF0T) zUjO;=?k9`u%9k6iU<7#WSD1gJ(xh9W)X$&&+||B%)4^H1Voe=RgTjBPTz^1<&((u? z!?15i>E3Cl!!k(@)Q8U8Vk3#mHK`q9e7=OhQ1vCpmmHCw?53DhFz?|2ejrZXZ5?Ht zyxB9Wif1BNwtZ2^SD0sPuPB!Wt*N@4f_BoK({h9B+f!R44A+sX%n6_@Ooomz@sV5+ z{ujF-R8P=IRq~l(kM9vtGTSzZFB`B&x)MGm?LWL7pr*P(aIb9PN!{MtL1QYgZ5U<5 zs6ZxJ1PlZN8*8$>j;{>KsRK7;;*uEe70%jmr4Q{8+Y^}>Dgteh7+Ds?$(s0EmxUXk zUadpRozPCY$+3dd&@K+P-6BXljf6*#=zMsFMeio0K^SJvNb|5+zz>kw`IKSiD`+wB zqe$4toHIv}bcRW6>a;UScChyrfpsl^Tp!L|sD=;UHCWTknWl|+Xdq%EEg)qv8O2e~ zMK=@UHAJr~Mzp1)(x<%xPHTQ6N-xZ`pIU7X#AstAic?ez*}|VWYkfTW`5e5NHiQ)w zgkMi}rMK`jl8Gc@H>eF@H)@<|__Uq{b+-b|mR&0DuaONN6FAiE+tk_g~0MHNRhh(Tgk?ls2115k}xo$4t9|||I z$poosPzzK)?YoVifH5B52FDPSrszI-n5XFgMFwE}^E8~w-gbk;88tmK2aScsav&(0 zSljJjAL@?Kh~ep{g!GcO03WYz$f|{#x6RUKSYUeU9BVOx<(w zq+28uf(}DF3l)YylAv0{H=NC9P6kEIg|e}a=U8pwfKG;D#k2)8P{V>y zjVzk|U)4a|=0x^w1FP6Rr+JYTnY-0h>xY-Lzk?G}db(bLx~(9yYJ|B#!xkyOK*E0# z9>|-e1(acWJkpSm1(xFwouTPWA?N|ou(?(scazB&`t+5a9Di@zSl# z^fW_pcYYpelePYmvZ&Hyg_Ied;oY*$aVX1#$@w;A3LW2=mWzk$hvx%D?|z6g+gLiR zm92hUYMjLuMv>C$Do=Q+m>NE&#A>x`&)8jRP ziymp)&!}o=I-9C_Vs-|}n9jeiCI~`8`qMmbqq}}yLyfC;9jfL1{(Bt5dNz>)nUTTT3g;1!+d#sZCy6`}2co4QCJ z;X;WU%i~HrOYlfZ?DcW@@niw5@ZQ3_*^k}IgN#t9;PZqRu7Da5pUo`M$UOOyFKbSK z1XAaMN422m`i2fzH%Zs?1YgALCY2&cEOa($_-bjquG77_fSJ*XZ=Q~A4P6-RUBd*^ z_Z0FCvhvj}H8xC|ya=3;7JHs;eJFxk0O!pZS2$n^IR_L-aN+b$qW; z;keSnND80Jzl)PS>Fm&F0#mEueQ=24Tm0ecl}+?R5iKQ`2(e0*`{HZ zFY{B}zse+kVlx%Z@XvGCCYokQX_M*0r^n4)6-b{$H3N(9+^%5WfKA}qr-?pboV-X< zfiO1tq88Wr6D`}$$TdZACAcwWBjlVJbu|sN-V>1L5iF{Fp;~!bGm(M10X)z(^c{D% z+r`x_B9@t26Y|yV-Go1n71oRtJ=!JRNPyl%k0lgN zyFnes1tRVW-QJ)8sXAi;b5Aj*AY5EivOJB#}nX!$Ub2Zy0-GbE#MdUrkl8C*x$R1}n#4f2>QD6uu(*@VI699I6 z{@F>U6Q9!6(6mJ3`phq|jVxvZ#U_nmVPZyP!I7T_+HPJ!$+La``NQ|fLi~JCsurp1 zQEZl_day7p-m!gvLNU99bRX04ma%=9P{>SakSaxF;z|nu4$)N$IEqPa;F~zTv$P3~ z?xEYk-IK9pZf=nT)izY&Z=l461PKp~4`5PYT2Oq7g(oD#pdlUt0OTQ&=L{->fT`hT zQ6Vt5enMg*Z;kn$-CQ6gxob`sW$d1p#3Vykn_-0g!5CU0FgrtE1``S-Rh&9-3H;OR zckdqGj&h>BA#?)^6w1~~|F21g8BXq&<}N@~ctIr|0~uuzutiimwf|_2pqESJNE=4b zi!QVt;`>2uHb^OJPw)#tdAfDdxJ$(EWO2uw(6RQGeAC?hL_LVX&3JJYcp&dC)mo1j z{a@k|Bc`y|DMpYlIeAHmHQga>Yty78aJ`FA*3ZRJnIhkg0F;b{O#;d>?DDJgfyPiZ z^@QLDrUt_Un^qm8Z}_S=o0-|I0)C+h6V%PLwy*pmL+zw*J->BhfHLtcB&N^klH_(-AY2{P^ba?GIle3+`vc2vi0A zyzSQmbs7AR|1sbkJRkh_w?&H{rm>fNZgB$FuxeC@3!I!-?M)8SE;Y|EIpQSud=>s1 zbk+D@7be1_V}gm9bf}@BnRxbaw{|9-5~`T#6sCY8^KFA(N*Y9cP0HZ7o#G_Ac=!74 z`{e%F0R4l+`i;#8*4;JDZf`OqXdp8KO6G!zK-xX7Y>_hX`7;aJoWnbRdbPW(7P0|p z4#n75zI;$bFikKXa1_PN_ja+HrFo99jggeS<&7;kFR~jPeD32))2D@Yi)X7{3c)FH zO|eI5OU%Ihapc!{!i@P@kqDTd6@dIn?w9AwEr$?0r#Z!26t;W+m!DpLc=V%PjmjT# zL-xs!I@r`9XEoEO*BPXIo7ntO(^-ReZHd0bq#4RN(ASETyDDLf1Sk9mFVqL5;8jE| zFmk=TM%9U!S5uE0O$u|0NmFHy(3#q-7(5;b;n`Vv^6PRCSWJ*s0BUhjmLZawTi@Yc zp*;13R3KX_aM#yR;(~>UH0o#Re8e;q%>~tKdD~3&T+*Z^`(m-dw!v9WO#%eGm-<4e z73p%n0PApxd^d=W1L$J)m}|D{op$Uq zyaJgpKp7V|pjI z`a-U=mKH6;+*DEI{*p$KzR&f#9NFa*+xzm{l((u7@)Jm(kS2e!m{)83@BePa*RjYu z!F-bF_XnT<((g}J^X=vWn=A#jc4SK+LvNQzTDZF3WJI$4W<)=^o0k;L4}I~%zJZfp z8$J|TCvHF;LZoMqTFZ00Z1-Vd(vYRO-{RGQ*_xO*fY7)ao%QVrrpFtaQd-|_+U_+> z-79L-_jD&t?u8LcXwh;udhSNkI&zn)z(jqiT`AXsaQ_>gB~&9J?DbIg^mgtEWKX2= z6N{Gv6FKuHvOw%dU@p=s{eHGt4S4$Zw7U#KtTm)5GER|S;!$%ug*|3pXPMdz|Ng(6 zvSWAC1|<6^-f#t~A@eB5PTTU_=YnSdd>ObAD}0E7WT@7`k9YItr94UPhs`g?NHS3Q z(?LU4aUgvi^x$|Os4+@=4C+g*O!aC^%~^Ui^%#6Gt)SC8Oljwp38HrinT(C--AMsb z=Z5YMnrnR;UrxuV-@QZ~3^=&g*xy3!8|M4TcOcrNk199Ibh1^8p`LBwDh+8t@1d3d z0=*x7cBX*e#}s_^w-Lq66mNd{)OQmp_04c1=~iJ1D*p?rF|}RoOh^f|(zbU>95ZXl zx14fw)j|F7k@v7!`W4Upvy(CfDB6VrD;WPcS`! zpW`a^b^W#)l1ClfxJxtXQr|A6*$5nPuSWR2KhXAN~o>mVYDo9fRTa9C}GfJ_z z39M-|0!eDV*^xP`gs=vv8??Jxvp38vqLnTm9_ph9WIZGk+!Tw^(XF!nX$lx>vR=w` zV15TMAQ(Sl&fPwQLgi=edO0_K)_R598YzEi?w($D=+&ZoZTk_PgnZDNMU z;uwSNdNzUFfYfQvXbrl7OWn-^X+2>PS=>{qTkTd8Bs@V)T3jc^D25HT#pHY9H{8q@Sz~xZ1YBr0&4+oUV z^$e?9(=IS<6bkT;VB14N3$fO<3*yqYMJ$seoR05cc9G{4zMr(fYTZ%*iC+6bNH#B@N{22&MA#$ZuQ~N5M!*=5U~y@w>KNq zmk9&-?e~|k)I_lYa`GGK!;;iP(~NmSlqkJfE(1y9`WfggT+1(D2~kv$ep8)&jc6?vAtx15F(+(gOy|9Y z`xq^NtT37U3@U~20t`Fb3k&dY7HUI_2Ol-pSvV5VZ`zy#R(RO z`Q_`6k9+V$(ogc5`Q>n(m?kXFWY}dg$qhS56Q%tpn{Ju8Q4)wYI*}`-4yBQhO3URE zZ8onSBF{GQmn<~5+YT#LF_$*l_0r5S(IQy+d1am{Vr8>I+FNLIG=nraaxCT-vr1^s z6_Jl(4 z$`Ag!^%)77C$@KNE*fI{lL;I`D?*14AV1X>Hcp;$T4f7lkIKRdGw1M1hYZfE*0pW4 zp|~^!H*!R=`17HrhWh9hK3vnISJ1)y_5GV4p1*Qg178H+sDAZOz%-vWOUWNS+_!Us zK0y1GSt1@5Q?N+;0c73KXi;0-8Z>H{UL;PqIEGxVA+JW7i=@7sNE*+Vh(+%<={qW; zHV^#p%BYWngWdEcB6ucGyML!&=oP4J@%o1!KG-}u*Al!KS2SxQbgsiLOP$1Y!AcBU z@tHmCxQot5`}@UqftuZ39#bExI)GxDWA#I$fgxHZzsZwB?HdI-5ZfwSeC;?d)r zbptFG+eC;HWTzmHvWm<6NNMhoAlfuJ=HAiqDjA-94#kD1AM+Je@R1)XGS=|H#fMcO zeU|n*nVAK1xTpjj(iX}-Sc6h;ojk)#AJ_OfOmuPVra+g;EatuTLRQc%(|{B%V|5R` z3*NFcenMjdoq0FsP8Vnuok>P!@8-yn^QjrUWlAc*{u-QOh)(H!Nel8F?hcRQ=0H@f z))6-uly<$(>A--L;vRZ?HxRxQ$1c~dU^95h^DlPA-E9t|IQPg3XM3GPt9n!;ar+Uy z>#9^)QO~4CqTVi=%gnk)bWeeM4Nx~wqyZ&4DA5!e7Wk5*Yp**9+IyWr(4I>B7&WOh zr{;e3qEue^gc0+x^e`qBij8MHcD)E9xv1hY`vr);qkgJ3n!ET*z%ua`@(&KA5Mzg^ zk!tJUiEKOpL0pL{U>iKFZ{QhD%sRxb9_nIepeGCPP!&%V@{KA2Y!%YZK;G>=WNh0p zPQ_>gZQ)uqWBWW<0hu&w^k|{B%P!z)3h7~r+5^mQpOK-|?}PC)opgnrJ}Yio8EICu zMIcyCCAVcpk@L>b(CzZ#+l5vkUFklqEVv42T?$b_(b8t}A~)LaZ)Ok;hAMGC=2+i> z2kUwX7LoWSvr4B`rM#g*0P(q=N7Os=2H3&!?d-eFey+cGKDG?@q1;Gt{&+Tc?jzHa z>0{IIvr!56ga&2zYQC7Gz6E@DZ`Ql-h;ED}!GD&iKo%glvytz~(O{r3m^f(Zq2HX& zUNM3M1OaDHZ#5yieaeO+qVTKBc@*TqFpnnxyj5*R`(Z(dL3GxkvwMnvZ zrS1!^!DrG&d_P@TmVF-VxX_m?e0RCsg<~e}(34u_=y7EbJJ3Y~hE-sKR=q&pO4ZNhn#LYNPfK?%MDW|$cqk$2PNn#V`$GEjl^RXWYVFl;eT|Sj4XU`7 z%qe5pU4Mp zO`E0IkD_$6JXS4*aE&;AS|m!na8P?Z*?<~uA^#yGIrOQ`5h3PR;-P^9i72Fl0?(Eg z-&Joh%uFD4PjYZ%(2JtP@$Vg^^DOCGw$*|ksX+cjobYf4+xAM=%(+4YiYN}ahLsc1 zfNUBhJ4$^rbjgvlod};3zGTB^q5CbtdX(-VeSSGv_nE0l#th~|Q7xgWxDqQ21!5;# z1xpwpb(OHYZ43)7-ZxnlCk2lp3?p$#K zGSGuq;v$a1&ketFa$*l*K=@PmGXdp#{h6#iP3hdSr1!fGC0OnbL!uc5YlIdFOE7ik z?9`5F{eEfgRATQMIsF?+Gzb4RVP;o&r_3+zmRw>ydT?&GkH}_X%nxM{qM&M>g8#X@ zoNr^-(F*M%UE4#SiUT3^-a1*S07s%(ce;;z`+KFS*}ZZ_*(!8|o@6`BWb~Coz>+Y{ zf2WgyryFGP4k3+`&tQ6&;jj!LPUT?!VU847-kIJ0AjFPKU!=kk%!LAy?r-jvd4<@* zhJIcka9BEQ=nCi1Lv%G!AdM~ItCS;^+De@@KvGn&ulFbt4Rsdw#B76X`ye#}(1NlB zX48SMY6!PYncCSS{5Bo4JisijH1&qIcJz8}4bOAnwKZt0rszq_cPV?a-K9@b6r4H? zyG8gllhk~L-}2+eZ)K<9wQN$P8YXoia_itpg<%ala8VmhGB`W)=?wfVlocgda~ZlY z1ojU2*hl3PgH9}}S(~~q*3d;s{3do3hdmnumQ+}*@0 zDd5g%Z=};us1KTFJaI=T7Jm61;ob4e?>L7Lg|NBJbj`|NCyG^ZFwl zJ|mB|iYwuTorp5?F(AET)D_27fNj-LbAh|&s{s0Fi=@=+i&s>5E9mW{eP zTaQ1Nk`|n|@HBU|>J)-QH=%*Q#E8VZAT?8H zCrOvV&nSno`{|9z-OBYY`C5nux~&mG0le18sgc5S?#vHtCNR&JLlMFJYuX`+o4k*bTH$kjzrJa*Wzt+|xmrX{tYPbFD-qL|x=51mdS zbn0a3u*$eTFo}Ugvj-~e26#ca7OYTvk#omux)$I%nOeb+A*ePdjWDf#Web@hXWi!F z7IDs8t5etQo5Xk^X}b<|z%(vWHz34hhe+U>yDcH=y4ZoiL0=?MyEV5oc*KcrhKD1H z7&X_LYD#hP6Mcm=oHct`f%F#68F}t3%^wIqrVVgJ=AhIL(m_cPla2OK4@^okl}d1Jf+?*!2N-CNJ<*pU)A!g%f0S;vZ-X2Aq+aLZNEW>$GR- zIj}(f;&gGdIR=ISKM>OUge|7OgK46|U>qUpJd5m1GhGIq55odGm-(J9{pinb&xzMpvQ zt1%yp&0Dx57f?OhC@M2AD0Xcf2U*dgC;OJ>Fd|6V)D9k`Jn1CaHsg;dloO9bee@x= zi{v^(bO#+5H<%mJXJl7gUk+|UW{fiXT*}J?f@->o^8?}$Haare6T@8*h5ovGd2tCo z5m-E5yaI!17+|V|P-5bhMB!RN_(Eu1DLEjsl0V%dSCMh62twltWx?u*5O62Cgi>ZZ z9`)LT5==AZe8Ob%3VEK}0wrHL7iz41fP*6igKPYI>eX>Ae#aEK~KDb6+9*tGKO?(gdPO^0>z08RFnzt*PH3tXS_Ij@#=#;)i zs`%w>w$?1CE4{#2RjXmULV(L+_Z?iCch@siXxt9^pkDKF4jjUa)VzE$5&B73G4>uB zX|v;ERqZkZl@&$?%CYPwFB}h-mc5WajCX=q@o)!&3I+-_m#Itm#^04^9Y{{_Y#kUy z&{CgyB(0{7690wcqU-=$g(U_(00v3N*Gu(%eo(k0d)7cbqY1>MlYwP0!Oy)HN%5&_ zIVjCzf@!fyJ;3N((L^Qx9tu$S&65~z!4To$k-`!gCBNCi^rXz5F%~`i2SN8_wGz`< zJ)~&X{hS2LbDE+t`!-|JhQ4sSUwFxf{wO>)~airq^Rn(x1V{Pyl8kxZsUIda^MiV{)8!N~nt@fs8 z!E`fy9gcBEx*Sp!b%BKhKi{1WGzypJPsPk5d_Wc5km4;Wx|J=Co+MLi{K*r-RyP;cOdMmlEO7Blu)aC% zby%6WP|dY3Q&~Ft=6)7hRU|*BSsqNFtn;BjjSClpRueTC2}qjL{!SLz`h`vlB=(Kr*&Xt-f1#7qDpTiAe_7vO_B;o;4M)vu<{-aHpO^*IITFi%2i-%9nJh9$3;+_7=7B zVhIhX*dP3Q&=c^eMYhf&f&y3s+(?Ch4rS|v(`GkYXZ0BOBP>e~xWYjWMP@gEk;%lr z!lA<;?$M!Hutdb}$nF=KfjJyZkg;YXeGiBrICv=hDUZOldvE~yx1S!Tk3ZH?Tl9T} zij8~|=E`#WQW8>rwQFfHA#ad|rycq`+p_$QMyA#g5MWI`mm~I}wuNUo3xnGY7%fk9 zmYd)+Ll(=b*TaFTSAE$FuSM;|fceR8$|#HW8A_CDB3Pj+z=4@gN@v^LU5Fq?x?2~G zPE(R39+!3s8Hl=f%#wWk!njZZE%s+=leaVuDPcgM9$6{9Z(EK}w9fVX9j)WWX4((bwQO zm9zFbX&NvkCKQraF)sxkqa`guTVgl}53Hjj?CJ_YigZhnc4+;uB zP(v5jw!7bDT^L-~E*PaVk_!j>>H|6?gD?Gm-rdA*4ulyhZ5ly7al+Ht9{KdGRG^XHAP(*q z>f1A}Y=gNR6+vK0u!;ut(tzxM3mZ>7+fC7958h9g`92TRbPosatF#u#lG<`OHB57t zn6vej(JNy%q%+5Y^f?rCU`b;F#BAMMLX{zq-q`2>xkigyRwT)~f!r3F0DSo+P@A5G zSc}`qtiT>PHb!e<7Gn@GLLNX?9+4kBFtknICkhw&^w$2v&~r8CQHV< zN4h#2^fd~(IkS){w%bD45R|S2yItUK;2*hVs`m)Cu5}+Fqk|Um`o)JiN)I& zs{*VC@)S}911LDmOPdqyl@E-xfvVW?k3dgiy4lcDlMxIF z)UHbxvP*u_!_j%A0tZ%=eC*K8YM!Dt4vyp;U?iqr_De8*9Hlw0OCZTEY7}5nHO;%} z66S3>4%iV_Tnm{JDw{bN8Q7t;1);7NGb53oK z%!R9fCYW$M(esH=(+!=KW`2kKfi zkicenosDA#YHW5`nyzA%h($wZ+Ka`s`O-!K_2W({qVSB!<&05-wn3w-QqVuZ0|**| z!HK-LP}OFG{N(HXeW&OqFO0GIrTAq>cT2E_}9usG-~dMT(y(;-G9uiuBaTywORWpIUPi z!HUU>O>qLdpe*X-w<$6s8A3km-4UVZsIR*EIbZa4;(AZNHyCjtGK3IrRM&}47j9(5 zY8F5!6IB75fWlTq<|D6IaQxYbCnHAZH}ITKMxO#b3!qlX_?Vn;u@Dw{R#jOg$kNr6 zqPL5lD;{ZmF~#;oqVHutx8lOQ%21~b$y7T!CTSjD!&MM+8N$<2KHM?2A|${ttU`Ua zAN=dcHl=Nx%KgPPSZizqcnSg&$KsL?NSXZ|aOVVa8oBF`DQwa7ku^jgvO$rV{bs&` z0|chRwD;OOo)0#B8%Y0+qlaAxO11gJ1AcT;-CJ{^2}6o*REWzWr>;cQk zxYhxYt_)r~ezxSR;HKmkZB)rxjsJRakjX0HLV%=#1}}8bCEIKne&##n14COQSxFWx zOOfATildO1<4Pm7drb0lHIrAm5aklF0h2eGoG#iFf1Jbw(ojUGJr05sYDcdJLa@QN zHxUATQIId22fCqWtb*qI#;ODG7K=RNet>k(U9)g5iiMPM<$lzK>j@H}wR_i6%t#wp zsmNNkxT8apw=X6&dm7K^vvm*m0%}#=)ErdgU@uLU__S1h<%LCB8rX^*o%1Lro37Xm>r8t>w(M@q$&zCqJtIRasB(-ngyn(98ZY=Q-w zd=8@HF-YwmF#?i+`tUr9U5A)0M9{6KS!S6t~kV(i6jrPE9gSW|3=O$x^LFoeP> ziN|o2{0ewWUX2d~VwLB+pVp2zQi+Trm4jdDQ?pt7`p_{ScI~=@s!Bc}9R>A12yTN- zg*F;cPBy|!8diO-A~Bx-zUb4VSojK9lr;?9#pzKDt_4Z?EfW@Pa^Wq^^+c*{8?%{5 zQNOY0JWVi7yC@d}mSM@PwMz0b2siFVNwq*_ol1p}^Iby(`aRX@b{=kbEB9m|H7!)x z^k$^c9y#KeI8_H<1wf<8gCNb8e=Aw_%NAcuKAsecI}fKP{NGCl_|&2&GWR~5!*14% zHi7q-FijFk0+J88fSpv`VS{PGx+ka~syVV zqn^Tp&lL<}vVa?(JAqJb3YzF`Wr4lW3k34@GC@Z@>HU?K2SmKsOMRyXMx zy9Jhc_6k~7Eo)pAD8^;Nr^3!y`AL@ip7QZAG~yq@@Z}7Br^fMR;^iw^dq47Ny!Y$h zQV;{jf{Y^RS&4xGw}ZeQBoI(=pht=ntYUBrRg(|J{oZHm?P3X+)jbc#_1E-xx4AU^ z6H-&vn5(5uu(UnqH$%uVmp8rL6HMI;C5BR1m0AtUX~jdI*uv8QftSAzr9Ig`KNoSZ zjz$G5G#bUQrf_h{gCdK0d~$MjeDV!g&GB$NeEfQNW*N%oZk9P9ceuZMsho_o551$z zz%(nn#mJD!TVDSZVSU+dH-e}wJ-k?XeON()~g71ZL$i&kT82dsxGl+mIU4=4t( z&%1D2DYpei+AHQD&`y?#_2Dkn?f^l@l|Ito^gG}I8n!4BGGVo+q(zW=zQin^+WP{% zI*GM~Hw84$mlsiRF*vUDDLVHl@eGs5!*r%cA8^a>q2z=X)A7L>q2oIOEh2)cLkcMDQVnKLSv27^DAQaR285KABoAtCzDg&iVYLqd=eKTbuoCX^DiBPCeIeMpFuAX}l-zB6D& zcN6$39U|!)!goA@t6K~^d7T2RXXPCZC%qUh6EO0<*(T!>Am^dn>N>-UvDGlWfHUMV z72K!@uF#~_O?mYhH97;UVid(=NR6QAY(k!tfj*4~6)toq)Smd-UZ(;8Dm?-_db&st zuRFnf!Q7_@8Pyd=QLWfY+8wY)s6j_g2rosFE{n(7E@5&ACp9YGst~jk zd~B+DNnbed3L|3@*w8GiBN~)YA9bRa@R^@{H(>(c`qlL4t>O7=jmK}f77ZjozPJ!x z5xKT`)sMT?icBg>hpzd60$*k4S{-#+f%eE(;9u`Vvjep(@I`m$CtYAO@( z-WSGL3duNc+NMs{+#%k{+Be3!6oDQiJFLnU?V!C|NttvX+mKTM&zxW4v;!GQ-QKzx;$+F#k3PPYfIdk`AfzHkD)O zzwtB(hW|FOJHS%aN=on6e~%aNv0L$s|99}8e}Y%Gga~djCi;RhK6IE|62k)vR1uiJc1s=H|2C~!aHdm|t-Tz12n=rSL zUFm}QDHy*P2W7iF1h`4hO9zOBghdh%0Fo+COd#YEt4h&Tl0%ETI;LO$_W8c=oO8EK zu(o(H6}E_*=Vs>3yPSPN(#|bv!??nn8H|U?d5Wo}HpnmqcIbLmcv0PtQU4~Ks2Gsz z76K|An7El58Q>l{-3HUa>v2)4s;e!R^V5gVUwvAI zh5eE$*mQXe4~PV3R4CFN#0F(UQ0`C74g~Lxl-U5adG!P^UP({ilG+4QcRm8bjD$tA z=ob0&6GUA}!62K0h@C?VT{JXM99ZoIp;N3Qbf7=w-aT4r3(d>U>N7{VAB98*L zL^!3ma3iJ<3{Is(F4N5ScSyd~T_Y(Nu`rPG`_aVlNx$rTWQ#7!-af`#891+*Yhxfs z;+oq4vP~I?IjQ+fMA3!VBbW;;&Ey3I0AAywyI_bFuAq7&$_hdsV>wd}4&J=~jBtae z!#|!qKRbO6ZOrkr)6voJ?~Z(rZGI zZe>WIIUG-=K(`ts^ufEJ9Rq1dPEMZF!+LdvawCTt#|$`YGCA^$AW8D!Y$TB8Lc#%7 z0b$=HCX5FyL@KTivxw=sVFObMw0yayEI@gZecu$!EO#VS2vaNJs9!ecb5B3+H4}ir z6oYR$$@4`UMBoXVwP^X`=;-W^NbdvtQ-x+-6P#>}hW?TUzmy>Zlt0)MfG*c~L&Jg& z55$a`Jcf%h^%{SRO>`dMC3f)UB{Ftfu0MYdao{F_@{3##+3yFKfx3aj7AH^n@U2Bp9Bj&+;oF6XwcX9@o89;C-#qXecy1f_ud0jQ#qm;ZCo<-r%N-<1niUo8 zma4bZU2K%to1)$(;utvssZjlaC-ee?pDC30t1(l*m@iCoRm(_cg!TL?7s_QrYal+* z(h=I{k`tkPhA1ga&+P{Bew9JXBoys!6Q`>Bhgr{*{Jv^uuF`iK{MnE8r>oe((?9L+ zS3mGiwrd?{xB^8ItuHt%eaVOvZiKcK1ktP)AJ^}1>vE*4w244y%eJzUi%1$NEQ@Sc zP`Pb$pv`9cqV)&irdNcG!!(BArl5s|QI@qXf*l-hm)FQ!k=WNriZ50-+k+# z+%JBCbwz@n>3a6+o{q;QH~hP&zhz#1<~17}z_OEBRjfPgsYq9XoA8W3?7Pu2FW=@H z4-n~Go5|hOqzajuT*pq4k25v3C6$)r;^EWyt50wL^?;Gr7lh04d}URI5?F_VZ5{-) zZ3oyA70!5iZ&L3jZET6U3aHiqpHHI+4-}}==XW3F&@o`K79MHjT7&LD+1Q2_pj?$5 ztiXC+V-kRI4`+?5562Rq|NAZ2a5H0s0oqTPv%JyLEa`i^@|@H}E#H`6_AL-0=s5{d zEjbTW6;SB-PhpD@{t_@wy6Dfzfd?tnEI z!@y9MAT}IA`J}Ei)P?G%uBAZynlo!%sBSWZNOnjVocITizi@=g>!oHbz$RJ0#J=6U zJa%JKVQT_WHAo&;r2Kus=_-my%5h{arm_mVezbTP*D!(fC<^kV zAmWdi$pHmcA%~J^BH=IpkDZcnBycTIq>pek^_Wg@f)vG+Vc0OJbH>;}lgV_G$SE7z z4mPWNE}jU&X6)aF(Y~dL#SF=%S(>I~-9k$;PFU!RI8F0bq~W97D6J$u$tG*Y#Pb$RW>`+s6sU}eQ`E5j@%^x1&H z^xezs>hcC+H!RQ2bJdO)wGA$ZoMauVBVAF*4AsKxI7jeG zZ@5VY>IR-~1~F2u9H?x1w7zUqDp+p`d#+)z70-Kiy9S?GZ}JAH_i5u-sxU1C^)Q^1 zG&w)eM_nL=t?RZiVoAknL+2=_%9S|eFzH0~GBU9qMkJsoBHe)a`p@LCU$os}Kdyv; zUft9531R)QKFHm#Xu!w%_4R#L7jF7r!>%dWxyNS#xqj}OW!Q(1Da|^0 zuwR}$BEMhe$YXvyh6~mwkl#-xFro@^L{qp#8Z0QYsPn$wooOV9t(W*z!!%z+;-rYV z6n$~#eqKG&T+F`X%4;V)yf~!zgBUj~vckBKK{Qo@HOA1vO<;cOi}a0)InXx+JhO&V zgRR7K0}~3Q=W`YlXADF;%Fc#owAA;whfU?cfV_rUD|#oMA3h z2lhu9T;nHbRqAC%52r+Z9Sncq6)4WZlxy#B0hk&FlOhjWzNl?YVoS!ybrVTuZ>|~@ zv3Q`-O%)J?X2MF_F;C4F647d%Prj>jrEab}=&;y;aUVqN)^1zF)V*XykRhRNY9xgq z1ow-YrqnP!P?y3;5;he#p_o-=Io;gDgmM1%)6M7a|ACa@aRL0eg>iH&o6cb=)H0bm zU7~ZHjLT?l(zlV;)W%|lp&w1u2K+wxE2^dDV6?9`OH|k{wNk@ED;4}<=;d*vzSSMJ z%VIY+2kx@cGJg%wF&rzipCU2U!B+$G#xP3_!AO@*a`4g)vleh@x3h`^)& ziRbz7hMr3Hgu5LPz*=qpEtsavGk^9@XM$-4#1o%y;EIJ~>*0xHEaX3jipr6ysi}4l zY8v;)OHBP1&v##U{ClI{g z^SeR9v9)sPqH62lU_h~1tK?p}y&kv;=2Jpes#83rn3xXCPrPlLQSjg7lDO$TUhC+_ zxI8fFh~7F5LB0!*o4!*Fb9s>eQq1z$~UiH&;O0Dy8>$>Fz3A?oO+L+T8|m1k06VR$)}rP}P{d z1J>8ok|<)cIc`o&$SswmO1RwyJq&6o(-aM#B<+)E>BDunT9u3o5i4YI`Y)qPAg9QF z3Ab$IYjw>{;HwF=F~~RDYLjBV9jL)*T8cSqRkmHYZZiY`C7+p$gicIb1S^|6bWP0) zoLc%g5^7$7!hU0xxYY7h50^9X@r#?k(PYl>7&-v?F_VVz5x6$E`*A|cr(K9iqRgsy!afW*Ik29@JRNt6O5eXaCR~8+1Y4Bmm|EqRK9Y3au}1_d+-Vli+TvN4iEea z3z%tvwE?g{sT|`YigsRzk&IW|^$iqn zMQjZCXI?Uz+G?ma;eJG_P)b-~lrA|7 zsf8fycwB^`>nYzut&44^2@{12AKHDO@YxaJoB0^zln`Ep% z3c5gPnnhZ*ZUcd0Cbo6rBCflI(+3!K-O>HcQ8K`JU^XifJ> zqzqdxutrBq*Me+5J(d7*iR`(Z2&j`jo&r!@&`fSMUH(q!(o z6Yiah$ll=Razu4h}@{2ew%n6pk*YXR&K=(gO;PmZB<@XI} zB}4Th8xx@%*TDDUN`Xd2KqZLs>WkB(tE;u0bWej{$^}$4s9X&LE61+}(4jV$U<(Rb zD?h1>cWYwnKwoWswFCrFyf6*p>0tTbhNp?j4Tz$-a|+gi`RLz#rA^kLIj}ZGYZ9s6 zjmP#sNrjwE$WBi}C>Y~G($KgZO_$TQi(?Eb)V@TIZq zB_{Ai@GJ#Y4;kZ8wP%M|I(-({4(c5Y`-{+yQB;Y-tT%+N0!uOoX9)k$nr^pHO^->u zDZ@qH^M;E%V4qWhnhrQQBRU7TcBa3NqZ@FAxTv=k3x!rjQdU!$ej65Q9z{YOXS)^y#~n335<(gjL;lPCm^!@i*a z&dq|`u`80rk0I5C06e{|f-Y)^CR7_Pj**9#rKT;d6c;(XEYYH{{&(QT?&lVgQlOzO z-2Q-Bzy?l~9|3k}I0moyefWuUkhda|i543ZEe#T=nb8SV27-cub%9S1K7NZh7evr5 zFXoFYrjqwfFdgiNSrIm+@jxD?8DwlQf;w5nHCsnp@m{JDAWc+F%RNg{qV39tl(3um z0-@f(C0LDw+sdmpQ{XoslquIvrAX5>mOzc5^>#Ovi!W~ns9T7uh!AJ@x2vN;)yg~E z{M=d@%o%*CrHv`Oq26=+=FJDxOCu}(=Hcr>dyS=GLc0|4;)O=f1IT$uRuj~wLasul zk`wXw3(SU%71#AAR<+mM1op?eyXR2ZLGx>}H2HrGNn(vDsHCCN7arNc?R9-gFwLb) zcR8n^rxDH9)eRm3H?`0w^23?w{HG+w{H1zPQH71{bBX+?hTS?qFg8rT;F9o4kos>$-R6tP*WLRxDXpz z9~JIO+iPrMh-}D-g$2`8TPcxpL5fpOLf`G673&5B7g|(do$RxPAY$8>7KCugyhhXe z@p=y5sQF?y-drOff=mMDa6Ih~4swVV&apZ-e6Ij#dO>lFwj3lWhz;FzO!eYSGEh$! z0x#67ZIYudJl|$=JK{jp$prV2g+qHT;-Om2}hx;TID z4Pgo@T@djKYv2$@k?UGSU?6SKMLRU`xG#mjUK zNlz~gz95;Ky~Grd)ES!sDe^X#NP|{0L3~mHv>V7*0w2pe9JRaJTUxMg($)j+mAIR+ zhU4oNng-@t^6SkDJ5>kLH^-=6NbD>YvH<82DFzu4%CkE-#d=-JWQ*wOpc|=c;eiI$ zMrF)@{O6~Kuik$~DM+6kS32+OrAKJR&4LkOfzi_X^P5wg>B*pOss|MTRE}+5B}NVV z3LGNOK6KF#Z>W(Dp~-)PNpv^@A#Z{^OkE2w+{crXUH4{Ghk(LBe3CgWo^&|m8koP@ zGItJR$*5~dG6A$5+|y^(e(pl`u%P^Mq8*-Y?)7E1_o#iq6-|_;+H<+|dLJZM9-{}C zxg9rJdK?s}^mxTYXKh&-3fKb`s%PBFo?D18YGBP5oA?SmkX#9=HpjeiTl@_wYyNX& zY|)_`7;BKeOttGo><)iW#4I1;iIQyd^&;~C=^3`<*+tMbX5#g=PE23IBg-78_K&|SQo2vvy0eDPN(tP$@+#N=IRjxZL-w||mX?2X(sy>KJg$)BcIBq^Yp%!JKX%gvS}z^BBf zFaf=IhE}ua?>FA+UYgwMfRIjIxzbf*Ms+`W6Qui9ygbIuB>QjUywF% zD`UlGP^x6@vbEKxlDy4X8A?G|Y?9>7FO2meuKRgBsy2Igz*M2gSZgxuaPe8Lzl3`! zy_XS_a-e^u(ePiOM(W5euBtG%?;d!lJHo;>r@<5pa6N`4oU-uEn5ATGuFXKvAB~w{ zn(06aU^UKNk|1U&X-e-wcA63r0DVh5oZ$4)U;{w&3On6t^+?6bZ8y5e16J&s^Mwas zBZk{Q#0TsIDlm_Wpoq>@?FmCrU@G8cF(?~?lB7_|(o0IiR|U}UO|In@q!?=>;(!$3 zbu@alW9kqK-Z=PTcsPR8hF!tqPP~uJW+sR|9+;heROog6FuUEj=dWIXbJ4ej+aEu! zAVW1wpF>g2)Z`ZDe)wuWUw!fH_Hr!}T*cG5=v>4uRbV}j6BdPFI`P8+NIiqXkGiGg zGf2HPbl1zdR1qz$peS?^A>x|4HbZme=THbzG8$l};sCgv&oNN6@=kJ}I=@YNM4l&S z+cW(yv;!ID6HhX0dMRSFQEwf$0xmPol;S4xz**JIhG9}HD-;}>AU$9{UGj4Z?(%o#$%7Q@8 z!ynGR_M+y@(z1RzS+yy9xCJt-+!Z|4DGX5!y@xYI+yq~@$+04@bruc}i_$LzJU`Lp z6?eppmY%8a7T?h-i%N(d6{HHO*Vl%*1fmOPSAqN~$)_1$;80*MB6&AWBOIdDUboQn4S3MiWb$6P7TN<0OQYEZV?cQuWX`8de=4yrTzGZn41$P|rA*JLFg^ z?V7|+R*1W+7>Vn8fOe2&P8<1|ik7}jh;}@e5(J|!BkDLQm_aw7LVf8$+(qp6v2TfE zL--6EOQ{$@OfpzwaYoM6JrX5VUVO0Uy3aj>D47!l+CDHz%80^`V$3uSUn*SfDwqnC zW?-F4QjPdj;*AimctZ(J_qekQvKQczM~N!>6ZG{Z^ub7rQbm8(mql(R^2r}IlaNML z1g}M)XMk;num`CsnXD%_SbBRiQmMP8o+1;nz?#a?X~tC7IP3Kd?W1Tl~@ycWXeZL}&ts+w{Dlr}7v=x^kz=(~eW+X*gB7`m(SB!VM@2ka%>r<3S5;zdXk7k7>wNmFg5ioVRtDiOy0H(PlIhw7GT2ItNdZLm~ncUFb75_-k zPc6NQQ*^q6123bf>0j1fP%qnf;G#&iN{L(J}DR?i)P5E9=OQWPUjcblUrI+QU^_5E3E;CcQ56!xdx~g zohFzbOg0A!Jjh6lSN3QGKU+0S-Su^z8?0B;mSCy-cDlv>+Foo$by7=%jhgqwa4C=q zBgr-I^_5Ir-Udnl@6j-iyKa%iWVvR3Ap0e?QPG0xh&`{zi<@*64nQeZDc$BBk??Z0 zWR13XAUlH_26=>@iZvzVA@dA*h=@F#7}7hvVzVlnoUgK*gZB5+taXTwrQT)qV4@;j z>VpXhzgM9mIa6sah@KRx%uj$5$&%JPT~p$O3d~3mc;@bfBd8J9F^8Ksj=O3}0S>za zve02q)fbnWVK(fr_L&z=^t4#+__ersJUpj}*YO*PD7i!aR#;OCYSn_I5rFGz(prPU z-5pCYki9yGR6l{`0`)pz#xhNz{Xp%FwBC@uv?UlP=94CwwP5xw5+_hdUzoA2(VCqh~2#OA_8Rx_~yh)Gs^Ad40*db9;U8(#iUU*KQtm3UOiE>v(m&o!QSJ>pF!t}0gb zEuQSnOGs@<7kJV&(q)j1t1z1$J!Vq{P&a)1_Wg%X%KRm?X+f(S#3TipqA$2{(9{cU zuV;pn?YA}*M+gKwXRvMj-E@_W0gAss#$~)hkrEt|*FX=&OQI05*zsi2w#dfZ)HobP zk^$oh;9m&r*(AXvW}!Ya%^cz&A~`%Qf@0mw>0@Z(oHx>EQn`A$O`AW~l!FaW`Y00* z@J#cbv6RO=k79f)r+w#$MI)GEI}tXn!f=lN&L$RpQ|L44dixlQN4RuZIn!ApzcFxb z>=JBy2zy&&EHW!&C2kjU9bV{_5T}NnD3;Ws){bm>JTgj)hmFaUTN3ScQth*6Vc7*~ z(t4P$AP~ge?V$LrDTiEkiBbXkoEW=6n$$Fb9=V~0g$QvLpDEhj&h8HhYb5-PAPiDO zC=s9lULpP+N!ev98sIW1R1e6-5$rfvekUnh-JALfZ7Wj@Sdb1dMP}H^4MlG&|BrAWOd1OXwEG{3=3GK6}FI8>J-806lsMm(V8k9_#Rhi1hvK5Q|niUJNQjr zzJB-SJLKiyAg+*kjM~5o!VhJf6l9*+)%eTGr@H~!_N&6eQ{|}A3TZJKz;pcZL+X;2 zm<*dU!r%qP5C_|l<^l*ra_~q-Qv`}%n{s|-HJLk?HT8ZpsIMv%-*Rrn4ZSKA9Qg`_ za|}EIG|}%e(1B?+y#VxS>*r=0SSB#Q^!;21<|mnlngEjZr>FSrGY}G2uWcZ)%{LQQ zXGcq4=$znudv$jeYJ4>W73NFX6piktW}YFJL3u$`(c~IUUVt=K=U!Fk7cWMYUlFP( zePEaLSW}o>uKB^p$~vJF9yVQddA6M_Z<$97c%Hflda&HCTv-yc;5k}oBhS`yyjNE9 z@`}H9ezgrFHV8u4v5yXsM#wagv+?;N>C~O&?&V;O<93~a^FOxbkPXHBIOVbR#URW_ z$R%r7v#zaV)Z7j%wm11!{QpQusO|{|SP_~=xjpm>i&5e!qBUHLCfBe6&u;F(1_FJV zHXS*;vUHq~F8)LTd@t7z;<$$Dje~yLB{Nf9LKP(JHn-&*o6pv+XOL&1i_0 zxZ^cSJ2x)`l2zGfvgf8ZvjEW9zaHLw+Pwe#;j0HCQc*)yKl7kaT*EAoi%mgRM*K|8 zg_$ADbzXHBV>--%E%GZzOCLlg4J;6xIp|r2h^=s5_22HD%2w%}+5@HTM$>0zX&TVG zSSP_W+mQkpBJD70{W490m?L`_w0|;6^xBLwP><85b)M0c$kEcb7AgV?G44lcJ~Ci$ zEFjE0u7XP0)N+RUJ3Qf5pemxNOqTc7YAnw6kWMGWOd(ZmtE%K?0n?_2jPN3pizdIh~JeV=SCgd?~LX2c)G` zLo=^^;fmZntgmTu0Zi|4y>>4SH+8t`$X|)NhfqJ;460&L6un6Odqc+n; z4R`OLks2~0i+`<^Kf>7Y*8Z>W3y|Jn3ui7KC>-u)EsAfb(BcQh(Y)_NDK4B~qKqfv z@yeWLOmmF;_*in3uRj7+pgdx(UTkDwI1XzM#HAjK2Mua*kBwmMq0gA6P; z^W0pEdNtbt$}8p3hNXd-D5><-J*BHIj@TuP14`d`c@*jr58By zW#!&MHN(284>FGTnl@^@ky2kXciD7Y*nr(>?6B|}E1>pmIE)w$G9rB`HA6``p`xo` zx&d>!;=Wpd=len)2Wld<`fl*W03LVRjWl0-xunb&$fYF`JjpMKIBI13lOLf<`;XC+b1uyhw#pU(w8uR+0X6d`z$9Uqeh6{q zvMm|guj-*Y4aH{@;BfSqf{5QTQgEzm7dE%6)pG4&ymN4JCX@8gz68^2HJjr(Cr^ep6>)wr7GX+N0|If?Hv=+! z%{9#|cnL8Lm?EgnHLM}m#SE*^{KEpfy4Wc0w7K>~8qCQY#@GASW2gdYHcK%PQd7Mt z8=!9Bo=Kt8*qI6$N%O|<0X`g0kxk08` z>*hZE|45p)T{(gll?2jf3wyck#ifX7Y5nmWOduT6rYJ|1J=JL1K;V_GmUizEqZCz1yB28DyRvmF9Jqh1YZYOfl#==x-{y*?VvkAC<;kL0eN zy|S7jbak7~CW~tdCMxGOJbMD)x62)?hrW3DPbEvbdjIYl{Kh_azz#(~lw$$GTYJJn4U#t1db&M?#^`z>HYl}h zQ&s9ZhM-WDk~Ar*K!AC{DqK;$=;a~KKYxwZ$L#xt0>{Aba0j|Ee;+A zST`$96^xmXkC3dHbf>rDt7LQNwMGVA8ttymC+)H}KuuEMFWPCzZ|<|xO4H>X((KMX zp?-gvrwr5${5rVsZO>6s7fG*B8EHKIGLaH$z@5u?kNjRvI>GW7+#c+zplI0&gD%Zo zNtn!Ou4@;{NiaPwI671_5i8_;P;pt^GP(o=Jf|TOr=`=v1rm{jnATLD#F{(a)RZS- z=*Eny`q!U6eR%ti&z~N4J7Bqw4{x9%FlF6*hBOLm$gtxr?PB1Yq2=c1nQURcOz>u| zP$KPTARXBy*)V01uGFoqE|)5=nZ1w6_mI;8wNS*CBr_JIJY6+zB`yQ)csjq`EOJX* zaSjENmwJX)FHyrZ!A9*tg646m@Hq!^glHAKARj>fOF=`Z(ukyOWh;;FP+V;|v_>nzx6@0YCE`Pi zODWpwgFOWXfP>qgiu0h##fk2thaWzj7kSR1pE>%4R^?qXM(r=wh;klzB=^=EX^Q% zo2b|A6$D+qo1!8v;fxHAaddD_7!BnSQHo4Ka7y|Q$;YEq57=F!yC+BG!Gh%wLxmVX ziBfyjt@Q~%`{&g#eI8EIe6iePE@?p+2-B0n*S<`SZbJ#e>cV_#ru`I1&Iik}a&B4s zkRdZT12)womOdOop^XH?ntQ*1WS1aHt+bbv!--*Sd*rQP){)SdMoR-s>v9R5KPLGO zy%IxvZma-C17UbCU)Befxxa`ok#}a%&XeN_aVlE#=Rb=hfTut0!{G`_GB5U<)=A|3 zYTC9j<@_Rr19S8PcW8f5RaxjurN=K_s!Xv@e!}R7i7E7P_F88U5~J!FRmy@RQPX72 zaOB+j?ZJQBtwotMD?eD?UkJ0CdnhfguJV*CEI`t9zZWTcmN|)gdTHIW^XmN5-#aBe z;W%Y3qm+(z^S@IbQd6=* zOe>s-D^;nh6N5cOxPey>`j`;2w6f1Ntb50GDU|3fe`A7*sN1T-XRWj^raCb-So0)q!gN4vK&` za7WZJ%9@>>9d%W0-!4R%2P&^dBim$@Yh!6xIN(dIYPm=u`L2-tS-6F| z0ZfV^8gHZn;9*E$Pr3&n!?X;{3NXLDnNVdZzT%E@LZVS_E7{jej}V%svQ+Zq3TlVY z2Xb~Iln4T~(qRVL3t#=Yqx@1guP1_s0?7vtH8%pC+xkwLL8h13ufW6jjd`-_t1@E%n`7q zO5S~omtg5V(4-%Ec3fPu{mb2w3ED|R;LN3oc12J}W>DBEf1+htrX&lGD_}hR@)89Q z*2x<1!~kN>5qg_UDdY&0+4~&!fU;o=W!QW%WkM$`z#WjB9W_N}yB`3FC+I99iG`Ab zgWwLLWMVNqU~!Twm}7)N7OF_=dwMu=m64ojkl`IILYyyXn3{UYv#wZmdN)^QmU`vAhrWa7(GpBg`xDy~K;7WRH3;lLtu@Uc z*2H*p#L06T8B{niuQ^rxeP+t-io{tm#oPhiwHH%dfQ4edJdT=` z9j!c$UoP*UkAu~PETML-xfvi5t!fFbg`n@Id??J20viM@uCU#~e^j)dFq3^-j?Kk_ zPLfnd)*~KG9(Xf+E+(UtwOzMlPQp{xiK{UD!?7ZC20RY}Y3##!+Kg!ZN!Yx}%7e#TQIeX|@}uzzr&xT?Vc8_F+`E<2e4K!)N9^$>gHl-}49ZmTxt2i~^R zs9RThO8V0g&B0XPl z6p%E_4}O$yTDTEWIn9)EGTtOcGWY<_NYW7k!%mhiHL+Z5|Idc z$rpTGuA+V~qW%AP_WbPh`O)y`_}S^`Xn1n=@Ou>Vy|Sr;zYI7-OjbVh+8OSh(P5J; z)d@Io^@^6>D(_#Q5INMq&iD#8K~X5zF!aH-6-_`HBGLAAv1|p82B;f!7+NF|$N&dI zV+$=quO2o7^*}j@s7l{zGCUFKuW4&f2i*wThaxHaR3r`PiFr|CKgu6>HeIckTT~Ge z&r1*8*%agseB^9)clLacdc#(Zx-UC0n%3#D+X5Anf3Wn=L>8sa_y`Lwn129;oH!zj zNs8bq&It03MJ?ZO7Ax9t7~}161=WZD4Wza>Vda?;hK5F2cgSsJ0gvd-gr)`F6i>l> zn&&Fz{K3z9Fv-Bv!C(J607n1O=cC&3kBoa%j2mk632TGcb07QK_O4^z6{7-raqOHJ zO2-+7y2OgCAUGBrr=t(!ZHDWn{)}Qbc+&1zmS=l@1-?Z`8{VTjHYq7xq4i|Os0Gr~ zyZ*}gn$q{a7yg8j7B=I>dW={Yxd1P3U22RvW*W1Kj~r0E@d7Ks~# z|6~&A?O-RGL^vx`E6a6a`b^QvaTq5E={*Jfon@Ek@|rMR=n}xt!6T=}6g5nbHmN+K z4ehgO{TG@F2T4Py(b8*pGO6-5E8P6M*B`%Kz5kDg57YPm@lHlM0F#lf2HUeep>D6J zm|*n~Z|1RK%>CDdlqN+}fl|6~JS}7X8(cRzmaZT#cPrdF0LLc92QUPMLK@%| z99GXVr?l;%7Yk8uV6H_D`*Nq0*VPf)#uZJprr6n&c5h#oCrG6Zr93Ue%u%}=pF_ig zj2NN+a`udJwlg8gxh1hOh3&m^YNv1vP{?7Z zp*sTwT-@c@%2P>d8ijEsi16f2F=YV19GSn?Of%Gaj@B?OJJBXogWyt@^EPWVmx~-< z3LM$9D|+FTU2R`#(*vadj1s1o1hs}ED>PAtR_G68{3#|s=6*8CGCPoZzVH4v z6>%w@(O_10HVRH71Lx*&QD2)OPv%HrtD+UuIkL3K{bGs}{A`c_aFCWlvH%)YFkZoT zIr)ji*W`@wMZy4aLv)uSx6@8~YaQsqeYzChHQg>Ru)|x@o*ms?6;!&13x9i9tveE@ z{5j@d(4s)y5g@&uMBJ(k!+pxVa6?6v^HY~KK@&0wCWgY33>6@^hi|+%2)F{ZUah!WzhDRbT5O`hZU+jGd1V1&6vr@qg7 zk47=RQf-xic|y$jW#n>Ev^2ls8X?Z}kb05Fewz_x{-%>nShmi=u?KEQfpmB-gqWYBCb6SdWbTwJa55;aNAhT%-#2g3#9+ZX?Nagn>V; z;-ZA;ojih0+oP0=^X^%IR zFI<4he_6aO$6-yau4c%yZoA`bv@+aWDyyvcQb8+)#q|=R*mAu;gGJFnvmxe6Nqm`G zVq!v3ZtJzSDI|bUJKw)&3a}o`F-_(`da&x6tDtsTp){|dx`|v5Y_;SK?2kM!sw*0i z9|Nn5hjY%YZsJpv3Gs{Sy<=d`9<Dr6S74n?o)Fk ziI(qMst@5g!zhv+j3{7k5rFwDVG?(Y8w6%49Oax6V{1+(Co4X#kWEP$Jp%|}8f#E0 z8Bsj(x!dqZV)3Lo@K2>uoGjkz3X&c1>FWHsn4AiLi%)3K!~&xv=)83ks6crP5lS#{ zWXSb^#|S<^c$G>1p^Uq9qc+ySX|jh=x&<#WQe- z2+Xe3U+*Kq^6*o96fR){g$dv52pq#lM*wLi$%kgemF0VfWd@VZEjDc!^AJSQIaqy1~=cwA)*UKfyGX$@>ov(}#b2{sxjUKkE)> z2A_*!@^ZgWk{fyxYQagfabm4z7J`2O}$TNdc-6&N8j&6B(&@`crG?;ito(993`ak`b2#w8 zJ?)<1&4i>p1lKUdxW|5^DnNz=*Fx#}^KI1D^4A?jrW{lGrvn)@ zc{w@FttJ>EO)bv3q9ZV|+Rh$f6b@ObnK!(p_Vme$pbMvWqeo~VV0pWE(xAgZqT=`j zF>9H_qYpn4BsGjgU}A_EDVb8C3qK4S>3RVckS^((K&rtsf8;yGeCFcE-qshYPef4_ zZ|YQ?ig@6GTD=5h$KvxXT{tVB!z;wBn5_0$KO)tu+BV1-EjT zoEjFYKiPpNT@`!fCXis*g{X6w_K;dsO}*)TD$|_^IuH`e!sfbt(o@S2b_K2nO00wb zW=o0e(6sjf#qAh{begf8kyEJUSdnv!Nq|cFODzhL45U3rKBN!_MAn`aVq#a%ie2B+ z;Rz!JQfZ!?U?X44SvL5ch`UD;6vg60Pju;4(TWDD zMOgWo*?O_MBzvK4!N4eeKrVABon8Z=8|c*GnHF`VOLZ z+uW3|tDDRcn4paX*YoL4VM~a*3YT;e7~72dJ^fvDH*``6`3Fa>>J{!F6iwl4l*kE} z4jEb5ralCc6ZQvvK_u5?rKWqvk{4$XCgZY-T;A5ylc`}@FqUA21nV29=AdBUOcpAZ z2CO0LM7z#4X0c>H0;JBBY|A07p!I}bcDQ0#U_k-U$TG`8y&ZF?n8vWZ-WQ98XW^r- zX%_VPX$I+5YVNa$U+cL?qvyC}OJc>*T*^`{;IL#q_i~aiZ^u)J(gTC|r^|?5caQ*5 zlS9k6Z^6t-q^!GWMA)aG%1A4Nl0T?aCajjO?d)P`97z3AEHn^&TfvvZ=M??0o4kMb z_1kYI@4x^4^Cx5#eE&|F__W=+9R$PIgAOsbo$z!~9L_09RoluY#3w!_IAOwO@{e}i zqQ>Tbx1h1UMPkZoZeLw>Xgwbz0?chxLUW| zW4vb1-ls$8@8D{%9}s3L+i>=Fz{Dk8A{mV?|7M!R0_N5)hEHtHUm&2Qo@i4wWT<8< zgaI%z=MiUZ>O%%!@xPMKom~Twl>64S#VL!o?c${K^0>I9LN3vGf~7?ZDbmB$-Pz6L z-}1PHH=Lh71c2i^lTiZ-xbu4i4MOK2lct*1qmVv8W*<#iVsH)3kPGnCZqw%B)x~V6 zGseSCs7G#iL+>|b*CDC#p{G5xMj9QN|79CyqE8=*jqZ5b)i9gMwUjN4v;*z71xX$s z=DXr!^M>9|O2jnr<24MGb2A91rh3>ktb#@Jf+de-3v(W=zh@8;Bhb_)q6`vWL|({^ zsTFaLF8atNg7KC&GLNmND+z;?FEt(ZS(S=Bz78fel&`2yMGe!_BcTq`eM90JZ>y-k zFx~=d(Fe8e;~VDovQXA&P_FNFy}fM6o5?$QNldn2jBvV_OW;h6Ef8a02U}xO0>!>U z_uPDsUYB6GyVuI|6xh+?&BQY>N`R|Rel-2arl&_bcI4)V`Pf-gPmj6@>$_Vga16Ls|7-9c z-y%u$0d(_*A4pC>@6D&fcTslUG1X5uY@c^1Y~Nf+V3_SCc;sR#m=ip550h&MAx7b% zsoh7kAr|{`>*+&|E2;*;2qA2)MPp-qDE7H5#3>_hc|lJW8D!pLNYPFdJqz*>lL69j zy4MES1sdvdiZ+5~PSzRXG_b+2E@eFo8d-JW2#=@8y)o=y%LMLALLz0}B-bnWRTdk* zI26A=z-WyKq@Nf}#I4fj!2)lCAAiP=1q`jx;m5{t{3Ag}YjpUrXPo@lGtj}FvF~F~ zUC@|ER2<^hYucpcEug}MBv|yzps3RHuRs~~hYyc)?Ww744DAmr)Oc(RkmeNA?!Rb_9!}Cw4NKyRw zLYm5uF=~4?ySad??`ag5+XT;j0$$g2=g?V@YN4|iyON2xV2Y+F-$8#Tv*z@>)bVw zT6B6FIJ)-7xm&g8DveeqC&?fGxeYY6XY1!rzJLAk-@kkN?xCnu0lkkZ0#U;T8(_^n zp6{$|P}51rgyMDbIPhYv$hns!>jYEpN^c4zBfV*js(QQBCsNvG&A-#hlZxtfbRewn zFkjv+W_{CN0QD9_2687s%6?pOH6`i4CqtPnP))WTbqlpe!3B{S?U;`oYY0OxZBub& zyk6k&xlrQ_$i)_%1M(R7!$Z|z>_`C9vmsYawyVo3N`h~Q>*;&Mw@fC-ODo(2tfU6$ zI+Y2>dpyQEFvDrgDZ=}P3^gWd&uMywNoijcf-jX(X2fy1+#A}oA#Bjb)6Q)T(?_{c zYA*)GB0g*I>k~V$Ox(5J!sRqKx9ibJewB;m1(~ypQLH<#E4L#;rp~`yQJLwA%fV{7 zSt#rq5}oWg@~g0Zb`QnTBRA^6yTH5;BwvbaR5luZn3sKJ+)drow17+9FgO?d7B`Ef zsLlC@4}Va|#(2dQ)m{aCkt8LgBtPt-J7y{~C%;Bihm1iO= zX+v$@r3Nz-wFTww4<0PxzU!GvijMfZHxFL}fxj8J+RR2#I3nnST{iD!1`|wAE|F=3 zlq!HbJMzfumPY6q>O*mYP=U^-+nmEjt`LZp=9Oqsj$d_-pyIM#uhE)0rhk?bEO!r| zz0xe_t`9%Z;fYL5fy?8X?+|}r8*r+D1Y0Xpv#aov7i$V~3f#BBfu(PdOTAZd zm|(U{R0`6kd^=fvc=(8FQ(Pl1gs-eLi**Ox=t9^zl3OFXY;lD;9bmT4*Dvh1$pp;> z_#((AU8-Klo0V)qrFwxlvmX4HdoUz3xU+M?@S4K9*Y7Jp8nNwtC4w-L48ajjz*wTt z`WWA?%u}IVV9&S!xg_7Mi)CSRUcfu(~r5(b6Xq+j0^nFXT{Jnm`+n9_PrJ z7Ty!Hv6hvM-1b}0pt--yRsZxe;n#W`Js74suwEDPQn;1OQFOG@xKokovr3xK7@>8b zqr%FGm0^6~a+nNyv7;wHbc?9EdvH&vEs`0@7&Y*2S`^rL5rqI}k4s`U#(N_FjqQbG z$!LISCNb}SgHyw{)nsYr6HMKKBh8zo$ZvC?+?5Kb^j|)Fnb1M(J$Y-Jac#@+TxGW!((TX+(+$Derur9PkO*kpD+hDL;;tnzI-2A!a> z$Cw&ec_8Es%?eSO7~>Y=0a$tJ?j)RhdxL-buiE9PeAaG=r~NOtlt?Zk17+J30^MA( z;peyWIYl_R0g!GBZkfFCZtKnD-K+I{dyYD(&;qQH|H%tHyj)MOUul8lcxPhe0o_T+ z!{ktNr=pgOvU52mkn$$EH_&tNA<$(Z2;g=FR|t&jcf7J3I1h%v3=>GfhS45N9m5m? z@5XFr<*n{7n^tnvw>wa_PbH#JhbBx<&&icG-LG9gv+v8PH#nsf5x z#8^q=S%CdB@Q%mTA^jbKZxN;K<%!(0MfQm#bh5iu_3-rIs_R-DNGzn0ht6#7Gpq6r znN>Ag=B!o4LvZ)j!K+CrSj5QGJv2FDNyGig*#mjRb2Sk~I`oRVSDS^M-H0y51u2Vg zmdWX$Ry)1JQY){m`@cEYB>Rh;*ox>PFokl1bta<+tg+fwF&1^yt5g9?%h?A|H_(%9 zzM7Jpqy7Lc$%{>nxfnGP&v2B5P*+0q01;~Ww5_+xP{=8QTVpXDPNlEnLR8Ld9p|LJ z9(ozk7ed;~yna}B+Vq(D4wRE#o*b*Wev7aHdc>Cys^ntzqh})hR5X&@tP)xs~{Ax0Y;f&*xTAtGu8u z!kGdGl8l*~tGk`mVkk>7v_154tME(3sS1c#5#VP%MS%Oe(8{!t^&e>c*yE#)EpDxf zTC2c%b55mD=8SP7*8p{c%z=9tVWO;pMOFq-#F||}B7hvhVlDMDFhgh!*DH)BFlY5* z!c4lZqR$sJ+qQ;oq3PGrCt!N4myTHJk*Z$WhJT?weiX~Sf$r2eu7s2lVU zk3?%Gq5`S2_>0!f9@q##1kw{{dBy-M$6m4~6+jQOqqu}L0yT6xK4OjL=sULa-r8y{fRh*SizZ~cTqomV-dnp<*NL%8_;_Nc>f&bNb)9=5A^iM7+ykdTr z(|bV#x2GvhgK|iOH6#3gXmC=V?etJt4_MofC>ucP(IMKWoMAuVp$tCR^U$;W(C!O5l?%fRqPjB(=KPPCY&&vt<1poVR9%vE^jM2z=6Jikij(l{V!4S!HtK z=XAKJG7=NZj6M~cNM!&Z7T_c!&u^1p4bhNSlrt7TFy}Ua6ldMi;SN}HDmv;+`sMji zui}Q^2Nj$+6dX_%$;KPKd{c3uT2oo!N4(U*?M^CODAPilK6nGnc|>(ATy2KbJV?HT5H+Z?R$mNHUXUQcq8$!DDqU(mRGzH6HSLNo zN-%v9mmLY9ki_VytI`aBdU8o9#IVK-zQlPU(sGQIK1Y*-AD-ff6)n^IuMzXIz8Xl? zZ@-J3XzG~KeOE~VCD$_RpWB_32#n|kWQ5u7SS_x=jMA^O{cPhfGKNJ2;(^O^r$Y zoX-~esn58pA4-*eZ-=yDt8`KBHdW`ygs+y8u9+Ar#N3Jr3pzA1n16meO<}qKxEvLI?tFKgKI=KDQ@qWuV*tN zPI?VD=8h4fxM_~dLEJd4Rw-89!`wkU2D&Q?jFahT*)ah2Lf(GJUvQFyCuh>4jK{!W zrNCI=BE{^b%*Jx<)VYK4GgYTRiF$ayZ`aE!#Pwrs$HMXC%-sfxavU=H0)Lh~W|t@F z?_dl-@&>@W+ANb$%wRP6fb4acnZCjmEdA1eH(%w-b!GBO!r(9jrPg zm3oUC_%793k4Gbcw8X+o?A&sPaX|}X8d5reAw4|8QJc2Z!%+;XuEP_MRYt}zI) zo$4*}ed6(vTN}k!@8{SF$;AxJJEO3C1l;a$(rP}l0qSj)3eOT$CLWRx1evyq@{Sn0 z;Uv9qEtV+&c>u$gyHEiR&!ip$dQUE18ecaBX}WCliEmq9gNU4GbE~(X0L88tOKg$0 z=2Pg`geUdI#3$qhmWxdgX!43KXhG$~5=hQPCcUrgM*FidWuRWb55~&yR2Q5UuLi5d zBxw<{e-w76b5E9Z5bi7M>E)qi1TC{JlsJptj0w-X=B*3Yps;-WaQLmlMvgN8=JjSW z1FL2~L{D=A6qOjt$!B{#v<>a`(>?u%C!ny}*5;ZQDaWE!oD=agt$N+PY27LiE#0;G z&yU-;U;Vr30->mWLEaM|JQxDaL30gfeD0TRS@!DS~RvFla|UZy;q-`_;w8*oq{f{^*)wiKvTe{x-%oD``KKlZ$pIiGpzhrG1{KWt^W1X< zw3lt=ZPhBPE}w{slt7;2tJb(z!{S&;mj^Ea74Ik&mpp3}Z3E_WBI%D#HsM(8UMtW+ zLScR(ng=M|Md)|)`s2q3q*MCm>kqHLKfr-$Z)Z$ed*f4vSsMxrhaHmqo{p7kjiF*X zE+8Ii>x3hknqa7hu1t7}ms1=y2F{>Bq0tE>CxngO%oxKS=wP>N0(Ohu(WmYX$t!}_u@nlYtFHVXm{GmY-n9ch z`3b!cw`!uYwDnVD8t?eXB#351(?n{e^qn#_=Ja;hHOKf%*`%bc>n z%g~8DT-r$)^=YPYFO=Xsp$fygzPUAwL1J0rT+cq^2_R3UUvj_G)80S=oZgqh{iTLu zIXS-e-jFEe3*$pFNRn%zidyZ^iq#0f>~Kp z<*6i(`4oKx8R5;<_=UjH5R}`Bg6?K^x4fZ7Nb8OSKzfk#xX3Y3H`9Y7n8~>=nP%11 zXah{G7$YpXj10112P{TUC9{R9%1nP+0aWh{3OwE-NMW{PeMrfwAS!=kiuHm7F_{H3ohE(<)1aqyI%&a#1@cN?_M-y*^D})=^fR!BE8f8lv zSJO|ygyfm?FTyX?vwjKjVh>LyBRBzROHq*FPUCJ~qw<5Q+3h3Iu&L_=tXYEq22M=)+>cDJ+?!zf447W;U;q2V?LUhe5a5gABC{?P#UY@i zlJ1zCR{RDVr?rQBW|=@?c-Cf65D~F6?by%tCWtw-tmxH|c3;E7)35@k)dp=l1_eX% zD;*ug;3lWd3@UpwaIW7O*C5ds`m5zN3XW()Ldm+%vUTJx$((qnHoaDt1dA7ds~sUc zXH?f?;PwoFdfJgAg*0`NCk&At1nZFUhxBDEQmP{OTJzBI31&Rea~{o8q~u0%Q!t4? z^=2hG`lUB3+0ie(SxJw6>CH-h^hKEVr3+LP4{R=1D@BX6#P@+d!5JFLhaMa;aOLoI`Z4{P`H3Ld!#(-jL;v@4>n@-;Y6@W$b-oNcQ1 zSOS=7>oS(pVF3u#vI`_fqwETmN*Pdxe6PlT4Gdg3Xb z$nD?@b>^D&)*$A4s48uA zx)y1pdHf}0-%p{DfGci&20CE9yTBQ(drt*YXG^|-ET1VmS9^uZ5^R1T6$!v@#f+vV zDe?WUx_tj1oKuoozfkfgy}qTaO1t|FPa4skvYKYkHEAAk zb`-%4eYSK3MO(*776+I*ZYM8D6md?$a=18%zT;^`(%5g^BWB0zs+3Ou{P0}APXTh| zUuxA}l=};fXUeSQv79b%y6Od)xHKqtTx=9n1$V?T8~fwgrl97LTT(PN^2{aznSvuo zi2~umpnS8KT#KD0eI0!I{+}NnzCoxlXgsiIcH=~Nq&dpbynu$1sv?%}Pksv|KDrhB z)SGT^;ATEOu-7pdIr6sRqqsl_AOjjW9QF z3uCR31kT$OJFgzzee>zt-Sh2-*Y7@l{qW&q>Rsgie4aE{Pl{v`ieGmZ^!9Qa31=LB zksvG;dd&FgMAB-})?qPb>PQwXkDR3x>3U!1ICU_%gel)^0*+k z;|Tw^xsr37_OpsHU3HjK9Vu+yi_@pIUw8WR1{E{^Jv#En79%=e&+iAznv0Gz6$fFvjO0AR9PN?+}I4 zL}ui-S?JeB2sW>&K-k}E?MN3D51K(~Cl9p_L z`Y0^{!t#d^wQuTQ1p_mcE7zd_>w|^7Y}KIH-Y;ZeRUNL|n3rohyOT51=JP*ju}Jd^ zZL@DYW4V0aQN_evUi!9-<;_uDu@BTCO8H@A6D$skov{LJW6CE_1@WBSNRb=bX+{_E z!P{3edH2Z~_?3=hHSfKr%U7X1T&@qPjD{6AK)&WjJRzcsK7-^Xse)c0;aja7;uXyi zDespn+O;m=j45jt?dbYZLNw`&%tne4&cFRk`-mbkJX&v8u!DskU*XV-MD@H$S}2(K z+hFz@rtzCN4SHBa*(!e@Pe5`d-XzyYw}7`$J%nhvk9Ra3Uv4_Bz(T-W>v?gBu_VO- z&nhdfMK(hx?1ukGfHncXk*Zpkrn)2{-Q15?$>YkJ=~z+(g=;9B0$NVNs8)t*A$So- zd@>o9xsTDX2WE82a1a-lX?M0Q9U)tTx~Y4eXpDlUC`AFnAnQyp0oGu6OJ$h^5d)`F z(V+^S_tFY76;l9eW3jP55>-R?0YulpM%jH*fYLm0YFS`bjBGUYEkzX^`IggvoqB+* zO-3208F4MJjv-4dF9W8 zH}60H$G2Y@yIQYX)biC+zsx;&RDdx`)mjKRxax#a>868Q@fZdaJJg}B+Nf8A6)c= zO1;Simmp0ZIPE$dK@cm5dmM7HeHx&)jt=%HC^0lBeSx^gPKnz+t(Dgq>9r7eWU9+= zd%9>82=s?gkJ7;hUp*asWhc?3m4-Aj@)0N-0g4y)&u;Kcl50-Le=3_s(bmFcnzDX{ zl)-+y1JxjL6g-?^Y=b$N%k^n>`6IB>APe_v{DoI7Jpu2wtjKzP1^=eBB`6Pt zmb2}n0XTsHDO?}9Pd>f2+0u-X=cF4n>>-z_>^22H9do1O<luTZPs4s;r6l}xBcgI_bT3m?ws%w9E?*(IGj$H=L z7qr3}jHfR2V3KH+aB6uViq&Y&?{!$Q0lHy;XFo3t@GQar`LW<9A$O$A+KWk@Si5X1 zGe%0IWG;cd?p^`Pi{)9Mjt2UwXlV|(I$0IopRN}?Ga@jg6m(YBjjW|-tgsd-5{?u9 zb%SqtB~N--Y5OKU!8Cp@zGuN)xjIqx>Vt~NX9LWe;bLkmdG;PZSZ98)?5q;g2(hPN zV2^p@vR0N4#5r49NE}$&KI|@LG8`acLB4HIpCCCXmz4#ocS`81gW9?JgoX-WYw$UT zgZvw6K#rg68>-SOCyf8r2xl&>Q?KkE9D`B_?JFyT z2UQ>`_8Cih3fwe)MTb$U`tudKjS8h~pgfs^z7i#Qv{iY%JN|OJM_J)RFuVVH`{qG2 z4dap&UzCQ{Qv_Nd#99O{nt6#__3B;=(Gr}u_znUdTukA_UgM^o4jOF9cXn#FH9*~< zr9=Qel&y%Nj*O5dt`K&P$dFs{`P*O~oWSjYTA0fc6YI5`$hM$yw&# z4?lG=LBcc!Jv~da3a$asP@9QyrtUZB)%l`Te2E?F$`lYuj$k}PIvgYip#XRI45Ggk z9NFDtLtXojrT_GNw@?8YIXs6_4K99tp6zil`J+dsrb0ox%NfwcYDAtugw|kTrdRIE z$1MqY;pNNS!b)i$+Be%a8o2>X<;`_)QV6J5)J*N!8U{>o#}nq5hfH9$2W$sK3C88y z&4sF=p$7rKN3bg2ZV6ZhM1^L|wX_x3nBZr44V*lFU$ne1j7VGreqLC$ux%`N@s4De z9kd~}qnUojpS)d|%?U;g{G6|fpuc`NvW+md06@QD)UUx=?B6;l~1r_90icfhDqr7`7QJNV-8 zk0+=r=6@2_QC4}?1Y&hP6$Jw05I>b)p3%VNh47)GM} z#T~(hWSPzUY1v?y>Zg@;yKp^A<8+-0Me!r3P;BtcMGfD1TakOScf^$9b8&F3wz=&!fH_Nf zTA8eOi%@%iu3N`CU_F@(I{XQDGf-oAmLy9kivZ-(?P_Vx5|@5`8_)M3+7hBi*VtUz z2c+129GhD{=U&5ffb?um5_Z@L5aS87*xeZ{fcBlcSDQr&NVR(2up25XIV2#ME*f=FH+054NV-!t|!Zx{l z0BFrU#WM~DY&a(l!>yjH1EJ6$O8Jd3_o1_i)m75l-E$P^kX3I40yhUm)@Hnp4 z60*ahA&b)RW>B^CX}qG)@(q32#5MadCRL#G3-1_e0vXjoWOa$+;zoW+oGk>`&urL9t}@~#}$2bG)^HQ$jLy8n+@ti zrk}cx+G)_~OYB;3hy0UR#b|H}(S^vHB0bJPVhi_niFk|r$j(zDq~eh-&wl(xDWdz4 z$DICzSD_}ukH2hm67l1YyzOL&KrLYoU`NcDORn<4<2*K3c{T&jQ;9V4!{Dr@B@D;w zXkZA-%~~ZPBeO@1%!25OnRQTEfYII+I-3D^D5694W*JTlZf=vl)2V@QjUC*Du#F~H zi1D%ACGT8*mQ+2%AIo#s)4{xqRiJZ}q?4=VeIk@#c7P0&dfI#sx=|L&W?=XW39e#833OpBR)iMJE@B-=zsKqqpNh#e?h zGxW)Zl`9V-T{pFt3ozc$sQoT!EAg9s6LugXji?%mDeP)OKAWLl8zuVCym z=C{4CfzfAlff#{v)JqsaU}rqWmqsDA72Ntgzgmv7nuMI=9ygf$wXPiN-4+Q}ZVQd7 zmyz~VaD|8GS_-=P^}-g+l+c(&BqM)JvC#qdvB_ZMkPF$2=%7ku6Do1HDvF19IzJ&p z6W941!pU|ss>-vK*Y(ZLzz=tIJWp{sP0cl^$qk(*ab<8o|2IQXJPCSz^T`FdHq%q0 z*KUd8O%1^o1}oK+-DGw!>4A7Q*{T!ADACSCE67zQpQ7ygm_7(tK?lJ(u4vhQ?KKkgbh9!meU!Sv)Hqu&R+q?3X@)HL-ch*3f45gQOjBt#{s+Cl|PHc2H}{9yrXwl)${m` zc(noaNYKJg1arC;5zKaGXk)qDGx{ksu4StXLQkx!}ew^pK z+3EzAC;rksETXC~AKP{odwA-O*2`#W599+brU!0{H}l0su~x4>C zP2zraNuL8$4IBd(;u~3NW&eRJV0NJJluj*I8hdZMj3CRzJU`meM6vLrr49(_({_Jx zjI)!PLG!^33DFK_w3$HKkr`#&N7F6pB`iIMPf21$AGzH z0jz%oxEQ54v{YWxTNXR9RS)e?97vino{MGG*2EQF5ZZ{Gr}rph2Yiv6 z8m+J{jmEQAkU3+PvRhpZ*EGq)3oZp^Zua8*0Esj}+Ez&x@#@9-+T0W6n}Ut1zb3U7 z4LKVP>1|{x!dwfd%;ZA!Y+AOK&Vtk%Gs_O147lTQ<_F65(%O zfj$IVZ)x{IxAd6%i;g0jvzK9clNrb0ATf4$^+U=3w9}x?^Zf6-7%Uw9E(y%GQ>gTsoNoL&2&?fL!9psAZ3A1uD zg6&V??{dGUsG7ou#+w(1iFxUZAhHe`rU=SvP2W!2Bjl+vGP*jSy3nhT!S>+d5k=WW z7jVFy^)OBu=+hILE)4x=`*87|#)Hc!<2AIhYcIuU(Ke=37Mp=d=j_(H1LxjrSl|a> z11Pt}n;Nn>E(BGJ0xw;8vk+@AeW{k+1l3+i9hoM(@5;BpFT?A8mP9lVScC>n4x|@ zX(&4Ab;Sg7^#hHDrW^(WDO6nB6fJ#j#HxeNtC%z*u8;;9(df}1ZEDnoP5N z$#s*ql=>1ATned=+$y$^s<~qx)+))uJq70hw#`Kfzo2I(u_IG~a1IMoj)tazA(E1A z@WX03T9 zLD=1{a~)Tj(uNy5?QS!6`%Sc}&s0g!q@Q$#CBD;v8mZ{3Q5nbt*pbe%@T?i_-5^_6 z^2mYW-kgK(R>Q$#a0n&UV5>kn@+rbg7Z2|qKD_?)0L6g!4)wDweP~t8q+lnFvm`I2 zN27At_lDxl?r9U0%hHQQ94={>Vv(WfxV5khkIJYank^mDF|;wlDcH$fz}3<0qG z&2q;B0pPx#f;C`xEQV}CfC-(c3~{>7&L$!vURzfSrIRvHP!$^CK>31@1UG3U|DUe! z#OW37)CbC6Ctke-wCcdH}~xCLL575Q0(aMG(nDBz9&OwHlP-x?Z_ zrl&R|9fcVQ1XOW>@My(EidlKKU;kNwH0|bCkILEe3IPby$md=l?W5`(4TZ&$pMv{d z^>)$CcFaY*sv4;kVjfoPaRbt0w7J9O!~L*RQMZpH&P*m=n8gxLj}wwB1%r7~Fed--=#Jch$W$NfLjMs@(+vRFt$4zZl+lc!w65N12@}l6T4rR7sM%5U%qhJ-!YV5zO{)i3a4F+N$ z4$mnf15qXw5-?;9V;jxGJM)u^o9lw1Y@p;OZQPbGmN{AYF^aGp^jr(GHV@|ndN}?i zC!QD{Ilp2oC6jduCM$(&c?YeB2R9i}ibyBy#L6?;ME!bynjmXhi=+xL1@Cf_yi_h1 z7ndbg!>5wboQ1*Pj8juzIU=<_ux(d!g{!!2eS*cp_7~_$Fl{K|GtceWYS(I5-mn(7 zm-cwMT?3@fpk@}+(8)xJ;6y4d`<00;s5+T02FioT_6QYWMb;kAz=IOH@kw6Q?zz2)A%I!>Z}t?A58xRxeQnxi@?JNxX8K|(T1c>Vn$+* zINlKzMErBPgSn0B9%PItT(#>iwh9p>fv?Q55JUzvP~|I>;a5;~D77<gJ^l$6HUOJROY9si^DP1`pap*`zQYR{kny`7&6r|iz(e!BVm z{XZT)4DzMq3?VTOx=f0B@(!Ux1^>f4?8uAb2H8rcxqLxGEI5MMVx9zbKR7K^OKdtg za|||&P#^@*9dML9JqAklhT-mZwz*C^Fl%ZEMA|rw+@V>6Um}@4@RN_H6%Jg1C2XdX<+=uWJxBliv z0by8oM@wHs%qW4_)y!C)c6C~Y;pitY71l><5PCcwf_^ogM&*Kh=}p10k-b%_V8t&) zBu{fO@8D9|m*m@$eW*KVfF(n7n0?*~s${G{kr*lboMc((xo%VI+|+I5r4c;VEf>$% z(^88Z`Fg^R5tdU#R=k*fsR#@G^)c11{x0t}UG?-D@kGuv+SUx~6M1f4f?KA~3_>DbXB$u&7)cCfno;3IuB+1oeYq zJn?s>)P1hgc7K6kcoWm4wYXWo6jF|cO)u6JJOXk6%4w%!b48A&zU%O%6-X2B2y`gR z1vWhX>M+qop}3}(vhU{8`+r(pwaItyQ7HM^OB_mUFxM|-&nLhri|3x`Z}8l1umap5(Rs$uG03L+(2Vxozz zXaG93Hl!k^TvttDghJ+3OLu{Vv&_-6)n-9Ay&cwhxccJk(qj_B7UTC?pnz>|jtskJ zb-^SIrRBc@=p)1dorzsBPuR|m$24`}THWQ-LJ3m4Pu#8uDylOH4NPx7)ki%QO#5U*i+&L6E(^8wnQc2o*))cvqSxv5#t?Zn4!dkEvD* zSi@3x1a+Zo0}ae+NKH^z0^27LpHnO9AUQ{i*3`R@eb7N8_+f>;wzYHMg}ZivPS~ zN~z!)Ri|4rS`F6owJAXA##4BJMqq$3c~;k}FmM+euLHBGQ+kZ`cKFOD$FpS&p9v+n zuYQ%|#3-uOdu=ChmY&(GSeSpb6z;qvA z4$d}Pt`zlG!RUlc2;{2cWoa6q5~*66DwCHSDvid# z_o610PGWFf@3w)$lyG-ztQ%GXzx9HO{eYd2$qbsO^>)#N4F`ux%D1hHqH$H9m@6lm zdqC0FDD>gRi~N7Iy$f?2$+0G?pMvX%bx_AM4g#Pkj(r|M;z7b92nYZvjc;rqcGuw%QJvM@)m2$p`A)>m)*n;DiuZC{aCyJl-d-~z z%H;hjl%$mUDNDG6{NetR?4gdQS{~X1w*q3rh$ZU)*62e8?m1Hao^PPmLK1n_q#itd zYWgI4qp+NMNrNTt1wfxe#OFE9=vhxergW)=@oMt@gf*bieSk96kxI!J(7^a&Pc-|3 zWFICa$hyk3S7ayW1FdQ$DMTS9!)bzUqhi*aSL^SgFK`r*7C>iAqXh74T5H=NNJWG* z3bON^3{>q!BXi`T7jqA?5JP=xJI1{!Y{Pg%4|mCZdRrMA^Hq&jM}%vF)A8kJLJd=Q zuh9VK?VHUXVF~icVK}~|DMdEp<@OoeKYfb5ts!v>LucpthAeWrO5vS=dK>BL`C>!X z5!OoOsn>pRUzZ-R4N^2(^8F~gmPJF&0ZzG@MOA{7_0&9$tP0 zLa%#xquu$+8JW~%eg`DlE zl{ULIkv4SHL@!A{5F{qUdBxE+Abom?$9`=45=-(i>QyqKT+c$?rWLB-Y3`Y;RgP?q z!opBLAP_L;d8;vaHZq2p=;=|W80R zeW*~#2>?}aEw_7IopfDj{z@t|x6em)CNbik^qYj_iS|A16CEvmyCza6Lsjb_%}dE> z;DJR1f(xVWR2ePZ80Rt3<4J`qW{1&BEn_mg>GjwV5tGCcD*B*i{nH$)&@@YnZBGi2DiO+ls>8K+2l7bF?2G0cUrbuIw^7Y{0o#coar9}&U zBYoJw@$cYebMgJ4_o{u21!IvBPCO*z{%*Ih&N_0Wz`@lm!d>Z)P-Ot|UUnC>>zFkHo10cLi-SkV!D#^?!CZe~>K0!13=deU_=wX4G2@IbuSR1~7PtZw;5 zq#e^>>J1scl+;GIG@(9Ft%0|;44|hchDWw@E!{PAT%qfwn*aQIixW#bS_mPu4gHF7 zo6*ur+qNqlxr;qq!~FAHpE$P>Jxyf5-0Pi|kg^ssH&fHapi%-PS2cRxifCz2+omk} zbT)r+aqBt#lVRkYILXQG8d$y9Mjs86Cmywy`j14DXAtb2ME%VU84A&XZgZtU=!ujg z6tZUP)7D%gX@>KW)kdQ4n0<1nq_@;A>?X+wKxztJddC#bODM$iZ+&9cU%rSBOQx(E zrVr9m)Ry&V70YO<%P2GLEy0-)6$H6YGgt#;kQ1E;U4r(!)cf*qD?l2U*y|!{VV>CQ zl$v7hR+!LFo4VRgewR!XL9=}IKi+>({Wv_CffqV*kP8f38`^{3Ag%(M=Lzp4YY-TR zl_;mL*LBM$Q`Qsj?ik7GYxhKe@+(dCSlL#s)<-JVsZZPwy2)Tf|6P`AURHthGO=7LqPUEL0$5!y~X z=8Suxrhq&I3%vUp3J7n}DqVfrI>>}xqGNeolOy~D4P@QPQXTJYePhsTrD$lTyN2nJ zSj6l3hVfA;3A53)B&Uv=hjhStPQPc}^4KNK#(cV19Y;_zW)~?1O}PM>9F1bBw8Mvy zJJVZ&3v)uL>fR3G1jJM`r11ie%Bp~z2^#e%>rBu*UFbmRS}|s+r+dTt`gSYlPjNb( ztF@coiMjcK)x6+d5?5u}6BA8gs060UiX8JQb&d3=>ezl8pypTm0uzATZ=D69U=$#A zc4{E;!R6Uec8n+00VY5PaR_nEeAp(q;XMuJa-=Q|jNRqQHBl8LV+cfNERBcz)PzSE zRKax{Hvz=Or=XH?&RNoMKcLTaKv&VyzJ(=XmH9e-kpNDSjPh=a5NUF=yNNq2StH|` z5wMoF76i;mt8Ik7sHL&*g)R(nhUO)^*gQ9nj1O**&lf;;lt64cn=BAs3y$ED9&1mH zO1UYw*{V*~MsZdcNu!Z`_Y!$G>iK8q1k%*E!eNp`OHZJ}kmAxPkG#3O^gg`#aq+Hs zO$*hVSRF#~dw4|?(Wfg6=+nnoY-q3TGC+D@ElRkiR0w2Jgv)wk@<~G&2oyyU5@5PY zN%iX#o;ygh(%x?!I>SfocDJqJVG|RRmaW2SV)pRgX&XAbdXK{ z#FNcKVS1IY&m&~|y6E2OK=H_yIA6?N0CE@1atDHYS`fCYo6e3$KcBIxGA@wlJ}?oz zaKn3#Ml6&^=97s^Yke#)vAP6>0u{(o$j51JEO@40T22$Y1JB92lu}D0)wJEj`3#7< zifEi8dlID7&9#$aDHw3vaEC!}kPSCqA#GRvAC|N0t|r_=VCLEBsV0--`^9Q^#Ufx* z>ME`jPQf=fv+GWeN3uafvx3hXKp64`F=oWo7a}Tt#oQAoXNC3n9Ys9_t{8jD zSjcou&oNSK0)^|$e5XnYX37kwBFT@oG-D;0K8lFyc@Tw?2^TG0>S0_pI7p0U+lWlZ zL#YEZOtxI1K1<%PNdo6ZRsmkrj{Qeeq3SU=$Q=-Vd{gI`%4<0c%W7jIF}?gpQgjy4 zy);hUt*PxRm){sE;~{;qAOA#tn>|V2;QOl9PM^MKrx4{Rj_- zm=cs$0`F2_EuP2PNp%Ng*K&CQv}EdjOTzIIHVTs z0D;M{zd*TmJ>1Nm503u9HqvAG1;xa`XBP-)b=ivCtUZ^tA}&IbIMJh+e_e|v1O%Na zs%LnKAZXY~5xMt?aYbOv@ND-`WDLMi`ETd5&Gyk`P7lKycqe?npDd>X7S1UzfHY9V z8(4D zGilAOA{;0m*Sr$!F~(l@@h#|yS$g+if)#k~ypP9((;J64ZdZ}T1OoB=k22nRN9_r> zM4RspLITNZ$i|YYA0mmq_~WOuFy#wxfp))HQsyc6JO` zt{V}UOJ9s@hMr_@?s$IWLdA z5kj-n)Q2I87imxq@*7>CEKjKaIzkaxp3kw<3Q4+vYCcLnYTR|i2tG;-Xqgf-)~WRO z#i|>z^ZMhPPp{t2 z-@N^F|6xCQ|L)Ikel*`i`GcZ|U90+)M{5e4gGVKkVwqe=ioAhGdzc|oTkFiF-=t)1 zCMOkb^~tIeuw?KRp#4A_ZZqao68Jhm20Xayi2fz6FTcaMJC9Q zUYU&2K^Q>YLYjj&tMmm+$xcK?sw?^oq1zOmWrm=V#$d|u!n_UCHZ1tQ!Y|Q$HUNo? z`oJ@Q(~0DSuh@S59b}K;sLclzN#J3xP7(%J&iEx2y&}I9vJb5s9A_a;h!-f@`ckCX z1>4L_XZyjghR44h|8_VS9gl{`XCs8Yf4F~pkCaM}e^u-lXgXj|$%)OoGSJ`uC6}g# z=76ym6G}&kE!1e~`WeZQ@&yfwA579|9yNwP%H39p6`oN7nx|=+6O^gPhpUF?gA4%B zsSEe4?xX#5TR9VBX>{`Avew!>2au#-kZD*0|;yt$INnmPp3 zD=2G2xz!U1dRUO_ZNH#dUp_spEGr zw8IMFj>B%7H*Z;6RRv~zJ19~T9}*CoEsSsI6BqSv%}{8WTU~tv)D3nH8OIN`SKV~X zo-DED5L&nm9G4K*xe80m;%4yA|4f}GJdv;`yIr=o7XxT~Ffk0`G0RMDC96#MBb17N z4h_B}LvDlJdEqH3EEP@YQiFt_4$|W8n3)^GY%{NVL4Y(l+&^Sh5xktN`=k}bBCvpS zaxL+9+x46cQ2ceYC*ueH$<$!t+EYst4(yd*Dr~cplavyT{sY`VH;B4j-_kS3B<|^; z@2Vd}c<>4-*sjlSZy2c{A&6Qfr{9q}U7kJ0%IS<07I=E#)<9XqG7gzP$jC*iXz7FO zP$bK^+qhbqrx+8HP<5tZrM>Pt*J6G3M$>aSf_lSdOLA^zg*g4&+(I4)9Pe7y*9 zsDYw^uhO&CmSQ@2F7|eTHDgVK#`>$ets<5yzrA|lIsD4M@FaBk(o>K?#gya^j|tu8 zINQJ}eX*ZC?(4ckh459cXTPs{e}3TC^*=|V%+)23q!9sr8AAio#pn_}X4`lT<Rc=xW-gwn&H!nII@a}SgGWa_%t&Y&0tN^|#{|qfYq&6)5(6nd9dki- zQBeiyQY0nhtGGhQBdP9S62Si@jkzdRT-GCv#KW!(1zhqy$mJnwuav^tRX3kx z$}~d^zzz2e!qdR}U^6Zz_S0xn-Bxi3)`loGj&wtnEC}UUaKb5A!4oG)?h$=8H`z#M z6D`qSaiTZ@z==-g5*DD(wwB;oBd}Fo51y%0`L`<|4XbT^{Ji?44sWn04kzBFMKhP zaY5f6CM@WP{R}3u(kP0a&?ekYshvq@H=a?le{|Kuqpd@-7~wq;0QudHF+K#fLkl9n5Kt=tWUiLr0=a*Pz6pdV5P86d z#~X!D)Br*J6$PBhPeXonSzjiQzsG}+6dYtB}v1! zl@V*wafJM_eUU`sO7Fwe zzNRTsl3#R%l~+%=B=I&ArIn*lAUW+XC`-Xf0cB6Is!zk!NG?SoCaX?N+0gWhFt~}p zftjf!y4b@*K&%r!WKh?QBv(XUU$I4N++o@FxY!tZIegkepjPVRwyld4#A(% z`|b`ZfE$p1$ilQY_$zZ3y=l`+?>0#tWM+L;hy~7u5#foz!_Tt77gtGy!d~V^v2bFD zrUsuMze0_r$_!G0^tj}M;NGP!$<=Y*Ao$7sG&+dzViP1;prwhYjgH(9%T`_yuZZuCAlT+gAn_ zAUW&{=j}=6Vzz-a5XNm7wu+9+gf}$G`~S}vf$EYXVq|pKO+t|mDO8Sbg@$RYqr-ioi|cxwgsKG$dw%FqjK#qhdL;lX zA|0;&ru(N+F1g)dyH`E*NO9qm$w!P39+?U*w}ljNM3l?tgKF9S9>%TX{HKy-GUOq| zQ%UAuj{bP4@dr`fy=+&xglNEidS995MBDGxz%O?G4QiHx%U&F@c=P5o?Ey_qnu0+eYxaK>0HKdBAA-%gIpk(0R%O0Og08g-VFJXb(w0gq&vWw z1}(!T%91F4sy#q>Mbq9AT6*N)mOUr|ES2s41{I0o(6b5LH0cS z<0@o|Ph23VFrj@U0ZM5o!fC7p3lq343ZEglG=(hD3(!)N>~L$CxdVl)vauru0=Eb4 zhgM50EJ`rLMvfb+utAY1Umm(21-@BW$e?Z}j6^v0&^|cjfr+;IWYMlMGM4Rcr?=|MirmXpIZm>xYMkd7bMQW zdhgdTz0kRxo*K!8Bt`kQr-%DU&S8Cw7d`d8*Pax5vuphwL6d+_Ay$bRx`x06(O60T z3QfzPX&2LDTe~X6u7ia-8}J5|250!4%LBIgaU{%VJ7}*F&I->ooDSRbi|ZLh19gBi z72I=v4O7`a?1o&`GD#Mqu@W*#R~I+8tJ|#|!Og|2Jb`}JrK-ga2C87X3T~}UNJTcr zb$rqLORU@Q35J*)e{#8s8cTXQII8fKRR!b%M>??NorsE<@H}K5W%E|Fw(n+-xG-W% z%8BRfXK?Dey$qZRsU-t6oI;ABl$z99(LMX48CW+-%khGODIH4qcPP(q`<<={l`7(E zzCMw=GZEcFAAMT6oQWh?P`y8#S$5m?hx?B|yn1`DFLzcSIR&Ie$wyD1I2C%*F4jxc z0qZ5&Y-3T|kte{3mOhMk!Kcab4IW#zlYpDL46c=4TwsgLNq9+0{BkLJ>%Y@uWXHe4 zo~gO0<8yLBG_5|vqZJFZ=DT~X7UaI-u z;?P0ZtFCluo7;U_^wxq1SR}VZ;}s zoEe_K1#{cjAZ%oqBHN&LFeAlyjd=RR1k)gei^3tG!>Ce6Hz0NA@akmz?ztyJyd?c@ zm*z!QAK7?~;e_lvuugGB5ZoT{*}zQnbjUjX<)%6z%=Yg!r(P_k@bBCY#!%FO9G=lh z0;+(`^LJD{fkT4+1C5%zIh!6Sn#74&4?7e4i<%{vKD(fIc;6}vk8-Ki1ubOaU@x}c zH)~db^holqzzC}p?+fhie-%ibwd7&aj9sb{Uqzt9@_`@-!SpCBY%Ba_Tj;~`A?Fx6 ztsG{mNw<6v6~Ly~8G&Xd^eF+d$;IBF$h=&-UEK{SczU{?XQ2o(DOf)}H9+c|PSOdY z0v>e2%^mVvJY&JYN6VAJ5XX`M&S%K>0>TRqs@VqNlOV7#96K+g&5yt-FNbj%adRg zfeyJ;cqDT1GO8`pp`|j_qqy7<1j+hbA$vJ}{d4_ApCH+2|EC5-fMOJqMzROAwSJs0rcm-)(e` z>X(M8sSI-CcBRx*4{5-ZeT;cAktBYi{Sc?S(UAk4G$f;_7VAJgxeF#a9N6crN(u%i zZ61y!3{W1y`ZPIT^Su%31{@9F=WpOCWHFfuV~e(FUsDh8^8Y43r?|VSy-5QHg^qtz z<_;D`5QVbbfWsR^aCped;TI|L<*E+yW<+>r?10=taf^XyIWtnAyB^)GBU3^9uA!*UZ(9uAqCMKYuKqJHg8XHIKT89 z4wR$qLaAumScMO&A4TjN)zWu^O4Ag4(eCPYiNG^5rm#~!W3Y%6lA)3tYEI)!!*45^F)93mT=c2T#layeQQLN4-1N%hEfR^}) z$cF+!M!ivRh9H3DRWemt#hY@#u!EFQi4O-QmNAK7N91?CzKftvN~Mzbu&HL7H5~QU z=f^^CR`l{KD|jeq`0mnJ#_(pvBIbmZU{fRtLQyokDR&f&6UlCF0lclNBD;!im4$e4rGJ|7CvK+pZt;r0@8UqO?mww?P*1g zr*XE*8}?q3Su+=6&ES@=ogwFU_&tRl1j)Y2EMrPFhG3OMEtxwCeVrUS^&-BJcsfv1 zEVL$WvZ`{~@Xy30OP|qY$y?APig~Uc&{DEtQZ|wP7Al zxA5y*T;3o_3$;a%HW+tv^y>BN4^X%s9sThB-N#RZkDoq#{^8SLSN1_|K8OD8{hQZp z=_YVZe-qcu#KDK85+w?*fVR3uKY9%m0n+RX6-?=lIIf<S*uqoj2b36 zHF%_e5!G+_B@Xc$kuKxU&T%=N?iCRdO!GuBWcwVa==S;0YyrnE7*>!xr>4~`GTX`P zfti~o%ya+L^6KWcK7iXv`M5;3Ei)HCOp9vu+rj$bB@j^PHl9D23aSUbc!DpkbjBX& zl2+lcUD7OyWg0Kk(}8MEqu`mN*RH|*E#|J8Vq@cesrn76s>Z~0&&C9<$B*E2hC*w} zcgULAZHTs@B#Ls!clLTO{Lwkfo)r0IkRb|8485DIz{;R*I!OV)Q|Jsz_ZqRwHB?6< zk#RCMjb)*CA^A%nA%`mr));_P@Mm5ArcllMrlU#~#{eQ7Ai^=;A-u@_H{>;k)1IA_ z3_Z}B2Y^=Q4nhJMfh+oUOlKFjmvo2bV#5mU;=?8P-sKR~U7I$VLSdn*sfR|cT8x(9 z+%5%siCSwk$5sUa3b3ZkNt!IQ(lQkjT*K7eJm{zhg2&r)C2p2lD78!%jh%?Fla_Db z@JOQs%5NWfB9UHhF9UT$aVEZ)I%z6K+yNJZ<|1O?Ab`Itdm!&=vIi3L!pU)U4fki1 z6msu(9m>6FnY;sbLGsn1)_jF{zRm58Dd>s|=(k3$8XS;_X1Sg0;xOFrUw!)Y;mw~u zqY(T4=;*Jne)ymFufG|*di&^0c~_0Qqt+A|aRfaLtY6`IS({o>Hvbkjqjxm-RgN4A)p%qxpU11iwRiVR#LG2T5g zGj$*M2z!W_;h@q z5yjeRqm%{~8%P@DUVbG5^(t;3K8C(*FLI&>YbFYm9W9CgC(DkAd*^Q# z@75pQ|H$sKGtIgSeq(tH)}O(vs4lax$$_9UncQwAbxaV;IN2h~m*^A?z1Q6p%G7WL zUQ&iAL6NcK9nD%kjxhRpG82LH(P_#ji+M`{YnZy{-2n2~?iFf_s%Y~z6)Em%Xo-ld zNfaY@VvUx*To^2K6Q4Wqvd^Y_`o&Y!pb!U6no55b6MXt-`yWX%I+8nj zrm!c4N9Wk+3TAkK>4zE|hG!f_;PNK;74ztv8CR&&MK^Q67p#|=%mOL?8NOv8Awsd; z%LTl@iiSQ`li||5Pe!yd+$mWvyPjYgN_MrKzW@9u*xZp8;DRB_j@!kqs*_IN~-}DH@IU!uL=&6NPfVIyqTH4O4tC+4;2UD)8Gj@w9gzn8j#*gI#ziF8h28% z`V}}2)}6#W(_6HJ5F(Cl?4H8D-L%z5{IDnHA31|h)m3@@*u)s`C0c2MfzPbJJ6eW} zke`yI^fRhbQJ^X>s8_*~0Daml*)HD$qR%ae%Z3iBazPTSa@dlOkj zOcyh?C(7z=4Uzl^-C1YvUSX5my?*`X{b>3A-J4JEKPdbRFl4Ccf%+5$x;VN;Q_mJl zF7HY6q3o$>SV2ov8M*^02-Kl;s8tu;n^qNNP0K}n%Ci~W@tL4%8>|%MSlBmBG26oQ zC{rJYYI*4Dclv$BwPR^;AWII7LvD){c8u>b`9sEwCp40k)(l~->0&wBDzy-vTX7vJb%)NPRTfyG))_~c)DPw^haQ5H}5@-p1%s#jn`Tl3P=<rq`G4WAf$}wBGfqL4#s@4NUErgLZp4S9G#9_Hy7FiSpEpDkfh-|m=W?+_ z?EG@(bexf$kkC;w5Yf=k@y{)FoAO$CvT677ZHcK;0x zp}(#KG|)bXUk@mv=XyYq8lwkv<{PvJG>o{r9@zMSx1B!ly5WdvHz?ea+Mio3afKQe zRjCQ4(1`N%f1Kfy%UC%mzoH_iZ5T!D`utHdIz>1U^{M)sG^(kUb*gshdi5fasDquB zv+3e?`3t&UEiSLV{8;q@vDq!hqxtyfpQWDTQHL$hKSkksaf}FM3nz)72y~xjO72QH z#9oq@w8ONuoh`$x;+G`7PN_EpAc3wp_hmjxWBDl6)W(QF3D*lElME9TSfPz4W6J+2 z$>?x$RcMf2Owlghr))NKiE0%g_PPR`DV57ay?Z>t)ScsikVdtw|MBoH#damusqUgX z?e(S$M*&k@b1yP35D@j^78;7{+07-$RgqoTH~x_R7g_BFJ&$MiSADi}CS@ISM%U)n z>}6UJylQrbRK967zQrvE|bLQ(sR9HMt0n{*K4k1Vcxw@BBll!9d0{Bkgazc zOvoJN<@bXVqlSeIfmn5wgad@75-_|Wh7_Nv zGnubRA!KXU$NEv&fV6~kwtsPcH}i*^5)dh7k?voS7=+=Nu`88ec_5O~#7xVV)fnI` zfpyY&_SxT}i=h|%!lAemfBPSQy`SFy8FpnZ?8t)+K-t3Oo~pRk4WHL+$bR5OE)&X8 zwiG5yhD5LI)pDHL+^(^*j|W8(RdxOLUniT#-;}<%Vnt{x&<%btuIN?(Bf`$Z&W$wD zWkTm>#0GYzu!U+GgrR0NaOVrLLHq3;E4@Pbh@L2k4u8O-At> zX;<`QBUr+T8fP2`3e${UY+-KUaR=&|1lo`jVK$%4lGLb{o|>^8A=%;91A@cdg@hh2 z_tV|#lK92^q%bjmdMsIyDzv1mfM=D*Jevw?B(u5URCvFZ+JOxyIExO^?32 zpw}UfQyYf0)km`-ZwaR5RBO7}z*D*7Ffly)Od0`VQ|7gG0?i>e5cCy7;+4tNR`l+` z42QhxxqH7xOG7pEol?9$gcQOT2c^oDP_bzvUa%V$cIPT*T_(e*ST{9(Nk@LW_A*EfC4X1qpyU-(3 z3WW{u2I;D9CbR#l+iuG8XlAn_q9A@I397u{+CANru9xCbx`-3Fx3h~r%sWXze|`S_ z_3C^&kkDUW!(Oet7MO<)%*=$UfF{nFr+fpG)60UGz`WjD_ zc3S*)R_6nGvCoVI7)RY6UfN>;5=zj*;Y=L-cOk0fI49-u!01?u3W6?}+Vc$<0lBd< z{PZ;#LK#U~060Y(gco7xbzw;`4a3<%kX>9ZC$~<-T|{I;spw#bx9O!J zF%>5*whreZRNi1}p%(wse|)hGYWX4AqW%u{Cbv&__;I~112tNH z00qm7(Pa`c@mnjNc`M>B#FNsc?u%XsH0ZICFV!%NWilIY73u}GfN495vZ!qbjgmI} z%D4PfX8rn-#tc453Z>~S7SfErjyV-XPmTGYB>j+$+U01X#`O-*zkc)Xe)hNfcav9d z-~I`%Q9_yu@+m-%T!3ftJs9V}1)hAC4kE6TxEtPZC3uWYPQy1-nu9G|vyn3jq~aQ$ z7c9H(@*Q#|9|AebGG+(14|oLOb8$8?0|I9u?Cepkuq?5#eGUg7y2u)K$UQIzu}NSk zHg3tYP@^-l+Y&ilZVK-m^3TTf$||?CYYC~ z-A;}=g%WWs>9YRf*)5#btCsL0Tvx#R;3OIxeVe^mcuC$Y-wr^RMS^9EUf(T?A__$3 zpS^+tAbF&q9hN6r<7O)%BG^7)%&0E%#uW%aXOgLfLl(ng+I2-wB%dCZ1biTbg3cB7 zBO*~Jjfk0Dwa(gC#rjn#V^icK% zMaeZ!d;LY*9=g@SIh^X5h+Fy*Goqsg8u1N5Iyq(sqss8(4Ad(`fGm!um;MCE$FoIQ zpo3PI8f0U!_svn`rCtZUHv{!}cUhw|8`{`iSXFV!=kqi8XNkLZb_VGxpj|kQn3=gd z+D9x6^*KDzfhI3*k$DCP2E_y@pIM_CkX}vLQr~Xq=Ka_UAT_YRv z&H{_c?pgi0DwmW5f^^0CO3As{S;Z;FLkyRZcIOHOd&{^>wHcklGtB9!Ml^bW1pv&K ziu?4yQnetXBuv#G1x=OGAC0u@A>du^Jxfcm2FP7P9toWA;$}K~$?!sWWJ367#y5FD z!gYb)r|F0+FVtb>lbuTpvV6!}*{8)zci5!pmd3%5`^>6{APT2wEM|I{#mh7tg!7^t zpU2EJ9W?DGCg#kVu4ffZlV~aOWtoTOs0^U*rorisF#>59`fW^_(AP`Lren+1S8lSC z#m*fFnPt{QiX&yFK&AwIbrr^tFC-sCR%a;)Y~{UWfiKz|rW{g!K`d!+Qju@ruM+NrqXdyAvhFTKV0{;9-=0_m{vN$~Bl=2R1Y zYu?JYC(Uq6fb{SJ>br(I#u^n19O(je7-2gxWZLyr`B1DbYDh+8a2CLv;NrS;aj+Qx zk(My&4=Z;q8WR#gBh;`ju%1xFD5}?1O)gV@wh@P-xFwjVT!iL$%$N1_0*6#)v`aqK zq5twC6sf6i(e%5_SK0v_ccicCl@m>YQ3bZT{S2wbZBbpLq1)X=C=O zEP^cFG%6$(=TeIWJk+I)5rYn=jSzFaj~1L$2uTl?YK&OK4NS*A(nLYp;x(`z2z`f! zu)tjPh4Z%o=8nTIe)al=C0M(Y3d;q#TG8jrYm;S&6SM`!9>GCoH0sJ>Nn14YxB?57YN?j>K>=k$W!9Obtm$dU63Y=$EQ7B`HhJg>mG@|5Xc zv=(H~NghQ{wl5mY(t9enzJ!NRPOEk*bAQnm_H?B7_892tpodpfa-_^QP_Qdcw^7`D zPP&2Cv#3N%uaA+BcuuEmyr-&*qsI)t<05jJL0?!~LMa4bfP?<4a}~w7W|&%vhkP*e z|6};$@S>y_Pm~6Hd{o!>qf|7`mPkl+xN-Z!7%{ID;>sd85KH!}EBb+SKS1l2fQgE$cL8FXV76FrP7F?-s*}QMHUm{A-R_1E%soy z@VaZB-##rI@V?NEu6Q|FkA5MTB;z*Dj7=#67HnG$kX*B(Mga<bjapRyZtiB&u34HC5a z6exXWrx?30;>IZ!4|D|Gt^AVh$FF7K5QJSYL!%S!S;%`=V^AOTS1D&NE(NI2Isw%&dZJ{d!> zCy!#RJrjtp?(KK@$#^JNBMlezQrhA6bUFMy&bz0defX(|I{F^#6c!~_kaC%JqVmf%yq`xinaW8rTf_DMX8z|ls{Kh|D&1Q$0v#ci;=JcSEo60--Jjn;?1}=^HtDt6^4@ zgPD+Sk>X0M-_Cb%&@MQVU#1_o+vmx}(@*Qx1yP@pU>aW_EELX&>PYlG$`!O=-J{32 zBX9B{E=@%VrtWd9xR_wdui&(wCZ9rAZzK^{KJVcCE?B}Ht~Zyn?eJu`qMjqTbmU>x zRt0`wjzNfV_BB{w_?4mg11ur2#c(5FJ0-BS`SFZ~-q5NSn;ux&nuU^koH1jZqg1Iw zIFwp?SasBU0Tbv6lFk)%zXL&NbWx@OVKmEh8pmK+Vu3+C@vAetnS)q>x=)@7OMp>% zaS+2Pk8hBLjOPCR47o;93YQiNCnvDTxx=H@j~E`0AVf2_sRpVv1=3QdVr1rQjj(-O z!y>s;Bx<28=uNO6oVm`ybOKf-v*tNW;4a~Md=@BnNa8S?7ui4Uf>vp-><)hbV?k5y z41eJaQpgt+Q5&ed6i}fF#KGl$uA{b$dC!HeI$HiBP*9YRaK=2jNo1u>FI)tKRs`V( zyO4@-z1xd=3#oLHvfoqv1g3*5hcJrqD^ShGQ$l}Gc2yoe6mKaq>Yva zlS4a(Wo$?3K9BK^>bcKGPu~<(x>?&MybIF+-ad#gvwPK8Q9=rIGoo)v<2;E&Y##E$ zbl>2a3gH)2%;}J#ov_5@A~_G3AIR-wCD&DjN%(u97keZT6xpOp5tJl|ON9TxSK>vP z(n%iyfewbV@S$-uEH4Qij2hrQqwNc!LU}-i6QJv2l6=>MAL5g?Y?|&WO=~b&w8{*mkTgX&lqA^ z(qt-&i#&a)PhM@K?T`j))F=)~z|_6SQ~+Y=fqgEw4XL)4W;z^sG4F^<#p}V;g89=g zT+-6AJsBR()JBkA+1bNSdv`XkYE6l6WIP*lgRs|<2DN*(0;PAF@d-r-2#yAn^hUv4 z#o5bOB$%F6oo^OP1S?3!Xp`GC*PZ~=M%OqDM=(ZtjuLz}N$F4)|_ zH53^x;3zdipe7TL?gyjajz-5PC#T0J-;JIekB8&o{kOx@`RNJh-(&-c{2~2ae+P{W zzBn*(sis?s4@|{WIJByR23H;o9?R?pgGKF%iYkp^f3C{_`Il-l_J=*N#!zG~wAFMr z&26XA5<1zwyuHa@woiJ!aH}4+4J2?lanimp5y6ye5y0G`v@IZs{=Q*5gp#%jpUAVAjP+(N@ZA-p}$3J`Gtn`P;iNQKFr6nu(5>8lu zhafGQ-d@vcvg&J0`et(Uv+MJe(A<4wYFI`iQ#$nuD*;kx5k;}nI6$cY{&di#4zKZ#!h6zyYR{ATv@idl4!wm5bC zr^mnM1K|w+YZTdt$D;Z7!BIT>_k;g6`1haQyuHTJ?rt{|M?dL6+KQj z9v!=kWLv$z_*a5yLSn1ZWfu&2Vs*VO)Hgb8JA4$CSfiPHn6FIX7(>SqxNDOKhRTzH z^VPoX0c%L4;8`*y8KzHK*K%W5bqnPI97Na3=Kqc-K{H9dPTLr(gKB4`DQhhd!;CDag8<^%g?IvV!sc^jl zq^?vi_z;Ir!WgTp;OuY7Wyo%l#|nj=<-PHJZtmd;->6_#(BdP077ll2JE&a>Du4!3 za9NQV)KpnkKP%1-K0C4Fu`BHCFpxdW17a3ayU*C+-ZLjaX*Tlr0;yV;SRM%5`?v8_ zz0wJ|9I>F_ql{iXZg&M@Xww+3O8I9g9j!WFXV^Q9&BTEMc5rBHNgU$tApk^ZS2aTI_ z&}eJ&iBb$%`{bE3km_DjROXt&HOpV4OazR{Y8g`sTseX(V#M(1)#N52AA*DRXpiSW z-LRCz^>PPqH)IjT#0+2p6Z%Zjxk$TJU+S{DhbA?SIz;*`*JqW^ssX9Hh@4T&N<(k^ zoYWS`SuIheBdsGt{9xf7iVcx!1W9|Kx?I99X*FeD=NBE?&C#rOm3(Oz&}%U}*~I zCHE9Y#rXI}&Io-_>42uzDY&7Rm zXeX4IQ<1h0`IctaQZn37u+xUgeSlN%e0m4T!xD&;ZKDdv>jUfgC3r)!hZXIbh#{?e=yMB8QPTb9!VRu>=e-}mE)JiNgC|*~f)!P;M)`Ye z#cP;8!+2Sm4K6KOwvW{h_tO*8c%E%_+E8 zxVz$QWWrCREU!U&v}ZXW-@l*#QQ7dc4e40oZz6-J3ASpS)dc9Y11Z`ems?9zYM9=Z zm5!KuIglg^%v98RZXpjuA1t?;J9td?jZL+hkZ#jKb->UvfiYx zF^e|X*s3MC$evUVOBB`})XmhxBH%qifQtg`8rL<=Hly~gUMA61gw7>Oapt*yhF(X> zg9(S%g-k*Z5a|H?P=kG z9!O({qsvp=W_A*p;emdIj>xcOK?LDYNrB-nnFg$t=Fq?gbKnVfQ(+7*seXtHsKGW8h zmvFGE0t`Dqp&gWnE7)Q6Pt=2lRn3VR&JIX1jQ@gCrpW7=FAB+jX4S041R6N-)VxA{ z_1F*E8t5-gCJJa;y^P?;pWc7?G++rqp;xJ`O$Of*zv>QpuFxK~QyBhX0L_&Fysfcv zpP}dsPB1bde$r%S*@)4|&xR4thB%$w8>$w?8erba$yuqUvD)SdrtX=<(G=|Iv-D;i zcULonxnN?QJ)^yIs9c1&W}5=rMAxYB#cy4gLuPLL+kkE`zl+=`!ZFLfU@`ApFsDp4 z%-4&q5~6NI%pwNC%4Hpdm_G-Q93q$y#QM7@ zCY(lt%b*w5Be=WFHgx}ijbaDi4yYUlWI5Z5IuW4=0LsWg1Ugx~z~mDVK{s$J;hI$- z(zjw?VAY_NG?Jg1`Yxja&i(<>;a`s%~0zZ^jp z=VZ6HOUYl{_!v4D>w~nK)Q%4RE|Wm{@T`>q78|3@N)K1p^U3!qxuCCl2ds$>>`s1Y zNoSv~6rapxu{D7j81v)SQhai#pIAnm5F)PGKV<$Wdeo)DH=}Pv_2gDCnQl#cV2<4nZWJH;EIN{Dr-^ki~ zNd4$+rnHQ_6yXv0$w&MK@e#cd3ov5lYNp3>T*4Z`Mf0au@7~?NrOy-B%$s|r5A%Go zRX0y8>l9A5;Y7F{%W9aWm&k4o8t?z|*U!jLhEhh8zrIa5jpXak4$6nq+eK4`eK`c3 zcU9i#NsiX8r7A!kvAEVA5te(pByJIke~t9sR+(lxcmODJfgJ>ADI^XakY7$Mtu{6< ze8LrNi-b04u}i*U+^=h3jMDIcDR2l5g+1qmVH9ARu?TPia7Ki? z_dpMuGVp)!g79nx^uTLg&IeGQX*y{X+U$sIgf?!{3KBI;-Sv&`72uIa$`HjPj?%>q z3In?3i5w`@T-zmP_kl0#@4%=zK6CW~_FR^KK|yAC%h?YGndIO941=Zx4~`LeYK#|N z3Q1?TPG1y>=1AHS%qBp=u1S85Vlw%HFd`@@j0I#%c+NT(9%3hMfD(%T_{wMBD9&RB z+u|F}y|_iSQ#6g|&9^oV(>r)Fqm9~RMxc!fhyEi}lPnayO7Z}>JnK^L4%p&QVF8fz- z*|&$4UM~U3O93QWP7w5kD^RNlhe%tv03uUB45E`A6jQ0W0L#gEs;o1-qe(i$#ZbV+ za%D+_qLJ1)Z52!uC%D=^b}i4N?P;H8ZwRVWOHN{yRj;^g-;Ci{shrh>rDO)m^({17 zZkeg-@9E@R@&e*aZT+--{@(DU0p>~50&)m$Wl`%{v=UgoT$m~&swtm*{c{J65XcAa zesc8lW6-1Ac=U(oNPTE|=fyr1?R5BYudw`pEv7OMh?2@l^{Q*1clT95^y! zw6lDpv{2n5p(B#Sw0AT>-QY=!YhN%^IT?w8Jqnrw=)vPW_I01YN`iU724G? zk2wChiZ~xsJkRT1_t4A;&rHUVJFfX->8dHd`rY*s%%|6qSHRI?4?Do@8f^8A1>CBXR?&uLMA+p$5Pth_p!b;( zui0!y6i|N9EebC{sjD?gX8le#9eyrCc7N$}ks$KR&qes-7oH3HmdA@NG=c5$%g>c6 z=fQdCJQpQyzx-UpKYn4n<8r*ps*|4^(ottoIyar-CdYpqcPMn+x`>;`*+FSDD&~8+ zUd&wU#?#R_Q_)k8N5`p2o@9HzV7NWRR@fk*<%g&ntnoq6BlzLW7vQ2zNr8$A+U@2S z4OYPqj8Y0nFyHN7$;nUY^h(~p*D@jp18l}+h7_Vsw9(I-m zqRT_~f$amGWF`G)`GE

    V(pm3ujH%Lzv&t(?{57#z_@r*w*lGEc|H;|a?=aT+M> zn`r19W#2`S9W8nOeua3cU1D)yjwTeGi*{*_!_bSVgBel0#`nqFOZ+ybHU?D z`h7?(>QeMBXX;K8F|afsL4utfXD0?#dG!0tN6^U<92b|;u$z| z$lzJYLWR1Z4-8=(3kRO9ADcTcqa~K6RZ21vnBv*R&FSAtAwWQN;6D13h*KV)?xg-_9(P+4!WN^rALfpqxJm<4a_);UK?=p0La z){U$Q|KOgn-zHtg(-hg%c1WK`i4p{mbxv)!QZ2FE?yG_##CR#cJc2rQK$1IPE0}Mt zkCWWtZLNaQnQWtm_lb6`a}I|9qHmn=)!haMCFqzpnDbSO9nJ#~7VtS>W=Pe!iNFpp zSp!zi95;Fr)+$Zo>W1^rsgV}BNc7OK1c!Urac(sli<4agWHkBt#pbyWkD;StOIE-< z&rmJp6UOz|~tAgp1AiqfsgOB=g2EGY+}|I%SerAw!PMF~l> z%NY3m^2Qy+ypg5}-e2QX&U=iGP(K*HkWrf~gG);}6`%?rk!~^1$ZEj!@<2NzpT7V} zv`I=ydyNb37XcDX&*7ty^$#aA4YPr$d=Tg$KUq~_aNW(~U`pbr+d=CKE&|(Kspr=e zlNqJnUQI?{ZTW9UTDswvHKY)P;Qhhb}fh=pCe`}pbA zyC3dZpl}2mx@~!wjc#`<6!)nVr(I_!^JnQrivVS;SZ&v{8D(nwvGFsqb6FpueeN2Z zQKk(DV-Z4nrVY<`6D{2-oEWOLu z&ofXr{dOw`$X7H>((CoIDgNR{K0 zImtm5=oxH+<&Se>>8{ez(rP<4&@59pD)1w-Q7y-NN;PWqD6nX{vp z#b6g-(OaaxSzO*AA(x;0;^U59y?*`S8^kuk`uDf@Z(cu!uJq{Rrw^Zh_%zs6Jy9W5 zJ@}V5J%&Q=Z*Zi+eYiWwfFqtuRU_)sjE`%!HsV2h;>jxqR1ece#mV1#93`WIs+!#~AW7)yr$7(5 z#8BD%-GNDT-6Y2c&A2=xyB*90F*!6k=f(IPn;J{mvRrJXcWAB|QGwn-1zvW_@Ef6~q4zNRThfG;LbBUpJiuH>0reOr zCP56vNyUrM!14E^$#zR2=gp^^&wu&T{RbmUb}b1$X>JYjIV*s~xR zHD#({`Yv#0HupCdmhUUf>)+g5DF2tzI{s4*s>ar`8&r~3VE_miSWw$+#k&{>hN>de zrn{y7@o$cf;%Wb6H}ladYWw)x;qAce_z<8iTw6wqqhIz;#%2H4-YJ>d3VBdhV2xzCn+`h_uEsG>o;|o|g3qAbWc!6@hFl+y#LZ|^`Y%XHO&{CHo;Lb$FPMmsXBj@0!e45CdEmpZ z&77Xybh$x^ZMYXR)f_x7h-TmZD^*wWR^$!ByvQWWodC?AXd{ribqax2%!gyOFA*2r zuB)3yOHN^)KkmtA-}k05FtuJQbh>r{!1TIW-~1QPPb&sTXQMdD(~ z)I%`nGMr4Vo)oE$I4ncKfn1^u&zd# zY$zRUN#Sx?7s(_pp1I*E3KNZ3nFGf)Gy8%%FFaxW9tF^+UUj!_+Y z*ppU88XL4AHeYhY)jjgW<<7Or&V1(*=gRKoQU{^`HX6)aTnv6#z~OE-S%62y0Yrv9 zg+*N4ZdEmcCldg_8Axjl4hc8lk_7@G7i`VtTLegDy3f2T%&=B`#59QA(j&9arWglN z8{_L;isxxiRdFCVg#=>eEQQPkB;=cc?9_1D0Es=n&Na=WXcAex4At7$%=?i8Nx=h= zoRxt_JYV}i8j1Ale?i`{`sr0DlHp7pRvYSBvyE8~=SXx;LExgh6e?KMxj8P zFyL=GzasBbXu9ZZfP3?}sio z@ux74lEBIS$sUAb^ZcCxQ%}4hy5ig3&?;Gfizr6_PD(H?BETV`l>hQoU)~q+%)~Yr z_#We~cDYNjv*EJ?SJ7&vA8>#)!L062o}XKo21{c*pcV9(RG06(zW5+_bfvKR`=2qI5RH&@Kg`n+kZlpzDg zA#th;^m(bIZJN3u#$R$)IOX5|>l)>S2S;5ATe}1bR}epJ4A|RX!xu^_1Qt68FkmWt z?-7Yz`M5POp&)mhIZkh%pA4#&z8CaNHV8)dG@Gje>0#RR=BE%RNwoB^;Qu{An#75y z#ofU4JYqv>nIWeKW;~fMw9(K9p$7ckvt-Kg;DfV%z5YqX_V%jyU6EtEAt5l4C1@|! z3D*&P639!E*@wPZZD2o+o#O66_23$2C%Bt}N4~T?;J7%@)8%Z(@aH#|BG)eUbD#@V=q$iOSB1u=F5~$f%Jor^SnkOVF}w zZHl&DXzZ9J^CP>~@+)1q9(^&T60cU3`?ahpC#{9k#CO;V4^+MbSdXk2J!Q{}5Qz$+ zzUApRa+*Kl*+v@6YIMk#bdD&+{rt_lHy?j8&rgzw>N4;`1={=3q6N9H2aWY`H`zRQ zc|Nr@orcQLOcjY|ilpBj8Q+^GD#7%HLKs<}ho%Ct-}xoQp$B7a8Em03)L=c5$O*E9 zKU6f5GaFO6%gf23cw9ZH0qH4mfQAZ}`@%F4>&tVnZa0V)M}phPB7%!F3F~T;YDDQo zTw4v7l0F*~71;vm)xC7$xH{esbkXgK{vyMAcN+-lx`7g+u0#xcJjDNg=i?4g#$G%d z8QE6h2NaV_?;xeFt~n!4ZUXsRIeg4l3b8AwR0}dSnY6yBt?@ADeEiv^5>Ni$E8QfR zkA)$)=NnKsL@w-iSIF0d8lir^P%q-zVx9mL3$7?IOlKFjm$N(9z4+{Qp?ZTIH>m~@ zuHjt4!}JOxzOc&Za<+qh*FQO+5G8~P3`A*OtX8|>k^YtP!hb;s3ZVN~o3!5phV2&A z7Aw^n)cp)Zaf?2ey<|@(<#N6*xdGTNfDZtHrGG#GYzABa><{zGKuu*>qA7@)0#u;` zY>8lKO3$e~hG%;#kT*a*P}f47aJ87K9~RO(b#@W3D`{UB^ggqO;2@Z-*3ROC@Sp)V zUnSpz9uG_z&_!jHWwMhO0T#UUG}KI7Kr3*4@oecNE1`&Ipz{32(bD^El;puK>H6qL zIGIvXuUbU)O&Q+(-41y|Vg}t?C^gd@^LU3Mk}*Q{Ugvxk!2C!P`lH@fwDiEdKQ_Bn zr}j(>&3KSMaN;`|#-cZBzhLT4_&b@>DBVg)pTo#Q&k{@vXOa@iU zk=<1*zTJZg_@egug(aBY!)3#A)5SZ|{wFs~SMm3)$vnZDubV78P7L|e1=J0iADHM@#UVJ5;8oyd)SkwF1Tb9 zF5!{?isD%$^TUw`aT&?{A`ezCP=m%1&I8iY4F58BA(iX`oiBYtr0j*%Uz(s;p|4|?QrSKng(7IX#Rv)Yahe0! zpo#=$aXi52RB!Kize6fBgwF_zO9(`Wy8s$>Wcb$XKVFHoS03~_IJwCr(fW+V6s3ZefaHdue(XcE+X2}ps zS*Od46KlSov` zotOA*qYZ^^oQnn0JmfyR!ar%LQb;wg8e``XjDGG%OA}^<=NKp!9&H_WiUiakg(Rly zlQz3sB!U?@gW3dZXU=l%qn+=wI5#6iJ1i1P+lut~Z#|5!)!f4zPAyudgs4^vf(EZ1 zc=^m;l6OMxN!YC_B_3}_H@lg-JAFo3GfDH;sj_5>(_q~)|KLJ33E94YCiFr04+K5Z zDK|+H*Qxi1X$6-jL+Bj2(cz)DW98+e_(2gl|AvsvJK%H<%_BYmI}>TDHB>6fsqbBF zCuV~al9Ms?%+VQD5&9!9v?^cLO*NS(n6ikhz{B)8^?OFQEA1yuH1n#lNu9Br%G zWUW!E0qem9O=Ae7PVB)^5^O?aIM9%yC8QO>m4Au(rscNk2ZV7|J(69^o$xEwp-B+c zCA~oAEybchndHHNPrWi4Pt)o1?5FL{a2L0r6@{0a84-Y;L4C}TzFwOerdbi{FQ8*> zBR=(!rAoa=%PuXW2qw${q~}EPL@>)m5u~S2#t#n{iVz*H3(o}xj4%U~of4^~X|olz z6c%Slkf0dNXsQRF5Ji}nFMT(y4&NTI2E?<3-@^>kR6o_T*h2F+xL_7u2O)=(ijw_K zJ{kVJu#{IYJq?SD#pO~LxeeK*VY#UOv)qh49kMy~SumiT7N-AjBO=u`Ha`kkg{#+r z7~TS$zKcqui_JQwfywD4qjIMNOr3>H=X0R;HF}=25Z1@N!SwP<2t@XE3W_dxk!ovOn}naVT%<@AUL=~r7*(ux=@wXCPxFzK zPqxsxDV#IA(Hvn&%>H!TW`jC*1;6&o`8C~l@nEp)=S=#A8SsHRYOyv*{h2&qcLc&?BklUo21;3jf4%8Vif_wub6!i845gCcAa*WL#cX zN3A>wAk0(z*OevZ6-^H3vs4*kf7$6#rvj+E=nb*!z;}ZGE5fznf}Sry7l|8@>Gg>J zNL6h=a0v7Ggc{))Ec{4*Iy}Dmqf3kjdwjXeGdu)TSMGq4;X*ve9$p2(Z?XPC;gXzSCX(0G>EI;sV((jN+u&N>9S;BK%;OE+fe zxJVk%R&m%uHBfj6A+_ax`0>*oQV?7>t%+TwroC!ptbhy1a-&JUP*5_uo)dmOv_HjfTVU^79nZdpNcQ)ppRA@x0} zKI$Inn9LW{O9+M&k1kp5WY(}WktWBZKhjx4$z!8cGjn0_#mvLiAuNAujeS_&Hu}_qW$%CHfZda3`iFeX&^|@89X) z=FF~vdLwC@Cm=!9^5}0zWexKI&XG`-!UV?ETIC z8MBPbJ}}72UZ6<>1g4gmn~_E96uDiLn;a!YcUP$8w3w)J6-1T&#eaOdKmXwe`>3$< z?w0!!mS!Ca01Ke>k1EC?wSNValYvpm?OWuUx_(-im`6-pQ`L~B_#6|^X7Z;12Z+W;A~-)uh;agwk^{+&$~c7I$RjY$lZg9f#0FQ zB!5+<9F=vWNS9mzGyX@GBcXhu2hj3nV7?*D?WHB$%z>9X?iCzQK|7t-Z=iZqBf5dn zlp3)R_HfDP5cltn&Nr9CZ}1O1{P+9&pFw0kBC$JlzW=F8#bcVgpq`l_r$1>UkPvb9 z{0oB=E+B~M=vSXVzWOxyZ^z#Z{@W1$jedpD-e3L8hhNdJ3^y|B_E!tE^qOx5zcPrP zG0;=c3DzwqHjMd!>gOfC8Y+*RmH`aEnSzDU!fA36WjQiz)cFI|$^uMP6%mlEnrW9X zP4MIu>3lnt zs@T_%b(AC~_5qTA5f3^SdCfP$MBZwHhSNlBSom;qXhI&!x4S5=Hl!eLL~Tjm&B>E_ zAD2faG@x1z9-t6rhcR*$Mlc6yMYmxi+)&hoGEHYKHwPtQTzA<$=teK0$w0l0#0+AH z6`Z!}!7#~Z|Dp_3_mH@FMDGsDV*yQXsJvIrN0IJ{$$nqKb(fvmm8Z0uF8%lkMi3N- zhjG<2l)iq4Vwg=^%*px#z>p;&a6x1*E@&N%f-3n6GYI*?Ks%qXz>XYvM`4iAM1(a_ zk3r6%>Gk(~N zcHr+IG{YyK({L%OhD)})7DsFkVrfty3OYL(^p1afe0#OYr{Zi`1;L)#_nVu^$m8Xs zrJ1vJa4DqnPt*W8po)&h8*V0j$nYMFJ2#Z_0N+qg^X~h9T z#InPK9w)KZ@FI*5jX6Yn9en;RBZi>!*pdIc|eL=R$p|Gf9k;|{T2arLV3A6Yb(G{kI2>JA#}iwhkgCrQ12l2q`;eUw#9@#4N!-bingv&s?`)9bCyfh3R?-E$dv9fhK0 zi?JMH9xj&VXEl$OUZZnEmE^F?O(2q{lh^6ISzWcKxs|hTRPzMWu(Cc1hS#w|T`cn# zn|ggIgeRqbkpm%wcXzjQZ8m&i&u`q+a)yX$Y#M6QwLs=K7nS3qrI&HhspCZg3bTeQ z7hOe8HjKMp&Xy~r3eh&Dm{sk26WpA5kQ`$kW^hyi0)X8j72ZAvzHXnN*3L*3M6;ve zy434F1<}%Q?S!DI9uAVF)Af7}UB=yfbG)Cv|NN)7_j@>m{qRP-GqDR+dHW`<;SIyJ z$!>zS6=q2;jrh%cwMs3|#I;Jmu@|e#jAYKau3y;K;(5Y)<63hAJStzjnh1*C5##$n zmx%E_)CK(51#)J>8RpB6EBk)wx#!#Okp~qAJt@K$2U_U;Tp%PB?WiY8P+o7_ zAeFy>X(qt+uc1=w)rd6^EH5|0r8*yqJv-0?_fm_+*BrXD7w#y9(#>;fQ&+dUhA;9R z(bK{9rDb365BG-9oZEoWxr>`~R1GAz!{cIlu`a@I)XIT3!5nU1FiJ=FNM)^qg>jzD zlHZ#{c_cT`oZrr>pCta(rCTR6o`h0|mk^hOr!Sk^rv@`0Ey1B7EUd^P z2bQz1;|)>6giW@^#h7p4X>R2gl#UXPPQYi-^2NoV?!{!41vKu$+FB;*OPq{cSul7< zA0E3L{ehB}IN!+I10w=LO6fD=&#!pm43&Ts=CY&`BGV6*5W<@0NcvOglgE8ZWjz`QOrWFDbww8v4c3XoWW&tw^?0Nh1|)@ zoNQ;;up@1JZqmh0asig~6}Jv8A$%)x;Jyj2705UL^%~=}DGf1yAs&Tu9=14wT z!>+%UkhtS0VO)f^Tey>m_L5C)S{Xgd=(-imUr zWl39W5JUByhIx8K3&oti2D5kb$$KP4z}yT_Ij&S(Pyw=sUUq+tA4Qfx*NjV>lHk6b zO`M0*HJ^8+uscm^vaUz1`gCEoLA`p}Q-P+34@*+S4jlJQFAy}{aj2&1L(^~iPeUwT zl(*|6Q_}G3>FU;Ojs_^C;SA1jBG1;STxg#b2acJaOo3ZaCCzz)=^@&pNI*B+@Tgob zkZ^#THeXq7hZHiYoX(nPY8bKqvSu2Zc5r&&0{vhgj1ws(F1AkivG@klKxl9A_}Hg7 zkmP~R?d++>Z;Z|}e|jxfMu(6Ji?$1famDJ*krBB;Sp#e>DAuf)@QvyP{lCZm{VQwB zJ@Aa-m!DyE>*KnC5L}M1ZR-PuM4IMDb zlcx*S3&`g&Ae$agoru#0s2kFO9WgF?iSY>%WB3s%xrrUNk*=!-73)|@OSU$klh@F> zH%U+#P;xj4Y8@a&XFdLpX>mL@!K>%FYAITpJ&uj)UFG{8q*6Ja{=1RR%yIL(S~~NK zdRpPW#1tD6*$Oh(0c$RV=B6BPS&s^oI!hfrU(5;*Pqu6XII5f9k_`A=+;fukq5}go3Vci&UxAM=GB^tukL(QgS&Z~Q9zA0r;C1=GYYLZjK zQuj5DW1dFs`yI4Lr3u~BqD){rMN(ofT|>2hqO_@qm)TCOiIj0ohxDyPGnZP!<%#ST zv3|1{VpBFze~1W+Oaf*>8~*m>csTm*?Bw)hJUTfWJ{{hFd-7zC)r?~TXaLjoFH45S zdpgOmFk_@O!z zCc*xPy^isObT5XmT>7i?aRo@P(55Ka+t!n}r-N>U-y@2&pCjnt1{DSQ^PI^(dM<0M zSfh*2A3lD%zJK@Qr=Rx2(eA^mcOUFgMvtY|?i zv5fMN&hwCtKkJ=bE{o24Y86i%b10heBUIyB|6sV)sn9|-%lr%=5LArNqVAOoB{HGZ zAob4M4(NdcuvX@gh-Y;gaJwf7-Kq8+^^=yolE_XPwzz@L8}BG$qUM=_TE$>W#b*uF3bnqi6}P&8-8|1GwyWzSm_! zcYcUgf=9-f0f!L{e=SECuHnA=hIFHJi1WE-8iX#oZZf)E z?}chNPaU&5C9>?E>@74;kne4-QbC!@ZO>&u&NiKjz=>-WnF*$jdjMok{oSjmG%N%) z(m9?E<%SqJP_NMqUSuv)U1u_CVEzVQNkhC?R(uc^j^`1Upf@dB2c}Xy+y+yW8p7kD zO{2Mj=DfN#ET~)eA`Whx2h#fq`$tHs;P$J^_?o zE%JrR(w7)A)X7_%-^`-eY!OUk3|ofhsj@uukvJz>PVA6=l%x~csXgg}2q|=hI@ODy z-q1C2Z))jH1cTbO2aOU;qtGq_U$=P)EucP|Dt5gf!qeNQG(dZd7$DOxq^u$tiDq>dNr*Pc&Luy~BL z1X@{y`x2cgg?n3zpxLy;Z|rAXv;?O>8Xn-2XI;xo7oJ`%9vp-KfA#93onH+vQ+`fM zKQycaOOGsS5h`zOEln0s-C>H0529PE zsPYQ7BV+cUM-K^7Pmd6dR6?UILQAPu;x6{rYOy_)z({vxHnjf;rJTK)Srm=`7R*NV z?2Du7>0xqSfrId!X%W?Z;mN~-KF?o${Iq=k`hNZP^G6t}{`}@gciC%!-~8~G*A&O_ zhoKa%7ymc;vf??2H8mSs`M?8@di=ZMuIZbPG|hd@Z9JWW^;U>L$cvRX*3^-d(xwFx z^mntlqBRmxW;RQnf6oIQ;k^CTByQ86k^e=UyE0 zaWhyZDRvCE^iqo$pkk8?%fzSt*K((T6YUlgz&Zc^!~OLBPoIB;@@z?U5DqWZH_#~_ zk!N;Tq4qQegk(fy5P0I>V6aR&4-wV8RmSuXI3ft@RVAFFChPBFn76Ar2p>Y5a4DP? zj9SK#7_H*mGSy#n2**!XXCvTB^$L!VHmBE*4KDnUC7cggQSXf!OS`?5-=%%R0`FMQ zV7|JZ(moP@`JwPr;K9pCUKD0(j*1eZWfHy^n>zBSm1yaM#P1Z&O?6VXE>sWIfdqW} z!}AsN*k$&BbVUy@@bCP^0|-c98ZBKzkXJb~Vae_rpc!q0+3 zWNbmIUOxou3vr54Bxen_fYyRvf%IAMZt()FO^UoRlHYIa>kRGP`JYArVsRaWA-;w? zu!z&Fd!$L^X}Se}$gxsBO<7zx!wIPFT+x+98L(I)vN-Sxryf^LIW8Xo6)%yH?ejVv zX#M(uI^b15(b*I|)zbmYOhm^{f+jGyK8lz8W-7EXcxdd7dzIY*)8Ms<&gZG7yMJ!4 zv#kg*4@q162mO?VQJo%sz#?_S?2j{g^Ffa4sSH-YRrV#N3M4~&N3Pw1SC9mTqk(%1 z(vTY#nEznNq|q{JMH|M|g?uFW+58pD>+&wo^iG$A6IDbJ@L(8bS2FML@n8lMq+rI7 z_+>~*T^V@>nYri#KRRD?In!PUHHBZ*APVLn4ku$3tQ>q&w=a+`0UiMJR%PQ8n(t|Jv{@{4I3+y2Vc&ZerbNBe&am_Jk33~ zlVyLwB`^b)baM+Xpfr*C#ww=zK#x8S1hshJ4{XXB7%~l?Op8D2mBYU=CXpVnC2Q>69;GS}iMvMw z(q@Yj+OeH*CK5ZG#F7>`lVKW8@d#)a-BPCn=``)&)1j=jB3{7X2<;~NO6FoAvb2orc23h5kFd<1~@7}g+uW(;^B+rvGFqF zbXurhM8aK!dqS?lz8!MUCarV<)-6Vbfw7TMhO$e0(XcqD)31jTJCtT`bNUOm2iuJf z7kH6<5|A;xuag`0xp)i^v&uR9TsQ$AHJFRZkoRU-=>oI36vb9G1NQmi_gs4N5_nl+ z86BH+CGo|4WwpCJttEHGJo0r~?n}R$X^NE+$pKRJGI-UP82pdI`B8XD}t!`95e!L-VLW*|wJ+ONOcS2S#30-Xobc z8-W=oaUd+-K;kJ1_0)jhP_)x5dftw)^FLOVZ7dr92+2QbwS|+$b@Fa=&3y&Z;5E5M zT;m{*mQDUf4~u|Mn>ii`IB@xenA7xq5Dwhh9h#`zq*1r&j?_$~-zfm);m%0R@YOvR zU)huH@1T2QhOh?f z>&aYXro135@Bkmu0a9T8g~p^U8qLAa5bwXc)b_TYx<9jHAQUyB%277PE<%Se1xipFG z5CBPO;*C=v9waQ1fB=w`vXw$Fn6Ge{5w)h+7%JQ`Ecf9e9JDJ%#b z&`PB$ldDRK7P>)gOaHB5h2xqLLh$RO5l+czfIRYAwI>P#BHClO@n!9=vS zX2lZrK=DjSK*i2rCV&o|11)pCM&3KKtE2BFO~d$1W2fc_gq}#N8L)Bappn$l>P&Fs z&Bi07e_h>B7ML*%6{PW4;Rub~kig)$Fr^Ep6iDx2f4^0=N8riT|2xjH_zgU7I)vOn z&$V21dtve1XCB)PvI~V1MYp4&3U>gX@`g}SSe~ErqzCI#)JN9J>kP5QjQzgWuiv* z(#Z;LBv;U8Emt>N$``ShE&F%@y8+A`(H&?f$aMRKc)Jh>U+~L8q$rt}hx#NdVV9xY z%3iHrm^L$&G-mUPSj-Xc0<7=iYC=~^hFfUe#frB{_`KV|8sE`ka4n5|+MDQ9XYzfT zwe2L^xNsn@5dQDQ+Q>OLz5QOW_ zp!*h7KGWkX&xHhTL9%DlTr*5Mbj;u+h!%u?QKcF_4szec*r3yS0@fE+@%Mh$9lJYr zu@@jv>fOG&yq(febLWiRNGeKNCLI)P!})3wLS0UtFk(bOx-t!9W`7!}rpPWRGk}e~ zm$4T&cLf7xW8HzcmMti;O+1-yM&^&6vGjdhB{+QFUlWoeRD-JKmN3>qnH`7<)p_>X(GboDmB0iw%FtL@@v@ zU&Cato_|6VtRuN3#ql>ku@H=TZK+VhLW6I&ODDkE8xYwqcbnmWJ7F6#{6Ht%e!KnDiC}={pd`bSAtn+&1uac^BEEFa^EA+RfEcKyq-TNCnp?8aLHQX@<;p(Ca z=E9p?YThXQ1LIoQl&GZ98ZIy*r#}!vq?b>!;v2*TuyjEw!qg=>QJj%2W(8UXEgLtZ z!kM^9d!=$Mz6^V-uLYjv#^k!wutPbOC`GccIifdv>a~AD=``TSMIo=v*%l%}ST5%H zTz+&o&-jYOX(}e6IJZoP0nTj%o{m#nQn8Gc&wW`R?*omrH!bS{#VIuNzFW?)<@ST| z$SeiYFqOU5-K9CH-J{SaTk1IrpdJl5^c%c&fm+j?N`iNt_Iq8G_mN>Zgc{HWaO*f6 zB&N_kBsb~<*GSBQA~!h9EA?)>2Y{hd?1&nBab0;Tds<+Z>GnT9I6fY{25KJZObd(? z1_2#zbv%x=NC>;OytO#cLdQ^M=zN*95zaeRDa{+VC@gJXdRX%)B{*4s-dg=Gtr@6I zRi}g^a-F|oRw%xD!!%b+I8+w&8Y6Zso;ZUzv_ju5++Jq;iKK|MCHpnf2|!`u8z9lj zMlZCMdzy^^slS51f*?8JPN(5os2*V_$q~3ddlg8Hg_{dY#qVpZ=dhqKfHbOZoj$z z_Wms*ns{91x={hu#XkQNp4xu+{PElS{qE!2@4rV59qmKrWpMGE`_9`iJ#1JnDVktf z2%)xj2}#c$G<1XVf(3y|Zi7`+XHgS4!m&fTucW!~;!<5|oizI`edhtl%7Jo8(1 zMA}8&N;r-y8xw;`NVc|aV$*xp5-jg(bA66Y9VNZKjU&BSPivm4w?SH`9eji?cVqJ; zEZqnLkOskcRCh0KU|!5mF+E@*voIZ&qx3Au3wcEuEypDm@~pExVcOJ@UrCBvqC*}; zQ}_Z8o~lNXu5nzAga=K9le<}-pM!#m6pJEEfQ_MI*vlK>3|@@;6*Y~hK$u+px`cTq z{OrxhdcXG#YIIhZ^*Ci^sz`Jz`AojVIy7J}yo|96LOV>)!Y=|Jk`f{+U@9&F+BArO zDuK+2NIOi2+ko9TJIPDR1C?M}M@<-9HX)ze9NY9oNt?;&po%`Xl&>(I$`m~4sj7)> zk<7YJH+TW!W!=4ZHB1bszlk0U*eS;EVQqU8v?rL& zF;S%1&GohpP##r;T@+RQ*4Krb^Y zg*Hg%vcmLm)43wHA{Dbk4*}G}M;1`)mzW;C&dw%vm`Pm$4p7U2M3FKbmF7;!m4p)# zEQl5hxSS8YpVDrr0vF$7R2lQ3gISicyr@ZEl;xL6BH1|7n3a&rBrlX&L1F7Qh+wz6 z#=rCZ*W`%|G(&)D914g-P!9@4d)~2WiYq8K-2{jXDYhgVPqWW+>r=-m>@JLk?cMbO z(nsq>Chdg%i6&6t23y(;iYE*fDs@wL^nlf!6FHFJ1-*lxY1T035V&bcM(*=o?&S)s z?!pp?Xu5--u^lj~3^Mi{em_82(B483L7Be97WF}OL6nPnqoh$fl~FntKifU#SNtry z6&G?*m%`#&&4Ns@MdbOC_b`~+Oisdng-oti!yHxO+KQ5fXXm@jzj54a09Lhd>?)>a zl$`S=G6%)%-uVa-;Y^S10b*q>vN6Wnh|!FhBy$XCCFDw(vh{RW4~nMy-OD!S8&78f zX`S`mPCvWQGfEnvMiN50io#BP<ioy^&V^# zAEFRc_J~LN1o>m8@ZQ92;hQ#D-yuRd_;F4`af~aoQHr`P$rR${(Pl~r*Uwf5s3{^> z5^5qaADyuAU3hv-2ZiUPC*$i0cOGD(vzV?7;z4@$AeyEbgBQ9ZsGM>=)kNQY_)j`M z_UM*i>AG>Z$m)^bblSgt`1Sh!)Fl1%_)Hq=a%sLcipVm6gK1!14R zT7xir`m5pSB*c!K8ehRiG)nq5Ij}Q0L*c-#SPk}A;|~10o2#>xSP>NcJwxn8{A0^(SuYB;aRO__QbsSNO7smk ziN<9_I@~d!HECtVJ0OpX-3Saa(CsKwm>^FLpdQl3zPVOJ62?5{jh*Ya=ZneBCFxoM z{vP3;{R|mn>Y>EFAj}YlS5^!zfQKdpG6A*bG62pQW`|H575s-|SvT z#vd0_LBvuiZ^3K?ndPQa?36N~ zSrJn>D!?^eW3$dT5*2_lv*;eK`y7$D-@N(ukHU!8rm|N!FVJ;YQzPptGsh0%P2zd>Kb;;RlQN_h>ZJ~LgJhsW8Ad-v; zsOd8y2@<-_X{)*G2ojT09*qRkt2jx{Og^jGt_q^I#t`lxJmCLPh3^PVoi>uHrIj$7 zTKEf;sm#rzgsS2 zYPegjmMmm~;S@q~Ck3#yFgj<#o3bEOO_s-0G(>E)xTDKjp}9e9sIda_K9Sl2qO7Oj zP=1NOqCV#5$aOV%%3>UUP76$uW*g`?V9s;BSe}D4s%mMC2^rdQ@tP7EqhYwYekqPQFBMcGP~GN-hrRfA%5rWq`0@+-D(}09$1^@y3NhC76zk- zfDMmPS!oZ;#FMiHaWbVfX2F31e(y*8UW7W7H(QbJnzbGQhlyn1RR|jkct0W!TNX8g zrhriewuE7iPyuV__?_<(JxTvSUYa7CYi^i?DB+jV9qS?C5}2boGBHcMj^;^C6HJF7 za9ZItS0IxXsz&|^;6e9Df{d{H`_eh21aSd+{!E@LgLQH?fO5Dv!M8VZf;*qC2_7jF!ifserr zIX&Q*vIEvsTDR`n*rNUhn3ijcZ@xsHQ@HJnl%5#mvT$o#zlBE0P%Mph?`{yz6P&Pii%_roffd3m3YF)Pm;5w)Yqn^6myrPCQCzQa|nkvkf8 zMkY!L{mTqvgWJ4D?0htV^mcV-IgDJ-8*1JiLznJeZC>{Dkzu(L)AoQ-?Y?r6V7a*~ zijVDjijqFSFo-3$JY9rmP%5j9ws}&0MbO$*0bSTLO;nCt2)fw=MLHM9PcOk5n;H7R z%lr$5K0Ph6MxQD(+Uei6(WQeL1Ur3EkkwYyca@9Vt0wcMc84}KH(n`HD@IA(`Hc$M z()6kfvxicCoy!>dBS>YS=7)YMmfAqqcrHFkS7a6Lp}2&48mP-mZD8Stl+D8SBxwmO z3aHm=%vySP-*7Fu1ax-Sh(9DzkG;=-aTv7<@cCzGv>tHYlj#_t3X})01yja6YB$MI zcN<8?#P#l)y6mW1`QhzD2v_P>Flb3&ync%qfFAo_(XjUeFgAt*!YnJO4Kr)dlEXx* zH{zVxcor}XQz4(`%zk_Y$rtqpl7tBbqk>?A3dWUAGS22ql_1S4u^TSEEkrAJ7MDmg1wSqVO2R1fuF%j+LVw zi02TNnvbwHM$)z%+eXP{4TBD-rPce>vfw80v_FR|I7mVfJs`6aNk}@=<+moYVe&uF z8|JfoY`e6tLEfej*|HbaW}qI>VF~`ey#pJd9&l0*Y?GZcOE=gfB%*_jnuOSho{{mG z>cm?avdH1Ij5K1b%cg&GtodT6M#bRF;eaFZ>ow#F5vhw^S73;-{0gU(i!aDuXDK*j zpM`+Z5tYoC1hu9UVx1_dC*>z3+_0%(<}+xeM^J9I6$O@sR$y^f_}+o$=e{QTI87ST zr)Iq-yx#qDi+(^SC*+(f4 z+x78wO?yF5N)ok%oBQwI(wZ-%=tdMRAtZD2XP3`m;}^FZU{xu<(QWKTp{h2MJ0mRA zH{3O!>bMq?43-&18_uKHP<-OIX+9o@SKQuM0+Q<}ys>1&V0w+oi}?-mp6)Iv-eT|*gysQx`(n@mmrxs~5ycS5;9Jls`CA?> zeEAA;X&rL^?L&tzEcSNqh0}s?qhTr#V4vsL=@7l|t;pNF_3WQ<|>w(+c9Hg=(2`B8@GnB!-}xmy1|%O8I;7 zv>hc~-6oA}n5nNjycAul%5IZZqLgo2x32iqrVD$oK~>Vqae_jtHmvXG8lJEh z&#>vE9yb+EZT8uY*yhTNzn#tSf<8XTPLdI?cA(hhi-ErsnD)@_n!d4+xcBA-^+x;y zQE)F_LRJsqCD*YYIx5;?6;Q`6i}HikG8(}y(h&1&&i!`7G2(C$ivIR25)g{Z41P661R_~ulUGe8X zV_hF>Has#t2792N)&waeli7nG&Kefy2{J`|{1uMA@- zD_Yp{h}1dT9U`HPLI5yQ8eTVeN^VAb*aIiD#9$562sti(5aNZoa6p#<(H=b!VAcj9 zH(U`|;hqLam66^;ddCrL7J0I**(AUsP)WybwvPV^!g8rMx^r`}W~)2;q%)E2az5Rk zoP3Qy{~$cgYIm_Xx@GUnyd`J+(vZertZ!=8iL!&T~IZ2nw z%Q!%(@h0WfNDd?sOM`utU_BE!9=0PFHzK@v8>p1FDliC07W`w!FiL{&_j^bS_MhJV z-~0W;{ttspOF=P68v}ki?z+O=o9aWFnFJ=Hv=28DV)WYm$BwxkQH@a0ZqFv4=eRS;{7{I;NbjTUYyZH?VtBisp6 zQ9Wwz%`zWu;8n>spoYOq?3}~!TfzhFQB!=#C$j_7CyEk4Oo38j=aQo74)vOSjUt#r z8&i~uF==X^OYl;k<6`CvtWGn%3$#GQ>~gBIUJZ-K=>XuwiDZQw7#*SMXw>o#HB3E$ z6N0%Z1hdEc3pgNOBb>r?@I?F>G|+qMA543i)DVYZy6<6yvA)?|D*-cB-Xd$bMIf&j z9Xs03PtI1J05TB;rUIy}j5%bwJ;HvF^U6snkyU{7E#--*9L6|*wZn~@?36a}b%Wet zDb5c9gcK4{cwy~PEm#Zlspi2Th{@rL!`IEmryGIsM9>lhit=sx1Bne5?i4!ah7}^k z1oK4{CP6w!=>f%cWB6{;vorb1#{$jIpxO~hKVQ}!ZPQ84&A?8cIX2>=B zr4jbp^f>9To9&Kp%b&MYI=6g=Y3o?1Sqn_K_!rtGn#2yID~xo|#M}vkI@n&U+Z&_; zsZYZp5<eDQu5Y64ctp(8Zw7VqKmU_g z$PxuqvG=b{GW^ZpzyAFXZ{OV~8#_5*-<`LU8%SzSkcKRbgL65%!I2Nt?<&6vrq&ek z7O8N6LVZnnokROF!y_H@j6rdu_cjneAYTVqiM)vTu(J6!F5zl^C8KZN(HIA;zKPcu zk*kx%emr`1`rJ&G6(2=R8KVaC$MoXa>3}~hbPBl4TrX-w(gViKpxG1RW|VhZP?u)~ zT$AGJ2O_5_Y=J6_1o2X;)+lZnB$HD2y>4GHmjR5kkbxYLeFL5f-8U7JDehpcc zu5(zrCMu$|GAp3!iepUf_orIQT+B;l1fQFN(GrZ$!N6TaZ~TQxnJBr!H6uXrcWX=0 zYhFEgY9?lrdFc{Soc$UA=@+n|{vFwHlAke6#d>@|Guh*|WH?gNGLW7=TVTqB8%`Oo z948xE#M(-%7)l@527yDt{m>sb#`1gxSPMWw6@?T`yj)4Z3qW3Uw+<*4LKMxKrm4d= z>0Jds4yWe$0E;&E_L#cL_*u1iq}ymU5QVFk3n! zwOlHUho`&Mct{+|9YwvvVj&!uu82d7j^7{^7#yb?+g>UK0OX4_R|YHn@RfS!WkAV= zs5ankUcA7-jN{r0@Z`jE7^XyUeQOJs2 z*fN(yh)LcE@Yh3qiQBo)5w?NYbS1ydtlg*9#3wVf`Gwq$Tg>n&4yYFx0Poap@b%4d z2A5-~O~HnP@{A)9e2|>DI*l~;P#8hgwOhduyeVtjnu!-ksuQ>H!cUmNR@d)H*Dr>A z7CTQl&c1qbeY=F5|NdbOKf;f1p))TZhHR>Ng`rO@Tw4el529Ad3_Vp0?CqoJezMXTTHtka?sm7QcABJH^F>G5JZzUQ4-FT z;=JNQKGft1uJYB@;7=dky?Fq8Q!ombh_wo*XuQIlLk}?uR5x%ttfu0W5LO%KnH3D} zNg8g*(4HO+Dpw(ycX41P`Es^X2Rup2Y&Og`VdRR=C~5Jrw~~Yv^wrPFvV7tSP@8C} zQ2Uc(xH+!Na!u_s*}9V5#9LdPYF%j?M7iB09xp|uE@64+xvPImlW0f@rskYW9w6v! zZBBzKfV`Nb7!b$F0c(dAgx0iliukhAD}+0+RY>B=cEfeR`4b$ASs=ZCEH!Yu%(6gmWd%CHc`XS`VKqIUB_V z;BZ%)*ND_M9aya&Xfdi882IpcLPGU09329zA&BZ}EveI*K4xw$64lST>186=M3gi$ z3s}0t!2m&kAgQOpCGwjO>dOE45ozdt?^pvT4oc2;5q+aOOe42Rz`jzfNgA_*d5j(^!e)U^mW%_)i`i6vQO@lQrLEpG-Fv%J93IYebgrmOabcuTkZR}4DF~UR8F(veT^6`dveS$w>m@dcBIfRoC8q#eR=*?0V=yWQqs2ufZ7l2Q{wWJ|PFIU&@n0DQ(qI|jThI<95GwW=Xq$u;BH(RHV0(Q&((ZmS@(%n)WIzI>+~fDN z2aoi_Zw!cfAilyj*}lGJWNTe1xmX|@eEM`6{ta^K(sYHns*CqY3p%3E)@4i*?9>Ui zZ(B`|SV3G4MORxo5xM_N6g33yR@ail^TP27F;~S#PgLMc%g`;9v0h76n0V~fH6F=jo{)dH=B%- z-c2dzNX))|A>jthKUZO_xnzwMW ztQ4Kw)cG`t!p3M18y_8LVbkCiaIUS4lKN(V^d;<&&ZavggPXvK3>(X~J*eRjJwe~C zG}0LDnHfJ7{M98Ex|2hU5#b zkEbc%{r@@oR||R*4@Ae2SRv}WU5~!h_3*FmdifGsmY30A+x#BUMEBh(orlqs2j>0vUJa-3Fy)R$kxrgWqT9onc$$ko?CPYSEQ1Oc~w z>9PJoa$G^wmLIsGQzXJ$XHtp6j@1M`tR^GMhmW4g8@aBs+b1*axEqxjYY*-nt_sF$ zCGLIP<=!LnaLMBr(ZS3sotfjl7#=6489=IbpIjHf*-us3diM2NciKmjch>-_4s zG&eP#rFgphe5h<+e@l-@$yoI``kQ+kH$9I3<{pom9*_U#9#5JcPyXf}Pn#Z3 z(IdBmFVr)`)U*=X&8GwINdK)JDsdH}h9F?0ah~?uV3Z;uz6%HulNQ~YDv;#F$RN0; zD7ZN_ajOeZL}7$GGjD@Zup-qS27>?{3sdfSL9fjE3Ru2fS#aR>ptn}-%?thLF`k%* zz1tw$=m@(2cUY`w=(abrHKK>zLQRGb(P^M)@aU(rGvEX}xstCj@=f8}SDGv{E4pqX zHFPf`PNg{!QKmOv!$1;Yr63xrmD~u*j`x^0O(L>F<7RP0YK_~0Hl}hD0`i!~(4yCD zM*|f8G}>314~6k|dXD0!ME^1n0q2Y3wE3{G)!X}rDf6l!=R{SFh%}aj@JS&gq2Q=4 zYC$82mQ*+}^fecXNC4ne45g?ff;f+7y9vV*)|P!IrS^)#=5U#{Kn4~N!S>E+xrRP& zekr$21+#mC^uNND4tS-ByHHVs=L$DQy|7Xg(z|s6l>4x7f8n4UrI;JpFPRW&r0L6X)5U@%FNxhN<@F(7M`tcl zu5<;WW>ypBH>yjrqLg04Bo`OEv0mZ76U^-8@M4CkvNa_BS$U1x<%=Adft=>fnNIAh ze36owIL;XNnI+8THVr~WGN=U9RGE3ye6kUWX3B~UjsjvpDm+}SEW7|O;5j=KTDNrZ zDr>MJw&ZfL*bPkt8c_|($x6zsa$GiZvidkc5cb*Dv=kxQq#ZyB`0fhS0oN%C8fU^D z?qCBeaE(#pK5ESEl0|&r9LBj*3YlTpZc$^o>nv_%$i9oZ!k z;-&)?ibrtuH|{^8>vKf#{$evjD3qhBBW!|KQT_xrOCKmEh({+rL=+a_}F z(f(bTfxZxC8n)i?(7%9i0%2s_o26Kh!;N$qhlUS#05p8sRdtn3UG_x6>>bE1rVHP| zd7<3(#TO(>=@{yGBYmuI2x;AQ>}Qv-kf9xjiv?t6uLYE@Yk0jL*m_1$UB-^J&<&>~ zGB7n3{YA(>pV!zy!ZLY3fx404BUyuU4~qZ8oqO>tPQFa2%rG{5{NbD{XyHVVL7EWW zv*h&Fa|jur=&g!rO8mC0%&ABxAeY71Q(eF%QSMqEMybF*BR9W8Zeqtvj?3JlAWG?N zyE3I*6a>vwDpKgq%(L#m9#aF%PqPc{?90B=tSo~nN!ndEcW_IXDCzY{0057OBfFDK zR4_hzlF24yFHh_?sX0OHGM2Os^A1}M+A5JKq*n<{4PiNPw^&wmxm1pY2wk2dPPYfF>RrV)7>`(_+_~o1m`|@_~FNo z_us<@1=0g})}{OhjHYSfg9E2nhmbk^#vg*ZD#tKZ00qkncJQ&AYv`e8PwkcHCgpSR z)i3G6@-E@dC}H|ieY=^>^-9$PR7?xPN=r;)EYs=+sj3G(b&Qh(=_o=hoVBL;C8X$> zn}pXVMe{mJF4ie?yvuPlg)7ZY*pnt)X=ZlU=jX^@Q+cLzfIbMV4Nyxu#eIe(Fn;Q3 zf-6*}SZiZqF;eo!2if5V4Q^9M^n?lg}| z?|(p#kYY5uTMB)0#?V+pW&c9zIo3A@^r1(YT0E8#x6dle?QXB@RC-fz-P` z)6G%bN<&%z&nZh2DOrSIa2lYP2+v#7PsTweQXa8haWLBG?WS#%)t9FD__HBZ4?-O} zLXvVisxNtVUJiRh;TS~S(xX}r*j<|p7TuzPT?It#HO3;#$=8EUP1;{1P9~Szonqq` z=$sRoVd|FHR}n#oe=VqHE~-Nc$!MB!r!4nlGw^1NVl602*!ZEH%!MuR(u zrMaR%B~4H&;fN}N(1gOyqZV^=`}^>cb>n zO+ZxCV!|@5LztTO;?fM%(zLp5M<%lD(uQ^6K`Zd7VYbQ?ZMco7qh8q;iZ%vfBgJ;m z1m1z_$Vn_lCBg6#O-K&Y?mI+XhUuw?V1YzPnL_us>m!#8_rsT~BirG&!N+~5zyn?b zmOshQVQ=#UQ}al%UimPAzLF9OBmu$gBuKX9hb`*#b{V!9IW|z&>z8*)p?~|g&u>27?>~O{@F0`|Gf4@@ z*2`fLAXqZ5KwI87I_7Asud38I3SNUK^gJJXi+Tbm@lb zNX$kRQFo|~I*6-*QC?EMK6eK&sj0<9=!WLUU9eG@lieQiZNkvAaA_{}G<|Tr-}V7n zU&iF9d7~Ou4A0Db6TWev6swY^SJQ7&^?pb91XFj~50XW==qE{jT*BoV zjwtCJitmzr6taergqz3+O4LCxfMsgVYYWvNZ29DNLyce1Ik`e_MXn$Oo#S*ny3OlQ z1GEKqv&*3gM=Y3aQC4qU6`nG!-tBXVE~QJ0NT$y_qM0*ZQ5Z1zJDz)bTA&kQpdtFP zc)yPX32s_SxER4wnqa|gQyZxVR{26(M5_3C4dD#wkr5afX?w|>NZdZDlqO0OW67qg zbA-~y5m!MBDy^Wtwo#yTEInW!<$ifa&Ri&*YWJ8X9e)YB8M8>{bd}r`#J*ir(Rxh&4 zl3ewS@fR3RBui-()FR8Kkf#rB6ir!!u!S_!Td5nIt14>LPSa!Bt_VdLCBfA<7$}k@ zYxrIv=Z_%=?v_N$@bbCoTt4CN0+7Cp{0azA1VTkl0oXbYPqFyCg6&p4B3>m$zn;$a zv-=5X-ap-M?tl33aBrzFLHJfc*z%WP4F?nX+R>L>eA;{Xc}J8XQE%qnk>sOf-pzu6 zADUc6PGmBHFM?!@vLQpzJegOkdAcN7dkt$fve=ANGq9iyMdN#d+tmW;eH{ZOwpCVVRR==wJ_~FNL-MVTW7wmX^&M4^(c0LsE zNw%2z0+Ej*L07eybS?HJIr{yd@10;;zqVhT}YhTC)ZFA(oR`_&?LR<;Nz0M-tg^Y!^e8wh+k*y>bg)Q^*`;9eW;u4*(%!jr}~RTsYM?WU->BGsGBrm$cU zC5^#cZfW?Y*g%H+CPb&c5JPvoaxlY5>%d=bA~rp>W$ zTxsRhGHwZ`=9y%MFydmHoPG~zWB*Jj z@F-df2{c9MQ(_TW6LUr0V)h|%6-P;MiTgws;F7D)O$G8P$f#m_0xIEEK_*y*_I@I4 zYX((|MfS!LN##Wd)Dcd~xvViVxMe4PoVaG*lbET;LP+(2O)zN$2!g}lL!37u!jW$} zj&m=!WG6j??5JmT;0%;ZJ&XM4B4{%k_*{~Tm_4fWJJ2F_Ih8TTz4?6&qW6?E8ztfW z{J&9f2G?VhQc!Hv2Cx@0HFJPg#9D#!;+o;Z2r?KEHFo@uT`miLwv4C-I zSm6Z?j=e4EO|Agw`xN(E_1D0i?jqW0VfS0%8eIgPvQax7G%B{S0OsxQWATEL ztPkE?jeFXN_IJM-P^pM)l|#U~;DeJbi}tJSl?@i@6yOQDdksPOap1#sNJ@T@DOyx2rQ@ufG=~`=dJka@BCAYp5bD@OO%bXqf^d3E z%ExsxIF*R0PE4?fQ0U)g=m{aTEuj^?KA@Me$GPf(n-Ig)F%TnU7&;IQ4P)7=WP`@E z&^r4F5+u-WyR2-6@((+Sv~MYvEp|~05&;9F84(wt;Z}Q5 z(uWZ5;~7XG&fFJ|%gCLE#aV1jq-;OcUej+IcjWZC1yrxy-(boT1PB+FU&fnvvbjW{ z#LAkj0_ijK3cE=os#TOU1oFJv=hJuhZ$3^xy#M{%?=RoJzmJVVy;R=`#pyMW-ojpz zStjS0xTto@D{9Rw0NT4f^c(WPfpLXJfPBtr){0LS;MJD&5-xmnB&;#K8t}(B3 zh;`6*NV8z8mzrR-_!ko|cQ3SKaFIs4R6n?NZC zfes>|OxBQe4HLJEEqpe+90c=gMRmgzkX1fN73k8--2rX&Y68UpB5UdfrMkoF823{y z?vv}ucG}P^%Q4 zvWQNZ2d+7=Bm-c*eu8xGH|j3l35?)Xa%&#>aJMhxnBI{rBw_XP~8N8IiB_~&%o7cQjkcwCKGEOqWUNmR2d ztxaI}sZ%@^)LYGG7or1WxC*eagU&#TdjGuAL9{SEAnE{G@a(=h&gpDMJYPdvE<-eY zJ9Z7c$=IDVBsH+#Yp*-$XSD3BxYB!|etZ+&#RY@V>u2Xz(;I)V#msDBlr-2v$lf4; z8|cbOMV-3)D@34^UZ|4n4(9#!F%H;%K!ReV8f=_t0psH+1T19=_(-j8H=JAD_g--c zrui0mjeCH;S>|odOIRh1Ki{O5$P$;zawc@fHzJ)^Q2fIJR}ep>5XcAR^a!c}EFgT% zp9r}De{JDg+&@YXQ`&lRe?`4UZX3=La*SaCDY;M-HFohXARoaJ;VQmc&XCUtL1f*8 z&_u4iE@lDJd-jMp%4_&hk;S1Vwj3erG|Dte8e{O1#n!Hbk3DdW%9+WC1Pg_dd}nd% zy}X%kVG(bCg{jkT=N-**YQcb~&RX`j;1zw1JqRN2aMLd~u(z=IWZ>n~^k(>fz` zm^q{~8AvTg9b5mDIJ+=1Qm>cqN-*1Lyrs~3I=zwQYKiqqP_ZqA2N{Lc>1>&On|m~^ zZwl{d3s(-GQBWpdYOobK0KXg@mc;_j4?_<`e_Y75D{vaWZ0L|-aRTQg-nuyCXCovw zHByV=e?fV{@DUFTo`&z!jydc`i#2wno=L9q7LPVuPY^_-F+xdf zmGGOJ6w%PuMcu$8ghVE4DeB4!Y~%d6TCph7py*t6hC;pHaLC>>?;NOVBR0O=v##)_ zXUn4zBkuOxG(UZ8Ai=-7ft;-YC2oe(X2yjs>E2Q`EOPBYxz4>`ODq)vRJP?hU?a-$@4#~3N# z0SiKnZekLH`?=!50WAqrjuYDn6dsUP-eId=0_A^A7z1t;A|8Wi5HZywW3N%?BD$cr zp(VLmf89%pJ1Bq5b_fv<{G0t68}c|oQ-q5gL)5zAJdzkUb2vYo&m~>36dse>p@x_! z0D6t>s`c&6Fl5lNzT2qe?ZDK#2TY%AUtb|HI+E=%`Wj5lgbj0`^q%Nz6m~YPaD#F7 zpj!Vfl@!8%L zI33&C2AGx#T^*VAqT?cobCNvO#HkBY%$SQ5wgtCV;NF4)6?4U1rVWUsL};eHZFJG7 zm#;`L4N1LX?Jh4t*OY~HsuuQupJ9qa{0zcqwj}&>ZTi-*mv}bNsN8x&hG*2W7?ObS zG`!^sw>c0KQ7dyGww*W?+yR^&0!$A9B0FBEs|Btr9zcmWnW6_DV>t~lVD839m?o78 z5+BWf&gk)An1fbtL_H!^*_sW_R;Loh#+qAH$T64txuKI9q8Y~kAw*LM^|d82wm;%6 z;wNabx)HtSP(%$`h$>m{%s-17!yL3=4*OEORhjZft-QF8wU z1C1}EPP=aEvnK8!Oqs1vyiQw8M==nV6RrD1wG#TP->zW`MzTe19p>Nb*)w`ENP=kv z>=U_5_%>t*n68;g+5;3N$Fri0cd|MB5WG2}@?nWOmG-fA3l;h>J63i;wFcZFrL(I$ zXnAaUUlXLIdI<}1+546n2na+Sq_5H36^aoL)#=@Lp?Zj~;01Vr3lJ49t@aC-GW(Gk zZ7-ZolYYHb%esW7RLhQVonfZneqSpJ3u>ni{6rZ&Ax~IOUQVrit#U77;midTgG~ z`@y>p@4vTyKEMC;_WSopbBJtYqM7E5=FQk3I8P=mkSjzzERf^`oeOX$7pgA-dXY7!pm(?Rf)-du8|3QT3yzoL~z` zORf@F{b||ELm3WksRU8*NEDUiEwJF~r0PId*$?KCTpeg6f?B3;2~lMM&5_7rOJ`>bk_0&njH` zEO|(5k(sDQ(%~dQh+biv$gagYV~=#1?)=PT-lU~lZ#Er^G!t1b8~XFI%{QaH)t zh4P)2tTypa0oEWOL8xMwCwCDfXMj71h<0#?CPC1M-4v~KcUHY!m2NNL1x=UH8?J(e zlw?SxJ;!ACsziF)c7=Vkq26Y!tKUx3^8F4_-&S*Iv$SYa`%;u~}I5 z)fr?ilbdS@bb9Lag~Z{t0We1A%#cZBhyk&se9)500M6$~!poDS-YpeKD}}^E&^Mp2 z7!Hu=m1RcNfE3xQjYROzaAGq`8mBHxAToOQpidhl11Dr_mT&&!;r?4ju#Da7kthze z($Mzifl}c4g5Ys$*K`H&)+Qq!(jde$da9^K;sE>?sLRwQg*bz#kK?Ke) zK^g^Q8J!A~tso*YLf3>eVIXOqEzIo$dP*x65GTJd`hpmPLIk@=$3^~KFv_K)k{%>} zFQ|jzb39%mB8m*)EhSP7>;LZ{09 zN@_OYB${74AIonHX(|#+=bw7HJ|f98>?=}HEwoo@4Qi$oa27QqeY)=dLw2|U&OfgT|2f4sr-FEtno=qfO1}R-tM$ zm)(I$gTN)X6dq=Qx<9+wzJ|-O5MKs*Ee;>4gs*XMsh*wVFT@1}3hIHH^|~gI%tT>= zFW!R3NW0vepGLhjVS?#9?NHdagPgHLm)seh#SQziRLnCvv_s=(fD)|Grtjv<#j&^} zUKT3pF`oR4Ax1{1loe`KS)+0$pc?}RT_hw4;QnxOr7#`D=dxZigMasnODe>ASQ82DbpWS_0MCHs8k7dA2nuquQY$f8)N8i5(YPru z&t9|ycLmb-T9^FN0S$>{m>)BC?4KVO()sPv5JiB?jB z(@NwZeb04&7G({X1|T=Eu)`MtAy&e|0%IL)16&tz3k^Xzjq8U@mI2yjL}N)qi-1_L z&hJs(20+XP4+t0`?aB!MHJb+~cL$?OmzEK$844HmqK$q&zn*Uv7SeISVRw;WT!GHuIVLFOg&@>mCf-k~HV~U& z7I7w{$^=jIKD9GRoqD>L>8KgCg15)y~4Jb9Yt6ukV2-1zYjtC%{1sC3U zY}zRKCL@QC?9XJP_Ne_CTiC8|m7d{KIToI@D}ow3ZvXWqn2+@tRERRrqAvKW>bl`o z4LF@2N|Mf|k{x0-RypCZE;I&Aak5r1Qk%m&h+lat!TLKDo&b1J$j6VRs+%XA?k)lH+3_uve%{Hc9%2w2EvyI zzoE$@m5#y8R}&~kuXbirpA5#a zPR6pCs~~a`3u#74lc`ae%__VD>$Rz2d2KxJrE6$%+`FX7z&_ENQUwx;4t@7=YH+OW z`bs7tild;z9JkY75LK7mJu1~T|DHOgZhGi3u`YK+LJU1#+X<%0Q3wMp`092s$iFxK z;gm-tFbvterELWBJ#n!{+}ZLpP=YmAu`@HslO(SH z`=c<+!?gsnyp&VGi+LM?1JUlzju%!`3lkrfZb_Ikmm6n?W`)kbEz{L_jrv&g(kO%< zgIiE|g)Ag61IhUiQPB>GdyYt49OUf@;?c53gm6d%QCVzInqDM(GGina?89Sy&=QKI zie*=0UwmM7%}^dy5a_ALe+Gh+x4hzR+`s#DZ!tp-^s`v7BW1GS*SV=$x2s26K*{s7 z-bQ86cKd~qTW3G>)Be8={lEVG4{zVyOA;znZqb-n5%38V7tce300(* z)JcxVg*+C-53+EE;5&4u$N-yyd7+7Lh*?2L3(-B(gx@J1GfVg*s7Vu7TsP3i8xGpM z1gZIIv3Y4E0;MscE`T$C_Y(I5`BJAINFkAMg|Gtqb#i%^gg<-=M3}6->HSVpGZplq zV8GL4^YUL^Kea!Sg~v|_9aAf_aWU??4^BH7yp`tw+C7NOwC?yaro^=ChJ)4hZuo~H zkq*B`gV~Zpqq#?VPF&pt9{8{`x`i~JnTB)M4xrUp@dC4t{$j7@go1ej724Bx1@3u6 z9tCCQq-4<(a6SBS+b=euJ=r8KEEWRy1(;;nuZEiCAOtgso=-{y5Ho=N--2wv+cD`C zm%^#Xp&psu}2TRzJ#PAlG( zb5p`Jc4z)L*K~2<-(-*!KIO(j)=m7wGaZ3nuhz3dDr*%_EXx{B+42m+2Amg(92nKq zATyZz>J&oS0XqE8gP!W6Qj&O=oiJR}m5C6-d}O443T$64b`2?!d#`H5@V=zH5!;zk ze8r2aCOA)q!88)h`b$jh_T_We7!}Uhkb@W`wH1v7Vs#1?RKFxKfO;gp9sJj{3KPYm zFqRO}*>(fdlTBvBU5x6ZleooW>o+Nr9ptkrBD=Gbi^=V8K*2cpk3YP5|Nj0RmR`C( zFYa5NUo>;&A4s?HX zhXgv`MFCM$K8%fgcQbtfj#8*M7qt-Tej+Uw(A)Y3>!@Z~{;xW_i)K(a)fJ=aq3_!Uq;Wc=#K z_Ioe93_Sk!{rB(g_ehcR?b}a`b&h@!4%85x#|CsY%Pxz+IA##Wd5#XKL;_jU+<-Bg?&PaD6A=ak;)CD!s(bAAb3u#Vlw-cHOZdM;xyx zX|cGqgfU@gesyyx0W79hQL=E@B_GEz413BnrUIbBU?DK&7)q6Ueb8U6H&avvofED4 zx5MYV)lhC3M5~f=Vry_(K+s%G8FslUsROP(bUaWbNqs*KYPTSEE3n4dY<^9&PjdrO zb8=U_)@NHWTK2P=ICHN#p^6`3Ej$DPfr)vQUuO<$6*%+I*y?irst`*o%GA*dyJ_Ms z8c}FbTt;5jdks%HCzFF*jED-X))+DbxnKw(Z^-D_MT`qvnMl(Bs#zqWTj7}i%tdWN z^FiNVHC~cJ)lU1DmR-ho7CKQjq}c`(0T+t9ipk*}B0(}X3&qGS$xy?z3guQg-L32* z(N0k`c;X9-BFKzCpo08@V?DFO3+Yx|F_Tg?;qa2c?aW^H}60F@b-aWs5^~HXi)b3gT%U?l;aP)Ou<0!jbqE4Bzm zi^s0gxn&`33-^<;l)F(7l%uARCG4K2qt?ojIT0%}OAsrG3}L=aA%4WZxQ5ifA|we= zupdPDDZ%CHz;L){=erQcNgkmjv(Yju?cye^VVXVLf#*AFPjO+O4()NK%S-dHZD8DM`EIjvQ`r+ff(uX2*lf1!^jn0WM z*p~D<OVWUM8pwiYS^8{r z!m}r!9uZ>#ex#S%oB6FM$$Dvf8u)f!Aj%naTT6I9UoR0s4>2Vy3p8eAF`Z90p${5< zjXBAuY=tbaZWNe2?;t9}kZLP&5jF73Fu=li7Ub_53rE}j2+ReCT7;nm!4@HaSkzJ) zrld$GWt%8?CSuA8W?Lf}pK2p2X#xC<5PQD z`8^8;^=kWKEUw7SC0W+zIDds|L?Nq}ssgFQ^7NeW{&C8N(P4B5C1Vre9%}`%?Q26dq#zVpM%-6H*FbYm!lwDW z$J?esFyV?$x;sLpqNYy=#FH$PYDCZ`g=Zg~_I$iFuB99qgXOcNWY1O$P<2(wmWD+5 zi{t0mY0d^==WZv?5K9FowXrKbSizQ^v?qgskEAIQ^)@TvcJQec?IVP*zlZnVJ z-#7wBh7KX4)N=$*lwTYsu0*xs6d4J&)ydjkD!`g?Tz5RC&@n+mN?jB*Qwmh!zr*a5 zS}JOn+@`b#3LVx#psR{(33js`D7D#TaZ6}b&D3+~&ahF^B)Ker91`&V9M>z=d476a zde+}YA8Euo5f~LwN3<6! zVmNpP>axe0TMSX_yW8^Z!>_0BK79Mf+1o#f%SB>WbQY~smR3LTNiiPTbW;U1+EMLoB4ii_0DA&Z?xf;CIWIaXLMfi~tM-ej)~oCYZM=LTYwX zlti#imuzau-EHE4Ud{~6EVHOzn|6m6_$ia#+n1SzDU7fpm9)z}?Gz-t??9;dZrI-6 zK(m1B@ONCdaG@Poj|)Bo0%XF>T~!Z@??ur6I@?AjMgI;dbGAowlZ9X}58UlGe)aX&^Nu-?Lnw3R>b=jQr22 zm#{N!3t)N;-Yy>;1Us~44H;I11vud0;AF9HXc1Woe?o_g`ul2_UP^w?!ZU5|-+VXy z@WYSD?I$j_xWBD2#A@ly2-(;R^9SVSS2QdBDse@iBvVoj0t8A zNMe76Al9agGt30C2n`K1T$QvkS^?MRyPFteyc+&bMu`|G$j!%s;<1IZE9=bf=a{)z3-=KTng);3OUc)r=PE{!g z&(TkF9516$P0r%xsmCsqD`awExvI}{?CN)}b{0fL#4_A3o^SH&)?UVyF+{Axg!(O=>jT=+P1u?*YmQ@z`S|lWt@gy`;DfB z9;H<+38U@&c6ALAuBUEubkv3FAgp8=pDFdQCxDQD+_# z1uGg!^!s2bwgQE5eYxWc&k%4Y+&>3gJHkgUdMTVle0G@41QtSwio^l)@P-PNtY866 z$8wY6GL)9Mnrb%R-qoVX3ZPCr1_lUCMpBr2{t0OQ%A<)iF~DIIaTcZ)iY*tOP(6aPh*#(roH*Lfx((DJ*bWl}91^eefuHn- ziF~e5ppV3nEE;U%SV;_M*etOyeyJv#C@MT`@@K^L6Ih&RrX0&RAbr;LEv(Mx@0o23 zhAJSA>k3;k*(AZ-+!7L)?I&cnwtkV4U^x10`VCI*{O)EwH1$T5w7y2BI3KGRmoodM zKMmAMG;}r?;u~YHS-9n=1>1`~f$(E&4u-UD3Kq1t;co_osbmh%a;eZQn1cbFFM^U_ z+@jIJd^OsT#^>-zk`=%|pu6*xm^Gm$s_hp;CzzIi2pciqk&Xdj2>zQTWo1V(Y-#8p zu$Uvqw#g2os2OeVSDdSEm0DuV3X6}s8mcR?7IH+ofg6(WV0icg$yQq72B<+Nnd@S8 zIdiEjClhzII@|FIUqXVx%BOby(lhJ$0OQ_);p$<)6mum5()zvq*B;=r%gOZ%8ZVZf ze9a+GZ8UODgA-w`_^tw}F_D|Rz0YQJarxV`e|kU3^C4ybgzbzOZ)G~6d*vQ#VhL4o z((Z0=26D!*-)Y@lIXUk8;taD-#=Yz|H>E`@FJ`Y+Gg#7LIgxs$R}RyG*$G2)l~$8|MP(h?b|ApU*h zbb}QH2QNz>?dp3 zyr-0&5q}|g0!mJv{btQiT-gM8XL#BrsWb&ZZV=j_n$Si_YG zm{;G7&&TfMsYH$O3W^h6L9J-!++ic58m%b5IU7ifZTN-nVutB;+JHDrGZ4o0;7Ujy znMavVj9d9738v;)NjLpnEHA;Q3@BR1;HpZSAGcld;HgncpJUF4Zm7Z2yuX8l3oH(j z3013R!JBc7b~KZkryNbhPy|&Wlrd2ynPLS8tH;VJh;Ryo;cB834I|V>m_8heo6Adt zRY%;j`FguVkW6S1vEJ)nokG@dxk+~?DKvS-z8L)0=Cx%l>M(~5#CtO#@PTMq z38+QspDthcKD*#NrS$vfo`B2++6tsqF`^(!8oN!}h+0Jk&#Q}SLE%BpUh`u9nx-+j z_nDNX5lo37hLzJ}qA6^>C{C!ZUQ5AfsZa=Dv797^>Y#&xhTj^ zWR*VmKtMM822jB-FiC|P1nQLadM%<#%r^BalwY}4rBBP!J^@w8FVJK8l=LTM#jn>8 zV7`Aatx3|@fUX_1K0rq>5TRt&H(?aDOx%}<0p?-^Y#rbc9z4k)%#wS1{~$fh`s4kl zZ{N_mu!17)wjAGq3xRUxvGajyn4(ENTF_xMV3=P<2|-T}AK!la5CXGfx1l@Uo5vuo z^5ifAd0GZ*Z-=gYxTkXhKchgk4NwmlHVVUC1nfU=>~>j|rUN;oIQCx57a(VfDo{nUt^!38g3PESi1 zeAxKX?bq8x1Fh~btx3MMI32tTpanTXh11J&1ln8y{Sg+v~C_# zt@ox*Fb%SncOq@Ys|7B(OfB$cA--HquT%7gi{<%6CZfPf=7n8S=i0YtDfSXjZ>2tc zw&I07f%zbQ*%ERwI4i(qWC=`9Kh&I9Ri(i9^y5x=^zP^c(_1w)b}v_#v@8aJ74#XP z-})q_9hiSKFIRq7CqAjoNdZnnpsHi@a=JE4h*Z+*`JSN7`{HuBTVT84xxv${L^1>K z14LK?rkBC?gZQyfn`joC6b}@}6A}dZC0rzz?X#Oh0&Fjq1YFY*VHeblu8(#|I@M|WXPfzS03t&nKfVO({f6<~ zPPKIGnxBK4cjm!mHGVx*jh$)TyYsetSU=XXamLQqn%~oA3e&r#1C*z^Vk!Cznhx+3 z6qh0IUW!Mlf+o?fM)MrlOx-WY6d-ng%KCb3gqsJ0c6+`krNv;3SnfbzUG2P7%q@(O z>J5n%AbqW#_ap7SMaep=<(S4b+HR6X8wm_+G`tCt;%s^a z+cafuoFYxF*k*Gqvbv8SegrbvKtR(kC}zkCtgg-zb~D%cL0~iYr04ae7Z@HXJbhGaS`UA% z7womr4?uJVE!WlC_h+Afzx}^j9?;A@=_Ko=cB!~givn*fs^&^~L8R88$^xL*Tqb>_y?dCXhM>)u&_{ zVEb_)3Qh=#w~!;vq0yreU`R=H{A$6z*iDf?s+Teepgx+{6LZpDKo{e5Vm^Zb$kT&& ziv19Q%TrrQ5;9N^P?UgUH<{f|kiB%)uLkRAwbG3smcy+lQ=$wWM6gmw$`UT^z_XM@ zHg&T1ps2_!j?!NC;gVD>q16ZS#SsD5rdZ-IMXf^I186>8K`??ycRI_kDduW|*5(k7 zwP&61KE_Z%axn<|vpL#ti#D1{A(z$- z@n?7{jtrBPhqK?m#ZPW>aKS!v8Taw^+K;I43W~xU>eAx;ga9W>g12{zt1gS%M$`#b zbh4gqkrGID=FSY24pBh7BZ#`elu7c8OIh2*>=U?nh1mYd79&q+dMMztTXpiDr0gsd^f2krozm_`afGEPeGF4jM7(40lv>uX-Qb$_TW#nlVl^L$AZtbqGa0oRi(!Jx9PMvM}rlf#>z#4V17Ukb}@|vn$FlC%M~PhkQq)0d}6RrrY~>_uo?0A^u*G1d2-G zM(#Tjz;`Z}NVkenpyR|zln6e-v=BN{F81wJ7$lgQljh`G>8AH=P?fZSIQ|?EK?Ys0 z7ou8GFS09O)MD})R*p+VxY6M56QtMZ0T-`^5KVU)?rq*KT~^&M(d2d2ZK2m%a7>!V z!M2;27B+tS;q%ke;eJeUaJE0+=z>Q{HaBNHCl0l@8@f!WP*fWd-=y+MimUMj4MDJ-uJI5W- zjw}Wf{bme(P0QFa7R)}xHm}$7^=5UB^r#TF+?-v`?^c_c2c7Q+N(itVZA~EqMHX|S zV~m5RlmjG`hTsoU&=CUvOQmJM~PUIo`p^IAal zdTtPzIA6`v&Ma<{1XAPJHMqN=QBL~?460}>^unmI@1DmiXiNp%?lb$PDzE2WK63)7hO1~a(A zN~*-q=$Km_%|8dLXL5(uklK)7z%-ZSxDt1|cH0~t*_dQZDpjq-ak^aj!2D0pJ#9aH z{`l=Z9`=|Sj7*i|Xe4Z48#tM0Qj!|DSeH}yvASs1LJ*f2UwN1-jBlBlaUPz)$zlsz zRG`WAZhc@n$Khf#z(soLlnX!3`VVI^?>vfm&I@WD2JiI&%*)PIhZ~Y85K{&) zaT~*>YjW+kI<*hir5ur3ohP@?c4|6g%M@zsHS!7pyRs(6 z;?X!$)&bJ{oVV4EH*9oT_EeS-q4^Wg$+%&V#>IMd`p>nHzP)AeQw49UGb`R`l2>QLYZSDpo;O zlamt*=# z*`ZIqQ!+on-TXxp71OzHdYn}p-!>7_CH|xM&d{*TJ&B0%%{I2laD&q^-Bk`TBvN)j z1k5MhAJ~i#Ur-vpJaUBkz>PGtz4{7F0SAA-_c)WX@RdtSn&3DMjQ4@m>CIxcPz{-t zIKO#N}YHZAN2DakCYg z4P%x}_BZ|vOm--}$$^Spczfun$HHxw+q`2K)&TXHoR=${HVVV-s+4R?)8$gLQsvG0 zt{j+40gEdtM@}5dpUN+c2$&tVqmZ`Gr|>dHLX0Qmk*M|G-uXT+v;s9uBi{bUr`_9c z|7g)ZY()YM`^%c-2vAC7!B};HvG?`asU=4+G%^9{2p=8XU9W9A5_5@3vdCUC@aEyQ zBFtr2;LTtau*jgfBQAA|CH#{49r? z^pXpq22Ppt?f!Dqrv>(4PRXd4WVS`&$fOKRN1%R48mGU5y;-@vk-$w~i7SRFz&Qv1 zH1PIj34!m2q^LR0yqX-4N8`6qud+VDa&yzdjvN_}$cbxvx(`-K;i=v<-2Sm%$mr8m zOzkD2ClgFBPx0HCN$zR_smBr)kk}sz%1p<$w$ix|^MnKiCPlaHt5lacl=&*ZO z!0xU-N=1Eu+-}yJ0WauI_vH|)I_lz!QOp8a)ESd;yTtubdXTGeKDzCm- zE0E@d=bvYlVHrf5dhFA(UJZq7T-VSM1vkL7)N^bV5cPKOl-r6Yl)@Dx@7qAQf|eGe zP?9Fh>^V~fTrDkGfR{H{ODE*1_dcgYEC~5rq4~@^ngM&NlHhhag!ACK4A1*8YOKvW zBfu0bJJASXpFDO3pTr~evx-o_=+4PV^Op*Afg*!g?Z1N4QqL>D_?UW$*DG+n8-CVq z+C~XkgasXfa?60PuXjMPos8!XMpG;ir?yp#8y{MLwYqXj#^GTwc`ag+0piRN9fe9Q z6}12j%PRLB-|WVcvH|&tQej@osCwbf%5uGnZ137V7WIXz6UE>Db^zXy(YLXgk|j9< zZsU1)plt^Ki2J4Y0TGw^5r2ZUho7kp*1w9k;N;>Nd*gQV6?4!JZw5#=T)z1i+QJ$* zQ555A8(laCT{t$n5Eju%u+AiO1Zaii)}hqX&-ZuB8L%6Yb6M_VSXYv5Wn7^Uxh7uJ zywp5|ychiJ{HZCMi`@>{YpecGcrc4P$Z+IwYFo!@Q zq7!YOW$_Ytk{s;b3K}WJkD9dIG(;k_0O!T;+S%o7N){J(IM8no`YP3t-#*&TeZzH+ zKAUe+mpJBfEPDU@x8E1;MG~e_^HTX2 zr~;@7)%!iHk$)_@$ESdls;p5R%aJKah`Mc~9*MQ4YY?RHc`ANufiwc*K$pJHcN@yp z5VaLU%j}zpCMY72C%qOrmGVkY7SE6)gYy=gl*f|eOb~fPwVBP#&2sJ55(H7{+Xd;! zg+r-X?G-GaO`l9}#sKPL`4)<%c@2Ri1RLERuWkc9Ncs^S!uJ>V*A!03$&=rwx2J&~ z%#0Bp#{#Sn9Fj>oSi&c|ssrQ#CYG8mT=Qm#B_*V>?xv6A6WcpbXCW&1s;3*5F9I)0 zt~r|{IES`^tGtB5DyT-uYRJSfDccQ*)A`lfM3OM*5?Pm{G?<}6QP%nryC{?}OPdPF1f;)$7G5|vGh@x zNQ~COGYW#95qSJ&1NUzc2 zM+`z+{3vPhNjsJSn+I)0-Xg&`m!cxQFl=trJ#G{!_(aRuSlzBBT^@yocadNkE$Jl} z-cUUN%Rx|OgEH&``eyBXe;lL;<6E4U+QM9s#;&NhyXloi7=;8~7|j;Wa#0eTvW>9( zz~Aj|R$Z+0N?_5Y&cpLJ?8}Tg_BU4%>~I^i)m}^Ry&Y?o}x(kdUvE zg%M53T3C6hF;Z|CK|7~uQMJ&%8;g?igbk;;+&M}mspF=xku6oMfRW~+T5dzuh#Q3a zgfFhKiFq5-6aDaztb5Pa~8Eg6n^HT20?TFSzJ`~hbWhx zvE+IScmMnUbM&v~R2ff1&z4ZBczdUB1m5{V-^0JU@9`J=9(|$jgC9IT^q^h$Vo{a# zPyD#YQsWh!A=>Gg{jg{gcdm{nL*g}B<76eZUf~`>2Zq>2*zd9Zsi@Nymj1F zpt9&4nL)3eHzGBSn?_303n96pyx(3d7rUhX0KG-2ZvTdNpay3-0^pLmSqD<2NhrsR zOBi8K$gsKoUXm_ubkK2UpFe(jxV(S={lg#jr#l9y|NZ^PPa@n1y@81Qa(;ad_WV=< zg5Z0&1@%jmLQlvlB9tU?Q^h4x6+L7h`RP#_vNH+Hn+ zCdXXbY!8|)UbhKrp?Oc4)hQeXQRTt+v`fgeZg*yNjUlU`0S21@d0K1@YOMV-E1|YG zW}sis-acG^{^1+APlGZ?F$H@uD#8prJPWKB^sYS)$?_HA0No(8Ey5^ja?Bdl<-HV; zgH+;nC^aEiN~2;uv~gAbg-nDI@)`jVknHbfy@mzXd?o`0b<~CY0x~GWt)h+DD{9)e zQojN_2O!;Eh=odShSJvwveO^v(aU?*Sy+)gkR!vnnt^fPA# zZAXW@iKuU1oELO6KHLpJw7a;ZPzZb!h?X@3Lr;G-JQ@vw&%hPhy{=y=zK$bEmjxVZ zrPH8`BZudc40D>x+VmuEaN^eI6s}i#hZ3Of!WaVfWq3db*ii*KShdNai9(`YkLx&@ z%(0g!4N!U)C_fy}tLcl?Tuu!|+0N_U0(2&ml`b*g-$1fkTFRKcoIZsFnFJ)@NK=PK zK|1*;PFZ4w25#Mft){7U zJtq;qq~BVjfUD0lY@6M7SlwEjhNw>qPc@h}neX-B)D_UtL24W~dvSN4q`N!Bi!ga- z7?dp>iIW&>cxqqi;gU;r-rjbVOTm0gm5LATsRryb!tr1%Va-siPfG_c-+y{|^Zwg= zsyT)ToyRBn*?8Ji3so?VG1+%m6DGM8^x0U5wN>80JCUgI0D zGRPDIXE%4NBdb7us*r_bjN=Ck3$gpJhtE!qzdjzH96cY6M$ey}-2ZC)d;xU~F=-ZN zDyZ4m+>$NUmwJ|AFk6mI`b*g#P!#_~%+(ToN|IZHH5`6tBbe-QlW&{&m(b(nYyoBx ztR9n>Oc({~8gWl=J%r%fcMta;=_Tw`yTU{v5-lp^!AchR_Pg)iei&VSc>ng{!$+n^ zjZ}7Gp6@o$n;dE)c`mgOJI0u>g*TGO+&t+;)Duq?w^`gBQv~i1GMB2`!+#nJ4t$IR za7pCrhhFS=fHV!QXz+Bsd+@o*Jg+t!V%2 z3Z-?SdWdvx*pVTWF%C2lQ=u_56SHWG9e}USIrfrKcQRBCcf+Kc@)^@c%|LZ1F*aw0 znNQ1t&T~-v;Id}@cB%$ZS8*z(v2z(SFI=@-#PifLx0sM03cJw9l zn}k%EG<$H|BswwZm$KmLsmkfowYOUjU4A6aG?nyvJEoX1#`^Ba#9L^d7`Lo1FO)(; zb9+T939Sc;=1-)LMLt_vx(54cE8=?`(k2*k!J``g4-G2VAEf!VTO#vdM-}$rW-DQ7 zfI)H?en=&~6cYsuCKjPcG|O7gFKdSwo*)~zt>w=^i~VW>weM;&qIUdfD2}AA(i`k( z&>@5`qSPL^Ov!W1bzWPyFdO&Fg?9_T2w?ekn>WX9gflX=v}YxRxvuvPGzAnU7LG-2 z2m~Gj5`h9~f{gwfLF3SGILu{lpssL%-v+b=L(^!~goN zivncdlCzv4WR%P}?%o@BAPulF5!-Fb*rrGbpbYdD+YjJ}L5PwqcK$gRz}%*WlcZ#b zrX}?3QRwthD4222E7aHXBBP6A#3zP!I>^$jM?^j7F#$C#)E?!Sd}gSmr--91m;~3v z;me5 z^%2~?u&4nNp4hGqu}cZCmRRQH>YO*$`ElF13D6VJwhcz^rjy45-6&>QC)J8572WdF zZG?T*{HSi5>TDm|gZ=jQ38t6oLV;{>4;A2MMf;HT#}D6seDi}k*BqdZ(nD(y;4C&; zE-JB+(ST#!4BJ~^Yq)pQsk z5foZTCP4y&+oi4Ead2-)Z)6HrCT$avl%)fNhbg^m@^6%NJd`WE9ko{!eu1V?#y~~P zR$i_Nq^%(&W9r3zq?cf7u5(7}jC}_-$g~_fH;@|dsc*dK@>#`vh0d|3m2Gm9zK{BZ z2p&`oFn^mQI+*&7@S+AdPLK>5_Oh-(zzIgdUOLizBU`f$Xq2>l{K(2$r&k?n!kqBa z!`?=cyZxDr$F5e0><1Cj98RKOoEXHm1Dpr+$u(lUJ|Ud$-&iJK#rU$a78Id+$Kk%F z-;y)rSp?yvS@UV^a50BkUV#h5OV zq-+h9L>4YgL78E&Fi-a56Wm3rkG)IkrgG$otlztB#8{b1^(Yy#||{ucB5vn?s^dfqc#pcx2lRh}|SdfU7B-un*v%L_mDLe z9*@gzse=y>c^DQI!!M>&6H@^bj{xR)(IT^85)7sl=I15(!-%8y5P3&OGK&loiDVHk zTkygF$2NHZR<}&qQK+u0m{nIiN;Kj}X3-YmR3P;Q^g-ST-0K+~Zk!P0wTNxT$)gDC zat@ngM6G!pO8zaV@X*AYO0z0=wfjyq7tb_pLQ(QqKhT0`$JA4r?9n}9v~5jAkwXwq zM1{>ib&L$?w!h}u)k8MCq3`|K5cL76^FLhxSBZs?y zy~vlkIR3&YU^()oE>6DC#j(0LJj#=Q1%5z?oF#3BsA@vA9>oJFIM?p=4dQ5L7pco1 z4>ZwE!MQ=W)78Rb06`%C+%}wPI&H_9D??eMYeK?;B}f&qz{Y6Fb)5(;(%hdyT<5WG zlb^c~9%$LCt1XiYHA(M>ZN*W^JOHU&)tL>2{&QS6eHJk=*jbUoF42jShAz0rwQ|v* z!rmC3#wX=89Ni!&z~og6pGY$hS7u*D{Eust$2zSd$i(6LjZ3k*IStlnT^uX{ymJ8js{gp^Sr;o`Ff6Y8`)RaMcpKk$~@=dK@6!H6^sYr z{r^AT{ZAuwjrzog)bpbqmtdL{ou5^XbR|Khju90Rfv>r}*%Bu3AV-}A$mE}^?oymo zQ{L$Tg-O**B9g6h>SWXl2D=?<1=2`MeZ;{eGhqM;74~+upYEA#8;svzbTo9+9phNx z-P$uX38okFk}5(C^(f>@upS{Hm1CNbqcb5|QRz1z#pA;xo>Nc9C+T=qgO=P7GAe>Z zoPFR>S6;HZN8!ReqFf*Pqo!=Tidfqe{Mpm&xs17h(GeD;4GG|y8bS0`+BP0GyLa9a z%od8IaFV1L%~l#MCQ$C&y^u>$4UWfVw%)(TKRhb&Tc4zr0sTNp_gEhtLT+h(_R2x6Av!-guZ5-&uGEL;Y5k3JBa#1BI_ zAU&ABF5tS&5YkLngV|2Q6+n3!EzZEbYa>d@qgXj{bht!s_wCG@=mmn$%le6G7b|R< z`W^X%6Hw#e38e=sT1d{C%(5#51BJ+;Ly@WwmrdM|4GzY_wGEE?d07K)KC$v9j$TL$ zx9`6H^`XkssYA>4qqe;Ye+thJ88N*iZk&w!z3QM84wsaw6HSe5IhK;!nn-hpf1Dgx z@YvH?oVOMg*R*@;ybVx71gd70QxF_75hEpq(XdjOLVNclkUdJ&!Qu~L65Ww7vxMum zD(S$gk#t}+x2ZAm0#*mN0Kviro|(nuBSBiM2`=I<6WdX4;0kUdajUQtK5~_yjX0@> zsB9ntLhS~T5&woKp8td)(8DS{uJvWTq42UdenEzpsJXNH8X?e!ce z(b5ouo(|v&Ff^BrB3PBYh^jP@rsSCa-N6(r&nmiJTu!T^FQg*{$InA(Jebd%3oxrK$Y#CojYUX6JxU7{=2~Pq z`1Ql}IE7?Xk3(m@rHW7HFVb~>3H>lb zd?|DuQU-;psdAeIyY%mW{g)OIN^?14>iLnq%Cq6noKCJ39+*QAk(%mJ;GVCdzp()5 zWtw$kG=JvbJK`K(AtU#QWL8f?99{v!API6~BpwO1Lq~SI0xs^vY&b99{Br%n-N&ED zcb{+J+zCeIn6}{mtrj{#Vm_OVUyq8+La=2$v;E|$g`VLZ>zB*(IljNs$k+x7?U{^j z^(x0v8L{Fr1Vo?CNm1nc#rb?Wy_hh`5&%8a%r!NRZ)+b^v^3)wKeAvUP{Z<=iG!&w z+5SWHxyX5TrOIPr+`0ob96lp**x;%40nh;I2E!|72RcuTUjcIn)v=Uy?zyjTwLe8n7%UO`36m?K0S9oS(r zf&~<>U|C9O7(5>Zd2LOTPivVO&Lfyef9FW$fFRS?qQKO9qsn&IDNwIG1OPA4xt*F`(Ql z6xi^>>F#S&;Q9$aRFqkT=OK1>*ND{!h=xp38F}WQf0@iL&wZ+g1GvHxOw|kd zHd8|TLQ|mJUM@4)RjEs68%1J^%k{Fi_b-lrPK7<&wfNCZdu^i$FHvPk`-bvwxl+FQ`;1q*@3pfp$mb|o~$Z=(a#*$alVr^ zGYbZ`9l~R^6yfwG%Z6RoQ=lqknRSGPAmlC@h>3dA1LLLFuKOz(JjTAzL|0>{=#)F& z&`qb&PP?0x>yTrjrd8az4$uIIG>jM{U&TMD(P0`?@R0>0S$EN$d{Q>`82QMSACj0V zlP7RKGR0t;;AN9hUW|O@c~US3U12)7p%JA+jFkwnK^B~}yHy^VOb;`9psw-i%j{-$ zCltaJxLKxaKAI)7pEIp}Fzr1Xr6p}>z{G%ao8aY8`7|b4+-U}C%8E~>Z^%O&5i`ja z98pRv+u(H?od>wxpWddCSikF&Q5iGl` z`za%?U(&z|Lax6pHBUzm-D}_`LP@L=o{he^+Eo1uVL?}^=gsbM zm?Fb;XQFF}2BN)Ds6YqR7q_9hi7QN|K4+qmDy_bxHKpSxW7_EA@%huX{{mI;829%1 z{rg^mZAKfEdF#I*n?7ApZ{i13=@br66$bv241!>cH_NkL@mnwB)}keal{@XbQ(?sl zq;Eh33FOb&6z@ig?D1-hz(Ud3MOpBIXf#Y|$Qp1x$M(fJkV{$6N_=U6)ZG@|9Sl4% zeLtG|3QjI?fEzIFogVWY$iV|n0gA=M9H^6V9*Wt(%s4H`iPJcQ09Nm(Tt4V#>YXjn zCN~92*4v^g8m$(lR=~0DZBaF9UzwsdMiEGdRY@R?A?q#l>kG(WO~g7nq`3x}G{F{z zf??vZz)(DbDGy|KvqCDe*>=-QWC2n&MAP+4;i#D%?1HA7Gb9cA`NBP-BJPC{9+{SE z1Uh8TIT8+cx#>=292%5Sk(;C+P6o*}?6>Y1#2xFezGe9PZ#nq=x8zXmuO3*=%<|Q@ zWUq{`zUA5P|CaB5|1JIfKX6Z4{;yxm{vSYq{vW`A{vSYr{vW`B{vSYs!Z+uuv7ld| z0fkBWRxs-eY{*46OgrvDqac6o=CS0(iaf3~i&z?q#RPSyExA`Hqbit46M2K<=Sw(H zXWl3r-obi+j|CZA9zSK8{W6@k0*D}Km=H8=xJ7tpIsRH^^wU4(BR0jTpDy0ev+eZ3 zXy9<)Vradir!kI}?&ILsiy0i0F%^siNz#M-k(@Cy?=!-RBxvT9ra5A=B+r&ac@D)K zU-6_W|64v`;v{5FVr22c9BzGV{tCKOyK;59p zF*8x2nyIkKhyCU05B48$Z4D1t9C`LV0NAku4rNWvT8%e6+R3~Kk0aK8cAuGz9(n~AhvzTUs-v@|XC7C!;b20=3v`R~9waRm)f5kq$7CCV zBQPRdzQJ$msQFu|kJy%3gg-DnG8gZP(rp8c@iX&zcNyCR^Z8Rc0|xemwJIuE*VmHD zgX)Q0e2>BO;L172B732IX$JQCf{GI}_QKgR?HV&)_T^fb5HJF6YM|b^l;$Ys#PW9H z0ux8GwR{SQXUM*ghuVp@r0#_gby=gSL2;+Rfi4Q9cGo}*sLk>58WnPd=9_KLH7mlX zSFOCYre;Y%-4Bd0v%pS!T5V7Ru?au<%Fu@E;Thk&&d3ByOUr^c-67#%=a68vf6$INQ1a}+jsxAXixlllcF5_T zVZ<#QFqi;(pyz1?&0oqb*WM6R>SJU;S&5K9pZ1zw+LhtB39~iauHk|L-y>J2*k_hm zW;)@vYb*fXN8=5RhFT-Z>d<{JuW#So-2P~HIL4L!AI?oz402{Ef{~vBi%q><$fTj5 z#4H+q>i|O>F+R=3LPM~Y4tvtu0q_UeN&+qPBv}g#gI6y=)6Z8gTyGf7yh3iTbd-pe z;F{+wGO^@qeGGJT&>~6N9?cHvk_I`l)ap|~M69BCyI!BCye#;wck0$=qH%a%?6|Ib zbh6>t8SlM)+j)X}lyQwa!!0FSS%&5vAQjH+B$L zuEBAz6;i9(Vy`A=eVo(a23i!9xKM)An1T`5M{F{f5g3z`tv`d*J8Oj@yR8Z(F`GU~ zmx$}1pIl5Qa{MJriNZ6}y*KaPef;K^H}7%!{c?Bn?lIEDbSB773MB+Z&O}fQJf|{h$K-hw*vNo8A4FZ1Z1YKl!5T3Cggr3{vKYf-cGb_^sjdA(0547lbT^ zD;3B_Qc!Dra-{3$JA{bYg|68+yB-$-ddEn?Ak5Pwdd_-(O5FIiCua z_ycJ?iVya7`e-UDXwu}zS0+tf=<-X(=7b}&e4Mzs3-1gbjELQ>XHVZ^{^u6go9!`! zB1$3`eDd%IOLgNRya)%uQ=L!`?F8<8kz1k7nHjTQ+nmBjSE<2_KUR;pu9s8<=|E>1 zA`3dN=0Vw*2EMe>5L- zb~Cn`yKs1RLG`J~8`m_%FGKtc&fBX0P)>sk)D7Cg+;7yvmpirss4Ioa$UMYZ<6z(s zD_UK_)H_cp`NNuzqcsDpcoFlgoQmYmsgs6E4zU5a3qL?`O^(hE94(IyEul{Y4j;T8 zL-PX|Y#p2kVz`AqzyWCzaMA$RUwEaF$j8E2ND%eqdz7)4m08zoIUp2mjYX%pd6T&v zy0{{r2D@yVya$=nolyiXP{FGLtfdna@ET@dI3 z&Vj+L;r`Ex=|$Z{I9@T^0VekZTO6^>47B0LZMuLqQsZm~9)}k#jg$oVa*l61A1%XZ zRlL>{jU0*-9F(pg@G?VAIV7K;lnQAY^2$^`UGUo-0c}oTcc+sWgpp$ut6#HntwaaZ z@v6+L1*OGcnozq3nFPC!ZQN1AkkIq*I90(#K#*eIl(lr|t*drAas$EZVSIta(xpWq zZK41cTf;bA=Dr@CO_87}So|H=%^ihqx~N(s6pz&0QI2BZXOc7XX<6!e5<3@#{kf%m zkN9CIU4xzN>0>}D%%Bi-gLJ=?ju_l>P{~WWq7m^a5oqMbtCIW7AWc={aF|{+j|J1K zgpf;R4F=*$6DEocbG_}N^%&X^suTaBX&|RrW;di;oVlcFf=NT9F~CkglZmySq8g_0 z^6M)9RQMi8S11a%cg;2sA|SntWH_$_)Tq{N!{+^(z?qaUZ{9mO^zzM!(s`=L!tBQjU(N zJb;m@J|CM+P~bR`@p#hARAGarB1b?yUf*ku4o-2!{nqhLmN=+h){Y)}AZHU>Y<+p$ zKh?n(4b73Z14)9pQozrR3@Bwosk)?iP?lH7xqGIDfFOk!as39RXS_IWIsUA4%CHPl zP3xJIy~QNT(7-a-Ox{J3iP@4qR}MxxYI88I?LG|xd$18ME4(5OP&2|K3`gcATuOr$ z8~VGL;+`YX(l=}9Wd6wW_QN1vili;lJHb5~SMBO-bb1HlfBoCFi$ zu32A+PMq7T#n}dagj)o2pGOHm27UtQ>Ob18m$nVZevMVvMW@a0Jw`Q$dL?3G8Wta0$h_kVIvIEO?P! z&adFfNbfnlI(pVKUqEyQUo+Z5-hg-gZ`~yy7q1k7`0SF&;IwCmKGanUkQ=8L{a)2d zTlLhWRH&r$#)bGo{_*OdoYx{GQ53~A`X=r*8HNPYFo;D&2v0Ro5t$n1%OkfoCQ_bE zD2Tao*RR60ZFiCz5kg5<4awmclnoq&rp4Id?yZ|(dMD>Q`(11LbF)cSs-QeO9lEM5$-$3u z6)Dn_zkwtvj}*I#Mv3sEeiP&=zCMXrz``SlS$u1;mYrQRcJxO|#_8xeblD?Tbk@$6 z>>;lV*i^x4bH(@!E@I847fz7okW}~s%0CIWG~6Kb`ApZqO-9ef*FR~EiM>n-K6$0qGIsAmR zNFtRYQ4J3*Xsgn;CkAAacoY!@F(vt$P>Qr^jyE(E`&c(=mVWV?Ta(v4L3qhtyS$#Fn0U$|RwSi>D|oCX=n>W9b!K00 zivEJ#Q8A8^zBo^$>-r{Mummuaq?fCZ0DSs7z>WZ#*sf95fJa3ZpeaLyk@XS$uV?y$ z5;d3^(97{%F2MWd{^su1s_?=`(;1#dp8y*s*;;f4iUlZt@fr;KOUoPrRz0axq3o0Q zLeCb{TUuTx5L}pZ4>HH*=Qgy+b6iwdXBaZ#FWyNd04b5xiL(sQrvE5YLIVR^K^&eV zh@xR}ZmxHpsDS7j#VQps&2Yyk&)^QQZqrwr39eFeXPO4N54$|u656^k#4yQ)Fwtz@ zVyZElRF52SwM?j}E#o!US=)swo-Oks!`tTXTK;?)R|FE>pI6V<(d>H8!X z@z@==qnc}&y5mfR05O2ar&tqbII$MRJT-&rD^Q+P=rM&@Wzr{gwd>BTdn1vP6qGG| zOsxc;*<6N!5hJ5q&LN*pM-#l$hfLQUPA#Ekh(^K>o8Hwc&2ENh(pRr^EW%_%eBTlG zCX-GRZgbn;m$Q5T`<@YpMg5(mubT)bSpf>h@9H3?t68h)xfcc zc+VHu)ufA>7B@9&F97q&Z4^cvLo!52s&BM(w-5mH9U9-HdyWh0WkgO6KOUi8M}`HY zj7;|)k1np}@V{Hl7vwQdRtseC%)T=g1gK$|g|0I-L4dU6m2D{egB(+wMd|FKoBd71 zufi@nT0*pOJ|}o1yOeM8q)w&6TMq+5inntzm6~aG@n~fW(9A|dQ1RxBn>afoserWB zPpDNyOz?Wxp3lLEK*-^KcNWw|LIY^H+MkLzoo$AulJWS{VQ8MfYj}Y}+|k>k-h_w% zQjY5wE*40r3w_M}W79LEs;zympHWV&2RwhFDTHFIdlxn!==+k6cTK?^WiGTmNOqv# zq-u9_xyw&)x5n8gtzDvC&F8c1LP(cea}Om~-zfo|_}Q*E?_Num)c zDAb5VYO053$9TQ&kp2YI3yGRC-ZN#(#bQj|B9YFtZ`t9^?&`ZGHd^_OLv4=kdO-4@o(z{td;jYLB_qgll_T1HNIB94$TeKdLP;oIEGMs#(UrOe4%aNp;O zZpZ3kljXe1ZY-cj;hfp)r2su}XBJIO0%`1~Q&vW9SgRII8rA~qCT&ymD#Kw224q+ccXt#+YCD`7z1j&*6 zt4o8W$kZ(h%D1m0GoQ(MIc<|uYd_#1f3l1nC`UK-M z5Fdj%LJdbTb@jEi(Kb673k^GlR%Xy-ruhd`hfR>7Ncrg1OD_)_#1Q&jn5*ihzJv%R ztr5f+cmU}LDB9|iS*1>gtR`4*_AM`7D(O2MwQ88USBIv1VhoT6uh{k}!riuRrO)6t zW#sPhiT0=c)YuEX9iE56;~j>I?mqSz(CZC^fHEPjUluHVP4_C!wgD>ELW*r@zI-jB znXoE~XqevyL|__+;t-fjjAh%C1p;-D5nKx)h>>=Pkwm1}#fi>K1~bs3k`uj}Y#?qR zx1XH{$%n_?XM!(FO^rm1najWfvh99Mxx%Ui&P(nrNTG1ADp*4^9N8+6tm6IM?TfE&VEzT|( zB&d^j2Tan$*?Kxzp%S6#TGP(ga_7}9a;+LS)6J$M?E+JK5Jl$KbAX4mJaE~d75H^>E{ramb#r?OrVq12Y4rjO6!T*_VN7j}Kw~s-!Ac|D)R!HY=X0T8 zE5uayHtfu_kzl^nY)~yhy?NQ)Rm6PJHw8zGTnreG&7BHAKPKq+KT#hLM$_b(T=&r1 zGj&xFrZD<~qJs;3{D>L3!L8Nw5|Q<`j_Gg&#kMW|ig<`XYi0`K0a5A&pyF{O^BVIH zr?`8ep@fz;|3 z;BujHEX7mR2#qrpRUAM(Ujc`?7O5o+E~w)9`Z+}HY;9$`#B%aX1CKB;yYs-{9E8%x zz%{QP1pOnlVxCy4sr)PG?2aCo9<0K!I@XH2TCiAP4c1dGz?(0o9xno9?hXMwz0TmnwRlU#=NS%km?hctmMOFK2gRmob$2%`i< zSIv2WGQ1>O=W4@#R zhZLtpJd_?I9uaA=I`mTLdxRUIm#Q)U!LDg>k(&>Cu<>9j#xJ!*P3)Y~I+*qmKE62U zpk8;+4^Vjm>B3cgd`%)i5TY=OYnTYYs z%_em@&}*C0yDWbN5EUxk-(^YVEoMm-mEge!Lz5MX;o$*!9Iv1$4=DOLp}H@ZB-Hd9a=$BI~ab9aaPBE8+e#rbr$iZhuS>cYT~txL@W zzcGTUN0%9eYg2o3KF_6F5Dqh_7HB7P$NO3CUO;;t6WUE?xaU_9}%8u zU!*CDzBe^u4WOQ87R((s!~`&Zez58fxqyke~;xn2)IV^hxNk~d{#uLOAVxB2ZS90fN&OH$_APK`6#oZavVz$qTQTe+HzX+4K?BNwdp~vC<-)T|9@k7xFa%S-z{2 zpAMWT43etFBh%bg7A@gWB|^LU5h|=g{V35(Z2jbH-&EL!jGNpp(9y-P2px~6dhm;) z8rEU1hK27gYGXAxm{w6Nur!*PU~!NVF_0RY=ltTbVqO}cZfvdnG+M|k(a_CWj>k>O zu0&%O?MTi*Jqk19QT7zA?Tkn6F6zEMSygYiE5K_1tW6Q%Ny>XMAXGecxY7&2I*7kXAmzV zhboLGQBGJA(dfe16zc`f?A=}Oe?T-5B@oJ!-u=%XK3@O$A3Z8k5i*wJ2$9^*JUyv( zW~Mug8J?v7;ddZ_n^wNByyx-)VQ7;*dl{bb|MmX))6M&9g%xTpOcfR>CZeUO;aP~O zq$9F@2(lV9FHy-vu@0krF6Bp~Z4WvdJx{DU--@S_ZQrWWoC)e~qld|zq|{<$vXnMH zM`k?(m@3!Z{*vQHX0#Kn$04wb^g|}3mc{5-_Wr1Kq7SG<#oM^kfU>HN4=_o!Siy%| z237$@F2*y@0;S@)(J~A*k8}4cFt>v6c@rT^% zxRXXYn2Qpm&LW->$%-$ci?u9t$%oG`YMp&Aai4%2L@Hv`aKs61e$Ku^GC$gxZcgw^ zq-4DOz<(!q|GYIvPmm&{>_>RTWX^O=1M#H%W(AZZr5;LsuOSC$C>_@g>)c0gwtBTW z^~4omOxY4#tIuS9IQI@c+>xxZ5&H&Ivk^f$?!94#UK)->I+(C{e(o+Omc4lBG?mkc z2LickiKucS-<4GMsNqIF89&$ZM;((Zzqs$0-d zX=bS+9S3y5>n53~Vba!5Z*Fg|-_zTR?DW{0r2toTb5V}ZTtH`vv|KRVYd#gwa$HVQ*G9VYZ)4Mq#I`E>K+?e)8! zf^3kK5k3YKMT1v0M}jQUUp z!eJ+ya!N8$Kr>l!<|r9)+)G+qnmB9uWqTfi%Mb6~++T|bE9k?mYnMwfEmK<;%LO-Z zTke3u7=`xvB9(uCz}bYMna(nb3L4ET+#7Ut&97XK3%Xlq8X+Z9)mUob+R*CrDfz}> znk~sV86>kn&VUVJgj2mird ze3;^O;Bs!X5 zl=fi{lAEX7;b{-zWs9o@!R5mEiCcKmRA4=;Fk3FSr^{JV|M^{QxNgf6DmBsnqb-YP z{mu;=cl_pdH5Y=WT(30^kUor8vW;%~N&+Ts}saTL*d$R^4M))}&qs3pGzCowHabXMh|?*)e}nz#S$)9;=heK+h651t(j zhW*2**MEVbdNv$<5mEG1K<)C136K_U=GigbQ$%UEwZtB;=$?qt(o|`#ea3`%Gjm87t6dWJU#*S z#aV4MdV7EK3r?BEFV`O@A8&rSZn2*U5?nYbcvG$5Q*5A&z|zzsovLp4=Od^l#(z{+b!xckH+6Ptpa?nM!}63WabyR7se6pQq`Bk3vRp85wX%|0 z+6#>r+tzJ{15g7parH>Gb^+1|3xYy_)!;68!uUBnz#%=jSTL_lF*Q`>NT)HH!Lo_e z-mYf!0yvyG^D%0&`NiqX?`wjc2la@Z@S}*PFj~(Yz{1(daN?mgtm10T%?7Lk$FK5& z@YdUhaq4{g{jc}eZ&^D?2l?PBGtzMLDEkcfsf>gC)%{Dk6A0YUft4?wnlN{NtT%X~P_o|q~`QSdf;T6Q?2rg}3c zTojh1lO(FFq)G%Ita%$0M*N2mykTc4s98 z2kM5bAX*_MZ0nX5ST}JN@Fp1*e!RJV^L}>o9;G2X##Dsaz^03s+!UQ2Z8wqWzxT+( zwh+&CZyB~dOB&o=6oI#g>95_}+)vGzg8Snl1Dnp)0cry%oi z)e=0A8HYZSdpTyak?vk4UwC61igxNV^C--2Aut2e%u)$pXudHEwC*~z=~1BP2-I^0>x?X=3Hvb~tTJewbHkzI*tqI!Qi__qJ; z{-4N~h%ie1Hn1#~4Yq@HGlBIM?q(8gxQ-B=ivA@;T}jBv`G}wwtdFic^TVYgaTu+Z zzOp<5x}7%=Op)S`xc-?Tm$iC_=cpL+!U~&$(%poQyiKCzc<1))?w`xMe_nqy8nL&$ z{&@4@r*Gc={7wcP{Ovvd>t9W4{`mijruayCvnf71A3-M$5~!lLn?Ad{8_OaG8&scJ z%UYw85)FLzO9Ifm@jB4J$s%N&68#y7iq<70hDkC z_>85NhYA(@!c3i(+Ikkj7>?=DN@NO; zxwaB~L{b>Ji!k1&Mom19*K_dzq)LTGTBD^g>s}b=F|lM2qe-8x_&x9-D(s4=$W?|d z#)b-*hN{_R`hkwTI2*s7zbSNW2Tlg4g|W9wo?lhL1R!G##b+;za&4e78pmt8kw831 z4#1utxjEH71ghsq{)1Cno|$;ZqC(`d6(PFKSztWp4zce|q#63k`~ zGzv7Le?%UcIf2rlXW3GYK(=@p<)#tH4%0dn0rG!|WZlIj(|zQ;SC%!3A&*H%fL!*G z6-)2eyFtT9rwS6L%TB`li*!c#oMo3$s^`b$0B;T(|;lo&wZ+%7q)y*y2^7iFoH4#^n1*6^aOQlNy z;R;rDy&9eGHkx#mALJbki%Fmub^L=)qgUjb@bC++AzeOX8k&X6Uuug8=paV|x4qHo zr2h^6L5+aD|H<~+=FrZKl|VG{!btOAN&cV z|4)DY_$MZc!>v3C{xnBRkN&3jCxhrIJv|4VV9<3`*uclg2x)?9&K>D3RP1JLV|{#s5HO45zrVs4F=iFF#&?di&=6^~b9> z??0Orf|hsyFs;!0PgiD~HinW8OVhQouo;{Xkhx^uxT`^w`ktyU^qPfQvw)`AUCrT4w1O1?SHNv2f-Fw9 zyAq1=l7JOo3(LjwTpTlbH2l^cAwO`GID@vnstwm8#Re83G*Kr(o>aDu{8%I3bhL$q zd4k}>#f9Z_?E(n%Xsbt#d6Z@4B&L?e+I*=KXbSM)d@2V;X84V&FTEzP@Ln`*H=hcd zE|+JtgvOM(#?~7e3DMZ>+xWz*!QoLl$zZ>L#n&#D-d3lVWjKeGL$cULTBl3jE06Rj znDHhwVa8_OXPyL`t7vF|&}Cvjpk%ptORzw+FgGuX6<|N8c!Ln~!Wd z*kh8T6<#sfSV(O&Gy)LcQ`D5TRLjp?Ffy?d;W#H^p-YtuFKQlGDr>OfGdKmEDaZ-e zB-rNWP987uwyvF@fYlAKTfxk;;|2$&X`Z!g&*B3m3X|8SBSe|ArVZ7jfQA&S#MG~* zu(ItT`8fYdAW6U7#jI7Z#J#O{_j6e$_%)~SouO<&@I{$T-w$Kn0duw-w#`Txl&8ea zjwLt9O@UY$sD@YaKN}@al*UEj2MMhZMq!cl%GEHv^z*G*y>LjdmgDINA*$=w7Z7?u zz(&||Bh(*TzeGmxL9cJS+N5X8{qMO_;R^@e1K0uvbcbZ$-NE?wr1R(>eXb~nXOwd~ zBK}32OH$v-nenEUp4JXJZ2G~z9s&C?u$f+fmX*C|Yo4%=swyMH!QK}kOjS{2IA9Ht zFIGTAtTFYUO4XBWMqMS?-7?sb0w)e9p3M|oY^$AYU<5qb*ij_H3mx?w?nI*v4&(U* zB}H*afyS0q!yH!eJdxTtW1RB(70;g$&xp)^hM!Sr^Km zZm&_7Z#=_8DW|!^kUO+$J|m#k)af#<(<2daOo;TUk-1X5H+pL5+wB(Uuzi31=F>e4 z729{$KitrZ1sXSCI^Uq8UIU&g2l_62(*SPu!3nslduefm9~4U=bo(DPK`yu}jDz4<{qsz#3~T z(&t80@1Vynk%E|2xZJOo%`Mx$n^=SX<>k5;$Cz5$_0B<34lS}tI4Ti0c`N^t@k%b} zn*E^v#*hgY*K>2Rmq z;tEbqbgh_h)=rr%IASq3h-!1SM3ykzj@~J#B$$09oDC<_D?DQK>DSxw`+v-D8>>jm zTeF956)}+a!=U*Y6-b?pbpq)PC1@QdjVY}p>B{2Tw8~dy>uokYzi%fEOE3*2i|9o8 z2_)8{`dxml9nNMXY#!kgxAS5JW|rOEnPG1TSB*TFo#@~pBNBkN5;822@jNl>ZcQ-l zc?CGHf$9I;9mN}Yzqq!kv8qD&0O?V&-9YF1Y45S2M`=Y%vqd^UT{qLwL5~H0C)$FH zT~UOvs9p$H=eU|&>PODgwE)Mv0OMVN$u7VQ7GC;#HLKBM$e;>wgc#;P^PNPSdl7RYtaYs-sBdfXS&1Wg%G$p|}QN~9ifYbHm8C`!97v^d{XkJ3AM0E&L z2Ar-D$kx^OYxAH_kO=+hcfUIkx^A-_XN*B*qcq7t2CE%u#HGT&uGc%DnlyxT{)un&02|wNRVBp;sdRJUehWzjULIc)(boX;m=o6w)*K?u-=+`|5O1~Y?iISmT z_nhI*=K%6Mz6+tfJH`XZ?|9DP&gUFr%UkKd=h|Z?7#5q0SW<$-;LvrBy27@diK zBYgxT1F3*UGQH##2AN9}UzF;Ch67xzm#9Pu9Ihi|!tpunjv81+r3wULy3`6*7`8nX zuALMV0W|?8`c`tViNW0avn5Y+q|0Pf6i=8T-I(B=JPtcHLrC`f{rYF}gLU?q;s5Va5EDBPF@2B02KRxp^r$vgWW0WM;+0h3XV)(3ca4o4w|R zw5OO45P4-!46k|87InMXMB*B7R%!9YtD z7TP%agCm<_0*^_i`TS_;h1k;AwTCsE-`LX)sC}XtX_{iPzCJ){{btFi=wZvbon}%R z*YUEMOwg!eq27^p1D~@vK7*Js6V|GVy|wi`3X^=^1?utHBqot?X5yWPYI{RBQI|cJ z;q_!bdn(m-ZmNeqF3h=sxET{?0n&GCobZr=Rtd5GV;g5~>w#ofr_0T&?PRlnEwM;W zOad*xPQ7!8Z-Mi&R&VAFJ)l4;M#VJ6%obQ9tGT@-r*!gyuIV$rV7h~I4l%VAN#`B|@ ze5??zEI}6(WI};xY1tW5JMc-aqL){HJjz*bagA8#u1>Hty-=F=olyfDXc$htBbBMR zAVLp^g#k`+{W;yjE)GUfDs5Xe&OzP97lHUAT_H|`Ui>i1W7R4w#0B~VZVep_CA6Wx zCl*=)GSlC;CC42-Fv;#Zx9uG~GTO67ITISF{McMB5XJ}-C4-*j;*ZZAuhA(SWs^?A z)l-F>Y!stPI14udRtJZ5Z2~g<=KlWU&G(=0ufgiII%IYb;oco$yKZQ8JF~!#I0&C4T7!q^s$WqTt3CXu6 zAX;SG7>f9V=X}(^Hh)F1dFR8yZ20AiUMG?jDqZ7fI&}*H((^HJ1Z65yg69(1^S`o$ zq~DMy8vS$=BvQ#$ztyjgrLak{vS}yR_v5>tKfL*P?Q`XqVY4%%Qv@R@C{Pj*h6|b? zsse7?GI&_Hq_f|kdFN{s&!~B)Dlm$B1be06oJ@#l=E8H;Rr9jwijF{>t?(_GA=b}b zzSI(2G{W6&jfd2BE{?zqv?ZqS0Dl{Bu<$Ieg2yCRWRSWW%FTB&BSeD+wCQT!^(pI(9#VaNn5AjpDOOv0Ml3cURM~c3%Zfspa!WoXCG(_F$Gn|YUHXwc>?XI?=}J@ zn7Z?*X*l!}cWFQM967R)F-9192Q3^JXGaHTKypGiIOJHQ zf%709c2IV(rFK=PBdBJZcnCG2=YH?+f8VRGpl3IXf0`7Sulx67e)*BK$9c>_~~`L?dWP;BGfPM+Bs{ zl8>PauIHD>yW8Z6jK&6N+t&FBeSgvkEwjFL7dgm+5thq9wRCznN4+(HV3dl?c}fg7ONzb-Ro7>5 z7Zcg{v|*MxFGW{J?%#9)nexoUhak*kq->c{FyCPPnjIt*kn~J0iptcQG8g?jU04!K z6Vi-vx`If+vWhD^auEiMq+t@Mh${$mLCRksA9IEtLshosq3mjEE@pU(xb`h+H=Tbi z*((qNiG|bi5elKtPfm~sk8#4_E}`n-kAIi%rUHgJVM z*jkUs;1JK8_{kFS0C6N-Qt^1@WR*nTxxxb3vO0N}BHr#XjWQl#k#ro_Q-rMGoFLX0 zoPK?lL?2sNx>ER2iS!iZF$!G5V}#J>ph_>FU(N-OhM>kH$QO&cW>-Y01PUEba36Ac z5KZb4)iB?4oM|2iaxp_;PNa{fpY{eAvwd+ny`1W}*a@{Q@~q~sdzt;l{4{`%%r^#R zmi1zqe2Ur7w>7D#V{7L6-GR@iEn2!ak*w+Y!2R`%WDSPR=r>jO!4$wJltLr8C}b*| z!9~53{Ir2m9)&v?w%-u$(_HcTQvM>^>1C`>%D7GitpbEl4Q#~R*{kV-^r~mAsW+Y2 zncf&`FnvUyyIIQ!erqKq$@&cOx~5ZLta4J?bevp5z;FkSiM1CDGCsOO-07?9y7Yx) zr10KzkFQPwnmwY>_8VT1n8T$*tHodrQ*)v&6O!`O}?l;jjy!cDp{sq;fYP zdP5%y^Z~yN;z14Wg9XF_u7{F}?EH_%r zbqlPC(N(C#aI7J%E%3ytvGYJJa9*NNyScF-HH&3R+x#3lA6vQdl6uZfNjASgoH$E< znd`{t&mJ4q>+ub1{k@afdFVsC*G!>LuZD=if_YwAp46BwG>mqBM&6_ zb=pWVzX&^Qj1}V+x1_Yf;9}T@-V_WyJlh>$fTD1fZ zUc!CAOSZlNvWZS1sS{-%$Hs)EO|*r<@qB$^^>G7qYMi()EG7%zWJgm!pW><>oL%qKsZOc67evRi({Nx0MqDx3 zZR)aF$a z;0QWA^gB2LJAR2MuzwU$n7$zesKYSBClS8rT#H%{eGK#p`vWulXKRF7`m|!-R$L9= zWkv_D3|?Y?3#iYItDZ78xZwT$GQJZ_<8a+mC~G>g%hWW1lH3SbaPS*$mMir{gm?g8 z-^h^(=-tU#5=_J3EYPC^Wn4rD{I_OE0*KC`$#k-*gJBvlJu4yF`1N=Uj^6X%yOWst zy7ZA9p%Pm-cM0S(!>use!5X(<@x?8TEpazj)j*1t=Bqn8XaG1v=36Ck16OZp9IVbw zk;s8b9bk%n`uXuAcQ(U5a9dycLXRUfUbx*&FVnVf78p9LY+XCL_+-7bTpm_$!-%b- z+XAafXFbDt_bm>_JDOT^L*>;W$<(0^4*pO}@I;Y;fajNIDFp>zfZ*+Bw15t~~@h?Lhg3p@xwR>80uL#y+JkA*KmvSZKT4B^+Z-vKU? zv5?{x0>v3t9&3&{%kj}A%-%){p+ZQOngm*eeNEK{JU4!m^x!57-#&~~bvwhi50$Ep zHZxV~aa0#S*kYBhs(TcNP>swbGJS}VJw zi*66+wTGlQb8l<)APT`qu*MCUHS@$3rXGy3AQc za$q40Xio=7H|t9H$aQwlK;0npqVA1Ih{ZwrIQ|-+9*9ek)~&u?@t}ieo5dg%74mp6 zl(yQOBD!w5LG&HO80y+dt~ZlvBon+eL9 zQz~ap`@Ke6+mVhQa5p07$X^z+SP%u7S-8k$^nC*(5-4MY^ZQ_IiBx-X6fX4-hwIp_ zp}|+klqn|w%uni@vb#HFO2E{e3?an(A(lpeP!?0~CVw_PzC7`;X(l8T8`~HGKQhDg zL^=kapW{#pFLZhc8HIBVXD7xdSn(Cc3B@t!EvWP8k0g_EVcX*9Gg8iSBD`=+uKHqeibuSf%Mc5%j?^BH@82IzyIO(E25W<7j(#; zUL8IAJ;6)qE}IN9%k1W}_XGa0vs5#% zxTclU43w@JjeRjoFg@Ci{{f(VHrrd37AOZs%ZFS6?MPvyVz+NU$_znIR*i z=h?UlPf)v>Su)F+8b@r}JI0fxgsPlyo?B0MZrKVXWjaU>Gz#I$Mdp<|7P)W+o+-!O z2taKE5lU#9XfH<2YM3$1WVz)e6mZ>REVAAOhr8|H&w9mgtDSD+gSR&ZNbhean$!&H zyl9FG;UdOW%p5pFMeHy)7Fd4MQD^A!UR^DS%Cjn&tL|LCq^D>eu^438G@&WA6MdrL zcK{5_+#x4&{H3PwP?#&XwfU8tor(!0$B2n{{aR!j=n1W&rH9lTu}ejSm0q4uAu4I* zz?RcR1_PwUbocn~#Byd{Fkjiw`xzZBs$5gs2#;KDGfW{A^)fORwqIP?hwwJYT7Dd(8{_ z5=q3#`Dw7<4j|bFmaHctrV+cP=I>cGb$Q%cL_u|GfZ%9;#G)Y z@pt)ThE1(9$TQ)!)I*e!Pktue-)LEng#Ndn`ys@;_w*slNYeT*EN+?IY zsnxLsqkA$muIIiiVglr;7ZQ-pq|nCX?O^gx36#ya=7CiIx4x7RgU)_`f3dilA#WL{ zp=hhmcKgrkH~+u}ETRDR_IM36J#X{#@Ggur)!If-A+3awsikL%N5JwT#_3S9A!SrH z1dYts%gB74RYEkv_oY)?y^;|=8isprR`;RsHcl=S!HYA50B>Hq%~m6lSqVz7i;L-5 z0}dj@EQ3#kk+I;$IT zkG*zK2d0Ug`~WX>Ezn<=Y_QJv8Z2xS1&%7M%{|%x>IRTwDF$E8Ct&Hfy=Okrww0@Z zkF4*+NYvmcTFTD-{m+3n%zKD<{-$f4Ayoou96H$Cr8?}{r7d6YOGnETl>=H=47U`H zVHhU0+n#YX@)3%k7K>q>UU~pV2kaDV%_Fff<_bp=Km05%FU>zGS7JWMI}e((?yQKz z)LnNsxic5?TbK1&K`$X4gMfix)?}##)@zDgn5dq!-4!T*g2xhcM!h7Mx*LJAD(+6S z%;BCTAN(|LK;5apbx^*@(Tc_6eunFFa#AP~lfcKTN=AaNk!_)QeSn4IyypT~1<9a3 zpOFVg2u4mn^?ogtVSe}yMoaLRHCl&;iLR+7xYjlD9-DsHggtT;eAnn~bq)gn>N%I2 zxrU_GKrvWXaQR|C4Np&fT7v2ZJ|nU`H=iBX)iEeKoC7!O@BmLP;}vgI$i!Th4AX;v za}cjUutpP>ng0890X=%M`nRs<2{zXT*Qa3zEyAutlGLri4i|ac4M&}8s?Pzte^@f^X&V83>C}p068#A}`4^04^Lm$!f zawoqc=kqC2Fo<1AEq%7wHfXLe#mdljwKTVk>XLd&`RrC=BqF0(PjQdb=cgYSY)ZLT zkng6OX_J`CIm>FFaKLaHL_p7Ib++KFx&kHAe^;76C@i`7I}@&kg1PEYBwcklvB%9M z(AIXRs_X6`KSH=vL0(-QcQIbVod5eClpifawmNcB5s}hh_bGZj z+o!}u(&O^Z-~#R}lu09yB_)z{#*GpL_X6D=>u@Q)uGqjkI@#6&DSdf~GYJ30Z5)nE z03}rYw{Wo;KSw?4%L}@FeZIZ9yX`gD=?`z-{^R=HH$9K7-9tDhkkouTiTjj5`4{T6 z!r5$}-xFs$L?sXdxKC>0xj)kt&7~-eg{FoRS+p|T?0MaKiv-hG8J&P~b~={7Rim9B z8FpbKanTYS+8-)qS@v4_zW4O6STX+vPRx5)LhuNO-2v`Dmbdl}Xyi=V0Ukbhb0j$0 zar5DWHy=3@x#Q-iSZq6X3tBDb&&12s7Z+>ybMf4R&K>B004oQI zXtsBH1(CJ$W?6rs>gMW)NK>&(fkiHGT2p8vgqENL|Hk6;1k)+%Y6fS{{gM`&hYaE; zzzD)otg=EPXe|U_p5T{Qc*iL`RiA_0!yrwZTv9%gF#cy`tn8o{1q*?(UIA%Vu$>COLtl<-e}Ax&T7qgYqw6&0uWKwW|pRQB{bJ8RToLgW-ai&%vy=jN7N~WsbLqLr|=w*z3B@N`Iz#F0T zN?rr7T)eyM{SVd(YKgF5^zMKD@bUV`|LD=BADZrz5(Z_IS6&d?Q(EzHh@;tE5Zn6g zxaq+XyDM<(3lMGopLC!5g3P^f)%s=j`(nqbC?6+PPDBkAmR9W{6&E)+WhNTwoZgsJ zgpBYs9D{1Y@o)NS$($cghWk&6`Y5O_lYpnjANC&+>#3BRz5o2_r`4C)%@23-JH|B} zEyY#wDX>%xkRKupO~IjiI;8GQohAVSCX_Kb7W9tJqNO3G0;p>tsmL$4=J1+O-J;oa zReG|+`7W(t>K?KZGdzW;%uOI^h3Rp&vkj!L+yv!0G$Og~1GpY{nmZFLjVT8K#_^q` z9C$52N4K2Axh_SKw47u*;RRnY9`}>iM$6A%Kn;a+ESy;*<5m8x-ALc7(VWB`Y^$6w zR?`<1nd|P6zA=%Qb9bFn?0(^(?H(ksaFh-uX5oOscH$Z8Od@JcK_|R&U8d=9U($MS zZ>NnEdqM(;=WpuP)Jd7-XyBP4ItAJU(3eH%9=q}Owo_pjlu`=^B2dCC8?I{-O%c>}`iS0KGr=U|4z_Ab(0udi3WWb{lzTL>sXN2dg=$E>u>rmzS|o zX6G2s?tRh)#$EYnhcDLxF^V{Vaa?fvapGH1YKoJ+|3x9DhUmze5*VVSw95TMS~#dG zoV>Ixv`}KBrLV#%=WMubM<-~MBUOEb3Qx=Jwdrv~oNb1KSMX(A&uPs> zD${QVgZ+bpqy2;L28a8oD&N0;(mzu1%Jr|GHaBnoK@&2ncwQ{vM^zK}4tT=KnW;*{ z#UWZcJ9w5r<9>uwy-OC!U_H%wPf%hY5yXr#b z^_dgDHM!|<<5p;UD?osMOkQc$Cps0C@?PyFBkJ!X=e%k@bl z$tf1ZB&)7YX_4hFI(-F)SP>g~;IgGpGBWBqE%^ewCoV2+kd@~Qvb}TY)@gSMaNMYD z6kx^cuAsmE0`mlkj@x~dvis*xNT%4zr_$yk!wBQSNH*^B+y&;@Y1}hd$I;y1Pux{d zi;8au@|S>V3f;5Nk;c61EDe#4ZD$!gvqiKrPPqbQ;5D05Gxu-=H>3+}C)EhO#RKOf zx8AgMfI7Aty=ht!h1+4YA+nY1G4duD{)s%5k(4d|tq7zvn0PlDiCIl=10!-qWNr>v z8CEc1txycH^vy=;8Om0+a6GC(5g=s!Ka&ypxZf=!rkfs=5lNj)A!d$Yg=lS)4B1Lf zW13`{5lkp(%_Xp}gvc~AUe0Nl@jskPNERfQB&FF|6v0YH2P%->$SXMvkO)_dumRK! zMNma5hRo0myEV9$928o2(j$uV(9#!k;Cm|Ys_jCrK*a5Ns$%&F_6Ne(&E#|+5tOK1 zWm~OiYp-MsnatLx4Fx3(vBc%CGRctO@Byhi$j-nVq^Nv^grh_?w9r8MQ6E4Q&oawL zcC6DDGEUr##jEU1OxqUlR}1cHOV6egEsY-0BjzVJ*j`OAp^J<81{N|ft&CL#Xgp~G zd>2DE1_xh{vv*aVyX9C4y&O!ABoE-&_a?xk+%J2i?Ywq#1-s=o~z`@1i;Cr;;^4q1iS%i4g&5tHU9e! z)#SQC0#fhCf$jp!gD6V8@iK$MU0>Jfs77)_WZJj%+H{yNDg2R zIF4j^{!(+z@Po!1_F^y>JVX(z1WyKky{i?-cx0F!79I!CQBT+51PC0r>!k4TSsl;Z zr8KqmszQsCya?-w@9Lq~+Hse%hZ*LT`P%n=Vh0@`=`8B5>hs-yu{N(DXhiKg&uQhnt5AX&g4{XqeY;;V|TTTc>ZJdz@ay zq0JSol|oGfDmgqEqf7~01aU#jD__p~l5jxtIPb&X)$)sMUqMr`I6t0WSk_OmoL~_! z(Q8ec$m`!<_>NN~Msb`{nsnx@kUY%^hK2TEiRMwO9OBLZ&nGzGP(XHig~F~e5!s@2 zd~!ZUm7S`SrUYx~VlTbdDDc);(}wFdL#EXW9BaqVS1)`#v0qHUY^vR~Q~}ECAzkfe zsMhiq&Yy!X`K97bJ)w=rI5P-ncN6245e-irD>MopsFnWPUxJ>w7`vh z6&`rzOuuV))xGoxV!!PFMQ#}R-srP{|48wf<;5^gn*IDZ*M-q_sB*JgTL{E4|LQ}$dyKVIG+8D zjB$2JuguHN)tZzDpH<~vvN37Oi~7oS#YP^d?Y(arkAd%eFWIgwyIZT@1%BjbRx?iW zsf;8sMZQcA_st7tDJi=>yc0~_gAsz~%<)PRly6FBliP6Jrd<%V_zE2*H-Nb+K#V9G zT9>QE*@o3ySECF3d*I1q8&^T4z!eRwR?!X{T6YKBIa`rq%}Qiw36@X#hbvP-`kE!S z)MvHec8p?IhMcZUUT(}uAUh{KCi|IflW6J7eSh&yV-(}!U!asvwc~$xA5FJxL zNg5hJ-2nT=`I?FVnC_A16*R&N0DGiZXH0p5=@Hd%`WkYR)%0x1?jap5eXuz-TlhD! z5k&Ym(+?ZZ2Wje@Bd^g-J0w6FhDeU%tj}z;^djCt?cM2SSZDMp0eTYAF|v~*@!eHK zsL}Sb821tIWFt$)F&?>Ab$tI>5j2~Fr~ORk!72%61L;a`wIIsKS9x`&$e?IwxI9tl zLpec|B(+j*zAY|mti`s2)&!S4yip|t%{ydz@(sL1=%WZH93+%w`7U0l9Qe=I&t2J0 zPt*d@u_k(|GRssL6#O*hdJ4(1vm;CpQjxEfZ<_{CnPz?vB3RM`SXKlVfoWprw}e?YEIecxd2XA#{}x6!Z*i^%2ZoVImphxE za5wA^KFe!PhzcSL%RFM`V&E@m}A&>y8 zkMtas0=WVSA4q8+-1j}szJp{GP~Aapc5*p7iv(M)7%xS<=>=NV^8OXRs0jKy>o=BCAmx4C-Of?aOjBa2(S#wNRS0u_S z?H$TMflY~Aqo#rOoK-u*-s(=U@yfTX9RkQ)pE6asI|RxE)Y2H;N;@3briu)-K|f3j%ASwrOmoRY0nemq zhS+b8e{kS{MIOw?(hL+=&w2?6XDlWe4S;QY_e^uwAJ=xc>rXJ3iA(Y`K=_q``Y=&Z zvrzVv5nCE=sa={5j61Tm6fTb5Lk}mKgA~Z$RbCF!;C8TG=Zg@bc&V9txCX)9$)hDW zr^vhn)|xK=o$qzNs;95?hM=~dnqs9J03SfJ(3t7R=NFfYOM9S6eQlstjxId|RdX$! z&RNZm2Q>UHQH9|9U+=Hq-hIBk=UYjp!!vJ3FHKt0{G8HE&Z!5>-SZuVj0Ou(P-BG8;Fay&KS>2ulgKl-ZTYKav zYXLoEg?Jn;&n}r=8%jf-K&`8W?;@%xYW>rNei%=Es*A-J~oKP1yJ8% z)1i=cCFFN+qI^NK4la9y{KkcjsyGjupdtZ=Zn$zse>$Cz-xa?{u3bvd)Y6Nz(_DTl z7)m?Zit?AnP!u*XW7{~1@&`Z|U@NA)0o3Pn9&>^>ctSaEo-;3bu?BYR;@UD8OoL>H z9hrlO|0T%n8uVKP>88= zj;X?vtdX1QQCMNG&S9b|V}^AhJtrIer787q=NmFa-=Sf-yENhzDjvCpse1^;tls59 zm7?11>-;%kcZsG(RraVmnB_)iq;irBp`K`f(K-7<*AdSHBioU98ruZqV?-_mT_&yWG!9brwLEafN!B zvUq&D80F(Nm0kp@$=B8}`y?k`EPyaDdxHFy)zoAMd7}brFl&8vy5FFBsD#Q!J;#ES zVL=-}+jeHRa%VtqXb8?WVb|vfIBB+G)w?=qB({ohseoJ8nbmR(Ef*C!Mv%fOHClRS zq2EWW6i!qaYb}Qg)nVDO|2I;?@kYxCr;|NJksaE(p4$nr!~B3foCZuLv>-AF7O1HZ z!Uu3Dlj|Z)4_{ihP$31FPdox^&lQ`HmJ85X;y&Dg7S z)U5kZ*RFv?KuaESp)BJ%!a)rL4nsE;jr#>-&Hh;A9v}ChS-UH8FWvNzW!os0@n+re zYtF_+0NZ-J_Eg^cU#2*C`TxtalKfMxULR-WS)jAaEYWgt1xBoEP6ZDXw~c%ov&#$B zn#n)>!KP^9YF|htSkw)xR41RPrY1M7yH=rl z+G2cn`@_wTqyR!SBgn3__J+PXbLo?l&2hir+S%Urjp7tq*d*vW4=!R{!Tn1?gj(LM z#fNr*ZLBWJb*e=ZOfQinCXI!K=_lm{rh_D$OMt1=N-Qp^W`W9O@$#aKGr}e)n^o8m zgO2ueH&ziv7#^$OUwx%DL0CTD5j$oG9c=W$oU*)3eT$eE78@c+olAmI2)V{bDUOF) z-6jQSf%PokpTh?=-~rVgplQT@$N*Dhe8D9U-tZ)a2Q(5&(YR_{ZqXKo*~rZ)!A*kh z*ROnF#=tJ2hFn1#D3aw3-K`z-tf1)y3SnhRh-9=7ACJN#l*7y%2q&b_Nc^UM0s31Y zp1#7oRl}DuT0Ty01e2|IoSWSp4Cn1x4f70&oynV_X#v+*5=;xEd2@q#73AT`V0DWz zf|YZGuDh-%?Q9pGYFHQMU?!j>lZczrC*WYHP)ARR3{`G>PEAc6cPexB!*VnlV7#-N z+nY~6DI8o%iR!XVm#5M8ji6Mre9tQRvZjqtD%VP|KBxRb4y91}RUmZ^F=n`(ug;de zx~UIwas<&rg1y@$^Hn_t?A4Nbon4x-4yX*f9$tj_bFPsJ^%awt_o9LDI$k zesVw!UFUbyb>_`r^*l1C*Y?9I*xXh(JcyalV4S5s3g*%Gceg(xP0^>DA8)VUp(OV` z^1O&_tmxUP>hHb1@Ja(UQErZ|GkI~$hyQ{e_38op<2^2O4Hyfs=9vEw-h@B7x z`s8->s_^79!e%i=m*$(od{|zo0l~c)Z$o{b)`+!Ammh_iLl7R z!a+#q5JDTq>$MBel=iYNsF&@<${We&JZDGh=%blW8r&j+mRl1$Q?wtSH%0&@FYRg3H4SE5Ox$L9 zY6nP9&jdd_zI{WM+z+zWm{StB{HS#5wkeJXJ^8XH*4#N$ZWx;hb7kWGOvI(X~laP%sCUA(rKQ=Se5S-w6977G--~V>_ZNE3zAN2R1!H;F{ z5Wz ze)7W)pKssZ!(;Zzr)&NFglq5K+`lQ?NNw=;A5T7idh_Eopl^SD`~L3dH}^MhpS->M z`NR9`FE{tU`bINGZ->i30%}qmEyy&&HL~9FHO#s8wFYr*|67LIn(ThSQTd-UOjH(0X8M zrX8GqcL!-7SQZ14WGQm`hf{~QTNZ_%0jkh*qtWAlvS{ybeIdjnh zx!S&lR?+Cc>n6yP+I6iUHxrHoR)51*u^d4tY{U&kSyARzIorXu5*O$YwS~4N=qChZ zmT9b%$qkrci>qMP=f{&^#maInl6V|fh$fr7r=~ciVwv zql0)7Ss)c_ghO5Vf!Vi*=INw-4bIZ(sKCBK@FeSy z|1qAfGj@@mbm%T+@p!3-2#DmJEr8N?y0M3r?xS&S`9@ox!mfBga+UlpiAVv#|5jc7m1 z{dmSh6tF@>b;b!8qKxXWcmnePx601&p#@M+wYkCsY}dOg_%cx+N;-twn>OKUzHg~U zdOWI9OVh8ztFWDMh$W8|AiZCm!;{P@urgV>gU8X1!$>>50*c~UYV}05oy{VS2gK$w z6Gym?yEX(temooJ7ql%y41cd+rF_&YVi?PEFa&1p%fO4lJHUAm%vi6M^2W}s`FU}l5hgcoV}wSGlAuOJp>w-PM_ z^>I92@qthiL!KC)dAUG&OXqn}ItlPVr=!*6D_EuIrWZKnwM;^+0eK0`Kg3C!tXr z=Z?B$2WA*<>I)=Xn0P2fbD{1qDncw+<7}LW-O?}YC!J?tAG0#UeDs*`ImE zQiOt;qx{~@=py(-W^ZwP|7tu2{G7YEk6&JTr9p^)_+9KEx!UnG#3qz5nlGqVp+;}Y zQWZ!@NqP!GJAjm_KTsXYDW1-lMIcSxMR%I<2mz8|H^NVtjJSJwJc~Ofvy+@Qm z^s(rqWt%`fICq1c&NFB8U3Pv}3D^_YuGmtHk)1n7l5V;ViWoLbjTM?&Q);_FzXrRQ~ zB2*)t525mJ!1F!eNKjYgm5PAs6UlP$a3#)O9`A}FF_0cpGUyO`DxRkSQ-51#N2M@= zMbi-*Rrm=fyNegcqK;1y9 zy1=qXFWGR1A~&Q-f>dZE6}R;E(q-e|4}0q4jXbkvV=PRv#(qQNhzN;Z*|5*lIV`CZ zV(vqhcmr$nM&890>EkS56!iQAT!F60L6m8-*n0A}<*Enfp@tcK=jkwqRb#Y4Ac;Mf z(`%RA;ZFEiMo9FCgyjW&ie60K2r0h3*rqt8fn_JeX^sV!@kYVpJXWSY(YF0y#MMm8 zFw0leLAb^yBHF_;3A8(CZaBlP`B`7u^TZ|37~F%8M9eg*ziviF(+08bujnAwY0geC zy@Cs`dhe(sDJ+PFrom|<{fBX;v)IUD{Mrm4Xm*z|ONWWCUVu z=_!`1gys@vU+p9!tY?@Eqa{$w!q2(*t(8ohbs1TUc;bVS^Ml+{Ia@7IW(+2u(AN}t zBJbIq=?crrH6QIv^x6T%q`-K(B#(u2-lrI@p7)PU`HIomQ)hABI6KfxG}eOq!pk@% zb(te9!!68UZ&Ci>SQS#e{{u|LFdj*F#oL3C7A=3OBAIou_W__4^~%CdwWXz zP*1IpKf&~N6Hhm={^9@b?%*wbHOD5}0Rnl6Jm;~g?LF?f*(on2Seo4;N^*tlR^t1d z>9d(+lAH~u7$%Mv+_KKE8y8ubjKw6lBR7{$Da$ccIMi{xp((OO}>}z4FiGqi;g?6)=o82(hetZ%a z+Mrgv1BFwVkj!tOj2?AUbQetA5L0|Q5(4aNm5aBE)Dr8&KYv}d6Limsd+Ks0{+M>T zlTb|Iv|?^&cL;F2sDWCF7#FA?h;~9GXGxk+-69k>T@)N?s+QJI!qEseb-iv_b1g{$ zYq@HSD=W?kJuboYzG~D?%yb;v2ilf1ed?f7JC$I1oR#htPvve(%;d|MW@of6FYFA} zZpbE#-kxobizU<`9=q9Px-c!HOnB$!#_PW|IYL>FH}pWxXbGNZ9GQ)o`!1^LpdiWh zjCH&_vf5-BoE`FVxg%dUNf&<@0Sg*nWOZnY*A1YaPa;p<(F)$9^}$p^)Rj9MJyA4j z;a?{21ze5#&_&qw@pFqA^>}j@q&OLQ=!!KoVL}++knys zZh{PJgPjj%Z4hJRMdXC(%_NF(QD1Asi=@?#Y-oePN=A_xRO12TT^OqhSY3byK`$g~ zb$?8n^jl`Al?F@H8FFu}^1@+BFT-6`4qGry0`pMe%(Wo#Xy~JyV60BJi0?dgqDciF zmr0m0*__mN#|omwBTK^<&u>3`zTZyZiML%{|8o8D)3q!_0Kr1k2Kpzbv=&KS8kmwT zZ?s%%aL86sUAZP0)aadH#K7wX6;V@uFei=Y#!-bm>Q4) zl3|z5oH}PzaUxL9x zEuo7Mg1{%e0MZU=&=43T_t9+=>5B}V&>smaq6W83v7fEz3QO# z!^>Gv25~a8@$xmtSg2Tl{n#J1!s<(2}be5+*UTjWP;mo3Qtr%;6NoOH$ zLT_Izn}H!6VIhul(5b@V?{m&@DIQ;=!2VN2tbbO^V(^WZBV>My!i)fI9*;s~fBkm= zQXjjVN*MOR8J1YzSpN#7(Qqg)M_1F6=>`0G#c^JMVDnwN4ol93FRpps417mKOB*87 zn5uA5n*`N$i-HD~JF!!g@Lj5-IYRwM&G1GZ_KMcAOrQt;-jFY#wB>e@F=hL@<56nfKjH@6{?2$8c>mLED4}x zTzCbymy#J?Pa!vWauSLSaX~f@QmU7io0qwou3B0~3Rbe3uF;8Rl=ZsXYrcT%wZbdQ z?HZvL_?l;*+sB_XW4jJNJq_CF=@rx^P%W*`d%xVhM{LXc>)zg60Zo%=pU&-%A~lmvl&szy(0w#yV6718*lNb!MQyc2UNCs>7H{iBN4a}4IsI0r_ONgVW9_L3tIB_il zu6Q=zEiRR(eh^E%l=zZs+nJ9{(biTW!^hKAqNgPsS^s+b_NR|v{r(#p{?0zRyUQcD zMl+-|BF4ZRFy(ytAB5ntXBZ2Mo|h7WX}pC?IBM+;K#v$$APXJMxbP1)zUnXlcbOI349Y8+p+@bC0uP<@2?P^ zY$@A{rXI%(0{Er}BhYsAu%Q+@rh@Kj+yTnp8y?}IpfVd6GAhfCjX@9w5xwDHN zkDzv?tzF;0x&QoWJACo^4T3U1ewuxL|Gt-i=Ib+jK~ZzMqEZC-K+NNcTeNl*e>PqO znyU!*L2eGCrOuSsVGW#P(eG%b(WkSu)k z8~Lmry6d5YRvpU><<%&$M34x$6{Rw>w13amu0f2ZkXyv!oJOB>z)4)ZA*kV~qhQE& z(NvEl)PTyta!teaGY$gv3iKZa0S)B{S!`(Pwt2;b5}|Z!4e>w=35rXEAcR8zI1e=) z6?v!5uHVTF=$-~QfW<8srnh$}f^J>~c&B_Y&8Z+-`e>ckW-E{TmdC7{PW*d2FWW_lA$c_^&4bUdo4#vvIQ8TM5paMSm z+ZrkvX`dZpZNjqx6L+W&{)4hTAHdlS7DmQX`iZ3kxm7D#9n6 zJOOF`IelWRrv1ys3W}JVi;`ePJ*!X*ijIVC3p#+xDZ)im1d_byx0QmBPz@sVAzFml z=|HMiak=4N#;h6C-kAL#JPMsPHP=);K$zpdNZusg&o^!dIAf}3(C7(mi*y>sXo7&O zQ0U9~A&SSMfAn#s`ctkz1@)%g%$*hmrfBIihBHcji$@~yi2yG_ev`->ndC#|WI&si z@=S1lRIHh6GnzAJF%8)O344u+PgJ5a%5>@$=T6p zCEICRTa!$yi^;G(vazi0CMN-8Ru*Tbdkl$7CRjiM1dx@*et{KPNp@Kmt7utOJ?x#H ze%&`c=ojdx=uJOM`o8a+r!ACDAedR?W<|jhEuj(%w?<{P#x+^3O}5~cP0?A3%3`D#y;MH5szVjN zRWcAa_!u`abC1me2r!Ohy;en_))Xb6X2=#=Zoy5Jhy;O2*}9|69OopBuck;Rh@;gD z04`yJh~qHaj1gwFpjv&3iLlnq#Z^r75<|jZz(ugN#U{T9h4^tKs^|0@G8&1spXG(Au9zKMKEBP)gP7gp zcOvy2R7V~R`x}(O?W-h2jShM}hsxMBhR(q+SvR$D`Hd+ILDT3-^)AXVMz+K);i*YE z33Rl-p589z7oevb1$JGbkX*mSwTKh<_)H5zkLohrA|Y^b0P0XUv9%l~YZos0umU4N zJd%}Y6t-siL~J<;9G(FcEx|kVIk2hbK`q9kWd>wblm{Xt46OMVI?fTU)XW4WUVAnM zV$Oi4Ss){b%t>YV&2)p-Y==|(D%q54o&b7Vnu@~U?Ht4{6kR=ZE9X`jL31Rm*IcIp zS!d+D6(OHYfjhHZsl>P@NSSyz@|q`Jzj|}=;p^>xj#s#>#ALii2fe6))`(1t8@utI z9du)kCYY`+s(=eJTv|NW%Mr}trOnf>P-jMQm4ghs1#|k9LnsF{J{&x{s-xc#4L}GC zK}6kTgMwkP<0i5UbpS+xc0lOGZlFEwzlF^%F)D$}2qt0|wyIrFT$2P0$$_>KA}Na9 z#?-pJ?V?55K~pO_S@QmZMbt2LCyNw1oBJXi7A@xz`3-~`#kfw!o8&NsPGj^?hIt6x zc$E92ieWM4K91V8FR?3{20l70p(!HIcR>x)Fh$lN?;tg(4&jIkdT6a)&ej+i4;F)R zM?QB2O>{oi;&A`k2Y<#&mH29{6EDXF;0-7Ksf;rRl)&x|j&U3^z64_^h$LMy04Qd6 zz(fQExM|X08RG@J2fyHZE%(>>iboyPTfYt0WLeq#Ln19}=2x&Io}WBhOQ>Da-mjN9 znl)j10Z9(?^0$l8)444^wYDUZQ)b^jW0e~s2DC?^GqM-vYo&E)T3qmA$=;-QMxL`{ zRI+IIjmhV9b;_ky=^)7k)8$}blCMb+gF)l1!tEY11ME&iPX zd4lEc=1W2zomg|Ue5+9K;Z6$ybT$5-4iH$Fi$Kk=XUi@IP|@~;ptyoqf`0&;%y-wJ zoJ;~xJ_27!IbTQT&Tzuv-|DV-3|`cDFv?y1$q&YnCO`b(;SWA|P>mS)F&_Sy2cP~6 z9(?*^9*hECKQI-;YQ#FcDnB^ZwY4(syB^~%R|3tZZ4T#xmk6a2OgPs`#>-LpgN|2?@oy>;kP4tai7y33J9QFwijAz-G_L96C@-ek3E#JvP7ACTn3l*DBU4Pd zz%JqZKqP{0k@Mj{{j%qw2*R&0X&3x}Ujk#4mv}oBx)iSG4AQWu*`XXPh|Q=^tECjX z@`AqD2G1v(VG2S6j83)?)s^J_xZ2HUkCXdDEj`IcM-B75js>qE8k^7r(iP8n0~6WE z$CSh^TyQHVGqZQAOEYtt;S-k_J@*H1A>f}-!#omK-}ug@fRcAh95f9BZzjS$xw1X6gTLRlVaXS7670R0DN5XcR#u-t#VeGUTC3`e;i;I*?p@zezQM zBv~Sb8%Vt23n{g@dOs+f)!$qRVR&MHU8u8 z;ULOj#vj6jR$RbAf%OHPi3FLi>_WpaKFnlSl~#k?Am50zbYcnWEYaewXv6gi@+^%u zQLBs{I^z(%LrCg=CbprGL=&Jm46GQ9S{85>EpAEkO{5y_vOyK(ISW3@C^npy1zmX< zvXr}DHD53a1Nm`Q__NG5 z{1kEQbyK%qZ8)XS8|D`l!-#*U`*XN$lL7>Z)#NuzFoXPtf#EACu_Iy3A^S_bCD(i~cTQU!2YvB1IfJT}}aKRiEYW%A;`^~b~h;;Duh z6cPH#ATPkwLUx1PpL7yiF$ty5x-4TQiafy68(MRs*nzXCO&t)hK8u>Z1IjI7e|AB- zOgHHQmx8~K#3X%-G>wTzG#^gps{$q)AkC!qMo0oF(ymJq5RM+GPlzZkZg_XHLUM6$ ztCyoN3Ob&GxvR8~<5ygugH@}Kg@;Rb|5#iZJ~;hnG?c`G3|Q%j3Pxs2!ahNMoTnEQ zs6gN}WB9{x;*n9ZlxLwWCr2AHTS0faYodTwM^Ln>7Td8;!e|EbzX{Zbex)a&Ofys`rq zaL9`&%QUJB!uWDi!aZt4)ORo1>f?4PXvVwe*|$j-UFNC$L=@v&UC-vM6s0C({NH}K z|LTrqB(RwC87hNJFU|5nfof>cK>BI7Y;S*Il_)7YJnDLouUZ_Zl5oBBKWCt3LNv2D zW}&iF?Uevo8fS_HRyoPSZX=2NGfgsX|n^6Ghd;TldzoDaE*#A$2>0F zIQUd5CwpW?Dp0{R?YN2neW}L*vbyVPN#YYqQ|mt5;U9W*?EGydS9>A+fw3)xC=efr zkJQGrh%LdttB2t#Eg<*?ios30yM%-UQ+G-B&YFkeJT_^->Z}=sG?ULDD%3!RM?ivA zsNt-WEtE$LJ#HN_G;46_?vg8>BJL@ZHa4$~la|xmyEROoV%vZofoGEm0|N}>KqON% z^d$`T9!l-_)$HzWvvkMgQXYGlWm6tC&9X4#&{YY0nGFY&zu6^EuQ^cMUgiyLX|4w? zeUSYcpI1WkAX*oh!G68nu6t!e4@yE=+7CuKk=kozoe=yK#TgObBnF$lhiTv8dF?E{ zR_BEqx)x3)V^(;axe&=`=tjhbtTgjetp_3)I3i%_@n&*ubg?0(|%~|7_A!Ty^cqBoDss5 z#Y>7L-@K7Rh3H-r4}#F-cV|y{a)k21sI7OL)LV2hJTOaclfiLe+yLyNTv((p3V)&| zrEx4p3D=i_u`N;K?qWPq(n4-(>ByCfyc_LZpgoAj_$hI%3j4zJRxmxk=DUwgzbuyX zv0|f8n-~rq2$i@8OPQn!OBAQ1Ng&_YYhUu1tVXr=LOe2|r-W;0+8fBn*>9 zX)+kZa3UZ|8@B-K9YPw%Qa|x9TH4zRIWK8iJDLD|p`(N4y^ublkYPPBiKJSILlcrD zpQxlpkK7v)ff}~+y;NkQLaYW@TN@$CBladZhp0Z##sw23Gi|(@OSm1&iWNf>Xq+5# zFV0Y02syA85Go1E=RY)Am1~4A+)ajCYStm4wZFrc8$R1L}i&+(Ms?y-|v;viz{$gEl zjJKJUkbxy8!-I#mNKW(%`s7-9YaQ`i80$?RNO^;WdT`dr6(~YPaIy`oqlhK}F5&bu zbN+fP1Br6b|t_6ag;jM6P*TQxN3xlCLTW?=5V@Q=HAQgJqWme@wY> zx^}pOBO$+njCaf-hBspAHjY_XG4HXyGo zd&YpHn#i-%Rs!iOxP4$Z_`=HO>zCea3r{Q7bu+-S0_h=Qv(%FC1x1aU!d)eD?@--h zJhw$6Qm}DFA$V2U9-Hy$lQ=Nu!`ENm-S5ZWzC8Zw+n2JS^Y1TzX%wE3A?{^ODc#V; zaXYhjVUz(^|J$O+~Cc`DO}{{~Y5(jZ0PkUzEq z8VsDck&4rl;l8x=5T%6;wt=80HI}^wY5_#LFM#r(Qb5_*@SJgIQ3|0|B> zvym}k8|9C17!k*rTEeuD2J)$M5@m=n`I35aS`nau;00BCLQ=Dzs;m%j%|MitC@s0} zI%ql<&SBrdslpFJ^8oPy3m7UPRyLIdjlTpJ_#GPqLq>4R=Ef~u__TCID~GaVC#J@F z1dk%=vRo=FQAr0wfPo}s7NioG1uO`GEFAAO2`sZ9kj0FM@&;o0akb{8_zDkUHOoOt z1s1@LILSZYaf@D+(0!bPv) z!>=kQg?lkTLKTsHQ~3*%ZeDztno-%KW`mVZLPfvONu>AlriMzQL0OU3h~kQtW$%{ zaL}7c!1Pdkhnt2)Pog%SzCuv1cWq`UpmB&w*rq^AQ|ocMACNvzGsbFm9hZQzs;Q7W zD;~|w?y4L6bB6P7%j!%MA57SSbbnH4_$QL5z#A;Bu+wAjAboeXLR`%bhb0?KH*m0^ z0IU*ymS`%k@PcNYlvvr3jn(8NW>_qxYgx$6VT8C#9GpaMbcE2^?5as^28_c>^Q^hk}tvy7S=8}&KQFXfer=9C9uHnb2&a656v_sPmuY8PAV&XQ*ZT{ zn1YCvkpd}NOU_(71Z{l-gASw9U|tw2d!Jtli`$WfODQ*S3vnB=m0y8*A0o@N&#RFA zk(Gece8xy1TyN(*sA!L9p1uNo80n}C7|aQo8)6N5tt+B-+~OcRZV!_5s-2E&VF=Pi z?eO5slKx4b!j+!R1Jmp&g z{YBgY)LTr?K&U}70`-omae=KJ4*TEqf0682>l9M%HO-V}*xIEwmyV%AT-IAw(PckI zHMg}s+-Me>v5@xRzXh{Y7%J3<0_2zu(}ElNI5q4hCctf0AGKL3L`j@}?C~L-Z`-A$ z8sk%B>}nlU%NE9Nddl<3M^6!+4XXMX}SS& zZS+p;q}6;IY5^I@^)nRcz>(C??!H1XR0!1d1qQnEPD+@PK#^{Axw|^HKaxV@=dXUr zor}WaDjpeE|DG4g7H%R^OZnylSYagb)zPLPr*;NH|I-f^;5b_%7K`PtM{i!de*4V~ zm2j!=zJ2rcD?2_lb+Bt?w?sesa@hDh)0D)O!6far5s06w)Kh_np}ddk1f~!c#XhCK zJ5c+;XJ<8j4(bbpL0ysm3c4aE+v01BfO4KhGR`68n!Lh!3NvK;l91hy&5Oy;DhAL1 z*(YIBGvkNEXuZJk5Sac!gi3G%V0*)rJ?6cLZ3Ei>S}|#o@x=5)8Zp0URxmrdI!#HD z;s_FXzkhl6H4X-Ui4an`L=Tz^xX~+9f^E|wa2>4Dvz(%(8A0^xe)s(vCCKmIJ0`U+ zxvnDAH-&SR1Tew$5!#R1ju)sYQ%^w+v+lsd6ldbSJw}Wunn3Ctgm{Ro+jZiE zY86zi@V;R;yYXjFdR9Q3lDYceF5rkIG4X=ay2D~$!CX=NHk6VjHha;XpbV@YBI{*m zZhn0H^6dxMlpYN}84ONNPamJ0emXci8TN<$yN~;iQGzVZ3(Ic%CgmQboC(r4-r{W? zGZ`SwjhLY^cElaly=$1d1EY4(fS|>UKfi(O*kjZ#=ZZUGxr!R$HCroNAOC8Ox>qmW ze0BHnugKK@@Jl%(#NTnhBKJ}1Nd?0ZE^Cz`k3SxshmFcg=^O|jNWg?7klLRVLVH3E znDk5Gy1ecmiZ6mC%oS(j)(!J<3oKsoQ1XC_nPOo5HKq;}3)?#TeGANMf`ocHn+}v6 z2X|qZ7KWttmbr^VK1b3;y^L+R%?{9nMlHHQWmv?IHl?R<{1nn<?6go8}RrL;2c}9so$jF8_#BF z!?lc}7w&`!Lu5E?5pH2FWx8tzQZjG}l4ABn3*xgWanPT^M<6v|!sM!oUlqvF0Tmr& zm5}rfy2(6lP67#lRHp1QUO_tM1q<*g(47=k?r(8ET)>UcQtW}cL_w0W_ld{pW6b%O z30O3s=Gx}c!PWR2NM}J@x-uO)z(*z~De`-INf8o1vC?`iR!!3%Dc_(?SQFT;SSH2^ zxm>lKT7m~KyO!WWo(l8$zW0SMA$iGz|22b^_1X;74WMc(9AIsqqU0$`5Ur~&fhw~I zX+_4ty`@cuJ6zO5wv;0ZeRIZfRV$(`hDPBCjfD0vlu6s1>?f~&_X+_d{;6&RYJqi= zds-{I>3AMx{1KZ@A)RFr zGElEk2?Hq2vc*3!#*yk#IqJ%>!S4bR$wc@ZLY1$tyLu{+9voLT&vD*C+0Zv&F;W32 ztK^~C<0o+cY~3hcI1NZIin5R(^>X95MPSG*8FrxsU`gK(O>E38phku=U7IiVw@5y$ zqSQoLYy7)djIMDC@@1tgHgGWY(RX6F5PSI6n+43UbyMFe?G#S_!G5|-K7KYb)Vx11 z4XAIl1UIgh>Zf^DglACrHg*oj&rKa|gXg>pW>Ih%QnhPMxC*&*#&;lwSG%DVetMEq zDiS~+n>nHd!ys=L_F-B6Jvs(x;h1iAt12=9XhY!R>5TY@JC!VM02gKJ+&3Zy=cn_X~yO%d!{N4;=RK&Hwa1n~k}GO_%ipIOoD zfZ9xW{ZrR9qh+6#1AD9tYQ3w>9-U4(b6clQ8I!EDm|l*?U-axX?)$HDTo7vzGl&g7 z#^E`fOb-}BEru)sxu@9AF=fEFD5&U3(4~5C6-e_*^io_iPTBb)?Rhq|sp%h@uAtF| zn!^3J->-KYB*e}3I5k|4?31U(AmpoI>5Sl(W}c;m&aGAUL&=m{gAHy&!PXW zmKXDD9dRQQKr+AZIM_&rOowN`eEUzmS6_n~LyqP#+Z-Jp%!R|6q0Z~0-aj!-PsVgy zrKw@;CDZfDq9FV~_wHWftiXq!HJkBaCa=;q|Ip)puorAwKkBXMH`;E0#8=n@|AbHd zul_0j{ExrE`7grEk}FfU+M%Rd!Km$$_94WEB|N_1wA)lgaeISc2?E;JlLiA-{K9J* zn$1d@X#_c$k(GiwtkWhqd+?|4^s0llSY{4m3x70DVFgod!}yL*I&eg%K-}{a69=BK z#N7_j!yJ)arBn(RWpH)y@vuO9rOx3|f+5z=vwa*U^MVKzws%%+uUE8v2>*rN0MdDS zy;2gHeMSgwp4mpfd*QFNxX_wHx4@b)(v@UhEh|=60Ci2$$b5NPiYBMV3=bN1MZdrRNG=Zr?HE{3H!dRsjvbrR z(1UPLI=3-k>RxS4hycjfSRy~RENmTDMLH(8kVJMHV)t${UO$DYxC)SJ!~L7ZQl`t% z8mB+5AkWXR)q5s?`P+2nNCA!g&*8$JQol!^nH<~s%Plsmleq^-owMj~ZhcAk|US2D7 z0A42n#l?4*TXKx4%~+?WAwbO!W`Ws3`N6uN50*IUHJ=oEZvv{<*whsz3enDkRb21C z{_yVZCEUc8CCO5Xd<2WfBZG5}JPnp5O+oDCJ~y3UsPqe_oA- zNSiC)`>{6Q;heUhJzAoF)epC;SJJD5*JHxuG!BjnVBp=x_z;l9n6g} znC2?bIr%vr)6r3H=I%Z=)#URqVv1&U;%x@%2F{VviQ0i~Ms3t#wOqohQYrq7Evznv z6|H~1kvPu?v~yY1u&8vBWoKdklm4fJlTQavK0P}-Ie*e0oZWqVK4TC9e1oIvlwX)r z^3~#aU+n~K87$@F2eVrMjZZb>1p@Y(&K`Va0aJHMW?d&L%|M^v&O~qtYam6HgCW?v zxtVTn5FUno;cHg-dBOVws5dB73Wp#dVUec=dvPb~lCaf2D=yi`LR4EW5!E4C(M3gK z9pmo=&_fk=k1d$@h_el14Z2q#1qw-v-HojZw#W5S-f~g{C&p@od_Mo{WWrwDM^xB) zT5?{BX0GRvx?0{U4TFpbU+>%|<(aE=KcJIm<5ani#h_(QuYkttpe)Nr;OQWJhTKT3 z1JYgJRFt5&tVt3*GzK^DGEC7DaU{}1*g@u$AGM6TOrI@+$mV88JTallD-+>JV#!#k zspsYVqsis&!Yr5^E|wa(x>q0%$gQi+3o&9o8fk)zeOgfZ+173slM*HH99yDrGWpim zGzNY%f{RZScr1>PS_w|lp*eMq;Vr>AR+X)QjWObB6c0<1V-zQw=}WaE!8G+8GBuka zk&!j`G__&LfNzQ+=FOwBYyvD2fx;V1J4I}QuH+$|Fng8na(`g7^gO-M4HKQtpaj#rncP8yce6h1SQ+h5Dl2glv-4$G zm6=S#uL=>=H<)5gkq1W%Ftndu42eMA){sTRnL<3EPr$v?NnJ2r(H+&3U>OH2BQ(N` zqowzdlF%OyqBpcS1E+wHCyc};gE*Lcr8>62dLi8+GzR0ys7C)1lE>!M&kJouOJhTj zsGS_LoTEaY>XCx`AygX`-#Vp>7A!DBTcFcH=M2UV5(=NzdZAn=%A0EmQhuP!)9Duj z-@W|lqr_b%)Ep?x)Co6f4fKa0{kP4rNtDY#O;>F?!4YW91?lLZ8w z2_fV)3loBJaDon2IxHxOC5wUj|K`P;H+QeYz#TM4_GdgRbwHW*cHm9f0p-#k?trrA z4|nK{?I~Z;8RJuSV62bP2JToDxz^s*udu3e5mM?Xd`Qj1(0OZR#=;VrWS1VwN1x{> zt0`2|0*7GdQ5*{H7lE_VT7~O_LLXL9vR{!>r?w^4>49!6Z4$;BCPcEh5{ml_u5PL@ zO{i|s$fA&TrKqq0KsAGxsC0P1le?SX194uBGTv~ogYoH7D_nIi|` zS^8Yw4_xg4X)PHM4KFn!rE`UAZ)?t_(9-w6Z42@8ci_54U|IMe^qm~rW~6|X=-@tS z!v@g~C%@Hfp~Ox{;9=cGwgj0O;FZT=_LS|IKgos|vFicA*=Cq?hWO`D6tUVW>6Zq5 zfyubotPQi1q-G|9O8ym@!lqqs2B1nLN2tS;YDb#Wjr3@J@oA@VKLA<>MtTAV56y2I zsPs{Zo3x6453(UsXmv$THge7gr17$ugeHu8ae`CQ*{fcqZLLjEs zA&l@6pmiZuET?0i9g&gneMRUQf2*s$+}Jt}!|j-r1k=a)V2EEze#GA*?wylX2_Bzv zj$v*~%6bj9N18(#*t){ugqo)a8{MX;u~z<42I(Qj?1*m7ig%!G+LcyzI5!|Z=I%=5 zVpC`F6c5w2)+6KSop^Bfvvf*M<5^a)6_kqURlHqQOB$UXw_li|=v49D?W1KOCCrC| zG#`+oeW|JhC_e&$`Z+^;irgq8iWc|k)|X027$W4tllRZ zEV$LrFbwi))6Gw9O|8XpQu&=6(&7clvtl~Lz>@=`rO9td(k6H?4ZwonavxemE*6j* zo7_fED4=Oh$~^+E__*Z<=S5`@Qe1IPKDp^tEe)U{pN4ri39MSx*oI(R7lSgEOo(AR zi%Yg-8@lRK(W$B@m_BIx`**unC~hooy-MJTf&r#PcXFoj7>0TXEhrMj%jQ4s@G=7> zKyS+Y9P2N~c6>ankMvRuiAv3qy#~^-in?4^syVUWUXQ2_z#7OwoWUoY<0{GKd^Ec6A6zXn1+<9M+Q&Oz;xW=-E9O?|U_QaNOvU@#nneMQUX-2_n`fpC|M z=qv@|y68#H7;g5km7`z8Bm@sr^@e8Ih34a9$Dcx|@hc|O1g8Q!M6K}aEm#SLBsEO< zY1bq~Ge3nDET$VlTvN3w&vu~n^hQP3Z^uzN*N$BSUKzE^$2mje*tr1?(jZ39lZgg_RtSfO zj$2pJ751K!>DYOu! z&Qz%Y2_rpZ-pZ{$E+fxz36+T;<2_D_$m0~I(YU6iQTc%NX1?NSR0=ms+k(N=@(XSx zS<^706a{CSp1|Y9`4UtEq`+f=(=c8a1#EdtD;->TM6u|;H45!DS22p(wZH8Bkuk98 za0|Ofm5dB~*3aN(ICQjm4Z^FTEtslzfc$mB-B5%@U!#~gBznmbYdd8{i(3TXRWWxa zN8perntvQ$!gYQkZo(O>v`)-%akm z{O}EO)2XI00EFkg3R~fTFIIk zV;@FpZ_dN*)qDn77RMa)w~{H!3&It1yMyjLE-Fzy4il4fg2G-)kyDiOa^aZ)s%Sx5 zf}@Z^)ueojc@5mmG_q)$AqnEz(Cw1KeJ zIc~u|1O>puBTQ_`VBN&Iw&GJa+e;On;*w6=f^lajJ%Veuk4!3wG#~RK=LaYJ5fO770G5}D?(e%fb6gj<1(BhNYy>_mBZ`%7s(3bg16ID zagNzy4nY^n9x>FIMwu_)1vX-9DJ`AEHb7}9Lh;PD{bEmMp!$dT9`QiWr^t+Kv>Q0& zY?KaVl7JoN;c7Q%2WAF9ub?qhQ#pQp_u_ti_vYoRH{a;1HVAX2pl-nqsil{aFI%L@ z4Do`#Fkxb^fqIMhxH~zU@x3)Hb(d`LeD&0JPHO4(GGJE6XoIUO@&M!uQh5c^WJECP zuw7&>gY<5pEeZG| zA_f(%-BvM(7FahqmK~%ALbMtxrjR0;wzp!NMcck0tBr$D8(9@n&Ui?~+Y6n#Kmu>L zBL-x8cp)GjA5$zscne}5Ce!D=zyEtEe(<>V)~oGY#qm&dUxJPT8%&LVl>DW>gglUN zK-W>7N!fy)?1wBj%lgjAK8lFOeibehhEoAFhhYgBUC$6U$Ima;ssZ##j~$?q!2k!- zEA|mt-{x6VXK7)#b$+sd>g^l1wK2^daU2jD8t)Hsn!p-?=+O|w6BY$` zcSK9eC%DPb-SK1zrpK{30Hd`x&u8-)7$PDkZ}+<^e9zTtF^M2B257n9?nW!|H1|Vr zq8f&kPrD2&a!w?{1ZEo`6Uv|_zn`pg$Poc!EQGLvb~YgL(Of{!d5UaZt-ahdUdnDT z^$Dg!0-X@SZ8MtMnlH(}7BtJq{;uP7&T;O6#n0YAreg`TW*IaqhW7Q>sMc3|^)2-s ztj}s!P|>inO-Q5h{hg;z zP2H11K$rXH531@9-}R8PuFdaZ!Q~FE7O@#)-vDaX^XF^Nmi?=PRqeh`*9oVcv z8_IT;dJK?0okrj(Oy{WQcq!@_4b6YB7=##1all$kq>KCws3QiRIDBZuI^nirh0!3e z(`5(-53o2mb)yNG&$bljBqfMM|J)=NbS`qrQKlAR0}+jsUFXgS(^AV(4FiK+2&m?G zTo8pONSp<97ybE<5QeH5`r!&T%x3!e4Wgy@H!N=MXJ!K(0oxib29nEwpW;3VLJG;;O z{J}C62;jx%Lp5GT(GE%86a}`c8H6I};;7Te_hZr!Wq+u!R0q_)-y&?iN}@N??Cnr1 z1|}vywCPy+`IN0;;2H1MSCY*Ax9%|;7NXF&cF&yxFqVh|c9cU|5rx5=BT0f{pqMq3 za`ZC615RF%g)s^yIbA9);Y+zPL=jFfO_M;AIt+O1HH&z9u6Ia@{|P3ifiTT`BNp-> zupjvRuH%egn`4ct@`>TmKKx91#vgj-;7@-hA}${u=kQN|ro8SCjq~(RewAj%M zVb`#0(pO`FPC;a%C5%VhGwMm9%r2~A6kEaf=n*)6@$%)poyPJObs~H3-rs-t>U|HC zEcfaC?9uU8g8uI9tCwu)CWNa0&Pv}ZkC$QtuymjZ-|^MCBt=20%MikGNFZhX+ov~c zC+ltzrm+&cOP^wD$sqWG)gIx!9?|%KjPO7&2%gLtP-jhXxWQwrhXN|*M{bs zTIJiqH%N4KG?r%W1B|Ptp{D~)*~Q`mvYeg#Fdb4hjri5t$g0mf3bzoQUnP%#JCQ|P z8nknP(~w!pg{+EqOmWc4KlSeK-ha4%ql+vDl?us1IZtS#N;ict(r4+Clrm62Tnn8dk`_}4n?dRLmv{}t_P=WLuS+IbLs9RNT z!{V~N4*ssm^ciG}>-*h33g*qR$Snm&r~{xkk; zw;fbw3yvnP=T)&V0k_e4LnC!(;T&;0oGnHxZm(~Y^35|kh(pklb+pW5O;u{?cCrmK z(Cns&LMtpZYO4>7i9R1cd_I^ucIMj%(wS%@$S_%J#r7kXJO~&hf1J99WB0&yP!)tY z!w82L@7~?rzu$lN;{L_A#~3G3t-PNEt9j!ixBy(i0iw~YZ{)C}Cn!=5ULc17dLj-5 zDH}88Y!E@zGI||~1(wY$+Q|W17dXn7wZIHK-9h7-%rD_4v?G%I_zoDNYaA<38Zf_I z6NqXO$*fdpqfAOGK}^6DH6y_`uQ%q%&aaO+*wg}TZ}hbt31QIlor+sKI^(EBYC(Yy zKdN(}$itlxTTE`_b;}+aFna#Ten0Nb^WEm;M?DZ7f83kV@khU!+l0pr)4+~`>${~n z@Pn855s{vS8ZGT&qjDZ@)ajUn=~MBoUiw;Av8`K4wf5_`%}Jva898dYq)Do zL?MMFzF^tu!~luLex+MlSY*YzSjh22n)2p3!^)o1c&yD-v^C%eI*{lHu^fM05+bwa zPQPZ=0On`!x1a!bqx-uT5+^#Y@1J~W4lC@~4GPSt{8V=G9fzsj6{eqC1fIM}DuKZM zKkMOinMXZ`*;8ON0kyqAs_oBuh`My!5$QdvY#49yhSAa>BDiIfXb2mw^7E@Phg7f- z2#)%A^ak+&ORHrU#cXQ{E~IM~OTiGd)K(%AI#34zNwCadyqW}JXbn+3bHpUe9~b0V zzv#!^lLz2ct(%gU6Ff?}F#KeCiNiCNBY4Yef8ayes3YFuEiyx!FO_ zBcgjPA!9CZ-JB|-roOt`_VpH`t%?r7<4em9g4fau5-dG=r!B+)L_{^@J!Kb!6P286 zSpW!w^4WCtrn`?`f?DR#?Ji!uzy9#;mv{HFYWlT=oh5(j&gC%P1(=>0BnBSu9kg;> zQxveF21I041gqD(hUqDVuld=ss0rgfrxsW@k8AwyB*SUnK zt4*uvd^7-8+n)|*b_dsmN|XPTmoa$+tW=j<4W zZPZ!F#2^{dO+a(YX}GSr)di#(0DEIRSVO)qCyjSjKz(~EbBB0^-5mL^+EIvIFITYp zM3*?1-OG33=qyCl)Xbrf_S!&wW5oSrY0}9GCm;hgR?Dv4uSb{D?UUU~X<9NJ^5YSt z0b;3RT13nAOWTF~*ojo-zUL-fk3JQvs{puoB<%xh4(IT|R1a_Hk(wN1RVX%q!TIWh zz{l4GCvssaE2dk_YYS#8XA$jrR*es6+yT;@ zN>5h79QpvQoSl{0f$R@U?BmnkPhY?OX$~}BLU5|dt8EvE5(Md?B5x2s5R5R_^wLP8 z*3|LJ^fqQaQTb>Y+jD+r0*en>3=OH5EBb zOp-y(mfJ4tZQ`Oi;eb8#V3C&6&elPBYOroYw!`%eY=vIJV;GE(f^HG}s$rjqv4Qnh zt&ECco56$aRCY7CX=D~xXeXo5x}mmG2dPxC_3^LP8?)?}u(0$QfyZ3v-LdHsEL;5B~(c3pfBZhj~pchpoHQU%^G5}nON!y{MP;B;=gKZ z*=Tx0T>-4idX4nco@NBXK8(3i-<()fhSLhHHyK8`U9c>xmpv($FjPV#TPn*%2RwsJaxJ;&(J1 zSNiG%(?leTA5XI1LUjQpy98B>pUKZ$UV#0_i~{9N`+n55sqgOY{6t1Teg;MmQR!8) zm4fjMpS;>kr6o&7fP_ZQh@EoDQ1YZ><2TmEENu+ALynQ1S2uhjrm&e@otV^Y#h{9| zP>lC7X1>$P)&%K^2!`_~N^u32Lw*wRPq8bJ3z05NH^UQ;43^QDCq*>n3nL!|SZhYq zf=84)p-83^!dWVvL{sjF`Swg?omv(f`aJG<>>zxdr@~;M79c}}Vm0^;j%Rzm)0ah6 z=uTzbov%q*Cw?80s{rfQK(Py{;S>%rW{Ac7)p82w>#^BWUWc|Nws*RqFBG181Y;o+ z5xv0Ncmkxc8@iQ}BodHJA5OzaR+Bp4MWq2vmn|+6Wy>LtZ4E189vx!%;L!pu zQAtq{?FxT*#as&fWi_5CR3U`c1%17tt5sNabhU<{!Jw>+CXZ1>K6k>`>ZhC&EEM+eoHsF#ehfs#JlnM`)kEs!AjBfP#^6FeyGmS3$uwGwnv(?g@^8}RMZ?nNaEFAw8wvncH$HsVp`7`MLbnO#0OdYDGH6l_b-=-Dz@boXjyP*TJ60OgGF_#rjvQa zDC2>FLdHux)Z4bIKt(AQ;Ik#l2N&L39qYCUL2g=cZ`csfnC+(%!?*Ct`?k!JHu#_+ z!7Rl%FU}GEhhZe%1!_=S<_5By+Ek9*bYz~@xPXP?di+I|x7CI^*75A{ytKt0tN}-~ z<*JZ`{o~k7d#YuyMXdg0D}Jqm zD39Fv(Ca!-n%|~lQR;ox;lWHj^_eapKG}2?;WQnhtBdaCI)aG}fTsF$C8edhQg1yJ zMh4<@GeBGeLY$dVKJiNE0^H#cY3r}h!eyYZ51EM6WF#N#Asb$rqKrzB-jq`1oED@p zuqw*KqvAc^)~S^QNUzfCJqF9;@1vFR%F1O|B%BOW;Wbx?wJ96Ai^c?0m*al5T%QnG zGq33G&}BbZ!ldrz_K;|DIRe#rfRVvE`Rs9HltDEGwP=EzVN(=QFdHm%x1*=in>AL_ zq--t)z{p;nyn6TI%hw1Ie1CWU=EdvV7r(u``EK#*%^e;x+AQ~R*cI~yb}OUnZe8zO zhy=?k;RhTP`mYJpmUny(>zV@AqM4V-G*<*AYeAzWI8nKdLbOW!vJxguy6%xigls=% z5H8#)LUblY12f_wtC{Tc3NIL5V%JQji_sTV{V0xuN~A&b1|p6d8gD0s2in)U1}UGd_i|V4X3;CnrWaiD z!yLF-IVlMF>+k(Ub51b60SlJYu$o>pfHsZ3A~2?k7r8$Wk8-_AMGNQGJdTM{r6PZz zPo>|Ul^Q*Bu7P&0iDr5n z?j-IJ&RWnGFq?GFh#SeomkTTKStVt)p<0x*P&W~OmEP?e-vi233XR$cNESqM{c^8f z>ALRjp;t)}NH$7%$m$Cy27l`L(ey#m{`?`B)Sx1MwvD_u+mR!nK2vDTWBJ-e@ zy3z@^al+>U@_>X>o66MGNHx25`ofIHnWD|p7+P}MV=KG}_jm*rBbi6yzU&{WMlCVX zt8maL+$!YQ(V_VI6b^=KFiJ53Pt(=uX*xd2AgmUMy6=GMBy}heiv=uvh?~x*bYaJ?KSspg0tZ&Rubo0-_O+{pW0f?e7gro^oAp$xXf;!>o?oq6fmVDqsmM@rm2S8O23)KF8 zV1BzhIE7=d3ru!?43B(oY-&*qy-8J`l;=5JoTpWVOxcJ%Vackl0Bj^BR!Ee_%t zzkT!dt8e6qW?zV3KivBWI?ZOXhSl_$o%|<*i&?EkBP=>`fgxjXoy0Fq5^)dpLwKgy z8`T!JpH4I{AbwKOWkBP6yM<9NjLeu^1ci@q;Ng5+p0!5W@6(gNJnPUNr3CxH#fx`$ zICp&`M$5KBO2-??1#ppoTFXI-v?VF_C|Z@B9~E4PrajLUfV|9qy=G8(#dbQCQcxRd zr3^}q3@6r3yaZ&2BybJw7~S$nD*#oYEDgB zn)@!_wJptLGnOupRGro?>x7H`P{xA=KI8+s5`tQx#x#QLs+M6Y#S;@Wh@J>5d31`e zYsw`}wWtl(C{669mF^7@wZj(B)x$mzj%q~rVAm@>1q-ca3jJXQN_FM0dw(o%kS!@W z7(Pg>*jUY)gHU^CV%g$}BvkOCu z1@ml^?<2}IS>*~lxEhwa)MKb!S_LbkoDSwEp-NXgb9B*!YI6LPnIb|<^fW?APAwau zK~P9>8$I+ycux*j-EtnX(qO(@xu^%!Jr3)yl zPp(slnXeSLVn8&V8jhC~?2IKzFm*4yy)0t(Krn-WbrZE#5-+-Wf_hQ5g&pJy*{+8u zaU1AUsnvtlfrmp%W<-q8Yz-o~fm~#liQHyC;y0WBcBeCPVWDqd^1kL|@Vr)?Q-d9! z(p=$_DOw-@YWx1h`#T2S;aw>zc#PD5XE0S8<7XXFnKB@$ssPFUGcN$!i_38#h5#(2 zgPU$tun9LTO&IW(vqqHm>xHFV55PUl`K3y&uXuFy?$tMM?q2r3`pt`bjv;y0psR!h zkW2(om1OWHmY^;KPQKsolmZOuKArab@HW_DmgDJsY(}MM34@KE;*yRav<0B6h#QJj z-aPo`);DM*7dfHL>OJ_tsl=P6CnkV#r?TUDvsW-?L7+S^EZ`-auAIs`BXdH*c43 zU*7GnP(BWl8!s&`R}=CipKjPmhR?_mR?Z6vy>=yW(ud^7Smi=^{Hr^ zo;|bEgJI3cl(@*Li{gJ)TFhf(qO1*tSgy+EofhC6;p4N|Y-aTSZ!oardvavEZPwE6Tqz1^!jLHR4*Xw3y2;}?m4@;9;^H(lbxQi^pfoq zaQI4WOP0RU2J0f7=G{)}W@VY)F=>UUIf?hFyr?YiJenaE6DM2Lp(^4^a+&C`4yg5I zj(@qpC^S$v%Z)^1-JlsJ?wibE`e?Bl&d=?<2&=Lc>inBEbX303_09AWG=3O1p|En#303qw>@-06hg?re2R-vzIV(>8sU3WRAb zEppz)N=lVvdYI&k@l(Abnos5V@u-f*`H0*^RR7KFLII&VRI%8Am6N}x9amk_lyXHY zyA9G{m8V)}sWv<4OZ7#rc)86vT6!{H=s_T^I8YA~l6s7)$1f;_&PWgUQXDbK8XtCM zAc_crvAZDWM2bB-&YLvqp6)|IX%X_9Ipj>%fpB9;AX!{jC-D!JbQR)Zdt88jXu!_Q zI_W}!X;xg9<%dJZf)$miFwj6?`4=*9)j8)8lc56aWx@FX=xH`v7BN-$U}@(2^%U7X z>y@0uaD$wNtO#0Z(V`eXe`_tWIYM>5>@bCb9Jk?mJ@rOqE>EZH&1wmo=gk|2Cdyc* zd+3D*Ej749kKjtDnF9GGkhSMD{sq%L1Ob5A| zxH@iRd-r~Q|LX1itM|Xho@rjfjKf7TC>228S^SzN$n>ltBe5o>nt%eDkcV2ZbX*9y z$OGH6z!MZD;ZKJ7Rc%7`6Tg>=X*)5ciyhIaG3H@pxxk!;QusU?;JlAqIOYl!sIM&+ zAa&N)NTWeV?(F~23RiHdF5A%1)Ia+#{hG&_C zR=@=gu&}D-Q%}R@AyR5Y!wgVS*~43UBqtt`x-b?@_KWQW3=Up|(yYyl38jm|qC=sn z^JmrPuY2-i7>EihxDf(FU6bVEiS)qDTM3Fuv`f%5137udb#B@_5N*CNCDMie#}=_Q zxfv~D#6ej2P3`L@h67tzoX8#S@@^MKCJ^WY33o~`FmM{^EY5#!T8cI48JG}>{6IDq zR5c02+F!vML3^|-GcM9&K5Ntzwq&55N!|h3YY3@9f3EiDL}pmDpA?>$x`z$M6@Td0 z?r!oxmn(T%#FP~HvHd)<--@bX36f{RBlvpya&HK~EK)U6z2MoWbcwG`>0nQcoG^$q zX5!4!dM!|7#?_aoiKUA&33xFa$%YqIa1+AZaF}ub4EU0~vRPY9bH2u$_wy2{8N;29 z=S#9W6;$f`F;TYZ2F`W|-2WzRK^|RSje2E65BlVjznR>>`rY0AyT7SR7ueOm+1`Kk zH}BqmI~;t?qc4B+;`N>>qMv*vB935Jnvgc1Yd%v;4>oL-S&C#Q5@7NL{|<0hBj_&W zWX{omNbaP(znLQRrU;nxw!IZ9br{c9ixE$*LXyNa1nDUb>@?w=CbSNi1!$_~q%y9hU-Erl{o5x}t{`y2EaTDA-0@eH5z#BZ{I_PQE|?+L*QL2A!g0g4tIqTm-8` zZ}9g_`!Eqw^uIZ-=JVR{Jd+kl5S8qrr9pcP>)a}!Y^Kll^GUDkqIzS(-G()RZHabg zuzRy)71MmEmj;AgG%)q~pfPkPCv$LLQDtre=M;TfL|uC*Pc9#HMgUa@Z4YoC9JdmQ zbErdG?mF1VR@6c#I<@ft<+(TJ-pM@zq|P9s@)L1ft?k?dX&m68AR&~-6P|~b$URVk z^KfiaH5rfgOn}rmOL(#(a`lT9ZbH*7TzUjzItN6NB-aTC*#7w#s#CM+N$Ruk0-C{} zd^l=XW{)>j_1a1Kv)tU8tro0^>4vf7*F+SlYLDf~4Roggs|^+2YktgJ32#t67d0%; zw9%P3xG`FKoM~Sk&Aa*VX8rab@9rmW|Ivz~COyldeM|VE4>>oNG+yqxhaoj@5iyV8 z5do4Y9RWn3Gz9#dg~<%FJx#NxZ}Nsl3|p#9OH564$wP$oGN-AjvDkd4ax5hEet=wI!2n07dc;bi7C97x z&ty-qKn&3JLS`+%x`px;rXN(HNDYfcp+FCesHjj4(=*69i#$AV>edx~*bNHqR+7qy zl8W%dRKuYoNVHl@gMdPH_mwj9Bt?{RI_MOYGY%h~h3jSyjhv=HM22;pdF+?f&Eu&% z_h7vVX^Zlpxab|h(GdjQydI?(n%Dbh2OgA)H?;0Jhjy6O2Of|n)vRIqw6d_&>26hq z?!-226!~^vz*uJ^B*Wzs@gFS!lJMN(+GOB0 zOm8BAwX^3eX*nA@c`D1rrD3}fdG{?**)pUy3uL#56EM9+-7T1S;9f{OA46{6%^3m# z&c>066-`YcHF(!pT+Cw-Oc8Q{ zvoVN@3cI6F*>UCtGa;e^u=O=GlC2wAS4bO4at`7dR>HBcN0Jq`K8{G(=%DZO&Ar^B zXcLPeVVq`6ivZZv^59l8x@Hrai9#t9_J_Lrlwhkis3f+t#jgees$v6C8g>Cy!#iy| z4Khd{tq8hb zZZVIHKS6Ak=?Pr^&E31Z_w(`k{_fpZFJ9l>KYQ`|!=0>+7N7$Vekd_T!DG@k@ks-G z@)IxoQEcr5(OZj3mAmm0T&H5dl_DW1a8IF;*UFnFgJLs*%Y@QQsb?o+& z7w=!-Gii^wlfe}*nCm;B3Rho^@NGCgoN1~j1H~`Zmo#Q02d35(4hiyVR)e8Q$Nrj( zNfL`?X>zy@_TTK{t7k%v@(QmZMWM%$Uoui?&b6E%fpiH;2wFLf3=@vOHZoFB zeT?P46vp#FBV>;uP7~}pF3`TXN3uyx<7zrp!}Jk2-dxTN6qta$TBE_F`L6MzqFkuEv{Vlx`Uo?OJdsEAga?xQ;QZt0=6rP1j_?XQWC#YvQ>4(Ny>bj zuUd_W-8>VN@(~?3AZ>UKlhW=_xMjB)gZ_}**8z2AftHHM1B}A{8I+3nXyQf`>MM*;rvKHm?cELA_P}~-s`?wV z3D;{nQ*g@^`!ax}4HaIKJd)P0rLN#oPl-uFcaOzriaj+E_$QlpTIPXH zc(utr938mJucwupBgSozyhT0Gy;EgOu-ttJ>V+T=FNzs0EtE;dCp@ep znf=1lQ^CrowIUM81#>E;m$HFD*Fz8`WxDuh^uDB#9?HoAmRCB71C;F-+G29oa+A?L z)cf6w*MDaoT>L^DD||XQV(yYP@- z9J=#Sk41HE@{PwRCMg5oj`w}IdxW=-w#(k{-oAeE{?+Td-tkYr{Oxz|dq4dv10QXp zAkYp+TtiHG%KSso_i!(Eb#OFmnEaBF_0^PtT3cP z6R5dL6Kd-U(E+*$#30m~mtCy5U@TF-quK7Hrw!_!q!V9ML#fV)Y)@X)f;-(XhJv#o z>yi16BXZd}ku`ht1ZUql#*U55aKPc}ce%4HI7+X4U9+BHrsmD(szwkowWEFS-EZFB zzwdo`?Zzy)%E<-FKrN3H zcoeXiQe=!WlbSB8XHY}|Wg!P;&%tgRbKC;k@-y)!%ridEsmUj_C5p3(PPN>zlIKj9 zDa($Oq?)T%!ZZ?deo&G{&BVsoYgjQcjD^fK?F&uM=B)thCd)`X;N1cx>z5$;=|UV` zLjm~W8XoUTpDYE|=%E)G_fBf4Q+oW4S4Sn`R zYDY5~{fS2#$lpOPG_+;~4(1D5Wt(9JrbE&$WB2%}JURfX*}XcE zCsV=Mu95MbT)PN}(D9T zbuA0<2s#ipk>zlt{0VBsqV9;VLDm-7LlMb2ZWkVbH9t)Js92w=5Xug2r&KwR@ntg5 zM5ZimLNFeIVFNATM>xv?uY_^v_wVmUUwtLTX%Nqh9g6S5_n)e#Y5)6H?%fD8?MQAvV=uL)xWV%D5-qPv6J!Tkk}VnjJCRNf)9Blgjy^h)w3b=rXgUG4nTu+knG01bvF z9}rQDN59}pU|P)+qs6kJ5Y;esmtckR`>3etGZZ`4mmrs;r8o?166kd^ zE@p?>pgQA_-{&#S4UoP~*RX<+!DBYunpr~fqL`Lx1=VNX(8uXBC}S}{G#*t_qXg5# zh#zME8gtNMf({sawf!Estcef1KpZuOj_Jpu6qxmFUFeVgtQJ_`Y=}`4!vb4dVBKV;s$q9u ztS)Es1ufYjOCAKd9+RRK9R>R&i-zbPUzTFCK*0v2ZX|Ow3K;z3U(rW4`?Z+`{2pG4 zARXOi!|-@f zE$lF-rn*v3AeozjQp5B@UdqSQ;b;U` zAVL+u6}@&ZNqztN?!~+Jw0alvI%UfwWPZQBO}=~I%Wb&5If#423nx9|qal)$JuEfZ#P8@+=Ry4>O)7bvqTNa;%;J<-0#m~mkz@-R26BzdTgC8Mo7de{sY zjf14EH$+Q|MrJRA_H;R5c0f%un@|lCTLaPU@TeWCuh0ed9SM5P6EBU3sXmy7WOfrb zdV52|6V${*U%yzsBz4=}rho zw`k?jx{zoXSddm*T@x7rELJ?ZV{i?@?p8O%k06;}LpH@h#;AhVADjVmr9oYMv8JPI zjbId5fjf>RwQe3&nNK7w?@K2^+L5G3D9s=-XdnJ^N>IRG(5S*tT3T!Ec&I=8GL?(a z1-l0YazKWO{$4_I&@yi~fSM4|8b404-YzA?(GZJfE}p~A9fKIvM(G+948T8rl4EW= zB6!+Ku3eygj0y(B{$gW`?`os(q-f>Ek3gDw8)@kSq``|WjKN38D2LFiT6$P1gGV3> z4He@lBpg-;gE7Dgzp5z?l7(y|lab2VLDEH1RLBkm7J*zRpPbxWJ+)7CNv9$}7$7Ry z7HCk&sx4T_`FSvn%aJ0ym4apAAdqozKA44=pfFG(>lSkdeyQ1umS%^#4%I3o)i>4N z3Z$vl?S9Ul$1e1#&anEq9c)ooL@%$wYIy|P+i1VKMiv_mWK?>~G)X^)VLq4cKk0V2 zB%sFm-4tmdrv3ZP_(E_pFL$65K79JPyI~uqyfj;`Lu;+CW;7z79xI%+C$!3K^&xt& zj@ijZeBFKuVie2eV8;hl#qlZS@H&05me8O(EMEhv90rVkPeoXBQ|~Ff1x+Ep0%@9( zUWW|5rjLR%kc!N!WA^B1PoynD!6L)-U>KbjERK)5A}IEPu#F`)hMi`oki4#p7wz0b z*)X1Jd5B9Y*|GwXN18GVY18zwO>7{TSsFnvi>Bstm7*8BUnAKtut z_2!%Xx2T-*u5t52J*(NaLOW-e^DFq&&F_fG&X?D?Y*m*L&^wHHU&)sBp^XJtZ%6_) zNb^2beHhK^iVwm#!$c>CR7)!%9qPL*KNjw-Q(xS5Qd~)Rol_6Z2354xr;H%m+%kga z`2JDvr$4{{X%9b+nj3MyzIejDXo8KD91``531ms7@RY@PYKUfmmuPuF@sdkJDsN~o z9?7FzcKX4u5z=?f6KD_;V+rmS5L3Y-%opLmI){dCmDD*MTr*?VUGv}?M!x(34*2fp zAwKxQ2O`A1{Xh>~wfxw=(=^SKmeyRw5pEqVeZ14B$B8^Wh8`7$k8pjuoho@Fu)m>T z-{1&4+W-1Rf6>C$tn7TRJh^cL$+_|3&!u%;O{mDGDdFSUCecW=Ccp zD;R@ws_9_CANbiC%gc;_Y+u7-jZbHl(UX*cRfim;3A2gu%mris>p#!2jCh0&$4>_7 zDM`jeQbhZ}Nbb8HYEkv8>>k`1|7y#~;!i!5*{%N$xCMjBs;`ifK7fnwernH$hNRL@?jOxg;A z$#u_BzV703IlghR-K}T^ypg4WhnxQ|qF5&z)J)z$93nNQiB-pw#|X3OD1kIQZcc?a zA&+Z5mFSn7dC82gyHmv*8ETUMpk*@RW=k-=j#~voQ_r~GX`93OX=kI+8UL@g zh$VJKT36m3X09kmECw7;r(~ zC>S%YrzrSf)dp1Yfw<|GkW@@f>orXWA(JDj#m-QlG z3u&WOvx7#)O{#pkLDK!N=9gF6ywdD0o(|SWR35Hbw)}Pk15q5l6h7SqMcw(%9>xmh z2s?pB;bt%h_9Up>>t%Htf96Eny#rtrxU?#P08^rqD^UIyM4BSd6klhRjk57ugl2yI z8PYaDr?z8SAm-OMtD9}6L!Dra(vmjpeA{Z29RM4pJETZB_|>HZ9U!fNDMr|2kVpA% zNI9Nj#Gr!N2xE@FllIyMDE>|i@78y+i;Q2qe*NW(uYPM{FAYd`gp?&Kotz9Avc}aA zYGqDQ3F%E(9(uEKDj1`Ga_REz=%q)9Y`T@%9jJ1e5Hl)wY@izfw2Y3fXE6RN42Kc~ zkGVyu8-?PmpIQBUzvl9&_$rMi2n&)KC0{6ryHoezfzix8JR+vkDwtsT(?XMSX+f?J z=Wxj2fuw^Pu5iY*FX@e0%$95nUv5(Fp<4V21>|^)VJZfvGY##5KTt#N!P_1xBWI#K zWo0npvXLj!xNkOy(AH{kyS|&-S^m$~Cq3KgZP4Z z*d9?FxP|XQm_Y54atV>dLwYP%V15ln(_=w(EG#!OUNPMu-hsJKFmgiY9GmI71b{|9 zbJ!7ig~!r)rCdQ~|D7!)?2`vvnK$v5j$#NbaO1hRvfAEzePEwJ{r zh3ua{AW~qeAT~Ed4x1wPJsr@;Of@v)VYZpzY?|?4Y2=us+LH9wXlai2)LuKZdy8Ch6q729(#2c3K)*rMZFh82n%c*B&J!)2??ghCZaIK z^i?DR1^&4?&D+|)HsvcfHE-;}iD%j%{=qoX?3sm55h{9z&TL`x+zKmbGgmO0oyMScD!3muP+fLf4;*JwOd#_kX~&iGahrJnwW64;T^1wdWZ6;FMHM1>5j)S ztR}V^8`WR&?{e!~GFHF@q+<}=4u%uVwQOYOJk1<;9jWYq5=3{5rQk0V?X?Tab|@$( z@^?_FqMpMRI8S4eKZ{t;m~sZzPnPF}WmIhqiIYvNhAm%zuHu!$oT||7lh$R2uUo8c zjY6gfs+q4y7>~(>f~_KFB}(M-UbZw4&g1QRv&XTdnm7L~m?5l;1laL-xd+4W9(Qq~ z6pQ=+R1Qxwh38LKbRO~sQo52f;;i!cRHq$Hs6J9VTNMCd2)c!lEzVP{uh}rGU^dua z8ZQv3h>VKw3D+yA$&8}r-POf_7`H|iZFvBQR1JiUbtL$Vk+LGAg}sd*V>$^ff)oY{ z1FJPPSk4`B6Z3a*>vKfj4)%j`syOokKWu){u$e;~KU3#!3Dsof3)dB!jx1&8+5_!c zC$?VX#h1|!ZzP2U!XGp?bi(6-l)*M}3ImXYEq!9KUF7vGFbA(9M?_%TYV(CrVs67@ z{=;K${0EFa>PAvMTFfsI0|@r*#u)3{?t-kR+3jjG`GIci(u1Kz$Q|xVsQQhzzNBgQ z{j}nxZK&|dqqd;7PiOOMROl={43M+Jf2mTY+~YzA)bS_ZO%1(YW3o`0IIkmGf{Ved zVanyp#y}swO*dK0USz;Tt9&RG7?j7-CRHqSa~~r0*373NwwT(jof*||BZ!zm5lDkK zc_egS%Ym=1xl4s#yuEnZ3<=Mgmw=j0bFG0);>4k~rxVff$GHL%19kZPQ_C}mh}jBa zE3#)a<`b!-2Slyz4meeeWd(|*c1=^=xMp#n2bVb+hVc;7fQ^g}(B zyzK&K1<_<0jhEAuG`=}aEwFB?%$^MDZC)^<1`i%(=<)Gak9uGA{_3xKi-K$*x4p2? zc&58hn<9JrkS)8a*FTk%6VWDfxSuKYcw3Kf&8Vx|UjecSpzyi@exAmWE*1dA+*=}W zN-cN6me*LyC0#c>^GzC7R0UJR)lYUu-3LWFa3-p#Li4I*1A3DdPu<4>f^A(r>JDwQ z4N=^nCg>!rG3^v^boNuR( z6v)&DLVF+Sz+g8nNzOCTua$F}g~QZAYa&W$@dgp58m;`9Ufj8piYAyI7sS{N&`#O< zVSm=!Tw@zX2BLW(?c``%VT%SR)B|j$q+NsJYsA%JfN(Qx z1%MA3ikdS$$6t(#gG1qDiSSiU616D)h50ju;h)$6y)C*|iti|@EqPtOpn1p`s3fgJPw+MGn(oN1b#LUR>v#MeD zftW*cB|X|+&1ca2AR+X(jc;#(Z6)3AKqT(EgT%*R>aGb)7IoC3>>XE^tjGmo!mF#k z8C|*deOn@_b{8zB5;R=rPE9Q;i4oD}!~MJWi@P`9y#LL-Tr}v-u3= z4fKtcl&cGgj3b&JXP;%)}@_|xw&M4Wao?v;foq~CQ{QioXLQ@ppYB@?;dZ>6EY(Z43 z>4CecPqxCbwkGFZ9-ttUaVwZMw^u%b(%Y&6A|h^ukqoRac>VUxH@%;qYH@cUhOA83 zwXOlvO<^_}Z5Aq^(L2tmx27fxLJNszTAiFtlcqQDhf`mI^{x^@wolXG!oXGF2%&Zh z*p;cHnT9BcDRRa8k@X2-VmtP*d!BFx$$<7lW0Dl_7!f0!bLux&`2k+}_*ak`d(3cU zKlPE14|iZayJ9Obx@K`}A)6`Q?kS<8ggPuX3Fzew4oHwno11AOXQoghSEQ!AdS-%Y zLi{ykbpvO0DRKxm`}fwN-e3^|<@4%$dTK0(F%=FR5_F zbdstO7g91PLcx=+7Ay$T>-_Q(@$ZQp?-vL<{ix3W5Z)r{S z9j1wR$!c#jSG+QnGnN6N=JXz7x4T{k9sBLB-I_I#MMj znYjU_@>rI8qL|V8($QkgS>uXZvM*ZGy~%t)HTW^Ny@$G}hv9)6xH=hef@!#tBL^11 z)+y!Juu|+`WR5G2a*1-DXq|x%5OO!{Gk8Jon2}yO`3L$wjAqo5P_zPRu4dE04y;tK zzLb9iX2mu!-rwCvUyx%2hC28Mq3qZg`=JrxDA?wEmxy4We1iRWFmnc5y@G01cay6V z3zKqU8j+wdIS%o4`g66%F=zCU2dSZTYeBUe;@L+a_?le|pcF3k}D#0|`RDVj0qp(XLQrVsrPEu!LsVO4IPlaTH z6AeahUc7$$%}kom-ty+PoegRi%0BjR*Zz`NQc|}B(?CfDu#ZrtF>fJ#tDE6`c+oNf zj%WkSkq*#9E+=QgYq~LxK11{ZJWmXQU^0~2m`pq%Uq-}XrJmt`bjH*>ZZdXd^Z9r^ z@IjIk^3j%VJ-F<6YXa%5`AZRkVGmI$4t(egC_`Rf&^12V>IFc>N9-%60)stN>{mG8 z=06`Fh9??MuL_u97V$k`yaCh@`54qQB4J#lco$dLYM8qJ5dZoS3{JEN6;u|isIuty z8f~G7KF%23pwnudU>a4S1OWAGT&Q8{ZWM_od_~wLR>yVMXe@_!I^fLNq=2`c-c|)Hl-zaoj>=sm$D@0^RyEa^76S^xs8M^;g0*6)UcB-X>=!J}~dK_U?i0|$Wqe8$Dt8XcjL0)4TW18fs1=b5F zTVoR1Ma>ICh9Zl{6`vQi=Qu9+D#K1WNa@ZZq$pn1{(%7Hn}L%l*RD4E`N0=&XYag5=Z zzmcMSyTQawd)<)T^yvB-3TdLu@H3b|-`@B3`}%^-g#~^2TzEscQ}P~?h#@7M!kHrj z4E6re87*R;Gop70DQ&iCzJ#(Tc^(76K z78cCT1RH+c}Hh?PH=-x7Ns9au(;m4b?x0QuWRIS zFTM6SypYqu>F>0s2_H?2&$^Y@Q$bl+g^Fs_2w_L+z>hkSPFa&4>5_9=m9Cj(QS0Q> z3VBopM|>V-rrp>hwQ^f)nq{#OZnvEzeo@@~@RL2TFF5au_{$l%04zFK`Oy)kVv=lx?GC)kV0$^Ch*Vu#T!_wA^D?+a&t9^mN+}zjh{ohPXxuqg2{3Hf++GgX+;FmB1-zcDZWSuvI6bk{kTxKw ztZcP@h>OPpNluoCY9SKH3wN}&sDKSzL6uRYK*tu$-eYM~17C({X&I8C4&qhNXOd{& zH=8*$3fR1mFlq$kJZ3;jMS^M)j&Rr_&OE!kzUl4WzJ2|!_ci#7is<(GC!Y*I9-IvN zpWqk&_WLJiALAdKZARE9{T{ELJQ;vX+`~Nwm*1nKqoaR^|NlSy_tDXx{oyD7?k|u2 z547XI|NEn(qtQ?P{J(rO`pNO=FaO&=`+t7&=cB*;%ZvZ_C+JZ2n>70UUkCdA`$oUt zALw_A=lgqmc<;98R=xK)_xtzgw=Dbh0E_=#;>YMG|MtK9+5d?z;S+!JlYfg3sh;&* zebTpnSw5@$)~no)Px|$tev`W27iGWE5Wp9AFTQ+r^byzKzd4_Nygd2~e8GSBXaD_Q z{D(jPA3pjYKl-2k&42vpfBxuy`RITB=zsg@fB%c0{{QUVdAv<^|3Ca~t|XZWnP-kO z51BL1AxV_Zh|E(6nL-FjDoK(gNs>yXq9m0{l1inLR2oS_l6&p5pQm!Z*M0xK_xJui z9{2B$&UHO{p7-8s?X~u6eb!ogz4vx@kleXH|GXi8=;+yh-kUE}>z`#PUnrc^-#__6 z;idlllP^>^RQm5S_^ocJT=3u9|5`}hbMDO-s+Vi}dfC&*|22KRT+`RjHGTc;=|g`_ zUq9FM4RTH2AlLm-x$ck3b$`QL_czR5Uf;i_YWUZ0;a~EFqH|3jojv`Pe@zwr*Kd*O zV{%O&lRbTSn@4_Pa(>A+Unn-$^s(8~H~(v@*uQ=Y|B^2h9w2}Jp-#E# zF1hL}a@E~))qiiP@E!R=SLM1tym$ZolP`45-$n3SzR=$zBYa1`&~>@)zdl!;maERl zRcGa@2jr@6$W;%{RS(To56@MP%vF!hRo|Ga9+#`WDOWu)SABD?dP=T(TCVz*T=mRc z^=+XF=iHJf)bgAO!Ff=hWwgUOuNj zKXmMz`hrmPy#HK4;ZWam>I*{)&Z&!pww+U76gqKET{IMx@1Ku%aVY(qx>)G`bL!%u zUFXy#LWT4HbN-T{w&&EPLNm{)ONX|dQPth8hZ4cx?1S)Id%0=jr0CF ze~nPaId#o{-Wlw_b92@6bJgc;{9yWXHeOJlvoV6|oN$BsoN$8roF^O9=d65CpR=+- zeSWU>xgb|vI9DBhmG<{fzEF|Bi{Q6>p^I|WMRU~`=cnzh*8TynfoK4!<@o9=u+9QyqQ{Ts%}ibWj~1%u_tnAaq7u zJG+hwT^tON@Z)7<*9}9})!{Q)@!<7JvbtS%9TV!JZk1gJuO~*09ugOu6*q2NzX7R( z`(*}y_&O>*RDE=)dPZpMkoc(RsI<6@gp9b9n5>wTjNni3#HOdkCZ}Y^C&UN;iAzn6 z%bx7qM@bL9I4f#ERBUWiY*JkC0yZ{1DLO4RD=jH5DJC#FGd?CQEjcDDHS64&gL&eT zqf!zQlGC$-|D~lwr>7=nCd4Kt#KmMKB_}0EXC)=Y{&Sw_*m23>x#FYJv*HqyGh&j{ zl47!wlamvo)6z3D;^PwHV=}W6lC5UHp_yX`4@~P9{z~@XQ-{Hv@lk168CePOY0<%Y z#V2IMrzXY3B_*b2Mn`8Q#-+x_re`lMD>HTUnBa3V;bp}|#RZE=jL%4l$&5}(NJ@-L zNzY1)i_VJ4NDEdoGd($bmhg9Oq>dRpy5H#FL(<_HV-libk?$H!#P@z)Ho zaZwowanbQfsfo#1@xkN9Bqe1fN2kTd#%3hMCM73iM#e$I7tiYtt-%oCd!m6((ipOu*s6I_;NBqn49OU()f zM^><)=;(|f#N3OCNs5mOJ~W>mpOh3ApBSAKmzkcCnUZEzX76ExGyA8ej}Je!*r>Sl^yKu!wDi=Z)b!-=?iG_9 z48e@_xb)=cU_~NNE!b4SND5|%ONok!k5A7EPZ4ahVCZC|rpHCcCZuGf$D}5vCnx1v z!R+Nl=1mB8tF*ZE*tCpbBgZDhXQZd6MF;yydU9M^W@=(=W^`oiox2~8%-#m^!FG#F z3bt-$LRxZ0uuDcKrY58$X2hh&B%~yzq^G4v_L2WGZ*VjTKhNl>H6=DCH8m+dH8CkACLtp>BPl*MDR?$XF&UAa_1tyO zJ_=?pJP0<}zf&{gGUF055>sP?p%|Z(9PBG`iAf1bX*oO7KNp@cBsH?)>FL1^loS(_ z78C5P(W$|4AtjhUc$AdP#Kg?_=>M?d!MuO1cXUchbXsP7dU|Sbj7ZD~c9UR_PDzQ$ z431673I7j^j*m`^O3TcQOG(a%O^=I>O^l063l41Y$>H507*z@JasO$91$*k~$Oemv z%8boQiBHZ9MoB`jizQ{HM<)l%P7j`R5Myj=l zl+2j)Or-cXe{*`)s5PC{{ zOhWj8oSqOQ7agCN9t`xP*rfE>U?=zw8!fWv;M^7!9Cw3(9qh_M%IR6rS;6w+gRv8r z7@rvY`4gv-b7LDmc4TC8x7;E>3oV>7aXq=VflSY$#{ zdUSZKWn?DDCTGT`2d9|-w0j2g{T+-^KaY&F6ka=U+Fs44RfB|I_r{Gy4x575rn3zy8kPU$X>{6#4U8e=qYNf065- zllfDHe@~aawEuEz+svVvBU49b1|P2sUv-8;d4rdl;aBH*gO`ZmSJh#|ua3ipU*+bl z5()+X59JMBQifkO<_%tI)^~rn%M+e1+^q@Qg5lS6;kq;XFpUE_mf@@S@bnw`GIue2 z?Hs=UBn#$=)Fm12E{5-qW>fazNKWB=-p8%n#V`3Sf8wt^%~HW-S9rM<7{jLQ!2uk@ zX$)VJhv#3$HQW$3xP;iMewSbH2#W-ldExm>g$*uIs;lGKidQm&V>mTzu(5AfKfour zmGANk9$}vRk>#HsHn;>UtFFytw&T?t$T4AqOS@atcXAasgbgkYx2oUe7d*l|!R2f? zhazEvOV0}G`fSWj?90KN#Mxnk>zI4gkMLQ(&X4#l!@Y*^@{0yLRM<Y zX!vo0xUwHFc&O~h%iiyUB6~T(~kw2E!-&c#^#yH7qxH@a*N)426RKXXhC1a)-zP%^I-OliI{W&abols~@*t((6gs}C3aTYdM>3Ly;mi(fyQK8Vi zVT1Wsh7A_FCT#Gea*juv!*$RSeM=Z5j$S2^&1=wqcuxLfyi)2!*Z* zdwD378Mb98G&F3hP-t}6)}heNVcUd4v%Kd%a7-o-)V7lya5!ll0?b($*nREV2Rrlu*j^cPu<_yl|Lf*|~T*)5kMac1Fkjxt{&k=@vf*D{?0IgB~y z`3dT&oW*%u#3fwLRb0#L*8@R*o768d+`|v&`UZD#FF)Y{e#0MmjHh^(1@c86w=j#b z3@fr4>#!jc*oZCImYvyyz1feM9K;bE%SoKh*<8TIT*?((&2`+!=eUL2xs$v3A@}nj z5A$ap=V|7=PAZf?l4}u`U^!M|4c21}lh}kU*`8h5lYN-V{v5(l9M8#|!MR+>ySa=j zxrXccG&l2Q?%>MS zOy@uj;}}lhRLScV0YxyK|uJ5+0ckmtV<)=Kz?|76ad6qeS$eioBoPK0^*C#oB$vWzs z{$$Q|Tuz^|wfj5qf4V*X-_G~noj&(;LCYt5yp&^Q)?(07$-Y0Q4-m9Avg?-Yz;3*n zIoJPL>LDD>37p2+%)Ng9-SL~)C@Uq846SiVUc4toi>Uwp54&@k5 zqzoH!fyVF%OeI5Sq9``wY(~%y3Jg0CL=W{XtcO55!%bx80rU*;2JgYM2`Tuv1 z!#VxpYs{a@0UX8~If=J$F7MzHKETy{oKN!wZsVKW&5!swzvhqpm8Y54xI3TO?*|0q zxs3W!)?j_c@iMkxJLdF%!=EJ%zuvr-863o%_d|2~zEj*ji}SgdIq#F^^n0`4HwYeo zgZrQ57QV)uKJWYLPnh%m>S6T}=Ja>}R2Rq_c^((C1TSGuU$?fpArskzt(eo#?XK?4 z>)D?}nbXIesGiO_T*!Nv)4zRKy^c?DGhbm&-!|v{-4EUV84vLX=JacSSLewW$>%&4 zWohR0X>;BeuIKhxrm#74`mUR0oXL5-lR5p^2i0qs^M3Ot^-Ij@ z!@i~7!;g7@-!iBF`kVR;^XHG`6#h(lc)uvloW5&ibuC6QfsNUc9oUUI?`!u{XECSG zI$Aw}(>R;AGpE0LzdGlA@W<2}`8;#_s;{ee@dNJXSIp_B{-Qp`@W;WkuTOaqbNZ+` z@26LDdtJsbnK}K_HtNp2l6{!QoWALB^;q7_8N7`-{nC5YE12^>{d)B?%;}T9s@}=> zxQ|~jr$73W`Z)h!zTm_b&glZ?^hL|6E3qaUFz5aMoPOx#Zg0;k*o)UOrw=+@|MM>OGCst$e3ChR&#meme207aDRcUr->HxCB+s&7p-4_Sea@2V@~p}_jAl-M zv#Gi@JFy3^VNPFjfO;5jLq-DtNA!{`j{`MxA9Hx=10uwUw*Crk-zdZ z!=L2{kE8Q>G0X5$hX2h-c)I$`=~rH+Zozi!%Bz^urwspFlknpV;z*9?6z23N=c^Yp z{BHxo^RMKi%;`%$tKP!b_%`2XPCxQX^r4H_lNn1^M0=4W8BE+ z`7&SUE`GrM{EFZ67oKAH1EAskyAUs8DOO-L)@2Nn*^F)2nOCw8(>RdBIhHqb25;jc z-pdtygzNbXU*xOY$@jRAU+^3L#N+&f`GO1Da84Jn7|XH}YqA03*@&03J+ELdUdK!h z<|y98sl1g7co&!PA+F_iZ_-lCCwf|pC#<0*(O z+kg8cksSW*lSFd(w@(tu;om+HBVNhF7V`y`PZ{_T@Q za`?AT63OA;K1n2pfBPhn9RBT-L~{7IPZG)D-#$qshyPRiBnNalDKz z*p6L!6|ZFm2XQ3Fa|&m1J{R*ouH>WKz-PIIukmfZ&rkRz5Az65@J|-FII{gNWC>ov zDy+?hOk@+bVn=poZ(h&-9Lh1A$myKJg}jH$`7qbwI2XZ*a@@CH9ZCu2A zxq^>yJ)hx=e3d)-9{2GJe#4)5oPRK1(8$hypM=F&mX%nO4H(ZxyqxWM1$*&2W^yn` z@g`2?tz5vnxQq{REuZ9b+{zt%hkN-c5Ar)64p!BUZ&im)WhvnuN_nn`TR*6hR{ zyoRY9z+t?RlXwf~@(wQH16<9=`7~ePHonQ-{D`0PYyQYzd761kNAfwJ7qbj6WewJ6 z94})FwqsXb#cP?tK^)2PoWfb0&&9ltEBPol@L6u*YkZsU^Amo_!#u(h{F4RBL~^>2 zC3p#|ur?bqkxkf&9oe0|c|H4cD93Ojr*jS$@*Xbd!(7LwxS6l;4Zh0{`56!K2Oi_^ z%u_a!&v`7$(yYkptjAcUusPeZ3wyFJ(|H3&a2zLdCg<@^F6Dz@e6*#pLm>qFkkRN|LpTWi?J*#u_hZZo{e}p+w%(c;&sgA zV2+G0JNORw@>3q%&4WocGqb=G4nQ`nqs*@ZpXm+8ELBRGzeIg|5vCztX;uHh5h#Fx08 zZ*dPl<^g`opZOclFn{GpPK8;Vd7Ze3`Fv7eC;Be#P(k3r{grC6Z4eUc^$Yz-p|^7$&nB+psgQWFMw+Acu1-Z{`f% z#znlBEBFZ4^BKO#SGkk#aUZ|nH~fjm`3Lh=jpTFzi?J*#u_hZZo{e}p+w%(c;&sgA zV2+G0JNORw@>3q{btHe@23uoXM9JA3nb_UBNJ;Y3d794_QNT+WBNj!$tjU*Q{kmml&o9^wx? z#^0HzW+b2USd^t%k=0p`u}ooewq+OgWM8K929Dr3PUcL`@8z~HE@PO?W^BXGypnyG#(^BpvAmfxcpDe- zUasIHT+e6tB46cBzQ=w1g5U5b9_Js-S0|Fw1uVw0ti+mZz<4&|f_g(M)1f zwq_^x;5AI;01o4goWxr=mv?XpAK+>}&ZqeTxA9Hx=12UTU-L))%F_)0&F1X$KQCq( zUdkG*&p2Mj7Hr3^yo%Q{gM&Dd<2i-1IG>AoA6N2GZs4=r!q@mV-{&X%l81SOC-^4| z)Q{wJAxrQQR$*;6WFnie6+5y!d-Hns=TMH}L{8@%F62F2&WE{>=1k7xom|QXxrR@06JO$X zzQsNKmoz%ds+RF^UOn%$DrHZoHcPn8hI+%?X^w*}R>1^M0=4 zW8BE+`7&SUE`GrM{EFZ67oK9MVI-eIyojY(fz?=-F-&GNwqa*p$v#ZuKn~|v-pm=i zjf;3MSMU+8=QDhfuW~2f<34`DZ}=0B^AF~Wj^uO!i?J*#u_hZZ`0AnT<9#Du&i1^5 zy?7lnIhdn(6Q}Z4F5q2U#)r6;Px3i#c8g?HKGusPeZ3wyFJ(|H3&a2zLdCg<@^F6Dz< z!zZ|jFL68H;vRm?1N@dh^EaMh{)EW$EX?98$I7h5C?>EmTe1VY@oM&C7Kd;&CvX~P z^LF0N`?-pbaU-AS%Y2=?_yPCxD}K*kc#7e#Ee{`$3h^SAVg*)XUB)n(&De&Wc_sTW zjRQHHV|g=Y@HQ^uyJkCFuFDa7K1uVw0ti+mZz<4&| zmH*qR&cKDMRK~3C3p#|ur?bqkxkf&9oe0|c|H4cD93Ojr*jS$@*Xbd!(7LwxS6l; z4Zh0{`56!K2Oi_^%+n~6&v`7$(yYkptjAcUusPeZ3wyFJ(|H3&a2zLdCg<@^F6Dz< z!zZ|jFL68H;vRm?1N@dh^EaMh{>G7<3bQ!Nu`+8hiV1AYmh8Z8yqf)(#UUKc37p2+ zyq$ORey-wU+{owoGGFH|e!%_wir@1Wo?@s;B%eaOh^1J8)mWD?OlC8-VP{^+K1}04 z4(C|j%o)6mi+C?r@DZ-(GklS+awp&8K7PS(_!E!w59Vtc$>{zK*G9L1YBmA7&M@8U8(#I<~q&v7ev@Ez{ur##5-c$6o3mIa$daw@`-EYGT} z!)PY4DOd+-{jasY?%Mo!`_oXb17gb#2vALrA2f!p{dck?5D&ae3+f8}ZBZ63+z zd|u2lyp%OqpK-j5E!d7-c@?i^1_yB@$8!p2aXuIGKCa}W+`wnKg|G2#zRyqiB@gom zPw-C`Xc5WjLYCkqtisxC$V4__D|Tde_U85M&!HT{iJZl09W&IKFt@njc;-{KjP>7nm_Vao@V&Fi?gr) zc`?iIQr2L7#_=+?U^{l@RlJrN9K?|v&ncY6`CQEVxRQ@@1E1v6sW6MP94oUHqnNE$#*KWQFY|To;s@N%ulPNG;VFhXM)E1di&%;kSdDcV!(=vN8+PWE?87t;F@GdUnLtM)z`5d=$2jAgde#(RVjz@WtXIZdwB&Q-Q$?~kqI*eu# zo3b@Ku?MeVDhF^FZ{#H2!nwSIOZWg+^Km}S7r2dYayLKX=lq&K@>iZ_-Y$`R&gaD} z!%JC%^%=*@*n;iYl~?gvW^fQkay+MS7Uy#@@8e27$_;#$TlgB^=KK7FU-B@I@C5&4 zfv%C9E@TN_!YZuIhD>A=wqi$iXK!B5{v66NoXF{%!-c$u%lRc zL;Qiq_&f7l5y|H~7G-HxWOdeKEK}H=ZP|rA*_Y|Ofg?DMlR1;~cqf^$XB_O?{Oc$;5Yn<$N2~I^@!wj0gJILE3qaUFrJNgIotCJ_TqKS z)4t%rd-` zHCUf)D?}IffHCopZR5_i#BM<~lyb&3uJ#@Lhh$&v=MG z@ECt*o?elB&SO!QW<^$KJ;pMH&DoY+*pq#k&Ko#_<2ac!IgfX8DIeq-KEX|ViQD-W z_wZvL;J5slzwr$7UmeM*FpIMsE3+1(n83zt$qwwstJ#lP9Kz9@z-gS#+j%$d=PEwN zjeMRj^L6gx2i(uE_&tB&DTaDS@+riNSc(-`jddBrWHw_PcIK7r!!!=$aE|58oWa|; zi1%^@AK`jF!x#A~ck(^%;}`sfKk+#KV7_Z2IbFbFEXzu)$p(yPBVNw-yn?-W9WyzY zqj(di@>VY3U0lY8xRy`yId0_+zQeuzln418kMbnXvS6P`PDNOf3PJui~}L;2@6VcuwIg&gWv@$CZ4P8~7}@@HM{8_xTCG zkR^BttFSg3GLcQ#iXGXVy?H(Rb127fBByf>7xEr1=fhmbr?{D~@D0Ap5BV7n@dqB` z@62;uB%kwGl%-jb)me|ROks1jWf%5jU#9a0j^H>>=1k7xom|QXxrR@06JO$XzQsNK zmyc{6A5HZJ15 zT){`Up3m?_zRI0^kNfxqzu`|j&OewhHImZ>EXJ~|#F}itcsAnYY|ks$i`OxegE@*f zaVl@+0^Y@Ce28oLB%k9}?%+Gz%TIZb-|;9<@+=FcMRF>_k}S`vtixy~u_;@#6MOI) zrg8v>@kUPKEu70cxP%XIH6Q2Ge1Y5eCU^5Ae$KD?BY)*-=1q^}b3QL-8D7d7tj{=J z#ujYHuDpuZGJ}ISlH)mrvpAoNc^_BuQEuR~+``xRHs9wb{E~-xgeUkX3uHucx{xJ! z39GO+8#0ki*oqz5oxOQI`*SGAa3ZI34j1wsF6YBs$EUcNuka1N%MbY(5Ag>c8?z-lup6&tKW1?VM{@$FaW-$~-MpWx_!u|xdA`io zxr-lgKfmJl{Dr3&>L1Cc5HDgWR$w*OWek(qjBVJNSF#V&IFQ3RmN#<-Z{s4~%N2Zt z>-h{{m2?8F|thN&FD zVZ4!(cnjz94ldyXT+PS%G+*F0zRBJEh@bOo{>Wc>nt5-Cm2o>f_g(M)1fwq_^x;5AI;01o4g zoWxr=mv?XpAK+>}&ZqeTxA9Hx=12UTU-L))%G1m{B9hPfyqINpDQmDk<9HccupPVd zDqhPB4&q3T=M>K3d@kmFT**hdfzNUaU*p?+pP%qc9_A6A;GZloGLqAUEWt}yg|*p` ziEP4F?8xry&Fk5pLpg>MIh}L3koRyoALcqf#m#($Z}44y$j^9)KkyiTXP!}!e9mK0 zmS#m(XFbL;h0WQPUD%U-na&$Hg5x-uGdYiUaw#9=8a}~Ie2Lrn7WeRD9^kk9nZNN2 z^N)_?RG7tCj+I%9QA}WCwqyr(Kum-#w(@dNJX zSNxv8@DxL1BKZ{JMJ&Y%tj4;GVKSSs4LkEn_F)F@GdUn zLtM)z`5d=$2jAgde#(RVjz@WtXIXG;B&Q-Q$?~kqI*eu#o3b@Ku?MeVDhF^FZ{#H2 z!nwSIOZWg+^Km}S7r2dYayLKX=lq&K@>iZ_-f@w9&gaD}!%JC%^%=*@*n;iYl~?gv zW^fQkay+MS7Uy#@@8e27$_;#$TlgB^=KK7FU-B@I@C5&4f$@=?E@TN_!YZuIhD>A= zwqi$iXK!B5{v66NoXF{%!-c$u%lRcL;Qiq_&f956v^j27G-Hx zWOdeKEK}H=ZP|rA*_Y|Ofg?DMlR1;~cqf^$XB_O z?{Oc$;5Yn<$N2~IO^W1n0gJILE3qaUFrJNgIotCJ_TqKS)4t%rd-`HCUf~Ct;3cfW+HA-~HeoAv zWOw%F_3Y1~9K(s6&N*Djd$^nra~+@JX1>BV_%1)>XFS9oc#OX@&(ugh=dmbDvm&dr z9%Grp=4{I@?8&}N=M5aeah%MVoX0!4ln-(ZpWr6G#O-{Gd-yRA@LT@O-*|@kr$urq z%;GG^%B;mGCa^JEvID#EYW8Cmhj26}a2jXxcHYhVxr&c*BcJEXe4V@a0r&GOe$QWc zilOO|dQQxTSAc~)f|Ml*>`*_xf$gV!*X12~K~auRRhT;9PY ze1NO@IG^SV+{QP#n;-FWe$5~GD^D};%t$`x^J13arL4jFjN@f&!FKG*t9UIlIEW)T zo>MrB^SPM!aU~z+20qIze2s7OeSX3(d6-9df`78WtVm85vIH+-71m}$Cb9`zu_L>) zH?L=Z4&@k5{btHe@23uoXM9JA3nb z_UBNJ;Y3d794_QNT+WBNj!$tjU*Q{kmml&o9^wx?#^0G|K_s8^Sd^t%k=0p`u}ooe zwq+OgWM8K929Dr3PUcL`oMurXV*1H18R_G1=@a5N`y8fWu%-p%{DijQ$4pXbYboxAt}_wy@$&tG_op@orr z3h^SAVg*)XUB)n(&De&Wc_sTWjRQHHV|g=Y@HQ^uy zJkCFu?~X`L7qA%1vJz{u0pr<-m$N;uU@uL4<&%7lTe*Yp za4$dQL4L=hJjt^xxG0iS5td|mR%IPVGl@;vnw{8#*D#d>IE*)P5^v#L-oYh&fUEg9 zpXLkP#y7c}AMta3%^&$IPc!eGk$leQ#Vo^1S%dW%$IIA)?bwx9@mgkZ5Jz%6r*IbM zb20DZN72ubyobyAFxT-ZZssd|gYWV~e#S%mfyeke^V}85=R6i=X;x%))?+MF*qm+I zg+1Aq>AZm>IF6G!lk<2dm-0cb;S=1%m$;p8aSuP{0e;J$`5VtL|J{+C3bQ!Nu`+8h ziV1AYmh8Z8yqf)(#UUKc37p2+yq$ORey-wU+{owoGGFH|e!%_wir@1Wo?_^pNIr#l z5lgWGtFbO)n9OEu!_K^teVE399L}-4nKO7B7x7-M;3HhmXZRvt*IpW{~U;5*#Q zPkE5v@hDI7EDPQn$*BlSvOKG@4x^dGrfkhl?7?f8$^jh48##%$a4zrQ5ZS<$Rdy_!Kwu6~4iD`5`~!A^yN){GEB0Me;e1MOm5^S)KJ5%M> z8?z-lup6&tKW1?VM{@$FaW-$~-MpWx_!u|xdA`ioxr-lgKfmJl{Dr3&S{})#5HDgW zR$w*OWek(qjBVJNSF#V&IFQ3RmN#<-Z{s4~%N2Zt>-h{{)4t%rd-`HCUf~Ct;3cfW+HA-~HeoAvWOw%F_3Y1~9K(s6 z&N*Djd$^nra~+@JX1>BV_%1)>XFS9oc#OX@&qI-X&SO!QW<^$KJ;pMH&DoY+*pq#k z&Ko#_<2ac!IgfX8DIeq-KEX|ViQD-W_wZvL;J5slzwr$7uZrYUn8jI+m062XOkiWS zWCwQR)$GSC4&i7{;55$W?Yx`!a}^)sMn2D%`8s#;1McTn{GPw?6hjY3@+riNSc(-` zjddBrWHw_PcIK7r!!!=$aE|58oWa|;i1%^@AK`jF!x#A~ck(^%;}`sfKk+#KV7}Fn zoGxH7mSrW@WCO;t5ie(ZUcp|xj+q?HQM`#$c`Fz2E-vFkT+1i<9Jg`@-{D?<%7grl zM|qNGS@4laPDNOf3PJui~}L;2@6VcuwIg&gWv@$CZ4P z8~7}@@HM{8_xTCG z7xEr1=fhmbr?{D~@D0Ap5BV7n@dqB`@659{lFxZ8%F?XJ>a53Drm#8NvI~2%FVlGg zM{pb`b0+8UPA=txT*D{0i7#Q-|#0M=O4`XcqFF_ zSd3*^i8a}P@odD)*`8Oh7q4R`2Xho};#A(s1-y&P_z>6fNj}G|+`)Iam!I+=zvEG! zyrb#?8tt7>=kUw>6~ z(`8tZ)me{?*@ErajeR+UqdA^0@@3B9BEG?Q_#U_LBYw(5JkD?U1Apdq{=wL*!}UqT zlzf2M_#g|h1RrG;*5VUFAyY6tvoa40@?k#0%B;!9`6OGhBYUtvhw&Lc&zJZr=kayE$<_RT zTe+M2`6a*Nw>-~Zc!PHtcU`znNtl`$nS*&*gr!)XRau7(*^F)3g}ph5BRQ56IgPWp zfXld&>$r(KxQ7RLl&5%>7kQPp8MQuKp9D=O2vyLAXANn34}L z8y{pLmf)kT!diTSPq8&Su_p&`IG^PUoWdEL&n0||Yq){i_%T1@VSdf;c!5`VlYcVa zhH#ydG7U2^C-bo=OS1y2u`V02Ioq)-`*1KvaU3UcI%jhsmva@@b2E2xFAwqi?9^SvnuPbA)B!+yRbJ0aU{obBByZ{7jPL@ zave8u2lwy*kMb1H@*=PDHlsF&>yv=VnT}bQn*~^$Wm$-nVF0ES&U^^k=0p` zjoE_j*^PZUgrhm0FY;y1;Ud1lclaK+@FRZ8Lp;uJ_yd3Db^gKFTf_B9#FTu1+4vv} zu>>Dw71rVte2T5vi9I=h!}%;<;1tf_d@kWzT*D3A#*g_K5A$n&#|yl|oBWgUwuS4I zlxdiWIhl_|S(+7Cjdj_G&DoA!*@uHUisLwm(>a?9xty!Go}0OodwGz@c$(*UiP!i$ zV{H%DCm~ZXJ+m?o3-Vz;!pf}4$N3~%u_Jr1KZo%dKF^of_g4cUxs*@eA1h$A_c6FH5uxPZ&JlIysM zJGh4jc$BAjmKS-Iw;8oFT%QC?&UDPe+$_N2EXzu)!TM~%mh8ap?8l*en$K}EU*TLX z<_f;c_xT}raUZ|n37+APyv*NthjBg%*C{bmF$1&nAr@vymg8fr%?51BHtft^9LNzI z!wHz?Hh#>{c$i=FJ6_-w-sGQ*_i?yRNtuS3 zn3MTfl%-jL)mWE}*qrUym3=svqd1O}IGwY(kjuG>>$#abxt9ldjHh{ymw1i8Gu9{J z`Xpoure{{>VL?93M_8FP`8c0sD|TcL_UAA@!{_-DU*$Z$&NsQ5A8;#ob3ec2SNxXe z`3rCGF5~VA*C`28Gb3{_FN?4g%d;x$upyhVExWKc2XQ3Faw4a378h_CS8^RUaR>MC z0FUw%&+;O#@;0OPhU=4n$(fE>n41MyoMl;wHCUfb*peOCo&7kJPxCoW<|~}b#azL6 z`9447F7D$OJi#;kk(c=!?=a4%;W{N|DrR7IKE%Q-$#Q&*wb_78*@m6jivu}=V>p3R zIg_t(Dc|N=Zsc};!q0hxC;2^p;;+2LzZidCxK7EKmYJE0`B{u*SdrCPkB!-a?b(fe zIfSD*o-guc&fy}y!FTu`x9}r=%0oQPZ}vM5~p)E7jijQaXmM4C-?FokMT6m@e;4`cgFfWT%UwY z!Su|^JS@nE`3NhsCLiaMY{ic3!Tub^XZSo{;;Wp;*ZC$_^8;?>Ztmxo{EFZ5Jb&R0 z-euea;W{N@YGz~(=4BC#;Fgusyr6FNbh6 z$MZ$L%sE`dH~0?U;}(9zPkD&P`3-;I&%Dk*82ig`eG)MxA7C~<$U-c^M_Gln_ynI~ zYj$E!4&ZP;%NIC>GdQ11_!if21Gn*Ge#XQ6n&0sPuka@SWW2-SIwfTqW@1j}V^Nl7 z1y*BSHez$OV^{X!V2*^2`?f@3&=Q#q5baVg*C zT5jZae!|argeUnuf8wva#lIN;M7U1Ln3kEDi}_iMWmu8bS&xm`g6-LjeK~}qIi4@_ zWzOLuzQK3+9=Gr#e#%2U&Tsewf97@m!PsAg>ywBn`2e%=K^9^OKFTVr#V7a_TeA~; zasY?(S-!w2oWc2A!ne4F8@P=h^D`di*Zhtbc!f9lC*yq`u2WK`VJ7BeJ{DzZR$w*O zWg|9cJ9cFs4(2G1<0MY!Y%b(-uHt%b=1%VAK_262p5rB6T_F$;6E0E@FME3pRavk6yhw^DY$H{z!bGeu+_%7e)hup<|{DLQV zhClK$f8!m-`6gVa#7xBu%+7~cm?c?`kFhozuqoTHGkb9$M{o=$a4Ki=H7@1bT+5Bz z&QJI`kMJbF=TH2VxA+(1p9$9~8PhT|b1^@Qu?#D+I_t49Td+O5u`h>kG{^HrzRWpX z#5ed3-{Tg3#7}vM$N3F^;Lp6yKN$PlaD5UnB_CimKFC5W!ADtzwfF>|VrzC{PY&R4 zKFb$4g)=yxOZXPoa09pTV}8cN{F>kK0x@^Se zY{#zb!@(TIah$~IoXv$?&Q)B`&D_boJji1_&2zlOYy6$Dz7N+YAyY6tvoa40@?k#0 z%B;!9`6OGhBYUtvhw&Lc&zJZr=kayE$<_RTTe+M2`6a*Nw>-~Zc!PHt_iVUMNtl`$ znS*&*gr!)XRau7(*^F)3g}ph5BRQ56IgPWpfXld&>$r(KxQ7RLl&5%>7kQPp8FemP zp9D=O2uHK3tzfOvwkBjSsRAOYl)vVJ$wvr`VdE*pmY|oX_$F zPT>sB=MuifHQc~${FtBdFu&$^yud5G$v+wILby&znTDB|llfSbrCEX1SeK31obA|^ zeK?q-IF6GzowK=+%eji{xtTk;mj`)_r+JQ-c#Xd^)=%O3BxDMvXIAE6K|ah!SeZ5X zIG zi?9^SvnuPbA)B!+yRbJ0aU{obBByZ{7jPL@ave8u2lwy*kMb1H@*=PDHlr?u>yv=V znT}bQn*~^$Wm$*ihMn1q137|YIDu0+ldo|p-{x9w-nVF0ES&U^^k=0p`joE_j*^PZUgrhm0FY;y1;Ud1lclaK+ z@FRZ8Lp;uJ_yd3Db^gKFzl7_Ph$;C1v++R|VhKLVDy+pP_!L{S6MJ$1hx1v!z$u); z`CP)cxP}|JjUV$f9_H8lju&`^H~A;yT?yAIDbp|$b21-`vNS8O8tbwVo3kCevJVGy z6vuHAr*k$JayeIVJvVbF_wpc*@ifoz60h-h#`-l}pM*@o^vudUEXarX2rIKDALo;7 z#g6R3{v5_<_&i_YtDMKz`6gHM18(JR?&p{Mir?})f8h<@W!$UbIwfIhW@HZLWf7KQ zc~)f|He@rlWf%75Adci%PUJMs;sP$?O0MH3?%*CC;8C99SzhE--e%ObaD5UmInyx< zbF%=8vn(sI2J5p4Te1VYvmb}@X+Fove1&tlm@D`$-{*(i#eMvOCwPWG@-lzp9mcsH zu2W*BVg_dCLoCdaEXT)Kn+@2MZP=N;IFKVah7&lIGx-{q@@=l=MsDXP{G3O4lHcoeYi}8O8*C`p(GBa~AKZ~&pE3!K4u`ye)J-e|lhj28<^F_YQIb6gy_zvIW7JkG} zd5FjP4S(Rzyv{!u`$o7viI|cPFdH9aA(r5ytioD+f={tEJFzDRa5$gk3!K6koX;hE zi)*-n+xRg*<6(Zy?|6Y%c$0rJ-pz2Gk}?f5F(>n}C`+>ftFbN{u{qnZEBkOTM{yh{ zaXM#nA(wL%*K;#>axV|^7*F#YFYy|GXRKS{`Xpoure{{>VL?93M_8FP`8c0sD|TcL z_UAA@!{_-DU*$Z$&NsQ5A8;#ob3ec2SNxXe`3rCGF5}(~*C`28Gb3{_FN?4g%d;x$ zupyhVExWKc2XQ3Faw4a378h_CS8^RUaR>MC0FUw%&+;O#@;0M>57#FFlQSK&FgFXZ zILopUYp_0>uq8XNJNt1cpXPI%%vU&I#9w)f ze=+`@aGjDdEi*G0^RpPsup+Co9via-+p`<{atKFrJYVF?oWn(YgYWP?ZsAA#l!thn z-|z?i%?~L_VxIPJ)g6Wx+d03DS^AT2NO+L;i*@_+6gZ(*- z&+vJ^#8)|wuk%f=<_Fx$-Q3SF`4zwAdH%v1yvw*zv7%zhY|Ad}%|RT=v7E?hoW%uP#+6*hP29mfJiwzo#k0J~tGvyqSmF94U~;Bo7UpIF z7H3&jVhz@36Siarc4t2h<#;Fgusyr6FNbh6$MZ$L%sE`dH~0?U;}(9zPkD&P z`3-;I&%Dk*7&~sbK8cu;4=@`aWFeN|qpZSOe1cE0H9N5<2XHu_=71wh!cXBTe@)%F^953-2e`l=t;rb+G3Z`dP=3zlT%tu(6HTgK7WGi-L5BBFU zKEvnv5?|#!zRowfnjdg0cXL0##!l4 zu`Ro>HwSSf$8sX4aTXVF8CP;0H*p8|@BokU6wmS^uktpd5{B!OfXSJTS(uvzSe#{9 zi8WZCP1uqh*q!}2luz?HPUb6|%f(#5clka)x7d*i;{E?UW8}BeqqHvuOGZiy1 zJ0D_UmSj0T#@cMarfkE`?8Si`!7-e`shr8zxRh^mEjMyIKjG&*!jt@-Kk--I;$MuP zI9#V>Ov}v7#r!PBGOWnztjES|!S?LNz8u2Q9M2c|GUsp+-{3oZk6ZW=Kjk4F=QsR; zKl3{OVC*E}`XpjXKEP~zkcC)+kFpAD@d-Y~*6hTd9KhjxmM?G$XK+53@GY+425#fW z{EUbBHNWEpUg1st$#_Y_bxO)K%*33`$D%CF3arMuY{cel$FA(d!5qbLoW$vz&4paf zRb0=_+{wK>$YVUsbG*cB{GG9qh3k`$DVUyFnTG}WFdt!M*5u=SlC9X0J=mYa_za)t zOMI2{_&VR@YJR}2+|B*`l3(##p64&T!Mlu`JY1(FOwEkU!MrTOQY_D^tiy(E#`MqiVrX=b2GC1qNYo+9ILP<>oc+*%}uvuXZB=&4&`W$<3vv7 z49??XzQI*o$Bo>^-Q34RJjPQDzV;M-y)*cjc(lRC>7orjeh_VNny((On1R{(5DT*;%keSRW&<{58+K+d4&(@q;RH_QOuojYe4A^z zk=ywRKj#sia54cY{B;I#=acF(Hzeg`7-Bl z5#QiDe2-iB5kKW29_Kgwfj{#)|6uH(!4KWHNyLtS%KA9 zmyOt*?bwxlIGCe2j*~c@v$>GVxr*z#nLD|c2YHOAd5)KOjlVNif^dBjG6mB!EAy}* zALb*h%$j_hPqGy|vIqNf7@y(ue2K4e9$)91T+I)-mAkp0U-Bz{%k%t&H+YwE6Nc-Q zgsGX4IhdD4Sc>IYm37#V&DfS**qehml4CiM(>RL@xQr{gj+?lHdw76Hd5ULwkym+} zQHjF!Nx@e7{d z8UD!2{Ec@QCvmt=iJ6KSn4J%?FiWx=A7gDcU{khXXZGSij^G$h;8f1!Yh22=xt1Hb zouBY?9^pxT&!6}!Z}Bh24^Cu4?RGMzWoG7LeimaHR%CV7V`H{pdv;@A4&i8y=Zk!q zbGV3a@EyL#E&Pa|@(_>n8~(tbd7XbScG7Tt5-}woU^YI;LM*{YS%tOu1fODSc4AKs z;BY?67dVA8IG;=S7T0hCxA9|s#>4!Y-|+&k@FxFcyky}zC1o0BVov5`QI=)}R%2Z@ zVso}*SN7pxj^a2@;&jgDLN4bjuIFa%7EH2uq8XNJNt1cpXPI%%vU&!@)rMM{M6w(C1YATaj^=p2$d@^X zi}(iL;d|V|kN7DM@i@QX5B!n}C`+>ftFbN{ zu{qnZEBkOTM{yh{aXM#nA(wL%*K;#>axV|^7*F#YFYy|GXRLJL`Xpoure{{>VL?93 zM_8FP`8c0sD|TcL_UAA@!{_-DU*$Z$&NsQ5A8;#ob3ec2SNxXe`3rCGF5{*T*C`28 zGb3{_FN?4g%d;x$upyhVExWKc2XQ3Faw4a378h_CS8^RUaR>MC0FUw%&+;O#@;0M_ z8%?42Spp_!I%Z*R7GQCfWhK^NeKuiBc3^k*<4``$=Qx?Ka4r{f1>fcS{E)l2k6-Wv z&+tcH=5M^iI2poqO3YNu!0dd8g;|p2_!w)m0h_W7JF^!Dasnz6kD?sdvXAW z^I5*YDV)LiT*9}wh8wtzAM-OF=GXj=7kGs?`6uHAH{PR<|4hS7%*lK#%F?XBYOKpf zY|eJ<%03*-Q5?rfoX*)?$mLwc_1w&z+{=SJ#?w56w*zSdb6% z5mshRKF%lEiXGX5{W*-!@Oi$(S2>Tb^G&Yi2i(ft+|Muh6~Et;4-e{I&R_)?%@F*2g=2~v# zc7DRod4wnVJ%8e_yv4s5KS#Ju$(WXznTz>ZjAdAn)me{?*@ErajeR+UqdA^0@@3B9 zBEG?Q_#U_LBYw(5JkD?U1Apdq{=wKe!}UqTlzf2M_#g|h1RrG;*5VU;AyY6tvoa40@?k#0 z%B;!9`6OGhBYUtvhw&Lc&zJZr=kayE$<_RTTe+M2`6a*Nw>-~Zc!PHtH#qi3AOD$} z8JUB5S%jrno>f_g4cUxs*@eA1h$A_c6FH5uxPZ&JlIysMJGh4jc$BAjmKS-Iw;A@AE_M;y!-C6FkEo zd6~cQ4&yu&u2W*BVg_dCLoCdaEXT)Kn+@2MZP=N;IFKVah7&lIGx-{q@@=l=MsDXP z{G3O4lHcoeYi}CY@>y(UXnVGqmpT$^)6>$#abxt9ldjHh{ymw1i8Ggg6ceG)PS(=#jcupl4iBdpAt ze4J0R6+5yA`*Rqd;q!cnuW}w==bK#354e@Pxu0M1D}KxK{Dn7omvIY*>y(74nUOh| zmql2Ln8~(tbd7XbScF}Ns5-}woU^YI;LM*{YS%tOu1fODSc4AKs;BY?67dVA8 zIG;=S7T0hCxA9|s#>4!Y-|+&k@FxFcykg-xC1o0BVov5`QI=)}R%2Z@Vso}*SN7px zj^a2@;&jgDLN4bjuIFa%!yez^} zEYGT}!-j0ew(P>*9K?|v%ZZ%ESzN$nT*-CZ#2wtj13b!8Jj;u`%G-=85w1@HCTBWk zVQv;+ah7Ez)?j@$VM}&kclP5@KF#MinXhmz7jp&Q<@@}QySR^E@C48BM_%S{yu&yp z!*xo`RLsEae29fvlI8dqYqJ5HvJE@47YA|#$8Z9tawcEnQohZ#+{o?xgrD;WPx5>I z#9w)fe=&ZkaGjDdEi*G0^RpPsup+Co9via-+p`<{GG3JTJ5w?EctZ4bz~DATw87V6MZcWx_V>V}7M)r@Mru%a!M{^t}GP0k{Fg=fp`36^U z9V7e8Hq*PgkB4}Srx@99E||W;oBWgUynexd*AiX-$oJ|qna;_4EXvZ1e4oCW>AGyh z=4{8V?8Ctv#c`a(>731lT+UTo&&}M)y*$WcJk4{w#B2PWv0{hol8`Bwo>`fP1^F-^ zVP)3j<9w2>*pWThpTqbJpXW<_mGk&I-{fk3z^&ZP{rr+&@mrqfFTBCKj2kChrzA|x zjLgBjEW%PO&#J7$hHS>R?84q0#E~4!iJZn+T)<^q$#vYs9o)kMJjzo%%Zt3q+l-1E zu1^9cXF6tKZWds1mSrW@V0|`WOLky)_Tx}K&F46ouW&9Ga|Pe!`}~l*xQ}1(1kdnC zUgmGS!#F_$AG*Jnn5me7+4&F)vn0#$G1g`SHf0-jW-kup2#(@CtA8PsU3au2WK`VJ7BeJ{DzZR$w*OWg|9c zJ9cFs4(2G1<0MY!Y%b(-uHt%b=1%VAK_262p5rB6WAHYMZikZazt20u_4q&Sykm%d z+GvjFi+q`LxQK7?9lpmc{D`0O5Rda4{=lDkoqsU4{!t>PVP4@qrb8fIcn=40eKOli{`0e?M!!N z9}eayj^iXw=WH(Iaz?I${NM6=M_!M=_b2|p_Wqpj^;yEVxP}`TxnA|L>CbqWU-LWu z_jRgp|0;5wDzd-)_xm?om;c+_>ks~m?RIe58-2c#jA@yfxtO29ZRhCtGK}nR|FiAW zfA+ZXUtP|B_C7&V+x5TezRv&Z?W|&Z{CvqBRaRHZcB_sDGHksbR zJv_jpjNFenYx*Lu@;0OF{|T6!>6nGNS%Ae^mX%n8_1T0i*@4~Jk3;!1pW|e{!nusR z&i~y`|NpC<-s<(=&Hen6U-4U>=P$g$yNnw!yo~I3|FiA&-`mkD-iNjL z1fSx6_4razp6aZ}#%#g%?8d$v!pQyA@upwo%bdeS{C}!W|4}>K&hr1G^P>M<>-YEj z*}bgqK#t%TPT*9|UUEY7m5#2T#6 zCTz(L?9P51%BT4pC-W7~aPxjdvI)Zuoten5me7+4&F) zvn0#$G1g`SHf0-jW-kup2#(;BCE3=8?y!5vm5(z2uE`~U*yZ2!$o|9@9;ft;Ya+Ghj^Ud@CW|P z>->YUgAP-uK8cu;4=@`aWFeN|qpZSOe1cE0H9N5<2XHu_= z71wh!cXBTe@)%F^953-2e`l#!l4u`Ro> zHwSSf$8sX4aTXVF8CP;0H*p8|@BokU6wmS^uktpd5{K)PfXSJTS(uvzSe#{9i8WZC zP1uq_GZ@|e{a4RV%ggh>DqlJIBImm`O+U^j*@_+6gZ(*-&+vJ^#8)|wuk%f=<_Fx$ z-Q3SF`4zwAdH%v1yvw+;)Ss!DkvW)`MOcdES(SCzkj>bZUD%t0IFe&Ik<&Pf3%HCc zxsIE-gL`;@M|p~8d68GSB6QpdcBWaO_BCibYKPj7U?;sEGI>-~w$S?}WmHu3?_Z>j zii-Z-igZy?TSL!hh>E%rGPtN7eSN)dR8;U(biU~QG?=a&nhtVx3K>jy3mN2}Y&!Zn zYp|U4rlaqd1vudx-?FYpCw~ab??LKf&=K)pQ_v+Q5eaD{vkh@md2hT_1>fa|Wlp_)sY9C|D*X*9SC+-s$dQU|1HMmb)s0fj` zhWCjZbx&NQ`@~JSCoXioF{bSZwb_y7Hn~sSqI=>($BUTqt-L2LbR9LOxKJAqS#IdQ zRZMZa?uiT4Jf^sV_r!%hrx8#I?Ln-1U3nTHPlu)V4*I+xk9n zN$-gZ-N%b*{W9DW7rL$)Q(Wk?JCWtKyH8xPd*a&PCoXi1jO6QZpSW80#D)43F|A*y zEsx~ubf36(_r!I+Ph78i;=0@?F7%nB$a1^hCvN;baiQZ{OxqDUwny@Hzfau!d*VX< ztC;ewxF@dXed5;N6W8lLaog{S3*8@$X}SCFiR*Kpxa0T4^}SDAs8159OQ?;DX}MSK zi3{~NBXOa_d@w62=)yz~cR~~Q48f(o=pkqDZ)jF)V?~R)uB(C-kaiM+j-ncVCf|UOd_uSv&Lcc8-I>tqY$o4J^ zp13z(o?u1uMS=n&aiKo;y>X%MJaoDzF0viR{}#78hzqs1ks%UyHF)CQdi4e~2qAE;1|hTYFQ3Wk-fkj?j=lco1|$qbi3cf?@o?BvGNyrG}3C zC4w=u+|cV9`b=WvZ-U9F+(ExH)ZdN_k%yu0>_r}j=7oNfrd=c`FfuRnnZ|pUn`LN{ zsL*jdwA|9c7+G$czvau6GU%@c^CLqfUyHxx>lNgi76gUzl?}#7zJ7np*CWXHVI)Zq z7kLQ}kN#6WJ4W81zdbBCZ;cH9E}yvh!;?f^Nfypm{yzB@W{HXl zohL(Hp$~Qj97kXcY@>L7QnAWdbkZ(#PSzt{0RtEVN z1@lAsY6N3U`ECUHLjB0d5L3Q-lafU5_n~~D_i;@5YGx1G%t(?TF7oj2ukXqrU$J0j zC|{lXHl(f`J@eusm634@uT^^5fH|0&;Fxr5)&Nb#=;W6F1OYOsF630Np! zq<{ZU`PMuf6?HykBumWuOWegtqRy0w6`e2AzyGIvbApR9p?*tbh-Ciz>wETi(x_oU zP-y)k{ri8)7e6>i4=NSO7W4YGI*~N0L4|O>NdNwy@{JfCR@ zz7D|{Q@(OR$2fCnrXi+$d2%OBVJDfLJROtIe zp?qC}F{XS;CdGy%;O%NF>R9@(n7OEUK9G3$<@C ztzVVk%MDxp6Zw`FP8M}5hzo6Rq<{ZU``_IuvHndzF_QZ4+dDt_k;za$Bb2Yteb%q| z)L2oW<9%d^Dc|8BU*#Yul&@bf#ub$=cZ1jm$bSCDUaBw1ig z`9=l#&Ij{D>o+JEW6C!%=#(ssB)Lz%PQ`l17f7kB}#f9#1gp3Te+9dfm z$IDP%LPJo7f3tqoY6k6d@O)_fCI@4rertocIN>HIcs43(OWP#>*#3oPiq- yET~H;=iFcnPzVQgb;V+g_3!^_Jf07sUW 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 P<>i6s!X3$j7BZoUr!yu+Ohg_SIBDXqrua``QR z-Q%8IKu9@Ut`XP+?$I!SN1VDRh`HR?-T;reH39JOge#)K;~Ceu9zaxRS! z#4GOdVK^$_22O(MLay~*Sb4{d31))Y!{OIfO5Y5kP0e{E& zM$du8@R>7V>?GfMB&@{pNkc$9&8O1=#ThYA>Vlg zczOKkBw&yEyOarj#((Yt@SML&8J1UkcbZ}I`Sn=3vxWSXUAQJ&u0xpvwq-9 zXs7jw55h>p7W2C)6IjZ}Q@8)ZrztSzER3rI;!5G@pAc~o)U-TUEj)S!o|_O;3g9j* zJO>3&VRLKvTO%x@oZ~uS>Imqq7lwEPY!qhGC%j2$_#Gs@h3LA_^AWyn4&W=~&qqjG zgiG(BcV5_sQ)Bjm(7Yl*f{@V()x0E3pxk1Tz|z!uMQGdz;Ht2Q(gN26PufqX2vss6 znJPT(3}b1+tr62!SdRA|SwQJnP+ zB)!BcwBz*_*FK=O7FS(>-WJi81-DzpPvartFV1)fUVyl2KaA}Vd;ADupm_8JM1sUv z+Rp3|*Iq<5_ln;;vK*o>4P^U7wh(#;#Cdl%;ehlmjjEJhR{LgMQLDrSh*zq z+z`A(=@8`slcZz609=vWYQV}hsW0tSu1k74L%Sg@B!6krrO6TNV;7O3VG5@nwcL<$};FZ zl{V5o?V0q{3+gYVzOlewN;Q!$Wb>u1bs_m$avcg|g;J$nPQGKdM_m) z&&L)?DSM#)NjgkR@DiyjrOZD|-Md5bi?lxu#=c5b7Xz%6f2#-LDtX{@VB2IPEwi`F z9+XemAxEA9ai_fNGK>YvpRa=$BtN0N@E-X&t(W%71;GFzvZ({WKDqQ;C>)Tx(#IYu zdr+r5D0fSR-XZyAOJL!049$2EayISEj>w*r`8q0FX=f8H&!!3GnEYWCti;Ik{zPq0 z$oFW}kCnraRAEoaMYLRwlZRvL#h#VFTL|pD>@*6z3vw0>{t2@C0Prr!gQ+82mIHqP zFG-fZ0wl}l%n0JDyqa>=*X3R`38%=du7G$$-aQx~O^&7ao-U6b3H4iY70S_O$RPuO zWy)dopqC{-r&Mva{NqT(c~3q~`MUe^1KQF&kZ;@25)b9fh0x2DKe@tfp1e*A?1?;) zzO1M6Bnj%zU^|tofe2!k(v6Z5fyy)*(u0)! zH9_31=;-|ZfYO4Fd_$E}d!U!B^uvaey{cTJyzDjQ1AXk*m7SC_NKtMyhF+@DE)(E} zvSJoMnvzL+HxZlcU_Dwf+Oe76x9fQdmkYp>)~|)6bON zq0}JC^05Ffl+!;Uq?gJh8f{)Fm%oQwSEFTadGhBF`|4MS9cE94!hAS8gT|%^cEtrK zMY5ZZ14OekX<|IaF7t)%advMVc!^;X8iII&-AJbir`Uu5fYa>jp73&pjjRvJIQAT_ zFS2LZ>RVyu9Q#)t@XoWpwgmA4+er`gcy?1;5HGSXH$x{#7>}P{}p!Jj{wPRgY5uU*+DnZ4A)p6${Jl~4<3Wf8*Gyku#(0urY?1p{Y=wj zI-9f)Zf~(&Kcj_jvpp}vW(NC}8YPo$)*F&{*m<+i1X*n3nXsA7E?5fQUG{nac=y<0 z(_r%foAw0Ne8?tT0r3%AmvZ~LtZ@uHC%J+8iOhVl&$TrUkfxYLUcX1dMSe6!0~C&+sM^C0h^mRi3VgZ&OnOresfsyf5;ne}Ndlwd)A5gNr>0^_`rK za#OpwwjK}(tOQmxUXc2h-MNIhVmI3x1DY%w>I;w<4b)lrqt+{^y3Qp&BZ1n`CPTLy)% z-0=v#H>1loaVRCvi}U@P)Ox}84i&f{P+(5X?)|eFnyEn-v-!i zekTis41U%;C}i@&Q4sI&iQmI?7GFwzI-B>VZ{i+5j9UIaucLu8habSg^aH*&1Mrad zDn?u9@{b;Ym&eD_RPdO;eiM36`QK?9^^9+@7)|$_H_{OMf_HI-!b^V9MyS8y`6dV{ zpC3w7VF4dOw>S#tc5>M;qLc{bFHB71O;r{>ci1`K_=51gv~b~vQbz;{x%8I zDdFKI*gHVMTiE{?R(ynviQsJ(dfo%@71m6K`WB&HJGk`|cGrc!twJGJ;HN0i0l<|{sa~* zY-$C`{let>ARZ99HvtG03Yvg;NXUPUW<4xSe~3841*t0P5Fz-VhDfBKt_AFf5IF~u zQNq!qz@mi}v9NheaGn8hT(~<2AVv^%i0p)L`x=bJ3Y%$vcuHt<8Q5vTK&NkKgy#v6 zj1!V}0-P1PQ45|IS}X#%Amq~VLcGxK5*%F=7Sd;$AYAmrAwkc?=WT7WrXSphT7zPj5ga#L(mm+kV2V$xq^#r&fOrsrPnlRxP)bFM+lk(K* zf?q`haa)*4nYaw0bOLIdDKv-#c1IX>9*(kv3A7H&7EZ5*zk7l}*~|NaZw#;;p%%@> z4}?7%5yV45rt#&GaH$)D$P->20`alXA_)pl1S=)rp9=nT^!iLl9}eDg!9-WxUJ5ak z27V>*qX6=S);QzGrnvHaNEQfv1%N_9qC?7e!WC!ey%z#$Kl(u!c^$-$LNH}WiiDIH zV4s9$!@w&MhPfb!&w|GkV5P#~-y!lv$e0e|SE0jrw1l&0)B;;29-slqMO@{JmRK$7 zZb89S9G3&&Cf=tdqq|s%b|RjlhL!+p#L<*-S}SJK?sT2lhBAih#ch-n-XONR1+Yn6 zu@bR(iCZXrbFh&E)j0G zi!<>X8SJo|Q$k>;sO}4qU80fF_<>@rRd5s}R__YpZtdhlqdC znqi+f`UBMWiy3@MJtTJe0eXkU^G#taTx@q0ScG_ow!x9& zSQ*49v8EQpXz>XhG9MF{@UU`RETHvZjCf`kh$qCmcYvJ~Yd(TPta#Z3)2GA%G?|_j zr))yFXT-Iez>5?2({O)QOt1qxC$2aKa9;e0(opf@rK-R#ijlN%Nf1AJBI--x44S7C z#T8Q^a#^gXfw3fU0%b3+h`VSloGb=w0j`S4Gms`ZR#L==lzd4QBR8Sa zH^fn`z)KgG(`nx=@g{!Z!QK`_2Es#zc#t}5rkJ3G$Q|(vZM3t*@wC*;7F%D&+q^3_ zTL3Hf#KsF@^S&6e3JMQI9=|DLABw9tqg@_}*)-edit=C(^Tbp;f_N<6xdLNP#38v* zcq(o?4v}Z#bjo%=7vKL0e=o#F*)W|iI%AY$UyIGRL7_lQ=nu(4vBwdBH{x;X7H`F% zd`P|%1s)#Wi_a;w{6TaNgu+KLx;}_S;?ZreSuFZ{A?gzGB#kJa#Rc?vmx{f;LHr^< zrxo>AQ7#72SvoKudMl-8bQ5-!w6PE(F48LsceT`<((3NgU>!s}r0lW4JSBb}JgkwD z)`PfKTD<~bofH%eo9m^tNAR~%S~Lxko1`5p0KB9Nm7(A*)#!uz`ABj^zy zsWM&8*&@}+MJ!vTR>@HJm#muswn-0Yx42yjqH!=l>f00wJ0$N#u(DGsrJT<$=_Vb` z1xXclL4CKBM(e>nQhYjW?v;*p1TR?nv>56k(g0cr?vt9Ag1BEgdkNas-IPN@0}BJ}q@y2I3hhtU9nbY2YXD&Px8Xpm0uVbspGx z=@Pw_3sTFv0P#{H%?}AutresffBV|_B$id5jt(Dz>g8DjHx(S8#at*q9uu0DU4OYD5 zj3aZ<$P?(T9F^P9mlY+Sq$7-Ixn?ye#K=M9=!86oy7o!=_-c5FmA|F+^(i?BznEmt z$VV(7#>slhLY|e+?uCbQa#B1*&dbYbD!3r0)BG1N4|AmW<;OIhU6Lz*i>f5bH+w3acEn$2mT9--&{%l5EvKA>+YC9?4qm3bnb!Ju z6;%XG-&M{sP`IbGrG@-`r8f;FIZDw7C_GS}T>^NhNVI5sq_kWBg*?T}2~~NloS~`w ziBd2WBF~kRlmvRAETP z5}03=ZnOn<)^#M2mAZB`Z?4jfONC7rUF8h$R_o?c_jT2+@CMIKx7`f^y6Z}VAmX8m z=np+l-8pv{Tcdlt6$)#0>Fy9&r`tliIx^c8U4%Tg)3u1^aw-|Z{ zbX@`vOQ`NSojQc+-03dFLEXD*0Ect~;t~8|-Jf*%I$Y;MCp-~4r4H01b=T+=;E3*E zZ8$orJ3#r*DBa8=C`9Y-Plvx_x@Ap)9oK!c08z*2&h>$#6S@fwg03fhM3;2B z;gC$!8BQU<%R0Bk@Q|cyORalFcep)7l65215V@)=Y6C0Rbk$~ncwLuv3n8WG#?WzC zs?M|+A>Gg=7{N=|eY*qLE!~=*;r+JmBW+1DbU%*(F;n-Z7#{BE+W!WdS-Ot&>y~U? zwOYXL>T)i?!#&;LIA>n6dvgUYl4`o8<7WNdAjX1 ztUcB>bpiH7H?Sr|p6b{@s6W&7PKN21x;8Yrz0x(HL*{(lC%PE(TGy~6L<)4dbf#LU z%jgT@8{OcZi1V#(6*b*ET}_&S-s`@j71;;f+}sEd-JSEQ>$2i~7_yS9K=ta}v* zP@;SE5Z*uQ?o-C4RCh5S*cYA671&qZ#3-mc>xVT1aMAbN0OD%>`04^a0QZ^^zR>` zDqi}HAyDwve=UV0AHA8b7H!tMdI0m)>uBq|ML&?XWq$hUbV+WzK6(JK0DY5hVRMIm z>pWQ5sh1Z(VVAy3GKhitO-Wj%-q5Tnn=e|Ey2(5Eaz zoG0}O5~>obA51&NQ~JS!fSuNh^bMZTzc>!PIDPJ5NS@V?pi%0a-sq1So!77a9SRrp z9Y;YVUO$pL`bGVkFc1^;*JncElD>$VE>Yi+E&*QF|Ct1kq#sFB-4%WDTVTohZ|Dr{ zs{YGFVAu3L>1xq+{p1<|Df*8SVKY_Vk4{)`=xe5dn5KVCC(k$a2WX{}u5Y*=#9R6w zD3^X)ucMt}hJJn;JY?#pd;{-y^s80?Wa+ng!$Y=y0(Iv5`V_i0oTCpO2ke1<&KBrB z)Ft>)s(Qw*PmDqN3Zn-UQjR4`%ps`>Pu*&`9|M#28eIqbyWfMt7yY4e zAb!29bM2%d-G)dom<8mc~pzcq&L z?ZI1XD9Qx3&M=YE4eJdByCAZ`aCjrsHyT#a)Vj&w_X(JnAvFyCybX=6z?hFApKj-D zHYgL|&(|>K4n(#X+@iqqGlafG-M1QgQ)+yh;TR8_+YMhCs0SE^QxD%^IA0H@cNz+B zLUNa(?FH}x4W4Vj3o@Mj7RGiP@@bp9$DpG5cCR7I5B`D;S*hTK7)}gEOYAdrH$Y^+ z;pSARA28S`R}yOYyZ|7~@UAT+4;qf0hF-W~_ANvfVQB6Q5NU{@HP{hDHBVqi4cpJb zN|a#}r9Pq!oBhE%W@vK;ddCer1c<~KzNan52}1`u13PI5PJl?Pq4!_VJ7pNQ4^=sB z7!!q%&KQ0i0lhfGoxT8P4d2m_aL!<)JE!LjTYiGV1;gn_kc>AN=ur2fA@CqfCm1H2 z0q>Gw+XVPaG&E}f?6Tn@-2+K7tP!Dp#jyMY93>m%#?ZTJXw(Uk*9-yIpnl!(=Uebn z4Rz@9#0|r4L1z%@XTPJggBoYCR68nVVJNM9$p$MguwJGgDYLc z$u}_6O0Ny!=?J&LFti8!6&e-|0`Hw6m`)$x8=PuF?}I_ZLGq(vhZjJR!9*LsPX+^x zktK#in)p5&oL?e{Qp3nxxcy>CqO{~!L*z_IIvcwWhFcfoq&G0V+BlQ0!MYkp)56ou zxR>@T?#ACgLczn>pcGa-jiNsstuY??1K2v_=y34X8y`@bVuNwxU3l1N{L&2ACgbF% zz`TrOX#L`Ctfe5N&Blc$5PglIk3rmG{6Guqtw!Gn#NuxZpxoLvW9w%S*=}ro015%d zV&d&Ic5s2)UB+Fs2o5yb=*tQ+<~;$}Z8T6SX|Hh~ZNP(#*$W{OVhreritRIo`~^q* zjjw1ycfh#qIf$XgrIgnQGx|{0;h>Qp0QGR=UD~8Y7;QX6B8>xnKoCcawfvxW)YyW4 zH5_H^-y9;xjrV9|h%xr3bL|tx%63SeG}fT=fLLQNrSwi2vpPcIv~kO~@NmXBX9lo1 z;|ux<&Kgzpiq9GUqGOix#(@@izhE5d1YW$cdKZ9;#*9$7O)$QC3z194a|@xKXiTFy z?y_+&^|33)A^71Tn`~^c8g8!|pN#`{&DfoCPuGodMd+m%MOT8nbhN-7)r_1<5R9-gH>WHdgcj z@2*j736N*}mqawV`sXL^Uk<62O{r{OX(`X2V(b( zzJg-ovf5~u5~Ju0z0bzZdEk{AP2n*8#kh%@?yK=nN@qHoHs(TdrD^#b)M%CID zKwNJscng~wO!cfFdYN9|go3x}kPjq%OcB?CZ8mkI&4{mQ#Q}gVCchs5{7fZPQL(M2 z2?4O;Z(6w@*fx_JeNx*^oesiSfaxH8`a4Xc4XDvhQv;g&cbR^tpBMz1{GS5^nX1#u zW4GxK8p!sTI?>VMUQ?&qAO@S5gCK^O+GPRkGc~3qz z+&NSFLj-Z&^p>_C7fg>QK_TAM^CWl|P4$0;=>$_YtvoK7CUpZyG_~d6{jzBTtqzk+ z`=&zSis@HJn%8t_7K~jr9ipSRYbNV$fa|7qG)|d}eKdr&?O=FIM_uBN$N?--1VRTiZ&{UiQ?2XB_ z1+cfK{T3*^Gx_`k$l#NFois{rIq%;pXNvLPwZm_X9+lchT2##Qe); z=p8kWql1+w^SlPoi#GqZ9eT&iK6Gwz+!FuvuJIlUcg!b; zz*v?!I0#s_If@34yXLLO;r5>S>I*2`H~&NjYB}bqbO7|gJnaEQ9-2*bIpUGoFB%}% zT!$8=dFIsbVdb&8{spK%F^}JXSe}}TgTZ@dZg~TG&&>_)!`KV6H)TLxny=CL`O3Wa zD@5|mMIRyZ+FXy$6bsBn8zEU}&W}g%Z_JfG!{%G_w@u*Toq0AT_}-i6G(G0P8IS9wE*RmP|UO*=TX2seF^=ZagqA zOFPO{dRr1gAn9XCO$XR)*&PhvYl)%Gyv6b(Wn=s-BPfZ!%`&Y%)VEtIOo4iUr63KJ z-eIXa5h3lgM2i5sEFI^77iif*$LT?qJCyj`ZE>T<+GDZK2iR-TeT81ICDj9_Lo9A| zSA3sk7)|W^Ejv`0T=IeZ@h9=7ak1!A}*-Wyni zC0PUYNQ+D-F-I)vX4pJx*>6V>Q5KhUfa8|$X;Bknsb+`B3Cr*Ep?A_^_=u=uEo0{) zmQ$9YbdGS^GT#J|GnPGcuo7pnQ}*YqWrYgZIg4vgVCO9&-Ep~KvC_UO-r`P6xQiBs zu0keQtd3u|SzMxECDG#M4Ux;1@ZAU^$rA1b^(&UDQ(-LG^2>XKbk)+9e#Lvu(u?x? z*DXD08Ixk^=>>&U%THrq^M+-94m_k;%uAtu)6$ssl<5`?-Cw$8xkm?Fw=KKrrDj;N zvS2#X680S4?^s;ufF#S}O0!|Mfp} z(6TQAB9AQAIpF155@>~+XYsxZ505P_dBC1pjx+)9nWdDv+H=cs$}hdJ6w~?iOH1z< zNWQX6SOs3bWm!Cecx_omtBV55>)QZ@mMIJ1?~SFuI~={WY^@Ew_m=J}QKJu*u(J^P zXxU0VyvPz?8|t4d*J%?|Z26fIC?%FnbD{9ra*=*NS87>s0U>>{6!wGUSIe6ZFzsw@ z+Yp$Gb^l;^SZ!THH(Fh-6{!EYS&L~;;%*(D3E*LMr=LiATE{I$)N8ES>k#!?>v0j1 z>#Rxxm|kzKJQiSsbuhJ=m(`txg15Dc5srMUT59CY)?XU|_*%0M!O9kEzYJLMv&K<+ zc&oL)8jk#}#k7OoX5B=i>2~Ykrw|FSKBxtSUDnmDAQEW(F%?*lbtfeacUwa)L4A+) zR0+Udt8X-j!PcTD5DBqvxDADU)=zZtWxsU-ZJ`cW(^`WUYCTJN%rNVqb?|r4Y8(oG zhpZ!LG(BuBq2FnTTNmv?TSr)f=ocT6))}7gaKyTUK9r-@yY%CLDC-a>h(uc}#lhw= zYb0glk6X8Qhh&U(&{}{K);iQYC#~Wxc!;$w35Lii>)Ii(a@v|tx!5z-c_ZK<&bss` zxIJqfa2X2ctQY8L|Gf3_4PY0nZ)nDgx8~8QvT$MWm}ifh1k2+Ui3EaSv^u=`o49XAJlWK zQ8bJ`uwK~=$z1E*7=)B(?WF_pu{C4`h)=91F9CaM-Pr+kcxDYZpnlJ-MmM}Ezq1BX^7g%T zC|%wEVCBw0B~=8r#Va&(YAqXOyZ9QmR=WDCq7+{OdnHJW5 zwzXj}w$+we2bjNYdnLrO&DL}`uGV;f-mY*)zbe%n~eLm#lo1EF`&7FP@_hiu>FA;817 z=?PE>x4opKQ-p28G$=&cYIlIh5nFBr)aa;f%3~0tY;Ji_kG3_Tn|Q};v&I8EZaZ`Z zj!xQg=0GymHf1D$B**&2C4 zZU-z}DIu)81l(J(L!E8|`xw0XErx84jM8{VmPK z-uAk5Z0uuik_>;F?JBxw>}&r-`?xLkCv-Ew&whI^cw6lkC@tb|pGDVI1MK5cP`@2^ zugwU4r@a%s;$8M%Wq# z{iyw$O|Thd?;MF%inj0B1-%&i-deDE!hVyMBPZ?ZP)NqwvnjEA%3g=&#?$sYISAs6 zeJA}eDbD_#3fNiuTS{DCuun(_7H==P2;N2epti7*VDDH6^-K0QZNW>lzj+Gmvc2t1 z1ej#!DWiMEK8{ZRlkL;~1h{Iq(QUMA_JuTur`j(xhLs!k{{8@Ic9G8bZrYtFJ)CY| zv>)J>y%GHfBDd`q>E{|5_9aCiX4>moA$iAc4MjDx?8yQ`%C^s@apJ!H7G?Hw>>cRB z%maG}rOF=KpVFnYNA{v0f#uq}KZLP7yK4s!AKL}GxAw$tra9-Seav>W(lh(K9a8g{;YI^A1)Z4aaiItBJ7@sKRE@9&IizOnat1(CP*_B7nTv!~Kz`rbZ` zZUPnAZx4cpPxiD0&?~lQQqL)|cNHM=**=7>ewEsPq}Avbdjndqezh060CRTg+!MT& zPPgbxah21G66m=&*?$A(=H%r8f9_5Zt>DkYX<{mZ@N|0F3cNK=@hc&@*2!}Kz&apU?B$bI*N{ae4#H0~lqlxLJXW`Ggt7_>xF4<83(xLl^`3&Hu_rx_)Z;X_Gc6vK;lDA5cay&b0+f3;vRhH-@6_cM&}XCaGa z9H1?593zhoVB;Bu5~w6FKBZ=pL`J$hxFp8=$#9#@u>T46>RQcY{8$fz^Nc6-HfAv#zlJQEF?|NEJ%^EEf!zhh z3_8%xWzs#;!paTxT#N;h~Cg zlTxD_jDGsI{3hcG{nED>mo~%hHlv0r1l5d&W<*xQ$T|V8mXSy+UL7NIGr;aJE_nc~ zo>AQfl?I09BDlMZ`&1`tWV}Mh9!-q7o#5^>F z%R>hD0aRKUJEp@!8)G}I+U<8 zxV{*ePZ+*b;hA7KvY`2tF^}ffNyZsxXihQaz6HCZOidWB!G@`z(_C9-=I;pJj`@(P z9QMrRDc~HKQ}pfQF=kpg1|6AmFM)Gnj-CIW%ezF`AOz(swMa_ z6DX5A#e88Y!2Frc*AY?x^H?G@1DS`Z))mCuM1_f9W_$?lO9*oXecl_&Ty!2>81s+; z7Z%R^kO$2O=JI>6i)1e111yT^Y>yyfn4H;AIm28^)yY`qcIx$uV_xFGQ9RQ!4zL8~ zOGz+DWL~6XHi@aByOhja`vd`|Fu$hPDU}%-0Q0lV07_BQn91vana=#@5M&ul2F*n0 zn6G{VStfJyILLYC?2jPJV%`V=bT;$a8z4DM=KGLcVBVqXK`t|(7b+K-Dw>z_n19e> zn$LXZ5CXi!Tt+Pxmzi6s*QkIwL3`~&<`1s8z9Q!KS0TH?+)r6TG4rdFxPv9kpJ|ON zW&XYxC}qswsP=S~sZ0jB#%$jWQqJTagsg)3jR(LgnK9Iza-C@>gsh4gOU1Dp%qIFU z_a^h^8Qi*R<^nNdsbLNWV6c{%`2z;)nBP!!@(#0O6t|$B$uxm$VB$aa!CS@r`!)<3 znH#D1wTU_Xb2z%kl)neredeFkA>7PtqVA#==Jo(^511xO@*greWw@eN=6!ls+L(ru zxG(KY`CX6>=7SWFPUeSGK{bKj2phbEgtP3^TXU?>@rRU4-2z(@OnyW6TA$Fc@cg)8Wt) zW)^isPB0(Q@BWn8_ZLtmnF0~W6w^RwSw~r`e}K$}^#x@RwyZDdcei8xk7`f$ER_X! z!huymhnL4#OWY8WBkL?3A3Cwt(C>bnb>bWhoLM`mf5L_J_y-VImcS7*H`X9^6S}kJ z4a3n1))p0r2kWdGFg;oIl-_xH|usZI3HFWeRk-}iV(o=BrBEyFh5ogc|XN+ zqk|5AmahT^0j#^rFc`>Mk_zuZtPm>}IjtqEZje*(==7MuPyM;NP+vaWEJQvjeN zSUY|J7s+x=1sBEYe-S9rtcE&-dz#fo?@A2IpXT{9tZ7~Vi)B4WSyvou9vx!Evpl|l zT>`7L0S1Yz9p`bclURFccb&{qQ6EGK%boV3sjQ@SpqypRrtMW4%f=UW>8z}9sARAf zu7vD7%i#-{VXcn=~E`*~ite6wvidpv$!mfnXOVFh(IaNo>Sg+Dk zewFoaIaIE(Udn;2oaI5sGZm~9nu01>_vb=(on=p_<5jHc^+377%KZfXZnD}=w8TbSz+NYsAGk{k2`pW)j^KxS$VTz(7;Niw%WU_f9Qd3 zWL1a2u8H+6Ey?#-`j5fgXT5z3Tr=zA0Yuiqs>}uE1D1~F`G>5oDWJ5n(&<#Tja5KN zemhG;uWtvdjJ|N{WG$xpXBSK7jo`akt0+@_#Co2(WP4aMsDq)G6)ysGAIt0v($6Y9 z0W!dP*#Ve?ERXM?@|d-ZQuiU&;&2QOvy9FNX@pfw=Rl*Z%Ui&Wv7V(Qah%n27b;I! z|4<4(!D@4W-BZ@Dv}u}T#Zl+&6l(>QT8^?ejlkT7?f(P@wroCaf$i9iE>N*&D>8xU zz?N=<$}zV0bKo4=MK9wToY=G75Yln>*R-j3W(QO6qzn7TZlJibD|R9XH@1>mk=@xl zT_HQcUbr0w9&FVM0P|#bMFYi)trP*%n=Pz@oe%r?ZiM8^-ZKV+lkC;UpyJ0arsO$* z-Tw?oAp6(1p%TP?=MrSWY!=l@LfHLu781%f(JvOpwxzrvoSjB1Nd)_AI+2cKpD-bo zD7M!d2qK#O#=9^-&Hjt_RWWQUwJD!rcTuS&mK_)mE{;9@I^v9Hze3On>|f)-C9)q- zN}R-gKNp(G>{V11OJRR@8epmH!p|W)%brh5K^nV_)`xUFKHD!B zDwo)~dti5&{l+S|Enpv@kGKojAs!$_>|Z8v4OiGXbgo^@{*5N9684iXVNlBccMed> z*kja*aFy*v+uUnxSs-NP>_^=&s9>KA0cIupw;ZTkXD@sPvMToe_26!>4-CP>O*Wqn zhiKyR)f^Dzk30i4ea8>0K3cn zj{2+`*%~u~Xk!0ERfl`*oI=R%vsZltlxB9x1a3hK`=wZ1(F3-_uaG@tKi>?4R<=GI z25oFU4Ysp4d&7GNdml9mb+VtMnYN4Fp9{Ngc2O!+9q6=mQyGXN*HO$i6^H@MHG;F?b(h2hKy(!)*MeJG^o1eg!;?vUk&}HpafIhUNtO z&_X~zWk)5!-z58%Jy53D-D^RPa<&VBV#B$IZ^&oZa;|Ixm>p*=)pYDRf6;k>17{Cm z9^-6S0u)D1h7X7nr)VL-j&uH@Y|WV?_z>nU9M*^M=gOH!KcgGx9-WA}bGFlQ$qA0z zS)h1u_S4~zC+FY22-l0Fpt;qX6Soyt>%)<60P*Dv>;pN;`Q&HF{5WsW-r^MJ*asN& z=X_5e7X@&_A^;u838ETj5GQCQVhQF%P*pR8^UFOLgmT{e5`$r!VM@NjIW?!?Hi8r6 z4Ot}TgM8RUaRd%9h~{wj&fp@b#BugeAuFEKPN&rg zoQC}vOyunS9YG{<=H5h{$(+}uaFoJX*$i1KXU|MYoC7yN zN;!UXG*!m&rd{M!&QYo!T;t$BI>Z~tiF+9yDmZZoz^vqm)`7dui7CXLsN#G{CowlT z<$GawlM_X`=`GH~P{?j`PDDUf%_;f{C^ekY6$r4Fvp)eL)o~K(1nv$eJr@S`oMtND zG;$6+hKDB3w0Gd)9%qt`!TX%AdtlzoQD_lh3&+tN1`jyXs2$=V$BUkcR*o&z*4jAR zX!F|684U;5!P!Thx1F3#zaxk)PVf}`b#t}_1NsrCl+xZF&Jfj*dO5S*pxMXy&9T|*oN?K_4!Gc!O&I9ES|zfq2kQq(a{>q4N6bAF^= zjwhTLnp-D0HA{f`l(VM@WRmkMmC>d+>nT4w%5|l;(T4jp5h%7?PdcQt?XvaiGLI9LAP=LOu;^kBMhbu?MIazF5e%#G{Sg+X`j zvJVi;39b(n5j?onbXModUH>y2d2xScz`&bZ_cdbi;Z{>`p)a?UT4YXg=g{2a$K6V+ z+9_`DV-SCC7_|`waP6;w3*@e!4V56S2gMT1b)OFpA>7-vV+iFg9RNxg_iuUz!?{BO zIEvtozl>{$TPfZ}6ANwOIvno@=1IHH-TrElb(lncIPq!~Nnrc)!3MY=>Pgx0f1%^0^i^ zz%Fs`Q?cqYx0KeS0&bEFms!X)(nhn0J4XBWE8Ji@GB4(eX276?yPww0Qf~UYxCLe0 zxs{}^D^+=@^P)^IIYVrSHHPwhnTbzIv+Aa}S&IFQwIKcgqIf&24Kkh|Pf zf52ZOckf$JY2xDd#v8}IOSk7f_sl1_=w|ND??GC)Rh05S;CibN#6zy24q&ZZ2MbWz zxGU(Ct)2Ti?X^3&>#6G3$(2!#(#5?+`CvDfOE3B(Zn6X_J>2h$fZ5AENGoL@_rp<; zey)z*_W`aW)#nGf6+5B%m>ca3lp(HnB)DO&@*q$~xU6Dej&gSvz+jAPppKq#?s+z3 zPq=SwKr9p7d;6jCl=~Xp>q&0zVQ5Zq8?S;KT>vEkYHL1xRdeGKn*yys}EZqK_@ z4$gtsMBfe^*fP2i5o>o|HD=c|0+lmgV#8 z8~}ES_roMmF7xKBgLwfjhz>RjdAvO^DB^vd2CyqUuRZWk%q!=Dl<;!up;F4r*b3+} zo|z6TuJZmJ0=dS^Uky^u`))13DtNEQgRA5%rpf9$@83L-D&C8mAiKePwE?l*@rPE|p$K#v>xx;&W0J3`Cn|8Rq23|Y|*Kn7& z+8bOWugezUHt{~A_O*LF4sEON^E~C?ntA^`0(1+{iMG`bczQ}vAM*OCp|X`1NMG5t z@$NngSvyZa-(Gd_cF?xEleeiFZo7ED(RU%;yiBU-KH{mUme<2`Tm;g~6N!M*$8*_^ zYv|`O>AfA`J)Z{IAdi0-++&^#b^ZJW!4q^%Cm(ceJ5qvq_!AQP{ ze!nRGkF>3h=0}&n(P{nysshCD8;7BJhMz^%*I52HbD$E(&!bcPczy{@RtfyC=xt2o z^WFwn692vB2q~FAi;90K{H-*Nrt;5c!tN~p<)^Sq=k48Xjb|MqOyJ>nPA4zq`!p@Ts$zhpB8`}pT+I_&3vB?aaH--R~P zgZ!(sw|~t4a0)0x{1>c{4fBgS;bDY-nV!~Be!{1ajqxk#g&pU&)BgPlzm6K3C-{e` zX7!Z6_ZG+`e>?SAP4NS%bbM5xy8*X0f+$L!Z3SO6z`#y$r5T*P;6)ZV2f=chx{e8) z{sQMH*hQznP6B^Qx{nKz0uYO{U~wogT?A#cZn_HMv!UW9SWUOwUC>PD;U@$}+E#lA z{`A15cnbcu1E!Z?J8i4I1^ufKi;tk5)=gi*9=b~>1#Z89^Akk+1Lc&!*9VUL1+yrV z3lLcUfJ&gCo@$&yf>$Ik4;CcTae9bgF8wN@g8KOgB24hpC*Z;b3*Lg;2*Kq#7(@!V z85oQbG)5t$XhCBN>`n{rQfd? zDR^TRWakB^D4ER?Y;}N#Y(d67sN@Kk^yR_@LE33J$`$0(Va-KB+F^Le6BuY$kS|#E z5y&M$3)NyT3;v=xt3Ys{wmXFaEqys#Bv`i=<|TsO_b^y0aHnLUOt4G=yQ_kqRs!>y z;LvLbqFm5Lcd0^fh^k_h0t@BB*9F_hVO}L*WrDjQ*g=1}?55!05^%Q!tzqzRTTm4V zm1=?VJZ@c$Ku_I$wStzHA*&NyWkPmG5KSeTdcn1Cq0%6@K>5;L!9v;xGzxm&K=4h1 z4@;cvaSuDA;lUqZ zeqOkgdSg!r9h=f*h1eeT@jWIK~^kO(?ypE6)mtU754EUD-*s!{XJKO zbuYu`JBiQu{2W;TBPq>w80{ue$ z8OR2N#qu4bXO?^>zr*UetRU z-W^1_R6;x^`iM4+j-sCqgE)!&sVa6{Bp-pDtLURvsJMyl(o^m(>ZRJu2~i{+Y{*ZK_zuix^+QAVDOBT)c0GA@#y9@qOMY9^Ac~-Q}ALePIk9!bVx(Ee9ym6vh{E>+n=R^it zNis!E|HAyd=mu@lvPAKJ!XR5DqS8Q)XcIl`7epU=fy)(brCjl%=zZGv=ZStD1<4mZ zM>G2+(erAkTo!##jeG^7kcS|JqRl246p4PM?dlcL4F;~ESR|u#vP9H92i{9XsxP5Z zCenQhw^v1q2O!r(C#eUkT*M84U4`fkcW{*=?oW_i7k%sru1b`@3s-wXH1k8K+!Phk zJbz0x?*O>lqC@m3R*SOz;iyK`K@(@KXl*yl>qNgy2X{v_!3I|^T1Z982GI~LgLg$u zMsSUyYO0hriTr7vzbATc7EtbsUj7zbv*;5uqHYnb&4S7U(XU?M9*T4dn74}N*nqT& z?AL*`i;mG8*&%wLR{KuTyazDv68%K$dymMK1M^y*>lclgVK*R3phRg< zG>0~mk41m4hry62EDU5=WD^gR5z!|%5d5fU`e8&iCi<5?zaAHLH$wJA)UE^AgvhTK zC{INj2ca@4nokwaDbYbHjvW<`QaRH`+)8_GTk#94!P$w+_rcCy{1NT79mE1U<~%08 zKxu`ec(*%bPU00*jy^6P_yb_hVjtRTyNDO>L)5O~Eq?;VO`P}%f^Zi*QRC+cv2X(n zJj6ZJtnMk^HVm1U*oEFdZ*drHxqZYNS3u?~w$NmCQv3yVb^3{G7eIDO-2Vt3{Kfa` zpb{W%T?Lgu@nLE*3KCb-V-qZHqyvi(@v1>^p<;6f%)`X<>2V7er_#(GAwIhX{vyS* zmtZhToJZ?)w77#>a!!jK=$qvjajF*_oe>A`1Q#n#y$*vo@#4)0B3{h?26hSJ15ZH` z#Upnxm?T!v5n8f%vKw|OVo%~y#b;?{J}Wj(!fl%P$V)&;7q6kYCqtaI9Omc5I-0C9 z#lKJ|!g+DnJCJ3G_niRA7XRf8lpL{}5V8y6L)2!FD=y80?4me*DY!iG>msP+iw}Jc zluP18&hT(qTur;=0efBPTmpEpyTa&@ugsJ4dUaJE8Z2ar)9TM{In0GN!&#J z8u!GXQAzK<*!DGCL$kQS8Kg!0^8(mC5YO!ac_>~@$xy4fuhq(CigQQcb*1yr2G-Wxx0>$}tDT!bpG( zia)0L<*`_`9dQnci)fx07QeF}gCpYfqwqc|wkZJ_6Zg^~!MJ$&MmTyRZlb1&32{AL z(Nl5vF4#?qH&gOFCDzcqdsMQj8k~(JuLdf%k{()N?Ig!3t+1DDq+SOH$uwHnk4b)| z$;wf(sRag3k~wrm$0b)B5QMX2LlQ28nj+f-mDiCi;Dcvj|$&NTU@|CD4b37?|e+!`fB)uWvPDv)I6zDJcL=BVx zi6#mj0wo)Ngk6y20UcBYOFkckEJPAcm7!3H@fOU(B=>&;7cL1o1V<5)wee7il<0>c zi;@(313Fs5%7OW5$wKO(i;?{JDaaW~x+4Z-CDjIyI7wwM2ID1@RCq~{r0fP*qGY%e zC`pn*Y86bD9Qg#~tVF=WV4CCw3sll2YhHx+3`wmP;hvLxOuN=hiQf^(&P!%f$9$Hg z=R7VfTT)&M^Bl=PA3^1U#HI!} zxj+)W1hPWOYC01xl8l^&$`#3rA+Rf!wDy6NNTR5SUMg{=oTyBq*a5q%lIjbPU6b^` zidf1eO_Y&UNM!T^RZ5Ds!{E9kfJ(b*d2N#>@({I(>Fg0Ggm zM;UyLWGiJCwUWIL!PQCRe}KCq5%hx8OD3o`+8}AAr{}KZz-MsVD6#+V%uO=G0PddT z6RK<6m;A$nzh+4|wSKio4prlZJdn8j*SjS-ItQAqlIPY!)+WjO0s9+gO_0e(!fU^gyoT*CMOc26XB_W(8_S$iMk zsYFLV+@xfj7L6&%XS5+cD&0u6Q5&h2uFqDwi>k|Z(q}7yVlTB@0cZ#5^GT2$lWw3C z+)?`1f3*_nMtYr&OT}M7<}Cf(ADAxEP5p4|D!oi8xSKSP-c)y~3lo|rq`Fr@Jfusd zkaLn0AsT0k+r=&F$nZK0521 zhS^frXhfYOtu6$)AiXI=oVik$C(yhoE%L_I=1Ko`0a(8D3e_hrN&k$8?6TB%8n^=K z%{+h=O1E$URwUiVfxjzKd)itSOQ*YGutfR;ePmfGZKdi@nRIkF99@6XX%)SO*QK-R4X={MKLU3{I*&T^Z%UalfW9UDLJGUv(*M1V!D?xu z4M>gjokws~D}CuNgj6T}>s^pL(&}9x_0k2jzip6q?|}Ea(w$|1Zj{En3$95TZ2@;r zy2A#T_ob_X0M;!1nX>H`sn;slJ&=Y`ZSy%#o3tX3U7v(+O(!gerN75~!0PB(FZ-u{J=?2>V_emdIfO)^vryJaWbj5mbgVMu2 z;D)8%6SyHG($0C{My1cQ5a5{fU;2w7zX_~$44DGcYWL7#0IVN+Vyv|XUNyRuPnO`KJ zkIU4@q2erCLj@@pS*I4nRkn}9b(59Ts_ia&b{U{g$o{4z%0u=F{Y?^2SqsgWUb0VP z5t6s;D+%m;WUqV&x4yEazX9{4EburC{AA2IAg5$A{|DkP`za650W#JAPy%K1sFD~Y zJAp0Vj9}R*dW%D350gPcWp8BwEKF8g2C#71p4%Y!bM=joMapglBcv#qKh@--Wq;9c zbXrz>7U9Oo=FNrdjBG*^Ze0!MMOY}$6l%RVgtN`kEYJw%--8>Z<#Nj7i_D#@~a zbUKhCd))<^sj@kjfO1wQH$o*%c0`J+O_ynE5mJV%FdqizWGm?h$dvs|%lvuS<3#w& zlJUAA%a-vu@Q@?xppwZ2*=71wa%F1Tj9iqZ#Y2`STSM%WCa7C7U2(n_?OgbGXkyVZZvsA|CgDaCwpCfv`Pve285-IDP?hNIiEJt}au zvJ^8g>tsJur^Owa=c}-*mmN$*WDT;9XjgYv)*%H-qii!BXgA3|qv`OTY)Kc~-j`{q zJlrfZzlK;^WWzMYK9JR_z&(_`co{0KvbbP)Z<8IUgJ!#|>%VtQ7Dg#*r|hFu80?Z| zB*R0uEQR_*9?6<%1?rK#Lc76UnPVR!>yy2I7%Kg;HTx0#fGqY`+?PR_mkVT%Wdaq* zkZkL(Aj7hJ+H#M`mdL@4%9c@&{FrQrGJ$c~3slN|B71Egu3jZe!$Esj7KKzD9`aiH&McxAU7G|FHyddjyaR$2kAFT zmZx0DV2b?pF=(dBk1Yq-S-HC}yr;<>Ux!_~JUSd;8S=tJaOdO`RBg(XpLK%2Z247M zu5;ueBLKS~KSdkcT)77w(O;B1zX-cL`B)vee0d~Y$|d=?^r6LNc`8kE1@a}7Ll?^X z-+@Yzd=*W3SL9t(<}H@@(furuucPM2Qu%snhcAb#kYZz`P@`-UzNIv26-a=Ew;OI)kfGg%GI>~HOXJ66X|>MyHw!2 zFJBRf0Gs6>Q4ed2e9sh69>{l(gL^1Xr**Sc{*N4(ZSq-6kaqc_zrPc9o$}^r zfOW}h-iC*6c^w^@Kaww|$*M>GDV+)T%2hj{(kJhsl1aZ@Pf5*yTuLj~puBf0$Yc2* zv~CW`e+YwYSU!tB)f|zV>M%GeugU}1nEV|5w&U`@li=uy+@TSXO~|=p;GW7~plhF$ zFL)gxP06j)z;aZvlcozB#jaiq+A2P!$;wW#;4NIVy&`o!JUA%k)2{BA;^h#aI4ZWi z1Ak76g;_8^u3#&m;;iVRnw*P*MW+LapN_poK$>6e$ov)C-vt+>sQVLk z!HU0L2TF)yr4pKzFIgdJ#$bv< zNiR^U;;U7VomIFG!7fdKJOb~SV&xX7WGI%dhWB%d4K$l(D(=!Ue_pXC7Is;R=cw;D zTM^m-S&qV%K5@CAnCpxHa}_&!AiJoTpA9Zg(J=;jwY)zMJ#Pit|~sJW$Butht`gA zMF#B+D-@r%gR4}0IssuUsqaCAell-{wMiqC0Axuu9c5AL>N+!77g!pimbU9yrbAe-}Tfhrcw2^LGec`9Nks8gg~=V5l3lN~2vX4?Yccmk3P){h|jK}Zbp{$}ko~LrzQV=iY z%?dz!E7jk?t&h_84RF3n2UaBOIsndmkwAN;wrN6O^l;!XQ!EI0llW^mKqqvhvzF zV5TUS*nvw`PN(~MR+&8uk)IJx@{EJSuE-UvY z!b5@5HV%V@%E56sDpEe8UYsk+Qktxal`qnxSfZRp+v-xKoK8E-l=tc2{i@Q2gOIK% zWzzv&uH17EvI=GVCkUxhxiA%W*Og%Yq@hp{#F$?55J1gE(&~k7q-6Te<8k zNVW38Az;=hKcOtIR%t`eS)KAjD%#&s);>W<^~&ojfzqIy-vM%0X?_oO_mnd}hxhwR zQ8;30R>o3)NQ?4Ys!KgkX3$?idZ;X+{bs9j`FlWVQ@%@`2<=KKWz-$Y_Hx*DD&@=I zuS?mM4e#B`1GH;>qJRBv>gbTQPkC???D~}py}%79x6%|esN`fJ&c{kI zHLMLOizNUXRu=pWlo91Cb6`HIEHXnjrhJKZpX180(}?rj)u_z&xr7q;0j0YRN0mv{k9-?XXjo)4jG=)psKZ2i2b+!~B?PWHv6vQRVz9 z?3`39li}~U>W2{wI;-|lTbPS#$M=xAs?4;lc2oUGla;&bp&lqFR5=Tw;-M-(0GX#s z5Dm^twSrD;y;bXvgZQYl^p_5NRYA0kKdE|$3bcNzL&d;6rSjx}_^aNfv$_D)lm}#i zs&YEh2vWV+0bTEm2(7+qEth) z21Kil*~9L%N~wiGjOqw&tIw$3P6bM=N_q-hoJvI7>Ufni?QauQ7pcD>Q58g6y(Cqb z0VG)^QNkcaH76DxQdLt+aR<+;qK`wCrqa_XO}grv)gT$FZIrZ~Q$imHj8)?!uV0;rUzLZ`u?R5h~&cd$&g>>WT~RgF%E!8MiTG)TEB zVkuNARCB2eQ>k*l2Y=U9_f`SAO4UM1@C}vEZ@7k=s+4`6vvkRY$%A zbd9R82!pk%O;oe0Q$Qp(m!LCc?Lfh(YRXPK*N2+Hi$>>qN(hikgRcJr1s8996VaWPb!E~lEpxQ!D`Jn2b zn;?%>7bif5RJDJ>Zdld60tO?hA56H0QPqeiP{vfx(j+&o@}Xz4=qB~vQRQ4Ahce?;4A8}VgSq zI;uas2TdpSA7XIF)zfJ`a#l}n!k~-#jr+iKRiB_A)lD7q4ZORn1yln(p}wRA=b>KZ z3NTN#FBcxX)XUF6=B<882aP`JT}OfGt4{wDDks(7uz~5PKK~|Ur_^@-h|FJIs00a6 z=T^czP`!zEia~1gAO?fg8H)iHqCQC(e5m>Y9aM#>qv>;vaCHaGFH!0NdjuG*zOo1^ zr`4VIATesEAjrDUcSm^?jf`P>;|O@=!f4fM%=OX%ODq)celDpk2Lb6=WUi zLMGgHsyE+;tV`WRmEdmmCOT4nr2eiPU_I)WC<*RWe@wf`GM?gHIo;CVyDU82iY;rWjYCU)co@~h?Az1 z3zg#CQ{4gY9-8tm;K5VV_6WpF z^W`W|yfv)npy{JAQ}X4j*-8_{NzIjMxFSEz;ZCTW(#)cApTDNv4VnQO=lK8&)SRat zx**N?a*$xnX`1{)H1>9gI#knuEPqCrhWQz|aE;_7f{4&~+QBYTbKn@jqBI|!fJ(IH z(enuRv_|wU+{S3isVa6x(?FZ1Sj|EDxFJq+M+CcgP4E~TC1|8{>YS*Vw*b&dns`bJ zlQp-G!yrX-hqkM!nxZ)XJFDrghe4WVRz6VDHHG^i%g{W36K>CGq9Y;8)Es#h(C0Ps zTe!?D&3hLBmaX|}5V9OinGEEDCX9Ajxtg^!vtQKQVZuC5^E-W+n6EkXFU&7#N~uP6 zSu;h)PX(GZUwALn%ua&aB8?aA3a)5Q>;hM;$yx-J5>4zE04voDOoLsSCYsW_tC~ZZ z@P19>Kzo^T&2C!lD>MOgVpOTQ-VF2WnycUe)MQaQc}vsu1ypWp z-fqTysn)b^2Unx{mHNnPHTk;$R;Rgm0O8)z%%x6*dX4Te%o{WgG#TI3yefrVqh_KC z{+cw3_Yvnk%?h3(T7}ztUvfqIsEGIv!}Wlx9EFWc>)RcFmb4`0LOVi=f%5 zxlKu8m*(*VNVg`R(ve4+1GAvnqltbET(3rV0$iV_G9Q@zn%5{-9MFU@5X7KnAGK{f z);O5pVMw!_&VhzCOEaM|qM1i8`lx2*5LCuA?=%5rT*HsTEqJ2&lpf&;jfLvhPc>h& z05+)!{uyLSlk*$MQSEcIVYJbHa2J@i+Jen6u+zS}0+{yN&)30&gVv&k+hf{QN5MI2 zt7e09(w=OD-EnPe6x=#%J!mWBqOI%#=c=`%&jj4GR{CVmUCX6p;e>Xk4>%9)Iv1FG zYC~ui_R>0kjH~t5zDFI3K3e75F!$AN5W~?)?MC`c$4`6lAAp_GX1@sof9;!eI2)kd z_a_VjwH0Ro7NosOi+-?niwz7ywB3E+LbZ-`>>s98&4Ws~R`VD^L}=IT0ZOFyf7B@x zrF}~2d9;>GEybs`YWmYoG1_vfo1W1MsQ)@v`wtx_#A*N4K_y=M!A!^!v_H`&dx_cr zT6&VS%1X$RwI5OKK1JJ4RjO3&{`=58tM$1K4{6%c9(YgJF1rDep}klDm2=wQJb1{| z%0C8oUTa6`R+e`8HwZpkYg`Ju9PO+K$S!Di(wds9UGxbCFKU0J(s-WM_bZTm?Q`D) z^OE)`r2v<;{(3}Kp#8EJT%q8t6_Ib(`E3{83mP&1hD-5n{S7aj2Ds2E|K{vExRNcC%bt{C*E$yFoV0T;Fb{t%_ zb`C9kHCq2HpwwzD@8iDIX=l*Se@AkH{89`yXy04|=)2k(VAsMX6hRg$@%RX(Iz6>(Smy!Zq}26AnYAPrHQnB>mb9>NXhA{!OdX zpf>9y96i=1_(L|Nb^Q)kG_2jwfsjVDjxR!GRI40@!I*Zm1_6$1^E7buL|aVR{e*T0 zrG-zm3CqAuYTeslKBe9E6WkuvInZQfqca@pP{Z3Wf)N-SF4& z5TN^&KA{WLeVUKRf^@uVFb~#E&?j^uy3{Thgz83D03}Sfjq-wU-RqR-M(7gafElTK ztqdwrIudsHcS-lnF znVzg_-6LlNQKOrg4q2_vy#mm6I=3)5x}%#-D)qW0*P+s&Z}sx9a4d;WFEFx&w&1UDwhB zS%+@lcYyBHz4tCqx^(A)pxLdfEQ9$Yo%JoK^yqwlhf1&R>28?!>E5DkXTL6oS|tW_ z&%6b&LEWPN&fIj%X|fv9{YqumVV$iKDkHi>R3{qMEuil-#&iwzu8iwq=y2$X&LIot z6S|jbAbYCoPec%tx`2)FFr{n#4CJVOc{zxUzTiuM+3F9z20J^w{TS@*^&Hw1I_USy zV17*h`Xz9V`p+qqcGCZ}3Yy3DpVC_FtpDdWh>JdU35d5|+KOA}qYuA@%khnv`3ll!QZH4oerO7qA$rAj7=-G7xq`tkeHT3;;rc(Q@EM{1xE3gp`q$~9 zjncE{(-Ht(tS_VcQlhu*gsfD* zf;Q)6`h|4taaGTx(pc{he)aTd7Z^W%s)Nn+af6>E{#54ZZj}G;iro(UIM4 zeO?tXtM#tb(Nm)jbO5Q<=hGS39sM8uh^$`!GnG0U^oMExcUP~VW2;8}Q!&h&^xd?o z-P3o|`p~Rzp!B>&&!8&Y1O3=6a1ZrKbc)fczh(=AHodhPT!+5;8^}8Kft2KT=?_?7 z-lH$r5AVJDFR2Z!Pai}F4}*HUNrd}Y|Je-4hV=c^$~vkqa70LBIE4Vpxc*0~={(hU zM8R%S-$zG9Q+oLfaJGhr+rilxD${{tZ27G>3r$bMK`~Ig4DZlx*V}NAwpW3M?a8>lAVc#F*aaI3s39oC@Zo<+jX|x2 zqcFo59j`?iF zaG)wcg5gazf=D!oX#1FCC{F;FVpv5L5qvI_=pD(2)GIFX3#qG8sH0LwGnr0gl*Fpo;Wmkb;y z$Sxa3mt(NN;6NL=Lc^cw04p*?(9?Rw@Y7sy#fA6A{$_z(-hRRjL z7CO?pX4rBGvU0-#%E2lO8ycZfX_(4`+v|p%^gC1;e(Xemw+wI7#`dbkN^uaI1q|lcD$zptKqM zscg`0xJ@T99R@$@km@un{sEd@hII=;x(%!^f%(X=V==fMgUxQ(^%~r1ztU$A?uMg& z!&fwe4H%-SrE1X7L{)&t1{Vi_4H=&F!(iBuO7HZDA(!@JqlQY_fsGl4snj`cc$*5X zPYh3~k}+Z6u7T!LgDw3rgh|8iy|{x@hU6Bg95oIX!p_F%wHSl8#>evkZD)*I4-|W2 z%3^R1#tXDpJ7#pF6F*1e|003nWEAK@jvJ)|Kyfz8li?|`b*g!#=L3}PvavhXL=bIZ3X9ToJGl=kMZw4K=Czl*1`Kpg++*Aq@ZG4_Sm&9Dh6YXm+Ju?XT*O? zjd#U(bPJ#pjQ2MJEYaxo0yLA159n%>jh(ber5J~@5Ou0?4ZV10jh}CV_cY@Mddky{ zKC5vaNg)ZN3K~$2K6##8&|G_d9Ja@406#}Q4d+3@#~xL zo^MQ~^!1W4iyD(J8^1UUuD}>!fnA}|{{=u78JAFh>lNb*)4>%Rzl(!PiSZEKkW%A2 zA3#=SoJCLhRpWFn?5-KTK7p*<`0FyrDvVdD8KctZKr8cgqx4y5RvGVjK;?$9<#(vu zH0IXgYHt~BHiNruG`s>*ZG3q#NR4rc6r|SJO0qiR?}uP_#~5=R2KC0+P+V<;@vZ=v zca0lpZEQ3ew<3rp<6_zn-!mS183y-_I{N;h+4$o&Ty%@^c_GLH<3tz+9~$k>!JySx z*$&cXJV$${cB5M<>^h9|cLB50_%Uq?yNvl-40anA{R-$u#%L-U_866F$a;<2=rpO% zxcV~;_8a%PL36-(o~n0)##uCLJT_i94V58d>VF5K#{ZpyY{d8>HJ6PVS3X2YW5#zj zKy%!f8V2r((f(UFnlMg=K;@}X{3FPu@mVUMOc_6>I@nPYi~dgn8`Ce2Ft9b*Q)$)C z^ye}VdsB)p?vjHk;u)wMGp(kB4o6ebL6|$4yf=V5ZhDh;^UkJfnhRV^6E(neHGO*# zak`myQm2! zoP*5Ylt5qE1(@#8NkyP(-4Of*nU>M4A8gu8EfyiBnf)*bHP!5ZW|&DwC;Z{2cf5cZ zVRDt>2Z%KNSPr`=lVBxOqD>|#x}D?s8*5&=9Um|Uqv zEz#6QogGOg4Ydj;n|f&rm14Tq2+gym20D08Gxgj6mu~u`1JD^JHB~3inZ`ok_Pl93 zIm$AbsLdeT6rBRi9MiEna2HJLDObE`N}>!t&$Nv8u=%ElnYf|?(@HA$6`GFygKIA` zt;&O=64RHj;2KIz$>-sy%=Bd#P|8hQH`rB}zSsfHN)zuQ+}4;>^qke2lr)vpnHJM# z>yGKH3%GjIKH57qn6ge`@UCeVp){I&v_NSxeM{x&dnPUI(eIno4*=F|`e_JUi>V5Rc z*lqahF*TJyrPow!gk7I0+X}mWQxH`F22A_t&~wlv^Fl0-O)d*?DMO}-QkV~$UJV5| zVv3}rzERWIyD%R!c^ttNjhm{TV(^K{g=7;Zg&vVTHPuK#CQZ9-L8eTlK0rBY&fO0W zHs%)EvD=#Q4<3EGM!`QrZj*#n%|&Fz{zZ)Bgy0D3Cb~@&1;9? z-NpO|l_^}!f6$cYW{#jru)F!`7r;DWPM`TsbHoy5f9Q&B( z(xmEZ_TWSFqDb|-QVm>t3`mhp&TfI=5bf}3o>WYDMql_W&t!q z%tyvy7iw0HKqbulQWT)W%}FOAi!d*@fh^LTuESuInei4#w7H%Ru}+%{s5}*8c1-|g zoY_SI5^r{)zX_CJo=*#HqB-V$m?xQ6hXO3we1jSQQ_Rb$oSAC=<8uUf)?7|qNoi&; z0l0MY*QX%MFq^16by7tyZ#k@-1qkRJ2AmvBRR&GV@Vwa@(BB^dOZ&%J?I2Fw{-;C9fQNOR<4 zbF3UFL*_lSstubNVUUfO^Qe7o)Xbps{xS1OO3%m5+0P+}C+6#v=}edd_QAtb^V}Dq zGHDK{J=c`^QwGRUOUVl`x3Mf~gMqE()6c-!S!O*zWcC){G?+VBmMTGxSsJON;Ap9E zg3QU1w+Y;F%e!<=;%uqv1#z)3e*&hfrT7R?+$>jPLEJ419Uwbl**gLh56g4Y5QL}Y zKrv)qmgQ8L^|s8RAI`^O8v+$y%R)-9PFfmQgY&b*eu0ZVWf_QsKYzaL-sa-^O69CA}SP<18<5z{Oi)KL(dzsi&fLqD7wq=p>7w z7AVP#}7p-LnEq=Ml&X zExd1GUSx@+ecTm`GacuZSavD_U1phg0J5u=f2P4-rR6nxq^?_LQgP*m<>((6yk+sH z1H(E?0!=K<7JdpaJ1j4;K{_q#slwA``Iky;-Iiy_;E~0SHYz=qM;meNy%rbR()3vh zsh-tu`AY%20n1@8aD$dl!ytQXQS1ctkmZF)pbT4np+|AV((o&;Z`9Is9^9D4$sXLe z<%u^`o>I=owoo6$E*U%%N?ytsrut&y-In(aqBm)f^)XUoxv5kSf6zTakWl70~9yw ziYf%}Zk2=}mJ`-B*T8vLm(gqCY5m9wOfT!|oiOmWs=tDPk9GM=0Q0q$QtRGHYk@Ol ze%4qfWT&jVzJ@=4Ytl}T0BcDc%mc0WX(kG?PN&%>7zQv8v0kIY#8B%qZBPlbo(hC{ zxYhGC?n{I<{t2KXtu6FYMp?H}OGmV|h3bl@t&am>9%FSIf!j0IlI?I5YptPFCC)na z7Y5_4270R!tXeolTx*RF>@HeesW6{sE!z#v zd~0|R$R%sjVt^G`m$ZTuS%0PJ{)#ot9hzm46t!!#6=(C30#2xInYD+-|tcMt>=Mf@4Xjh_H9{KW@(yb*^r?uWp9v;GGr(MvOz>ZKtOPy zG87aLWXKSa@q3?sf1TIa=X0NXKlgmjITt?uv>agi<2Q{6V&>zQlmPn~gI__V2lO{r}-<5{Y#M=*|A0FE$5X)B3jloi24 z6vN*SdeMx9yI?Gav4s-rScW4_a>X%9XznncQAINg2@EGX(H>@LUIPO1ke!k50N#OZ0Tig+@KQnqY)B~6y72pLjf8l`_#7sSiID?tXwtyJI6yC;C zLYdFf;U|naO=psDX58Z-Mle6j1~|ej{vF05na;J~MKOz(z)Cdp9oiXUnA-;6A(m-J zJ)$_~Zzd?jGgm3GlmzBo2Z$VHdfozdjG6rwutcWdX{aYLdmo3fWac%RVoPCepdTlV zxh@(Zr8EDCft3tq+4sOsFh8Q2z)5D5CxXai_6I`p6w_}Tcv(yxZI#)~7wN!}!`zST zX3lA*no^@&=0B7f=P{?KtC!DI&H^Z42GJ~IA=8e^-$l%M$pFR7`Mv<9%$7X>WlTqE zSe#`prH>6NnO{)>rHy%Y0v_%#Q{IL5F6N>dIO=AuyaKF;SzZm^U1sbMR@BRUdJL=W zV;-jz{2p`uUr_I7?hwJ|05hfpdV|d4eUKbtuApKp*{(4Tn2TLJCEW+?Y%f6XpxqM6#9i%vc@^qzcGqdX zz}?RNIMhAt)=`JU)9zLJj{T5bPcIY>+x_$q3SM^SGa=$__uco<^RZLWF6C<%x)`SY z?CxX(^S67_35yP}ldpwBpxyHCpdMuBLA!Ub-M>NLh1hM}2Q1X?TMrluv)e^Y-Eh10 zRL_dA+dxmNXFZ}zZtv) zyQgwt`l#KDTOo4HZiH_3L_7Im*i5o}FCYGr?HsEhl4^JVeJnc7?$sg?)9pTSgGh#5 zh!2P-?B1XX@<}_py&z`Vy+?WLss9IAcG-Ku%eD)lqe+e(hvGbKmqTZnT)T}|VJy$i zuNorxcB|>FU0}CxHY5w}zNR8`kzL;>2&vevFcVm*-BoJHl-Xs=p?=n`kou{WcKPR^ z&}O%J2}Ew&?fC$p+iv?AnC`LrkRI5(b{wkA_S?L!7joW`00QHCVX}OS`us=5&jvm?XErPL0ds{0!Oxb_35!kf7{x+=4*iRO~^nR9- z4nNMUkwq}(!kR(rV9o*7n|z44vTT&;xUu$LfH8O0K_)N{*7;jd@MML}0yxC#>Id;K zYcaj*yjb7tfuuL9m})_OEd5`w>CZ~O4z~fUWwiMRu{QU>Z7^$W9vp?SdgybhaF)Ry zRw7s-99TKR$}h&nie%L`0gGZaQvwprdaD>A#ju9kZz^`Av63nOOlLhk43NS4nO^KC zSnCf0oMcI!OLdZsK=he;?w0h&9YL?kjvtog_S(kk&6gE zpEZjz&H`425t4;0^L9uUvAigyDrRL-mqMaE9f*10j{M`R8rGAmz^i5bM45O!tDdU84Xm|cxDppx zkB-ApBa2UCMNO|kv>3((1mbAyN5tku3)(H+)C zdPurhr>MNq&AL+w(><(xS@3?B_4wx?_OeoFZmo~??kd>4$I7D8aX)Kc4|oHtEfG*3 zWQ9<{ZHSe00N_5WcLgFFW;M~nJjP0=qwGW0Pz$_IuwLtcu}7@r<%oJeyZd(p=*WJY zE{GGm*8vL7?2joH7xq8Yf;qt6Kp!@`v7bqUTX%L!3V;XOAOp{nz48_$53%bhgFnoE zg$4(G*sW9r_hlcI!v!SEpB+crS^!)6JR}3zbExYT!k(gQ7Rt_~B0?Bj^*kiQ z*;gwDC7IpP1j!V(nnr7mvmcy; zl~lHb&Uk5TueAswo&751L>X+uMqnq{sVDhK?B`d&^f~rUYF|{at7w^(?CtcVR z%2x|6By6^_d;a@yj2%J8vUavFor`a>@6yQaEw(fp7o>yDDFf(ae@A)pZFVKqC+@I4 z*WoI4u_tH~?`9k5Tf`prqTRsmviH$ASufjg3L<^%-*3V6J@!5^0_3Bkr|CXGEGLhOcyXM*Vfc&Z zd`~^T1kTC7Ks?IP2EpbrjyDyV6FJrY9RoSdk+7M}IZP=>3TKBq6pnNBbZew?VqyW( zIN|RAq;q!CK`evgPa~-(I6K7fcap_}2K`i2YK*ghC&gl+dC7i}$cqru* zwS#zull2!Q%Q$~eAnLQ6WSa9R=j2QRoa6K}AX34J_zfN^Ig9B9R>k>A3d!@Fb-gfF z&6z_Rd=2Lr>dn`3&e9v`0%wp?@H)<^<-qDW>9mbDa2otz>>}rlmEbjU(&!}I#MwqC z(@Pvj>MLC4lwJh5!Wk=tod+K!B5+Xqpb2 z;=E}9nC9eu1cez+1Er|@xslY=b>w=cz`GOoAl+cjTo%0Io~JxC=JKW<5Qo_zUH(rEk*0 zxZ6q)Sva?pj=&Mzl_LoL2=`U`;Y$k@gnCg+S+`(x`#&JK- z1~H!NNL~B{?z?pGJIZA~k06e5zoza$BKOEes3&oAzJb4FF8>cmrf?Th3p|m%-K1(|Cf*r&G^KZVRPbncRj97(2y1Mu~M6*Pw&jZ0<@rLFaH&U&e|~b3Hx!SoYv}4}nis?(2TihY~aXPr% zKw zJH!+9L*y_|K+E*v&7#NGo41h)Sw1{rv~soq0(a@uZFH} z5U;`nUNEn9FWiRknm>e%hFM^2VMba{(cnjvk zN;Gd%AV3VSbP5Wwybk)XF^(r*3CVcg^6$Y*;Ehp6c9b_pnNoCnUWWQE;cu!eHpQ`AR4$8%T%e-%8|=fEm?oCw&g;{ClJlIM9X zd`MRFR?`?$4KIosu(iA|cLH4Ch0*kW9dFrXfO_6nG^*6V^LK%b%8Ro=(vL2TxYP{rjM&u=4wZ{a!9&)CX)bs0q3crANj zvz^DFV#iIM=6Oio;w}9fZaa8=^aOPBjP$YVZJr0c*zfQ*Y`_}2c+cnox_RByEAQdG zwFnA#c{hHCNH6bWEr@-*Wpt<*;kDCybCj1yC7Lnbf>ppC@Z1u?8|SU*1@@5l7>&V9 z@Lr|c`w=g1Is8rX_EaFiDc;dZNKW&f*#Y7V@5{5m_VY&z;oXt{sulj6_%W`~bLNYa zu@o2n>pJib@Sj)#^@IGo^wMzUKl}=dcH`HHpy1B$qP@q1&wn4llm9t&5fAbII0(JN z{QdOzRK57|qrklRsww#M;p^&Q+Lu3vrjGsiq4X2`^EXnNB7mPrmmrWos~Ef>zW)qt z2J=UL1TTdD3$-Xh`9JeuGmOvG0)+GHF2Y{~zo#8mj__4VIp{+(Gc7R`T! zzU+?SZ=?M)mVb_>_v82vwGfHtFAGL23H%*gfTR2$sJU>Azmf_liTpcXLp_OKMCHt6 z{?>UAN#S#;t$Lh4htl&@zCYbyX?)}B5J~5+qog#0KW8Jb6Z~izg*?f>OYfX4e&3%6 z_cZ_HCJ=M^dn^EX{3t3<<@5ifWft%^{08+xej-gy7x5pwj5v$=Mg@o^{IeMlDdn$w z5ysB&o2k@U#=j~8?<_yz2I4H|3+c8w$9MFEWCg#HMo238N$Vh4#rHjhsL%6#c0;|I z{{khtHT(x+=+*L1Z34K!UqqWu9e?Lvh_jyGJ_@}C{zp#maFM_CCtSfs{`2%mrmZ3e5c}5dDL-5!_ z81octBDaSGt+N3R3;bRO@DilO!h^RUjfU}k1cfKy!B^lC19d-vbPC4&1&_JGUx46T z8>|Ehx~Z%cBB-Z&PpIHex{zUlaGJLX7aS``5D|jAbb}octS$tI6jT;MFG|p3g@S?w#Pp3qq*qlpwf5Pw`Q~@Js4v6Oj#j}A`2v*I7UZo(Pj8zFf z-4D~}1>P@0y;`v04vf_ZCT}3zT7hi>*ad+*m5%EK@l^e(7c3x04T72|h+GtS+F-0v z&>swuCc)+N_yH~nmihy`EXb8XR<5bP9f_66tNho86GSBWR!*`7Xh3>W+5{ zHqz`!k05pj^zI6r4*>KEQt4dPCzz%Z)ICA%60Ejg@G%u=2Lux~s1FLFoWUCs+@P=1 z?+ZlqdE~IbycUi|1m{n~(WqeF7XV{|-BmF5K=9>OsE-RWQgJ;W2~KT;2WdKEk<=V9Zw-c@w}-c=0iS zKw(EDctJv*3?T&zZM55j2sf4@vQT0EM=%{GT(tt&5nxb{m(W($Xs08R^2=t0O8c2gxkPspeFx_sew`XZ-5m`3l8LSZ=lLB=BCqK{#$ zSonk%dL_b*)ZHl+a;OY*Mwm+x{CO4ht_c%Oz^)5t-vQPt+)0h%HsLM@fOg?3nsK=){G$%0 zZwW)(dW+rn?2g~%OYuq&3*CA|I~^ty$=e+H~a7#Icby~54yAodB5 zqaiToo=~<0ynf-legr=t40MFZpfG`s>O;cI_ki6O4$x_7Sa_8Z$VbAi7!W6gm#OYO zCEU9jS9eCQda1m8hz{3I2R{DzmplBbZ4z8lJ zbbNFZo%{#DU9{vID0qqLR3ZgHu!bO*!LP!y! zSvAl*BKo8nAX2o}9lR*fZrVSiMTxBdF`^U0(2EuAVFQa3b-WCbcv0&yI7$%x{xWz+ zMbUJl91}h4f}=!H18oAwMRkn`B2~0-4gyRQ1x=dn);p*NN zeenk*?}%>tAowoPPTE+yMO92l-W92T1J)~Ys(?bD=s1mq-4m^&k16^^S18396cy0@ zIV2i&g!lWRU39I7Md1ekMnndBw8uovlx{r`y%G&ar%_KTNMTJI=s`wBcKai0a=oyE@d&N(1{L?z3E;zbG=a}_fwIdK!O zGCH&&-hrcVF}~Kqoh*L(I@F`YzGpy;7KeF4 zGFI%>0%Dx_Pa4WTDh~Y}yklZ_Ivga5gQ@70B(_TcFInvNIUJ>kpP&{@s(ABj2tG}G zbzAgYL5r6gzK&kjy`l|hmIOP}Um5J@Y z2PhX`rj+BHcwh!tg}9PZ>GR?>e1K|k)Kx@QBQB(aZLN4b58#4WzZ1kd@q(*Rs27`O zgV-RxPszzevHw;C(J20dw(TadGqr!Oh#RQGcvbxV6|A9IJWv9WYvNPXU%4(0qOQ;l z@w@53TEx=hFxD!bbp*sV@!o#eY!^$aVdbWHng*V3iRVzx&>{BO0xO+j4GnPK7N_KZ zct_kcjmz34UJwe&ZgJ}8FxDfsQU&X-xQtq8y<*!sNcM^293gT~y!BIH{o=$3j}dryd)i9SnNwD+7a`;7Qm2CVFt{6Ix?M@h$hSaFhk zzXq7I#LWQ#x=7x?4Yvm*JIA4SP!dcVgsWtGGDO@Yd+BZAE?I8^@sLDMC+NeHWzRs; zOCsxqm;ftbk|PcP;gSg&fsK&-=?*JLBmLw^nZcDOcvnQ|=$x{JvbX-!}0FWy2 zp`<2Fl5`9pUD8EGiwsF&A>5vjq<#bJq@>mlSf->p6CO@U7Oujz&XOFaZ%wi#Uojw( zBYD0XBBv$IV<6^A?5Hr2CwV>^vE)lSD3dFYd{GOLLdpDgC=^L%y$Q);$Y?K_@0IW$O%Y^zR$*ju= z;~IIEvxnsw9vDVzZ>j0Lg2TRO;|wm;4Y1g&Pu=cz9@$41W*MD*56mNVZ8H z(PUM-q?4Z8o05S>IJzaVpMpY%r2i<0oe}}n5^hT-KZUV767^>Ax+E4#&$}hbAqc)l zvXt8XcO|iOF7A~$P-n7Fa(f;`1|+352yjr+8VivjNg8cP_az6p;0;Th=m0(VZ;z6+n=5@h1=omd^eOScr62EWC$G!|22wCjIO>LJF7eejMH-q#8OGACU&! z1&EX`pAC^HY29BCiI(ap!;O*J(>)(6J+~aZIO)H80OF-yRGmza-dYLXQEAd^@Ni6O zE`~y)bmk_!CrR~G{7aVR)9;WX4WRq_xO6uaH`AqQG@g(lefB31Pe>2^0qmr7b{Hfx zrQg$aIVBBV2+1s|ibmJ7rSa5U$dMXG;Qh2T)&n3{n&Se0dD2`dtQ1H$hC{MYS~M3| zsYoiX1+iGl*8nS#>XRUOMp{L|mq}-rBfzuL3YupqmkzuMk#o{M7kH?Weoo)HotLir z7rbie&?XRTq$yOOy&(OGnnQKcCG`OH(s?Pk@(t416%e^7oqr!T8>Jg4O}i{z=MIr8 zQpsFkSEavD{?aTx_b*IelZJl|h3nGuG`Ds`s#77d7HQpFsJBXehk><8>#29$E`9Y3 zR&-MueHRM1q@J%pp+ovw33#2-?Npb#EnP-6vOCg?D?#j%K6x0D-O}UqQ}sx{Rd(sWx0qd8}TaP#gq_0!1I4G5E0X8J{9)R9`X@3Ml8kWAl z3B(a;-RHnYrSmAo8I$&}f%-$~+V8=ekX~$s%|}x97touOZW{zPCDqyhrlocBpf@8u z#Dd;_S)mz@9A*E|$JkD?wk!~xW#3oAii>Q5F605(^Z&hUWTP}M1?4>tAJS@AM1mG+Cow6=J+45K5)?dc_2I>K_SLi?-C=*u# z1j&S3!3&n{qN7l#tmzv#3X{!zf^frS2WgHaLRLfx`4QRi(}*)t7CZ|gQ8GWO0Y=Lf z?}tc?tScAlu`=EJuo)*SKMjR=+0E0q1PQWC`pW}HWkXc7I3|1ZC4`$O^Ps7u6qzI# zR*uU)p{i!8Y-Tgm(_}BppqDNS*aMIui&_Y`Cu9qH08YyK>7{r|)e;k`h1kX}-SvNz~}QzR>=%3iT7ifZsB zvikEdRwk=G3CXjv-Bj5tmu>w6#B;LH%~)TB?3G3kt7IZJtelrA=rB?(+xj#_YGeng zm3cw-)l2YRFXPcJ+#uUW#g&UP=V^dOSu;JpO|s?3VC<4itpvC%vr_(YMV9kl6-PEn ziF~un>ksg*$>j89+jSZH9`ssdUn~K!Rc6`@e{HgPpMlpdyGF(0n=-$Pi29a{lLhq- zSv3uYbjlp4NpM>>+X->rku7``SeNYe5UinFHlMybyDM|^h4)@rFpYNi$#`@QzbA7~ z2I!a7(xy5fTcm;BploA4upwD5Wo!3k9W>-OESpQ&{fO)=m4rrR?ldqnChH4DNDpM+ z)B9muW@EwML)mO+SecN`e;o>sWJ7I`oRsaVf|V)R9%`XY%LZ>iVMf+Z8N_~hqaUm| z%0IXP;3OaSfrztQNj*Ln`8p>Ae?X2l5MC(qLTcT(%6Gbf=q6u24J)4V9%^qNl5hML z3Ww#N(0c4OsU0l?zq70*L2Uf#9~3JLO{x1exTevoqLWAga>0EzN%Q=y(Dj|hZFviw#* zyr;K{5v|CrpgDX*pVim{WL(jd^Zi+WXL0S!1M|Eum9cb@`{UCN~U}jxjiNS za6foia^VwD&z5&3f|ny-zXH6|a<6A$I#>QT8zOmfGo^6(^0(t4Ss;I6H$b7Bdjldx z@|?rq70Vx+gufE`FwL=)%9l|rXXK@{FO|s?=pc4h9!#~Ma{2Dp0M5z(pggNe{_!ZT z#Cdt+To9|}oxcIp$p6iSdac}@YRwnqoMc>(I{6xEwb#p^9*4gMxt@OFi}GG7ZZ^t) zqIt|Fxrz!zm*jiuz`HDu8v*f(JpCLZyDHyDv-Qn#Ep4jTQIPc5n{?}fUZ+r{^j>*G35X1v{2NlD|<>nHIJd~gC0dGS7zc3IV$?cXP z+)4Q%I&)3QJ*e$CEw7|M=`|z&JO{-6il1pf+))wx19(n~3VL}vD*}69+C>pVTgd^% zoQ20@G>xiP@Er3YH+j9V-6pQI^Z$v8|`~r~}#i>Z> z#VSH+m^4l?u?M_(#SULsNl@IPsE;a6(6)9=aq|=K5*7VNp_ioinPw-G6~g7bm6O8;33 z=3YpiRygH?n5!sW31Xh&`5=Hog=ho{MT(c6K}f}lb}A5+C|;(bXsKca9Y4+}?$JxJ zOtFnV&^W7*x8ll|E9|H|d`=NaC*cZ3ES(A}6*)9cU8UGbo5y*DJz>>~+eJ{QQ54Xq zOReI~cOiK}afoi(Iz@jv7G1BnrvtG;@#9hiaZ#~@8vTumRfnL^q{yTi#3h9fRSPdG zzW)gUUQv|%0PL#5ISy8u6^CX)0 z0i|6br?c-(#o7T7Zz*o3z*vXk$)~{URJ=_)%56n6o#XB(nwYTCrI_suUbo_X3s%&l zD51>wuA*l@BzqN+MyU5GvW$pjKvCQWFsS(Y5x|h*R}V%bh)gO@J_CPKilsM!O)DqMu$PvW-%8fb@9hLRJK*34r zN4tizatoD}U6e_*Cm&EQqi5`(@@+a)xGMKqAmXO{l_qH2mH$w3>7jhm0aiSf68a$d zkTNO?%RHocD*NjI;*{S|XDeR0Ob(Es+!~5y9#vjh57Wn#=iNX|RDMBU zh$blu{{k^tS(5~iqTEbxgyYJ))M!jqCXB#)n({LvJfth#X&=l`PPTw|Lb;#1UMH3N zjsavU-Ds5Vl=4;^cv;H5Kf*({GI}5Ma+G1Gag|OhH_;nCS1EZJSe|kvWdixiDjI(( zQ2yEv^+M&*9}q;5vXq|bVx^rL-p?q@>8Mbq?4tt8S!F6Uqso=H>EL%xX?O;pLRm=# zqDtjJ9C%gAIQkvVE0f4{werwmSgBD~(d0_4au;R47nC=SLZMDsO>c{O<$lUP8Q6a`{wRNDHX*QC^Kgybcq^9h)~tn4!ayP|v$29c}E#q^6cE5Aws@tQKI8|v4U zLsYuDpUDzqzGs2^}ssr?L+x0I{t3(*cG<3~t#Didf_ z_qMWzPDFQb=U7S}61>SG)(wd&(9Ei1aJp zqNDSG@(SJ1gUXK%!NZX9J!*{ISEkWy@31od1t^RtbLsD6jw;h(xqj;bp( zzvQH1L<2aho_rowTvVy;uyR247R^YwsWPeD;I3+=9oj?XOTYACRqHnJyi|_#F7{US zc;Z_7sa`)0%wHvb3F-kVe-ns-s&kZk2dQ48?I~DQSBY4{R9^H2Y`E&T?En#~_8m|- zqPornh*Z7u6fQxOD!u_8qE%TL05Ph0W`J0goX!t%s>Uy1EM8SujrAp{f~k>uR2AR} za7=Y02UZeQQZbg2qk`Ws_(YLbcRY# zuj>=4-HlkvN!7EpSbL_brw6=Ks_$uhCQDU40Fi7}CVeZLqk35f?6m5&*>IGr3L62I zr?S#XDqpph`i2FnA84wjP&G_(7O6TDpjWJ_qdIhnDvk?Ks;Z+}>={+qVeraT=I7w( zoJvG*yb4uX0gP3uR$d3FQaO7gvh%7~>fctY8t9vY8Wn30pjP$a1H^ejWujhdo$6`o zQ`W0iz6a9{s%M)aa#3}JW{nzEl^0;8Np-vv9xkaKzYOAKl`HMgS5#hJ^}S+ zm5yczuBpEN1pcn8{#}G+-cZHTAGmB$mC~-*s(Q@|(5Bk83|87zOQs>xq1s2a-%eGJ z6yUZhivfS#s;M@3=ust6u6S4FNpncOs`YY!KGn07N8VFq)38FnO36cH1FD~>M?0u0 zd=FqqHQO1)`>L<+!Pv0sb2^TXsLD#sj@kew zR3Fl|{YZ7d1qzd@r*6UDjLM7hUeta4y!+Z9(rEt19Tqq zR{!Vuct54GCWsDkiPdrEJ z#cv_9ICastAjYe|pweoBI_Cu39#y|ib;V=qsBow!sz3c4B1!7<9f&MhJxIra6!i!6 z1RPhde;>qD^&;AB($tYuvr1QA?}O>uNoKPPPgq4%(->*O~Q+?7M#!jhUSqdym z{XN}-r`4{s&E%`qA7YsW>Q_ESfQ9Ooe*lWqPt%{1C{`EuLZn3fE=?Phsz)esIiqG# z*{)0-MlaK|>M1UG73zIdL6039{F$bR((MSVzqit8Wd{OTZ153tA6+cL@ub` zrw&e?S{I5H)vK+KA>2mwFulN<)QyzaT~fO#p>S2*HygZWwI6l1uBp$^hSZ`~Q%SZ} z{Z%$Vo4S)u(6`jj&>N^j9ZZe)PPH#>C0*+9RAAle?`Tx8N9}h9B7JJk`>=9PE%Qe# z{pz~Ma0Q3d7uYpU$wuR#;| zB|KczeCY*Vqo$G$y-k|Q`*3tgBiRbc%bGHp3cRBEs{%n>)hwW{P_yRKw;_2=^D#B> zu4_uEvT#E)W`JIcCYFY;S~X)-!f4Zsyak1J%~$k+#!XEirKqeyxa?s2bvZ1_eRGxf4zWZKGf_n zA;1aET)HP7X&j@VFsVtr1%)Y1sym3&nz_G$IHS2p$=-hLCtI-wNA1ci5S_GrSD@~! zZK8UQi&mTq?11(KD&HK`o_QLJcGYGM!L6H?L8V7`Evp%rhjwQZfTy;Q)DLNA=yiQq z`>!0Bm$qjiOnYlTPy+MO-f}^>zS#05J}W7r>aVlc3B`mvi5^pAf{;VQa|Uo z_9?n_sam}T-qW-{v0yA+E2UaqhW2UtzVU=sK>5T;ZP`MAOzk?#ZBA)Vd<%sv?OfWk zvbCKwL6oEQqC4xfc7}GTTrHap?s?iiD&pm9|FVb80_~r4c?z{PbZZo8)pQUm)-E1| z%@S?@8W=0pp1%O>j5eN5Hf35r+D6Z5H_*oh722Fa@G7+<27qeqg@;h6(YDZ$yH;zV zns~jowGX@oZQ5h-eo>p@3z19O8XDWbto?L5uq#^SSGWY%wDB|*cwO6X0=S{&`~i^` zZ6>|4TD4tA@l&;FZ_J0WcCD0(RX4S!AYiw&f76snhjz0Ppi>({iRW$YVM_MyXub3> z)}>`10qEAYCm@I(?Gw*H@~(D-QiopcY%Rj=)9!l)Ht%WIh=BELgEUYW&}ObffP>mj z`T%T5+jm3YZquT8!KpfKse+kJ4+Q(^LV?sM`CDb2jZ9+MBO~P3zBsC zwDx4(j;&Bg(cPv|*5f*l6$m0#_a(JX({xv8FG$zDk&7TQbb4xgoY3_(fOk@dsyS|b z-OK*KPU+f7BujVaYZ%Mc`BQ3?qg#9i;IwYxSxDyUS{Go^dAh&ofSRu}WI?Y$m-8~P zLftL8kVU$0=&)6+V_XBTM7JXbHcNFkYzX3vuHXznnXY~tz**f8-TLJ^rz))IoUS|& zphA~PH&~^PL63cv?(nk!H9GMPNY?5&-{SII&^6FrUZ>kaKYzW>=>kL=bgO>?@uE&d zE#*et>e=wnq)U1Z#7nw=8xYxLor(vAE4tk{aL&1*`>PX@ExOK|Ahzl%Y3#I3*GLEO zc3mgcesAhF{SA>jItz`gbm1K1qYP0$w)L%L`? zgnM7NxdIBqx=uh24qyXod?qsx=m%k9_ikq3hSh9gwC*2x`#2qrgg*4&~wyV zcvzT|zJdqLSzkK};G%ck2+0HbTIxO?)KA}sBUk-n$&hr@8-<9>UB6KSNe_M4NATdO z*HMehYll9pW zNT%!8egR_{`mM=OIH6zG1-B>lnRJZE)US4fUba4BJ9s(zv6sO+t?w4#V&&>*y8_G8 zze%}9zW!NzSSipCE&wRhd#nVnNYAAmx>)}Kb+$_M9hAbA>i_pWM9%4dAH{X4(DUf5 zU8&Ee4o;Q+52|3D*MH>!P^bU>P4MdV`P4*i(7)z~rCiiI(capqe>Ddln)Ctmes9(% z<-yoBy;%?Jy8it0ki4N!d=Yvr`j>t|5Uu(<|H5sDo*4$LQ@`dB6mIKZZ-TKq`jIL) z>e5G2Gykq$7zMpv{psxx>C^ArfU9&*@0<+1e!cf~hz#fpX22WNf4L7fhx8RQP`Iyu zYzE$k^{eSN9nsIehag7v3+Svpp?9YP@gx0>=Kv=4^FM&Xl>S>9+nCnt-+)bLLl-^v zE{3&}2~0DW$A&=7nWJXb>x1K^Nh4wX6&8*ZKi&&$wDWi)R?!`IOBF{DwhA80tL zhle1;%p0&0Y>-kBHpFn0id>q--EffRelrXaa!8&q_}&3H zY2edIIMbk{Dm#UoZ%%DPLzep9F<^!#YYU8Vs+|iY^)?i=o$On4~?q$?)p$z%Ci4 zy8td5s;L)w)$oiTB%2MlH^Is^!^2`=*A2?0;N38sDg)MHILN}H+YBcjhhDqkX)43q zG;|fh<}JfFYa!BM5YU`Qr@`$<1bEx<`z(muF=(8?>oWYC24c6Nf+}A=pGGYF#J@B*Fc1`MA$0~<7aO|^s}gNXLC`-X%*5QhyPcp<V@pyz08@qsZX<9+&z1dqL0LSicuM4`VoO+n&ZK zTHhh#CK|LkZ2a>XEZWQHoCgsf;}5UEw6Afx5W)KyU)u@E0OQd-=mi>gQ7RT>tfNwh(#OAI{;#gw~Amh)_79} z?{UUn`V2naxQZrM5{&)l0gf4m{cr^njrH`oMv}2U7~YeO59xMGF-}iFB-Qw2Ev%#& zXQ=?vjrZsknPJ>OKllmbNxBD58eM*dhb-foMTjih=rs<#9OI|-<>hIkwH;Wl(MXMs zJYzxyuzcer^&bk1u~hCWG)k!NRAfw`*GsW+j5g{LqelRErN%C*{hl#?u?3*a7)P1T zSz|06Cd-Y1RCGFLyhsPs3Zq9fK&5fw0Io}wQA4}Nd1G!i+*TVio&&MQ`1)#CsWmp{ zBC-p{ggAJpGk(?#V!iRw42(4xzg+<0MPn4zTN{m+=%~@nHIN)ImeZ?z(0H0!21CZ#R3y1?6j8@v*m&V@EOW$|xCCI-xTy`2 zV@5$Ncn^%%RRH70L?ggM?nYv>5?}ToJ^OgKjv(D;%69hF}*@PjRU6q2T(X@+I$_RT}|_;@ablfP`lFI z)c6lXJWM~{0p@ACIT!v8nd}|l@383_m6^OupYMjcx9Js1;e1SAQwryAD!2+q0j9;2 zas-;r{C65Ot$!L;f=%nGN)=*yy#-jPDQFKQ!%VNlBcyQCb?Vzkm_$)9cEr^3D;!0d ziYb|mGL2EcD%!N1O0qE~=@l$2*5q$M5OJm`Jrv?i$#$@rV45&N;izdX{kF$U7P@y6 zO(q&|PBLw1he)#NFuiP2OtX)Ic-)jKg0WOn(=RZcVLD9{!Y53psNZ3!-mH=AChZp$^(bt-RMH(988@+w+o8F9V5>B1KfaWua{j|xcG=yWSLXo>GcTh}HQa3fIY5M2PYuH(W{v?i zBh3}`!$q5`3~(D`UegXN*4#r!s5o;4op$5ReQ(2Ug86{~AssXO+=A&ubNwmslFX_1 zz)LolQ-3AJeC9Irj+E@sQ>-U?lDPj7A`2w}*v&@Y_P|r4-CZV2V zzVkWsPMcF`56LwzsYKNI=Ed(rq`-VV3Xv6>C$0h%nM+(DQf!Xy1y*9-!huMsx#4@L zmzfnbp?KEZu^F+Hn`c`9&Y4^MVXVTuaw$NSS#u4Moj0#>f!k_xVl~uj%(F+KUTZGe zhU;>{96`&hGh66XchTHPO}a+&w`wRfnOmeFUNWD39N1;^RjLA9F)y@1WJ2x7B2 zyC3S;%yX%Sa^2iScjOIoJymU6%+JseRjYX^{Wxvr#eYDu-MnobBD-nsc?0UV%*L0& z>oD(6!umSRU(q1gZF4sTc*nfu4-mV|;h9kAHczX->oGrcgZI1UY7;=O`CK7*edfH+ z;OL%tDZOa>&COe(H(=gNspgI^MC=`axyH~)&h&j6+BBSPq)HxqB zKfy#S56m$_VB_YxCU|&gzFz^!3G){;h4ILo@)8_Pnk|&OO_`&ggygh2|8JO{F&9wn zcfaKUjc_?yzNON?lckFd5oe2(Dv&Og{4ZhUfMuL=n}e2;97wuacGA>`o8=C^^O)mq z`HX5-9+rlCP&jN^d;^%5WqBx~_O`s}0TCa|Lz)xtwQTwjLHJqD{t8EdmSk#|1Xdd=rquG0rS`Id!_zzQr`vk*(6MN1#W7g=_b>0*l?_4rCGTd1W~YFWjD zj{0{*;XW4fZ3#+hn(BZYxl16QaYKyD~A~hB-Dvs4!R{sxbk{`-jpqt@$E3(YWbdKZQCqEw_&B-av}gx-?Xeh58f@yx+L&AEI&|}tk20`s0_em<~% z%RmW41}*D+fel%FhGF`?<+TIAhAnpVW#WjX$_Ue=mKQbxdtmu@4S3_0KdC75&|;(A zX2R0X0eED2A|1R*OA4I>W-QuB7~5}+F(N=m>j0g#oviB%Va3@RLM=2G>yO*v{eU(1 zcNjZp{cS0DZq^%Argyix{t2Fkb)yZzds=r;(ssyNK%3lQ>s6X=@Uq@(2k^Gur|rwDBy2)BOK31Xym^f4$zS*I%C zA=#>bkZL+n9rW8`F zqaQ-@xb;1{)@jz4s4$prT^s-`!|L-03MZ_r{UDySenxfnOzTA&l{jU+L)(3}^-3RN z$+7zX3rDA|pHf1XXDxdGkZ-;E3P6Fi(+84;)(kou7Fm-Q!dS7jV=Y!xYIS-Dn`f-= zeGjb6x`WOgXRRM+K&0GSvm4-?wSn456;>X7I$344{R-lFE6)zWS6jC~1zw}|&qJ`% zWZkd;m*|NW|U-))FATU*w{$~CL58KhE+sCBRdHpi@E^Px9xeQf|XA6nV8drw&RrGxm$y0RCZ>%(j*M0Ah}9NizJMwwtg|5N2jG8hDw|AE9tvx0qe6l+yJ;|Yw!T*x4kqAHV16UUqf%u7IPb>hiu=`8t&W5={+`V zd*^qEjMx(B*g0zZX*T?g+1{X6$OBu&uTU7b?R5e1p>6kKT!IOkO$G0dY;!|FoV0yO zMf53~yaxeJ+uUCVZ^pKw7T)(eETQ35M~6mweL6Wr(lhPs5JIJ67l+Jr5Dz%;zJuOD zhrLubcXiN4!L6G^2i?N%4x6c0=i!hN0!dGYwr-gAa`^jgSn+n?Sb+IB$Z1RPb*OtE zLHIdLUqVR!4uiBy1vqp`fCV~?-vuwo0sns<&ymA9n#>7t2&aZjs6#Kkz``7U$%Maf zhnl&-A{_Q?frldwA@tZsI{491FUsK@)zYIK9H~1Hd;0No?{M!I)Frnjr74%l0)8nC?q?CP|GgGp^EPE;||5B?9NGbD4=^c z&B1FPjHNrM?V*?9z@{JWgu_Qq06XdMCLJv^9h#@0aLVEMFCb<)yh=8+9on7+F~=ds z9wMh5`Y4IYbr|pm$a6SG+kL)6F`aJ<9CjT;oP`cQI77Y2K}?OmVh2aMiAo&S?*%Az z;F-WXX+wm%)#V^q_4WIgf-nvboulnZ)dZRUaN*=gNMY0xffy&ic%*<<}96?uBC zKNi8mQ|p9pp!v-D%}$W#)?180URm43fb>~UxJiYK0uOcB%w%(h_ajN)1gY2NNAo>{o7Nwkr_pxpT@qQ0oir;Toyat@_T!j*z8uo9tsOq_pl;`L>w`AQbV3{<3*UxS00PTs6ctB1R)hFO9k*yq~!hwS+SB&w|9wh8<{Ru-rI!H zedS9xXqGA2bapCNE=-5_D&-^xkZR>Js@c>i3#j^EtIVh5*aPJX%4gLn$5FRIz0!n< zSQ?aH&Vov#l1m4GCS?UBP@0tsDQVcE+(fJXL#3hyq*b~3dobIS@e#naD-V8)iFGJf zR)YCRxg`)D9xLUvD|w>)NDX71%IVaF(WQ)`_L6R;OB0wq%7t`F?p2m$!pc+S;Bzpa zDfQAYdanGQI_+O5kNks)y;P=7zy*1wJVXsheM)Ozc<5I~c0%*D@~92SfHH`_2pCib zH$wJCIXnpFTV*2^5Qdabc7r*rTuc8?1MieRCXkIN6ZT;4qsm}U*nF@2gu0o=lno37 z_(6H*E&%o_8SPXZR6U(gaa6r(2J@sUjfqR(r0P3|kepTGUJw`606k-_s+LYf?WW46 zrNmv8RSB7gYBF`ac&Y-wfOjudrzvFKD(8DJeM&WP4D<6*eMP-nzAD}xc<@tonqlOx z3cUexTGjL(AqA)&)1fy|^%YfDgH#H0Xa=jQ>D~=d-J&XRsOkfiD9)(vR%3Kl^-Dgy zpHpq36WDpxje`JOP+g{Xz(rN?PY5DR<)(n?aMkbI5JZH^b2(HZRTBn!FEyI29`&rmv}%{R-K2l|wST z-%t%+fXYpkh7w@6R5qbdxvQEm3)dxH^>iIZ_f*r?!b5^;>lRnE!SIwp1GgO~)A{tGGvs>xO$g{pl#cqmfY(w$ta;w^@i5>*HFXO*hLr{KEWR|Qd_ zzf84=j!@;QJv+dxP!%*FmP*xRN7$@VNohY(t(t8C%^KD5|Lr4H<_7_IpwiOuxK8!t z3T)P^(yqW!gR1x(WR0prR6J=?by9t^SvBiCG+R{1D1Gx#HG3Zbt*Qz~$l6p%_ArhA zEBT{TOZ%fTE~y{G_rubS9^IgF`-D0lHeWi=B_dv)z8036h>3&3<#_tNp>q*_NsIw$o_ zdQCX1m+lACMg3z0My~25bOLizulo^jcXeMBh=;oSCH#4+7bk#tsZCb^;H~!G4!|k( zFH{)wQHPgc4!&xK9uPmZNfl)N>N)iHAWo}))5jbF)OSAv2~;0?f(sI)-W?B>VD)x7 z%Y>+dwm}xEPH_SJj5^>icsQ#rr&P;1wSbpvM6=@r&b1UQ$233g%^XG8OP*)J^k%yQ0pe7kjKadIvPG zs)x;>8K<7l2Dzr*+z-HYH9H#QhPvy2i2`*2)r)VbH&eOfwt5Gx*LT!BDyQF7e=!~; zUL7$Cz&-UmY7tFPd(fUQQT^Fkct}$F(e+GLGwFFxQM=M&oT@(m9Y$&DyF(!9YMC`W zWT;bW0nb!Fp{FBD{nJg%FI(Mv71t$4T}t_-d^LYNOc$tkE(0l4Kc@AwNPUkM<6`yb z3*buBd)NS!s$W&Z*nM^HM&QcSQQw1Eu0BK+qY8CdJA$ZGbLa|Isq?6drdoZCl4>>T zRn+BNtM>gJkv&jzDWzVg?$`xK_3E?lq0*q{QTnD)U7Z7!CiTP*Fx{+f_!2f-)Csg0 zKUA-yg}PNe*B+xb^;FuQwX1XQVAP?WN?W5x>OT5{^0E36rOKYD?P+h*sjdkG=~8E} zfl9af=1y4YQETW(+N&<4*V0qD*Sy=AD9N>sOeY>*-6cRl#6xJJf|d(v*spUNEgj> zdWXAeqJMyjo5uD8f^gR)(XZm6X&ZqtPfcAnWL}!@S3uKS6O)J0DUDtNy!&WA_JuKD z&Bv<&@Y7tUbBDj?A^lXRHS)t41!ywupc$xXplp4R<}UTd1Z#3=lOLk_gDzI6#)3M$ z&uGjSL-VZ0P6^F(nrQmN4Cgh=^>CFgXiSZvc~P^7k^y0w-s_NsYdk335TW5b0X$N( zjb4LMn&bgYI$ATO34lwQ;Xwc{Yf37>jL~G#&i{($3hm@#H9LeDUDXuRCO=NoMq7Yu zn%lG^yRHdTL*<6%Ae|y_YBrnzxutP;hn3r!J@mT1qnSak!MhqO%BIC@meSejp61Sc zFcUP>sB<$><7ElcNtz*Q(@NHC--@VHH0M5ou~f~Zb~sAY9HIH8Yt-JrWoR61z|7VR z(rGtG^Yc__=4zhP{h6nEE5ImUv*Z(4DbVPsz*VfNrz2vCrcw%csb;?p{_blQY=W#z zbCfbe<(iCBU{-5JPs2)$W}hBNt)}BY;2vmNsk~OF5k7-Tz2-m~=GUZgrpiIH#FE!bp!qF>@&kl_GG%mC<^lP5c zTl=+U^dJHp(CmAG(V*sgDk;Cw3_Zo%-)hcKy>Uo02+g_&t~o+6SRvI%@x-uP;t&r&2NBNxPBun9kZV zS{Yol26UIZYA3D69Ne@~mq6UL+owR&Lu(re;;G%#0b^d;Ta=UY)}EMxAWmsrMltfy z9`;0lzS@>)82M>Kq9OCwmbZd=T3d4s@Br=mEr17VKc^~bkT&rFRD!irec(1k8@>Xg zQ0-hH;AgZg-vM`48$x&aIqel%RL^T~QCH^$?Pvbbyr}(aFK}VnaV{_&t~H}B%LwhP zHsB()5mYLQ(yru#L~AeX#$~;vUHcX)m$kn1E{@T<{sZ_G?HsCT#%ezk!_if3PYYym zT0bU6*R-EjL3UI7d;c6>in614Sq zz)aN6^8-9dJBjK!$=W+}AxqI3)j%^<`-L2%G;If^lG3#w(aR=7TT1z!Ol>Ze+OxDu z`cy1iYr)4TN4tg!;knv_RDR0S_EJhAUwf7dW`TAWUDiUanD%@{T4Q=C7Hb#Kj-^Cf z@Dl)~+S_W3?rTfZVXRDhdj{N=Yro`!RA}ea<9b$VTRcFjwBzV>U9D{_g0TnMbgJOg zX=l?WxL!N-FGfw;f1RP(tUdY=rdzZzlRzG8&rss}i8hXo)t%a+#UNeUp#WIv)^4f+ zphx>j3sjzI`<^0}=h~fJV7}0vm;rw;wWTev@=D7)3_zbY@hsr|+QZZ}_gd>uH}rtk zZ#RM;)b6KG8Q*B1uZHHZc6TYrh<33Yrbo5yG~4&u!z!qZX;)Ie@CR+kBjD_H2mHZw z&>f+l%279Q5j0QgUUG1;Ty%|dK-_iS$W`lm=*+LfyQgld1d(~^(!*fdTlX{vqf@#E z`#^kjbH;(`t5dsS4t}~xmk@-%Zh#MRTDNWtrUP_)o=KoV3g>IUin57UKE^*CHtOxd(3T}dqf(YhDYK`!Y^=@MMlxza&8 zM(0@ua#g2&3=*f?MtQy)y4@M@ep5H{4$ND+-zkH2TQ@TUqdPiePjS=gJZW1WuX{{| z&3n4J3*awNx3C{7NxD-{5ofaQ*RvogI-hbdQ+0*5FrB8$pay|-U2!aA8M?jtfM@FB z3*awH7y2t?xw=c}n9O!5APFY2|Sn9bf)*Yf;P>HVMYgoCjyY>i| zpj>w#2BQkyTM=wl>P~Hgl`7rydN8YX3+P~5qgz6os9K%*BN(gGS<-o|UN?(+G8%Ns zGw|N1OF0Y8CSBKV$eML!w9#$Ry-;KHM0fBq;GMb~cCgu{>!KHCw{8oaB71bxDJR#f zTSA?9Pj#0%0eGf6PP@wIx}(cMUg*}aLHcy7|AVYwH;xbTS{GA^a0hg5doUW*P51&q zywOdi9p_u!U?G^pIvZ-uc&AHF1{u*Em=5Nc?m<2rebA-O2GicAkB&kPHu@3}N1Nrp zft<9NNpEH+n-eoIa<*AVMMxK$JgOtO+AO6Exra@~S$Oxfi3x;?mrXC7+`MgEFG6<8 zX1Etu!pG+BHq6i0CU*+_`P=+QC#lmmGTMm;*c{0PF3={MijYAz$htQgIDz?cV+J+04s1M4pJNVfWNd!bK)mhRynyqy`!yA#({>AK6C7eEp+(@lU0esOgxR@Y13c1B zLlv=TJ0E`p7-Pqw?0KTy?K99!virycZj*<`X%}!Aj;idks2*Nz7fPG28oN$c z*sQhtjQWfp*m(<~QfD`HHX^IHOV|fogWYem?l#)J!g~dUMBEn)$AerFnYz@3KeK82(jyA+TR3P~~!YLm4*E`np2NasyxG zNb8|`FD3Lf-=2mAZT3NMbaAvLvDN5Cvfrgy%<0I z2b>>crV%_nVdQOvlL5wAs?)t;-256c2j(dfZ4ni@ViVs1E|C^XUSpu9&;+CU=o-WXJ9jt z`44UIlb9K~03bePIxdT)nj4(qKm;JK``zaX+a*6}R(%V%X$;j4hPCLVx7*6l-(6|ojj zrMj3^ONo^dR+BU0EM=uqqW?ZCYz{QbSPShz%2{W^Kq^?D(^jOC_;CHXpM7pg&sB$_jb|cpIylUPSq119e^H|aR->atlVh;JY|iB!NW6Fn=4eFvu0^PUa-bdI`$>&0^M=1 zSRd2by^l312p6lL#e51YuUT6H;9-EJr0l>T>+EHW-ms<*1OAqk;|H5VtiQHFbC{Jz zFVc6cW6hY~2y5=2&>UrD{s!iImVlBVW2`-NR{6l%N?9m-y(P;LnS&!-d~ zPU;O)IoV0?`_+&+>wUZxI2XM=^i7DX-uW4DD{Elo{wG;?cPiD z^80`*)sxVlpSrJi*9P9p^rAKcP_CCt+lC6gKx(S1)O$x=2vvG(y1}g0iycpz`lsn> zEZ5%~26%;jHl6Y-^<&r|P5RMk2%=g4za`LotUvg_A3%Q{8vs{>FV?_{n?c$J1mSM5 zO@PSG8f>N4|2c!hOvug~giZiF%piweWu*prdqD0Rl;AheFEiLl4`sQ*!wVo42Io%! zUTJV+2#%@@uI>P{+ThhVXx12@7=|0n;4y7F>kKy04z}Jvk5YCG1|{o&YczPf2X31T zuK7c=*K|xfOAbQzkUgI=TdnNuT#VY-%gQi%%-(7P@`UY0_25qSvNOPS zv2W1}s*nAgu1i1r)l87r?9&H82H4v^KxL2}y$X?GOGS6O2hpppP0)8~*(lR00fl(Mdkg zF!6tVF^0bt!ox*FIN{ zLq;zqR$}-KZD{TrPN6J!x#4&^=2aLTrb>LJ;pjp{U1gZ^5xiF$ZjxfuWEe_&!DhpA zlp<^~w3rHG4-Gr!f!S(UN`J|&-LN1LraKI~DL3)du$(d~&kX;&jnQ*MZ#uxdFkDHS zfmeomy5XqL@MIB2{f5Ws&Gp)l#l{60G+azK^c%w`0bmXpPAZ4LVM8&kQX_@|R8Jf= zx6#O`qJ)8Ep$%Q-@CnFP+mB*+pu{s#a^;+#!{>10ka7bKPA z`WHwV=NtO-2I-tlVZdc@_S5yu=Lv zRdSm-&m0j;3&(-}UdKZYGY3JmajL8^YUkYk2C@#02W`syxVP2-;Lo+CQ(FKxcnN;S zK<>0gkRWdU9M}xzR@?#!rdr#BHU6@?)-}KFAa9qcUiAa(@v5 z*Trp|g^;?rT&fcGa1;Lmyq9~y2`W#ymnn#6+=4|=dCo1RgX;_K9ZHwH)9|p z!o67q+$i_aURxc5bI1bGu-n#iPmdyJgf@U`F6ji@-c;<9=$mJ!cLNkvyBL=1m zc#hNIsF1f)3S2QShE8oIyfao%DdlBf0J+bbI0$ArFMk%`6}*BI095jRO#-Rn71L3t zhS#eH4-a^?$DmoqGdu&+9X#(+z#s9l*8%s0H=EYhPTmws1iavtFNVLjyjI#y4)Njw z03YV*+8}$!v-uS^M|cxg0XNF?`Wv|SynMO`$9NGeT%HfS6bZcB8%2E#riamzWgwnL zhxP#OWu%-4o8Cs6|A0GXG#ZGJk5Rr3D!xYeS{@h6$e2=#r;U!C2Q$EE*96!MG)mP6 zAjqhdDhk0yjdVwb7^QxXSVE0ve+JnZqtHAUJ8Kk1-)NjOYNBlXd7~S&FSux=p|vi| zXoV@@;YRCd$%`=hm@==CM$!L(8Exc1iQCIYpHt%Yic#bQ;9`v|XJT~KNVXR$*Nn2L z*XD-N0Xn1HGU}iv_S;6!;xW2ow5}3S#~U3PgJyzJ@Ix3&Hu{4$ASp(ZXakaJ^dFUU zGK{h)xtC@19zC zp0VgO93>d%eTPw^@xl?1B;yr>0Hhf|rbQs#*ohX-4C8UVFqUb2WfUH=jZf1XHph4Y z<@oZ9JLmz*H$F#+@J{2+-mubTtfd`%x3Lcu`Fo7-Yk})E{=mf?o*KtchWMFr)-TX} zY5Ze9n6He-9fOD0#(|XQ8Z@3ng~T_;`I`WDGx;$H{@hJ$DWmCOqMQ%6o+h@_LA*?U z2>{O9X zLby#Pc9c|VHu;yT`zI=)Ww3?Y9jZAN}I`7VIUnQymH_knH-`U?6JuyDr-D3 znf4Ka?=m^|F-W(G!)mDXm^`JGq1VJEALOaYFdasonMmU>dT#Q@9dmeL@;hY;Uz$9p z`pGMk&n^PqZ?a}5NZWWjN09dMA)jI@9pg)d81;@HN`>40@eZW`ydHmza*+e$chHAL zgX2ZC!yOv`-C{6@#}C$n`EGn4Wjja4Po0FTG&;V6&fxFIPdo>vi|I7_sN3!;DPc*%hgCLSjW7fl8vZ*m$ zx)js)asbjyKhDA^-88u#DjB9cs<366ZlKQSEYqjHDISTKkrhH4N+&6XLz)G3v zH(IzYH?7`@QHAO7FmRQo>yyE(GA+1=sZ^V$(C(?mG>u9#wWel17(Fokunbn}Ob<|E zy1~?Y2(m`gm&ZVwOvC6Sr)JYuWB6+^?eT@_ho%eNVYAhA9qq*1OwZEV+HQIRDRBJ` z(@|QzADP-w2JW$`>?g>cn9ilWTc_zND!z7^erpR{x2cC2m_4Q!PJ-EMx`~>Io|$oKKwruAoJx5J2CR(^KAj}=jWY9ET{Qpl=KYXFZmZ90{Pao zM+xE!onZPR|5+7qVf+&=@E6YCw*a^Z{>UK6Rer^9P>JLF(js?_zxxiD*ZIe(D0YKy zvK!a>Cf{F!SZ?t@Z2`H>uc6(=9sX77n!d~b_AK1S^9xrYhBbsWbz-={yK|4cn`5;^XD`|GlzeZ zn$B|hDRhVA@i*@S$>)zZ1+##EZ3v@6{$(Ekiuj9G0Z__MaD=h@e6vIFP{wbjwV<58 ziVi9j{O`;FsN~nvKC6oVt_Pace1029BY$Zjm`(gOa}ZK9zt$DZ7JlS;FkAWTDPXqo zS9Bx5cK#Q%^XT9gDcAOdFf+|EJu%8Mv;7O2*=CPF z1w6-0{wboqZ?>IwNM&Yj3Xm$ZKR6&YW)3U>YRwkBhKC1c)z_d|XI3#D@Orb!c3?J` z{k#UFMl)VHJT#dtr0;~9&2)!ATFjy-cm2?8Hzki+%}Un7U$@!*Juuy4=HmtCTeHR> zFo(?4|4Y1>rLj3zBvsM2=^MhFwJ*gf7M=I2K3Z_ZnJy4*S1`;Ir zoRay$f;@Ue!v)@S;ExcD+2bdU6wIL{a+F}oC`?BSY`+Hll3Aj=R~ehgWrpoRM2vIM_O#3)-Z_bP1W2&%a7mn(SmJN)Gd z@nIMz;P09s(4+2mj__hI> zl>#Nb5vm01==fMGICdY*dO@*2+%^dQqn4CLK_@-hO#)$3o{B39*u)$pzsSJYz7J6{|zg_!pREALWCW)&}{&>ZHjPUJj7`q~zM$ccY@T((mdsVpmB&@^bISrWuqD>S6M{sZCh_aJq`DK#MVLU%c24MN5i02+lN zDoQsAzy9AhOTr2kB5M(@q$lp7aO*{oR^cY) z@X!U|o(LW1BHT{l-~O0NmvDn0;N8Nb-vQ7gtaOH>Ug7i*FrNzj9)bBxxa3cao(ubC zBcvC?NnRMe6t)#X^ObOeJxHH$m<5~t!gfC9{#w{@6DkA3E6V{N6dwEyxHrP1F(7Y+ z+r1$h5*E^neONf~CjxvYJWiQ~5#iE55#Xq>un<<>3tekL#)K(U^!p%erv#t9sBQ*` zgNXYcI7d+cy~v8Z3cRpj>$Og9m~6S269IMfK`A=>db zOnZuE(i_%GBz6Vy7EPi~^HZYQX|U-dil%CWuZZ7>`T2=Hy$&n>qCM1Dc3Sje8vp?! z9zE}Yq7QFjEJ$SM2VAh|SLzlF5s9c*Dpd4L4%``$^QRb{70sYj#5qwIJ%8s#UtEXj z3!;3=N?#Ot*#RCVGNc1exQI)svIvoi4w{jo85v+kiQK=%C|cA^@2X28$u^8Gi@uo$ z5+nMXF31&;9re@1iWaznTosjQ;V4dYhT0^qi415JzAo}!1I-(voI=d+rl|cNkXs^N zBFJr#Z6L@U(MvwaT~R|2;PIlh)Mj>1^m7#4CWwk(U=E3*YT7|0i8824lPn6QYnCGV zxEp{}(Z3;>QJTml4p$;wgq;zdKhdi=kWA4T+RbE%#)bjU7Wp**mm}(a1kGI0Pd9+e z6ZLZ7C|@+c2963u6R8$gDC*n{K#@p48SrA!e(Dh@5&iKwu1l$CJ)PL^i#B;P~?MpdF-El9Pfzyw#fMzpsCqgv6-FF_uNLcfBCI?-VR1W_-l zc7jTSs1VWXH;S&fW7H&?vL2*aw0|N1Eg}}}*&m9Qo4{?WD18ZJZK51HNwtgGT|hcS zwhR34W^fAa2(bOC;J4HWILcdG2pSFJ8qKkCtdPF@E$a+PcpF#FiwD^Co z9?`T>1o2$7EDhKCg(xNpfS00VN>0BLonMC_`b1gpK>9@ykKy69Xe(8(21G`5Xc`pN zoC0|xvZ6!pTT$+}&>RwdN*z1HqUIhj--(LV2yjF+`7B1GqI~Lcd@pjRtnHX6V-iC8 zAbLRu4tufLMFim>{y^ylNAc@V5ZOubdOB-6i4E=H-C10)5SoEv`Aw(L#REWzlC_*De_#ftCK zM_gCM6F-40PJH-0$Tjgt*TK9lUg-mWH^f>sz)sQ8NdFf!Lh#T&Jq>6X`0L?UUHr<%% z;;ZykRE9Wd2p%%UyJ+j4CHCC}k}WoL#s$d{zqd7cch!vrIgXY6a!u6MsNfAr^cBW0hii zT7IjtJe_KT55yhc0#GNO{Q%5*anx^^N`ts275*B2G1BU95VIQHQvidOshD<)*OtSiF=< z*iXc%l!WaRA8LT4r*=xaA{^dc{$6YdjTir%zO$iSuX&_+0Fk1-CE6 zxkoUSm*RTbOT7|@P>G^Xyny!l{o+sQ33x5W%7w>5TuJxtpm;j%h2Mz3r1$$<@x>az zhr|JSFg7ec`VOOa;-qjG8xilKy~e0`FJ+?Mi~pvq=9qZ)6fi%CdoII@y`-J;pAM2= zzQi0HB}*u4bW(C@CS*>M*|e}YOLBR@xk!e0K*d#Zf?%JWdKO5#C#Zls}idu$l@duC`)xslGFv}bxC0+!o4A>IEKh>O5(}%Ey=Xy zVBVIvQ0noHk?F8@6b$?*akx-Nix+1qh!e;%B81B z3PRyMRr2s5m}!zplyyj#r0fGTLvn_K$dpXk34d9V8MHacmaNZ!l^n_IQ_#$n^dvzu zPcn-xYrZ7Y0Gb7ol?&m$P{RBfvLeYd%10JUCeelUW_0fNCIdJP$xM(1vcv? zS7{MwkhmH^)+jkaZF^0UE;=7IOXPg0v`E&_JK&*Y1{Kg-C6)mIv`HHCFlv{iM`8{g zl6Aj8<&mU&515Z7Epy=Zi6qV$qfW^PoddcgQ#Qa@x8$BL0_>3l(7n_vSr`TKRARdn zfM=5R-yv!T>BT)Dj?!0mVfv)hfKD$?QkfVbIZMCX0-1|+W*>-~w2;yp?$SIe>Uv23 zq$7r>G?bDuUeaj>7SP2JAF1JLgybvzdjw2B={YJw`b$mEV02mDJ!>50v(~BI+RN;5I}ZEalRtXCYE|+Uti(^Jv*VBW?GF=2_{U3t*m?^68nrAbm-{ z`$ee%CBVX@w|jB1!lf&9(2S6Vt%fX8$`pVZB^^u$iI#5r2AY?o$0_4-S-PbP%ou4Y zolvewZOz~|R_Z{1`S7Y#M&C=uNwGV?T`rw`7J%#03s<3XLmEOq&P}Pw8pv)*7xV#e zTY5wU<{jzxNeK6@wDbWS#Y>AF5z9U4-}F98kmjd=BuZ20DNd3eO9voXx@!zpQl!b` zJyn`!4U#4eGlVQ%YJLQx45{o-c*vB_K8sP7G>j4<+0yr4BkCM!WJX}=Pq`%;frfR{NtMt?PAZ^n7^ux7FHD!=>Nc&e{ zVvnSDLYRIm{hqeVPo&G~Sk@_BKn0R6smW2;?3Oyy?xIJ!j0Kfm>B$^ec`8-YWARK{ zqz~`UrE3FV<%RUMDO6rc{cZ#BN?PFUuqqWc+ly0Ke z{2QroBUIi>A3K2zN&l_Hl^B-(+W^@+Y1#moBT_!?>qe!=DeCvqf+vuTNmtQH>Vx!1 z8%*2FKBN4+gN(lurX6Ly6CgV&8>RrAWIsJcfX=d~9N=7J9-qO3tLy-MlHevwr(Ku3 zOhZeohwK@hB0XjM>G!tmYx9pHHF6$}TrX84(kL)&eVfe~oXyfT8n?Zf`{<3yC z;HPB=DNPX|`zr*pK-r`bSP7CPbU+p?o2P}b5ZSjqFcvDCLC@wH*)Z(~&&mdV0P~z| z+yt0DFZ=HlMi*o!GGOJRY>faO!emw7LKZGtN^4z&Oee!AQnqvgCKe_8HXAC@G97&` zdr9Vg2;{P?jEh)eWa-ppazz$24vu1Fk|iKlWz(rqDo(~(i^#6YjQ&@Rkfl&#)(u%d zUBTP34k~)yk=^|kn(?wOV+4OsrZ*2!C&(Vs`jRNCm;sd}SpY38$+AV%29qL-qg`IA z?B7qInI=nf06bmxD|I4d$UglV%uHD;Wn8jk8z}>lE!+7W06DV1SHNwqtdx2r@?boc}#zvP9~{ejqE$1G7$6K_6Mv%N7^{&>(ZC!)v4L zFDjNc$reY$ShK9>4pdrXn|^}7R@t~%MAjzzn##ECGGofnb;u5JF|kLo`4?gHvFtEy zC!ffM55h{Ptcu=1U9tnmK)PkWP&%bYHtBP~du0mR6FrqFLqML%3~m7TTsAlnqZhJI z`Z0Pbdrx`HSF#lPQzv~glM;;jW#3WL-D}wiIy4Q)@@P#Sl$9SwxNl_s)QR_27F>?e zkc?Z1%Q`H3_7H$~GQUs&Mr7G+SQ(Xh(c$O4tf>aEjLDj*bN_?PleQK1@}FtsAiqN! zR!4b`F>oj4_E#Zul7FBQle7E`Wk6iyKmH39S9v@YYuw~aYN~LTpP~EALmn~}*TqwQ zoHoc_@^!a?^OirOt?enfH}#|V$bZ@j@4j-I|78~BM?x_2mz%tW>C^HzdN39sH}gd- zf%0{m0S}VDro}2)E;$N#i2Oe7Z9?U-Lm+45O9XIqR=$P$2hYjxT?62}e8(hQkPGs) zlt;NJ-|`z|Ve)^eIW}Cb`y8VP`T9*5MaoS)0f>^9ZU>2$v!meQl00z~qswx0cfe!h zm*|LiMP5oEChdD{@(#GZ^*BF36-028J&o3$C8z@^BG z>8PG6-**&%H2KCv#F;L~AC1KmCtpB~ikb3wTA{P#9<$*uTOK_J#&YD>>C>fLx#1ef z^5o0ubDDhlPuIXKkVn$Fzfk_^PQ+OxUr2A*VtMpFFiYfZ5ingUKQ;}x`||UYh%A%O z+X&5a`CNJ)D&!wi+jFJ7l7~xBCD+}ipF^>HH)LlOQ!=4>UJ+;rn->-4RR}Ol(ZU5F zT+#0jl?cU|V8j`zSV;-!XvLyXIJ&IZc^|kKMf{H-v5EpJ&s5tqeJe zkjZeAtLUbBf1YCf5&-fQHgsqzP!unNW})IzFh)g+NNQp%RxElAW{Ki=>RBjN1n&j& zzT!z3aCM63H(|3;5kQ|6HYwIo38q=$ZU%UZqVYCl4;5?a320T!r&4>Hf{5M_aK$MIWUw z-Y6E80`OMxhYJ3N6z<)KWms{KvN7)z|INc_M3Jx;@KJ?wAtHOPcykY;P zfewWM=7MFA1(~zF5Ja%~d}{zg%ozeqCDi=xbO6qnd*uUg&OFl+vR`2g*ElFau^ft3__Do-b#p9Jz^Vhz1l-cIZ>g66x4Qo3{_6V2%0Fgh`lP8#ngUS3bP z#>9_y!ODk;S@iC(w-C}w>tJC@?Lm$fF;r1GX>p+v#K|Jv8!~5$d7-fBViEc~jJaA& zo)6+~k^MK~^suO@z$nzBBNqP7Sg`&E?!1Ky54Z~!HdMd8Xt6*8&2WodF7OaxF-YGd zytYW_Lr4P_pHabL(86Rd;BPGI_dw;X#hG(Z8M1i5q^VfUCl4bQr9VOT-r}AX02j;4 zBFxs+Qa=PtH%sF<5O+&+N{4w^9$o^Rr{ycE342)1X*sZLV&@Rj#n@W zv8)<}=?Ke7KJXrC$y*PbQI@`R1*0veJ;dm;r6slGT(JzR!6?=;;~e1emX&TG_bi*I z!AgSVhiq6$w0!;#93@+>&w^%(r9mlh>6WR_pqXLmM2DX&%j3gPDY49^n(%$gh7w$! zGRt;qlq$E({ux13SnjdFsLIlP2Q;fK*X6@QjpeBY7}Z)X{R^@>%Nkk)>MeUISJ`0c zZiPuVTK+&Dnk@gc1!=bYYc)KySiWBgo2{0?^tx`dG>M0mc1r<0jUASs?Z)VlWzjUK zJhp75!{igobCfUdw46i@UEP)ny32bki|Lu}we+T6^QmR)V$AlLWsE17&n@kCLi2@X z%UgJOX}NkUWPO&&kbg?S)fQqY?bQ*$iv-*yjLfx(AC(=)B_4@_*^R#+z57S;&nd6}8 zZI#Lc{FK%D)9~P9W%3F#U#pDq(Db+3O1ZTFD|hk`Xk})P(FLnPS~xFSiK)vu%mWz6h?N<8CiD{%K1ds;ve7~?KNGm$YTg{}c3xB|>% zM#$H2l)|V8#}AmwaBBfcV|?-tRMHvUDny^bSos64PbR~D8%9}-FLhAKX6&QJ${fZ4 z`m7GKM!V1P*nCGpb;>!GKBLHs9?VhA$&IZJv`5Uq_1{ayh zb(nMw^Go#S8Mv@Q=oj#0Z9{U#z>jsT65$51x<13DJIjj7W&hu6zDR5cvrBJN#_uaH zI*EUsK-!MZU zdKk7Wz$=;i=Ymu--RbvhX4cbQr-jL-Vj2ADtohLGMfW2sy-#%!QADtp#HbAWSa{XQNe57yjI0XWU# zwLmj~6=aNGJ&!mT zaa{^nQ*;Qhkd?mxqe@m5HD*?^{-Za1HA`v?Sqykdn= z`&=K(={JymRw^CAU$f@^0o(v&bRt?icj(7eRJW zPg?;JruV!Dro;6dEnzxBuUrgfq+T5*X`=K#rlmDnZy!Afm-L(oa9L0I7d*u1=~Kz~ zik`=}@DQt)x(%|cdUxXBC{FKS9~@Qb9T$OA>lsf0yh%@T62_YKZc#GgiQYYWtUC4L z?gQSXmqr)4ThG}UrhD`r(QJG59xsKlcX~lKAR~H#Y|L*|Z!hihKIpBYgNuXyT_;#M zseh^*I4Au-Ofhms77PAd^y7SC(^cP-dS%@7A5MpgyZ&}M>3HcMraWTkTIx5ju)<9OJAGiXe2K_7ZVY*HK?@W*`{eQoK?4^Fvec)c{ zZ=+3dpMHNYWc~V{e?#_Ke}y@41Nxy%$OiRiQa106{!ldL@K(Q@+MS2=%MZh!lR=If zMxF+qDZu#~^iY~4)F6t!1`ab|U4oU%1`+e&=(<50t?BUw|GtK1nt>Tr2h$CXu7>Fh zgNTRlo@roC%>-En)7+qvZE%QoXgLOsFJLU!KtStqg+clP*sL>X@q^8W2IrT7`NZHD z_0c>tsHc|g0fVA^irS#(KfvD@czp#&Zw(gx3&4=U(OSry*ll!mo!OdXsJO7FzC#eM z?3V)|ZtPGMRNUFq!V!`OJ1i5Lp6qE#gyhA3Mww`DcEuAI^I;3x5t%RB(*jIC_Uf;J z^JgE=206{1eFCNf*y}%rl|c4q*I_z{eb^AAV7BxbY=*GABp5}p*V9Wbn*E~$Dwo)H z)FpVC-Q@`nG3;OIJa~nDk`|p<_K9XVy2{R@tj;y|!+6N9vzL7Z*$sC8a*&&B6Bbl% zvCq)n<2Jj2wxxI2uc!m&F8c-iM^XTl$+U=*P+?M{?QJa57|Fn0JD`{`Uh0n*b&qs*Uq-4zfjl9j`NN z@Xq&8aWjmjbiccynzl0@hU@7~;$>J%Z+LG*86`hX8SbSk=wld9Co5mWA6h~D49lso z8e{lEfB>%;enO{&+lHmjF^6o!#r=R68J@TTw>^f>X=x7SoIDF$52x1_#?EnB^rEff zUR?~*%9YZl{{{E6+kn63RtEqu$~D!($|+vicFZ<}7fZ>HBHmgv$X@aIX21>eHco+T zj2AW!j!qgaKMJ_J(FmP|y^U;B0S`AaW&jXp)H@#D6OF1?fr(FEBA{7fbc{0lV@5^D zvHouZD-gOvJfo-s(R^E`z`tV{?)2`7W2kPy=yk>+2ADS)qsxI$V3gQml*Cv_yUY}Z zlNU%Dqa+xB494*gj53-3&P3P+%cKgjm6QO=YElt#PafdQ;I_(S?P&lSO&%YIm8S8l95Lz`|B7lr zJ>zc_0rzTrGhK-$iX|uE zFG-vhj*zm%EjJ)566ez#D#dr!0ni{0+W=;}I6DH&9`Qe$G3h?>$xz4~C7;mw)l-si z4OXHhU-!XLqC~>N+(Q)8#{m$gxJif0Z1Wly{r|f(2-h3||JSXbBE;W9-vhDX{#>Y7 z&u>5s%2--5RNvWvul|Z+)O=w8zBc0*{8wkfhCiDO>d&-2nFP+pcvt+_j!nCPO$QIa z=H?gn2xiNPF#Pv-5oMzHzmp>7fAl5;bwExF>%pYo@$W<1XlH(;i@rrT`pgIaKK7PM zM#pDT-ST8y zLrZm)#|$p*I-fAsP}a4Rk^c_fyBKr#!`MrPJtZgm7?5m$3J_`^^Q zH;qbMwcP7jU^a05egG3+G&jOn6PHQ7GR@re^fR|}AJDO-gF7V=vPay9O)%EY^~nUh zhr8bx@Lq1U60>>A?Q93&88@DeUVYpZG^u{>5N)Ymb2rjbKEVB#_N_x)7S$hzxyxxo z@Q(Wh6}(2cQMW+sdG=Hkao~O90Dq3WDfFA4BA0ynr+W;mP~G zAHjR^Myc-X$Lman2Y=o^HDsrG{*w`42+v;vl~CTUJdg`KXG&~E^1h;wVtD_44wYEm zP3l|C;QiG3|DTFayusH@z6xD!D1Csa>trGbo4oJg$95MzQX9YD2`_d-mVj<@oPtO< zzo5lq%eqCtZkK@S+@b_oZ zX6c`w=-qXs$O3kb&87D9}_`_@>->=(dYW3;aa^EP9__rN7GY=(eKXYB3=DPp{1LZz5deG)1q3^hI2)eO~c z{0=pYN82%~Wjxl$TploZ&k;~7SZ8*mP$WP=FrHxjMw+!`w)nPrl50ddvGUk4(bIpP5f**wf78#u$Y# zS92jd&vZDAAR?KlSYW5Z-1|9CA@TK`NP^DF~vTDfs38 z|ETSBzz$$Mq~hBDq3%uKfZdV!IRpOgOia?^__M?bm!Pw| z5}W>rKfg^J!$I7em|lYh_a$EQJ=FY5qIn*k{+hUhT=jv(L099uA51*^#ehAO_}nPk zJ)GF^LcINNi7V)4{Cna#WN-gSyy*2P{Ac1Xq(F}(_G8G_zY@#o?|U@y2xGh+OI-6# zRCzqH-x@S{B60UG@hPWtS1&-7H*|lD=ak;qef@J#^G)4Pd>b!%bN4~t!PBYT!>_>G zPwT#&Z2$D`cbtZ&w{(|D2G8hz`o~b^t=*>*bKchd--n`?4|e~6M%NE_ANXX{yrTP= zHv#sA?$^@N_^s}n>6*Qz`>2-yc4zn6c}b&q^X^6OA5Wb1YA$=?KTpE|zLA(=(_0cx zdo6}~U*hpE;pySTsZVrkn{$&dKL^#$Oa7gf?GGeJ7Xf}@a_kc*yg0e*H5l1Pl26dZ zb6N6Y3P)EaA1);9eJ}kI3f8{iTnzZ7A3YN<{jVxj)z(wj;k(v-y8!;$ab zf%5IGf5X_0-h#2}SL5lO ziNAjkf8LdNAvM}_534}G)F1wwcyk5~-q?NFuTc2*?jO@tbzb+cXxYD{`;|Fp#PSjM{u$tf zPa_g!&$%0QMs~auB}+c~L6p4szZg<{_!(LJe#v)8K*#>{a}2St{4FRcl^JR}aqvEP z-SRO8F4b=*dq1|e3MH?4_%1+iNW6(gq3F+}iT*>-`5lR;z6AB|OkBx>Y(Gn^ zJ_FMR-g`Elew&y-0oc8XAMn+GNxb+y81P>cpInST4a^ zk5ZHSTVna+=;iN;n~3@UNNgAa?4OA<#!>T;#KT3v{+0OC-|*+r#2?6*9!nH&#h=F$ zNfL%95^rM2&d0l7e>R>j>%M`}IoEgJTEL$hyFbda*FWgKhGOMS-H$&91N=$%^FN9g z{j~dg^cvmWJ$o|R-P3)|S5SC=_gA)~%I~{(Fy`jL?w8HSoITWi+Bfj@X!m#eFr>%2 z>vWBun%qdQ?PJWm~`&Eb;7V?{K*G;uz|>^_`$@6~wM zM-ty$gr|=tehfT^4)~hyar}uz6m>33{F%Jx^2CYfqRJ-{Ba9)qvirQBqL-^cpYb)H z=-$7I2A}M{aS8*ty88;g;Zxn$JQIID+kNvo4ClJ;b3cx!uXb;^1Ao5O{n}ON`a9hp zV>*KGcHeY2261!u&Of5&E!|i2;_24zw|Aq@A9p{C?CZAf%}+3 zc+siJ%Q$-O@-20Ac6RbDJXi3}ilQ+`ze{1p}nwWo+e8US-_;B(mi_z}Xp00gRcwx^MZ^Ixi z>UsHP_@ZliewfDqzu5DXH>2kDJ=^xjYroyIqGBZSsat=6ri+)5D-2G*4DFXbR>1p~ z)xL`QFMj?Ex;m`yQZzdJoFAd&h%=_q-BEu&9lr}7KO3#ymiQ)B-FGCu_j&YmcH-nK z%;s=+YTbpX`|H%pjz+ilre3}TfBurHj^fXQsiR+pMt@6fp`7r~)S1_#?PIBnC`!Ds z_jZKlrrz57%rjAVX73qSqwrn5r;%d3yLTN~)w#W=-i9H)xA!?uLe2AfpFV=l&hI_< z%P4$*@3WtU1{d_MpyT?&-r++r$Pe|tC67NJ@BQR@G{3xe<7b^9{VbB5!T;KhmYIF; zz`xl|6;yfg11DkZhy8>Io}c|C$_qbTkD8Mw{T$_$ea}Vt^sRJ*uKEaL99OS70E1n# zViq5F;!|!z%~KLrF9hIiiOU(VeOBUR;^(^(_Z^H8zdLcoxsJ~qL7P|O338I=t4_zr zr+?0Hh*e9!fPYs%dpWAFxt=U_Z4dd+(HFe~zmI($4f*SLybgVCIP6T+nHjzn13T_N zUkT{O_tPx0=>Yb*^(q<^-ko@ea{T#;gQ#L%lsM#1X#SDJkLF{9S0wH{2pxYaaWbQf zu1j3~Yc&3H;wsXn8xotApzyniM@i*>m?)lz=C>tY{#QKxEb$pG>o*%pef8Npa(F*`OtLH(+*qz;T3;D`z;|(|VTuBGb4|-ntdKBK)^R^rDbbC*h0@*Knx>IO= zch3&)oZt1V`xwS@f6tv{kq`8IfjsWPo~yo!vHYv&KPewS+H=8W==05~Cl17)Q&VT% zi*{$G@(fCUM{3jM==0pv=RS_Y_onKUAJ0pze*%48lscuCUyDrLsPggDf6-KaS?XP< z;OX+zo!`cbKApPx67+IS>LBV9pGiH78{*njdyU`%*N&4d*lPbbIPkG)Vs> z_0$J3A-_y5ScwLAr%E)9{w{U*2Egu5J^XGo|9z^T^z{#^a~S>b$J8m8sIm)?&7p4mIWWjw1lc>rMV?ETOd^!cvd|D=$9PVeik!_&Ka zZym+^KF~WuzrqE*%Wp^X5BBEY1=xkXZ~6+_eW>?HDs7kcUVAde@{!(CiFH@?E;=9U z{)yhf_uK(oq4L;rbMsBWadY_2L(VBj3?+%J$pY1(_ zE}*aUmig^p?OnS8?Y`D~;ulePeeW@!L6xufK1A;Iz209RgirZ??}=0dZ|r^WEBNz+ z-qxjPa9i&=w0PX!d(V^6%P)G5E1|(Jd-p4#`Q5#*zX@-@r}y2HsCj?y`$)}x-+S#= z6h7EHa~7&R)cb*R@xFicew~`oqrE54)$v$w?s=&Bc<-lwj6bLK{fmfldfy{N{j>U3 z-h)49_cdradtYCZXRpui+wW$yySVS)8MAmv-_}{Y?~1;O2{ga5Z{!g)zqapyi%{jW zegAzh-hN%*?8i{$bA9K%0fpE1UCfR5^}ctXfQh`J?@>x?-{`xF81l`&AKrxbeXH-r zQ}FcdzN7vFeSW9!&h6;)=Dx4+?YHzj_e%76Yv2B_MlV0^`{TW6ep}yfFG7{u`}VD% z!B6^LN3r9lePi&c0;_q0gW7t)#wqSKp5BqUO*0e)tUZ`HQ{`wTxf( ztr|sxyZfH|F#g=%cO!Y~@B2Q_Sh5HEj{Y(VAL_f20rC&`ozJ!XTVLO4DExb0|1&X& zfA&qBjzPS!|J)Da4R7lIH^!p8x&P~@;0>qtAAAI=oYueM^Qdxq|NEDr%3J!Ey$ywD z^uOvLRC!zff_`-U_WtL-3SFPsf6CKQ_>TU8@1nt3{kJ|HV>!G3L)-}O>mP#HkvhM> zo3TOf?|;FQ(BK38l}quy3;Lh;BmDVb|L+-+a$)~cZiI{aUjo%V^`ZVRaEpGt|3_3E zF6-~fptH;SYtI1eivGK33cj-c_9Xs%rvG{ht=INnxj)AF+5Ur{i<;N<-#{DBSNmUm z9bjMU-*_`#^qu}sej0s#xBngn?tHKRU)15g-+$9{(C)_m{!iiUKj^<}5QR7O-|>3% z^27d~Ponvc`g<96baVe}A4R)c`ZqF=>el}EQS$$B|BIi%7v0u>2KA-e`=9qu^zxJb z2R5Mar~QxZKxcRKXUQ$@=}*2LPrvH_8pW|+_uuqNH26*bv%il9zwNI)3tivae;A{O z?(6^If1~DK`oHjOJpHx*?UeN&=s$r6F&^yS$@g8l&(X7Z`rJM*p`7{EeeQiL3ct0_ zH~$?Ce!9=)52Ne*_sLy>Z+K*%%dZ0Lt^3~gNxbNN`+oiffPHM=TaN(jtNUL24)pSq zeINf0{`_v=FL3=H*|$7}Kc~)n`e7K-ne$fD0{xzOH_()N;k+~dj>3=5d*})b=~MHr zCXM{uye`t@ugzObZ^rlME&Cf_KbiODCK}v3?>98={A=D{-;1ZS_Z#~sU?17<6VwxK z*zcA@@!EU#Tk{P}$SF^Hq90W*e$uO-k197jsoX@BJD>C}uF8E+I`2)%1GZvhm(4$X1*YKk`BiHFKb!xyOY!z!&HvT+IlJ@! zu^8|B{rtOLfGU5Qzw#3F`PcdPtVAyl&3_fOtiR9S=fimIBlFMu0%|@s|E#B?`6&w) zlXtv%!EIyc^DPUWemdUwjs+WDjw*|ud=u~c+=3V1%Wq$>Ujl{SUGU^*qqCb9{Nh?P_|byZA4Z?IF8Cxv zQGUAMiZoz%F1U=W?&k}B_5ysv-3#7u1`2<>;QAv`^S%WWSEAiPZyK6?ZPaq$7q z|2CRmcEBfYK;fqj`1}je{Kp3zJdCG14=8>Vu)7a<%YI#5s^89RL-~r|Q=pt&NVZ)W zcpbiB>JyV__R2#~M){6?pMrmPewljX>`SPseK>K~ar;l?*G24VB1Kf|kDamMYax%DLGMcsb%OYr-Z{Y3h!5)Vh-S0_0$WugDCcjNCbyc!Oh4gF52OH?~`s7Q$3fM1_ zzdj%1`epLPZ^a;fog7<-&VG}8+tcyqcgct5q2~R`vkyeOKP7LVObofV7qADDSA7*JqwNl?7W^;wBLT9r^)%cpeMw11m`}>!B4*V8sezWIU??$^jdN$mF!e90* zAc?-O=ejHK^p~D@76Cgm^_3$qz_U{?coF)%F!hQwV3(w}RxrR%rk?RRe9AScbN+}w zUrXKgJ5;$ob=q=teOGGnv+?xD)C^7N=lAZj8J%6w`{UoBv%7l#u>j`Z`?2)NuJfUq zb|?Nd|4Cg5{0DTx{}PK9EiUZX{HmE9I~O;am7#2D=)@CS6S>KjmM(7WSl_k&#mDTN z#s6;|%C6sa?9Ap3Gp)>`Om@*=r0kgEx9r-udE3ro)^FdsXy+{c-|8*VoQnNB_63?v~BR z94By8#k@n(mHO-x}BRAt>>0) zZJ0T3-L5UOt=W@~pV_%+Qx}X`t(~(QHgB870~`j{axi=1QWU_{6Lb}Ol%CNWia{iT zTHXuW0iEiu-@c7~fV@Qe*s*@SR$mV!Y^~oqjHf#hx zuyx%W#dCCod7kY&D#4#QT5ZnSG6i!YpNQf)8XSKDr?&0OQ9MV3+09!!H9&FDpeqF) z222K{`bZ*?dg`v!yv2)C$xK&wPoj4@{_S3rn$JJId1P_M-%Y8$BU4W~DzzW~&87Cw zq*9Agha8ydTa>CCo+>R$^*xY!@=H_uY)wtc=Ny&leF-WYm70H4s_*dB{zs;e&3*v@ zi&9TMDm8CW>S=?ic}J$6dsOOai&D=#A~o-*O{xE^rJi|s>L5HEnR;p^H6P!YNzHqC z>Y$@i3#wtuXJ%4QTboKBl{)zF)YIRHmZ>8*r{*1=dg>N7dD39&nVVAoc6e%dF!iKG zso`Vz?=z=T2dzl$hiN}Nvw3qW!L*0|d|jSQtVD2tU-YH+qMs+RsQB_hd|2j)R6o9K zd20S(YTqnpX}?JGzoBjtpiKnzML=)tNu>G~r+SyCQs`yhd}_ZJr4s+qJugz}TvVE) z{Urv%cdUiu#UJ$70XkrDDzP|*4|kyaDVtKMqf$MaQ_oJb!oHD)zej~iK-DR;-t66Zy#%tz03WNe>L3I4J)u9h_d+mCsGJ zN+b1bt2DMG?LV|CJ73W?UMp8yxl$(EYL+W#IBhrO(BR4i#T$n!jWB{xN%8OG{ys&Gc4n!a_ z6pE9%wZ%fMUTqeoUrhC6ZYp0aw2H-5OO~aBn#Fo6*BWc(TYG5IMO@97#xV~>wk3_# zts0Ov8zSr=*RZ_0Fy2~GC+4KR-}dQjIocww+oz;kqQS85HkeF&wFKm^mP(CcGuyJ4 z4TqB-0f+OyL=YuA+(J=$AUlkK)th)lt_1vS0y9dJO@|VO(CzS`yXG2B^)wbKSDq{u zq8o`HO*ANTB3BoN%0<_)VP^~|y;5tdR14FS#g?vJA?@b;F&@zCa!B{4Ah|aV-3|dz8nj4{vMpde zF~LnhhzT8_vV6J8dS$HMnwW0;(hwpqXsm5ukn$CoRymso)u`0c9ZThtImmh`Q)jh| z;*48X`Pf1w2NHs=@nKkQY~g0LQqH$>`IW7DaWXxuq^sTpxv4iZMoZODHIO=)zU)%WAJ(^(Cr_)dX->otEDAGp@hRrYu`)@f>?%z6@?y1-_8)=; zEe#3V%-W0bUctqz@eoCQ_Y}4oQTSkNT+%jx*|=sm?b>>5tA*i^*@3j=o3+W7@bIi| zL%-Y_ktt8iK?B=h4t0oz86%Ov##TL!&q_TFBwr)kv_zCFHJ2(km8WKXDHfa*h%3~n z=PGU|8ci+?knI3?=#jaJvEo!ceQ=tOEq#(E#i@l0)8IVyA_%i5NmPLDI^n|6xiDaz zS^P87f&>D&WNApe1BlE_VQjpTpKj%9W7w`oxA2I)gyzj^Ew&cBt0`R(6EPKIyLRlH zot)XWaduN{sJUa^ww=d8LlrzFbh_SXP8O%efrCTMdTy#wD%KlEm zd<@W}f@y6`=2pZ;Ml1AesHnF-&j-B%q#@iz=m&uUID2=O=BM#hZ=4-3J^#^5sQ%P@E5q@QIK|^ z_mb7qyLpEIgOw$@$>%fUhG#;M!Ot-zh2m5d!d0a_#Z9?r7~<-(rNg7cL)qb_nI)N- zLx)F7L)k9wk}@TMe6v_C4W(nxvdFeWfPi^?4ffDvZrptf3T1PJkgis(+9R4igLSW|V_#N@C*-cH0XlbIAjr)%-ak3(fftyVH%xvaH#Jq9Y)z>E+QQ-yVFox8Qw2yWtwUNtC6PT_t%d0g z+taT}dvz8bdSrgnx^3HLwoEl<*Uiqnbnw5@N3eqH-nBezx2-b&TdlJHTdjuXZ1vjo z37cS@8W;rc0QZFCiZzj6*f5wXPxu|CU?5ws43%YavR+u*CJDBIW#NRgj0&&HEHRv3 z;<%NSho~;Kfmq<4W5XuC*;BB1Wl5VX=3w%25C*P2NZG1lXVMU*4P-N>ene;n z%CmEnXGTDP99u6m+?Yzr2RwibNL1FzJTwUWGwdpxC>;Yz15&G2zJR?#dW|nx)q(&< zPBRRJ#A#{qD&f1Tjaso-fJCG}>Y0&{6})sRci(&GC{d3Ui6WbJS28oCB#V z}OwAr?P25X+Lr?KK}hM#B(5sjjDC0{SsVQvuvQ)X~@+8CAUXHFfoC!r@Y zCkVpmb#*qW|krxrbRLFpzXs!|g&nYC4% z6SL9;zG0l~(pi$7;|^Lu=0wPKgE-j8+w{68Z{)%l>J3}s7WM8*4!R<>wDOpJgsT*TS|hdf zjn(TdXvkutQY)gY02gs=1*~q4o|f!CrH>(4*Rdg*L7tyUxpV-!s2HO3$H6LLI%tbD zh!v;}&_vV*5Mx#6wlsToXsN}!X-CTw_)yy`t$YtH!Kpg7%z{zLf~i*6(Fo%}GE<}^ zwEI8@ZDaOPScnWtSeLk!@J*Nw6!aakwMs*+l93X@Anq#q(u0}vb4%6`k*fZZiJ?8 z8f8M7mo=*jWcOOW(OOliL8UI_@~zbnOU8>+#X5FFb*eR0EyG^y0Q%@OtE5B*)p?!7LLrclx3oY`k6~bz{;3` zF+;MStD(Q6h3*Z(rXm_b8OC+2fvLnORvEESY7{D2;IL6d=)76kJaK?nSfM3>gHC}n z73=ki@f(;?Y38?&^T~``%OUJ>-QN*th>009eqgeMR?{U=o@y%Vr4p4MIJ5WifiZ{!X&0oPE#kAeY+|*DF!6g)8-{wB?OCxg+>gf z{Ri2Q5FaT~R98>Q8WtOk>;PAfKgf>4--koNq*287#NZ$h-+EVN2Y@Jnla~cBSw!Jo z7+-a4(vv}CPpBN5&%>{^N8<_R5c@-yQmOA~DNbJFP<_Ah=*+UZ5GSx}{FI5{$Y>RV zB~H|VHg8sk3c)AA_?j^)Gtnq3ho*5KQJn>xJ;;eN51bsGER@SM|@126Uf}YWpOyLEIP4! z2<%971lmV-?W9q#Fms$yqO6R-T)iOBBupYJC_ibernn*hW-@BijT8yKz`X)@6{JU* z$MO`t0U(jrUE<7@aMMzk?|kiUV|xv_8899MT0G%1^YG zDK`bX2~=wFc7-)$Vq^_!5b&|j`7bo__97Xi>_9bKWK3FcPXfnOW?EISJg_|)yJOE% zM`-a%I8@-64R^RPy(mydM?MN&QdUn~B&%~Piqo|;%b`RPrX^t&T^6PG<51}7knR_zU%WSc>Q2St0hK%S909lW zubYK~WH11FU_YRmP~xNCN-+gn2r>~wgIobtT_}5b_;^Ge>rgC6DVxG4gSMT37M}6~ zsvK}lASHJyJWa#ucycp^^4}%MgU*sDuN$)q&;&FzHHGns!Iq z5kq2f%Exy^P~1hCqcB#JiK_x}A>vIJY49P*kU3P{CzI7Z?Vf_cHOqt8GNA6VV@QD5 zCH2BkFH+M&Ahd`_D}%rjE$?dNp%;~~Ffc-ntv$L}uWDyO`E+Bvl$)NU50r0tQJUsI zGZs}~5`kD?$Y?vFWTis(i)c1k#9}MKUJ@!(4kA;xnh`Jg5-en+>F{@J)Y(62uYpUf z3RfM>ru;i#e`W6kzp-mbH`}W_t-|cI+w6r_$GN(Ks!{Ne z?bJEI!$4z1+|aN>M>!qW6)~+0o_L)7H$AEB01*<1a9Ps~RX!5}`K8M}X!xNS#dPQ; zQEYTe$!(xY3q`&$pokilY!#w*B|&;$!?3W-NRceJZhJZzv<L5pzBh5ORKhmQrP86~3Nv_fI#*j*c2g$d$CgWi&+RLCqb=Z3}t zb`Ba1U^0J{=_oi3LhGoAcu7IsSz0yN#7twQZEv3@jr8girhOGIKOBB zz%o(km$~Fr5~C1J345^wTMjv$-P713VEKMZ3t=Qh9OdHBaLOz&Vktj3t_%e*sZL^E z&EcD>xooAeLWsNfEHfq;r#wMI7`+}NAnA}S5!^4U|DXu99c7`22YLmIb0mmM$chJ( zew4Z+z!sFFUL8jm)#_@!&^5IRig#i2&UMFbnJL#-0^egLj`r0jV8*OZ1daexTa7XX zP$*nUc)Pic4N@u=e-yT$}lZL=>2oXaFu(4Ge z95kUQ2A5G7p%r>#<~?P6S@E~&Ja~F69PfVQoJ>R%EZs`^SVJ9M(2poW(+VzvC$R-% z0o4I5$b+DxiLS4V#v*7Vk@Q(LuYe#U-f1bUPMw37IzTDlIk^#JoMWv`PB*|nY79UU z1`<9T?ELTaY`eOx+SsT#qdN4XFm+`GUC!0ZlHK$I*k1OsbT_>KwwJvu+f6UaOehUp zQ3!i;*rf8cLnU!s0qQUs{E51gnaikx^N}hzqDvyjVTlA23>`pMa2n4QW!wQOB-ElD zMHq^WjRZUbmcf}a37BlW=nK7AN;TmI!IWmvWgC&Yo*zV0wvl2*b68_sI7^gL%P7K# zyveb`Zer;aY6BPARI9_Af+)g98u0*b`eA&_XXjiT2i3(1n7}v=ZiHJddeUJUM;prH zQwX2Wc$^BKngO?JkXJdwGi=CWcv6W4GzUjMeA!cN8sp^m<4c2hA`^*YKpCJ)!-1%; z(Lq)}2D5nqC5Jd)E5IBuRVYImZKa2XGg;;Al}sH&szd@^b*#p^hE&LO;eTQ>)23=g z&RPZcBuoqhXksP$Ez^>f8SSERf?@5s2ELQ7oJR1e#wt41knx{LPo#=T2%@kh#rMF2 z;T*yCByU#CsjmcwL;S$XZ~^6`%=Q_#`$b{$TA|D&eNLhe{4oeLarQ;N2Ie{U8Ul3g zR3!JDa9V6m8mD5oM;W-hunb%Ckg@^c0-_Bz5vc^Nthr;|`kAp^JIheL!3ZES`ubzQ zdJPpkSwZ6P%#EX=OQhIzj6uyaJXVt?jjcGO-7-Z@{hnU15du=_wyoAB{)bOA&cnbe zh4$^LU}ZbbG30qMecG`P8KftE57}XZNRiBr?qm*+V+>@-K%7-M$iT9IZG9^$P+<#c zoCJ)AzE_J)gPa5Vt&2=f&u%?_$IM2=pg|1?;**tfYJhSyl>9JjfJo73Nb~NROi$rt zLt#K)CH~4Vgbj|Q$)nXN$m4LW*0H-bZ<*b^t+js3t98y5t(T@fJQitG)eRngDKu~l zgJ?5Am6Wq7fydQKc+vsEed9XU5~jpZtMR3n2&W5B;FcGdiqKKs4PfCKs4QzMYY*}s z-4lWk85_Ip2pv4(W6vD)LiD>W?r@;gj|6sH0vF}L&Xu36A!AX zp5&M4qWS6`j`YBUX@nvRLc!rz^Rn%0t1BRB`aL+{KtoyuMDFBttcXsFSP>$JNv7e= z%?5tmEa*87Z(3+VcH0I&G$A`xu+Ri*Pc(?Pnnf>E2InVKSEE60`O4}l7xW|MsM>U^ zR3jQTCuAcD3K)4S#esqZf%~LDGYyUhrez1fw2+lU8xD!0UNwbD2gEChfvVTrJYi9o zRHtksN9Cx^qX7z4K#wr)Hla}Vm$7`42}1)4oqxGCj3B?0T5t zvBp|E>Z%WlIAz3!6kB7PXQy!fXJ&`s7ZzR$!M~@bD`UkvUJMftEjx0!qm|yWecML; z2e!U07MkKHfy-12V7w?%i?mnnu8QqYGxj)I;2vd|oc)qT8%BhckeI{kIe}x19sTXj zD;lk!3>1fkVIQf(auuu}(HUyzT(jH`j7m6-Mmi$TsI-GQ6wd@?YmrjG3B$2cw8man zGcxQc67s4Cl^|QQz#8Ev)DBazNHoY0`4__vBX37UgCu?$@`v(4JMx==AQVVkTySEm zBNL9jQhB`1m6;jZrIEqZPK5V^NFNQ#>0Cf^fPnTzAQEle&Z9zuQm|=Y_Dm!2#kLTh z%FupDa>fey+OZXF`^E>!{v&amK)_#UB3c%ZM@&axI9et`I>v*rJIbVr(;Y&3>NK2I z5n!xhq{tfZsPpiU{0>PiJvF7-#_aavkDuAVVt%|6+ewR~6=b;JBhY-SfN@zm z5%Yco_tfFK)Y$_RA+0djxa8u^268HKlFSCj-d(xOj_wXJ3OOg%bf?5v9vs;L5dywV z*PvIJP1^z6LdJ28=MT>xBKvGhYnEO&L9eE1zz*$&>uxm4HN_7{M z7>2;mfP{lFcr_;6G<}NPKn=LgY59csF$V;E0bz^?NXrgm`RA$cpRtCnH-PX#o z*3$IuYSr_YG;VU*7$u8rk%SRDh!Qn)U~X>wl!bCX&AH%Jgz3(( zdG0zi{_agB=gZh_Pn^AzG0nTJ#L3%ZC1*z3ZBLoOz3D2mS3{RI-Q%!^_NuSZy_$zi zcCS7%J2DDP!8|yAvs433p)3bx9^*vfL- zAZnYBI~L6wIkeya7}6QD z=9+21JsF`GpPHs&zR0`?t%0rU4%xbSVY=1widmROsl1&b0wj|GO)|bjniRrp8k|U? z2ao2Gc%1x%sIo|vE{#A$yv=yAksWMSv!Qs;BWqyjQEf6~XG8<_Qr(tf--H_@NEFa^ zWFLY-J6tE*w5hnqMo4e~3#WQmR8Euj0vDIjYG=+09%TtQN$_(O5h1#b&X7g{sGdVg z!R^6Os3=SX4iHW+F5Zt=b;p?{YE{N*D{h)!Rzh`+?jklA5^t1SIhw36TgpbR3=4?R zUP-M26mhE?2g&%LT8*u37PBDR5{Yb@FLnZtV`F<*MjQS_UG=d@h8u*wV!PwG7X_+_ z=3r%kkY(G!qVq@75xyup)fp)~8-<)e04*VsR1oq~rsP24!h*sy7Q=<@XDo}38L2Wf zQkaekP8Ix;MfCiuMTWRlFnI1L%w8G|b)+gBcu^4?aJ`&~h4%m(p{T(pwv9@12FJj} zK(9q$?QY%$2bXeb`0GNV1`ikmC?8h534%DBP$+Va9wXFPY<=GkVzmAuk}#|DhNlvE(5!PQKDEN z)R_Nafdz*GT~JXfc$5y98^FATnoz?pumLJ%2#*QUFsVsn5b7|7lr}K_7T45Zz#cd> zGnjQ4r)H$MYgUHjKsI}l6TwsQyorm0oQa97ikl9?oe1ep$aN2DUXrkE%J9%hOtuK? zw^eb%z?@YY*bIB>rT{a?p6WFASOYf4J#|7~+MYiOm9l&8Y0pDOT*98Zfu6LdD!KX| zKdZjyDF$uZix1zM@2-b2J98lpGWYE1tEh$Vsg8I)_gtwyvKMun#62gTR_ow7Vx(Z2 zw@MgG?z=o3NcNy7`Q^(cWnF`zU6Aq8)v9STPu8<8{nF_2UjYNMPAr}m=VM`2PO4)+xkW6gnFeLQmr z{>kzm;K%?Nz8brgHI7(C951E%$Ub3mkQS^h6dElesy5TwbA3FEK|qlGg9YuCY(6llL!PkN zF@IZ!3SH|rt=o})(V$qVNH!5$RfR~w`@6(GKYD-268aLV2AUMJAW8v-ZVo9V2~~R=vEv| zR6QOWA%}EDx@e;GVH;o@3-=)(2`r6B8^rfos7A3^smYm2Ms47H%UT4J>kkem{Czmu z%h`We#=I0?CQy5FRR<`(T5!=jE@c6lNWB)qIvkk_swqa9Z!WHh2{r{VSxTSSnS5!) z+R2w3ktVHd#B;4!ak1%=t&pS?sP~LbibKwR3-ORQY0Pv$06k^DO(9Shv#2&K;4~aa<=L^9CZCyPb&no3Z?BkJDYjhaL?3q(bB9t?WmMmK` zx@;&jG`w^)JCqq&GV`LL!KJ0qVbu^+ck1ZocA#*%&0a97dqBc@X>AD@oE@&`=D@5@ z;|x($L5UZdlA`Ku$1#}dYvwd{{55dGW2!n8JBPKZmNm;&XE=QPqJ)Fi51W=h+(IrG z2m#338`$q6V4GAL(I%K~sj+qn>bd3zYQbKQbDg;w&ix>iBn)fL*RfdmQWvWW(;YDw zzAJ|C!e4EKm8bp9O%;X9TdCDInXCm#Tu^{YvoDcRI4$0-06~luLWkC7CR4V3Lsn;l!0WzwAflz zZj_OrH$AAhXi1cU=o_ET1TdLga|X~)iv=pfo@%-j!u~5d z^{I{tuq?p`crqju$=LyE2n?eNCXq{vw_%jhlmI4;^mVNzYpX22Zg7TwJ$lK?D@fB-ncT8P?uJrwN#RS6D! zg62exgB0A-AbwXQco;Gw5m6!r<#s=~~%!r4mQ;JVYsn>FkV_%oxA@-D|T zAQ02U?<6;+YB8XFy6}#`5Z$gDbcBmaAQ3KJMkq}Cbh%_Ea1Hp#B52Wz|Hz7y+b|N2 zd>m)-MOpHGI-c_@LfWW9_aPx#Sd``*%7WUboU(xJLMyhaIc-F!4c4{o*v+^`2Pf;d zZ`;|WGtICa|9lATY)O;!s;9 zC)CLrGBmFaa>WBW-f*~=L9SDV3?bl^XvffW|??V)yw%IB3-;dK8g75 zCGz9xF61~+jvBJmcolhp9QdqFgB#Y1B*Cy!bArJuWqP3_VSXjvNcWdlAg>nQGCb$j z#c*RlTTC97FV`pIN}*$B29zPXGIBIn24lM_4wWXPOnx$1Ps26N921>NMxXr{Io&yu zUKGQrB4|~%Qdl4pzzHl1vqZde0|$eeIzUg}jDcl@INVaLf&3s4qESh|YWo(T`j(mW zz=7MgAAcYsLZDkie#{S?$SU5G)2C~b4d_>^RBjSeb&-MzFd;nU7aaJ~Ebcy0!@7{D z#pW_X_gobjZsVk#O(fQ1WKAnSU9TgW*Wn4$2o!TX3>?Xlal*{HS2*Tp$1Ke*7b##sGIu2=u8#CK>Zr{<$Z{0Ake(MHN74bK{@Q5RnZtxtuwF}%}c2u%Cv-Nmw zj;VdISIdqSb*N?fdO{$=@n3f`%?aKmlgFLuDR`9D^kyO%dAU)| zPt>bZ)#(P*O+V?5x-KJuE|%#Way)Y8TbvWKpP0*4($F@?bqxkc^*r2!TL@vaQQp%A zmQ^*;Dab9BjupT^-KFf4TxeCHz)x{3ic5fEEPJ>x43F=)kfX9x8}_vxp}lP-oN>oxMZ{DiyA0pdS!P`IqlL5m@RkmsdH!Udg3A1OIl z^>uBtFpUF2{H9&%o{gUcK_DRRWYMpsdKZVw7eMTjl$=b}+H5-%6o*O^SiCf<&5oiB zWh7Y<>uTy|YzdxqM=n5EJJtw!3V~M2e7`&eLZ7R5VvD7AWJ~bcA`Q%S93J}7a&UjI z7W6w}wctKvC`%Qps2@H{9cg9J0bvlQPE`~ZEOW`}HXRk=5GW0Vl2)NjGe3*cwWaE2 zC1OJ74-e5g3!feGFTv35Ikv%XxI6ewF^Gw`{((up%JzkPgwbc5rVPJAz0npsXAd$Z zd<~^8P^SF4<9T;m{`f7kY8;Cc>5I)q?uS-*`ZFX|7^UL{@*ciJy)qE>N_sHIGXBRv z;h_Cofgp)ADj3aRdfv!!Ng`S;2M)y_5eQ3d(o_n<$!nuvkx2`H@_w#YkmxUyjy}o< zace>8%vY)CM>~vwq&r_~$GKacivwyl#gRtjrLjjO8~!+P3>WgOp!_Wk0yoOeRit}L zX~+=CKwm_2%3wS~8A8ITwe#)6x{=(Id>E-wO(nDRK?j|P|Fv2+fudBotXx5~2tOc{ zQ<3)y*`;F7(y{F@3ES-GX|r22#JuM$3u-ZfA{U)vMf3m|OtPMf$Q#uUj{k;izP1Xu zuD2yYh>|4r#Hk3YN1e>T!oxb1BjxsCLfPUChURE6%m!Y%c;bep7Rt1;ElA!j2-l+A zu^Tn->74<0>MrjJR zT#U-tCWJhP9`Gq(vy?Pcq%L^mv=i7)bs)+Qr|_zf7uC7O_1DAvF^H$J(^@X06duLV zW8jdW6vF~n4P;w)bYy0>xMRom9r^7WW<;NHQpZroYfwb$Fb9>xd9iHBCc&hI=Om3c zx(vJSQLrG~j&f^?Pgi0fB@v)CY7r$p%C`I6r8pp1Qb8K3ATEwKy8WC|85RUM84}kB zm5UKt>69d$h8srKwJFFkpfsQykHaaU2&D!K5G76L2bgcdpxo7^HYbX?o^tfQi*fH|p5W3+@G@gxlJ>!SM*(jEZ zCpPDCIi(FOql+4Xf;Jt^M23FBOjBfZ;!8G&`Bb68^C`QqI#_>W#M_6+Xk^tbU!#c@ z-1P2^Nc9AdsKv@N^)4R;lc=~MVZIuDCE1&qu1x$Q1EAOtS8>CnFTQcv(}8&l7jG|= zJ!e6#zA;gay2vuN8`~yd+Mxz$6c6|yDR-Ela2SOk_)F6VZrXGpe&=xTy>ql%3?c!V z-tBda!8A^3890>T1lQYHkfuAhJ3Zy)zDE+b4$1MORWLYym)=t~*ToBS)BxSIeASXG zJeILquH|rtXcorSdW?W1mV!>%=q@irvBOA_*jXzJV`s4xQ1Nr{r$I;^ zr)w^%ybHqV;nZp#X2L4miu9r*;KzOj$7K8h3lT(J1U9qLY2aSc-! zGyAxE9>X7`8D^;rY#2DWHs;|r2aThM@DKu{5ObfVeo4WAY>qm$UJj*y#Mb0~np4N> zwY*x}Xvx&J>3c{EAal)Ju|D^#; zUh2Mo-Od@FA$MArgnHmPxEyDy(XbQel$|2Ma;hQ&O_W$>5eJ6!rsi%7-W>zV%UhCK z4xuStPC3y`^a3pCCIMTpFNj0KiBq3tRh}h-NDe7sytNcEggd}U zz*1!prV0@S;tTFT{#;Qch@}3Z6akeMq($!pbbz~PrTJGIe&;J$pIMF?f% zX5bhwoN`qxO)|Cz8J10a`@Bn6b_24dw$o_X?6AzGWWAKUbM9k8Nic-T2t@XXM^Bm_ zmm!^0XNY&L0$d{+RTEyRpdv_c5P=vZDlzaIyE2Q^01!l+))C5>Z7{=EJ3?aiHPNuR zO+*euXd&#C$X-^SS}v+?Sc(!tBKlHoTq^mB5>Kz&?xEa{^snKrnN}w)`=mFUrsWJm zA%}!_cvnFBz+fRI+HWb-A;rx~cW(si@)NM}+lDt&Z+VP>f$1iT2T`Pl%;~>JS0T=mq@@`?HoP zH+a+yCHzRDXUKlsQLwNecsadyytA5qQ*@plpvp*wpe88R^N5xQkdbgNi$b2O#>Myu zD5z{lMOveQ@{3DQfTq+#b|)=&gm-c92yy~0@&bv_+Y;CimWoZvoNx9ZpDqG5w^4pz z{lfHmn6c86lj>I>8EUSOY&|j~IIqNS;kjJgBjY?U&iz$~_Y^|eWfbWT zXz3B}zdQRLv5Q&-d9}=>Qv2PQ8_n8C1VCe?T32U=2^fMGdEsmsy{iw%!-IkoGGg~2 zsKA}BsaJUnHxl^}1db`;}Cg%=t z8yqA-G-^@-ArG+PO6S4-rxsokK8LS^i-9aC&Vc200Zc}(<_8gzak2OAJhuv#MlLf8 zcYk9DE51g}ePVIa0&@wAWeFRjYM~9H5K)>k4myOpUb9QHL&Kw^LrX`pOP7u!E_G?i ziEZ)`9px%BEekQwzyr8-^d?Co;64QpU^aZ94UCW^cWr`d9HcZt#5B)%B3y<15t1uh zw=o(Khss+68DCS1x07|!H??Px5}7Pz2|~>g9N1>-YXsBc?%*z!+4%LU7Iw9HspS z!B(*cBRqRIW*RI=hYErrno|RYdTuFmsqz)BTn6B*S;z}H1->0ysyI}daG$w|e4LYC zEy52)Y5a$I5UCUh3}v|h#i@lP6(sj^*aKo(sW4regh$;aEb&rif$Y1|FpY^j3D*vB z=l*r@x|le2tah&vj|7s-PpXk?mOXBwxTu&iz*t*-sp;VYuENBRN_fk&I$ zz&fNb!dnhjuVN5-9`+yX7zl48)65cp{B|&p@n7Cr6g~;cE6dV!WLaF76eR?4XgCk% z%Xa<)^@pmGK}=B3TG2dfbZZN)>bF~ZDL=l<%tVOd0>d70*HBns*9dTY6310=+8Y$4 zS`P$^nt@XyP_99~pBdHfGIE3bKV$^tiiLM14H*P(7{= zCqf26wM^X#W6YXSsZBwMGDfuq%9ILF z{J}&GvTKCyQXT3@mqsJ(XO1c|1`+QHi0)V}8Qa|4dFpK3J4Dpy4Z+-wQO_xiXte)1 z@}Xzw81xpm#wq>q;W8Fgd@bZXu-!wbgu6R_zlMZ^TUFv|t8_G706e|`4XIiK6TqkW zk+lrEZ2!D?4H<~9!?uUDS-hL)&sGd;LfOKkXjE0b;2s5$XeQ4$>yt3$<%_G}g8~-? zO~gGPW+@GmItW0c=xEqbkz{7ey6qdpTH&6zuiK!iA5Y37ASzpm@OrL}9#s^Od{!WP zm9y~l=4FoyW6@_BC`B>7oph30+6jRwp=EHrN^wdhP{n-YdGYp0R^yo>(-${*#DF?5 zEE=^ccusgDwQU?DcU(~qC=Hv*^_iE3!|!snOhj|+Q@H{Vdk5Y5<*d`PHKMUY-pgV zR2tFTcY;9BYy=?Rq$h$wMxt??VX-a`tSSW@3MjOucEIJdex|(b_+7JZ;xgPfl*G~f z(3~<#J5aZ^aVX1=>z;xsW$Z(i;bq{moMP`;>iBf7$*XtlkY`{b=uknviL)o+_*0cK z&RiAd4A=MI(olAog#>qWmIbh|y4jE&u9A&%i+lHqGTTf*E-n3xr&Z9PVZm@>V~}T= z0G}Fm6akEGn*7bJ$9QawoDxA*)$W2AX|!0*&U-LjDL;Y?WG~3eYyz#)WqSzLuL({+ z(R3=avlG$)-CR?}eWKCL&W{OU;rzKUdY3iF=2M7}4$h>gjxtjK3p@1J2v=Egn-aU+ zXxr2w2aq1%N8sJlyVaEEsDWKV9;=6~$8iRmcV*Xh%B;r+G?M%Uvq%kT3^S$Q+hYvTbxoShe0jV|iz&B;!AZ zAo=3DngirrlATW2VUT6RJh#Df5&m0Eqva`i0|Ohj??U#xg>#&|pES>vq+G>Kr{=l} z9%TWD*&-EsS4sG`u1;`SS$=->6a_-BVIv!qAfCXn6|EvIHGHVFTROve>`+6AqD4>` zYHIvrT_i0W@uLafVTHr+D9{E$TUzYso)Ic;wGL3M0Ftg?3n8MYl}1{F_#C4( zg+*Zt{GbS~LSn$c6RMB03P{ql0vB`Sl=!w8jN5@iF{pDOd>CSTaPMX8%N^^D*ODm+ zBrpi=mJY&9!E#20ZLx(iOZHaqXT?1T{!%3n{Ow9_Hfy)#fSe%yGz5{NL&*f~bXTon zYqp?_Qhw?PkeQW_v}l1*HFvltfjj(00*T5L%r&+h^wHL)j<64oL}T6BR;Lq~xB~oI z>a}bC#5rmxl4s2LXfDOzQN|=R+lrj(7(7Z1WyN5yEf(pnhEaoOe zax(v;vf2z*Ld}fgBX(K}!pnpxxcswTxu6nt0WM7uBs4DkL}5~0HW;I5!T>dTGBL-2 zusEcA(7Vx9!waC<2&q*a1d(}sGuEbURiXg3ddbR{nhx6y5pXz!#4MuaC@tf;#ekAU z;PM%qGG_8)q7HXm0hJh!3E&)1a88+Q08pYBWsRja&n(jxFz`ZicgNLGTk^gO%u9OU z%+wNY&Vl4vNBaeT zc%+^bw_IZB-Bxm*l-*WxPL>LQIhB3cEb&Cwr)=pGD%GQs466f(gXcICjzsl!Aw z{B{Z}CLpwdgPlT$X`_L-7nDFb1X|{Jf!5L5fi<@xX(a2T5vh8GtoNEIEUa$IWyb?f z0ZghB>jOa+jGsr`WnaY$WpSnU#2D(}?jZ_PLG4(f)TZ-fim8TH=OEyeinxgiu34k2 z0T4IHbgH1!va)?zR&wSR%GH;!b<3`!v72}F$pa1Du(A*jqN1YFO{7fnXmGTO^c+Tc z!Tah6m5$m!OEEF#AEl5dV5;6}9NwWz1QDFNVS5(hsLYHRoJE}pVxT{13wm_U_ zd9NI~Xy%Ad#951SM{nZgnGr`m^bkt60uE<7ZCph6^T zXIlC}B^=yy1Lc`sWv`@lL`x&hX0?gSJ+j*an9QxvYVo!$^E_|rVD-hMxSuBqldhz9 zhyk^u(>_VwN)M@ABhXLXgy^M?hrc$b<77yZ?L}uwZb1a~SXt|^E!IPb@2%1?dr3b-@j6GF1 zIR~4EdzD7@I`Uh1mLZi2ePFmKcDURSS)?=?YopgTa~_OenkPZ+l;%~ytK!j3k%M#$ zcM^Mqa9p)+;>=>BNY^ovrw4)>*UCfGhM}fAA({5Ecie*z7!^5a5Ynz z&IYT8FsaUC3S|TnkHKXJsjta<$JR#n2~1+FlcgI<>`IfN;mgitb*Lbn<0y~22T3w; zkSHu1LJkq-Cg65RA1e14<3gvnHH}CguOYogTm-6Q$gU;-^ltdc?qWEOi-re!teh@3 zngjM%WX<3=a1yM*yn#@*#I34XKzCDzE+fvDA?+S&u7Jr+CsFBw=;AiFuU5xpTmPkOWPoRu0kBxO#LIl2tKhlnqVTvjA|7okw=~ z4hlVR+s9tj*0COk0)GR`?$CV%-1#NpSd9I!Gms(J>^gk%Io~ErZ3>$4Xz`Qr#_+;Kok9qH<}>&$w}{8e z1mn00FyRcFJVQxPUY|!2eQ2(u>By5bk&iZmQ{Xx=LKKAw^2sRG&JCe6@+93!i8%nx z$LyX$xLE`vx6P69fgYB~0Nh{ouxom7QH3G!6sx&1lJQZyc2CkV+lM}p;7dCCL}dHn zpo!hMjK5eb_CgVmzIFKu75fmK5v7Y!m`sXLRxjO!Nt1y%sWy_Vg%jwdKb8Z4u5g~- zKY|~-X4iv7Wj?BmreQ6#Qfqez&0t1L1)TQj; z?n=hBL688#Taw9e+VVy>aC}%ji}`4pLmQcfF@(pjDmHC2W~fb7b6enyW7{zC6%xubm0@T|^`yu&;`Z)ypb~l*~~f6v8O@lZRUr-k=I%oj_lFZikiPI_hnT z(F+sn*)+@o;X=O7UsQG|h9#UL!DSHc(On1_mPnXl!>gjP_I`mJ^;Poe_!61B5=F-Q z&2iX``j}qe$)j#s-7wqbp>s(9sjJJ9Df8?YV(CC3%3BWOK!P+{CmjW_u)6bJ_?uUQ z;B{d~bqKnVG~ZX;vKGLkR}u@*X-NLNyP`A{C8F+Go7~o?2aYLtw8jp#|L4O<)Ydx!bf3{5FWBF7d`X>iWTlWWX7Zf zw1l^u(0g#CojLt8TXmhsy! z(le0a?F`Q#L7*WrQZ7_;PE+}ZvU*EQ&^en+JJ9o0Hj#-nI(lDLw7UwJJQt4UFq5u6 zI2pq!8>U0TAcNg4-TeQoX?QRAKcr^F-moVf!>vZ#)8%7FT<;iGlW@p9{L_@@Rs4 zqj!tF5~(a#S|&2EiN1DMP7sNyp`IPxV-6(4WekB!gENs1!fs$)8mrUf5JcVtCE?gq zV00tHUUrI(cqRjzWlYa8puRmc3_w)mp~=0J=noN&FUBNVZt7rnQAw<`Ze(JbhPCT) zeo2w0xw%ZLM9MVF)deyVoFKGpC#8B783C%u+>B(kxv6~7J2}|-6k+F6G65p_nY7|3 z|FViwf`2Nh#YtNPBvWdX9^8jVQe>!#IanX^JTL|NE z@j;-WE(T!&8>0%hpbGqypCNJ`dZcr&rcZ`YPa(_|wAchDNl!vSg4g^g5}xTushp~o z<>j-&lnay?PFaNlOtYM6sNKLGLfo`SAYUHm7v+%`89~o!@3*v37A+odUZUc7c32>_ zgtK8zn0uOok_4t8S72We}4kK}Vip)r?2s5a+02#Do*k7+X(gfZ7u$c`w@H*Hk@?39tHL@+npAM3YT6km(z9ES-!ZfCurxJe=vcN;;#yad zmQy#o^oB(`%vwO-jG8sH-W+YFrx4#<7|@sbiBz$7LMbK-jb5G*z6Op84OyNL4V}Sn zVC>i~_koJFaBh1(cw5eBp|P|q_9K|3v4$)+wA(vKp$dB@v#Laew05}6Jp&ZrMK09S z!7ss^5c`AxMUKO^lc4qsTtXVe7bCPCF)J%a+tW`35E+e_3yPIojr2n%B`Zo(eqvOw ziL4VChmeP8&^AxC?U`}tk$vN5mhQwN=G~Lb0Y)A_LTCxJ;X!pVc<~zY9Xc9HZaf7I zn_b1r6yb{G9kN+;IdSqb@+5F0?4;)whR-9s1bI@@9F=4!l>f276^$d6U)nLs?dV-$ zT5R~ilfWq~AWa^ZZHu z`B4|KZtO{!h93nS+k6|W zi%1BmD38!INmk`s7d25NQdr3$V%#q;0t;%ZGn~1tUYH(&^)~=%FF~G6fT6cSq9HZG zT*dPD(Rd}of)5JP_7SQRT!V!Xr@JC&%(GqUUoSz;3fDuZRu}{*#|Vr!#z3;mWaC<* z@Qy4mfJt>l-5e&MRxdTj8tHg}po-vxxnb?}g?kb>Pwohl9xLtkHi{4&jFl(9kl`cH zAv{ZH0Fuf?*Sww@8a4@0vau-o;ap!-I`RZ7;$ItFu>>vyh~7xLR9@B5O&tKk@s=~N z1nutrKnIs5vP8;r%y`Q^hCFfL!^MJz;0nG(i^N!hMOlq>gictdxkMB~aS$^K5ln_L zrUP0qh1^Vzwd1Kam75T?Z2wq$j zk0=IiFI!5XOu+$0b9)Jzsw>EtjXelHVYybVxsl&JulG;&hWR15rH+3zoV_)Wjv1{+46suH0ryq=Vr(gnFe;p1==kmIopu ze7AvfZgshGtHNs*2avnO25(&0{4-%fG_?bIA0_+Jv!2BL3GHwhbBBopb8>leX~77* zhH65HoDP@ugj=rY`{GzgyJr&@zThh~CnoeiW+USQ@)#fZ{A$oW9=~Rhtf>PIr`? zL0G1R#0>KA-bsLL79Gq8UN-c z`(pl!fo0mg6WB-{#IT*ThzyLy;>fH}35mw2c8*pLVDi}>-NB&{6v2omG4Yu0Jj7j1 zj>ZHb%Sd~fI3|$YV-<87RX&p>Qn`9G`7xeV&x!>rG=!J9&;|Fmp-ftwL6qRCQ=*f|| zycU8j%ByhmD-K7>f5?UzYAww?!XiACMV^BpP`NJWgBRf*tZ6zPo!9vg&|3VS0u5^6 zH);YiT~urU5!af0kkv&X`BA&^UNaSnn7YCq)uQjct*uW4q3>0n7=19z!w*k`*6q1( zoR!%_-`P3F>n1Adp67*=(xAg&XeTJ-D{w1{))W`U;~?2XnhnmjgoOOcR&hsdJ+pF1 zA+ULoZsmVuY-AHPHe%BYLBZ9PxvBADI(){kvE5rztou8ohIquqM0GmlApuZ#I2(iA zHj$7Q2t(_t3$h&n>Vka>X@w<$G2?nGQWznQ{soT6S|oFk*xPL9o3BH#yjEugp;lt8 zlC-Qv?24v~zzU058VI)DA;C@&m>yU^j!p=>$-$2d336#nO@lbnq7w;hZUcv%sTdOp zu)<1kr^%TKbQdyM?lh#bKYxi?cgc5CLLzh4usKYXR<#6nDhqHg^Y~6 zTnxE}R+kIS2|WoOC@o}r#>|5YC}x6Ju}oe+1cyNf(M+NZ#N08>i*hXdz$=iKcs_h_5X2_24J@BddyZaW3d?k3 zcKh)aTwf%TpINHgfHZ(WVzxw16|+Zzida55TD?jZpBGc)Bu)=TS-q?WmHhntrtC?b z(9}>jPbZc-1$M8ZSE2S|B1GU_v;sO?`yegmrCI*Hq+redG1WnAA+0jQC zz{2VcXwb-QXZd4-Ox8-9a627pLbRe95W#4eZvH=6dUVTp@lejvqpUzR%1kuKPw&bD z?oAeuuY~!vaPv+TNJ@+p9M9q2X)HAki2FC8Qojl^JbG*{9dba+@8|)=YDlzcY+3iJ z8NCR!aniQ+n|5s9w)xd^SvJU_U|r{0fXZ1z9%pU8xhzuH1u+epLk_oPpfBNc&agKZ z1Rpd$HO*@V!5=lPrMsa4iBYhoOpKyubiHTUbEc6Dn?}-Z+onR|pn@ngM^NzQy?%y=~*>~ z*!4IGR&hFn>bKx7qsd%j0{4faMV?pc*sp;3dCy>Lk=nt@>`1G&S|J16U0+#q)q>sN zstQbDnhqXt4~YC$qhXxdL_pH3?VKUv9<4fp{p<^V8w>=aVCJFqb4i*UL61rDig-AXfA17YjgY?Kx;=qiSlMr)%5$V;r8+npf%7Vs&9^45O z@rcNr4xwWtVX}k#?n!!3oQG8qM$x+2e*N=3*XAE|PuBulTiWDXp z&%9ET!vbS?oFM2BJg_XJNIjv%v1R+VjbaE2mr||zp}rLHTFSxeBhs%60w-t?VhcL% zl}Rg$w6C)V`8pamAhqwMl_)pGov>|YW<%?Q^_$l1XwB-TWI_a__}1O3*%3x1f1$H8 zYlOe#Fbqy1L8jGWXQ{?LUWUe872Cj;Ti9iSqcud<83FU+Hg>7q+@pMzx4R-fGuaWa zuEDg>szVR)6EVeMwlbyKH2t0hnjcYxcSyAmE7MNY3?R*1sGFv1k*!G-Hw49|9P7Nn z?J%gQv*CBLK5l1~ZX|u4P^%!hiq3lQC=(#tCt@%{WGXF2banMlM5C1j)v& z@KKmlmyw7>7?0iaAz{yEG>uo5o&%UvF9UyDc4MSXc9<^C2TEN&NOUS-WS0k){6+h#B@)M2R<%}c31=y zj?@mabk4aK0u@Kprrdz88{54hz*Y^HTR{J`6E7nnjjOj-RDkwo6i}VeGhU25}zS7<3D-Erbm`KoXJtfV*iUdja~Z zLF~+P4C+*V%p)%K=0G@|W`i(ufWc(CG&*3n8R{sjv{#6Vv=Q!3w#BA(Bf1Yg)4LGoRyc}g7T+_~>PurzW5uK)qk z{)1vN4Zz07k&Hn0U+^e3ure!wije)F*z28%R1z2@iv(KiFnqKI*gUxCdd|>{PGF!$ zwK)#6RwUHVo4gKCB|By~>bQ#nn9KxCfpT`a5S(Y0?Hc6n#`4-#97D2SWxI}gqAeqo zqKYZq_eR5p0wZn^te`~;rQ8bB48P`?A{t=p;~`^(4m67LiNVlx{Wi%9k>xlaaD!Dj#9bBj}UxhH#tghPTX;*2HF-Mg%u;?IRFwtO1dV+d@6 zAp{;@Rxa@(`f-i1&O=x-Mt~NKcs;~BYCKmr@U_;es1ENFU3xAm(0X9JpJER~ED_=7 zKgc)e9GH#R58UCFXFMz8EH&~qc=8(henwb=94UdOJ24&MJ?u_P6+1|?)eDm~1A%+e z-hn;3*mCiTWQ;Z~N?f;y3*AEvm7l#BBi!2-<+`%G(F!s)xWnb@LC`5xojejAg9Io< zNhcC)q!Ufv7tMdEdkXYJ{JGHqMPV`)B7~e~#!=d_wKax$?%7u$4d#jqbsd2j!ZA7q zLCU!cBrWL3oZJg6F9sCF6oVdz(h}Y|h~GLbY8>%Gab?2g7%l{i=;f!GY?n#~lFbpE zH#p!D76@X%i;p{)go(5*P7DGPFuQ5j)?>5c)G#Mn1-VL0VRiODmo8td_g-8&@HMy& zKwUPHC*R9%%Qz_6vvEKTOfHM}gX2%A453+uO>^=P%6Y>&RYM2inT@$Rn4^X+fn_aI z21YBEGGh^;DA{8?40$V0O;@LpWp&!SDx?i$ZPidA25tm+kBwLI)Al(gg!>izMde9j zmrGj~RSINLsi^=T$8dmTg=i|`+ZZbsc`iYK!b=df)1;FDY(;(sUIxFwyypl;akbPS z5TuC<$`Mf0UfIQ*Y9_DfyV`4yRhtt`J_0hUK3Q= zd5%XM#XPj-dmaAmcdeC~_2_PJjRJjaG)+ zCh2sy43LJRT|*VicGol_S0Ht^Z&6Nw!A(o|qd7=G-Jk<AzI^-F0 z8*}GJB$y4XH2wL)&_i2O<>gm;WkVCi4+Qy6K?879!2gh`NzzjZ0X?}3AWIs`=rOvQ zZU=+iYLJBz3xMH^qK1l_Ymy5ul!x0#gi|yz?covo2ALPIr2|bB5{gPzm{yqeDIOSgB}oT4*VE|e z=Oo3*Pw`1jltBpnLM4w|3J(Q(?nNGMSl;w1mN%;h3t;`0-U%{rI>IXo0mej0$VC? za92hqpuV()C8Yw#)iZAMEOh{#fyez*tV4ikg-qZ-#b|fSPuQs2* ziBYJ_>2kICmQe(|=~BXvQ$=4^VPw0L#170QtUPdg7%yPEm+GUwWV1yv6S_c-A`%j( zrh51?Mohtl5CF+Avc0m1IM7s??nz?%^y*8<+?t%}6}ZXX5t}LChstyK0m9>FeR(0w ztVvoEds8>P$D!PDD7>uWBvsoaD_@?ieVnZp4q@tfm6(7Xa6LbjsB}np=tyxC>F*!G{`h`WMI({`MRQGdSFVWkPpu$&L%Am*M6PaT^D9U{;Nrp4Y~Ou)|J?&6 zpq3s9SXU$;L3dO$tyM|QXXM39l134HBJvtB#A3$ppUvBCYI3`1_y56j= zXfc961*9iWmSB?8E2<^eU-i#!H)8Fi&=`+TC5TdP8=uZ+df<9I*>4{{?tY!UnZ1*{ zBCbq-&DWZg>AFdmu0?Z%I$jwns2zL#VS+h728L;qZ-toD`f zMcqYrW{n`EZ-f}sB&rG3EgXNtPTV_6oQfU&gVMAK+=jzr_JF}t?8wh3t`{Yj1=o|5 zr5?Hu9=omU=rQKErS#L>Cs_KNS*km$u?;Axl7=L8`u2rU7k(zUsz>zpo!cYKrH#nQq+D9I?WhE_r_a{;gE$t!Pers*2`QdphvD+`l51^dz7|s zdCLt2_Ewe~&y&J9EAB_}o6kJUclKrhtM?_0iJmPdCCd5b_1pij1UmQy-jBZYo9U~2 zrjIQX>iqus7fASfg?P9x;4R4qA$5AsbEl&((vt8lJmkwmcRuf-m<=W*-FW2X5K@t) zuPb8>yiH6^g~t^8Dg*b@PhHr(SR=Bket)YqJkOM%_KF~yLfLHXvujy zBrj$pG;P{qwbB`=8yT;6_Ox|%Nix}Z3q5hdzB4{|eOm_{4R@!4IhKJQXh$aYy zkIPesygMXIRlpVp;QOwyIT}3@y)w1-z|Wrn&mUd)9EP2Wp9Is_8?z>xV_15vp$$&t zO=%ycz9+8YKMG?oRjrxD->rtUJ|mQI=Q@bSRbz8sVP$r&s6H_+H@EdV|0e3#!VS*U zwHA`DBQVjZ{$cV}&>FV`h{d1c!G3H7TgkRzh)r%p_4fnjoTJE`pQ)aBlO!pNMF^UjzJLGjy>M&^{$=-S7Me43WMZ7H`~p>O{*HwO@CF^) zv?@U^g2!=V8VZ0$qZNPw%d{`X{YWjxNv1@`(zpz}l;+LEwGzb3wudZa2F3%eAUA&` zjKRrjx!{f`pR7>Ucnz0@wcO22$PlfFoEu6XV|Xu>y<~fuLYY7TUK66>42s5om zg@KzD!hZ|H{c|_3;8#)n7K{fR_a3Cr$b-WTt>G8jzv4EdENAz5LA1bT%4dmD2S3A- z&fmQ#v>CL=YIpmN2(`L{7B2V)sMTRDuPJX6rW+E2w;o$)Fe*X_T?Upug`Tp*>?u1G z=GcJ;CQ$`MxGmQs)Dz`dS6y6f`{Bd_JRL7vKJYH222dla4#C>AgAc;?t%z%B9Uw+{ zjzezLNb90tpOXFVFwwQZ8cOC667r!0EwPJ(#3t2P3p=gaRO|+y;$F6;dk(Yll&N@- z8CSPa3P2{cGHiBuY~Sh(b7RwLlLpA94)M=R2vn+rwVZEtTCYcN;5Cv7jRHomLx7SF z${ipqAqhU#)C@~0#9UBFK7dpfOoWFk5w9?Vm)j+j~5Kj|w_ z`vmm5`~--{;(if&_Pf9S&URE7k%z=k+fUUc!~U#&6`6=~3GCF-o(3<2nv`&W7)AoH-CH#X~|tObtzw3k*h{dyCU6 zP3z^0FwvR=OcD0k5C0NRu&AUk$-M+JMCmJ{0!!rucLyo&P2kV_oOIq6-Y20Tv6}M? z=MT@B;)<;!EgYu0NCKEM3)&?CvRMXc1C1&?n0VsF5vX$VEX|FJq8Lle_~upMMDbJy z=$SkZB3Hs))G}fRXYlYxO8d5+cjPc+?Gy%C!DDt5ri8UU8 zTmuC5&;VLz=yKtwLry;N&}sXdsyBf(aeidTd|s+~GZ6-o4T~}TYebj^#zchKAkNaf z_!JR-;-;sFaIr_+yT~?-BCd?SP_{RO;<;yvDf)pg?`FtIF+ytk}YG}aJXssaW1=%#$nF1;qC%MF-)gge%H<6Y{Z$2H0EL6t+E;Q=Jx(1XFjN4DvlO4-{;H_9e}& zX5Qs!SC~gja845@e&*?a?WaLNO(}_qZVo^dhF8DpdXRs1Otf$R_o7*D!spF1fVsyDeIpP}42R#YeG0u58K|)GJdNuBat6cY6`(Hl`Fr`*1wT zjK(5KMzCCXYL1>xs?^kLxHRtV!01OLb8B5uKXR>b|HbyY-(h#Ic`@0qTR_c2m$Xz* zURMv@T6>vF;ruLu8c~jSL89x`K&x^5{lo6fcYoVAy6BMgn*xEup7_!@EMG;E zB9X)bu`5ts->;2sm1dO2?1rhsH%J4To|Ma#y23{+pKnJ5`i@^fiHP34BPy_@zA~2i zZrPMJT0p&|Mx<7vT_RJBP44rOW0O#Q9%_B?fv#1qb?D6rYeF>$_b}RF$Zp`E5ik?Z z)p+Qo{rHufD|omK@dr*dHj%|NW{{rErvNc;=PCRXKZUdw$Ha}b*sfJIIFQy{0Te-S zIboi3&9J7v%NZjQ#RPMhrHbUQVMmoc7yA;=gwYQ>mru7n)wrk;3cF11t?Z_v;!+5k zTG&}me}5ZlD-GS=aDY-@C@TopapYCd3@dw^?-rb1JX}Rx}Ox$TY=@o#FbzMnA;D=$~s#cZ|av%Bqw>q3)r# z*>nwU@3}t;_zbZS=8>Xv7uqt@{PsWTX>k#{zWHqT{F!n$frc<$Ak@K&DW+t)zmO(i zj&$s+n{DsOKI#Ithl)l{CyhK+8UzScVd&xhDq3ItY5w@( zmS9^V;{4CB{d-4zJ~O&>NA|-)MuII@xg+2mte>0t`a065o270;S-4f4Yx57C4h|lMEYMPUVo@9g-iJ$0Fcc75E>f=2E?4e zqoQk0hTt1HCk4@@MusK7AK>Nmc11xdSdKr`?_9)p=}}25$}k6 zig$8EqwXC9v}P}Am}V1Nq(M#@68<-ZnAru+N!i}NdH4R!$G=~_fA{I zY`n?~%i6yBHz$Z=+pkE2gVUuUx5A%9;%DX&)bc+5i_m#{3kQ9Px^9H+wq| z4Okw%97va8vjr2IKw$t5$_Vg^GdhVR9CiiPw{t(aQc9|AB&in#PBz11sTae`?;a{g zF=Or#h_-MM_zaf@*z%djVSSCts`K?0+Tq4kTol1n1kz@(B3blKk@S&G*j}y>(iY7CrbA)0T0|4obtKk>7#) zh(}8=^V#J|$-{>KLU8ZQIq$4*lkfB0CORQ?iL3RkphacyJ%9)du_U56g9RPa|gQTp?c$0&P0Z-~HPG^pCEJ5{1D zr@iGkNfFQOdG1E@bx+(>vqgvSXdrzxMoph?ri4<_aJnVof=#Bb z$mWvGij7HcnjDR-DfVk)m72TPr+%>`dFUcE4G7569+d<3Zy#QN_(;dCB1VcrrL?rK z@DX^hO;_N><{-upqHz#o5I+b?JXwrI15!&f8@2~1G_4Gzy+!r{aR%5WtNGStDtc{V zAkHl%*67G4n&cz>q%>ztRqDo?+8#a{Hyr3CrRx3^3I<`khZ;0hTs16xt_P~XCR{J9 zx?9|e*^9whS!5CRF%n*Bdd-PryIT$iv*EA5iUBv4DJ+8!fX*N|-mcdublnpwX@zjm z!Ar04&a{3G)gY@Ab3fW4*kNv3Y$S*iw}*{(iA)jD2!eqZG4u3jya0UpD?GvX%rwaV zpPe9>uBK@zEUi(I(=9<$H;VHk$ z_%F^hZ5y=OJ3aw%xKnX{>BO{uW$v#p2`PQ06!YS&zE>?WlbCs#pf(G99P%xb5?mA%##4FxQo

    34n@vv) z+)JejOarO!BvMaWC%yVwJF`=4xaBgLAk{nn5k>y z%<1~MH%CrN-_gmNg=Hb9Xp4%B`- zo)h&=f7^2oc0LD?-|<}t6y7l&Kz_$_j&?rh2wUC?628zLGtn?@E@DXriIt?Y9kqqq zmL@92s7tUKFlGkAoM}@>98xs!X<`~mf43UZ*zBKI@7&dSx?cX~zEN)>&PO|$MlO>@ zOPJ1qfyp?@#^i&wTa!O&+yr0a&_fjQDRd^ogHnpVIelHHsp5npg~nw2OTD3Y*0W~) z`XL7hgKE2SnC^*qr9nlbd<0_&se(pozT!s)sY(-{YJ5S*0p}qve2LmQTt_GZ#}~9b zYG4hON(jQ_s|_rfwmq?~ofH)EGyx|3Hj=Oj!rc3_E1u>^zR5T$o-haWae_ZH(!HA{ zn?Wc0!{Kn`J~TupXo2|e!$FE-6suPU3nJoO_OV<{OX#>fC{i!vMdUku-l%LOFqZ7q zt`;%&iB+{u7K^oIp|NXD+ZvFGv~Hnv4>u(`uUr@yW79qOX;)dWT^^jgqjG+p&8SgG zjwHW4S|W!O^_r+Ab~0T`?Gl$ZcC9KT*5j`Gp$(BbLa{bRE^2xt0$v@zm?FHWh1;Bd z4U}4aT^aD?91ii^V8UzSN#pvQc&Zkr?seiwuA117I&*GdDlBsi)IgqBkc3d4LJ|6E z0)cYSy-@ZPvkM|i?Wy54PuhgnjUGSor_Uh|N4;k;th%6Q>WfOUAR@hD09)n}ZvX9t z>2fsEQiYAS%aKhXAf1p*^ZC)x3$dlKYmZtszq6-1Q2RtP({u%4eSLt+`pt@2(F2`p zyUe6?uH&n2YC@xmNr5B%1wLnSat?|+6V}p6!P|Nsg-Jf|5{3M1Wt2M6mxeJ!9{OUk zp7|I_kd*25bUu3~<@UTZ%i_$!pxeXQ21wtnal%IidLv{97~42&TMs0=I=x!I-b~gD zSQ9(WfAR#?m=C05@-cfu4@gMGIGV1Qxdqn9T5hk%DZRX)>+*~*nC{?Q`M?GSG97v$ z93R7OjYMw5;)T8|p6*%4+G~3M7t?RbM~

    dHxknUP%lIUgy7c2sH{8)r?#ZmK;WP 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�}>)<7aKmZSe#od4!5d*9tn}ce}dpy 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 z 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�AiT^0@|ioKg}! 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 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.su b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.su new file mode 100644 index 0000000..d293cca --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.su @@ -0,0 +1,16 @@ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:157:19:HAL_FLASHEx_Erase 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:238:19:HAL_FLASHEx_Erase_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:311:19:HAL_FLASHEx_OBErase 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:360:19:HAL_FLASHEx_OBProgram 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:441:6:HAL_FLASHEx_OBGetConfig 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:463:10:HAL_FLASHEx_OBGetUserData 40 static,ignoring_inline_asm +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:498:13:FLASH_MassErase 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:519:26:FLASH_OB_EnableWRP 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:631:26:FLASH_OB_DisableWRP 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:741:26:FLASH_OB_RDP_LevelConfig 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:792:26:FLASH_OB_UserConfig 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:846:26:FLASH_OB_ProgramData 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:879:17:FLASH_OB_GetWRP 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:893:17:FLASH_OB_GetRDP 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:928:16:FLASH_OB_GetUser 16 static,ignoring_inline_asm +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c:957:6:FLASH_PageErase 16 static diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.cyclo b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.cyclo new file mode 100644 index 0000000..2b75e12 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.cyclo @@ -0,0 +1,8 @@ +stm32f3xx_hal_gpio.c:171:6:HAL_GPIO_Init 16 +stm32f3xx_hal_gpio.c:301:6:HAL_GPIO_DeInit 8 +stm32f3xx_hal_gpio.c:383:15:HAL_GPIO_ReadPin 2 +stm32f3xx_hal_gpio.c:417:6:HAL_GPIO_WritePin 2 +stm32f3xx_hal_gpio.c:439:6:HAL_GPIO_TogglePin 1 +stm32f3xx_hal_gpio.c:464:19:HAL_GPIO_LockPin 2 +stm32f3xx_hal_gpio.c:499:6:HAL_GPIO_EXTI_IRQHandler 2 +stm32f3xx_hal_gpio.c:514:13:HAL_GPIO_EXTI_Callback 1 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.d b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.d new file mode 100644 index 0000000..1630f0f --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.d @@ -0,0 +1,56 @@ +Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o: \ + ../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o new file mode 100644 index 0000000000000000000000000000000000000000..036b5c56572b2b93c77a539f316dc041cf14171a GIT binary patch literal 876464 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®RQWu-$T@GRZDbz{3=KBdu!F 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

    h14#8HD2gWthWfrMrEO%f2;(LACTR9c38{u? zUWM-*C6H|k+dov*OdU%VxTR&3Q!{MNEP)aLBNK&-GTg#+FjY+n3Hb46%A?)bDOzX8 zsS3e#s~ySQXlqM!%e$RXs$uoMfyy@>p{kO`#pyhU`$=)|nCCir=>c5PaOQqPaHO$IQ*BNc+z;{$-n$WWHzkk@$_GQB2q$CPdvjDi4ML{=cT{)Y=+ACT3_WAL*g1{sJXO7W+qkwaNZw^PMF< ztd9YnON|b~eeG1I?#?zVJpBA>+xo_hO|wgoAnZ{0mKt?H8^0$ zZi0+W1&7Qdm?oc+$cdsAu>AdzX2O+TeR}cnkYaQ_(`z#yPMN74$4nJ8PX`>^<~rIQ zK8#<#{r<0$SHHe`|LW}EWSF6)^W+Us{#Xm+?sQ!YkUI0YXejJj-f0-&dwfM7+0NqB&+KHah@kB;K3F9T41Hd7f@4c+l#pChS0(*gC=D_ z%$`jD1=%Usm+4sL&|o*=CrlR#MuIuROd4j{a2Y0|yw9q*YHoz2u92ub67EeB<6A7o9Ndti1#0~%zaokiKwX1_ z8tzv&Q_AY~!&_h<9m)qG(DaZ%+5zpzbL4MwG$<@4Wu_xhOcP>|M7I988m2G9S1rf; zo9!`9 zo01%q7Pk$ww-!$21&PsU0_4+7b``QnXVvu!esKhpCpbqxy%*&RAUk+7=>3?Rwip-S_%NJ|M#D*9xs zD5gS$1w`9mnhQENj}g;z|Lk_%J5o*^1W(wt?N5?o^7)WpD7G{`cf=3Cx0Y562srw8 z(hjW)Q2eWO&_>4bwn_or;iK_2eKZ=Ca7-)j!=mmdXp@&FE&UTwcN% zx39S;U0ex8E2_x#IH#9ay^Fg0I0DKXN=}mw27f#`9$XBDCue8Fi_^iy#o5Cjh8MHQ zqvxuy&e+BT(_{73F7Krb({wL4Q@wL2QszVsD^u+l1yDSh*y+(`v9hotDxz^w?yv5& zlPh!EQpHxU0?_JV zqi`?ro@UE0w5ZuhA7#UM8sUW&_o1$?1uMB*8p+5*!HWx-(yJ>yQTLfc=D<@-$5na>ySW&qjTT-hck()$0cw8}u*KbMV|R4?XK? zkB7}IYFGG;N06#Wqw56kzAi&r2{PYa_t6~K!rM0Kl$JaZj*tb1l`ChD_f)(#3?R@6 z<}Hm-yt)iK(m&A(3IPc#r(YJgUK}`b>6NO9hbvAc{ssPNqbhdB_5;UDJ>lvG8JAS9 ze06iRVg`!&%{SoMQT6TfU4X5XvpL)X>&W!NLmLb-Qqp1_$w7->W|>+sdCX8&76yd9 z2qB61g8lyGhY#;w{rTgEhyDKO=$Dt@|MlUAFMBUvzxwIT!w*N$MA3cH!WvomraPXC zdT9_k{=ZlJ&cwry2-n!E?1dJ=1j`HKRs2GCnMfvs4if-0Z9pxs&?K)bWk0P)*pgW@ z0hNxP&H40#86jq6n4Z#QR#%x5c(3*z1M0&wPd!1ZTYW=6e6q7Vc}9T}S*#7t0AB7Z zAj~cDKtcNhuOxQ>De}))=NJ*~8uZvs>dnG|EWv~6ch@WN8q*hRj&E?0Gy}+0Xfwfydi@qfw|;p0 z@z1Xx>>#knph0*sQK6$37*2KPB}y=jU)|k+bf9d5vml;y!EW#qXyCLyE~{mRt$sS% zIj(UXdFyU|Os$ny8&ML=)VzDKd9DYl6R-3<9^3SEVJ-Q@^r)~rkF{W#>Au{G7-#_V zi0y;>ZX=H?y^aJza$J9OinlE>o{!oZcH8H%*dy)yPJV_sU zz%XOxShQq^QuR+M*9FM#A}s>w=F^zsyH~alrHP*`Jw)>!X@!sBi3K8nhFQ<8u+nFEj>Q>FbxT ze_X%(>0$lu?N6wqme(4g>nGwbVvZO=I@MBUusUChx!81)g2Z z!gxQMyF2^g9#eO^Eqtxq>sAUzw}&^pv2v0QBQlqeSmCa>6fubl%?cd)%qVY?-SLa? z!dQQWAi-y8NAd(><&7cnCxRl$oKx0znC8JSF+~Y7Mqk=i^D=jRE3mlgVKZ2eH9zd= zb7V}7`L-!Ghyo1KDbd$0T`N2TjPmrRdBnM*ivYcan=`U%l{=_xkAct!0qQWR!QtSb z?iWzzCbe+|x5xXOR1{2;W(4ebj3JTorSXTJxbSR9Fg=nqo78^$Emy4IM+$&Cl3H-9 zkH_n=NJm^~r8z()p-}u!Qft%k#s<{vpl4>5GEzOA|Cdueom;9W<9b9AU%00Q-Juuj z#oc6Ecn(EF={AHR4lqEd^GpHSrJe5RppzCw$mHqJ6xu~L5=^7!3A-9$Dp#WcC8pz~ z%Q&^U>gb>wh5ewLo9AzMzJUYBFWH*mKL7%f&MmojVfz2GMCW*7nCN@M{ zR|up_r!W-Y4=IRSFl`Rx*E{k2dXU{oarkX%+ZA9<0i_-i-^r`@FTo1VUcY?*m-XBK ze0Vo``=4(_;sFJL?}TdzsD9c9zW{rSNMyd$5QHJFFLKJHiMoZwbq&($wDZ%C{-3$c zrCrqCVQ@-74IpLPK(4;s2F`Lw4GdNW6xb)&4l>toFh7UwOAeY&s)z&JPgwZ{ z0^|&V3gNo$6O)I&{`mU!?JxYxsTse0^W&?Zo1b@aRU?_YlC{g2}> zd;g=4{||l#KZxJ`uXn$ro(VTT<>ee#ddru+-x);D=;7j+2LVySGEdjq}3Y*&^( z4!PAgxCySEb}jc(aB^R4>4%pv^!|zzzpGzC>fXKj^`TAc5=c@>NVTSnXW^Dbx=c<^&NkGmFVkp3 zZ5AuVMa0W_f`o;F%3jbo{*$Xd`UPacqN}>xu3Z?+w{-O4G5=fofr)^|4`pnxZl;r{ z;`Zp1t2?5y+i$-EPJT|yz&B&Bhbqjk(!|Xy-nMXR7dBceGA>+f(zr1_+>EC)#Xyo*?zNJ%{Htla==kU>FqDBc0-u75N zQJz>9-2jfr;u#A0t_jWi)K44eGqsasNO0uy)E2_J&mdo&1>+!&)ZGpuM%}FsFH+}G zLb;Z8EpEw!8e}t~Ly|~&Dt)NBhf}Y<3=2#S9J|@>p5bYRBCgSELp4px$^tb*Cslz? zpaMzDf!uU(jmkkPy@&+dgC~`hgk~P~qM5^r{2)GfzOBV5GP}kj2q~j_)T|B*Ijr?tRLIElT;Qb-Z$7VX;|F{hEg2=}+DB%9`Aun~z5s*DkjVfZB$p ziAwY@Ok^9G-0HOv&K%Qoo z_^qV&PD1&JJCTvfmbubOVuG~#2sg6OOJxru zCggAwDm}#Eoe>SmvvZ1!65b%f#B0^Vs2a8ni`a9MAw*EP_ArU)3VDgU8ijZ%NdXlQ zaG5b{*%0XzLzl9Lv^KRa!8oeR8#Z3#g{mFoZnhR-Ssw7ExaUg)iq< zS8$I7RRNEK%nD3>a)EYuD($gFXgB<0|NQji>yzQ>@x@>;xHvz3_zHeXzFFu-c2JMV z?`n4_&mwr z#DHf1l>yCcK%!O(V3;Lm43B3J8^{OOry}(EXU7U{$$YbKxoWRJ%YGRWjzwlLPoBxG=n-}?C9$} zDFdX38OcVK4~iOH>5H7^3~)*&1Gzn+GMvMJ2-D#+&Y$o7Yn#fu9A|92PEZ@BzTQ4- zvhYo)K2j?wm(&3=qT4An-A*@mAc=o>ljs!Mq`$+fv_JY-iSA5d zw3Tq&*&RK^h??hz1P{d$aHRZL(&`*%-O zCXbH?Qw*|&+#7HZEc41oi*S*jLGIJ?*VPPb4b$rbnYY00gxS2%!?f_!Y$8I_6P595 zgFHK$0E7u__BW42-xH?ylpG_9*VNzD0O|&vJlrEdTK*jv2`gLDcxyK^c&*?7!+~Ae zBp6qdQ zn`vZjPu9%B4a`-v12O8(v6vgsAURV|uY(Sl2E!~@$NF4hG0UhDB|XIMwb&EhqaD{| z5fDsU2J0Q_qq)r_YQluYHI0g<^m#}d*|$tYradmM)u+Qj27^Z=eN3C2H!T(_75T9( zM_f)h0cfpv)c#1JL&@OWC`+iqlJ0+Q$UKrgN`5!)h*Pwrfw|A!fDNKVhKP=N zTBHIOExke~+Ylg4E=L3zopi-)>+MskyMu%cEc7LK1w5(8^PZPb(c#ioy@&%pGdf$g z8|aF~eI=gLZA0mQ4VUEa=pJCzuA`@Sl-yYMtPS?@fqr z-iw`iKmw%4GK=;07WsluyN39pYb&$p&3?>@`GfCxF0BY=kk@*rgbPgR?Tus|$cCEQ z-tbnUC3zkEgiH}7pK#;9N|1BX?N9aFl z!mKGh^8vJ1n2p|=GzHRfE2s|{c)@?5(Moma&5UedIbl$w|HuwPs=;zXM6XTgbq~EP zYfO>yp}9XAK;3}T=fw-m^gQ%)z5a3k1c%ZMvm>%*9(H==^}OG|L8jvmAK$?U3Kb{k zj1I)Cbg!WWTZy-c4kJ-)&=dIfYOg5m%KgM_aB-m($R5K$=$s7~)z#=$rsvaOPE?}5 zr@nK3LpHkp%-&J&=*`<#Z(hH8^YGMd_mJk9%J@VgJuaxJ;7Av18d(mfr|X2~Uk(k4{5Wc;DBJ`r`t`6g7iz=%FVMwmm+FKwVR zHAeNBohbB)W-C(#kb{q-QrgRYRB!Z|!D#O{m>V%FCOmPRMJ-F81hO~2k!!fdX-D~zqB7-K~k}i1+P9d!1_>8 z9&Al`j7y{=jivWENu34}hmEsi=~6xHfTx3pWE83@O-+iDkC3ZfS&D7P&B$&R-EO^& zOGq~$)+=tX<8U;CKmf~ey)WdC3yE|!PVOsA*=ZCMvj>mhwI8QYZ{dr47=HX|UL%>b zh@Xj*DY=}78RhHNR8$5fDr~~cjc+&$u01}p%-&P5A^h9~vWhs_y^CUag0 z?MSQ?w>yP2(=c{mUt{%z_r7OKPu;RzFA|G>F3z>hv!Zte0)3)B#B!&wWa6Vr5o#~! z)4=oBYbj8C=YqQ8$$aR7;o95f`fj4YvM{N{zdmt1GK_UdGJKg=Y)!dQc?r`#Ra_cJUVBvDADH{s_v>7Upq5UML+GU&vm0cS+IbRrb@8VX zZ=?suX~I2AS!;C*hfhW3MVw_<-P|vEo1E=YlAVEe#1d1(ZE>VlSDGd5603MVbk>oq zHNSvJZKf!6Vy;-?2DMpUf`oe+E4_BWNAdJ&my%G+ zS^d4PoAQH!vUpC|YA?~ThHux(2Z8fz4Mu3iMA8LEuW`7Mpi}NmFbz@IQi%94PL?FR z18g&6sk4{kJA1XMN^ztf7EjthUl4aFavwbRNwZ4#{0g6RC??z)a^re14i?bZt|_8IHJMpOg~bDM<^X|gM1=1W=~S6GM-51f z!N7EtHyJ*NHsr)=(;^g7= z%fG?9{{6%Fm)9SR%r#qup5n>ss84=CHt$SVOrz`?PPL~Ne1AGeWToz0SvL=}a)S`K zunyC3>?=$D10-j;h6=M(!}4QFmA_q@M{C%ff%9&;oQjsaAc_MUl&=a-VrbYHh zV876s3hIG5?syYdzUI%L=gOe!9X_qjPAMfFNn91olW4Sy9vvO@b=cv|-&x7hy*&AC zpgEK(cn2DllWN05t8`Dk6Fh~Scl9c@>X4ciIpRSzj89Uhh z99NWDF=!kH#t0%u`*ef+;a58H_jk)7W*MfhLrf>1nl1soqFtD-4i)+4zUl|fr3vS57B{7~XT*Ko^AKD_qC$dje zgj;6)LPo@ioA_Rrk+T3PpkA%R%w672+KIk`1JN!HcHZJuJjX>!q=b<^!J@a5>mWun zXV^sVq^Ch$!_%WKO3C+l^g1jq{K!*u=&{Cw(Niv1Kw}|>{^3C<3-G*xT z@RWlo&Rlnz@f8h-*h>q4nU4o?#B2(<*EFzv`-UEGeK<^Eb^QEdU6lv-7@SJ8=n)L`3iZbgH{$RHj#b+^h3EW z8JJLH?ophA$tu7j5>7Z$?VurmH!7Uc#$%+}K{-?XwC^^4!c6_}DlsXG&YFjLofc4J z0G2~fDXL6#OJwz^>6v+V%r%w+5!=Mtb_e@VP(n%7o!09N)D+YAV8X(So4UrLktUai zJ3Hxiqw!17lMSp&HFno9b}r8_IU9F4cvNMJ@2F1FC2u zuwmc@z*0b8bGt^yHXNZu>P94xf1Wsz`R zYGd(euzI5i3okExb5F)g`ij=5#52V29?+Gg=V|5 z)6ndI2OPc?-|MNT1<{-mW|yhqBb#oNrUI&})t< z#(22Cd)ia1@Vhv(jitj{8EV9(##wA()LE^r@`RTPtN!B(D_2)=K0SFO`WLJmzBq*R zVsATx{8?&_TN;(JgLm9tdsfpkc|;H;kB`S>9Sc0-3GF*Yfk8BKZ^5r2(;_p>Np5Vk zNgSeAzzwqhHi)>U)AW0dFv)Nl;}r5HXTog$?OZn8(L6DAgk((T-&bQKSVtRz379q(c_n0s8J{hU zugt13jW|Pf2X}4lC+ewjRDm`8ChH!$QLB$Vyxk&14K3i_sm#}4J^f~<%WHz^DWFxX zwM|zNTY)3{M>d@J3H~8E(FX>aBCDg@0XH?0KEj0(x1`6Fc9!6gUfGNM@Z)nS!MXX) zA3JAHm*3fA6}JS`i1=(~yhawy=N&khKc#*n#PRg{w>B*v zFphYCJl@@(xfM{};4`6`QRrZGLqzioSBeQb`s(;af89TQ7XQ}U$i)cXIHsk?e!!Wt z*}u`>{3+Y<8%WPMob88-FZF)^w6`52jS-Xm_@kr#SV$W{206_=*RWV+O%rGJjUsVK zTxsHnn?Q5gMSRKKm9zk81=4Z8+&Sh^w(xZ+)P*Z>80Jzl(^B;^4r7g=PoQ(I|| zhBuJ9yZ$bx(HdXt{DIQ0Y|}8y@92Y?y0_k(8 zW?%)On-$C+(;ZBRXa+f@0~seTQeq%zPL8a_b^b(41vGF?QCtabjM)GgZU${l1FiZ5 z8(X6*mOWNlOz~ToLl|4e z#}o_M{}drH%#Af$f%vM)utt= zJdijK>&r8xz{g9my~3|W9t__w1*nKXzVvkro*CPyajs^YrCYXIfsee$SQ4@KYoZ}4 zblV4z<506=&Je(+3$AS|-0b+`qmxW0KBXU`g#!%hGrzz#vX~7hHfanC6Eh$SjvQUk zcJm5Kp6%O@@4iPy<)^(;wMbo$l*N`=7cfL9xp{qGIX^WMvx(lq!j|Q zGxTLJp+Hi_sRI|mzr1|&=Hc}qXYuPpH!w%(Z=LiA^K~_Te|)DEd~FA=|$ksfnGuiP8*O|!Kz z1Req5X1urxJdoFys>d^4OIiBE`Q`te^OuxZlO1Bdpfawsq^@@n%KEuDDAWDh5r87N zut`8UhFyMj(bE{JrjCIBz|=T-VbiKJ0uT$GAei~ttpa|b3DbAEnb!7|Uu39RJDRFR z-58+!qGZL@4j5A9lZjfBStucT1Q8=7(^F&-&_l@KbV|;kSEV}eP#--R?E7TEd?-J@ zdU*ZAmq^k35dj8O2}5uDqNgss|Nh^5oP(#mKmDm_(Ze+MlFuzp;2Ktq3PFYA6DuIf zLE5F}*$nKS9YY3ovi!bwE=+_;#{?5i$`-^^SO6h-jr4huu~T;jU=V zOG$&MuSw}8w-cO1qc<;KzwL;_5zzKutg+!sT5+=qo26*J%2#cr17IbuErt!#Qtux=`L#=z&^%?~#Bg1g1D zsa*=eDRE7)M`=sU!2EIK*Le60IiAQ;%+Cry{v@|7_;Slp#Lj6>@fM~0-v0c{%Xbfc zw5w6sN|t1w{HTLX9dcHKb=2z&Qoc=2x`Re%4c@gS`Vy07DCa<5D^l*Ngdx(Y@FTo5 zA&`Ps5z@do`SKbSG-6&Qr-e$?2W`?+*`w}Y@Oa>O49OoufdGz8AqRo^7)cDE7FTm0 z8P~0Ef3G;8dO|9YEfu)yYbbHSLNFqUC7RCC`G{#KnhUDez=zT?e6cko`uJZ>!}n0g1f*H*mGG0h4Vd6#y^NKiz2m+fVJ% z5Jz`Y%A@tDYnX;D!pf@CDn0E!)(TeCP{f!Hkug0b!>38YU*lRuu% zsx|)ie^&)oIk5@mlSF?&!~&H5fU=rzHzRDa6cO8!ErAT3T_Q!|>TZ(}$@UwtZ+6*T zh{BHm@xm3uF>oq1;08>rG^Ez@+%DUFSU?A4iSD*|wP3a;CJwYLp!)U%)8h?IDXs6I zpRcjMhN*i+Z5rKcn7YRjTBseGKz+CyP3y=7RP~GcQoB;F1>qLhKTD`aLfGlK?8)@p z6DX@Sv3NPEkuz^1i+Ro?iPLw}%}Q|}9qlfIa6cN-6#1>lFY&0knZO>iuX9>$`hWjl zPT8@$X#o;X@20Lp8B}yqlLVB~WTVY<@XLl7Y&f z4jQtG1L^9Z2gmzBjTz)uUutElS7U0<(yOV*;Dc!vo!o*%wO*MZdY2H!*oYL+QSt@> zQs)NU?KQ6TX?!^yr@ncPA{}siuhF>)wQrd1$KQfzlRm1zE|b?*Erxm~CR9mJ3wjT& z{AcL>;G;7I{5~f9tG|sXW~O-a*QdUlEUCU3P9*J$QbFZ^LuILES346@x~{bCof5~) zTBv{j-xY0isv1s|P1PRA@|q^0~rY@HT#WGzq*BlLXXS(c=`g zrl1ny-__zTbYt9hT*Z*s&a!OdrbSGOZ4VaP0B2CyVYF`opwAEm1lP6%#RHedtZ4cc6EnMM zdxGf+{2W)Quj{wfkUZ+(#y#zMy41L(G{Yfw_#~=e_O*Spwt8>|rB_8u;FxA|H%oPQ z^i}_O&`)Qjj#gV*YP;y0K@Zgt%-X*}ccDo2uDCS!Hqmfo>_jzMnWp(q~j*iSdUJwbBcs9%jDHDu6>jCBm+P@b6~_l572hrm0nTnuXboDz?`}Cq5>Z%0=696pR=d?0*-}tn7uQKK ziXn)Xq09>Rxcg0bG7yPK87a^p2mEr>Qb{zS8cAVOq9rI;WUep{z1;?1Fk6o;pF9LW zmKp?iA-Pa>2jfCm#YNbpd_iUeF0P9{J6LjnYv~x~HnF9*XC$~j5+q2)8xE47pi6Sx zWLICJ!sKdlw-J%e>Hcbb3fo9cE*e04wNGibbk_I8q-MBo<0$AiF}hq?xv03%95`J9 zd^aA?oXMlZ1~1ja_eYM>G*&JYSS_$#iUWdPaOU%B40DxYsRevO{ehBWq4EirLs6{R zECN3qP$t(itSp8PUx~YrZCXU85L`P*Xa&_Lic8xTF;0$fI=+M1MOIb#e$oPqd)%tb z5lguUr2^BO)T_{h>RpD~@)0ywuKJ!9ST`NW9dl+5KlKwH@2ki0!$4^)Ppl7zh8Sa| z`iONvEx>87zDyXvZ@;^Qr6x)vki*x!!z5#yF!CC3Vj1Age<6b*7eJU&PDvRw?^F5Z z7LM?Clod{h=kA#3`ntB4;yF1e$W*K468La*q=|p~^Uo+|64oTRZWMiF*l}?i8ju@L z*Q1{rrwF(6cWq?Ap{|oX*4vI#qZEcNsfXqp6NWHSy0u)IE-YU^fhrp`*aFAmH}%@r z2-{+1b&?~MoWh>QMBZ84j}Zk34dd}AkSoL)xJhNmVkstNT7YqOIFMfnfD^lfI*}Zu8_1_l){nIM_{JB7$dvwL5zHg&}^$=2d zzG%x<#lyx~>jtn`WRoFI5a~cZWEGeBky72GIJl{D%)g`MR??T8))^{Nj|1;W=Nj%p)q)sqb|Yz8XRuJ121WU zd}q7IquH#ERIACNlc2Th{8(BE0}|cqs@z#oKBY#Y&MunE%)3T-Pl0<4pl+Z{0}66bq$%7(;7pFLoyk+s-kAyr z?WvNGQIkq_YW`Q}rS`&EK4LzW9@eBnv+<-T(a5m-;xao1Xg5YKJNNOIgk|zA1Rxwl zA;9gXt zm4RkOTLhBjM1osp5VFbV#%R0T2tL3kp+lf%J4VK8w} z(?h{InZ95M2?zqtp3dS$cKeL!qd3bbh)a!WtIBK*GgL^F?+`Wz{j1<&SCKD^Mkc9E zkf(&wa}x@_;2L};ZNztzl_mA(!Hx@kx#D*h+g*5O;toBjsU1D8EMf<`Xn_3u z2%ED=39yOX0dF3%ou?8fXrYEY?LvOISySzTex>Od!!*F`KRa16epH1^M25o6 z-pqm$_olHzpu4(AQdx(qD+4yn(^a7x=nrpWIJ&lPbvppPL7|CM+9dOY533i{uMv}{ zK^51MHDxWkJZwlKNE4(IlIuCuIb-`LXbg$W0hH@dCN;6r{Z*V-LM)Q$y;2Nuor$Eu|esu9RflSHW)4r-4l8&Jb7zT$W+srjC;2y0>qW`r_!q^DOP`;nbvFzD$SCGdq@y2+cb8Pnq$|X|2;+cn zSUC|5kWGVRMyXBuE-{j}6XA2lmu&egl)oidkJ3G)&(Fu}=16Lo4@ISms#;DgXcUN@ zj1??^fSgvs?q;JA!qE)x8?TC!f=V?EBXLROOd4vDq47_Y0$evTvn(iWFM6-R11o1G zHVw;24`PXnIEp_v{K~0~J%$1CPvOu6l4A|CL$>Y-1^0TGIDowU@5BNMHA;m5t*z0y?eUbw<+6}m!C z*&TK>I?o}3Ntoxq(@DY84zhWRu*OMfFulugT9y%~dawsEX$nm7%$0u-Vtk7)T45UI z!U1Xb%iBd>F}ARwn>UEa5Gl27X*x7gAeBu*SSd*=^_4nnfTXZsXYWv>8fq;p^>l;W z{UAL8(4?{jrqiRZY6w40+1}YB9624+JmM^_H1&qYb`*Q14p%UEr4CxJDT>k*Udp0u zcWIOq2B#3c1rU$TtTkWaw;a3iTj^?eEh81Fh)H1xz&fN$eS`^8Db5*Bg{=tRArAx@i}VYz^2}G#pjucqs8>K? z%0Buq7AhUULI3m4`4AJbcRue$I+@&n7q%1>ARL3BFOMrK%AU$$g00~BkFn@hR|0HZ z`VBc8*x77>=72k+d83?#-4&zpj7RPWMZ<5uBiucH`yCe$st`xFnXFlO47JFRDznJi z0e2i1x(2|02wfh26<5LwJ0WHFV}yFk$}0}60Nbjgf&+Kk0WDS=D0DBf{v%-qj-a}> zMgi7KxE69aZrSEbh`Ng013i(Lut_;9kUh81s1DOv=exU9w*u&+EwWdyM=z)VU3k7i zZVEuH&4_-oDja{bqr)UGcyr-t?t9fK79uF7WE2ne(Km?#J56p5xrX@=NN#yzL0R93 z75pv6B;ExnnnFBDx(t6tIh5{CZ%qDIu7}CjLNw52jR*<>ZahWFa1$EF%08Hyzvx9* z*$|)h{u{l6$V~RWKpL|H_xz)A6LzQF1YWOL^YfM>ss`HpZXinE;B3+#Eu0-f&!2~f z+qtvJ#76TUfW_w%r2>pETy0rc7Qb(>IfLdD*G@m81xm~R!07VbwWBVLl8hS^`pZJO z8uw?@r@jBFo8l>WPvg0uMgQz`VY&MJbBCXOF1U^Sy^NX~{+8#05`N};ThBfDEzdpu z>~n|Z_tF#cG(R_%w6!R$o6c~POK%_#C_rL6LVoMG&~}gvQ}}ian!C88gD}%nf#Bw* zt2KO{>q|Y_xHGep!K^6c9Wc18aBXE;2_`*vnnZ>a8|^Rd1lC6_2D#B7B~Bj-IsW9YdZJZ3bm(nxoc-2jt(MhjDmilQcuf}rTqlz&7&1iJ<}4DX<*#fb zQzWt5jBXJ4%(XgoUB5|?2eP~CKnG0YB6R~opa?-ujA`6$2~pSi4h#fxHj?)Sx=6mFOZkBW)CUgC6M02IU~=VrTYW%$g~L#$Q+c~LV7Hj2O_e@ z+BiCT=tV+x<7W`hRbA<;Z3(UFywhl?ZalGF7jS3t0#9}MTH*v5ocISCg8}cPMx9c% z=ylq&^dOicp>eucZjMcQL5%MswizH$M+ehPg#p=>&vGZQGtG1x^hOMKfTBeoRVkd> z@jFRPB?q!NDy4HHLm25Va)Tb~enVCA+0<4hpVize<$$H#<%;)+A6)<@7uimhNSVip zvIQ%)VH1Sj!PZS>nc(l;<>`x3$>$X?v|60M9z|T zbhQ;pm2lhx=SwBH+M%S7HQyQibg3m14GN)9ayohNQmV~B4YlHWm+Mb(^=LQg(PXm0 zzMpudtfA|d3jgE+s%INTWhw>*v#sMGD_Znq-_jh_(Ea>P?O@r)pNv~sx6K$N3gu%v z)JGp;yGSlHM0e0}af7)beMa`p_2nQ#$P`j$uS`oU1>TH@j@nbiws6YN|-FpbZl7&JK_f1 zV=m#98I%W|Mxq4Mv^ldd9=|~L=Vm#RFP#;YkX@VRIqYEKQ?CZQ8n*jG@DQyJ!C}jH zuA}{Kuz->v4&B>7eCyeN{nqo(-V$=ux{1%m;nj z_PxFTTFiHF(*nhr%)t`vD_N+tHsrmnqR?1o6wRcHNDgIIyb5AkSW$9;BJEMv+PkYu zU#cbAdz}sK%vYRXLMc9GH(7w0E3&h2kLe&acig6Wq5|nDoFi_6Jrn-Gc;C3zZZ>*N zwk0&d^M=fpm;{sBctdySWDky)NUNL5pF_sbl4xB|AQxr!avwvk@iGt1pedO~Jx#o?pLw^TX?hckr<< z68w8(vT2RBV1($1xs`szokTUyt?-pr&aW^X#lI8dU}?gbQksmPK$IEU@IAEd;CsMRl4VnoW`@_-d|TP9IXJ+Q*Szk5PU%~uW?xLFYt3@H(hH0Y zwQ9F3M6=9y-@eU}-z#+^?&8H`Gpr3LT)2^9tX2JboA_IQ9)Hk6P zYdcfnu)nZWh5TWB5k!XjTNq0;!D2tnk?orU#~Z(FFIb(KfbSn7oEUpNKI4zNR5 z7SID=P--2SNGNh~P;evb)qp;+93>EePI~F*{>08%moA&!ktke(X|YK?z{Fh9{3Kr< zNq@niL(B(;@bJz8%SeZHUc5$G*NaOwAA z#M^)|zA(2J$4@feCys`m1$|35ZT|bbbR@@Hp?~e>#9A<*RWg6`OR+$T?wUT&r%7&m zLXmnwLi7Fi5AWY=hj`c-mK)m^Ebe%*5RQ}$`m*dgx126zyM`~{(VFh4^y#_5q0d-yObkY3Ggp$&Gmu-axi&_sG}?&gr< znC%p4P(AOdvZ29yEi$1Ajm#Jej{(`c2V*|M&%-FyVmcH|H=}oPj5C_$kQ%5BETr?< z?zE>-xU7CE9vvY9D(i-PZc)~)Y;p7?nL^ydp;)vou+b||Vib|z=`x;+jiV?Yu!F~+ ze*DpHvQW&pC$4l$pcGUZ9#mGQ`)EUbgL1n>9R!t&pDvkGx2$}iX0|&2X<7rGqH%_e?a10f^|0zAA#?>rBN4(z0i@ z1B|AdoommjbkMbyU59-n4|h#Ux>OG=sWK-hxPDfZ9czFRe$G6BV3i-<&KV91lm*;s zk)*STn*e$NX;S^4LrFT}s@YD`Sv@AAA#c~vXQ}Q$5I?yQnRNiBBohP+w+(~1--f2g z@(;U0#xFEAGq{l;(eXxF9gsut@=)uus0AFldk3I@`{iNs@MAbDk#ZxeS4xLz=M7^H zC=)5I+O>3*;Pgq&)7Je4=HGU1xfWP!!gY!bs{P{0&BCm<1k2_5&2kewW5{e-#e29( zbt)-4;kD46STR5ROyy)TK79#Qh~<8n_S4N=36XUVgFOwTb; z>hawi;p=)s!FtqCJzR$*{0TZstpJfLkjX5p1n1E_IDr|^W3tI+vg>bf%9UBZk%y1fAt>htR3HX>2?NYlCl zZn6RjVmH84Ag_I9bpxcn+9sZ8vQwN$u-rY8jJlpL2Wgpdr5U)VR|H5;p>$fO<3@82 z-ux@LYpiZAzl8*ctjl7DOtXW10AKu0L~eqV4|l^1w`9$LF<_{#!FwuI?RC;QU`n{W z*eGCX%%D+e!%6O%Amd9c^rkycS%PVtz%p5!b}tHVS#D{ZJxH}%xbI6n~b*gXJ^G->Y!&Or3p^h-AabZ=JuA(C4+Sv z!`~*;yE$t1q3pV9J2mF1tB1X@O|&qN6E_C{G31n6OtVjyudb#GIsmcuFikLiT{{e6 zKvT(NdCRr;k^iVr#Dc#&nkV62Tu(H1>l^R-+ zNOk(=<)2?a-2LzapyEDI@F6*$VG?eqJ+?IRKL9_d>3DWfWaxkf6D~A!?@Cv$Th^0I z>2{ljOrgPWs8x+Z*L%?vWyt0pN8RX_fVSG?WkA!wsM$eFIY?(Fjs>MAqu#860ByLQ zWiNMgtbde3Zk&Oj97)}>nUO#~{92>3!<_^idPPTYB7o7?3YuSL$wiB>#FVcI9_^N| z3E7%Xw4jm*qm)r0QeKc;>G@K%N?0uOxT;mJw8fr;pwHVg|o`U(Kc974H;G}c~7A;`Elm$@IB?Wisrk7@(E@`Ei(a?1XoI=B1KR$vt(es z&!KzlVjxUAY10Vei1V8c^GK3!_5X~x#@4sZ7g>+v$~KsbPpJ5&z^)`uMT2^2Kz4kE zEhnDsYWATA;-|}epX-+0OM&|;tp!q_Hu;wtrnyV3*ZRt+k+BlejblN&oB~>~6f+9M zY`Ut121B4?mk2qi>*E^DZ&+p|s|0deC;;%~mq2ZL2VyO5#?u0O;G7t(;fNOo&1QQT zGMnvvSSkPh_a;t)jp@S%*$p^{%q%ei=i(Acu|iWHYiAwhJV#_Y$w0~Ywm83JLip&gZrCOCuRGaTZ4 z9?o_s&*5VVwn5I!V7Wd#RlLe9Mgu(;4L+U2Nif@tg$=S~t2<<;vtC!Dkef3Ld0@LO zbPPf1N>F~K)3)w-p$yawCjMo&9d{H~x&VX88-a;Yn!yMyupY=$NM#A2*Dz0OPOz6V zFwzF9Vuw3|H;L(HD@#pAFeGmKiHrw>(qI9kg_%?HJ4JwUEAplV))#SqvE0vMH`KoJ z-}V~Qe-u7KT!*TB1qc>vS6jRDIA-&6r!S{PqA)s^c8IdxA!kR5a{_i5&XRk&n%+!N zVPq<95o)|--NktW2O>C29QMN948E-ROKd!+nPTXgM6QNuGSn0rrA+3uYE%zm2lH=N zn#CHNpXTF7+8XB$96R-@4Ac!3mRk-i1~%rPFlx~y!0n!gNvS`$s8rp+s*+3XyZOxX z&c?x!oB)i(bW3&#rjMhn=2ZwJw?#z)3`^4t2Z3XA5HQi9xE3-cR5r6O(yBvO3qoB_ z%b{NB6C^GIhy1qCCx##ih`J_b=@GX+=bV~7GLNmQm|(H-L};`)XH;-QV=~z&wT^yi zaB*PLPI!`hN_7>3H{S=a21w*=PxKIJOzeSTRSigBGYKs8gZ0EYHajd$SFuWDNBYjR z7mI20W#~AN^Qy}Sio}%5l{^fU{i$bUEjMU%RbKgfIPieO>z&903#Do{NIJgWKYaTB z;g|h~cQ1eW<<*;?;^X~u$UPqFsiEleJixs3Y)LR1IkcL{JbA^0?ciQ#^uBS8G8LXp zkg>~_?QH1hbK!RlL=DviC{p}PQ3GW|(x0bBCWB5|{M4Ew0anaFY-$nM|71BQzfFM{ z2@djE?+ynYM}5`R&-tRa6W2SstsyoVB14GSMs=O&wBbfptPlZ&GEo(<38+?8WHa(I z1jiqZ)-vjIwuJY4vh@_?t^jJ4jE~7l6boUIXH}Icf-GH)@SR=sT=7Wj(FEHQ*}E6r z+=`3psx6&1q*U3?jPKX*^n+ZcdK9u!LPDYLr+?i@o-BX=D#g)N%S@*1KK*`NmReluIa(E(G@JK}(}cRa~!_%M)` z8AlIu5L9Nf`+NLo<*&EqLeGV~+bH{%MNVCd29Tm4To-)$xWCo`k**A0J8w40SHUjH zx7nzYwHp6*evrv3;X;61m6+S)S`^Y1Jp{qt}BO*x=in2!Xz+vX_d3g78X+iLOpx5HxpysXjC6gK0<6gv`?iBC1mT zG;Fzv#@tt3@~6*1u?qDUinu?00@dc_w`(%KsMB%@1mH7rV>tBdYn!P>&TIx+%?S;u ziCxXNO{^!-OBZp)bxpz!1XGlrn5>Pq9tii2e{t40OVIEa2yKhxkM zRuTRstR&(L2KQ_giz}^?L0x?HXs5W+H)wh+?;nh5x?;dXqht^5mSDlgAA{(498q(R z7|}^UeR!T_`j#WzhsVrgk5hb?UOgaimmhCJ06mUlFK#P+WnyXyu%_4!n-oy(p#+8V5s%?2 zp%w6!yc!<}#468sKdl{cq!JlKItIVelx3s!^`T>)+zfQkkm^f5K&2w@ky3(s9|Wi& zD<&;4pqy-k5wy!pecq)hSg5^IP+-%*`z=b;MR3)M(X3spA5fhn{{ z-Zv&e)xlQ*&}i}?NVDbCN;dnl#TS#0CxtRc3HrI0j_x>5twm2{Lj3`(pX-J;f%lg% zO%h205(>G1omAangK2_wPf$OUa-PsRuwIEKRJUkrfB{)RrT|;uK`0(-5U6fDHT%Rg zckXZTim`iIelhJwRiUwW>%@JUiAoKcd(ljzZZIBey$57|UAnOaAq9ftZ|s7qQBUE) z=L!Z5+EZIJbBI;>jR$3(%T5x>Lxv7H^(wh zUqH*MWsR!>#kfrPROpl{f5?*GQ;t1`K>Q;ZzMOUM)HuFOynID#FGoI&_kQ&!3S!_` zkQF37D={$Ob`Y0?BmfHV^N5gwRSa&SYVx7DfBSU3oiE^;N=L~4`YU?2+gzId3F)S4 z%+*pSSlS-5Wq*Uyd)e7N!PLD_Vkj+DsnxJNRd}P$E1m`jp8PJ9_B_WDFSHp93RY+^ zh+$3OzLEz;7W4Szb>RsYPgjZ;jJ#-_=EX^a_|2N|gwI!Bp->4x1L zQ9DE?+Y>y^=zL(65!Y}BWVt`VkdvyI*{YnbaZM~7a(Uh2X&XSjnF1I~Bc6a`=|{Y zoXZ6&o->w3{Pu|%Y#Tn+sZah0+y4XCZO7IBA?{6>+sLkTLH!hrUyOsYT^<75r18>0 zVj*FH1O$Mh$`ca^xx}hcbd^-0#jcLm-M{^P-*?WrTPCPl-o#YcB5t0WnK$op_C*U{ zY$}-Tkn618wH>e?sz^i&MBJkoz&Y>2ZKd267^$n6M?fc8Cf2*#RFDG*9W4#g;PfgW z0S#Le5t%WqOoV_kuXc;K0Qt4o>G&t9z}SxDFdjibfeNR#{m;>QbH@)oDykDCPvtCRqn{pB$aFmJwxKI zu&ebus?6Vhynl~+zjv?x{r>ic#hbVH$?Q4WQAP;uFK1l@w_ww&?brdPjcjT`2^`$B z$Efl^uWtTsK}rjADu)h&Phru721h@ei^VRsNo-U0+2&ydZ5C`(U<+K=2K|@yw2Ufa zOPSOtV~BfR%7VsMg|~UWkoQTk8=jg_TV7E=Lz%7zZjl59NTwi)9nU?%>8%5GVLR!} zIrV>TLm7GuH($ps8%hc3djgjCJ|sknldVu{;|y5Q-2}c$he-T}C>~GB>K4OJZl(b1 zS^0#+1us6As(ijT+hkk<#(6-iBv&+fBR!UPYFYE+R`19DEZnav8MR~d4lhzIdb@2%|mmq-`rIagd9E2P0d zLk!*NGwT?icBTJLObs$R}xZpyhEjr3D&U#(Q=FEdi|KVv!gW?k;2NY-eTNl0(SVxeA%l|hUL8((C|GduB~JMcLa!^BJd3UP zuZUY&T`Md>F)Z-61v21K1oFLH?hus&j}$2cs5@p>;$d>0VtS|zvP6L$x}FwZRCnj7 zX%kLV47_y<0hJC+#!QV2aF3jBgX!S)xF}WCV$0?H`2N#ZALno1e4M?1_x+1EukYWX zG|Ja+zLB|(UEn0Wx04}r<4(doPz2I+rNUaS%MP(7H8l;J2@19aKP(a zLs>1&mxcF|D%f;+gbs)VXH+k92eCof5S05% z%?B* z?CII*Q|MWapPY`4h9_tDzlTK+^ipev4e4c+!#v>%g9e%h>#UrceWIlq&;~S#BeeU` z65IyJ(gbt3O(19Gml)}=9>_RUOVn1%IC%sVa}I`NGQUK3xX72UIkt1-uMt0syDq_# z&ygtPD>B(v~q6G-1GwjOJMz-*EM25=U_5a*vcymZ|L zWWs#QQERLL%9H3TUa+CuOA!7iR!C95Y))sM{M#!S0QV?L-ZFyci#7;|WQEBtT0Z&O z^!sDR`@sHGAxPKZChMRfu3khFp!~t6*K>))8yXh0Z`iEV!7+@JiO=|344zYOFSB{< ze6=GqVy{gCyg zs@b+TX8!;Gb;QI!z0M55LL}s&n)_QVq(ZNNiQZfWfA=6tMC3~d@Fu|=|l>h$$I+ojxNI`AN#w=fBBQ&U?~i8C(mKc0W}@y$Q)G4lF? za5QJ!FgMhZ}09&HMjZW`PirJ(`EqSB@sx{!bMJ6+d_R4iOwCLcf(q9GE zO^wDL&ayaATw?fr0LR}UaqPKS8Nxp7$H+O-XlW`mXfO6AEe_E}IphS>yRlqIO0}gV zm3(`uqA7<@G&?zgndkgX3C;8pLm3z?(?AY51{EPgLxYmb8+M1ezO@nf!r$RhhlpMk z0*k-e#KbVR3q-K?L>~l9AExf+SvGVnOtds4u2k5drND`XpvIlaQJ3b3Lf>Z)`8iNc z-cE4`tic$Xg)Reu*^rsXb#b3AR5x`M`C_`9e(fYDcdtlM!V(VHETlTzhw`){jsdst<)JwJdD|MAt zgSrw^dRIbu4+R6{Q)_Q@43v_8<$>3JkOJ&b5Q&-J+hnf0H^tG;Nv zQ+-?sA-cM!=@SC=Lw%4VUlDr`^~se#;_caUKdwYb;6u-e=)i~iKmmvoR_P#75F6Tk z;O-m(1RR0sEReM955D$7>SmC@Qe)Dg6|}SNymUUl4Wx9yRY6fOTU*5XX~zWd&EB_V z7wsGEZcCg|)d#bImiEMY4|d`Cagbgp+!aEjKFG{Jd(7qdtS;P4T!wK|j`0+KHvH5# z=`iUaiJ5is_`E!MM2Nr4_r_dr3_q+-Ah@55VfPd=iKg(2lupn;QB8flJJU!I4llW> zhH1Wt*hwXGCHUe9{=BlFxt4s#`_>LTc{}nR($ztJ8y0C=T)Jq%8e^!<#@L{J!MSlU z$L1PG4eZC#Ne%K6vmGEkpR<@)Vj$m9_76O}Etzu!Jf978zj>pwtx4AtXe!=zf+s7G zUT3?3k0B2NWtrw*g;#;jinv9?h0yAJe7q-iQD0ni!$Yx&zkT)g?frL1rulCgtR4?X z7u6IAk>{5@5lOtNCysvg6JdC$o_O@DpLpCn@%UFi5t`I$j3>YPiKopIPw_-<2VbZ& z)$K?Y2=jV6us=$!8b3k0QZKVpIAQARVE6;CKuruLM|+D4lz=Y2EHb9$i`v$ty<~=5 zDUpQr=Bi{&584^sR53hgCaknQ=c(C3Fj}qi$#*@iG{kiW9Tpof?t^UInp$g^x|f^@ zk{Z-ajieBc;4x9tlp3Z7>QdM>!VF?sJC9shPBwS2I$XT@c=PG|e<0IxTmX-5krz&M zB~r;4=|neQ$Rl&Jd(`zxP4%cqyoLFK#wBV48G!5-^-(i0-;2!>g|16=)UZ%T1ha*K!T`mZTw=>(Z|c&bFmv8=E$%p-{R;`fW>%gcmanX_P>ZJg&^gOVIBJ z;TD6SIeKAw$|G;+sbo*M+Yz*@)%M?lY05lDXYX_-m}WpMGRqGj{y!IGmSK?Wamt<4 z)E5Z-jJwdKriP$rw&6V|CjOREcDIX$qIksE2lBl`2?4ZcT{(GU z2xD;5-5>+lT4`=kEOl@&peU_XaxdFnr`ZJaDIqJ>saaA?Ob6zA9osgeO8rW{4m>PE ztd4GyOs!86GtBSRk%_lhz2IHG>Km>pze;y7e+eq$!M)DqkfLE_`*H-Dp*oAE33+3{mG_zc{%7eE7)5(cKd@YZ}9`p`HxwgS+K z6BXkaVGZqMxzf|s+R~@%vqMLRbjeLS-)mt4)uA+Y!@{2F*)N4sd(j+uxY+BI^20aP z9w%foW}9RL)z)%x%e;o0RA4Bwf6$0tLU?(pkQF*gQAsj?>J=Ooc@{GZ5Aaf6Vcjq-u;f7O zPb$pPhOl;Ch>^}&Ynlj!fvtVCbQj)2X8PiGMry)^I^aLXIqSz?>8OppZe?Q(_-9_? z8MuWirB+yN!efZXqm;0$>@l|I)y1&S-wx~;uyUMfFdXz#UD_g07o%x=F8y*AQVT)Y z@wf;>*SWoiS{K_+6DA55Zm;_S5P`o+#YY4nlJB~hz z4m_e{4>^`r(VphL67HtZ57AzRgi&*wjT{}Iy$cXiv^2TK+N*YiJ^Ujtx<`?at|VB- z?&dP+(bMKJc&dal^o*oe7`)6D5JAc#$>BC&Jy6uj-T^gsL+G#oLD7Va}K|B)=e8 zWU~*I_IJRJ#zc*3weO%3m>OW`>mz_jyDjn_Z+3^0^`UHsqxjAFvs&0!&6YAq1F4&h z@pN|JSXQz~-!uOH^}$!)zZRL~-@p9D4j+_XG^T~>!BXm4N+1~R{_hevdGkRDcLQ3< zP`${;L@38KaJpD1HmHb!1W{gnaeA~^tnH+GUiwllpsE4s2{&8jU^#y|fDW~}1k+H^ zS`@)}KFoNxCbkar)#g`=5fH@-b1|L{mJj}QnyB1>D4IK`_$pYF{>@j~cnX>bYxA@w zk?P%eZ2yx~KiT$7dJ>|y7{ZZ;#^q?boVHyYV^E>?C6Ziv!B{v~=us|SMeMC_6y)jv zQzf&g*TM{ADOtL>UX;RoL^h8mQ5Iu@p0UkV(*YM#9%gQh$C(lM1kpguOJDpI{Dp-l zv!{A#x?vgz=cbb@QR{rRTf*?^zaeSC?g-%v7kyjWRtl+G+z6LECD&C=CQAC_v-KY{ib2s4ByXHAG(s9{P;xH8l+(NW&S zhFnd;ExWW`TJ+Fs^eXqdicDY;AM@W%}lTlii^gfU8{k`#25(t4B5)$=!5} zX(_o_BE^=m3^GiLF)@j4VZ&*|w?%`A?)vf5Po zubB1()Gawz87!#`x+q`P0qPcFB%;0P-R2CFfOKOrk1leURw`vvBm#y-&XM^@g}?EZVq zVs=eZfC4K6V9nD@ZmISjEGw}=BTE~r^u+xP#Tvs<3_RrmL-w_rX zh`4BEE?BBcBhxE7!z2qUxkF-4IJ^#B?xFJx)*f|w3{S~n1;Qk5qevNU*!=Bo*z&y` ze|P`t{p$YhYox100ZtslzRPw@mv;gYqLeYg*v`r_}h3DH$+(ul6I+?sZvcTh+ z^Pg@Aj8;C}#?YE&u$W7IY=Y%inXbgya&PEi)RiE%6h^!uY#G-zXU~w;pnP^{;32P9 zL`%=m@a>^RVpgYzCNsewGifSo^?_CW=;@`w7esNhms|ppI^$p=8Qtaz3CC(yhfgYi zb_2ObIWaGlbYmQ7U~SZz{KtQMy#MOmClpuo*$F}2kA2%qkI;&n;UNO> zqNVlcH>ZfslR@2756bVDI7Rt)R3wM2lAwQ+k~S5-g9=1HRn+8ZA8zdQUp9VxqH>s|>p9feO_#&ScLm zL>M)&=6p@+1Rh8Zfu1vk+v0DV=fJI-=SRjC9lBkx2I-xbNzDwtkE^guZeb(QZrLT?3AcgmZo`WE-wlh4-R z(oPIpS1;d?f%&`5VI``3L`!?Ipb}wKHJV|8VWt<5g3(V~I&3wMP9)i@K64Jn6cdze z8H>Y^K(JQRHBd}=y!`fALr7nGv5u#N=IRMKBh}w||mi z?2X(sy>Mf|k{e8~pi)3JnF*V(mYXd{fKQ1{VPbe+kGu|M%o@c^aw^+R2!?nk^}uKorV7bHBv`*ab<)#Z}-4M zp%I3u8SR`{fa`M@uqh$moU>M|&9&JT`lBZkOfwxw0j$P_OA^E^B~9r)$WBv20&s=C z2O)>qJ`@TyG_SDJomN{^yxex9i#%Y(t~pO0s*vP- zo#+%BdQjGnty0Q_V*7C&{F7|rb(Z6F6FPDh-ifzV2?lqKRqyFfFb$D-gd%Mua4{^B zqz&b7v1^aibxpwwZV?xZ`OiN4;boE>DU??g_|#%<+5LBeBM@Eqs0!pyNv_BM1BU{8 z5y`tn8Bq+!oGGoDb1@AxeFGk}*vzSewqY?)O9MvrC_LJBs?Ud40lr`8s}0ynp${XmBE8`*)FC&Re<|_P4yNZ#xt_KLwTK=-|_KudmO^Eh< zW+Cmxbc46zq+kZ!?g{m!JS}zu6c>>S4%Fhie=`Xw=%*yY0NV^<4^mY!UXO3E^v)oWz12pb z$b@{WrZP17>4}|W9D3{+GddvFG?&bV77ure?;&CU^EpPifIrwGA3fI>-Dq}$Pj5e{ zxItRw+LZz`r(GeL64-{@r&S63geY5NWvtRNYnNI~0Me~iE$srZTtvS}IWymq%<7CE z*dOxY@k>WsEAB3%|hyNpja0Ae2vf)7&dp?D^$(U@?-`nkYwRDkb&AJ9C&rSJkwp_on3*`O?5gG z3)_>PH=WwLhi+`RfR>x+fOV6+QGiwUX_By!y4ZK5FjM-&y4obIQ* z0cvKnYkW`mUXPX@NS`{84E!%)s=!qlq$dd{gh|*P_fk{O5_XrO($tktA5>Sm8HAKJ zTiH0LzER}4n$Le`W}kkB+4aPO48X?M*Hk72xws&D?6^r%Az8%vkPfY2RU|9|`(&#q z^6S&9x4ocG*EE~y#0no3j7JUAT$1ceS4XV_=^-6R$;FIs=%tE(BUd1Uo-NEmc zvCt%F?FIF+jR!7@RIBt!pkA_@kpumHS z#4uymM)=vPVd}20^ITrNnzjT>-M5o1_Sg1uE2@)P8f?^#Cx%P$PZ&wA9j~uslJHQJ zkoM3F4ZKIgJnp(hLXzd0`F!k`)J8=Msw4KiKA+#Dt8nv4Ax7yo?}*frt0k+U#RJ(H zF9dmno{H5Q(Bh<~I*V)f8biek0ju?vTF~)|7%;wIFE(;BhLQGqu*Ba4(JdFzmTTvHZFOQfCm8 zto8tpj*A{7!Ow>GJ=7QY7kechRk8~eT+efjCti;*k+G|aBgZA<{f_CqdeSx0Wsr@l zFqV>w~Q^U#jTN_Gp3<{<)Miz)z ze>YuaV}Rl>kZ~DiP$b`mU^dW0@scR{D|S4Yv@IYpH#H7Nkz~LquJJF#uWXWFKC)1s znPzSTXG-5t3>^{cW=j71J(ti zz-3aX9*~P8*m1D@j#HGmH}w_TR;C!R*cxC8ez}QA9@att==2_UIE=(+yQD9OQsm$-zvwdgFIw4*&H)E1$%bI#W8q`-gEixT1&NXi6RjITfoMYe#poxB$feuWo z=~-J&SGLiU+nQ})nZN+k_j4VXR%8}x0!Y>$ALFynKuBD@wt>Vp+l<|w5-ok9bAq$& z;>9A=_-Y6$%$E`)8r@CJJVP#nHiOmV1xRBhMu>_6crohficr;;^jO2cS8IMSvZ#*f zgojO6U7l{o%Uh=Z0-mQXf*vflD_54pEO=@a+Q_rD9PgFYyu9MCoh`Ou#0EhKJND5b zvj3PSa(aF-PdasHxqCTS5VZ>v&7EP{U1)kl!pvWFsRgh{+yTDVVYI`cw?Rw){aVn(5 zpcdw5#2}XkxCg8ap(kf-hijk_#EL>IlPm07vJ4h@vd(QSmg!NITLMmd$XBo1c|bF# z5D`%-`P{Gy6%4C;H)HBdtTKG2|M~8_S07QNVsP-Ae|>%b8~?z__7chq>G$xy&|1P} zjwPCE0i^-zyLB{Nf9LKP(JHn-&*o6pv+YZr&1i_0xNkLzC^s(zk`2de0`)?kqv=2I z-+tV@`}F>+dm>U%L)97cSWaBSERc&$p;SivOwEOvA@&85r>75=odW}Gti+dgit z1<64IoWb?@Ma36z%KWm%W5<7SXve>BPVuF@h8&QVQVq?#*4~x1dsttKUjQ(@$AbrY zak#0&9fv1=b`Ja)yDlcQ2I}FGO30>N!y=3;j@nEYHQc?0Mrz17E&jDu{s?2oTl>Gh zFF<;SF$8o&QHgFhYf*edEfhZ}j^=$IN^#)?69qF7aaX1yW5#0K$H$VReDwjS0)+^p zt?cACTfr@iU2&3v7j1oqRk83y@2jO^rLAHW?H~h7vph4`qF&8*fbvRtJYi{ImR%KU z+!Ym080INmb#cV5U>s1^#jB%Gmw4ngtp_uNSz%qS$**%|U??m14(bNhO?{AYyw@~B zLpe&RubI1SIxcL$?le|OUBb^$5gE8x4cd`Xi4U`3MB=ZIA8pyHjt&Z=2a9{yb_beg;X%9rCs{+HRDm?;QcQ%@RBy@#s2jLvQalKDrb0$EK+YS#2RQG1 zf+QH1(9oKaFdNHCm>y>ziha3Vu7V4)@=Gl@i*zG0$?j)n&zzg5hck-YA=#V8rSdDb z88~<*chGLeOP9AWqsWIRdj!_y@hFfTS#do5^jkM~;qpgnwC#!xq-hDHFBQUabBhZO z(bAIRIhZr}piNLQD*FP`!pd27#qUwq0+1kjjhW%VjqcNm5v{afAQMeD6%t8ldV|_N zTcjJhE3(w?(VP}tA8oeRN2A%%k3Z^>T;J(Ss|Z5xw#jrnzosmridw_7M{sw$+Oag} zv-|&0TBF6gx8LA5wzdOyDB&S@Jh*RO;&-viV4ah07>mxP<}whQMWL~J4HfE@LuPLm z&7h$=ZK68`T!Q;c;RPvv#g$4rmHf!{OA?NkQj=@j@i#HPb8>8(xzHZw&1pB*K=_`sb!n0($F#LgxZs&JW=TY%nMdwL5-ppcewcU zH8L^n_9n1F3KqWs|(B+hgws>ovQGtIJgrg%^@EjbVFsqaU<(rO0kP5e4|?QJhmuNLX4P`v1T z@@1kPRC@bE-3h;!c}}pj!mg_tx%S5m!lwKYT5-K#vY@$oy@u&=!Nj2!iMStUeTvKK zmeD035QPnyIQg6uUXO?j#H^*_BGzQB0~o^L_DJOb_q>k6X3CJvS06vVfAfz|AMbZN zV7U+Xub~w%{oHJd%n56Vt>;^s!oVs+u?<4(k_KFxFt)+LQH2s|GJ{bydm$U9^u(f- ze+R{fpfPfB<-^_l>Vm3!zS3`zN%WB90d-EqrzE=;#6Dd$_9ZR@DS2AH-86DUTg?qc zmY0f$R#8#IH2sMx-XZKVc^holvSZCzac(hEXd7Q?1}L$P5%d{i44ogv$D0O|uN}hx z&c8!w;M&@{LXdDm2kL~Z<*8Ffd;q0mMG>KlB9gC_tvot&p$HGxXeIb|a^)%l3sfoE z>Vq8zrj&!*pHlOn%BhL&qx&B}x-(G=IwI)tBXWZvw3CaKB@@w4z0ma-%;D5cTiXD& zM%tOKu_)9Wnl_~@qN>5vjp4-wJcO4+Ge(de0tO0~hP&H!6bjOB8xdgUyi;$$(k{Zc zxv?0Muij1B5tnd+hQ~NqI7JMP@(?M7svue={f8vtQHBTnuTkZbqw?6nl&E6|m(<#p zpRl)op7ybu_BA0o*R%O@kNxDl0bw9aGj;^Ivq*AoLkY6$(tT>C{WNnF=!4~0Ikzkt zOa%+hfKBy?HG@aca3fK$=H4$LX(dQjEB+;IapGXx9(gO6xg=Dm(b53Zx?I5sfJuIV zUf~FGcwvkJMg!@1FW1%wmi@m7Igz_&(aw|O8FDI0^yfc|Ux4dB4aSCC3-5WFE0OMt zOaU2RW`RK4Hm1B`q=8`aec%qFW$7*p1*#PLrH_?q`pIn=buqbxPS0M)3{qoMG^37L za1^y3uNj}5TfaT{Z@aZ9foAms%lixIc5??U#$u7DTyX-zk^OF^>{;d(?&+m<&)%%F zkALsf`k8_Sr{ zKyQJ|5FEF1DdB=YNgzGJb_O@y78w|sQD}Pw2I6YDu&vm+ic=0b4`>4sA(n^8WhbDK zkB^5ZjWr6#JwVQb)`;qm1FRe$Yh9gPt*~VY*QENUr`G|dPzt@ zTnJ7SXuK(JoU0;Jh3lz`yQSn~&){8ohf2TMYnM#@O+6n%b9TTeC0*e1tY1O{NtuL- zNQ?`616Yx)1tfEq?WA5%J>NkQ6bE*SdT9K23p{De2(nbOb1=nHVvYJXCMq~k!3CJ+ zf`V`?4Qm2?sZ}i(DMaNJ5<3gsP=A0)G2G*gbSAt&L_aq!ROaE`qR%E_gT3h z>qCb*rWu&s-i)aOmF4mUrI1A9-1xGumma~jlJ-^7>I#avP%v^TBQ^=*y3%3>+6?Fa znUjoC*{>&p2LsCh9&Ba=KDRX~w5v?6u(|Q^_>BPDtF=sJ?M3xA^}uYeM9Qt&K!L6i z1~)n!{N5G+o}{UFQWH!w!sV=^Y&=?vPJ_vVy6&MHwRngCQ>pI0#Y?dC9;oJzJWDRF z*=Fa~$^`MGA&}-HMMEX1D^oJ;lycEBE>lj13m4F%etD?^r~=4Z@OS}Y-WGbBY%}C2 zl;QgV28Oa>3uV+`K4FF^EWit3L_3!X^{zw}xVOvkyW?zcPETNwl5d%#k3kmM$Sd^p zkOgnPl+~T-kl}7ELY^;Zn8DZb5F>qxeH}M1h1<#W1qZ!FgwXi{zv^Sv*F)=*$A%pN zthYoB_Dhg^w(uox*#^-Ey_(Oy#N=EWE|fn+R=;Jpr$3bVs{5eUT4A4|`r-AuV%6y` zUD<7Vd+0lO9xc)Iq(4(m0n`m{t%EuMc(^7oM6sAv9dR*O(h4g+nb(|z{ysDHb|o>@ z+yULS7gJq;M1I3<5D7o(1+%q262gwE2~gdme0}kVVrMlFJ$yYo#7VebnH-v0+Do?X zBp@4<3P-rc7AY8!HBmIBzNBZ-8yvAA&uzIlJt7D=YF3i8a$$bHd;x7=DG{6B0z%vL zUD47=v=DR#l~aaUW?)Jj8lU9?qqof3s2%U2+L7vkZil*2OY4^h8D@4 z%v^~PEq$HfDOZj6$Zg+X81ASk09kC<9%y_m*M#;<{yiS}6jT>uj!9t?%XEh{jhtg% zNgfDZA=9X?t|4k&?CtGllijsyJ~>CLHoTU`Pmn6&ueU>KI(>2WbdY+(zK#+v zJMfa$>7m=~+l_2kQfT6XLa3W1n129;o;U^baf7BlGsSg1W>1 z25MRyqVm`X2}32VJ5WvoiU)X6Z^pDu@TPbQ-qSo++2s#@)`N-Z9}oWe*8z^@XP=Kc z$DbMZs2Df&?qik#vFASYwe4NUyemcpB;*J<@r)e@jQ$Q%YEM_gbyI3a@g6*BFIa(R zd$9m(qJsgCQyrU>$gWU~GRxE)iR)d(<*ZAYq_G$Nh{6;$ch9I zcmKM7KY91Bx3cm9n5=v?*q-f4czdP61gnR5Gm8ylF2g2=G-;g*l+uOkdB%}YcT;oL zV62ItyRy1mv^X3%&x%>RINLwmtM>A?gk6y~u1|?v(PnIzl12qK(%S zJ$q91?d$Sripn=IjFSOGqUzoG1vEa$q7nKq=fEgRJD-spViLDf81E}bn5u)VqbJGo zG!4W$0p~ArJm#r{u>waRDwI3Lvh zOR$#{xIlf--OuJ9(p_2RMae2+TZjx<%w-uXTwo*saVQSqQ4($*PCc0WQDL?>^vym3g?HUR&;!14ELeLi*Yac{D@fTa~(? zVv%J^?&cGm;U|LxfLk?_YLq~u3&t(@J|{7?B(H2S>8-t>T@(q3)O{!@ zY_eTmVvo1PJ-f%dhNpBY7Y6sx+#*N6E}IiViv%l>M$HMd(!%h-a^Kz1Ls>jMvs#zB zC~u3W;BjEed^`%&!;rn!(R`n~D!VSwCf>iUG`}NBGaVTA^YMLPoF0Y7HNJOG%b-eR z7XlvEkcrB~$S7c274SqsO=g(L-@_udTbOGbZji}&jR-%Gh#QtO3ROdUU6uCcYsj7E zCuNSwH8b;KDz5~~Lt)#y;$vcqD;R3uE{ARGfo+ajT#|mEF(*pR(WQybyX|LBFKrnL zL+5jv+g?D{hLfV^k_AQL2t!9Dzj>SF?BdEZLz+_IpKJ@fx?tk(_ezA6|%zJxx!3Lf1r z!Q*g3z$PK#F~yT;i;Hh($jA)@eL45%d-O6L82T&t!YnhLr*~kFQq4Uq zX;XzySHSER6c|y|1KVptKy;&nr-cz1SAonbGe-l`t`IIXywgp=iAl#{baGx~2WB`6 z?e7$D`A}KF7=#jieJ9p1--TqF$bL{g>M_C1s_s+rFiBZhqix7;tfGEYeos;tq|MD# zp87uIP*945QH-xtTxDRM5c7}$XQJDqrTG=#2!Wo5)GIpn8-^(LH=S(4GKUWDpFK6` zWT7*#PaB0w&Y1=KnBu?Zntia#a;@K?z9zwn^~l&?%Th5Go~wh)MXF#g2&KH?Hj+F? z82HnwE=q{r$-_uJ{AxPBKvh?JhWlY6#Qth?yMW>G0h&i{f%!bHP&u)$Yb7+n6Nq$~ zMt4*C!i$*vmqqDv9M;t8YKA;lxBK2kE5pt2(yV77__PE`39ZBz*GmXv%k}=e7exon zhFB=2{$)mrv57^wt=Do2!IT0aUs6Bc?&A(v59XN0Gax;fZq1)iC%I6Y*HGO=t_KEL z@&@)tJ{i@O@)%f=5S(*vbrYbXa)@74?;XQ=_MpuMlGKS;aBf;(73xGusW``rZJF8v zn+b6>_{fy)BD1S5Yz}QsskWo2In)+LtPiZ1bl%S%9}#aW`&3ng`*>SAs zn68ED77^;j_!-hVkKq_nH#IN8Dn!tgZB^S*rOz(D5c&vE-lFEBDyeb5!jTrHM1G0o zj40ZA33vV0JcIP7KC`~9m>;cG=oQ<_!1^jC;Rh}{sri?IOCsQHh?N?smIQtXbEGQ3 z;jq{aa2eUASop*URXdk4BAZbeE8V4A*^l6xESHkL4jQZ27Rs3;q#X)Vowbo>YGm$| zWco#wyek*?v4-dTMGkq@4b#REv|vTP+~j5udIuo{Gt-0J!*wR!iUwlnR}-z5o>{ zk0GKFjQB-MBOsk%X#l9>uH14h|8R}ngD+i|7cJc*DyUlNxQD$_Zu8- zv{2mw)>k3pRs6WF;O0j+Fs_4*{pY(kuLr+-43A_kF-$fahiq7Z}mT3#NSY*wBCL8B+VXXXnTig0PY%Y_>@tn*pk6 zF~0M=+iN{48hVzizqT*wFC~d9*|iQ4E{9C(5|BTY(yLHX%hKY9Gtlk zga0S%Qb7vMDQ7JrQjXVC_}R`kblzT$Pjjn@R7q2dbFR=8OsuxEhku2)TWaPFZ;4oa zvLYhJ`Hay6JP2TUySQHdaFDnse1e$d%vm$Q0_m(81}-QdM7vb1p|C=z<_5oHJqPQ} z-~hbTd~Y>>K?we#$aRN;16S8!@BmTrtlQGVr!FEfJsk6)H$er$c#XmdegU6 zM$=GAvxqN<@(ceKPJv923vioI9v=KRTS_~Kro9g+ju}Rw8jWR&ps`cwWw)3F*a^PW zBasp!?K$$}g%~Dw;z=Q%_i__G9Ud`eBNbB0=}_{uoD+rLi7W|2cZ!96?#e$^9=+H@ z2oa^fay2_TB^E1N18 zO{XJ8=*~r8uI}9+GM$dtX`O4l`K0&iY46oDC}Qb!Q>3jzI47j+2*-niMZTqEKiDf}Q;@rQ3%O0W?&cDUPoi!{-@ zf8Kxf@!k6mL~F!1E(8ls2@aaxrONhD(mvquiSMjU; zU352efymYXNk+9s+%+qj!q+Hh6wWjqNV*J7%$DKLVuAl}>>}T3tM$(|b6< z&WtM~bQf9m{O>KLQ&43j0YZT$)Rhxf zOV@UGF*H3qswq$%+)P_a!u zwT?Kh)*<@1vMKH9qG9k$f>E!+ZHnuuqo;gux^3y?jBW>71Rt{6U9IpBzi5Q|F{X7J z?iRpyb7EY_r-27(MZh6VV7-hJStVcsYau2T1SW0ZwnG|bRvRa=w@DG@T4lMwncG*H zTlxw1-z_Ar8Pj3y2B*h`C_TfrG^RU5v{UrPc+HPspYEo=gR38ZM15D;H`Cx2Ft<7~Hf3}14ADCEM4PH1Lp588%LIb}aR9G*G2BJcdeC!u#igA(y#^vl zE$C!SOP{l>bInttE>8p5NnfS2;{l1<$SyfWP^ivZ$do4kmd7pP5B&5YIv?Mej7d;@ zUfdxf6FLW(lGU^xh4cY33p`iPPjCm!He+zjkRcb~sokc{nyic2Kx&MKolp;p@rK@S zO2$J{<3mqUX^k{GGXKjqhDV=15~At&IMy)R{%a{)7{&+3Ks*yQ&rS8PX;=k|=H+D`%I)SnT7Sgo)}r@s z-AA|M*j^RN8V$^>-^t=f#=$~$Ge1!IKMy<7rkYHWcR`#R_idZYr25enLTPYui6 zy|SSvERPm%CZ2&Y2wZ*gU+PCTJw4K~leQ}#J8SCcQRQO&;?{{AxJMhM%}THR8ws2! z(Te`5bUfA>BIt|hLT4wncBT!B&=IqsGIs?Obp2Xx>w*}Q*Y5`Zb5Qho{Ka3#-@bbL z_WrvKxRm?<=kWhEKjr$_yT^Ze=%(Q>xoPxEZaVrUHy!_yn@;xL^k0L2eT$Ud2e644 zejpA7y*FPP-$mJJ%Cb-uPE&RvrKQ3{$f>{}-b?U0FeiBA9>&*5eQFdgn%aFt8)C7q zww~MNxT0zhj1V8_S~ND+hhm>8w~#-s+zI1?o-8uREY*;rohY&;qA2al>0a9_=tcwd z15u`EfXYpB7P4)XX=&ZXXrQFDI!1Pu-3!JWey*JbcQ2mn75rI?4gbH@^s`3n*XK+z z9>&G3;xU$Wc-R^pKKG2znRC|Y@VRFkewZNfe!YJeII-3g2pW35r@zu zSGf?iyaiO)oCJ&hFcejq{uL;r{_vf0u01uiNud2A8zYA$Fn>^dGtb8S1@;O4O-beb zcf{qLB;>zHFZfERDQyJ2E zZ5PvQ$3kPw!p12s}xGQ3S@^8x-mL+2s@KMpcXw{ zphu|gaZh(oGaD_PLk%ps2^)8<-!+mdaWW@R8zu` zTC?C6JFAoh4O`hsi%uOya+mS?#K!7Y4h-g!p>uJUTd-fqwBZjAeU0&S0Zh+^tUBJVuBs3pz9Fus?-BEd zsvAqIRR+|q23SpMWRCZ^J9c137@$oa@xCG5X-FS)BB^1rd~CVES0U^qjh>kSWM=2quBi4Zh_u8}VRmrulgZG%ij|p`U!$OKCVP}(JGJya zo@O2h*lZ&iEu*R+94{6#^At8+^h-;EpZ{HbaSE4`#hQKTbZOGhK1JZZE=f;{v~X58 zOo9v=)h?k_Jn~)SDgd*SIvy~hQdokuh1?kCnxANO9t`(A>@lSBrLVYdG>iDC4|^an zng-)4yqMo&<(X-(?YyuE)taNVPgqVVR> zxLv`~%TXtoo}5rCB{xTU+M(GSN-pEHb*Rs7nsPon7MWo`mLAda~6iKIoy zl-91lQNDUJrPyhk|!uJRVH`4() zL8StBONA!}Yvp)(M1jc1n@xd8b#4*KfU7hACf7FisumMWQxNrFEH)iHc~3pT}Ajo9|S@|YNfHn%e@ zQK-&L_)%`O$iBm#aRH2dzFQaB1PlCcgW}n`W>TL&HyqqpXa%2VdWz3KSbCG@!Ioem z2HbgY)BE&+VQ>v}4xiu{;v9;v#6Gx0{;uTp&qgL&n<2PcRN-uPh|o-eX{v30jRP8< zxfrNCzU$!`U%Umr=vO0Cjy^bJIx{HpOYxtW%R;Rd8ZIku(U z`@}5IWpysMdly7y<}Y)D2)%DOe9!9u4yaD_pbL3!-FE0WH(F`jsZjb^B_3#u(8bVw zW95d0aNxCh@*uKM(z~|yG^Yus?m%bey;EdTI*|9i0(bovFhHjl9Y>Uk$;Il2x-w(aPv~YrHR^0Zge40% z5-De~ zYdc82MTy+F-pd&#n7Z3OX??OVh7tG2PxQ%R_vDiW#|EZQ(mw;{PERczd9j&W1_{c2 zfxTOB!7SDtobo-tJkRE*jwspT68Rt%%Yb?oV@3su%Z?2ptRPP0IHEeX8l$t5&I zSJX|7)Go=RV^8&>fTd+Z676G8qK$0%5K7?sUT7K%uzv>L@vs`AzeDf~6k?EMx`!8W zCmk7ALIl!qtzL|0nO7S4;y_{{4cB*ObDvF^cPOd8X3IRys$dT8-a6trDdUO&pSp)8 zN33A@ZaJ-&J3p5lp~pjyHd<`vc6Nbr6_Sh#QqtfolOb6{P=&0LT6t~Vd9QRqkq2H8 z8UraP(hL|ll<6R+c0)z?EWBlrOKV6DERk(&EnT?g}I- zdFiTkq%!q|P?srlII(-2;}oCz{Yp-A@yB#|Q08HPnJ0 zaVwgn&iI|&%A^2=L8a)~Y^sfv2tonZNVx`N=wDo*c%T)y%uQ`wTluxD7I?OcA))K3 zp?W0jP7{s1%8@h3(nufJ6&`%|CG~&7Jmw1;OtB6TWvz)9PSW%+NdPqP!_gDX51O=5 zqp28$qC^1P;9z}{pxn8tcX4{93$}pa@O~VN5i}fEC1WfyuG8plE zzj8MNb%S${e0S)wlGN>i5xre>b4)OBREju*6Ky`%vzUd*SW>8Sjd{d&q0fP{lHN++ zj&>9X!waFmj_0L$)MZI-j&p`5X^)2{-z;|pT!Z(W$eBVhrZ^VXw}z>^R;RGrVs`D_ zl)CwBH&1MCFJ@Mxt-PQw!kGf=k*tRdAhYruWp$3WhhA<~q^YS?0U9eb{iLVRbbl9` zbvE)@06stVsIFs+wyR?8DzM(1Q)`qNhMc-JK;0nw+a3;>xT@fdl`$3(atnw85Fl9W zr(OnTl&#@Lhn(aFAd_l8qYv?ACex-NRs4U^fC`pX)iZqP$Key*8_3Z%|rEZX1zxJ&~G2Q%U<&o6P!aOH}WQ~*89j^Ywx z2=u<`_?)@u+dy>(Pkw|n78TPC(GCy6A!3mpEECWGD+blMYiCJiJxLxn((=?%5ZqQt zHzZ{a1yPz8ip^G#uLfeTHcnKktieHG?_84FhE%k*DI}YKVE4rNq)n4*O$@k-sb%-W zkck9?UK0b}JqP$d1d;>$3nfqu4p#~F>OjLqq91w$EjB27RV|oLzZz%)qAr+?vZxz|(@uuH@4YdH-r||XpT}~DU+1#F{q#w#i66S^QYN7>5dE3)NrOszL zO`>!Fsn~|hpEA(>goiSuX3s;<@prKY( z2gS0E{x}+)9G)FLIeCIVqr>6x{THh0pwoUnJJzWxY&>9~Ei9I&Z6rOn88bcVB(rS& z9h~Wgg%mOIBjyz#?WPQh|A0e`#mI@mr6eoxUKj2kMI)HFTjqzV*hp##0I{$wSzVZI z!z6CVjNwIdgddo5dqIjGZ|QUgtk;XqI`@8can!5P;rBr|XNcSBz=#W2d|d<7vvtk% z$z8p>W$PLB$`=XdGb916*B!cn_!y12RF>=t?~Mj^Q=3u#YNyA8-+cGoZ-hbr29^B| z|MVDDGpJZYK2w18v)$hodPQ#9$b9m8l?n-#=gxHQFx6-#qt!V&P@v!*CuM0Ac(>$X z7&~m=$3CNlSy48du}S&dWCOe z6t4Lh_K6r3Ny-ISvkM*+pG;1aW!)$DUrP&0L7a&A5hCaRj!e!>N(*~4l;ZM~Q=l%C zv-FW;W(>|b+|wV`5%qL@+-%Wd3p3veWq`q`oxc=4K>@s5$UaEngd|-Ese=Y<^~Lby z8A%O{$Ly!8XQ+T{?n<84y|to>BT6uR5tki_!jSChsH?>cfO>LCD88`Z55B~=4yicC z${~yoetZlLplCgkMt_YMo%Lc+{4RE)sb@-eV~JyuXqg?-?M6x%M`Q;A!K{cZ9a!M# zg9Au0^lF{M4e=#?RWUAT<~#mY=w>%3FI6WMqfo)Qy~>nuIzMJ3t7H-6EPi&iy*M~u zUk?9(e@6TV4x0xUQ+Xr^2gL=6rl}nN3Fj|3v`)tnI-=wXp9wZXcd$3_!hS`Ob#6Q9 z_%|#P#$9C5{LwjVp`ZGUn>wP>;`eq)8@5U-<{nCQE>*ZiDOulc5Xn?C z1Dc3cC~~+TO0d0$!OwSdL_Xpl+vd^I3gpixi*d1!RPW1*tecEdQ)P;h;L^9?FU(bZ zK|xJ>I%tTL=HwDE2^VNTJah_sY__!1s1{9LdxG<|ixey*Nf4Pk*Y$NJdjer`Pl`oj zZw#&x*`&CMW44}7i8#SvoirAX5u(m%fy+VXP$pQ}VRa7+2k{u_u8b~DrlV!Y0N4u^ z9w2$a9}!NINq=&F4h&X`iUlrGjA6=vZRy}JdKzI<9g`{EyhL4$mB!aiRhur`eB#^I z*B~Mn*~04WM?kSF#y(qQu(|K~HQ`BpG4Tm`f#rM?1e&~}i%?KDu~?RKkwmw#9#jPO zXOD7~simecOoWx;sV+DzPD8L-OzIXX29CnCbm7UJ4#NFpJ-Irx%&}#bh!SVfaWLU| z*SU4!`f4m6KO8Qiux;ZEfO)+cPr<6$57E=y07WH+a`M?;4?RMA{d7nO(Gsb$48KdqA{w*XBPyY~OtK@1_NWiuxIOPkiuT2s8(sHT>SWU$#vZ z6Y(R^Nv}gOZ5r9?ik`1$B(1LdkEQl>edba>jDpOcGyl6J0Mi7dYg3#eDAf#ub|mix zQWig0U0$ABIW1IfH_fwDs(2E<%As0b6wzB7=d#cJyce!x3PZM}YMy{|{Brh;+mLJ< z^wD>d+d=-Ri9s?0NC~J=cz*K?XBx3hknqVk?7A8Eoi1dmOI$#Zl?h? z@0a`NE3q1WcnA1t$w_!-%?}H_4E?pkdz_R}pJuxDLjBDXs)(oSn_I&eB$g%4^=vtw zu<}&;CHDwDHG{*Uk5|XnvL^}mml}@c`1sm;L!y-Xix0_^N68xL&(dfEl$JI81Y?q; zTm}wC0;zMg%@P+3*IE0tIQ};%b(^4wvb9O_I!Ade%Q0o3Uc_;_vLAs^F)p6(Y+@|n zx<@=jmSw!kQQVs+vlMuuQ+la~@4%p}sq)m9(%kAR$Ovy1=g$O=2H#5JtJ zH9}fm-q&xD&BZ|m$2IHdq9MmfVasCQqgD`T0OvAY7ALyKi9|C1B<<5msG-txJ zgsM%lstndDP|BgufJAHSBI%AbHPd+zn1bPHF6`xN+=c7Gs<63SOlT>c`CrE>+E#Y1 z`{aJv<(#3f&ZBxYM|s*Qn8_ zeMaANvOFl-a3JQtVAgfrx%GVLJT1uH^A>QMBHJ0L9f6>hDKwO06b}vG8av{?d8#hD zSEs^^2)*bnKRD^e8vf5O&-eYa@tczl#;9`0rMl`#|(j=Iwd6->mfM2HEd&w$bO z?$y8F-~Le43ISgf7nvohC?Y}%r}`-H{kiz^@6+|t7ByYJ-CQben|v~`%I^nUZX$Q6 zlFD=t!?QLYgh-5?c*l*dRYCBdguD8{yYpe;dRXBDeVcaab9h#4o+Fi)4pu|@98~sZ z1Y5s%u0f(Nkp1!+Woxuup@Q9K(K;$DT2704Z88ZKF96RwLY&OV(!)U^lmguYpq_Rh zImM=I^7JRNl7QVy*--lOFDda7oUeJL`2;hq=s6E&T~ey1xG7l3pL(-WHvQ6@mAdJd z-mDZ(zw~CMa{8q=E2Y!Vzxk%fjP;A}{)O}H@BW1o?sxy(87G$b^!~%ga$`~nE!0tO z&mtEV@%DNKr42GKtlj@BIOrl?cA$QBc&)e*DaYyGhyw-FCU50zQ}M@A(oDjaai9(h zK%k{vAo(4oIjC&wkhAzaat}RF!+FW6Mq^OSn6&Req=><533CM!8YoG1$HTAz>IM-z z_t$HUel<+p$vjzh8YV14mYONTi?T`_coleFb~t$jP;K8*pAJ|LF6|HFD`X3jmv@*f zbVV!@k-0KV-c6ii4TT-+Pi&_i#iEq1ZLYuBYJ9H6MI3qXa5OL9$cGifaQ0W4=l>t%)K zD{Ep2$;rRONfbs$JQU>2lJUX#_-_ib)Z@3vmQJr8M(~)){^vgtR?6y$qhI|*7(1&c z9{uVkBK=kM#N%K6L?}zDC!YN3Cql7OJ@FJzwS1K5S!h(tW#BE7Xr*^F#WQ%@07kd4q%D1dqsh3?( zdbiN^?}LZVe;+(DKJ9}egj^Y+_Q6BO*axRF&z{ivHVp0m?{C{XHp))Fc5wS24*BbI z58r?D*-yDS+r_Nb%g9(0xgkKSjwq{HoK+)95Gw%mv3XUMw;)r<-Ysa0L=cTku1`fZdj~3>}T6#JIEwMN=0!nL=AeQ%u58BIOb%9B5Zds=7 z734yDO?B=7QNXNVX_;uD1Jou6dL5s3@7lwuvwghVGw-ZHMV{v$0w2DzUN;oL=tbA z!Ws+0V?YU1rk(2BN=Q4ZQR^w9PxLxnqU&x~bAK({BT>tt+#$waLz9VD0H4u~R$n<@ zBhHfl_=IO;Rt@$!uR~3U*HN(z(I%pH_&kJN1IOtdqHvnXjQlps+4c^G%fbwID|HFa zs_6i^{p5qa?e)yw!ZVvnYV+eAdQ?%gL_auiq)#o(eflUZ0fO&`5u0y1U4{J8gO}@2 zfc3#bUbbq`Wiz<1-j`jtZe!M~$@GQ%mo}gNK_f-nNK2uwnXz2H@2EH82`JrJ&gH;S zU9k_;Axc^KWCkn_i=D9oY-7qNPc{3T-AG{=+G$1?@xj}dQ#tg>|M#ViV>R!+r^{DC zXWqZj^&yp=u;K>Dhk|H#GGNhkt{){t zlg{{SBog8L+fSQjqYEgjxVv4!^cAjqg%2xo>GLM3mSELyL)L4U#&6;@=wT63tL%6@ z0m*xKle`@xRZRocvkb}eMjjf3Il)+Vp=B%Dwrp-7$R`tXK{t{e5|Q;YBO#+o-6Mt4 zuwK(vt!UWSVjbPyr%RU5s_+lv6u=b_|&x;#hCfU2c6x_L3@ znVBz{cl2_-yj^)z0bSV-4;AMP6`BYbb!k6dEa3das0csE?zvHWb*E06X09UhwwxDX z`lX?@53U=N+%dg&FEkTE&TLH#jaNrQK4(S9SJ!D*fu0ZpDwi=Q_e6YD?@^~yXxiY} zBP~xPrAt-R00R+^*@YsD)fYLm0YFPtUjBGUYEk&Uoxs%gnoqB+*O-7}v(1>_;z}U^M-Gh+_mMGpyQ2v=_JG;`rUQ<>4@V2d*5!V9i z7_#K#!=DMV;xiF^|84hJQY56(!O*}XNnxVYOi(H;kpjz$lODW&_vs(s-9JA5V6eHi#-KTH z`UPIqOpPcx?{;_412QIMf{G10q~>?5Byuk`=`Ye=D1(zLFZ7#cFlKMsue*5QmWMPK zI#urZ=6TzrrQK&c$hUG?%8?W13YprgR8g?i-X~%HX<6T*CsgW9#kMD;^}M|Iq+lA|A zloxLzwz3ywBXrNXLcXBrXpteOLSgq$pXD3GgWilP`~N zWjSQH5}x#6s5Nc^OASX_de*$yvS{qZ0xnHyOHdvPEoa+D18@QZQn)^HH~bao23wj@ z@|^U1hCSpeRR*WPr^9Z?RBT=X(w)o0I_SLx$^MgEQaYg?BC?*X++B2|rB{<;P`@|? z^0yssUlZR`z>B%0wOt?8U*T?GXPdK~dOCiL$_J=?aXGaBQ)gZG92ofQC=6Ze{p|Qj zj(LL7__@@cxYS+;vIMbvpkhrA)ZFi^wnWQ~>th3?i6|$w6&Y)oy6e1yG*52feQ>0` z{3Lr3$>c?d`cl|JN)l{*_qC;{#f7M^y7q_nUQ+vW>@sM+pcU3&JVBwyk3_44(_RQs ztVVNwufvKB(2e{%`+1RnXA$|wj|D#oxg+JRo{#Ia)n!|0E>g}U^8)Pk;R;Y*EKm7# zG|*Q?OLM^0$*S=F+_~VHktRk;L1$&%$XYtX3Tu%f;W+VMH~5xU@}!5Awr|oCOylR` zd#=lss}ofrEvN``#lgcP;#R1!_>rzo(>vp$#-_j$~8bcTx1v!fDdIW!lond zqlqhA<_iRa+=|cN2J_$qZV%KVTb7tuuZ%>t1=W%2K;>dvIzkef^xxl4Uct1Xt7c9c2=O)h6wh{0UVrmX>vhHsQ0ly%AL8g@)r4zPs~BkD zPDjSkR1Z$8@y@i+Dx6v9qq#PGq)fP&=J{mpeo`lP1b!%v-$ksXb3 zPEXRTf@?qk)Mjj)sXGID0l{b$Ut-6iG6h7&A{ft*0SEa&D8L;)f#`4LJa%{3P}e?W z=|4TIEmS~84lkfogWq1CGkaW2F6fbVsZh}Fa?*0K8j%zb(KJ|?$-*7x`s7aI^DhYT`S)y3(; zbNq&j4CjR7HPgfz93j5{9;xh-&e2gd%~W!vR77*-dZ$0)gi3>brvwkWu9giApLu2pv87ZNDum`E18?RJ4M zZOO1jOhgIuFT_`mim42hQ|93MJ7CnQj+c_C9ei>4#}icT@;?ddD0jRn?yz>9O71|3 z9Y3v#OmiW8==Rs@ai6vNIs0#eoe>B`Rel&U->F2!gAB8Tj=rDJy`A#jG>NB|Fa}7S zEA0|FjMc@{teI2sa-VH*oQm+!1U@mf6gomH>v?eOg(!3)izW z&hSyfwq&w88+>z7!*||R zs0mBofe!-bSI-a$M**})){15GG)cOtLzF?loTa3!%*?w*biF^Gs{dSFUMR!@10%+B)~R|`uru+a(%)Y z>rU#WM~Da3OJIvZtkpS=#ac;fXLI zbp#Lsi_3TimKq^Ldl6v`s{)20>*DiZXd~9vr`S35Pw__D5)rABCf#^D-WVXw7HsGj zm)GOlJ!9$uwOeuM#lN_BSG3aGXC^gOCJDZJjUpO5ps__8u+#u;FUVHs8UNgM$qfk> zc7^#2%|DJ!(gyp=O$ybPbnHmlXGvB~8)&jHQYAqoF(bDLBE$7IHh9|<~ioQA;r;rfjWFW=O2GtkSPu)lDH0bmdb}hI={z

    8$c=20WFAi82^9aNS# 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 Cp^{Dj literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.su b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.su new file mode 100644 index 0000000..f420d5b --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.su @@ -0,0 +1,8 @@ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c:171:6:HAL_GPIO_Init 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c:301:6:HAL_GPIO_DeInit 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c:383:15:HAL_GPIO_ReadPin 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c:417:6:HAL_GPIO_WritePin 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c:439:6:HAL_GPIO_TogglePin 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c:464:19:HAL_GPIO_LockPin 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c:499:6:HAL_GPIO_EXTI_IRQHandler 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c:514:13:HAL_GPIO_EXTI_Callback 16 static diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.cyclo b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.cyclo new file mode 100644 index 0000000..e21dbc9 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.cyclo @@ -0,0 +1,81 @@ +stm32f3xx_hal_i2c.c:535:19:HAL_I2C_Init 5 +stm32f3xx_hal_i2c.c:650:19:HAL_I2C_DeInit 2 +stm32f3xx_hal_i2c.c:696:13:HAL_I2C_MspInit 1 +stm32f3xx_hal_i2c.c:712:13:HAL_I2C_MspDeInit 1 +stm32f3xx_hal_i2c.c:1119:19:HAL_I2C_Master_Transmit 13 +stm32f3xx_hal_i2c.c:1260:19:HAL_I2C_Master_Receive 12 +stm32f3xx_hal_i2c.c:1378:19:HAL_I2C_Slave_Transmit 17 +stm32f3xx_hal_i2c.c:1565:19:HAL_I2C_Slave_Receive 12 +stm32f3xx_hal_i2c.c:1695:19:HAL_I2C_Master_Transmit_IT 6 +stm32f3xx_hal_i2c.c:1785:19:HAL_I2C_Master_Receive_IT 5 +stm32f3xx_hal_i2c.c:1854:19:HAL_I2C_Slave_Transmit_IT 4 +stm32f3xx_hal_i2c.c:1918:19:HAL_I2C_Slave_Receive_IT 3 +stm32f3xx_hal_i2c.c:1970:19:HAL_I2C_Master_Transmit_DMA 9 +stm32f3xx_hal_i2c.c:2133:19:HAL_I2C_Master_Receive_DMA 8 +stm32f3xx_hal_i2c.c:2278:19:HAL_I2C_Slave_Transmit_DMA 9 +stm32f3xx_hal_i2c.c:2414:19:HAL_I2C_Slave_Receive_DMA 7 +stm32f3xx_hal_i2c.c:2523:19:HAL_I2C_Mem_Write 15 +stm32f3xx_hal_i2c.c:2660:19:HAL_I2C_Mem_Read 15 +stm32f3xx_hal_i2c.c:2797:19:HAL_I2C_Mem_Write_IT 7 +stm32f3xx_hal_i2c.c:2885:19:HAL_I2C_Mem_Read_IT 7 +stm32f3xx_hal_i2c.c:2972:19:HAL_I2C_Mem_Write_DMA 10 +stm32f3xx_hal_i2c.c:3118:19:HAL_I2C_Mem_Read_DMA 10 +stm32f3xx_hal_i2c.c:3263:19:HAL_I2C_IsDeviceReady 14 +stm32f3xx_hal_i2c.c:3389:19:HAL_I2C_Master_Seq_Transmit_IT 14 +stm32f3xx_hal_i2c.c:3503:19:HAL_I2C_Master_Seq_Transmit_DMA 19 +stm32f3xx_hal_i2c.c:3700:19:HAL_I2C_Master_Seq_Receive_IT 9 +stm32f3xx_hal_i2c.c:3787:19:HAL_I2C_Master_Seq_Receive_DMA 12 +stm32f3xx_hal_i2c.c:3953:19:HAL_I2C_Slave_Seq_Transmit_IT 11 +stm32f3xx_hal_i2c.c:4053:19:HAL_I2C_Slave_Seq_Transmit_DMA 17 +stm32f3xx_hal_i2c.c:4237:19:HAL_I2C_Slave_Seq_Receive_IT 11 +stm32f3xx_hal_i2c.c:4337:19:HAL_I2C_Slave_Seq_Receive_DMA 17 +stm32f3xx_hal_i2c.c:4517:19:HAL_I2C_EnableListen_IT 2 +stm32f3xx_hal_i2c.c:4541:19:HAL_I2C_DisableListen_IT 2 +stm32f3xx_hal_i2c.c:4574:19:HAL_I2C_Master_Abort_IT 6 +stm32f3xx_hal_i2c.c:4638:6:HAL_I2C_EV_IRQHandler 2 +stm32f3xx_hal_i2c.c:4657:6:HAL_I2C_ER_IRQHandler 8 +stm32f3xx_hal_i2c.c:4709:13:HAL_I2C_MasterTxCpltCallback 1 +stm32f3xx_hal_i2c.c:4725:13:HAL_I2C_MasterRxCpltCallback 1 +stm32f3xx_hal_i2c.c:4740:13:HAL_I2C_SlaveTxCpltCallback 1 +stm32f3xx_hal_i2c.c:4756:13:HAL_I2C_SlaveRxCpltCallback 1 +stm32f3xx_hal_i2c.c:4774:13:HAL_I2C_AddrCallback 1 +stm32f3xx_hal_i2c.c:4792:13:HAL_I2C_ListenCpltCallback 1 +stm32f3xx_hal_i2c.c:4808:13:HAL_I2C_MemTxCpltCallback 1 +stm32f3xx_hal_i2c.c:4824:13:HAL_I2C_MemRxCpltCallback 1 +stm32f3xx_hal_i2c.c:4840:13:HAL_I2C_ErrorCallback 1 +stm32f3xx_hal_i2c.c:4856:13:HAL_I2C_AbortCpltCallback 1 +stm32f3xx_hal_i2c.c:4891:22:HAL_I2C_GetState 1 +stm32f3xx_hal_i2c.c:4903:21:HAL_I2C_GetMode 1 +stm32f3xx_hal_i2c.c:4914:10:HAL_I2C_GetError 1 +stm32f3xx_hal_i2c.c:4939:26:I2C_Master_ISR_IT 25 +stm32f3xx_hal_i2c.c:5098:26:I2C_Mem_ISR_IT 22 +stm32f3xx_hal_i2c.c:5257:26:I2C_Slave_ISR_IT 25 +stm32f3xx_hal_i2c.c:5397:26:I2C_Master_ISR_DMA 19 +stm32f3xx_hal_i2c.c:5545:26:I2C_Mem_ISR_DMA 20 +stm32f3xx_hal_i2c.c:5709:26:I2C_Slave_ISR_DMA 27 +stm32f3xx_hal_i2c.c:5853:26:I2C_RequestMemoryWrite 5 +stm32f3xx_hal_i2c.c:5908:26:I2C_RequestMemoryRead 5 +stm32f3xx_hal_i2c.c:5957:13:I2C_ITAddrCplt 5 +stm32f3xx_hal_i2c.c:6052:13:I2C_ITMasterSeqCplt 2 +stm32f3xx_hal_i2c.c:6105:13:I2C_ITSlaveSeqCplt 5 +stm32f3xx_hal_i2c.c:6179:13:I2C_ITMasterCplt 12 +stm32f3xx_hal_i2c.c:6322:13:I2C_ITSlaveCplt 26 +stm32f3xx_hal_i2c.c:6538:13:I2C_ITListenCplt 3 +stm32f3xx_hal_i2c.c:6589:13:I2C_ITError 19 +stm32f3xx_hal_i2c.c:6720:13:I2C_TreatErrorCallback 2 +stm32f3xx_hal_i2c.c:6758:13:I2C_Flush_TXDR 3 +stm32f3xx_hal_i2c.c:6779:13:I2C_DMAMasterTransmitCplt 4 +stm32f3xx_hal_i2c.c:6830:13:I2C_DMASlaveTransmitCplt 3 +stm32f3xx_hal_i2c.c:6859:13:I2C_DMAMasterReceiveCplt 5 +stm32f3xx_hal_i2c.c:6918:13:I2C_DMASlaveReceiveCplt 3 +stm32f3xx_hal_i2c.c:6947:13:I2C_DMAError 1 +stm32f3xx_hal_i2c.c:6966:13:I2C_DMAAbort 3 +stm32f3xx_hal_i2c.c:6996:26:I2C_WaitOnFlagUntilTimeout 7 +stm32f3xx_hal_i2c.c:7036:26:I2C_WaitOnTXISFlagUntilTimeout 7 +stm32f3xx_hal_i2c.c:7077:26:I2C_WaitOnSTOPFlagUntilTimeout 6 +stm32f3xx_hal_i2c.c:7115:26:I2C_WaitOnRXNEFlagUntilTimeout 13 +stm32f3xx_hal_i2c.c:7192:26:I2C_IsErrorOccurred 17 +stm32f3xx_hal_i2c.c:7333:13:I2C_TransferConfig 1 +stm32f3xx_hal_i2c.c:7360:13:I2C_Enable_IRQ 15 +stm32f3xx_hal_i2c.c:7451:13:I2C_Disable_IRQ 9 +stm32f3xx_hal_i2c.c:7514:13:I2C_ConvertOtherXferOptions 3 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.d b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.d new file mode 100644 index 0000000..c2846ea --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.d @@ -0,0 +1,56 @@ +Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o: \ + ../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o new file mode 100644 index 0000000000000000000000000000000000000000..4bbcc1d077572b5ad4ea7976168b1acabea93ba0 GIT binary patch literal 948744 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�I(dt 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

    7X8d&YE7NaB|M{ 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

    DfI3r)yC5wWIUl2 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�%(U;mi;r2_QAhhPcRGeThYj6PNf?5zG*I&*^bZ}A`(tbZ^GEJXhu zZK|RAdTRVUr$2rUoMHOFzabZ{x1wKFiqIdSo|^OeIIS0YvLRrd=^c zuXzTR3;KI>7GKmaJ__+z{SK;VUeX`pz)+li{{xI&)(;o~yQ1IQhOq?wX=B*Crq8

    p})HdSf+lAQb}3*{Wn0&)|XMfCrAI|F<`lR@d8-L)6da$CtrVo3gHEMJ1Rfj z(jT#fc%l9bWo>Wk<9>i#k-nUYti}54CUCbzKiUkIJNigH1WNU9?gz08#OvmO|NGeLq!j>h*F8f*bV9jsR=Y|KkhJX8nr; zP~D=x^bSCWK9~~Mo%)aHdFj$;@c_E@eN?*X(N9pA-K($Z0Lvr&w^Q(JK)-@AJcIgA zR>R(7{jZOpWk~9Mg6dg)Ce3zE@46c-PxZs@kb9;d8HSvrVS>^dM-9>RQ8^hVDdXvEU{I5-o8i$0 z01v~z^(SQJo~%P(*L5o-?@L0!x_TZOZ+I z8}3r|IKnVa*|aEwM>|}KHuQf25MvmlCAeU?Ko{wY2G=TpIK$c=fXjybc8tXvc9+3I zg5i~CAYL<6QwA&1V3h~#x?yA^>*hNuB7L4`pO3#`(x=y~X@GNd1XmTJS?JrHXQ z&yHg5wFYYnqUsEZgHTp)_=WCc4TilhLj0a#V+gD_8hm5H*<|?s2*#QX=@jU;7?yqy ztkW<-Zwqu8&N)D5w_%PB%pSuLx<&RHJSivFXShKJO22_O4uMAoYkKWzz_5j4_Cdo> zi-8Rr-t)rPh=I8rVAQagde6rUYySo|ZgBq)PE25R;ouX4pdQ32gPK}1rVaZF0A>u^ zKLYWoA+!*No*8D=f#_(T_cOpz`yDRUiMq*=61sVrv!|7+y6wRHy`^->a;&;zxOrRJ7s^7Zc?Z1 zH566)*{>^yoWFel6(Ixc!(?DNYrpC_XbG}kwE&zU_6!YJLhXNU!^F+3hcD=>7VdE3Cd4BhI8+gfc8K+ZgBKm9zQTIm zaPSBQXPQI9^Kc^FVH;%#ZaREI0bPcJ)f61ebO`H)>MVzHiqEng&VCAIISyr?V=UL< z^d{)cbC7HYOTL58HfSkuu%%kaEr)?Bs4jF^C7>m6uyz8=9fydGaH-Vc66HqA9KJDu zmU4%mD63N8aL)$BN{98fm{FBORx%7#JGfIlyv8Abg0EVK({v)#Ief7ha(5lhy$qIm zhmiN+S%bsozaV$d;Xm4U8y)&^uFRviV6V=HWmXAdm#cjL@BEN+q&LH6@@s$722S^>)DBx-!y(o8Yc zm)$Qx=T|4@gJ%eW6DXn~iVeh{ zCqhaxF$_*=fE9RTPPd_7Zt?^g6d@j%uF{ukI;t1xJw)}MW1ws7Xg}1}Q9@rAKzSGa z;X|MpsscdS!E^@y&a_vc)8WY*7~RF7q|DbJP+jwzE!0c#t&~oaBWI~`&Sm}!)Vb(7 z|A%VO+~!}TE$!HR!6snt^P6+Q?lIq=uEw78=Tp3Je15Pgw0h0IMy*!9^B*pSrOx?$ zxbrQ@4!Xa0JLVK7In?1;&r5YH-VVT?OnF8t8W%qRvClY=(h2>>??=MIBjfhdU>Pu8_#MEY@v4tt=&|vq^u!Gr z-&q3-!^Zqb5J!w_X(Jvr=J>u`uyE}WuUe$_%Lr81iqX44zy%?m9zfwKeu#s*mD!ecB595eZWa!c+e{z^FE zVNyeR`(Tp=bQKRVF=JvZ)WrV<2!xxcy`ZerL~;nA%p`OIpxoreWnif=alQ;tX|nzd z#H&o|XJM$?Wd9!^)|kA$5S+Cp656isnjEG(N4<%jBG?9#5c(0MdnTW1A=hZ~A|*YW zOjex&XR}EfHCMHmcpZb5mPO%C7`wknOZCLoMU&OQ+7|uS46I|(5JmQ#i-w({x@*xD z>Wk@K)JzA|@S-VNmyt!6s4z6TD2&QrV~gg^!)(VF)eGR+#G>Vt3wg50I0DKh7j^o= z-przQYPg$SwDvV%bBkX67|Nb5dUrQeKU?(LdT4Pp4cG-157X}{SLbPZ>^Bfkn?BhG z7C+M{y2<;SI{d#c#?(MH^e|KO24NvhZK#1b!ZhR{wQ zn&~*0ZM<19CA$;M_RfIin%Q#{`Xrjgt_0_Gv+7IWOfq{wr%bAuTN=i0m<9d;fiyF5 z9;~OEHPLl6!z}PHK&Dy9tKiHs+fA>cWSd>0^~^ELdJ9;wnF|%OOU%yv0oA2u@BhD> zz$_*jI?K(fc7UbA>~#ywp~}pr8Z6aju_rNBV>V+Cowa7WOTkiSwtp{(^=5xMLs^5_ zcFG6bGZWszf;5`>{|KzvEW``Gw3rP|L(6@$s#|cP%`ANlum@(d0*pO0`mlZ@{{Ra$zYz>A zG3LE=c3dzIr(D5B^KD#=#hP=h;PoYQdrHK`neU*9T{hoL74<9Tv*#gj)x7N+jK!P( z=!&rf^FuXIcEfyz5>;vDo!c>X(|i|2{Tb#eN_Jc;?>~SB^V}~m z)@a`JH*_|cze6Wwv-vSfwYQiD&=2I^H;;>k*;eyVs#~|2d%T6Q2j;t9hoOh&5gN#~ zn{yihI?NB60(6>3mxHs*{1QdQ-R4W*0cVf-n^Yz2HUIA)i1(QryMU$NJf56*WNx$p zECc3~yRpcF<|`>(^4Prb8n7XAZ+AE`Y@YiVQyDSmFM`fd^TZMm$IM@^1(-1Bi6QXB zJeFSSm^42_`OPWwD0&TG+Wh^sP(5RwPer3y^X-3QmFCR+#L7A^bC_VaTEq?a|XPSkCQoQLF zTPZD~1ScnS2dCMY@ItFfAYJccj_|+I=6&9k6&{AnpeG~#!7VHdwY70-wchp*Jw87Y2iz6NoueWfCf$E1A!n+V} zw>W2j*-nd3Xm9PZ_<|AvgBBmtt65JhLh>LmX^}@0o3fDiVQkvs*NY&|SeVHnH)}Ec z|3$V~V+Vn!7UzwzJkKmrm%+NDETyX}Uo{q~)bU zAVynmS_^v@EDIk%S*&I263AV$wD<&AoaNsAV7X#>Y7YeBE#IO$$~8+H$^s`^`cY(j z-O`805R9Hy&rOUmNuK=ZocK3 z!%$XWd9VV+Tb2WB!BU9M3xFca61wkHSw5h=Z?)ycEfA=&^z8tswJeVUxNDj23{Y=* zi9Y@Y%VG*3{jD1573w&v3@XheS^fA3Ald3=+5l6mPEmM}YGtPacEjqjDJ-N}MLvT- zrqwiU0$ElUXyeSbs-nVIj+KWwIPmnd2rvZ^=+3!_$lhd|4?RbdCf zgjMM-h`U?Q4}?7r>mA!5?rFV^F6PIrd+7HbysWQ;L+*sN^`EfkZ5>R7^+4-{M2wxW zPN!r3to6TskPEV2Oc7a#b+H-(k=7<87iGPWp518cQTpY>80(i}ffZZ7b_@1OtW)T? zzGMB2GKHnq<)Lu5%sQA7W98O@`LI`EeZT=aE3FUy2dv84oe6iVtuyH>Q)A892+msT zbS32KtV`+saMzkU3{Y>qc`G;@tOuwouF+aWy_ikb@3n&1Y#mC~{TAyB`vLA-AG!o$ ztF=uySlX;Vyaw>l`c4Dn+O4PQrru%QNM(&q>k|4MsBUZF`v5)GPpQb!YyBA&PWr4f zYQfTP?Rf*lN7j4NfDKr)Dakr$eUdVTkF5)+elleJK^(+KtTn#_v@M?J4e(&`-gTJD z!^N2|0qa|wR05qNi;tB-V07`@l#3i&Jo-KS9ACVIBHYQv+qQ!^wfJHKh|`N-I0y?f ziyzS2=d+71uYma6VsR{pZj1>p2zWCV(-G;z==6lZNk%Ds)qEK-FJrb*3}yoiMKcDe z)*r+8haSbNjA}Yp;u%cZniCj7bCA2nxI+<3B4h6VrF2FsegBdetEo#ZnPEoOQy9xA zQ<%zdp!pmt|qi2al6MDHi29tqn=J$~CE$!az3@6IKbuf;rG1kdw`WRRj<4-ESb~ASW47nc0 zJ~oKGjEz1Z_AzP_0s0x6o&)g_1O5&xLsk^?Zr*!?3|h8gSW2pM76C&9r{ zMo9w3#u%AvfsHdJUxd90M(6;rCyY7@9i|wG?O3{L2A4Qz7$FY8W*Pq-z}OtagxU|D zGXB{Dxo3=X^mdaY^Y9^9aAIzveiLWrMf!OI7v_HYqPsFp+<>_;4fO0DV}5ZKM0e&m zMdBXJqCj}<$sBnRD{-8;^8{GDnA<7Oe1h5R0_#3Z+f%0RpF(hyCEo zX=dAcaQZP9yTgJ%(}`k~0A?~RPZ;xRHRQsX?|Q>t1k-i{Jn5F#yiOjuj5V+3#j9#BhVqT4c*<|MURydKu zY^2V&RHoTHD7(S@l&W@V%oolLiF|(Zx(^BS? z50sTLH~s+&<;=fnFQ{N{E(A*@v&aP2tC;;1XH_$Qege)Krr!WSBXg_-#3ttcjc}=% z`J6w9EzGnq5L=l>Ye8&dt{Z`a515N7@_5M1e-UHt%q$8EJD59%A<)UJ$O2~rvg@q8QoTkyKf=3k1C%55I32B@|<#{sCdxj}XEI-5ODVBxOK z{;S}ux7pectieY2HNZU^o(9SqZN4T8O*WQCfi>H_;|kDX(@FO3+tg9=sMTh>3if(z zZu|q)y*3GyJbhxbHXOuBn>(#gHfJhPuq{E zP;=aN_ZMRSoIm-4M+Fzn=bE%6t z#&-S7kh@?TKo7%3+x<@gVr~2HLhh37zYM4;#DUos+XwqGcHh>GDu}JN-%{0}$F}hU*z2{;pv!Wft@t|R`fZyiNPJ`) z^a`*iwhwwBK51J>`{1Y9uE-9 za-{FyCDy0TFdN7Ef^rv^S?kS#U16Q4jAs(-xw{ZgW^I2C7E)MmQol(mtCbSvH&`k< zV&aE*7LL%+-B*iT2aI*p;tVLSx+hJUc&nMICS1&eMimH zrL02Qn#))Td~lYtQbizEu=W}tP|2#NOj{M}Hg$Ydvkp*-w1yQz`IlN&|4R5-$7=c* zGrG$vwSbm-*0&FVHL%`Vjj?;IA^HFsSp$^HZDRQh!+JBzQ49+$tbgjjd7pLo3P3CC zKkB(}W0g|+?Exz_3E&}%dl|%b7N1gO9jp`Km{BKd?-m&9Vh#90SvTuT>J8~(T@gZ{ zm-R2TcJ;9~#(>z*TGbEYBUZ*?U<0i5O>k+DwKNFWV^(YlIEPq&Isy!{giD}vge6=G z&qi74SzsAs6>Nj}IIHAq$W5@gDF9Dc4#60kWc^A9`xI-_pKx%RHALCo8P|IW2vi?u|4lKN7yEBFfD>#7>NNLe$53$T!;U-v zaFV^E3G?%1zncNor`VHg!E&1YC&kcy?8Wqb_h&~Nfir-e5eg8<{)M^)&#<$tVdyM- z12qQ(v6b%u3uZGZ6%oQ-N#DOvb~T+c=h#mvD;>rbQxjh}djT~mMzA+hZRq5y~|vo{$am%>ht zgV|Je;|S((gRP=}`jEyBrYcQ3`^WzWib?h61p z?3eZfKzt!+wRmV)kqR zrdh%^mP5-O_TJBcm9kIKjlGP0I0#rd`|;ev=&29Y%4p<4r6WXLv)jRz}`xa)I)X%WhC0!k7-67Y%6z6vy;8I0>m!1GbQx9 z*}qWe*TW8?rR!xIQI{cpN#IkA^|SZ?|L9>~Gy}^3dm>*|He7nfcDN4U$QcTQ6Gu5Oy8t+GhSp=voH^ethf6M; zP7hdj<)nQHPJhn*1h52f(&$~8K+dOU!Fh)Bgf`r>oQISF3F5d>c{G^QMVIUl&Z%g) z6w2Aj1@RoG{2+9OaekP9TsUVVT`eOxla*jO&+(!+G9x+Z7GR0u9H$PbXijr2tjBN^ z+2FjuVb6ovi=6e8JB;P95@7EV$L&ps$8pwt0M5&t-WY%@9II;}UgdmA5p_IgkZv{! zoaW;YzsC9Ybr2IdF|J^_&Y2B{vLsH`1At`CIl3IAa5mDTpUT;F8BW~b9Hs*-jpOhD zW9b~{TOi)#?7In&!8xS>XC^0>9?UF`J1t~3=LO1}=5UfJbkF7dw+kST^D`x3^Eqc@ z0SY)uidb%OKKmNtg`A?Fu^_iO63TKEaXzRADCR6wYj&UWPy^>%IkEK^YvUYQ z2-OcbX>-6Ha?*6L*UnKhptFM`d=JD<&T`5NcX1M$p}LzBN+tdtPH7)ldO5-G0qf&5 z)1%SP@u0ShN1W$+U}%6dQ3SJt96hCgA9Dgaz&XUJpc2I}M?|sy2NcFfe z&KRZ2#yMvw7M|ev(Yf-3^FbTLCpnACplph>)da+8&W?B}o8fd&tzec@8U~g*&hM1f ze99T5yY@4VO$xL)a@{EZd6fIj=a_>NH}WeOa^@ahk1-eSRUyV)xkc8HbK`a%0LwA% zItf_ZxwZ68fd^OU1$&-cV;>NYb3cuT6JFfP?eOyicgJeTd2{Dvzp3{)Bp>oxwLZqWD+1sWH{Td57{|SwgR#q8W6Dxp;U)}2 z%T;b)IoyrsuKOFFC2(J*evxZj8MSpMa@#5Oc%6Iw7RHjetSzvR%uRm>T2iY98z1R6%D_?LHaHDU7^A>jnEo&jS*&3X;xnFI9^&)PIJ;sW;!<3IK;oiTG zu{&H#6n+<$a*zE7du7};beAdTuK5O_f?G(>OC`7M53p2m-?M~xH8*}7#2W6&7!Yf@ zO>|?ZWP6qCHq_rBl%|K@qJvooj6nVBF5k)V(HJKklq-@QEuK~-^ z^#2P*U(Ma~pzEg@N53oUuSuq#Z4J=ueuc(?nkOYt8>D%a1}=j&>$N}`q8XS5k%nrr z>Gj?)&9m}o9Im-R`OguW1Fg`}NX_KNARnc9c?jgAHS;?`>M@#D6@fWcbAAqLziED_ zMBO;en<2m)uUR<*jT1EeX-`kooTYW2q?t=^RVHgr(G|rMO?UDVrfLkSfKAi9FM}DJ zu1Th>?F>!hWMIzJY@&?IEX~Ik&^TMug(8$Wnql;33g&96(qBHDr&)9zu=yH1zJZo& zUe5->Le1dyKv|@5C4YCZrb{efOEj(DfMBVn#Ybpdrg^XiLM+#~k!4t+Io=zxtkl$} zJmxCR>76K6Yo5_AUZbhK4+Lv9%D=#6ou))tuwJiuK+)$0O-pYS8#Vp=qH&W(^(}hX ztZ|~p%v&^3f248V2cC~Lx6L4UqG|922%c(M(e=eMjXxdp&o$xgf$~Dre;A6F znvlboiC3EbX8?Px@uW+^H=4HO*S*!uP6Wz3O^cg=z1LKvNa`=mbGozXp>384*st0$ zUBSAi_Kh!Ky|g<>z}{N(GYFWiE#?Bc9PM>~^w3A!lYWxWS6l5j)cR?EBoo_TTbH7q z0oo)A{|9Pw$X^IHi>rl46U>awVB$SUs24` z?sb7Iv$g9&!DWs%#1$RQ)w(o5F;Bbmd%)&vg)~UEKzsfv8W(Eo-2~<$Z75}|muh#{ zLT#B=N5}OFt=R*@uhh<~1*unQU0Q=~wRS(bRBNltl* zx-31b{b(7Oozn)>em}46or?Z0YG=)dWS6wZFQIl>`?3+}u4pHao?X?NDGB?hHn1iL zu4$k50GI39-E;!o&{}d(+|>5ziQaE%%hdw;ZS8|PAitySKnaGs+RSyJyQghf6}9`? zJMU0?p!Fz++Cyy*cd&k>O+Ss=W9|2UL5L^X6-UtcRJ+m_n9sCd=0M!%+E^`WFSM5P zsJ+x4-ic{_rOmhkg4fz(GePi1+k!^>R$GjMpLg1?&q0>=+Ug&p@h`1~+=?E$X%wpe zs>>vYwWqEtUEuZ7h0O!3w=U`cddSwbq6|omF19yN`sga8q3EmIz8@(4bU%=u_1C?v zfO#39iz5elpl%$c-v;Rt$+aD4vG$I8JBuMn~gyzE?o^yRO_?5KPcL z34rhub#9bLnWTF{!SZC?5_%jvMYlQtwW+#(olu*m3!VBf+ z$}HX5;UJ%_n?fPt9NjZ=0p{v{UJr5S=_1a9e7;Uc4+IwIGRRq9sQa`R8W-v2h5}`= z?iV^HmgrXehQ_73C-lZ;nXdO;h`U_ZYXk&bp?gh#DRZUny#bA@bjQDh5UX`#L=dde z1=HETRu>!tx^=o42Y|9(ccwoGHt1AzL~hi%eu`p~?lAqSw#~YSWTCg{nuUUVt8Ppv zm~GR|RDy21E}M?>9Xb>JoaPT*?Zs%^sWX3qVwdjf*N}6!PE9B59^LaSH15@{qV(xL z-M|3Q?bj`!MC1Y8SLwh!s5?vh;gIgDp%Cz}?uIv};D~PCCKTiJy*dLnUcY=NFem8i zmH^L5`io@lC+k~lKrluBZX{5q>KDy`oYVBNtpJ;$pEea8&C_%j3xLEH&*_b8z*OYZws%PY)F4w=Nvwwv? z=m^MH>d#U3V70zI{VZmU{##PowfZy7LAOqy9SxNAdcToiwn2ZfFHkn>8&kr2lYaMU zplsHU-vDv9=tt0n=vMuEvJBhw!>ggA?fRPy0NbIT*boGN=oJ(+?bKHc1LiLMmore? zt)Dd%D0}pl=V;uk|AF2t?9(^@8IAk(PZxmhq`oKJDxA^Zq%`kY{rv^NJf}}B3-a^& z&T9d?pzlmO;G+IG#l@HO!UT|C)-NlM#;f}I{-FC)zb^>IHT|MDfL+(`6422Ny+6hM zH}yU@Anq;w)!txsTfdAlQFrt`x1e@cKc1}OJ$);>c)zdr{T4hQ=torq?4jP3URpfT zXC6i4W4+-WM0%nxSsjf}^&gWf_DrAF0L-52_Z0Dtr^})D`Z&78`b+;A`8_=h7b#8nt6>N|jO=Ofng*V|4I*W! zvJEdqaLF-LC&SXm@cVt#`WnX3FBAo{)VB*xUm6-L6p%QXxP^TJO>$C&}-$v zhC8kx7-Hx`=6jVEK1L>k23)8Yco}uzmz~&onr-A1JgA2V&UuX!sg~mmO z!?YZW4XrkV=MuxuX=q$(DCP~xmKmzeLVwE*FS>%u3WK#RU@Hx&ThX}6psfnJ)rLdl z_pC7-`3Q2ZGkkRdnClHGq#>IOpU}l)hLtH4P5>zbC}MK9=IN-w0ik2I)(Jjg-_%UdP4IQ6%bJP4nLg-fl5h96z?|aiLmA|$zQrh;{lvE$oy<>ty(=4oLYEt56$j{7wSFRHJqhdY@(- z|0#G*H^$No&M>~BpXALlM$(g5u;={aB=c>=J5#@$xH z4jD_)(}g3(2j7C(QDf<2=;4^Lof);`#%=U0`lPW58G%#AUT$bSZA`C;1+Y2Kfd*7n-w;eivo~w#m3ww;(CBKdJ z1Sco*`zpRHkA_N(Jn{MQWlHJx5_Z!COK-vB6R^n^es6}Ja)hn3&~G21%L_F26{^yk z#(sh?9T5G6AK!p_fDqDGbW)8M{(KCS6+)SNpj#du?ObL{Mig$HDFi3G`Bv1w`#(fQ`hbYd{;to~pr`v^LianpB7_Nv!Rz@{R zk#rG*KBjQK=;Wlz5!ccR3=rLsoKX!EOP_|gqs7%Bn7Z-e$44Z2&OdQ+1>4YU%J_v{ zP@v!X2gn_bi0lsPChk?xck_1-K-BKzxxnc*eI;Hoei&1CXRi+b=`CO!5T7Ge9H8`}?%>n;bAwl5N#%VQh+Mare@9ke-MSF*;TFBP9WIcR- z-Jep&nKzc=Gt2TGJ$AcC8RqZ8yP%g}N|MXdQ>aPlhiswZbrgMtM6yNwgh;yd=`Vak z$=m_LIa<|0!Y2MISQvW*{frfYmjO0G*oFKUn`0s{2}N{qH&LK=ra`ig=udJ21N?baw^$VMTT*ilYiG1(4?yjVVKaUh&gD&|Oe8qi!!Mo>MyYlA;dZ8OO)xd0`_)Q#Ylf>JfqQA*v(gtvuBG#na*12LPS=V`D z1$u}!U+ks>!3uG^6S%AteMzHNi5Jzt+$^Tg1?Cp9Nhpe~;^|lv+eGOt=(dYp>Hcwt z*wO>FKg1H*n3tWR*H;j5mss44+F@}HJUy>^l&*Z|C_Pfq!(8Qs48Z0oU(%DA`O4U*=;(-YdubF$mCI>gpH*%g0%qrwHz*l# zP5J#A5L{Qrp9T31(RAy;kmRh2o8}ZgGt7t@8UlDE?B0 zQ{eI|+mr(?z1Yt4pzFS3SdXrnF!QQv+^~;`Vup5MsWlGsRzIw zFt2ll*UF6DsWrE1+(zm!|~*G+w;9qB;nC+(OFk@`#D?*VLpWT3R#KCbo+ zi>1CIP?kua+y(hk$=Vs1Nb~)O9+pd+P6D=BicAJj|E*FOg?`(lQ$0~^mmaso zg!~~L?FVK%r6oUMD7&Op^bl>gbeib)NNz*H<*4N51k7X7?H_=0TzW}9^$BUp0f=-` zns^<|PDxv9qTADwhXjErN8Jo z;%(_sTl8>8`htw=U1?hyYWJkDqY&c0)HehoJ&@{?fDa|X41!0}PYnQjELqE-+ow`B zdN=n>@|%R>xzz0yFkeU~x?^@Q2dV~2|>fnjujdX7UxV)9xQ^Gb|Jyir| zj{0J6h}1`2s|is0s(+<)e?N71a%cLh57E>ORA=l1${_Wz>8K4>&!ia~qJBY<)ll`l zdnksfuT2HPZ1oi*1e~K@Na>uV>WcR%E_LdmxaczQJvzGYa&igCpSZjwzu>J){TARd*mZ3ejCQPRvz-uWw`+Z0 zz#h6jD+Rh&uAlh>_TF`PeRR~z?P7P3_j6lLvG5?b6Wc&O#qEe22~JeJ6_|V7Iz@r*y_?%C+;NcuTXN7)fIq(a0MeMdl*RYiLJXZf^M#1zV7gFP$k4c0 zXcZ3ZRf1DGYHNf|{n zSIea@J_Y#-DR3xiE2YIsV6Ku*>QGxP{oETetd)jT0<-nfFRy@kTymZPAx=o&P&j&0 z@>vXKr{D*oc3RSx1LhfNIe9o|rQY<+?3}dUgyOt3j0C(O85e=zqO^@(0bP=Owt(4W z=V$IHrZ~sa)0wHxIiI68&3VHWnl$IEXf!TxRwkiwrStM{!FrXmhMdLC&XYXR-xlXq zl_BR=XHU8h-sW755OF(8GJ@K^k7^6_yY(Ixfds==&*aSOX&TGyVM^&9ChEn z8pSd95K;z35Th zE6=sd0ekJKq44mH=a8Qv=bmB~3gwOz>rMHi)5S_Q1nhFLlJpCo>%~Wu0QvpmzGPs= zl(`0o zfKS6!;4;IfK1b&g!^6a{5;QV$6jM5Bhm zKxw?>24rZ`fU+xTKUo3&tSiabv|@3zG`smZKAQ(i==Sq>^gi>826QE6y-9zC_{-ZA zB(*r(1H*1Pu|I@q^>7Y8(_2y|Iy0ssWX>8K2+XeE-a}vCzR1G&Zan9N>(K}QMQ0m5KPH4hYW9)SHQ;c^$$Mhmy; zvB4N2_!Us*39*#`TPC!mRLMHw+7NKrCV0@nu~%3Y0@!h(H7)1~!Fn8>o)mPuz~z)6 zcEg}g3p?%uc19Su2DP)o;0GW-CzPgJi1R{S%FkX9wogQHQBZUO$|Ye6nZnD$%lhc= zits6=sILm!=w9Vd!IiwuYeIt^fL#}6szGo=i24c49td+{Aj>16M>+KORQRX@8h=&1 zi3UoxA|VRKoa}k2FmktcxpXFru-hfY3vBneI7gwAy)F`YCHq{0YXkAHOOsP5j<`6} zt@lxv6O+K`n9F{;;yUi~WIq~DyOc^p;~AIz=fUi(%SL)DbIv82mie+vUkY2UxZGR| z*j1OsXTj{IOZpa&-*WNw0r_ng18M#pmo&;L+;wS3q1PjqvNWj2E=ww*_Qb_Xru?ak z2l=fpU7T{z!z-8DYCUK{q=OMNNe89^$1-=^mgq) zhP|JwB?uz*ca7f&AqKdfqO{sT*H?7!Jk0esN}UXMP5%tA5w2;~A>dfo?vx$<&DDt> z}LeiFf$#}F1H-oly2HmHpm-GQ`o1hd>wGF9-_I7&u(RIdp zKTv&jlrDMOAEH_96ww*&nH4Dx%CgYe_5F;G0sXO;EBO4>ej51n5LVJ7wQM12Bzo&F ze7_Xk4HjN(2F+;U)G!*K(16VKRN*%Ht#c81gKh!Bcr-2*%F!M1YGLLZ&}|g5=>`36 zVF0DB_XroVfwEWVNgMm9a5W3-a7^&*irR5OPl4D8Ved-_bWs>f_XC%NnkUf1Wx;tC zdcPttYP>E4(2L=0#aePsauhcxtJ+8L@qP5rS25}?c=l6>bQJej^vQrMLliZqLx`b@ z7iEDtOfjx3YQq)UmLM3RSmln|SjEGVfK5=0nFb-IDW=i8oyCf8=-PUfqEug?tW^}J zy}n*?Zy{hC6;(H*@vtIkH-tE)DA(M+sC_8F9x1G$%e7I$!G;iEw9tg^wZ;fh87RgI z5eq;%S$K94wJAbF%I8iMc1}j)JfZ1xkk1!pR!42QP?}Ea6@s`6quC(bqcz_s6sNS; zCZQ9#Lpz0!-a?#R!kua8Xt%HxxiEHEXz&_5j|eyDV)%>@*$c&4VJ1D(I45i*Kj^#= z_Xx#xVHpW=LulCs1UH4yy}*1Zd^{7iN5T|3RUZo{=%MZtVGJeYo(f;q0o^kpD+s+m z7fSX6?1hj+@y|;^-4Bhggfx0a^jb)#CtGiXFX_JTt?)-lNcK*sIvyzRh1&GM;xC~R zrJZ^xd=~=cSH z{S@IVfzn@Leue27p!lf{xJ*`}!`>`!)9 zq4g4N8*=M?aGxWT>PgEk)anZXb_i9^60%U|Cy07eSV2E~dnT+GZ8W3BCPM)qD|V#J z_V1!!9n>a?RhNQxs`z<7NH$Y^PPb!o#na>*EfC9^1zUfqd(rUOc4!+8yOHSh^Ipf$ zV!cG;YB9JHKEKk_{%h}Z9MFY|spJhVSF9#WvQiOF!Tf5);WQK*6w7~twc(EV@BV10 zG??DGo94%Wu*SqQAn4qz3}pLyivZ|1Rp^}UuBN^7L(O!2|M832z|0mdQ-3+a&=#1f zKEl}Us0|a2(L<);f+hhhM+iqYVQ?dbl9XcoUFgKXV}hWs2G~mBlZ$|@7dn5A#zR7v zd#IfiGU>6>Eg>TwJvLuByf=!p4JOn&QhuM8td$jo$-YdH)_T z2<(3cI5l?A50PqZn2eTB{Q5xTkiUZQy?$LfFC!*gf{0N~>AENS0X;Qsc+ef)#fDUb zl$M$FtgGec&C&AhV7dw3F8oAEp?$&=I#TuvXKRD`8DUxk@XiV?{egH+INul3c3x;T z7Pafb=dpm@5LPgB_fQy3`K?F7c*@N`7P2VU_C&bY2+W=ecmD#jXTtXs$vqdYz6X~V zLIcwLmqK|utX~PsQ-JweXl@4VjS%_*#arQLI+)%GXXrZYy>NOqI{HiS`4c_NQMgP* zZLY#|GiqBESCUZRuC^SyJ)ro3+{%NB7e)wpO3{l#o70Loio`D~KI#v;D~fM+qw%)F zs|!%>D0a{md!ktHfjN7sSWD@nw~D7FAksUbg4ZVWHB(qx3$M31;Jv)#-4_KMFvPD9q1*c~p^B3bkX3KzHywu2@aS*9pb+@}N7Z zxOoJ{DMd~zh;&-*EfH7Ju30K(lUKYI^kKv^Lkr~%kYaV_cQD)ISlG_Dr!(k=cP zaqui)t`#di!q|_Az34&gH8Hgo8lQ>jpVKgv6`avHN!k5R2r*f?W)()XTzMf80D9x38ef>XXPX4QTiU=xbMx1G73Y2Y~;{nJ!>eH=EvohU~kD zme8?Zf?e2?QTQG;WiqG+2>#@p4iP@ZYg8awU4IR%p@KUllwAje}ICC1@P3s_p@?MyjgOQ8ii> zehDItQ3Yv$Iac*cB$$m;h3`V+c-1H^2qvg5odLll)&05>(_y4Zr|lbu-k42yvvJ!-cDXka(o<t4Qsi)u!{OseUlNw;W1|{8rO@fVOqYIN+r3 zz6inEEchDGwtiXoYib;R#v!LqfOiAU`3DeuLUM;UO*MW8wBzaCsp(wX+ZD z$Mygp6o&{zBf2$4&qqX`i$Fdry3&pAIdLfEJkN`d>A}eb(Hw=^Me!i%*(K41rv9?H zZYPQ>;Emn0+jImqhVIG*OQHtvIPT2;PZn zKSkqv@n<7ye~EMaK+r?!Pgk+ODtq<@tf#V5M|9guxh)QK*~&lYFANM;uAB?l5ak_u zV>eVeg3gt(%0Be_h~JcLNzJAx7gYwcsmf5g`gxoSfhMPu(iqs^zdMtvKE=(?aJwwfwDunmeL&imA!6*=K-bo z3mQ)-vk#$mQrVmwvP;Sl^pNAS@(k^qTgn5=G1s@1er-@ZRwkcAe@~RXDaw1J{DJ)A zx5~ekfoE^_stSs1_T(w(2C;eMO%7(m*MR3}){>rsjA1{w2EkZXiC#2K#@~yf(K0i6 z`*T<%rOM~B6@yWm$2uNDN6XlP<>0cMT_vw@1#3JJ#Y#4c9t>?{%f5g}n^<2uOn0)? zl_1hCw!bxs-7K*OxEy99(os9YmYf3JQP!dpYR6bbGMC3$7aGwCR-yuGC)rI(NS|V@ zpI|~Ru^vr9aG7nS)aWhd{taNa*_=@zzr)&*eZ9-tK0$GhjVHhQKI=(of(Ps-J=TAL zgfZw|vg>re+Cz1)Ie7l63etjSPgSLx!0e?u9RSSUs=u~^OOEO#Id}b3t}Ou@plTQo z%z>&0vmoFg)e&08A*#!Iz=o;(=uydVRS$B~N2t30f!avb@euU)yXwVxaG9VwMh0-A zDsVDjlT>~8gKmndCk1WORlYw$mYFIuY289qsox>|B9%A&x^1zlABECOR4+<^^-@(| z(&S~TpJ;O}SFM?W^;@AjPf3xLsu$PM!z$GzCve%MN~E!GR*lI7Y>O&*4=}f?TsHw_ zn`+7ch_qKV*B?XKr}~Nl!TqY*`%oNEeM)~5@Puk4Wjs!*PLu(ci>eXPAh@JzoB;C6 zs_=v8{fer4Ghp6UEg@@mN0rnOjZajH-+=N|Rf+QTZ&ZgU5_+o&q34P3R86Y@^S#RR zPZT+lixvI#k%l)1!4Rq8T@*tlHD%6zliprO@8hJnOQ4%7Eu=?e)1>cvp}+Z(VJR9H zNKW+BZl#pG5Vcj3Q~|xOmRhd?${K0i5HxO;GHBy%lm7S~6S-YVAa8Al)RQ#i4{7LW z^tV%b*aNj)(kB66wp*%C8QLRKryJ<+sI-1Qcpj6ElXrYvT1005gmh;8SxcFG}Br(?m)eqd;(38m0ij zZD}~2sduEg>md9Ssq{X;o=QzVLG79Jp4Rrc6gL8mFCRFmxlo*NBzYgG`s536leBT4eFiBn7 z0J_QQB!up4iaKZ*c+OFGQ=&FkeJ%{l=BYc=y}*2RViOQ7P(N`+u|mDR8j6+bK3 zmHL;ez+A0fNjaX)YX7Z(ZBc)82_5ZLo7aKo9`y!#xU*M1h+?>X>TeC8+pli23B4as zU#N-3gX%6rz~zv7)EbZkZvAssIM-E zEH~9&ZGrhv9jr&~kvfEY{m1ISDrkJ7zD4~_cUJv~+8XD6jCTU^3g^#{^rsn0Nu`ZITR1rW|s$}z~z+7(8DNhx%4~%*lU-5 zpP|Th{Urt>4RW2GgdRq@ZlqM|Bv&T}X0u!`EP_Z&U6bkY;2PH*`6tCQmP$bpIW79Siqde}?L)+0FD!MkC;&G}w#GUIgITllJ z(qo4Q#&^!6YXhM{mz#pMqy!&z(cj-(b(--vDKlXINP@j`h4a3z)xqMpVEQ zO!EAhGMNiKM=S$uiRVE|(fJl#G5vxA;f*MQ)#=lc2J zdCc>S4s@qIXI2L6tmhwe)Lrl#7mP7n_AE03jn_T5MFI1sXYGx^yyJPT8yX*Y=6ng( zk3Bsonfu&x`gBPB+OsnK`0t&k`BxNuyxz3}Y@F9m38+om>s8FJA_)2w+fH_VNU@MZ5Pnp#4HSBgFQ#n(A*L2K^1LvNMfl%Z%rCKB1fU|H&wx=Nh!K3PQOmuux-UY_{^wt6J536 zdIp#sGrj<{^G(V^e6xKaJ{JnZ$hqDoRDT10e+c(VgVibFhmjcI5yhU#U~oe5`XNxx zC?d`Qc0sYH9vTOWUycF!5V5m}+E6k2bI3YOtQ~{K;bP8GG>#D4Q`|jDT>BlEEfDXd zqH&=(FA*c$A`bW*JhzJ82LQV$E}sXvE{U7_L5M#^QwuP=CLZxdaZ4;!5}3EexJsbA zFaAM3@dI&<3a}?)`yJre6KU#y@LwL`C4Pu+<-R4l1UIjcSu?AHDo5oU_L$bweADQpvtp5uX zTiEEkK-tQCNV4-RS&!l#8%8PgajMOo!EA!+`=?-bUUfx_^lup)T%r@4PbY=&#>3r7 zz&}tY{44nTSC8tF@ojpS%<3tr2|XYV~S@?g)pukpL zTc&5UPPdx;O@aOa`P!O)-JxsSj82)&TXpW}pP7aK+wlEC;NP)TSO4_yveLVBYSAI9 zbLS43{%t#Tt;WAqYty+)HID6X3h)oA78no+_5uFgGCBnXqNf1=zySI;Fet!es%Z)c z2x`vhnz!iEv0A6jozknNw`iHsJfl;q4qaQPH}BY@RlAH%>Ho{5&ip>p$zd%b6H;PQ zsz;@No6#yA3zN4t)nnvgIwBXjaKIy+$j)8TiN+CMW^QNn|JT*+kkPVv+g7a#tTJhc zzsbJX|GO61aScASX4T`<+qP)+y^|B)5N&8TwrkPBni1H_zZGp*YwPqjExLBdvSxk% zb$X_MJ13;FteIJ@Gdg9Vg4Dl_E+Fu`+Gs$QCznxyD(4GsXoiW%#gdylwkWEZq$rGC zM3c2u=T5{J7AHUBF0E`FT0t+ZtvUt+35na>0U*bo`yJ<1oAef0UAypcVrbS*>D{0e zREt=%lG+G37KUa`C)z@@+4k#<&L3+300~TGMo}cKJGS@$ z1tv7B=M>W*-JhvqnU{$%(I=L9)@Nb@tC+(ie^%X}>HL{gp84R@NT0>Rn985k4q(py ztg1iL`m?w|`X0u=7yF2yEMOFqvY9uhq0i=d^dE(>2!B@7pH-;NY6IlUlKh#Ek(K|5 zg`?`vYWOp6BNNN961|ycDD#eE9-+)7o(X<mf8jF_C!$uu`VDxUkSr z=8nb?Ryu%rg))62D;>hTsx$X6ruJv$0$CY<=4xbme3oOS@L7)#T;u5bCy6xpI?L$O zHK!bNX~Vn%SUJ<*(Rjr(mk?G3LI_|l7w#tJHk1_)V8!qyglPj9q;mCV#%W9&!a}Rl zcQ4U8l(~j5XR)$BQ@0`cSzrPy);o@|1m+eW$b_;A=X`T?&lwXkY3_N&JsT`h{(zAOG8tUUk7p`_M?$^_Yex zHH3NBW1g5B6V(c;LMb#V>d{AB?g#0NB9wo~suIRIL4mm9V4MW=XC%uE^^0C? z=R~H)C`_~!p+2-B!2gGs|2 zNuaPF(oiq)>sZnkcd;a9aWX3zLF(<|FHeX+(}Xeiq`b}nlY+yTD>h((E7Q-2fk$9XJnq`X#Ae_Xp=(K@ZBqceP~ zCDv}ET=Lnd*Z&X1trgCgf3|}NuK7gR=z$sQ%FSdxV^L_L{#MaAwroR~L7qe26hhyt z%MJg|bjW85OXLDKEyAw9|9>VhBf0sYxG+?c1ybjm!DXHTbDP3k185SRp*8W4uk5KcQCti6YCj3_73*4692@xiSO`#+^aKu*O*u|K5>5g(XQ6Osqtf)YRp9} z9?LXhR%{$xh75-DI-~|UOPZ<77{U!+LNY@KxprHVl#5v^m`U~Vn*%6&0xewrX*%Hr zMdJ?2|MVRF3;*xmlw{1@79xyl#% z-?F1fDPXAoNhxac8AC`E|^O5q-yrvc7k(1>Pvbq9^WQR3hMBr~^W zd_%kC+dub<|If{kqao*BM+N>_k$--S&*}`{y-m#Q&+2neu4;AWU5%+}8+gmxK+0eq z@pLNY8;WbQytfo%7w!7qi>&E}5E_v}$jKLvC{~vJ2^M@?gO8!rbJ}Cd_9bNS?xnDu=*bbV z8aw90(};6a4q-lIOd5x(! zm635=MeH?~H1fCP#0HFHDY#P!}h%=(@t>V z4!(+feUYXdb6i*D%SxD-6wW-uDC2|djyjxuOdW(UDW27t$|Iv3t_4M9Zx-ul$N~Sm zhwP3_5)YC8TO4t>VCFARpldt}ok~_-lk=}URG0d!s!Zt|&+4k{lS41bbI%?10%^); zdYXIt)aQ!||9iA8;@@kH9K9yl_eK5`-#&vZXfRoZ|A}q!Ul7!`*8k*R|8wXO%)_n! zEc8(1x15j52&{BJRwkBG+=X(3fz3!K?8!lHA5_S_p-~Y_-X+pG$dwz7JdCWD=ie8D z(S%k9vMTt56WWFnw}>Q7MuxO}so=OcO6H+K&W(A8A%HYl77 z^$tC(&sZWNgQ6nq6TXnY{|DuF5TArblA8~rx#Jk(^TvRC0Fpa^`Qp>aKkFAghT`GO z9k&Ysd9+B9=SI9XJ|7yt=;Hr3GeFt)zYRqG(Rc6;W@Qj<__NXpxClYukvpT_VrEEg z1j45`P@Y~odUDr;Mc5}he|R$3@Bd0!947j|Fj@arS@`Mu_sa5^jI*vHnX%;ZyrxQIr|w;E%?U$t@PZN+9u#eI@T+DWBiAf$)+D4_7)!3I&8R zzgXrgC(Nreuekig`CXn1Aogxc_kERVnf z8A0bpFh%0|W6_D_1?GdBM8rtd=@Ut47)WG{nLiWa3!H{a2sthf8L&v&Ssf~3 zaF<5Do4UCJr1l3P`Doml^ZQARFQ9PO*UA^V`FmElsrN^PutpYcn)#6+I`=Fv5vvR1 z?JC@Ks&LcI!c8v=H;u0#Q0hd8E70vMYL6@2zSP!Uy#W3`w7a!qVm?=dFFo`_C98mK zK|YbE9d{e0l4wobk-3TG=K@xXM+GtDx0g>~{%~B4WJgOGnKSNgp#b&xXB;bui=(DQ zM^ORjxa!5wrDH^lE#p!S;Vcv<|J7)2N7D9_+Txmmb4^DtiLs_VZ`)6Ls zz%7r6Er#fWvP5E2x-zY5#J5!P%mo$BXq6b?D3@(;6x8Bo7ye5cX(XMLVR@uUi~+i?3c!tRAk;uzCTwvcnSu8=!MfCW**ItHpGO1uEm%scnJiz8l)C z=4RKnTDV2+$$X$C{*;4eF-H2-pQRk2KcX*tiyAxszp`@uE7Qt_7P)c>1vXrs8pvD5 zHurX|szF)>PYP)#zI(CDl31yx%rlnJ4K$SBIU%8b62{*SrkhmP8<(){NH}W1l18&=L5}vPzkl7}(p(O4 zaSepXPn`NotoVsP6GeY)$ReJDjQ&_)VtYO|+hdKQZ5ltJ`A(x8L3^$ScAX4m4hztm zCL1E=8516SV}5MLqV%V?cxT(3N>9u_)IK23-BpWC=pMZqzxS2z z>eXTjOobSfXJ=x`&V-N}N71I)?Buvilo)`eu<7gvER0(Gj(DO2HQZRJ0?e{nY){QHs-Ow*?(;V@-;!p&Y`&TQg65_&%}o=U8`$=|xv@?3zqb^l3R;R%eV86E z3vf$_&4P=1_*MLr!>9Ta=32p_Dt0H~oZC3`pKGa@Xem?&ojqQ0jlz)}V>eimN~}jq zHR~71D&o-u%sftD@m#+B!3`nyx9LOEcCi`^#cn3yHB%erhI{5frVpc21o62Z`2q|S zcC?)BCPvR+x1j}(;8a5i-^E04(enGiqy1%`BmS>==J)t_fM;nD4uqU>&;&5=G)i#V zK5>VL@3Hje4KZ+4$kmg12hfEyV(Vg|t~TJGY*JCmS@SazP$ zaOS}Z)*XAyvBfo#cVVL7hfAx&Atz?=y{O4;jV#d3v;b&-Qziz|LnHJ7mtPY{Ibm>@ zzl%|@#CVHTkAqE=6L$NGz6Z#9%CmT}OlM*r`7<~xa4?x46U#HVFg$XMm9ub8CWF1M-Q9m~OsYc&>*HfF)wMOc%tmv=%KL)UEALQxQ;Gl!UCXms-c&@mQ+OKSdWr3ukv7y*P^=lFvMy62th*dE2c?gCF|4cT}%bPDDh{X zLaTApfZGQ=(}mAVt5PrTh@l7u$4ekx(IX#8T>0xfEE~KLtT8+VKtx1MYOxc|O=&)# zws)nC|9iPJ3bF*Kju>MU5&H>n+ZFlmP&WrVWJc_ZL@7EvsKHL9r7dWBu7iXu4&pVQ zZo~sfe5YhU?*az<4KPdNSy@=#c5%f@(5)_H@r`9A#kTyZC0;zz^Id+)BVT92cfs>z zOxUMJ7LPBusq$mac;x_J0uM4QOfoPbp@6koScCWH7RprhSOu~_*mMqgT`as1Re)x% zO!EO5E0T=X{4&x*P&tIrCy_G(QEU0LKrUnxzR3SV)SQ}jQIX`v{;eTfOK04!aYpzg zlUPvNX)>9kv?9>r3Jhwcj7F0UZUJO^VLNiaiu^T4Wu;*w;9|tVNoeoSDzBv_auIQa7kWbejySjdd(PN(`PkwmviKE5 zPa_|s2%a-*Ir7AQ(}d7g|kSvom)uAeP9S|=K#B$ zF7VdVSY3Hp-0BlUx@Cmt#oakP9mSal?~U&QY#iq>+=uqg>rMm15l##HY zVt(ml(Oks_Tr}>NQ|uiYQrP<$TboO$Bc}sL7VSE|kzA3=D91eGnE|ZvvY&+Heq9xM z`5Fp?p2i~N#tN{n^_d?$7bAV*Vi;+Y;^pW<&I_Jd0Bu$zbBc@IaJ>s_NK4?FX7@1F zB6b5dJ}z0{UU*?jV9B@?2$tzdds9l?L#Pi`RbfC2qgg7}mU5|}ae+@%y@27KSw~>O zW0*0NRX4I|Ba5oW()?J7YBV}AoC)gE1CAcJI4Rs%9gTREk900(5c}2PQ-tvyR=}j50e`GGNZ^JFq6eM2-|-^^=dqB?u`Q92 z)?~9KCb?l`e4I5rD$-=E6!2XD|EG39qsmT^;fdDh8kRt7bVMzqW5t?~+1{x^a!isn zJlYg!O^rzaX{E0CRZ?whR%P&r1hoxb!{F#Y*BB_FF)T|X?3Jhu#Zwv`BI>3`VXI6GfO^LL|B!#C$TC5Ff;9HQf zPzx8iQA&i>oE&U1R-$ha;VEWg75sN@Of*<7L9)e~920E{mgS+E#S|>hgUMtuVIoXH zc9Bf7EPP(_fLxxW2#!NIeC#D*)5Y{An&53F$pIUSY7Ms}SfkD1sf{dVYf5;k(c~19VvTN;7?~QA zl!%|erlf|ank(_o%2+h}x6n{yR7^^EM7+7O@y8zluwkIxoXDFiJ2kXG5l9)L%<&}g%sQep=22E-ZLlfB~Dk#QmXKd5X0zl4{e(9W$6xAr+Y?aq8%ILV&1B=vf*$e>2 zSrm}hV*b<`z*SS8oFc%vKJVX-!BRA{7m5Z*z`XDJYpkHTb)35iDqkJ zgfXaQ*LbH!DQ3QDBa>iZE#?L>DXGx?$ng01i15g`6k|Xm%v__Ca7$_phhF9BaMlpoVW~_mY&I9#XtfmFAhJ2O zf%s_n28bq=j83gBAJ4p&YN>78Dzri=mhc4o*0ve>s7iE>0a&eGc*6*DqQzLjNL8y` z<0R(9%9V{c$}DDVF$dQq0qQPKICl|fVQ>});-iKYE)5)=+IgozE`-kvsSo6j=-MSS zD?Ytb+pKohpwuocI%T%O54pK=5wwvdB{klh*Z_(Xlxhi2Oo=vIQn)t6M&YcBjS5c< z=lYOW&0X6B%tcCkcw7-nn+xKiG$dz=c4A!m_o?^=y)~sBem9MZF&9E7X6k3ja0wbF zSyEAPn9~NZIxu4xby6csq?u1AxqA3J6FTD6x(XyS*?F zb_5oHchaQM-}J$OxeH3BAu`g`z@`)2c;Ya}OhlOzli*n;#3a%N@(+fuTBmk!&ETNG z;M%5Iru1sTHKKz8ok*i&$PI{0HOE8;84J|;+S-mHcnpyk4fH)eyn%fzXyh9q58`A^ zPD+VMg9{}uk8Bo90rI}LohK#}M3r4)?jz$|N(#35$axLCcRIRb$ncwCQCFN@H--{|oxPp1 z?%z_G{v)cu|A;E+gH%5myS2mLZm1LhJCBnNZY$P=e~U>>!BjbTzQJ^e^BorhUm-r; z67^XjH?Rsv=i!SLl3&0y;kVzH7EoM2e;9e=$2wQN%{cqmNd$U;- zb3%BsIWaOR3Jw$a1j3Tj9+KTTY#ut4jTJ(TKUd1d$x|q z)_}UkpKNMu*Qz?)E(O+>)r$L1G$flR3&$!2W(V>`#WW6-U9eP3{#J@ti6kfxabr@W zL~{S^3XxBJ?2Y_nr}2_c9UYzm_W@s$QX53eA;5?H(hp$B1~wdaEIK?gwT?WHIv5`} zgIH78bWEjf-vj}`btgPJm^(bR@&|Af98x@HbKc|AzfJEDiN7P0(H4iZ+$>iS1n^BB zkK+vyX#rn5E2CBW%&Zn&vM@6KhpceU$Ud*5fkfANCKcu~rW0s7wMxfgMp}$mN;;14 z6{K*2$eD#&##oRc;W;5wKyV|ctd3uINpEXAW#q`p9?02hT!py?reJS0iE1PpD@WC| z1Gsj=x8Ub6avnH{(PXT|y)9Z~o)M7`Hfy6~Y%{ZiUoIOx@`9pM;YZnMWu4*)p@tYr z13K&M`JlW8E~L#1CWG|>2U!NmTb2S2yA}Q}J}I)0<5d_zCZsG{3h7Hqq;0C~HHY2K zEwm-YwrW<2eiOnGU{Poj6Jgu^cBBGO8SP20fH_7ss3bKc1hg!*A5CXZ-l&C2L;3=b`X({p_XVmko1EV5lmNr*ruio4e!GZ_oiZDxVn_&P?}VUR0wXV8tjgfpc^^2}JEEfoPL zIyo}M+8F1e$tfy4(%J<6K?8H5*@E4WlxR&%ib2-a4v?$%urgmpq6YZb+2e2NaVN>< z+ah5T5pARqlBdgST)wC_nXNlUcIe!yeM)+V^j2B;ds{}{X3F0v53@G+bWFB1pNTAa zcry4kbzeB{wO;uEMN>oB1)YfLu!jmHc`F<$~;HgbSC^+B}Q=wWG zOM>mxK>m{Q>$dUm3AWi1`|<^0TgzKIA2d(-OtvHe=7*bF%EiYdrphNH1u(`+)vP#C zb6djG5YkjLnrs`xHtgKYyrcH!!W>kF3<3{5 z1czXF6waPt1l^IJAyz^}LRFk-ylPidvhKENpjn{pnv#HwKYiB7cWM;?ISh|BnQcst zhpQZ&WVFG$IX34%bCJ5Mz|XVDNLY}_$nUTT!&78y2nVt<;+u>%|0M=UlojOg!S3zO z9yb#hG)*`hHvYfd;Dc6=0#HPm7M!sT&P%0AbQmH72VIFWr_r?xCeiq#k>XLlRU3!L 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

    $)GGVqUldDO4p410Igpw^b%;5l^q7uca~)wI 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≤#2MdYz?p>wMQQecA=A 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 w%ufAR@qE(_=LJQFbmUtw0h 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 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.su b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.su new file mode 100644 index 0000000..f58428d --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.su @@ -0,0 +1,81 @@ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:535:19:HAL_I2C_Init 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:650:19:HAL_I2C_DeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:696:13:HAL_I2C_MspInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:712:13:HAL_I2C_MspDeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:1119:19:HAL_I2C_Master_Transmit 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:1260:19:HAL_I2C_Master_Receive 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:1378:19:HAL_I2C_Slave_Transmit 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:1565:19:HAL_I2C_Slave_Receive 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:1695:19:HAL_I2C_Master_Transmit_IT 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:1785:19:HAL_I2C_Master_Receive_IT 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:1854:19:HAL_I2C_Slave_Transmit_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:1918:19:HAL_I2C_Slave_Receive_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:1970:19:HAL_I2C_Master_Transmit_DMA 48 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:2133:19:HAL_I2C_Master_Receive_DMA 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:2278:19:HAL_I2C_Slave_Transmit_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:2414:19:HAL_I2C_Slave_Receive_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:2523:19:HAL_I2C_Mem_Write 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:2660:19:HAL_I2C_Mem_Read 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:2797:19:HAL_I2C_Mem_Write_IT 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:2885:19:HAL_I2C_Mem_Read_IT 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:2972:19:HAL_I2C_Mem_Write_DMA 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:3118:19:HAL_I2C_Mem_Read_DMA 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:3263:19:HAL_I2C_IsDeviceReady 48 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:3389:19:HAL_I2C_Master_Seq_Transmit_IT 48 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:3503:19:HAL_I2C_Master_Seq_Transmit_DMA 48 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:3700:19:HAL_I2C_Master_Seq_Receive_IT 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:3787:19:HAL_I2C_Master_Seq_Receive_DMA 48 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:3953:19:HAL_I2C_Slave_Seq_Transmit_IT 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4053:19:HAL_I2C_Slave_Seq_Transmit_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4237:19:HAL_I2C_Slave_Seq_Receive_IT 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4337:19:HAL_I2C_Slave_Seq_Receive_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4517:19:HAL_I2C_EnableListen_IT 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4541:19:HAL_I2C_DisableListen_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4574:19:HAL_I2C_Master_Abort_IT 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4638:6:HAL_I2C_EV_IRQHandler 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4657:6:HAL_I2C_ER_IRQHandler 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4709:13:HAL_I2C_MasterTxCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4725:13:HAL_I2C_MasterRxCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4740:13:HAL_I2C_SlaveTxCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4756:13:HAL_I2C_SlaveRxCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4774:13:HAL_I2C_AddrCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4792:13:HAL_I2C_ListenCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4808:13:HAL_I2C_MemTxCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4824:13:HAL_I2C_MemRxCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4840:13:HAL_I2C_ErrorCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4856:13:HAL_I2C_AbortCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4891:22:HAL_I2C_GetState 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4903:21:HAL_I2C_GetMode 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4914:10:HAL_I2C_GetError 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:4939:26:I2C_Master_ISR_IT 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:5098:26:I2C_Mem_ISR_IT 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:5257:26:I2C_Slave_ISR_IT 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:5397:26:I2C_Master_ISR_DMA 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:5545:26:I2C_Mem_ISR_DMA 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:5709:26:I2C_Slave_ISR_DMA 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:5853:26:I2C_RequestMemoryWrite 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:5908:26:I2C_RequestMemoryRead 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:5957:13:I2C_ITAddrCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6052:13:I2C_ITMasterSeqCplt 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6105:13:I2C_ITSlaveSeqCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6179:13:I2C_ITMasterCplt 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6322:13:I2C_ITSlaveCplt 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6538:13:I2C_ITListenCplt 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6589:13:I2C_ITError 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6720:13:I2C_TreatErrorCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6758:13:I2C_Flush_TXDR 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6779:13:I2C_DMAMasterTransmitCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6830:13:I2C_DMASlaveTransmitCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6859:13:I2C_DMAMasterReceiveCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6918:13:I2C_DMASlaveReceiveCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6947:13:I2C_DMAError 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6966:13:I2C_DMAAbort 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:6996:26:I2C_WaitOnFlagUntilTimeout 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:7036:26:I2C_WaitOnTXISFlagUntilTimeout 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:7077:26:I2C_WaitOnSTOPFlagUntilTimeout 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:7115:26:I2C_WaitOnRXNEFlagUntilTimeout 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:7192:26:I2C_IsErrorOccurred 48 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:7333:13:I2C_TransferConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:7360:13:I2C_Enable_IRQ 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:7451:13:I2C_Disable_IRQ 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c:7514:13:I2C_ConvertOtherXferOptions 16 static diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.cyclo b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.cyclo new file mode 100644 index 0000000..eff2486 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.cyclo @@ -0,0 +1,6 @@ +stm32f3xx_hal_i2c_ex.c:96:19:HAL_I2CEx_ConfigAnalogFilter 3 +stm32f3xx_hal_i2c_ex.c:140:19:HAL_I2CEx_ConfigDigitalFilter 3 +stm32f3xx_hal_i2c_ex.c:208:19:HAL_I2CEx_EnableWakeUp 3 +stm32f3xx_hal_i2c_ex.c:247:19:HAL_I2CEx_DisableWakeUp 3 +stm32f3xx_hal_i2c_ex.c:312:6:HAL_I2CEx_EnableFastModePlus 1 +stm32f3xx_hal_i2c_ex.c:339:6:HAL_I2CEx_DisableFastModePlus 1 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.d b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.d new file mode 100644 index 0000000..dcfaccb --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.d @@ -0,0 +1,56 @@ +Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o: \ + ../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..15b6fc7ca079ba543623e33a2e2067b11eaa0330 GIT binary patch literal 876608 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 a1p5Ssz@g9oP*<%&+=#%Y^>0J?=Klr#zqDKc literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.su b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.su new file mode 100644 index 0000000..2793612 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.su @@ -0,0 +1,6 @@ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c:96:19:HAL_I2CEx_ConfigAnalogFilter 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c:140:19:HAL_I2CEx_ConfigDigitalFilter 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c:208:19:HAL_I2CEx_EnableWakeUp 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c:247:19:HAL_I2CEx_DisableWakeUp 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c:312:6:HAL_I2CEx_EnableFastModePlus 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c:339:6:HAL_I2CEx_DisableFastModePlus 24 static diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.cyclo b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.cyclo new file mode 100644 index 0000000..3dae932 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.cyclo @@ -0,0 +1,12 @@ +stm32f3xx_hal_pwr.c:73:6:HAL_PWR_DeInit 1 +stm32f3xx_hal_pwr.c:86:6:HAL_PWR_EnableBkUpAccess 1 +stm32f3xx_hal_pwr.c:98:6:HAL_PWR_DisableBkUpAccess 1 +stm32f3xx_hal_pwr.c:241:6:HAL_PWR_EnableWakeUpPin 1 +stm32f3xx_hal_pwr.c:256:6:HAL_PWR_DisableWakeUpPin 1 +stm32f3xx_hal_pwr.c:281:6:HAL_PWR_EnterSLEEPMode 2 +stm32f3xx_hal_pwr.c:326:6:HAL_PWR_EnterSTOPMode 2 +stm32f3xx_hal_pwr.c:376:6:HAL_PWR_EnterSTANDBYMode 1 +stm32f3xx_hal_pwr.c:400:6:HAL_PWR_EnableSleepOnExit 1 +stm32f3xx_hal_pwr.c:413:6:HAL_PWR_DisableSleepOnExit 1 +stm32f3xx_hal_pwr.c:427:6:HAL_PWR_EnableSEVOnPend 1 +stm32f3xx_hal_pwr.c:440:6:HAL_PWR_DisableSEVOnPend 1 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.d b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.d new file mode 100644 index 0000000..c42f814 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.d @@ -0,0 +1,56 @@ +Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o: \ + ../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o new file mode 100644 index 0000000000000000000000000000000000000000..7832f8f4777b0bb179f3dcf69b9fe236cd21eeeb GIT binary patch literal 875016 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�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

    fR>8Pg+sFuJ<%7T>iP_h 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 z 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 T+vtPv+Q`e7n3&xmGTvH!bqJ!Drsgs zFfD1SOASzhX)u⩔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⁢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 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.su b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.su new file mode 100644 index 0000000..1b4835e --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.su @@ -0,0 +1,12 @@ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:73:6:HAL_PWR_DeInit 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:86:6:HAL_PWR_EnableBkUpAccess 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:98:6:HAL_PWR_DisableBkUpAccess 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:241:6:HAL_PWR_EnableWakeUpPin 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:256:6:HAL_PWR_DisableWakeUpPin 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:281:6:HAL_PWR_EnterSLEEPMode 16 static,ignoring_inline_asm +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:326:6:HAL_PWR_EnterSTOPMode 24 static,ignoring_inline_asm +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:376:6:HAL_PWR_EnterSTANDBYMode 4 static,ignoring_inline_asm +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:400:6:HAL_PWR_EnableSleepOnExit 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:413:6:HAL_PWR_DisableSleepOnExit 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:427:6:HAL_PWR_EnableSEVOnPend 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c:440:6:HAL_PWR_DisableSEVOnPend 4 static diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.cyclo b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.cyclo new file mode 100644 index 0000000..3567b23 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.cyclo @@ -0,0 +1,5 @@ +stm32f3xx_hal_pwr_ex.c:128:6:HAL_PWR_ConfigPVD 5 +stm32f3xx_hal_pwr_ex.c:170:6:HAL_PWR_EnablePVD 1 +stm32f3xx_hal_pwr_ex.c:179:6:HAL_PWR_DisablePVD 1 +stm32f3xx_hal_pwr_ex.c:189:6:HAL_PWR_PVD_IRQHandler 2 +stm32f3xx_hal_pwr_ex.c:206:13:HAL_PWR_PVDCallback 1 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.d b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.d new file mode 100644 index 0000000..112aaea --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.d @@ -0,0 +1,56 @@ +Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o: \ + ../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..6a1ae1e1e959f0a0a40d6d26679663906b18ff8c GIT binary patch literal 871788 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%0A)1 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

    #jd?Y@{0sJIm836tg$uhV- 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

  1. P`eP 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 -oNEJexJcYwNu$b=Yc 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

    +r{!d-$$PYqJ` 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%0A^lx)3U+y*0O%!wf97ujmodjjZ|7Gy(XJGEqzH6V zzrs^K191Z z7#=TumioZcnTJ&wZ5p>b$hVdiZroa3$0~PKf!_N&HDBllhD+()uRO!7dbuuU7CE!5 zBb1M!JJOW9vAP<51@OUNpqx94ZCjp)mrt1$y!dbRWZ1uWt|12XgDf)0lRY)J+92(R zorF~ff>fN&w^*7Xcf$0B)|cqCrw+8S{sPu@plK%{j}p4(Fq0Rv-vu@#F-G1;;th=? zCLXSMsESuPH8wz+N$rC;^^==i*QqajbZu+XA`W{EH@6#9p?q}9swbZ?YB`?bAXg$E z|H8QNe_4CC9?7!oJS=*8cokO5Dtm)}e+%hAR+u56X_b26#wwrh&O^{!f1e;9}opJThb z6jPge=+?~YNqP(Cy9ltt8+Ac=mTyY9LXBW%p(c1)=E+<=OMXnc;}ZYmRG`4##rbr` zx=?B|UjNnG*S8y%gur6XrlH7PiHf#Lld3;2@v?Xy$CCHhF!*x2r zN}6f5fNNA_FXmn0#=)mj5m_U{kxeh65w0SLUaD{aS!Hy!B;5(6sbO#L@Rw~masI53 zp}kan&sdbg5r_}OM`~VL#F~)b)WdL<)((6FMc%57T>?Rbsk@|jXT$vzb4t!{HUEr4 znhz%)OK*~a7b(ZAk}c%N`|Q<@_nB5Wa&!3pr$;vGlF^3KBq8*`#*f`!S3Zb{h2Vw7yPOPXGDmbh)q z8`}0<4_fsg=S6HSJ=KKhL9`??8~uE_oVW9a9ux(zxF3viB2CwdI3aQ=6kJ4bk{E3K z9;R>yFKc6=wKB)s&^2=)8MDIU%w0%6<8^}yE!^{zDkpD-tNIMZUem-1M^wF1Qvmp4 z!{~33c3W(}jc})xngA;2KqINy43uSqK32zgH=Q&lmU!f9NM_dzkWYH#O~`qq+0hr7XA8sx`AHR5Y`$Go5 zi(`nlnN!RpBmg7|D7%JyKu6ocHFx?%H|Tn|1oVutM?&o;+t{8gdKLW9eu$ppxF0Gz zMytkouf&_{Mnjmq5J@#1SF;t=h2}N!fCta^q2^speelc%XG{#SeaYcw1 zrni9U`6b`oGhH%U&OOCJq24ek4TMVE1JV|y3QPK?q)8y(*sfn{nNU-yr=C&kI$T53 z-au|Gk6hUyzca(XT~MquXh~m0*7plyn8=#CF%&#Eb|#>nt~D}p+lVj$q|PB!B@;6; z34{|1;jrRMN9A{HRGJ5RfqaMHCvDseoCf4r>Zc8cR!RO)d@u+vww)qjw6cUI>PX5^ zk&8AZAMkZGZ2x+B$4aeMy{5DeLLNu7OrZaw-B^4VFOW~P@cJsjQJB||=$lyLM3p;g zigG`wUSuJhl7oB}!*)Z5{P?vLvD@OXpi}cR_>2DEauOOkXj*Bz;sk)3PF}x$rGmY& z!9W^ST{*cbRSTodtgYzgJ4}I856GnqQS_5&jJYw45!-MT%O+u-bc{&yzKsz6YG<4w z{=;X4v&aYFoSTF?$)0AF%#wrAE1T&K^Dl;)B&&X`NU~b@@pJ>Iz*;r9qzW=J=JnFu z4ic+)V%}nXCCoS$nF4X`s-Y*o1{NF~2QZ;xiT|?_kdR)p%N9mNoeoCYnnnkU9Vb-B zz_if-A|tRlUUGNm5p7Zno&_SBgk0=wRz*3AeDgG|z|gAW)@mQyO*XTV0Dx=cMsSs8 zX@7n}pImBIwX=^itGNm5F(WUN-FGWd_*tyR=zI(_CBiy@$2dI9ys!vIL~0y+XtRHvh#6CRXMzo8<50YI_GqLVg9g;+SVQPpT(t z5pT|qQ1NbEy7JCf#>W^^wmf}OGu)GHBv_a(tPGRSAnwK}Tuuas;D%>O0_Xtq39p7M z7m#(!MUNM7be8CIsEX^S8po#QM~oA)7C7Evvs*C%HO8v^3q_!QDcew7!fuE0d?$$I z!(3=Bw4C+J4brB`jHvzpPGK`jTu_GVg7+8`y;xy9n-9 z_i+voxyUa_O|6A7iYaD)ttz(RsD$jghQI)97H%oy7>jFKBh*dk`LW#%>M_eI1h5_} zEc3jB+&pjCXTn)81eAoPBN4s^C5xFp5@RUyGM7zY(Uyzlcy_ALeI+I^Z8b(01Dmip zQ-R@d;?DTw3F7(r;+WL5y_dd>bM5&x3#Q#LyNl7q@Kc@n4h{Z>?isKq)Qj+#i!&Z@ zr(J4sGBC>&EzJS9Q2kiT_6`%9!~T`~Cd9kYP{_hnWU2@(uL)Na0o9!JmLT;IIdRJw#& zHhtt>>WF7-*k^G*V7TnB7f)n&@ZVr6KpMpAZ*z<`Km!9OZj2E)z<;3^rMO#~VInrz z27(e(^7eeQnHMgEfCJ@0rGT!`I_-};TZ!FpiovA`5BK?al3Dbtl}9-0EeF;0+*Qob zY1A3Q=|3DwYzfnXG>{H$lPF_`YT;TJ=eXg6M1Bw{fhYo%RYESXOHPW#)<=e74Y`@s zt@c&R|4?3n_B)|zfcSt@SP>ys#xO}I=o)_x&hR^I3=A1jCW}iqLt(4LE85367rtXU zriaq#K=~w>TH%z84h8`Rl9ZWuaw3@oEQDpUhP!9`TZn%^7PIhqHUd$oKVOS-8G6EvXMK)KA)m(Zdq!^Bufu+);|eakW^go|DT zhhLRX3O2wrfP^aC(#Y8b^FdmrW;c}(CUU_JjIfB34Hh~H_4iCCkvh+tDk_NvWz|qa zI8|tA<`eCb*Trd<|90b#A_$-%K?W&5%a9}k>(iVNG7iU?zgeuYts!+nGDHHzp6`Ga ztt_W8nai062fa87Fg;Y?;dWcmlTd_CUm<8ng7e+f4WbgZDUcFJTWOk^rIPj-#%h*k zmw=M0DOJs?G;=*%bz^_daN2E2ovGr330sivJDG;x5kUiQ@QgmQ&SbXv1k!gWE5ylk zdwj6LbOQ(L$2japn(C)G>}u9YiIt{USxru2g6Uy4J?PIQ8HQ@x94f+=8y&H1HoNly zObpT5 zwtBixHPxzwsXMtcQZgqfqAhI}^(cmROd^LlB*Pbwnhx7rD2Q9S*d|=7LFGem-F$-E`xy~(4q3T1eV1vilpq0`(~QToHd=o zgkIHKJzymxV!0bXhE2)SYNw9PFJaJOm>A3pW2MpaOJQ+qS=^G6^p+5}AzS$s*xn(s zOuD=Z*&pcvI9O+lOuqSYhR7b!Lf9h}g~O0T>S9DAGB*SQv};#172M(=J8tul^s1eX zYrznti-rv$Mo)`EK@UpbsgJ_RaVTnFkvgFoO=#(zMq$0cRkNrWfm%&2jVF@K4Izvm zGcyZm-#C0hmJQ#;jD~W#+e>#>d5v!jxd@~S+lSa}hVZ5k*@Owj{#%p@!}-q1<7sEYs^cj!JU`@e_6_tPpS>tUe z;pg|h%RPij6Mpsb{<)oG8avpvyj!F!U3qAH1!!dAnqm4@%MdG{3dK{k2ixzWfPkrr zSshJj_72qA`|MndpMfr8_E7rcKY$j=$+i&KEarQP@s3l}w`O^IN|<#A9^%|Ws6(U&Mrk~>izpgF>KsUPABnN^$RpL#XBoZA{Bqgu zCZ)?DPUBp$aL;WB0g>rPGUp0}?gWMmPO<;io2t%lCpA6OQ+V<4Z`DZ3f#0uj|=GDAQdsyu9_%_hzUyb^Y>o^U?Rn?tl7Sxhcf? zaX)AsW9G1?Frp*M)v7V>eAFKXE1Olj+2Zw&z=$M}=l3&lJ|YK<{khnkU-u8i9)}ss zRchno6~l53EH3h{_u{SLpb5=gbdc&!{HRlUip@_Tcb1spY#;!O=Y>GUy_%_q1Ia@f*~2GWThuh` zZ8FEUE|^6NrWX?~U3Yk44c0__L64vZ=I82UCcj8`>%Fw8gQ!cg*%%z;^g+fAC8>yg z$XN@!kez_}?`uMB|MaJjd%{yfVrCavh|Pe#ZGa)RU{&*pF*BZoP={+7H4*Nf2`0+m z%0r%IazAI4c`lnLUo#f|zygxO9uAy2h) zeBb-R`@R<>EqUO7)fi*FHUV`5sM-arnD!~kZ=wWIyXq3Cl7Eo-V;tODY13H&lU}2) z5n+0*F=ADDs7t4z;>2gbtwuGlZgMG)f+UU)lm7))+F16) z-7nhqPz29m^2p8@gZ5!FWe%iXsDT=q`d)rO<~HqX(F?bC2GyAOOtOo~)iIpDMN3cA zCaxu%L^V3!>J7d03W{-~^U>+W@pN`dGf!ZXTL4lYz>#+$x0%cq6z~+=W?*~#3gIEt zHeO%fZVunRVbK#8^?WsE^&a-^rLD2Xi7J-Hz=w)uv?{WY(9&57NGo%G3pQqfMBK+< zoFZt|i<)LmeBsN=ICBZp$So>hgs(n1osK_&<3hGEycU}8{(8Lg1Q=zi<2`R+4hm zl_!MX1tgM9@fl<-Utjl{6(Bu0TvPbweVdXpGZ9-YwBC2v?3~?x1OBEpa3=!)Z9g|7^rV(32w|T7B=%72hWG_ZS0JX zpBp>c22WWO%!%MK+a za7;HtS1%7`0NN0F!y&T_BV?PQ?O6f2P@R#rMCex*{7vQAS+;6 z?kZD45`j)9$D{ElZF`Le3lteE2u=tyhz&l*u{NB{R7D{PM($en6Gj=n zEecAy=cm^;(yW4H33*`vo-aH?&3%eZ#f%S?8ztFnJC(pT%svgvyEKI?j z=*3wkx~CGQkTZH}aVyk!%Xq(C($0n?at5z6nD;W4R9s#nV1t1A^{6XB=|A)Whh`m< z4jcllNH5R>ssilbCX0Ijs?(05gEnpAH)9LIH0EQ~Q*8@64T;)zP5>fI4qMLr({Cm<$;rc_0``g+9OF(rHI&!vIJJ?)inX%@bcn;a`o2GValVM~qQ0EUQ&3aoNh&Q>n%x+_Og5w)`Ke|+&2=e}?uV{?Xhp@y<} z)3Z}aE76;+YSJ+l4-R#WH2O3=Ml`l3i%!lQEK?D3OsKzFR8RBr&sH8IXH!L7a1PJ{ zP)Lr&N2*4!3Q#x5$_sae`SQAthX=#G1K73)`+L29cXzn?u;1Bd_52KVASS&lq{zT} zx^Xml8|}E9iqeJi(z(F_Q}<%iLYzf5$r(~>^ZM7}s))+b6~vy^f_T4LjOR~at~R~Y z5ws5XZx;KSoQ>u<1o8sP!xTiIZNi?vO=pc{&_EeDT-bEV_vkaD+dX}`MUFKJ5&@*n zTt;*JEqTGEYUAW?)WQ&?DXM1%tk*O0WalXV(;Te~Pl+ zV;7Agg<@h#%ymY3AkP^(0I#DkofrJ171Z&JA`E!OW5>_vbxV7qK; zFiwW>Q_){(&Q{4#@-Nuow-IHWkR1A{dS87vmXIZ6y5VLLj1%OOcQ>ZkGLxWGQU*5gI(R5-U zlc(7w`&bBZXJ?2xkre4dB(alWT>|K#N(#UhY}`NSUVs$Fq?F***otL))G;M7CpB=S zT#S%y=>IyIuorg`vo@dPoR?CW>y)If%;25OX@z9G`W!M&o-Rul2s(MLP?4G0PKFJc z^b4S|Iw<8K?$K;WJLy1Wy}`#C zLfmF%wCtErd?l^;bN(gAbbMyfXu(*SP>)Uqmd@a*r$ce z?=J0jF)2|3&j2P0NBeSlO=I9UBlNkWuxN3F*ottH4$Y}^3~vd}v8v()44NUPhk~Kz z(kM=I*lUDo>N#ZUJm!Oj3tCeftS0b}F#x`LM3zl}l?tHn20M~0SJ{>H4d&0WLNrxr zF2WKTxCzN)6H%Oe|zPK2llerkb5FcO_2LE$u zHty^=)uDymZlI`dHXde+^f&} zy_@F`wpDciED+Me33MWn@W~_>7|BY`SHd*R5JpU`zB!0ErB9-SBgl{+RKlD|yP)}0 zY}9@c6xHbW+Aj#pmM$8Z4_5ohNffudv$NoU&ph!Jue^mZ_y+Uj*}`n77X%&J%P_^J zf7J9HuJ9VH*vtMv-@S4M8{7>HjrQ0G(+n65C+fO40M@UBK&Y1$`GQ#o6RgO9roC7N z56T%$pBNSn2H7)ZrgfWMf-b0!| z?>@*^-=Y?rmO(NwVioP^VAq8bSOe>Y^rp~+j5DGt{c}hfo71tOk?zpa*w*2w5X4F$ zDV)cIfafA49A)1c<%Ak6V1|&n(XZ#M!cPtguCV#3a;hjf&LtB035HK5pY(hm@~4jy zcbRyyr8-k1+~h7$5~dDZRmUcwECDrLr4eMZsA zCj<@P1Z^#Mn9&4FN&_AL!S&0Rn-{?>9;k<`)_7LzfV%4SFrK^v>Z8BA1L~Z=yF+87 zQ2vU>h@rd#BZrJOP|#9UYwcbA3YJqYLQGMGuc3Nsxyxuhx3pzDJ3f?;9;PR&DOA$} z2N5mL>Jmw{`dXR8gyI`kQBqu%x~H}!@9BYV5Umo%5++2lC>09s4ArhGBUNbHNd=e9_pKiU?lsUC$u zAxhrfp=1tSmnS^;wg%NTfm_;!=6Xm}xlE~}^T9a=d&|BJ4{c`cM$3%d6gDrXf^YPiH-8uTG1<8U#r zNNT3+7xJ&j6gKUA(F0W?IYPZBWbRa~@n9VXjb{1)&^o}HcLW^VHotYCYL7(=<`*Cv zb`DptY4VDmY~-AQOXIU@wtorJ#8ih5k?Y;nl|X;3k8al|43Lf>8qYY2c*(jTtZXE5=PTftdb-U{03+tqWnr zQrh=!i#&qw%OckJTV3_##@2EAZAq_7m_E)2L;O;bCH~E#=s9VHC+vWf1BSCSVFlP8 zX-;Qg>jh3D)I5>0@>$CmY*x#LN+3PNm>tdO3LFI~U^W!DBWRm;WjN6%G$1~v?n(<| zQ-|+l57V{UBg0uc?|zn!#i=~Y>WbvU^e%=TewL0tfru{FzP<+$)VzHV$Tc5N&$aq0+kD5H^9%dZd zx?5`*3b~gF!WEDW9%I8UDJ$t2X2{_xytLRIAF4MZMw3u3zkk(cPyZcZUK64)Zkngw z@m+4hP;-`cJn1Z<{B|fOpW5lk=J_f}E`)nUW-@uM8kA7N^y!6s>2ihwr!+RV{Zxh0 z5~k-cvhHLG!Ya?a$NahsTZP3rmksmm5NERUlf?9G<33I>=G>dBeLW0>3_w4fLjFPkU0!CwrN0KLhx zeXPG+)Zyb{N2I@@PgJVb?KO~wmDT?`k&Lijo{y*woLaueF1))b9FuI$r$9B^8V!v& z#e2(jt%c@>@)3%iX>arLp0}3QdZn3pA!d+}69`VITe}@1q?7K%6YsZ3Op!jnj z0?B}LY)LLmT723I6Wgc ze?IJ6`muDIaZ)(Iik5C8X}y4LkHhXDJ}5Vck@uKr5YP%y^sq|WiX!Ci?iIo(VfwvD zj)aHLK7YOW^v}x(O)I2h=Tdl49U=h^Sw+O8-GLM+7Jo}oo$tKo@*K{EqaC|dQI{!F zk!71ME>_3|#L*1-_s9zrcisY-sfohqGRYfsX+O{1W9^4Fg%)hon0OUH!bp#_x3aE# zdB8d@p#lxA<3GC5oIm3nitCTw%(i;-M2=jy{2kOp+@d^+dpIEY)lKadsH#W9yEUnH^a8G z%u5jP4cdaKdRxd}Bis!|SoAq6nnR+OEHPI_L*r6eC|wafXL1BidZPKq@x^OKqlhit z5uC9?Z9sfokWVsItlCAh&3Tatrc#z)B0>`Y<$NkND;eLx173x#aHUtaB#&>7Sqf=! znoC)6*P$FSjJ(V7OUhv=O9S&fDAn2clQDcg_F<&<<_27z%%+fKan?b1DI%9&5U!X5 z9du_et9Z2+)FDc>>dEDE5hdY)O)vbM&OHg_np zDXtn$K1mZRHjfk&Rn81iJkH~?`LA}18whKiA`t9DP(M8Qc549&RuLRP&g`g-=gd;*eM#7W}BY^XShTF86R*wPNw0ynDa7`+(j5rtPvvu%Z=q4X9@b z{*YAFXC`7`sMuBr$b#?%IB^99e{>9DEGIT-EGNbSLCsahOhd6qq&}ijq_BjhrYO^4 zV&rS4WY@r2)GTfkPTX1%i5gfpIhJkR`9ic3D)JwrkCsCGnLyz8Gng1?B@#m zqv#p+CFJ>oJvxcXRLdH)v+lEiEh|PxODLicyM<37m`DZC90r@m=zNNV1%7_ERu!O6 zde{LP8BA?3vSJ^R$t|9SsxCF`w$86!K5Sk-EH?c6`Ky<1Rbw7JA~+x(RNfy5X9Q~m zqDOtvs*s`=T3SBAy(~l{agQ)Pjzt9+VZC@ZolU{|5bb!iUY+23PA*Q5Lf{sIs$4{O z^HlC};6znSCsMb%jDr)!lDDxNGER=>aBe|8f zpyps_oyd(vD@dITXnT(MbZ z0MeA&Yn?MaGC#WpAdr6~R8F5&|BpCdZ0|03b*I-#A z1JkUTXq!3rsS$~TAyXFB!3qv$nR{P>g@v40JRqhD` z={aZ}ysSYR;x<-q2_StsS7Cx!6O@BI)&hivHc{Xwh#Z*U@U$?IF3DG*dY(j#z6QHx z#qh>Dyk-jsIEqE!bhFSTYl~CmIRd9y=CYea0%A@3LlaNXIZH5yXbc&FsshQlj;(1I zEq$uXM%gT9q(OpF1`-C1 zrRa?~dn;6qf#t~0eA-d6J_Tu5ZpW+niNtXKt$WNgh2S!--7}{E3=!gh9pzADMA0on zWHC_Y6U&CKjb0{Yz_l#0Fh*4+r%Tx-d?{CkD8dP*#Sv&yM)!`rf)P)~^$xKLK!nK` zAWZY#2yy&N><2!-=`MON-vCE6kfsiXz1U$zPo#Ehq=5$G0FCu zhu3d!AKIW~sZaack9KYa{n4xEcWmhfI&>{6DK;LumPOQ(_HM~+yq!~oT*MHdF@0JuNS%z0kwh4Z9nZ+Qyx7_buJ?3FZx+zaG^7HIxdK9pEm z^t4t0|Y#2W4aB$z+p*}tWXWAm{!j$ssQyd zq^-CPy1I}$94o5&WY*!jjS3QM9-!o-Q;&I*8ko^{mxdTG#1~V%>>{)VAw}{NEL(@&QVs63ZM|5>GmJ8np7_OQ+?y`V4e3x>)DFH?Iin}lK#i4D!SQ{DZ zc}M2$p-(I45%3bSqDzH#p5mlq)^*`)dB+6jwET7Z_2%L2>zBHCc)9!}7IFD&vXzYJ z+1=UA>}l0Xz%lW)E`;PNFuV{cP~F&RzQSjgq!n|tN|>g;$wCGJp6pwz&$XW|s}bM@ zNY9bE3aE%GR{1u}F5Bzi#yXljg=}&Ddi5IR^JXtUfBT>n4JHrs0K4es4Xr1)D@rFZ z+tvTkn@GpAb4SV^dMN}8=m4;4F#>cR=uTPUuhK{N8Pd6G(-_DX^d65Ymb5MBf=8`0 zJtq@)jPMdY>~&^ELF_m%0W89jRw=Yl$YJrG9rgR@d*j8U?+{(`PR0eXkEc9`A^dw} zw5)nn6R7WTY1h?yl~c0sG$w&^D`iu6nzlj};Pmjw?U5u9x#$OXW1#3}%C7)z{bj-> z$v$RgrH>*w^%+*STJ{R#1xFLEr&TfUzegH-LnCz`;0)n7oGk_+F3&HOlg%SOh(pT| z0ja5qE!|GGVRo6-1i@vQoknf-f#uNWV%Ol!s=i}}!yeXF+&Zjg0 z;hZ8g=J3Lrh!R97EIU0GAko;b^fn8Ntj-q8I(DQfFP<@4>={kS+Dutn1158cm0Tf~ z(?+13rQ__l)6bdK&jjlA5)@!FdcC=pIMHx@y?L@<0f4{JpYm}{pfpPLP`lPNY|`pf+1+BtzaZ{paudGVIm-g8J+>+ za-~;)=vhGNSBu>&U-Z@PNdxfG*Hy{O37&lC;-0huq27r~R>8kvM02+6wAVz`ebKR*q{5?lnw-h^&%b<$9MeJtcE2KRwHewz%i12G&hvvrKV3rwKRuEJJif z1*$s=%{w!_v#(ikk5Km_#3EDnD(*neWTkE72UwxwOK?I(?p)Fm(gYEXsg{Bbvf^p- zmHk$QYQ*sw$V&5B^mWc5>T1(!YF-l4fed*;xPQo==H_h2k6?%&5I3;lG*s0 z;6yGg<+gdP!EEI$P(96R7Sa_!np2YGbo`mso3rBF;AODH?hV=>ym;|JiXT6tv#y91 zvF!p;f*?Iqs>w6vxohmlFLtd6Cu%X%BRXv!n-V$x2sb30oD^oHQbOGTd6ipsX8eD}v? zyWQ$$@&3qwonzPGzG%L^xBDfUJBYdipC${a!qM;uCJ?xQ3AWG;`$C73Txqs~@@O6OrM&I|qTKtGP284QLTol8Gra(( zb$Y;M%dUGa)+cLJI=1ZFLtmvI_a3a zY++_uTPVhR83f;GU#o)jL(EpT`}K9fYrQx{rZcXbcgGCEOP{z3tgb zUls~BH>&CGc8zK}@oSqz1z5KPicv@br&x$FL+0hLnmagM51T#aacEm&d&dj8+f0cOY3R+KWz(!KxsdhcJFP_5>L8@^?49m3VE#SRw3rmA%+hg zC*ZP_RD@ES&Y4Swzf4~al_!MIx}dK&bhYBAj;_`aG%%=i$|CB$M0_o-sy`k2W1J8~ z;(Zwdj67&S#v5u?mnib+6-QC)oL_2HlMu`nswQEg+dHbWp^RnZF-#VtQy4jMSg4|d zarVI$Nc0;`7gNt{gJ`ypG*@E;h;P!XV!1|!sv_PYW}0N$e*_5&IB`^4FJT6>`jnOIM_CL0RLu1{#tFVJ;78{ncW)52-_Agc{Gyu%CUhN6$#Ie*+L6rpZTDQ%dwQvR^t5}vLPxtL*qgobHS#h`NzllZ*SQoius}Ik z<`$rPnuI}-18#wI z4tYQGZnKn%`8F`en#M-yt_l*3s=Bwj`R;ccPFDVwL`I_lWkm7i(>Wj7=3iMmatIG9 zE%y*bJC!rU2U)}^V$0y|w{trfD3MyAPk}SjF6<>0ERI_-9p(q4YzM{(*)H-#(z5DMVUis--ni;KYdis3wBD*Bg#G1a zIa*LH-aJI-A1%DlM&}FnaPSLqXhLBR(JqM>q|yGGr<6gQ2ch$7Cln6@Ko8(kQCY#9 zeklDC{h}03xbH{)p-g1s z5!y9a*d_B-rBtmp*u_{(eu0fPL&(R1A_@EgXJ(Bu^ZLcOd$#T;g|BuHWy{?S?WS|4 z`E5F>q}*o>KFiospXq|({-UXxrs)n%U34$k5saw^G}S*RQdWv9<<>)mV<0{^1H?2S z#IBj)BmaXAz#R@zw)_e$Tmt&~P~ebyjC6xFWWr-pkWuo{n^LBndxA6utfB;_Cz^S* zQ5y*$y-J-u>dGVTLo4Bx$pZxm56oeCg6NvOp}S~AK$$ph%WYz1bB89o!5NI`ZeS0> zbgC;bp)nK21?%Lq$BmJP(PUh>3UVe)@j~Hiu*_YJo=h(1SV@zvxfB2+Ir-@Mo9mkw z2nu}IyncE8;_CW`o6FBnpTFGTA*03FdWuY%OW*)A1XdTe4sK6xT!;uuE8%AjWO}a& z$(B|;gjG!;YN45y$TU`jA!|WHOK_rc8Fy&K@ns#18g$tsjtE(P%p5#*Hwe+$MKQNt z7$Ra3jwYw0Pm0PAAbX4TRDb*CjfQy5U#(Z1J};Hz2P%XEUJ=#TUHi%AoKbuO zRtT;lmi%oBWX^y#jbJK}2N*pe=Ho6uJj#_LIX7nKJQ9hbp@MrLc*Nh)GFV)J9>Srd zn-i2wJ_b^y%TTZ0eN&2+`Z;b2Ww$E>e)pSbl+@^%Lk+a^#JNO(gU5)Qg0mKg3Ajr< z>%*;KV#Jw2cefC$>QF68T*b=}Vin)*J3Z95V6-7s4A3Zu()#6&yWBh7+(WODG#`zT zaDtT=kTy8*d}q2DY3SW|qi<}BG=SvErAe+dJ8$oNq#)jS3Fg;z`=fR@sK8mp;Xz}8 z+`NOykzQ8YM;Kaqd373L>GhRyfvllJ+F0&&bMuQO0CUDNrsHYg$&}Fuw{gO`0`h>I zQk%-y)JQeEc5cFyR+y~Ka};WV+8!#5VWjYYhuC2+D3ZmyNG|lM8nph_N-#Eb$i6-V zfVs_t5%HR?YCOk*h0D|~>${rBZF|ShoTF%z7=2U4uBqzc&_blLK z^@5Nrp`t>V7sFboCe1yvg_9K6b5YAzQJw<`5uhMm)Ot(4Q*#F=dkk^`1M%~5U0GWVW~v4*~{k-)7P&)8{J)h{;;_lzxwPmoRDLM803LwUkG7e-n#|OW^pu! z&Ge}q$tP2a*`r1yY!u=GL&D%V3BNQ+Bo8PO!o$X1s#LK3bV_;%A(ZOw+30*VTP|U) z3npevE`q^FIEfJD|pM$;C z^SgK036sn7?}$mTDe_8@@@*Ctvr0nT<8Gnc=n1eAQYZMjs<2X3j_PoY(xhzK>Ru92 z8!Q4%J?sPFrbbi`cD>S4u+VD8kRN8A6j#30{#ky5EK1RJ0N#Zxh6NlQmE~+F2Gs;^ zoi1k>Hf)JdFM*Gf_I@mM>vf|-&^~5KyEqo}8WZLPCQNT;XFuZ>=fP>abbR@hn7 zu-C;NeeKdBNEtPAFh3Dhn&Oy47fq-p#}AFkBC|wKLmJp`w8=smhUwj* zB{*qY^pMLnz$$q135`z%GH+W1dkrRruBfbw@z~D{2qgy=V} zLER^lwx7iY1I^iZG8>y|DYS&aMo)1`X9L;-&w zW`{EyQi!a!jFHYBo$WZzmS!LW@X7LFKDJ(|71 z&+U9ie_Uo_h+A%(^2^V+sSlXpYGaxf2%_d}@mgiihST{+EJMmAp(P%XHsf8?=+!Nx zC}GH6w_VqXJ72KuxY_)A2bYl5k)k|$@#(9xS9hEB32MYaa^t1b;|mG{y5zVR4Su;T z!_YK>^eHjcV}3S5I>s3+6dwFx7q*@M?ThV{kM(Yv4+*cjnEh15xLr`X7 z@xfPb3@Ehpf()LdMA=16;S}6rnG4%Ke0HaZqd{Ks)QS-?K zWE`NKgp_#BfEzrV&XN9IK{d*UYBVlD^k~=Bs;TIW znf(k5(8eezuOtG8=)vTk)64U*YJ4)u=_yMt*-in6FT}QJ{>u%sF4Ae({lWl8)_UvDmyWTMU2D8lrPfSFLmpUn`& z-o%?39%0bzmSA8J3q!nAxYG%}J-5~=eivLVPTTZZDh#Hzw77YXKcQ4friV#B96!-3 zLi35-K_1&tIqr~~i0Z$YT__+FXC!94xp4I>Dx%{34-BWU+aUc_`Kft!YPEyDRA1zZ zmm8u(ON%AOLtI&2x#GZZIw7e?sCpEGQs<2Ha4&@uBU#(SjsQgQKrnU}@>u|lEdZRLyCzJW&;tV#=%a;r~l(9_r&=(C_YH)|P;83TT z0@)>ywP!T`1*W?V0xm5b6Y2}@0#5tLg=10LiqkcK)LCC6of1Rr zS-@I*hwRU66XM*v;M|Zj6D!vRt-c7OpQccGSpiBT^B{i@eGDxTo?EihxDi4=U6bVEiS)qtTL_9#w2RO<11WXJb#96&h_pL3CDMieJ&W5q zx*VN`5eLFTWU5~`F&x;!qD1b6*STGpkqHEPOS+xX3k)0wIt|A;S1rYw^aRumL?rS9 z*;r7`Bp}xM1l9=Jqg|PCk)E#aLWUK#B%q#2(gNA552-=_oUDhWp9!)asQjN1$lISGHT}yJ%|&5$W>Z`79VR`VoPvCI$4)UEJ7Ab zy5PeBlQg>Q!b;+e6^O(~#YImLR+B})Ev#*C&1_&7rz4&xg)D}1$iovHqiHfWEny8X zi?&qBNGUk(cp5?>KehFt#Sv-ouzm7fL_{|hX!SB^LK{mi_svMd54%FZj0ITQ)eHIz zVVNySV=_qq=|$Q&F(_q%LJYMldT6E~tS%7JT4}3~;!t1^hCBg`^ zuU04sFqux>FBtNik@4!ds?V##(@a`GKqy2PS{k$mq|U5>$zt+!Jv(YQT~u#OxSOJm zz)NU82Hi4)R3;;C>!krjHo08(erLb-dAMB7f=xeC%azzRV^C{#y0 z56T|*Kn_mBu}xLwAKEhkq|Ty-rSUIY;VLxV!lj3x;fxG5j=}P$9S`!pw{C-jqzXgrzApf)dV6 z3@ts*v?Y(hUA%ocfA!!Vjcw&JBxFR~cj9KP*ChUP-X%RN&tNV!YIxg*#^fGGNg zfFF<)0zPB`F+*Wbs%-0L;<+RC6<92*P zHF1eVAYNTApz@|VT(=oxwCV?R>IJzvyP~hqXW91hs3mU*Dw8Ybgef|KsKlA^EVF3S z&W%P9romAEoXm%dieaxi_DN3X&Y5hTwbLLyc)I5$0ebXBs%%way@*n>sMx3To);~O zY&pUpC1A7I@s7@b;$bhg0a-^}TvDkb^MU*t%&u_~t4j}zSkFb)c84dyd`_lg{ zZ~_E8lQA=}ZlOGc>6gs`7ffRci$Vb$7*U9~B}~sCi_9|Oz>;fM^kJ7Mj9Z8#BZ?%# z4^!p(jv%2`TN*?Ks=Ke0nG-3CJu2(OzCsI%pU3y1a2X%a%zcr5vDhh zz}kUumOh*elRQ1;@Yt~3h`jrPs2mwmo5iqMmI*MuMcpmQujl3kJI6w9+Qlv$_q*ee zKNXsqLTcPJp`!fe84mO1wM>+#LetCK_M5vXGb;+oe<0q}xJ+2$T(~)mK`U8^1kSJ^ zDk@BleH+fEV8%kI)N6fH*Z|@UE|B{X1sb-coCf|c{HNn)`q zRSws{{;OSl^-Rc7HsJZ_3Rw6oE66zVOXk8iXIRQ|K+c0C1g)G#h6%^NHZs~g^)Z&f zk{P=L8l7F9BCZnbI$WSVaE*+SlE#&Es)XqyaJsmh5h(S5z_DW-8v@*BxsF3r%tJMd z%NA2I4D)kaXH?hnWiLDE`L-mcmi0mv`Ows&1t9_36~%nzu_h@AzhlN!am7i>Y@DuI zwT9I!5tRH94L2a!7s(Fe)z5LuYB2`=A-OLD;LKvo&tLPPpdEhhIW zHyPbI?H^sg_;d5P;uqph;e)|Zc+XDg0YdeT*zenqzJ+2S$J#c#cL^B0@;&IdO?{QRN)!54q^BoY`28%y%4-%g%Ew*`pU7^POYt*vJeAOj2VuK;@(7g+b{>FKf$Z0mE3;5cEs! zXx)DEgIBK~+HYTa_%M*qe7_6^it*&WhD3Wz6al_+AyUB1r_Evd9!8%5CDwxgz-14* zXa}9_1pfoXK^Kd|bh&QIl}tblK$<>k&P*sbWb0USzwQ=fumNnJi-pf?k>s3!NRh*IgE>(sD5HR4 zW$Yy^n@)yCrqcGAB5AXofpwE5C~onR0b{y3NN&3z?arZJd~#k5V94d+&_gdW;UH?c z60<8>Z?0(!+m0|)JLDa(HMW$f%;{AU^QgMejJ_|erW%~S@4*N1o6so@rCh-W=>q54 zWBVA52}!Q1aoO}opuRBU!Of?}81J^=1E&@tXREE7Lrd>BYT?RbQMlW+Rj`BNG9<#L z6L}h*Kps@Nm1pu;^<=Q1@^BuV16A!_9Lysr$VqM`D?EC75g(ybMx(bkT=0+0J<&(Y zIpVNQI-;ZjvqRp{9inCoXF-)C6=xY3gUPRJS%61Sv9O6Or6ZgK#;aMuP+}6S0nDDdQ#tUlSN6)(qalkq&qzY)?OV*oGs6zWcVYbP9a_9as2O%g5er|4x|}#J4!i(PJ=OX{?vceV;8b#Dg2li#a&iT= z!4m?N22v#i_T|$tPUPd`VNeHC0pCC+tA{KIo->0WNAe!Np|%0)a80(8B`gcd`;C1< z$s1zI%@n83d(KVZ5VmklJ@icNaBekh(8z^T;ARPqcaUl#B3J03pTZg$M9aj%^&w7V zM2#$z;~}&m6w;M|La--wT7hq!to-n>+}s%e8VoH;AfgzLenIABnms@W({)u`71mBi zPqr19gk1|TJx$Do0keociI!Gci2^pm5YeOL-z6y|73}uBGz@!0i$FHIcozGta9WU zI8Gd`emv4p$QT+LdKSnccU_o~AhC%rDXhi7*&`8hi)>X~Kr9ayg9UuB>*hyC%Xao# zZ^;;w2gccSDm9cM$0c9~7gK236GKXu2ffqe#zml1v0Tm~qrq?Ww=HW*iTk3GD+-(0Ao?U> zBBJS$AVJ!3hJR}mu(^+J*Cd&FzWJ=52vc_wbxC<}4+TGG$Pqw150FQd0wjFee#vC& zqJths)&!&mK8#M!D(Y7WQ+H0w5=HqjX=n5OBHyI~vZsSF$fgJbf5CXgOKAorKwVv? z(F(c>ZNVw4^%d2awsaM9!Wbr#*VWTY&PFT5(&LeBFy73dES==(oQs>uxeXmO8gRr= zE~6e0Tm^-C6R0`S_R!v7#tS>>PN6qlr zvq_+j&zPDWaf1queSV)uJXb*aHeJICLL?8f;kMHpk`~2uS}V3b^@cu9pFxp}*`wi6 zIW>wfJ&XuK%>Dky7dX+aT!#{t-tFO4x!cP2i--Tazu996j6K<;n=!^m?G25(WLdr{ zsSDA*-gG+n|q=NR$@3f3caBblQK!r*qq-Sn@_2;uk8 zNf!c!bej#sZ-(6(tDQ^Po?lr=^PN%a}E|ZB^y6_CQWO%BoECeK)u1XULi1bm`8$#dv~k`q;} z<%s#*M%Ta+&z6ZVCJm5MmOy%PyTdX5vt{ZyT3>YngfUP%#mKKdn zU1svhS&umaC2_1mHB4|Q#JIyxx2@hy6WDhi=rYf{G-9RmIW;6Rm$)h28ycRVCI%C9dXd5g4{yUY^);G9sGV;HBLM~P>IHgRY%*QOcXSJ_G+Gx14FfY0 zYO8CaA%NM6M<)-iK}@Ec48w;VLoz#u42olnQ6R6|+Xd!IaXS2DPWRayAug~jHylc8 z-Ao|M&Lhq5i|0Vvfut=IXpp$G4qkZfKHx7-(a5Z-xeeG3hx+MvW6=m*uzOG@2jrIM z?*$}#2%jmDs{+)7h}QU_iQe0V$Q`}0UMMJz+ZljV`@7hc=AcA zV4!`BItKmj>B1J@wME}ap_LXtgy)oBs-+Jg4PJC%Og}SC)s&qlk#r-IA)&K@q>H2|%^tNEfn1%(oy(Ia_K7ah6a)wZL{-}i4cf^` zP=n`YKWtAWgMy z_fz&fBBD#Rg_Y3laEr1!dVUR__ZCcUqxHo(a@knmk0%{XqLi~8=5y&@nPw+W1g3H3 z8W%``bVVb!+|e)tQx=+@&4Wf-UQMV&-aJ-dY+I<5+Ui4;URJwj?ywY(sH_b{OjA?u$s7Y!0lolfYN8x~+`Otgf-?|{%&TK^`Dh=+ zZ9t7M!SrB}Su8&)ilEF30zl5N8SMNz1@|>2$!NE3OQ3;Uh)I^)IAa}1zG#Xn&fzhg zYp1IK!z2^p0NFY%49Q%V#z{gglFoWMU%!6!_T}C4m!GabL(P;om7CwyvzTowv9pUg zKYma=ec99!Ar$)`Kw4FwsdMRZd7B z>3CSE=CbNo;J8k5aW6@BCE|5TIyC!I)>fZ97Hx5bMLgbl{iyxHhp#_q<44PBSKM;z z`QbkIq6srnU`WUhk03uP>nAV6Q$jQgyhN)4%9b1(Qh7sz@t7cGvD2e|j^My^o+^Xj z8cS`r(3%1k0)`Pttg~h4L5ZE?VKh_b+tmsQdeBhw^AI=u&Ick`zWzX0d@M7z>&06% zPg+`YI)}jR(9*{{ecFrUX%D)7Flq!Zr`w>S;{p2{D)ePWo+(D5up3?2H4&i%I3CHj zMq{A!EbT@!j8?CBYg2+PIHA?Dln8o+ zJUI)=w*z*2m5BTR6-H^Km~NPMs*-#GQs-=Y;Vd3pf}x*$k=N<4vUKdCl|IL-%@wtK z65XCwxpDzYZ?{P)(wxnK#!8Dcy?5QA7TX#@lFgSN#~{3JW^4>66^m@(i^?Q}ci11GcWDloj_hLLx&|GEr_vjy)bgWbiPNt?AAOFCmR#{%=79`sl z7Hd4176wgH2G$#LkS5F~#&aN$`>Q{mmKg#T8hktnq^Cr=66qOX(Wz01amMWOs*S7) z)uV(_G-FK8d|Q}JqmNw|A~uwRR4~I_e^B+;GKeHE_6q&M@P=CQ7_1mVFEfinGhw6A z4*wqFu--eK@~raX)ge1l!gNi(0@TN7GuSFN#(xEnIx84qhz-J{(I&o8(nn+UDnO?$ zvaZGaa&w4;PeNtI2`oH8Z*XL;K+{k?52`R%Yt~a4bQG>rgo=ymZXwIym3$98++2Mj z9`O$OxNFB>JUhS~BD7?lAF2f||77tU^ba zUdOG1p{d+&oV{dViJ&xfZYcmiDnCUikbt@YC8ts2jV{W``HGRi;L7l+MQ+^ocAjQO zrbFHRnLLiBymvdjLCuanEM(az6M@sQpn{utIV#TI^7Ki}KOx7{?(+na%rZik{o>i- ze-N|CRuiAi_SR;(BJOTF@wzY=eRV2C1zE7f=|xPA4q zBvz^;h}l8a?Oow$)=p>`up!v;&DaBj2rx$^lY%jw*IB6tt24lBx%Fd!s>MWAH-@08 zXGGy2uAVW@TGvpd(f9@RqE3sOqnnRE4i%YHyQ=<$k{x`Q2&f2Jw#yeyLwBaaWQvWAH$q4>2!(Mh*hdMpI)B74F^ws$z#w1CBMJ4 zQ}3&E>VK6^19sw0VHOJJ(Xdysoq2u41}HeOB}te=r8!N4YsG3-D9he_G8q9{LyTZ_ zzFkeO0~J~%T+re0DjMO4zen}84WRJvk>Oo5 zB%!zg(uYEM_&%f2IQv4S#2E^qyb4Q0t=33QlrVSSHuTaXNLHtANp@$b93#Yp!nGRE zivU_bN9R)*_!Uy43>uoRMyCp^nLo8k`8>WB*IfP-AEl85AwG%k>Ow}$otg)p7n-Su zN4GRu0V6DZn#Zd5Tsn|@!#Nsqe<0Z$jc`g=U}xDSy)lW^l7-=yjmkV!iJzlX9BY%t zvTrI>Y7hL9YH{zp?Og@qOmwH%491%`(nK1!O$HF!RxKpgcW=Euz|(oBZ9BUTn_YB- zz*$%yXn}>mDR5+)!cqrr*=EX-$WtW3_6q-I+YCDlLJ&f4xaZK2m?V`0nkJE8215gj&O=6+#&J~!Q1K?qv zItG@T8LyZu5WB#vDHt`OV~)*KodZAbG5-3T^elu=2!MTLR>8XMZTj|ZfZaKfe=F!#>lMYw(blPyVhgK{$ z?8Bv9kdmE_H6o4Na*R_WT$p_^KA#<(PAmr<-foFJj_%!aVGn%{a5=*tQFvk8Q(+Jx zNWx>U3)8M$NsD7aYTyqg>WME#m>wI60!V}h@OvB$O8LuXCXZ_O+>|Yx=0nQ>ntB;~ zaN-qqtfN)q?3qPQQ7U?ePG@0rXeAl6nG_7VP9XT=87qB;a={7{9w7*%&3NJJMN@{C z5ND1q+tPsTcbbB(b6HozVpBcnsD%Cww={!>Q;W_?O_Hmr&E}E>)D&jwy%AuK`^m1W zpK&Zkvh(2=VH4a(;{e z_~8mi(k@}$Kw>tFAa*)?+^8ldoGf?;>!5B>2=%UAT%D|V@WREBtp@bY^Cq{NY!)#2 z=)eQFd*KvvEgP9RPb9}|v{bM_siiB%OYj%U^V$U^GGvq!sX3@|QO;ovoTf3#pIO{y zm~zI@AfSh*X4Ri7yD(E2z1Q zLRq|%!yYkij{MvFs1M>SL&F+!cgDy@k&(jQ#*Zs#*vKgRUxVsZ2(-PolK!-|kQxF@07SK9iLs-5?s;H7n_@X8~zpr%iz zvvU;j%smQ_!-Bt3MN7HIg$}6LPre%)dcVeG;V|K3j?fZZ3}y~8$d`?QK75;QvbelZ z!6LNshf;w-VJ&S^#Wh#=A#!oeTpGj{?gbb9L*3gD5X>M5B+#2Y5_Dh7o-eM!G)1ov zzj%50r0Tk=05zNDN`s3NXA8|eQ;3c}&K0;7sKdtxmNO8dVhf0^$eIzC`%*`@h+54Z zaDEsI5@busNh-9MU1~8UyJ+sCk%T$U(y0myY6D#NX-z$>s>+>8SnBSXpT5GFGD$Px zOtt=(p1S5edAC0I3m)h7jx(qpMq!>9a1L+lR3dq72|b36qxGynzyyK>K89WRXm`n;Yen^w|jYGpe)KkgZE^rnQeY4ScIY~+5 ztJ72i>!!lY$-v#}1tV(k*inWa@7z9W-?snwkK3mi*+ANQW})#UcA+*!_WE&Jc2%!` zA}J?Cm(1X9rqttYJ;HUSraFNc$R>co>jL;W2#2>=z!On{2pqGPMU zD8PQa7~udeocSTy$2e*Z;$`SXCJ=9z1{>jl5hK&F5RM|raBY%AAJqu)5nJ?xohPhO*B?2V((anD6%;$p)D#`Inb|l&iIotqh(Bb7YVbQ;$J78R?`d5_1S;jwTaiRJ;NRQK|Wcc9h zY}YKp7E8EmyCkZnrL3ea8)147Q;p>#(ToCbPhrM6E?p%B2&+!2o9CcuLg{*M#F)mO zVKa*cx=!0Qnhr63hO>%Z)a&~YYU}p(B-}-L*XFTRLDH(Pjs62F55~}6NYzmDJvOzZ{<_1ej z6>KYstE4W;=j0`y#->z=(-P2gJs1&wD9gzA)lSI`fyN zjG`ry>LEaV*mCrK+IDzyr5UO9P0wFEY+g@iQxqvs+fr+FA<}om&EtHN=G1lrY3i4G zMKp6n7Do<#B4Y*>x&_Fl z0!wrKW&@!&E(JIE(vz)17Q=%AP}j2x=UAc`r$st9}W6^DV?VkSw< ziw+txzXB5@#Y8I=8v1_DUsPpQB}SGYJxqJtBNsgxI<)jSeWkJQ=4k5()8o>iQ8Ugc z*{GgiS+0#Dc>wwSLDLphgpMe@{mKRJUX~2rQF9@7~z~#KhzC_rpYTGeGlSfoB6Bkr#|xT;SQ{4QxqjeS1pJwWHXi9 zeI#^|PJ*K<}EV}@|Ee{UJ&jd|y% z+QnEef#2)>@^T4Wq~+>jE=-PfMz*D!H+P5?!&tR@1LGcs&Zub(-s6BmZ6w>p3L>&# zW;l!xlI#3k=YFxy6{;~qzau;KHP#_?SY*qQ$($(AW7+eVnpl`lQZ?d2O!Y+2cU0m6 z3xf1IJ3dCFdt}F}qlw)_JNVV?2r~M*jqPmT0a+J|5L~t1(wYi|OhxfB*WReEcwr=G z6a#|F@%{LlZvW~9-Ocp@i$Wq4CsjVMjJb5*!FT{mC}c55DMBr09}$+iJ4b=JL~oTA z8HIr3({Sbk)BU0$KR2^fS+{1W?4XyC?}V(KZe5K?ploPnHYrk&BBSaC3mW}kW}QG) zJQnyqQp{+1sdYN%ox}r6@I`B~Hc1c&2*2jC{jM(RVc6jYuSWJ9VfqM3mpuz;Yn1&< zST2k(QpeRvxkx#CH0Ho32x&ZoKrzTgX9&SO03#Z8ClsncnyZWYu65VHz#FPk@D!tK-a3AL~kqm1LF*L@C=Fg2U9=T5M`IIRTJWa4y2= z<@JkKpH8J4t;erk-ar3TTiKv?A@5@kcYQDlDmlH2Fb&^nhu0l$?{NEQ2HY&?!wW52 zYeXJk=5*d3@;Es^9{Iu;`UHvdgK!E>y>ALRNnsu3yD#QY6>y-*`Q&toI3NERYyW3$ z&oT&CQkp@yg3RDbpB~sc={DCH(U4>L!b3x!LMR1777geN99x1*I#v&yA@AHkMr5oy zRoLlt26eQg9h|-di?b{Z_|j5fGL+&ZL{RLEb3R~Qlp-08J|JC2z+upy;(v6;b9}v4 z6azjU&wD;dt|K39sn)&Y$`}if-kQD?;TZN1N|fwqMFAj=AmA0>j8SbX-Yd+psP@1+ z@eC1ax>CRglXUM<;uWCA!pERc5vkv4403T@t%RxjmocfYz{Nz0P#WcwrBY72?Mhp? zppP?d)@!t6N0>&H$^XFd5=Bawx*I{FSzlpwk)LsaH5yCQUARAy;ln0OpFa-42?#_1k{%%Qy<7twqOFU z`P$GcP$`O~?r1YJtuh=flpJa;wgt+;Wzw;uogAhGTw@cuD+d{B|5CECr6jYdxyzOg zAzQHXWXis)c~K`lfljKZ1e_C;EDh913DFA~QneRirx4WL96N<5BbL=t`hr}=w8K>C zP7SOVP^`uz)Qgm70Ckj*8kWjzlA)y!=hPf8E-vTelU)WTgKv&~f8|A*!qr+2GS^4;K29Gsz zr=U@Jp%rLQ*2G8UGFLq|fkOOn7XMhFSKj&`C zBj6QYic=5A{Ea;9s|6-*(r$*VCav?QsDydEd3Xxz=d0K4^}4)Zb77HQJ{R5)?&Q3O zB%)8gocVENd%?aSOp768y8w|!AU3*^0+S45YSwG08K`=I*s5G$#fXA1+X$CM*2)ad z$K73e>qJq?OByVVE0~=_ST-}>>Q_0$ZXt>lfDDtkNM{#3mtDp_IQx+7aWo@7!9Vy3 zWUzR=90RXo17@R_Zyv5+-flkn9#aBM_U6-+Ac#krSA|9`tJ~--&k1gzlUYqi5-hIw zYF>K0^XnRUxR;)MoOQ_Q$RwyLRJV|9Bn8Tgrl78?;zKoR#H}M=;42+qr_@LfZ%K)( z%E?SZr*-mah2SY$BR-EZ(`xMDS*fixO+wcQx7$vVtCW}-Ye#tv8I7LbrBaPEln=(2 zws)ip(`bb1wGax=MmS2ov>HVerJ22&fRSNn6PPwVNccNMr_4#otKwQ^{9s$-4#9+2 zCX)_e4+6tF3z5fa;>6uxS~8PHkw{Orh`^~GMI2}E)pdWd{U(RkFZigrPYZQ~Pmv6e z_wdbt_1R{IsDg})cqW#o2!@u{(RMi(Ve0kk8KLB^JlCUxy)E@^sAlih+EVpa{d=*p z!byR6Jt2TnyTrY{E=iF`*6)bMq+(~>IacB?n6J5k9BzAuVc=IdCGFx$;RBA-N0tv# z2LvihjuVdX@&F*o$)-d=s$xP@*U{Dj0v7NB6_$?-9cwUqkB1EUGK7|q$l$1hcopa~ zNi=pn_swDkjRJ-(WQiI98HO1sp_+si&Su0BX~*Z6?bWMSFW$88!CzE_tKIE9?tj$l z^tzAni~n}Jo!yV{7mh+B>~XivtDXHGxWsFC=HTsn)M~YU4gdc;{CThSwV!_T*S^vE z6STvhe~llbZ+`u6-y41N*GJ#@rLV2N`SsB^zH#`!eG}LJAaugNZTxTjzVS;Z-r>vO zzmwh1caFaK%YXZ||Moq+rhGQv6`pREA4+?Y5#4deNbut zd8Pf`O8YM>?NOyYuCynW_Hm^>tF)g~+GmyaMWy|5rM;}QFDvb;EmCxl zAGH4aqWv4K|GjAc!`3&xp5OnQty$6jt=7LN+W)BaZ;JMBw|?Ol^80_Mby&22xAn84 z{d=wdxoH1>>;Eg-f6zMk#r%2yxb@?r{fDi8RkZ&}>;Ep=?NK`z>DO{P!wta`W`({X+WT_x$4o#IN@&)aCuwKdHdm zmG&Q1+8*|8GDZ`5(RAR{O)&|5CKS)A~QW%_sjx z>!a4c^)^@X1IP!hHxHlnd-we>zF7a@`o;S5AHQC2zIc4w`jdy&pWL;6{Mq1f=kZPd zZuhQ#(7o>-+;#ec-tA3q|6nuN9pJD2^?qO7%IDm|d-V7Rk9)nxy-OkPJ=5Em69dtMMyZb)O^~=qVUp&8A^GtAr zu;I?ZHy<5HReslfs7C{$$SO0Mzuh|>i z4ZEAp!R~Oce{g$$)9>7O?`|;6&F#K!;qeUDZ(lsD9}scN8@s!YdxPO-_x7&W>27YX z`vXoU-rX5Mg1;Rc^mpw>q;0)<`#JCEJRaXKWpsPFL4ZZ&3yWM_g zFudN|zaQYa-Qnf{@(52x;wnSxgG2c2i^U>z5BfZ z`VV^tc8gy1>Fq7<>Fqt<8x9Ben}aSCox8o=d%X1?$Z?Msbvk#L#OiCh!@*-jVBZdg z!~S5eGwg3}?>09#!`|K90T6aGxa-(^9A_Pc_V#xl@89H z?*67bxCY|g?A5WA?>gw>+1K~iH~ZKr`~CZ2_xAp7xVi7{-rf%mb~AL<9(%F*^!oNE z{IuTV{_XAl?cUAp_3-+3pWCau4-~w+?ceTqFcAAREEO;bH}nr4cL#&pd-lMZ0d?-K zZ~L9z?!nz{_j>Pke^?oy-e>pjVq4wxZ+ka)SmfUB;O_SJrh|QQyWhXrT<`TZ9mBnH zAHUWb46ttfAy#*@d$WIsE!o+--aXj6>)v*E4~7S~H@CJ&YWI?s;5$2y_i^9u-UctZ zKDga<&^YJ-6R|_F)$i}KDT<`%)6bv3;?3R1!&|&_2&&UL0GeUJK^D4uoBQEickgEZ zdg%C^(=p!cFYi7ECAhgh=yk8JhlA_A;X!xzu6H*a^oIDFVfW59YdQAK7Z1+R76_3ySrPurMnxXTe?fSy97kK8w5mJKm-ItL_|SA zN=oiptj~VOIp@Cjo^$R!cii)b4#xP5XYDoTn)5q3*VXk%MWkSv8idB2X>&m*|Rsx9@ty6H4PjW@&~35%q4%zJb7B?%J!cucwpN9 zSnh23^Ji<;GFS8FO#{b>JS_sdNnnr8pFexcz_BS`?*E&Q&Xp}smS!zm=FFe3MULh< zbL7aAGiS5Ffh||Q;O-C@Rk?HJ{LeO6U{CEH+F;qUw9L^ef3AEj1EVB&U>D2Vs(H42 zfzNIpSm{8FIhuwJ3IBCwtvWRA)+V&MbLVW;Jn*KLIdbO7k-ug3=J{F#wsoFnIdkW0 z+AMI~|G%92KgLU*K+-L91U62yz%b97D=;(VGMhks(;M|raaNG?H?7*%ZNV$2dY^?&Hmn$%Ka^}gE zC-7S|oJ#)d*aD~A&}hk%J%7$@x$`#7-8^T`7TKBw4t9a_a?>0+n+8r7IdbIs&pz1c z`psSv7+-k;C$hYOLr?x}t#V|`9XMsQY??c7_WXHU1%8|Hf417)+jb0nbdDCS0!asU zr@%+%&f7d&aICdxnJ-7amN}XSPBH)4?irZ&KO)PMr&-{jpQBmsY%TJ%$e$x{o(UYm z0>|1`d9vrp(KL6{|8r!4kIj`cORkp9bG6EwziIRQIdioPbg`P|&Yr79j-1)D=W3ZJ zaAeCD_|AFYVMyScqoMDf1im%;AFq_|)U;WLmjC4|rP_A;Z(j<2G4;Rr^-SS&3%p#i zX@?HYnl^9$=8E;5DPeD}tRn_4KZ94m5d)Wv!7JCG!7I?9!7Is#fy>X}6AhUJW z?1%;HY%Ie1oWPab#=|_z>%7ZHK?9)#8j5e`A0==r6EScR88c|$^Wp~$+)kuaX9ya& z*37Lg6f|%4FC4AM8*CKR5Va@O{BMq@aPf zzIp$f?G-5A%qK8i@D3t4{hRp(rVsYsg7ZlhG%%mwb#Tz&omX%>zL`(pw&2Zlf%SOv z{=jWP@J=tdUV$s*H|7l*_+hXk6)|vI5bPuce;(}k1Z~9D>>M=Ej0ko_A_i^~f}M_t z$-=^h1x+3nHa=*Iu&}_;3yT=I4VWD?FrOts0}Ht_XzH-A@Nuv+SO*sBK+v>dVJCtH z-hVb|Agqf)(}#uK3L0oj-Vd5FEbK|pz#x4YG;^S*8r*(a0(k`utXzVifsj)L%^nt( zC1{`xm^Wz7u&}~GbA^SK37R`BtXj}KVPW-x2102WG+$U)r=a=6!ny|y>;#_$Ef^Ly zGH9W&u*pFShlR}vS|luNY0$v(uL>Fnb-j8kcQe>e3BE6|$=?{*v~LU!iQwyjUGR;; zJGEdPi1LkrDBc*p{Q`^rrVcF98;i3H!}re`>bh*qmTb>14Bu}DsE2YiCvqC+a1mE< z4a2whcJ*E!;xV4#1zzC|-sU|%<_kuUYgE3+SbQ@s0(mA?2m4^bd^0jT-;9&M>u<(M zz>;1s$11GJ@Z(TZb!&EHH}>H`4(C_~`)h`Bb zCja0AKIJP$a(sK6F&KvlnVe~vnK_xCMOm8R$Ioi&+HA`VG$6^8|Wol+*cIIVamSnJx9GqVj)?|G)Wove1H}>H`4(C`-;tbB?60YQ0Zstzz z=MkRZSzhEd-sB&Az^8o0NP!boaJ}DV48~zXCTCh^W=`g3QI=)}R%2~8WOKGK30xsifuIE+;`})E4KFFgy#q+$(>%7Ige8^{f&B%cZ#^C&;GbZCPF;g-< zvobdevN+4I5^Jz78?zXca6K>cI&bkVAMzPr zGxFP^>7z3y<1sN)GCi|0Hw&^j%diq_ur3?3CEK$LdvO4Vax^D$8s~5kS8xqCay$3( z5RdT;FYpR)@HX%9F<&r3;89?3dqm}XjKu^@%GAur?99u;EXi`L!kVnlrfkiQ?8d-h z|IPCK|9!vL!E$tCUk>IdhTrE+SI^^8uI2`A=RO|cNuKAAyusi3fPeEf!}~$u_jBQW zp@i;F!uvz%)!}`j@cX#%eo<*ZugL$W+v9(By8qGl|F`c8K3NWq=fJ-=CSzI#S{`p+ z5AOp6S`u&Sk}S_^ti$m8|5oab?9P51!qNP1moKK*|9kz4H~p@_O62waK&#}-gN(~bNhe09D&x` zoAFSXrC5R0S(i=Nnw{8#{W+9lIEgd4fXf-)uiB*E$pbvf(+uxZT~*)Y9X{l9hWDqU zIsU|8Tqfq5zGYy0hxes&cs)Ohu?#CSydTv--JI>%g}oWxhZ>lCzj*?==)N7|NmFxzP^JW*HWM-h!`J_R^f(;eFRo|$rfkE`?8yNf#<85tSzO2!{EC~oiwF5F&+rFcQAds#8b|Lk7C&NmUpJjPEAy~0 zOEJ8kTU}k3P1u^97~aS2uO7-V41Rw!cpWs8;r-j?>NVWNojkzszU^uC1zzP%-eGvZ z_PIJjq|oO_V+_V+c%L?vIwNy1KZ`NEKU-N{lMUFM?HJyd?X4cj5ggB{4DZJ-Rcz<=idKtguM($vEU-cXHDSpo@{DtBD)W6iv7<}OO=KhrLGrW(QNS%@y zn4S3;-aq|VU5THtKASPTZ~Cda7lYqp4ld7dj$?SgbhdgCzu;PKVR)bPYxOaH$BX=l z;r-D+)sOj-kpd^S;Bvjg@V;n#byB8bX69meKeU9p9ILW68!@~O+CkloeL0w;7~cP! zuAaxGT+Iy(?|bf3AK^)!=Z_5UcmA$^z`yyLQKE)&3h#5qRwrZ%re`*W_cx2EOS2+t zupYzvnr+mb*^>h}jN$#v$?92L$QAsG;eE_q>Vy22XZQod`Rw)xQgL@$!+SrJj@e3 z$MAmS&+6N}&!_x{;eE(=-wx#!iytvL(=ojNm`7chrC5R08QynnqHfJj?7{vF?>CN7 zPvT52;Btod88@kS@&J$WG{gIgSJgLphY$Ij;eEwu?}YM+!MIG!R1EJY=1}KnF_vLv zhW8O0sGGALyRbJ0asV9EXne$#yV`wR_w^`?8hM-&CfZ5^SO*)awB(eKfmEAe$OlXg@5obK4b8UcyG@C ze4lZch$)$Y*_n?;`7tZ;6V_)lw&kbn#m_jL<2Z%0xrkqIEw^wtzveN1$BX=lxA-R? z^Ccq%ZfM_}{~43cigZWvEWmuUt*?`U2 zj$PQB137}@IhAv`m@B!CTe*jac${Z>iP!lX@9_y=@vXoYdxJSe=Z8$dWK7E}%*{e9 z$?~kmI&92V?8xry#~~ce&pCthxr|?OBX@8=zu_r<&nx_efAB9pV_2+EK2iBT<1i6Z zG6Szu;PK;ckA-WBiU6`4eyPPd?^LMhY~t z-#jN_OvYzYreS90VnLQ*IaXzDHeyS5U^n*VV2abt;D2-o=JYOO@gpW@I%Z`a7G^0{V0G4I6Sih2_F#Vw zF;{XOw{i~;@i@=&60h?&-s2O#;#+|+^yd7}51D|;n3h?Xn}t}C zku#ZCdMCJR8!$eHU z49w1aEXt2riJ!1Oo3SlFWiNil;T*>)oXti2f@`^jyZJSb@jG7RPrSuH`Is*mDey)A z;5d4RF&UppnTDB}iv?MNr<2#1{G zaXq(jFAwts&+#&U=55~RQ~txqNkTcj%UJw~$(fE>nTLg0iWOL$b=ici*@->apF=r@ zlQ@$LxSVUai930KM|qkTc$GJKhY$Ij5t4@TiN+X=%fw8@jLgCOEXFdd%$jV#=4{6< z?9G83!SS5RIb6(@T*s~4!$UmIv%JLX{Ehecgs=EkvQSRZ`5_Z98PhTgbF&ajvOKG? z4jZ!-JF+|baR^8AbI#y=F5{Qn$Q|6zZ+ME|^9q0AAN-5Y7?wPgPgK6oI84Np%)so- z$D;h0mG}wkvl-j+Q}*I#9L{l^!r5HJFSwRlxSL<|7{B91{={4SlaKk5ky3V9EXne$#yV`wR_w^` z?8hM-&CfZ5^SO*)awB(eKfmEAe$OlXg@5obK4VzAP(D%lKI1SEQ!)dyGarlcV^-oP ztj}g_%TL*hpK&BL@EnTkt&5f!)}bgE@*5Ii2&kl&iUc+qsWNc#`M&BX96`KH%Sc%_tc{ z%l#f>Ga*wjJ+m<{i?B2+vIgt1Dci6!dvXAWaV#fu78h~_zv5=@;z54PGyH+q_$%-7 z5nnL)JC)y@|M>yqF$q&M6LYcvi?b}NuofG#1>3VL`*09PassDuE|+i>*K-^9@-R>E z953@{-sXKij*TA#*67XpF(QOw3fw$Q;biVl2bTtjPv!&UWm=-WA2I=xF)gz&Hw&>O%d;BmurXV)BfGO7 zhj27M=M2v0GJeU8+`;|)hNt*FukaWC!N2&7!Cz1xJRU{m`;5axOvwz)&U`G&k6DSI zus)lyEk9*1e#YS($0?l6Mf`$mxrMv=HIMN-UgS@_#XtF&FBvIYD5rNAlku69X_%RT zKhp9h--0Z`a;(bQY{ZuAz;5iz!5qbjoX&Y%%GKP!?cB#BJjwI?kvI4|AMkI!W|Zuq z^?i@AnUE=%p4pg}MOc~@S%dZ1lx^6VJvo5GIF^$+iwn7eUvV>c@gTqD8UDa){FQh4 zh%XrY+X!#Y|NMaQn1rdBiGe>r{bsrXEY7m5!dh&|7HrS1?88AE$qAgsxm?0kT+eOX z%fmdubG*!-d7Jn7l>abt&d~b4%UJw~$(fE>nTLg0iWOL$b=ici*@->apF=r@lQ@$L zxSVUai930KM|qkTc$GJKhY$Ij5psp{iN+X=%fw8@jLgBnp9Xs~o{F&yE3+mWusPeY z3wv`QM{qo+at;@BCD(B)_wW#p^DHm%I)CFmKH)3Al{>Va(fJ`0Fd5S_3v;s&OR_wx zu?`!v6+5y!`*8?I^K;JNd@kdc+{hi=&u@5&-}4H8;UD~q&lr{`luuN?&p1rPl+3{F z%*Ueqn3ebm>$4f#@>BNWXB^IPoWj{$#4os(TezEF^BBM5MgGKF{F9IQl9BR;a(ag` z8J|g+hMAd*1zCdSSe3Qeh%MQH-Po6dIf@fGo%6VqtGR*OxsOM9lIQs&Z}4|M;NN`B zDEUG;y~o&0$P`S^Y|P6dEX|6n!Fp`UHtfuv9Kc~5%gLO@gF;{XOw{i~;@i@=&60h?&-s2O#;#-A6IYsA(Ou%GJ%Ph>zLM+Mhtj0QQ%vS8k z?(D}Q9L>);gY&tJUveXNa6iA{DSpo@{Dpt;FFs>f;ZQzN`99+?5mPb)vojxy@?%!w zC#=tAY|BsCi=S~g$8id0a}mGbT5jQPe$8Y2ju-h8Z}Cq)=1WE@63Xcv#$YQUgpod z&HH@He;B!VD5rNBiytvL(=jXaurN!p0;{two3J%Iu?PEeD93OTXL13Ta}76fClBx_ zPxAt=@+R-_A)hlsiBLY#7=v+{n5meNIhdctSca8ZlMUFM?bwCAIglebo>Mu8i@B2P zxRrZ&h{t)Bmw27O@gAS>72hfu$|*WOWCA8*T4rHx7Gg=3XEoMgW42;Pc4t2h;b?x& z8Jy2${E{2FgZudnPw{(R;V=AyfAJZ^N`>-?%J&(EiI|cZn4S4plpnJaKVf|~V_Sa8 zUi^&1IgV2}n~V4b*K!MY^J^aCcf81-c#D7XF<&xL=}=DZFec+ODbp}BbFm;xupFzh zHXE@eJFpx3axh16BByg6mvS{Xa69+$2v71nf8-7R&IkOPuNmdzP)_eLHWM-h(=!|M zvItAFB5SZ7o3af%vnK~|7{_ulXK^7{@GEZSE*|8!Ji{M&jlc3PAMphvmI>waHa}oI zCShu3Vonxdah7Ej)?!1pV0(6D9}eP3PT(}o% zJGh_U@D#u275>6M_!plstU@TCsC=Jsn20Hvf!UdlMfou+@e|f(Gq&ZY?8VPGoZ~o! zv$=?0a4olRH^1gFe#eXaiMRMCAM+(6RSf0y4r4MtlQIo6GZzc81k151YqJqsvID!Z zF9&lJCvrOHaVb}G1GjS@kMJbV^GDv`?|i_&`I=EGg>rh2v6+x5n4Z~~mql2b63VL`*09PassDuE|+i>*K-^9@-R>E953@{-sXKij*Tp=v0f zXpF(QOw3fw$Q;biVl2bTtjPv!&UWm=-WO%d;BmurXV)BfGO7hj27M=M2v0GJeU8+`;|)hNt*F zukaWC!N2&7Vbw$VMCJR8!$eHU49w1aEXt2riJ!1Oo3SlFWiNil;T*>)oXti2f@`^j zyZJSb@jG7RPrSuH`Is*msYWQLcNmlLnUramnYmbyC0LGCS(}a6k{#HMeL0w;IFZvi zk4w3l8@QeOc!Vc;od7B?F9+NONGchL%usF-I3Tv?; zTd+O5vJVGwBqwkh=W+>GaXq(jFAwts&+#&U=55~RQ~txqwL&?)%UJw~$(fE>nTLg0 ziWOL$b=ici*@->apF=r@lQ@$LxSVUai930KM|qkTc$GJKhY$Ij5o(9>iN+X=%fw8@ zjLgCOEXFdd%$jV#=4{6%w_|KMMI#;_)#e4_Gw z#$h6+WCmtuJ{IN2ti(@PpUv2opRyM}<8Y4S6wc-%e!;ce!rlCu$M_vD@+aQnpM1=h zjMOxg(>sjG_)N+)%*oX4eH%?;eneLTXGJkK9_ zgTM0u|K@8(X%@=qJ;r82reJzzV_p_vX;x$n)?-t)VQ2Q_01o3=PUb8w9LWis#<^U= zRb0<)+{?o}!E?OKpLv`2`IP@Ka*I$-?=luYVsfTqR_0-0mSP1~XI(a7Yj$D}_UBNJ z;Uv!F0xstoZsJZJ;8C9D1zzP%-r++&XM~oae4;T1<1#T*F(Y#@KZ~&pE3+mWusPeY z3wv`QM{qo+at;@BCD(B)_wW#p^DHm%I)CFmKH)3A)hd)zbbiPLOvbd#!rUyxk}S_^ zti#4^#g6RGejLKl{G2m5pUe0qH*yE}^BbPx_q@Vi_y_;uGlsPelH}>UVj^ad4=R7XuYHr|m?&A@jO2J5jY+psfxasY>MEGKgo7jgx^;%4sRL4M0K{DIf_EAR3VUoc{q zP(E+-1IA+#re-GQWC0duSyo{!He?I7XIJ*&Adch&PUBoI;VQ1@HtywNp5QrN=Fhy% z`+UlO7`baGr*|2PA2B)8F)Q=1FiWultFtbfur)ie2m5m<$8Zv7asiif4L5No5AY~Y z^8&B(ChzbepEE+YP(INZgK?RdshE*Dn4iU1hLu^94cMIR*oD10kRv#rQ#pr=xsvO+ zm3w%I$9a~Qc%8rT9-r_P-|8O9DLOx70w!ZxW?^m?Vo8=~HP&Hcwqi$iXFm?%XnxKa zoX=(ak{h{$`}qw|@q1q3FZ_dl@fpKyZ9ILW6 z8?hxjup9ewFh_ABr*j^cay2(_JNNMjPx3r}f_ zgr!-LHCT^L*@m6jlLI)6V>y|#xR5LO6*qGi5As`{;SapVUwN00_<|98hw^!wA21%1 zFf}tVCkwDR%d!evurOvQ}M!Tc=7GOWy+Y{2Gh$1d#6fgHi{oXR;|%#~cnt=z*yJkGPc z#OwTx_xOab_*TDAPSN=x6EGRmG7EFF5KFQ=tFaCnvlTnCJNt16NAq*e;CwFQm)yu5 z+|O@#ir@1Jf8ihei_aL=Ka@{YzRx&J#FWgy?99ia{Fs&a3G1^N+wxQP;%6Mrah$^0 zT*NQ9mRq=+U-KBh<3;|&Tl|xc`I3c@gTqD8UDa){FQh4h%Xp%U?`ur`2piG2~#r@bFu)7 zvn;Ey78|k!+p{bCa1cjw0;h2aFi-FtFY{;K=6ycpKa4yml+(M6#gCYr z>6n#ySeT_)fz?@;P1u^9*n|B!lw&xFGr54vxrUp#lLvT|r+I-_d6Reekk1)ma44T> zjKR1}%v8+C9L&#REW^sI$p&oBcI?959LNzI cl#azjC+{!&X#N#~6OT5nCc#lu` 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 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.su b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.su new file mode 100644 index 0000000..17277b3 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.su @@ -0,0 +1,5 @@ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c:128:6:HAL_PWR_ConfigPVD 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c:170:6:HAL_PWR_EnablePVD 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c:179:6:HAL_PWR_DisablePVD 4 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c:189:6:HAL_PWR_PVD_IRQHandler 8 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c:206:13:HAL_PWR_PVDCallback 4 static diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.cyclo b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.cyclo new file mode 100644 index 0000000..452846c --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.cyclo @@ -0,0 +1,14 @@ +stm32f3xx_hal_rcc.c:214:19:HAL_RCC_DeInit 8 +stm32f3xx_hal_rcc.c:314:19:HAL_RCC_OscConfig 70 +stm32f3xx_hal_rcc.c:694:19:HAL_RCC_ClockConfig 20 +stm32f3xx_hal_rcc.c:886:6:HAL_RCC_MCOConfig 1 +stm32f3xx_hal_rcc.c:923:6:HAL_RCC_EnableCSS 1 +stm32f3xx_hal_rcc.c:932:6:HAL_RCC_DisableCSS 1 +stm32f3xx_hal_rcc.c:966:10:HAL_RCC_GetSysClockFreq 4 +stm32f3xx_hal_rcc.c:1030:10:HAL_RCC_GetHCLKFreq 1 +stm32f3xx_hal_rcc.c:1041:10:HAL_RCC_GetPCLK1Freq 1 +stm32f3xx_hal_rcc.c:1053:10:HAL_RCC_GetPCLK2Freq 1 +stm32f3xx_hal_rcc.c:1066:6:HAL_RCC_GetOscConfig 8 +stm32f3xx_hal_rcc.c:1154:6:HAL_RCC_GetClockConfig 1 +stm32f3xx_hal_rcc.c:1184:6:HAL_RCC_NMI_IRQHandler 2 +stm32f3xx_hal_rcc.c:1201:13:HAL_RCC_CSSCallback 1 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.d b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.d new file mode 100644 index 0000000..07601b0 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.d @@ -0,0 +1,56 @@ +Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o: \ + ../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.c \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o new file mode 100644 index 0000000000000000000000000000000000000000..f4c7a0e8bd4ae552fdb18d2d143475d8b643a72b GIT binary patch literal 892252 zcmc$`cU%?M7B)O{&Y3=^SrHqGH5wH)#vWp?u^U?qwurqawkRShcCn%;cEpZ~h={#_ ziV9Z5hKju*q9Rz{XU&;IxyilX_x|;oAG7yb`&ni8dNQ?Xn`SJ_GR}W2Q-R5$7)JFo zQxaEG15{u(FzdDSHlW+$kFdYsubm!mkFbLt?})II9`B5>iyrTa@K-(F4PkdZ-UDGz zJ>Co9Z+g5p!r%3{7s5Vzyf4Cjdb~fv0ebuogah@sH^M=Bd@#ZxdVDCtVS0Qx!V!9W zB*Ia8d^Ex_dVDOxaeDkugn#Mr@dzjA@rej0>G8=3|JLJE5Kh(OJ_x7jabJYf^|&9x z8G3vs!dZIUAK`30J_q4kJw6ZNd_BGZ;X*yW2w{L8UyN{x9$$)ZnI2z`a0UJhMia*i zq9iM-*}b~El-UM*V}^={FsaVl%f@Ad8D*KZkKVlst>W?9}>Tn&}j zn@0CZ$v**QOf?vpN~!Vn5qD3`FxG{X52R|h?&1Ao%i68;d$!g!$hkE9oaSGBNh8wI zExAhTp3tH~%j<;iTYulm)$4oca%o2PjLn!zY&`4UG`S4vZ{?oqH^x2Pr$&A+H_#

    #wM+FG zbI9wE_ma$w?1sHeI_iid-j3|_L%yX~>Mb>8 za;JK%m7F`BsiY=MM(QN0S)@)te7s)ErSc&6yhB5FsMPg zmVt=>p=;^i`qp6gRI4G!YLNHuE%P@%-#3Rt{&$b3_7{_p!8+URjf@PBE3W-38PIB( z)W%00r5BIVi`Ppp4)M5ut%K(9z*z^eK*j13r}R2F2Hr897wu6myAC2z?vZ*Ogd-mQ zKk8t6{BK$h`|mzKJL2#;4A#PQYda9%@vlC+=JGids8C&ElkW36@YdJK5=qk|H^F}pvEPFSb+2d2`{1cQ4_#v*vL zNcUzQ;`9DBPfL)e{KZT&o$EOW zEmHCNlB>lR9Yp2f@591VZ+Pmhd)goI{(4@GZ~ZzM-}~ivj#U5Nf(?2LesGv_?FD%+ zT~{x}d;M#M ze-O3)V9Pbi2BAevKnsh>u)&&5x27Vl>OQ+R+n#IQ`robLRy5^AgtVw@GI=;W@EKz$ z?W)gUK4Xf~+?eJ_@g3vj`{ly;<-yDZ#=mus!43)kF@{n_bY1=q+*?P=oH0)R9Pl0U zSmRVL%wfjVl17?ojPGcsSr75~v{ zOj@g1KaFvpmGRA^TvI6DotTk~r^Ao0uzm|Ov6^rk*kf4x5%vh;hY>d+?xwc{2a*Hw08%5Ml~ThI-=|wp zlEXml)^+See21^!fSFNsd)Rx{aHe{FJrd*g!c`zZ_ zm=N%DuiFf0^B9v7{NQDNJ%^#W^n~WovkiJCV0?j3qc^Pjn3!oT*-O(|{IP$+sAYldi3R{WO`-r>NM;tlUTADT! zH}Wl(y&7Rs^ZVvbH(>SKS0Aa5jcJ$aGuk;$9?RqTiR=n{PZRt$5rM$ZY^bhaydTWc#qbW9zrgPbv;_{&4@}MpP zMLP+2hPD?!8lH`Ew!ip1wQ@PTRxanNm4EIqd=s!D^L9@kn=hxNyX&(G)k@L9O5>?m z6SSt*k6qW*Jmr2hk9XIz^Kcz}N8ig`?zGEujskf{Hb;p!(MvorPYEREv5}N*BPrWP z-V*PetHf{T(R4eHrn}jilJlUF^PnC8^;33s4-m4DIDJBh^ zg!z-K^u51`=HgVrSl4@1BiqgSpxjdh!`znjylJN~J69@cZgqc>w{sUJ#`{vwOHDOQ z@(%KL^f5=O-xvjX3njq2by& z%OA8Wt@lSgjmjD@5Ty=I^{4?+!|3#3;(&?6ob%N`$AwAA-MeJ+z(5}0tf$_9dc!mi z`ezOOHxJr5JOJ`g|3gDH5Bh6z{p)E|R=;NC0mjm(eo;d-5Bg0U^4~qE3lH{UPg$>D zy&;<2zFC9+&8`RRnt?mi_t0R?YG26ot*6Da`c#BXL+PkKQG+y#eI^e2?-r>>CnOiw zYQ>0J>FMpNjeIm_jUVVdub4FAifhiQrBAXQc$~9o_#kFgqZbKEu39f}Sp-FGg4f%G zDOW0oHsP7fxM81;J&&XIX>BRSYhI)$_nm~bn!^i6D(zRK_(J4kx>rZ=2Hj%vWqZjs zvufU?8dFQx?Ne9FbEa3OzAm}qDYd%Ns}xrJVypaKUufHIJF26|&F!e8Q*04%(+Xoexqy*7K_OU*-_zs0z8? zGE9?3Hvj)CN8@E)xmo&|EaQHN`ZVPQVZA;j;Axgu7S*ZIRLKx8Rx-wyOD@v7UY~Nw zS>8daG1Y1;jB=dhl^kV>gRxCRw`gx6h-l>(p)PV5`XLe&vkD7Ak7&!d%+3ySgsbtw^3e|af za=&(HFB82c(%LMou2##9G%o~0J#W`MtyFIlZm_YR+0Elz-H2NNpGu|#s(E8; zpVF=)nWH!{*ZQrj`GT8YVDc=v;8)wv2uS5EdQ#6#291Z z42-doOMRpnSaIf`0%I_6Ct|>4UJHz|P7%6uG8lvrZb&h4rGEqSs|U{*+Z7o}DJEgV zd6qGVT+K2_DLUT77zY)h`xb*JJQ~3>CKESk_*lX{T>+^Ec8M{$m4uR5}4T%0Z|KNsV?8Hsxm!V;n>Q_2>~3!;fV(PhFIDjgU6ZkycE-Uk&R2 zbWm=LxyG+N!;fc;<;kVW{9IP*V1N?`x`934fnwBQGX;iU;Gj(En^7XeFLY3%+NvFp ziyV}yv}^)f0S?Nhv?FSqT0 z<(m90R{F!Ji`>yg)MAe~hQF(eD2-b}!952hs;@mztjP{aRb$jH#XN9O z1yt{UTLdE%fdsIKAg<*9?JtadL0 z>(3liHO3tAH^}F#F$9^h2rTs;VH3Lm8M0c?>lj<7rkxp|diIGY;D4VMM23w^ZQ~}kt6;v4q z<)XB2(}t1CvxUgrVvISg3jCvF!7WB&S0};{Ft)_82^!t5g+`BrA5;%6CbCrA`k7i<>kjAKhmkEv;h0G6Y~MDOp@a zU$FnDbjClV3z$0oQ`&uMACxwqBkiKuE)z8XxjW-1H*lCxjXeo{uk7#n;7Y7ft64+9 z(6T!(i9{Enj2i;H%la$MykxcPQt01t+2!|P_ zwq|EP>}Xk6L26kKF&6r#^Tq#a3sph6CExr*a?QUAS1Oa|I6yE+89b2P08Lw#ym#sI&mC4TJ$vk``FWX2faGqvn{JHU|! zz0Ai}pl0EVM6GNd8|15SUN4`Kdea!nXs8`PX>A>-%p8=rj_U6~MFE9Gh6Tz^%GTwj zqk1_|ak(ru%RzP1QJozqYVVp~Zw&I#98`N9)y9FU0+i+#P>XX=Ep${92dX|$nqNR2 z%t3i-C}TkMR0r&rTqf^3Va9;SsX8uP$4z$PG7Pc=AGIPg2820rJ9OM8;Hc@bzYy-V|Gg^aVY^lrErLn~r@OhG>&FCXLMvAhfqtO5xI7WK(+lq@(u#GTU z4na=K)_jM=w`?JriVXpORosNc3h<b4abiAC zMzK=o9gG4&-7#zzRtaz_!|16uf4y6-1_EFWbsz`zAKfwx2qbE#J2|NT=$2G@PK!oN zftqWEfdA;0uhCL9)DYHMF$eV@-O>&1RPzg{_Bp8k?3OhF(;NeAyc6~>-LegEPNVB` zaR2C*8=SZatTi?V_m6IQ)#)B^sX4fRbjzns|A2GBV5HYp?ry1778Z{V|A6z%!R79n z8tzXgZXv69=ivOEUD!__4nly#B+9VBEy}_9IB}n+I2uVLa9a5R7ny_0n48@t>bn%aUra=TMjPK ziMy)f?gFRf7dW3BT)Yz(r{hwA)A9>kXbvvci94m^c+9q1K7fnQ!5wqrqIFywCvG<@ zW#r%@ow#rvH`<8{XC*f%*4sgt6SqUh9dY8KSZj+MT&NSbNynuDr{x#8kvX_^PTXo8 zN9#i^zrY3N-~yevr8>?PI3zPHaL00Ri=4Q5I&QQRcaasI=HUFDI6oa14V*TTU1iNS ztSp?PloR(^AMvgNSBC5YS33un;T+Aip5J&UE>6c4!lb9=1NtiD z;9{M)Q#!68aHXkSfNP(FJLbei>$n1_Tn*R4AdSz#WlVPVUwtN>;>7)8u&&F&r8;ph zbzCfP<;X5@u{pS>PF#wPdkvhH58zUBaLG>GZ5`)=u~G96IG6m{<&x;cUDa{(oVY#) z$ukER@5IIFI2vm;eFF_v?;KpL6L(6-)x{X4CvK^Z3j$Q*9iLTr-x`_8677R+NaUO4Rq~WR5Z1 zaO}`v!OoVo?uraLq$QF!y(dPtpJf?khLKqQpBzsfyV^Mr|Z-*Kt}TGR9)0duXw85n&enqL2;uw$o zBv-no9&yj>hf{&(W0`+fjxWw9M~@3{}ouAZYiweL_F*!=C|v&YJ;>QJ15CwDF>Uw2P;I-i|;! zzo2MsoetGQ0WKg^aUU zjw^YsvdHAtVw_`8OeSNAg1U*4g>or#0FCp^g>_BF^Q^2zjq?pIPTnQ9h$Cve!n!(A z9~g={SbD+@wwNCK$QE}%b{R@ISSI5_LrDkkqKTG9XlIVEaf_jpBO!<_?O>UVM-A={ zUYfm(&f}5|VHH`Y6xV+37F^kMi0y4)xQ@l#aI4dEN=FRBy-c_~;(p7(nJ)duaLn3= zCVcOY0GxRd#Nk^bfW^1?O(VVq9#OpGdnjOf-z5CW!i0~N={q!1F>C4(zRo_9Ogew7Mx4!= z6mN2h;x)_^AJ&JyD-V(eYa#kB$Ei2R)J&jU-@Zn62b8Axn2Pjm5J#M@(WIfkd*amS zO&azVX{BwM96|4qQ*)jiH28 zwOsUCO86h@P%fSqBhBSGN^OgsFvpz75(A}ig*e;7NKd9n{K4CaZz(~tLkf|VfEt=D zcj8R!MDaGS2(zm;;a`6y{gmV8*2MX6B($*al5>AOs8QQOefIp#BN$6%`>SqX zX|<+5oxY)Inzl}a8Gn<$owYLWt<{T5I_VivpRA1gfiyJL;wghkYOt1z#jDBUqK%|E zeXM3>2kEKlM;QOUlqsI78}^RQ!69 z8tp+fRR9AD`X;79w2FPiuhgBsKldfh#j1qwmPmHvZNxY2AgN%@*3&1H+RKYLn@^J- zJ8tthrbia>J@J4C`JGLi?Y@-SD1toMeV%JAvZE=aaXU?^3GEEBan| zNPOipX;^z$%XL%o>Isl7K4axO0Gq4`(hj}9VRvlk{VE zFv@S!j}#wVj=sflqJvV+B-u|7h*Kkr;vHX*KO6g!{-P$rjK+N<#?K3+VaiXGTKfSZ zSJxNju2mA*~e^tw-9v;-(QjVhDY&YMgpnkNEr-rS2O_vOjBM&gJ~1Qz=b4 zEf*=(`x*Jrxd+Af7NqZ;ZNzCdkhI-%q3AyXj_#ZVr2R@L_ zufLI0jb+52HHGjV9|&2l9DSQ>Ghl!Gm>1*cH%e_hpS1m^=?spfxbIU+Wwcd9h)Ctu z)r)i{|4RI~1&K3$2I((Ql1gS67R4AV!byMU^29%;%@h%v$)Dv~?M&}QQWX+O|DDUk zPuWcI35}?HR*fPJT{aQF%K*}Ft{rJEi-i)$yu%usXZonbSyP?jVhba_7hmEL2(t$D z#WS9*NdN5Hc;&#nu0!7gM<{hv3G!-$wnEr?l#oa3k^Y_UNOMi7###tZJ9uWGl}e-4 z3-TcteU@itX){8cHj29Xkp2OO$y+ocd_CXNclAN^bLM$8jPE1*Hh4iEwrxZ@E7v0H z7YmWy5*W33X7X{e`>q$s4sT4~qnHPIrsjG=x}!bwOcd68JY#Voi|HvOHDfwiN&A`N z>H+ew@>SCBHlH*f*V;+pV5;#a!>P;@ub~2H-C5{PPtavDa9qvRkHdnRYcgjVzD*mr z!*=r(C*W%fA3TxaTAsL%c&oilz;Er@4e>S`XTefuqX#_e)z<*O2Nc6A0B)FE4I0LN z`hxi69%1-SXKTR%w}5^17{N;RY6#4&V#~aOOb}bm3&Co3$sl;VhTS~?X~FC;>Zfa2 z-*-^8o;CS`+Q4p00&*kU9|g*7Vk`X$CpNQP8iN_a){TYgE$rv9@HLd(h63TXvc8Q$ zZDU_PhQM|<9?wv?9qgo8(7BVX_Y}b{b{I_uyV;dAQirikykKY#`*I1Gd)bD*$m~A$ z>@CRQAbJ<5{p^>8FdM;Er=j8iJLUweN3szLx)&8_x!wa|vgQgDFgGMD6yKpi@yOV) zc{Irk|9%Mck9gxrI}4yo-!dYt>d##uQ!Q--z8($H9k}WfKEj;0CbT$o9>NQOr6{vX>LOFLj3&=+{Y9w;{g{?mWr8mP6*&WC^h7s}bd70rb&CV+gHDst> zYdF;m=5`zI4TRiLgUfcvoik+kqh=^y);73J<6PIZLXJwMeh+O`OZ^E>gF5vA?9?m{ z!o&Kd<2#R)`oV(`w)Xd+qFLK-5V^>9nvI5@&UU6tPf{o+_J$!_{X)n>rS$#CWaYLP z!T9ep-(uXTas}tzhN|>BkFSOoi45-%HxIp|dZ}6{q#8S$!a~iccQL}p@b^Lpr zHgMBeEI<7t z-1>e?Da1WG;;|uDBe*oo*V)(!oCXuA3V&)$Tfru!sN1$YNsIDd>Mw(~PFXW?eN2U2 zcpeYE#m|>V+&#P};uTlS#`lMcKf?A;X*`Xwev2CUzkJs6OwIKeO-9}5$Cu{-A z%2T!<599|nX%@skvcK$uFB$BXeqhctbizpxH_MP%6I%QY9~A`44NdJxTVZH32g(8s zp0s)jF?^p4KereRoskx5__+h*A`I>S1mu9BQ!wNr4JUkH;f$eT4FoZUiH~9ElHuY5 zKyDaLUI6osp%m5EUBlboAn?G@KN1c;HrQyl^TL2p3Vs@zR7c=roIMth8OGAM0_Nr! zBbNa=-+1Q$kb%a5C!uqtF(4DvCgZr4P`%lBsw{#%#`XPRcCYb<7t)R!qi6|s!svp= zsa3Dr#C*`_KKUF{%lIrn&dT0zt`8%Px?;ZN8b<`fRFkb#5zPx0gZRML_w*sl^_wSh zU-8T~WTJAA8Mvw&X~w8txCHe5FpPH1wQpcn;_CVK0jFU+jh8S6v4UX*dC_(;mv zIX>|*;FtLcg3FJ9Op`{gg+PE*u^6<3TcS3AdB_sk4dw%E z-P(a#YTNNU=00lmyV#l~pyC$Ww-FTHVH@KCF?W}Zs|iQ$v#ozd+5@l{5Ik68@W*o=F4&NA5?a<7;%I@q z-Y{?-m>Uhp+aMpC3~@A+>^F>f1Z5G1m9(!*Ff6awBQK?GL~nY10cX5bD&?uKCw zZAKCeKPEs~lA%ydFmD-lke_!9Mf-ty*YJXn$%bG$7`bn-(YeM$gR&ROQVbVqE`Ds- z%)$B-LsAfwJu}RF3*>V{2RfU0X{Z?l-b{TNuEX58K!!E~e7c_{NU7VH7! zOk)|medJ~tU(hNs)cBzYsIA70?g%a$$8SM!#rWU=v|Kap!GO(OH{M?lW}>kfZE0>A z&ol&e%Q%2GbhnLZv_rUS^!yzb?inBKM)1IR^gin0q4Co~P>+mWognwvSn>|!o*FCA zi1y6rz6$QXFuIQf^QCbbwUXDytN~E=#<-*u%)T}D-UKaa#?^FslWx35UGTlJy9aXg z(U{%~L56WD%>>%eadg!x!VLra*o*Zmf#@O)~|42GiG+x&q7@ri~JUnWne2 z*77&Gj(~;Prbi87cCN`E=aJkz(})(J7MLFPh1^0@;426OnB3B!Y_Ul`2FOxVNg5xQ znWhgz+6vQ>eh30h2WW2_WcoS+)M``R-hc#~7ET9qt*IhqWxeUK9qw*0Sw2DaX48E- zFbXlX3Wf8braN>bwbj(y69U^!Q)3{o!}JA*o!ltkmbC0QQeo%W&u2&F* znADN|qpIC0u!#cO9S#^m`F%vjT$S_saW+-ZP2Z)!+8=?kVwO#!)RsuF{=c+*V_ z(h^KxX%@L+x-0>5)wIWowCkqNw6(usvQW#qY4V+mAjy>PIMQyLQuBejV~S_s^*z($ zh43udw48P|4^6d<(2`=h5QDVGreGInd1Cs$8G>h~d_G`4H}$Xp^2#)09+sJ*>KQ5{gJe$dJwNa3>xOo#GH=FaV4!Jp8<`xveJTCba zAoIBm$*{1H3&djrZV@-=6?87$r>g0olNneuuP;TvIv;+RV+QgRT(n=ata1m0Q#nY1_E% znFw}pztVB>PR{KZ(spwzXn`EYoyAWcxP4r~DNr5G-MBR+aQP^|@9!auXkdy2TZ71@bnhR08BKS8Ni3 zd)%6_VBY5<7eM?0SK@mJq;SvhM4WrXCDZA}6RtZ=vQN27XOZT^*E)e<8gG6A=5+qo zCqVk~Gsu^je1JCuX7N2}#+c1dr8UqT{={-n^Z8MaU||9O6P-d1G!~< z3l@;&{HxROGmxKq9L2Me{}2jD5N{Zc+^*&e`av$9Z@3av0`IvA$g6w`O{CZOVe2Wk zeBmD;kjQUa3I~(;3)`XP7GIxM<9GOpKY+T+TPS16{7!1u_xW;N5j^CRnt_?Z-)M>8 zF+Xw*EIi@6(BScmk1Gf2Ie+v8sF(bh6`)@6fA4~!RQ?f7x^MY$o1rD0PZZ(Hd;UI+ z1sVMLiE#H5fA~D)KJ$;XA&(zW7|d^cLF(E*Ldls(^A*;vLEfhe-DpR-OW=vQTc~^m z7WN2TmO$BFq3A~BC|uYT4-5N+7d2q-fUuD^;gNzk6w0E6h;GnwNNCX+%)>$uT~Hhm z-i9LWn7|H%&f~%s8q!Y+eQB3atl63)Ga z^S6aE+hOmnP^1hD-4iUk;n{uR*)mWMgc{S3_DDE$9@JxDZ~>$}6V`bmcrLin3CkPF{KP-;YXEMhSmzspS>mqa5ST5Vs0Dj-#4tK@oF^vy3c2~B z%Tfdj#R1fW7l}K51ah(1nOeva@ea*+%fuaH;MsEV#Cyn{5I4F2c~bnoD1tL$*iXo2 zjJSYK49|%-RswQf{ONlH7sTCkEO1eD_e37z#iF->Ob|mGLfI8@$8flNRjl6;!42`- zcSuVV57Tl#Nvujo*|)@EDy-iX{R%+YJ#h!!)I1QIa6mp3H`6KFBXMqPq&*hDuK?y# zu|XZEekP8hwZ;o^*8&K<6bC;6iQ%$plLTt+hiNG=j~ReDPZfZmu-xH7v}N9!-Rw3#4WEzx{Cwr9}J)3aiefaiA7UcOOt$OIuDu zZn-r0Hp~V}r+NdjQi^_vwAIo={N{jLBRy;j<~r#+S{|&I7SncSqcm_7ENqf~qFrQ& zboeo}Y>{TCL2j$mnapmJOzi;KAq}Ag>rScT9|(3!ryhbCCY7ZguunST2`XIjo(t6x z(z#Cv4oFFLp=_^Qa|F`%$sTS{wqK4MfFME+>jAk)nI8(z4$2>*p!1O2EgS;T@{Hf% z*%A2|9sM1ZU1%wGTpnx#bwWNe71SyDEL~)tmaVjFi;?qHMp~@=aR8K^lNmbbIWI@L zLCZzCIPFy~$;rzha9KV&1Zh{~RsF%dChwuc=Iinix{*ng`?Q7EH{~HT4c?MxkA$Jy za*O%Ua!+1S5pv1$xIa)z59Gt~5O^pzaf84kc_+=xk7af$nwR^ zS!nqz|4lRASNY2^DElV2`3u1`#j8A+zRLC&pjIi{13(2SQFNZLM&XZu8LXT*2W9IN zTRfQSl?t0+eWTKc)=Qg|a`=r47ou#hk6??ky%GerDut-AZ&P~EdUuD?H34!v71tj? z?N%<(j2EVCr=8heWip+7?NeUSE!}=)>1pIBLiuhwv_vYCCL^~8l{+-*A5wmg05V#6 z{Rfywm34=~Jf@WW3)BgP>xQ(Gij8jD&L~xAFpg20Q%5+f{N4g-=aiD)5X32g`QgL` z<;GIv;gT|lCgFIcK^&NumA~l9<%;r(>iwEhw>!kID=%o(m8e9v2X#~FT>)~plpgrK z5qDc@M%$gcN_RT1yQl1+EzNzUNnw=414aA`aw&@M448eSc+;Kf6J?t>#GfkL6^K7q ziqoal3#Gpws4q&f;!rk2^?L;^i`DKltZM?&C++P4Cm_4pT384 zJqX$TTu+)9Be>fuAbWu8Q4Urjxx~s~9^|Yzqr*z?crb#)+)6qpJi=Z74#=ZiX*Z}o z#D;43u=k!D(hZOg z+{^`_K5}F0em0YtSsi!X*yrR zccjz1rTo)s(6Wp_7Y5bKdCxrvR`6~`0SV+o>1b{h|K$|KgZOTf!CcMXsgGa{fBF!_ zgZZE6Y-%mvatt*7Lhx!}{G{11^oqa!7|hpvSPuxi;ZObs)v5eAdKvPTkLmzq8XsC7Y47-@dytmS z_o3C!d;at%qrG+}Xf$oUFSzaU35gm@pM`3rk##-A-*qfONup<*lOoGXk| zV11r&^)`a}!rH@M4q3e1;B83!O4R8kqhP;jv(tM%ikZ_RJQ_;eh+OTj~NP7+Hh!AB(a8&rK4V*Y8 zyu1T%(bTx28zzm9ER0tXcfty0Da4?euBi+K?5-f9J=(ezl+QePqJeB-CVPYJDWT84u zw)X`A?*y^M60=a&DMIZ>NP8sQU54PX5O*DNPX*7)u<%UiHXfcm7qXVX&bO@;X18_@~STY=pIDowcA8OV1+FIoYo3pM88*;^!5q63cr@pXL&EEd_P(6U6_K#wPuitUmSEEBu*h4^yuTpgHQAsWlWUZA+F z0jQN?YZcZ&3%TK>q21#B;>bgoxa$ZY zd&G3So8K8*p1dD<8DH65YBZcr8{i!1^08Z8VUnVoMRhTX7CuQl^XJeIfT=JWc!2 z4`SB@Fh7bnY=C5lMQMKjB--h$AxpgO2PZy@Q|JW!i&%k_eHAAU2J@R(lb*EtNC6xu zU+E$ZNYkax%TN-2lAH*E8Pf6l2xdwHXvsKBGSg0EwzQCz0CS|~bmBBuT1~rCY@eIK z>-ka=?R*wU%Woi9B#oU8Ujn37bbPf~3jGe&mq;R=UM`j16@tRT6#?fqruYU)_|;)M$&G7oiuJb46TL(Ik+xY%tq$=JX&F6c*&_A+2=P$qyAT9hC0{yH*(Oa30%V8eK`&ExN>5rqZkM#m z1Il(wZ7+ZdlRAuqXM3c>DwyF?BNLeWr3-Y)93hR8pyhycjMjsZ(sy0KJSZh6fr^q& zPzO3Bb*1SnTG~dF>0v1%0PY@<{1zkas5F&^`(siws?_7sxkv;jq;Ee#;FQ$9B&gHU z0b016k;>7-!Wd~d&C{{cE_xbpRthyi**PhMPA|_(XC3hZ>Bsa%`h=q{7b(c_%ua+^o+B~bp2p3JS3ztJval`Nk_5G1?P7_wSk zQ4IoXecU%?EO@qbT8e~?Sjw7Xs2JPLW=A^%8w!=3W2iJ*4LpZ*49xBR*>3M5RHzaedp z++z%!2$u&_o7gXRp_OBV9E_jDatGvt=K+b76C1_y2^nV{(Jx5I8PZJOS#2T;?;hoRr&^M{r7xp!wm9{E40n#>gFMDHbco zw}lgDWtC0>&dCRRK<9b+0tYAJlKg^(^jq@8e6V+0{+nJH-H|`c z0`so?cLyNv$@A8N`9Q8p$3hR~w#^}zB6o{|g-3FE+R{9hJEp2OqNCnDO7JEGdzCR%EBllw+dzdYyXXpIzf#-{ z0+EU*89Jzpr>-5PJe~myhm>x#zK&L|Z3Xj)GOYlZN0k;-{l}C;A+T^y#eM2r9Zj!QAwdkI2p?G2@v?C*y-LTQ|bL3 zAX!S)d~ooyVx#8^UzFlj1Yeb(>BjS$GJ|GHAN4f-Ji}KVR~*!I)u$UEeroTh5TBvm znT@oWs#h3_V3t~OJOY1p;}}3@s~ajHZLWHBB3zoMz6n7d=BulI2Xm2Ho0g0L>MdF` zELMwm2DL=(LPfV!ZSo1!GPMNlVVA2%Y4@^1T{#KP2daapovl>g%!Pxi)Cp9ZLFy+u za9ph}r>4I~U9cYl!D=@K0_)UAv_W03X2v4epoY*<;6`;3y?ffEu6v6-Y*w4nIwV95 znFhHns;wFdWUD%Xo`Y;tf2#sR+tr$M3A9V?y$xD+tC2xS3sXI4IkHC`Ku7$0)$X*b z+ox`531qnX>PMvQSLaagk5I3BAnkxE(OZE?^|k_g2i2_GNQ+VjH-(>v)Tz`-qSZj^ zhDTJ-d!UZ0mBt{q$JB_2U>;YS3y?dZ{_-ByPpY#HA~>avt_Gc_)z5T(AET}x2t%>z zW4dQJtH#}d^KoiR+In43Qv*@f7u7V{C0|ne(_SWC&0+ybP^%tBa9MpH4wtT|dk%uS zs(R7`rfX{T`!IA}-To`I+)yJrL3N^f>k?eLsg|YfRgyaUBm{1&o%TZY9kq!O0(aF8 zw2;52R-vIJSsn2a0{7J~bRP0R?LdpRhw3(3YdliDUEs@OwIfaCPt+2$zkRNbq(h(= zYFio-UaBqg!@?`opDr|Bt8Hkt_C{?u49rxuWlxB|Rby#ao~D+fWz0Ku95wcIHRb`* z-m9Cxz|RkA<(shZQT;jxdB{+U{|@St`t2x`WvXA}0LfApcthuBbyi(?_Dx+uTVNk^ z7lKSPkED6i*S!8RbWS(B-9(z7xi)p*8RiJOjhSg)`DV{QA-BN%p(m(?=6&=~b&x6bMhT9*O;&T04IXYn?J#& zwdQ_}A+XLIPYe0==9lz9VuSf^7UVXX-_Uu%CbNyU$D7S!^%;LA4i zBf53iZa!EX;ycXcN+Q^4ZhZ#M?=lyocD>u|K{q^M=8NtS-(wD>CC6U#?`2_VpLsc* ze}=;s2<$hH7z}$6=7k=h4w&UX;dP|BW@{KaXztJvRFwHxKL{K$KMR7PBj%Eo5gaw| zr~ThCa}626aWnn@B)Jpjz+y0T(!7jLe@>Z?(Zh<<<{kB+`i!{%HKG`Ey)Hn;n)_2@ zKWiQ|0T#}gqv;9ldGqjkfW(=H8UVRq_Nxso7tIw1gL%nZfo?$J&9mt`EWzym7hJk* zUS>zyHS^~+pst&z(_@<(<}%bU6U`ld1@or)dKN4sne8LNyk#!l1-{%iw=WIqj=B74 zSh#CGQwCb@nH$n#Hraf;C=A^<(s%IqNZ$Ju)w#VePTG%nVRZ z%+1|FJvDdP0P$z$o^eq9()_+X#9x`4ECBV|Jdqy8yfOdL01*7Y6jEUCt+{m@Fw@L) zo59a_<|b5h>E;?V1HCs_qZQc)^TxXn|7iZILN3F+M?u~{nMW;0TBbQ<9fB-#^AuSB zY_8ZJS@~lA_6F2fv-eC;-^>%jA?{-duZCc{C2%2_ewNUh&@#hv`Xa<C2Qwq-hAM4{EiAuMC}QEHR^@CD`(S zHdJdZ4KISZ&QhfsEUdTq)33iaSXR>y3^rN@QiI-PsZ$1Nn=Mo6L0gDr_&3h7zAQ0+o|YcEx*tsz_XUW;t-s(RHdozyrt%QP;r*AbO(095=%#V z7cIZg)1ph3I;9ZATc-Dg&IF4W-LPJ^cwYtcilu#N2wb)NN-LdfmizO;yl&}3XX!UA z^=YS=Xc>JC7H(P$6<|HdvS%uSTb4UZVd1vLoi-KsEDz|}aI$6fZ;-ohIl2OJ4=jcd z*n4Ps(FDvCOILcr_Q?_iS`s@!F3Ylp9tC~2jHmt47fawh2z<3vp@q^n zOBcF!^|3C(|AUa5W=)6%#Mjy{2?aUbno4G8TFZq3Im=pn1JeAh{tJPeZJqE8_U2fp z&_&!_>lgaj$vo?RI&PS6J+Tgu1y+_$V-{MiG_@|W&dCB5U}bm0-ePMd`Z3%RYxxt% z!%{2vJM1m9uDu1wa%(~a(pFegULo&+R^LXju*y1Dgw7yqrUBxst%WZ^V2!m;d8iJy zzNT~Uwbr($khad+h8{hww~na{WgDyyX`8#z+Lq?qP1Z{*U~jXv^cAFqSbwCo#ujU1 zD*qP3 z_E{Glhn8^bd^-BrZ+*N9X%W_TM<92=`c(oX(%PK17zeH0=?*N)8WjV`A#403$VFQx zg(545t-JTbr6bm%T_JbW>em{8uDoH%avT8})Ou=@3cz)5R9I{H6ltwWc(r>%eO zgz7Wa&PR|IV;$B9_F}C(ZClP-U(q{|bJnXgot?K{p&!o1SvOaK+y$%YCm=6c&t8J~ zCF|F8q$OB0zk}RmtAYB;6>BKH*Su|p z7ivk?LCFYiSykHf-nJJ0jI=ve$phB!TDQD`FZZnV!Vn}|FVoO<-}>fz-=I6NU@Hi(}PFW;n1J0dOJT4y3uzqgL3apHs3PXO|x_1Izr z8P>)$KYX%|qcJkedYdM`&(;sG;KUcJk^-||t*hu*@|!hz2#`LuG#U=4+k)OfwV!S6 zZUi%I)o9^4(DGO52$`FuTfD z;Ta%7HvjDqSZ!;!7iqz^!+tQk)^?#2RIjt0pq91X*6iasL!_-M-D@AT-Ju)JC|gCk4>)AILcKBCwyz-s z4%;49f|et;c0)iNwM9@XIA(LBDn4#|OV=zXY|#Z^{iJOM?VwND&i;hpwC&M$m_1{A zkPb+UZPQ;6kF~v|Iqt0OB=xcLwg$`LM4auNAIx5`J@^gOMcZ|{1i55Oqup-2ZNf~b zPOz;W3+l4%`|U7$#kST4@vFA)hJd$aA05Wis?MhlQc+lIMd-n1ptvM|Z^ z!*C#P*-{5V%Wc~+dJ1~S_N@kjN47SPVd1ImKz?NNnXTPqK%Uz|=oH|EEs=IoFKyOp z5PxO+AsNUwwreYqu~gf7I{STVyF*7GX|@rkkoL~@mfoYL+uqW?>b-3pJtg>HTRRD9 zA8jvb(UxKRjt=-f*}hUM$h6fci*m`b)%JnhXIq`eNc&>zPwx`G+GbGEeX|W%h%_I2 zO;AhVaL)r}cPzK^N?E!;8&9Zx&k>+o|*$?8g?b|vb zZH|5FaOj+Ck1dQ~p8eQh@#IH3%%Wrz{0ziT!3gsHJwLFzhX} z&)bGzx!tD~f)#e}lE_$~-GkQ2EA3~uf?8!?L`^El-gO6*t+un&^w-!o+K{7QdpDZ< z*V>=a!O}Xr?InWsb`M&4Y_JE>K(^6dnKt#C?7x-;bF;ncPB2643vMIWVxK}wfKa;! zEgiPnn@~M$vtOY8zTMvRCG736zn%)_PJ7c#Fn8G_<^#FgUT80vd+nWQ&9~3~XA$@k zZvRTt(ti6{x(JA{KP-;41NO^*z}-lDE$USV?F(nYY?OVQ8O3wRzIQy3(e_9hf)3mN zYLB!d_U~xEJ!)_F4syrr?li|8w^vDly%YAoXmfYcevsY}p0f9jLfUD2Bpm{svG1d+ zq8Pi<7(uMPnh5J>?I&n;c+Ng?AOz0aKWWFj_K(A$?1J5ouJ$k5dnO{dWUoczM7+H= z&0|;WU1@~AYX6&d<=5=xeucnwdmx>x->_GrXH|*zZ}f2Kru`l5xsvSt+k?7gA4Qj} zx9!K%k(E34|HILB$8}vkaVxXZvi$D7_p&TAvtgQ6u9lXXndV3>v!R)mi69`z9wGvQ z43VKsL6(3B4u*j2y+O7NMP&Tm_xtN!_uRej?(_M6KF@Q{J@!Xg|#(D43 zN{N5L5(hx@yniT*ZJAg6GXSmgJpRKiXq(5`4qW@ZZIf`+F>gEtvd(!{Zs5A+Wu?N{ zgLwj~Id;z*b%AEjytV|G?wyyl7x2D$hbRZ@pBIx1*}%N-PJkPn_YAd4Je;?d+ERz+ zmA(mXc-}@P03-9H-$Qd^-VI7hC+Gb;ijbz}1-%1qdfu!Ea8`^#I(9t4Xr`#G85>^& zz=mP98G|Po9zVdQE#nq7N7^xFSfFCh$f3mS6eGJIgAR<(`!VRqaHPHOX~uF}z?~S+ z><8z}IQI;KcVQf&lDaFSlfK?|W7I!^%$?D(0WuFp3Tlh#wVLF7|i(38YG0Vb1!6}jD+_g3uC-_2v#mK?x^4>oZ(OmE0-7?HDnQt z#Q(oCjO{N05XESuA0V31wH?7mX2cT1_=0BWSVq|;kT{0+U66Q28J%(` zFv{p)C6S>r0(X`1V*qeT4FBtJl*|~RWj>XmbAT+3@mW7)>5LbsY>>gQbVKDjV@V~V z&SZS>E@WAZA88WLW~9`EyTSN|e%lO0QcNm{jl6aT#Un01C#%8Md7chb-MJ;6PJB_G|7_v2h-(&cm1}SE^rolrALuInYrs`ALLUK8!_cgUv06q! zFt|EKEKMHuj5Wz{+rXGhhbN7UXgW}9V!S5<*UY%v0+klVzD|VO%E(OuX=4~DDQ#yQ zS_Uf}3~>(Nos7Akf^;zoE<*Nz@p>6>-Ha7DTzbBTQA8DxUdD=kgxkjmoPoi9#saFi z3^0z+nc^U0zB>jVGPJn}euy!j`Ui&@^;GH{Vf0YaJ<3>V#$`@2x+vqEVvICGbDD9F z>I_!QLv)&Sg898I2CbQr1yHeJ=FA0mlDP>jn9tiX|D&AUj%hCkv1ev-VeAz1g}VL z%;HKAFJ?eEh&R(U9(UplQ%WZsKFkg(ES+PXHURF&4BZL1KT}(diwXGqY%6zr;im zj#q}6NAr9nlQ|P4ig~jSw;-CCMtk(jOs{4Hc!g-3@>o8Onmo_SBClSzktUx zLz%Fdz^vgQh(u=nUdWP}ag@|tV@7eHlEU0@2)I;c>mx*+#=QSKVo7H@(>X#0a|Qz{ z*O~cru#(9vr|M4@^N(l2WiwZ-0C$7Ag`VUb=69tC;wICLQn*~^8fuluW5!dl;})~( zDy-aQR@46W4)b;}V!6xw!yWK^Ci5p4D_}M}LP&+o1N0Sd5%Un$_3tqQD2*v*ZgU5q zgxUHXY?fjW9_}-Xso$oI`F%7r%b8za#D!HbU!nEAlKCS2s8!7NdYGFg@S8ju44nx#Junq+%_|X6&P$`X2e6KmHF&%khL)b zD8p@Mb~eCR2eYCbTo>~uCn?Guy{t+KP4A2+oGJ^lNxH$=XUCt+p(G zdjITL4YVh*XRWUVImLSI7-SBtXO19hN0tXwPENBvroU?7#QIwg)6Oi$77!QKKDuY_ zEPLu{^I*NmfFnR*51PNt*b`@^JSO*?Jy0gNo5lL^4glFK8#>y*!5S|Gm&2M9 z0dkYYr|Bt|^*TL@d8~uK!TT-Nfj?p8Hp_7cvV2w1EBaf!jWo?<~aG&)Qc4Zh%$F1$>aT zH5l-RtOhE{4zVgeglw2qn1onHSbtOTc9c~{Ip!mlFcT_|S?+wu##p=Q*y;&uCOt3X ztXHV>=qc+abvaM4HpK!k$$IS_7@J~kqpaDQ&GUqc4O^>#m6L3SCkAcVDJrPgu@C-- z$n4qA`~zdB*kVeM9oUD3;2ha!=s@i>`>6*2PVB9jaO=!Iz6}5u_NzZY)0KTB9x^vJ zFBir<*}H8wHUgypBGJ~99-=f6Yhn;yD#?G>{)!=;D)#%vA z9eD*@AbT~XBSGwcDLuHruGs@wF#Bx{21D2bf8hE;*>5k0W*A!^i@}TR4;Fz7X9ttp zOYHIa2tI;6lgcpB?3+(vBJ+ zmC3do2gza^;t)$V`y1NF-C%G19wdjIONE!4>_xW`QZ9SWZ4BnI=j;Z##omz%)3@2H zX+NFMcH021fc+_*0vEDV%P?5Pe)uD}du(6o1}$cPeFJVw*lVfrvy}b73$pv{m#Ce( zg8c^ljFoJ+5}2-HfBz8SRjXg=9gSWE}ctWLvZJ`QzC%c*sfV$Xk&<5@S`=A_AceD3Q0oTKp z2Z8HlAEYC#KKArJxb0`ZNDImUd&4qV8DeMu0dAQ6%Qk3^u;oT@qwGRz%Y4Mv{Rq>K z*?aclGRN4b>tN*xJC~+}adzytxXh>Qf*-+6u$A<+(j>bf6}Tz(;#zp0X8#leV^*9l zsvX*J7Ezh$Bu7Fw%a-#>83ye*O{0L@bIz$jPH|c&9dY2K|Nq+v&T7hZPIGEk;!e15 zzMl^jSI!0MpK#-}e*>92XOh-p56<8981&>UDuh2T&fzi0yg9bCk2}NRP{!iJi3o%2 zEQi;DL0^u7+Ex8IzZc{B0yyjGhda+XNI!8P=M0_E261liAiKaxq|I_LXZj{c2uEWB z63Q8%lgTg+pB~zaoWqpxgmc&o$Raua(AjPjXE!~c(Hzb!1b>ja`yfNKo!Sj41?92el|2~IIl+IGHW^cFCwHm z&L1>SG;+LYkI=-KLk%;{9A^OrTR831l-9}#Uk9#@bG8-6+BxUn$6yC1O%G$8oCCDx zba71nxJwT>!WFRD%{d>6!9LFK)P~*9@u9x80gfLv=nQfe(OJ(!&YBN#nL`{?A5?}p zX*AuBaN=n(9p!AMPM|T4@+)|F!bze^={P5r-khhLcVx#P{7VVz zH0NVma8_K-Cy<@s4$zsRHTUQQa5mh&1K{kq>rcU-J$G^;{GH-Dlp+WR?*4_4IdW~S zp?R9S^>Yv>Zq<*l;>=xi5&m4b-t?ooa{E39+>N^@1%vL~qjZ_x+)q@1pW%)ULdA!B z8vnHJ`E%S+XWT45ZsiGZ{#+@U4&a7qF?gP+CB%H5!}7B1&-tn(*bN0w}H~oXzsVv zY;u|V*bUqjt_Q6aFiCSjZB&_oz&GmFsZ`ktK1% zsK+ds>strFHSW)}qfOx^ZHFwCyPb+$Y24r51TLLBwF4xBdzLc5>s+fpp_0iJ&>WJ* zt)o42Hn*NO05`bn=-5ApJN+Mis+-)tpFwiDf3^ai$6ZaEraRm%7DRoQJDZ2Wd~Rw7 zR0_C0RI4oHeoPO05!Z$Xm3!Q+BLEb0-w1(+67CO+AS>m5O#Q9*x!38JF5`Z-8Mt!p z1*#BKaObxnvP$m1uHdS;GpJZq&5hp-V>R3@?l4x%T|h@+b=!!Yk!N=E^ftiPVj^hjy**ycC+q zJb3L(0Py5RFJ0Q?N^EY%Wxcwv;uo#iDjgE3!TNeMza$E&>pO+Q}w zBsBeb`=~Gxz&jR*`*NQ5ly(z=JWdL@Al_?l;KDBOK9WK+nCIIJTnLXRg|SfHBKjOG zoaa9mDwlYCs`EwgR#2~BB=1)-97XXy9fz@K-n%gXT;^F(GJA!W`8Q-Syx^w@FqW4{ zuTvcFclrxL@jPcrQ4@IPuV6Egx8X0yuJRZ(6D9G!+Y4DTZ}kMoHC{CBT2pwcAec_& zIdDMIc%jr^m(B~I>OlstZvZOSdBf`f&*ZJ9#WagIKwm0n^ElLEaf9cP49y(gn`c07 z@-{l-`f_>i(xFlw&yTW%TfB{DaR+bn_R$)5hZpw|tlZ^2q1sbE?^rBI0gt;2q>$%H zyNM!RAeDXY@w})zrI@FXLsr6DNX4;I-dt+=yU)|mVN?Zgz6!Ba^6LCBSjGF~00ygh zOQ||p!`n8FTTsgzTmY_)XQb~Y>Ul>h0chaa`~^TGPrMP1ns}?;hpd?wK^?*^yiaKX zYvslGfotQfq9nhaSAPdr)WHj)ccqiJ>J08n7jJVt$OGPFEJ!zRDOIp~c>4~5>*byL z72f-J-_qAC{XD;i;0Aaz>BIj)-oiz&@{q@;oy`#MU0O7TdGWO09N`U|glv=-qel>r zcuw@YKjt0Ggq1O#eJe~q;k{i0z&LLM9S%L^t)O3Qg4aa9`y|irUs##qJ(7b=^Ze;7 z%Zl&yD`Y45j+8-I^C#(dx8WC2?dc@H?oHeYTmF0{I6MAVt_aDVKTLstT> z@JlX(oaa}60nI?Z-xO>H@n4|K_yRxP52l0p>kfho;n&533*|4F11n*CWi7(J$bXma zU^xFQ&GVP|IaD=@;D19|S0sNK9b!fCyS@W1nm=3*z-4|^D(>|a{!!Xp$M6qPA4Dww zbJ~l>@dqEkN<4p(zR*tKhn@j0kv|>`m8<-F=UnezxF^@#ZS2a zKsCSa1KhzHKIa~c)$-TO1)z@4phvi#|AH-W4g48&4UPPhv?Mq26V`!i=C3IO*TT;k zMr5u0*;%mJ#y=JUTs!}lXQ0x-*Xt2yC%=G_{4TzZUf&1&4En;Un}2i+To2#M3&HpD zTPaiRIL@El2$iS&`_x-8!MCvkZj%2KZJMU|+oYGfU}-XJ+6u&5pkgOTd=8wwAmSule=XasvFR;1+S%6@WW}@?g zRyqp_6s)0NEJ)x^dBFw26COmJZd;1>lS(7q~MFo)Wd zF9}}g04_q17zHj;U@k$NQG#d4bhN-P8r)^U8*jtP6~R~6p&28%mxXJO6`Y|=To6I^-3q~z7vQK;aH$%D zRe~Qa(5x1SH^XL)U}7~$tzhv>(5w?YqH~LS!EM?wHVB@33qdprj!@O1Nzj)IS+k&E zEv&Q%KBQBxR)Lc0gKdJugOIfgy6JD7bO>ey1JEg0OM_j43~zXUAlN|7LfwLuw7=~U z%%*mvUV$J1Dt&@9I@;(Lw7CE`AW(WiWl*r^CLBE!ygLLkB#3He- zSUDlwbqB;+IQ%_~*$DG?L3UF30nO~TLM_>}6B?JpioNj48IV)LweP{0gYXN=)*OYA zD*-<({B#BUISCKZ&*&^%LnmS`!djXKU4#*MwhIVlYL>py@YN zSVbl7G~w%?!b7^ybP$6X!lKUszb<6Z@o1*dx*H@*m{*06vW1^gsq=>LA=O)Rgc_<0 z-4xED$tqXqb_B9K;iMkqmT-tRjJJh3_d)Im^Jl`tT_KAG^Mzkf^`Jn=Fd?KuVZ*5`9R3Zg_nXMs}TOP4OS|J z@t+~UDxv3Pgj6m3@;3l#gv0b@cdf9Tikl6>9i#BjDC94JhbCc`0E5lKEdzkJ2oIVO zV5`vG4S+V`ThD=O7p|oJW`{72YHOXs4LiYg38f+69tc06&f9LG=`e!m5whrrzE}8h zAWZiO$Bsg!U)V}Dqyb?L9iQH(XH(icE<8oO98ZN3np-D?zfBMZ0Ln5GWcPhLs?ZJ3WIJL|!sD3KsqI3a%kU)VLqAP|@xwkTB6I+IL(Ob<*Z1 zT%@E5@+HxF5e6efg$H0dQZ!Co3Q?l1pMXS*?07JCS+w{F$Q4l-rA;xS#s5JTEBbyD zxHyrTI{)HDH>p7&LG;>n$Pz_O0t{XiwbOxblIYMO_)8Wo{S4%qXozOF6wv}&mQqE} z{s1d!q9wn;d%Eaz`jZM7qW7quHcK>H2xHlz<8Q$94bg1M@^VB<4KDMhh({aET#>K_ zT%M?p>hrfm&(8wjwkZD`WOqdC-oq`pE4oO<#(dF#y@;hi^wb7ip{S60If_JrE#U5n z!UfPQ7TMA(QzGg-kHJ#WY}&@(7cHHQ!7`EiuYi|}N4cS^jNCMyT= z%yS@)Voe@GIxY748ZswwKP3y!;+lS#b`gJn2*g#qls+$T6K{M0A-RkHpg#fNA^zYT zh^KgS3T}ay__vv`;w{dnt?U_b<#rhJ5w}qJ`>c41TB>}-AC7=KC+?&UH$U+sYH#)z ze@cx~0b-Z`;OM+~tP_p`#RK1h3l<-z+HZ(>T?|O5_@EwxVPatcR4$5@bKo{y{M|AH zaY=lJ-uDRcj-?=x;-L=25+!b43R$#x+dX)=EY9YGyCU|a93@8lD;0fX#obgui4)(W zlY@BiPtU=0g4p>dz!Sx9(5rn_TtSI-k~p5)^OD73wt!y~TXSG6MQly`{#0?Eg^IFr6V@Prt);aV%}bGR3ZRM3^Oh-5$oW#doJ+<%YPBs23f6muMMuRPCQSHYp545^a9r)j#c&K!Whn|J3ODv*quO5gUXbJz@oY z7t$+cy#TIHY}*BY{bJ)%kO6U#0#*ja*S6vs9*RThy&V#Nmk8OgIG)OcBjN{N!1Sp2 zEt*3fiLHZi3m%I@sJJpF9t%gDPsBgd@-i;|;4E-Y#d98jn-GuQ2bmPJ;xITR&ZQ0U zw0LeiI4g-s1MY-mn+Yl>C7+JKw5??4|BtOCB~9S$C8vHz)Tbn?sKd=c5~D>dj*_F4 zv!9l%bA!xDvi}i+aF%q_!KRDk>y;p`lHE^W(@o+)o$v0FZL}xxknk>n^OXGd6vRvN z6IE)wCI3dl${9(A2L^p48MNs=D=9q)xUa;8%Dm?!hiUQlle~}wEB=xbROStk^il!( zyd>v!kU+`mwFodsGM5q=62? zb0uM?VLDIp@&b6jCCR3B^R{GyPA2b2bdA8>l?-o&hkQv0rRN0_^p@d`lgy-3s3J*K zG(x&3*-DzllA(pLQX1OC`}V?Zh2(8&*Qu1$&>2dV z#B2?&TC&HCaBC#U?-_lyIUk*d)0{cehz`p$4)R z36o}xR>>DXz+Z=?j*66>lBl;}x=V8TU*H}{dZ>S?TavXBfF4O06<2yC$6f)hPqKu* zH0zgqJ|BPqN#{lk4oc?lK`aj?3=M1!Nyca+JuKnT`#vHGo&or%#A_jBk0jT+;o-4l zF+Htg66f{s@I>+_y|CkwN!q_Zl~k1jFd+#Fg36>MtsG=ZV&4o8(-Mcj0kD#OR0_8z zq`s6qTT3@J0AM3+X$5yu>L37TD@~)R%T9Xi7&v<=hfaY{Nu4O^c90JEAr?m|BM3H6 zOLtO^;v}6x+iGWNG41VLq-W_o+*LZ0w$*OZr5?BxcWD%*s2CQjE`A7?C-8?Jp@`fW{=}OAv&PlodK*djb$OxIg^g}h^0n*#F%Q`Qu z-3eTvbPuJdLDHgi;4Vl{E`r-&DYq7Y5b46J7z~wqgd(Ic=~z5)7p1k78ih-zjv=H= z(ibU1ijca{;~gm-rv)rZ`WC&~(bBIsz}RJJ_hR6#NRNF5n=#UzcL0x-YQF>*C$*)n zh&pmiPC~ra95>Cbd!^$zFVM@EZzJvWY?rUk>FCKB0G3UmBzL}B~3by zzFbI`_FjUc4CxRZ)?Ak^Jqiz*Qg7N7WJ!zGf@Dj5uHaH`NONh<%8^DQp%w|N>#CY(jWIhRxAyB z3V4b1*K6QPrG*8+-IsEgfh&_6#d%N^LHG*|WuS`L+Q|h=CDqYe&l-oRzejyy4m zf32Zk`Y~;*2c$pHWHl)L`3tB#lz!L%V?)yEOmM@}tr;*jBE9t&LK>A8(zgSTq!F~E zeJqVS2M=RX`_)i+BHc_Y*SJ(l5BpQ;p1%;;gtRIWgOk$b58!A@`qEc$G%ely|2IxH zrUiFG7QPcI)-r=VY}&}4r6lU4>{Uu!Y-OJGI@!s5X=`FH8={Hjl07w$*O3AE`{}F1tfhiHB^6s>GhMYd-+z zCHs}iDc-Vs)K+vx_V_(m@sZto4AW<2`j=tFSC-fb+&S64QQ-V!S(zC0m;Lb?Z~-#r z1^~{>UWkIRK-q!^kOj$}rLKqzGV?(U2Ftv!;%Y-=qeX4*kB zT(;#Xyhq9|(4!b7^R$J{XqoeO(7Y^rCK9+SGW?ZUykjyp^&Z5^D(Jj84)+CIyzJbo zz$M5I&=F{&ERkl0tFle+AiyM9+l#pNWZA0yfM1i%qn_Cm*=Mf+kSZJB0V`>;&p!Yl zU6%SIg2<5B48!Ji*{p9N%apxM_3|v)izWYtlXD5&>4G~>}Wqox$N9w04ij4bktrc8+Cw6mF&i| zFjg(Ia{{hLmO-g>t!y71{ME_!(4tr`OB4dvAoHNYV57`zh1=648~Ol%X4$vL0BDiD zT?G%VGGD4Zx5)}>0B@I_qsm@~EV=@Noig`BxRfs07An3!kR5*+D&4XV9Rcr=ebEO; zy|U%o!1c)@X({iQ&FKejKvrl2w}Y~hQNSO{{)&KXNcQ==@IEa2lB(w;vOCnvF)G_m zz3z`>Ve6stSk@N=GA4Uj2J%F9{5as_vi+2!Je8H6#VweSEe;2nlm*atgHy8kG#5XOTqcdw^62ZPHy)iRQ%-Wt8pp*^0nEp86f{b1uN&} zUv7m;pnP&6a6$5y>4g7+e1uM&gXM(*uo5Ewl)gF*m6y;#PMG|?Z^2!ZU!~LIaQV!S z5$7fODr%vOkdM+*9x4BWD%Mf*7OHVZ%PV~WxGZ1y9aOH!+nxa~M*g}xxLCRO4)}|c zFKvKkynLA-;0f}J1Bfh9j)EZGIQe;R1ehe>PAf^WeC`RrugNQ`fJ>3P{0l&;TtKCP zH2E=l*wf{&dxFc5e@40Db@?XR_h-tFJORm)zeqECwmi`Ql^b#%HS*=iA5#y=P5JL{ z0+1`W&~`OX9>K#k+>#%r4Zv-=gql$A$PGsj%UyZQ*KnIJzugW}AP=j6u|oM1y38W^ z3|DaX;q2hhY> zCC}{xyjqT;7~VMfzant8@*k;4StnoDf^h5Q9&dnakQ>VYZC=YnM0a0Pm1*w+88y7k>%TB|lDc7D1_hm%>{nr4D%2R?t9?3UG!^&g% zTH05Q$=^JJ$ezgmrO&U&<(wwSp32u-U~ED@m&y&3^3O(~G9~|rDxTBw8A60)rRewu zZciwdQ;KS>xJAV=8^zh5fIF!;N_%Zv#h3)dPSHbYg}vgq3uLDh{Zx*2P^|w4#vBz7 zXs>-*;kXA;J1MwFVZ~WtO-J7@iW5JAb5#Vd2f$6yz6Ef1#kY?k^H8Mz1e>0UcG_}# zDW*Pw%v*7kCaW`wUBAGsk7DOy$j&PE48Vi0qO}?-=M*w}1N;>4Qj?LtB4`^fIzVxO zN_yuNHY4By73;bI4^mWog24-l37Xl16;Z3 zX^Q0v$kG+Fenu=AiqEqlyRLZcV{n;@IZCKxDRyjxm2AcDj_`0pVMV*-9EBhY9&Rc^ z*pTHaJ`sWBDgJp6;oeesdE&m@R(O)XJBs({tmm%cU;-TFEA~5Kut4EK`Fx=wYb9(J zD{N>9DN$7ae^pah=(gTh#5KWKnSw(-3+0NXELf>fR6apSm5Rr;Fjl3=dme+;ij9;` z)+m-z7F(SfE|8gOZ^R#g(%FbSl0O!e5s{M78DzikIjo?p730xwc1P_z{3!#R)pP=~J|A zf~;RLkPFQL#jHOuIH;(iUBN@e&y-^hDTHA#HmuOBglt6d%~r%Ys>r2z;*mn|D`bxq zr>)?9OyPYS1|yWey#W%bOc}snlyW!?BwE?93&t)hZF*tlit;$M3dSf$J_m_c21+oPpmcc? zDv8QlFTwj&Ww#mOCMlgl08dut{Ri1KW#JN#6y*ykxUf_uDrK zM!9Jaq*iGW!&sftc>w_RO8al&wn2G>$_9crAnR0ew?NjVT$K*M1Legy$hws$=mU)&Zx&iV?8NM7I z9xLCWcX~{DQUjGIO7m`nG_H)J)aa?Qq6x+(l)=p)lgeh=PfscBXwjHf9-s}el`3u) zjGa(DN7rYqdX1{fHmd1jSUIWs_Y;`5Rn=dC%ue+yrQr4|%l~U7sxRqva!^(M0GXre z+Bw)fttuFTTPKwbrQpu06(0iNqOzyWva4z}6U0rmKnkIB7FBJ1RiDwTc1|_Xj2r2vQs0NnUp3|g5}ZZS5)z0kQmj!S3qJ_sqZ6*IMu<+z{RVsJ`a+h z`qK=OsQQV@23J+}3*bFTl}sHP$*Pz4!_hTWs6T9`sF;6ZFjW;6hN#n2uhM&zuKGiR zI5SkwPD1m#%Et>=o2e?LPq(sEXQ@7st-42L`Wvbv&w$HOjb+2wO;sjU)^k-7A^hd3 zs#~CPOBF{|@Y^bX`efmbs+OuhcU3u5QOZ|U_QGa?YLJTBg(_wtWJM}>>R7s`3ZmDr zSapfs@Di0rKe$rWb}GZ%S8cll(`71=3b=BW2MdE0s?9bal`8LkII2>yjv=IKmDhV9 zHL8MLAhoLPe!$hKlDENoz3S(Dm~K$br?aI-)%~}?HK`t0!Dh4Szwn zOWUY_Tm@q%)mvzLXN8^itc=*E-(n8Fb)# zMxEyffREbuRgkml3m<~`svR<6`kZ>kFs%5gEmTSLSBGHB_k4gliQeM#>ghO;K=mt0 zFczdfcNfMksOOi11gn`%kcFs=0ufTE`b|A-hN*|fKrX7ybUF~OJ~R)qOKLwYxCnK+ z5{@F(Z_u_gO8rR=tVF91et@VitAC{F{)&3}IjF>_-=WiiSoH^#ip8nd=D z6VwfATy3KIk7|T;Rb8D8K$7}4ReO`wLv$yusXwE0YtNsiivPCss{muv$dS3OP5qQ`^x7wO#Fy z1C^Di*`;3l|94DnPbq4*dLdN{d(`=H@X)J{q5hCQbrr2Z{pyC7!40Ub zA0o0rwd^QV9;$2iBlsb;74?Syq~I{qn*ZtdWj5iPO6g!p)#d@m1f~-^;yabtTfVfi0p*seL6O_);P@r zXQSCq&&x^8m<>2v%`BR%>@>daAoiO5;V^be^BldY4w^Cg`5iTWRFXZd$+-s)P8!P< z3_5F;(~9n*X{2P`Rda~eO*hSO0ZhAVRzySQq1ku>Ha#_=(*SsBdUnH#x5mpCgJ(3m zrO@=zbWknttcKeO)4rO%3DJ;F^TxaLN%gLz{526s0HYv=717z!!>Q|p>j#HT!HJ0(9HP+ zBvQjmhDwwspH4WUH7`*k`(@2D!LWHnvx*J&CywKb$`JZWQ_p^5HhGv^v2!NRM7prty$d%n|Cy$ zw5HzGeDNhz@-;0NaX$+*-s2#J8dDemMVf|b7`vwty#f!#n!&#zE73$90K8PAl!M&Y zoM?vIGR-Zzk>#3AX1J};T>KQWO3j@kfLCem(uZo*8V4WPtkJBeWB*!BHf0HQ8bA75 zZ1tLDR6%agyhZC@qvm}&k#5qIQh~2ovn>PxwrF0Z9@bV(#|*&RG)Jh1pk4F+0Bm+> zdbAkq)EuF*R+nb_Q&@SRdGSZ!x;2RxVXQ~vvlt$FH5&R;gMFH{^tASCG*r?X&@^s? z%An>Nl}sLLF3`F;qSHC2s>Y(gU+2REr1J_Bw_vzLjGrZu~%fyGMOLes?wZPEY+t+gzgtZcNe zQZvm-?I|ui*lPK-tFzO79|$Y<+Cxj=@08Xp6>tabY#me_wE{XoIIaDe3Q|s5f1074 zwdqu&cG2!w0nSyshVl?MZ5Y)K-L)%!ha(T|*A$tjc7$ddFYS!Q0C;OPl$D&(29Ls# zkJe)zWM{S4iy-sWo?ZgZU;85c1*-t9kqIm3wfhaw4AegB09=r^^*A&yXyyNc1Z&?P zf=YLC%@AOTb&wKh+Ii_-4)hs|j1 z?msbjS^H=T_vMQAyEox4M!U8ZgR$CUS8xa8wDVU(7O(wr6u1PfdNmBl?XZ%oefR}T=V^N)5yUO+16nt4Ycr3) z${no@O;&fcle9I-*JjYNRG{^zwWClwO?$&4Z32Bfbx&)V1zfS##sXZ4cG3@yO0_=p zj@{QL(2P>1HByK*{9v_FNxd$o4uJPg)os~>^XYFqz-_d0E9 zCmhvlL(fCAL3@TOo{icQn{a(i+A*qlHfuLi(YHnWGL

    wbs6nwP}<1z_n|`X24&E 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�P&p{b(m@y9U`y*eFce~8&{@3CqDq5> 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

    X3Y}*u!`LS6&;QZOl?Esu&cbrBnr`ek* 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

    U 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

    qL+ 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

    pNQ3zg+4VG_4iQ;4` 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 z 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%0DSsIM&2&$+% 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 z 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 z zh~b3XxQ2@7nJqe)+N!S9oms2AlKAo(4b zBnoOp255eVhRT8(!vL3G@-asF$ z4yCx@mof&7-wq)IB)@dDWVLSy*&E@v^PDQE{X0nUB&rO~h z9zt%56#^t`%6X)~kC7Kd4w&TP4KI6P7}1U43PY`RzuD!4AA^;{A?Gr$_#M%gp%m5b`^Z^6>xuB025aj1lp!Ns`ir$h`VZ>8&@#@ZqXE1!pukc}*Ihz3*=QNiAF2UZRKkS@u4*>&(xWKZ-`W0e# zl?rYt!xQ{kOwtAIbA#Q!ui=fA2D{REpx7GD&Tk<8!J4*?0sek7@4%lM84%>xw>cPW zVL*Pr!uug~8v_dXEsOz!9SneFY864nbibW&q5~#^9u-*&h-+;*vW^JE>15c2gt4;grFyXfhN!W3YP@ z|NTwNFxUk@27_~)o!`?pfR@Psf5CpC7wo%euLEuhu>|j@Iz}$R@0kWwpYf8=r)`0D zqR1dg*Bik;JBKuVbQds`IporR=mXVN4*3g?o9H|=hiG3!0*G&3-r;JcMX?O}T36%? zFw51s6aELE>xFl0=xHXS+S^_8To@SzN0E0yUqQ4>z?F%>q^~N9Zxa1`lhB%7g-7En zFs}X^B*7*)3gw1+HAH(Yq9G)crj97iBAWK)iRMvv88pYt{^GSM6!PS{uQw7G;480lRhcxtXPc>23u#WTV+TBNSUG0BaL_M-g@(5bI!T}Ayp z9difjA+<#D1p)+}x=5|NSd`koq?dmcUP}^-lBfcD(FwNqSS#_ z(WwK~-V%#e2WC}0svmscTP(T|nAP+Vt3cOBEV>C$Eqz7>$a`BXx)hjo(aF(NB6vA8 zoQ&*zDNsTYg8L$qh#4#kGUc&E;=vN_g1i)Q$KfVmH$}An3<_l%Qu5z_stS6Xs9XRL zM2wM?OB3{(qH^Dp6#qyP^unT|I)FtFsKUrE4?;#UQHiiJ@|TPQ$D*QA)=CPg{yD~# z!D1kdu=OdK2@3fHl|voKllz#-LDX${9ztlr?HE{3hNFgo7=PlNeZY0UKOTel$?zgn z61GV_-Q<11<%rxiDbY<{1su=eE(QAa>LZA!!daWKP3k9vR_cl|ego$l%lMXZntV5S z_+EG$;x~BsUO$HMbYplSgRi?zUDT$b24WPvseB5b^7~IU% z_xL90*DJi3sqc&X?1I?al+!0H0JB-Kj|uk^!ncM(u_|2dKqfcQW%{W~4!Kow$gL9Y zE4OM6xz$ZMhTK>ahTLXbAvb`_O<;184F5$Nanzg`RTweNbEv}4hxyvKJ?P0$5?KJrsa(0<8>iLt(sK67#So`^c$ti~a)5`6e z5N5R>R&OSRS?!0_n+ajB`_!9>VMe`A;C`KK$>H^8iV61-3f7E)M>hs9G*Vw=>({j@z?;RtI?nYKv@VRCa6i7PBGk=iB=;B6t7#hc5{ZNiCM zwx0?2MCbGjqg1%xM6fwpfR*e{XduqX<7Zlaw182vUEGoTkaes;CCVh}U(bZ%CkhxP z*OPNUX~KQN29AM4zc=B2kTx3qfB2{qsIN1*v~5gUiY0Ak4r#M;NSkAFGo*cL!iKcD zCX9NsY$H0h)?5xWhgDZCIjwWZXk{5P>eC|x|E6WD(r2lRaH$sRI36}t0IObp*wzw zYh8eGTSDAuc7fyyG>~HS3u7&+xI37)sD463+p<8&%jr;%(BiyBm)Bj^hc2HN-Ea60 z!J_OfFF21WPj*-Jp;Nu+3eG|8&kAMUbXlR5eCY0lT6z}R-Uf|re<&;cM5gBm zi*A2tDIdCnUUXevfV?rBj<$Vz$V!{wk>ep@G+CzKJNOglT(T&Rhcw_6#$4%m zNQWsvp}IE(uU?8LLkbcp`dcCLL2XpVT_O2sDoelo_!H;&2bt1$h14^pM-~V~4c!zH zOcQ(haZRgOxSK-iTDTobfbYtjxQQ0-N-w^b*1>a&a^iks;Vue^v-rBsLcf_gad%p{ zGec@wxM%jDhEK?ed(*<5;Kg_78Q>1jiJL#K>4)JVwN1XE(dFR(hWS_v05kY2*1~I; z?-jFUhK7!Zzhb@d5-q&ge6bc@!EUH=rM>YcT6m@NRkZNh$!I~5-guiWyvTg@Exf_Y zz%S4nFVn&c%vaOGOUC~<7bR~zE!ebI$`@zhbzBJ>e+l-ox0HqVOK^;Z7uN}Rm%Z^? zS$LO&J@!t!0=cKW@lq_jQ^Ceu0rQ#q_kg$08*iC~w=cMwDL3*}Yz>S3f*n-J={E|0 z;+*>yZolBFyzGqj&@cEkvpr}!s@}W7#@Nyi|3DS*tBUo4*#d@m4P(4YVXDttW4+*7 zhFm_EsUO^s&t>`uQJuTO?}c*G_OxgV1=sMQEfn0Xf=qY_0AZAB(`vqdWgSLL)l z-OV0DjOej}%~I@MHc0rtm}0lQmJO5H7#M`6&28wG*C>mg?#2qLRJXicD3kgJHXrMr z*LOaal-KZ2AM`*qG2e=6RRJoj53(fG#q>>_^R6XfeNc5%+isJ9x*@0`WzuSmt=={U zmFFeUg-hHVWJ-htY$ghk9a?~FtVcov?hi}C*q|z=FYA8FP+#R7Q4VEGLz{{o+WU-F z3Nh`k7-ZQWGauz&F{q(gADI1>J=#Q#u8-b1CD5{T8MAbv#VaMysINWU1vWsBl)&Z& zFE`^oB+yvrb#Zq~MBh6kuoV$w_UYc%7x*6qR^|ADd;Dyu{ZXK?&XBlgh6Q?ghA^X+ zu0!e8^=MR%S(hi&w61QTQOgXC>IOFQ(WqWv1r8e;)eCIuqfx!UBts*v!K)q(qN;xl zcb(5;d4qelgC+ZX9!oZ}{(K%&Hs_U@$Fe4>)0?PzMLoQ@XRlklisq?f)*c_f?%AGh)3Y}N zjK0(G?9G72J{sK$sOaO_TLGczh!++l)6(Wbxhf5ot#OWfh_vCh^S^`^Op zcSUC15{q|pf2+S>yqo*KL77&6(cJ%SAKooJyaS}pq-c^CJ7e+)Gja#b)}{j5UBzmTi$NVEalBq8j@MyQHE<}&Aq zVXeNP391Rd8&>%RxZ@`i?jQEvEWnpd7-MM5Y}h%^qw5%EXFp5VdAZE7o7*`rm$CN% zJ1<~nD#mzdae#-BCCj3X$z_!zvoj`_;iE*ZcU4o50bK8DCT!?k-GmLjV@()(XP!ro z^vq@XxB-)0yrAjhXD)ND!}WgVs&AFgwp2KEfrqvLqg`gvE^ry+l`#id;4;Q5L+?c{ zUw?mQ!iL_9P1w+Ti3ww#)MhCv+Blcj{4C9qJI+>^Ijj7G+PLKkm3EH7sY)GCxnQ}3G&Yj((JZ#rJ%HPfhFw;jHE-!WlB?<^BG z^uBAts9pW?VYoT%@Ty%UEV-v0W{VI)r{X9{-0zLo!ou6{sASf{s5|Jo#5o>Ycj@7=Hp?cwI;Cfr|$Dx8kis(N&LkJ)+8 z(oNM3-y6EAdR-qobxXDobv!Sauh1-?wX>0(ZxuFuwnFpu*$U0qXDc<+XWWieny(#e zG+#T`nlS9Rg!3tJoJaOWR@R?evd3xW%9{7SfKta zV2sk7wzX!Q7A0~$+vd=-ovGIV?(g;{{H_qXm}VNaG_Uqh&5~0~D{t2G&_*3m@a4Vn z-n8(_Yh_KmsKZ;}V~0og&CKq}7Oq3{^vp_Y@I0(q<+F;n2MhPGYWhfs+Cj%x-8{IN zy#5z8ebPi-Cf*KWmkbla_%qZ_aPyOl0{ zCfvo%>i-_4j8FaFtC+HQdF)fndLu+F*oU$m;E}zV*>TL0JwWlTlLHjrIyuPVEkwOJ z1?@Q0!>bFc-z8o!eG;np`Xp5G^+^GX7uPe)OV4|~;O_^r{UO{TYQ$t zR{aPK#swU4x;LIu%=E)_xtvu$E6jjhJw3Yd`dP-p?J0Zu_7=-gR;4_+ync4Da7$S} z5TbTcUEVKQ{^IrXa|?IBCp`wiNO3;`OuWi>5tAB;Rr^BAMmN z>t_+EvrqjjDwQ6Ire&LC^v}gCS-jj|lsxrw>n8LEr|p&Jtms{G?#Ni z^vHRO=EmDSw0y@cw76;ScG2=7PWRx>U~*bmxYI?m&T~04J#s?Jbii0LQuHd< z4=lQoqS;3Zp;1#Xe;eqHx5UC5C|dO-Dx@cLdEKK6@1KrYxUY*wo9QPMj<19|72v_; z<6U0A*2dp5aOFyFOVmP`X&d6d6d}v(`zyk zT)#58)C;ub$FWj5FDFq#7!oWeQ9^hL7{tByLWmEug5Ejx0(ssvE-1n~&nKtQ^VBn_ zB7O5ro`&*K&(Aez3;$s*+RItYp)mcxPhwAcP<^By)nWPt@xTga7%;U>`ceC)AN2|J zqke~e)K}5(&-hV4PCpt8=ttuX{b&rMAC05*qp_KO|I_?-8ggkZKtEcK(2v$Q^rLkc z{b+4RzxnLRPk<xO1vc4!<;;EujrD4#8;5wR^;Hbt?&v?n9Q?2lz2Eo z%q2(M!fus4GPhm#lO2On@XnFTCM$2egE!kWe>u2ZanKbAVECNMc-nL2;feO#cJEv{ z*XYf7W6EAV&@0uxPz;ho&)%Td<*=!TpJcKbDF(|0kHp{wEN}cVHisnH!}IYpd%^r( znHV^Oe2yY=n0`WMNAU zqE&GMAq(el2VWMdu;=Ru6rYc~)w0lb4m~>_q^Ix|JzHfccuvVj@l3qXA`7l1#BD1^ zep&cDAMyVM?{&$-oU+9El_4bMP#H>TkL$d$P;wMK&z>L-A8)7h@R!M!2Qh>{dp+?P z)P``@Y$cp}3yDL_72+K7I$`GjfiMrgODU~T95J)l3TU} z#aEW6=WpLp%IL3%!$}mAEX?Rk9A4>9xqbFhdig1o-nbJzKV3r4V^c}bRalN=b7?+V zI^lPGxUQN$2n+fwBW<~Z)!hfp<>D(Fb2+6|2!jyaX2I+a>ebOZP5~bYS zL3~cRSo#V|?;lCDD~ghoYjO1KUW`)KbfS3hZNfQ#w}xb47+wgGg-_0tlt*1CUS}2I zxSEi}gUk=5wh-nQH7Vr<+!lqlWhrIPY{Gnd5K(=)igf6Njs&vaC9Rg>y&734$7)pj zo0Q%|CJv$4tdNCnH;KdSWh8g}1d1o*BR;D>C;pq5Z@b%wYD+t&+mH0ji{1!z=_GL| z_X~TzN>avFA`T7~PZ>xY-eXp@#zi-9T}_-j4FWWpKJnej|qPrYcB6O6m=b(!b9p4nJ+7^xYlknY$aM zd|Qq1zducK?*vi$<5Z%`#rziVh;sM$rj*HP#3u@Gq@wIxlybmH`1;3`GH@*AzP_6@ zIem|)c3`nB3%yuPi^0rO7Mji^ZL@DvZtLIZIsFo)fA@?yD0p8H^&J0181)mw3#?vC zxp&tR=7ts&?}n9>EWEjxWX;6psVvm$PnxLXDfe&y@gIN}i)Eq28hSq6K={i~&~xU8 zgt>nurGMUwp3R$+#6zQqwoONhUpPU}+XpH4_${*KYs{Txp+X$RM~^3o4~x-r6y73} zg%?W`&*o=I!!IgQO5+Pe`}51B$@-0yQul32iEc%ldj`?-)=uKt=LzvScAZihKc#po zjx1$iB;Ia9Pql&K9TSMQ*k!_haFuX6FQa%Byz_%{oJ^PrFfA=7HZ&%9HdkyoZZP}Z<%Klw@1_Ss6TP5 ziaR*6aO66r+-LCuH<>=~5dRao38yH-TyT~+oUcx~L6?YXc5TXipY@!z-y?1H4J6U8 z8l|_NK{y}cWkp%&+Ks4ck0&YDULifVzeO4b zJUSme%dtMTLr>xsA4bo8Ybm{01>)03C5zr)M(F|Nh<1HRil<>a7`@*J;+&Ux@_p9h zm2XNZ4={582R3@{Ur8J$e@B*HD@D1Dl8FEEDU|-{S>p5AZ^ZK@yrqkgdLE@O97p)K z9ua0M+;Bm=Ye?y}u||VF{$!Vmf5Z*WjOWEviobS^a$B-l#L^)0+tjy+r=u06uPa0; zwI>jtGI%dg7G~9=^eT8E7^6=~O25;X;sN+B0QyN*I@R$a06cS+_^(MPJ@eqrZj3Aq z$Uj%Hc1HWfdv@^2TSRrQ195&AvmUe;EMyg7K>B*R>%2 z(=%;|JF3z1>+dLcPeIZoFPkCk#LkN%Jd7j$`!NegZ}uzYe%qYzi-(i1is1ceS$Gv~ zRuQ_h5n(>-Mg4H6Ru&5GCvD4XM0@HkJ!|ek-y}TVLAC_RlpB15FiU5uNPje(wA$5* z_*c3^m>t(se5RW;>7GDRs^bM(MbKG4Ht8LT51&amH?GpN)NRsmM1A6!&1P#Av1tpP z(Q7Hf^m3HGxd&+;*My!`F+Wj+u$81qGU~G;48wd+5k`iP#P*D5>;#gMJDxb?+d~@O zWn+B>)=&P->dCm3RN}2aAfL}Xg#wTuH8?-MHX#>&hz%;aN<8Msa;=^d@vKd+#maTY ze*<0Xx&{HK-rOG%uRpsf(qG-%3h~#5PlcprTdP2`b}uXNSJ$uMJGoa_EI9P@b0GJ< zXQ@aTDn>z?JYL*-8)Y$5j9v4IR6n7c1fJ{2dviM+XD32LYF#0oZu zTOeMZ0A35lL1AFFNZdfP+t0*dxNRaY7N^z$`4VyM5wKn=zBLTGE)%=LA@XuDpc$ag z#f?`$utL0zPbtV>h$+*+dZoDMR|KoXVKf}97T>3ydX0Fq7X+;pfBXcAUyA)FLHasz z^^c%iFILQ^5_o5iIkf15cOkOek0E&Wn7$l1Jx680 zuwI|jAoJFKnzr7~W-XdPv4)*?6NX$A@9+Q-9;@+TUB z+beS~LX8UNeugO(=b$aimG-s(X5~{fw#L0k*3^G|1yoI*Qa{%IXsyeCNllM5=m+0YmwRUjYx)Y7c`}ADDSm{c!qpPs<>0AMi#PB8!7UI9cH{R z?;+HBxm*;~EuHuw;$?T0f%r;WnXS}g!qexXW&`BQ+3F$UUwzZ>rJJFPSdJ(q@;)o&O!JP@q4Vc<&VUw zc>v82UFCo=Qw-Mu%@S|Zu(MFyKLiAe#75NlekQ)P2;x_X_lRz_m>bs%&;~n2B5$*} zwh+j-h~3i=Y!zG3I&!zz5ie%Sd&K2_!2DLUO@t*U#PVZ-a#H*_1vY*!&aVdY%i>O& zf?g312Lbb{cpF>q@~`6UDIk9!M(lzv55?HNARl4dlOLEPZDEzcWt8o{AA)JNHieKk z-4^l*n9Z>5quJ9ETjp)(xzzSvXXGuj^=%Bgjka7VK-pw#{~72u+mgmY!nd}EG|Aa( zbN&iJM{J3=fO5)~?+g;p*}fN{(s^48ni*ZRZP*9svh7n^?cA{4T0wf+-lo}Liv1={ zO@`Y;?;;p$Pgo4harPRUfjPrI^e}kNwC~CW^qIX;bFf})?^PPXT6@2@A@)oAjE>0L zWiQwTg1)x5mW<+!_&E^#qM9E>Zee*cEGx3DsnLzp?1J%Dj_bP$qH6h3LDYFK0_5E` zWEx#o=*q^>?M1(>a7FQi0>CRdoJNc?D{=W%EF#U2N*`>b7IDD=yzTWt^w=|VyQ;RyC~k> z184jwX6^;UPi!Ih@C|y#v}j;Xx6w;!s4Efk5zMkpqlxuw+jrZb!Kb!-sYsk_>wW@U z=G%Uy3GxD4g#}1lWGmeqc6?^5)EPWC*oxl=vyHY6w5~g9>v##!F%!b()bOz=Kdk<_U$|LQew4bodejax?vipSACz#&h2O%^Q&LgS|aiqpS7~)T3Rq&s+|5Z`cpw6A#+kob`__fsSem*(d}FhaUbbFER*h4&y~v~&zF&a5HBS85?ilF{+scsREs@%N3FVhbLDP`8T02Bv%3n&eP9Rt>ja>_WZjdUy49v|^ds<{}kzS@1d8!oC5zsbi zDy^WlOLbR*e20`+8Pa!2^D!lrzm|qwhPt~YM*%3YM`}?C!CvVBzIh|>la9n7I3Rtn z3W*1$8yQgWkaXd7K!>Hphmn^iHN)|+d{oL62%g8Ko_HHUJ|WEvMBew(XD5+(N_y}T z2+l|iry@v~%FwRnS*cSfpmWj(X+ZfwTKp+A%al6Ps^&-OY5=%gk^)b`qRUdN0zkPU zeOe#EHR=9%Bwm*ah5_Z46f+Ttx20oUVQrRlhZ_1_Y20#1_*vRdliB-H=bgy=RjP&s zf&4&fT@r#GNnIWw@3C~VCdi*i-%S9sr_#bZKuM9?$xvd5{MtUy4VC?4fH_PqNHhHr z^6Pcs$dNMsQ!%QIJh%qv#>f|z!3AUG!4H8lPQG&o5+=y)QxHs)?`DJNWI6vuKvU!f zW58^hylD^=oGz);JfVRkaQefCtxh1XIw#j+=g4tJc0h%7}kTEI=@=o~& znrWSq8$1BrY5B=rKpAqoBEUQ=XV9wpygWJu!4I;33KB2K(0lo;BA8L#|IdmEFKVx0g@RtC)l-Bcxa9-vH9{7yp88Oq1s!Amoh*Ovoj zwz7n_iRLJ2wERd@zMTW;sIqPyFi$A2(uC%u^5Yt^RvAzp1gDk4pFzQNCHF>f$xsT= zZ2X*(kLE+?mCsHjY59dR|6{Q7r9@mt9F9Eu) zbk7EKQ>j@QO59Q&u7aQ}r7-Tj%XgKYtHI^IGSvlLeo-1yU+_?QMw<$clt<~Hd!k%_ z1NJ>tx?mM6KU0cR(@s&vPmuSKx^^YYy*7*#-5*#egoVd1)>Ble!}v&}Fq|e&k(Kx79*$UEN1JEVtCxcOmb#dTtz` zyXw8gP~x82yf}hi)Oeb~{;D2&7xEsdD<4DM$7=EX5c^c!P0ju{wRZrRrDzw*BXNkP zjR49}tr4v>hG}2lL*59jqYdOEwZ&h9V6+xp8}i0zlW5Oztk#gcJ5GDD2*Cs`Bmi_1 zwWSq-Iaz!1BFLv`_i4nNs-^dXO4GCf68!nKb~y@|-)Mb`BKTH|c@1Xn)%MVi;Q{S+ z8d?u(O{yX|q%EOsfx}vj+E5}*t9u=oM>UQ1{*G&<214BvT4Y-Ur?hSrkat=Oqv?LS z_FHwZ&d~DuL;88`dSNj8L7Pt}H5av70l@rG>rd_dC#`22h3!3aj_9jFHz zt+&K?(d3WyZOJ6aG)Qem}-W+`azAPYrs^@8d#QAz4O%E36M^gYT(o<3(;WJ%iyBzuo>d2Prdw&7l za=k2x{an}k0P_poj<1@^D|H*T*yPpvt^1%`qf68R*6E8H0$Q(sGZCye>Q_X_+oW%a z2eU67Z+?Khb&hAzV79^WabE-*9e3M+ZnI-de_(ELv_AlzsgBT{AlT;kAOZ5WJI zXmOqGh<^!Oo;WVji1(YL%5E@w=15IOFvK~(0un!R>URLmat1E|G}~D=7+gMe2Jb@R zTxV~Z1o8=Su#heaEmUyKBo&CYux;g>DW zkPIZIIyYidMc(FojWz^!I9D7*;!fv`j{tq`EZGWq-#8=bwC!8xymrXj>)cA1`<;{O zBJY56oB$=hb3VlhxO~X@*<9Fg#Oay~v1!g%GLU%8IlLo+fOqqBCj)=q@>Di~#0O z&PZD2UvUa4zVMLK|T$kmhjiNmfrRN0TX zMo{ON<~sN?=#ILE&?)~h*W6wRj=M?_-3eFq4-uSnO{fBkzIQb{1n88j!HeLM>8eF@ z{R^%RUm@?3>r=dkD_?cx{tT?Ixh8Hy;&oTSUI=cuR&|0(H(e!3`CG0v4S_k_KW~b$ zJFrr|lMJ*~a)s4kzgiweebXBG!fmi$D+e9`(FXYn4U8M*Q;R^mN&ch^q->UNR6*hv z`6!(xY?Ft7f#557BkdDzmrIXAutTn03aod^Mdv|-UGkG6Nc>uM;oC0qH*$y9A#b-_ zu@VyZ$gA)%SovFd{z*vKE9ZR;&_206?WFFPOC=#VAV1lQ#Dj9BW(dBMOD#ljNN#iq zdLEWr(5}%D*}fMl9g{Vh#UGa!(-P!_oUb(!Ps)xcaQR-I@f03DB@a3Y=(IeRoN`9~ z;dNl9%PrrAN*QvEWbiyIk9iMy=VUu|Am`<;XdJj8M?Hd>7v*IqkocqA;}%dZ$@dZ= z;U~F61Ms{oCze2PMXrWP&>_z?`9Wa>*X1E}_LgfQ$n2VHkW1#0}N|lo!Sgcei50#cEP4^*hsZy)~f@R8EN07K&DbN_f=gJ1W znkBDL&e6ft7s@SK4y{yUh zL;I1Jl;6Ws&!@Qu8b1-Bxtpw;- z!N@jDeq(7SAMM6NzZJheiTf3qDXDQ<*9NMA5xWnQ$`E}!87HB zDacDv8`G#hL_L%Ux{uTXeh7xEO@Ue+Yt%PrV|T5ZNDc2xb<#Ght;`DfO15AuoO_5+D8U-R6Ror(POG)2icn~VChdv*px!wST{6|C z!BGB!x(W9QvBcU>R}C(y@-5{3q`pr>!DTi0BIvHF>u4EuP3=1px?ERhVB1x`q0Srv zf}3iGc_6=~CRBk+x79f`6lSSu<00s-S_I#o#VYJ*GhqI#wxJpDeN~)>;8%5B7tlRW z)1E-WLpA6&cs^41_6NaZRk8ufR^x+#`9z&D8YoZIDla4WO?{7AT#9zJ8Bm63pSDEe zM_OkQ>JHQT&?UIx+8jDZ9ii@Xq)}pdB9$ zl!e-=IS3YMji$qf&$RW)fEH_Q=oZ#8?PvugF4rbjMew9Lde^%m85Oi16tj3V0}=V(+@8APP>~Mn1{6VwvcdGYkw4;NYfU5 zfW)KPgC+=$X-8;9cw9UCF6=v@HKl#(liI-$C~-;)qn)_ZT6%9-dq#8a0FkFX7MePpVQ~ObSgPQ11S~!iOm$f&) z2f-C>4B2p1OQ-|7Yub)Ck#}8tgLaN?YTXNg%Ps9lHw3q}3ob~%qs8?DW|n4iAh@el zp+n01+KZDx_lq`z)}y~_OEZ!9Kzlh4P#$VUX?%aA4ef}$Y%OjKlz5_@?E~nkHi$M3 zf73qijl^f#vrf<@ML((m`bb|*9nw&}$~1UlnBMG15DeFM+(Ixye{UyHM(U?7BX6|6 zkEQ@)^iGdK@UfmutJAUi#^%s^oPLy6KI8Rzbjf6*-eMATnWXQb?W@W9C()2TMQ{BM zf=~3;ML|AQ&$Sg2rt9f6D9+HEQYSZ4uS`vCmL5Xa@@DJpMgp3nU!;xExq5gjpv=?T z(`tXdUUM7-Ezmz|fW(D*J?csp={Kq%Z?Rs!BFLBMooUXnRG+MY%QF4Z25?!fzd~Co zpX(hK0Obqa&k4Gfy1gFgR_U?Tz-+ZX;4q*y`cYa2uhp05N8);Yt&GGC`VVx-yiqTM zx7cVAPV>Rd`m(M_+@cRT3uvnzdmjX;dI=iNw&{0ihw>|Z=xnIFU2iuZc{}vP#gM*J z??F3GyY!RaBJpe8P1{hr^>A9s@6iPstG?Cy(#68P`oi4cvQNjq#zhOz*W>df@&SDb z?Oq<#wXMkePA?UV;E+C#dhf&fahg3H(a(QN!NSRLOVm(XsUTu-@YHEc}|Z=2AA{t3_3dfLEknM z1Q+xhqk(c!Kfe%u`B9Ie(f*RYvLh0I(#sZu5|{N)UkBzD{mEqnSM{>nfO1U_9S4Hz z`pGencSG;?6IkEY=g$M{J9_L2NYB#eHwNZiUD|};p8f+hi=TCz^`JfIlWFhm7yVV* zTK-j^Mz?kz=mqFf^Fw{u=ivERFFP4pXX`z_1NjsEd#c_~b#V$3f73H)M*U2mfh*T? zieoZeKN;fqmTtm+TQ)sULiKBcqi+quJg6kE833>#~00nOXVWd+(Y0GcC)?vdmH0wqeWEa%9U{X;#Jt1w^JGC?JST z88Q@*sqC$Yg2>(?2#9Qc@9VF7-RJIochB>Ep3k_u2N0k?YvTgdKp*V8+W6Fc!+_i3R*D!;SWXVGKDXiNYDX*FbiTAr}D` z!N~H0mGg`V+C4=w9#6paMKjL63M(;;mA1I{SjO{Vz{N2R9s_rQVPgkCJmbT)xFHD) z9TS>~j50eIOJ+Pr&qN9%o_3X~jJeBTGmWvO4)9Bi(RbkXG9&$KTv$2-?*U#5#*dWB zzQS;$taTP+a4EQKhR+0KIgFnV0FcY5%>$Rm_zeGUU|v3B^m!P&%2??DQoz_sErW#& z|CLZFVvKD<5XFo^e6)bv)UF?4vy|~C8$pyY)_Ma_&WKUKW+mfbJpfgV=V)J7&6tyj z!5YRRs)k=@NN6d)!7$ME)iQJoAiK#ZTZQ{_i}5QZE^ad%6);xMD5fdBfnlOV$sI;A zbr>}=%1&bNE+cjWG@BUf<1yIExI-n3HpVlb0@u#iRs;_njAU}u$v|xhF9KurPWbC) z{2B?ahw&0s)cY8Il!m&;_@EK+e#T*%P46?x6yOFJi60`eK}HR}s6>Wq^%Kw>VwCKH zY=jX;xzmS?`_$_&$~dqKnvWPy{f)sfMr8=Bj5GdKVQ_-6vjTug#<@B0KFz=`8ZQFl zH>xkqGEz^&v<>sB9>kUzy%2+TO#V6m?3qKm0dQchp)$S`(>e^CGqaz*3UFb*Lrd~e z=3>gM9AmDgnw%@MmCmqk%!*n7+?n&~UY}r2?1L3grdJtcUd&~mL*~ug@!yNUETr_K zFSF%W!2Ou5B`|i9dAAHv2QbI{0XW6<(*hpI{FSOrLCnL{RCAg+MlbUj=Eiai1~V%t zn;60jj>er2V+PZ*6wdth0&JdR?ze@_2y@jY-`!sOErP{v$+05;2+ z&U10+E136dpjpZE2nVTR?xWjN%~byj4>io*c&J=w+IS}2=% zi}|+P!aK}oX==X9TuEn(CgyvT*Jx&*X#r_rE+J#B%)jm; zmNuq}y1Ck!^C>;m!Mvjcpo=+yf4GIr-^5`A(Zk$0gTY>=flgt5g=wY-oe^f3MU zfIG5^(B(GIiFG^?x4@b8;h!KbtX=;=^a&WCk~fk9su{a+8{GB48Uu+Dj4@Dz(f zWxGJuFVBJmu^9B|pJr91B8W3AJ`;ct)*)IALs==eLC&%+Q7SNul}CL~;jGUe!{9kq z9UVI(SRHo2oo9K{(JP9TvmBbyEU)L`D25fZ9D^5F?&$!;v&yKOKY_J_wj+tGC6wY% zVwKUU?jmamRW*}YN2r%4h4tgl;8Izt=OIgDrBass63Y%>Z_T^RdgmTw>8#f`AkGZd zLOL{Mvi_jgFpK3+PgXYTt3$Zj99DA&26I`vD4m;!FK!{rXYIR+Ag;20!aqEjca7ys z`TIiF*Onm>tP@U>se110&s`b zn+wy8tRv$veV6qZ&B;xyJv5axv%Z}KpoOI_25Dt&piNsFOXUba2W$Ahtr1IOhruq^ z6Lh}qWkpjGsE@UTri6Pey%Zk$Sz;<^+-Gf~-P!=_Atg5lS+D;He-Bt!=u|$$+DY4( zVb&C_lq0P5REmGd>YhQIqpY|#czDG6ifTw>tU_wY9A}N@z}N&UyBsQ$tQYXdh2~AM z43xl}Wu2!ZunqecQn6*{79tiqcGV-;v}eEG2$=&rnqFT=_R=uOoY?#Q;N6-1ZW2^n z*gw-|?k8Pg!gH7 z#c~93hP~ryaKY^2_W%fCchR9Yl%2N`+*!7sGRR?U7pgslv#oSIKF1E+i@^wXFaw%V z>;qwlC7ONe32-rNHr1hH*@tx?acoTug1^A_Q^IXLdl^-D64;wffG4sgwB<-*f3g^k zF0%hz3|TUJY#xG7VYmDVf2r&pD*;bqSK4Fn5_{LjaCDiSzZqOQo4X%2GuUieNwV0? z#UR=2opk=oVINR{Q1q*^j5g(N%UjHC9|>|APM{Gp~R>Y5-Tr{*)Hl zBKB|euovUcaKb|gTS|Agl)da-sFbn0=0c^MeT8yC73|0V#9$?RvI!wovBzj(uV(ks zgj>TtNL@>{?ETb}ev`dv2fWv@U!Vu`7W=847`)96qp!^B*~j)_uz~Hd6|vl5HyXh; zve(e6c9(s88LTw157B0}nY~5_M=k6D>O*X0ugwCWjU8ddU_0Aw6ybKT-==A;ll`PO zxGwfHOTcxrU6KIrVgFeU)A!g`n%(-@N2thrpB+GrF$3)RA3|l2z2G7IJz!tlfWaa5 zAT310?9sX4M%Wu@1$xMyPdlH2<2X?2!jNt%Z}k1PI5k63S1!P18NQl;yAwyo2NOqY+>aLXW8!n z1akr!F&M)6{bgu|a(<<+zs_>%egYtj^T-JA;T+cgAUns2`whWIaM&Ec&vWJ!0vE~o zOAlET=UpL4H0O*fa50>|PZ3!x=Y2|X$8oMv@5Kd<7cJ27oUd1cOW>?K1d_Z-yhNFrY>svdG;=tMX_m_65O0R;m_XgZn za?U>oQpK720XC~S6_3F~4QE9g2Cs7tQ04gshe11?TF#vy4Bq7ACqt!p3qwfHZJMLg3*J=N!GvO`I##Hr&klbu+jY&JX8-Yvm|n;jfMJ^g0Z- zbLLYETL))BBuFR6LjJlqjeHpE=F}!)u!nP#ssp{8R_aIX)CUAVZvy0~j3U4AaUr!pZMI5Dz(GKX9X*J9mM5#CiG< zjE!+#c^Cf1IqMEXWr8!a3Ajm4??t$s;@H#qXqt1R3xFAp18tOMIj>RK)rPxn1~^-8 zMjce_xGglP+H(*62DlUV-AmAP=C;H`=E4ofUv-~%l>1me{2k-U--pbVYiR=K#vRW9 zap%6A0F~q1ic^4laJwi)bAqdT5|`r1U5W(dJTLAKcVNt$tI5YT_;6jQkJXo}>jc1$ zd*>=-C%N_G0Qhs4QfmAZH&zClf!tW?QVin8(i?u7JD+~IGu)Rc?;Xr-|F3nJyNQ~f zLb>VGJb0Gtkq<76d*fYL3Flt$hre^&u13frxY1wYPMqgvaG?^(P5d3Eqqv1`Fc!`I zmg@R3+{>$>8Owb<8@PCGKo=rQ;68l16H@r9M))VbPGK za_tD0#_beCyPX_e=U!cn z!5iGAfgrV9H`?3Wg@;?*rvgB3b2U^@tLNtSfi!S?>3gR;+!yFG%tr2a zZ^HXsZues#O!A5!+9gS(Ip?w#B&AH>GEKVfr3-LmEu?bAQNz%6;zt?m;%dE$TqHgWREa z;O_yqmKw}PxD)m;{g4|-^Ta6kDg&C2xLf=|#<+R3K8$m{pM`9aJ3$NI6gO=eK}>UN z+u?SG>rH9NS?)<{*t6js-wL<(yr@~2cHph0Hdseq25mf@cx7~6apu+07S)AU&&J?U z9xnurj`4nTflW8wDoPN!^Oi(G^Egj^7alx#+o%QV1W(%o&XcEdfTkBOmKIDOUN9en zzPyP?81&;=uL0-J`#c4)1n~Z(+}bJL5a9xON9gP2AYMAj&hQo>U9w;%RA(E9R-_ssOL! zJxDIp*g@S4#R~F^6Dt}`+(=DgWDmV8#N#g^PYYc+z8M0 z9#kIk4p1w>D34_e*(09i1Y#NEd6vQEIIsOva1*??rMNGXylh(krg-@ykWKRz&|zza zcWEBTEU%Z+nKt}u520zxKeh+gXUE@m2_EeEh3DYGfnSydnIr!d9^g*=#RtJT^EEWr zx$q+>rGAuu>3hhI@m>DG^||uTQ469Q|7rjR-TBQUuz8$cEk;P5d_z3|Ui{7BQ1Ry5 z-T>#rKTL-aUw%?Dh#$Z86OfbqN+T}JpMO3URs#5y@!(GJYv_>*{e`7GLboaL{ei7br2kxGl<{KuZd;5q)+7cm&Y|E(S5 zJfHrr=e$V%X4*PL@n5FjA)3FR-uD>(%LDKi%g;E9!8pGElTf+9e@+2o@qGJC3?}hk zraj+9el?vbllcL33{2rCQXwFfe|!OCY5YS!Biu{;_KzXE%%5_D+jPExgWHqA_jH10 zCf}|D+!cQ9=a6ObL*ij9o9{jfTn_(nTH|v0Mfc$^kKay3kbJ(|KH#qMJu@J?#$QPN zO9lKVs9sgb*R265;y<8lb}@e)<*!TlAN&qLDgWGmXHn+o6>3i%6ZV7;qRdq zgjs%LDh6!?yQ#a_R$$D9%udkC1i)U9@goKu1lH}a=_v4{GMSS=_&QXa1r@Y0a}hjF zYvWNt-4q6o3GV7}DXxM9ny=ji!@q)a7xdE&IW91M0!+PDS{<22tHNNSq?{Og6-?!HeK-0 z3$hFWV+OKJ!F);^ToI&=K_yFYxeifh3yR-@EJsjFlX$M+N$M8K6Ktp7Heb;35y(|R zEDu($3A9eQp9O+5Vt6kU1bqc#MS|Z;z!eKzXp>kXXw3juD)^dm{$+v}t3b*H!ET7U zLh#NvfL98F13{_;FBZaIwLnivk{ZFvd>FefIOh)d4Z+=8a9b-#L?hC?n}VI20Iw5V zr(V@tf=x=`ZVOt+0jL**Y=f}|!NfUmcLd+ie81g=>SO$DG9 zLD7Avv$H*!JR1zTxT+9B|yuedq|#k5`S68KXiakpSOoqc-*$C`la73_Wh zV|{{GDFbp(@M|q1>leJv#o&E`BV}9$1aAdHHYi9B!QcbIk^-m<3HDR=XILOu1`i{G z&6MDKC@6ddfN6n+cAPT;-xg@j3fgFKvl04GHOW>O2Ys`3YfqIXF+D6Xhzsg#HBZ7EX79_y~VX0r3^)(aY>7^rdXfN#U22L_Z~Tr%isK z@b-^@2MGu1Saw<%uoWSl5iX`QTCkAwJ7gik(xnJKRQLw%z0V4TbhE;QzuUljxKPT6 zv2()x{xBUOe2h}n=Y^xRuty42R{@9;nl{2pwD6s$Kw^ZO>6@omVGp(0#R(?{VeEo% z+v^yN7y6zBmmstk1D+_%wE;Xy=tSwMi^5N7Ym_W}yAC8xsG)V`l5idUMW4$;1trJQ zg|m+kb%yX~Do|z$hdu?lBHY^pk|n%Og_UgKQL7(wUTV&Ua51W_VfPi5m$;lBMaRwgW+K}h97 z={Xpy5T2mCex;B@zgU%UzZU@2!r&iavqt#wAUs?bc2d914WU~mG;4*sQ*qHZg==Yj zuM?W-N4+In*#r1(;f?`#uNQ8j8LUCLh*rZp!hrW-vr+hc0=T=v11Q$bYZ5Nf0njWw zWP>s>wF*6QpwcG%{V&Mcg?Y5Y?GTpJM|_>aVyazt3;%izvL4}T%1HDIchUKw zPk4js)Axk!IneAEHhV&LU%22V0vr&oqTR)ya6<>k1K}askPiusl)N1lHd(5U5+lp&Z9UZcO+GAZ2l8vs*6d-{HES{Qm2A8~2NiMB6%}d8c8|a>SicmYjnhg)bN(Oya# zo)y(!hleoHx~FkP;i8Zf44xBN9zZ2Rl->=%dC@mkScw$%H$oOAN}`%#v?ze`m@%S} zAozJKpWrq}WK#lJuBdSZ!p##Mz5y;@G(;=jRZ&(7G_Q&J|ApxSQ78TJi$al&9jp|I zY-S)U6`i8Vqf8{t09P(bp{Kk;w3z;8N~I|EZ;&d{yf*-^78T5gtVVR4GCbEsv3BrY zD;np4yD3UB!+V`*8_kNhM3W`pZi{wGfU6hformTf(K|MfHHw0hLGFs0?!t7F=-Kmt zH;de98f_6ZhC{Pmbfg3Uc8H#!Vt%J+y$1%nM8|5ub&LM~0O9tCmeAR$S9B^D@IKK! zDpTJR=^fybphQshPb{8OTrasZeX?R^=>W<+n$ zuGvmJNUcNm;(?{G;vjz22ZN5{^>llj#FKW2%vqf0fcxSi9{dfON5zc>aL2^=si5X6 zHW9#0{Cff1x{DX>0N}Xz@n50oAhAga!UMn61YI|y%%8fjQAmahZ8LRiMAsl;y2Y$2^HH=ZRxDI zav=u8#NScxNVqtVws7afi&HTeAwItj+@>CXR1_ zqja&$5ol(JbI#z3GQ~pb-oGNY(uOBXZ2K#WWs85cft4Kb$qdAjD=wpRT%P#Y&mj5Y zHcGr)74M}|`!(@~I*%~D- zk82R`j|Sk5IF|P1jpC`l;Nh;gL=DX*@sT`eHj96s1Jfh$g^sv2qaHgn0e8xXej$ zzz^W2#2?VtO4DM80^nxEPv66(%!-|k;2LZs8I(J;mmH)tlY?Xj-7H7R&utiVl4xk- z=`2~j0K`QieHu28N^a3ga!m3k6)apOpVHalxWtP#dma*9Imijgdz&EhlzdKWv6o~m zm5se6OYb0fAIbK|0PvN}&^gXea+-E5CncYaK+|8+(T~9Z$#>MQ8YD@p#`T?+yhlIW z8OcieiGw98_5%fs6yy#+2_a+enU1j%)}$%&F&dOMON_Da~iC>aZe z&1A_l`M66dl8Ol6E=hDRz~*Ji#xxA3OTNp1W`@L<61$m_Tv{8iNTNCrM3!Xq8AP2e ziF*QEj--GR*ZC4JN_||FyjBR=HHnE5*9DT03BU^_Nh={MlIVuO6-(AOBft{LFSM&H zl`L+6=`u;eF_3ae`D&tc?M=E=ghFQf^3Iru1;F#5NM-rsUa! zkkv_Se*xf@Bzhc!wt8(MR^C1+!BmwF^GQw^n8@_iBp`z1Zp zhJ9a>f+^7eQr8GM5EzT9RH5%^ArbE8$^Q!uJ5cMjG}h0JhR^Qz5gHu3$oD zFWtEhoRf6TQTTI~zWx^cxk#V8i6D+jcP)qPnDmWjAaj-O*$mTe(wM!l;x3I%gumm` zqx7SCNVOkB<%E=T4TGN2*Xc5SrGJ_M_mh4+0+o}}t=j-UCH>eNH!Dzj`2@Hi=^WZC zo|eA+KMbCchSAg&Ed8PqBt)7@^~O+X&LEA^QRV_{M^+9ZZc>*<7YPO7H2BSM-* zo9FXVUwYpor9TQGi;@n}J}X-4(+pgU)S0%Su~JtKY{p4Br@>v2`q63;FOA;{T!M7= zNf=9%zSs^xlJpk_WEZ6!36LdAcT$=#MLOp&B1@G%piZDP>HB@~a7lWL-p0#P`<;-b zOTVKeSB5lo8E~1>y6qrWqzh;Vm?a%J2$gKuS7Dzv)LsPMImhuH9(!XUGER}xt04inDXGY<#T-r7tvI=Q|5u{Qo zoC}*(Qdu}WR7?G7Yg8lsONMK>F0G(n`i3-^s-(42?JaOOrT$%rtWNsP32?Wh!?fbv zmL~0hv3lwKgD}=04Za7JJJKT+h^0~5M|q;V(y+NO-6SpV1=lP+NQ+yG^pF|2R_U&{ zahYw>zpewDTXq>zDp)0{p&o&l0E%NJqZ|Hz<9#5>_5aznlRXlDc*QFf1LXrFBFaaRS^!X(ZVk zlNNk}AjYLOUjsKG9b5&QlhOgo@JvacwL)`Rnk@%6BVFtP%~|Pp>wvS7Z9I=_u$6s7 z)m%H7)E>dx%l@G(hl6Z@uGUfZRXE^IvX7H7=q!7>5}b?dgKK~vmHk8a?3ipR^(eW@ z^p4=%WH;$t>@G{96ykB21I^bSvLu=SPsm0Nfq2S>X(IEI%~=J2x9q1fgzF=_IR(yF zR`)SH_{mGa%L)pnF*@kFn zM$5i1!%>Xv&?Jn-%3QMnh?9w_EAWEM)ef?F*|u2(m>|1LuT!F|D;n@5nURh(7iF$r zz-F>6;vi%xvKj{9sj{2_==6|#k)Fjgshm%3A`WF;oZ zs%5)ZBeEKqFSYz#m#H#v>u$<;OA$+*YutFl`h%GKY?`1Chy|*^vD(^f%M9nsKugBmO&jF_hhLD@B{SADrp;YU*<9nZa`ME z2(b*xd|v|mf$XvzriWyOv}g>=&I&L%BAe#~@=#X%3W6AwHPY|?NcMdRtc=MLJ79WT zwyg(%30ZFiG$&<8=og!k{XxI`w2bG5OPP_`JP$G}%b;48ja+sJDz@^=w1cpd%Rhh> zd-*ELJvqpSU&5Vmlz*}eoRj>EKv;2>KSt$47x{Cv9vzi8qycbD9{m{Hy2?MNZH${d z#}6`h`3s8?#BuqdSvc~L=Pv;{Avbuzrl;IM+dD7$$MgZexBT^Ja6a-&tDxd5pP<%Y zKY6za#!kxjlXri);wg9tkUv3%xKnbQ&oLM%ccHr*BoBW9fYb8#skP>eeA_1Ag5~*h zU@Szgp`CH4+#?j+S$Xci;KJlfFM|u0|D}YLbMl*%dy0^6r#pCF{w4jrmPmOzWsRcb z{drJ{mhYn?R*c;CJK$pF5%&Oylc!Qj{es+|PS^4B->45FLH-<_MHA(BAHqtK{OF6| zF3Q&g0hcU)Dh?_s^3@w5yCgsR1IT5$J(V`n<$k~87G%g9=q!^d_dNvfSL8udRLYWv z(Q=(F=QqJoj(ipEbaLf`!NBFo*U^43Uv8z;)m8b_FVMUuKe!H#3gjNa;0opQ>8UG{ zpQKjEVtL=Ykd?^e=_xOj?;HXtlW#4BtX#fc2-6jEUz&m{QGR>^D515hnr_6e-i z$OAryzw7eF+0eWp|0)XbTKPDYRd34E>L9C=_Z)!imYlmA@Z0iZAK?zx%QaN}Z;*c@ z0N{>XMvri#Tul%3UHKfkh9>!CN@F+68J~e`kxx3$@fuD_ptoP&rlhWTWIV4Q2r79F`ZGljVnTWB!B-g7#ouZ zA_+flTpmW7#0j}-5Gs@MmuL$2o(p#flILIsHoiv6(@y})@f(OV`5x`i=xXNAstn?(V_mB;x{hHv(nD+JVvd|a_82r>_a=eGcyP}s3x%v14BBCL2Rx~S98TcKzJ&PUO>4vu&2Ch)? zI89bXiku$-C|1NM!IdaBOQBM#7@%Wrnc{E+WaWyzREVokj3vNkrJ_C?Dpd*r6S8W> zGaJFxC^nD6!*#_|R2;gY_@NlGTE!~L@7`3TQ$4j#v7jA;w-jB^Li4slunRWp6^&nm zG$^i1p?OEK;~yAnRNSKj<6Xs%s}Mw!;&IxgH!FTAhO9+#b|b8`DmOvS@1L3D)Xv9?3Cg3k(a$v z{~KfuN-@psj!IiAh?DZtN3i0obP5M?QLdrS4v#7eXt#DuS@9m=uF6a6;m=LEihf3S zWdT*hjw@f;2$_e{KM7V&D3gtlc`DcLL%3ebYc#idE7?EdYJHS{ZUymGe)BtspHlw^ zWG9v0ZNT{}4{X3-fbvWFxagGfD@qRsDlbruGf4UUdc<;Cxu3F{XOweW00>r2Q;%SX z@>kk?g(@Q>;r6U@qYq?ZO1~=L!j)og0M03wQk6SGxor>PJg;0h4OygeeI~dlW&H|)r9?rxvYk@g8OnoSz(c0;>pwAg zMft`iz_XN&f51bwa_=Zej`Hm`gp{lN+8f65lsl?`%U5ovI^I=f*?gG3rc5~uS%I== zAxNR}Z>oS7Dg7Eiij^OV;h{wN8J!|al|hs}C{vnW1Fl@Tg}Oy5l=HJ-vr=h8ZCX{z zC6q9&RvK=>SdH@NufSbb{!V+-8_L}wkku-GrE1bmWjd{DbxP4E2=JD2hGwbT%73W> zSFh|W2cSV2+zG&4rTdczqDeVM^Jla2c_jv0l>8aMTa_19Le{3-aRz{PWrGl0hmuF< z%}(Vm%B^)NpWOkjTlql*xE`fVHgLVle-0stKILyzqQ9s7AqJ-VmH*PV_r7u?rQ!#a zSwYYoR5sH||ABHRRTzhqbNAqChn0WR24qCJi*{WPl@)aE7*&?!fjm;SZG^uu<>$0n z7*{&dws%6ALA?%>%2b+Lr<5M=z~;1aH7!{)%7r#?JFBdH9>LqF2Iy_HRsE0lV0Nl& zRHU<4Dd=M#2i3RUAdadxXCQM@#Z%(US@mfZ+`6cKY60%3D$5^Mj;Y+~!E{xXQjyh7 zB{~P0yDD!CgU3~W(}vtbRZdBS6RNrNXn3mj{tZW7s!K`$yj2bRA@fm5=`$8z)v{xd z`Kd~2?m4OYZ3krjD$A4L0#tTaVDpsfF7-+Wssc0^3{o{yET>g(P|wgARUMref>mKN zuo9xeN9cItRIky2i$q~3#M)hYTrE-9*uRPaqzh5Z44X{!C}K`yC!Xm-1-;?uH}uG;z&tYoO_{)G2T zRR{IcUQyLiLr{(?eG!c1sybhR={%K`c6s?K^^3U7t11&6G_R?8>HJ=xT0y(6LY0Mj z#fnq~v~Cuwet8qOphTs+3zbsUKI%#;Q$0_=bh)aHdO0doO+SIFRB!Q6 z6$H_tda?t?I#u6ONwQ1z$_L=ORsW;2c8@BUN@%^RpGKkCr^=)K;62rSN*?vA7QG0S z`zjSx{|8hDXr&xfMNfe|P?_HbZb!Z0KKr0KqS6P#%0tzyi{M68GRj~*Qk56N z=9ud1Y5>Mna_Z=rP`T+Kn^Z-9i&&;qv%f-RTJ>NR24_^^CU}@tEx8SVjaqgI#8&Nc z1~NN!${1w!>SS6s9n^ES!jYpo-x)TY)Pb);=B#dt1?QsvfhMb?>Xu-TW9oNmq3NnF z`5rPiwTldJcXibSOdnTQQS*R@dINo4a6c|Z`ucAC)IPL;QZC64&m+wsQ)(w?v%QmI@|))w@zR%NS$&8HczXUAA_Sa zYCZkmn_%@Oy7On%iIn>dQy0gBgsbPih{1E}qB~HDP^-9bdtSYFHG+s#&!P7{N}az7 zBwGFVL&OrJ=DZ16tonm`c!*Q4P=dRlj;1|Iy!v@c`X;CsPXUmqevv8%Nou(OrZ1{j z9t1pDo$?28De67+M=4U(snnjArrzoa_$BqE6vi&A57N0mT}}VoY+i=?hdT%u6 zrmv`%)9;X_?xBNNw)z>WmgT4i{a`Ft-OPkao_h8p!1L9=Q(^O}dV)6c*VNzT!&rfO z<4$-eRJYMQQKVM)K&4pC`x&?r^=DMDC{?%3fRw2N=_{CW^*3a!Lj6k;xJq?#C5%<6 zpRNX}R!@8eS&h1`3$a{RZ~6WD;4q2^w_(^a#)tPiCtW)z&!O<=CCYr2ntM?Uv z)T?Lzgsef`=Zx#SqyC)!j8CJw<|Meg>R-GNV3T^1_WI50tC!%tMLqTsxK{PmL6~k+ z&!b~?yP8j1)DHD)pMrF%9qCxzrT&#R3*G7gdINgYE9qF>tG4Ze+dj3Hz6-gho}!Fy zzxqka<=t1my%uCZowg8G2Gu`OaqoeeLGSI5+Co$1u=)t42}jhj4KV#so%|1Mj;aUG z;ubto&wUwWOg$5aILFm%XnC1X7f{prq`G1Z+?4u5+MZ9V|4qi=jM|9~#Ix#y)M8V^r@)KF6Gw8kh0?u=%76-cm# zxd{P=X#UPXETI~AcUU>Axt|6=n5LM1zi>?m9jni2oU7p|LgPs5!+FimbgYilY|I1~ zrAgL8C0a8^fLhBH5n(sC1}>uG@7V+wFtN*jn90z zy{MT->Cd ziL5J{QQD$rX`b=~E?e_HB`|X|P8r~GHNPE!EKjp=D**YLuc;N}swRO7;ny^oZZKV- zdE!lYFVy(cx>=-gjR7gv*z^KdqH)^_52czxN-~#eKAj6$xu)(WWEGlqX}I=EO)6qVYV)bpDE@@oo0<=DV6#pW)&amR%_(Paw>3S~ zuvV`T(rntG$*0W19nGq--XChpS3)+bvFn3}N1BcFw2o=I zw!p)<#)Dqi3C%v5kR~h)8^Su z8_^Gdy_We9a0l(H7I2Q*6q>r6w7XovIcwjeDzJ-oBW=2mYUk3i`k2-w9yVRIcC<%v z)AHz8?XI0mxBR$vC)L9}v^qLgpU|4l!jY%8l{PM3+WB;>_SOo%L@Ykqujn-Bs|}*N zhL37Nd2fS36c)z8%Kmw3pWbcR@Qy>HT=^h8utS)-M{dVt!2@vAV+J)>oG4^E1*?7PrIJ7%lX<}ufy0?ZRd6vyQa;c1Z|PF z{6h>DYyYOrLWy?$V&F=(+z(*0Osf|mh;psXJCIdq^C&A;sU4?-QI)ork}K8PqzrI1 z+SNCJyRKbEt)(}#&r*J(R{L)vJlxdg6yw&_X$ku)YkjRyY0(~}oK>qfj}8@W+CS-Ik#_CuI(YBU zo}_PSI<*(6#iC1VrT4E}TT6SJ9<6CH{Pk-8X@$Q&t$>cz_q21@!dSod!*~GhYp0(E zH=tG0WHqRL_H(E_&~gUgc1X*mK9*taGes~qqTNEZmxtP|iI9zIGwDS8NE<;L@-gir zT3W}o*J$OM(0-DQ$R@RZ2NBtnR&fD?)7s_t;Alqs*Je1H)wWQv#zy!23*c;Zzx@am zJKYk>-P`NJMnD{Nk<{DdsGFYv&Pn$>9Zj5d@ieix=;nV7(?@mj)E{z8cP$UzU3C`9 zSi9*$sq*8l%chs|xNd-UT^_nm=~#V2XP`8pr*0`tC0@FUvk1vs_rZ4He00|+o#Lx| z(+>B=PnY=~G*9a69tYfC*CYW6(Af?EcS>g&2QE)}z5WHAidxX)b$z`6B4x<%eOdPbh076O zwazaT#%gqS#jtW+S4lPY8@iPPAhkL+Jxe!rzf!5aPPf|wDz|h$QeNY>E`#E%*KMS& zbc60CD*WBit)WG+QMZN4zjt*}As|gUE)`Fjb@S=NsutZpZUD6ElBr1Erkk}u)~bcna`7UGF0}x~EIn1Fm1UW-C%6Cc8_>CU!0n*Ui@vaUp!+)>vLW4`74SZ+yFuCW5gm_?#}9Q(BUDCpOv)!e(%q*8 zY)p5+1TwDs*B#y`bem|8GO0UE?eJ5&r_(^Dbqoin%;E|}FdYzDE>8v+2Z)jv-u zJv;r+)cR$w&+lirgKjL!P?E+8)YzuN#ms+Wub=cZrK2Nicc zn=)p{_2(%!d(M~?*-@0kA66$rvlzhom! zpVS+cLB(I+{~@>leH`s{PU)RRPzltBeT_>A(z{)S&C~k-(YNDg^!t8=O0d3++CW3} zPksVfs6K_N&S&*&s6Ql3znQ)|4cFV=#Navo&M&}4=y!h)W9RjT^$0gopQr|j(l^sm z9f=rU5U1~=U+jY3j|W`5zS0j|g8qB@)+)?i~6r7 z5LvQ*0bO5;-tHU%Ox4#5p^~OwcLMNB`iFE#yR3IT20*&Lk)qDf|4a{iroP+{+!cK$ z?G>~1c69E~*2ghmB}e}n&Fs1Q)MufRr$1tVqkO&R1CXowRc`=rO}~|ns|ETO7T_8R z^?T?5P^1r_4+@I)c0WU1%z# zRqJhk!qwL3mr+Lkx?Xc0R&MBZdjP1_e@&0#O?`1R9M$PZXyUx3cbW$LwjQ;7ym9)~ zR10a)ms67Rj=r0g!A5=5i{S3+XDCzJq}R}4xmjPOgq0Tk^Rzc@)kiEt)NT5Exln1> zhkAqS(64(A@J{`+ZXjLy)UQFh^=6tQd-T6h)~{EeG7Na1zJb>F`}(bVzz6il>L44` zucQ_4fxh}R;D+=Pn!$$kmnb#ju6a(MJurHZXR~kVvHa z;T9S=VYn|vhFj#X*x-5qvJ%5vxo}i!DDuQ$nZbqj^W}z}@4;r3p_!JDYD4XRtD0dC z-PY@dZGA9y!!UOivRXrg307_z7Cs3pb%wQlAh!%%Vhr9k%&0)>4Q;fGZ7|Hg0Pc?A z1KKM#8XRcZy=#~q0ckS4wE`;5hN5p_y2X$qz%{fQ;$1=73{SreT)V-W$}=5?EwmZx zG~`4A&}Des3V+>(aUNpnG1PyAsCx}Bu7H(3!_q|{_YC)`bklDL+6>u!1FIaG0|t+` zVP(+p2_?KA82+I>=8&N&3C4yE4{3fGF+4??lZS?DG*65gI{w1oBSVQTaASs)Vvupe zV<}LXFg!+k_DRE+l)jlVG}0AK8?v?oH)D8>HqWz$muTL#F|OzaXKTDcdmB6BKDr`% zqkvBA4#s^yfH)d+Ux&=e_%BUX&c;)8s&g?4>57gTPx~T>V@4r0{kR%mq?3)C@kh#I zx*ONG1Ag52)?&atjL$m*e!}=Kt>~V{#XrD`m+?0$XnPy2l$iH1ZjFJaukqL%;QWlr zT`+ypxH1}!{EbnR3JfsrSqLkqjC+&eA<$^~1Gpe#&}xv=Mi=T#J!9ksA(mj{COWl- z7?Xbo7i#Qwf}^v>uPH+iX58@<;NixuGcbM5n3@lGgz6P%8YJ3!mYfm$_(An^k(d%81%f=PyxUh8NoST4W7$x6ACDUk6HLxqjZ0ZlmGLF)* zEZg|%VW{L7*NYusJ{S)Q?tZgRfyulFFkYMd;BziY;2X;3LJdYu8T(73w+gGI(? zDT!We?5F;a5@Ux2T&eNbD^Mvjo~1o)xzU++WEIBe8;IyPgGUHRi5?qc-E2CftyAFOzL5JMgwxfl=UKHo~AceK-0%`h_>0jrp-}+`090+pSWLb#8Gp3Sth&tF*dlNQ8Ohp?32sQoK zkE=avvQTz1%#$}}k!BF-x&<2=B#Om$(n z+H6y>AGjP7hw>A-rt6fZ&oeFHgUdISmIHp(H1}B;yJk8;h2jEJJRL0yO&2H&USu-b z!e+7Q3T1yvOqrBXDmCq+lTDfFV>()vn?AY&S%t}oI+iL;cJvxnnH~m%t2SMq1y^GV zq%_QR(@sh&-!R3RfU7mtm@s(L#PkNKGxa@yqgy6d7ld@%^w~Qg^`?dNU^bXur}OO{ zQ^I%f-e}rh57T!|=2yWrnciLluGute3!5#b6Bl5t)#O9F?KaaZ9|PBJdO*3+4wH8Y zNT+GA2sXP+yg9grZc}$FNRMgDGRS&OZ#jeOGfh)2_MS;jtrGpF3t=#J-xRP3{sv4= zRPGuy*KHzMjLZ`65_NqAD~)+ojEoF#_Y{&zJf6a^F=yq zJDM}87UE2^}AE8zIxcP@q zVA{j{0&SvBnD5cv)YF_!Gp3i>k^T&Yx7qLw7AR^2jR2?{PUZsXC(!6F7xG1v&{bBuR^M`coj4==A z!&t02?k#X}<`4e|w-?NPQBa9DJ5hBY!5lzau|#tk&4Wqi@2Ez5(L9GHz-05jndUtDRj!zeY0AqoFQ%6{ z+Z;~sSdRHyx>>pA9Y2EPnRnU2X1;k1RX?tpt0?Jo&HUCzcqlOMbAqhU9Q7pzi_A~a zQMTB;!vLYYagXuE!&*>N}H&?g8Lxs7i3AjpgG9^N)%+Dl2rP@4)GWj*; z!{6h6UN?_khwO$qm6qgMv(o}_x6EI!hRxgNr>R&|Z!S{+*I=%pwv;>ObX@sLYseP@Zqr{3Y!RY%C8qA~IXcZTjObc9t0#ID1PSJueQH zYwqA2Eoojb=4A1sU68XSp1Ox!EaCK~9<}VCpZ}O;3#DXTE%U44!OaqQ34`vIA8AED zZuy)x>mHV;mVlhFETM_h)AActRJ<(HCt%atvW5X;K9({H*Vhseg+V{d3yYw6(sJAe zIDZSH7p4O&ve#kyl*LgGS)gV6HpCKS*%%A%wB@mKsGPC99|}OQ#hnsMA(oree;sOZ zqtnt^%S0>OhFOG^x(c_vdmiv}meV|_L|D9*!R>iV^fstOT1<2>in26)0upUm(GSfS zOV69Y#ai~f4u5f$JyhnrUmt0YUvIhej^5z2u}wtN~7 zV<{GO3b<6uo3s~Bv#4u&7dT+cGB*HtQ|v-+*hdOi>r<9Sg?}@J7qi z+kv}liJ|qc$uignc(bL35_~O|x5E)ctK~`RVQsT4c>?fuOVlK|4vY5?Y<60X(5F;g zmS#$8bzAB`gOwi3oNd7MS~RIJ)@OO<9eB8B`D-oQ_FK|ZaVhsLs~^G2fJL(hDub5g zx4=EH)Y7^+WO1UEYuHl#6Ud0=hho@#Xz`~{V@54XI}ARucz0rO%pxm;v2n|4`fVpH z)AW77q{XHUkxf}XXTsmK#r71q8A~hGS7t38)c9#*ou%o*)>=P=K|5;{O;+~SFQ}Qu z!76+P9vrRpw;*$}D&k?&+4|Yr@aJL;xdQl6>#`!qj#;}XC+BK?CI%{Q)<0;5cDFuo zgY3Aqm`d~>R(INmoUl$(?$FcfvmcJUtj-jfw>64p8y~Cg6##s#J84(qXHA%cAWm9e zqmzce^@%FT0<0tJ!39~3t^l02ItpRsjCG3oLxQdS)JGO#HPBHu)VlQ_kh9i#!%zvc zHe5%5;nrQFfS6K_acyln;rrE?NYYXlua~a52_Hv9K9youPXj zXU*q;T(B;rtY5sf@&UL6t8FswV50Tx7YH}WdW1@g7p>Sw;2pCr+y#{sD~rzWsaCNI zRMM>Je<1ivR__GhE?aj|fim6N*AH2Sb!{kQnbxh;ZGOf2#xP`A*6%aGWn15o!dQ-# zN$18~>uM>&&9grJ5@N}>PPu@)YVFz$E7zuNfu7Frk108nIYr>4nb>pGgO zO01vK(WKPcLCaE^^$e{Y<<=ZJ8&+7YbU>}Nc8h?kvTk1jT(xzKGLSXa$qbmjZk?cY z^M-YGF1T82ToAaM)@Ae|UY+&z`vBas)>B3Ew)I6Z2J5ZT36KVB^HF%eWBp|ajvB2Y z!O*;GT}Ij0ChH$R;QE@a)^)(OSXq?xZMCu}P0?l@i-fG*YSshSVLcTA(rLB*Zy#y> z-`h~>wl+0mu*bTXR_0#ockAJ(&-#Cot~;*F>ibugnO17kucld+e)j%+;IsEov$W|b zEv?kDZMM`{%0`wTAWQa=DFQMS83GD8af70=H^_$H`}F(kyv{x6ea^WL&vT!9&pFSB zErq~!t}sz%p=-t0RMP5R!Jw2^&x+sqAiXQ9sVLF6!c3n)_OBSFE~tSOD?fzh;ED}K zOnPWVrXI!~uV|B*S+QtMi2A;!UFyn1!kRyyGS3yD;CzrrVC_}pxro$Lt`@qUkh8JzA z!Wkkuqen1iwLlih_^2PUD8^Q*R75jmbgVwc$e9JxF^r41p%TmRoB>=ML)QkCct&|1 zWC;xSDNH4i;r?HCgdw9_IGORe6{b@d3`$a_GM;$>v7|9VD8SvaZ7zFLGMp&Q zRK{?ag+FmQLqf;u3dT%YtST9=(ye%o@iiT*s~BT%fmAbu^i0<<&b^6{&NDKoP5A=D zw+*sd#?ki?QXS(Owbs-#8n(mcMMeaz1(z7RnjpK(C^`@B3ZtG!PzcGfe#;cNmAM!q~((vmM^=G4{kEmir9b zet2kRG|`d!0ppKZF!qoUN$1T+j5k+dVl508FL-Zd%%dH38{^6);My7GAHiP-V?iYV zos1AVwRSO9W<#@^p?v}H9>xvYOZ76o{sg!_#-?y+_A|n12^wH*r<~OwBc%?2A%>9> z438Oy|Aduc#-)Y8jWCRq02^h@r_<*cV{1O59%sBwFWL#l;09QkWE{E++!SN?ml&L8 zJbVE*9hd=htafA;Ed{`dxsIL=XXXf9YZqqi2!c4k^xp*dL1w^9n2Ia&rI&$oV^*Dp zKX)c)0)rmRTxtvRWHNU_=EZDY3Yj-^_%LKX%xZgBImBE-*VC6d`(McXn0?fm;m^$9 z0$Bj_7y6BtKxXb62;wmFLpsI>G1pVmaxgQQ-kV35s>L87Oc~YcLYZ$Kg)EFYL^X}0 zOa@h!!r>4u@zS^l36zbD^bi%TueHextWgD$C!&-Kw_A8e1MB(hW!Lw95en9 zaPiD}LI4t&BL~4HGL4zAlEnNg23#_84;`yhn49Q)o5~D62%Bll!mCg@&UBMNmd^a; zHU=}8KNP@2CNr4QQ&~(7CFZl4o>ZmDVY;jbIl+ARG%k5AbFB@slg!>@h$WBt_pgBG zGryv9Y5{X^8cd&J#`s{ckm*3L-6E#*7T}7R+9=3Mm{&IfUdsHLQXglTuh6diTUXP%;7Tg@8cj>n1{z;Xjj(x*Y2E_Tz^uHA z!RyT5uLF03nLzy^H<=$%-uo7F*#@ZGW|qAM4|kZIQUrLH`F=XwHZp&21lPpeK=r?S z%&57*-Dj?#UYus;OTPm5fZ4eKDi4|82LkYjx$Gm@Y+}F zUmEFPx+FoRliB(@WL?Z=dT(|!)qPOuVb)DyM!n42e?r#BOr)AdKXZuM3zh&kd3++*g|PXHKZCW;Wt2s8f(WTVWtiy#|gE?JC=JkA`U^WOxsm&$pQ%rDK5 zO)m>q@()5f$C^$1>nheK3b?IijnIl&!{Tg%hx05x8?p}PJCBcee}FvV{zTV zHL$kQ_UAh56umcZu%^Qi;7!(3R4Tf~%6$lx+pLAO>$=0rh=hl`tXo$gYh=|@KV}o_ zg>PW`9&4{72Jf?4>A`Dez4QUBJYe1b2;?E_G8dYUSZ&joN(*aV0RXM6*ET}d#`04$l6IgE<-FMz5gDwR-FYIW@*Xa2rGzI;ZfEdY5^K!rPDn>&N@Tcp9z-#O1Pb5 z?Y{=u6suqigVU_1sYAno?fWh?9ogZ8b7F5h3oFj-Li!nlgY0M>OuMoVZw7H=f5d}| zJKJB1kUZFHFCi9Bw&N*qUhLlc;Jn!f=|$_qzEuXmA@&R7aOBI5-vkeSY*8PGKl^{P zpc2478~{gw>}1+}9cDkIms=1!d^Tnj%$`LH=MgrW(tRQ9v zPg8+1oE=4re*|0M24j)z*JcAI+``gUT`XjsW0d*uw{5ES9}16e@A-cxuXy zXAje7ED3BA?N}1oKSV*6#5U8%4asaBAGj2@?;Ti4WiOo^}aY>@x(&W@k}FI)@$o2V^JMFHzr2E<28n|0mfUb74A zFjm0!ABOA{d&dfpLiSNQWfigCq+bFkW_QtfrG)*(764AO*Bk=;411JvWTotCDnFfN ze~|$1W$bS$4O7lerc*%$d+m4ND%qPqfXX@c^^GuA#XdM6xN3GAZSQK>Ys=yNJo_^` z%Uoc)(A&P2T}2h6I`%mIE>1n$DFT3t?8_w}m)JudAeY&zngF=MuKx-uSJ{J)a9ysk z8@>kDz_!tEVO(b)_z}i#u)p1paBs4AQUl8^_MI7s<4{(mj;r1Y>^AI>!&Nqv}xp6MG z0O!tmcof8gv*ZqNo}8J~pyS0k-~hNc=P>)*$012|n&D+uIxS^z)HsT0Fd5XWT_#%QaK@+Ga!aa3P-*GvQ$pg2nN$Qyk!6!=PbPrSvn_) za`zb=d&*K}a=ti(AhI~!l%UP#?4j&=4kzpq$O+C{^cu|NyipGiCpo`;1}={io&l22 zS@Z*N1)LrOaHlvM(=b@b8KeDD5$8NztYS_wrN&D*8@~fN&FT9dHqUULrEZZ@&Q=v7 zJIi@-8eAFYHf3?jIdz`^SHW3LTYyT=8+sV4=9K0`rG|6=N2r|V#I?cg1y0U!aJ8Ii z+WOUT3m9TQ1 z(_zGQxxtx3fBu`CB~(he#TlWR)NRiAYM8#m>7rfGUCvW{tdXZJZt7gS2yId*VAQ<6?DjP924;oAU*|k9s(d-JsIT`6>*uKF%T^aQ&R+El?TY)Wicf$ayjj zvLVjUADGc&&b)SnG|bV?fyxNyt68`bqnxGp5a1YR0W}XqQ8 zIK_j2Pjfaq0^q=npvB6OEB+Up6L&v7c+T9oOR(a??XUrNfLllF?m@0+G-R&a_`fjd z#^tXB=g$3+zR&UCE}=}mCpUxET`%r!YBTWWO6*|8hkKKOI1h36nBd))8%Pa#e%#I_ zkoj|~7?@@N*RT#Mfm|U)eVDsK3DZH`@XJsM=GM%|{El!JP)#_5d;Dj32<5)E4O|#^ zRV^Yr%8fb?csTb9M{p6`;cfsTxyBD+C5n5L_65=03)EV3jQb2_RbsfN8mPo_Khz-Cze?BKNQBAW7U4vw%zG-Yo%_#_gn5v*TQOH~gh@celV_26s;! zJY;ecgQ1zl{a^-2Hn;sf*v#RcrK7?L?$4B5$>mniS8pe|L9W2%ap%!qF`xUx5lp&( z+qfHpr?|C0!*n6n@+4$M+|X6vin(KyEH2^ZCxe{ko=b!54A<<9sg!a@_93#f+|9IO zDdP%|zI&#e+et^+3T^;(Z&Y$O2|&(q6E*->#oaX*D%ITGGeBy%bw7ce=bCAqzra01 zf2vyUzF|zWj=Pe+KdR?0r_91d?#e4rxx`)aEUaASzCw%D6>j%7n7+zo(w%jU>k^6} z8n{j;AiK^jy$RDdxOtR4zsXIdbLuVbo+hZ==Jt8P${p^_Ccy7q*LYez4lhuo?r*nGsD^$j9x;mUtP)UDirDahKmJO2T^ zoqJ{_u5|~uJqDVc-1IuYySO!UlIrIEUqHyQc(k1ZV1wRDwvxv7<|RzCjQ36mxN=?`Jx3KhVKGcs@;+Sv+&SL4F375Qlk|qI=GpB4 zso_OaYVHCr=q<=L8HZO(Fe|LCusBCqYw@mt2Obgl={EV z3#P@tnP;FZ+ykC|31km>Gbdr?5iiCcfEM1~Yv9^=lYc_i&bvgXi4LAc4R|-t>j!x6 z;VsjG>*f7JN45c;_dG;B$jg}t*%0rf4P=Cue;6T+@;3etR>pV{l+&5yEu|Oq6ffik zRHk`fy$H^UpSBsCGyk&+MCQW3vK^c&e}Y~UZhSl1s<`t%ri7^%|1GM`d-Ly5&e4aT zN}7KB0oon<^M9t(ZUEnhj#pv)nI|#7qx|vv7!2n-QA1D!|JnaGHT*x6a1_N4qw-n| zpH1bGSbo+o7>wh;+zPkx{7~vtOW@xx!~7EYS9iff5`UbD871?7r^PCT-$q%0RDRPU z1d+zCa)5{9{IE1|8GM(;P|4))*#s+DeD^cpviY(KsO0c9lnOk_mwW}cdHmpOkmd9L zegUQn_#bYCzf=6|TBsEAhbfs;#AoFovSPl=b1+uIucF=4X?{ATfY0z9k3d$+zx^o& z&+@w|-B-p}m%>;%|03P375tTp!Bz5m=;uz(@xP$MRuw;aBL=Jaalb;PhX2Gi7(34& zpr(oo{2JPW)$${I5JVk6=rr8c^E>~Ci*=FD>_LE6`2KXTy~_WFuGuyIZ#8h+z+X@d zW7qkuTOhlEKLBty`2qQGbc_Gtv%uZve?b-gJN)G~kh^?WO7=JM=X=0P3qSoIz+3r4 zREcTh-(>>O&Nu9bW(R-y8jw!@;mxqw#a~IA^=|&=-N5zmuhMy?m%p1Dkox$Zw1V~X zPf|0y2^oySJ_MRWoi<*%j=w=sV68yFntf3*;} z3I5xgpgGC^j!uzN{97Zqg428soxB|c`^$lI6s)ph&`ID$#}8-0&?Z=M5t!B@vIBxw zb0Iq@sHcjbt00Ni9ydWe{c@nY;IqfD;vujV!-J>b4QgQV5`?{pIK2gbsUhpM=jCM0=f{y2*d0fC=3X(2xrI%EOV0AUDWD4%ngO?@He+%!~f^NFYa|9b{qkBS- zJqnU5h_k`wNr8+OfjmK=6Kv)Sa;agvKp42<6@YO?jKP`x&?dutV z=hu*x3WkcnofYh|2d+%8ZZ=Gp3u34uRv|d@47f@`-U+Cj6TC`$_A0^hb&ypH))zrm zBUnwrpBFg457`C5SJZG(EBHWysOtoA^k%LX6q%jmx371i7)mb=b0&x-kN+;+8 z!g+I{a!@FxLWisHiZkGD!uwS)<}Uo4PV*kZ1GE-+3LBeY(@S`w1aW!`&!qtFBV6_q zG!F^K>6Gj%{EGSj1B5eALM2cb@Ci&G7S?_bn?b_;PXHb)3~mKEBK(jJcOk;!2xx{1 zU;PqR!i2iV@OM-gS`Jyb@S|q9jSz|_0f-caeFe=Z;cTk#M+;XUgUw??34K!^BkaEb zT&(aRy+z}MjggSW3-?n$W`fZ3zx|6)90**JaEeZ6$-)E;a39Zg_lT3 zOP;qVmNLOUqJ=wP^N^^o7mj>IosTb>7u>V0GJ`VLglqg(FC1kvP7a{;Ic&wCb%5YD7scpzFx`g4JZZGRWB^ou_K8t?(p-_$=iD4J&vD?_4B z>8oTu3CAK3H~f4d)6yv5g&Kzziv10g#kj(iTm`-=0QMi72t&N;~Z z#qUvOHbDFi{ow+|e$<OTuUjoDe?bkr#dbEgm#<`l7mT*IZ7&j#*CaKb@i~~EE&*% zbCFC@2J(O;#R9-V$u?S{T_vp>fOC_)Mf(DGN$*SGJR~O)F(XgOZTc}8FG=tmSn-xD zxQ5_;BzAF#<&b3aMR2~7PGmK=kSAop zlESwjJ0f}R7x)X2eEcg&sHC+3@Gyy`6gH1aj{O4?E_s=nEh8jv#e$2J9Hc(SD9I!0 zlZ%#opM&diOk#WnT#V#Hdjt_HIYrfhILYgj{fU=6Pr2U&$-WV|O_UgafTJWy_(}{W zOCt7SFhx>M9TTaN$#}@pB&oN6%aBadqn0UA>YDgOb%XG;XMamkUiL?D(ElKEE1 zawQ-92H8o;IU!_ulF%!_XfaL3F<{{lhn}fV6{s! z9iY-75wYRDQ?hpv;9ZiW0{o@BC0EZQvL1G%2}H zC(J3y4_jb!S`zpfh=Vk92XKzkm+~NUlIr{5$XU9Yx^`ToQFK%|AU!Z2Rt`#+b70z4 z`rLgGH|c6B61Ypx&V>~ZspE?n^ps9D0N^FvL7l1IQjb{Re59Lb>vu?M4o0}X(xbFP z@{>j_2i#wpp9_@$sow#>1Eud!3-e*AB@lx_(ueN?7c4c~fgF+UU4;u0BDG@meKNVxPAEhQ1s_v+yxQu;L|-=m~I(c3p#%A}3;F{v;gxESdZ)OQ#w zjiH`}IO#e%(Z)+vkpLt}t&|&0ly=f`ktEH(44cW)SUQNMNGIqWo+_P9D|EWllM=}p z(n>nxWlC9l;2}%uK*_OeX~t&Aa-?snpm{=it^=}M>HK5hPD*hL;#QO%F@npNHiUsI zkglMt?J4O8bfXkX6;xp?l3G3jDVBa&3t5TuT{hx8Ep4RAR;lz6<+{qGi)nvWE}hH( zu1b2x34kVP0A0uy>1Y*Z)GF$aE%cOS z&V(^9*^yEh^OiYKddf%k5~Z~c$yk(#^p#BnL*^%&eG)Q%Sw#qf2#}p&0UjvZa|5!& zvOiWs79@Mt4RHp`hJVH25!u#mOeI9t`3*dT%J$EPEKK(GEDRo%wH1Se%N$){EJAjs z7P3fL{+qB8B`c$qAzJo&FFYKREv6b#jBNXQ0AgjksY(+ktK0;Yc-j7La0#->72pzO zgOu|~lKn$Tgk;%1D)^?zKBPa+ahZlryXmsnL|Dm?CHx64Q?`k60$H*hVF)5y799l5 z9NC_~Av+2AqrCTH16Uu-p4T z;11e}XeaJ!w}=P0o896zXu8`iEd<=dZX3PhJni!6G~s0z)(e2QT^3b1eC(E%LFJI$ z&cA^3wM(W|%Fk}qQkeF)J6#4Y!0t_FOghlcl`Hr1pxpg2 zyH={C#n>&Qw|1=EN;d!Lfb>2{NDP|2{{7>vP8I}gerXW7l6)im4AjrOfM|4&ZX9dd&#*KXhzWGC$c zDb75*|52+%zMXR$j1|}g-h#?0yRyr0RA~3&lh7=(^PnViv0eBV2&u%*{sg!)c7ISo z=B!=J$AFjF1yViroSl6o0F8Dt>C2OccBS+|L95-wIB;!tkDf&=?RIYTc~7@p%V}H! zC;KVtyLYyK`EPJ8_K!9~=4O9E1uO3M9iM}E*#ArAN^kqM!H`AU59YzxF?*vDxEOnP zI&UV}e?v8?MEj{)%qYn|D*~FS_8+|te|h#9r=gN>|IJJc7T6C;pi*QXO*X6SU9(`N z+J1%r@EZFt>WZkfze|p8+JD^%@3-vdv;uzHz9AgO8tw0n!F!*5dJI(h?Vno>V*~bq zw0{}2ANvIGA^S#0s64j6@H)5=drKVPqxOxoZymGW_!1nA+rL@~V-xnxci~~u{-@30 zrtAY-VP)E$cLAmy@R5OJo^GJR)qYWtKcH#TV8~fDEUXH5mK~#^-;i&$yHP} ziIM+GmF!q~jVIj3$qxsBB+BzByPPDCTn<38yo;*%De@jl>7~j)p(I|Kd_DDFAD8QB ztC=nrQ+ITRd?qbVnerUk&1A`EQ&u`#zKh-+Ir80n44#nRrUx%q?wpAkos?gp%abR+ zy>OZQWFZF2$r&s-x+mAsLF~T#(Qg=RmiL!| zJdmG?h3SX#&-^i?NAhQB^VK5%o6;Mt^4x1M-6o$=36*wv4VCjcy-N_V6#j9 z4Icq^%g=N|)+2vA74TlUi4tyo^2h*?e))U!(c^&p8a>R9<@1@~M&Jh&;&XThzzLY)EPq4@m+ z$UGIFJbS-2wG8H4ePpM2pjL6JavzC^_g`f?#j@wPvv zlB}5f2v$-Qb7x~PRS`fJD@`$r+L4YcUZomQx?(Twi82&(c7V%NxC8=_rO2lBGh5+F ziL4w&5OrXlP%L}_nz@Q~-+`P|tXly7&?uin`r9TkFX~oRBP&uPWh{haB6#~kRoK<8Uft51F2b8)hSL|8}(-n%9 zRKBQGw9z!rDZ1!Mtx^Qtg=V$lM_L4G6ivMtJg>;4Q}P8xQ5s~m3N@W*>l6zqT~x1l zQVuH@6}OUL<&t7S5&)MKyC`jNMd3daAzfA2?*i_cVo?yRG$?kIg1fG`NXO$Fiq~l+ zx~bU5h2|~AV+{sxEB>L(*Byl$EhTpqzx?;%m|`v+%bFCKbS}Q9NTbv4eT6Tj_nQ?v z%0M0{URn(DP_gJDR30gw(*V$-=%7WsRk4Y_MQl@iK!=fb#mgUqbSUCzU(l(z(F0>$ zif=zgfZd8YWeBN9(QzFry^7tG8t7B3rekNnBKuhk4k$KfBeFq7L)s^jH8r~sk?x2>`OyyVa!C#j07y7I@TREThm^sQV zRB1Y)44`#4SE;4X>rN`~P#b8T^1~WTC0}V>2F(KH;7xF+ls|t6%|hiBdbt%T+rlwe zteo>R21}IVz2HtOms0}ljB>^R21}JS`=EJN$(w`0GUa3H^C(x=JOK|CO05|xmC6Mx zAUmhL_6Px1DKCA9`Bf{oPzz;^vW?Eu=am)R09;V6r=EpcrK}fL>XhTlz|||&w2WR< zI>o@)C1uG9$Sy1AJp}xUGLBBBSCuh3*u18EkB;gMN?+Q-T~}I1fxDrcr25}&Wh?Cj z?kKf%t?w$IqdT%udGC1`Yf{djz5YEV^Bu_UE3XP*rCI5ufrkgm-Z7Ae%9wswd890* z>_LmNo+j3+obemDHs$o&u+pyNP%Irv%{WM>@=`TCbSa+-g|TjB-h2euqg*-%T(5H9 zcaZfdb6POiuRLK7Zb0cs`PMi z=A-gEic5D$)j$V0Ulrp`aDJ+VI_G1gU(f<`%4) zaTnYXRpS--3sLPGf$31yqH;tQrfQ}m@KM#vbnXvV-PVCbsJ^5&ibz!l^%h2{a%eXb zt-5y=vSX?->gb74%`C-WtV%{F+Bnq(I{3w_exs9qf+`~gvP4z+Ex?mhUrgK9$ zk-w9w_0(FEr+N?%E?*T+15r0`d& zdZ7}7XH^C|U6-kTqw_<#>P1vRVFQt z=T+M-!O8_yJ(X%}RTqljwoc`?1F}o1)=t1LtJe4dens^jb?{wP?I?zaYpQ{Hz%{5g zw}88@GCv8^H&oNf7`&-kT?6ixYMuZ#Z>yZB4fKxc&9iWOSGAQg&yA`n8EiJG?oq1x zp6aX{$bHpS`a-Q)wJ09A2dZ!L;P0V|N2Rw%s*i62*P_zUo1|6M?hDN}m30-Yw5uMS z2fRZSycXA`Q`P(@xGt5EZntjLb_ZDLQGH7L)?U?5?*h=L^7soXgQ{g&kPWHc{~M+s zt4y?G8CE@o9?^wJnt3F`o#P+fc#*JV=WwFG2J_3I$u)2cH9 zz#Y^~`XJI#?J*ZPC-p&EC!E!4n!Aho%}+oMsPEIoI;dVx^(t3&1!ZyE)IC%zbyus} zVa!7vB!h~lT0#w~Uh17sz>2qe4NcQW?M;vGA+?PXS-$E+y-@K}e@$1yU;Q!dN&?jL ze*qV$zE=m?Vf7mNjwndIb1P)Q>S8yzJ)(X^1S=uxa93!Cs>8@bm|FD)ydPCh(Do-> zJ(so>5$a!Qnvv>?S70SdogD)bt*)61z%g|aeb^YIc4t8|R_#V*xj1zy?a1QQS+uiC zQfE(tOIDZu0+OP(+=jnYHMa)1G<67F`Qz$yC!v|H9{C=QGSu6SBeG0&IaThm)br@| znXN8zfo6_6=`Ln;LhVj#d9Hdg95zp?U#I#?p1P6x*7DVoP-qsY7d{EiQ|j|P3>K;# zDVbBGj)?;)R?BIhT%z7P2}h^ZE)T(-RXhn}1x~~4V27@=$U6gUTsW#I3a!36x z{Tc77dr75Hy}}(fo7CGW*>O+($t%#jum05yZkyG=(-ZJOy(tsqp*m|1j6G7{)?*GW z>dRk%w5rRgR^F!Gya0f9_0tqYhx)~J80=IBr-KZtpQ0X@A$1O=XdbKCl>Q!8_oYHM zqTV_IZd4sbx73*WIl8^a)i2TAGoiMxM}U)R_LCq}>IFYza9TaT3OEOijWWoN8o|f# z=cEZf44ktj`V^+(qM1pN9nj3Ce!hd6-@<`&)r|j&NxNx$=!*w;&34LhdT2bUZttmi zmYS%%Gz)`(^VYDq(Dc!K{0xj8()5#eU(GP}oBC;L19CXhx|-5u*9*1K14JT=^U%Ompil{2kS-?uM0c%{O$qj?nx> zU2~C|8>7HQX})+1BwF(hr8pU{+eBHTPp-M1Lb*PQzjq(HNfj#sBNy))pbP_u-3u!=OdW8uA6<4sqhL}RjI z@U&)57BtUj{AgoVs!@+a<*a5z4_TR}>>f1BHUH3UQ=z%&1(F~MW;?<^aiQdn5KcdsJTQr&P$q-y|{vx zHP3vF!7G{txfr~v$vg+#HO;A)Fxa3u{T4i2*X%5Zhg+KAXW{*}#$cQo(OIpD5F z^ojZ*O3*MRR{XxK>RCy?WX-N=k9J zYli7%+M(G-k71|Aa|2YmG}Yf?uv_DCAD6X9lU{{zdo>OJRm(Kr(oZz?YcA6UWI!{U z_QHdjZFMjI9ktO72*OD_n{Ga5?K705bkW|Vt}9pVCVFAIX}f51 z>8>>>fb-A>(dSv7+AjKbz)SlhHS&3D7c2$w(N56kM2EEg)Qs<|{Wc#S{IteQ!2PvH zr(i5VJ3UGe<|91evqYVB|HS5rnRT7!*Q+07m%fEn}5MzhBl4fPMO+oNS38ddlgg3*8cJw zNRBp-56u(WzpFuVwJ(`r?4;H+1m5$s-;@KMuZ{W&xB_i>2vkmKb!(tfsGZ)6ScYc^s=Y&>yPeg(UI5K9?ei(nEZ5e(gux1J=*!?L zwe7QkJEvumu`2DT158(IE8hgXM*C+QjGfnRZpY=hpiP^iE71Ft?Q#*qPu1h=TWz4o)n{^+gN4x1$ zIO^5z^?+qJ*oj3-62X*)9o$9LFhm8I+zPim5 zFy^OwgF^DxU3v=Sux^B!cY<`Cs}WML?giQ;9?=zCKx84h1NJZ-sw<)Td$^82jmRQ& z3Tn%Y)X8ZDJErr_M-VZ(7J43Hbu||Nh|^sVKo+lCMfYxk?pPnVL|q`g|B`geI2cUU zDfZw(rs1Op|uu9iRYe=;&o!(

  2. juQKCi171b0E_xD1;0IuA;2Nx4 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

    WvHe@OR1RvlSjL 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

    +1H0j(t}=s=iqF>yMTD;_oNG8kl>Re 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 =rZ$Kw>7jSDdi*WgCnj(c!F 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 QE3!6FZMV&bo}TXh0cVhkd;kCd literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.su b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.su new file mode 100644 index 0000000..9780852 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.su @@ -0,0 +1,44 @@ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:140:19:HAL_TIMEx_HallSensor_Init 48 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:242:19:HAL_TIMEx_HallSensor_DeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:287:13:HAL_TIMEx_HallSensor_MspInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:302:13:HAL_TIMEx_HallSensor_MspDeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:317:19:HAL_TIMEx_HallSensor_Start 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:371:19:HAL_TIMEx_HallSensor_Stop 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:399:19:HAL_TIMEx_HallSensor_Start_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:456:19:HAL_TIMEx_HallSensor_Stop_IT 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:489:19:HAL_TIMEx_HallSensor_Start_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:565:19:HAL_TIMEx_HallSensor_Stop_DMA 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:627:19:HAL_TIMEx_OCN_Start 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:678:19:HAL_TIMEx_OCN_Stop 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:710:19:HAL_TIMEx_OCN_Start_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:797:19:HAL_TIMEx_OCN_Stop_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:872:19:HAL_TIMEx_OCN_Start_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1010:19:HAL_TIMEx_OCN_Stop_DMA 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1100:19:HAL_TIMEx_PWMN_Start 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1150:19:HAL_TIMEx_PWMN_Stop 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1182:19:HAL_TIMEx_PWMN_Start_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1268:19:HAL_TIMEx_PWMN_Stop_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1343:19:HAL_TIMEx_PWMN_Start_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1481:19:HAL_TIMEx_PWMN_Stop_DMA 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1572:19:HAL_TIMEx_OnePulseN_Start 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1621:19:HAL_TIMEx_OnePulseN_Stop 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1660:19:HAL_TIMEx_OnePulseN_Start_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1715:19:HAL_TIMEx_OnePulseN_Stop_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1795:19:HAL_TIMEx_ConfigCommutEvent 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1851:19:HAL_TIMEx_ConfigCommutEvent_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1908:19:HAL_TIMEx_ConfigCommutEvent_DMA 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:1957:19:HAL_TIMEx_MasterConfigSynchronization 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2032:19:HAL_TIMEx_ConfigBreakDeadTime 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2177:19:HAL_TIMEx_RemapConfig 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2205:19:HAL_TIMEx_GroupChannel5 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2256:13:HAL_TIMEx_CommutCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2270:13:HAL_TIMEx_CommutHalfCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2285:13:HAL_TIMEx_BreakCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2301:13:HAL_TIMEx_Break2Callback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2335:22:HAL_TIMEx_HallSensor_GetState 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2350:29:HAL_TIMEx_GetChannelNState 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2379:6:TIMEx_DMACommutationCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2398:6:TIMEx_DMACommutationHalfCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2418:13:TIM_DMADelayPulseNCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2468:13:TIM_DMAErrorCCxN 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c:2513:13:TIM_CCxNChannelCmd 32 static diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/subdir.mk b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/subdir.mk new file mode 100644 index 0000000..13cf979 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/subdir.mk @@ -0,0 +1,69 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (10.3-2021.10) +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c \ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c + +OBJS += \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + +C_DEPS += \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.d \ +./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.d + + +# Each subdirectory must supply rules for building sources it contributes +Drivers/STM32F3xx_HAL_Driver/Src/%.o Drivers/STM32F3xx_HAL_Driver/Src/%.su Drivers/STM32F3xx_HAL_Driver/Src/%.cyclo: ../Drivers/STM32F3xx_HAL_Driver/Src/%.c Drivers/STM32F3xx_HAL_Driver/Src/subdir.mk + arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F302x8 -c -I../Core/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F3xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" + +clean: clean-Drivers-2f-STM32F3xx_HAL_Driver-2f-Src + +clean-Drivers-2f-STM32F3xx_HAL_Driver-2f-Src: + -$(RM) ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.su ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.cyclo ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.su + +.PHONY: clean-Drivers-2f-STM32F3xx_HAL_Driver-2f-Src + diff --git a/Debug/Open_Box.elf b/Debug/Open_Box.elf new file mode 100644 index 0000000000000000000000000000000000000000..736f47e29c2bc11c7401b4cddca5bd479c110679 GIT binary patch literal 990272 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 ST8wuD;wxSP0a&zX@!<{sT603-lJ= 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
    : +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + 80001c8: b580 push {r7, lr} + 80001ca: af00 add r7, sp, #0 + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + 80001cc: f000 f9f4 bl 80005b8 + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + 80001d0: f000 f836 bl 8000240 + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + 80001d4: f000 f8d2 bl 800037c + MX_TIM2_Init(); + 80001d8: f000 f874 bl 80002c4 + /* USER CODE BEGIN 2 */ + HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2); + 80001dc: 2104 movs r1, #4 + 80001de: 4817 ldr r0, [pc, #92] ; (800023c ) + 80001e0: f001 ff62 bl 80020a8 + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + if(HAL_GPIO_ReadPin(Sens1_GPIO_Port, Sens1_Pin) == GPIO_PIN_SET) + 80001e4: 2120 movs r1, #32 + 80001e6: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 + 80001ea: f000 fcc7 bl 8000b7c + 80001ee: 4603 mov r3, r0 + 80001f0: 2b01 cmp r3, #1 + 80001f2: d104 bne.n 80001fe + { + __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 8000); + 80001f4: 4b11 ldr r3, [pc, #68] ; (800023c ) + 80001f6: 681b ldr r3, [r3, #0] + 80001f8: f44f 52fa mov.w r2, #8000 ; 0x1f40 + 80001fc: 639a str r2, [r3, #56] ; 0x38 + } + if(HAL_GPIO_ReadPin(Sens2_GPIO_Port, Sens2_Pin) == GPIO_PIN_SET) + 80001fe: 2110 movs r1, #16 + 8000200: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 + 8000204: f000 fcba bl 8000b7c + 8000208: 4603 mov r3, r0 + 800020a: 2b01 cmp r3, #1 + 800020c: d104 bne.n 8000218 + { + __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 16000); + 800020e: 4b0b ldr r3, [pc, #44] ; (800023c ) + 8000210: 681b ldr r3, [r3, #0] + 8000212: f44f 527a mov.w r2, #16000 ; 0x3e80 + 8000216: 639a str r2, [r3, #56] ; 0x38 + } + + HAL_Delay(2000); + 8000218: f44f 60fa mov.w r0, #2000 ; 0x7d0 + 800021c: f000 fa32 bl 8000684 + + HAL_GPIO_WritePin(Ctr_Vin1_GPIO_Port, Ctr_Vin1_Pin, GPIO_PIN_RESET); + 8000220: 2200 movs r2, #0 + 8000222: 2140 movs r1, #64 ; 0x40 + 8000224: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 + 8000228: f000 fcc0 bl 8000bac + HAL_GPIO_WritePin(Ctr_Vin2_GPIO_Port, Ctr_Vin2_Pin, GPIO_PIN_RESET); + 800022c: 2200 movs r2, #0 + 800022e: 2108 movs r1, #8 + 8000230: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 + 8000234: f000 fcba bl 8000bac + if(HAL_GPIO_ReadPin(Sens1_GPIO_Port, Sens1_Pin) == GPIO_PIN_SET) + 8000238: e7d4 b.n 80001e4 + 800023a: bf00 nop + 800023c: 20000028 .word 0x20000028 + +08000240 : +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + 8000240: b580 push {r7, lr} + 8000242: b090 sub sp, #64 ; 0x40 + 8000244: af00 add r7, sp, #0 + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + 8000246: f107 0318 add.w r3, r7, #24 + 800024a: 2228 movs r2, #40 ; 0x28 + 800024c: 2100 movs r1, #0 + 800024e: 4618 mov r0, r3 + 8000250: f002 fcf4 bl 8002c3c + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 8000254: 1d3b adds r3, r7, #4 + 8000256: 2200 movs r2, #0 + 8000258: 601a str r2, [r3, #0] + 800025a: 605a str r2, [r3, #4] + 800025c: 609a str r2, [r3, #8] + 800025e: 60da str r2, [r3, #12] + 8000260: 611a str r2, [r3, #16] + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + 8000262: 2302 movs r3, #2 + 8000264: 61bb str r3, [r7, #24] + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + 8000266: 2301 movs r3, #1 + 8000268: 62bb str r3, [r7, #40] ; 0x28 + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + 800026a: 2310 movs r3, #16 + 800026c: 62fb str r3, [r7, #44] ; 0x2c + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + 800026e: 2302 movs r3, #2 + 8000270: 637b str r3, [r7, #52] ; 0x34 + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + 8000272: 2300 movs r3, #0 + 8000274: 63bb str r3, [r7, #56] ; 0x38 + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4; + 8000276: f44f 2300 mov.w r3, #524288 ; 0x80000 + 800027a: 63fb str r3, [r7, #60] ; 0x3c + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 800027c: f107 0318 add.w r3, r7, #24 + 8000280: 4618 mov r0, r3 + 8000282: f000 fcab bl 8000bdc + 8000286: 4603 mov r3, r0 + 8000288: 2b00 cmp r3, #0 + 800028a: d001 beq.n 8000290 + { + Error_Handler(); + 800028c: f000 f8b2 bl 80003f4 + } + + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + 8000290: 230f movs r3, #15 + 8000292: 607b str r3, [r7, #4] + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + 8000294: 2302 movs r3, #2 + 8000296: 60bb str r3, [r7, #8] + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV2; + 8000298: 2380 movs r3, #128 ; 0x80 + 800029a: 60fb str r3, [r7, #12] + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + 800029c: f44f 6380 mov.w r3, #1024 ; 0x400 + 80002a0: 613b str r3, [r7, #16] + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 80002a2: 2300 movs r3, #0 + 80002a4: 617b str r3, [r7, #20] + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) + 80002a6: 1d3b adds r3, r7, #4 + 80002a8: 2100 movs r1, #0 + 80002aa: 4618 mov r0, r3 + 80002ac: f001 fcd4 bl 8001c58 + 80002b0: 4603 mov r3, r0 + 80002b2: 2b00 cmp r3, #0 + 80002b4: d001 beq.n 80002ba + { + Error_Handler(); + 80002b6: f000 f89d bl 80003f4 + } +} + 80002ba: bf00 nop + 80002bc: 3740 adds r7, #64 ; 0x40 + 80002be: 46bd mov sp, r7 + 80002c0: bd80 pop {r7, pc} + ... + +080002c4 : + * @brief TIM2 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM2_Init(void) +{ + 80002c4: b580 push {r7, lr} + 80002c6: b08a sub sp, #40 ; 0x28 + 80002c8: af00 add r7, sp, #0 + + /* USER CODE BEGIN TIM2_Init 0 */ + + /* USER CODE END TIM2_Init 0 */ + + TIM_MasterConfigTypeDef sMasterConfig = {0}; + 80002ca: f107 031c add.w r3, r7, #28 + 80002ce: 2200 movs r2, #0 + 80002d0: 601a str r2, [r3, #0] + 80002d2: 605a str r2, [r3, #4] + 80002d4: 609a str r2, [r3, #8] + TIM_OC_InitTypeDef sConfigOC = {0}; + 80002d6: 463b mov r3, r7 + 80002d8: 2200 movs r2, #0 + 80002da: 601a str r2, [r3, #0] + 80002dc: 605a str r2, [r3, #4] + 80002de: 609a str r2, [r3, #8] + 80002e0: 60da str r2, [r3, #12] + 80002e2: 611a str r2, [r3, #16] + 80002e4: 615a str r2, [r3, #20] + 80002e6: 619a str r2, [r3, #24] + + /* USER CODE BEGIN TIM2_Init 1 */ + + /* USER CODE END TIM2_Init 1 */ + htim2.Instance = TIM2; + 80002e8: 4b22 ldr r3, [pc, #136] ; (8000374 ) + 80002ea: f04f 4280 mov.w r2, #1073741824 ; 0x40000000 + 80002ee: 601a str r2, [r3, #0] + htim2.Init.Prescaler = 0; + 80002f0: 4b20 ldr r3, [pc, #128] ; (8000374 ) + 80002f2: 2200 movs r2, #0 + 80002f4: 605a str r2, [r3, #4] + htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + 80002f6: 4b1f ldr r3, [pc, #124] ; (8000374 ) + 80002f8: 2200 movs r2, #0 + 80002fa: 609a str r2, [r3, #8] + htim2.Init.Period = 159999; + 80002fc: 4b1d ldr r3, [pc, #116] ; (8000374 ) + 80002fe: 4a1e ldr r2, [pc, #120] ; (8000378 ) + 8000300: 60da str r2, [r3, #12] + htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + 8000302: 4b1c ldr r3, [pc, #112] ; (8000374 ) + 8000304: 2200 movs r2, #0 + 8000306: 611a str r2, [r3, #16] + htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + 8000308: 4b1a ldr r3, [pc, #104] ; (8000374 ) + 800030a: 2200 movs r2, #0 + 800030c: 619a str r2, [r3, #24] + if (HAL_TIM_PWM_Init(&htim2) != HAL_OK) + 800030e: 4819 ldr r0, [pc, #100] ; (8000374 ) + 8000310: f001 fe72 bl 8001ff8 + 8000314: 4603 mov r3, r0 + 8000316: 2b00 cmp r3, #0 + 8000318: d001 beq.n 800031e + { + Error_Handler(); + 800031a: f000 f86b bl 80003f4 + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + 800031e: 2300 movs r3, #0 + 8000320: 61fb str r3, [r7, #28] + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + 8000322: 2300 movs r3, #0 + 8000324: 627b str r3, [r7, #36] ; 0x24 + if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + 8000326: f107 031c add.w r3, r7, #28 + 800032a: 4619 mov r1, r3 + 800032c: 4811 ldr r0, [pc, #68] ; (8000374 ) + 800032e: f002 fbfb bl 8002b28 + 8000332: 4603 mov r3, r0 + 8000334: 2b00 cmp r3, #0 + 8000336: d001 beq.n 800033c + { + Error_Handler(); + 8000338: f000 f85c bl 80003f4 + } + sConfigOC.OCMode = TIM_OCMODE_PWM1; + 800033c: 2360 movs r3, #96 ; 0x60 + 800033e: 603b str r3, [r7, #0] + sConfigOC.Pulse = 8000; + 8000340: f44f 53fa mov.w r3, #8000 ; 0x1f40 + 8000344: 607b str r3, [r7, #4] + sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + 8000346: 2300 movs r3, #0 + 8000348: 60bb str r3, [r7, #8] + sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + 800034a: 2300 movs r3, #0 + 800034c: 613b str r3, [r7, #16] + if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2) != HAL_OK) + 800034e: 463b mov r3, r7 + 8000350: 2204 movs r2, #4 + 8000352: 4619 mov r1, r3 + 8000354: 4807 ldr r0, [pc, #28] ; (8000374 ) + 8000356: f001 ff8d bl 8002274 + 800035a: 4603 mov r3, r0 + 800035c: 2b00 cmp r3, #0 + 800035e: d001 beq.n 8000364 + { + Error_Handler(); + 8000360: f000 f848 bl 80003f4 + } + /* USER CODE BEGIN TIM2_Init 2 */ + + /* USER CODE END TIM2_Init 2 */ + HAL_TIM_MspPostInit(&htim2); + 8000364: 4803 ldr r0, [pc, #12] ; (8000374 ) + 8000366: f000 f88d bl 8000484 + +} + 800036a: bf00 nop + 800036c: 3728 adds r7, #40 ; 0x28 + 800036e: 46bd mov sp, r7 + 8000370: bd80 pop {r7, pc} + 8000372: bf00 nop + 8000374: 20000028 .word 0x20000028 + 8000378: 000270ff .word 0x000270ff + +0800037c : + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + 800037c: b580 push {r7, lr} + 800037e: b086 sub sp, #24 + 8000380: af00 add r7, sp, #0 + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 8000382: 1d3b adds r3, r7, #4 + 8000384: 2200 movs r2, #0 + 8000386: 601a str r2, [r3, #0] + 8000388: 605a str r2, [r3, #4] + 800038a: 609a str r2, [r3, #8] + 800038c: 60da str r2, [r3, #12] + 800038e: 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(); + 8000390: 4b17 ldr r3, [pc, #92] ; (80003f0 ) + 8000392: 695b ldr r3, [r3, #20] + 8000394: 4a16 ldr r2, [pc, #88] ; (80003f0 ) + 8000396: f443 3300 orr.w r3, r3, #131072 ; 0x20000 + 800039a: 6153 str r3, [r2, #20] + 800039c: 4b14 ldr r3, [pc, #80] ; (80003f0 ) + 800039e: 695b ldr r3, [r3, #20] + 80003a0: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80003a4: 603b str r3, [r7, #0] + 80003a6: 683b ldr r3, [r7, #0] + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOA, Ctr_Vin2_Pin|Ctr_Vin1_Pin, GPIO_PIN_SET); + 80003a8: 2201 movs r2, #1 + 80003aa: 2148 movs r1, #72 ; 0x48 + 80003ac: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 + 80003b0: f000 fbfc bl 8000bac + + /*Configure GPIO pins : Ctr_Vin2_Pin Ctr_Vin1_Pin */ + GPIO_InitStruct.Pin = Ctr_Vin2_Pin|Ctr_Vin1_Pin; + 80003b4: 2348 movs r3, #72 ; 0x48 + 80003b6: 607b str r3, [r7, #4] + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + 80003b8: 2301 movs r3, #1 + 80003ba: 60bb str r3, [r7, #8] + GPIO_InitStruct.Pull = GPIO_NOPULL; + 80003bc: 2300 movs r3, #0 + 80003be: 60fb str r3, [r7, #12] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 80003c0: 2300 movs r3, #0 + 80003c2: 613b str r3, [r7, #16] + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 80003c4: 1d3b adds r3, r7, #4 + 80003c6: 4619 mov r1, r3 + 80003c8: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 + 80003cc: f000 fa64 bl 8000898 + + /*Configure GPIO pins : Sens2_Pin Sens1_Pin */ + GPIO_InitStruct.Pin = Sens2_Pin|Sens1_Pin; + 80003d0: 2330 movs r3, #48 ; 0x30 + 80003d2: 607b str r3, [r7, #4] + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + 80003d4: 2300 movs r3, #0 + 80003d6: 60bb str r3, [r7, #8] + GPIO_InitStruct.Pull = GPIO_PULLDOWN; + 80003d8: 2302 movs r3, #2 + 80003da: 60fb str r3, [r7, #12] + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 80003dc: 1d3b adds r3, r7, #4 + 80003de: 4619 mov r1, r3 + 80003e0: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 + 80003e4: f000 fa58 bl 8000898 + +/* USER CODE BEGIN MX_GPIO_Init_2 */ +/* USER CODE END MX_GPIO_Init_2 */ +} + 80003e8: bf00 nop + 80003ea: 3718 adds r7, #24 + 80003ec: 46bd mov sp, r7 + 80003ee: bd80 pop {r7, pc} + 80003f0: 40021000 .word 0x40021000 + +080003f4 : +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + 80003f4: b480 push {r7} + 80003f6: 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"); + 80003f8: b672 cpsid i +} + 80003fa: 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) + 80003fc: e7fe b.n 80003fc + ... + +08000400 : +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + /** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + 8000400: b480 push {r7} + 8000402: b083 sub sp, #12 + 8000404: af00 add r7, sp, #0 + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + 8000406: 4b0f ldr r3, [pc, #60] ; (8000444 ) + 8000408: 699b ldr r3, [r3, #24] + 800040a: 4a0e ldr r2, [pc, #56] ; (8000444 ) + 800040c: f043 0301 orr.w r3, r3, #1 + 8000410: 6193 str r3, [r2, #24] + 8000412: 4b0c ldr r3, [pc, #48] ; (8000444 ) + 8000414: 699b ldr r3, [r3, #24] + 8000416: f003 0301 and.w r3, r3, #1 + 800041a: 607b str r3, [r7, #4] + 800041c: 687b ldr r3, [r7, #4] + __HAL_RCC_PWR_CLK_ENABLE(); + 800041e: 4b09 ldr r3, [pc, #36] ; (8000444 ) + 8000420: 69db ldr r3, [r3, #28] + 8000422: 4a08 ldr r2, [pc, #32] ; (8000444 ) + 8000424: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8000428: 61d3 str r3, [r2, #28] + 800042a: 4b06 ldr r3, [pc, #24] ; (8000444 ) + 800042c: 69db ldr r3, [r3, #28] + 800042e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8000432: 603b str r3, [r7, #0] + 8000434: 683b ldr r3, [r7, #0] + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + 8000436: bf00 nop + 8000438: 370c adds r7, #12 + 800043a: 46bd mov sp, r7 + 800043c: f85d 7b04 ldr.w r7, [sp], #4 + 8000440: 4770 bx lr + 8000442: bf00 nop + 8000444: 40021000 .word 0x40021000 + +08000448 : +* This function configures the hardware resources used in this example +* @param htim_pwm: TIM_PWM handle pointer +* @retval None +*/ +void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm) +{ + 8000448: b480 push {r7} + 800044a: b085 sub sp, #20 + 800044c: af00 add r7, sp, #0 + 800044e: 6078 str r0, [r7, #4] + if(htim_pwm->Instance==TIM2) + 8000450: 687b ldr r3, [r7, #4] + 8000452: 681b ldr r3, [r3, #0] + 8000454: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 8000458: d10b bne.n 8000472 + { + /* USER CODE BEGIN TIM2_MspInit 0 */ + + /* USER CODE END TIM2_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM2_CLK_ENABLE(); + 800045a: 4b09 ldr r3, [pc, #36] ; (8000480 ) + 800045c: 69db ldr r3, [r3, #28] + 800045e: 4a08 ldr r2, [pc, #32] ; (8000480 ) + 8000460: f043 0301 orr.w r3, r3, #1 + 8000464: 61d3 str r3, [r2, #28] + 8000466: 4b06 ldr r3, [pc, #24] ; (8000480 ) + 8000468: 69db ldr r3, [r3, #28] + 800046a: f003 0301 and.w r3, r3, #1 + 800046e: 60fb str r3, [r7, #12] + 8000470: 68fb ldr r3, [r7, #12] + /* USER CODE BEGIN TIM2_MspInit 1 */ + + /* USER CODE END TIM2_MspInit 1 */ + } + +} + 8000472: bf00 nop + 8000474: 3714 adds r7, #20 + 8000476: 46bd mov sp, r7 + 8000478: f85d 7b04 ldr.w r7, [sp], #4 + 800047c: 4770 bx lr + 800047e: bf00 nop + 8000480: 40021000 .word 0x40021000 + +08000484 : + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) +{ + 8000484: b580 push {r7, lr} + 8000486: b088 sub sp, #32 + 8000488: af00 add r7, sp, #0 + 800048a: 6078 str r0, [r7, #4] + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 800048c: f107 030c add.w r3, r7, #12 + 8000490: 2200 movs r2, #0 + 8000492: 601a str r2, [r3, #0] + 8000494: 605a str r2, [r3, #4] + 8000496: 609a str r2, [r3, #8] + 8000498: 60da str r2, [r3, #12] + 800049a: 611a str r2, [r3, #16] + if(htim->Instance==TIM2) + 800049c: 687b ldr r3, [r7, #4] + 800049e: 681b ldr r3, [r3, #0] + 80004a0: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 80004a4: d11c bne.n 80004e0 + { + /* USER CODE BEGIN TIM2_MspPostInit 0 */ + + /* USER CODE END TIM2_MspPostInit 0 */ + + __HAL_RCC_GPIOA_CLK_ENABLE(); + 80004a6: 4b10 ldr r3, [pc, #64] ; (80004e8 ) + 80004a8: 695b ldr r3, [r3, #20] + 80004aa: 4a0f ldr r2, [pc, #60] ; (80004e8 ) + 80004ac: f443 3300 orr.w r3, r3, #131072 ; 0x20000 + 80004b0: 6153 str r3, [r2, #20] + 80004b2: 4b0d ldr r3, [pc, #52] ; (80004e8 ) + 80004b4: 695b ldr r3, [r3, #20] + 80004b6: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80004ba: 60bb str r3, [r7, #8] + 80004bc: 68bb ldr r3, [r7, #8] + /**TIM2 GPIO Configuration + PA1 ------> TIM2_CH2 + */ + GPIO_InitStruct.Pin = PWM1_Out_Pin; + 80004be: 2302 movs r3, #2 + 80004c0: 60fb str r3, [r7, #12] + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 80004c2: 2302 movs r3, #2 + 80004c4: 613b str r3, [r7, #16] + GPIO_InitStruct.Pull = GPIO_NOPULL; + 80004c6: 2300 movs r3, #0 + 80004c8: 617b str r3, [r7, #20] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 80004ca: 2300 movs r3, #0 + 80004cc: 61bb str r3, [r7, #24] + GPIO_InitStruct.Alternate = GPIO_AF1_TIM2; + 80004ce: 2301 movs r3, #1 + 80004d0: 61fb str r3, [r7, #28] + HAL_GPIO_Init(PWM1_Out_GPIO_Port, &GPIO_InitStruct); + 80004d2: f107 030c add.w r3, r7, #12 + 80004d6: 4619 mov r1, r3 + 80004d8: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 + 80004dc: f000 f9dc bl 8000898 + /* USER CODE BEGIN TIM2_MspPostInit 1 */ + + /* USER CODE END TIM2_MspPostInit 1 */ + } + +} + 80004e0: bf00 nop + 80004e2: 3720 adds r7, #32 + 80004e4: 46bd mov sp, r7 + 80004e6: bd80 pop {r7, pc} + 80004e8: 40021000 .word 0x40021000 + +080004ec : +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + 80004ec: b480 push {r7} + 80004ee: 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) + 80004f0: e7fe b.n 80004f0 + +080004f2 : + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + 80004f2: b480 push {r7} + 80004f4: af00 add r7, sp, #0 + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + 80004f6: e7fe b.n 80004f6 + +080004f8 : + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + 80004f8: b480 push {r7} + 80004fa: af00 add r7, sp, #0 + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + 80004fc: e7fe b.n 80004fc + +080004fe : + +/** + * @brief This function handles Pre-fetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + 80004fe: b480 push {r7} + 8000500: af00 add r7, sp, #0 + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + 8000502: e7fe b.n 8000502 + +08000504 : + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + 8000504: b480 push {r7} + 8000506: af00 add r7, sp, #0 + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + 8000508: e7fe b.n 8000508 + +0800050a : + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + 800050a: b480 push {r7} + 800050c: af00 add r7, sp, #0 + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + 800050e: bf00 nop + 8000510: 46bd mov sp, r7 + 8000512: f85d 7b04 ldr.w r7, [sp], #4 + 8000516: 4770 bx lr + +08000518 : + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + 8000518: b480 push {r7} + 800051a: af00 add r7, sp, #0 + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + 800051c: bf00 nop + 800051e: 46bd mov sp, r7 + 8000520: f85d 7b04 ldr.w r7, [sp], #4 + 8000524: 4770 bx lr + +08000526 : + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + 8000526: b480 push {r7} + 8000528: af00 add r7, sp, #0 + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + 800052a: bf00 nop + 800052c: 46bd mov sp, r7 + 800052e: f85d 7b04 ldr.w r7, [sp], #4 + 8000532: 4770 bx lr + +08000534 : + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + 8000534: b580 push {r7, lr} + 8000536: af00 add r7, sp, #0 + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + 8000538: f000 f884 bl 8000644 + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + 800053c: bf00 nop + 800053e: bd80 pop {r7, pc} + +08000540 : + * @brief Setup the microcontroller system + * @param None + * @retval None + */ +void SystemInit(void) +{ + 8000540: b480 push {r7} + 8000542: 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 */ + 8000544: 4b06 ldr r3, [pc, #24] ; (8000560 ) + 8000546: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 800054a: 4a05 ldr r2, [pc, #20] ; (8000560 ) + 800054c: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 + 8000550: f8c2 3088 str.w r3, [r2, #136] ; 0x88 + + /* Configure the Vector Table location -------------------------------------*/ +#if defined(USER_VECT_TAB_ADDRESS) + SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#endif /* USER_VECT_TAB_ADDRESS */ +} + 8000554: bf00 nop + 8000556: 46bd mov sp, r7 + 8000558: f85d 7b04 ldr.w r7, [sp], #4 + 800055c: 4770 bx lr + 800055e: bf00 nop + 8000560: e000ed00 .word 0xe000ed00 + +08000564 : + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr sp, =_estack /* Atollic update: set stack pointer */ + 8000564: f8df d034 ldr.w sp, [pc, #52] ; 800059c + +/* Call the clock system initialization function.*/ + bl SystemInit + 8000568: f7ff ffea bl 8000540 + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + 800056c: 480c ldr r0, [pc, #48] ; (80005a0 ) + ldr r1, =_edata + 800056e: 490d ldr r1, [pc, #52] ; (80005a4 ) + ldr r2, =_sidata + 8000570: 4a0d ldr r2, [pc, #52] ; (80005a8 ) + movs r3, #0 + 8000572: 2300 movs r3, #0 + b LoopCopyDataInit + 8000574: e002 b.n 800057c + +08000576 : + +CopyDataInit: + ldr r4, [r2, r3] + 8000576: 58d4 ldr r4, [r2, r3] + str r4, [r0, r3] + 8000578: 50c4 str r4, [r0, r3] + adds r3, r3, #4 + 800057a: 3304 adds r3, #4 + +0800057c : + +LoopCopyDataInit: + adds r4, r0, r3 + 800057c: 18c4 adds r4, r0, r3 + cmp r4, r1 + 800057e: 428c cmp r4, r1 + bcc CopyDataInit + 8000580: d3f9 bcc.n 8000576 + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + 8000582: 4a0a ldr r2, [pc, #40] ; (80005ac ) + ldr r4, =_ebss + 8000584: 4c0a ldr r4, [pc, #40] ; (80005b0 ) + movs r3, #0 + 8000586: 2300 movs r3, #0 + b LoopFillZerobss + 8000588: e001 b.n 800058e + +0800058a : + +FillZerobss: + str r3, [r2] + 800058a: 6013 str r3, [r2, #0] + adds r2, r2, #4 + 800058c: 3204 adds r2, #4 + +0800058e : + +LoopFillZerobss: + cmp r2, r4 + 800058e: 42a2 cmp r2, r4 + bcc FillZerobss + 8000590: d3fb bcc.n 800058a + +/* Call static constructors */ + bl __libc_init_array + 8000592: f002 fb2f bl 8002bf4 <__libc_init_array> +/* Call the application's entry point.*/ + bl main + 8000596: f7ff fe17 bl 80001c8
    + +0800059a : + +LoopForever: + b LoopForever + 800059a: e7fe b.n 800059a + ldr sp, =_estack /* Atollic update: set stack pointer */ + 800059c: 20004000 .word 0x20004000 + ldr r0, =_sdata + 80005a0: 20000000 .word 0x20000000 + ldr r1, =_edata + 80005a4: 2000000c .word 0x2000000c + ldr r2, =_sidata + 80005a8: 08002c9c .word 0x08002c9c + ldr r2, =_sbss + 80005ac: 2000000c .word 0x2000000c + ldr r4, =_ebss + 80005b0: 20000078 .word 0x20000078 + +080005b4 : + * @retval : None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + 80005b4: e7fe b.n 80005b4 + ... + +080005b8 : + * In the default implementation,Systick is used as source of time base. + * The tick variable is incremented each 1ms in its ISR. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_Init(void) +{ + 80005b8: b580 push {r7, lr} + 80005ba: af00 add r7, sp, #0 + /* Configure Flash prefetch */ +#if (PREFETCH_ENABLE != 0U) + __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); + 80005bc: 4b08 ldr r3, [pc, #32] ; (80005e0 ) + 80005be: 681b ldr r3, [r3, #0] + 80005c0: 4a07 ldr r2, [pc, #28] ; (80005e0 ) + 80005c2: f043 0310 orr.w r3, r3, #16 + 80005c6: 6013 str r3, [r2, #0] +#endif /* PREFETCH_ENABLE */ + + /* Set Interrupt Group Priority */ + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); + 80005c8: 2003 movs r0, #3 + 80005ca: f000 f931 bl 8000830 + + /* Enable systick and configure 1ms tick (default clock after Reset is HSI) */ + HAL_InitTick(TICK_INT_PRIORITY); + 80005ce: 200f movs r0, #15 + 80005d0: f000 f808 bl 80005e4 + + /* Init the low level hardware */ + HAL_MspInit(); + 80005d4: f7ff ff14 bl 8000400 + + /* Return function status */ + return HAL_OK; + 80005d8: 2300 movs r3, #0 +} + 80005da: 4618 mov r0, r3 + 80005dc: bd80 pop {r7, pc} + 80005de: bf00 nop + 80005e0: 40022000 .word 0x40022000 + +080005e4 : + * implementation in user file. + * @param TickPriority Tick interrupt priority. + * @retval HAL status + */ +__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) +{ + 80005e4: b580 push {r7, lr} + 80005e6: b082 sub sp, #8 + 80005e8: af00 add r7, sp, #0 + 80005ea: 6078 str r0, [r7, #4] + /* Configure the SysTick to have interrupt in 1ms time basis*/ + if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) + 80005ec: 4b12 ldr r3, [pc, #72] ; (8000638 ) + 80005ee: 681a ldr r2, [r3, #0] + 80005f0: 4b12 ldr r3, [pc, #72] ; (800063c ) + 80005f2: 781b ldrb r3, [r3, #0] + 80005f4: 4619 mov r1, r3 + 80005f6: f44f 737a mov.w r3, #1000 ; 0x3e8 + 80005fa: fbb3 f3f1 udiv r3, r3, r1 + 80005fe: fbb2 f3f3 udiv r3, r2, r3 + 8000602: 4618 mov r0, r3 + 8000604: f000 f93b bl 800087e + 8000608: 4603 mov r3, r0 + 800060a: 2b00 cmp r3, #0 + 800060c: d001 beq.n 8000612 + { + return HAL_ERROR; + 800060e: 2301 movs r3, #1 + 8000610: e00e b.n 8000630 + } + + /* Configure the SysTick IRQ priority */ + if (TickPriority < (1UL << __NVIC_PRIO_BITS)) + 8000612: 687b ldr r3, [r7, #4] + 8000614: 2b0f cmp r3, #15 + 8000616: d80a bhi.n 800062e + { + HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); + 8000618: 2200 movs r2, #0 + 800061a: 6879 ldr r1, [r7, #4] + 800061c: f04f 30ff mov.w r0, #4294967295 + 8000620: f000 f911 bl 8000846 + uwTickPrio = TickPriority; + 8000624: 4a06 ldr r2, [pc, #24] ; (8000640 ) + 8000626: 687b ldr r3, [r7, #4] + 8000628: 6013 str r3, [r2, #0] + else + { + return HAL_ERROR; + } + /* Return function status */ + return HAL_OK; + 800062a: 2300 movs r3, #0 + 800062c: e000 b.n 8000630 + return HAL_ERROR; + 800062e: 2301 movs r3, #1 +} + 8000630: 4618 mov r0, r3 + 8000632: 3708 adds r7, #8 + 8000634: 46bd mov sp, r7 + 8000636: bd80 pop {r7, pc} + 8000638: 20000000 .word 0x20000000 + 800063c: 20000008 .word 0x20000008 + 8000640: 20000004 .word 0x20000004 + +08000644 : + * @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) +{ + 8000644: b480 push {r7} + 8000646: af00 add r7, sp, #0 + uwTick += uwTickFreq; + 8000648: 4b06 ldr r3, [pc, #24] ; (8000664 ) + 800064a: 781b ldrb r3, [r3, #0] + 800064c: 461a mov r2, r3 + 800064e: 4b06 ldr r3, [pc, #24] ; (8000668 ) + 8000650: 681b ldr r3, [r3, #0] + 8000652: 4413 add r3, r2 + 8000654: 4a04 ldr r2, [pc, #16] ; (8000668 ) + 8000656: 6013 str r3, [r2, #0] +} + 8000658: bf00 nop + 800065a: 46bd mov sp, r7 + 800065c: f85d 7b04 ldr.w r7, [sp], #4 + 8000660: 4770 bx lr + 8000662: bf00 nop + 8000664: 20000008 .word 0x20000008 + 8000668: 20000074 .word 0x20000074 + +0800066c : + * @note The 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) +{ + 800066c: b480 push {r7} + 800066e: af00 add r7, sp, #0 + return uwTick; + 8000670: 4b03 ldr r3, [pc, #12] ; (8000680 ) + 8000672: 681b ldr r3, [r3, #0] +} + 8000674: 4618 mov r0, r3 + 8000676: 46bd mov sp, r7 + 8000678: f85d 7b04 ldr.w r7, [sp], #4 + 800067c: 4770 bx lr + 800067e: bf00 nop + 8000680: 20000074 .word 0x20000074 + +08000684 : + * implementations in user file. + * @param Delay specifies the delay time length, in milliseconds. + * @retval None + */ +__weak void HAL_Delay(uint32_t Delay) +{ + 8000684: b580 push {r7, lr} + 8000686: b084 sub sp, #16 + 8000688: af00 add r7, sp, #0 + 800068a: 6078 str r0, [r7, #4] + uint32_t tickstart = HAL_GetTick(); + 800068c: f7ff ffee bl 800066c + 8000690: 60b8 str r0, [r7, #8] + uint32_t wait = Delay; + 8000692: 687b ldr r3, [r7, #4] + 8000694: 60fb str r3, [r7, #12] + + /* Add freq to guarantee minimum wait */ + if (wait < HAL_MAX_DELAY) + 8000696: 68fb ldr r3, [r7, #12] + 8000698: f1b3 3fff cmp.w r3, #4294967295 + 800069c: d005 beq.n 80006aa + { + wait += (uint32_t)(uwTickFreq); + 800069e: 4b0a ldr r3, [pc, #40] ; (80006c8 ) + 80006a0: 781b ldrb r3, [r3, #0] + 80006a2: 461a mov r2, r3 + 80006a4: 68fb ldr r3, [r7, #12] + 80006a6: 4413 add r3, r2 + 80006a8: 60fb str r3, [r7, #12] + } + + while((HAL_GetTick() - tickstart) < wait) + 80006aa: bf00 nop + 80006ac: f7ff ffde bl 800066c + 80006b0: 4602 mov r2, r0 + 80006b2: 68bb ldr r3, [r7, #8] + 80006b4: 1ad3 subs r3, r2, r3 + 80006b6: 68fa ldr r2, [r7, #12] + 80006b8: 429a cmp r2, r3 + 80006ba: d8f7 bhi.n 80006ac + { + } +} + 80006bc: bf00 nop + 80006be: bf00 nop + 80006c0: 3710 adds r7, #16 + 80006c2: 46bd mov sp, r7 + 80006c4: bd80 pop {r7, pc} + 80006c6: bf00 nop + 80006c8: 20000008 .word 0x20000008 + +080006cc <__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) +{ + 80006cc: b480 push {r7} + 80006ce: b085 sub sp, #20 + 80006d0: af00 add r7, sp, #0 + 80006d2: 6078 str r0, [r7, #4] + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 80006d4: 687b ldr r3, [r7, #4] + 80006d6: f003 0307 and.w r3, r3, #7 + 80006da: 60fb str r3, [r7, #12] + + reg_value = SCB->AIRCR; /* read old register configuration */ + 80006dc: 4b0c ldr r3, [pc, #48] ; (8000710 <__NVIC_SetPriorityGrouping+0x44>) + 80006de: 68db ldr r3, [r3, #12] + 80006e0: 60bb str r3, [r7, #8] + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + 80006e2: 68ba ldr r2, [r7, #8] + 80006e4: f64f 03ff movw r3, #63743 ; 0xf8ff + 80006e8: 4013 ands r3, r2 + 80006ea: 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 */ + 80006ec: 68fb ldr r3, [r7, #12] + 80006ee: 021a lsls r2, r3, #8 + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + 80006f0: 68bb ldr r3, [r7, #8] + 80006f2: 4313 orrs r3, r2 + reg_value = (reg_value | + 80006f4: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 + 80006f8: f443 3300 orr.w r3, r3, #131072 ; 0x20000 + 80006fc: 60bb str r3, [r7, #8] + SCB->AIRCR = reg_value; + 80006fe: 4a04 ldr r2, [pc, #16] ; (8000710 <__NVIC_SetPriorityGrouping+0x44>) + 8000700: 68bb ldr r3, [r7, #8] + 8000702: 60d3 str r3, [r2, #12] +} + 8000704: bf00 nop + 8000706: 3714 adds r7, #20 + 8000708: 46bd mov sp, r7 + 800070a: f85d 7b04 ldr.w r7, [sp], #4 + 800070e: 4770 bx lr + 8000710: e000ed00 .word 0xe000ed00 + +08000714 <__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) +{ + 8000714: b480 push {r7} + 8000716: af00 add r7, sp, #0 + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); + 8000718: 4b04 ldr r3, [pc, #16] ; (800072c <__NVIC_GetPriorityGrouping+0x18>) + 800071a: 68db ldr r3, [r3, #12] + 800071c: 0a1b lsrs r3, r3, #8 + 800071e: f003 0307 and.w r3, r3, #7 +} + 8000722: 4618 mov r0, r3 + 8000724: 46bd mov sp, r7 + 8000726: f85d 7b04 ldr.w r7, [sp], #4 + 800072a: 4770 bx lr + 800072c: e000ed00 .word 0xe000ed00 + +08000730 <__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) +{ + 8000730: b480 push {r7} + 8000732: b083 sub sp, #12 + 8000734: af00 add r7, sp, #0 + 8000736: 4603 mov r3, r0 + 8000738: 6039 str r1, [r7, #0] + 800073a: 71fb strb r3, [r7, #7] + if ((int32_t)(IRQn) >= 0) + 800073c: f997 3007 ldrsb.w r3, [r7, #7] + 8000740: 2b00 cmp r3, #0 + 8000742: db0a blt.n 800075a <__NVIC_SetPriority+0x2a> + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 8000744: 683b ldr r3, [r7, #0] + 8000746: b2da uxtb r2, r3 + 8000748: 490c ldr r1, [pc, #48] ; (800077c <__NVIC_SetPriority+0x4c>) + 800074a: f997 3007 ldrsb.w r3, [r7, #7] + 800074e: 0112 lsls r2, r2, #4 + 8000750: b2d2 uxtb r2, r2 + 8000752: 440b add r3, r1 + 8000754: 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); + } +} + 8000758: e00a b.n 8000770 <__NVIC_SetPriority+0x40> + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 800075a: 683b ldr r3, [r7, #0] + 800075c: b2da uxtb r2, r3 + 800075e: 4908 ldr r1, [pc, #32] ; (8000780 <__NVIC_SetPriority+0x50>) + 8000760: 79fb ldrb r3, [r7, #7] + 8000762: f003 030f and.w r3, r3, #15 + 8000766: 3b04 subs r3, #4 + 8000768: 0112 lsls r2, r2, #4 + 800076a: b2d2 uxtb r2, r2 + 800076c: 440b add r3, r1 + 800076e: 761a strb r2, [r3, #24] +} + 8000770: bf00 nop + 8000772: 370c adds r7, #12 + 8000774: 46bd mov sp, r7 + 8000776: f85d 7b04 ldr.w r7, [sp], #4 + 800077a: 4770 bx lr + 800077c: e000e100 .word 0xe000e100 + 8000780: e000ed00 .word 0xe000ed00 + +08000784 : + \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) +{ + 8000784: b480 push {r7} + 8000786: b089 sub sp, #36 ; 0x24 + 8000788: af00 add r7, sp, #0 + 800078a: 60f8 str r0, [r7, #12] + 800078c: 60b9 str r1, [r7, #8] + 800078e: 607a str r2, [r7, #4] + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 8000790: 68fb ldr r3, [r7, #12] + 8000792: f003 0307 and.w r3, r3, #7 + 8000796: 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); + 8000798: 69fb ldr r3, [r7, #28] + 800079a: f1c3 0307 rsb r3, r3, #7 + 800079e: 2b04 cmp r3, #4 + 80007a0: bf28 it cs + 80007a2: 2304 movcs r3, #4 + 80007a4: 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)); + 80007a6: 69fb ldr r3, [r7, #28] + 80007a8: 3304 adds r3, #4 + 80007aa: 2b06 cmp r3, #6 + 80007ac: d902 bls.n 80007b4 + 80007ae: 69fb ldr r3, [r7, #28] + 80007b0: 3b03 subs r3, #3 + 80007b2: e000 b.n 80007b6 + 80007b4: 2300 movs r3, #0 + 80007b6: 617b str r3, [r7, #20] + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 80007b8: f04f 32ff mov.w r2, #4294967295 + 80007bc: 69bb ldr r3, [r7, #24] + 80007be: fa02 f303 lsl.w r3, r2, r3 + 80007c2: 43da mvns r2, r3 + 80007c4: 68bb ldr r3, [r7, #8] + 80007c6: 401a ands r2, r3 + 80007c8: 697b ldr r3, [r7, #20] + 80007ca: 409a lsls r2, r3 + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + 80007cc: f04f 31ff mov.w r1, #4294967295 + 80007d0: 697b ldr r3, [r7, #20] + 80007d2: fa01 f303 lsl.w r3, r1, r3 + 80007d6: 43d9 mvns r1, r3 + 80007d8: 687b ldr r3, [r7, #4] + 80007da: 400b ands r3, r1 + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 80007dc: 4313 orrs r3, r2 + ); +} + 80007de: 4618 mov r0, r3 + 80007e0: 3724 adds r7, #36 ; 0x24 + 80007e2: 46bd mov sp, r7 + 80007e4: f85d 7b04 ldr.w r7, [sp], #4 + 80007e8: 4770 bx lr + ... + +080007ec : + \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) +{ + 80007ec: b580 push {r7, lr} + 80007ee: b082 sub sp, #8 + 80007f0: af00 add r7, sp, #0 + 80007f2: 6078 str r0, [r7, #4] + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + 80007f4: 687b ldr r3, [r7, #4] + 80007f6: 3b01 subs r3, #1 + 80007f8: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 + 80007fc: d301 bcc.n 8000802 + { + return (1UL); /* Reload value impossible */ + 80007fe: 2301 movs r3, #1 + 8000800: e00f b.n 8000822 + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + 8000802: 4a0a ldr r2, [pc, #40] ; (800082c ) + 8000804: 687b ldr r3, [r7, #4] + 8000806: 3b01 subs r3, #1 + 8000808: 6053 str r3, [r2, #4] + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + 800080a: 210f movs r1, #15 + 800080c: f04f 30ff mov.w r0, #4294967295 + 8000810: f7ff ff8e bl 8000730 <__NVIC_SetPriority> + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + 8000814: 4b05 ldr r3, [pc, #20] ; (800082c ) + 8000816: 2200 movs r2, #0 + 8000818: 609a str r2, [r3, #8] + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + 800081a: 4b04 ldr r3, [pc, #16] ; (800082c ) + 800081c: 2207 movs r2, #7 + 800081e: 601a str r2, [r3, #0] + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ + 8000820: 2300 movs r3, #0 +} + 8000822: 4618 mov r0, r3 + 8000824: 3708 adds r7, #8 + 8000826: 46bd mov sp, r7 + 8000828: bd80 pop {r7, pc} + 800082a: bf00 nop + 800082c: e000e010 .word 0xe000e010 + +08000830 : + * @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) +{ + 8000830: b580 push {r7, lr} + 8000832: b082 sub sp, #8 + 8000834: af00 add r7, sp, #0 + 8000836: 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); + 8000838: 6878 ldr r0, [r7, #4] + 800083a: f7ff ff47 bl 80006cc <__NVIC_SetPriorityGrouping> +} + 800083e: bf00 nop + 8000840: 3708 adds r7, #8 + 8000842: 46bd mov sp, r7 + 8000844: bd80 pop {r7, pc} + +08000846 : + * This parameter can be a value between 0 and 15 as described in the table CORTEX_NVIC_Priority_Table + * A lower priority value indicates a higher priority. + * @retval None + */ +void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) +{ + 8000846: b580 push {r7, lr} + 8000848: b086 sub sp, #24 + 800084a: af00 add r7, sp, #0 + 800084c: 4603 mov r3, r0 + 800084e: 60b9 str r1, [r7, #8] + 8000850: 607a str r2, [r7, #4] + 8000852: 73fb strb r3, [r7, #15] + uint32_t prioritygroup = 0x00U; + 8000854: 2300 movs r3, #0 + 8000856: 617b str r3, [r7, #20] + + /* Check the parameters */ + assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); + assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); + + prioritygroup = NVIC_GetPriorityGrouping(); + 8000858: f7ff ff5c bl 8000714 <__NVIC_GetPriorityGrouping> + 800085c: 6178 str r0, [r7, #20] + + NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); + 800085e: 687a ldr r2, [r7, #4] + 8000860: 68b9 ldr r1, [r7, #8] + 8000862: 6978 ldr r0, [r7, #20] + 8000864: f7ff ff8e bl 8000784 + 8000868: 4602 mov r2, r0 + 800086a: f997 300f ldrsb.w r3, [r7, #15] + 800086e: 4611 mov r1, r2 + 8000870: 4618 mov r0, r3 + 8000872: f7ff ff5d bl 8000730 <__NVIC_SetPriority> +} + 8000876: bf00 nop + 8000878: 3718 adds r7, #24 + 800087a: 46bd mov sp, r7 + 800087c: bd80 pop {r7, pc} + +0800087e : + * @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) +{ + 800087e: b580 push {r7, lr} + 8000880: b082 sub sp, #8 + 8000882: af00 add r7, sp, #0 + 8000884: 6078 str r0, [r7, #4] + return SysTick_Config(TicksNumb); + 8000886: 6878 ldr r0, [r7, #4] + 8000888: f7ff ffb0 bl 80007ec + 800088c: 4603 mov r3, r0 +} + 800088e: 4618 mov r0, r3 + 8000890: 3708 adds r7, #8 + 8000892: 46bd mov sp, r7 + 8000894: bd80 pop {r7, pc} + ... + +08000898 : + * @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) +{ + 8000898: b480 push {r7} + 800089a: b087 sub sp, #28 + 800089c: af00 add r7, sp, #0 + 800089e: 6078 str r0, [r7, #4] + 80008a0: 6039 str r1, [r7, #0] + uint32_t position = 0x00u; + 80008a2: 2300 movs r3, #0 + 80008a4: 617b str r3, [r7, #20] + assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); + assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); + assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); + + /* Configure the port pins */ + while (((GPIO_Init->Pin) >> position) != 0x00u) + 80008a6: e14e b.n 8000b46 + { + /* Get current io position */ + iocurrent = (GPIO_Init->Pin) & (1uL << position); + 80008a8: 683b ldr r3, [r7, #0] + 80008aa: 681a ldr r2, [r3, #0] + 80008ac: 2101 movs r1, #1 + 80008ae: 697b ldr r3, [r7, #20] + 80008b0: fa01 f303 lsl.w r3, r1, r3 + 80008b4: 4013 ands r3, r2 + 80008b6: 60fb str r3, [r7, #12] + + if (iocurrent != 0x00u) + 80008b8: 68fb ldr r3, [r7, #12] + 80008ba: 2b00 cmp r3, #0 + 80008bc: f000 8140 beq.w 8000b40 + { + /*--------------------- 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)) + 80008c0: 683b ldr r3, [r7, #0] + 80008c2: 685b ldr r3, [r3, #4] + 80008c4: f003 0303 and.w r3, r3, #3 + 80008c8: 2b01 cmp r3, #1 + 80008ca: d005 beq.n 80008d8 + 80008cc: 683b ldr r3, [r7, #0] + 80008ce: 685b ldr r3, [r3, #4] + 80008d0: f003 0303 and.w r3, r3, #3 + 80008d4: 2b02 cmp r3, #2 + 80008d6: d130 bne.n 800093a + { + /* Check the Speed parameter */ + assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + /* Configure the IO Speed */ + temp = GPIOx->OSPEEDR; + 80008d8: 687b ldr r3, [r7, #4] + 80008da: 689b ldr r3, [r3, #8] + 80008dc: 613b str r3, [r7, #16] + temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2u)); + 80008de: 697b ldr r3, [r7, #20] + 80008e0: 005b lsls r3, r3, #1 + 80008e2: 2203 movs r2, #3 + 80008e4: fa02 f303 lsl.w r3, r2, r3 + 80008e8: 43db mvns r3, r3 + 80008ea: 693a ldr r2, [r7, #16] + 80008ec: 4013 ands r3, r2 + 80008ee: 613b str r3, [r7, #16] + temp |= (GPIO_Init->Speed << (position * 2u)); + 80008f0: 683b ldr r3, [r7, #0] + 80008f2: 68da ldr r2, [r3, #12] + 80008f4: 697b ldr r3, [r7, #20] + 80008f6: 005b lsls r3, r3, #1 + 80008f8: fa02 f303 lsl.w r3, r2, r3 + 80008fc: 693a ldr r2, [r7, #16] + 80008fe: 4313 orrs r3, r2 + 8000900: 613b str r3, [r7, #16] + GPIOx->OSPEEDR = temp; + 8000902: 687b ldr r3, [r7, #4] + 8000904: 693a ldr r2, [r7, #16] + 8000906: 609a str r2, [r3, #8] + + /* Configure the IO Output Type */ + temp = GPIOx->OTYPER; + 8000908: 687b ldr r3, [r7, #4] + 800090a: 685b ldr r3, [r3, #4] + 800090c: 613b str r3, [r7, #16] + temp &= ~(GPIO_OTYPER_OT_0 << position) ; + 800090e: 2201 movs r2, #1 + 8000910: 697b ldr r3, [r7, #20] + 8000912: fa02 f303 lsl.w r3, r2, r3 + 8000916: 43db mvns r3, r3 + 8000918: 693a ldr r2, [r7, #16] + 800091a: 4013 ands r3, r2 + 800091c: 613b str r3, [r7, #16] + temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); + 800091e: 683b ldr r3, [r7, #0] + 8000920: 685b ldr r3, [r3, #4] + 8000922: 091b lsrs r3, r3, #4 + 8000924: f003 0201 and.w r2, r3, #1 + 8000928: 697b ldr r3, [r7, #20] + 800092a: fa02 f303 lsl.w r3, r2, r3 + 800092e: 693a ldr r2, [r7, #16] + 8000930: 4313 orrs r3, r2 + 8000932: 613b str r3, [r7, #16] + GPIOx->OTYPER = temp; + 8000934: 687b ldr r3, [r7, #4] + 8000936: 693a ldr r2, [r7, #16] + 8000938: 605a str r2, [r3, #4] + } + + if((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) + 800093a: 683b ldr r3, [r7, #0] + 800093c: 685b ldr r3, [r3, #4] + 800093e: f003 0303 and.w r3, r3, #3 + 8000942: 2b03 cmp r3, #3 + 8000944: d017 beq.n 8000976 + { + /* 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; + 8000946: 687b ldr r3, [r7, #4] + 8000948: 68db ldr r3, [r3, #12] + 800094a: 613b str r3, [r7, #16] + temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2u)); + 800094c: 697b ldr r3, [r7, #20] + 800094e: 005b lsls r3, r3, #1 + 8000950: 2203 movs r2, #3 + 8000952: fa02 f303 lsl.w r3, r2, r3 + 8000956: 43db mvns r3, r3 + 8000958: 693a ldr r2, [r7, #16] + 800095a: 4013 ands r3, r2 + 800095c: 613b str r3, [r7, #16] + temp |= ((GPIO_Init->Pull) << (position * 2u)); + 800095e: 683b ldr r3, [r7, #0] + 8000960: 689a ldr r2, [r3, #8] + 8000962: 697b ldr r3, [r7, #20] + 8000964: 005b lsls r3, r3, #1 + 8000966: fa02 f303 lsl.w r3, r2, r3 + 800096a: 693a ldr r2, [r7, #16] + 800096c: 4313 orrs r3, r2 + 800096e: 613b str r3, [r7, #16] + GPIOx->PUPDR = temp; + 8000970: 687b ldr r3, [r7, #4] + 8000972: 693a ldr r2, [r7, #16] + 8000974: 60da str r2, [r3, #12] + } + + /*--------------------- GPIO Mode Configuration ------------------------*/ + /* In case of Alternate function mode selection */ + if((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) + 8000976: 683b ldr r3, [r7, #0] + 8000978: 685b ldr r3, [r3, #4] + 800097a: f003 0303 and.w r3, r3, #3 + 800097e: 2b02 cmp r3, #2 + 8000980: d123 bne.n 80009ca + /* 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]; + 8000982: 697b ldr r3, [r7, #20] + 8000984: 08da lsrs r2, r3, #3 + 8000986: 687b ldr r3, [r7, #4] + 8000988: 3208 adds r2, #8 + 800098a: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 800098e: 613b str r3, [r7, #16] + temp &= ~(0xFu << ((position & 0x07u) * 4u)); + 8000990: 697b ldr r3, [r7, #20] + 8000992: f003 0307 and.w r3, r3, #7 + 8000996: 009b lsls r3, r3, #2 + 8000998: 220f movs r2, #15 + 800099a: fa02 f303 lsl.w r3, r2, r3 + 800099e: 43db mvns r3, r3 + 80009a0: 693a ldr r2, [r7, #16] + 80009a2: 4013 ands r3, r2 + 80009a4: 613b str r3, [r7, #16] + temp |= ((GPIO_Init->Alternate) << ((position & 0x07u) * 4u)); + 80009a6: 683b ldr r3, [r7, #0] + 80009a8: 691a ldr r2, [r3, #16] + 80009aa: 697b ldr r3, [r7, #20] + 80009ac: f003 0307 and.w r3, r3, #7 + 80009b0: 009b lsls r3, r3, #2 + 80009b2: fa02 f303 lsl.w r3, r2, r3 + 80009b6: 693a ldr r2, [r7, #16] + 80009b8: 4313 orrs r3, r2 + 80009ba: 613b str r3, [r7, #16] + GPIOx->AFR[position >> 3u] = temp; + 80009bc: 697b ldr r3, [r7, #20] + 80009be: 08da lsrs r2, r3, #3 + 80009c0: 687b ldr r3, [r7, #4] + 80009c2: 3208 adds r2, #8 + 80009c4: 6939 ldr r1, [r7, #16] + 80009c6: f843 1022 str.w r1, [r3, r2, lsl #2] + } + + /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ + temp = GPIOx->MODER; + 80009ca: 687b ldr r3, [r7, #4] + 80009cc: 681b ldr r3, [r3, #0] + 80009ce: 613b str r3, [r7, #16] + temp &= ~(GPIO_MODER_MODER0 << (position * 2u)); + 80009d0: 697b ldr r3, [r7, #20] + 80009d2: 005b lsls r3, r3, #1 + 80009d4: 2203 movs r2, #3 + 80009d6: fa02 f303 lsl.w r3, r2, r3 + 80009da: 43db mvns r3, r3 + 80009dc: 693a ldr r2, [r7, #16] + 80009de: 4013 ands r3, r2 + 80009e0: 613b str r3, [r7, #16] + temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2u)); + 80009e2: 683b ldr r3, [r7, #0] + 80009e4: 685b ldr r3, [r3, #4] + 80009e6: f003 0203 and.w r2, r3, #3 + 80009ea: 697b ldr r3, [r7, #20] + 80009ec: 005b lsls r3, r3, #1 + 80009ee: fa02 f303 lsl.w r3, r2, r3 + 80009f2: 693a ldr r2, [r7, #16] + 80009f4: 4313 orrs r3, r2 + 80009f6: 613b str r3, [r7, #16] + GPIOx->MODER = temp; + 80009f8: 687b ldr r3, [r7, #4] + 80009fa: 693a ldr r2, [r7, #16] + 80009fc: 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) + 80009fe: 683b ldr r3, [r7, #0] + 8000a00: 685b ldr r3, [r3, #4] + 8000a02: f403 3340 and.w r3, r3, #196608 ; 0x30000 + 8000a06: 2b00 cmp r3, #0 + 8000a08: f000 809a beq.w 8000b40 + { + /* Enable SYSCFG Clock */ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + 8000a0c: 4b55 ldr r3, [pc, #340] ; (8000b64 ) + 8000a0e: 699b ldr r3, [r3, #24] + 8000a10: 4a54 ldr r2, [pc, #336] ; (8000b64 ) + 8000a12: f043 0301 orr.w r3, r3, #1 + 8000a16: 6193 str r3, [r2, #24] + 8000a18: 4b52 ldr r3, [pc, #328] ; (8000b64 ) + 8000a1a: 699b ldr r3, [r3, #24] + 8000a1c: f003 0301 and.w r3, r3, #1 + 8000a20: 60bb str r3, [r7, #8] + 8000a22: 68bb ldr r3, [r7, #8] + + temp = SYSCFG->EXTICR[position >> 2u]; + 8000a24: 4a50 ldr r2, [pc, #320] ; (8000b68 ) + 8000a26: 697b ldr r3, [r7, #20] + 8000a28: 089b lsrs r3, r3, #2 + 8000a2a: 3302 adds r3, #2 + 8000a2c: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 8000a30: 613b str r3, [r7, #16] + temp &= ~(0x0FuL << (4u * (position & 0x03u))); + 8000a32: 697b ldr r3, [r7, #20] + 8000a34: f003 0303 and.w r3, r3, #3 + 8000a38: 009b lsls r3, r3, #2 + 8000a3a: 220f movs r2, #15 + 8000a3c: fa02 f303 lsl.w r3, r2, r3 + 8000a40: 43db mvns r3, r3 + 8000a42: 693a ldr r2, [r7, #16] + 8000a44: 4013 ands r3, r2 + 8000a46: 613b str r3, [r7, #16] + temp |= (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u))); + 8000a48: 687b ldr r3, [r7, #4] + 8000a4a: f1b3 4f90 cmp.w r3, #1207959552 ; 0x48000000 + 8000a4e: d013 beq.n 8000a78 + 8000a50: 687b ldr r3, [r7, #4] + 8000a52: 4a46 ldr r2, [pc, #280] ; (8000b6c ) + 8000a54: 4293 cmp r3, r2 + 8000a56: d00d beq.n 8000a74 + 8000a58: 687b ldr r3, [r7, #4] + 8000a5a: 4a45 ldr r2, [pc, #276] ; (8000b70 ) + 8000a5c: 4293 cmp r3, r2 + 8000a5e: d007 beq.n 8000a70 + 8000a60: 687b ldr r3, [r7, #4] + 8000a62: 4a44 ldr r2, [pc, #272] ; (8000b74 ) + 8000a64: 4293 cmp r3, r2 + 8000a66: d101 bne.n 8000a6c + 8000a68: 2303 movs r3, #3 + 8000a6a: e006 b.n 8000a7a + 8000a6c: 2305 movs r3, #5 + 8000a6e: e004 b.n 8000a7a + 8000a70: 2302 movs r3, #2 + 8000a72: e002 b.n 8000a7a + 8000a74: 2301 movs r3, #1 + 8000a76: e000 b.n 8000a7a + 8000a78: 2300 movs r3, #0 + 8000a7a: 697a ldr r2, [r7, #20] + 8000a7c: f002 0203 and.w r2, r2, #3 + 8000a80: 0092 lsls r2, r2, #2 + 8000a82: 4093 lsls r3, r2 + 8000a84: 693a ldr r2, [r7, #16] + 8000a86: 4313 orrs r3, r2 + 8000a88: 613b str r3, [r7, #16] + SYSCFG->EXTICR[position >> 2u] = temp; + 8000a8a: 4937 ldr r1, [pc, #220] ; (8000b68 ) + 8000a8c: 697b ldr r3, [r7, #20] + 8000a8e: 089b lsrs r3, r3, #2 + 8000a90: 3302 adds r3, #2 + 8000a92: 693a ldr r2, [r7, #16] + 8000a94: f841 2023 str.w r2, [r1, r3, lsl #2] + + /* Clear Rising Falling edge configuration */ + temp = EXTI->RTSR; + 8000a98: 4b37 ldr r3, [pc, #220] ; (8000b78 ) + 8000a9a: 689b ldr r3, [r3, #8] + 8000a9c: 613b str r3, [r7, #16] + temp &= ~(iocurrent); + 8000a9e: 68fb ldr r3, [r7, #12] + 8000aa0: 43db mvns r3, r3 + 8000aa2: 693a ldr r2, [r7, #16] + 8000aa4: 4013 ands r3, r2 + 8000aa6: 613b str r3, [r7, #16] + if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u) + 8000aa8: 683b ldr r3, [r7, #0] + 8000aaa: 685b ldr r3, [r3, #4] + 8000aac: f403 1380 and.w r3, r3, #1048576 ; 0x100000 + 8000ab0: 2b00 cmp r3, #0 + 8000ab2: d003 beq.n 8000abc + { + temp |= iocurrent; + 8000ab4: 693a ldr r2, [r7, #16] + 8000ab6: 68fb ldr r3, [r7, #12] + 8000ab8: 4313 orrs r3, r2 + 8000aba: 613b str r3, [r7, #16] + } + EXTI->RTSR = temp; + 8000abc: 4a2e ldr r2, [pc, #184] ; (8000b78 ) + 8000abe: 693b ldr r3, [r7, #16] + 8000ac0: 6093 str r3, [r2, #8] + + temp = EXTI->FTSR; + 8000ac2: 4b2d ldr r3, [pc, #180] ; (8000b78 ) + 8000ac4: 68db ldr r3, [r3, #12] + 8000ac6: 613b str r3, [r7, #16] + temp &= ~(iocurrent); + 8000ac8: 68fb ldr r3, [r7, #12] + 8000aca: 43db mvns r3, r3 + 8000acc: 693a ldr r2, [r7, #16] + 8000ace: 4013 ands r3, r2 + 8000ad0: 613b str r3, [r7, #16] + if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u) + 8000ad2: 683b ldr r3, [r7, #0] + 8000ad4: 685b ldr r3, [r3, #4] + 8000ad6: f403 1300 and.w r3, r3, #2097152 ; 0x200000 + 8000ada: 2b00 cmp r3, #0 + 8000adc: d003 beq.n 8000ae6 + { + temp |= iocurrent; + 8000ade: 693a ldr r2, [r7, #16] + 8000ae0: 68fb ldr r3, [r7, #12] + 8000ae2: 4313 orrs r3, r2 + 8000ae4: 613b str r3, [r7, #16] + } + EXTI->FTSR = temp; + 8000ae6: 4a24 ldr r2, [pc, #144] ; (8000b78 ) + 8000ae8: 693b ldr r3, [r7, #16] + 8000aea: 60d3 str r3, [r2, #12] + + temp = EXTI->EMR; + 8000aec: 4b22 ldr r3, [pc, #136] ; (8000b78 ) + 8000aee: 685b ldr r3, [r3, #4] + 8000af0: 613b str r3, [r7, #16] + temp &= ~(iocurrent); + 8000af2: 68fb ldr r3, [r7, #12] + 8000af4: 43db mvns r3, r3 + 8000af6: 693a ldr r2, [r7, #16] + 8000af8: 4013 ands r3, r2 + 8000afa: 613b str r3, [r7, #16] + if((GPIO_Init->Mode & EXTI_EVT) != 0x00u) + 8000afc: 683b ldr r3, [r7, #0] + 8000afe: 685b ldr r3, [r3, #4] + 8000b00: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8000b04: 2b00 cmp r3, #0 + 8000b06: d003 beq.n 8000b10 + { + temp |= iocurrent; + 8000b08: 693a ldr r2, [r7, #16] + 8000b0a: 68fb ldr r3, [r7, #12] + 8000b0c: 4313 orrs r3, r2 + 8000b0e: 613b str r3, [r7, #16] + } + EXTI->EMR = temp; + 8000b10: 4a19 ldr r2, [pc, #100] ; (8000b78 ) + 8000b12: 693b ldr r3, [r7, #16] + 8000b14: 6053 str r3, [r2, #4] + + /* Clear EXTI line configuration */ + temp = EXTI->IMR; + 8000b16: 4b18 ldr r3, [pc, #96] ; (8000b78 ) + 8000b18: 681b ldr r3, [r3, #0] + 8000b1a: 613b str r3, [r7, #16] + temp &= ~(iocurrent); + 8000b1c: 68fb ldr r3, [r7, #12] + 8000b1e: 43db mvns r3, r3 + 8000b20: 693a ldr r2, [r7, #16] + 8000b22: 4013 ands r3, r2 + 8000b24: 613b str r3, [r7, #16] + if((GPIO_Init->Mode & EXTI_IT) != 0x00u) + 8000b26: 683b ldr r3, [r7, #0] + 8000b28: 685b ldr r3, [r3, #4] + 8000b2a: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8000b2e: 2b00 cmp r3, #0 + 8000b30: d003 beq.n 8000b3a + { + temp |= iocurrent; + 8000b32: 693a ldr r2, [r7, #16] + 8000b34: 68fb ldr r3, [r7, #12] + 8000b36: 4313 orrs r3, r2 + 8000b38: 613b str r3, [r7, #16] + } + EXTI->IMR = temp; + 8000b3a: 4a0f ldr r2, [pc, #60] ; (8000b78 ) + 8000b3c: 693b ldr r3, [r7, #16] + 8000b3e: 6013 str r3, [r2, #0] + } + } + + position++; + 8000b40: 697b ldr r3, [r7, #20] + 8000b42: 3301 adds r3, #1 + 8000b44: 617b str r3, [r7, #20] + while (((GPIO_Init->Pin) >> position) != 0x00u) + 8000b46: 683b ldr r3, [r7, #0] + 8000b48: 681a ldr r2, [r3, #0] + 8000b4a: 697b ldr r3, [r7, #20] + 8000b4c: fa22 f303 lsr.w r3, r2, r3 + 8000b50: 2b00 cmp r3, #0 + 8000b52: f47f aea9 bne.w 80008a8 + } +} + 8000b56: bf00 nop + 8000b58: bf00 nop + 8000b5a: 371c adds r7, #28 + 8000b5c: 46bd mov sp, r7 + 8000b5e: f85d 7b04 ldr.w r7, [sp], #4 + 8000b62: 4770 bx lr + 8000b64: 40021000 .word 0x40021000 + 8000b68: 40010000 .word 0x40010000 + 8000b6c: 48000400 .word 0x48000400 + 8000b70: 48000800 .word 0x48000800 + 8000b74: 48000c00 .word 0x48000c00 + 8000b78: 40010400 .word 0x40010400 + +08000b7c : + * @param GPIO_Pin specifies the port bit to read. + * This parameter can be GPIO_PIN_x where x can be (0..15). + * @retval The input port pin value. + */ +GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) +{ + 8000b7c: b480 push {r7} + 8000b7e: b085 sub sp, #20 + 8000b80: af00 add r7, sp, #0 + 8000b82: 6078 str r0, [r7, #4] + 8000b84: 460b mov r3, r1 + 8000b86: 807b strh r3, [r7, #2] + GPIO_PinState bitstatus; + + /* Check the parameters */ + assert_param(IS_GPIO_PIN(GPIO_Pin)); + + if((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET) + 8000b88: 687b ldr r3, [r7, #4] + 8000b8a: 691a ldr r2, [r3, #16] + 8000b8c: 887b ldrh r3, [r7, #2] + 8000b8e: 4013 ands r3, r2 + 8000b90: 2b00 cmp r3, #0 + 8000b92: d002 beq.n 8000b9a + { + bitstatus = GPIO_PIN_SET; + 8000b94: 2301 movs r3, #1 + 8000b96: 73fb strb r3, [r7, #15] + 8000b98: e001 b.n 8000b9e + } + else + { + bitstatus = GPIO_PIN_RESET; + 8000b9a: 2300 movs r3, #0 + 8000b9c: 73fb strb r3, [r7, #15] + } + return bitstatus; + 8000b9e: 7bfb ldrb r3, [r7, #15] +} + 8000ba0: 4618 mov r0, r3 + 8000ba2: 3714 adds r7, #20 + 8000ba4: 46bd mov sp, r7 + 8000ba6: f85d 7b04 ldr.w r7, [sp], #4 + 8000baa: 4770 bx lr + +08000bac : + * @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) +{ + 8000bac: b480 push {r7} + 8000bae: b083 sub sp, #12 + 8000bb0: af00 add r7, sp, #0 + 8000bb2: 6078 str r0, [r7, #4] + 8000bb4: 460b mov r3, r1 + 8000bb6: 807b strh r3, [r7, #2] + 8000bb8: 4613 mov r3, r2 + 8000bba: 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) + 8000bbc: 787b ldrb r3, [r7, #1] + 8000bbe: 2b00 cmp r3, #0 + 8000bc0: d003 beq.n 8000bca + { + GPIOx->BSRR = (uint32_t)GPIO_Pin; + 8000bc2: 887a ldrh r2, [r7, #2] + 8000bc4: 687b ldr r3, [r7, #4] + 8000bc6: 619a str r2, [r3, #24] + } + else + { + GPIOx->BRR = (uint32_t)GPIO_Pin; + } +} + 8000bc8: e002 b.n 8000bd0 + GPIOx->BRR = (uint32_t)GPIO_Pin; + 8000bca: 887a ldrh r2, [r7, #2] + 8000bcc: 687b ldr r3, [r7, #4] + 8000bce: 629a str r2, [r3, #40] ; 0x28 +} + 8000bd0: bf00 nop + 8000bd2: 370c adds r7, #12 + 8000bd4: 46bd mov sp, r7 + 8000bd6: f85d 7b04 ldr.w r7, [sp], #4 + 8000bda: 4770 bx lr + +08000bdc : + * 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) +{ + 8000bdc: b580 push {r7, lr} + 8000bde: f5ad 7d00 sub.w sp, sp, #512 ; 0x200 + 8000be2: af00 add r7, sp, #0 + 8000be4: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000be8: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000bec: 6018 str r0, [r3, #0] +#if defined(RCC_CFGR_PLLSRC_HSI_PREDIV) + uint32_t pll_config2; +#endif /* RCC_CFGR_PLLSRC_HSI_PREDIV */ + + /* Check Null pointer */ + if(RCC_OscInitStruct == NULL) + 8000bee: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000bf2: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000bf6: 681b ldr r3, [r3, #0] + 8000bf8: 2b00 cmp r3, #0 + 8000bfa: d102 bne.n 8000c02 + { + return HAL_ERROR; + 8000bfc: 2301 movs r3, #1 + 8000bfe: f001 b823 b.w 8001c48 + + /* Check the parameters */ + assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); + + /*------------------------------- HSE Configuration ------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) + 8000c02: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000c06: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000c0a: 681b ldr r3, [r3, #0] + 8000c0c: 681b ldr r3, [r3, #0] + 8000c0e: f003 0301 and.w r3, r3, #1 + 8000c12: 2b00 cmp r3, #0 + 8000c14: f000 817d beq.w 8000f12 + { + /* Check the parameters */ + assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); + + /* When the HSE is used as system clock or clock source for PLL in these cases it is not allowed to be disabled */ + if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE) + 8000c18: 4bbc ldr r3, [pc, #752] ; (8000f0c ) + 8000c1a: 685b ldr r3, [r3, #4] + 8000c1c: f003 030c and.w r3, r3, #12 + 8000c20: 2b04 cmp r3, #4 + 8000c22: d00c beq.n 8000c3e + || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE))) + 8000c24: 4bb9 ldr r3, [pc, #740] ; (8000f0c ) + 8000c26: 685b ldr r3, [r3, #4] + 8000c28: f003 030c and.w r3, r3, #12 + 8000c2c: 2b08 cmp r3, #8 + 8000c2e: d15c bne.n 8000cea + 8000c30: 4bb6 ldr r3, [pc, #728] ; (8000f0c ) + 8000c32: 685b ldr r3, [r3, #4] + 8000c34: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8000c38: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 8000c3c: d155 bne.n 8000cea + 8000c3e: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8000c42: f8c7 31f0 str.w r3, [r7, #496] ; 0x1f0 + 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) ); + 8000c46: f8d7 31f0 ldr.w r3, [r7, #496] ; 0x1f0 + 8000c4a: fa93 f3a3 rbit r3, r3 + 8000c4e: f8c7 31ec str.w r3, [r7, #492] ; 0x1ec + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ +#endif + return result; + 8000c52: f8d7 31ec ldr.w r3, [r7, #492] ; 0x1ec + { + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 8000c56: fab3 f383 clz r3, r3 + 8000c5a: b2db uxtb r3, r3 + 8000c5c: 095b lsrs r3, r3, #5 + 8000c5e: b2db uxtb r3, r3 + 8000c60: f043 0301 orr.w r3, r3, #1 + 8000c64: b2db uxtb r3, r3 + 8000c66: 2b01 cmp r3, #1 + 8000c68: d102 bne.n 8000c70 + 8000c6a: 4ba8 ldr r3, [pc, #672] ; (8000f0c ) + 8000c6c: 681b ldr r3, [r3, #0] + 8000c6e: e015 b.n 8000c9c + 8000c70: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8000c74: f8c7 31e8 str.w r3, [r7, #488] ; 0x1e8 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8000c78: f8d7 31e8 ldr.w r3, [r7, #488] ; 0x1e8 + 8000c7c: fa93 f3a3 rbit r3, r3 + 8000c80: f8c7 31e4 str.w r3, [r7, #484] ; 0x1e4 + 8000c84: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8000c88: f8c7 31e0 str.w r3, [r7, #480] ; 0x1e0 + 8000c8c: f8d7 31e0 ldr.w r3, [r7, #480] ; 0x1e0 + 8000c90: fa93 f3a3 rbit r3, r3 + 8000c94: f8c7 31dc str.w r3, [r7, #476] ; 0x1dc + 8000c98: 4b9c ldr r3, [pc, #624] ; (8000f0c ) + 8000c9a: 6a5b ldr r3, [r3, #36] ; 0x24 + 8000c9c: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8000ca0: f8c7 21d8 str.w r2, [r7, #472] ; 0x1d8 + 8000ca4: f8d7 21d8 ldr.w r2, [r7, #472] ; 0x1d8 + 8000ca8: fa92 f2a2 rbit r2, r2 + 8000cac: f8c7 21d4 str.w r2, [r7, #468] ; 0x1d4 + return result; + 8000cb0: f8d7 21d4 ldr.w r2, [r7, #468] ; 0x1d4 + 8000cb4: fab2 f282 clz r2, r2 + 8000cb8: b2d2 uxtb r2, r2 + 8000cba: f042 0220 orr.w r2, r2, #32 + 8000cbe: b2d2 uxtb r2, r2 + 8000cc0: f002 021f and.w r2, r2, #31 + 8000cc4: 2101 movs r1, #1 + 8000cc6: fa01 f202 lsl.w r2, r1, r2 + 8000cca: 4013 ands r3, r2 + 8000ccc: 2b00 cmp r3, #0 + 8000cce: f000 811f beq.w 8000f10 + 8000cd2: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000cd6: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000cda: 681b ldr r3, [r3, #0] + 8000cdc: 685b ldr r3, [r3, #4] + 8000cde: 2b00 cmp r3, #0 + 8000ce0: f040 8116 bne.w 8000f10 + { + return HAL_ERROR; + 8000ce4: 2301 movs r3, #1 + 8000ce6: f000 bfaf b.w 8001c48 + } + } + else + { + /* Set the new HSE configuration ---------------------------------------*/ + __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); + 8000cea: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000cee: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000cf2: 681b ldr r3, [r3, #0] + 8000cf4: 685b ldr r3, [r3, #4] + 8000cf6: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 8000cfa: d106 bne.n 8000d0a + 8000cfc: 4b83 ldr r3, [pc, #524] ; (8000f0c ) + 8000cfe: 681b ldr r3, [r3, #0] + 8000d00: 4a82 ldr r2, [pc, #520] ; (8000f0c ) + 8000d02: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 8000d06: 6013 str r3, [r2, #0] + 8000d08: e036 b.n 8000d78 + 8000d0a: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000d0e: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000d12: 681b ldr r3, [r3, #0] + 8000d14: 685b ldr r3, [r3, #4] + 8000d16: 2b00 cmp r3, #0 + 8000d18: d10c bne.n 8000d34 + 8000d1a: 4b7c ldr r3, [pc, #496] ; (8000f0c ) + 8000d1c: 681b ldr r3, [r3, #0] + 8000d1e: 4a7b ldr r2, [pc, #492] ; (8000f0c ) + 8000d20: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 8000d24: 6013 str r3, [r2, #0] + 8000d26: 4b79 ldr r3, [pc, #484] ; (8000f0c ) + 8000d28: 681b ldr r3, [r3, #0] + 8000d2a: 4a78 ldr r2, [pc, #480] ; (8000f0c ) + 8000d2c: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 8000d30: 6013 str r3, [r2, #0] + 8000d32: e021 b.n 8000d78 + 8000d34: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000d38: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000d3c: 681b ldr r3, [r3, #0] + 8000d3e: 685b ldr r3, [r3, #4] + 8000d40: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 + 8000d44: d10c bne.n 8000d60 + 8000d46: 4b71 ldr r3, [pc, #452] ; (8000f0c ) + 8000d48: 681b ldr r3, [r3, #0] + 8000d4a: 4a70 ldr r2, [pc, #448] ; (8000f0c ) + 8000d4c: f443 2380 orr.w r3, r3, #262144 ; 0x40000 + 8000d50: 6013 str r3, [r2, #0] + 8000d52: 4b6e ldr r3, [pc, #440] ; (8000f0c ) + 8000d54: 681b ldr r3, [r3, #0] + 8000d56: 4a6d ldr r2, [pc, #436] ; (8000f0c ) + 8000d58: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 8000d5c: 6013 str r3, [r2, #0] + 8000d5e: e00b b.n 8000d78 + 8000d60: 4b6a ldr r3, [pc, #424] ; (8000f0c ) + 8000d62: 681b ldr r3, [r3, #0] + 8000d64: 4a69 ldr r2, [pc, #420] ; (8000f0c ) + 8000d66: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 8000d6a: 6013 str r3, [r2, #0] + 8000d6c: 4b67 ldr r3, [pc, #412] ; (8000f0c ) + 8000d6e: 681b ldr r3, [r3, #0] + 8000d70: 4a66 ldr r2, [pc, #408] ; (8000f0c ) + 8000d72: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 8000d76: 6013 str r3, [r2, #0] + +#if defined(RCC_CFGR_PLLSRC_HSI_DIV2) + /* Configure the HSE predivision factor --------------------------------*/ + __HAL_RCC_HSE_PREDIV_CONFIG(RCC_OscInitStruct->HSEPredivValue); + 8000d78: 4b64 ldr r3, [pc, #400] ; (8000f0c ) + 8000d7a: 6adb ldr r3, [r3, #44] ; 0x2c + 8000d7c: f023 020f bic.w r2, r3, #15 + 8000d80: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000d84: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000d88: 681b ldr r3, [r3, #0] + 8000d8a: 689b ldr r3, [r3, #8] + 8000d8c: 495f ldr r1, [pc, #380] ; (8000f0c ) + 8000d8e: 4313 orrs r3, r2 + 8000d90: 62cb str r3, [r1, #44] ; 0x2c +#endif /* RCC_CFGR_PLLSRC_HSI_DIV2 */ + + /* Check the HSE State */ + if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) + 8000d92: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000d96: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000d9a: 681b ldr r3, [r3, #0] + 8000d9c: 685b ldr r3, [r3, #4] + 8000d9e: 2b00 cmp r3, #0 + 8000da0: d059 beq.n 8000e56 + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000da2: f7ff fc63 bl 800066c + 8000da6: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + /* Wait till HSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 8000daa: e00a b.n 8000dc2 + { + if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) + 8000dac: f7ff fc5e bl 800066c + 8000db0: 4602 mov r2, r0 + 8000db2: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 8000db6: 1ad3 subs r3, r2, r3 + 8000db8: 2b64 cmp r3, #100 ; 0x64 + 8000dba: d902 bls.n 8000dc2 + { + return HAL_TIMEOUT; + 8000dbc: 2303 movs r3, #3 + 8000dbe: f000 bf43 b.w 8001c48 + 8000dc2: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8000dc6: f8c7 31d0 str.w r3, [r7, #464] ; 0x1d0 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8000dca: f8d7 31d0 ldr.w r3, [r7, #464] ; 0x1d0 + 8000dce: fa93 f3a3 rbit r3, r3 + 8000dd2: f8c7 31cc str.w r3, [r7, #460] ; 0x1cc + return result; + 8000dd6: f8d7 31cc ldr.w r3, [r7, #460] ; 0x1cc + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 8000dda: fab3 f383 clz r3, r3 + 8000dde: b2db uxtb r3, r3 + 8000de0: 095b lsrs r3, r3, #5 + 8000de2: b2db uxtb r3, r3 + 8000de4: f043 0301 orr.w r3, r3, #1 + 8000de8: b2db uxtb r3, r3 + 8000dea: 2b01 cmp r3, #1 + 8000dec: d102 bne.n 8000df4 + 8000dee: 4b47 ldr r3, [pc, #284] ; (8000f0c ) + 8000df0: 681b ldr r3, [r3, #0] + 8000df2: e015 b.n 8000e20 + 8000df4: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8000df8: f8c7 31c8 str.w r3, [r7, #456] ; 0x1c8 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8000dfc: f8d7 31c8 ldr.w r3, [r7, #456] ; 0x1c8 + 8000e00: fa93 f3a3 rbit r3, r3 + 8000e04: f8c7 31c4 str.w r3, [r7, #452] ; 0x1c4 + 8000e08: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8000e0c: f8c7 31c0 str.w r3, [r7, #448] ; 0x1c0 + 8000e10: f8d7 31c0 ldr.w r3, [r7, #448] ; 0x1c0 + 8000e14: fa93 f3a3 rbit r3, r3 + 8000e18: f8c7 31bc str.w r3, [r7, #444] ; 0x1bc + 8000e1c: 4b3b ldr r3, [pc, #236] ; (8000f0c ) + 8000e1e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8000e20: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8000e24: f8c7 21b8 str.w r2, [r7, #440] ; 0x1b8 + 8000e28: f8d7 21b8 ldr.w r2, [r7, #440] ; 0x1b8 + 8000e2c: fa92 f2a2 rbit r2, r2 + 8000e30: f8c7 21b4 str.w r2, [r7, #436] ; 0x1b4 + return result; + 8000e34: f8d7 21b4 ldr.w r2, [r7, #436] ; 0x1b4 + 8000e38: fab2 f282 clz r2, r2 + 8000e3c: b2d2 uxtb r2, r2 + 8000e3e: f042 0220 orr.w r2, r2, #32 + 8000e42: b2d2 uxtb r2, r2 + 8000e44: f002 021f and.w r2, r2, #31 + 8000e48: 2101 movs r1, #1 + 8000e4a: fa01 f202 lsl.w r2, r1, r2 + 8000e4e: 4013 ands r3, r2 + 8000e50: 2b00 cmp r3, #0 + 8000e52: d0ab beq.n 8000dac + 8000e54: e05d b.n 8000f12 + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000e56: f7ff fc09 bl 800066c + 8000e5a: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + /* Wait till HSE is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) + 8000e5e: e00a b.n 8000e76 + { + if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) + 8000e60: f7ff fc04 bl 800066c + 8000e64: 4602 mov r2, r0 + 8000e66: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 8000e6a: 1ad3 subs r3, r2, r3 + 8000e6c: 2b64 cmp r3, #100 ; 0x64 + 8000e6e: d902 bls.n 8000e76 + { + return HAL_TIMEOUT; + 8000e70: 2303 movs r3, #3 + 8000e72: f000 bee9 b.w 8001c48 + 8000e76: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8000e7a: f8c7 31b0 str.w r3, [r7, #432] ; 0x1b0 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8000e7e: f8d7 31b0 ldr.w r3, [r7, #432] ; 0x1b0 + 8000e82: fa93 f3a3 rbit r3, r3 + 8000e86: f8c7 31ac str.w r3, [r7, #428] ; 0x1ac + return result; + 8000e8a: f8d7 31ac ldr.w r3, [r7, #428] ; 0x1ac + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) + 8000e8e: fab3 f383 clz r3, r3 + 8000e92: b2db uxtb r3, r3 + 8000e94: 095b lsrs r3, r3, #5 + 8000e96: b2db uxtb r3, r3 + 8000e98: f043 0301 orr.w r3, r3, #1 + 8000e9c: b2db uxtb r3, r3 + 8000e9e: 2b01 cmp r3, #1 + 8000ea0: d102 bne.n 8000ea8 + 8000ea2: 4b1a ldr r3, [pc, #104] ; (8000f0c ) + 8000ea4: 681b ldr r3, [r3, #0] + 8000ea6: e015 b.n 8000ed4 + 8000ea8: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8000eac: f8c7 31a8 str.w r3, [r7, #424] ; 0x1a8 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8000eb0: f8d7 31a8 ldr.w r3, [r7, #424] ; 0x1a8 + 8000eb4: fa93 f3a3 rbit r3, r3 + 8000eb8: f8c7 31a4 str.w r3, [r7, #420] ; 0x1a4 + 8000ebc: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8000ec0: f8c7 31a0 str.w r3, [r7, #416] ; 0x1a0 + 8000ec4: f8d7 31a0 ldr.w r3, [r7, #416] ; 0x1a0 + 8000ec8: fa93 f3a3 rbit r3, r3 + 8000ecc: f8c7 319c str.w r3, [r7, #412] ; 0x19c + 8000ed0: 4b0e ldr r3, [pc, #56] ; (8000f0c ) + 8000ed2: 6a5b ldr r3, [r3, #36] ; 0x24 + 8000ed4: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8000ed8: f8c7 2198 str.w r2, [r7, #408] ; 0x198 + 8000edc: f8d7 2198 ldr.w r2, [r7, #408] ; 0x198 + 8000ee0: fa92 f2a2 rbit r2, r2 + 8000ee4: f8c7 2194 str.w r2, [r7, #404] ; 0x194 + return result; + 8000ee8: f8d7 2194 ldr.w r2, [r7, #404] ; 0x194 + 8000eec: fab2 f282 clz r2, r2 + 8000ef0: b2d2 uxtb r2, r2 + 8000ef2: f042 0220 orr.w r2, r2, #32 + 8000ef6: b2d2 uxtb r2, r2 + 8000ef8: f002 021f and.w r2, r2, #31 + 8000efc: 2101 movs r1, #1 + 8000efe: fa01 f202 lsl.w r2, r1, r2 + 8000f02: 4013 ands r3, r2 + 8000f04: 2b00 cmp r3, #0 + 8000f06: d1ab bne.n 8000e60 + 8000f08: e003 b.n 8000f12 + 8000f0a: bf00 nop + 8000f0c: 40021000 .word 0x40021000 + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 8000f10: bf00 nop + } + } + } + } + /*----------------------------- HSI Configuration --------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) + 8000f12: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000f16: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000f1a: 681b ldr r3, [r3, #0] + 8000f1c: 681b ldr r3, [r3, #0] + 8000f1e: f003 0302 and.w r3, r3, #2 + 8000f22: 2b00 cmp r3, #0 + 8000f24: f000 817d beq.w 8001222 + /* Check the parameters */ + assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); + assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); + + /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ + if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI) + 8000f28: 4ba6 ldr r3, [pc, #664] ; (80011c4 ) + 8000f2a: 685b ldr r3, [r3, #4] + 8000f2c: f003 030c and.w r3, r3, #12 + 8000f30: 2b00 cmp r3, #0 + 8000f32: d00b beq.n 8000f4c + || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI))) + 8000f34: 4ba3 ldr r3, [pc, #652] ; (80011c4 ) + 8000f36: 685b ldr r3, [r3, #4] + 8000f38: f003 030c and.w r3, r3, #12 + 8000f3c: 2b08 cmp r3, #8 + 8000f3e: d172 bne.n 8001026 + 8000f40: 4ba0 ldr r3, [pc, #640] ; (80011c4 ) + 8000f42: 685b ldr r3, [r3, #4] + 8000f44: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8000f48: 2b00 cmp r3, #0 + 8000f4a: d16c bne.n 8001026 + 8000f4c: 2302 movs r3, #2 + 8000f4e: f8c7 3190 str.w r3, [r7, #400] ; 0x190 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8000f52: f8d7 3190 ldr.w r3, [r7, #400] ; 0x190 + 8000f56: fa93 f3a3 rbit r3, r3 + 8000f5a: f8c7 318c str.w r3, [r7, #396] ; 0x18c + return result; + 8000f5e: f8d7 318c ldr.w r3, [r7, #396] ; 0x18c + { + /* When HSI is used as system clock it will not disabled */ + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) + 8000f62: fab3 f383 clz r3, r3 + 8000f66: b2db uxtb r3, r3 + 8000f68: 095b lsrs r3, r3, #5 + 8000f6a: b2db uxtb r3, r3 + 8000f6c: f043 0301 orr.w r3, r3, #1 + 8000f70: b2db uxtb r3, r3 + 8000f72: 2b01 cmp r3, #1 + 8000f74: d102 bne.n 8000f7c + 8000f76: 4b93 ldr r3, [pc, #588] ; (80011c4 ) + 8000f78: 681b ldr r3, [r3, #0] + 8000f7a: e013 b.n 8000fa4 + 8000f7c: 2302 movs r3, #2 + 8000f7e: f8c7 3188 str.w r3, [r7, #392] ; 0x188 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8000f82: f8d7 3188 ldr.w r3, [r7, #392] ; 0x188 + 8000f86: fa93 f3a3 rbit r3, r3 + 8000f8a: f8c7 3184 str.w r3, [r7, #388] ; 0x184 + 8000f8e: 2302 movs r3, #2 + 8000f90: f8c7 3180 str.w r3, [r7, #384] ; 0x180 + 8000f94: f8d7 3180 ldr.w r3, [r7, #384] ; 0x180 + 8000f98: fa93 f3a3 rbit r3, r3 + 8000f9c: f8c7 317c str.w r3, [r7, #380] ; 0x17c + 8000fa0: 4b88 ldr r3, [pc, #544] ; (80011c4 ) + 8000fa2: 6a5b ldr r3, [r3, #36] ; 0x24 + 8000fa4: 2202 movs r2, #2 + 8000fa6: f8c7 2178 str.w r2, [r7, #376] ; 0x178 + 8000faa: f8d7 2178 ldr.w r2, [r7, #376] ; 0x178 + 8000fae: fa92 f2a2 rbit r2, r2 + 8000fb2: f8c7 2174 str.w r2, [r7, #372] ; 0x174 + return result; + 8000fb6: f8d7 2174 ldr.w r2, [r7, #372] ; 0x174 + 8000fba: fab2 f282 clz r2, r2 + 8000fbe: b2d2 uxtb r2, r2 + 8000fc0: f042 0220 orr.w r2, r2, #32 + 8000fc4: b2d2 uxtb r2, r2 + 8000fc6: f002 021f and.w r2, r2, #31 + 8000fca: 2101 movs r1, #1 + 8000fcc: fa01 f202 lsl.w r2, r1, r2 + 8000fd0: 4013 ands r3, r2 + 8000fd2: 2b00 cmp r3, #0 + 8000fd4: d00a beq.n 8000fec + 8000fd6: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000fda: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000fde: 681b ldr r3, [r3, #0] + 8000fe0: 691b ldr r3, [r3, #16] + 8000fe2: 2b01 cmp r3, #1 + 8000fe4: d002 beq.n 8000fec + { + return HAL_ERROR; + 8000fe6: 2301 movs r3, #1 + 8000fe8: f000 be2e b.w 8001c48 + } + /* Otherwise, just the calibration is allowed */ + else + { + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 8000fec: 4b75 ldr r3, [pc, #468] ; (80011c4 ) + 8000fee: 681b ldr r3, [r3, #0] + 8000ff0: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 8000ff4: f507 7300 add.w r3, r7, #512 ; 0x200 + 8000ff8: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8000ffc: 681b ldr r3, [r3, #0] + 8000ffe: 695b ldr r3, [r3, #20] + 8001000: 21f8 movs r1, #248 ; 0xf8 + 8001002: f8c7 1170 str.w r1, [r7, #368] ; 0x170 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001006: f8d7 1170 ldr.w r1, [r7, #368] ; 0x170 + 800100a: fa91 f1a1 rbit r1, r1 + 800100e: f8c7 116c str.w r1, [r7, #364] ; 0x16c + return result; + 8001012: f8d7 116c ldr.w r1, [r7, #364] ; 0x16c + 8001016: fab1 f181 clz r1, r1 + 800101a: b2c9 uxtb r1, r1 + 800101c: 408b lsls r3, r1 + 800101e: 4969 ldr r1, [pc, #420] ; (80011c4 ) + 8001020: 4313 orrs r3, r2 + 8001022: 600b str r3, [r1, #0] + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) + 8001024: e0fd b.n 8001222 + } + } + else + { + /* Check the HSI State */ + if(RCC_OscInitStruct->HSIState != RCC_HSI_OFF) + 8001026: f507 7300 add.w r3, r7, #512 ; 0x200 + 800102a: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 800102e: 681b ldr r3, [r3, #0] + 8001030: 691b ldr r3, [r3, #16] + 8001032: 2b00 cmp r3, #0 + 8001034: f000 8088 beq.w 8001148 + 8001038: 2301 movs r3, #1 + 800103a: f8c7 3168 str.w r3, [r7, #360] ; 0x168 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 800103e: f8d7 3168 ldr.w r3, [r7, #360] ; 0x168 + 8001042: fa93 f3a3 rbit r3, r3 + 8001046: f8c7 3164 str.w r3, [r7, #356] ; 0x164 + return result; + 800104a: f8d7 3164 ldr.w r3, [r7, #356] ; 0x164 + { + /* Enable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_ENABLE(); + 800104e: fab3 f383 clz r3, r3 + 8001052: b2db uxtb r3, r3 + 8001054: f103 5384 add.w r3, r3, #276824064 ; 0x10800000 + 8001058: f503 1384 add.w r3, r3, #1081344 ; 0x108000 + 800105c: 009b lsls r3, r3, #2 + 800105e: 461a mov r2, r3 + 8001060: 2301 movs r3, #1 + 8001062: 6013 str r3, [r2, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001064: f7ff fb02 bl 800066c + 8001068: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + /* Wait till HSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 800106c: e00a b.n 8001084 + { + if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) + 800106e: f7ff fafd bl 800066c + 8001072: 4602 mov r2, r0 + 8001074: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 8001078: 1ad3 subs r3, r2, r3 + 800107a: 2b02 cmp r3, #2 + 800107c: d902 bls.n 8001084 + { + return HAL_TIMEOUT; + 800107e: 2303 movs r3, #3 + 8001080: f000 bde2 b.w 8001c48 + 8001084: 2302 movs r3, #2 + 8001086: f8c7 3160 str.w r3, [r7, #352] ; 0x160 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 800108a: f8d7 3160 ldr.w r3, [r7, #352] ; 0x160 + 800108e: fa93 f3a3 rbit r3, r3 + 8001092: f8c7 315c str.w r3, [r7, #348] ; 0x15c + return result; + 8001096: f8d7 315c ldr.w r3, [r7, #348] ; 0x15c + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 800109a: fab3 f383 clz r3, r3 + 800109e: b2db uxtb r3, r3 + 80010a0: 095b lsrs r3, r3, #5 + 80010a2: b2db uxtb r3, r3 + 80010a4: f043 0301 orr.w r3, r3, #1 + 80010a8: b2db uxtb r3, r3 + 80010aa: 2b01 cmp r3, #1 + 80010ac: d102 bne.n 80010b4 + 80010ae: 4b45 ldr r3, [pc, #276] ; (80011c4 ) + 80010b0: 681b ldr r3, [r3, #0] + 80010b2: e013 b.n 80010dc + 80010b4: 2302 movs r3, #2 + 80010b6: f8c7 3158 str.w r3, [r7, #344] ; 0x158 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80010ba: f8d7 3158 ldr.w r3, [r7, #344] ; 0x158 + 80010be: fa93 f3a3 rbit r3, r3 + 80010c2: f8c7 3154 str.w r3, [r7, #340] ; 0x154 + 80010c6: 2302 movs r3, #2 + 80010c8: f8c7 3150 str.w r3, [r7, #336] ; 0x150 + 80010cc: f8d7 3150 ldr.w r3, [r7, #336] ; 0x150 + 80010d0: fa93 f3a3 rbit r3, r3 + 80010d4: f8c7 314c str.w r3, [r7, #332] ; 0x14c + 80010d8: 4b3a ldr r3, [pc, #232] ; (80011c4 ) + 80010da: 6a5b ldr r3, [r3, #36] ; 0x24 + 80010dc: 2202 movs r2, #2 + 80010de: f8c7 2148 str.w r2, [r7, #328] ; 0x148 + 80010e2: f8d7 2148 ldr.w r2, [r7, #328] ; 0x148 + 80010e6: fa92 f2a2 rbit r2, r2 + 80010ea: f8c7 2144 str.w r2, [r7, #324] ; 0x144 + return result; + 80010ee: f8d7 2144 ldr.w r2, [r7, #324] ; 0x144 + 80010f2: fab2 f282 clz r2, r2 + 80010f6: b2d2 uxtb r2, r2 + 80010f8: f042 0220 orr.w r2, r2, #32 + 80010fc: b2d2 uxtb r2, r2 + 80010fe: f002 021f and.w r2, r2, #31 + 8001102: 2101 movs r1, #1 + 8001104: fa01 f202 lsl.w r2, r1, r2 + 8001108: 4013 ands r3, r2 + 800110a: 2b00 cmp r3, #0 + 800110c: d0af beq.n 800106e + } + } + + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 800110e: 4b2d ldr r3, [pc, #180] ; (80011c4 ) + 8001110: 681b ldr r3, [r3, #0] + 8001112: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 8001116: f507 7300 add.w r3, r7, #512 ; 0x200 + 800111a: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 800111e: 681b ldr r3, [r3, #0] + 8001120: 695b ldr r3, [r3, #20] + 8001122: 21f8 movs r1, #248 ; 0xf8 + 8001124: f8c7 1140 str.w r1, [r7, #320] ; 0x140 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001128: f8d7 1140 ldr.w r1, [r7, #320] ; 0x140 + 800112c: fa91 f1a1 rbit r1, r1 + 8001130: f8c7 113c str.w r1, [r7, #316] ; 0x13c + return result; + 8001134: f8d7 113c ldr.w r1, [r7, #316] ; 0x13c + 8001138: fab1 f181 clz r1, r1 + 800113c: b2c9 uxtb r1, r1 + 800113e: 408b lsls r3, r1 + 8001140: 4920 ldr r1, [pc, #128] ; (80011c4 ) + 8001142: 4313 orrs r3, r2 + 8001144: 600b str r3, [r1, #0] + 8001146: e06c b.n 8001222 + 8001148: 2301 movs r3, #1 + 800114a: f8c7 3138 str.w r3, [r7, #312] ; 0x138 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 800114e: f8d7 3138 ldr.w r3, [r7, #312] ; 0x138 + 8001152: fa93 f3a3 rbit r3, r3 + 8001156: f8c7 3134 str.w r3, [r7, #308] ; 0x134 + return result; + 800115a: f8d7 3134 ldr.w r3, [r7, #308] ; 0x134 + } + else + { + /* Disable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_DISABLE(); + 800115e: fab3 f383 clz r3, r3 + 8001162: b2db uxtb r3, r3 + 8001164: f103 5384 add.w r3, r3, #276824064 ; 0x10800000 + 8001168: f503 1384 add.w r3, r3, #1081344 ; 0x108000 + 800116c: 009b lsls r3, r3, #2 + 800116e: 461a mov r2, r3 + 8001170: 2300 movs r3, #0 + 8001172: 6013 str r3, [r2, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001174: f7ff fa7a bl 800066c + 8001178: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + /* Wait till HSI is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) + 800117c: e00a b.n 8001194 + { + if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) + 800117e: f7ff fa75 bl 800066c + 8001182: 4602 mov r2, r0 + 8001184: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 8001188: 1ad3 subs r3, r2, r3 + 800118a: 2b02 cmp r3, #2 + 800118c: d902 bls.n 8001194 + { + return HAL_TIMEOUT; + 800118e: 2303 movs r3, #3 + 8001190: f000 bd5a b.w 8001c48 + 8001194: 2302 movs r3, #2 + 8001196: f8c7 3130 str.w r3, [r7, #304] ; 0x130 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 800119a: f8d7 3130 ldr.w r3, [r7, #304] ; 0x130 + 800119e: fa93 f3a3 rbit r3, r3 + 80011a2: f8c7 312c str.w r3, [r7, #300] ; 0x12c + return result; + 80011a6: f8d7 312c ldr.w r3, [r7, #300] ; 0x12c + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) + 80011aa: fab3 f383 clz r3, r3 + 80011ae: b2db uxtb r3, r3 + 80011b0: 095b lsrs r3, r3, #5 + 80011b2: b2db uxtb r3, r3 + 80011b4: f043 0301 orr.w r3, r3, #1 + 80011b8: b2db uxtb r3, r3 + 80011ba: 2b01 cmp r3, #1 + 80011bc: d104 bne.n 80011c8 + 80011be: 4b01 ldr r3, [pc, #4] ; (80011c4 ) + 80011c0: 681b ldr r3, [r3, #0] + 80011c2: e015 b.n 80011f0 + 80011c4: 40021000 .word 0x40021000 + 80011c8: 2302 movs r3, #2 + 80011ca: f8c7 3128 str.w r3, [r7, #296] ; 0x128 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80011ce: f8d7 3128 ldr.w r3, [r7, #296] ; 0x128 + 80011d2: fa93 f3a3 rbit r3, r3 + 80011d6: f8c7 3124 str.w r3, [r7, #292] ; 0x124 + 80011da: 2302 movs r3, #2 + 80011dc: f8c7 3120 str.w r3, [r7, #288] ; 0x120 + 80011e0: f8d7 3120 ldr.w r3, [r7, #288] ; 0x120 + 80011e4: fa93 f3a3 rbit r3, r3 + 80011e8: f8c7 311c str.w r3, [r7, #284] ; 0x11c + 80011ec: 4bc8 ldr r3, [pc, #800] ; (8001510 ) + 80011ee: 6a5b ldr r3, [r3, #36] ; 0x24 + 80011f0: 2202 movs r2, #2 + 80011f2: f8c7 2118 str.w r2, [r7, #280] ; 0x118 + 80011f6: f8d7 2118 ldr.w r2, [r7, #280] ; 0x118 + 80011fa: fa92 f2a2 rbit r2, r2 + 80011fe: f8c7 2114 str.w r2, [r7, #276] ; 0x114 + return result; + 8001202: f8d7 2114 ldr.w r2, [r7, #276] ; 0x114 + 8001206: fab2 f282 clz r2, r2 + 800120a: b2d2 uxtb r2, r2 + 800120c: f042 0220 orr.w r2, r2, #32 + 8001210: b2d2 uxtb r2, r2 + 8001212: f002 021f and.w r2, r2, #31 + 8001216: 2101 movs r1, #1 + 8001218: fa01 f202 lsl.w r2, r1, r2 + 800121c: 4013 ands r3, r2 + 800121e: 2b00 cmp r3, #0 + 8001220: d1ad bne.n 800117e + } + } + } + } + /*------------------------------ LSI Configuration -------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) + 8001222: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001226: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 800122a: 681b ldr r3, [r3, #0] + 800122c: 681b ldr r3, [r3, #0] + 800122e: f003 0308 and.w r3, r3, #8 + 8001232: 2b00 cmp r3, #0 + 8001234: f000 8110 beq.w 8001458 + { + /* Check the parameters */ + assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); + + /* Check the LSI State */ + if(RCC_OscInitStruct->LSIState != RCC_LSI_OFF) + 8001238: f507 7300 add.w r3, r7, #512 ; 0x200 + 800123c: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8001240: 681b ldr r3, [r3, #0] + 8001242: 699b ldr r3, [r3, #24] + 8001244: 2b00 cmp r3, #0 + 8001246: d079 beq.n 800133c + 8001248: 2301 movs r3, #1 + 800124a: f8c7 3110 str.w r3, [r7, #272] ; 0x110 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 800124e: f8d7 3110 ldr.w r3, [r7, #272] ; 0x110 + 8001252: fa93 f3a3 rbit r3, r3 + 8001256: f8c7 310c str.w r3, [r7, #268] ; 0x10c + return result; + 800125a: f8d7 310c ldr.w r3, [r7, #268] ; 0x10c + { + /* Enable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_ENABLE(); + 800125e: fab3 f383 clz r3, r3 + 8001262: b2db uxtb r3, r3 + 8001264: 461a mov r2, r3 + 8001266: 4bab ldr r3, [pc, #684] ; (8001514 ) + 8001268: 4413 add r3, r2 + 800126a: 009b lsls r3, r3, #2 + 800126c: 461a mov r2, r3 + 800126e: 2301 movs r3, #1 + 8001270: 6013 str r3, [r2, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001272: f7ff f9fb bl 800066c + 8001276: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + /* Wait till LSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) + 800127a: e00a b.n 8001292 + { + if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) + 800127c: f7ff f9f6 bl 800066c + 8001280: 4602 mov r2, r0 + 8001282: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 8001286: 1ad3 subs r3, r2, r3 + 8001288: 2b02 cmp r3, #2 + 800128a: d902 bls.n 8001292 + { + return HAL_TIMEOUT; + 800128c: 2303 movs r3, #3 + 800128e: f000 bcdb b.w 8001c48 + 8001292: 2302 movs r3, #2 + 8001294: f8c7 3108 str.w r3, [r7, #264] ; 0x108 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001298: f8d7 3108 ldr.w r3, [r7, #264] ; 0x108 + 800129c: fa93 f3a3 rbit r3, r3 + 80012a0: f8c7 3104 str.w r3, [r7, #260] ; 0x104 + 80012a4: f507 7300 add.w r3, r7, #512 ; 0x200 + 80012a8: f5a3 7380 sub.w r3, r3, #256 ; 0x100 + 80012ac: 2202 movs r2, #2 + 80012ae: 601a str r2, [r3, #0] + 80012b0: f507 7300 add.w r3, r7, #512 ; 0x200 + 80012b4: f5a3 7380 sub.w r3, r3, #256 ; 0x100 + 80012b8: 681b ldr r3, [r3, #0] + 80012ba: fa93 f2a3 rbit r2, r3 + 80012be: f507 7300 add.w r3, r7, #512 ; 0x200 + 80012c2: f5a3 7382 sub.w r3, r3, #260 ; 0x104 + 80012c6: 601a str r2, [r3, #0] + 80012c8: f507 7300 add.w r3, r7, #512 ; 0x200 + 80012cc: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 80012d0: 2202 movs r2, #2 + 80012d2: 601a str r2, [r3, #0] + 80012d4: f507 7300 add.w r3, r7, #512 ; 0x200 + 80012d8: f5a3 7384 sub.w r3, r3, #264 ; 0x108 + 80012dc: 681b ldr r3, [r3, #0] + 80012de: fa93 f2a3 rbit r2, r3 + 80012e2: f507 7300 add.w r3, r7, #512 ; 0x200 + 80012e6: f5a3 7386 sub.w r3, r3, #268 ; 0x10c + 80012ea: 601a str r2, [r3, #0] + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) + 80012ec: 4b88 ldr r3, [pc, #544] ; (8001510 ) + 80012ee: 6a5a ldr r2, [r3, #36] ; 0x24 + 80012f0: f507 7300 add.w r3, r7, #512 ; 0x200 + 80012f4: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 80012f8: 2102 movs r1, #2 + 80012fa: 6019 str r1, [r3, #0] + 80012fc: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001300: f5a3 7388 sub.w r3, r3, #272 ; 0x110 + 8001304: 681b ldr r3, [r3, #0] + 8001306: fa93 f1a3 rbit r1, r3 + 800130a: f507 7300 add.w r3, r7, #512 ; 0x200 + 800130e: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 8001312: 6019 str r1, [r3, #0] + return result; + 8001314: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001318: f5a3 738a sub.w r3, r3, #276 ; 0x114 + 800131c: 681b ldr r3, [r3, #0] + 800131e: fab3 f383 clz r3, r3 + 8001322: b2db uxtb r3, r3 + 8001324: f043 0360 orr.w r3, r3, #96 ; 0x60 + 8001328: b2db uxtb r3, r3 + 800132a: f003 031f and.w r3, r3, #31 + 800132e: 2101 movs r1, #1 + 8001330: fa01 f303 lsl.w r3, r1, r3 + 8001334: 4013 ands r3, r2 + 8001336: 2b00 cmp r3, #0 + 8001338: d0a0 beq.n 800127c + 800133a: e08d b.n 8001458 + 800133c: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001340: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8001344: 2201 movs r2, #1 + 8001346: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001348: f507 7300 add.w r3, r7, #512 ; 0x200 + 800134c: f5a3 738c sub.w r3, r3, #280 ; 0x118 + 8001350: 681b ldr r3, [r3, #0] + 8001352: fa93 f2a3 rbit r2, r3 + 8001356: f507 7300 add.w r3, r7, #512 ; 0x200 + 800135a: f5a3 738e sub.w r3, r3, #284 ; 0x11c + 800135e: 601a str r2, [r3, #0] + return result; + 8001360: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001364: f5a3 738e sub.w r3, r3, #284 ; 0x11c + 8001368: 681b ldr r3, [r3, #0] + } + } + else + { + /* Disable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_DISABLE(); + 800136a: fab3 f383 clz r3, r3 + 800136e: b2db uxtb r3, r3 + 8001370: 461a mov r2, r3 + 8001372: 4b68 ldr r3, [pc, #416] ; (8001514 ) + 8001374: 4413 add r3, r2 + 8001376: 009b lsls r3, r3, #2 + 8001378: 461a mov r2, r3 + 800137a: 2300 movs r3, #0 + 800137c: 6013 str r3, [r2, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800137e: f7ff f975 bl 800066c + 8001382: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + /* Wait till LSI is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) + 8001386: e00a b.n 800139e + { + if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) + 8001388: f7ff f970 bl 800066c + 800138c: 4602 mov r2, r0 + 800138e: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 8001392: 1ad3 subs r3, r2, r3 + 8001394: 2b02 cmp r3, #2 + 8001396: d902 bls.n 800139e + { + return HAL_TIMEOUT; + 8001398: 2303 movs r3, #3 + 800139a: f000 bc55 b.w 8001c48 + 800139e: f507 7300 add.w r3, r7, #512 ; 0x200 + 80013a2: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 80013a6: 2202 movs r2, #2 + 80013a8: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80013aa: f507 7300 add.w r3, r7, #512 ; 0x200 + 80013ae: f5a3 7390 sub.w r3, r3, #288 ; 0x120 + 80013b2: 681b ldr r3, [r3, #0] + 80013b4: fa93 f2a3 rbit r2, r3 + 80013b8: f507 7300 add.w r3, r7, #512 ; 0x200 + 80013bc: f5a3 7392 sub.w r3, r3, #292 ; 0x124 + 80013c0: 601a str r2, [r3, #0] + 80013c2: f507 7300 add.w r3, r7, #512 ; 0x200 + 80013c6: f5a3 7394 sub.w r3, r3, #296 ; 0x128 + 80013ca: 2202 movs r2, #2 + 80013cc: 601a str r2, [r3, #0] + 80013ce: f507 7300 add.w r3, r7, #512 ; 0x200 + 80013d2: f5a3 7394 sub.w r3, r3, #296 ; 0x128 + 80013d6: 681b ldr r3, [r3, #0] + 80013d8: fa93 f2a3 rbit r2, r3 + 80013dc: f507 7300 add.w r3, r7, #512 ; 0x200 + 80013e0: f5a3 7396 sub.w r3, r3, #300 ; 0x12c + 80013e4: 601a str r2, [r3, #0] + 80013e6: f507 7300 add.w r3, r7, #512 ; 0x200 + 80013ea: f5a3 7398 sub.w r3, r3, #304 ; 0x130 + 80013ee: 2202 movs r2, #2 + 80013f0: 601a str r2, [r3, #0] + 80013f2: f507 7300 add.w r3, r7, #512 ; 0x200 + 80013f6: f5a3 7398 sub.w r3, r3, #304 ; 0x130 + 80013fa: 681b ldr r3, [r3, #0] + 80013fc: fa93 f2a3 rbit r2, r3 + 8001400: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001404: f5a3 739a sub.w r3, r3, #308 ; 0x134 + 8001408: 601a str r2, [r3, #0] + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) + 800140a: 4b41 ldr r3, [pc, #260] ; (8001510 ) + 800140c: 6a5a ldr r2, [r3, #36] ; 0x24 + 800140e: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001412: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 8001416: 2102 movs r1, #2 + 8001418: 6019 str r1, [r3, #0] + 800141a: f507 7300 add.w r3, r7, #512 ; 0x200 + 800141e: f5a3 739c sub.w r3, r3, #312 ; 0x138 + 8001422: 681b ldr r3, [r3, #0] + 8001424: fa93 f1a3 rbit r1, r3 + 8001428: f507 7300 add.w r3, r7, #512 ; 0x200 + 800142c: f5a3 739e sub.w r3, r3, #316 ; 0x13c + 8001430: 6019 str r1, [r3, #0] + return result; + 8001432: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001436: f5a3 739e sub.w r3, r3, #316 ; 0x13c + 800143a: 681b ldr r3, [r3, #0] + 800143c: fab3 f383 clz r3, r3 + 8001440: b2db uxtb r3, r3 + 8001442: f043 0360 orr.w r3, r3, #96 ; 0x60 + 8001446: b2db uxtb r3, r3 + 8001448: f003 031f and.w r3, r3, #31 + 800144c: 2101 movs r1, #1 + 800144e: fa01 f303 lsl.w r3, r1, r3 + 8001452: 4013 ands r3, r2 + 8001454: 2b00 cmp r3, #0 + 8001456: d197 bne.n 8001388 + } + } + } + } + /*------------------------------ LSE Configuration -------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) + 8001458: f507 7300 add.w r3, r7, #512 ; 0x200 + 800145c: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8001460: 681b ldr r3, [r3, #0] + 8001462: 681b ldr r3, [r3, #0] + 8001464: f003 0304 and.w r3, r3, #4 + 8001468: 2b00 cmp r3, #0 + 800146a: f000 81a1 beq.w 80017b0 + { + FlagStatus pwrclkchanged = RESET; + 800146e: 2300 movs r3, #0 + 8001470: f887 31ff strb.w r3, [r7, #511] ; 0x1ff + /* Check the parameters */ + assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); + + /* Update LSE configuration in Backup Domain control register */ + /* Requires to enable write access to Backup Domain of necessary */ + if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + 8001474: 4b26 ldr r3, [pc, #152] ; (8001510 ) + 8001476: 69db ldr r3, [r3, #28] + 8001478: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 800147c: 2b00 cmp r3, #0 + 800147e: d116 bne.n 80014ae + { + __HAL_RCC_PWR_CLK_ENABLE(); + 8001480: 4b23 ldr r3, [pc, #140] ; (8001510 ) + 8001482: 69db ldr r3, [r3, #28] + 8001484: 4a22 ldr r2, [pc, #136] ; (8001510 ) + 8001486: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 800148a: 61d3 str r3, [r2, #28] + 800148c: 4b20 ldr r3, [pc, #128] ; (8001510 ) + 800148e: 69db ldr r3, [r3, #28] + 8001490: f003 5280 and.w r2, r3, #268435456 ; 0x10000000 + 8001494: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001498: f5a3 73fc sub.w r3, r3, #504 ; 0x1f8 + 800149c: 601a str r2, [r3, #0] + 800149e: f507 7300 add.w r3, r7, #512 ; 0x200 + 80014a2: f5a3 73fc sub.w r3, r3, #504 ; 0x1f8 + 80014a6: 681b ldr r3, [r3, #0] + pwrclkchanged = SET; + 80014a8: 2301 movs r3, #1 + 80014aa: f887 31ff strb.w r3, [r7, #511] ; 0x1ff + } + + if(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 80014ae: 4b1a ldr r3, [pc, #104] ; (8001518 ) + 80014b0: 681b ldr r3, [r3, #0] + 80014b2: f403 7380 and.w r3, r3, #256 ; 0x100 + 80014b6: 2b00 cmp r3, #0 + 80014b8: d11a bne.n 80014f0 + { + /* Enable write access to Backup domain */ + SET_BIT(PWR->CR, PWR_CR_DBP); + 80014ba: 4b17 ldr r3, [pc, #92] ; (8001518 ) + 80014bc: 681b ldr r3, [r3, #0] + 80014be: 4a16 ldr r2, [pc, #88] ; (8001518 ) + 80014c0: f443 7380 orr.w r3, r3, #256 ; 0x100 + 80014c4: 6013 str r3, [r2, #0] + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + 80014c6: f7ff f8d1 bl 800066c + 80014ca: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 80014ce: e009 b.n 80014e4 + { + if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + 80014d0: f7ff f8cc bl 800066c + 80014d4: 4602 mov r2, r0 + 80014d6: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 80014da: 1ad3 subs r3, r2, r3 + 80014dc: 2b64 cmp r3, #100 ; 0x64 + 80014de: d901 bls.n 80014e4 + { + return HAL_TIMEOUT; + 80014e0: 2303 movs r3, #3 + 80014e2: e3b1 b.n 8001c48 + while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 80014e4: 4b0c ldr r3, [pc, #48] ; (8001518 ) + 80014e6: 681b ldr r3, [r3, #0] + 80014e8: f403 7380 and.w r3, r3, #256 ; 0x100 + 80014ec: 2b00 cmp r3, #0 + 80014ee: d0ef beq.n 80014d0 + } + } + } + + /* Set the new LSE configuration -----------------------------------------*/ + __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); + 80014f0: f507 7300 add.w r3, r7, #512 ; 0x200 + 80014f4: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 80014f8: 681b ldr r3, [r3, #0] + 80014fa: 68db ldr r3, [r3, #12] + 80014fc: 2b01 cmp r3, #1 + 80014fe: d10d bne.n 800151c + 8001500: 4b03 ldr r3, [pc, #12] ; (8001510 ) + 8001502: 6a1b ldr r3, [r3, #32] + 8001504: 4a02 ldr r2, [pc, #8] ; (8001510 ) + 8001506: f043 0301 orr.w r3, r3, #1 + 800150a: 6213 str r3, [r2, #32] + 800150c: e03c b.n 8001588 + 800150e: bf00 nop + 8001510: 40021000 .word 0x40021000 + 8001514: 10908120 .word 0x10908120 + 8001518: 40007000 .word 0x40007000 + 800151c: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001520: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8001524: 681b ldr r3, [r3, #0] + 8001526: 68db ldr r3, [r3, #12] + 8001528: 2b00 cmp r3, #0 + 800152a: d10c bne.n 8001546 + 800152c: 4bc1 ldr r3, [pc, #772] ; (8001834 ) + 800152e: 6a1b ldr r3, [r3, #32] + 8001530: 4ac0 ldr r2, [pc, #768] ; (8001834 ) + 8001532: f023 0301 bic.w r3, r3, #1 + 8001536: 6213 str r3, [r2, #32] + 8001538: 4bbe ldr r3, [pc, #760] ; (8001834 ) + 800153a: 6a1b ldr r3, [r3, #32] + 800153c: 4abd ldr r2, [pc, #756] ; (8001834 ) + 800153e: f023 0304 bic.w r3, r3, #4 + 8001542: 6213 str r3, [r2, #32] + 8001544: e020 b.n 8001588 + 8001546: f507 7300 add.w r3, r7, #512 ; 0x200 + 800154a: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 800154e: 681b ldr r3, [r3, #0] + 8001550: 68db ldr r3, [r3, #12] + 8001552: 2b05 cmp r3, #5 + 8001554: d10c bne.n 8001570 + 8001556: 4bb7 ldr r3, [pc, #732] ; (8001834 ) + 8001558: 6a1b ldr r3, [r3, #32] + 800155a: 4ab6 ldr r2, [pc, #728] ; (8001834 ) + 800155c: f043 0304 orr.w r3, r3, #4 + 8001560: 6213 str r3, [r2, #32] + 8001562: 4bb4 ldr r3, [pc, #720] ; (8001834 ) + 8001564: 6a1b ldr r3, [r3, #32] + 8001566: 4ab3 ldr r2, [pc, #716] ; (8001834 ) + 8001568: f043 0301 orr.w r3, r3, #1 + 800156c: 6213 str r3, [r2, #32] + 800156e: e00b b.n 8001588 + 8001570: 4bb0 ldr r3, [pc, #704] ; (8001834 ) + 8001572: 6a1b ldr r3, [r3, #32] + 8001574: 4aaf ldr r2, [pc, #700] ; (8001834 ) + 8001576: f023 0301 bic.w r3, r3, #1 + 800157a: 6213 str r3, [r2, #32] + 800157c: 4bad ldr r3, [pc, #692] ; (8001834 ) + 800157e: 6a1b ldr r3, [r3, #32] + 8001580: 4aac ldr r2, [pc, #688] ; (8001834 ) + 8001582: f023 0304 bic.w r3, r3, #4 + 8001586: 6213 str r3, [r2, #32] + /* Check the LSE State */ + if(RCC_OscInitStruct->LSEState != RCC_LSE_OFF) + 8001588: f507 7300 add.w r3, r7, #512 ; 0x200 + 800158c: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8001590: 681b ldr r3, [r3, #0] + 8001592: 68db ldr r3, [r3, #12] + 8001594: 2b00 cmp r3, #0 + 8001596: f000 8081 beq.w 800169c + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800159a: f7ff f867 bl 800066c + 800159e: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + /* Wait till LSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + 80015a2: e00b b.n 80015bc + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + 80015a4: f7ff f862 bl 800066c + 80015a8: 4602 mov r2, r0 + 80015aa: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 80015ae: 1ad3 subs r3, r2, r3 + 80015b0: f241 3288 movw r2, #5000 ; 0x1388 + 80015b4: 4293 cmp r3, r2 + 80015b6: d901 bls.n 80015bc + { + return HAL_TIMEOUT; + 80015b8: 2303 movs r3, #3 + 80015ba: e345 b.n 8001c48 + 80015bc: f507 7300 add.w r3, r7, #512 ; 0x200 + 80015c0: f5a3 73a0 sub.w r3, r3, #320 ; 0x140 + 80015c4: 2202 movs r2, #2 + 80015c6: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80015c8: f507 7300 add.w r3, r7, #512 ; 0x200 + 80015cc: f5a3 73a0 sub.w r3, r3, #320 ; 0x140 + 80015d0: 681b ldr r3, [r3, #0] + 80015d2: fa93 f2a3 rbit r2, r3 + 80015d6: f507 7300 add.w r3, r7, #512 ; 0x200 + 80015da: f5a3 73a2 sub.w r3, r3, #324 ; 0x144 + 80015de: 601a str r2, [r3, #0] + 80015e0: f507 7300 add.w r3, r7, #512 ; 0x200 + 80015e4: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 80015e8: 2202 movs r2, #2 + 80015ea: 601a str r2, [r3, #0] + 80015ec: f507 7300 add.w r3, r7, #512 ; 0x200 + 80015f0: f5a3 73a4 sub.w r3, r3, #328 ; 0x148 + 80015f4: 681b ldr r3, [r3, #0] + 80015f6: fa93 f2a3 rbit r2, r3 + 80015fa: f507 7300 add.w r3, r7, #512 ; 0x200 + 80015fe: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 8001602: 601a str r2, [r3, #0] + return result; + 8001604: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001608: f5a3 73a6 sub.w r3, r3, #332 ; 0x14c + 800160c: 681b ldr r3, [r3, #0] + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + 800160e: fab3 f383 clz r3, r3 + 8001612: b2db uxtb r3, r3 + 8001614: 095b lsrs r3, r3, #5 + 8001616: b2db uxtb r3, r3 + 8001618: f043 0302 orr.w r3, r3, #2 + 800161c: b2db uxtb r3, r3 + 800161e: 2b02 cmp r3, #2 + 8001620: d102 bne.n 8001628 + 8001622: 4b84 ldr r3, [pc, #528] ; (8001834 ) + 8001624: 6a1b ldr r3, [r3, #32] + 8001626: e013 b.n 8001650 + 8001628: f507 7300 add.w r3, r7, #512 ; 0x200 + 800162c: f5a3 73a8 sub.w r3, r3, #336 ; 0x150 + 8001630: 2202 movs r2, #2 + 8001632: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001634: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001638: f5a3 73a8 sub.w r3, r3, #336 ; 0x150 + 800163c: 681b ldr r3, [r3, #0] + 800163e: fa93 f2a3 rbit r2, r3 + 8001642: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001646: f5a3 73aa sub.w r3, r3, #340 ; 0x154 + 800164a: 601a str r2, [r3, #0] + 800164c: 4b79 ldr r3, [pc, #484] ; (8001834 ) + 800164e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8001650: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001654: f5a2 72ac sub.w r2, r2, #344 ; 0x158 + 8001658: 2102 movs r1, #2 + 800165a: 6011 str r1, [r2, #0] + 800165c: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001660: f5a2 72ac sub.w r2, r2, #344 ; 0x158 + 8001664: 6812 ldr r2, [r2, #0] + 8001666: fa92 f1a2 rbit r1, r2 + 800166a: f507 7200 add.w r2, r7, #512 ; 0x200 + 800166e: f5a2 72ae sub.w r2, r2, #348 ; 0x15c + 8001672: 6011 str r1, [r2, #0] + return result; + 8001674: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001678: f5a2 72ae sub.w r2, r2, #348 ; 0x15c + 800167c: 6812 ldr r2, [r2, #0] + 800167e: fab2 f282 clz r2, r2 + 8001682: b2d2 uxtb r2, r2 + 8001684: f042 0240 orr.w r2, r2, #64 ; 0x40 + 8001688: b2d2 uxtb r2, r2 + 800168a: f002 021f and.w r2, r2, #31 + 800168e: 2101 movs r1, #1 + 8001690: fa01 f202 lsl.w r2, r1, r2 + 8001694: 4013 ands r3, r2 + 8001696: 2b00 cmp r3, #0 + 8001698: d084 beq.n 80015a4 + 800169a: e07f b.n 800179c + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800169c: f7fe ffe6 bl 800066c + 80016a0: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + /* Wait till LSE is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) + 80016a4: e00b b.n 80016be + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + 80016a6: f7fe ffe1 bl 800066c + 80016aa: 4602 mov r2, r0 + 80016ac: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 80016b0: 1ad3 subs r3, r2, r3 + 80016b2: f241 3288 movw r2, #5000 ; 0x1388 + 80016b6: 4293 cmp r3, r2 + 80016b8: d901 bls.n 80016be + { + return HAL_TIMEOUT; + 80016ba: 2303 movs r3, #3 + 80016bc: e2c4 b.n 8001c48 + 80016be: f507 7300 add.w r3, r7, #512 ; 0x200 + 80016c2: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 80016c6: 2202 movs r2, #2 + 80016c8: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80016ca: f507 7300 add.w r3, r7, #512 ; 0x200 + 80016ce: f5a3 73b0 sub.w r3, r3, #352 ; 0x160 + 80016d2: 681b ldr r3, [r3, #0] + 80016d4: fa93 f2a3 rbit r2, r3 + 80016d8: f507 7300 add.w r3, r7, #512 ; 0x200 + 80016dc: f5a3 73b2 sub.w r3, r3, #356 ; 0x164 + 80016e0: 601a str r2, [r3, #0] + 80016e2: f507 7300 add.w r3, r7, #512 ; 0x200 + 80016e6: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 80016ea: 2202 movs r2, #2 + 80016ec: 601a str r2, [r3, #0] + 80016ee: f507 7300 add.w r3, r7, #512 ; 0x200 + 80016f2: f5a3 73b4 sub.w r3, r3, #360 ; 0x168 + 80016f6: 681b ldr r3, [r3, #0] + 80016f8: fa93 f2a3 rbit r2, r3 + 80016fc: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001700: f5a3 73b6 sub.w r3, r3, #364 ; 0x16c + 8001704: 601a str r2, [r3, #0] + return result; + 8001706: f507 7300 add.w r3, r7, #512 ; 0x200 + 800170a: f5a3 73b6 sub.w r3, r3, #364 ; 0x16c + 800170e: 681b ldr r3, [r3, #0] + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) + 8001710: fab3 f383 clz r3, r3 + 8001714: b2db uxtb r3, r3 + 8001716: 095b lsrs r3, r3, #5 + 8001718: b2db uxtb r3, r3 + 800171a: f043 0302 orr.w r3, r3, #2 + 800171e: b2db uxtb r3, r3 + 8001720: 2b02 cmp r3, #2 + 8001722: d102 bne.n 800172a + 8001724: 4b43 ldr r3, [pc, #268] ; (8001834 ) + 8001726: 6a1b ldr r3, [r3, #32] + 8001728: e013 b.n 8001752 + 800172a: f507 7300 add.w r3, r7, #512 ; 0x200 + 800172e: f5a3 73b8 sub.w r3, r3, #368 ; 0x170 + 8001732: 2202 movs r2, #2 + 8001734: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001736: f507 7300 add.w r3, r7, #512 ; 0x200 + 800173a: f5a3 73b8 sub.w r3, r3, #368 ; 0x170 + 800173e: 681b ldr r3, [r3, #0] + 8001740: fa93 f2a3 rbit r2, r3 + 8001744: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001748: f5a3 73ba sub.w r3, r3, #372 ; 0x174 + 800174c: 601a str r2, [r3, #0] + 800174e: 4b39 ldr r3, [pc, #228] ; (8001834 ) + 8001750: 6a5b ldr r3, [r3, #36] ; 0x24 + 8001752: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001756: f5a2 72bc sub.w r2, r2, #376 ; 0x178 + 800175a: 2102 movs r1, #2 + 800175c: 6011 str r1, [r2, #0] + 800175e: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001762: f5a2 72bc sub.w r2, r2, #376 ; 0x178 + 8001766: 6812 ldr r2, [r2, #0] + 8001768: fa92 f1a2 rbit r1, r2 + 800176c: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001770: f5a2 72be sub.w r2, r2, #380 ; 0x17c + 8001774: 6011 str r1, [r2, #0] + return result; + 8001776: f507 7200 add.w r2, r7, #512 ; 0x200 + 800177a: f5a2 72be sub.w r2, r2, #380 ; 0x17c + 800177e: 6812 ldr r2, [r2, #0] + 8001780: fab2 f282 clz r2, r2 + 8001784: b2d2 uxtb r2, r2 + 8001786: f042 0240 orr.w r2, r2, #64 ; 0x40 + 800178a: b2d2 uxtb r2, r2 + 800178c: f002 021f and.w r2, r2, #31 + 8001790: 2101 movs r1, #1 + 8001792: fa01 f202 lsl.w r2, r1, r2 + 8001796: 4013 ands r3, r2 + 8001798: 2b00 cmp r3, #0 + 800179a: d184 bne.n 80016a6 + } + } + } + + /* Require to disable power clock if necessary */ + if(pwrclkchanged == SET) + 800179c: f897 31ff ldrb.w r3, [r7, #511] ; 0x1ff + 80017a0: 2b01 cmp r3, #1 + 80017a2: d105 bne.n 80017b0 + { + __HAL_RCC_PWR_CLK_DISABLE(); + 80017a4: 4b23 ldr r3, [pc, #140] ; (8001834 ) + 80017a6: 69db ldr r3, [r3, #28] + 80017a8: 4a22 ldr r2, [pc, #136] ; (8001834 ) + 80017aa: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 + 80017ae: 61d3 str r3, [r2, #28] + } + + /*-------------------------------- PLL Configuration -----------------------*/ + /* Check the parameters */ + assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); + if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) + 80017b0: f507 7300 add.w r3, r7, #512 ; 0x200 + 80017b4: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 80017b8: 681b ldr r3, [r3, #0] + 80017ba: 69db ldr r3, [r3, #28] + 80017bc: 2b00 cmp r3, #0 + 80017be: f000 8242 beq.w 8001c46 + { + /* Check if the PLL is used as system clock or not */ + if(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) + 80017c2: 4b1c ldr r3, [pc, #112] ; (8001834 ) + 80017c4: 685b ldr r3, [r3, #4] + 80017c6: f003 030c and.w r3, r3, #12 + 80017ca: 2b08 cmp r3, #8 + 80017cc: f000 8213 beq.w 8001bf6 + { + if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) + 80017d0: f507 7300 add.w r3, r7, #512 ; 0x200 + 80017d4: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 80017d8: 681b ldr r3, [r3, #0] + 80017da: 69db ldr r3, [r3, #28] + 80017dc: 2b02 cmp r3, #2 + 80017de: f040 8162 bne.w 8001aa6 + 80017e2: f507 7300 add.w r3, r7, #512 ; 0x200 + 80017e6: f5a3 73c0 sub.w r3, r3, #384 ; 0x180 + 80017ea: f04f 7280 mov.w r2, #16777216 ; 0x1000000 + 80017ee: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80017f0: f507 7300 add.w r3, r7, #512 ; 0x200 + 80017f4: f5a3 73c0 sub.w r3, r3, #384 ; 0x180 + 80017f8: 681b ldr r3, [r3, #0] + 80017fa: fa93 f2a3 rbit r2, r3 + 80017fe: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001802: f5a3 73c2 sub.w r3, r3, #388 ; 0x184 + 8001806: 601a str r2, [r3, #0] + return result; + 8001808: f507 7300 add.w r3, r7, #512 ; 0x200 + 800180c: f5a3 73c2 sub.w r3, r3, #388 ; 0x184 + 8001810: 681b ldr r3, [r3, #0] +#if defined(RCC_CFGR_PLLSRC_HSI_PREDIV) + assert_param(IS_RCC_PREDIV(RCC_OscInitStruct->PLL.PREDIV)); +#endif + + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 8001812: fab3 f383 clz r3, r3 + 8001816: b2db uxtb r3, r3 + 8001818: f103 5384 add.w r3, r3, #276824064 ; 0x10800000 + 800181c: f503 1384 add.w r3, r3, #1081344 ; 0x108000 + 8001820: 009b lsls r3, r3, #2 + 8001822: 461a mov r2, r3 + 8001824: 2300 movs r3, #0 + 8001826: 6013 str r3, [r2, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001828: f7fe ff20 bl 800066c + 800182c: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + /* Wait till PLL is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8001830: e00c b.n 800184c + 8001832: bf00 nop + 8001834: 40021000 .word 0x40021000 + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 8001838: f7fe ff18 bl 800066c + 800183c: 4602 mov r2, r0 + 800183e: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 8001842: 1ad3 subs r3, r2, r3 + 8001844: 2b02 cmp r3, #2 + 8001846: d901 bls.n 800184c + { + return HAL_TIMEOUT; + 8001848: 2303 movs r3, #3 + 800184a: e1fd b.n 8001c48 + 800184c: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001850: f5a3 73c4 sub.w r3, r3, #392 ; 0x188 + 8001854: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 8001858: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 800185a: f507 7300 add.w r3, r7, #512 ; 0x200 + 800185e: f5a3 73c4 sub.w r3, r3, #392 ; 0x188 + 8001862: 681b ldr r3, [r3, #0] + 8001864: fa93 f2a3 rbit r2, r3 + 8001868: f507 7300 add.w r3, r7, #512 ; 0x200 + 800186c: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c + 8001870: 601a str r2, [r3, #0] + return result; + 8001872: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001876: f5a3 73c6 sub.w r3, r3, #396 ; 0x18c + 800187a: 681b ldr r3, [r3, #0] + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 800187c: fab3 f383 clz r3, r3 + 8001880: b2db uxtb r3, r3 + 8001882: 095b lsrs r3, r3, #5 + 8001884: b2db uxtb r3, r3 + 8001886: f043 0301 orr.w r3, r3, #1 + 800188a: b2db uxtb r3, r3 + 800188c: 2b01 cmp r3, #1 + 800188e: d102 bne.n 8001896 + 8001890: 4bb0 ldr r3, [pc, #704] ; (8001b54 ) + 8001892: 681b ldr r3, [r3, #0] + 8001894: e027 b.n 80018e6 + 8001896: f507 7300 add.w r3, r7, #512 ; 0x200 + 800189a: f5a3 73c8 sub.w r3, r3, #400 ; 0x190 + 800189e: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 80018a2: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80018a4: f507 7300 add.w r3, r7, #512 ; 0x200 + 80018a8: f5a3 73c8 sub.w r3, r3, #400 ; 0x190 + 80018ac: 681b ldr r3, [r3, #0] + 80018ae: fa93 f2a3 rbit r2, r3 + 80018b2: f507 7300 add.w r3, r7, #512 ; 0x200 + 80018b6: f5a3 73ca sub.w r3, r3, #404 ; 0x194 + 80018ba: 601a str r2, [r3, #0] + 80018bc: f507 7300 add.w r3, r7, #512 ; 0x200 + 80018c0: f5a3 73cc sub.w r3, r3, #408 ; 0x198 + 80018c4: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 80018c8: 601a str r2, [r3, #0] + 80018ca: f507 7300 add.w r3, r7, #512 ; 0x200 + 80018ce: f5a3 73cc sub.w r3, r3, #408 ; 0x198 + 80018d2: 681b ldr r3, [r3, #0] + 80018d4: fa93 f2a3 rbit r2, r3 + 80018d8: f507 7300 add.w r3, r7, #512 ; 0x200 + 80018dc: f5a3 73ce sub.w r3, r3, #412 ; 0x19c + 80018e0: 601a str r2, [r3, #0] + 80018e2: 4b9c ldr r3, [pc, #624] ; (8001b54 ) + 80018e4: 6a5b ldr r3, [r3, #36] ; 0x24 + 80018e6: f507 7200 add.w r2, r7, #512 ; 0x200 + 80018ea: f5a2 72d0 sub.w r2, r2, #416 ; 0x1a0 + 80018ee: f04f 7100 mov.w r1, #33554432 ; 0x2000000 + 80018f2: 6011 str r1, [r2, #0] + 80018f4: f507 7200 add.w r2, r7, #512 ; 0x200 + 80018f8: f5a2 72d0 sub.w r2, r2, #416 ; 0x1a0 + 80018fc: 6812 ldr r2, [r2, #0] + 80018fe: fa92 f1a2 rbit r1, r2 + 8001902: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001906: f5a2 72d2 sub.w r2, r2, #420 ; 0x1a4 + 800190a: 6011 str r1, [r2, #0] + return result; + 800190c: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001910: f5a2 72d2 sub.w r2, r2, #420 ; 0x1a4 + 8001914: 6812 ldr r2, [r2, #0] + 8001916: fab2 f282 clz r2, r2 + 800191a: b2d2 uxtb r2, r2 + 800191c: f042 0220 orr.w r2, r2, #32 + 8001920: b2d2 uxtb r2, r2 + 8001922: f002 021f and.w r2, r2, #31 + 8001926: 2101 movs r1, #1 + 8001928: fa01 f202 lsl.w r2, r1, r2 + 800192c: 4013 ands r3, r2 + 800192e: 2b00 cmp r3, #0 + 8001930: d182 bne.n 8001838 + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + RCC_OscInitStruct->PLL.PREDIV, + RCC_OscInitStruct->PLL.PLLMUL); +#else + /* Configure the main PLL clock source and multiplication factor. */ + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + 8001932: 4b88 ldr r3, [pc, #544] ; (8001b54 ) + 8001934: 685b ldr r3, [r3, #4] + 8001936: f423 1274 bic.w r2, r3, #3997696 ; 0x3d0000 + 800193a: f507 7300 add.w r3, r7, #512 ; 0x200 + 800193e: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8001942: 681b ldr r3, [r3, #0] + 8001944: 6a59 ldr r1, [r3, #36] ; 0x24 + 8001946: f507 7300 add.w r3, r7, #512 ; 0x200 + 800194a: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 800194e: 681b ldr r3, [r3, #0] + 8001950: 6a1b ldr r3, [r3, #32] + 8001952: 430b orrs r3, r1 + 8001954: 497f ldr r1, [pc, #508] ; (8001b54 ) + 8001956: 4313 orrs r3, r2 + 8001958: 604b str r3, [r1, #4] + 800195a: f507 7300 add.w r3, r7, #512 ; 0x200 + 800195e: f5a3 73d4 sub.w r3, r3, #424 ; 0x1a8 + 8001962: f04f 7280 mov.w r2, #16777216 ; 0x1000000 + 8001966: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001968: f507 7300 add.w r3, r7, #512 ; 0x200 + 800196c: f5a3 73d4 sub.w r3, r3, #424 ; 0x1a8 + 8001970: 681b ldr r3, [r3, #0] + 8001972: fa93 f2a3 rbit r2, r3 + 8001976: f507 7300 add.w r3, r7, #512 ; 0x200 + 800197a: f5a3 73d6 sub.w r3, r3, #428 ; 0x1ac + 800197e: 601a str r2, [r3, #0] + return result; + 8001980: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001984: f5a3 73d6 sub.w r3, r3, #428 ; 0x1ac + 8001988: 681b ldr r3, [r3, #0] + RCC_OscInitStruct->PLL.PLLMUL); +#endif /* RCC_CFGR_PLLSRC_HSI_PREDIV */ + /* Enable the main PLL. */ + __HAL_RCC_PLL_ENABLE(); + 800198a: fab3 f383 clz r3, r3 + 800198e: b2db uxtb r3, r3 + 8001990: f103 5384 add.w r3, r3, #276824064 ; 0x10800000 + 8001994: f503 1384 add.w r3, r3, #1081344 ; 0x108000 + 8001998: 009b lsls r3, r3, #2 + 800199a: 461a mov r2, r3 + 800199c: 2301 movs r3, #1 + 800199e: 6013 str r3, [r2, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80019a0: f7fe fe64 bl 800066c + 80019a4: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + /* Wait till PLL is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 80019a8: e009 b.n 80019be + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 80019aa: f7fe fe5f bl 800066c + 80019ae: 4602 mov r2, r0 + 80019b0: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 80019b4: 1ad3 subs r3, r2, r3 + 80019b6: 2b02 cmp r3, #2 + 80019b8: d901 bls.n 80019be + { + return HAL_TIMEOUT; + 80019ba: 2303 movs r3, #3 + 80019bc: e144 b.n 8001c48 + 80019be: f507 7300 add.w r3, r7, #512 ; 0x200 + 80019c2: f5a3 73d8 sub.w r3, r3, #432 ; 0x1b0 + 80019c6: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 80019ca: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 80019cc: f507 7300 add.w r3, r7, #512 ; 0x200 + 80019d0: f5a3 73d8 sub.w r3, r3, #432 ; 0x1b0 + 80019d4: 681b ldr r3, [r3, #0] + 80019d6: fa93 f2a3 rbit r2, r3 + 80019da: f507 7300 add.w r3, r7, #512 ; 0x200 + 80019de: f5a3 73da sub.w r3, r3, #436 ; 0x1b4 + 80019e2: 601a str r2, [r3, #0] + return result; + 80019e4: f507 7300 add.w r3, r7, #512 ; 0x200 + 80019e8: f5a3 73da sub.w r3, r3, #436 ; 0x1b4 + 80019ec: 681b ldr r3, [r3, #0] + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 80019ee: fab3 f383 clz r3, r3 + 80019f2: b2db uxtb r3, r3 + 80019f4: 095b lsrs r3, r3, #5 + 80019f6: b2db uxtb r3, r3 + 80019f8: f043 0301 orr.w r3, r3, #1 + 80019fc: b2db uxtb r3, r3 + 80019fe: 2b01 cmp r3, #1 + 8001a00: d102 bne.n 8001a08 + 8001a02: 4b54 ldr r3, [pc, #336] ; (8001b54 ) + 8001a04: 681b ldr r3, [r3, #0] + 8001a06: e027 b.n 8001a58 + 8001a08: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001a0c: f5a3 73dc sub.w r3, r3, #440 ; 0x1b8 + 8001a10: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 8001a14: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001a16: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001a1a: f5a3 73dc sub.w r3, r3, #440 ; 0x1b8 + 8001a1e: 681b ldr r3, [r3, #0] + 8001a20: fa93 f2a3 rbit r2, r3 + 8001a24: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001a28: f5a3 73de sub.w r3, r3, #444 ; 0x1bc + 8001a2c: 601a str r2, [r3, #0] + 8001a2e: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001a32: f5a3 73e0 sub.w r3, r3, #448 ; 0x1c0 + 8001a36: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 8001a3a: 601a str r2, [r3, #0] + 8001a3c: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001a40: f5a3 73e0 sub.w r3, r3, #448 ; 0x1c0 + 8001a44: 681b ldr r3, [r3, #0] + 8001a46: fa93 f2a3 rbit r2, r3 + 8001a4a: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001a4e: f5a3 73e2 sub.w r3, r3, #452 ; 0x1c4 + 8001a52: 601a str r2, [r3, #0] + 8001a54: 4b3f ldr r3, [pc, #252] ; (8001b54 ) + 8001a56: 6a5b ldr r3, [r3, #36] ; 0x24 + 8001a58: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001a5c: f5a2 72e4 sub.w r2, r2, #456 ; 0x1c8 + 8001a60: f04f 7100 mov.w r1, #33554432 ; 0x2000000 + 8001a64: 6011 str r1, [r2, #0] + 8001a66: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001a6a: f5a2 72e4 sub.w r2, r2, #456 ; 0x1c8 + 8001a6e: 6812 ldr r2, [r2, #0] + 8001a70: fa92 f1a2 rbit r1, r2 + 8001a74: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001a78: f5a2 72e6 sub.w r2, r2, #460 ; 0x1cc + 8001a7c: 6011 str r1, [r2, #0] + return result; + 8001a7e: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001a82: f5a2 72e6 sub.w r2, r2, #460 ; 0x1cc + 8001a86: 6812 ldr r2, [r2, #0] + 8001a88: fab2 f282 clz r2, r2 + 8001a8c: b2d2 uxtb r2, r2 + 8001a8e: f042 0220 orr.w r2, r2, #32 + 8001a92: b2d2 uxtb r2, r2 + 8001a94: f002 021f and.w r2, r2, #31 + 8001a98: 2101 movs r1, #1 + 8001a9a: fa01 f202 lsl.w r2, r1, r2 + 8001a9e: 4013 ands r3, r2 + 8001aa0: 2b00 cmp r3, #0 + 8001aa2: d082 beq.n 80019aa + 8001aa4: e0cf b.n 8001c46 + 8001aa6: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001aaa: f5a3 73e8 sub.w r3, r3, #464 ; 0x1d0 + 8001aae: f04f 7280 mov.w r2, #16777216 ; 0x1000000 + 8001ab2: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001ab4: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001ab8: f5a3 73e8 sub.w r3, r3, #464 ; 0x1d0 + 8001abc: 681b ldr r3, [r3, #0] + 8001abe: fa93 f2a3 rbit r2, r3 + 8001ac2: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001ac6: f5a3 73ea sub.w r3, r3, #468 ; 0x1d4 + 8001aca: 601a str r2, [r3, #0] + return result; + 8001acc: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001ad0: f5a3 73ea sub.w r3, r3, #468 ; 0x1d4 + 8001ad4: 681b ldr r3, [r3, #0] + } + } + else + { + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 8001ad6: fab3 f383 clz r3, r3 + 8001ada: b2db uxtb r3, r3 + 8001adc: f103 5384 add.w r3, r3, #276824064 ; 0x10800000 + 8001ae0: f503 1384 add.w r3, r3, #1081344 ; 0x108000 + 8001ae4: 009b lsls r3, r3, #2 + 8001ae6: 461a mov r2, r3 + 8001ae8: 2300 movs r3, #0 + 8001aea: 6013 str r3, [r2, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001aec: f7fe fdbe bl 800066c + 8001af0: f8c7 01f8 str.w r0, [r7, #504] ; 0x1f8 + + /* Wait till PLL is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8001af4: e009 b.n 8001b0a + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 8001af6: f7fe fdb9 bl 800066c + 8001afa: 4602 mov r2, r0 + 8001afc: f8d7 31f8 ldr.w r3, [r7, #504] ; 0x1f8 + 8001b00: 1ad3 subs r3, r2, r3 + 8001b02: 2b02 cmp r3, #2 + 8001b04: d901 bls.n 8001b0a + { + return HAL_TIMEOUT; + 8001b06: 2303 movs r3, #3 + 8001b08: e09e b.n 8001c48 + 8001b0a: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001b0e: f5a3 73ec sub.w r3, r3, #472 ; 0x1d8 + 8001b12: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 8001b16: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001b18: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001b1c: f5a3 73ec sub.w r3, r3, #472 ; 0x1d8 + 8001b20: 681b ldr r3, [r3, #0] + 8001b22: fa93 f2a3 rbit r2, r3 + 8001b26: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001b2a: f5a3 73ee sub.w r3, r3, #476 ; 0x1dc + 8001b2e: 601a str r2, [r3, #0] + return result; + 8001b30: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001b34: f5a3 73ee sub.w r3, r3, #476 ; 0x1dc + 8001b38: 681b ldr r3, [r3, #0] + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8001b3a: fab3 f383 clz r3, r3 + 8001b3e: b2db uxtb r3, r3 + 8001b40: 095b lsrs r3, r3, #5 + 8001b42: b2db uxtb r3, r3 + 8001b44: f043 0301 orr.w r3, r3, #1 + 8001b48: b2db uxtb r3, r3 + 8001b4a: 2b01 cmp r3, #1 + 8001b4c: d104 bne.n 8001b58 + 8001b4e: 4b01 ldr r3, [pc, #4] ; (8001b54 ) + 8001b50: 681b ldr r3, [r3, #0] + 8001b52: e029 b.n 8001ba8 + 8001b54: 40021000 .word 0x40021000 + 8001b58: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001b5c: f5a3 73f0 sub.w r3, r3, #480 ; 0x1e0 + 8001b60: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 8001b64: 601a str r2, [r3, #0] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001b66: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001b6a: f5a3 73f0 sub.w r3, r3, #480 ; 0x1e0 + 8001b6e: 681b ldr r3, [r3, #0] + 8001b70: fa93 f2a3 rbit r2, r3 + 8001b74: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001b78: f5a3 73f2 sub.w r3, r3, #484 ; 0x1e4 + 8001b7c: 601a str r2, [r3, #0] + 8001b7e: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001b82: f5a3 73f4 sub.w r3, r3, #488 ; 0x1e8 + 8001b86: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 8001b8a: 601a str r2, [r3, #0] + 8001b8c: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001b90: f5a3 73f4 sub.w r3, r3, #488 ; 0x1e8 + 8001b94: 681b ldr r3, [r3, #0] + 8001b96: fa93 f2a3 rbit r2, r3 + 8001b9a: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001b9e: f5a3 73f6 sub.w r3, r3, #492 ; 0x1ec + 8001ba2: 601a str r2, [r3, #0] + 8001ba4: 4b2b ldr r3, [pc, #172] ; (8001c54 ) + 8001ba6: 6a5b ldr r3, [r3, #36] ; 0x24 + 8001ba8: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001bac: f5a2 72f8 sub.w r2, r2, #496 ; 0x1f0 + 8001bb0: f04f 7100 mov.w r1, #33554432 ; 0x2000000 + 8001bb4: 6011 str r1, [r2, #0] + 8001bb6: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001bba: f5a2 72f8 sub.w r2, r2, #496 ; 0x1f0 + 8001bbe: 6812 ldr r2, [r2, #0] + 8001bc0: fa92 f1a2 rbit r1, r2 + 8001bc4: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001bc8: f5a2 72fa sub.w r2, r2, #500 ; 0x1f4 + 8001bcc: 6011 str r1, [r2, #0] + return result; + 8001bce: f507 7200 add.w r2, r7, #512 ; 0x200 + 8001bd2: f5a2 72fa sub.w r2, r2, #500 ; 0x1f4 + 8001bd6: 6812 ldr r2, [r2, #0] + 8001bd8: fab2 f282 clz r2, r2 + 8001bdc: b2d2 uxtb r2, r2 + 8001bde: f042 0220 orr.w r2, r2, #32 + 8001be2: b2d2 uxtb r2, r2 + 8001be4: f002 021f and.w r2, r2, #31 + 8001be8: 2101 movs r1, #1 + 8001bea: fa01 f202 lsl.w r2, r1, r2 + 8001bee: 4013 ands r3, r2 + 8001bf0: 2b00 cmp r3, #0 + 8001bf2: d180 bne.n 8001af6 + 8001bf4: e027 b.n 8001c46 + } + } + else + { + /* Check if there is a request to disable the PLL used as System clock source */ + if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) + 8001bf6: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001bfa: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8001bfe: 681b ldr r3, [r3, #0] + 8001c00: 69db ldr r3, [r3, #28] + 8001c02: 2b01 cmp r3, #1 + 8001c04: d101 bne.n 8001c0a + { + return HAL_ERROR; + 8001c06: 2301 movs r3, #1 + 8001c08: e01e b.n 8001c48 + } + else + { + /* Do not return HAL_ERROR if request repeats the current configuration */ + pll_config = RCC->CFGR; + 8001c0a: 4b12 ldr r3, [pc, #72] ; (8001c54 ) + 8001c0c: 685b ldr r3, [r3, #4] + 8001c0e: f8c7 31f4 str.w r3, [r7, #500] ; 0x1f4 + pll_config2 = RCC->CFGR2; + if((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + (READ_BIT(pll_config, RCC_CFGR_PLLMUL) != RCC_OscInitStruct->PLL.PLLMUL) || + (READ_BIT(pll_config2, RCC_CFGR2_PREDIV) != RCC_OscInitStruct->PLL.PREDIV)) +#else + if((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 8001c12: f8d7 31f4 ldr.w r3, [r7, #500] ; 0x1f4 + 8001c16: f403 3280 and.w r2, r3, #65536 ; 0x10000 + 8001c1a: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001c1e: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8001c22: 681b ldr r3, [r3, #0] + 8001c24: 6a1b ldr r3, [r3, #32] + 8001c26: 429a cmp r2, r3 + 8001c28: d10b bne.n 8001c42 + (READ_BIT(pll_config, RCC_CFGR_PLLMUL) != RCC_OscInitStruct->PLL.PLLMUL)) + 8001c2a: f8d7 31f4 ldr.w r3, [r7, #500] ; 0x1f4 + 8001c2e: f403 1270 and.w r2, r3, #3932160 ; 0x3c0000 + 8001c32: f507 7300 add.w r3, r7, #512 ; 0x200 + 8001c36: f5a3 73fe sub.w r3, r3, #508 ; 0x1fc + 8001c3a: 681b ldr r3, [r3, #0] + 8001c3c: 6a5b ldr r3, [r3, #36] ; 0x24 + if((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 8001c3e: 429a cmp r2, r3 + 8001c40: d001 beq.n 8001c46 +#endif + { + return HAL_ERROR; + 8001c42: 2301 movs r3, #1 + 8001c44: e000 b.n 8001c48 + } + } + } + } + + return HAL_OK; + 8001c46: 2300 movs r3, #0 +} + 8001c48: 4618 mov r0, r3 + 8001c4a: f507 7700 add.w r7, r7, #512 ; 0x200 + 8001c4e: 46bd mov sp, r7 + 8001c50: bd80 pop {r7, pc} + 8001c52: bf00 nop + 8001c54: 40021000 .word 0x40021000 + +08001c58 : + * You can use @ref HAL_RCC_GetClockConfig() function to know which clock is + * currently used as system clock source. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) +{ + 8001c58: b580 push {r7, lr} + 8001c5a: b09e sub sp, #120 ; 0x78 + 8001c5c: af00 add r7, sp, #0 + 8001c5e: 6078 str r0, [r7, #4] + 8001c60: 6039 str r1, [r7, #0] + uint32_t tickstart = 0U; + 8001c62: 2300 movs r3, #0 + 8001c64: 677b str r3, [r7, #116] ; 0x74 + + /* Check Null pointer */ + if(RCC_ClkInitStruct == NULL) + 8001c66: 687b ldr r3, [r7, #4] + 8001c68: 2b00 cmp r3, #0 + 8001c6a: d101 bne.n 8001c70 + { + return HAL_ERROR; + 8001c6c: 2301 movs r3, #1 + 8001c6e: e162 b.n 8001f36 + /* 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) of the device. */ + + /* Increasing the number of wait states because of higher CPU frequency */ + if(FLatency > __HAL_FLASH_GET_LATENCY()) + 8001c70: 4b90 ldr r3, [pc, #576] ; (8001eb4 ) + 8001c72: 681b ldr r3, [r3, #0] + 8001c74: f003 0307 and.w r3, r3, #7 + 8001c78: 683a ldr r2, [r7, #0] + 8001c7a: 429a cmp r2, r3 + 8001c7c: d910 bls.n 8001ca0 + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 8001c7e: 4b8d ldr r3, [pc, #564] ; (8001eb4 ) + 8001c80: 681b ldr r3, [r3, #0] + 8001c82: f023 0207 bic.w r2, r3, #7 + 8001c86: 498b ldr r1, [pc, #556] ; (8001eb4 ) + 8001c88: 683b ldr r3, [r7, #0] + 8001c8a: 4313 orrs r3, r2 + 8001c8c: 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) + 8001c8e: 4b89 ldr r3, [pc, #548] ; (8001eb4 ) + 8001c90: 681b ldr r3, [r3, #0] + 8001c92: f003 0307 and.w r3, r3, #7 + 8001c96: 683a ldr r2, [r7, #0] + 8001c98: 429a cmp r2, r3 + 8001c9a: d001 beq.n 8001ca0 + { + return HAL_ERROR; + 8001c9c: 2301 movs r3, #1 + 8001c9e: e14a b.n 8001f36 + } + } + + /*-------------------------- HCLK Configuration --------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + 8001ca0: 687b ldr r3, [r7, #4] + 8001ca2: 681b ldr r3, [r3, #0] + 8001ca4: f003 0302 and.w r3, r3, #2 + 8001ca8: 2b00 cmp r3, #0 + 8001caa: d008 beq.n 8001cbe + { + assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); + 8001cac: 4b82 ldr r3, [pc, #520] ; (8001eb8 ) + 8001cae: 685b ldr r3, [r3, #4] + 8001cb0: f023 02f0 bic.w r2, r3, #240 ; 0xf0 + 8001cb4: 687b ldr r3, [r7, #4] + 8001cb6: 689b ldr r3, [r3, #8] + 8001cb8: 497f ldr r1, [pc, #508] ; (8001eb8 ) + 8001cba: 4313 orrs r3, r2 + 8001cbc: 604b str r3, [r1, #4] + } + + /*------------------------- SYSCLK Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) + 8001cbe: 687b ldr r3, [r7, #4] + 8001cc0: 681b ldr r3, [r3, #0] + 8001cc2: f003 0301 and.w r3, r3, #1 + 8001cc6: 2b00 cmp r3, #0 + 8001cc8: f000 80dc beq.w 8001e84 + { + assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); + + /* HSE is selected as System Clock Source */ + if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + 8001ccc: 687b ldr r3, [r7, #4] + 8001cce: 685b ldr r3, [r3, #4] + 8001cd0: 2b01 cmp r3, #1 + 8001cd2: d13c bne.n 8001d4e + 8001cd4: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8001cd8: 673b str r3, [r7, #112] ; 0x70 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001cda: 6f3b ldr r3, [r7, #112] ; 0x70 + 8001cdc: fa93 f3a3 rbit r3, r3 + 8001ce0: 66fb str r3, [r7, #108] ; 0x6c + return result; + 8001ce2: 6efb ldr r3, [r7, #108] ; 0x6c + { + /* Check the HSE ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 8001ce4: fab3 f383 clz r3, r3 + 8001ce8: b2db uxtb r3, r3 + 8001cea: 095b lsrs r3, r3, #5 + 8001cec: b2db uxtb r3, r3 + 8001cee: f043 0301 orr.w r3, r3, #1 + 8001cf2: b2db uxtb r3, r3 + 8001cf4: 2b01 cmp r3, #1 + 8001cf6: d102 bne.n 8001cfe + 8001cf8: 4b6f ldr r3, [pc, #444] ; (8001eb8 ) + 8001cfa: 681b ldr r3, [r3, #0] + 8001cfc: e00f b.n 8001d1e + 8001cfe: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8001d02: 66bb str r3, [r7, #104] ; 0x68 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001d04: 6ebb ldr r3, [r7, #104] ; 0x68 + 8001d06: fa93 f3a3 rbit r3, r3 + 8001d0a: 667b str r3, [r7, #100] ; 0x64 + 8001d0c: f44f 3300 mov.w r3, #131072 ; 0x20000 + 8001d10: 663b str r3, [r7, #96] ; 0x60 + 8001d12: 6e3b ldr r3, [r7, #96] ; 0x60 + 8001d14: fa93 f3a3 rbit r3, r3 + 8001d18: 65fb str r3, [r7, #92] ; 0x5c + 8001d1a: 4b67 ldr r3, [pc, #412] ; (8001eb8 ) + 8001d1c: 6a5b ldr r3, [r3, #36] ; 0x24 + 8001d1e: f44f 3200 mov.w r2, #131072 ; 0x20000 + 8001d22: 65ba str r2, [r7, #88] ; 0x58 + 8001d24: 6dba ldr r2, [r7, #88] ; 0x58 + 8001d26: fa92 f2a2 rbit r2, r2 + 8001d2a: 657a str r2, [r7, #84] ; 0x54 + return result; + 8001d2c: 6d7a ldr r2, [r7, #84] ; 0x54 + 8001d2e: fab2 f282 clz r2, r2 + 8001d32: b2d2 uxtb r2, r2 + 8001d34: f042 0220 orr.w r2, r2, #32 + 8001d38: b2d2 uxtb r2, r2 + 8001d3a: f002 021f and.w r2, r2, #31 + 8001d3e: 2101 movs r1, #1 + 8001d40: fa01 f202 lsl.w r2, r1, r2 + 8001d44: 4013 ands r3, r2 + 8001d46: 2b00 cmp r3, #0 + 8001d48: d17b bne.n 8001e42 + { + return HAL_ERROR; + 8001d4a: 2301 movs r3, #1 + 8001d4c: e0f3 b.n 8001f36 + } + } + /* PLL is selected as System Clock Source */ + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + 8001d4e: 687b ldr r3, [r7, #4] + 8001d50: 685b ldr r3, [r3, #4] + 8001d52: 2b02 cmp r3, #2 + 8001d54: d13c bne.n 8001dd0 + 8001d56: f04f 7300 mov.w r3, #33554432 ; 0x2000000 + 8001d5a: 653b str r3, [r7, #80] ; 0x50 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001d5c: 6d3b ldr r3, [r7, #80] ; 0x50 + 8001d5e: fa93 f3a3 rbit r3, r3 + 8001d62: 64fb str r3, [r7, #76] ; 0x4c + return result; + 8001d64: 6cfb ldr r3, [r7, #76] ; 0x4c + { + /* Check the PLL ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 8001d66: fab3 f383 clz r3, r3 + 8001d6a: b2db uxtb r3, r3 + 8001d6c: 095b lsrs r3, r3, #5 + 8001d6e: b2db uxtb r3, r3 + 8001d70: f043 0301 orr.w r3, r3, #1 + 8001d74: b2db uxtb r3, r3 + 8001d76: 2b01 cmp r3, #1 + 8001d78: d102 bne.n 8001d80 + 8001d7a: 4b4f ldr r3, [pc, #316] ; (8001eb8 ) + 8001d7c: 681b ldr r3, [r3, #0] + 8001d7e: e00f b.n 8001da0 + 8001d80: f04f 7300 mov.w r3, #33554432 ; 0x2000000 + 8001d84: 64bb str r3, [r7, #72] ; 0x48 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001d86: 6cbb ldr r3, [r7, #72] ; 0x48 + 8001d88: fa93 f3a3 rbit r3, r3 + 8001d8c: 647b str r3, [r7, #68] ; 0x44 + 8001d8e: f04f 7300 mov.w r3, #33554432 ; 0x2000000 + 8001d92: 643b str r3, [r7, #64] ; 0x40 + 8001d94: 6c3b ldr r3, [r7, #64] ; 0x40 + 8001d96: fa93 f3a3 rbit r3, r3 + 8001d9a: 63fb str r3, [r7, #60] ; 0x3c + 8001d9c: 4b46 ldr r3, [pc, #280] ; (8001eb8 ) + 8001d9e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8001da0: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 8001da4: 63ba str r2, [r7, #56] ; 0x38 + 8001da6: 6bba ldr r2, [r7, #56] ; 0x38 + 8001da8: fa92 f2a2 rbit r2, r2 + 8001dac: 637a str r2, [r7, #52] ; 0x34 + return result; + 8001dae: 6b7a ldr r2, [r7, #52] ; 0x34 + 8001db0: fab2 f282 clz r2, r2 + 8001db4: b2d2 uxtb r2, r2 + 8001db6: f042 0220 orr.w r2, r2, #32 + 8001dba: b2d2 uxtb r2, r2 + 8001dbc: f002 021f and.w r2, r2, #31 + 8001dc0: 2101 movs r1, #1 + 8001dc2: fa01 f202 lsl.w r2, r1, r2 + 8001dc6: 4013 ands r3, r2 + 8001dc8: 2b00 cmp r3, #0 + 8001dca: d13a bne.n 8001e42 + { + return HAL_ERROR; + 8001dcc: 2301 movs r3, #1 + 8001dce: e0b2 b.n 8001f36 + 8001dd0: 2302 movs r3, #2 + 8001dd2: 633b str r3, [r7, #48] ; 0x30 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001dd4: 6b3b ldr r3, [r7, #48] ; 0x30 + 8001dd6: fa93 f3a3 rbit r3, r3 + 8001dda: 62fb str r3, [r7, #44] ; 0x2c + return result; + 8001ddc: 6afb ldr r3, [r7, #44] ; 0x2c + } + /* HSI is selected as System Clock Source */ + else + { + /* Check the HSI ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 8001dde: fab3 f383 clz r3, r3 + 8001de2: b2db uxtb r3, r3 + 8001de4: 095b lsrs r3, r3, #5 + 8001de6: b2db uxtb r3, r3 + 8001de8: f043 0301 orr.w r3, r3, #1 + 8001dec: b2db uxtb r3, r3 + 8001dee: 2b01 cmp r3, #1 + 8001df0: d102 bne.n 8001df8 + 8001df2: 4b31 ldr r3, [pc, #196] ; (8001eb8 ) + 8001df4: 681b ldr r3, [r3, #0] + 8001df6: e00d b.n 8001e14 + 8001df8: 2302 movs r3, #2 + 8001dfa: 62bb str r3, [r7, #40] ; 0x28 + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001dfc: 6abb ldr r3, [r7, #40] ; 0x28 + 8001dfe: fa93 f3a3 rbit r3, r3 + 8001e02: 627b str r3, [r7, #36] ; 0x24 + 8001e04: 2302 movs r3, #2 + 8001e06: 623b str r3, [r7, #32] + 8001e08: 6a3b ldr r3, [r7, #32] + 8001e0a: fa93 f3a3 rbit r3, r3 + 8001e0e: 61fb str r3, [r7, #28] + 8001e10: 4b29 ldr r3, [pc, #164] ; (8001eb8 ) + 8001e12: 6a5b ldr r3, [r3, #36] ; 0x24 + 8001e14: 2202 movs r2, #2 + 8001e16: 61ba str r2, [r7, #24] + 8001e18: 69ba ldr r2, [r7, #24] + 8001e1a: fa92 f2a2 rbit r2, r2 + 8001e1e: 617a str r2, [r7, #20] + return result; + 8001e20: 697a ldr r2, [r7, #20] + 8001e22: fab2 f282 clz r2, r2 + 8001e26: b2d2 uxtb r2, r2 + 8001e28: f042 0220 orr.w r2, r2, #32 + 8001e2c: b2d2 uxtb r2, r2 + 8001e2e: f002 021f and.w r2, r2, #31 + 8001e32: 2101 movs r1, #1 + 8001e34: fa01 f202 lsl.w r2, r1, r2 + 8001e38: 4013 ands r3, r2 + 8001e3a: 2b00 cmp r3, #0 + 8001e3c: d101 bne.n 8001e42 + { + return HAL_ERROR; + 8001e3e: 2301 movs r3, #1 + 8001e40: e079 b.n 8001f36 + } + } + + __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); + 8001e42: 4b1d ldr r3, [pc, #116] ; (8001eb8 ) + 8001e44: 685b ldr r3, [r3, #4] + 8001e46: f023 0203 bic.w r2, r3, #3 + 8001e4a: 687b ldr r3, [r7, #4] + 8001e4c: 685b ldr r3, [r3, #4] + 8001e4e: 491a ldr r1, [pc, #104] ; (8001eb8 ) + 8001e50: 4313 orrs r3, r2 + 8001e52: 604b str r3, [r1, #4] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001e54: f7fe fc0a bl 800066c + 8001e58: 6778 str r0, [r7, #116] ; 0x74 + + while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + 8001e5a: e00a b.n 8001e72 + { + if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + 8001e5c: f7fe fc06 bl 800066c + 8001e60: 4602 mov r2, r0 + 8001e62: 6f7b ldr r3, [r7, #116] ; 0x74 + 8001e64: 1ad3 subs r3, r2, r3 + 8001e66: f241 3288 movw r2, #5000 ; 0x1388 + 8001e6a: 4293 cmp r3, r2 + 8001e6c: d901 bls.n 8001e72 + { + return HAL_TIMEOUT; + 8001e6e: 2303 movs r3, #3 + 8001e70: e061 b.n 8001f36 + while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + 8001e72: 4b11 ldr r3, [pc, #68] ; (8001eb8 ) + 8001e74: 685b ldr r3, [r3, #4] + 8001e76: f003 020c and.w r2, r3, #12 + 8001e7a: 687b ldr r3, [r7, #4] + 8001e7c: 685b ldr r3, [r3, #4] + 8001e7e: 009b lsls r3, r3, #2 + 8001e80: 429a cmp r2, r3 + 8001e82: d1eb bne.n 8001e5c + } + } + } + /* Decreasing the number of wait states because of lower CPU frequency */ + if(FLatency < __HAL_FLASH_GET_LATENCY()) + 8001e84: 4b0b ldr r3, [pc, #44] ; (8001eb4 ) + 8001e86: 681b ldr r3, [r3, #0] + 8001e88: f003 0307 and.w r3, r3, #7 + 8001e8c: 683a ldr r2, [r7, #0] + 8001e8e: 429a cmp r2, r3 + 8001e90: d214 bcs.n 8001ebc + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 8001e92: 4b08 ldr r3, [pc, #32] ; (8001eb4 ) + 8001e94: 681b ldr r3, [r3, #0] + 8001e96: f023 0207 bic.w r2, r3, #7 + 8001e9a: 4906 ldr r1, [pc, #24] ; (8001eb4 ) + 8001e9c: 683b ldr r3, [r7, #0] + 8001e9e: 4313 orrs r3, r2 + 8001ea0: 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) + 8001ea2: 4b04 ldr r3, [pc, #16] ; (8001eb4 ) + 8001ea4: 681b ldr r3, [r3, #0] + 8001ea6: f003 0307 and.w r3, r3, #7 + 8001eaa: 683a ldr r2, [r7, #0] + 8001eac: 429a cmp r2, r3 + 8001eae: d005 beq.n 8001ebc + { + return HAL_ERROR; + 8001eb0: 2301 movs r3, #1 + 8001eb2: e040 b.n 8001f36 + 8001eb4: 40022000 .word 0x40022000 + 8001eb8: 40021000 .word 0x40021000 + } + } + + /*-------------------------- PCLK1 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 8001ebc: 687b ldr r3, [r7, #4] + 8001ebe: 681b ldr r3, [r3, #0] + 8001ec0: f003 0304 and.w r3, r3, #4 + 8001ec4: 2b00 cmp r3, #0 + 8001ec6: d008 beq.n 8001eda + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); + 8001ec8: 4b1d ldr r3, [pc, #116] ; (8001f40 ) + 8001eca: 685b ldr r3, [r3, #4] + 8001ecc: f423 62e0 bic.w r2, r3, #1792 ; 0x700 + 8001ed0: 687b ldr r3, [r7, #4] + 8001ed2: 68db ldr r3, [r3, #12] + 8001ed4: 491a ldr r1, [pc, #104] ; (8001f40 ) + 8001ed6: 4313 orrs r3, r2 + 8001ed8: 604b str r3, [r1, #4] + } + + /*-------------------------- PCLK2 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 8001eda: 687b ldr r3, [r7, #4] + 8001edc: 681b ldr r3, [r3, #0] + 8001ede: f003 0308 and.w r3, r3, #8 + 8001ee2: 2b00 cmp r3, #0 + 8001ee4: d009 beq.n 8001efa + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); + 8001ee6: 4b16 ldr r3, [pc, #88] ; (8001f40 ) + 8001ee8: 685b ldr r3, [r3, #4] + 8001eea: f423 5260 bic.w r2, r3, #14336 ; 0x3800 + 8001eee: 687b ldr r3, [r7, #4] + 8001ef0: 691b ldr r3, [r3, #16] + 8001ef2: 00db lsls r3, r3, #3 + 8001ef4: 4912 ldr r1, [pc, #72] ; (8001f40 ) + 8001ef6: 4313 orrs r3, r2 + 8001ef8: 604b str r3, [r1, #4] + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_BITNUMBER]; + 8001efa: f000 f829 bl 8001f50 + 8001efe: 4601 mov r1, r0 + 8001f00: 4b0f ldr r3, [pc, #60] ; (8001f40 ) + 8001f02: 685b ldr r3, [r3, #4] + 8001f04: f003 03f0 and.w r3, r3, #240 ; 0xf0 + 8001f08: 22f0 movs r2, #240 ; 0xf0 + 8001f0a: 613a str r2, [r7, #16] + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + 8001f0c: 693a ldr r2, [r7, #16] + 8001f0e: fa92 f2a2 rbit r2, r2 + 8001f12: 60fa str r2, [r7, #12] + return result; + 8001f14: 68fa ldr r2, [r7, #12] + 8001f16: fab2 f282 clz r2, r2 + 8001f1a: b2d2 uxtb r2, r2 + 8001f1c: 40d3 lsrs r3, r2 + 8001f1e: 4a09 ldr r2, [pc, #36] ; (8001f44 ) + 8001f20: 5cd3 ldrb r3, [r2, r3] + 8001f22: fa21 f303 lsr.w r3, r1, r3 + 8001f26: 4a08 ldr r2, [pc, #32] ; (8001f48 ) + 8001f28: 6013 str r3, [r2, #0] + + /* Configure the source of time base considering new system clocks settings*/ + HAL_InitTick (uwTickPrio); + 8001f2a: 4b08 ldr r3, [pc, #32] ; (8001f4c ) + 8001f2c: 681b ldr r3, [r3, #0] + 8001f2e: 4618 mov r0, r3 + 8001f30: f7fe fb58 bl 80005e4 + + return HAL_OK; + 8001f34: 2300 movs r3, #0 +} + 8001f36: 4618 mov r0, r3 + 8001f38: 3778 adds r7, #120 ; 0x78 + 8001f3a: 46bd mov sp, r7 + 8001f3c: bd80 pop {r7, pc} + 8001f3e: bf00 nop + 8001f40: 40021000 .word 0x40021000 + 8001f44: 08002c64 .word 0x08002c64 + 8001f48: 20000000 .word 0x20000000 + 8001f4c: 20000004 .word 0x20000004 + +08001f50 : + * right SYSCLK value. Otherwise, any configuration based on this function will be incorrect. + * + * @retval SYSCLK frequency + */ +uint32_t HAL_RCC_GetSysClockFreq(void) +{ + 8001f50: b480 push {r7} + 8001f52: b087 sub sp, #28 + 8001f54: af00 add r7, sp, #0 + uint32_t tmpreg = 0U, prediv = 0U, pllclk = 0U, pllmul = 0U; + 8001f56: 2300 movs r3, #0 + 8001f58: 60fb str r3, [r7, #12] + 8001f5a: 2300 movs r3, #0 + 8001f5c: 60bb str r3, [r7, #8] + 8001f5e: 2300 movs r3, #0 + 8001f60: 617b str r3, [r7, #20] + 8001f62: 2300 movs r3, #0 + 8001f64: 607b str r3, [r7, #4] + uint32_t sysclockfreq = 0U; + 8001f66: 2300 movs r3, #0 + 8001f68: 613b str r3, [r7, #16] + + tmpreg = RCC->CFGR; + 8001f6a: 4b1e ldr r3, [pc, #120] ; (8001fe4 ) + 8001f6c: 685b ldr r3, [r3, #4] + 8001f6e: 60fb str r3, [r7, #12] + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (tmpreg & RCC_CFGR_SWS) + 8001f70: 68fb ldr r3, [r7, #12] + 8001f72: f003 030c and.w r3, r3, #12 + 8001f76: 2b04 cmp r3, #4 + 8001f78: d002 beq.n 8001f80 + 8001f7a: 2b08 cmp r3, #8 + 8001f7c: d003 beq.n 8001f86 + 8001f7e: e026 b.n 8001fce + { + case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock */ + { + sysclockfreq = HSE_VALUE; + 8001f80: 4b19 ldr r3, [pc, #100] ; (8001fe8 ) + 8001f82: 613b str r3, [r7, #16] + break; + 8001f84: e026 b.n 8001fd4 + } + case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock */ + { + pllmul = aPLLMULFactorTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMUL) >> RCC_CFGR_PLLMUL_Pos]; + 8001f86: 68fb ldr r3, [r7, #12] + 8001f88: 0c9b lsrs r3, r3, #18 + 8001f8a: f003 030f and.w r3, r3, #15 + 8001f8e: 4a17 ldr r2, [pc, #92] ; (8001fec ) + 8001f90: 5cd3 ldrb r3, [r2, r3] + 8001f92: 607b str r3, [r7, #4] + prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR2 & RCC_CFGR2_PREDIV) >> RCC_CFGR2_PREDIV_Pos]; + 8001f94: 4b13 ldr r3, [pc, #76] ; (8001fe4 ) + 8001f96: 6adb ldr r3, [r3, #44] ; 0x2c + 8001f98: f003 030f and.w r3, r3, #15 + 8001f9c: 4a14 ldr r2, [pc, #80] ; (8001ff0 ) + 8001f9e: 5cd3 ldrb r3, [r2, r3] + 8001fa0: 60bb str r3, [r7, #8] +#if defined(RCC_CFGR_PLLSRC_HSI_DIV2) + if ((tmpreg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI) + 8001fa2: 68fb ldr r3, [r7, #12] + 8001fa4: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8001fa8: 2b00 cmp r3, #0 + 8001faa: d008 beq.n 8001fbe + { + /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV * PLLMUL */ + pllclk = (uint32_t)((uint64_t) HSE_VALUE / (uint64_t) (prediv)) * ((uint64_t) pllmul); + 8001fac: 4a0e ldr r2, [pc, #56] ; (8001fe8 ) + 8001fae: 68bb ldr r3, [r7, #8] + 8001fb0: fbb2 f2f3 udiv r2, r2, r3 + 8001fb4: 687b ldr r3, [r7, #4] + 8001fb6: fb02 f303 mul.w r3, r2, r3 + 8001fba: 617b str r3, [r7, #20] + 8001fbc: e004 b.n 8001fc8 + } + else + { + /* HSI used as PLL clock source : PLLCLK = HSI/2 * PLLMUL */ + pllclk = (uint32_t)((uint64_t) (HSI_VALUE >> 1U) * ((uint64_t) pllmul)); + 8001fbe: 687b ldr r3, [r7, #4] + 8001fc0: 4a0c ldr r2, [pc, #48] ; (8001ff4 ) + 8001fc2: fb02 f303 mul.w r3, r2, r3 + 8001fc6: 617b str r3, [r7, #20] + { + /* HSI used as PLL clock source : PLLCLK = HSI/PREDIV * PLLMUL */ + pllclk = (uint32_t)((uint64_t) HSI_VALUE / (uint64_t) (prediv)) * ((uint64_t) pllmul); + } +#endif /* RCC_CFGR_PLLSRC_HSI_DIV2 */ + sysclockfreq = pllclk; + 8001fc8: 697b ldr r3, [r7, #20] + 8001fca: 613b str r3, [r7, #16] + break; + 8001fcc: e002 b.n 8001fd4 + } + case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ + default: /* HSI used as system clock */ + { + sysclockfreq = HSI_VALUE; + 8001fce: 4b06 ldr r3, [pc, #24] ; (8001fe8 ) + 8001fd0: 613b str r3, [r7, #16] + break; + 8001fd2: bf00 nop + } + } + return sysclockfreq; + 8001fd4: 693b ldr r3, [r7, #16] +} + 8001fd6: 4618 mov r0, r3 + 8001fd8: 371c adds r7, #28 + 8001fda: 46bd mov sp, r7 + 8001fdc: f85d 7b04 ldr.w r7, [sp], #4 + 8001fe0: 4770 bx lr + 8001fe2: bf00 nop + 8001fe4: 40021000 .word 0x40021000 + 8001fe8: 007a1200 .word 0x007a1200 + 8001fec: 08002c74 .word 0x08002c74 + 8001ff0: 08002c84 .word 0x08002c84 + 8001ff4: 003d0900 .word 0x003d0900 + +08001ff8 : + * 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) +{ + 8001ff8: b580 push {r7, lr} + 8001ffa: b082 sub sp, #8 + 8001ffc: af00 add r7, sp, #0 + 8001ffe: 6078 str r0, [r7, #4] + /* Check the TIM handle allocation */ + if (htim == NULL) + 8002000: 687b ldr r3, [r7, #4] + 8002002: 2b00 cmp r3, #0 + 8002004: d101 bne.n 800200a + { + return HAL_ERROR; + 8002006: 2301 movs r3, #1 + 8002008: e049 b.n 800209e + 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) + 800200a: 687b ldr r3, [r7, #4] + 800200c: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 8002010: b2db uxtb r3, r3 + 8002012: 2b00 cmp r3, #0 + 8002014: d106 bne.n 8002024 + { + /* Allocate lock resource and initialize it */ + htim->Lock = HAL_UNLOCKED; + 8002016: 687b ldr r3, [r7, #4] + 8002018: 2200 movs r2, #0 + 800201a: f883 203c strb.w r2, [r3, #60] ; 0x3c + } + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + htim->PWM_MspInitCallback(htim); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ + HAL_TIM_PWM_MspInit(htim); + 800201e: 6878 ldr r0, [r7, #4] + 8002020: f7fe fa12 bl 8000448 +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + 8002024: 687b ldr r3, [r7, #4] + 8002026: 2202 movs r2, #2 + 8002028: f883 203d strb.w r2, [r3, #61] ; 0x3d + + /* Init the base time for the PWM */ + TIM_Base_SetConfig(htim->Instance, &htim->Init); + 800202c: 687b ldr r3, [r7, #4] + 800202e: 681a ldr r2, [r3, #0] + 8002030: 687b ldr r3, [r7, #4] + 8002032: 3304 adds r3, #4 + 8002034: 4619 mov r1, r3 + 8002036: 4610 mov r0, r2 + 8002038: f000 fa30 bl 800249c + + /* Initialize the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + 800203c: 687b ldr r3, [r7, #4] + 800203e: 2201 movs r2, #1 + 8002040: f883 2048 strb.w r2, [r3, #72] ; 0x48 + + /* Initialize the TIM channels state */ + TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 8002044: 687b ldr r3, [r7, #4] + 8002046: 2201 movs r2, #1 + 8002048: f883 203e strb.w r2, [r3, #62] ; 0x3e + 800204c: 687b ldr r3, [r7, #4] + 800204e: 2201 movs r2, #1 + 8002050: f883 203f strb.w r2, [r3, #63] ; 0x3f + 8002054: 687b ldr r3, [r7, #4] + 8002056: 2201 movs r2, #1 + 8002058: f883 2040 strb.w r2, [r3, #64] ; 0x40 + 800205c: 687b ldr r3, [r7, #4] + 800205e: 2201 movs r2, #1 + 8002060: f883 2041 strb.w r2, [r3, #65] ; 0x41 + 8002064: 687b ldr r3, [r7, #4] + 8002066: 2201 movs r2, #1 + 8002068: f883 2042 strb.w r2, [r3, #66] ; 0x42 + 800206c: 687b ldr r3, [r7, #4] + 800206e: 2201 movs r2, #1 + 8002070: f883 2043 strb.w r2, [r3, #67] ; 0x43 + TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 8002074: 687b ldr r3, [r7, #4] + 8002076: 2201 movs r2, #1 + 8002078: f883 2044 strb.w r2, [r3, #68] ; 0x44 + 800207c: 687b ldr r3, [r7, #4] + 800207e: 2201 movs r2, #1 + 8002080: f883 2045 strb.w r2, [r3, #69] ; 0x45 + 8002084: 687b ldr r3, [r7, #4] + 8002086: 2201 movs r2, #1 + 8002088: f883 2046 strb.w r2, [r3, #70] ; 0x46 + 800208c: 687b ldr r3, [r7, #4] + 800208e: 2201 movs r2, #1 + 8002090: f883 2047 strb.w r2, [r3, #71] ; 0x47 + + /* Initialize the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + 8002094: 687b ldr r3, [r7, #4] + 8002096: 2201 movs r2, #1 + 8002098: f883 203d strb.w r2, [r3, #61] ; 0x3d + + return HAL_OK; + 800209c: 2300 movs r3, #0 +} + 800209e: 4618 mov r0, r3 + 80020a0: 3708 adds r7, #8 + 80020a2: 46bd mov sp, r7 + 80020a4: bd80 pop {r7, pc} + ... + +080020a8 : + * @arg TIM_CHANNEL_6: TIM Channel 6 selected (*) + * (*) Value not defined for all devices + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + 80020a8: b580 push {r7, lr} + 80020aa: b084 sub sp, #16 + 80020ac: af00 add r7, sp, #0 + 80020ae: 6078 str r0, [r7, #4] + 80020b0: 6039 str r1, [r7, #0] + + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + /* Check the TIM channel state */ + if (TIM_CHANNEL_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + 80020b2: 683b ldr r3, [r7, #0] + 80020b4: 2b00 cmp r3, #0 + 80020b6: d109 bne.n 80020cc + 80020b8: 687b ldr r3, [r7, #4] + 80020ba: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 80020be: b2db uxtb r3, r3 + 80020c0: 2b01 cmp r3, #1 + 80020c2: bf14 ite ne + 80020c4: 2301 movne r3, #1 + 80020c6: 2300 moveq r3, #0 + 80020c8: b2db uxtb r3, r3 + 80020ca: e03c b.n 8002146 + 80020cc: 683b ldr r3, [r7, #0] + 80020ce: 2b04 cmp r3, #4 + 80020d0: d109 bne.n 80020e6 + 80020d2: 687b ldr r3, [r7, #4] + 80020d4: f893 303f ldrb.w r3, [r3, #63] ; 0x3f + 80020d8: b2db uxtb r3, r3 + 80020da: 2b01 cmp r3, #1 + 80020dc: bf14 ite ne + 80020de: 2301 movne r3, #1 + 80020e0: 2300 moveq r3, #0 + 80020e2: b2db uxtb r3, r3 + 80020e4: e02f b.n 8002146 + 80020e6: 683b ldr r3, [r7, #0] + 80020e8: 2b08 cmp r3, #8 + 80020ea: d109 bne.n 8002100 + 80020ec: 687b ldr r3, [r7, #4] + 80020ee: f893 3040 ldrb.w r3, [r3, #64] ; 0x40 + 80020f2: b2db uxtb r3, r3 + 80020f4: 2b01 cmp r3, #1 + 80020f6: bf14 ite ne + 80020f8: 2301 movne r3, #1 + 80020fa: 2300 moveq r3, #0 + 80020fc: b2db uxtb r3, r3 + 80020fe: e022 b.n 8002146 + 8002100: 683b ldr r3, [r7, #0] + 8002102: 2b0c cmp r3, #12 + 8002104: d109 bne.n 800211a + 8002106: 687b ldr r3, [r7, #4] + 8002108: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 + 800210c: b2db uxtb r3, r3 + 800210e: 2b01 cmp r3, #1 + 8002110: bf14 ite ne + 8002112: 2301 movne r3, #1 + 8002114: 2300 moveq r3, #0 + 8002116: b2db uxtb r3, r3 + 8002118: e015 b.n 8002146 + 800211a: 683b ldr r3, [r7, #0] + 800211c: 2b10 cmp r3, #16 + 800211e: d109 bne.n 8002134 + 8002120: 687b ldr r3, [r7, #4] + 8002122: f893 3042 ldrb.w r3, [r3, #66] ; 0x42 + 8002126: b2db uxtb r3, r3 + 8002128: 2b01 cmp r3, #1 + 800212a: bf14 ite ne + 800212c: 2301 movne r3, #1 + 800212e: 2300 moveq r3, #0 + 8002130: b2db uxtb r3, r3 + 8002132: e008 b.n 8002146 + 8002134: 687b ldr r3, [r7, #4] + 8002136: f893 3043 ldrb.w r3, [r3, #67] ; 0x43 + 800213a: b2db uxtb r3, r3 + 800213c: 2b01 cmp r3, #1 + 800213e: bf14 ite ne + 8002140: 2301 movne r3, #1 + 8002142: 2300 moveq r3, #0 + 8002144: b2db uxtb r3, r3 + 8002146: 2b00 cmp r3, #0 + 8002148: d001 beq.n 800214e + { + return HAL_ERROR; + 800214a: 2301 movs r3, #1 + 800214c: e083 b.n 8002256 + } + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 800214e: 683b ldr r3, [r7, #0] + 8002150: 2b00 cmp r3, #0 + 8002152: d104 bne.n 800215e + 8002154: 687b ldr r3, [r7, #4] + 8002156: 2202 movs r2, #2 + 8002158: f883 203e strb.w r2, [r3, #62] ; 0x3e + 800215c: e023 b.n 80021a6 + 800215e: 683b ldr r3, [r7, #0] + 8002160: 2b04 cmp r3, #4 + 8002162: d104 bne.n 800216e + 8002164: 687b ldr r3, [r7, #4] + 8002166: 2202 movs r2, #2 + 8002168: f883 203f strb.w r2, [r3, #63] ; 0x3f + 800216c: e01b b.n 80021a6 + 800216e: 683b ldr r3, [r7, #0] + 8002170: 2b08 cmp r3, #8 + 8002172: d104 bne.n 800217e + 8002174: 687b ldr r3, [r7, #4] + 8002176: 2202 movs r2, #2 + 8002178: f883 2040 strb.w r2, [r3, #64] ; 0x40 + 800217c: e013 b.n 80021a6 + 800217e: 683b ldr r3, [r7, #0] + 8002180: 2b0c cmp r3, #12 + 8002182: d104 bne.n 800218e + 8002184: 687b ldr r3, [r7, #4] + 8002186: 2202 movs r2, #2 + 8002188: f883 2041 strb.w r2, [r3, #65] ; 0x41 + 800218c: e00b b.n 80021a6 + 800218e: 683b ldr r3, [r7, #0] + 8002190: 2b10 cmp r3, #16 + 8002192: d104 bne.n 800219e + 8002194: 687b ldr r3, [r7, #4] + 8002196: 2202 movs r2, #2 + 8002198: f883 2042 strb.w r2, [r3, #66] ; 0x42 + 800219c: e003 b.n 80021a6 + 800219e: 687b ldr r3, [r7, #4] + 80021a0: 2202 movs r2, #2 + 80021a2: f883 2043 strb.w r2, [r3, #67] ; 0x43 + + /* Enable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + 80021a6: 687b ldr r3, [r7, #4] + 80021a8: 681b ldr r3, [r3, #0] + 80021aa: 2201 movs r2, #1 + 80021ac: 6839 ldr r1, [r7, #0] + 80021ae: 4618 mov r0, r3 + 80021b0: f000 fc94 bl 8002adc + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + 80021b4: 687b ldr r3, [r7, #4] + 80021b6: 681b ldr r3, [r3, #0] + 80021b8: 4a29 ldr r2, [pc, #164] ; (8002260 ) + 80021ba: 4293 cmp r3, r2 + 80021bc: d00e beq.n 80021dc + 80021be: 687b ldr r3, [r7, #4] + 80021c0: 681b ldr r3, [r3, #0] + 80021c2: 4a28 ldr r2, [pc, #160] ; (8002264 ) + 80021c4: 4293 cmp r3, r2 + 80021c6: d009 beq.n 80021dc + 80021c8: 687b ldr r3, [r7, #4] + 80021ca: 681b ldr r3, [r3, #0] + 80021cc: 4a26 ldr r2, [pc, #152] ; (8002268 ) + 80021ce: 4293 cmp r3, r2 + 80021d0: d004 beq.n 80021dc + 80021d2: 687b ldr r3, [r7, #4] + 80021d4: 681b ldr r3, [r3, #0] + 80021d6: 4a25 ldr r2, [pc, #148] ; (800226c ) + 80021d8: 4293 cmp r3, r2 + 80021da: d101 bne.n 80021e0 + 80021dc: 2301 movs r3, #1 + 80021de: e000 b.n 80021e2 + 80021e0: 2300 movs r3, #0 + 80021e2: 2b00 cmp r3, #0 + 80021e4: d007 beq.n 80021f6 + { + /* Enable the main output */ + __HAL_TIM_MOE_ENABLE(htim); + 80021e6: 687b ldr r3, [r7, #4] + 80021e8: 681b ldr r3, [r3, #0] + 80021ea: 6c5a ldr r2, [r3, #68] ; 0x44 + 80021ec: 687b ldr r3, [r7, #4] + 80021ee: 681b ldr r3, [r3, #0] + 80021f0: f442 4200 orr.w r2, r2, #32768 ; 0x8000 + 80021f4: 645a str r2, [r3, #68] ; 0x44 + } + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 80021f6: 687b ldr r3, [r7, #4] + 80021f8: 681b ldr r3, [r3, #0] + 80021fa: 4a19 ldr r2, [pc, #100] ; (8002260 ) + 80021fc: 4293 cmp r3, r2 + 80021fe: d009 beq.n 8002214 + 8002200: 687b ldr r3, [r7, #4] + 8002202: 681b ldr r3, [r3, #0] + 8002204: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 8002208: d004 beq.n 8002214 + 800220a: 687b ldr r3, [r7, #4] + 800220c: 681b ldr r3, [r3, #0] + 800220e: 4a15 ldr r2, [pc, #84] ; (8002264 ) + 8002210: 4293 cmp r3, r2 + 8002212: d115 bne.n 8002240 + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 8002214: 687b ldr r3, [r7, #4] + 8002216: 681b ldr r3, [r3, #0] + 8002218: 689a ldr r2, [r3, #8] + 800221a: 4b15 ldr r3, [pc, #84] ; (8002270 ) + 800221c: 4013 ands r3, r2 + 800221e: 60fb str r3, [r7, #12] + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 8002220: 68fb ldr r3, [r7, #12] + 8002222: 2b06 cmp r3, #6 + 8002224: d015 beq.n 8002252 + 8002226: 68fb ldr r3, [r7, #12] + 8002228: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 800222c: d011 beq.n 8002252 + { + __HAL_TIM_ENABLE(htim); + 800222e: 687b ldr r3, [r7, #4] + 8002230: 681b ldr r3, [r3, #0] + 8002232: 681a ldr r2, [r3, #0] + 8002234: 687b ldr r3, [r7, #4] + 8002236: 681b ldr r3, [r3, #0] + 8002238: f042 0201 orr.w r2, r2, #1 + 800223c: 601a str r2, [r3, #0] + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 800223e: e008 b.n 8002252 + } + } + else + { + __HAL_TIM_ENABLE(htim); + 8002240: 687b ldr r3, [r7, #4] + 8002242: 681b ldr r3, [r3, #0] + 8002244: 681a ldr r2, [r3, #0] + 8002246: 687b ldr r3, [r7, #4] + 8002248: 681b ldr r3, [r3, #0] + 800224a: f042 0201 orr.w r2, r2, #1 + 800224e: 601a str r2, [r3, #0] + 8002250: e000 b.n 8002254 + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 8002252: bf00 nop + } + + /* Return function status */ + return HAL_OK; + 8002254: 2300 movs r3, #0 +} + 8002256: 4618 mov r0, r3 + 8002258: 3710 adds r7, #16 + 800225a: 46bd mov sp, r7 + 800225c: bd80 pop {r7, pc} + 800225e: bf00 nop + 8002260: 40012c00 .word 0x40012c00 + 8002264: 40014000 .word 0x40014000 + 8002268: 40014400 .word 0x40014400 + 800226c: 40014800 .word 0x40014800 + 8002270: 00010007 .word 0x00010007 + +08002274 : + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, + const TIM_OC_InitTypeDef *sConfig, + uint32_t Channel) +{ + 8002274: b580 push {r7, lr} + 8002276: b086 sub sp, #24 + 8002278: af00 add r7, sp, #0 + 800227a: 60f8 str r0, [r7, #12] + 800227c: 60b9 str r1, [r7, #8] + 800227e: 607a str r2, [r7, #4] + HAL_StatusTypeDef status = HAL_OK; + 8002280: 2300 movs r3, #0 + 8002282: 75fb strb r3, [r7, #23] + 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); + 8002284: 68fb ldr r3, [r7, #12] + 8002286: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 800228a: 2b01 cmp r3, #1 + 800228c: d101 bne.n 8002292 + 800228e: 2302 movs r3, #2 + 8002290: e0ff b.n 8002492 + 8002292: 68fb ldr r3, [r7, #12] + 8002294: 2201 movs r2, #1 + 8002296: f883 203c strb.w r2, [r3, #60] ; 0x3c + + switch (Channel) + 800229a: 687b ldr r3, [r7, #4] + 800229c: 2b14 cmp r3, #20 + 800229e: f200 80f0 bhi.w 8002482 + 80022a2: a201 add r2, pc, #4 ; (adr r2, 80022a8 ) + 80022a4: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80022a8: 080022fd .word 0x080022fd + 80022ac: 08002483 .word 0x08002483 + 80022b0: 08002483 .word 0x08002483 + 80022b4: 08002483 .word 0x08002483 + 80022b8: 0800233d .word 0x0800233d + 80022bc: 08002483 .word 0x08002483 + 80022c0: 08002483 .word 0x08002483 + 80022c4: 08002483 .word 0x08002483 + 80022c8: 0800237f .word 0x0800237f + 80022cc: 08002483 .word 0x08002483 + 80022d0: 08002483 .word 0x08002483 + 80022d4: 08002483 .word 0x08002483 + 80022d8: 080023bf .word 0x080023bf + 80022dc: 08002483 .word 0x08002483 + 80022e0: 08002483 .word 0x08002483 + 80022e4: 08002483 .word 0x08002483 + 80022e8: 08002401 .word 0x08002401 + 80022ec: 08002483 .word 0x08002483 + 80022f0: 08002483 .word 0x08002483 + 80022f4: 08002483 .word 0x08002483 + 80022f8: 08002441 .word 0x08002441 + { + /* Check the parameters */ + assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); + + /* Configure the Channel 1 in PWM mode */ + TIM_OC1_SetConfig(htim->Instance, sConfig); + 80022fc: 68fb ldr r3, [r7, #12] + 80022fe: 681b ldr r3, [r3, #0] + 8002300: 68b9 ldr r1, [r7, #8] + 8002302: 4618 mov r0, r3 + 8002304: f000 f944 bl 8002590 + + /* Set the Preload enable bit for channel1 */ + htim->Instance->CCMR1 |= TIM_CCMR1_OC1PE; + 8002308: 68fb ldr r3, [r7, #12] + 800230a: 681b ldr r3, [r3, #0] + 800230c: 699a ldr r2, [r3, #24] + 800230e: 68fb ldr r3, [r7, #12] + 8002310: 681b ldr r3, [r3, #0] + 8002312: f042 0208 orr.w r2, r2, #8 + 8002316: 619a str r2, [r3, #24] + + /* Configure the Output Fast mode */ + htim->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE; + 8002318: 68fb ldr r3, [r7, #12] + 800231a: 681b ldr r3, [r3, #0] + 800231c: 699a ldr r2, [r3, #24] + 800231e: 68fb ldr r3, [r7, #12] + 8002320: 681b ldr r3, [r3, #0] + 8002322: f022 0204 bic.w r2, r2, #4 + 8002326: 619a str r2, [r3, #24] + htim->Instance->CCMR1 |= sConfig->OCFastMode; + 8002328: 68fb ldr r3, [r7, #12] + 800232a: 681b ldr r3, [r3, #0] + 800232c: 6999 ldr r1, [r3, #24] + 800232e: 68bb ldr r3, [r7, #8] + 8002330: 691a ldr r2, [r3, #16] + 8002332: 68fb ldr r3, [r7, #12] + 8002334: 681b ldr r3, [r3, #0] + 8002336: 430a orrs r2, r1 + 8002338: 619a str r2, [r3, #24] + break; + 800233a: e0a5 b.n 8002488 + { + /* Check the parameters */ + assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); + + /* Configure the Channel 2 in PWM mode */ + TIM_OC2_SetConfig(htim->Instance, sConfig); + 800233c: 68fb ldr r3, [r7, #12] + 800233e: 681b ldr r3, [r3, #0] + 8002340: 68b9 ldr r1, [r7, #8] + 8002342: 4618 mov r0, r3 + 8002344: f000 f9aa bl 800269c + + /* Set the Preload enable bit for channel2 */ + htim->Instance->CCMR1 |= TIM_CCMR1_OC2PE; + 8002348: 68fb ldr r3, [r7, #12] + 800234a: 681b ldr r3, [r3, #0] + 800234c: 699a ldr r2, [r3, #24] + 800234e: 68fb ldr r3, [r7, #12] + 8002350: 681b ldr r3, [r3, #0] + 8002352: f442 6200 orr.w r2, r2, #2048 ; 0x800 + 8002356: 619a str r2, [r3, #24] + + /* Configure the Output Fast mode */ + htim->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE; + 8002358: 68fb ldr r3, [r7, #12] + 800235a: 681b ldr r3, [r3, #0] + 800235c: 699a ldr r2, [r3, #24] + 800235e: 68fb ldr r3, [r7, #12] + 8002360: 681b ldr r3, [r3, #0] + 8002362: f422 6280 bic.w r2, r2, #1024 ; 0x400 + 8002366: 619a str r2, [r3, #24] + htim->Instance->CCMR1 |= sConfig->OCFastMode << 8U; + 8002368: 68fb ldr r3, [r7, #12] + 800236a: 681b ldr r3, [r3, #0] + 800236c: 6999 ldr r1, [r3, #24] + 800236e: 68bb ldr r3, [r7, #8] + 8002370: 691b ldr r3, [r3, #16] + 8002372: 021a lsls r2, r3, #8 + 8002374: 68fb ldr r3, [r7, #12] + 8002376: 681b ldr r3, [r3, #0] + 8002378: 430a orrs r2, r1 + 800237a: 619a str r2, [r3, #24] + break; + 800237c: e084 b.n 8002488 + { + /* Check the parameters */ + assert_param(IS_TIM_CC3_INSTANCE(htim->Instance)); + + /* Configure the Channel 3 in PWM mode */ + TIM_OC3_SetConfig(htim->Instance, sConfig); + 800237e: 68fb ldr r3, [r7, #12] + 8002380: 681b ldr r3, [r3, #0] + 8002382: 68b9 ldr r1, [r7, #8] + 8002384: 4618 mov r0, r3 + 8002386: f000 fa09 bl 800279c + + /* Set the Preload enable bit for channel3 */ + htim->Instance->CCMR2 |= TIM_CCMR2_OC3PE; + 800238a: 68fb ldr r3, [r7, #12] + 800238c: 681b ldr r3, [r3, #0] + 800238e: 69da ldr r2, [r3, #28] + 8002390: 68fb ldr r3, [r7, #12] + 8002392: 681b ldr r3, [r3, #0] + 8002394: f042 0208 orr.w r2, r2, #8 + 8002398: 61da str r2, [r3, #28] + + /* Configure the Output Fast mode */ + htim->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE; + 800239a: 68fb ldr r3, [r7, #12] + 800239c: 681b ldr r3, [r3, #0] + 800239e: 69da ldr r2, [r3, #28] + 80023a0: 68fb ldr r3, [r7, #12] + 80023a2: 681b ldr r3, [r3, #0] + 80023a4: f022 0204 bic.w r2, r2, #4 + 80023a8: 61da str r2, [r3, #28] + htim->Instance->CCMR2 |= sConfig->OCFastMode; + 80023aa: 68fb ldr r3, [r7, #12] + 80023ac: 681b ldr r3, [r3, #0] + 80023ae: 69d9 ldr r1, [r3, #28] + 80023b0: 68bb ldr r3, [r7, #8] + 80023b2: 691a ldr r2, [r3, #16] + 80023b4: 68fb ldr r3, [r7, #12] + 80023b6: 681b ldr r3, [r3, #0] + 80023b8: 430a orrs r2, r1 + 80023ba: 61da str r2, [r3, #28] + break; + 80023bc: e064 b.n 8002488 + { + /* Check the parameters */ + assert_param(IS_TIM_CC4_INSTANCE(htim->Instance)); + + /* Configure the Channel 4 in PWM mode */ + TIM_OC4_SetConfig(htim->Instance, sConfig); + 80023be: 68fb ldr r3, [r7, #12] + 80023c0: 681b ldr r3, [r3, #0] + 80023c2: 68b9 ldr r1, [r7, #8] + 80023c4: 4618 mov r0, r3 + 80023c6: f000 fa67 bl 8002898 + + /* Set the Preload enable bit for channel4 */ + htim->Instance->CCMR2 |= TIM_CCMR2_OC4PE; + 80023ca: 68fb ldr r3, [r7, #12] + 80023cc: 681b ldr r3, [r3, #0] + 80023ce: 69da ldr r2, [r3, #28] + 80023d0: 68fb ldr r3, [r7, #12] + 80023d2: 681b ldr r3, [r3, #0] + 80023d4: f442 6200 orr.w r2, r2, #2048 ; 0x800 + 80023d8: 61da str r2, [r3, #28] + + /* Configure the Output Fast mode */ + htim->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE; + 80023da: 68fb ldr r3, [r7, #12] + 80023dc: 681b ldr r3, [r3, #0] + 80023de: 69da ldr r2, [r3, #28] + 80023e0: 68fb ldr r3, [r7, #12] + 80023e2: 681b ldr r3, [r3, #0] + 80023e4: f422 6280 bic.w r2, r2, #1024 ; 0x400 + 80023e8: 61da str r2, [r3, #28] + htim->Instance->CCMR2 |= sConfig->OCFastMode << 8U; + 80023ea: 68fb ldr r3, [r7, #12] + 80023ec: 681b ldr r3, [r3, #0] + 80023ee: 69d9 ldr r1, [r3, #28] + 80023f0: 68bb ldr r3, [r7, #8] + 80023f2: 691b ldr r3, [r3, #16] + 80023f4: 021a lsls r2, r3, #8 + 80023f6: 68fb ldr r3, [r7, #12] + 80023f8: 681b ldr r3, [r3, #0] + 80023fa: 430a orrs r2, r1 + 80023fc: 61da str r2, [r3, #28] + break; + 80023fe: e043 b.n 8002488 + { + /* Check the parameters */ + assert_param(IS_TIM_CC5_INSTANCE(htim->Instance)); + + /* Configure the Channel 5 in PWM mode */ + TIM_OC5_SetConfig(htim->Instance, sConfig); + 8002400: 68fb ldr r3, [r7, #12] + 8002402: 681b ldr r3, [r3, #0] + 8002404: 68b9 ldr r1, [r7, #8] + 8002406: 4618 mov r0, r3 + 8002408: f000 faaa bl 8002960 + + /* Set the Preload enable bit for channel5*/ + htim->Instance->CCMR3 |= TIM_CCMR3_OC5PE; + 800240c: 68fb ldr r3, [r7, #12] + 800240e: 681b ldr r3, [r3, #0] + 8002410: 6d5a ldr r2, [r3, #84] ; 0x54 + 8002412: 68fb ldr r3, [r7, #12] + 8002414: 681b ldr r3, [r3, #0] + 8002416: f042 0208 orr.w r2, r2, #8 + 800241a: 655a str r2, [r3, #84] ; 0x54 + + /* Configure the Output Fast mode */ + htim->Instance->CCMR3 &= ~TIM_CCMR3_OC5FE; + 800241c: 68fb ldr r3, [r7, #12] + 800241e: 681b ldr r3, [r3, #0] + 8002420: 6d5a ldr r2, [r3, #84] ; 0x54 + 8002422: 68fb ldr r3, [r7, #12] + 8002424: 681b ldr r3, [r3, #0] + 8002426: f022 0204 bic.w r2, r2, #4 + 800242a: 655a str r2, [r3, #84] ; 0x54 + htim->Instance->CCMR3 |= sConfig->OCFastMode; + 800242c: 68fb ldr r3, [r7, #12] + 800242e: 681b ldr r3, [r3, #0] + 8002430: 6d59 ldr r1, [r3, #84] ; 0x54 + 8002432: 68bb ldr r3, [r7, #8] + 8002434: 691a ldr r2, [r3, #16] + 8002436: 68fb ldr r3, [r7, #12] + 8002438: 681b ldr r3, [r3, #0] + 800243a: 430a orrs r2, r1 + 800243c: 655a str r2, [r3, #84] ; 0x54 + break; + 800243e: e023 b.n 8002488 + { + /* Check the parameters */ + assert_param(IS_TIM_CC6_INSTANCE(htim->Instance)); + + /* Configure the Channel 6 in PWM mode */ + TIM_OC6_SetConfig(htim->Instance, sConfig); + 8002440: 68fb ldr r3, [r7, #12] + 8002442: 681b ldr r3, [r3, #0] + 8002444: 68b9 ldr r1, [r7, #8] + 8002446: 4618 mov r0, r3 + 8002448: f000 fae8 bl 8002a1c + + /* Set the Preload enable bit for channel6 */ + htim->Instance->CCMR3 |= TIM_CCMR3_OC6PE; + 800244c: 68fb ldr r3, [r7, #12] + 800244e: 681b ldr r3, [r3, #0] + 8002450: 6d5a ldr r2, [r3, #84] ; 0x54 + 8002452: 68fb ldr r3, [r7, #12] + 8002454: 681b ldr r3, [r3, #0] + 8002456: f442 6200 orr.w r2, r2, #2048 ; 0x800 + 800245a: 655a str r2, [r3, #84] ; 0x54 + + /* Configure the Output Fast mode */ + htim->Instance->CCMR3 &= ~TIM_CCMR3_OC6FE; + 800245c: 68fb ldr r3, [r7, #12] + 800245e: 681b ldr r3, [r3, #0] + 8002460: 6d5a ldr r2, [r3, #84] ; 0x54 + 8002462: 68fb ldr r3, [r7, #12] + 8002464: 681b ldr r3, [r3, #0] + 8002466: f422 6280 bic.w r2, r2, #1024 ; 0x400 + 800246a: 655a str r2, [r3, #84] ; 0x54 + htim->Instance->CCMR3 |= sConfig->OCFastMode << 8U; + 800246c: 68fb ldr r3, [r7, #12] + 800246e: 681b ldr r3, [r3, #0] + 8002470: 6d59 ldr r1, [r3, #84] ; 0x54 + 8002472: 68bb ldr r3, [r7, #8] + 8002474: 691b ldr r3, [r3, #16] + 8002476: 021a lsls r2, r3, #8 + 8002478: 68fb ldr r3, [r7, #12] + 800247a: 681b ldr r3, [r3, #0] + 800247c: 430a orrs r2, r1 + 800247e: 655a str r2, [r3, #84] ; 0x54 + break; + 8002480: e002 b.n 8002488 + } +#endif /* TIM_CCER_CC6E */ + + default: + status = HAL_ERROR; + 8002482: 2301 movs r3, #1 + 8002484: 75fb strb r3, [r7, #23] + break; + 8002486: bf00 nop + } + + __HAL_UNLOCK(htim); + 8002488: 68fb ldr r3, [r7, #12] + 800248a: 2200 movs r2, #0 + 800248c: f883 203c strb.w r2, [r3, #60] ; 0x3c + + return status; + 8002490: 7dfb ldrb r3, [r7, #23] +} + 8002492: 4618 mov r0, r3 + 8002494: 3718 adds r7, #24 + 8002496: 46bd mov sp, r7 + 8002498: bd80 pop {r7, pc} + 800249a: bf00 nop + +0800249c : + * @param TIMx TIM peripheral + * @param Structure TIM Base configuration structure + * @retval None + */ +void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure) +{ + 800249c: b480 push {r7} + 800249e: b085 sub sp, #20 + 80024a0: af00 add r7, sp, #0 + 80024a2: 6078 str r0, [r7, #4] + 80024a4: 6039 str r1, [r7, #0] + uint32_t tmpcr1; + tmpcr1 = TIMx->CR1; + 80024a6: 687b ldr r3, [r7, #4] + 80024a8: 681b ldr r3, [r3, #0] + 80024aa: 60fb str r3, [r7, #12] + + /* Set TIM Time Base Unit parameters ---------------------------------------*/ + if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) + 80024ac: 687b ldr r3, [r7, #4] + 80024ae: 4a34 ldr r2, [pc, #208] ; (8002580 ) + 80024b0: 4293 cmp r3, r2 + 80024b2: d003 beq.n 80024bc + 80024b4: 687b ldr r3, [r7, #4] + 80024b6: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 80024ba: d108 bne.n 80024ce + { + /* Select the Counter Mode */ + tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); + 80024bc: 68fb ldr r3, [r7, #12] + 80024be: f023 0370 bic.w r3, r3, #112 ; 0x70 + 80024c2: 60fb str r3, [r7, #12] + tmpcr1 |= Structure->CounterMode; + 80024c4: 683b ldr r3, [r7, #0] + 80024c6: 685b ldr r3, [r3, #4] + 80024c8: 68fa ldr r2, [r7, #12] + 80024ca: 4313 orrs r3, r2 + 80024cc: 60fb str r3, [r7, #12] + } + + if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) + 80024ce: 687b ldr r3, [r7, #4] + 80024d0: 4a2b ldr r2, [pc, #172] ; (8002580 ) + 80024d2: 4293 cmp r3, r2 + 80024d4: d00f beq.n 80024f6 + 80024d6: 687b ldr r3, [r7, #4] + 80024d8: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 80024dc: d00b beq.n 80024f6 + 80024de: 687b ldr r3, [r7, #4] + 80024e0: 4a28 ldr r2, [pc, #160] ; (8002584 ) + 80024e2: 4293 cmp r3, r2 + 80024e4: d007 beq.n 80024f6 + 80024e6: 687b ldr r3, [r7, #4] + 80024e8: 4a27 ldr r2, [pc, #156] ; (8002588 ) + 80024ea: 4293 cmp r3, r2 + 80024ec: d003 beq.n 80024f6 + 80024ee: 687b ldr r3, [r7, #4] + 80024f0: 4a26 ldr r2, [pc, #152] ; (800258c ) + 80024f2: 4293 cmp r3, r2 + 80024f4: d108 bne.n 8002508 + { + /* Set the clock division */ + tmpcr1 &= ~TIM_CR1_CKD; + 80024f6: 68fb ldr r3, [r7, #12] + 80024f8: f423 7340 bic.w r3, r3, #768 ; 0x300 + 80024fc: 60fb str r3, [r7, #12] + tmpcr1 |= (uint32_t)Structure->ClockDivision; + 80024fe: 683b ldr r3, [r7, #0] + 8002500: 68db ldr r3, [r3, #12] + 8002502: 68fa ldr r2, [r7, #12] + 8002504: 4313 orrs r3, r2 + 8002506: 60fb str r3, [r7, #12] + } + + /* Set the auto-reload preload */ + MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); + 8002508: 68fb ldr r3, [r7, #12] + 800250a: f023 0280 bic.w r2, r3, #128 ; 0x80 + 800250e: 683b ldr r3, [r7, #0] + 8002510: 695b ldr r3, [r3, #20] + 8002512: 4313 orrs r3, r2 + 8002514: 60fb str r3, [r7, #12] + + TIMx->CR1 = tmpcr1; + 8002516: 687b ldr r3, [r7, #4] + 8002518: 68fa ldr r2, [r7, #12] + 800251a: 601a str r2, [r3, #0] + + /* Set the Autoreload value */ + TIMx->ARR = (uint32_t)Structure->Period ; + 800251c: 683b ldr r3, [r7, #0] + 800251e: 689a ldr r2, [r3, #8] + 8002520: 687b ldr r3, [r7, #4] + 8002522: 62da str r2, [r3, #44] ; 0x2c + + /* Set the Prescaler value */ + TIMx->PSC = Structure->Prescaler; + 8002524: 683b ldr r3, [r7, #0] + 8002526: 681a ldr r2, [r3, #0] + 8002528: 687b ldr r3, [r7, #4] + 800252a: 629a str r2, [r3, #40] ; 0x28 + + if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) + 800252c: 687b ldr r3, [r7, #4] + 800252e: 4a14 ldr r2, [pc, #80] ; (8002580 ) + 8002530: 4293 cmp r3, r2 + 8002532: d00b beq.n 800254c + 8002534: 687b ldr r3, [r7, #4] + 8002536: 4a13 ldr r2, [pc, #76] ; (8002584 ) + 8002538: 4293 cmp r3, r2 + 800253a: d007 beq.n 800254c + 800253c: 687b ldr r3, [r7, #4] + 800253e: 4a12 ldr r2, [pc, #72] ; (8002588 ) + 8002540: 4293 cmp r3, r2 + 8002542: d003 beq.n 800254c + 8002544: 687b ldr r3, [r7, #4] + 8002546: 4a11 ldr r2, [pc, #68] ; (800258c ) + 8002548: 4293 cmp r3, r2 + 800254a: d103 bne.n 8002554 + { + /* Set the Repetition Counter value */ + TIMx->RCR = Structure->RepetitionCounter; + 800254c: 683b ldr r3, [r7, #0] + 800254e: 691a ldr r2, [r3, #16] + 8002550: 687b ldr r3, [r7, #4] + 8002552: 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; + 8002554: 687b ldr r3, [r7, #4] + 8002556: 2201 movs r2, #1 + 8002558: 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)) + 800255a: 687b ldr r3, [r7, #4] + 800255c: 691b ldr r3, [r3, #16] + 800255e: f003 0301 and.w r3, r3, #1 + 8002562: 2b01 cmp r3, #1 + 8002564: d105 bne.n 8002572 + { + /* Clear the update flag */ + CLEAR_BIT(TIMx->SR, TIM_FLAG_UPDATE); + 8002566: 687b ldr r3, [r7, #4] + 8002568: 691b ldr r3, [r3, #16] + 800256a: f023 0201 bic.w r2, r3, #1 + 800256e: 687b ldr r3, [r7, #4] + 8002570: 611a str r2, [r3, #16] + } +} + 8002572: bf00 nop + 8002574: 3714 adds r7, #20 + 8002576: 46bd mov sp, r7 + 8002578: f85d 7b04 ldr.w r7, [sp], #4 + 800257c: 4770 bx lr + 800257e: bf00 nop + 8002580: 40012c00 .word 0x40012c00 + 8002584: 40014000 .word 0x40014000 + 8002588: 40014400 .word 0x40014400 + 800258c: 40014800 .word 0x40014800 + +08002590 : + * @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) +{ + 8002590: b480 push {r7} + 8002592: b087 sub sp, #28 + 8002594: af00 add r7, sp, #0 + 8002596: 6078 str r0, [r7, #4] + 8002598: 6039 str r1, [r7, #0] + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + 800259a: 687b ldr r3, [r7, #4] + 800259c: 6a1b ldr r3, [r3, #32] + 800259e: 617b str r3, [r7, #20] + + /* Disable the Channel 1: Reset the CC1E Bit */ + TIMx->CCER &= ~TIM_CCER_CC1E; + 80025a0: 687b ldr r3, [r7, #4] + 80025a2: 6a1b ldr r3, [r3, #32] + 80025a4: f023 0201 bic.w r2, r3, #1 + 80025a8: 687b ldr r3, [r7, #4] + 80025aa: 621a str r2, [r3, #32] + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + 80025ac: 687b ldr r3, [r7, #4] + 80025ae: 685b ldr r3, [r3, #4] + 80025b0: 613b str r3, [r7, #16] + + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR1; + 80025b2: 687b ldr r3, [r7, #4] + 80025b4: 699b ldr r3, [r3, #24] + 80025b6: 60fb str r3, [r7, #12] + + /* Reset the Output Compare Mode Bits */ + tmpccmrx &= ~TIM_CCMR1_OC1M; + 80025b8: 68fb ldr r3, [r7, #12] + 80025ba: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 80025be: f023 0370 bic.w r3, r3, #112 ; 0x70 + 80025c2: 60fb str r3, [r7, #12] + tmpccmrx &= ~TIM_CCMR1_CC1S; + 80025c4: 68fb ldr r3, [r7, #12] + 80025c6: f023 0303 bic.w r3, r3, #3 + 80025ca: 60fb str r3, [r7, #12] + /* Select the Output Compare Mode */ + tmpccmrx |= OC_Config->OCMode; + 80025cc: 683b ldr r3, [r7, #0] + 80025ce: 681b ldr r3, [r3, #0] + 80025d0: 68fa ldr r2, [r7, #12] + 80025d2: 4313 orrs r3, r2 + 80025d4: 60fb str r3, [r7, #12] + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC1P; + 80025d6: 697b ldr r3, [r7, #20] + 80025d8: f023 0302 bic.w r3, r3, #2 + 80025dc: 617b str r3, [r7, #20] + /* Set the Output Compare Polarity */ + tmpccer |= OC_Config->OCPolarity; + 80025de: 683b ldr r3, [r7, #0] + 80025e0: 689b ldr r3, [r3, #8] + 80025e2: 697a ldr r2, [r7, #20] + 80025e4: 4313 orrs r3, r2 + 80025e6: 617b str r3, [r7, #20] + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_1)) + 80025e8: 687b ldr r3, [r7, #4] + 80025ea: 4a28 ldr r2, [pc, #160] ; (800268c ) + 80025ec: 4293 cmp r3, r2 + 80025ee: d00b beq.n 8002608 + 80025f0: 687b ldr r3, [r7, #4] + 80025f2: 4a27 ldr r2, [pc, #156] ; (8002690 ) + 80025f4: 4293 cmp r3, r2 + 80025f6: d007 beq.n 8002608 + 80025f8: 687b ldr r3, [r7, #4] + 80025fa: 4a26 ldr r2, [pc, #152] ; (8002694 ) + 80025fc: 4293 cmp r3, r2 + 80025fe: d003 beq.n 8002608 + 8002600: 687b ldr r3, [r7, #4] + 8002602: 4a25 ldr r2, [pc, #148] ; (8002698 ) + 8002604: 4293 cmp r3, r2 + 8002606: d10c bne.n 8002622 + { + /* Check parameters */ + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC1NP; + 8002608: 697b ldr r3, [r7, #20] + 800260a: f023 0308 bic.w r3, r3, #8 + 800260e: 617b str r3, [r7, #20] + /* Set the Output N Polarity */ + tmpccer |= OC_Config->OCNPolarity; + 8002610: 683b ldr r3, [r7, #0] + 8002612: 68db ldr r3, [r3, #12] + 8002614: 697a ldr r2, [r7, #20] + 8002616: 4313 orrs r3, r2 + 8002618: 617b str r3, [r7, #20] + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC1NE; + 800261a: 697b ldr r3, [r7, #20] + 800261c: f023 0304 bic.w r3, r3, #4 + 8002620: 617b str r3, [r7, #20] + } + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + 8002622: 687b ldr r3, [r7, #4] + 8002624: 4a19 ldr r2, [pc, #100] ; (800268c ) + 8002626: 4293 cmp r3, r2 + 8002628: d00b beq.n 8002642 + 800262a: 687b ldr r3, [r7, #4] + 800262c: 4a18 ldr r2, [pc, #96] ; (8002690 ) + 800262e: 4293 cmp r3, r2 + 8002630: d007 beq.n 8002642 + 8002632: 687b ldr r3, [r7, #4] + 8002634: 4a17 ldr r2, [pc, #92] ; (8002694 ) + 8002636: 4293 cmp r3, r2 + 8002638: d003 beq.n 8002642 + 800263a: 687b ldr r3, [r7, #4] + 800263c: 4a16 ldr r2, [pc, #88] ; (8002698 ) + 800263e: 4293 cmp r3, r2 + 8002640: d111 bne.n 8002666 + /* 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; + 8002642: 693b ldr r3, [r7, #16] + 8002644: f423 7380 bic.w r3, r3, #256 ; 0x100 + 8002648: 613b str r3, [r7, #16] + tmpcr2 &= ~TIM_CR2_OIS1N; + 800264a: 693b ldr r3, [r7, #16] + 800264c: f423 7300 bic.w r3, r3, #512 ; 0x200 + 8002650: 613b str r3, [r7, #16] + /* Set the Output Idle state */ + tmpcr2 |= OC_Config->OCIdleState; + 8002652: 683b ldr r3, [r7, #0] + 8002654: 695b ldr r3, [r3, #20] + 8002656: 693a ldr r2, [r7, #16] + 8002658: 4313 orrs r3, r2 + 800265a: 613b str r3, [r7, #16] + /* Set the Output N Idle state */ + tmpcr2 |= OC_Config->OCNIdleState; + 800265c: 683b ldr r3, [r7, #0] + 800265e: 699b ldr r3, [r3, #24] + 8002660: 693a ldr r2, [r7, #16] + 8002662: 4313 orrs r3, r2 + 8002664: 613b str r3, [r7, #16] + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + 8002666: 687b ldr r3, [r7, #4] + 8002668: 693a ldr r2, [r7, #16] + 800266a: 605a str r2, [r3, #4] + + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmrx; + 800266c: 687b ldr r3, [r7, #4] + 800266e: 68fa ldr r2, [r7, #12] + 8002670: 619a str r2, [r3, #24] + + /* Set the Capture Compare Register value */ + TIMx->CCR1 = OC_Config->Pulse; + 8002672: 683b ldr r3, [r7, #0] + 8002674: 685a ldr r2, [r3, #4] + 8002676: 687b ldr r3, [r7, #4] + 8002678: 635a str r2, [r3, #52] ; 0x34 + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; + 800267a: 687b ldr r3, [r7, #4] + 800267c: 697a ldr r2, [r7, #20] + 800267e: 621a str r2, [r3, #32] +} + 8002680: bf00 nop + 8002682: 371c adds r7, #28 + 8002684: 46bd mov sp, r7 + 8002686: f85d 7b04 ldr.w r7, [sp], #4 + 800268a: 4770 bx lr + 800268c: 40012c00 .word 0x40012c00 + 8002690: 40014000 .word 0x40014000 + 8002694: 40014400 .word 0x40014400 + 8002698: 40014800 .word 0x40014800 + +0800269c : + * @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) +{ + 800269c: b480 push {r7} + 800269e: b087 sub sp, #28 + 80026a0: af00 add r7, sp, #0 + 80026a2: 6078 str r0, [r7, #4] + 80026a4: 6039 str r1, [r7, #0] + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + 80026a6: 687b ldr r3, [r7, #4] + 80026a8: 6a1b ldr r3, [r3, #32] + 80026aa: 617b str r3, [r7, #20] + + /* Disable the Channel 2: Reset the CC2E Bit */ + TIMx->CCER &= ~TIM_CCER_CC2E; + 80026ac: 687b ldr r3, [r7, #4] + 80026ae: 6a1b ldr r3, [r3, #32] + 80026b0: f023 0210 bic.w r2, r3, #16 + 80026b4: 687b ldr r3, [r7, #4] + 80026b6: 621a str r2, [r3, #32] + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + 80026b8: 687b ldr r3, [r7, #4] + 80026ba: 685b ldr r3, [r3, #4] + 80026bc: 613b str r3, [r7, #16] + + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR1; + 80026be: 687b ldr r3, [r7, #4] + 80026c0: 699b ldr r3, [r3, #24] + 80026c2: 60fb str r3, [r7, #12] + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR1_OC2M; + 80026c4: 68fb ldr r3, [r7, #12] + 80026c6: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 + 80026ca: f423 43e0 bic.w r3, r3, #28672 ; 0x7000 + 80026ce: 60fb str r3, [r7, #12] + tmpccmrx &= ~TIM_CCMR1_CC2S; + 80026d0: 68fb ldr r3, [r7, #12] + 80026d2: f423 7340 bic.w r3, r3, #768 ; 0x300 + 80026d6: 60fb str r3, [r7, #12] + + /* Select the Output Compare Mode */ + tmpccmrx |= (OC_Config->OCMode << 8U); + 80026d8: 683b ldr r3, [r7, #0] + 80026da: 681b ldr r3, [r3, #0] + 80026dc: 021b lsls r3, r3, #8 + 80026de: 68fa ldr r2, [r7, #12] + 80026e0: 4313 orrs r3, r2 + 80026e2: 60fb str r3, [r7, #12] + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC2P; + 80026e4: 697b ldr r3, [r7, #20] + 80026e6: f023 0320 bic.w r3, r3, #32 + 80026ea: 617b str r3, [r7, #20] + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 4U); + 80026ec: 683b ldr r3, [r7, #0] + 80026ee: 689b ldr r3, [r3, #8] + 80026f0: 011b lsls r3, r3, #4 + 80026f2: 697a ldr r2, [r7, #20] + 80026f4: 4313 orrs r3, r2 + 80026f6: 617b str r3, [r7, #20] + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_2)) + 80026f8: 687b ldr r3, [r7, #4] + 80026fa: 4a24 ldr r2, [pc, #144] ; (800278c ) + 80026fc: 4293 cmp r3, r2 + 80026fe: d10d bne.n 800271c + { + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC2NP; + 8002700: 697b ldr r3, [r7, #20] + 8002702: f023 0380 bic.w r3, r3, #128 ; 0x80 + 8002706: 617b str r3, [r7, #20] + /* Set the Output N Polarity */ + tmpccer |= (OC_Config->OCNPolarity << 4U); + 8002708: 683b ldr r3, [r7, #0] + 800270a: 68db ldr r3, [r3, #12] + 800270c: 011b lsls r3, r3, #4 + 800270e: 697a ldr r2, [r7, #20] + 8002710: 4313 orrs r3, r2 + 8002712: 617b str r3, [r7, #20] + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC2NE; + 8002714: 697b ldr r3, [r7, #20] + 8002716: f023 0340 bic.w r3, r3, #64 ; 0x40 + 800271a: 617b str r3, [r7, #20] + } + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + 800271c: 687b ldr r3, [r7, #4] + 800271e: 4a1b ldr r2, [pc, #108] ; (800278c ) + 8002720: 4293 cmp r3, r2 + 8002722: d00b beq.n 800273c + 8002724: 687b ldr r3, [r7, #4] + 8002726: 4a1a ldr r2, [pc, #104] ; (8002790 ) + 8002728: 4293 cmp r3, r2 + 800272a: d007 beq.n 800273c + 800272c: 687b ldr r3, [r7, #4] + 800272e: 4a19 ldr r2, [pc, #100] ; (8002794 ) + 8002730: 4293 cmp r3, r2 + 8002732: d003 beq.n 800273c + 8002734: 687b ldr r3, [r7, #4] + 8002736: 4a18 ldr r2, [pc, #96] ; (8002798 ) + 8002738: 4293 cmp r3, r2 + 800273a: d113 bne.n 8002764 + /* 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; + 800273c: 693b ldr r3, [r7, #16] + 800273e: f423 6380 bic.w r3, r3, #1024 ; 0x400 + 8002742: 613b str r3, [r7, #16] +#if defined(TIM_CR2_OIS2N) + tmpcr2 &= ~TIM_CR2_OIS2N; + 8002744: 693b ldr r3, [r7, #16] + 8002746: f423 6300 bic.w r3, r3, #2048 ; 0x800 + 800274a: 613b str r3, [r7, #16] +#endif /* TIM_CR2_OIS2N */ + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 2U); + 800274c: 683b ldr r3, [r7, #0] + 800274e: 695b ldr r3, [r3, #20] + 8002750: 009b lsls r3, r3, #2 + 8002752: 693a ldr r2, [r7, #16] + 8002754: 4313 orrs r3, r2 + 8002756: 613b str r3, [r7, #16] + /* Set the Output N Idle state */ + tmpcr2 |= (OC_Config->OCNIdleState << 2U); + 8002758: 683b ldr r3, [r7, #0] + 800275a: 699b ldr r3, [r3, #24] + 800275c: 009b lsls r3, r3, #2 + 800275e: 693a ldr r2, [r7, #16] + 8002760: 4313 orrs r3, r2 + 8002762: 613b str r3, [r7, #16] + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + 8002764: 687b ldr r3, [r7, #4] + 8002766: 693a ldr r2, [r7, #16] + 8002768: 605a str r2, [r3, #4] + + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmrx; + 800276a: 687b ldr r3, [r7, #4] + 800276c: 68fa ldr r2, [r7, #12] + 800276e: 619a str r2, [r3, #24] + + /* Set the Capture Compare Register value */ + TIMx->CCR2 = OC_Config->Pulse; + 8002770: 683b ldr r3, [r7, #0] + 8002772: 685a ldr r2, [r3, #4] + 8002774: 687b ldr r3, [r7, #4] + 8002776: 639a str r2, [r3, #56] ; 0x38 + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; + 8002778: 687b ldr r3, [r7, #4] + 800277a: 697a ldr r2, [r7, #20] + 800277c: 621a str r2, [r3, #32] +} + 800277e: bf00 nop + 8002780: 371c adds r7, #28 + 8002782: 46bd mov sp, r7 + 8002784: f85d 7b04 ldr.w r7, [sp], #4 + 8002788: 4770 bx lr + 800278a: bf00 nop + 800278c: 40012c00 .word 0x40012c00 + 8002790: 40014000 .word 0x40014000 + 8002794: 40014400 .word 0x40014400 + 8002798: 40014800 .word 0x40014800 + +0800279c : + * @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) +{ + 800279c: b480 push {r7} + 800279e: b087 sub sp, #28 + 80027a0: af00 add r7, sp, #0 + 80027a2: 6078 str r0, [r7, #4] + 80027a4: 6039 str r1, [r7, #0] + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + 80027a6: 687b ldr r3, [r7, #4] + 80027a8: 6a1b ldr r3, [r3, #32] + 80027aa: 617b str r3, [r7, #20] + + /* Disable the Channel 3: Reset the CC2E Bit */ + TIMx->CCER &= ~TIM_CCER_CC3E; + 80027ac: 687b ldr r3, [r7, #4] + 80027ae: 6a1b ldr r3, [r3, #32] + 80027b0: f423 7280 bic.w r2, r3, #256 ; 0x100 + 80027b4: 687b ldr r3, [r7, #4] + 80027b6: 621a str r2, [r3, #32] + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + 80027b8: 687b ldr r3, [r7, #4] + 80027ba: 685b ldr r3, [r3, #4] + 80027bc: 613b str r3, [r7, #16] + + /* Get the TIMx CCMR2 register value */ + tmpccmrx = TIMx->CCMR2; + 80027be: 687b ldr r3, [r7, #4] + 80027c0: 69db ldr r3, [r3, #28] + 80027c2: 60fb str r3, [r7, #12] + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR2_OC3M; + 80027c4: 68fb ldr r3, [r7, #12] + 80027c6: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 80027ca: f023 0370 bic.w r3, r3, #112 ; 0x70 + 80027ce: 60fb str r3, [r7, #12] + tmpccmrx &= ~TIM_CCMR2_CC3S; + 80027d0: 68fb ldr r3, [r7, #12] + 80027d2: f023 0303 bic.w r3, r3, #3 + 80027d6: 60fb str r3, [r7, #12] + /* Select the Output Compare Mode */ + tmpccmrx |= OC_Config->OCMode; + 80027d8: 683b ldr r3, [r7, #0] + 80027da: 681b ldr r3, [r3, #0] + 80027dc: 68fa ldr r2, [r7, #12] + 80027de: 4313 orrs r3, r2 + 80027e0: 60fb str r3, [r7, #12] + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC3P; + 80027e2: 697b ldr r3, [r7, #20] + 80027e4: f423 7300 bic.w r3, r3, #512 ; 0x200 + 80027e8: 617b str r3, [r7, #20] + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 8U); + 80027ea: 683b ldr r3, [r7, #0] + 80027ec: 689b ldr r3, [r3, #8] + 80027ee: 021b lsls r3, r3, #8 + 80027f0: 697a ldr r2, [r7, #20] + 80027f2: 4313 orrs r3, r2 + 80027f4: 617b str r3, [r7, #20] + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_3)) + 80027f6: 687b ldr r3, [r7, #4] + 80027f8: 4a23 ldr r2, [pc, #140] ; (8002888 ) + 80027fa: 4293 cmp r3, r2 + 80027fc: d10d bne.n 800281a + { + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC3NP; + 80027fe: 697b ldr r3, [r7, #20] + 8002800: f423 6300 bic.w r3, r3, #2048 ; 0x800 + 8002804: 617b str r3, [r7, #20] + /* Set the Output N Polarity */ + tmpccer |= (OC_Config->OCNPolarity << 8U); + 8002806: 683b ldr r3, [r7, #0] + 8002808: 68db ldr r3, [r3, #12] + 800280a: 021b lsls r3, r3, #8 + 800280c: 697a ldr r2, [r7, #20] + 800280e: 4313 orrs r3, r2 + 8002810: 617b str r3, [r7, #20] + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC3NE; + 8002812: 697b ldr r3, [r7, #20] + 8002814: f423 6380 bic.w r3, r3, #1024 ; 0x400 + 8002818: 617b str r3, [r7, #20] + } + +#if defined(TIM_CR2_OIS3) + if (IS_TIM_BREAK_INSTANCE(TIMx)) + 800281a: 687b ldr r3, [r7, #4] + 800281c: 4a1a ldr r2, [pc, #104] ; (8002888 ) + 800281e: 4293 cmp r3, r2 + 8002820: d00b beq.n 800283a + 8002822: 687b ldr r3, [r7, #4] + 8002824: 4a19 ldr r2, [pc, #100] ; (800288c ) + 8002826: 4293 cmp r3, r2 + 8002828: d007 beq.n 800283a + 800282a: 687b ldr r3, [r7, #4] + 800282c: 4a18 ldr r2, [pc, #96] ; (8002890 ) + 800282e: 4293 cmp r3, r2 + 8002830: d003 beq.n 800283a + 8002832: 687b ldr r3, [r7, #4] + 8002834: 4a17 ldr r2, [pc, #92] ; (8002894 ) + 8002836: 4293 cmp r3, r2 + 8002838: d113 bne.n 8002862 + /* 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; + 800283a: 693b ldr r3, [r7, #16] + 800283c: f423 5380 bic.w r3, r3, #4096 ; 0x1000 + 8002840: 613b str r3, [r7, #16] + tmpcr2 &= ~TIM_CR2_OIS3N; + 8002842: 693b ldr r3, [r7, #16] + 8002844: f423 5300 bic.w r3, r3, #8192 ; 0x2000 + 8002848: 613b str r3, [r7, #16] + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 4U); + 800284a: 683b ldr r3, [r7, #0] + 800284c: 695b ldr r3, [r3, #20] + 800284e: 011b lsls r3, r3, #4 + 8002850: 693a ldr r2, [r7, #16] + 8002852: 4313 orrs r3, r2 + 8002854: 613b str r3, [r7, #16] + /* Set the Output N Idle state */ + tmpcr2 |= (OC_Config->OCNIdleState << 4U); + 8002856: 683b ldr r3, [r7, #0] + 8002858: 699b ldr r3, [r3, #24] + 800285a: 011b lsls r3, r3, #4 + 800285c: 693a ldr r2, [r7, #16] + 800285e: 4313 orrs r3, r2 + 8002860: 613b str r3, [r7, #16] + } +#endif /* TIM_CR2_OIS3 */ + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + 8002862: 687b ldr r3, [r7, #4] + 8002864: 693a ldr r2, [r7, #16] + 8002866: 605a str r2, [r3, #4] + + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmrx; + 8002868: 687b ldr r3, [r7, #4] + 800286a: 68fa ldr r2, [r7, #12] + 800286c: 61da str r2, [r3, #28] + + /* Set the Capture Compare Register value */ + TIMx->CCR3 = OC_Config->Pulse; + 800286e: 683b ldr r3, [r7, #0] + 8002870: 685a ldr r2, [r3, #4] + 8002872: 687b ldr r3, [r7, #4] + 8002874: 63da str r2, [r3, #60] ; 0x3c + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; + 8002876: 687b ldr r3, [r7, #4] + 8002878: 697a ldr r2, [r7, #20] + 800287a: 621a str r2, [r3, #32] +} + 800287c: bf00 nop + 800287e: 371c adds r7, #28 + 8002880: 46bd mov sp, r7 + 8002882: f85d 7b04 ldr.w r7, [sp], #4 + 8002886: 4770 bx lr + 8002888: 40012c00 .word 0x40012c00 + 800288c: 40014000 .word 0x40014000 + 8002890: 40014400 .word 0x40014400 + 8002894: 40014800 .word 0x40014800 + +08002898 : + * @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) +{ + 8002898: b480 push {r7} + 800289a: b087 sub sp, #28 + 800289c: af00 add r7, sp, #0 + 800289e: 6078 str r0, [r7, #4] + 80028a0: 6039 str r1, [r7, #0] + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + 80028a2: 687b ldr r3, [r7, #4] + 80028a4: 6a1b ldr r3, [r3, #32] + 80028a6: 613b str r3, [r7, #16] + + /* Disable the Channel 4: Reset the CC4E Bit */ + TIMx->CCER &= ~TIM_CCER_CC4E; + 80028a8: 687b ldr r3, [r7, #4] + 80028aa: 6a1b ldr r3, [r3, #32] + 80028ac: f423 5280 bic.w r2, r3, #4096 ; 0x1000 + 80028b0: 687b ldr r3, [r7, #4] + 80028b2: 621a str r2, [r3, #32] + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + 80028b4: 687b ldr r3, [r7, #4] + 80028b6: 685b ldr r3, [r3, #4] + 80028b8: 617b str r3, [r7, #20] + + /* Get the TIMx CCMR2 register value */ + tmpccmrx = TIMx->CCMR2; + 80028ba: 687b ldr r3, [r7, #4] + 80028bc: 69db ldr r3, [r3, #28] + 80028be: 60fb str r3, [r7, #12] + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR2_OC4M; + 80028c0: 68fb ldr r3, [r7, #12] + 80028c2: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 + 80028c6: f423 43e0 bic.w r3, r3, #28672 ; 0x7000 + 80028ca: 60fb str r3, [r7, #12] + tmpccmrx &= ~TIM_CCMR2_CC4S; + 80028cc: 68fb ldr r3, [r7, #12] + 80028ce: f423 7340 bic.w r3, r3, #768 ; 0x300 + 80028d2: 60fb str r3, [r7, #12] + + /* Select the Output Compare Mode */ + tmpccmrx |= (OC_Config->OCMode << 8U); + 80028d4: 683b ldr r3, [r7, #0] + 80028d6: 681b ldr r3, [r3, #0] + 80028d8: 021b lsls r3, r3, #8 + 80028da: 68fa ldr r2, [r7, #12] + 80028dc: 4313 orrs r3, r2 + 80028de: 60fb str r3, [r7, #12] + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC4P; + 80028e0: 693b ldr r3, [r7, #16] + 80028e2: f423 5300 bic.w r3, r3, #8192 ; 0x2000 + 80028e6: 613b str r3, [r7, #16] + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 12U); + 80028e8: 683b ldr r3, [r7, #0] + 80028ea: 689b ldr r3, [r3, #8] + 80028ec: 031b lsls r3, r3, #12 + 80028ee: 693a ldr r2, [r7, #16] + 80028f0: 4313 orrs r3, r2 + 80028f2: 613b str r3, [r7, #16] + +#if defined(TIM_CR2_OIS4) + if (IS_TIM_BREAK_INSTANCE(TIMx)) + 80028f4: 687b ldr r3, [r7, #4] + 80028f6: 4a16 ldr r2, [pc, #88] ; (8002950 ) + 80028f8: 4293 cmp r3, r2 + 80028fa: d00b beq.n 8002914 + 80028fc: 687b ldr r3, [r7, #4] + 80028fe: 4a15 ldr r2, [pc, #84] ; (8002954 ) + 8002900: 4293 cmp r3, r2 + 8002902: d007 beq.n 8002914 + 8002904: 687b ldr r3, [r7, #4] + 8002906: 4a14 ldr r2, [pc, #80] ; (8002958 ) + 8002908: 4293 cmp r3, r2 + 800290a: d003 beq.n 8002914 + 800290c: 687b ldr r3, [r7, #4] + 800290e: 4a13 ldr r2, [pc, #76] ; (800295c ) + 8002910: 4293 cmp r3, r2 + 8002912: d109 bne.n 8002928 + { + /* Check parameters */ + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS4; + 8002914: 697b ldr r3, [r7, #20] + 8002916: f423 4380 bic.w r3, r3, #16384 ; 0x4000 + 800291a: 617b str r3, [r7, #20] + + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 6U); + 800291c: 683b ldr r3, [r7, #0] + 800291e: 695b ldr r3, [r3, #20] + 8002920: 019b lsls r3, r3, #6 + 8002922: 697a ldr r2, [r7, #20] + 8002924: 4313 orrs r3, r2 + 8002926: 617b str r3, [r7, #20] + } +#endif /* TIM_CR2_OIS4 */ + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + 8002928: 687b ldr r3, [r7, #4] + 800292a: 697a ldr r2, [r7, #20] + 800292c: 605a str r2, [r3, #4] + + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmrx; + 800292e: 687b ldr r3, [r7, #4] + 8002930: 68fa ldr r2, [r7, #12] + 8002932: 61da str r2, [r3, #28] + + /* Set the Capture Compare Register value */ + TIMx->CCR4 = OC_Config->Pulse; + 8002934: 683b ldr r3, [r7, #0] + 8002936: 685a ldr r2, [r3, #4] + 8002938: 687b ldr r3, [r7, #4] + 800293a: 641a str r2, [r3, #64] ; 0x40 + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; + 800293c: 687b ldr r3, [r7, #4] + 800293e: 693a ldr r2, [r7, #16] + 8002940: 621a str r2, [r3, #32] +} + 8002942: bf00 nop + 8002944: 371c adds r7, #28 + 8002946: 46bd mov sp, r7 + 8002948: f85d 7b04 ldr.w r7, [sp], #4 + 800294c: 4770 bx lr + 800294e: bf00 nop + 8002950: 40012c00 .word 0x40012c00 + 8002954: 40014000 .word 0x40014000 + 8002958: 40014400 .word 0x40014400 + 800295c: 40014800 .word 0x40014800 + +08002960 : + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC5_SetConfig(TIM_TypeDef *TIMx, + const TIM_OC_InitTypeDef *OC_Config) +{ + 8002960: b480 push {r7} + 8002962: b087 sub sp, #28 + 8002964: af00 add r7, sp, #0 + 8002966: 6078 str r0, [r7, #4] + 8002968: 6039 str r1, [r7, #0] + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + 800296a: 687b ldr r3, [r7, #4] + 800296c: 6a1b ldr r3, [r3, #32] + 800296e: 613b str r3, [r7, #16] + + /* Disable the output: Reset the CCxE Bit */ + TIMx->CCER &= ~TIM_CCER_CC5E; + 8002970: 687b ldr r3, [r7, #4] + 8002972: 6a1b ldr r3, [r3, #32] + 8002974: f423 3280 bic.w r2, r3, #65536 ; 0x10000 + 8002978: 687b ldr r3, [r7, #4] + 800297a: 621a str r2, [r3, #32] + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + 800297c: 687b ldr r3, [r7, #4] + 800297e: 685b ldr r3, [r3, #4] + 8002980: 617b str r3, [r7, #20] + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR3; + 8002982: 687b ldr r3, [r7, #4] + 8002984: 6d5b ldr r3, [r3, #84] ; 0x54 + 8002986: 60fb str r3, [r7, #12] + + /* Reset the Output Compare Mode Bits */ + tmpccmrx &= ~(TIM_CCMR3_OC5M); + 8002988: 68fb ldr r3, [r7, #12] + 800298a: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 800298e: f023 0370 bic.w r3, r3, #112 ; 0x70 + 8002992: 60fb str r3, [r7, #12] + /* Select the Output Compare Mode */ + tmpccmrx |= OC_Config->OCMode; + 8002994: 683b ldr r3, [r7, #0] + 8002996: 681b ldr r3, [r3, #0] + 8002998: 68fa ldr r2, [r7, #12] + 800299a: 4313 orrs r3, r2 + 800299c: 60fb str r3, [r7, #12] + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC5P; + 800299e: 693b ldr r3, [r7, #16] + 80029a0: f423 3300 bic.w r3, r3, #131072 ; 0x20000 + 80029a4: 613b str r3, [r7, #16] + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 16U); + 80029a6: 683b ldr r3, [r7, #0] + 80029a8: 689b ldr r3, [r3, #8] + 80029aa: 041b lsls r3, r3, #16 + 80029ac: 693a ldr r2, [r7, #16] + 80029ae: 4313 orrs r3, r2 + 80029b0: 613b str r3, [r7, #16] + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + 80029b2: 687b ldr r3, [r7, #4] + 80029b4: 4a15 ldr r2, [pc, #84] ; (8002a0c ) + 80029b6: 4293 cmp r3, r2 + 80029b8: d00b beq.n 80029d2 + 80029ba: 687b ldr r3, [r7, #4] + 80029bc: 4a14 ldr r2, [pc, #80] ; (8002a10 ) + 80029be: 4293 cmp r3, r2 + 80029c0: d007 beq.n 80029d2 + 80029c2: 687b ldr r3, [r7, #4] + 80029c4: 4a13 ldr r2, [pc, #76] ; (8002a14 ) + 80029c6: 4293 cmp r3, r2 + 80029c8: d003 beq.n 80029d2 + 80029ca: 687b ldr r3, [r7, #4] + 80029cc: 4a12 ldr r2, [pc, #72] ; (8002a18 ) + 80029ce: 4293 cmp r3, r2 + 80029d0: d109 bne.n 80029e6 + { + /* Reset the Output Compare IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS5; + 80029d2: 697b ldr r3, [r7, #20] + 80029d4: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 80029d8: 617b str r3, [r7, #20] + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 8U); + 80029da: 683b ldr r3, [r7, #0] + 80029dc: 695b ldr r3, [r3, #20] + 80029de: 021b lsls r3, r3, #8 + 80029e0: 697a ldr r2, [r7, #20] + 80029e2: 4313 orrs r3, r2 + 80029e4: 617b str r3, [r7, #20] + } + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + 80029e6: 687b ldr r3, [r7, #4] + 80029e8: 697a ldr r2, [r7, #20] + 80029ea: 605a str r2, [r3, #4] + + /* Write to TIMx CCMR3 */ + TIMx->CCMR3 = tmpccmrx; + 80029ec: 687b ldr r3, [r7, #4] + 80029ee: 68fa ldr r2, [r7, #12] + 80029f0: 655a str r2, [r3, #84] ; 0x54 + + /* Set the Capture Compare Register value */ + TIMx->CCR5 = OC_Config->Pulse; + 80029f2: 683b ldr r3, [r7, #0] + 80029f4: 685a ldr r2, [r3, #4] + 80029f6: 687b ldr r3, [r7, #4] + 80029f8: 659a str r2, [r3, #88] ; 0x58 + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; + 80029fa: 687b ldr r3, [r7, #4] + 80029fc: 693a ldr r2, [r7, #16] + 80029fe: 621a str r2, [r3, #32] +} + 8002a00: bf00 nop + 8002a02: 371c adds r7, #28 + 8002a04: 46bd mov sp, r7 + 8002a06: f85d 7b04 ldr.w r7, [sp], #4 + 8002a0a: 4770 bx lr + 8002a0c: 40012c00 .word 0x40012c00 + 8002a10: 40014000 .word 0x40014000 + 8002a14: 40014400 .word 0x40014400 + 8002a18: 40014800 .word 0x40014800 + +08002a1c : + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC6_SetConfig(TIM_TypeDef *TIMx, + const TIM_OC_InitTypeDef *OC_Config) +{ + 8002a1c: b480 push {r7} + 8002a1e: b087 sub sp, #28 + 8002a20: af00 add r7, sp, #0 + 8002a22: 6078 str r0, [r7, #4] + 8002a24: 6039 str r1, [r7, #0] + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + 8002a26: 687b ldr r3, [r7, #4] + 8002a28: 6a1b ldr r3, [r3, #32] + 8002a2a: 613b str r3, [r7, #16] + + /* Disable the output: Reset the CCxE Bit */ + TIMx->CCER &= ~TIM_CCER_CC6E; + 8002a2c: 687b ldr r3, [r7, #4] + 8002a2e: 6a1b ldr r3, [r3, #32] + 8002a30: f423 1280 bic.w r2, r3, #1048576 ; 0x100000 + 8002a34: 687b ldr r3, [r7, #4] + 8002a36: 621a str r2, [r3, #32] + + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + 8002a38: 687b ldr r3, [r7, #4] + 8002a3a: 685b ldr r3, [r3, #4] + 8002a3c: 617b str r3, [r7, #20] + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR3; + 8002a3e: 687b ldr r3, [r7, #4] + 8002a40: 6d5b ldr r3, [r3, #84] ; 0x54 + 8002a42: 60fb str r3, [r7, #12] + + /* Reset the Output Compare Mode Bits */ + tmpccmrx &= ~(TIM_CCMR3_OC6M); + 8002a44: 68fb ldr r3, [r7, #12] + 8002a46: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 + 8002a4a: f423 43e0 bic.w r3, r3, #28672 ; 0x7000 + 8002a4e: 60fb str r3, [r7, #12] + /* Select the Output Compare Mode */ + tmpccmrx |= (OC_Config->OCMode << 8U); + 8002a50: 683b ldr r3, [r7, #0] + 8002a52: 681b ldr r3, [r3, #0] + 8002a54: 021b lsls r3, r3, #8 + 8002a56: 68fa ldr r2, [r7, #12] + 8002a58: 4313 orrs r3, r2 + 8002a5a: 60fb str r3, [r7, #12] + + /* Reset the Output Polarity level */ + tmpccer &= (uint32_t)~TIM_CCER_CC6P; + 8002a5c: 693b ldr r3, [r7, #16] + 8002a5e: f423 1300 bic.w r3, r3, #2097152 ; 0x200000 + 8002a62: 613b str r3, [r7, #16] + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 20U); + 8002a64: 683b ldr r3, [r7, #0] + 8002a66: 689b ldr r3, [r3, #8] + 8002a68: 051b lsls r3, r3, #20 + 8002a6a: 693a ldr r2, [r7, #16] + 8002a6c: 4313 orrs r3, r2 + 8002a6e: 613b str r3, [r7, #16] + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + 8002a70: 687b ldr r3, [r7, #4] + 8002a72: 4a16 ldr r2, [pc, #88] ; (8002acc ) + 8002a74: 4293 cmp r3, r2 + 8002a76: d00b beq.n 8002a90 + 8002a78: 687b ldr r3, [r7, #4] + 8002a7a: 4a15 ldr r2, [pc, #84] ; (8002ad0 ) + 8002a7c: 4293 cmp r3, r2 + 8002a7e: d007 beq.n 8002a90 + 8002a80: 687b ldr r3, [r7, #4] + 8002a82: 4a14 ldr r2, [pc, #80] ; (8002ad4 ) + 8002a84: 4293 cmp r3, r2 + 8002a86: d003 beq.n 8002a90 + 8002a88: 687b ldr r3, [r7, #4] + 8002a8a: 4a13 ldr r2, [pc, #76] ; (8002ad8 ) + 8002a8c: 4293 cmp r3, r2 + 8002a8e: d109 bne.n 8002aa4 + { + /* Reset the Output Compare IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS6; + 8002a90: 697b ldr r3, [r7, #20] + 8002a92: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 8002a96: 617b str r3, [r7, #20] + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 10U); + 8002a98: 683b ldr r3, [r7, #0] + 8002a9a: 695b ldr r3, [r3, #20] + 8002a9c: 029b lsls r3, r3, #10 + 8002a9e: 697a ldr r2, [r7, #20] + 8002aa0: 4313 orrs r3, r2 + 8002aa2: 617b str r3, [r7, #20] + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + 8002aa4: 687b ldr r3, [r7, #4] + 8002aa6: 697a ldr r2, [r7, #20] + 8002aa8: 605a str r2, [r3, #4] + + /* Write to TIMx CCMR3 */ + TIMx->CCMR3 = tmpccmrx; + 8002aaa: 687b ldr r3, [r7, #4] + 8002aac: 68fa ldr r2, [r7, #12] + 8002aae: 655a str r2, [r3, #84] ; 0x54 + + /* Set the Capture Compare Register value */ + TIMx->CCR6 = OC_Config->Pulse; + 8002ab0: 683b ldr r3, [r7, #0] + 8002ab2: 685a ldr r2, [r3, #4] + 8002ab4: 687b ldr r3, [r7, #4] + 8002ab6: 65da str r2, [r3, #92] ; 0x5c + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; + 8002ab8: 687b ldr r3, [r7, #4] + 8002aba: 693a ldr r2, [r7, #16] + 8002abc: 621a str r2, [r3, #32] +} + 8002abe: bf00 nop + 8002ac0: 371c adds r7, #28 + 8002ac2: 46bd mov sp, r7 + 8002ac4: f85d 7b04 ldr.w r7, [sp], #4 + 8002ac8: 4770 bx lr + 8002aca: bf00 nop + 8002acc: 40012c00 .word 0x40012c00 + 8002ad0: 40014000 .word 0x40014000 + 8002ad4: 40014400 .word 0x40014400 + 8002ad8: 40014800 .word 0x40014800 + +08002adc : + * @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) +{ + 8002adc: b480 push {r7} + 8002ade: b087 sub sp, #28 + 8002ae0: af00 add r7, sp, #0 + 8002ae2: 60f8 str r0, [r7, #12] + 8002ae4: 60b9 str r1, [r7, #8] + 8002ae6: 607a str r2, [r7, #4] + + /* Check the parameters */ + assert_param(IS_TIM_CC1_INSTANCE(TIMx)); + assert_param(IS_TIM_CHANNELS(Channel)); + + tmp = TIM_CCER_CC1E << (Channel & 0x1FU); /* 0x1FU = 31 bits max shift */ + 8002ae8: 68bb ldr r3, [r7, #8] + 8002aea: f003 031f and.w r3, r3, #31 + 8002aee: 2201 movs r2, #1 + 8002af0: fa02 f303 lsl.w r3, r2, r3 + 8002af4: 617b str r3, [r7, #20] + + /* Reset the CCxE Bit */ + TIMx->CCER &= ~tmp; + 8002af6: 68fb ldr r3, [r7, #12] + 8002af8: 6a1a ldr r2, [r3, #32] + 8002afa: 697b ldr r3, [r7, #20] + 8002afc: 43db mvns r3, r3 + 8002afe: 401a ands r2, r3 + 8002b00: 68fb ldr r3, [r7, #12] + 8002b02: 621a str r2, [r3, #32] + + /* Set or reset the CCxE Bit */ + TIMx->CCER |= (uint32_t)(ChannelState << (Channel & 0x1FU)); /* 0x1FU = 31 bits max shift */ + 8002b04: 68fb ldr r3, [r7, #12] + 8002b06: 6a1a ldr r2, [r3, #32] + 8002b08: 68bb ldr r3, [r7, #8] + 8002b0a: f003 031f and.w r3, r3, #31 + 8002b0e: 6879 ldr r1, [r7, #4] + 8002b10: fa01 f303 lsl.w r3, r1, r3 + 8002b14: 431a orrs r2, r3 + 8002b16: 68fb ldr r3, [r7, #12] + 8002b18: 621a str r2, [r3, #32] +} + 8002b1a: bf00 nop + 8002b1c: 371c adds r7, #28 + 8002b1e: 46bd mov sp, r7 + 8002b20: f85d 7b04 ldr.w r7, [sp], #4 + 8002b24: 4770 bx lr + ... + +08002b28 : + * mode. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, + const TIM_MasterConfigTypeDef *sMasterConfig) +{ + 8002b28: b480 push {r7} + 8002b2a: b085 sub sp, #20 + 8002b2c: af00 add r7, sp, #0 + 8002b2e: 6078 str r0, [r7, #4] + 8002b30: 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); + 8002b32: 687b ldr r3, [r7, #4] + 8002b34: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 8002b38: 2b01 cmp r3, #1 + 8002b3a: d101 bne.n 8002b40 + 8002b3c: 2302 movs r3, #2 + 8002b3e: e04f b.n 8002be0 + 8002b40: 687b ldr r3, [r7, #4] + 8002b42: 2201 movs r2, #1 + 8002b44: f883 203c strb.w r2, [r3, #60] ; 0x3c + + /* Change the handler state */ + htim->State = HAL_TIM_STATE_BUSY; + 8002b48: 687b ldr r3, [r7, #4] + 8002b4a: 2202 movs r2, #2 + 8002b4c: f883 203d strb.w r2, [r3, #61] ; 0x3d + + /* Get the TIMx CR2 register value */ + tmpcr2 = htim->Instance->CR2; + 8002b50: 687b ldr r3, [r7, #4] + 8002b52: 681b ldr r3, [r3, #0] + 8002b54: 685b ldr r3, [r3, #4] + 8002b56: 60fb str r3, [r7, #12] + + /* Get the TIMx SMCR register value */ + tmpsmcr = htim->Instance->SMCR; + 8002b58: 687b ldr r3, [r7, #4] + 8002b5a: 681b ldr r3, [r3, #0] + 8002b5c: 689b ldr r3, [r3, #8] + 8002b5e: 60bb str r3, [r7, #8] + +#if defined(TIM_CR2_MMS2) + /* If the timer supports ADC synchronization through TRGO2, set the master mode selection 2 */ + if (IS_TIM_TRGO2_INSTANCE(htim->Instance)) + 8002b60: 687b ldr r3, [r7, #4] + 8002b62: 681b ldr r3, [r3, #0] + 8002b64: 4a21 ldr r2, [pc, #132] ; (8002bec ) + 8002b66: 4293 cmp r3, r2 + 8002b68: d108 bne.n 8002b7c + { + /* Check the parameters */ + assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2)); + + /* Clear the MMS2 bits */ + tmpcr2 &= ~TIM_CR2_MMS2; + 8002b6a: 68fb ldr r3, [r7, #12] + 8002b6c: f423 0370 bic.w r3, r3, #15728640 ; 0xf00000 + 8002b70: 60fb str r3, [r7, #12] + /* Select the TRGO2 source*/ + tmpcr2 |= sMasterConfig->MasterOutputTrigger2; + 8002b72: 683b ldr r3, [r7, #0] + 8002b74: 685b ldr r3, [r3, #4] + 8002b76: 68fa ldr r2, [r7, #12] + 8002b78: 4313 orrs r3, r2 + 8002b7a: 60fb str r3, [r7, #12] + } +#endif /* TIM_CR2_MMS2 */ + + /* Reset the MMS Bits */ + tmpcr2 &= ~TIM_CR2_MMS; + 8002b7c: 68fb ldr r3, [r7, #12] + 8002b7e: f023 0370 bic.w r3, r3, #112 ; 0x70 + 8002b82: 60fb str r3, [r7, #12] + /* Select the TRGO source */ + tmpcr2 |= sMasterConfig->MasterOutputTrigger; + 8002b84: 683b ldr r3, [r7, #0] + 8002b86: 681b ldr r3, [r3, #0] + 8002b88: 68fa ldr r2, [r7, #12] + 8002b8a: 4313 orrs r3, r2 + 8002b8c: 60fb str r3, [r7, #12] + + /* Update TIMx CR2 */ + htim->Instance->CR2 = tmpcr2; + 8002b8e: 687b ldr r3, [r7, #4] + 8002b90: 681b ldr r3, [r3, #0] + 8002b92: 68fa ldr r2, [r7, #12] + 8002b94: 605a str r2, [r3, #4] + + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 8002b96: 687b ldr r3, [r7, #4] + 8002b98: 681b ldr r3, [r3, #0] + 8002b9a: 4a14 ldr r2, [pc, #80] ; (8002bec ) + 8002b9c: 4293 cmp r3, r2 + 8002b9e: d009 beq.n 8002bb4 + 8002ba0: 687b ldr r3, [r7, #4] + 8002ba2: 681b ldr r3, [r3, #0] + 8002ba4: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 8002ba8: d004 beq.n 8002bb4 + 8002baa: 687b ldr r3, [r7, #4] + 8002bac: 681b ldr r3, [r3, #0] + 8002bae: 4a10 ldr r2, [pc, #64] ; (8002bf0 ) + 8002bb0: 4293 cmp r3, r2 + 8002bb2: d10c bne.n 8002bce + { + /* Reset the MSM Bit */ + tmpsmcr &= ~TIM_SMCR_MSM; + 8002bb4: 68bb ldr r3, [r7, #8] + 8002bb6: f023 0380 bic.w r3, r3, #128 ; 0x80 + 8002bba: 60bb str r3, [r7, #8] + /* Set master mode */ + tmpsmcr |= sMasterConfig->MasterSlaveMode; + 8002bbc: 683b ldr r3, [r7, #0] + 8002bbe: 689b ldr r3, [r3, #8] + 8002bc0: 68ba ldr r2, [r7, #8] + 8002bc2: 4313 orrs r3, r2 + 8002bc4: 60bb str r3, [r7, #8] + + /* Update TIMx SMCR */ + htim->Instance->SMCR = tmpsmcr; + 8002bc6: 687b ldr r3, [r7, #4] + 8002bc8: 681b ldr r3, [r3, #0] + 8002bca: 68ba ldr r2, [r7, #8] + 8002bcc: 609a str r2, [r3, #8] + } + + /* Change the htim state */ + htim->State = HAL_TIM_STATE_READY; + 8002bce: 687b ldr r3, [r7, #4] + 8002bd0: 2201 movs r2, #1 + 8002bd2: f883 203d strb.w r2, [r3, #61] ; 0x3d + + __HAL_UNLOCK(htim); + 8002bd6: 687b ldr r3, [r7, #4] + 8002bd8: 2200 movs r2, #0 + 8002bda: f883 203c strb.w r2, [r3, #60] ; 0x3c + + return HAL_OK; + 8002bde: 2300 movs r3, #0 +} + 8002be0: 4618 mov r0, r3 + 8002be2: 3714 adds r7, #20 + 8002be4: 46bd mov sp, r7 + 8002be6: f85d 7b04 ldr.w r7, [sp], #4 + 8002bea: 4770 bx lr + 8002bec: 40012c00 .word 0x40012c00 + 8002bf0: 40014000 .word 0x40014000 + +08002bf4 <__libc_init_array>: + 8002bf4: b570 push {r4, r5, r6, lr} + 8002bf6: 4d0d ldr r5, [pc, #52] ; (8002c2c <__libc_init_array+0x38>) + 8002bf8: 4c0d ldr r4, [pc, #52] ; (8002c30 <__libc_init_array+0x3c>) + 8002bfa: 1b64 subs r4, r4, r5 + 8002bfc: 10a4 asrs r4, r4, #2 + 8002bfe: 2600 movs r6, #0 + 8002c00: 42a6 cmp r6, r4 + 8002c02: d109 bne.n 8002c18 <__libc_init_array+0x24> + 8002c04: 4d0b ldr r5, [pc, #44] ; (8002c34 <__libc_init_array+0x40>) + 8002c06: 4c0c ldr r4, [pc, #48] ; (8002c38 <__libc_init_array+0x44>) + 8002c08: f000 f820 bl 8002c4c <_init> + 8002c0c: 1b64 subs r4, r4, r5 + 8002c0e: 10a4 asrs r4, r4, #2 + 8002c10: 2600 movs r6, #0 + 8002c12: 42a6 cmp r6, r4 + 8002c14: d105 bne.n 8002c22 <__libc_init_array+0x2e> + 8002c16: bd70 pop {r4, r5, r6, pc} + 8002c18: f855 3b04 ldr.w r3, [r5], #4 + 8002c1c: 4798 blx r3 + 8002c1e: 3601 adds r6, #1 + 8002c20: e7ee b.n 8002c00 <__libc_init_array+0xc> + 8002c22: f855 3b04 ldr.w r3, [r5], #4 + 8002c26: 4798 blx r3 + 8002c28: 3601 adds r6, #1 + 8002c2a: e7f2 b.n 8002c12 <__libc_init_array+0x1e> + 8002c2c: 08002c94 .word 0x08002c94 + 8002c30: 08002c94 .word 0x08002c94 + 8002c34: 08002c94 .word 0x08002c94 + 8002c38: 08002c98 .word 0x08002c98 + +08002c3c : + 8002c3c: 4402 add r2, r0 + 8002c3e: 4603 mov r3, r0 + 8002c40: 4293 cmp r3, r2 + 8002c42: d100 bne.n 8002c46 + 8002c44: 4770 bx lr + 8002c46: f803 1b01 strb.w r1, [r3], #1 + 8002c4a: e7f9 b.n 8002c40 + +08002c4c <_init>: + 8002c4c: b5f8 push {r3, r4, r5, r6, r7, lr} + 8002c4e: bf00 nop + 8002c50: bcf8 pop {r3, r4, r5, r6, r7} + 8002c52: bc08 pop {r3} + 8002c54: 469e mov lr, r3 + 8002c56: 4770 bx lr + +08002c58 <_fini>: + 8002c58: b5f8 push {r3, r4, r5, r6, r7, lr} + 8002c5a: bf00 nop + 8002c5c: bcf8 pop {r3, r4, r5, r6, r7} + 8002c5e: bc08 pop {r3} + 8002c60: 469e mov lr, r3 + 8002c62: 4770 bx lr diff --git a/Debug/Open_Box.map b/Debug/Open_Box.map new file mode 100644 index 0000000..347bb51 --- /dev/null +++ b/Debug/Open_Box.map @@ -0,0 +1,3216 @@ +Archive member included to satisfy reference by file (symbol) + +c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-errno.o) + ./Core/Src/syscalls.o (__errno) +c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-exit.o) + c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o (exit) +c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-impure.o) + c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-exit.o) (_global_impure_ptr) +c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-init.o) + c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o (__libc_init_array) +c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-memset.o) + c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o (memset) + +Discarded input sections + + .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crti.o + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crti.o + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crti.o + .data 0x0000000000000000 0x4 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o + .rodata 0x0000000000000000 0x24 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o + .text 0x0000000000000000 0x7c c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .ARM.extab 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .ARM.exidx 0x0000000000000000 0x10 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .ARM.attributes + 0x0000000000000000 0x1c c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/main.o + .text 0x0000000000000000 0x0 ./Core/Src/main.o + .data 0x0000000000000000 0x0 ./Core/Src/main.o + .bss 0x0000000000000000 0x0 ./Core/Src/main.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_hal_msp.o + .text 0x0000000000000000 0x0 ./Core/Src/stm32f3xx_hal_msp.o + .data 0x0000000000000000 0x0 ./Core/Src/stm32f3xx_hal_msp.o + .bss 0x0000000000000000 0x0 ./Core/Src/stm32f3xx_hal_msp.o + .text.HAL_TIM_PWM_MspDeInit + 0x0000000000000000 0x30 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0xa78 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x151 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x2e ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x28 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x8e ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x51 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x103 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x6a ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1df ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0xd9 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0xf07 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x110e8 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x6d ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x3574 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x174 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x55 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x8f8 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x41b ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1b5 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x161 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1d5 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1bc ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x3c ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x57 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0xc5 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x19f ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x22c ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x5b ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0xa5 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x81 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0xd3 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0xa60 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x41 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1f7 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x0000000000000000 0x40 ./Core/Src/stm32f3xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f3xx_it.o + .text 0x0000000000000000 0x0 ./Core/Src/stm32f3xx_it.o + .data 0x0000000000000000 0x0 ./Core/Src/stm32f3xx_it.o + .bss 0x0000000000000000 0x0 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0xa78 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x151 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x2e ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x28 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x8e ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x51 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x103 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x6a ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x1df ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0xd9 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0xf07 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x110e8 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x6d ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x3574 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x174 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x55 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x8f8 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x41b ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x1b5 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x161 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x1d5 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x1bc ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x3c ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x57 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0xc5 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x19f ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x22c ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x5b ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0xa5 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x81 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0xd3 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0xa60 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x41 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x1f7 ./Core/Src/stm32f3xx_it.o + .debug_macro 0x0000000000000000 0x40 ./Core/Src/stm32f3xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/syscalls.o + .text 0x0000000000000000 0x0 ./Core/Src/syscalls.o + .data 0x0000000000000000 0x0 ./Core/Src/syscalls.o + .bss 0x0000000000000000 0x0 ./Core/Src/syscalls.o + .bss.__env 0x0000000000000000 0x4 ./Core/Src/syscalls.o + .data.environ 0x0000000000000000 0x4 ./Core/Src/syscalls.o + .text.initialise_monitor_handles + 0x0000000000000000 0xe ./Core/Src/syscalls.o + .text._getpid 0x0000000000000000 0x10 ./Core/Src/syscalls.o + .text._kill 0x0000000000000000 0x20 ./Core/Src/syscalls.o + .text._exit 0x0000000000000000 0x14 ./Core/Src/syscalls.o + .text._read 0x0000000000000000 0x3a ./Core/Src/syscalls.o + .text._write 0x0000000000000000 0x38 ./Core/Src/syscalls.o + .text._close 0x0000000000000000 0x18 ./Core/Src/syscalls.o + .text._fstat 0x0000000000000000 0x20 ./Core/Src/syscalls.o + .text._isatty 0x0000000000000000 0x16 ./Core/Src/syscalls.o + .text._lseek 0x0000000000000000 0x1a ./Core/Src/syscalls.o + .text._open 0x0000000000000000 0x1c ./Core/Src/syscalls.o + .text._wait 0x0000000000000000 0x1e ./Core/Src/syscalls.o + .text._unlink 0x0000000000000000 0x1e ./Core/Src/syscalls.o + .text._times 0x0000000000000000 0x18 ./Core/Src/syscalls.o + .text._stat 0x0000000000000000 0x20 ./Core/Src/syscalls.o + .text._link 0x0000000000000000 0x20 ./Core/Src/syscalls.o + .text._fork 0x0000000000000000 0x16 ./Core/Src/syscalls.o + .text._execve 0x0000000000000000 0x22 ./Core/Src/syscalls.o + .debug_info 0x0000000000000000 0x6e0 ./Core/Src/syscalls.o + .debug_abbrev 0x0000000000000000 0x1b3 ./Core/Src/syscalls.o + .debug_aranges + 0x0000000000000000 0xa8 ./Core/Src/syscalls.o + .debug_ranges 0x0000000000000000 0x98 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x24c ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0xa78 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x4c ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x1e ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x94 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x3c ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x57 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x174 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x341 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x43 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x58 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x71 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x12a ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x35 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x6a ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x52 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x52 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0xd5 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x3d ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x35 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x12c ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x29 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x241 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x145 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x189 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0xce ./Core/Src/syscalls.o + .debug_line 0x0000000000000000 0x7fe ./Core/Src/syscalls.o + .debug_str 0x0000000000000000 0x8a8b ./Core/Src/syscalls.o + .comment 0x0000000000000000 0x51 ./Core/Src/syscalls.o + .debug_frame 0x0000000000000000 0x2ac ./Core/Src/syscalls.o + .ARM.attributes + 0x0000000000000000 0x34 ./Core/Src/syscalls.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/sysmem.o + .text 0x0000000000000000 0x0 ./Core/Src/sysmem.o + .data 0x0000000000000000 0x0 ./Core/Src/sysmem.o + .bss 0x0000000000000000 0x0 ./Core/Src/sysmem.o + .bss.__sbrk_heap_end + 0x0000000000000000 0x4 ./Core/Src/sysmem.o + .text._sbrk 0x0000000000000000 0x6c ./Core/Src/sysmem.o + .debug_info 0x0000000000000000 0x171 ./Core/Src/sysmem.o + .debug_abbrev 0x0000000000000000 0xbb ./Core/Src/sysmem.o + .debug_aranges + 0x0000000000000000 0x20 ./Core/Src/sysmem.o + .debug_ranges 0x0000000000000000 0x10 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0xff ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0xa78 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x4c ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x1e ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x94 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x3c ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x174 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x16 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x43 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x57 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x10 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x58 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x71 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x12a ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x23b ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x103 ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x6a ./Core/Src/sysmem.o + .debug_macro 0x0000000000000000 0x1df ./Core/Src/sysmem.o + .debug_line 0x0000000000000000 0x4f4 ./Core/Src/sysmem.o + .debug_str 0x0000000000000000 0x5dc7 ./Core/Src/sysmem.o + .comment 0x0000000000000000 0x51 ./Core/Src/sysmem.o + .debug_frame 0x0000000000000000 0x34 ./Core/Src/sysmem.o + .ARM.attributes + 0x0000000000000000 0x34 ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f3xx.o + .text 0x0000000000000000 0x0 ./Core/Src/system_stm32f3xx.o + .data 0x0000000000000000 0x0 ./Core/Src/system_stm32f3xx.o + .bss 0x0000000000000000 0x0 ./Core/Src/system_stm32f3xx.o + .rodata.APBPrescTable + 0x0000000000000000 0x8 ./Core/Src/system_stm32f3xx.o + .text.SystemCoreClockUpdate + 0x0000000000000000 0xe0 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0xa78 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x2e ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x28 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x8e ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x51 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x103 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x6a ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x1df ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0xd9 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0xf07 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x110e8 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x6d ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x151 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x3574 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x174 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x55 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x8f8 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x41b ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x1b5 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x161 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x1d5 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x1bc ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x3c ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x57 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0xc5 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x19f ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x22c ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x5b ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0xa5 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x81 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0xd3 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0xa60 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x41 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000000000 0x1f7 ./Core/Src/system_stm32f3xx.o + .text 0x0000000000000000 0x14 ./Core/Startup/startup_stm32f302c8tx.o + .data 0x0000000000000000 0x0 ./Core/Startup/startup_stm32f302c8tx.o + .bss 0x0000000000000000 0x0 ./Core/Startup/startup_stm32f302c8tx.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_DeInit + 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_MspInit + 0x0000000000000000 0xe ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_MspDeInit + 0x0000000000000000 0xe ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_GetTickPrio + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_SetTickFreq + 0x0000000000000000 0x50 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_GetTickFreq + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_SuspendTick + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_ResumeTick + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_GetHalVersion + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_GetREVID + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_GetDEVID + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_GetUIDw0 + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_GetUIDw1 + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_GetUIDw2 + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_DBGMCU_EnableDBGSleepMode + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_DBGMCU_DisableDBGSleepMode + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_DBGMCU_EnableDBGStopMode + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_DBGMCU_DisableDBGStopMode + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_DBGMCU_EnableDBGStandbyMode + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .text.HAL_DBGMCU_DisableDBGStandbyMode + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.__NVIC_EnableIRQ + 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.__NVIC_DisableIRQ + 0x0000000000000000 0x48 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.__NVIC_GetPendingIRQ + 0x0000000000000000 0x44 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.__NVIC_SetPendingIRQ + 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.__NVIC_ClearPendingIRQ + 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.__NVIC_GetActive + 0x0000000000000000 0x44 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.__NVIC_GetPriority + 0x0000000000000000 0x50 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.NVIC_DecodePriority + 0x0000000000000000 0x6e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.__NVIC_SystemReset + 0x0000000000000000 0x2c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_NVIC_EnableIRQ + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_NVIC_DisableIRQ + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_NVIC_SystemReset + 0x0000000000000000 0x8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_NVIC_GetPriorityGrouping + 0x0000000000000000 0xe ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_NVIC_GetPriority + 0x0000000000000000 0x2c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_NVIC_SetPendingIRQ + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_NVIC_GetPendingIRQ + 0x0000000000000000 0x1e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_NVIC_ClearPendingIRQ + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_NVIC_GetActive + 0x0000000000000000 0x1e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_SYSTICK_CLKSourceConfig + 0x0000000000000000 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_SYSTICK_IRQHandler + 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_SYSTICK_Callback + 0x0000000000000000 0xe ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_Init + 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_DeInit + 0x0000000000000000 0x90 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_Start + 0x0000000000000000 0x84 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_Start_IT + 0x0000000000000000 0xbe ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_Abort + 0x0000000000000000 0x7c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_Abort_IT + 0x0000000000000000 0x7c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_PollForTransfer + 0x0000000000000000 0x136 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_IRQHandler + 0x0000000000000000 0x146 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_RegisterCallback + 0x0000000000000000 0x90 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_UnRegisterCallback + 0x0000000000000000 0xac ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_GetState + 0x0000000000000000 0x1a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.HAL_DMA_GetError + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.DMA_SetConfig + 0x0000000000000000 0x5c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .text.DMA_CalcBaseAndBitshift + 0x0000000000000000 0x40 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_info 0x0000000000000000 0x757 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_abbrev 0x0000000000000000 0x1fe ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_aranges + 0x0000000000000000 0x88 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_ranges 0x0000000000000000 0x78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1b1 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_line 0x0000000000000000 0xc48 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_str 0x0000000000000000 0x9b26a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .comment 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .debug_frame 0x0000000000000000 0x224 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .ARM.attributes + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .text.HAL_EXTI_SetConfigLine + 0x0000000000000000 0x1a0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .text.HAL_EXTI_GetConfigLine + 0x0000000000000000 0x144 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .text.HAL_EXTI_ClearConfigLine + 0x0000000000000000 0x110 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .text.HAL_EXTI_RegisterCallback + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .text.HAL_EXTI_GetHandle + 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .text.HAL_EXTI_IRQHandler + 0x0000000000000000 0x64 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .text.HAL_EXTI_GetPending + 0x0000000000000000 0x58 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .text.HAL_EXTI_ClearPending + 0x0000000000000000 0x48 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .text.HAL_EXTI_GenerateSWI + 0x0000000000000000 0x44 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_info 0x0000000000000000 0x68f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_abbrev 0x0000000000000000 0x197 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_aranges + 0x0000000000000000 0x60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_ranges 0x0000000000000000 0x50 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1bd ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_line 0x0000000000000000 0xa1d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_str 0x0000000000000000 0x9b098 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .comment 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .debug_frame 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .ARM.attributes + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .bss.pFlash 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.HAL_FLASH_Program + 0x0000000000000000 0xe0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.HAL_FLASH_Program_IT + 0x0000000000000000 0x90 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.HAL_FLASH_IRQHandler + 0x0000000000000000 0x1c8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.HAL_FLASH_EndOfOperationCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.HAL_FLASH_OperationErrorCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.HAL_FLASH_Unlock + 0x0000000000000000 0x4c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.HAL_FLASH_Lock + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.HAL_FLASH_OB_Unlock + 0x0000000000000000 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.HAL_FLASH_OB_Lock + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.HAL_FLASH_OB_Launch + 0x0000000000000000 0x24 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.HAL_FLASH_GetError + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.FLASH_Program_HalfWord + 0x0000000000000000 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.FLASH_WaitForLastOperation + 0x0000000000000000 0x80 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .text.FLASH_SetErrorCode + 0x0000000000000000 0x64 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_info 0x0000000000000000 0x53d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_abbrev 0x0000000000000000 0x250 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_aranges + 0x0000000000000000 0x88 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_ranges 0x0000000000000000 0x78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1b1 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_line 0x0000000000000000 0x9ee ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_str 0x0000000000000000 0x9b16f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .comment 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .debug_frame 0x0000000000000000 0x20c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .ARM.attributes + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.HAL_FLASHEx_Erase + 0x0000000000000000 0xd4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.HAL_FLASHEx_Erase_IT + 0x0000000000000000 0x80 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBErase + 0x0000000000000000 0x84 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBProgram + 0x0000000000000000 0xf8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBGetConfig + 0x0000000000000000 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBGetUserData + 0x0000000000000000 0x70 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.FLASH_MassErase + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.FLASH_OB_EnableWRP + 0x0000000000000000 0xd8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.FLASH_OB_DisableWRP + 0x0000000000000000 0xc0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.FLASH_OB_RDP_LevelConfig + 0x0000000000000000 0xa0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.FLASH_OB_UserConfig + 0x0000000000000000 0x70 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.FLASH_OB_ProgramData + 0x0000000000000000 0x68 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.FLASH_OB_GetWRP + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.FLASH_OB_GetRDP + 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.FLASH_OB_GetUser + 0x0000000000000000 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .text.FLASH_PageErase + 0x0000000000000000 0x40 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_info 0x0000000000000000 0x7df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_abbrev 0x0000000000000000 0x2a0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_aranges + 0x0000000000000000 0x98 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_ranges 0x0000000000000000 0x88 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1c3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_line 0x0000000000000000 0xb0f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_str 0x0000000000000000 0x9b34d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .comment 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .debug_frame 0x0000000000000000 0x258 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .ARM.attributes + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .text.HAL_GPIO_DeInit + 0x0000000000000000 0x1a8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .text.HAL_GPIO_TogglePin + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .text.HAL_GPIO_LockPin + 0x0000000000000000 0x50 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .text.HAL_GPIO_EXTI_IRQHandler + 0x0000000000000000 0x30 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .text.HAL_GPIO_EXTI_Callback + 0x0000000000000000 0x16 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Init + 0x0000000000000000 0x136 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_DeInit + 0x0000000000000000 0x5e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_MspInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_MspDeInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Master_Transmit + 0x0000000000000000 0x230 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Master_Receive + 0x0000000000000000 0x1ec ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Slave_Transmit + 0x0000000000000000 0x29a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Slave_Receive + 0x0000000000000000 0x220 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Master_Transmit_IT + 0x0000000000000000 0x130 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Master_Receive_IT + 0x0000000000000000 0xe0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Slave_Transmit_IT + 0x0000000000000000 0xdc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Slave_Receive_IT + 0x0000000000000000 0xa0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Master_Transmit_DMA + 0x0000000000000000 0x228 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Master_Receive_DMA + 0x0000000000000000 0x1e0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Slave_Transmit_DMA + 0x0000000000000000 0x1d8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Slave_Receive_DMA + 0x0000000000000000 0x16c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Mem_Write + 0x0000000000000000 0x228 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Mem_Read + 0x0000000000000000 0x234 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Mem_Write_IT + 0x0000000000000000 0x114 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Mem_Read_IT + 0x0000000000000000 0x10c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Mem_Write_DMA + 0x0000000000000000 0x1cc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Mem_Read_DMA + 0x0000000000000000 0x1cc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_IsDeviceReady + 0x0000000000000000 0x1d8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Master_Seq_Transmit_IT + 0x0000000000000000 0x17c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Master_Seq_Transmit_DMA + 0x0000000000000000 0x2a0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Master_Seq_Receive_IT + 0x0000000000000000 0x108 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Master_Seq_Receive_DMA + 0x0000000000000000 0x208 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Slave_Seq_Transmit_IT + 0x0000000000000000 0x164 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Slave_Seq_Transmit_DMA + 0x0000000000000000 0x28c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Slave_Seq_Receive_IT + 0x0000000000000000 0x164 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Slave_Seq_Receive_DMA + 0x0000000000000000 0x28c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_EnableListen_IT + 0x0000000000000000 0x40 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_DisableListen_IT + 0x0000000000000000 0x62 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_Master_Abort_IT + 0x0000000000000000 0xa8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_EV_IRQHandler + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_ER_IRQHandler + 0x0000000000000000 0xc2 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_MasterTxCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_MasterRxCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_SlaveTxCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_SlaveRxCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_AddrCallback + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_ListenCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_MemTxCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_MemRxCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_ErrorCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_AbortCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_GetState + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_GetMode + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.HAL_I2C_GetError + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_Master_ISR_IT + 0x0000000000000000 0x284 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_Mem_ISR_IT + 0x0000000000000000 0x2a0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_Slave_ISR_IT + 0x0000000000000000 0x208 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_Master_ISR_DMA + 0x0000000000000000 0x204 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_Mem_ISR_DMA + 0x0000000000000000 0x29c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_Slave_ISR_DMA + 0x0000000000000000 0x1c2 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_RequestMemoryWrite + 0x0000000000000000 0xa8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_RequestMemoryRead + 0x0000000000000000 0xa8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_ITAddrCplt + 0x0000000000000000 0x108 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_ITMasterSeqCplt + 0x0000000000000000 0x7a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_ITSlaveSeqCplt + 0x0000000000000000 0xbc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_ITMasterCplt + 0x0000000000000000 0x194 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_ITSlaveCplt + 0x0000000000000000 0x2d4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_ITListenCplt + 0x0000000000000000 0xac ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_ITError + 0x0000000000000000 0x1e0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_TreatErrorCallback + 0x0000000000000000 0x4e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_Flush_TXDR + 0x0000000000000000 0x48 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_DMAMasterTransmitCplt + 0x0000000000000000 0x96 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_DMASlaveTransmitCplt + 0x0000000000000000 0x40 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_DMAMasterReceiveCplt + 0x0000000000000000 0xb2 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_DMASlaveReceiveCplt + 0x0000000000000000 0x46 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_DMAError + 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_DMAAbort + 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_WaitOnFlagUntilTimeout + 0x0000000000000000 0xb2 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_WaitOnTXISFlagUntilTimeout + 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_WaitOnSTOPFlagUntilTimeout + 0x0000000000000000 0x86 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_WaitOnRXNEFlagUntilTimeout + 0x0000000000000000 0x118 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_IsErrorOccurred + 0x0000000000000000 0x1c0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_TransferConfig + 0x0000000000000000 0x64 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_Enable_IRQ + 0x0000000000000000 0x108 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_Disable_IRQ + 0x0000000000000000 0xbc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .text.I2C_ConvertOtherXferOptions + 0x0000000000000000 0x36 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_info 0x0000000000000000 0x22ef ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_abbrev 0x0000000000000000 0x24a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_aranges + 0x0000000000000000 0x2a0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_ranges 0x0000000000000000 0x290 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x27d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_line 0x0000000000000000 0x3922 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_str 0x0000000000000000 0x9c222 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .comment 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .debug_frame 0x0000000000000000 0xc38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .ARM.attributes + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .text.HAL_I2CEx_ConfigAnalogFilter + 0x0000000000000000 0x96 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .text.HAL_I2CEx_ConfigDigitalFilter + 0x0000000000000000 0x98 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .text.HAL_I2CEx_EnableWakeUp + 0x0000000000000000 0x84 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .text.HAL_I2CEx_DisableWakeUp + 0x0000000000000000 0x84 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .text.HAL_I2CEx_EnableFastModePlus + 0x0000000000000000 0x40 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .text.HAL_I2CEx_DisableFastModePlus + 0x0000000000000000 0x44 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_info 0x0000000000000000 0x89f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_abbrev 0x0000000000000000 0x1b0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_aranges + 0x0000000000000000 0x48 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_ranges 0x0000000000000000 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x1b1 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_line 0x0000000000000000 0x8ca ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_str 0x0000000000000000 0x9b422 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .comment 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .debug_frame 0x0000000000000000 0x100 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .ARM.attributes + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_DeInit + 0x0000000000000000 0x2c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_EnableBkUpAccess + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_DisableBkUpAccess + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_EnableWakeUpPin + 0x0000000000000000 0x24 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_DisableWakeUpPin + 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_EnterSLEEPMode + 0x0000000000000000 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_EnterSTOPMode + 0x0000000000000000 0x68 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_EnterSTANDBYMode + 0x0000000000000000 0x30 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_EnableSleepOnExit + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_DisableSleepOnExit + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_EnableSEVOnPend + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .text.HAL_PWR_DisableSEVOnPend + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_info 0x0000000000000000 0x4ca ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_abbrev 0x0000000000000000 0x13b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_aranges + 0x0000000000000000 0x78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_ranges 0x0000000000000000 0x68 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1b1 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_line 0x0000000000000000 0x7f2 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_str 0x0000000000000000 0x9b02b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .comment 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .debug_frame 0x0000000000000000 0x1b0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .ARM.attributes + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .text.HAL_PWR_ConfigPVD + 0x0000000000000000 0xc0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .text.HAL_PWR_EnablePVD + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .text.HAL_PWR_DisablePVD + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .text.HAL_PWR_PVD_IRQHandler + 0x0000000000000000 0x24 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .text.HAL_PWR_PVDCallback + 0x0000000000000000 0xe ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_info 0x0000000000000000 0x261 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_abbrev 0x0000000000000000 0x132 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_aranges + 0x0000000000000000 0x40 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_ranges 0x0000000000000000 0x30 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x1c9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_line 0x0000000000000000 0x74b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_str 0x0000000000000000 0x9af6b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .comment 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .debug_frame 0x0000000000000000 0xb4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .ARM.attributes + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text.HAL_RCC_DeInit + 0x0000000000000000 0x148 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text.HAL_RCC_MCOConfig + 0x0000000000000000 0x68 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text.HAL_RCC_EnableCSS + 0x0000000000000000 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text.HAL_RCC_DisableCSS + 0x0000000000000000 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text.HAL_RCC_GetHCLKFreq + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text.HAL_RCC_GetPCLK1Freq + 0x0000000000000000 0x44 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text.HAL_RCC_GetPCLK2Freq + 0x0000000000000000 0x44 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text.HAL_RCC_GetOscConfig + 0x0000000000000000 0x104 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text.HAL_RCC_GetClockConfig + 0x0000000000000000 0x64 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text.HAL_RCC_NMI_IRQHandler + 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .text.HAL_RCC_CSSCallback + 0x0000000000000000 0xe ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .text.HAL_RCCEx_PeriphCLKConfig + 0x0000000000000000 0x324 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .text.HAL_RCCEx_GetPeriphCLKConfig + 0x0000000000000000 0x108 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .text.HAL_RCCEx_GetPeriphCLKFreq + 0x0000000000000000 0x418 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .text.RCC_GetPLLCLKFreq + 0x0000000000000000 0x7c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .rodata.adc_pll_prediv_table.0 + 0x0000000000000000 0x20 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_info 0x0000000000000000 0x5b7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_abbrev 0x0000000000000000 0x21c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_aranges + 0x0000000000000000 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_ranges 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1b1 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_line 0x0000000000000000 0xb80 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_str 0x0000000000000000 0x9b146 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .comment 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .debug_frame 0x0000000000000000 0xb0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .ARM.attributes + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Base_Init + 0x0000000000000000 0xae ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Base_DeInit + 0x0000000000000000 0xb8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Base_MspInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Base_MspDeInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Base_Start + 0x0000000000000000 0x98 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Base_Stop + 0x0000000000000000 0x4e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Base_Start_IT + 0x0000000000000000 0xa8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Base_Stop_IT + 0x0000000000000000 0x5e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Base_Start_DMA + 0x0000000000000000 0x110 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Base_Stop_DMA + 0x0000000000000000 0x64 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_Init + 0x0000000000000000 0xae ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_DeInit + 0x0000000000000000 0xb8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_MspInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_MspDeInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_Start + 0x0000000000000000 0x1cc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_Stop + 0x0000000000000000 0x11c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_Start_IT + 0x0000000000000000 0x264 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_Stop_IT + 0x0000000000000000 0x1b8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_Start_DMA + 0x0000000000000000 0x3fc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_Stop_DMA + 0x0000000000000000 0x1e0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PWM_DeInit + 0x0000000000000000 0xb8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PWM_MspInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PWM_MspDeInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PWM_Stop + 0x0000000000000000 0x11c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PWM_Start_IT + 0x0000000000000000 0x264 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PWM_Stop_IT + 0x0000000000000000 0x1b8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PWM_Start_DMA + 0x0000000000000000 0x3fc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PWM_Stop_DMA + 0x0000000000000000 0x1e0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_Init + 0x0000000000000000 0xae ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_DeInit + 0x0000000000000000 0xb8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_MspInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_MspDeInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_Start + 0x0000000000000000 0x1c0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_Stop + 0x0000000000000000 0xe2 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_Start_IT + 0x0000000000000000 0x25c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_Stop_IT + 0x0000000000000000 0x17c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_Start_DMA + 0x0000000000000000 0x360 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_Stop_DMA + 0x0000000000000000 0x1a4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OnePulse_Init + 0x0000000000000000 0xa0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OnePulse_DeInit + 0x0000000000000000 0x88 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OnePulse_MspInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OnePulse_MspDeInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OnePulse_Start + 0x0000000000000000 0xe0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OnePulse_Stop + 0x0000000000000000 0xf4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OnePulse_Start_IT + 0x0000000000000000 0x100 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OnePulse_Stop_IT + 0x0000000000000000 0x114 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Encoder_Init + 0x0000000000000000 0x14c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Encoder_DeInit + 0x0000000000000000 0x88 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Encoder_MspInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Encoder_MspDeInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Encoder_Start + 0x0000000000000000 0x11c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Encoder_Stop + 0x0000000000000000 0x14e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Encoder_Start_IT + 0x0000000000000000 0x15c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Encoder_Stop_IT + 0x0000000000000000 0x18a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Encoder_Start_DMA + 0x0000000000000000 0x2d8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Encoder_Stop_DMA + 0x0000000000000000 0x1b2 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IRQHandler + 0x0000000000000000 0x204 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_ConfigChannel + 0x0000000000000000 0xf4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_ConfigChannel + 0x0000000000000000 0x138 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OnePulse_ConfigChannel + 0x0000000000000000 0x1ae ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_DMABurst_WriteStart + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_DMABurst_MultiWriteStart + 0x0000000000000000 0x2a8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_DMABurst_WriteStop + 0x0000000000000000 0xf4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_DMABurst_ReadStart + 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_DMABurst_MultiReadStart + 0x0000000000000000 0x2a8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_DMABurst_ReadStop + 0x0000000000000000 0xf4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_GenerateEvent + 0x0000000000000000 0x4e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_ConfigOCrefClear + 0x0000000000000000 0x248 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_ConfigClockSource + 0x0000000000000000 0x192 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_ConfigTI1Input + 0x0000000000000000 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_SlaveConfigSynchro + 0x0000000000000000 0x84 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_SlaveConfigSynchro_IT + 0x0000000000000000 0x84 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_ReadCapturedValue + 0x0000000000000000 0x88 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PeriodElapsedCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PeriodElapsedHalfCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_DelayElapsedCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_CaptureCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_CaptureHalfCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PWM_PulseFinishedCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PWM_PulseFinishedHalfCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_TriggerCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_TriggerHalfCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_ErrorCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Base_GetState + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OC_GetState + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_PWM_GetState + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_IC_GetState + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_OnePulse_GetState + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_Encoder_GetState + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_GetActiveChannel + 0x0000000000000000 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_GetChannelState + 0x0000000000000000 0x72 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.HAL_TIM_DMABurstState + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_DMAError + 0x0000000000000000 0x92 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_DMADelayPulseCplt + 0x0000000000000000 0xa8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_DMADelayPulseHalfCplt + 0x0000000000000000 0x68 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_DMACaptureCplt + 0x0000000000000000 0xc8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_DMACaptureHalfCplt + 0x0000000000000000 0x68 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_DMAPeriodElapsedCplt + 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_DMAPeriodElapsedHalfCplt + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_DMATriggerCplt + 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_DMATriggerHalfCplt + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_SlaveTimer_SetConfig + 0x0000000000000000 0x126 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_TI1_SetConfig + 0x0000000000000000 0xac ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_TI1_ConfigInputStage + 0x0000000000000000 0x5e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_TI2_SetConfig + 0x0000000000000000 0x7a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_TI2_ConfigInputStage + 0x0000000000000000 0x60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_TI3_SetConfig + 0x0000000000000000 0x78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_TI4_SetConfig + 0x0000000000000000 0x7a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_ITRx_SetConfig + 0x0000000000000000 0x36 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_ETR_SetConfig + 0x0000000000000000 0x40 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Init + 0x0000000000000000 0x156 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_DeInit + 0x0000000000000000 0x88 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_MspInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_MspDeInit + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Start + 0x0000000000000000 0xe8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Stop + 0x0000000000000000 0x70 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Start_IT + 0x0000000000000000 0xf8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Stop_IT + 0x0000000000000000 0x80 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Start_DMA + 0x0000000000000000 0x138 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_Stop_DMA + 0x0000000000000000 0x7a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Start + 0x0000000000000000 0x13c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Stop + 0x0000000000000000 0xba ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Start_IT + 0x0000000000000000 0x1ac ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Stop_IT + 0x0000000000000000 0x13e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Start_DMA + 0x0000000000000000 0x2c8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_OCN_Stop_DMA + 0x0000000000000000 0x138 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Start + 0x0000000000000000 0x13c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Stop + 0x0000000000000000 0xba ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Start_IT + 0x0000000000000000 0x1ac ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Stop_IT + 0x0000000000000000 0x13e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Start_DMA + 0x0000000000000000 0x2c8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_PWMN_Stop_DMA + 0x0000000000000000 0x138 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_OnePulseN_Start + 0x0000000000000000 0xaa ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_OnePulseN_Stop + 0x0000000000000000 0xbe ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_OnePulseN_Start_IT + 0x0000000000000000 0xca ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_OnePulseN_Stop_IT + 0x0000000000000000 0xde ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigCommutEvent + 0x0000000000000000 0xc0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigCommutEvent_IT + 0x0000000000000000 0xc0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigCommutEvent_DMA + 0x0000000000000000 0xe4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_ConfigBreakDeadTime + 0x0000000000000000 0xf0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_RemapConfig + 0x0000000000000000 0x3e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_GroupChannel5 + 0x0000000000000000 0x66 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_CommutCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_CommutHalfCpltCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_BreakCallback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_Break2Callback + 0x0000000000000000 0x14 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_HallSensor_GetState + 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.HAL_TIMEx_GetChannelNState + 0x0000000000000000 0x52 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.TIMEx_DMACommutationCplt + 0x0000000000000000 0x24 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.TIMEx_DMACommutationHalfCplt + 0x0000000000000000 0x24 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.TIM_DMADelayPulseNCplt + 0x0000000000000000 0x86 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.TIM_DMAErrorCCxN + 0x0000000000000000 0x6e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text.TIM_CCxNChannelCmd + 0x0000000000000000 0x4a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0xa78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x151 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0xd9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0xf07 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x110e8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x3574 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x55 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x8f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x41b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x1b5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x161 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0xc5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x19f ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x5b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x81 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0xd3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0xa60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x41 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x1f7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-errno.o) + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-errno.o) + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-errno.o) + .text.__errno 0x0000000000000000 0xc c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-errno.o) + .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-errno.o) + .ARM.attributes + 0x0000000000000000 0x34 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-errno.o) + .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-exit.o) + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-exit.o) + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-exit.o) + .text.exit 0x0000000000000000 0x28 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-exit.o) + .debug_frame 0x0000000000000000 0x28 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-exit.o) + .ARM.attributes + 0x0000000000000000 0x34 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-exit.o) + .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-impure.o) + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-impure.o) + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-impure.o) + .data._impure_ptr + 0x0000000000000000 0x4 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-impure.o) + .data.impure_data + 0x0000000000000000 0x60 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-impure.o) + .rodata._global_impure_ptr + 0x0000000000000000 0x4 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-impure.o) + .ARM.attributes + 0x0000000000000000 0x34 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-impure.o) + .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-init.o) + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-init.o) + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-init.o) + .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-memset.o) + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-memset.o) + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-memset.o) + .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtend.o + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtend.o + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtend.o + .rodata 0x0000000000000000 0x24 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtend.o + .eh_frame 0x0000000000000000 0x4 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtend.o + .ARM.attributes + 0x0000000000000000 0x34 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtend.o + .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtn.o + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtn.o + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtn.o + +Memory Configuration + +Name Origin Length Attributes +RAM 0x0000000020000000 0x0000000000004000 xrw +FLASH 0x0000000008000000 0x0000000000010000 xr +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crti.o +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o +LOAD ./Core/Src/main.o +LOAD ./Core/Src/stm32f3xx_hal_msp.o +LOAD ./Core/Src/stm32f3xx_it.o +LOAD ./Core/Src/syscalls.o +LOAD ./Core/Src/sysmem.o +LOAD ./Core/Src/system_stm32f3xx.o +LOAD ./Core/Startup/startup_stm32f302c8tx.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o +LOAD ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o +START GROUP +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a +END GROUP +START GROUP +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard\libgcc.a +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a +END GROUP +START GROUP +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard\libgcc.a +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libnosys.a +END GROUP +START GROUP +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard\libgcc.a +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libnosys.a +END GROUP +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtend.o +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtn.o + 0x0000000020004000 _estack = (ORIGIN (RAM) + LENGTH (RAM)) + 0x0000000000000200 _Min_Heap_Size = 0x200 + 0x0000000000000400 _Min_Stack_Size = 0x400 + +.isr_vector 0x0000000008000000 0x188 + 0x0000000008000000 . = ALIGN (0x4) + *(.isr_vector) + .isr_vector 0x0000000008000000 0x188 ./Core/Startup/startup_stm32f302c8tx.o + 0x0000000008000000 g_pfnVectors + 0x0000000008000188 . = ALIGN (0x4) + +.text 0x0000000008000188 0x2adc + 0x0000000008000188 . = ALIGN (0x4) + *(.text) + .text 0x0000000008000188 0x40 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o + *(.text*) + .text.main 0x00000000080001c8 0x78 ./Core/Src/main.o + 0x00000000080001c8 main + .text.SystemClock_Config + 0x0000000008000240 0x82 ./Core/Src/main.o + 0x0000000008000240 SystemClock_Config + *fill* 0x00000000080002c2 0x2 + .text.MX_TIM2_Init + 0x00000000080002c4 0xb8 ./Core/Src/main.o + .text.MX_GPIO_Init + 0x000000000800037c 0x78 ./Core/Src/main.o + .text.Error_Handler + 0x00000000080003f4 0xa ./Core/Src/main.o + 0x00000000080003f4 Error_Handler + *fill* 0x00000000080003fe 0x2 + .text.HAL_MspInit + 0x0000000008000400 0x48 ./Core/Src/stm32f3xx_hal_msp.o + 0x0000000008000400 HAL_MspInit + .text.HAL_TIM_PWM_MspInit + 0x0000000008000448 0x3c ./Core/Src/stm32f3xx_hal_msp.o + 0x0000000008000448 HAL_TIM_PWM_MspInit + .text.HAL_TIM_MspPostInit + 0x0000000008000484 0x68 ./Core/Src/stm32f3xx_hal_msp.o + 0x0000000008000484 HAL_TIM_MspPostInit + .text.NMI_Handler + 0x00000000080004ec 0x6 ./Core/Src/stm32f3xx_it.o + 0x00000000080004ec NMI_Handler + .text.HardFault_Handler + 0x00000000080004f2 0x6 ./Core/Src/stm32f3xx_it.o + 0x00000000080004f2 HardFault_Handler + .text.MemManage_Handler + 0x00000000080004f8 0x6 ./Core/Src/stm32f3xx_it.o + 0x00000000080004f8 MemManage_Handler + .text.BusFault_Handler + 0x00000000080004fe 0x6 ./Core/Src/stm32f3xx_it.o + 0x00000000080004fe BusFault_Handler + .text.UsageFault_Handler + 0x0000000008000504 0x6 ./Core/Src/stm32f3xx_it.o + 0x0000000008000504 UsageFault_Handler + .text.SVC_Handler + 0x000000000800050a 0xe ./Core/Src/stm32f3xx_it.o + 0x000000000800050a SVC_Handler + .text.DebugMon_Handler + 0x0000000008000518 0xe ./Core/Src/stm32f3xx_it.o + 0x0000000008000518 DebugMon_Handler + .text.PendSV_Handler + 0x0000000008000526 0xe ./Core/Src/stm32f3xx_it.o + 0x0000000008000526 PendSV_Handler + .text.SysTick_Handler + 0x0000000008000534 0xc ./Core/Src/stm32f3xx_it.o + 0x0000000008000534 SysTick_Handler + .text.SystemInit + 0x0000000008000540 0x24 ./Core/Src/system_stm32f3xx.o + 0x0000000008000540 SystemInit + .text.Reset_Handler + 0x0000000008000564 0x50 ./Core/Startup/startup_stm32f302c8tx.o + 0x0000000008000564 Reset_Handler + .text.Default_Handler + 0x00000000080005b4 0x2 ./Core/Startup/startup_stm32f302c8tx.o + 0x00000000080005b4 RTC_Alarm_IRQHandler + 0x00000000080005b4 TIM1_CC_IRQHandler + 0x00000000080005b4 USB_HP_IRQHandler + 0x00000000080005b4 PVD_IRQHandler + 0x00000000080005b4 TAMP_STAMP_IRQHandler + 0x00000000080005b4 EXTI3_IRQHandler + 0x00000000080005b4 I2C3_ER_IRQHandler + 0x00000000080005b4 USB_HP_CAN_TX_IRQHandler + 0x00000000080005b4 EXTI0_IRQHandler + 0x00000000080005b4 I2C2_EV_IRQHandler + 0x00000000080005b4 FPU_IRQHandler + 0x00000000080005b4 TIM1_UP_TIM16_IRQHandler + 0x00000000080005b4 CAN_SCE_IRQHandler + 0x00000000080005b4 TIM6_DAC_IRQHandler + 0x00000000080005b4 DMA1_Channel4_IRQHandler + 0x00000000080005b4 ADC1_IRQHandler + 0x00000000080005b4 USART3_IRQHandler + 0x00000000080005b4 DMA1_Channel7_IRQHandler + 0x00000000080005b4 CAN_RX1_IRQHandler + 0x00000000080005b4 I2C1_EV_IRQHandler + 0x00000000080005b4 DMA1_Channel6_IRQHandler + 0x00000000080005b4 RCC_IRQHandler + 0x00000000080005b4 DMA1_Channel1_IRQHandler + 0x00000000080005b4 Default_Handler + 0x00000000080005b4 USBWakeUp_RMP_IRQHandler + 0x00000000080005b4 EXTI15_10_IRQHandler + 0x00000000080005b4 COMP2_IRQHandler + 0x00000000080005b4 I2C3_EV_IRQHandler + 0x00000000080005b4 EXTI9_5_IRQHandler + 0x00000000080005b4 RTC_WKUP_IRQHandler + 0x00000000080005b4 SPI2_IRQHandler + 0x00000000080005b4 USB_LP_CAN_RX0_IRQHandler + 0x00000000080005b4 DMA1_Channel5_IRQHandler + 0x00000000080005b4 USB_LP_IRQHandler + 0x00000000080005b4 EXTI4_IRQHandler + 0x00000000080005b4 TIM1_TRG_COM_TIM17_IRQHandler + 0x00000000080005b4 DMA1_Channel3_IRQHandler + 0x00000000080005b4 WWDG_IRQHandler + 0x00000000080005b4 TIM2_IRQHandler + 0x00000000080005b4 EXTI1_IRQHandler + 0x00000000080005b4 COMP4_6_IRQHandler + 0x00000000080005b4 USART2_IRQHandler + 0x00000000080005b4 I2C2_ER_IRQHandler + 0x00000000080005b4 DMA1_Channel2_IRQHandler + 0x00000000080005b4 FLASH_IRQHandler + 0x00000000080005b4 USART1_IRQHandler + 0x00000000080005b4 SPI3_IRQHandler + 0x00000000080005b4 I2C1_ER_IRQHandler + 0x00000000080005b4 USBWakeUp_IRQHandler + 0x00000000080005b4 EXTI2_TSC_IRQHandler + 0x00000000080005b4 TIM1_BRK_TIM15_IRQHandler + *fill* 0x00000000080005b6 0x2 + .text.HAL_Init + 0x00000000080005b8 0x2c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + 0x00000000080005b8 HAL_Init + .text.HAL_InitTick + 0x00000000080005e4 0x60 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + 0x00000000080005e4 HAL_InitTick + .text.HAL_IncTick + 0x0000000008000644 0x28 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + 0x0000000008000644 HAL_IncTick + .text.HAL_GetTick + 0x000000000800066c 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + 0x000000000800066c HAL_GetTick + .text.HAL_Delay + 0x0000000008000684 0x48 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + 0x0000000008000684 HAL_Delay + .text.__NVIC_SetPriorityGrouping + 0x00000000080006cc 0x48 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.__NVIC_GetPriorityGrouping + 0x0000000008000714 0x1c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.__NVIC_SetPriority + 0x0000000008000730 0x54 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.NVIC_EncodePriority + 0x0000000008000784 0x66 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + *fill* 0x00000000080007ea 0x2 + .text.SysTick_Config + 0x00000000080007ec 0x44 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .text.HAL_NVIC_SetPriorityGrouping + 0x0000000008000830 0x16 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + 0x0000000008000830 HAL_NVIC_SetPriorityGrouping + .text.HAL_NVIC_SetPriority + 0x0000000008000846 0x38 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + 0x0000000008000846 HAL_NVIC_SetPriority + .text.HAL_SYSTICK_Config + 0x000000000800087e 0x18 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + 0x000000000800087e HAL_SYSTICK_Config + *fill* 0x0000000008000896 0x2 + .text.HAL_GPIO_Init + 0x0000000008000898 0x2e4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + 0x0000000008000898 HAL_GPIO_Init + .text.HAL_GPIO_ReadPin + 0x0000000008000b7c 0x30 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + 0x0000000008000b7c HAL_GPIO_ReadPin + .text.HAL_GPIO_WritePin + 0x0000000008000bac 0x30 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + 0x0000000008000bac HAL_GPIO_WritePin + .text.HAL_RCC_OscConfig + 0x0000000008000bdc 0x107c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + 0x0000000008000bdc HAL_RCC_OscConfig + .text.HAL_RCC_ClockConfig + 0x0000000008001c58 0x2f8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + 0x0000000008001c58 HAL_RCC_ClockConfig + .text.HAL_RCC_GetSysClockFreq + 0x0000000008001f50 0xa8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + 0x0000000008001f50 HAL_RCC_GetSysClockFreq + .text.HAL_TIM_PWM_Init + 0x0000000008001ff8 0xae ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + 0x0000000008001ff8 HAL_TIM_PWM_Init + *fill* 0x00000000080020a6 0x2 + .text.HAL_TIM_PWM_Start + 0x00000000080020a8 0x1cc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + 0x00000000080020a8 HAL_TIM_PWM_Start + .text.HAL_TIM_PWM_ConfigChannel + 0x0000000008002274 0x228 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + 0x0000000008002274 HAL_TIM_PWM_ConfigChannel + .text.TIM_Base_SetConfig + 0x000000000800249c 0xf4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + 0x000000000800249c TIM_Base_SetConfig + .text.TIM_OC1_SetConfig + 0x0000000008002590 0x10c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_OC2_SetConfig + 0x000000000800269c 0x100 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + 0x000000000800269c TIM_OC2_SetConfig + .text.TIM_OC3_SetConfig + 0x000000000800279c 0xfc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_OC4_SetConfig + 0x0000000008002898 0xc8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_OC5_SetConfig + 0x0000000008002960 0xbc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_OC6_SetConfig + 0x0000000008002a1c 0xc0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .text.TIM_CCxChannelCmd + 0x0000000008002adc 0x4a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + 0x0000000008002adc TIM_CCxChannelCmd + *fill* 0x0000000008002b26 0x2 + .text.HAL_TIMEx_MasterConfigSynchronization + 0x0000000008002b28 0xcc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + 0x0000000008002b28 HAL_TIMEx_MasterConfigSynchronization + .text.__libc_init_array + 0x0000000008002bf4 0x48 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-init.o) + 0x0000000008002bf4 __libc_init_array + .text.memset 0x0000000008002c3c 0x10 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-memset.o) + 0x0000000008002c3c memset + *(.glue_7) + .glue_7 0x0000000008002c4c 0x0 linker stubs + *(.glue_7t) + .glue_7t 0x0000000008002c4c 0x0 linker stubs + *(.eh_frame) + .eh_frame 0x0000000008002c4c 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o + *(.init) + .init 0x0000000008002c4c 0x4 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crti.o + 0x0000000008002c4c _init + .init 0x0000000008002c50 0x8 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtn.o + *(.fini) + .fini 0x0000000008002c58 0x4 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crti.o + 0x0000000008002c58 _fini + .fini 0x0000000008002c5c 0x8 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtn.o + 0x0000000008002c64 . = ALIGN (0x4) + 0x0000000008002c64 _etext = . + +.vfp11_veneer 0x0000000008002c64 0x0 + .vfp11_veneer 0x0000000008002c64 0x0 linker stubs + +.v4_bx 0x0000000008002c64 0x0 + .v4_bx 0x0000000008002c64 0x0 linker stubs + +.iplt 0x0000000008002c64 0x0 + .iplt 0x0000000008002c64 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o + +.rodata 0x0000000008002c64 0x30 + 0x0000000008002c64 . = ALIGN (0x4) + *(.rodata) + *(.rodata*) + .rodata.AHBPrescTable + 0x0000000008002c64 0x10 ./Core/Src/system_stm32f3xx.o + 0x0000000008002c64 AHBPrescTable + .rodata.aPLLMULFactorTable + 0x0000000008002c74 0x10 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .rodata.aPredivFactorTable + 0x0000000008002c84 0x10 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + 0x0000000008002c94 . = ALIGN (0x4) + +.rel.dyn 0x0000000008002c94 0x0 + .rel.iplt 0x0000000008002c94 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o + +.ARM.extab 0x0000000008002c94 0x0 + 0x0000000008002c94 . = ALIGN (0x4) + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x0000000008002c94 . = ALIGN (0x4) + +.ARM 0x0000000008002c94 0x0 + 0x0000000008002c94 . = ALIGN (0x4) + 0x0000000008002c94 __exidx_start = . + *(.ARM.exidx*) + 0x0000000008002c94 __exidx_end = . + 0x0000000008002c94 . = ALIGN (0x4) + +.preinit_array 0x0000000008002c94 0x0 + 0x0000000008002c94 . = ALIGN (0x4) + 0x0000000008002c94 PROVIDE (__preinit_array_start = .) + *(.preinit_array*) + 0x0000000008002c94 PROVIDE (__preinit_array_end = .) + 0x0000000008002c94 . = ALIGN (0x4) + +.init_array 0x0000000008002c94 0x4 + 0x0000000008002c94 . = ALIGN (0x4) + 0x0000000008002c94 PROVIDE (__init_array_start = .) + *(SORT_BY_NAME(.init_array.*)) + *(.init_array*) + .init_array 0x0000000008002c94 0x4 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o + 0x0000000008002c98 PROVIDE (__init_array_end = .) + 0x0000000008002c98 . = ALIGN (0x4) + +.fini_array 0x0000000008002c98 0x4 + 0x0000000008002c98 . = ALIGN (0x4) + [!provide] PROVIDE (__fini_array_start = .) + *(SORT_BY_NAME(.fini_array.*)) + *(.fini_array*) + .fini_array 0x0000000008002c98 0x4 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o + [!provide] PROVIDE (__fini_array_end = .) + 0x0000000008002c9c . = ALIGN (0x4) + 0x0000000008002c9c _sidata = LOADADDR (.data) + +.data 0x0000000020000000 0xc load address 0x0000000008002c9c + 0x0000000020000000 . = ALIGN (0x4) + 0x0000000020000000 _sdata = . + *(.data) + *(.data*) + .data.SystemCoreClock + 0x0000000020000000 0x4 ./Core/Src/system_stm32f3xx.o + 0x0000000020000000 SystemCoreClock + .data.uwTickPrio + 0x0000000020000004 0x4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + 0x0000000020000004 uwTickPrio + .data.uwTickFreq + 0x0000000020000008 0x1 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + 0x0000000020000008 uwTickFreq + *(.RamFunc) + *(.RamFunc*) + 0x000000002000000c . = ALIGN (0x4) + *fill* 0x0000000020000009 0x3 + 0x000000002000000c _edata = . + +.igot.plt 0x000000002000000c 0x0 load address 0x0000000008002ca8 + .igot.plt 0x000000002000000c 0x0 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o + 0x000000002000000c . = ALIGN (0x4) + +.bss 0x000000002000000c 0x6c load address 0x0000000008002ca8 + 0x000000002000000c _sbss = . + 0x000000002000000c __bss_start__ = _sbss + *(.bss) + .bss 0x000000002000000c 0x1c c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o + *(.bss*) + .bss.htim2 0x0000000020000028 0x4c ./Core/Src/main.o + 0x0000000020000028 htim2 + .bss.uwTick 0x0000000020000074 0x4 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + 0x0000000020000074 uwTick + *(COMMON) + 0x0000000020000078 . = ALIGN (0x4) + 0x0000000020000078 _ebss = . + 0x0000000020000078 __bss_end__ = _ebss + +._user_heap_stack + 0x0000000020000078 0x600 load address 0x0000000008002ca8 + 0x0000000020000078 . = ALIGN (0x8) + [!provide] PROVIDE (end = .) + 0x0000000020000078 PROVIDE (_end = .) + 0x0000000020000278 . = (. + _Min_Heap_Size) + *fill* 0x0000000020000078 0x200 + 0x0000000020000678 . = (. + _Min_Stack_Size) + *fill* 0x0000000020000278 0x400 + 0x0000000020000678 . = ALIGN (0x8) + +/DISCARD/ + libc.a(*) + libm.a(*) + libgcc.a(*) + +.ARM.attributes + 0x0000000000000000 0x30 + *(.ARM.attributes) + .ARM.attributes + 0x0000000000000000 0x1e c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crti.o + .ARM.attributes + 0x000000000000001e 0x34 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtbegin.o + .ARM.attributes + 0x0000000000000052 0x34 ./Core/Src/main.o + .ARM.attributes + 0x0000000000000086 0x34 ./Core/Src/stm32f3xx_hal_msp.o + .ARM.attributes + 0x00000000000000ba 0x34 ./Core/Src/stm32f3xx_it.o + .ARM.attributes + 0x00000000000000ee 0x34 ./Core/Src/system_stm32f3xx.o + .ARM.attributes + 0x0000000000000122 0x21 ./Core/Startup/startup_stm32f302c8tx.o + .ARM.attributes + 0x0000000000000143 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .ARM.attributes + 0x0000000000000177 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .ARM.attributes + 0x00000000000001ab 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .ARM.attributes + 0x00000000000001df 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .ARM.attributes + 0x0000000000000213 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .ARM.attributes + 0x0000000000000247 0x34 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .ARM.attributes + 0x000000000000027b 0x34 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-init.o) + .ARM.attributes + 0x00000000000002af 0x34 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-memset.o) + .ARM.attributes + 0x00000000000002e3 0x1e c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard/crtn.o +OUTPUT(Open_Box.elf elf32-littlearm) +LOAD linker stubs +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc.a +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libm.a +LOAD c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m+fp/hard\libgcc.a + +.debug_info 0x0000000000000000 0x8dea + .debug_info 0x0000000000000000 0xcd1 ./Core/Src/main.o + .debug_info 0x0000000000000cd1 0x986 ./Core/Src/stm32f3xx_hal_msp.o + .debug_info 0x0000000000001657 0x122 ./Core/Src/stm32f3xx_it.o + .debug_info 0x0000000000001779 0x416 ./Core/Src/system_stm32f3xx.o + .debug_info 0x0000000000001b8f 0x22 ./Core/Startup/startup_stm32f302c8tx.o + .debug_info 0x0000000000001bb1 0x7a7 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_info 0x0000000000002358 0xb4a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_info 0x0000000000002ea2 0x68a ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_info 0x000000000000352c 0x151b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_info 0x0000000000004a47 0x2cfb ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_info 0x0000000000007742 0x16a8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + +.debug_abbrev 0x0000000000000000 0x141e + .debug_abbrev 0x0000000000000000 0x240 ./Core/Src/main.o + .debug_abbrev 0x0000000000000240 0x1c3 ./Core/Src/stm32f3xx_hal_msp.o + .debug_abbrev 0x0000000000000403 0x74 ./Core/Src/stm32f3xx_it.o + .debug_abbrev 0x0000000000000477 0x116 ./Core/Src/system_stm32f3xx.o + .debug_abbrev 0x000000000000058d 0x12 ./Core/Startup/startup_stm32f302c8tx.o + .debug_abbrev 0x000000000000059f 0x20e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_abbrev 0x00000000000007ad 0x2ed ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_abbrev 0x0000000000000a9a 0x1bb ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_abbrev 0x0000000000000c55 0x2f9 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_abbrev 0x0000000000000f4e 0x264 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_abbrev 0x00000000000011b2 0x26c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + +.debug_aranges 0x0000000000000000 0x940 + .debug_aranges + 0x0000000000000000 0x40 ./Core/Src/main.o + .debug_aranges + 0x0000000000000040 0x38 ./Core/Src/stm32f3xx_hal_msp.o + .debug_aranges + 0x0000000000000078 0x60 ./Core/Src/stm32f3xx_it.o + .debug_aranges + 0x00000000000000d8 0x28 ./Core/Src/system_stm32f3xx.o + .debug_aranges + 0x0000000000000100 0x28 ./Core/Startup/startup_stm32f302c8tx.o + .debug_aranges + 0x0000000000000128 0xe0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_aranges + 0x0000000000000208 0x100 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_aranges + 0x0000000000000308 0x58 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_aranges + 0x0000000000000360 0x88 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_aranges + 0x00000000000003e8 0x3e0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_aranges + 0x00000000000007c8 0x178 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + +.debug_ranges 0x0000000000000000 0x898 + .debug_ranges 0x0000000000000000 0x30 ./Core/Src/main.o + .debug_ranges 0x0000000000000030 0x28 ./Core/Src/stm32f3xx_hal_msp.o + .debug_ranges 0x0000000000000058 0x50 ./Core/Src/stm32f3xx_it.o + .debug_ranges 0x00000000000000a8 0x18 ./Core/Src/system_stm32f3xx.o + .debug_ranges 0x00000000000000c0 0x20 ./Core/Startup/startup_stm32f302c8tx.o + .debug_ranges 0x00000000000000e0 0xd0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_ranges 0x00000000000001b0 0xf0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_ranges 0x00000000000002a0 0x48 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_ranges 0x00000000000002e8 0x78 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_ranges 0x0000000000000360 0x3d0 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_ranges 0x0000000000000730 0x168 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + +.debug_macro 0x0000000000000000 0x1a2ca + .debug_macro 0x0000000000000000 0x1c0 ./Core/Src/main.o + .debug_macro 0x00000000000001c0 0xa78 ./Core/Src/main.o + .debug_macro 0x0000000000000c38 0x151 ./Core/Src/main.o + .debug_macro 0x0000000000000d89 0x2e ./Core/Src/main.o + .debug_macro 0x0000000000000db7 0x28 ./Core/Src/main.o + .debug_macro 0x0000000000000ddf 0x22 ./Core/Src/main.o + .debug_macro 0x0000000000000e01 0x8e ./Core/Src/main.o + .debug_macro 0x0000000000000e8f 0x51 ./Core/Src/main.o + .debug_macro 0x0000000000000ee0 0x103 ./Core/Src/main.o + .debug_macro 0x0000000000000fe3 0x6a ./Core/Src/main.o + .debug_macro 0x000000000000104d 0x1df ./Core/Src/main.o + .debug_macro 0x000000000000122c 0x1c ./Core/Src/main.o + .debug_macro 0x0000000000001248 0x22 ./Core/Src/main.o + .debug_macro 0x000000000000126a 0xd9 ./Core/Src/main.o + .debug_macro 0x0000000000001343 0xf07 ./Core/Src/main.o + .debug_macro 0x000000000000224a 0x110e8 ./Core/Src/main.o + .debug_macro 0x0000000000013332 0x6d ./Core/Src/main.o + .debug_macro 0x000000000001339f 0x3574 ./Core/Src/main.o + .debug_macro 0x0000000000016913 0x174 ./Core/Src/main.o + .debug_macro 0x0000000000016a87 0x55 ./Core/Src/main.o + .debug_macro 0x0000000000016adc 0x8f8 ./Core/Src/main.o + .debug_macro 0x00000000000173d4 0x41b ./Core/Src/main.o + .debug_macro 0x00000000000177ef 0x1b5 ./Core/Src/main.o + .debug_macro 0x00000000000179a4 0x161 ./Core/Src/main.o + .debug_macro 0x0000000000017b05 0x1d5 ./Core/Src/main.o + .debug_macro 0x0000000000017cda 0x1bc ./Core/Src/main.o + .debug_macro 0x0000000000017e96 0x34 ./Core/Src/main.o + .debug_macro 0x0000000000017eca 0x3c ./Core/Src/main.o + .debug_macro 0x0000000000017f06 0x57 ./Core/Src/main.o + .debug_macro 0x0000000000017f5d 0xc5 ./Core/Src/main.o + .debug_macro 0x0000000000018022 0x19f ./Core/Src/main.o + .debug_macro 0x00000000000181c1 0x22c ./Core/Src/main.o + .debug_macro 0x00000000000183ed 0x5b ./Core/Src/main.o + .debug_macro 0x0000000000018448 0xa5 ./Core/Src/main.o + .debug_macro 0x00000000000184ed 0x81 ./Core/Src/main.o + .debug_macro 0x000000000001856e 0xd3 ./Core/Src/main.o + .debug_macro 0x0000000000018641 0xa60 ./Core/Src/main.o + .debug_macro 0x00000000000190a1 0x41 ./Core/Src/main.o + .debug_macro 0x00000000000190e2 0x1f7 ./Core/Src/main.o + .debug_macro 0x00000000000192d9 0x40 ./Core/Src/main.o + .debug_macro 0x0000000000019319 0x1c0 ./Core/Src/stm32f3xx_hal_msp.o + .debug_macro 0x00000000000194d9 0x1ca ./Core/Src/stm32f3xx_it.o + .debug_macro 0x00000000000196a3 0x1b1 ./Core/Src/system_stm32f3xx.o + .debug_macro 0x0000000000019854 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_macro 0x0000000000019a29 0x1b1 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_macro 0x0000000000019bda 0x1b8 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_macro 0x0000000000019d92 0x1d5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_macro 0x0000000000019f67 0x1b2 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_macro 0x000000000001a119 0x1b1 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + +.debug_line 0x0000000000000000 0xa514 + .debug_line 0x0000000000000000 0x7bd ./Core/Src/main.o + .debug_line 0x00000000000007bd 0x714 ./Core/Src/stm32f3xx_hal_msp.o + .debug_line 0x0000000000000ed1 0x76f ./Core/Src/stm32f3xx_it.o + .debug_line 0x0000000000001640 0x723 ./Core/Src/system_stm32f3xx.o + .debug_line 0x0000000000001d63 0x88 ./Core/Startup/startup_stm32f302c8tx.o + .debug_line 0x0000000000001deb 0x958 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_line 0x0000000000002743 0xb40 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_line 0x0000000000003283 0xaa3 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_line 0x0000000000003d26 0x12f5 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_line 0x000000000000501b 0x3b6b ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_line 0x0000000000008b86 0x198e ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + +.debug_str 0x0000000000000000 0x9d709 + .debug_str 0x0000000000000000 0x9b4f4 ./Core/Src/main.o + 0x9b811 (size before relaxing) + .debug_str 0x000000000009b4f4 0x6e ./Core/Src/stm32f3xx_hal_msp.o + 0x9b52b (size before relaxing) + .debug_str 0x000000000009b562 0xc9 ./Core/Src/stm32f3xx_it.o + 0x9af7c (size before relaxing) + .debug_str 0x000000000009b62b 0xe9 ./Core/Src/system_stm32f3xx.o + 0x9af22 (size before relaxing) + .debug_str 0x000000000009b714 0x36 ./Core/Startup/startup_stm32f302c8tx.o + 0x71 (size before relaxing) + .debug_str 0x000000000009b74a 0x625 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + 0x9b67c (size before relaxing) + .debug_str 0x000000000009bd6f 0x267 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + 0x9b5a1 (size before relaxing) + .debug_str 0x000000000009bfd6 0x139 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + 0x9b098 (size before relaxing) + .debug_str 0x000000000009c10f 0x2d1 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + 0x9b3c2 (size before relaxing) + .debug_str 0x000000000009c3e0 0xe4d ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + 0x9c359 (size before relaxing) + .debug_str 0x000000000009d22d 0x4dc ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + 0x9bb9f (size before relaxing) + +.comment 0x0000000000000000 0x50 + .comment 0x0000000000000000 0x50 ./Core/Src/main.o + 0x51 (size before relaxing) + .comment 0x0000000000000050 0x51 ./Core/Src/stm32f3xx_hal_msp.o + .comment 0x0000000000000050 0x51 ./Core/Src/stm32f3xx_it.o + .comment 0x0000000000000050 0x51 ./Core/Src/system_stm32f3xx.o + .comment 0x0000000000000050 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .comment 0x0000000000000050 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .comment 0x0000000000000050 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .comment 0x0000000000000050 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .comment 0x0000000000000050 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .comment 0x0000000000000050 0x51 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + +.debug_frame 0x0000000000000000 0x2660 + .debug_frame 0x0000000000000000 0xb0 ./Core/Src/main.o + .debug_frame 0x00000000000000b0 0xac ./Core/Src/stm32f3xx_hal_msp.o + .debug_frame 0x000000000000015c 0x104 ./Core/Src/stm32f3xx_it.o + .debug_frame 0x0000000000000260 0x58 ./Core/Src/system_stm32f3xx.o + .debug_frame 0x00000000000002b8 0x334 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o + .debug_frame 0x00000000000005ec 0x428 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o + .debug_frame 0x0000000000000a14 0x14c ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o + .debug_frame 0x0000000000000b60 0x214 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o + .debug_frame 0x0000000000000d74 0x1218 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o + .debug_frame 0x0000000000001f8c 0x688 ./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o + .debug_frame 0x0000000000002614 0x2c c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-init.o) + .debug_frame 0x0000000000002640 0x20 c:/st/stm32cubeide_1.12.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(lib_a-memset.o) diff --git a/Debug/makefile b/Debug/makefile new file mode 100644 index 0000000..6150e74 --- /dev/null +++ b/Debug/makefile @@ -0,0 +1,94 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (10.3-2021.10) +################################################################################ + +-include ../makefile.init + +RM := rm -rf + +# All of the sources participating in the build are defined here +-include sources.mk +-include Drivers/STM32F3xx_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 := Open_Box +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 += \ +Open_Box.elf \ + +MAP_FILES += \ +Open_Box.map \ + +SIZE_OUTPUT += \ +default.size.stdout \ + +OBJDUMP_LIST += \ +Open_Box.list \ + + +# All Target +all: main-build + +# Main-build Target +main-build: Open_Box.elf secondary-outputs + +# Tool invocations +Open_Box.elf Open_Box.map: $(OBJS) $(USER_OBJS) C:\Users\User\STM32CubeIDE\workspace_1.12.0\Open_Box\STM32F302C8TX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS) + arm-none-eabi-gcc -o "Open_Box.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"C:\Users\User\STM32CubeIDE\workspace_1.12.0\Open_Box\STM32F302C8TX_FLASH.ld" --specs=nosys.specs -Wl,-Map="Open_Box.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 ' ' + +Open_Box.list: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS) + arm-none-eabi-objdump -h -S $(EXECUTABLES) > "Open_Box.list" + @echo 'Finished building: $@' + @echo ' ' + +# Other Targets +clean: + -$(RM) Open_Box.elf Open_Box.list Open_Box.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..bdda38c --- /dev/null +++ b/Debug/objects.list @@ -0,0 +1,22 @@ +"./Core/Src/main.o" +"./Core/Src/stm32f3xx_hal_msp.o" +"./Core/Src/stm32f3xx_it.o" +"./Core/Src/syscalls.o" +"./Core/Src/sysmem.o" +"./Core/Src/system_stm32f3xx.o" +"./Core/Startup/startup_stm32f302c8tx.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.o" +"./Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o" diff --git a/Debug/objects.mk b/Debug/objects.mk new file mode 100644 index 0000000..e423e31 --- /dev/null +++ b/Debug/objects.mk @@ -0,0 +1,9 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (10.3-2021.10) +################################################################################ + +USER_OBJS := + +LIBS := + diff --git a/Debug/sources.mk b/Debug/sources.mk new file mode 100644 index 0000000..fe8dffc --- /dev/null +++ b/Debug/sources.mk @@ -0,0 +1,28 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (10.3-2021.10) +################################################################################ + +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/STM32F3xx_HAL_Driver/Src \ + diff --git a/Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.h b/Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.h new file mode 100644 index 0000000..c591756 --- /dev/null +++ b/Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.h @@ -0,0 +1,12393 @@ +/** + ****************************************************************************** + * @file stm32f302x8.h + * @author MCD Application Team + * @brief CMSIS STM32F302x8 Devices 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) 2016 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 stm32f302x8 + * @{ + */ + +#ifndef __STM32F302x8_H +#define __STM32F302x8_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 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0U /*!< STM32F302x8 devices do not provide an MPU */ +#define __NVIC_PRIO_BITS 4U /*!< STM32F302x8 devices use 4 Bits for the Priority Levels */ +#define __Vendor_SysTickConfig 0U /*!< Set to 1 if different SysTick Config is used */ +#define __FPU_PRESENT 1U /*!< STM32F302x8 devices provide an FPU */ + +/** + * @} + */ + +/** @addtogroup Peripheral_interrupt_number_definition + * @{ + */ + +/** + * @brief STM32F302x8 devices Interrupt Number Definition, according to the selected device + * in @ref Library_configuration_section + */ +typedef enum +{ +/****** Cortex-M4 Processor Exceptions Numbers ****************************************************************/ + NonMaskableInt_IRQn = -14, /*!< 2 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_IRQn = 1, /*!< PVD through EXTI Line detection Interrupt */ + TAMP_STAMP_IRQn = 2, /*!< Tamper and TimeStamp interrupts through the EXTI line 19 */ + RTC_WKUP_IRQn = 3, /*!< RTC Wakeup interrupt through the EXTI line 20 */ + 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_TSC_IRQn = 8, /*!< EXTI Line2 Interrupt and Touch Sense Controller Interrupt */ + EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt */ + EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt */ + DMA1_Channel1_IRQn = 11, /*!< DMA1 Channel 1 Interrupt */ + DMA1_Channel2_IRQn = 12, /*!< DMA1 Channel 2 Interrupt */ + DMA1_Channel3_IRQn = 13, /*!< DMA1 Channel 3 Interrupt */ + DMA1_Channel4_IRQn = 14, /*!< DMA1 Channel 4 Interrupt */ + DMA1_Channel5_IRQn = 15, /*!< DMA1 Channel 5 Interrupt */ + DMA1_Channel6_IRQn = 16, /*!< DMA1 Channel 6 Interrupt */ + DMA1_Channel7_IRQn = 17, /*!< DMA1 Channel 7 Interrupt */ + ADC1_IRQn = 18, /*!< ADC1 Interrupts */ + USB_HP_CAN_TX_IRQn = 19, /*!< USB Device High Priority or CAN TX Interrupts */ + USB_LP_CAN_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN RX0 Interrupts */ + CAN_RX1_IRQn = 21, /*!< CAN RX1 Interrupt */ + CAN_SCE_IRQn = 22, /*!< CAN SCE Interrupt */ + EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ + TIM1_BRK_TIM15_IRQn = 24, /*!< TIM1 Break and TIM15 Interrupts */ + TIM1_UP_TIM16_IRQn = 25, /*!< TIM1 Update and TIM16 Interrupts */ + TIM1_TRG_COM_TIM17_IRQn = 26, /*!< TIM1 Trigger and Commutation and TIM17 Interrupt */ + TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ + TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ + I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt & EXTI Line23 Interrupt (I2C1 wakeup) */ + I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ + I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt & EXTI Line24 Interrupt (I2C2 wakeup) */ + I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ + SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ + USART1_IRQn = 37, /*!< USART1 global Interrupt & EXTI Line25 Interrupt (USART1 wakeup) */ + USART2_IRQn = 38, /*!< USART2 global Interrupt & EXTI Line26 Interrupt (USART2 wakeup) */ + USART3_IRQn = 39, /*!< USART3 global Interrupt & EXTI Line28 Interrupt (USART3 wakeup) */ + EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ + RTC_Alarm_IRQn = 41, /*!< RTC Alarm (A and B) through EXTI Line 17 Interrupt */ + USBWakeUp_IRQn = 42, /*!< USB Wakeup Interrupt */ + SPI3_IRQn = 51, /*!< SPI3 global Interrupt */ + TIM6_DAC_IRQn = 54, /*!< TIM6 global and DAC underrun error Interrupt */ + COMP2_IRQn = 64, /*!< COMP2 global Interrupt via EXTI Line22 */ + COMP4_6_IRQn = 65, /*!< COMP4 and COMP6 global Interrupt via EXTI Line30 and 32 */ + I2C3_EV_IRQn = 72, /*!< I2C3 Event Interrupt & EXTI Line27 Interrupt (I2C3 wakeup) */ + I2C3_ER_IRQn = 73, /*!< I2C3 Error Interrupt */ + USB_HP_IRQn = 74, /*!< USB High Priority global Interrupt */ + USB_LP_IRQn = 75, /*!< USB Low Priority global Interrupt */ + USBWakeUp_RMP_IRQn = 76, /*!< USB Wakeup Interrupt remap */ + FPU_IRQn = 81, /*!< Floating point Interrupt */ +} IRQn_Type; + +/** + * @} + */ + +#include "core_cm4.h" /* Cortex-M4 processor and core peripherals */ +#include "system_stm32f3xx.h" /* STM32F3xx System Header */ +#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, Address offset: 0x0C */ + uint32_t RESERVED0; /*!< Reserved, 0x010 */ + __IO uint32_t SMPR1; /*!< ADC sample time register 1, Address offset: 0x14 */ + __IO uint32_t SMPR2; /*!< ADC sample time register 2, Address offset: 0x18 */ + uint32_t RESERVED1; /*!< Reserved, 0x01C */ + __IO uint32_t TR1; /*!< ADC watchdog threshold register 1, Address offset: 0x20 */ + __IO uint32_t TR2; /*!< ADC watchdog threshold register 2, Address offset: 0x24 */ + __IO uint32_t TR3; /*!< ADC watchdog threshold register 3, Address offset: 0x28 */ + uint32_t RESERVED2; /*!< Reserved, 0x02C */ + __IO uint32_t SQR1; /*!< ADC regular sequence register 1, Address offset: 0x30 */ + __IO uint32_t SQR2; /*!< ADC regular sequence register 2, Address offset: 0x34 */ + __IO uint32_t SQR3; /*!< ADC regular sequence register 3, Address offset: 0x38 */ + __IO uint32_t SQR4; /*!< ADC regular sequence register 4, Address offset: 0x3C */ + __IO uint32_t DR; /*!< ADC regular data register, Address offset: 0x40 */ + uint32_t RESERVED3; /*!< Reserved, 0x044 */ + uint32_t RESERVED4; /*!< Reserved, 0x048 */ + __IO uint32_t JSQR; /*!< ADC injected sequence register, Address offset: 0x4C */ + uint32_t RESERVED5[4]; /*!< Reserved, 0x050 - 0x05C */ + __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, 0x070 - 0x07C */ + __IO uint32_t JDR1; /*!< ADC injected data register 1, Address offset: 0x80 */ + __IO uint32_t JDR2; /*!< ADC injected data register 2, Address offset: 0x84 */ + __IO uint32_t JDR3; /*!< ADC injected data register 3, Address offset: 0x88 */ + __IO uint32_t JDR4; /*!< ADC injected data register 4, 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 */ + +} ADC_TypeDef; + +typedef struct +{ + __IO uint32_t CSR; /*!< ADC Common status register, Address offset: ADC1/3 base address + 0x300 */ + uint32_t RESERVED; /*!< Reserved, ADC1/3 base address + 0x304 */ + __IO uint32_t CCR; /*!< ADC common control register, Address offset: ADC1/3 base address + 0x308 */ + __IO uint32_t CDR; /*!< ADC common regular data register for dual + AND triple modes, Address offset: ADC1/3 base address + 0x30C */ +} ADC_Common_TypeDef; + +/** + * @brief Controller Area Network TxMailBox + */ +typedef struct +{ + __IO uint32_t TIR; /*!< CAN TX mailbox identifier register */ + __IO uint32_t TDTR; /*!< CAN mailbox data length control and time stamp register */ + __IO uint32_t TDLR; /*!< CAN mailbox data low register */ + __IO uint32_t TDHR; /*!< CAN mailbox data high register */ +} CAN_TxMailBox_TypeDef; + +/** + * @brief Controller Area Network FIFOMailBox + */ +typedef struct +{ + __IO uint32_t RIR; /*!< CAN receive FIFO mailbox identifier register */ + __IO uint32_t RDTR; /*!< CAN receive FIFO mailbox data length control and time stamp register */ + __IO uint32_t RDLR; /*!< CAN receive FIFO mailbox data low register */ + __IO uint32_t RDHR; /*!< CAN receive FIFO mailbox data high register */ +} CAN_FIFOMailBox_TypeDef; + +/** + * @brief Controller Area Network FilterRegister + */ +typedef struct +{ + __IO uint32_t FR1; /*!< CAN Filter bank register 1 */ + __IO uint32_t FR2; /*!< CAN Filter bank register 1 */ +} CAN_FilterRegister_TypeDef; + +/** + * @brief Controller Area Network + */ +typedef struct +{ + __IO uint32_t MCR; /*!< CAN master control register, Address offset: 0x00 */ + __IO uint32_t MSR; /*!< CAN master status register, Address offset: 0x04 */ + __IO uint32_t TSR; /*!< CAN transmit status register, Address offset: 0x08 */ + __IO uint32_t RF0R; /*!< CAN receive FIFO 0 register, Address offset: 0x0C */ + __IO uint32_t RF1R; /*!< CAN receive FIFO 1 register, Address offset: 0x10 */ + __IO uint32_t IER; /*!< CAN interrupt enable register, Address offset: 0x14 */ + __IO uint32_t ESR; /*!< CAN error status register, Address offset: 0x18 */ + __IO uint32_t BTR; /*!< CAN bit timing register, Address offset: 0x1C */ + uint32_t RESERVED0[88]; /*!< Reserved, 0x020 - 0x17F */ + CAN_TxMailBox_TypeDef sTxMailBox[3]; /*!< CAN Tx MailBox, Address offset: 0x180 - 0x1AC */ + CAN_FIFOMailBox_TypeDef sFIFOMailBox[2]; /*!< CAN FIFO MailBox, Address offset: 0x1B0 - 0x1CC */ + uint32_t RESERVED1[12]; /*!< Reserved, 0x1D0 - 0x1FF */ + __IO uint32_t FMR; /*!< CAN filter master register, Address offset: 0x200 */ + __IO uint32_t FM1R; /*!< CAN filter mode register, Address offset: 0x204 */ + uint32_t RESERVED2; /*!< Reserved, 0x208 */ + __IO uint32_t FS1R; /*!< CAN filter scale register, Address offset: 0x20C */ + uint32_t RESERVED3; /*!< Reserved, 0x210 */ + __IO uint32_t FFA1R; /*!< CAN filter FIFO assignment register, Address offset: 0x214 */ + uint32_t RESERVED4; /*!< Reserved, 0x218 */ + __IO uint32_t FA1R; /*!< CAN filter activation register, Address offset: 0x21C */ + uint32_t RESERVED5[8]; /*!< Reserved, 0x220-0x23F */ + CAN_FilterRegister_TypeDef sFilterRegister[28]; /*!< CAN Filter Register, Address offset: 0x240-0x31C */ +} CAN_TypeDef; + +/** + * @brief Analog Comparators + */ +typedef struct +{ + __IO uint32_t CSR; /*!< COMP control and status register, Address offset: 0x00 */ +} COMP_TypeDef; + +typedef struct +{ + __IO uint32_t CSR; /*!< COMP control and status register, used for bits common to several COMP instances, Address offset: 0x00 */ +} COMP_Common_TypeDef; + +/** + * @brief CRC calculation unit + */ + +typedef struct +{ + __IO uint32_t DR; /*!< CRC Data register, Address offset: 0x00 */ + __IO uint8_t IDR; /*!< CRC Independent data register, Address offset: 0x04 */ + uint8_t RESERVED0; /*!< Reserved, 0x05 */ + uint16_t RESERVED1; /*!< Reserved, 0x06 */ + __IO uint32_t CR; /*!< CRC Control register, Address offset: 0x08 */ + uint32_t RESERVED2; /*!< 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 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 RESERVED0; /*!< Reserved, 0x14 */ + __IO uint32_t RESERVED1; /*!< Reserved, 0x18 */ + __IO uint32_t RESERVED2; /*!< Reserved, 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 RESERVED3; /*!< Reserved, 0x30 */ + __IO uint32_t SR; /*!< DAC status register, Address offset: 0x34 */ +} 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 APB1FZ; /*!< Debug MCU APB1 freeze register, Address offset: 0x08 */ + __IO uint32_t APB2FZ; /*!< Debug MCU APB2 freeze register, Address offset: 0x0C */ +}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 External Interrupt/Event Controller + */ + +typedef struct +{ + __IO uint32_t IMR; /*!>= 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..162a400 --- /dev/null +++ b/Drivers/CMSIS/Include/cmsis_armclang.h @@ -0,0 +1,1869 @@ +/**************************************************************************//** + * @file cmsis_armclang.h + * @brief CMSIS compiler armclang (Arm Compiler 6) header file + * @version V5.0.4 + * @date 10. January 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. + */ + +/*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 + + +/* ########################### 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 + */ +#define __CLZ (uint8_t)__builtin_clz + + +#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); +} + +#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 */ + + +#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..94212eb --- /dev/null +++ b/Drivers/CMSIS/Include/cmsis_compiler.h @@ -0,0 +1,266 @@ +/**************************************************************************//** + * @file cmsis_compiler.h + * @brief CMSIS compiler generic header file + * @version V5.0.4 + * @date 10. January 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 (armclang) + */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #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 + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #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 + + +/* + * 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 + + +#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..2d9db15 --- /dev/null +++ b/Drivers/CMSIS/Include/cmsis_gcc.h @@ -0,0 +1,2085 @@ +/**************************************************************************//** + * @file cmsis_gcc.h + * @brief CMSIS compiler GCC header file + * @version V5.0.4 + * @date 09. April 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_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 + + +/* ########################### 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 + */ +#define __CLZ (uint8_t)__builtin_clz + + +#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..11c4af0 --- /dev/null +++ b/Drivers/CMSIS/Include/cmsis_iccarm.h @@ -0,0 +1,935 @@ +/**************************************************************************//** + * @file cmsis_iccarm.h + * @brief CMSIS compiler ICCARM (IAR Compiler for Arm) header file + * @version V5.0.7 + * @date 19. June 2018 + ******************************************************************************/ + +//------------------------------------------------------------------------------ +// +// Copyright (c) 2017-2018 IAR Systems +// +// 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 __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 + #define __RESTRICT __restrict +#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 __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..660f612 --- /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.2 + * @date 19. April 2017 + ******************************************************************************/ +/* + * Copyright (c) 2009-2017 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 ( 1U) /*!< [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_armv8mbl.h b/Drivers/CMSIS/Include/core_armv8mbl.h new file mode 100644 index 0000000..251e4ed --- /dev/null +++ b/Drivers/CMSIS/Include/core_armv8mbl.h @@ -0,0 +1,1918 @@ +/**************************************************************************//** + * @file core_armv8mbl.h + * @brief CMSIS Armv8-M Baseline Core Peripheral Access Layer Header File + * @version V5.0.7 + * @date 22. June 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_PCS_VFP + #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 (0x00000002UL) /* bit [1] 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) + { + 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[_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; +} + + +/** + \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..3a3148e --- /dev/null +++ b/Drivers/CMSIS/Include/core_armv8mml.h @@ -0,0 +1,2927 @@ +/**************************************************************************//** + * @file core_armv8mml.h + * @brief CMSIS Armv8-M Mainline Core Peripheral Access Layer Header File + * @version V5.0.7 + * @date 06. July 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_PCS_VFP + #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 */ + 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 */ + __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 (0x00000002UL) /* bit [1] 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 << 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; +} + + +/** + \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_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..f929bba --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm0.h @@ -0,0 +1,949 @@ +/**************************************************************************//** + * @file core_cm0.h + * @brief CMSIS Cortex-M0 Core Peripheral Access Layer Header File + * @version V5.0.5 + * @date 28. May 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_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_PCS_VFP + #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 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_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) + { + NVIC->ISER[0U] = (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[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; +} + + +/** + \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_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..424011a --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm0plus.h @@ -0,0 +1,1083 @@ +/**************************************************************************//** + * @file core_cm0plus.h + * @brief CMSIS Cortex-M0+ Core Peripheral Access Layer Header File + * @version V5.0.6 + * @date 28. May 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_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_PCS_VFP + #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 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 */ +#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) + { + NVIC->ISER[0U] = (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[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 = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \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(); + } +} + +/*@} 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..0ed678e --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm1.h @@ -0,0 +1,976 @@ +/**************************************************************************//** + * @file core_cm1.h + * @brief CMSIS Cortex-M1 Core Peripheral Access Layer Header File + * @version V1.0.0 + * @date 23. July 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_PCS_VFP + #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) + { + NVIC->ISER[0U] = (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[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; +} + + +/** + \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..acbc5df --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm23.h @@ -0,0 +1,1993 @@ +/**************************************************************************//** + * @file core_cm23.h + * @brief CMSIS Cortex-M23 Core Peripheral Access Layer Header File + * @version V5.0.7 + * @date 22. June 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_PCS_VFP + #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 (0x00000002UL) /* bit [1] 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) + { + 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[_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; +} + + +/** + \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..74bff64 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm3.h @@ -0,0 +1,1941 @@ +/**************************************************************************//** + * @file core_cm3.h + * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 04. June 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_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_PCS_VFP + #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 RSERVED1[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 */ + +#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[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[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 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 */ + __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 (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_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 (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_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) + { + 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); + } +} + + +/** + \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; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \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(); + } +} + +/*@} 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..6cd2db7 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm33.h @@ -0,0 +1,3002 @@ +/**************************************************************************//** + * @file core_cm33.h + * @brief CMSIS Cortex-M33 Core Peripheral Access Layer Header File + * @version V5.0.9 + * @date 06. July 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_PCS_VFP) + #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 */ + 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 (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 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 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 (0x00000002UL) /* bit [1] 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 << 8U) ); /* 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) + { + 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; +} + + +/** + \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_cm4.h b/Drivers/CMSIS/Include/core_cm4.h new file mode 100644 index 0000000..7d56873 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm4.h @@ -0,0 +1,2129 @@ +/**************************************************************************//** + * @file core_cm4.h + * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 04. June 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_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_PCS_VFP + #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 RSERVED1[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[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[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 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 */ + __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 (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_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 (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_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 */ +} 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 */ + +/*@} 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) + { + 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); + } +} + + +/** + \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; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \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(); + } +} + +/*@} 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..a14dc62 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm7.h @@ -0,0 +1,2671 @@ +/**************************************************************************//** + * @file core_cm7.h + * @brief CMSIS Cortex-M7 Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 04. June 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_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_PCS_VFP + #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 RSERVED1[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_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[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[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 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 */ + __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 (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_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 (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_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 */ + +/*@} 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) + { + 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); + } +} + + +/** + \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; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \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(); + } +} + +/*@} 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 ) + + +/** + \brief Enable I-Cache + \details Turns on I-Cache + */ +__STATIC_INLINE void SCB_EnableICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + __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_INLINE 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_INLINE void SCB_InvalidateICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + __DSB(); + __ISB(); + SCB->ICIALLU = 0UL; + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Enable D-Cache + \details Turns on D-Cache + */ +__STATIC_INLINE void SCB_EnableDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /*(0U << 1U) | 0U;*/ /* 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_INLINE void SCB_DisableDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /*(0U << 1U) | 0U;*/ /* 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_INLINE void SCB_InvalidateDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /*(0U << 1U) | 0U;*/ /* 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_INLINE void SCB_CleanDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /*(0U << 1U) | 0U;*/ /* 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_INLINE void SCB_CleanInvalidateDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /*(0U << 1U) | 0U;*/ /* 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 + \param[in] addr address (aligned to 32-byte boundary) + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_INLINE void SCB_InvalidateDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + int32_t op_size = dsize; + uint32_t op_addr = (uint32_t)addr; + int32_t linesize = 32; /* in Cortex-M7 size of cache line is fixed to 8 words (32 bytes) */ + + __DSB(); + + while (op_size > 0) { + SCB->DCIMVAC = op_addr; + op_addr += (uint32_t)linesize; + op_size -= linesize; + } + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief D-Cache Clean by address + \details Cleans D-Cache for the given address + \param[in] addr address (aligned to 32-byte boundary) + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_INLINE void SCB_CleanDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + int32_t op_size = dsize; + uint32_t op_addr = (uint32_t) addr; + int32_t linesize = 32; /* in Cortex-M7 size of cache line is fixed to 8 words (32 bytes) */ + + __DSB(); + + while (op_size > 0) { + SCB->DCCMVAC = op_addr; + op_addr += (uint32_t)linesize; + op_size -= linesize; + } + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief D-Cache Clean and Invalidate by address + \details Cleans and invalidates D_Cache for the given address + \param[in] addr address (aligned to 32-byte boundary) + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_INLINE void SCB_CleanInvalidateDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + int32_t op_size = dsize; + uint32_t op_addr = (uint32_t) addr; + int32_t linesize = 32; /* in Cortex-M7 size of cache line is fixed to 8 words (32 bytes) */ + + __DSB(); + + while (op_size > 0) { + SCB->DCCIMVAC = op_addr; + op_addr += (uint32_t)linesize; + op_size -= linesize; + } + + __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..9b67c92 --- /dev/null +++ b/Drivers/CMSIS/Include/core_sc000.h @@ -0,0 +1,1022 @@ +/**************************************************************************//** + * @file core_sc000.h + * @brief CMSIS SC000 Core Peripheral Access Layer Header File + * @version V5.0.5 + * @date 28. May 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_PCS_VFP + #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) + { + NVIC->ISER[0U] = (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[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; +} + + +/** + \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..3e8a471 --- /dev/null +++ b/Drivers/CMSIS/Include/core_sc300.h @@ -0,0 +1,1915 @@ +/**************************************************************************//** + * @file core_sc300.h + * @brief CMSIS SC300 Core Peripheral Access Layer Header File + * @version V5.0.6 + * @date 04. June 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_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_PCS_VFP + #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 RSERVED1[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 */ + uint32_t RESERVED1[1U]; +} 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[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 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 */ + __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 (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_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 (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_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 << 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); + } +} + + +/** + \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; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \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(); + } +} + +/*@} 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..0142203 --- /dev/null +++ b/Drivers/CMSIS/Include/mpu_armv7.h @@ -0,0 +1,270 @@ +/****************************************************************************** + * @file mpu_armv7.h + * @brief CMSIS MPU API for Armv7-M MPU + * @version V5.0.4 + * @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 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))) + +/** +* 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 non-shareable) or 010b (if 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) +{ + __DSB(); + __ISB(); + MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif +} + +/** Disable the MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable(void) +{ + __DSB(); + __ISB(); +#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 orderedCpy(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) { + orderedCpy(&(MPU->RBAR), &(table->RBAR), MPU_TYPE_RALIASES*rowWordSize); + table += MPU_TYPE_RALIASES; + cnt -= MPU_TYPE_RALIASES; + } + orderedCpy(&(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..62571da --- /dev/null +++ b/Drivers/CMSIS/Include/mpu_armv8.h @@ -0,0 +1,333 @@ +/****************************************************************************** + * @file mpu_armv8.h + * @brief CMSIS MPU API for Armv8-M MPU + * @version V5.0.4 + * @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 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)) + +/** +* 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) +{ + __DSB(); + __ISB(); + MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif +} + +/** Disable the MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable(void) +{ + __DSB(); + __ISB(); +#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) +{ + __DSB(); + __ISB(); + MPU_NS->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB_NS->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif +} + +/** Disable the Non-secure MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable_NS(void) +{ + __DSB(); + __ISB(); +#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 orderedCpy(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; + orderedCpy(&(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; + orderedCpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), c*rowWordSize); + table += c; + cnt -= c; + rnrOffset = 0U; + rnrBase += MPU_TYPE_RALIASES; + mpu->RNR = rnrBase; + } + + orderedCpy(&(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/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h b/Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h new file mode 100644 index 0000000..eef1d01 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h @@ -0,0 +1,4360 @@ +/** + ****************************************************************************** + * @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 +#define PAGESIZE FLASH_PAGE_SIZE +#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(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 */ +/** + * @} + */ + +/** @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(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/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h new file mode 100644 index 0000000..eaa2c3c --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h @@ -0,0 +1,944 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal.h + * @author MCD Application Team + * @brief This file contains all the functions prototypes for the HAL + * module driver. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_H +#define __STM32F3xx_HAL_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_conf.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup HAL + * @{ + */ + +/* Private macros ------------------------------------------------------------*/ +/** @addtogroup HAL_Private_Macros + * @{ + */ +#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)) +/** + * @} + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup HAL_Exported_Constants HAL Exported Constants + * @{ + */ + +/** @defgroup HAL_TICK_FREQ Tick Frequency + * @{ + */ +typedef enum +{ + HAL_TICK_FREQ_10HZ = 100U, + HAL_TICK_FREQ_100HZ = 10U, + HAL_TICK_FREQ_1KHZ = 1U, + HAL_TICK_FREQ_DEFAULT = HAL_TICK_FREQ_1KHZ +} HAL_TickFreqTypeDef; +/** + * @} + */ + +/** + * @} + */ +/** @defgroup HAL_Exported_Constants HAL Exported Constants + * @{ + */ +/** @defgroup SYSCFG_BitAddress_AliasRegion SYSCFG registers bit address in the alias region + * @brief SYSCFG registers bit address in the alias region + * @{ + */ +/* ------------ SYSCFG registers bit address in the alias region -------------*/ +#define SYSCFG_OFFSET (SYSCFG_BASE - PERIPH_BASE) +/* --- CFGR2 Register ---*/ +/* Alias word address of BYP_ADDR_PAR bit */ +#define CFGR2_OFFSET (SYSCFG_OFFSET + 0x18U) +#define BYPADDRPAR_BitNumber 0x04U +#define CFGR2_BYPADDRPAR_BB (PERIPH_BB_BASE + (CFGR2_OFFSET * 32U) + (BYPADDRPAR_BitNumber * 4U)) +/** + * @} + */ + +#if defined(SYSCFG_CFGR1_DMA_RMP) +/** @defgroup HAL_DMA_Remapping HAL DMA Remapping + * Elements values convention: 0xXXYYYYYY + * - YYYYYY : Position in the register + * - XX : Register index + * - 00: CFGR1 register in SYSCFG + * - 01: CFGR3 register in SYSCFG (not available on STM32F373xC/STM32F378xx devices) + * @{ + */ +#define HAL_REMAPDMA_ADC24_DMA2_CH34 (0x00000100U) /*!< ADC24 DMA remap (STM32F303xB/C/E, STM32F358xx and STM32F398xx devices) + 1: Remap (ADC24 DMA requests mapped on DMA2 channels 3 and 4) */ +#define HAL_REMAPDMA_TIM16_DMA1_CH6 (0x00000800U) /*!< TIM16 DMA request remap + 1: Remap (TIM16_CH1 and TIM16_UP DMA requests mapped on DMA1 channel 6) */ +#define HAL_REMAPDMA_TIM17_DMA1_CH7 (0x00001000U) /*!< TIM17 DMA request remap + 1: Remap (TIM17_CH1 and TIM17_UP DMA requests mapped on DMA1 channel 7) */ +#define HAL_REMAPDMA_TIM6_DAC1_CH1_DMA1_CH3 (0x00002000U) /*!< TIM6 and DAC channel1 DMA remap (STM32F303xB/C/E, STM32F358xx and STM32F398xx devices) + 1: Remap (TIM6_UP and DAC_CH1 DMA requests mapped on DMA1 channel 3) */ +#define HAL_REMAPDMA_TIM7_DAC1_CH2_DMA1_CH4 (0x00004000U) /*!< TIM7 and DAC channel2 DMA remap (STM32F303xB/C/E, STM32F358xx and STM32F398xx devices) + 1: Remap (TIM7_UP and DAC_CH2 DMA requests mapped on DMA1 channel 4) */ +#define HAL_REMAPDMA_DAC2_CH1_DMA1_CH5 (0x00008000U) /*!< DAC2 channel1 DMA remap (STM32F303x4/6/8 devices only) + 1: Remap (DAC2_CH1 DMA requests mapped on DMA1 channel 5) */ +#define HAL_REMAPDMA_TIM18_DAC2_CH1_DMA1_CH5 (0x00008000U) /*!< DAC2 channel1 DMA remap (STM32F303x4/6/8 devices only) + 1: Remap (DAC2_CH1 DMA requests mapped on DMA1 channel 5) */ +#if defined(SYSCFG_CFGR3_DMA_RMP) +#if !defined(HAL_REMAP_CFGR3_MASK) +#define HAL_REMAP_CFGR3_MASK (0x01000000U) +#endif + +#define HAL_REMAPDMA_SPI1_RX_DMA1_CH2 (0x01000003U) /*!< SPI1_RX DMA remap (STM32F303x4/6/8 devices only) + 11: Map on DMA1 channel 2 */ +#define HAL_REMAPDMA_SPI1_RX_DMA1_CH4 (0x01000001U) /*!< SPI1_RX DMA remap (STM32F303x4/6/8 devices only) + 01: Map on DMA1 channel 4 */ +#define HAL_REMAPDMA_SPI1_RX_DMA1_CH6 (0x01000002U) /*!< SPI1_RX DMA remap (STM32F303x4/6/8 devices only) + 10: Map on DMA1 channel 6 */ +#define HAL_REMAPDMA_SPI1_TX_DMA1_CH3 (0x0100000CU) /*!< SPI1_TX DMA remap (STM32F303x4/6/8 devices only) + 11: Map on DMA1 channel 3 */ +#define HAL_REMAPDMA_SPI1_TX_DMA1_CH5 (0x01000004U) /*!< SPI1_TX DMA remap (STM32F303x4/6/8 devices only) + 01: Map on DMA1 channel 5 */ +#define HAL_REMAPDMA_SPI1_TX_DMA1_CH7 (0x01000008U) /*!< SPI1_TX DMA remap (STM32F303x4/6/8 devices only) + 10: Map on DMA1 channel 7 */ +#define HAL_REMAPDMA_I2C1_RX_DMA1_CH7 (0x01000030U) /*!< I2C1_RX DMA remap (STM32F303x4/6/8 devices only) + 11: Map on DMA1 channel 7 */ +#define HAL_REMAPDMA_I2C1_RX_DMA1_CH3 (0x01000010U) /*!< I2C1_RX DMA remap (STM32F303x4/6/8 devices only) + 01: Map on DMA1 channel 3 */ +#define HAL_REMAPDMA_I2C1_RX_DMA1_CH5 (0x01000020U) /*!< I2C1_RX DMA remap (STM32F303x4/6/8 devices only) + 10: Map on DMA1 channel 5 */ +#define HAL_REMAPDMA_I2C1_TX_DMA1_CH6 (0x010000C0U) /*!< I2C1_TX DMA remap (STM32F303x4/6/8 devices only) + 11: Map on DMA1 channel 6 */ +#define HAL_REMAPDMA_I2C1_TX_DMA1_CH2 (0x01000040U) /*!< I2C1_TX DMA remap (STM32F303x4/6/8 devices only) + 01: Map on DMA1 channel 2 */ +#define HAL_REMAPDMA_I2C1_TX_DMA1_CH4 (0x01000080U) /*!< I2C1_TX DMA remap (STM32F303x4/6/8 devices only) + 10: Map on DMA1 channel 4 */ +#define HAL_REMAPDMA_ADC2_DMA1_CH2 (0x01000100U) /*!< ADC2 DMA remap + x0: No remap (ADC2 on DMA2) + 10: Map on DMA1 channel 2 */ +#define HAL_REMAPDMA_ADC2_DMA1_CH4 (0x01000300U) /*!< ADC2 DMA remap + 11: Map on DMA1 channel 4 */ +#endif /* SYSCFG_CFGR3_DMA_RMP */ + +#if defined(SYSCFG_CFGR3_DMA_RMP) +#define IS_DMA_REMAP(RMP) ((((RMP) & HAL_REMAPDMA_ADC24_DMA2_CH34) == HAL_REMAPDMA_ADC24_DMA2_CH34) || \ + (((RMP) & HAL_REMAPDMA_TIM16_DMA1_CH6) == HAL_REMAPDMA_TIM16_DMA1_CH6) || \ + (((RMP) & HAL_REMAPDMA_TIM17_DMA1_CH7) == HAL_REMAPDMA_TIM17_DMA1_CH7) || \ + (((RMP) & HAL_REMAPDMA_TIM6_DAC1_CH1_DMA1_CH3) == HAL_REMAPDMA_TIM6_DAC1_CH1_DMA1_CH3) || \ + (((RMP) & HAL_REMAPDMA_TIM7_DAC1_CH2_DMA1_CH4) == HAL_REMAPDMA_TIM7_DAC1_CH2_DMA1_CH4) || \ + (((RMP) & HAL_REMAPDMA_DAC2_CH1_DMA1_CH5) == HAL_REMAPDMA_DAC2_CH1_DMA1_CH5) || \ + (((RMP) & HAL_REMAPDMA_TIM18_DAC2_CH1_DMA1_CH5) == HAL_REMAPDMA_TIM18_DAC2_CH1_DMA1_CH5) || \ + (((RMP) & HAL_REMAPDMA_SPI1_RX_DMA1_CH2) == HAL_REMAPDMA_SPI1_RX_DMA1_CH2) || \ + (((RMP) & HAL_REMAPDMA_SPI1_RX_DMA1_CH4) == HAL_REMAPDMA_SPI1_RX_DMA1_CH4) || \ + (((RMP) & HAL_REMAPDMA_SPI1_RX_DMA1_CH6) == HAL_REMAPDMA_SPI1_RX_DMA1_CH6) || \ + (((RMP) & HAL_REMAPDMA_SPI1_TX_DMA1_CH3) == HAL_REMAPDMA_SPI1_TX_DMA1_CH3) || \ + (((RMP) & HAL_REMAPDMA_SPI1_TX_DMA1_CH5) == HAL_REMAPDMA_SPI1_TX_DMA1_CH5) || \ + (((RMP) & HAL_REMAPDMA_SPI1_TX_DMA1_CH7) == HAL_REMAPDMA_SPI1_TX_DMA1_CH7) || \ + (((RMP) & HAL_REMAPDMA_I2C1_RX_DMA1_CH7) == HAL_REMAPDMA_I2C1_RX_DMA1_CH7) || \ + (((RMP) & HAL_REMAPDMA_I2C1_RX_DMA1_CH3) == HAL_REMAPDMA_I2C1_RX_DMA1_CH3) || \ + (((RMP) & HAL_REMAPDMA_I2C1_RX_DMA1_CH5) == HAL_REMAPDMA_I2C1_RX_DMA1_CH5) || \ + (((RMP) & HAL_REMAPDMA_I2C1_TX_DMA1_CH6) == HAL_REMAPDMA_I2C1_TX_DMA1_CH6) || \ + (((RMP) & HAL_REMAPDMA_I2C1_TX_DMA1_CH2) == HAL_REMAPDMA_I2C1_TX_DMA1_CH2) || \ + (((RMP) & HAL_REMAPDMA_I2C1_TX_DMA1_CH4) == HAL_REMAPDMA_I2C1_TX_DMA1_CH4) || \ + (((RMP) & HAL_REMAPDMA_ADC2_DMA1_CH2) == HAL_REMAPDMA_ADC2_DMA1_CH2) || \ + (((RMP) & HAL_REMAPDMA_ADC2_DMA1_CH4) == HAL_REMAPDMA_ADC2_DMA1_CH4)) +#else +#define IS_DMA_REMAP(RMP) ((((RMP) & HAL_REMAPDMA_ADC24_DMA2_CH34) == HAL_REMAPDMA_ADC24_DMA2_CH34) || \ + (((RMP) & HAL_REMAPDMA_TIM16_DMA1_CH6) == HAL_REMAPDMA_TIM16_DMA1_CH6) || \ + (((RMP) & HAL_REMAPDMA_TIM17_DMA1_CH7) == HAL_REMAPDMA_TIM17_DMA1_CH7) || \ + (((RMP) & HAL_REMAPDMA_TIM6_DAC1_CH1_DMA1_CH3) == HAL_REMAPDMA_TIM6_DAC1_CH1_DMA1_CH3) || \ + (((RMP) & HAL_REMAPDMA_TIM7_DAC1_CH2_DMA1_CH4) == HAL_REMAPDMA_TIM7_DAC1_CH2_DMA1_CH4) || \ + (((RMP) & HAL_REMAPDMA_DAC2_CH1_DMA1_CH5) == HAL_REMAPDMA_DAC2_CH1_DMA1_CH5) || \ + (((RMP) & HAL_REMAPDMA_TIM18_DAC2_CH1_DMA1_CH5) == HAL_REMAPDMA_TIM18_DAC2_CH1_DMA1_CH5)) +#endif /* SYSCFG_CFGR3_DMA_RMP && SYSCFG_CFGR1_DMA_RMP*/ +/** + * @} + */ +#endif /* SYSCFG_CFGR1_DMA_RMP */ + +/** @defgroup HAL_Trigger_Remapping HAL Trigger Remapping + * Elements values convention: 0xXXYYYYYY + * - YYYYYY : Position in the register + * - XX : Register index + * - 00: CFGR1 register in SYSCFG + * - 01: CFGR3 register in SYSCFG + * @{ + */ +#define HAL_REMAPTRIGGER_DAC1_TRIG (0x00000080U) /*!< DAC trigger remap (when TSEL = 001 on STM32F303xB/C and STM32F358xx devices) + 0: No remap (DAC trigger is TIM8_TRGO) + 1: Remap (DAC trigger is TIM3_TRGO) */ +#define HAL_REMAPTRIGGER_TIM1_ITR3 (0x00000040U) /*!< TIM1 ITR3 trigger remap + 0: No remap + 1: Remap (TIM1_TRG3 = TIM17_OC) */ +#if defined(SYSCFG_CFGR3_TRIGGER_RMP) +#if !defined(HAL_REMAP_CFGR3_MASK) +#define HAL_REMAP_CFGR3_MASK (0x01000000U) +#endif +#define HAL_REMAPTRIGGER_DAC1_TRIG3 (0x01010000U) /*!< DAC1_CH1 / DAC1_CH2 Trigger remap + 0: Remap (DAC trigger is TIM15_TRGO) + 1: Remap (DAC trigger is HRTIM1_DAC1_TRIG1) */ +#define HAL_REMAPTRIGGER_DAC1_TRIG5 (0x01020000U) /*!< DAC1_CH1 / DAC1_CH2 Trigger remap + 0: No remap + 1: Remap (DAC trigger is HRTIM1_DAC1_TRIG2) */ +#define IS_HAL_REMAPTRIGGER(RMP) ((((RMP) & HAL_REMAPTRIGGER_DAC1) == HAL_REMAPTRIGGER_DAC1) || \ + (((RMP) & HAL_REMAPTRIGGER_TIM1_ITR3) == HAL_REMAPTRIGGER_TIM1_ITR3) || \ + (((RMP) & HAL_REMAPTRIGGER_DAC1_TRIG3) == HAL_REMAPTRIGGER_DAC1_TRIG3) || \ + (((RMP) & HAL_REMAPTRIGGER_DAC1_TRIG5) == HAL_REMAPTRIGGER_DAC1_TRIG5)) +#else +#define IS_HAL_REMAPTRIGGER(RMP) ((((RMP) & HAL_REMAPTRIGGER_DAC1) == HAL_REMAPTRIGGER_DAC1) || \ + (((RMP) & HAL_REMAPTRIGGER_TIM1_ITR3) == HAL_REMAPTRIGGER_TIM1_ITR3)) +#endif /* SYSCFG_CFGR3_TRIGGER_RMP */ +/** + * @} + */ + +#if defined (STM32F302xE) +/** @defgroup HAL_ADC_Trigger_Remapping HAL ADC Trigger Remapping + * @{ + */ +#define HAL_REMAPADCTRIGGER_ADC12_EXT2 SYSCFG_CFGR4_ADC12_EXT2_RMP /*!< Input trigger of ADC12 regular channel EXT2 + 0: No remap (TIM1_CC3) + 1: Remap (TIM20_TRGO) */ +#define HAL_REMAPADCTRIGGER_ADC12_EXT3 SYSCFG_CFGR4_ADC12_EXT3_RMP /*!< Input trigger of ADC12 regular channel EXT3 + 0: No remap (TIM2_CC2) + 1: Remap (TIM20_TRGO2) */ +#define HAL_REMAPADCTRIGGER_ADC12_EXT5 SYSCFG_CFGR4_ADC12_EXT5_RMP /*!< Input trigger of ADC12 regular channel EXT5 + 0: No remap (TIM4_CC4) + 1: Remap (TIM20_CC1) */ +#define HAL_REMAPADCTRIGGER_ADC12_EXT13 SYSCFG_CFGR4_ADC12_EXT13_RMP /*!< Input trigger of ADC12 regular channel EXT13 + 0: No remap (TIM6_TRGO) + 1: Remap (TIM20_CC2) */ +#define HAL_REMAPADCTRIGGER_ADC12_EXT15 SYSCFG_CFGR4_ADC12_EXT15_RMP /*!< Input trigger of ADC12 regular channel EXT15 + 0: No remap (TIM3_CC4) + 1: Remap (TIM20_CC3) */ +#define HAL_REMAPADCTRIGGER_ADC12_JEXT3 SYSCFG_CFGR4_ADC12_JEXT3_RMP /*!< Input trigger of ADC12 injected channel JEXT3 + 0: No remap (TIM2_CC1) + 1: Remap (TIM20_TRGO) */ +#define HAL_REMAPADCTRIGGER_ADC12_JEXT6 SYSCFG_CFGR4_ADC12_JEXT6_RMP /*!< Input trigger of ADC12 injected channel JEXT6 + 0: No remap (EXTI line 15) + 1: Remap (TIM20_TRGO2) */ +#define HAL_REMAPADCTRIGGER_ADC12_JEXT13 SYSCFG_CFGR4_ADC12_JEXT13_RMP /*!< Input trigger of ADC12 injected channel JEXT13 + 0: No remap (TIM3_CC1) + 1: Remap (TIM20_CC4) */ + +#define IS_HAL_REMAPADCTRIGGER(RMP) ((((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT2) == HAL_REMAPADCTRIGGER_ADC12_EXT2) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT3) == HAL_REMAPADCTRIGGER_ADC12_EXT3) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT5) == HAL_REMAPADCTRIGGER_ADC12_EXT5) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT13) == HAL_REMAPADCTRIGGER_ADC12_EXT13) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT15) == HAL_REMAPADCTRIGGER_ADC12_EXT15) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT3) == HAL_REMAPADCTRIGGER_ADC12_JEXT3) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT6) == HAL_REMAPADCTRIGGER_ADC12_JEXT6) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT13) == HAL_REMAPADCTRIGGER_ADC12_JEXT13)) +/** + * @} + */ +#endif /* STM32F302xE */ + +#if defined (STM32F303xE) || defined (STM32F398xx) +/** @defgroup HAL_ADC_Trigger_Remapping HAL ADC Trigger Remapping + * @{ + */ +#define HAL_REMAPADCTRIGGER_ADC12_EXT2 SYSCFG_CFGR4_ADC12_EXT2_RMP /*!< Input trigger of ADC12 regular channel EXT2 + 0: No remap (TIM1_CC3) + 1: Remap (TIM20_TRGO) */ +#define HAL_REMAPADCTRIGGER_ADC12_EXT3 SYSCFG_CFGR4_ADC12_EXT3_RMP /*!< Input trigger of ADC12 regular channel EXT3 + 0: No remap (TIM2_CC2) + 1: Remap (TIM20_TRGO2) */ +#define HAL_REMAPADCTRIGGER_ADC12_EXT5 SYSCFG_CFGR4_ADC12_EXT5_RMP /*!< Input trigger of ADC12 regular channel EXT5 + 0: No remap (TIM4_CC4) + 1: Remap (TIM20_CC1) */ +#define HAL_REMAPADCTRIGGER_ADC12_EXT13 SYSCFG_CFGR4_ADC12_EXT13_RMP /*!< Input trigger of ADC12 regular channel EXT13 + 0: No remap (TIM6_TRGO) + 1: Remap (TIM20_CC2) */ +#define HAL_REMAPADCTRIGGER_ADC12_EXT15 SYSCFG_CFGR4_ADC12_EXT15_RMP /*!< Input trigger of ADC12 regular channel EXT15 + 0: No remap (TIM3_CC4) + 1: Remap (TIM20_CC3) */ +#define HAL_REMAPADCTRIGGER_ADC12_JEXT3 SYSCFG_CFGR4_ADC12_JEXT3_RMP /*!< Input trigger of ADC12 injected channel JEXT3 + 0: No remap (TIM2_CC1) + 1: Remap (TIM20_TRGO) */ +#define HAL_REMAPADCTRIGGER_ADC12_JEXT6 SYSCFG_CFGR4_ADC12_JEXT6_RMP /*!< Input trigger of ADC12 injected channel JEXT6 + 0: No remap (EXTI line 15) + 1: Remap (TIM20_TRGO2) */ +#define HAL_REMAPADCTRIGGER_ADC12_JEXT13 SYSCFG_CFGR4_ADC12_JEXT13_RMP /*!< Input trigger of ADC12 injected channel JEXT13 + 0: No remap (TIM3_CC1) + 1: Remap (TIM20_CC4) */ +#define HAL_REMAPADCTRIGGER_ADC34_EXT5 SYSCFG_CFGR4_ADC34_EXT5_RMP /*!< Input trigger of ADC34 regular channel EXT5 + 0: No remap (EXTI line 2) + 1: Remap (TIM20_TRGO) */ +#define HAL_REMAPADCTRIGGER_ADC34_EXT6 SYSCFG_CFGR4_ADC34_EXT6_RMP /*!< Input trigger of ADC34 regular channel EXT6 + 0: No remap (TIM4_CC1) + 1: Remap (TIM20_TRGO2) */ +#define HAL_REMAPADCTRIGGER_ADC34_EXT15 SYSCFG_CFGR4_ADC34_EXT15_RMP /*!< Input trigger of ADC34 regular channel EXT15 + 0: No remap (TIM2_CC1) + 1: Remap (TIM20_CC1) */ +#define HAL_REMAPADCTRIGGER_ADC34_JEXT5 SYSCFG_CFGR4_ADC34_JEXT5_RMP /*!< Input trigger of ADC34 injected channel JEXT5 + 0: No remap (TIM4_CC3) + 1: Remap (TIM20_TRGO) */ +#define HAL_REMAPADCTRIGGER_ADC34_JEXT11 SYSCFG_CFGR4_ADC34_JEXT11_RMP /*!< Input trigger of ADC34 injected channel JEXT11 + 0: No remap (TIM1_CC3) + 1: Remap (TIM20_TRGO2) */ +#define HAL_REMAPADCTRIGGER_ADC34_JEXT14 SYSCFG_CFGR4_ADC34_JEXT14_RMP /*!< Input trigger of ADC34 injected channel JEXT14 + 0: No remap (TIM7_TRGO) + 1: Remap (TIM20_CC2) */ + +#define IS_HAL_REMAPADCTRIGGER(RMP) ((((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT2) == HAL_REMAPADCTRIGGER_ADC12_EXT2) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT3) == HAL_REMAPADCTRIGGER_ADC12_EXT3) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT5) == HAL_REMAPADCTRIGGER_ADC12_EXT5) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT13) == HAL_REMAPADCTRIGGER_ADC12_EXT13) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_EXT15) == HAL_REMAPADCTRIGGER_ADC12_EXT15) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT3) == HAL_REMAPADCTRIGGER_ADC12_JEXT3) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT6) == HAL_REMAPADCTRIGGER_ADC12_JEXT6) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC12_JEXT13) == HAL_REMAPADCTRIGGER_ADC12_JEXT13) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC34_EXT5) == HAL_REMAPADCTRIGGER_ADC34_EXT5) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC34_EXT6) == HAL_REMAPADCTRIGGER_ADC34_EXT6) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC34_EXT15) == HAL_REMAPADCTRIGGER_ADC34_EXT15) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC34_JEXT5) == HAL_REMAPADCTRIGGER_ADC34_JEXT5) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC34_JEXT11) == HAL_REMAPADCTRIGGER_ADC34_JEXT11) || \ + (((RMP) & HAL_REMAPADCTRIGGER_ADC34_JEXT14) == HAL_REMAPADCTRIGGER_ADC34_JEXT14)) +/** + * @} + */ +#endif /* STM32F303xE || STM32F398xx */ + +/** @defgroup SYSCFG_FastModePlus_GPIO Fast-mode Plus on GPIO + * @{ + */ + +/** @brief Fast-mode Plus driving capability on a specific GPIO + */ +#if defined(SYSCFG_CFGR1_I2C_PB6_FMP) +#define SYSCFG_FASTMODEPLUS_PB6 ((uint32_t)SYSCFG_CFGR1_I2C_PB6_FMP) /*!< Enable Fast-mode Plus on PB6 */ +#endif /* SYSCFG_CFGR1_I2C_PB6_FMP */ + +#if defined(SYSCFG_CFGR1_I2C_PB7_FMP) +#define SYSCFG_FASTMODEPLUS_PB7 ((uint32_t)SYSCFG_CFGR1_I2C_PB7_FMP) /*!< Enable Fast-mode Plus on PB7 */ +#endif /* SYSCFG_CFGR1_I2C_PB7_FMP */ + +#if defined(SYSCFG_CFGR1_I2C_PB8_FMP) +#define SYSCFG_FASTMODEPLUS_PB8 ((uint32_t)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 ((uint32_t)SYSCFG_CFGR1_I2C_PB9_FMP) /*!< Enable Fast-mode Plus on PB9 */ +#endif /* SYSCFG_CFGR1_I2C_PB9_FMP */ +/** + * @} + */ + +#if defined(SYSCFG_RCR_PAGE0) +/* CCM-SRAM defined */ +/** @defgroup HAL_Page_Write_Protection HAL CCM RAM page write protection + * @{ + */ +#define HAL_SYSCFG_WP_PAGE0 (SYSCFG_RCR_PAGE0) /*!< ICODE SRAM Write protection page 0 */ +#define HAL_SYSCFG_WP_PAGE1 (SYSCFG_RCR_PAGE1) /*!< ICODE SRAM Write protection page 1 */ +#define HAL_SYSCFG_WP_PAGE2 (SYSCFG_RCR_PAGE2) /*!< ICODE SRAM Write protection page 2 */ +#define HAL_SYSCFG_WP_PAGE3 (SYSCFG_RCR_PAGE3) /*!< ICODE SRAM Write protection page 3 */ +#if defined(SYSCFG_RCR_PAGE4) +/* More than 4KB CCM-SRAM defined */ +#define HAL_SYSCFG_WP_PAGE4 (SYSCFG_RCR_PAGE4) /*!< ICODE SRAM Write protection page 4 */ +#define HAL_SYSCFG_WP_PAGE5 (SYSCFG_RCR_PAGE5) /*!< ICODE SRAM Write protection page 5 */ +#define HAL_SYSCFG_WP_PAGE6 (SYSCFG_RCR_PAGE6) /*!< ICODE SRAM Write protection page 6 */ +#define HAL_SYSCFG_WP_PAGE7 (SYSCFG_RCR_PAGE7) /*!< ICODE SRAM Write protection page 7 */ +#endif /* SYSCFG_RCR_PAGE4 */ +#if defined(SYSCFG_RCR_PAGE8) +#define HAL_SYSCFG_WP_PAGE8 (SYSCFG_RCR_PAGE8) /*!< ICODE SRAM Write protection page 8 */ +#define HAL_SYSCFG_WP_PAGE9 (SYSCFG_RCR_PAGE9) /*!< ICODE SRAM Write protection page 9 */ +#define HAL_SYSCFG_WP_PAGE10 (SYSCFG_RCR_PAGE10) /*!< ICODE SRAM Write protection page 10 */ +#define HAL_SYSCFG_WP_PAGE11 (SYSCFG_RCR_PAGE11) /*!< ICODE SRAM Write protection page 11 */ +#define HAL_SYSCFG_WP_PAGE12 (SYSCFG_RCR_PAGE12) /*!< ICODE SRAM Write protection page 12 */ +#define HAL_SYSCFG_WP_PAGE13 (SYSCFG_RCR_PAGE13) /*!< ICODE SRAM Write protection page 13 */ +#define HAL_SYSCFG_WP_PAGE14 (SYSCFG_RCR_PAGE14) /*!< ICODE SRAM Write protection page 14 */ +#define HAL_SYSCFG_WP_PAGE15 (SYSCFG_RCR_PAGE15) /*!< ICODE SRAM Write protection page 15 */ +#endif /* SYSCFG_RCR_PAGE8 */ + +#if defined(SYSCFG_RCR_PAGE8) +#define IS_HAL_SYSCFG_WP_PAGE(__PAGE__) (((__PAGE__) > 0U) && ((__PAGE__) <= 0xFFFFU)) +#elif defined(SYSCFG_RCR_PAGE4) +#define IS_HAL_SYSCFG_WP_PAGE(__PAGE__) (((__PAGE__) > 0U) && ((__PAGE__) <= 0x00FFU)) +#else +#define IS_HAL_SYSCFG_WP_PAGE(__PAGE__) (((__PAGE__) > 0U) && ((__PAGE__) <= 0x000FU)) +#endif /* SYSCFG_RCR_PAGE8 */ +/** + * @} + */ +#endif /* SYSCFG_RCR_PAGE0 */ + +/** @defgroup HAL_SYSCFG_Interrupts HAL SYSCFG Interrupts + * @{ + */ +#define HAL_SYSCFG_IT_FPU_IOC (SYSCFG_CFGR1_FPU_IE_0) /*!< Floating Point Unit Invalid operation Interrupt */ +#define HAL_SYSCFG_IT_FPU_DZC (SYSCFG_CFGR1_FPU_IE_1) /*!< Floating Point Unit Divide-by-zero Interrupt */ +#define HAL_SYSCFG_IT_FPU_UFC (SYSCFG_CFGR1_FPU_IE_2) /*!< Floating Point Unit Underflow Interrupt */ +#define HAL_SYSCFG_IT_FPU_OFC (SYSCFG_CFGR1_FPU_IE_3) /*!< Floating Point Unit Overflow Interrupt */ +#define HAL_SYSCFG_IT_FPU_IDC (SYSCFG_CFGR1_FPU_IE_4) /*!< Floating Point Unit Input denormal Interrupt */ +#define HAL_SYSCFG_IT_FPU_IXC (SYSCFG_CFGR1_FPU_IE_5) /*!< Floating Point Unit Inexact Interrupt */ + +#define IS_HAL_SYSCFG_INTERRUPT(__INTERRUPT__) ((((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_0) == SYSCFG_CFGR1_FPU_IE_0) || \ + (((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_1) == SYSCFG_CFGR1_FPU_IE_1) || \ + (((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_2) == SYSCFG_CFGR1_FPU_IE_2) || \ + (((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_3) == SYSCFG_CFGR1_FPU_IE_3) || \ + (((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_4) == SYSCFG_CFGR1_FPU_IE_4) || \ + (((__INTERRUPT__) & SYSCFG_CFGR1_FPU_IE_5) == SYSCFG_CFGR1_FPU_IE_5)) + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup HAL_Exported_Macros HAL Exported Macros + * @{ + */ + +/** @defgroup Debug_MCU_APB1_Freeze Freeze/Unfreeze APB1 Peripherals in Debug mode + * @{ + */ +#if defined(DBGMCU_APB1_FZ_DBG_TIM2_STOP) +#define __HAL_DBGMCU_FREEZE_TIM2() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM2_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM2() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM2_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_TIM2_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_TIM3_STOP) +#define __HAL_DBGMCU_FREEZE_TIM3() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM3_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM3() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM3_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_TIM3_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_TIM4_STOP) +#define __HAL_DBGMCU_FREEZE_TIM4() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM4_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM4() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM4_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_TIM4_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_TIM5_STOP) +#define __HAL_DBGMCU_FREEZE_TIM5() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM5_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM5() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM5_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_TIM5_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_TIM6_STOP) +#define __HAL_DBGMCU_FREEZE_TIM6() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM6_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM6() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM6_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_TIM6_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_TIM7_STOP) +#define __HAL_DBGMCU_FREEZE_TIM7() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM7_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM7() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM7_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_TIM7_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_TIM12_STOP) +#define __HAL_DBGMCU_FREEZE_TIM12() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM12_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM12() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM12_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_TIM12_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_TIM13_STOP) +#define __HAL_DBGMCU_FREEZE_TIM13() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM13_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM13() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM13_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_TIM13_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_TIM14_STOP) +#define __HAL_DBGMCU_FREEZE_TIM14() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM14_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM14() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM14_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_TIM14_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_TIM18_STOP) +#define __HAL_FREEZE_TIM18_DBGMCU() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_TIM18_STOP)) +#define __HAL_UNFREEZE_TIM18_DBGMCU() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_TIM18_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_TIM14_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_RTC_STOP) +#define __HAL_DBGMCU_FREEZE_RTC() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_RTC_STOP)) +#define __HAL_DBGMCU_UNFREEZE_RTC() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_RTC_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_RTC_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_WWDG_STOP) +#define __HAL_DBGMCU_FREEZE_WWDG() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_WWDG_STOP)) +#define __HAL_DBGMCU_UNFREEZE_WWDG() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_WWDG_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_WWDG_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_IWDG_STOP) +#define __HAL_DBGMCU_FREEZE_IWDG() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_IWDG_STOP)) +#define __HAL_DBGMCU_UNFREEZE_IWDG() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_IWDG_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_IWDG_STOP */ + +#if defined(DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT) +#define __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT)) +#define __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT)) +#endif /* DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT */ + +#if defined(DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT) +#define __HAL_DBGMCU_FREEZE_I2C2_TIMEOUT() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT)) +#define __HAL_DBGMCU_UNFREEZE_I2C2_TIMEOUT() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT)) +#endif /* DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT */ + +#if defined(DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT) +#define __HAL_DBGMCU_FREEZE_I2C3_TIMEOUT() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT)) +#define __HAL_DBGMCU_UNFREEZE_I2C3_TIMEOUT() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT)) +#endif /* DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT */ + +#if defined(DBGMCU_APB1_FZ_DBG_CAN_STOP) +#define __HAL_FREEZE_CAN_DBGMCU() (DBGMCU->APB1FZ |= (DBGMCU_APB1_FZ_DBG_CAN_STOP)) +#define __HAL_UNFREEZE_CAN_DBGMCU() (DBGMCU->APB1FZ &= ~(DBGMCU_APB1_FZ_DBG_CAN_STOP)) +#endif /* DBGMCU_APB1_FZ_DBG_CAN_STOP */ +/** + * @} + */ + +/** @defgroup Debug_MCU_APB2_Freeze Freeze/Unfreeze APB2 Peripherals in Debug mode + * @{ + */ +#if defined(DBGMCU_APB2_FZ_DBG_TIM1_STOP) +#define __HAL_DBGMCU_FREEZE_TIM1() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM1_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM1() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM1_STOP)) +#endif /* DBGMCU_APB2_FZ_DBG_TIM1_STOP */ + +#if defined(DBGMCU_APB2_FZ_DBG_TIM8_STOP) +#define __HAL_DBGMCU_FREEZE_TIM8() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM8_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM8() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM8_STOP)) +#endif /* DBGMCU_APB2_FZ_DBG_TIM8_STOP */ + +#if defined(DBGMCU_APB2_FZ_DBG_TIM15_STOP) +#define __HAL_DBGMCU_FREEZE_TIM15() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM15_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM15() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM15_STOP)) +#endif /* DBGMCU_APB2_FZ_DBG_TIM15_STOP */ + +#if defined(DBGMCU_APB2_FZ_DBG_TIM16_STOP) +#define __HAL_DBGMCU_FREEZE_TIM16() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM16_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM16() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM16_STOP)) +#endif /* DBGMCU_APB2_FZ_DBG_TIM16_STOP */ + +#if defined(DBGMCU_APB2_FZ_DBG_TIM17_STOP) +#define __HAL_DBGMCU_FREEZE_TIM17() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM17_STOP)) +#define __HAL_DBGMCU_UNFREEZE_TIM17() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM17_STOP)) +#endif /* DBGMCU_APB2_FZ_DBG_TIM17_STOP */ + +#if defined(DBGMCU_APB2_FZ_DBG_TIM19_STOP) +#define __HAL_FREEZE_TIM19_DBGMCU() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM19_STOP)) +#define __HAL_UNFREEZE_TIM19_DBGMCU() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM19_STOP)) +#endif /* DBGMCU_APB2_FZ_DBG_TIM19_STOP */ + +#if defined(DBGMCU_APB2_FZ_DBG_TIM20_STOP) +#define __HAL_FREEZE_TIM20_DBGMCU() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM20_STOP)) +#define __HAL_UNFREEZE_TIM20_DBGMCU() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_TIM20_STOP)) +#endif /* DBGMCU_APB2_FZ_DBG_TIM20_STOP */ + +#if defined(DBGMCU_APB2_FZ_DBG_HRTIM1_STOP) +#define __HAL_FREEZE_HRTIM1_DBGMCU() (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_HRTIM1_STOP)) +#define __HAL_UNFREEZE_HRTIM1_DBGMCU() (DBGMCU->APB2FZ &= ~(DBGMCU_APB2_FZ_DBG_HRTIM1_STOP)) +#endif /* DBGMCU_APB2_FZ_DBG_HRTIM1_STOP */ +/** + * @} + */ + +/** @defgroup Memory_Mapping_Selection Memory Mapping Selection + * @{ + */ +#if defined(SYSCFG_CFGR1_MEM_MODE) +/** @brief Main Flash memory mapped at 0x00000000 + */ +#define __HAL_SYSCFG_REMAPMEMORY_FLASH() (SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_MEM_MODE)) +#endif /* SYSCFG_CFGR1_MEM_MODE */ + +#if defined(SYSCFG_CFGR1_MEM_MODE_0) +/** @brief System Flash memory mapped at 0x00000000 + */ +#define __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_MEM_MODE); \ + SYSCFG->CFGR1 |= SYSCFG_CFGR1_MEM_MODE_0; \ + }while(0U) +#endif /* SYSCFG_CFGR1_MEM_MODE_0 */ + +#if defined(SYSCFG_CFGR1_MEM_MODE_0) && defined(SYSCFG_CFGR1_MEM_MODE_1) +/** @brief Embedded SRAM mapped at 0x00000000 + */ +#define __HAL_SYSCFG_REMAPMEMORY_SRAM() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_MEM_MODE); \ + SYSCFG->CFGR1 |= (SYSCFG_CFGR1_MEM_MODE_0 | SYSCFG_CFGR1_MEM_MODE_1); \ + }while(0U) +#endif /* SYSCFG_CFGR1_MEM_MODE_0 && SYSCFG_CFGR1_MEM_MODE_1 */ + +#if defined(SYSCFG_CFGR1_MEM_MODE_2) +#define __HAL_SYSCFG_FMC_BANK() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_MEM_MODE); \ + SYSCFG->CFGR1 |= (SYSCFG_CFGR1_MEM_MODE_2); \ + }while(0U) +#endif /* SYSCFG_CFGR1_MEM_MODE_2 */ +/** + * @} + */ + +/** @defgroup Encoder_Mode Encoder Mode + * @{ + */ +#if defined(SYSCFG_CFGR1_ENCODER_MODE) +/** @brief No Encoder mode + */ +#define __HAL_REMAPENCODER_NONE() (SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_ENCODER_MODE)) +#endif /* SYSCFG_CFGR1_ENCODER_MODE */ + +#if defined(SYSCFG_CFGR1_ENCODER_MODE_0) +/** @brief Encoder mode : TIM2 IC1 and TIM2 IC2 are connected to TIM15 IC1 and TIM15 IC2 respectively + */ +#define __HAL_REMAPENCODER_TIM2() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_ENCODER_MODE); \ + SYSCFG->CFGR1 |= SYSCFG_CFGR1_ENCODER_MODE_0; \ + }while(0U) +#endif /* SYSCFG_CFGR1_ENCODER_MODE_0 */ + +#if defined(SYSCFG_CFGR1_ENCODER_MODE_1) +/** @brief Encoder mode : TIM3 IC1 and TIM3 IC2 are connected to TIM15 IC1 and TIM15 IC2 respectively + */ +#define __HAL_REMAPENCODER_TIM3() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_ENCODER_MODE); \ + SYSCFG->CFGR1 |= SYSCFG_CFGR1_ENCODER_MODE_1; \ + }while(0U) +#endif /* SYSCFG_CFGR1_ENCODER_MODE_1 */ + +#if defined(SYSCFG_CFGR1_ENCODER_MODE_0) && defined(SYSCFG_CFGR1_ENCODER_MODE_1) +/** @brief Encoder mode : TIM4 IC1 and TIM4 IC2 are connected to TIM15 IC1 and TIM15 IC2 (STM32F303xB/C and STM32F358xx devices) + */ +#define __HAL_REMAPENCODER_TIM4() do {SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_ENCODER_MODE); \ + SYSCFG->CFGR1 |= (SYSCFG_CFGR1_ENCODER_MODE_0 | SYSCFG_CFGR1_ENCODER_MODE_1); \ + }while(0U) +#endif /* SYSCFG_CFGR1_ENCODER_MODE_0 && SYSCFG_CFGR1_ENCODER_MODE_1 */ +/** + * @} + */ + +/** @defgroup DMA_Remap_Enable DMA Remap Enable + * @{ + */ +#if defined(SYSCFG_CFGR3_DMA_RMP) && defined(SYSCFG_CFGR1_DMA_RMP) +/** @brief DMA remapping enable/disable macros + * @param __DMA_REMAP__ This parameter can be a value of @ref HAL_DMA_Remapping + */ +#define __HAL_DMA_REMAP_CHANNEL_ENABLE(__DMA_REMAP__) do {assert_param(IS_DMA_REMAP((__DMA_REMAP__))); \ + (((__DMA_REMAP__) & HAL_REMAP_CFGR3_MASK) ? \ + (SYSCFG->CFGR3 |= ((__DMA_REMAP__) & ~HAL_REMAP_CFGR3_MASK)) : \ + (SYSCFG->CFGR1 |= (__DMA_REMAP__))); \ + }while(0U) +#define __HAL_DMA_REMAP_CHANNEL_DISABLE(__DMA_REMAP__) do {assert_param(IS_DMA_REMAP((__DMA_REMAP__))); \ + (((__DMA_REMAP__) & HAL_REMAP_CFGR3_MASK) ? \ + (SYSCFG->CFGR3 &= (~(__DMA_REMAP__) | HAL_REMAP_CFGR3_MASK)) : \ + (SYSCFG->CFGR1 &= ~(__DMA_REMAP__))); \ + }while(0U) +#elif defined(SYSCFG_CFGR1_DMA_RMP) +/** @brief DMA remapping enable/disable macros + * @param __DMA_REMAP__ This parameter can be a value of @ref HAL_DMA_Remapping + */ +#define __HAL_DMA_REMAP_CHANNEL_ENABLE(__DMA_REMAP__) do {assert_param(IS_DMA_REMAP((__DMA_REMAP__))); \ + SYSCFG->CFGR1 |= (__DMA_REMAP__); \ + }while(0U) +#define __HAL_DMA_REMAP_CHANNEL_DISABLE(__DMA_REMAP__) do {assert_param(IS_DMA_REMAP((__DMA_REMAP__))); \ + SYSCFG->CFGR1 &= ~(__DMA_REMAP__); \ + }while(0U) +#endif /* SYSCFG_CFGR3_DMA_RMP || SYSCFG_CFGR1_DMA_RMP */ +/** + * @} + */ + +/** @defgroup FastModePlus_GPIO Fast-mode Plus on GPIO + * @{ + */ +/** @brief Fast-mode Plus driving capability enable/disable macros + * @param __FASTMODEPLUS__ This parameter can be a value of @ref SYSCFG_FastModePlus_GPIO values. + * That you can find above these macros. + */ +#define __HAL_SYSCFG_FASTMODEPLUS_ENABLE(__FASTMODEPLUS__) do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\ + SET_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\ + }while(0U) + +#define __HAL_SYSCFG_FASTMODEPLUS_DISABLE(__FASTMODEPLUS__) do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\ + CLEAR_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\ + }while(0U) +/** + * @} + */ + +/** @defgroup Floating_Point_Unit_Interrupts_Enable Floating Point Unit Interrupts Enable + * @{ + */ +/** @brief SYSCFG interrupt enable/disable macros + * @param __INTERRUPT__ This parameter can be a value of @ref HAL_SYSCFG_Interrupts + */ +#define __HAL_SYSCFG_INTERRUPT_ENABLE(__INTERRUPT__) do {assert_param(IS_HAL_SYSCFG_INTERRUPT((__INTERRUPT__))); \ + SYSCFG->CFGR1 |= (__INTERRUPT__); \ + }while(0U) + +#define __HAL_SYSCFG_INTERRUPT_DISABLE(__INTERRUPT__) do {assert_param(IS_HAL_SYSCFG_INTERRUPT((__INTERRUPT__))); \ + SYSCFG->CFGR1 &= ~(__INTERRUPT__); \ + }while(0U) +/** + * @} + */ + +#if defined(SYSCFG_CFGR1_USB_IT_RMP) +/** @defgroup USB_Interrupt_Remap USB Interrupt Remap + * @{ + */ +/** @brief USB interrupt remapping enable/disable macros + */ +#define __HAL_REMAPINTERRUPT_USB_ENABLE() (SYSCFG->CFGR1 |= (SYSCFG_CFGR1_USB_IT_RMP)) +#define __HAL_REMAPINTERRUPT_USB_DISABLE() (SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_USB_IT_RMP)) +/** + * @} + */ +#endif /* SYSCFG_CFGR1_USB_IT_RMP */ + +#if defined(SYSCFG_CFGR1_VBAT) +/** @defgroup VBAT_Monitoring_Enable VBAT Monitoring Enable + * @{ + */ +/** @brief SYSCFG interrupt enable/disable macros + */ +#define __HAL_SYSCFG_VBAT_MONITORING_ENABLE() (SYSCFG->CFGR1 |= (SYSCFG_CFGR1_VBAT)) +#define __HAL_SYSCFG_VBAT_MONITORING_DISABLE() (SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_VBAT)) +/** + * @} + */ +#endif /* SYSCFG_CFGR1_VBAT */ + +#if defined(SYSCFG_CFGR2_LOCKUP_LOCK) +/** @defgroup Cortex_Lockup_Enable Cortex Lockup Enable + * @{ + */ +/** @brief SYSCFG Break Lockup lock + * Enables and locks the connection of Cortex-M4 LOCKUP (Hardfault) output to TIM1/15/16/17 Break input + * @note The selected configuration is locked and can be unlocked by system reset + */ +#define __HAL_SYSCFG_BREAK_LOCKUP_LOCK() do {SYSCFG->CFGR2 &= ~(SYSCFG_CFGR2_LOCKUP_LOCK); \ + SYSCFG->CFGR2 |= SYSCFG_CFGR2_LOCKUP_LOCK; \ + }while(0U) +/** + * @} + */ +#endif /* SYSCFG_CFGR2_LOCKUP_LOCK */ + +#if defined(SYSCFG_CFGR2_PVD_LOCK) +/** @defgroup PVD_Lock_Enable PVD Lock + * @{ + */ +/** @brief SYSCFG Break PVD lock + * Enables and locks the PVD connection with Timer1/8/15/16/17 Break Input, , as well as the PVDE and PLS[2:0] in the PWR_CR register + * @note The selected configuration is locked and can be unlocked by system reset + */ +#define __HAL_SYSCFG_BREAK_PVD_LOCK() do {SYSCFG->CFGR2 &= ~(SYSCFG_CFGR2_PVD_LOCK); \ + SYSCFG->CFGR2 |= SYSCFG_CFGR2_PVD_LOCK; \ + }while(0U) +/** + * @} + */ +#endif /* SYSCFG_CFGR2_PVD_LOCK */ + +#if defined(SYSCFG_CFGR2_SRAM_PARITY_LOCK) +/** @defgroup SRAM_Parity_Lock SRAM Parity Lock + * @{ + */ +/** @brief SYSCFG Break SRAM PARITY lock + * Enables and locks the SRAM_PARITY error signal with Break Input of TIMER1/8/15/16/17 + * @note The selected configuration is locked and can be unlocked by system reset + */ +#define __HAL_SYSCFG_BREAK_SRAMPARITY_LOCK() do {SYSCFG->CFGR2 &= ~(SYSCFG_CFGR2_SRAM_PARITY_LOCK); \ + SYSCFG->CFGR2 |= SYSCFG_CFGR2_SRAM_PARITY_LOCK; \ + }while(0U) +/** + * @} + */ +#endif /* SYSCFG_CFGR2_SRAM_PARITY_LOCK */ + +/** @defgroup Trigger_Remapping_Enable Trigger Remapping Enable + * @{ + */ +#if defined(SYSCFG_CFGR3_TRIGGER_RMP) +/** @brief Trigger remapping enable/disable macros + * @param __TRIGGER_REMAP__ This parameter can be a value of @ref HAL_Trigger_Remapping + */ +#define __HAL_REMAPTRIGGER_ENABLE(__TRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPTRIGGER((__TRIGGER_REMAP__))); \ + (((__TRIGGER_REMAP__) & HAL_REMAP_CFGR3_MASK) ? \ + (SYSCFG->CFGR3 |= ((__TRIGGER_REMAP__) & ~HAL_REMAP_CFGR3_MASK)) : \ + (SYSCFG->CFGR1 |= (__TRIGGER_REMAP__))); \ + }while(0U) +#define __HAL_REMAPTRIGGER_DISABLE(__TRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPTRIGGER((__TRIGGER_REMAP__))); \ + (((__TRIGGER_REMAP__) & HAL_REMAP_CFGR3_MASK) ? \ + (SYSCFG->CFGR3 &= (~(__TRIGGER_REMAP__) | HAL_REMAP_CFGR3_MASK)) : \ + (SYSCFG->CFGR1 &= ~(__TRIGGER_REMAP__))); \ + }while(0U) +#else +/** @brief Trigger remapping enable/disable macros + * @param __TRIGGER_REMAP__ This parameter can be a value of @ref HAL_Trigger_Remapping + */ +#define __HAL_REMAPTRIGGER_ENABLE(__TRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPTRIGGER((__TRIGGER_REMAP__))); \ + (SYSCFG->CFGR1 |= (__TRIGGER_REMAP__)); \ + }while(0U) +#define __HAL_REMAPTRIGGER_DISABLE(__TRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPTRIGGER((__TRIGGER_REMAP__))); \ + (SYSCFG->CFGR1 &= ~(__TRIGGER_REMAP__)); \ + }while(0U) +#endif /* SYSCFG_CFGR3_TRIGGER_RMP */ +/** + * @} + */ + +#if defined (STM32F302xE) || defined (STM32F303xE) || defined (STM32F398xx) +/** @defgroup ADC_Trigger_Remapping_Enable ADC Trigger Remapping Enable + * @{ + */ +/** @brief ADC trigger remapping enable/disable macros + * @param __ADCTRIGGER_REMAP__ This parameter can be a value of @ref HAL_ADC_Trigger_Remapping + */ +#define __HAL_REMAPADCTRIGGER_ENABLE(__ADCTRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPADCTRIGGER((__ADCTRIGGER_REMAP__))); \ + (SYSCFG->CFGR4 |= (__ADCTRIGGER_REMAP__)); \ + }while(0U) +#define __HAL_REMAPADCTRIGGER_DISABLE(__ADCTRIGGER_REMAP__) do {assert_param(IS_HAL_REMAPADCTRIGGER((__ADCTRIGGER_REMAP__))); \ + (SYSCFG->CFGR4 &= ~(__ADCTRIGGER_REMAP__)); \ + }while(0U) +/** + * @} + */ +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + +#if defined(SYSCFG_CFGR2_BYP_ADDR_PAR) +/** @defgroup RAM_Parity_Check_Disable RAM Parity Check Disable + * @{ + */ +/** + * @brief Parity check on RAM disable macro + * @note Disabling the parity check on RAM locks the configuration bit. + * To re-enable the parity check on RAM perform a system reset. + */ +#define __HAL_SYSCFG_RAM_PARITYCHECK_DISABLE() (*(__IO uint32_t *) CFGR2_BYPADDRPAR_BB = 0x00000001U) +/** + * @} + */ +#endif /* SYSCFG_CFGR2_BYP_ADDR_PAR */ + +#if defined(SYSCFG_RCR_PAGE0) +/** @defgroup CCM_RAM_Page_Write_Protection_Enable CCM RAM page write protection enable + * @{ + */ +/** @brief CCM RAM page write protection enable macro + * @param __PAGE_WP__ This parameter can be a value of @ref HAL_Page_Write_Protection + * @note write protection can only be disabled by a system reset + */ +#define __HAL_SYSCFG_SRAM_WRP_ENABLE(__PAGE_WP__) do {assert_param(IS_HAL_SYSCFG_WP_PAGE((__PAGE_WP__))); \ + SYSCFG->RCR |= (__PAGE_WP__); \ + }while(0U) +/** + * @} + */ +#endif /* SYSCFG_RCR_PAGE0 */ + +/** + * @} + */ +/* Private macro -------------------------------------------------------------*/ +/** @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 HAL Exported Functions + * @{ + */ + +/** @addtogroup HAL_Exported_Functions_Group1 Initialization and de-initialization Functions + * @brief Initialization and de-initialization functions + * @{ + */ +/* Initialization and de-initialization 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); +/** + * @} + */ + +/* Exported variables ---------------------------------------------------------*/ +/** @addtogroup HAL_Exported_Variables + * @{ + */ +extern __IO uint32_t uwTick; +extern uint32_t uwTickPrio; +extern HAL_TickFreqTypeDef uwTickFreq; +/** + * @} + */ + +/** @addtogroup HAL_Exported_Functions_Group2 HAL Control functions + * @brief HAL Control functions + * @{ + */ +/* Peripheral Control functions ************************************************/ +void HAL_IncTick(void); +void HAL_Delay(uint32_t Delay); +void HAL_SuspendTick(void); +void HAL_ResumeTick(void); +uint32_t HAL_GetTick(void); +uint32_t HAL_GetTickPrio(void); +HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq); +HAL_TickFreqTypeDef HAL_GetTickFreq(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); +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); +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_HAL_H */ + + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h new file mode 100644 index 0000000..b705d11 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h @@ -0,0 +1,426 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_cortex.h + * @author MCD Application Team + * @brief Header file of CORTEX HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_CORTEX_H +#define __STM32F3xx_HAL_CORTEX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup CORTEX + * @{ + */ +/* Exported types ------------------------------------------------------------*/ +/** @defgroup CORTEX_Exported_Types CORTEX Exported Types + * @{ + */ + +#if (__MPU_PRESENT == 1U) +/** @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 bits for pre-emption priority + 4 bits for subpriority */ +#define NVIC_PRIORITYGROUP_1 (0x00000006U) /*!< 1 bits 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 bits for subpriority */ +#define NVIC_PRIORITYGROUP_4 (0x00000003U) /*!< 4 bits for pre-emption priority + 0 bits 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 == 1U) +/** @defgroup CORTEX_MPU_HFNMI_PRIVDEF_Control MPU HFNMI and PRIVILEGED Access control + * @{ + */ +#define MPU_HFNMI_PRIVDEF_NONE (0x00000000U) +#define MPU_HARDFAULT_NMI (0x00000002U) +#define MPU_PRIVILEGED_DEFAULT (0x00000004U) +#define MPU_HFNMI_PRIVDEF (0x00000006U) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Enable CORTEX MPU Region Enable + * @{ + */ +#define MPU_REGION_ENABLE ((uint8_t)0x01U) +#define MPU_REGION_DISABLE ((uint8_t)0x00U) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Instruction_Access CORTEX MPU Instruction Access + * @{ + */ +#define MPU_INSTRUCTION_ACCESS_ENABLE ((uint8_t)0x00U) +#define MPU_INSTRUCTION_ACCESS_DISABLE ((uint8_t)0x01U) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Access_Shareable CORTEX MPU Instruction Access Shareable + * @{ + */ +#define MPU_ACCESS_SHAREABLE ((uint8_t)0x01U) +#define MPU_ACCESS_NOT_SHAREABLE ((uint8_t)0x00U) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Access_Cacheable CORTEX MPU Instruction Access Cacheable + * @{ + */ +#define MPU_ACCESS_CACHEABLE ((uint8_t)0x01U) +#define MPU_ACCESS_NOT_CACHEABLE ((uint8_t)0x00U) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Access_Bufferable CORTEX MPU Instruction Access Bufferable + * @{ + */ +#define MPU_ACCESS_BUFFERABLE ((uint8_t)0x01U) +#define MPU_ACCESS_NOT_BUFFERABLE ((uint8_t)0x00U) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_TEX_Levels MPU TEX Levels + * @{ + */ +#define MPU_TEX_LEVEL0 ((uint8_t)0x00U) +#define MPU_TEX_LEVEL1 ((uint8_t)0x01U) +#define MPU_TEX_LEVEL2 ((uint8_t)0x02U) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Size CORTEX MPU Region Size + * @{ + */ +#define MPU_REGION_SIZE_32B ((uint8_t)0x04U) +#define MPU_REGION_SIZE_64B ((uint8_t)0x05U) +#define MPU_REGION_SIZE_128B ((uint8_t)0x06U) +#define MPU_REGION_SIZE_256B ((uint8_t)0x07U) +#define MPU_REGION_SIZE_512B ((uint8_t)0x08U) +#define MPU_REGION_SIZE_1KB ((uint8_t)0x09U) +#define MPU_REGION_SIZE_2KB ((uint8_t)0x0AU) +#define MPU_REGION_SIZE_4KB ((uint8_t)0x0BU) +#define MPU_REGION_SIZE_8KB ((uint8_t)0x0CU) +#define MPU_REGION_SIZE_16KB ((uint8_t)0x0DU) +#define MPU_REGION_SIZE_32KB ((uint8_t)0x0EU) +#define MPU_REGION_SIZE_64KB ((uint8_t)0x0FU) +#define MPU_REGION_SIZE_128KB ((uint8_t)0x10U) +#define MPU_REGION_SIZE_256KB ((uint8_t)0x11U) +#define MPU_REGION_SIZE_512KB ((uint8_t)0x12U) +#define MPU_REGION_SIZE_1MB ((uint8_t)0x13U) +#define MPU_REGION_SIZE_2MB ((uint8_t)0x14U) +#define MPU_REGION_SIZE_4MB ((uint8_t)0x15U) +#define MPU_REGION_SIZE_8MB ((uint8_t)0x16U) +#define MPU_REGION_SIZE_16MB ((uint8_t)0x17U) +#define MPU_REGION_SIZE_32MB ((uint8_t)0x18U) +#define MPU_REGION_SIZE_64MB ((uint8_t)0x19U) +#define MPU_REGION_SIZE_128MB ((uint8_t)0x1AU) +#define MPU_REGION_SIZE_256MB ((uint8_t)0x1BU) +#define MPU_REGION_SIZE_512MB ((uint8_t)0x1CU) +#define MPU_REGION_SIZE_1GB ((uint8_t)0x1DU) +#define MPU_REGION_SIZE_2GB ((uint8_t)0x1EU) +#define MPU_REGION_SIZE_4GB ((uint8_t)0x1FU) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Permission_Attributes CORTEX MPU Region Permission Attributes + * @{ + */ +#define MPU_REGION_NO_ACCESS ((uint8_t)0x00U) +#define MPU_REGION_PRIV_RW ((uint8_t)0x01U) +#define MPU_REGION_PRIV_RW_URO ((uint8_t)0x02U) +#define MPU_REGION_FULL_ACCESS ((uint8_t)0x03U) +#define MPU_REGION_PRIV_RO ((uint8_t)0x05U) +#define MPU_REGION_PRIV_RO_URO ((uint8_t)0x06U) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Number CORTEX MPU Region Number + * @{ + */ +#define MPU_REGION_NUMBER0 ((uint8_t)0x00U) +#define MPU_REGION_NUMBER1 ((uint8_t)0x01U) +#define MPU_REGION_NUMBER2 ((uint8_t)0x02U) +#define MPU_REGION_NUMBER3 ((uint8_t)0x03U) +#define MPU_REGION_NUMBER4 ((uint8_t)0x04U) +#define MPU_REGION_NUMBER5 ((uint8_t)0x05U) +#define MPU_REGION_NUMBER6 ((uint8_t)0x06U) +#define MPU_REGION_NUMBER7 ((uint8_t)0x07U) +/** + * @} + */ +#endif /* __MPU_PRESENT */ + +/** + * @} + */ + +/* Exported Macros -----------------------------------------------------------*/ + + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup CORTEX_Exported_Functions + * @{ + */ + +/** @addtogroup CORTEX_Exported_Functions_Group1 + * @{ + */ +/* Initialization and de-initialization 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); +/** + * @} + */ + +/** @addtogroup CORTEX_Exported_Functions_Group2 + * @{ + */ +/* Peripheral Control functions ***********************************************/ +#if (__MPU_PRESENT == 1U) +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 */ +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); +/** + * @} + */ + +/** + * @} + */ + +/* 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) >= 0x00) + +/** @defgroup CORTEX_SysTick_clock_source_Macro_Private CORTEX SysTick clock source + * @{ + */ +#define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) == SYSTICK_CLKSOURCE_HCLK) || \ + ((SOURCE) == SYSTICK_CLKSOURCE_HCLK_DIV8)) +/** + * @} + */ + +#if (__MPU_PRESENT == 1U) +#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)) + +#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)0x00FFU) +#endif /* __MPU_PRESENT */ + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ +/** @defgroup CORTEX_Private_Functions CORTEX Private Functions + * @brief CORTEX private functions + * @{ + */ + +#if (__MPU_PRESENT == 1U) + +void HAL_MPU_Disable(void); +void HAL_MPU_Enable(uint32_t MPU_Control); + +#endif /* __MPU_PRESENT */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_HAL_CORTEX_H */ + + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h new file mode 100644 index 0000000..df8418b --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h @@ -0,0 +1,178 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_def.h + * @author MCD Application Team + * @brief This file contains HAL common defines, enumeration, macros and + * structures definitions. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_DEF +#define __STM32F3xx_HAL_DEF + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx.h" +#include "Legacy/stm32_hal_legacy.h" +#include + +/* Exported types ------------------------------------------------------------*/ + +/** + * @brief HAL Status structures definition + */ +typedef enum +{ + HAL_OK = 0x00U, + HAL_ERROR = 0x01U, + HAL_BUSY = 0x02U, + HAL_TIMEOUT = 0x03 +} HAL_StatusTypeDef; + +/** + * @brief HAL Lock structures definition + */ +typedef enum +{ + HAL_UNLOCKED = 0x00U, + HAL_LOCKED = 0x01 +} HAL_LockTypeDef; + +/* Exported macro ------------------------------------------------------------*/ + +#if !defined(UNUSED) +#define UNUSED(X) (void)X /* To avoid gcc/g++ warnings */ +#endif /* UNUSED */ + +#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(0U) + +/** @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 = 0U) + +#if (USE_RTOS == 1U) + #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 (4))) + #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(4) + #elif defined (__ICCARM__) /* IAR Compiler */ + #define __ALIGN_BEGIN + #endif /* __CC_ARM */ + #endif /* __ALIGN_BEGIN */ +#endif /* __GNUC__ */ + +/** + * @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 + +#ifdef __cplusplus +} +#endif + +#endif /* ___STM32F3xx_HAL_DEF */ + + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h new file mode 100644 index 0000000..afd10eb --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h @@ -0,0 +1,452 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_dma.h + * @author MCD Application Team + * @brief Header file of DMA HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_DMA_H +#define __STM32F3xx_HAL_DMA_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup DMA + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup DMA_Exported_Types DMA Exported Types + * @{ + */ + +/** + * @brief DMA Configuration Structure definition + */ +typedef struct +{ + 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 = 0x03 /*!< 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 = 0x01 /*!< 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 = 0x04 /*!< 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 */ + + 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 */ +} 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) /*!< no ongoin transfer */ +#define HAL_DMA_ERROR_TIMEOUT (0x00000020U) /*!< Timeout error */ +#define HAL_DMA_ERROR_NOT_SUPPORTED (0x00000100U) /*!< Not supported mode */ +/** + * @} + */ + +/** @defgroup DMA_Data_transfer_direction DMA Data transfer direction + * @{ + */ +#define DMA_PERIPH_TO_MEMORY (0x00000000U) /*!< Peripheral to memory direction */ +#define DMA_MEMORY_TO_PERIPH ((uint32_t)DMA_CCR_DIR) /*!< Memory to peripheral direction */ +#define DMA_MEMORY_TO_MEMORY ((uint32_t)DMA_CCR_MEM2MEM) /*!< Memory to memory direction */ + +/** + * @} + */ + +/** @defgroup DMA_Peripheral_incremented_mode DMA Peripheral incremented mode + * @{ + */ +#define DMA_PINC_ENABLE ((uint32_t)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 ((uint32_t)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 ((uint32_t)DMA_CCR_PSIZE_0) /*!< Peripheral data alignment : HalfWord */ +#define DMA_PDATAALIGN_WORD ((uint32_t)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 ((uint32_t)DMA_CCR_MSIZE_0) /*!< Memory data alignment : HalfWord */ +#define DMA_MDATAALIGN_WORD ((uint32_t)DMA_CCR_MSIZE_1) /*!< Memory data alignment : Word */ +/** + * @} + */ + +/** @defgroup DMA_mode DMA mode + * @{ + */ +#define DMA_NORMAL (0x00000000U) /*!< Normal Mode */ +#define DMA_CIRCULAR ((uint32_t)DMA_CCR_CIRC) /*!< Circular Mode */ +/** + * @} + */ + +/** @defgroup DMA_Priority_level DMA Priority level + * @{ + */ +#define DMA_PRIORITY_LOW (0x00000000U) /*!< Priority level : Low */ +#define DMA_PRIORITY_MEDIUM ((uint32_t)DMA_CCR_PL_0) /*!< Priority level : Medium */ +#define DMA_PRIORITY_HIGH ((uint32_t)DMA_CCR_PL_1) /*!< Priority level : High */ +#define DMA_PRIORITY_VERY_HIGH ((uint32_t)DMA_CCR_PL) /*!< Priority level : Very_High */ +/** + * @} + */ + + +/** @defgroup DMA_interrupt_enable_definitions DMA interrupt enable definitions + * @{ + */ +#define DMA_IT_TC ((uint32_t)DMA_CCR_TCIE) +#define DMA_IT_HT ((uint32_t)DMA_CCR_HTIE) +#define DMA_IT_TE ((uint32_t)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) +#define DMA_FLAG_GL7 (0x01000000U) +#define DMA_FLAG_TC7 (0x02000000U) +#define DMA_FLAG_HT7 (0x04000000U) +#define DMA_FLAG_TE7 (0x08000000U) +/** + * @} + */ + +/** + * @} + */ + + +/* Exported macro ------------------------------------------------------------*/ +/** @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 Enables 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 Disables 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 Checks whether the specified DMA Channel interrupt is enabled or disabled. + * @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 Returns the number of remaining data units in the current DMAy Channelx 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 Extended module */ +#include "stm32f3xx_hal_dma_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup DMA_Exported_Functions + * @{ + */ + +/** @addtogroup DMA_Exported_Functions_Group1 Initialization and de-initialization functions + * @{ + */ +/* 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 Input and Output operation functions + * @{ + */ +/* Input and Output 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, uint32_t 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 functions + * @{ + */ +/* 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 + * @brief DMA private macros + * @{ + */ + +#define IS_DMA_BUFFER_SIZE(SIZE) (((SIZE) >= 0x1U) && ((SIZE) < 0x10000U)) + +#define IS_DMA_DIRECTION(DIRECTION) (((DIRECTION) == DMA_PERIPH_TO_MEMORY ) || \ + ((DIRECTION) == DMA_MEMORY_TO_PERIPH) || \ + ((DIRECTION) == DMA_MEMORY_TO_MEMORY)) + +#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_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)) + +/** + * @} + */ + + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_HAL_DMA_H */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h new file mode 100644 index 0000000..691d12b --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h @@ -0,0 +1,272 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_dma_ex.h + * @author MCD Application Team + * @brief Header file of DMA HAL extension module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_DMA_EX_H +#define __STM32F3xx_HAL_DMA_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup DMAEx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup DMAEx_Exported_Macros DMA Extended Exported Macros + * @{ + */ +/* Interrupt & Flag management */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \ + defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \ + defined(STM32F373xC) || defined(STM32F378xx) +/** + * @brief Returns the current DMA Channel transfer complete flag. + * @param __HANDLE__ DMA handle + * @retval The specified transfer complete flag index. + */ +#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)DMA1_Channel2))? DMA_FLAG_TC2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TC3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TC4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TC5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TC6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_FLAG_TC7 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_TC1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_TC2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_TC3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_TC4 :\ + DMA_FLAG_TC5) + +/** + * @brief Returns the current DMA Channel half transfer complete flag. + * @param __HANDLE__ DMA handle + * @retval The specified half transfer complete flag index. + */ +#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)DMA1_Channel2))? DMA_FLAG_HT2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_HT3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_HT4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_HT5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_HT6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_FLAG_HT7 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_HT1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_HT2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_HT3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_HT4 :\ + DMA_FLAG_HT5) + +/** + * @brief Returns the current DMA Channel transfer error flag. + * @param __HANDLE__ DMA handle + * @retval The specified transfer error flag index. + */ +#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)DMA1_Channel2))? DMA_FLAG_TE2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TE3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TE4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TE5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TE6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_FLAG_TE7 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_TE1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_TE2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_TE3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_TE4 :\ + DMA_FLAG_TE5) + +/** + * @brief Return the current DMA Channel Global interrupt flag. + * @param __HANDLE__ DMA handle + * @retval The specified transfer error flag index. + */ +#define __HAL_DMA_GET_GI_FLAG_INDEX(__HANDLE__)\ +(((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_GL1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_GL2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_GL3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_GL4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_GL5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_GL6 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_FLAG_GL7 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_GL1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_GL2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_GL3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_GL4 :\ + DMA_FLAG_GL5) + +/** + * @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 + * Where x can be 1_7 or 1_5 (depending on DMA1 or DMA2) to select the DMA Channel flag. + * @retval The state of FLAG (SET or RESET). + */ +#define __HAL_DMA_GET_FLAG(__HANDLE__, __FLAG__)\ +(((uint32_t)((__HANDLE__)->Instance) > (uint32_t)DMA1_Channel7)? (DMA2->ISR & (__FLAG__)) :\ + (DMA1->ISR & (__FLAG__))) + +/** + * @brief Clears 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 + * Where x can be 1_7 or 1_5 (depending on DMA1 or DMA2) to select the DMA Channel flag. + * @retval None + */ +#define __HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__) \ +(((uint32_t)((__HANDLE__)->Instance) > (uint32_t)DMA1_Channel7)? (DMA2->IFCR = (__FLAG__)) :\ + (DMA1->IFCR = (__FLAG__))) + +/** + * @} + */ + +#else /* STM32F301x8_STM32F302x8_STM32F318xx_STM32F303x8_STM32F334x8_STM32F328xx Product devices */ +/** @defgroup DMA_Low_density_Medium_density_Product_devices DMA Low density and Medium density product devices + * @{ + */ + +/** + * @brief Returns the current DMA Channel transfer complete flag. + * @param __HANDLE__ DMA handle + * @retval The specified transfer complete flag index. + */ +#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)DMA1_Channel2))? DMA_FLAG_TC2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TC3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TC4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TC5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TC6 :\ + DMA_FLAG_TC7) + +/** + * @brief Returns the current DMA Channel half transfer complete flag. + * @param __HANDLE__ DMA handle + * @retval The specified half transfer complete flag index. + */ +#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)DMA1_Channel2))? DMA_FLAG_HT2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_HT3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_HT4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_HT5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_HT6 :\ + DMA_FLAG_HT7) + +/** + * @brief Returns the current DMA Channel transfer error flag. + * @param __HANDLE__ DMA handle + * @retval The specified transfer error flag index. + */ +#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)DMA1_Channel2))? DMA_FLAG_TE2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TE3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TE4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TE5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TE6 :\ + DMA_FLAG_TE7) + +/** + * @brief Return the current DMA Channel Global interrupt flag. + * @param __HANDLE__ DMA handle + * @retval The specified transfer error flag index. + */ +#define __HAL_DMA_GET_GI_FLAG_INDEX(__HANDLE__)\ +(((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_GL1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_GL2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_GL3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_GL4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_GL5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_GL6 :\ + DMA_FLAG_GL7) + +/** + * @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 + * Where x can be 1_7 to select the DMA Channel flag. + * @retval The state of FLAG (SET or RESET). + */ + +#define __HAL_DMA_GET_FLAG(__HANDLE__, __FLAG__) (DMA1->ISR & (__FLAG__)) + +/** + * @brief Clears 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 + * Where x can be 1_7 to select the DMA Channel flag. + * @retval None + */ +#define __HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__) (DMA1->IFCR = (__FLAG__)) + +/** + * @} + */ + +#endif + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F373xC || STM32F378xx */ + +#endif /* __STM32F3xx_HAL_DMA_H */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h new file mode 100644 index 0000000..2e25ca3 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h @@ -0,0 +1,402 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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 STM32F3xx_HAL_EXTI_H +#define STM32F3xx_HAL_EXTI_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @defgroup EXTI EXTI + * @brief EXTI HAL module driver + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup EXTI_Exported_Types EXTI Exported Types + * @{ + */ + +/** + * @brief HAL EXTI common Callback ID enumeration definition + */ +typedef enum +{ + HAL_EXTI_COMMON_CB_ID = 0x00U +} 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) /*!< External interrupt line 0 */ +#define EXTI_LINE_1 (EXTI_GPIO | EXTI_REG1 | 0x01u) /*!< External interrupt line 1 */ +#define EXTI_LINE_2 (EXTI_GPIO | EXTI_REG1 | 0x02u) /*!< External interrupt line 2 */ +#define EXTI_LINE_3 (EXTI_GPIO | EXTI_REG1 | 0x03u) /*!< External interrupt line 3 */ +#define EXTI_LINE_4 (EXTI_GPIO | EXTI_REG1 | 0x04u) /*!< External interrupt line 4 */ +#define EXTI_LINE_5 (EXTI_GPIO | EXTI_REG1 | 0x05u) /*!< External interrupt line 5 */ +#define EXTI_LINE_6 (EXTI_GPIO | EXTI_REG1 | 0x06u) /*!< External interrupt line 6 */ +#define EXTI_LINE_7 (EXTI_GPIO | EXTI_REG1 | 0x07u) /*!< External interrupt line 7 */ +#define EXTI_LINE_8 (EXTI_GPIO | EXTI_REG1 | 0x08u) /*!< External interrupt line 8 */ +#define EXTI_LINE_9 (EXTI_GPIO | EXTI_REG1 | 0x09u) /*!< External interrupt line 9 */ +#define EXTI_LINE_10 (EXTI_GPIO | EXTI_REG1 | 0x0Au) /*!< External interrupt line 10 */ +#define EXTI_LINE_11 (EXTI_GPIO | EXTI_REG1 | 0x0Bu) /*!< External interrupt line 11 */ +#define EXTI_LINE_12 (EXTI_GPIO | EXTI_REG1 | 0x0Cu) /*!< External interrupt line 12 */ +#define EXTI_LINE_13 (EXTI_GPIO | EXTI_REG1 | 0x0Du) /*!< External interrupt line 13 */ +#define EXTI_LINE_14 (EXTI_GPIO | EXTI_REG1 | 0x0Eu) /*!< External interrupt line 14 */ +#define EXTI_LINE_15 (EXTI_GPIO | EXTI_REG1 | 0x0Fu) /*!< External interrupt line 15 */ +#define EXTI_LINE_16 (EXTI_CONFIG | EXTI_REG1 | 0x10u) /*!< External interrupt line 16 Connected to the PVD Output */ +#define EXTI_LINE_17 (EXTI_CONFIG | EXTI_REG1 | 0x11u) /*!< External interrupt line 17 Connected to the RTC Alarm event */ + +#if defined(EXTI_IMR_MR18) +#define EXTI_LINE_18 (EXTI_CONFIG | EXTI_REG1 | 0x12u) /*!< External interrupt line 18 Connected to the USB OTG FS Wakeup from suspend event */ +#else +#define EXTI_LINE_18 (EXTI_RESERVED | EXTI_REG1 | 0x12u) +#endif /* EXTI_IMR_MR18 */ + +#define EXTI_LINE_19 (EXTI_CONFIG | EXTI_REG1 | 0x13u) /*!< External interrupt line 19 Connected to the RTC tamper and Timestamps */ +#define EXTI_LINE_20 (EXTI_CONFIG | EXTI_REG1 | 0x14u) /*!< External interrupt line 20 Connected to the RTC wakeup timer */ + +#if defined(EXTI_IMR_MR21) +#define EXTI_LINE_21 (EXTI_CONFIG | EXTI_REG1 | 0x15u) /*!< External interrupt line 21 Connected to the Comparator 1 output */ +#else +#define EXTI_LINE_21 (EXTI_RESERVED | EXTI_REG1 | 0x15u) +#endif /* EXTI_IMR_MR21 */ + +#define EXTI_LINE_22 (EXTI_CONFIG | EXTI_REG1 | 0x16u) /*!< External interrupt line 22 Connected to the Comparator 2 output */ +#define EXTI_LINE_23 (EXTI_DIRECT | EXTI_REG1 | 0x17u) /*!< External interrupt line 23 Connected to the internal I2C1 wakeup event */ + +#if defined(EXTI_IMR_MR24) +#define EXTI_LINE_24 (EXTI_DIRECT | EXTI_REG1 | 0x18u) /*!< External interrupt line 24 Connected to the internal I2C2 wakeup event */ +#else +#define EXTI_LINE_24 (EXTI_RESERVED | EXTI_REG1 | 0x18u) +#endif /* EXTI_IMR_MR24 */ + +#define EXTI_LINE_25 (EXTI_DIRECT | EXTI_REG1 | 0x19u) /*!< External interrupt line 25 Connected to the internal USART1 wakeup event */ + +#if defined(EXTI_IMR_MR26) +#define EXTI_LINE_26 (EXTI_DIRECT | EXTI_REG1 | 0x1Au) /*!< External interrupt line 26 Connected to the internal USART2 wakeup event */ +#else +#define EXTI_LINE_26 (EXTI_RESERVED | EXTI_REG1 | 0x1Au) +#endif /* EXTI_IMR_MR26 */ + +#if defined(EXTI_IMR_MR27) +#define EXTI_LINE_27 (EXTI_DIRECT | EXTI_REG1 | 0x1Bu) /*!< External interrupt line 27 Connected to the internal I2C3 wakeup event */ +#else +#define EXTI_LINE_27 (EXTI_RESERVED | EXTI_REG1 | 0x1Bu) +#endif /* EXTI_IMR_MR27 */ + +#if defined(EXTI_IMR_MR28) +#define EXTI_LINE_28 (EXTI_DIRECT | EXTI_REG1 | 0x1Cu) /*!< External interrupt line 28 Connected to the internal USART3 wakeup event */ +#else +#define EXTI_LINE_28 (EXTI_RESERVED | EXTI_REG1 | 0x1Cu) +#endif /* EXTI_IMR_MR28 */ + +#if defined(EXTI_32_63_SUPPORT) + +#if defined(EXTI_IMR_MR29) +#define EXTI_LINE_29 (EXTI_CONFIG | EXTI_REG1 | 0x1Du) /*!< External interrupt line 29 Connected to the Comparator 3 output */ +#else +#define EXTI_LINE_29 (EXTI_RESERVED | EXTI_REG1 | 0x1Cu) +#endif /* EXTI_IMR_MR29 */ + +#if defined(EXTI_IMR_MR30) +#define EXTI_LINE_30 (EXTI_CONFIG | EXTI_REG1 | 0x1Eu) /*!< External interrupt line 30 Connected to the Comparator 4 output */ +#else +#define EXTI_LINE_30 (EXTI_RESERVED | EXTI_REG1 | 0x1Eu) +#endif /* EXTI_IMR_MR30 */ + +#if defined(EXTI_IMR_MR31) +#define EXTI_LINE_31 (EXTI_CONFIG | EXTI_REG1 | 0x1Fu) /*!< External interrupt line 31 Connected to the Comparator 5 output */ +#else +#define EXTI_LINE_31 (EXTI_RESERVED | EXTI_REG1 | 0x1Fu) +#endif /* EXTI_IMR_MR31 */ + +#define EXTI_LINE_32 (EXTI_CONFIG | EXTI_REG2 | 0x00u) /*!< External interrupt line 32 Connected to the Comparator 6 output */ + +#if defined(EXTI_IMR2_MR33) +#define EXTI_LINE_33 (EXTI_CONFIG | EXTI_REG2 | 0x01u) /*!< External interrupt line 33 Connected to the Comparator 7 output */ +#else +#define EXTI_LINE_33 (EXTI_RESERVED | EXTI_REG2 | 0x01u) +#endif /* EXTI_IMR2_MR33 */ + +#if defined(EXTI_IMR2_MR34) +#define EXTI_LINE_34 (EXTI_DIRECT | EXTI_REG2 | 0x02u) /*!< External interrupt line 34 Connected to the USART4 output */ +#else +#define EXTI_LINE_34 (EXTI_RESERVED | EXTI_REG2 | 0x02u) +#endif /* EXTI_IMR2_MR34 */ + +#if defined(EXTI_IMR2_MR35) +#define EXTI_LINE_35 (EXTI_DIRECT | EXTI_REG2 | 0x03u) /*!< External interrupt line 35 Connected to the USART5 output */ +#else +#define EXTI_LINE_35 (EXTI_RESERVED | EXTI_REG2 | 0x03u) +#endif /* EXTI_IMR2_MR35 */ + +#endif /* EXTI_32_63_SUPPORT */ +/** + * @} + */ + +/** @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 +#if defined(GPIOE) +#define EXTI_GPIOE 0x00000004u +#endif /* GPIOE */ +#define EXTI_GPIOF 0x00000005u +#if defined(GPIOG) +#define EXTI_GPIOG 0x00000006u +#endif /* GPIOG */ +#if defined(GPIOH) +#define EXTI_GPIOH 0x00000007u +#endif /* GPIOH */ +/** + * @} + */ + +/** + * @} + */ + +/* 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 + */ +#if defined(EXTI_32_63_SUPPORT) +#define EXTI_LINE_NB 36uL +#else +#define EXTI_LINE_NB 29uL +#endif /* EXTI_32_63_SUPPORT */ + +/** + * @} + */ + +/* 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_PENDING_EDGE(__EXTI_LINE__) ((__EXTI_LINE__) == EXTI_TRIGGER_RISING_FALLING) + +#define IS_EXTI_CONFIG_LINE(__EXTI_LINE__) (((__EXTI_LINE__) & EXTI_CONFIG) != 0x00u) + +#if defined(GPIOH) +#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) || \ + ((__PORT__) == EXTI_GPIOH)) +#elif defined(GPIOE) +#define IS_EXTI_GPIO_PORT(__PORT__) (((__PORT__) == EXTI_GPIOA) || \ + ((__PORT__) == EXTI_GPIOB) || \ + ((__PORT__) == EXTI_GPIOC) || \ + ((__PORT__) == EXTI_GPIOD) || \ + ((__PORT__) == EXTI_GPIOE) || \ + ((__PORT__) == EXTI_GPIOF)) +#else +#define IS_EXTI_GPIO_PORT(__PORT__) (((__PORT__) == EXTI_GPIOA) || \ + ((__PORT__) == EXTI_GPIOB) || \ + ((__PORT__) == EXTI_GPIOC) || \ + ((__PORT__) == EXTI_GPIOD) || \ + ((__PORT__) == EXTI_GPIOF)) +#endif /* GPIOE */ + +#define IS_EXTI_GPIO_PIN(__PIN__) ((__PIN__) < 16u) + +/** + * @} + */ + + +/* 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 /* STM32F3xx_HAL_EXTI_H */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h new file mode 100644 index 0000000..08be962 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h @@ -0,0 +1,378 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_flash.h + * @author MCD Application Team + * @brief Header file of Flash HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_FLASH_H +#define __STM32F3xx_HAL_FLASH_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup FLASH + * @{ + */ + +/** @addtogroup FLASH_Private_Constants + * @{ + */ +#define FLASH_TIMEOUT_VALUE (50000U) /* 50 s */ +/** + * @} + */ + +/** @addtogroup FLASH_Private_Macros + * @{ + */ + +#define IS_FLASH_TYPEPROGRAM(VALUE) (((VALUE) == FLASH_TYPEPROGRAM_HALFWORD) || \ + ((VALUE) == FLASH_TYPEPROGRAM_WORD) || \ + ((VALUE) == FLASH_TYPEPROGRAM_DOUBLEWORD)) + +#define IS_FLASH_LATENCY(__LATENCY__) (((__LATENCY__) == FLASH_LATENCY_0) || \ + ((__LATENCY__) == FLASH_LATENCY_1) || \ + ((__LATENCY__) == FLASH_LATENCY_2)) + +/** + * @} + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup FLASH_Exported_Types FLASH Exported Types + * @{ + */ + +/** + * @brief FLASH Procedure structure definition + */ +typedef enum +{ + FLASH_PROC_NONE = 0U, + FLASH_PROC_PAGEERASE = 1U, + FLASH_PROC_MASSERASE = 2U, + FLASH_PROC_PROGRAMHALFWORD = 3U, + FLASH_PROC_PROGRAMWORD = 4U, + FLASH_PROC_PROGRAMDOUBLEWORD = 5U +} FLASH_ProcedureTypeDef; + +/** + * @brief FLASH handle Structure definition + */ +typedef struct +{ + __IO FLASH_ProcedureTypeDef ProcedureOnGoing; /*!< Internal variable to indicate which procedure is ongoing or not in IT context */ + + __IO uint32_t DataRemaining; /*!< Internal variable to save the remaining pages to erase or half-word to program in IT context */ + + __IO uint32_t Address; /*!< Internal variable to save address selected for program or erase */ + + __IO uint64_t Data; /*!< Internal variable to save data to be programmed */ + + HAL_LockTypeDef Lock; /*!< FLASH locking object */ + + __IO uint32_t ErrorCode; /*!< FLASH error code + This parameter can be a value of @ref FLASH_Error_Codes */ +} FLASH_ProcessTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup FLASH_Exported_Constants FLASH Exported Constants + * @{ + */ + +/** @defgroup FLASH_Error_Codes FLASH Error Codes + * @{ + */ + +#define HAL_FLASH_ERROR_NONE 0x00U /*!< No error */ +#define HAL_FLASH_ERROR_PROG 0x01U /*!< Programming error */ +#define HAL_FLASH_ERROR_WRP 0x02U /*!< Write protection error */ + +/** + * @} + */ + +/** @defgroup FLASH_Type_Program FLASH Type Program + * @{ + */ +#define FLASH_TYPEPROGRAM_HALFWORD (0x01U) /*!ACR |= FLASH_ACR_HLFCYA) + +/** + * @brief Disable the FLASH half cycle access. + * @retval None + */ +#define __HAL_FLASH_HALF_CYCLE_ACCESS_DISABLE() (FLASH->ACR &= (~FLASH_ACR_HLFCYA)) + +/** + * @} + */ + +/** @defgroup FLASH_EM_Latency FLASH Latency + * @brief macros to handle FLASH Latency + * @{ + */ + +/** + * @brief Set the FLASH Latency. + * @param __LATENCY__ FLASH Latency + * This parameter can be one of the following values: + * @arg @ref FLASH_LATENCY_0 FLASH Zero Latency cycle + * @arg @ref FLASH_LATENCY_1 FLASH One Latency cycle + * @arg @ref FLASH_LATENCY_2 FLASH Two Latency cycles + * @retval None + */ +#define __HAL_FLASH_SET_LATENCY(__LATENCY__) (FLASH->ACR = (FLASH->ACR&(~FLASH_ACR_LATENCY)) | (__LATENCY__)) + + +/** + * @brief Get the FLASH Latency. + * @retval FLASH Latency + * This parameter can be one of the following values: + * @arg @ref FLASH_LATENCY_0 FLASH Zero Latency cycle + * @arg @ref FLASH_LATENCY_1 FLASH One Latency cycle + * @arg @ref FLASH_LATENCY_2 FLASH Two Latency cycles + */ +#define __HAL_FLASH_GET_LATENCY() (READ_BIT((FLASH->ACR), FLASH_ACR_LATENCY)) + +/** + * @} + */ + +/** @defgroup FLASH_Prefetch FLASH Prefetch + * @brief macros to handle FLASH Prefetch buffer + * @{ + */ +/** + * @brief Enable the FLASH prefetch buffer. + * @retval None + */ +#define __HAL_FLASH_PREFETCH_BUFFER_ENABLE() (FLASH->ACR |= FLASH_ACR_PRFTBE) + +/** + * @brief Disable the FLASH prefetch buffer. + * @retval None + */ +#define __HAL_FLASH_PREFETCH_BUFFER_DISABLE() (FLASH->ACR &= (~FLASH_ACR_PRFTBE)) + +/** + * @} + */ + +/** @defgroup FLASH_Interrupt FLASH Interrupts + * @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 @ref FLASH_IT_EOP End of FLASH Operation Interrupt + * @arg @ref FLASH_IT_ERR Error Interrupt + * @retval none + */ +#define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) SET_BIT((FLASH->CR), (__INTERRUPT__)) + +/** + * @brief Disable the specified FLASH interrupt. + * @param __INTERRUPT__ FLASH interrupt + * This parameter can be any combination of the following values: + * @arg @ref FLASH_IT_EOP End of FLASH Operation Interrupt + * @arg @ref FLASH_IT_ERR Error Interrupt + * @retval none + */ +#define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) CLEAR_BIT((FLASH->CR), (uint32_t)(__INTERRUPT__)) + +/** + * @brief Get the specified FLASH flag status. + * @param __FLAG__ specifies the FLASH flag to check. + * This parameter can be one of the following values: + * @arg @ref FLASH_FLAG_BSY FLASH Busy flag + * @arg @ref FLASH_FLAG_EOP FLASH End of Operation flag + * @arg @ref FLASH_FLAG_WRPERR FLASH Write protected error flag + * @arg @ref FLASH_FLAG_PGERR FLASH Programming error flag + * @retval The new state of __FLAG__ (SET or RESET). + */ +#define __HAL_FLASH_GET_FLAG(__FLAG__) (((FLASH->SR) & (__FLAG__)) == (__FLAG__)) + +/** + * @brief Clear the specified FLASH flag. + * @param __FLAG__ specifies the FLASH flags to clear. + * This parameter can be any combination of the following values: + * @arg @ref FLASH_FLAG_EOP FLASH End of Operation flag + * @arg @ref FLASH_FLAG_WRPERR FLASH Write protected error flag + * @arg @ref FLASH_FLAG_PGERR FLASH Programming error flag + * @retval none + */ +#define __HAL_FLASH_CLEAR_FLAG(__FLAG__) ((FLASH->SR) = (__FLAG__)) + +/** + * @} + */ + +/** + * @} + */ + +/* Include FLASH HAL Extended module */ +#include "stm32f3xx_hal_flash_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup FLASH_Exported_Functions + * @{ + */ + +/** @addtogroup FLASH_Exported_Functions_Group1 + * @{ + */ +/* IO operation functions *****************************************************/ +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 function */ +void HAL_FLASH_IRQHandler(void); +/* Callbacks in non blocking modes */ +void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue); +void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue); + +/** + * @} + */ + +/** @addtogroup FLASH_Exported_Functions_Group2 + * @{ + */ +/* Peripheral Control functions ***********************************************/ +HAL_StatusTypeDef HAL_FLASH_Unlock(void); +HAL_StatusTypeDef HAL_FLASH_Lock(void); +HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void); +HAL_StatusTypeDef HAL_FLASH_OB_Lock(void); +HAL_StatusTypeDef HAL_FLASH_OB_Launch(void); + +/** + * @} + */ + +/** @addtogroup FLASH_Exported_Functions_Group3 + * @{ + */ +/* Peripheral State and Error functions ***************************************/ +uint32_t HAL_FLASH_GetError(void); + +/** + * @} + */ + +/** + * @} + */ + +/* Private function -------------------------------------------------*/ +/** @addtogroup FLASH_Private_Functions + * @{ + */ +HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_HAL_FLASH_H */ + + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h new file mode 100644 index 0000000..7e6b302 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h @@ -0,0 +1,472 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_flash_ex.h + * @author MCD Application Team + * @brief Header file of Flash HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_FLASH_EX_H +#define __STM32F3xx_HAL_FLASH_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup FLASHEx + * @{ + */ + +/** @addtogroup FLASHEx_Private_Constants + * @{ + */ + +#define FLASH_SIZE_DATA_REGISTER (0x1FFFF7CCU) + +/** + * @} + */ + +/** @addtogroup FLASHEx_Private_Macros + * @{ + */ +#define IS_FLASH_TYPEERASE(VALUE) (((VALUE) == FLASH_TYPEERASE_PAGES) || \ + ((VALUE) == FLASH_TYPEERASE_MASSERASE)) + +#define IS_OPTIONBYTE(VALUE) ((VALUE) <= (OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER | OPTIONBYTE_DATA)) + +#define IS_WRPSTATE(VALUE) (((VALUE) == OB_WRPSTATE_DISABLE) || \ + ((VALUE) == OB_WRPSTATE_ENABLE)) + +#define IS_OB_DATA_ADDRESS(ADDRESS) (((ADDRESS) == OB_DATA_ADDRESS_DATA0) || ((ADDRESS) == OB_DATA_ADDRESS_DATA1)) + +#define IS_OB_RDP_LEVEL(LEVEL) (((LEVEL) == OB_RDP_LEVEL_0) ||\ + ((LEVEL) == OB_RDP_LEVEL_1))/*||\ + ((LEVEL) == OB_RDP_LEVEL_2))*/ + +#define IS_OB_IWDG_SOURCE(SOURCE) (((SOURCE) == OB_IWDG_SW) || ((SOURCE) == OB_IWDG_HW)) + +#define IS_OB_STOP_SOURCE(SOURCE) (((SOURCE) == OB_STOP_NO_RST) || ((SOURCE) == OB_STOP_RST)) + +#define IS_OB_STDBY_SOURCE(SOURCE) (((SOURCE) == OB_STDBY_NO_RST) || ((SOURCE) == OB_STDBY_RST)) + +#define IS_OB_BOOT1(BOOT1) (((BOOT1) == OB_BOOT1_RESET) || ((BOOT1) == OB_BOOT1_SET)) + +#define IS_OB_VDDA_ANALOG(ANALOG) (((ANALOG) == OB_VDDA_ANALOG_ON) || ((ANALOG) == OB_VDDA_ANALOG_OFF)) + +#define IS_OB_SRAM_PARITY(PARITY) (((PARITY) == OB_SRAM_PARITY_SET) || ((PARITY) == OB_SRAM_PARITY_RESET)) + + +#if defined(FLASH_OBR_SDADC12_VDD_MONITOR) +#define IS_OB_SDACD_VDD_MONITOR(VDD_MONITOR) (((VDD_MONITOR) == OB_SDACD_VDD_MONITOR_SET) || \ + ((VDD_MONITOR) == OB_SDACD_VDD_MONITOR_RESET)) +#endif /* FLASH_OBR_SDADC12_VDD_MONITOR */ + +#define IS_OB_WRP(PAGE) (((PAGE) != 0x0000000U)) + +#if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) \ + || defined(STM32F373xC) || defined(STM32F378xx) +#define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (((ADDRESS) >= FLASH_BASE) && (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x100U) ? \ + ((ADDRESS) <= 0x0803FFFFU) : (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x80U) ? \ + ((ADDRESS) <= 0x0801FFFFU) : ((ADDRESS) <= 0x0800FFFFU)))) +#endif /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (((ADDRESS) >= FLASH_BASE) && ((ADDRESS) <= 0x0807FFFFU)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) \ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (((ADDRESS) >= FLASH_BASE) && (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x40U) ? \ + ((ADDRESS) <= 0x0800FFFFU) : (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x20U) ? \ + ((ADDRESS) <= 0x08007FFFU) : ((ADDRESS) <= 0x08003FFFU)))) +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) \ + || defined(STM32F373xC) || defined(STM32F378xx) +#define IS_FLASH_NB_PAGES(ADDRESS,NBPAGES) (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x100U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1U <= 0x0803FFFFU) : \ + (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x80U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1U <= 0x0801FFFFU) : \ + ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1U <= 0x0800FFFFU))) +#endif /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define IS_FLASH_NB_PAGES(ADDRESS,NBPAGES) ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1U <= 0x0807FFFFU) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) \ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#define IS_FLASH_NB_PAGES(ADDRESS,NBPAGES) (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x40U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1U <= 0x0800FFFFU) : \ + (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x20U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1U <= 0x08007FFFU) : \ + ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1U <= 0x08003FFFU))) +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +/** + * @} + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup FLASHEx_Exported_Types FLASHEx Exported Types + * @{ + */ +/** + * @brief FLASH Erase structure definition + */ +typedef struct +{ + uint32_t TypeErase; /*!< TypeErase: Mass erase or page erase. + This parameter can be a value of @ref FLASHEx_Type_Erase */ + + uint32_t PageAddress; /*!< PageAdress: Initial FLASH page address to erase when mass erase is disabled + This parameter must be a number between Min_Data = FLASH_BASE and Max_Data = FLASH_BANK1_END */ + + uint32_t NbPages; /*!< NbPages: Number of pagess to be erased. + This parameter must be a value between Min_Data = 1 and Max_Data = (max number of pages - value of initial page)*/ + +} FLASH_EraseInitTypeDef; + +/** + * @brief FLASH Options bytes program structure definition + */ +typedef struct +{ + uint32_t OptionType; /*!< OptionType: Option byte to be configured. + This parameter can be a value of @ref FLASHEx_OB_Type */ + + uint32_t WRPState; /*!< WRPState: Write protection activation or deactivation. + This parameter can be a value of @ref FLASHEx_OB_WRP_State */ + + uint32_t WRPPage; /*!< WRPPage: specifies the page(s) to be write protected + This parameter can be a value of @ref FLASHEx_OB_Write_Protection */ + + uint8_t RDPLevel; /*!< RDPLevel: Set the read protection level.. + This parameter can be a value of @ref FLASHEx_OB_Read_Protection */ + + uint8_t USERConfig; /*!< USERConfig: Program the FLASH User Option Byte: + IWDG / STOP / STDBY / BOOT1 / VDDA_ANALOG / SRAM_PARITY / SDADC12_VDD_MONITOR + This parameter can be a combination of @ref FLASHEx_OB_IWatchdog, @ref FLASHEx_OB_nRST_STOP, + @ref FLASHEx_OB_nRST_STDBY, @ref FLASHEx_OB_BOOT1, @ref FLASHEx_OB_VDDA_Analog_Monitoring, + @ref FLASHEx_OB_RAM_Parity_Check_Enable. + @if STM32F373xC + And @ref FLASHEx_OB_SDADC12_VDD_MONITOR (only for STM32F373xC & STM32F378xx devices) + @endif + @if STM32F378xx + And @ref FLASHEx_OB_SDADC12_VDD_MONITOR (only for STM32F373xC & STM32F378xx devices) + @endif + */ + + uint32_t DATAAddress; /*!< DATAAddress: Address of the option byte DATA to be programmed + This parameter can be a value of @ref FLASHEx_OB_Data_Address */ + + uint8_t DATAData; /*!< DATAData: Data to be stored in the option byte DATA + This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFFU */ +} FLASH_OBProgramInitTypeDef; +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup FLASHEx_Exported_Constants FLASHEx Exported Constants + * @{ + */ + +/** @defgroup FLASHEx_Page_Size FLASHEx Page Size + * @{ + */ +#define FLASH_PAGE_SIZE 0x800 +/** + * @} + */ + +/** @defgroup FLASHEx_Type_Erase FLASH Type Erase + * @{ + */ +#define FLASH_TYPEERASE_PAGES (0x00U) /*!PR & (__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->PR = (__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->PR & (__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->PR = (__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->SWIER |= (__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) +#define TRIGGER_LEVEL (0x4uL << TRIGGER_MODE_Pos) +/** + * @} + */ + +/** @addtogroup 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)) + +#define IS_GPIO_PULL(__PULL__) (((__PULL__) == GPIO_NOPULL) ||\ + ((__PULL__) == GPIO_PULLUP) || \ + ((__PULL__) == GPIO_PULLDOWN)) +/** + * @} + */ + +/* Include GPIO HAL Extended module */ +#include "stm32f3xx_hal_gpio_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup GPIO_Exported_Functions GPIO Exported Functions + * @{ + */ + +/** @addtogroup 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); + +/** + * @} + */ + +/** @addtogroup GPIO_Exported_Functions_Group2 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 /* __STM32F3xx_HAL_GPIO_H */ + + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h new file mode 100644 index 0000000..8dd57aa --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h @@ -0,0 +1,1520 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_gpio_ex.h + * @author MCD Application Team + * @brief Header file of GPIO HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_GPIO_EX_H +#define __STM32F3xx_HAL_GPIO_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_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 + * @{ + */ + +#if defined (STM32F302xC) +/*---------------------------------- STM32F302xC ------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ +#define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1/I2S1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ +#define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ +#define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ +#define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ +#define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ +#define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ +#define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ +#define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ +#define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ +#define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ +#define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 12 selection + */ +#define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 14 selection + */ + +#define GPIO_AF14_USB ((uint8_t)0x0EU) /* USB Alternate Function mapping */ +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0EU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F302xC */ + +#if defined (STM32F303xC) +/*---------------------------------- STM32F303xC ------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ +#define GPIO_AF2_TIM8 ((uint8_t)0x02U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ +#define GPIO_AF3_TIM8 ((uint8_t)0x03U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF3_COMP7 ((uint8_t)0x03U) /* COMP7 Alternate Function mapping */ +#define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF4_TIM8 ((uint8_t)0x04U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1/I2S1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ +#define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ +#define GPIO_AF5_TIM8 ((uint8_t)0x05U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ +#define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ +#define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ +#define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF6_TIM8 ((uint8_t)0x06U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_COMP3 ((uint8_t)0x07U) /* COMP3 Alternate Function mapping */ +#define GPIO_AF7_COMP5 ((uint8_t)0x07U) /* COMP5 Alternate Function mapping */ +#define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ +#define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ +#define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ +#define GPIO_AF8_COMP3 ((uint8_t)0x08U) /* COMP3 Alternate Function mapping */ +#define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ +#define GPIO_AF8_COMP5 ((uint8_t)0x08U) /* COMP5 Alternate Function mapping */ +#define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ +#define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF9_TIM8 ((uint8_t)0x09U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ +#define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ +#define GPIO_AF10_TIM8 ((uint8_t)0xAU) /* TIM8 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ +#define GPIO_AF11_TIM8 ((uint8_t)0x0BU) /* TIM8 Alternate Function mapping */ + +/** + * @brief AF 12 selection + */ +#define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 14 selection + */ + +#define GPIO_AF14_USB ((uint8_t)0x0EU) /* USB Alternate Function mapping */ +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0EU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F303xC */ + +#if defined (STM32F303xE) +/*---------------------------------- STM32F303xE ------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ + +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ +#define GPIO_AF2_TIM8 ((uint8_t)0x02U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ +#define GPIO_AF2_I2C3 ((uint8_t)0x02U) /* I2C3 Alternate Function mapping */ +#define GPIO_AF2_TIM20 ((uint8_t)0x02U) /* TIM20 Alternate Function mapping */ + +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ +#define GPIO_AF3_TIM8 ((uint8_t)0x03U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF3_COMP7 ((uint8_t)0x03U) /* COMP7 Alternate Function mapping */ +#define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF3_I2C3 ((uint8_t)0x03U) /* I2C3 Alternate Function mapping */ +#define GPIO_AF3_TIM20 ((uint8_t)0x03U) /* TIM20 Alternate Function mapping */ + +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF4_TIM8 ((uint8_t)0x04U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ +#define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ +#define GPIO_AF5_TIM8 ((uint8_t)0x05U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ +#define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ +#define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ +#define GPIO_AF5_SPI4 ((uint8_t)0x05U) /* SPI4 Alternate Function mapping */ + +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ +#define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF6_TIM8 ((uint8_t)0x06U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ +#define GPIO_AF6_TIM20 ((uint8_t)0x06U) /* TIM20 Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_COMP3 ((uint8_t)0x07U) /* COMP3 Alternate Function mapping */ +#define GPIO_AF7_COMP5 ((uint8_t)0x07U) /* COMP5 Alternate Function mapping */ +#define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ +#define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ +#define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ +#define GPIO_AF8_COMP3 ((uint8_t)0x08U) /* COMP3 Alternate Function mapping */ +#define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ +#define GPIO_AF8_COMP5 ((uint8_t)0x08U) /* COMP5 Alternate Function mapping */ +#define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ +#define GPIO_AF8_I2C3 ((uint8_t)0x08U) /* I2C3 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ +#define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF9_TIM8 ((uint8_t)0x09U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ +#define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ +#define GPIO_AF10_TIM8 ((uint8_t)0xAU) /* TIM8 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ +#define GPIO_AF11_TIM8 ((uint8_t)0x0BU) /* TIM8 Alternate Function mapping */ + +/** + * @brief AF 12 selection + */ +#define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ +#define GPIO_AF12_FMC ((uint8_t)0xCU) /* FMC Alternate Function mapping */ +#define GPIO_AF12_SDIO ((uint8_t)0xCU) /* SDIO Alternate Function mapping */ + +/** + * @brief AF 14 selection + */ +#define GPIO_AF14_USB ((uint8_t)0x0EU) /* USB Alternate Function mapping */ + +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0EU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F303xE */ + +#if defined (STM32F302xE) +/*---------------------------------- STM32F302xE ------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ + +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ +#define GPIO_AF2_I2C3 ((uint8_t)0x02U) /* I2C3 Alternate Function mapping */ + +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ +#define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF3_I2C3 ((uint8_t)0x03U) /* I2C3 Alternate Function mapping */ + +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ +#define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ +#define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ +#define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ +#define GPIO_AF5_SPI4 ((uint8_t)0x05U) /* SPI4 Alternate Function mapping */ + +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ +#define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ +#define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ +#define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ +#define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ +#define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ +#define GPIO_AF8_I2C3 ((uint8_t)0x08U) /* I2C3 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ +#define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ +#define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 12 selection + */ +#define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ +#define GPIO_AF12_FMC ((uint8_t)0xCU) /* FMC Alternate Function mapping */ +#define GPIO_AF12_SDIO ((uint8_t)0xCU) /* SDIO Alternate Function mapping */ + +/** + * @brief AF 14 selection + */ +#define GPIO_AF14_USB ((uint8_t)0x0EU) /* USB Alternate Function mapping */ + +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0EU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F302xE */ + +#if defined (STM32F398xx) +/*---------------------------------- STM32F398xx ------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ + +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ +#define GPIO_AF2_TIM8 ((uint8_t)0x02U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ +#define GPIO_AF2_I2C3 ((uint8_t)0x02U) /* I2C3 Alternate Function mapping */ +#define GPIO_AF2_TIM20 ((uint8_t)0x02U) /* TIM20 Alternate Function mapping */ + +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ +#define GPIO_AF3_TIM8 ((uint8_t)0x03U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF3_COMP7 ((uint8_t)0x03U) /* COMP7 Alternate Function mapping */ +#define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF3_I2C3 ((uint8_t)0x03U) /* I2C3 Alternate Function mapping */ +#define GPIO_AF3_TIM20 ((uint8_t)0x03U) /* TIM20 Alternate Function mapping */ + +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF4_TIM8 ((uint8_t)0x04U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ +#define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ +#define GPIO_AF5_TIM8 ((uint8_t)0x05U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ +#define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ +#define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ +#define GPIO_AF5_SPI4 ((uint8_t)0x05U) /* SPI4 Alternate Function mapping */ + +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ +#define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF6_TIM8 ((uint8_t)0x06U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ +#define GPIO_AF6_TIM20 ((uint8_t)0x06U) /* TIM20 Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_COMP3 ((uint8_t)0x07U) /* COMP3 Alternate Function mapping */ +#define GPIO_AF7_COMP5 ((uint8_t)0x07U) /* COMP5 Alternate Function mapping */ +#define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ +#define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ +#define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ +#define GPIO_AF8_COMP3 ((uint8_t)0x08U) /* COMP3 Alternate Function mapping */ +#define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ +#define GPIO_AF8_COMP5 ((uint8_t)0x08U) /* COMP5 Alternate Function mapping */ +#define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ +#define GPIO_AF8_I2C3 ((uint8_t)0x08U) /* I2C3 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ +#define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF9_TIM8 ((uint8_t)0x09U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ +#define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ +#define GPIO_AF10_TIM8 ((uint8_t)0xAU) /* TIM8 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ +#define GPIO_AF11_TIM8 ((uint8_t)0x0BU) /* TIM8 Alternate Function mapping */ + +/** + * @brief AF 12 selection + */ +#define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ +#define GPIO_AF12_FMC ((uint8_t)0xCU) /* FMC Alternate Function mapping */ +#define GPIO_AF12_SDIO ((uint8_t)0xCU) /* SDIO Alternate Function mapping */ + +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F398xx */ + +#if defined (STM32F358xx) +/*---------------------------------- STM32F358xx -------------------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ +#define GPIO_AF2_TIM8 ((uint8_t)0x02U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ +#define GPIO_AF3_TIM8 ((uint8_t)0x03U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF3_COMP7 ((uint8_t)0x03U) /* COMP7 Alternate Function mapping */ +#define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF4_TIM8 ((uint8_t)0x04U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1/I2S1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ +#define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ +#define GPIO_AF5_TIM8 ((uint8_t)0x05U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ +#define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ +#define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ +#define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF6_TIM8 ((uint8_t)0x06U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_COMP3 ((uint8_t)0x07U) /* COMP3 Alternate Function mapping */ +#define GPIO_AF7_COMP5 ((uint8_t)0x07U) /* COMP5 Alternate Function mapping */ +#define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ +#define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ +#define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ +#define GPIO_AF8_COMP3 ((uint8_t)0x08U) /* COMP3 Alternate Function mapping */ +#define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ +#define GPIO_AF8_COMP5 ((uint8_t)0x08U) /* COMP5 Alternate Function mapping */ +#define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ +#define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF9_TIM8 ((uint8_t)0x09U) /* TIM8 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ +#define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ +#define GPIO_AF10_TIM8 ((uint8_t)0xAU) /* TIM8 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ +#define GPIO_AF11_TIM8 ((uint8_t)0x0BU) /* TIM8 Alternate Function mapping */ + +/** + * @brief AF 12 selection + */ +#define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F358xx */ + +#if defined (STM32F373xC) +/*---------------------------------- STM32F373xC--------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ +#define GPIO_AF2_TIM5 ((uint8_t)0x02U) /* TIM5 Alternate Function mapping */ +#define GPIO_AF2_TIM13 ((uint8_t)0x02U) /* TIM13 Alternate Function mapping */ +#define GPIO_AF2_TIM14 ((uint8_t)0x02U) /* TIM14 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_TIM19 ((uint8_t)0x02U) /* TIM19 Alternate Function mapping */ + +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1/I2S1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_SPI1 ((uint8_t)0x06U) /* SPI1/I2S1 Alternate Function mapping */ +#define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ +#define GPIO_AF6_CEC ((uint8_t)0x06U) /* CEC Alternate Function mapping */ +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ +#define GPIO_AF7_CEC ((uint8_t)0x07U) /* CEC Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ +#define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ +#define GPIO_AF9_TIM12 ((uint8_t)0x09U) /* TIM12 Alternate Function mapping */ +#define GPIO_AF9_TIM13 ((uint8_t)0x09U) /* TIM13 Alternate Function mapping */ +#define GPIO_AF9_TIM14 ((uint8_t)0x09U) /* TIM14 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ +#define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ +#define GPIO_AF10_TIM12 ((uint8_t)0xAU) /* TIM12 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM19 ((uint8_t)0x0BU) /* TIM19 Alternate Function mapping */ + + +/** + * @brief AF 14 selection + */ +#define GPIO_AF14_USB ((uint8_t)0x0EU) /* USB Alternate Function mapping */ + +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0BU) || ((AF) == (uint8_t)0x0EU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F373xC */ + + +#if defined (STM32F378xx) +/*---------------------------------------- STM32F378xx--------------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ +#define GPIO_AF2_TIM5 ((uint8_t)0x02U) /* TIM5 Alternate Function mapping */ +#define GPIO_AF2_TIM13 ((uint8_t)0x02U) /* TIM13 Alternate Function mapping */ +#define GPIO_AF2_TIM14 ((uint8_t)0x02U) /* TIM14 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_TIM19 ((uint8_t)0x02U) /* TIM19 Alternate Function mapping */ + +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1/I2S1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ + +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_SPI1 ((uint8_t)0x06U) /* SPI1/I2S1 Alternate Function mapping */ +#define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ +#define GPIO_AF6_CEC ((uint8_t)0x06U) /* CEC Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ +#define GPIO_AF7_CEC ((uint8_t)0x07U) /* CEC Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ +#define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ +#define GPIO_AF9_TIM12 ((uint8_t)0x09U) /* TIM12 Alternate Function mapping */ +#define GPIO_AF9_TIM13 ((uint8_t)0x09U) /* TIM13 Alternate Function mapping */ +#define GPIO_AF9_TIM14 ((uint8_t)0x09U) /* TIM14 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ +#define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ +#define GPIO_AF10_TIM12 ((uint8_t)0xAU) /* TIM12 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ + +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM19 ((uint8_t)0x0BU) /* TIM19 Alternate Function mapping */ + +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0BU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F378xx */ + +#if defined (STM32F303x8) +/*---------------------------------- STM32F303x8--------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_TIM16 ((uint8_t)0x02U) /* TIM16 Alternate Function mapping */ + +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ + +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_GPCOMP6 ((uint8_t)0x07U) /* GPCOMP6 Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_GPCOMP2 ((uint8_t)0x08U) /* GPCOMP2 Alternate Function mapping */ +#define GPIO_AF8_GPCOMP4 ((uint8_t)0x08U) /* GPCOMP4 Alternate Function mapping */ +#define GPIO_AF8_GPCOMP6 ((uint8_t)0x08U) /* GPCOMP6 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ +#define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ + +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 12 selection + */ +#define GPIO_AF12_TIM1 ((uint8_t)0x0CU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 13 selection + */ +#define GPIO_AF13_OPAMP2 ((uint8_t)0x0DU) /* OPAMP2 Alternate Function mapping */ + +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0DU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F303x8 */ + +#if defined (STM32F334x8) || defined (STM32F328xx) +/*---------------------------------- STM32F334x8/STM32F328xx -------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_TIM16 ((uint8_t)0x02U) /* TIM16 Alternate Function mapping */ + +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ +#define GPIO_AF3_HRTIM1 ((uint8_t)0x03U) /* HRTIM1 Alternate Function mapping */ + +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_GPCOMP6 ((uint8_t)0x07U) /* GPCOMP6 Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_GPCOMP2 ((uint8_t)0x08U) /* GPCOMP2 Alternate Function mapping */ +#define GPIO_AF8_GPCOMP4 ((uint8_t)0x08U) /* GPCOMP4 Alternate Function mapping */ +#define GPIO_AF8_GPCOMP6 ((uint8_t)0x08U) /* GPCOMP6 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ +#define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ + +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 12 selection + */ +#define GPIO_AF12_TIM1 ((uint8_t)0x0CU) /* TIM1 Alternate Function mapping */ +#define GPIO_AF12_HRTIM1 ((uint8_t)0x0CU) /* HRTIM1 Alternate Function mapping */ + +/** + * @brief AF 13 selection + */ +#define GPIO_AF13_OPAMP2 ((uint8_t)0x0DU) /* OPAMP2 Alternate Function mapping */ +#define GPIO_AF13_HRTIM1 ((uint8_t)0x0DU) /* HRTIM1 Alternate Function mapping */ + +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0DU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F334x8 || STM32F328xx */ + +#if defined (STM32F301x8) || defined (STM32F318xx) +/*---------------------------------- STM32F301x8 / STM32F318xx ------------------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_I2C3 ((uint8_t)0x02U) /* I2C3 Alternate Function mapping */ +#define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ + +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ +#define GPIO_AF3_I2C3 ((uint8_t)0x03U) /* I2C3 Alternate Function mapping */ +#define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ +#define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ +#define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_GPCOMP6 ((uint8_t)0x07U) /* GPCOMP6 Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_I2C3 ((uint8_t)0x08U) /* I2C3 Alternate Function mapping */ +#define GPIO_AF8_GPCOMP2 ((uint8_t)0x08U) /* GPCOMP2 Alternate Function mapping */ +#define GPIO_AF8_GPCOMP4 ((uint8_t)0x08U) /* GPCOMP4 Alternate Function mapping */ +#define GPIO_AF8_GPCOMP6 ((uint8_t)0x08U) /* GPCOMP6 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ + +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 12 selection + */ +#define GPIO_AF12_TIM1 ((uint8_t)0x0CU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F301x8 || STM32F318xx */ + +#if defined (STM32F302x8) +/*---------------------------------- STM32F302x8------------------------------------------*/ +/** + * @brief AF 0 selection + */ +#define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ + +/** + * @brief AF 1 selection + */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ +#define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ +#define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ +/** + * @brief AF 2 selection + */ +#define GPIO_AF2_I2C3 ((uint8_t)0x02U) /* I2C3 Alternate Function mapping */ +#define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ + +/** + * @brief AF 3 selection + */ +#define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ +#define GPIO_AF3_I2C3 ((uint8_t)0x03U) /* I2C3 Alternate Function mapping */ +#define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ + +/** + * @brief AF 4 selection + */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ +#define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ +#define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ + +/** + * @brief AF 5 selection + */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ +#define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ +/** + * @brief AF 6 selection + */ +#define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ +#define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ +#define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ + +/** + * @brief AF 7 selection + */ +#define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ +#define GPIO_AF7_GPCOMP6 ((uint8_t)0x07U) /* GPCOMP6 Alternate Function mapping */ +#define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ + +/** + * @brief AF 8 selection + */ +#define GPIO_AF8_I2C3 ((uint8_t)0x08U) /* I2C3 Alternate Function mapping */ +#define GPIO_AF8_GPCOMP2 ((uint8_t)0x08U) /* GPCOMP2 Alternate Function mapping */ +#define GPIO_AF8_GPCOMP4 ((uint8_t)0x08U) /* GPCOMP4 Alternate Function mapping */ +#define GPIO_AF8_GPCOMP6 ((uint8_t)0x08U) /* GPCOMP6 Alternate Function mapping */ + +/** + * @brief AF 9 selection + */ +#define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ +#define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ +#define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ + +/** + * @brief AF 10 selection + */ +#define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ +#define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ + +/** + * @brief AF 11 selection + */ +#define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 12 selection + */ +#define GPIO_AF12_TIM1 ((uint8_t)0x0CU) /* TIM1 Alternate Function mapping */ + +/** + * @brief AF 15 selection + */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ + +#define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0FU)) +/*------------------------------------------------------------------------------------------*/ +#endif /* STM32F302x8 */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup GPIOEx_Exported_Macros GPIOEx Exported Macros + * @{ + */ + +/** @defgroup GPIOEx_Get_Port_Index GPIOEx_Get Port Index +* @{ + */ +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \ + defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\ + ((__GPIOx__) == (GPIOB))? 1U :\ + ((__GPIOx__) == (GPIOC))? 2U :\ + ((__GPIOx__) == (GPIOD))? 3U : 5U) +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \ + defined(STM32F373xC) || defined(STM32F378xx) +#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\ + ((__GPIOx__) == (GPIOB))? 1U :\ + ((__GPIOx__) == (GPIOC))? 2U :\ + ((__GPIOx__) == (GPIOD))? 3U :\ + ((__GPIOx__) == (GPIOE))? 4U : 5U) +#endif /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\ + ((__GPIOx__) == (GPIOB))? 1U :\ + ((__GPIOx__) == (GPIOC))? 2U :\ + ((__GPIOx__) == (GPIOD))? 3U :\ + ((__GPIOx__) == (GPIOE))? 4U :\ + ((__GPIOx__) == (GPIOF))? 5U :\ + ((__GPIOx__) == (GPIOG))? 6U : 7U) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_HAL_GPIO_EX_H */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h new file mode 100644 index 0000000..50642aa --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h @@ -0,0 +1,838 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_i2c.h + * @author MCD Application Team + * @brief Header file of I2C HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 STM32F3xx_HAL_I2C_H +#define STM32F3xx_HAL_I2C_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup I2C + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup I2C_Exported_Types I2C Exported Types + * @{ + */ + +/** @defgroup I2C_Configuration_Structure_definition I2C Configuration Structure definition + * @brief I2C Configuration Structure definition + * @{ + */ +typedef struct +{ + uint32_t Timing; /*!< Specifies the I2C_TIMINGR_register value. + This parameter calculated by referring to I2C initialization section + in Reference manual */ + + uint32_t OwnAddress1; /*!< Specifies the first device own address. + This parameter can be a 7-bit or 10-bit address. */ + + uint32_t AddressingMode; /*!< Specifies if 7-bit or 10-bit addressing mode is selected. + This parameter can be a value of @ref I2C_ADDRESSING_MODE */ + + uint32_t DualAddressMode; /*!< Specifies if dual addressing mode is selected. + This parameter can be a value of @ref I2C_DUAL_ADDRESSING_MODE */ + + uint32_t OwnAddress2; /*!< Specifies the second device own address if dual addressing mode is selected + This parameter can be a 7-bit address. */ + + uint32_t OwnAddress2Masks; /*!< Specifies the acknowledge mask address second device own address if dual addressing + mode is selected. + This parameter can be a value of @ref I2C_OWN_ADDRESS2_MASKS */ + + uint32_t GeneralCallMode; /*!< Specifies if general call mode is selected. + This parameter can be a value of @ref I2C_GENERAL_CALL_ADDRESSING_MODE */ + + uint32_t NoStretchMode; /*!< Specifies if nostretch mode is selected. + This parameter can be a value of @ref I2C_NOSTRETCH_MODE */ + +} I2C_InitTypeDef; + +/** + * @} + */ + +/** @defgroup HAL_state_structure_definition HAL state structure definition + * @brief HAL State structure definition + * @note HAL I2C State value coding follow below described bitmap :\n + * b7-b6 Error information\n + * 00 : No Error\n + * 01 : Abort (Abort user request on going)\n + * 10 : Timeout\n + * 11 : Error\n + * b5 Peripheral initialization status\n + * 0 : Reset (peripheral not initialized)\n + * 1 : Init done (peripheral initialized and ready to use. HAL I2C Init function called)\n + * b4 (not used)\n + * x : Should be set to 0\n + * b3\n + * 0 : Ready or Busy (No Listen mode ongoing)\n + * 1 : Listen (peripheral in Address Listen Mode)\n + * b2 Intrinsic process state\n + * 0 : Ready\n + * 1 : Busy (peripheral busy with some configuration or internal operations)\n + * b1 Rx state\n + * 0 : Ready (no Rx operation ongoing)\n + * 1 : Busy (Rx operation ongoing)\n + * b0 Tx state\n + * 0 : Ready (no Tx operation ongoing)\n + * 1 : Busy (Tx operation ongoing) + * @{ + */ +typedef enum +{ + HAL_I2C_STATE_RESET = 0x00U, /*!< Peripheral is not yet Initialized */ + HAL_I2C_STATE_READY = 0x20U, /*!< Peripheral Initialized and ready for use */ + HAL_I2C_STATE_BUSY = 0x24U, /*!< An internal process is ongoing */ + HAL_I2C_STATE_BUSY_TX = 0x21U, /*!< Data Transmission process is ongoing */ + HAL_I2C_STATE_BUSY_RX = 0x22U, /*!< Data Reception process is ongoing */ + HAL_I2C_STATE_LISTEN = 0x28U, /*!< Address Listen Mode is ongoing */ + HAL_I2C_STATE_BUSY_TX_LISTEN = 0x29U, /*!< Address Listen Mode and Data Transmission + process is ongoing */ + HAL_I2C_STATE_BUSY_RX_LISTEN = 0x2AU, /*!< Address Listen Mode and Data Reception + process is ongoing */ + HAL_I2C_STATE_ABORT = 0x60U, /*!< Abort user request ongoing */ + +} HAL_I2C_StateTypeDef; + +/** + * @} + */ + +/** @defgroup HAL_mode_structure_definition HAL mode structure definition + * @brief HAL Mode structure definition + * @note HAL I2C Mode value coding follow below described bitmap :\n + * b7 (not used)\n + * x : Should be set to 0\n + * b6\n + * 0 : None\n + * 1 : Memory (HAL I2C communication is in Memory Mode)\n + * b5\n + * 0 : None\n + * 1 : Slave (HAL I2C communication is in Slave Mode)\n + * b4\n + * 0 : None\n + * 1 : Master (HAL I2C communication is in Master Mode)\n + * b3-b2-b1-b0 (not used)\n + * xxxx : Should be set to 0000 + * @{ + */ +typedef enum +{ + HAL_I2C_MODE_NONE = 0x00U, /*!< No I2C communication on going */ + HAL_I2C_MODE_MASTER = 0x10U, /*!< I2C communication is in Master Mode */ + HAL_I2C_MODE_SLAVE = 0x20U, /*!< I2C communication is in Slave Mode */ + HAL_I2C_MODE_MEM = 0x40U /*!< I2C communication is in Memory Mode */ + +} HAL_I2C_ModeTypeDef; + +/** + * @} + */ + +/** @defgroup I2C_Error_Code_definition I2C Error Code definition + * @brief I2C Error Code definition + * @{ + */ +#define HAL_I2C_ERROR_NONE (0x00000000U) /*!< No error */ +#define HAL_I2C_ERROR_BERR (0x00000001U) /*!< BERR error */ +#define HAL_I2C_ERROR_ARLO (0x00000002U) /*!< ARLO error */ +#define HAL_I2C_ERROR_AF (0x00000004U) /*!< ACKF error */ +#define HAL_I2C_ERROR_OVR (0x00000008U) /*!< OVR error */ +#define HAL_I2C_ERROR_DMA (0x00000010U) /*!< DMA transfer error */ +#define HAL_I2C_ERROR_TIMEOUT (0x00000020U) /*!< Timeout error */ +#define HAL_I2C_ERROR_SIZE (0x00000040U) /*!< Size Management error */ +#define HAL_I2C_ERROR_DMA_PARAM (0x00000080U) /*!< DMA Parameter Error */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +#define HAL_I2C_ERROR_INVALID_CALLBACK (0x00000100U) /*!< Invalid Callback error */ +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +#define HAL_I2C_ERROR_INVALID_PARAM (0x00000200U) /*!< Invalid Parameters error */ +/** + * @} + */ + +/** @defgroup I2C_handle_Structure_definition I2C handle Structure definition + * @brief I2C handle Structure definition + * @{ + */ +typedef struct __I2C_HandleTypeDef +{ + I2C_TypeDef *Instance; /*!< I2C registers base address */ + + I2C_InitTypeDef Init; /*!< I2C communication parameters */ + + uint8_t *pBuffPtr; /*!< Pointer to I2C transfer buffer */ + + uint16_t XferSize; /*!< I2C transfer size */ + + __IO uint16_t XferCount; /*!< I2C transfer counter */ + + __IO uint32_t XferOptions; /*!< I2C sequantial transfer options, this parameter can + be a value of @ref I2C_XFEROPTIONS */ + + __IO uint32_t PreviousState; /*!< I2C communication Previous state */ + + HAL_StatusTypeDef(*XferISR)(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint32_t ITSources); + /*!< I2C transfer IRQ handler function pointer */ + + DMA_HandleTypeDef *hdmatx; /*!< I2C Tx DMA handle parameters */ + + DMA_HandleTypeDef *hdmarx; /*!< I2C Rx DMA handle parameters */ + + + HAL_LockTypeDef Lock; /*!< I2C locking object */ + + __IO HAL_I2C_StateTypeDef State; /*!< I2C communication state */ + + __IO HAL_I2C_ModeTypeDef Mode; /*!< I2C communication mode */ + + __IO uint32_t ErrorCode; /*!< I2C Error code */ + + __IO uint32_t AddrEventCount; /*!< I2C Address Event counter */ + + __IO uint32_t Devaddress; /*!< I2C Target device address */ + + __IO uint32_t Memaddress; /*!< I2C Target memory address */ + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + void (* MasterTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); + /*!< I2C Master Tx Transfer completed callback */ + void (* MasterRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); + /*!< I2C Master Rx Transfer completed callback */ + void (* SlaveTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); + /*!< I2C Slave Tx Transfer completed callback */ + void (* SlaveRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); + /*!< I2C Slave Rx Transfer completed callback */ + void (* ListenCpltCallback)(struct __I2C_HandleTypeDef *hi2c); + /*!< I2C Listen Complete callback */ + void (* MemTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); + /*!< I2C Memory Tx Transfer completed callback */ + void (* MemRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); + /*!< I2C Memory Rx Transfer completed callback */ + void (* ErrorCallback)(struct __I2C_HandleTypeDef *hi2c); + /*!< I2C Error callback */ + void (* AbortCpltCallback)(struct __I2C_HandleTypeDef *hi2c); + /*!< I2C Abort callback */ + + void (* AddrCallback)(struct __I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode); + /*!< I2C Slave Address Match callback */ + + void (* MspInitCallback)(struct __I2C_HandleTypeDef *hi2c); + /*!< I2C Msp Init callback */ + void (* MspDeInitCallback)(struct __I2C_HandleTypeDef *hi2c); + /*!< I2C Msp DeInit callback */ + +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +} I2C_HandleTypeDef; + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +/** + * @brief HAL I2C Callback ID enumeration definition + */ +typedef enum +{ + HAL_I2C_MASTER_TX_COMPLETE_CB_ID = 0x00U, /*!< I2C Master Tx Transfer completed callback ID */ + HAL_I2C_MASTER_RX_COMPLETE_CB_ID = 0x01U, /*!< I2C Master Rx Transfer completed callback ID */ + HAL_I2C_SLAVE_TX_COMPLETE_CB_ID = 0x02U, /*!< I2C Slave Tx Transfer completed callback ID */ + HAL_I2C_SLAVE_RX_COMPLETE_CB_ID = 0x03U, /*!< I2C Slave Rx Transfer completed callback ID */ + HAL_I2C_LISTEN_COMPLETE_CB_ID = 0x04U, /*!< I2C Listen Complete callback ID */ + HAL_I2C_MEM_TX_COMPLETE_CB_ID = 0x05U, /*!< I2C Memory Tx Transfer callback ID */ + HAL_I2C_MEM_RX_COMPLETE_CB_ID = 0x06U, /*!< I2C Memory Rx Transfer completed callback ID */ + HAL_I2C_ERROR_CB_ID = 0x07U, /*!< I2C Error callback ID */ + HAL_I2C_ABORT_CB_ID = 0x08U, /*!< I2C Abort callback ID */ + + HAL_I2C_MSPINIT_CB_ID = 0x09U, /*!< I2C Msp Init callback ID */ + HAL_I2C_MSPDEINIT_CB_ID = 0x0AU /*!< I2C Msp DeInit callback ID */ + +} HAL_I2C_CallbackIDTypeDef; + +/** + * @brief HAL I2C Callback pointer definition + */ +typedef void (*pI2C_CallbackTypeDef)(I2C_HandleTypeDef *hi2c); +/*!< pointer to an I2C callback function */ +typedef void (*pI2C_AddrCallbackTypeDef)(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, + uint16_t AddrMatchCode); +/*!< pointer to an I2C Address Match callback function */ + +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +/** + * @} + */ + +/** + * @} + */ +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup I2C_Exported_Constants I2C Exported Constants + * @{ + */ + +/** @defgroup I2C_XFEROPTIONS I2C Sequential Transfer Options + * @{ + */ +#define I2C_FIRST_FRAME ((uint32_t)I2C_SOFTEND_MODE) +#define I2C_FIRST_AND_NEXT_FRAME ((uint32_t)(I2C_RELOAD_MODE | I2C_SOFTEND_MODE)) +#define I2C_NEXT_FRAME ((uint32_t)(I2C_RELOAD_MODE | I2C_SOFTEND_MODE)) +#define I2C_FIRST_AND_LAST_FRAME ((uint32_t)I2C_AUTOEND_MODE) +#define I2C_LAST_FRAME ((uint32_t)I2C_AUTOEND_MODE) +#define I2C_LAST_FRAME_NO_STOP ((uint32_t)I2C_SOFTEND_MODE) + +/* List of XferOptions in usage of : + * 1- Restart condition in all use cases (direction change or not) + */ +#define I2C_OTHER_FRAME (0x000000AAU) +#define I2C_OTHER_AND_LAST_FRAME (0x0000AA00U) +/** + * @} + */ + +/** @defgroup I2C_ADDRESSING_MODE I2C Addressing Mode + * @{ + */ +#define I2C_ADDRESSINGMODE_7BIT (0x00000001U) +#define I2C_ADDRESSINGMODE_10BIT (0x00000002U) +/** + * @} + */ + +/** @defgroup I2C_DUAL_ADDRESSING_MODE I2C Dual Addressing Mode + * @{ + */ +#define I2C_DUALADDRESS_DISABLE (0x00000000U) +#define I2C_DUALADDRESS_ENABLE I2C_OAR2_OA2EN +/** + * @} + */ + +/** @defgroup I2C_OWN_ADDRESS2_MASKS I2C Own Address2 Masks + * @{ + */ +#define I2C_OA2_NOMASK ((uint8_t)0x00U) +#define I2C_OA2_MASK01 ((uint8_t)0x01U) +#define I2C_OA2_MASK02 ((uint8_t)0x02U) +#define I2C_OA2_MASK03 ((uint8_t)0x03U) +#define I2C_OA2_MASK04 ((uint8_t)0x04U) +#define I2C_OA2_MASK05 ((uint8_t)0x05U) +#define I2C_OA2_MASK06 ((uint8_t)0x06U) +#define I2C_OA2_MASK07 ((uint8_t)0x07U) +/** + * @} + */ + +/** @defgroup I2C_GENERAL_CALL_ADDRESSING_MODE I2C General Call Addressing Mode + * @{ + */ +#define I2C_GENERALCALL_DISABLE (0x00000000U) +#define I2C_GENERALCALL_ENABLE I2C_CR1_GCEN +/** + * @} + */ + +/** @defgroup I2C_NOSTRETCH_MODE I2C No-Stretch Mode + * @{ + */ +#define I2C_NOSTRETCH_DISABLE (0x00000000U) +#define I2C_NOSTRETCH_ENABLE I2C_CR1_NOSTRETCH +/** + * @} + */ + +/** @defgroup I2C_MEMORY_ADDRESS_SIZE I2C Memory Address Size + * @{ + */ +#define I2C_MEMADD_SIZE_8BIT (0x00000001U) +#define I2C_MEMADD_SIZE_16BIT (0x00000002U) +/** + * @} + */ + +/** @defgroup I2C_XFERDIRECTION I2C Transfer Direction Master Point of View + * @{ + */ +#define I2C_DIRECTION_TRANSMIT (0x00000000U) +#define I2C_DIRECTION_RECEIVE (0x00000001U) +/** + * @} + */ + +/** @defgroup I2C_RELOAD_END_MODE I2C Reload End Mode + * @{ + */ +#define I2C_RELOAD_MODE I2C_CR2_RELOAD +#define I2C_AUTOEND_MODE I2C_CR2_AUTOEND +#define I2C_SOFTEND_MODE (0x00000000U) +/** + * @} + */ + +/** @defgroup I2C_START_STOP_MODE I2C Start or Stop Mode + * @{ + */ +#define I2C_NO_STARTSTOP (0x00000000U) +#define I2C_GENERATE_STOP (uint32_t)(0x80000000U | I2C_CR2_STOP) +#define I2C_GENERATE_START_READ (uint32_t)(0x80000000U | I2C_CR2_START | I2C_CR2_RD_WRN) +#define I2C_GENERATE_START_WRITE (uint32_t)(0x80000000U | I2C_CR2_START) +/** + * @} + */ + +/** @defgroup I2C_Interrupt_configuration_definition I2C Interrupt configuration definition + * @brief I2C Interrupt definition + * Elements values convention: 0xXXXXXXXX + * - XXXXXXXX : Interrupt control mask + * @{ + */ +#define I2C_IT_ERRI I2C_CR1_ERRIE +#define I2C_IT_TCI I2C_CR1_TCIE +#define I2C_IT_STOPI I2C_CR1_STOPIE +#define I2C_IT_NACKI I2C_CR1_NACKIE +#define I2C_IT_ADDRI I2C_CR1_ADDRIE +#define I2C_IT_RXI I2C_CR1_RXIE +#define I2C_IT_TXI I2C_CR1_TXIE +/** + * @} + */ + +/** @defgroup I2C_Flag_definition I2C Flag definition + * @{ + */ +#define I2C_FLAG_TXE I2C_ISR_TXE +#define I2C_FLAG_TXIS I2C_ISR_TXIS +#define I2C_FLAG_RXNE I2C_ISR_RXNE +#define I2C_FLAG_ADDR I2C_ISR_ADDR +#define I2C_FLAG_AF I2C_ISR_NACKF +#define I2C_FLAG_STOPF I2C_ISR_STOPF +#define I2C_FLAG_TC I2C_ISR_TC +#define I2C_FLAG_TCR I2C_ISR_TCR +#define I2C_FLAG_BERR I2C_ISR_BERR +#define I2C_FLAG_ARLO I2C_ISR_ARLO +#define I2C_FLAG_OVR I2C_ISR_OVR +#define I2C_FLAG_PECERR I2C_ISR_PECERR +#define I2C_FLAG_TIMEOUT I2C_ISR_TIMEOUT +#define I2C_FLAG_ALERT I2C_ISR_ALERT +#define I2C_FLAG_BUSY I2C_ISR_BUSY +#define I2C_FLAG_DIR I2C_ISR_DIR +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ + +/** @defgroup I2C_Exported_Macros I2C Exported Macros + * @{ + */ + +/** @brief Reset I2C handle state. + * @param __HANDLE__ specifies the I2C Handle. + * @retval None + */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +#define __HAL_I2C_RESET_HANDLE_STATE(__HANDLE__) do{ \ + (__HANDLE__)->State = HAL_I2C_STATE_RESET; \ + (__HANDLE__)->MspInitCallback = NULL; \ + (__HANDLE__)->MspDeInitCallback = NULL; \ + } while(0) +#else +#define __HAL_I2C_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_I2C_STATE_RESET) +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + +/** @brief Enable the specified I2C interrupt. + * @param __HANDLE__ specifies the I2C Handle. + * @param __INTERRUPT__ specifies the interrupt source to enable. + * This parameter can be one of the following values: + * @arg @ref I2C_IT_ERRI Errors interrupt enable + * @arg @ref I2C_IT_TCI Transfer complete interrupt enable + * @arg @ref I2C_IT_STOPI STOP detection interrupt enable + * @arg @ref I2C_IT_NACKI NACK received interrupt enable + * @arg @ref I2C_IT_ADDRI Address match interrupt enable + * @arg @ref I2C_IT_RXI RX interrupt enable + * @arg @ref I2C_IT_TXI TX interrupt enable + * + * @retval None + */ +#define __HAL_I2C_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR1 |= (__INTERRUPT__)) + +/** @brief Disable the specified I2C interrupt. + * @param __HANDLE__ specifies the I2C Handle. + * @param __INTERRUPT__ specifies the interrupt source to disable. + * This parameter can be one of the following values: + * @arg @ref I2C_IT_ERRI Errors interrupt enable + * @arg @ref I2C_IT_TCI Transfer complete interrupt enable + * @arg @ref I2C_IT_STOPI STOP detection interrupt enable + * @arg @ref I2C_IT_NACKI NACK received interrupt enable + * @arg @ref I2C_IT_ADDRI Address match interrupt enable + * @arg @ref I2C_IT_RXI RX interrupt enable + * @arg @ref I2C_IT_TXI TX interrupt enable + * + * @retval None + */ +#define __HAL_I2C_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR1 &= (~(__INTERRUPT__))) + +/** @brief Check whether the specified I2C interrupt source is enabled or not. + * @param __HANDLE__ specifies the I2C Handle. + * @param __INTERRUPT__ specifies the I2C interrupt source to check. + * This parameter can be one of the following values: + * @arg @ref I2C_IT_ERRI Errors interrupt enable + * @arg @ref I2C_IT_TCI Transfer complete interrupt enable + * @arg @ref I2C_IT_STOPI STOP detection interrupt enable + * @arg @ref I2C_IT_NACKI NACK received interrupt enable + * @arg @ref I2C_IT_ADDRI Address match interrupt enable + * @arg @ref I2C_IT_RXI RX interrupt enable + * @arg @ref I2C_IT_TXI TX interrupt enable + * + * @retval The new state of __INTERRUPT__ (SET or RESET). + */ +#define __HAL_I2C_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->CR1 & \ + (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) + +/** @brief Check whether the specified I2C flag is set or not. + * @param __HANDLE__ specifies the I2C Handle. + * @param __FLAG__ specifies the flag to check. + * This parameter can be one of the following values: + * @arg @ref I2C_FLAG_TXE Transmit data register empty + * @arg @ref I2C_FLAG_TXIS Transmit interrupt status + * @arg @ref I2C_FLAG_RXNE Receive data register not empty + * @arg @ref I2C_FLAG_ADDR Address matched (slave mode) + * @arg @ref I2C_FLAG_AF Acknowledge failure received flag + * @arg @ref I2C_FLAG_STOPF STOP detection flag + * @arg @ref I2C_FLAG_TC Transfer complete (master mode) + * @arg @ref I2C_FLAG_TCR Transfer complete reload + * @arg @ref I2C_FLAG_BERR Bus error + * @arg @ref I2C_FLAG_ARLO Arbitration lost + * @arg @ref I2C_FLAG_OVR Overrun/Underrun + * @arg @ref I2C_FLAG_PECERR PEC error in reception + * @arg @ref I2C_FLAG_TIMEOUT Timeout or Tlow detection flag + * @arg @ref I2C_FLAG_ALERT SMBus alert + * @arg @ref I2C_FLAG_BUSY Bus busy + * @arg @ref I2C_FLAG_DIR Transfer direction (slave mode) + * + * @retval The new state of __FLAG__ (SET or RESET). + */ +#define I2C_FLAG_MASK (0x0001FFFFU) +#define __HAL_I2C_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & \ + (__FLAG__)) == (__FLAG__)) ? SET : RESET) + +/** @brief Clear the I2C pending flags which are cleared by writing 1 in a specific bit. + * @param __HANDLE__ specifies the I2C Handle. + * @param __FLAG__ specifies the flag to clear. + * This parameter can be any combination of the following values: + * @arg @ref I2C_FLAG_TXE Transmit data register empty + * @arg @ref I2C_FLAG_ADDR Address matched (slave mode) + * @arg @ref I2C_FLAG_AF Acknowledge failure received flag + * @arg @ref I2C_FLAG_STOPF STOP detection flag + * @arg @ref I2C_FLAG_BERR Bus error + * @arg @ref I2C_FLAG_ARLO Arbitration lost + * @arg @ref I2C_FLAG_OVR Overrun/Underrun + * @arg @ref I2C_FLAG_PECERR PEC error in reception + * @arg @ref I2C_FLAG_TIMEOUT Timeout or Tlow detection flag + * @arg @ref I2C_FLAG_ALERT SMBus alert + * + * @retval None + */ +#define __HAL_I2C_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__FLAG__) == I2C_FLAG_TXE) ? \ + ((__HANDLE__)->Instance->ISR |= (__FLAG__)) : \ + ((__HANDLE__)->Instance->ICR = (__FLAG__))) + +/** @brief Enable the specified I2C peripheral. + * @param __HANDLE__ specifies the I2C Handle. + * @retval None + */ +#define __HAL_I2C_ENABLE(__HANDLE__) (SET_BIT((__HANDLE__)->Instance->CR1, I2C_CR1_PE)) + +/** @brief Disable the specified I2C peripheral. + * @param __HANDLE__ specifies the I2C Handle. + * @retval None + */ +#define __HAL_I2C_DISABLE(__HANDLE__) (CLEAR_BIT((__HANDLE__)->Instance->CR1, I2C_CR1_PE)) + +/** @brief Generate a Non-Acknowledge I2C peripheral in Slave mode. + * @param __HANDLE__ specifies the I2C Handle. + * @retval None + */ +#define __HAL_I2C_GENERATE_NACK(__HANDLE__) (SET_BIT((__HANDLE__)->Instance->CR2, I2C_CR2_NACK)) +/** + * @} + */ + +/* Include I2C HAL Extended module */ +#include "stm32f3xx_hal_i2c_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup I2C_Exported_Functions + * @{ + */ + +/** @addtogroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions + * @{ + */ +/* Initialization and de-initialization functions******************************/ +HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c); +HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c); + +/* Callbacks Register/UnRegister functions ***********************************/ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID, + pI2C_CallbackTypeDef pCallback); +HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID); + +HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pCallback); +HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +/** + * @} + */ + +/** @addtogroup I2C_Exported_Functions_Group2 Input and Output operation functions + * @{ + */ +/* IO operation functions ****************************************************/ +/******* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Trials, + uint32_t Timeout); + +/******* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size); + +HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c); +HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c); +HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress); + +/******* Non-Blocking mode: DMA */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size); + +HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t XferOptions); +/** + * @} + */ + +/** @addtogroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks + * @{ + */ +/******* I2C IRQHandler and Callbacks used in non blocking modes (Interrupt and DMA) */ +void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c); +void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode); +void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c); +/** + * @} + */ + +/** @addtogroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions + * @{ + */ +/* Peripheral State, Mode and Error functions *********************************/ +HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c); +HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c); +uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c); + +/** + * @} + */ + +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup I2C_Private_Constants I2C Private Constants + * @{ + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup I2C_Private_Macro I2C Private Macros + * @{ + */ + +#define IS_I2C_ADDRESSING_MODE(MODE) (((MODE) == I2C_ADDRESSINGMODE_7BIT) || \ + ((MODE) == I2C_ADDRESSINGMODE_10BIT)) + +#define IS_I2C_DUAL_ADDRESS(ADDRESS) (((ADDRESS) == I2C_DUALADDRESS_DISABLE) || \ + ((ADDRESS) == I2C_DUALADDRESS_ENABLE)) + +#define IS_I2C_OWN_ADDRESS2_MASK(MASK) (((MASK) == I2C_OA2_NOMASK) || \ + ((MASK) == I2C_OA2_MASK01) || \ + ((MASK) == I2C_OA2_MASK02) || \ + ((MASK) == I2C_OA2_MASK03) || \ + ((MASK) == I2C_OA2_MASK04) || \ + ((MASK) == I2C_OA2_MASK05) || \ + ((MASK) == I2C_OA2_MASK06) || \ + ((MASK) == I2C_OA2_MASK07)) + +#define IS_I2C_GENERAL_CALL(CALL) (((CALL) == I2C_GENERALCALL_DISABLE) || \ + ((CALL) == I2C_GENERALCALL_ENABLE)) + +#define IS_I2C_NO_STRETCH(STRETCH) (((STRETCH) == I2C_NOSTRETCH_DISABLE) || \ + ((STRETCH) == I2C_NOSTRETCH_ENABLE)) + +#define IS_I2C_MEMADD_SIZE(SIZE) (((SIZE) == I2C_MEMADD_SIZE_8BIT) || \ + ((SIZE) == I2C_MEMADD_SIZE_16BIT)) + +#define IS_TRANSFER_MODE(MODE) (((MODE) == I2C_RELOAD_MODE) || \ + ((MODE) == I2C_AUTOEND_MODE) || \ + ((MODE) == I2C_SOFTEND_MODE)) + +#define IS_TRANSFER_REQUEST(REQUEST) (((REQUEST) == I2C_GENERATE_STOP) || \ + ((REQUEST) == I2C_GENERATE_START_READ) || \ + ((REQUEST) == I2C_GENERATE_START_WRITE) || \ + ((REQUEST) == I2C_NO_STARTSTOP)) + +#define IS_I2C_TRANSFER_OPTIONS_REQUEST(REQUEST) (((REQUEST) == I2C_FIRST_FRAME) || \ + ((REQUEST) == I2C_FIRST_AND_NEXT_FRAME) || \ + ((REQUEST) == I2C_NEXT_FRAME) || \ + ((REQUEST) == I2C_FIRST_AND_LAST_FRAME) || \ + ((REQUEST) == I2C_LAST_FRAME) || \ + ((REQUEST) == I2C_LAST_FRAME_NO_STOP) || \ + IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST)) + +#define IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST) (((REQUEST) == I2C_OTHER_FRAME) || \ + ((REQUEST) == I2C_OTHER_AND_LAST_FRAME)) + +#define I2C_RESET_CR2(__HANDLE__) ((__HANDLE__)->Instance->CR2 &= \ + (uint32_t)~((uint32_t)(I2C_CR2_SADD | I2C_CR2_HEAD10R | \ + I2C_CR2_NBYTES | I2C_CR2_RELOAD | \ + I2C_CR2_RD_WRN))) + +#define I2C_GET_ADDR_MATCH(__HANDLE__) ((uint16_t)(((__HANDLE__)->Instance->ISR & I2C_ISR_ADDCODE) \ + >> 16U)) +#define I2C_GET_DIR(__HANDLE__) ((uint8_t)(((__HANDLE__)->Instance->ISR & I2C_ISR_DIR) \ + >> 16U)) +#define I2C_GET_STOP_MODE(__HANDLE__) ((__HANDLE__)->Instance->CR2 & I2C_CR2_AUTOEND) +#define I2C_GET_OWN_ADDRESS1(__HANDLE__) ((uint16_t)((__HANDLE__)->Instance->OAR1 & I2C_OAR1_OA1)) +#define I2C_GET_OWN_ADDRESS2(__HANDLE__) ((uint16_t)((__HANDLE__)->Instance->OAR2 & I2C_OAR2_OA2)) + +#define IS_I2C_OWN_ADDRESS1(ADDRESS1) ((ADDRESS1) <= 0x000003FFU) +#define IS_I2C_OWN_ADDRESS2(ADDRESS2) ((ADDRESS2) <= (uint16_t)0x00FFU) + +#define I2C_MEM_ADD_MSB(__ADDRESS__) ((uint8_t)((uint16_t)(((uint16_t)((__ADDRESS__) & \ + (uint16_t)(0xFF00U))) >> 8U))) +#define I2C_MEM_ADD_LSB(__ADDRESS__) ((uint8_t)((uint16_t)((__ADDRESS__) & (uint16_t)(0x00FFU)))) + +#define I2C_GENERATE_START(__ADDMODE__,__ADDRESS__) (((__ADDMODE__) == I2C_ADDRESSINGMODE_7BIT) ? \ + (uint32_t)((((uint32_t)(__ADDRESS__) & (I2C_CR2_SADD)) | \ + (I2C_CR2_START) | (I2C_CR2_AUTOEND)) & \ + (~I2C_CR2_RD_WRN)) : \ + (uint32_t)((((uint32_t)(__ADDRESS__) & (I2C_CR2_SADD)) | \ + (I2C_CR2_ADD10) | (I2C_CR2_START) | \ + (I2C_CR2_AUTOEND)) & (~I2C_CR2_RD_WRN))) + +#define I2C_CHECK_FLAG(__ISR__, __FLAG__) ((((__ISR__) & ((__FLAG__) & I2C_FLAG_MASK)) == \ + ((__FLAG__) & I2C_FLAG_MASK)) ? SET : RESET) +#define I2C_CHECK_IT_SOURCE(__CR1__, __IT__) ((((__CR1__) & (__IT__)) == (__IT__)) ? SET : RESET) +/** + * @} + */ + +/* Private Functions ---------------------------------------------------------*/ +/** @defgroup I2C_Private_Functions I2C Private Functions + * @{ + */ +/* Private functions are defined in stm32f3xx_hal_i2c.c file */ +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + + +#endif /* STM32F3xx_HAL_I2C_H */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h new file mode 100644 index 0000000..262f481 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h @@ -0,0 +1,177 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_i2c_ex.h + * @author MCD Application Team + * @brief Header file of I2C HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 STM32F3xx_HAL_I2C_EX_H +#define STM32F3xx_HAL_I2C_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup I2CEx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup I2CEx_Exported_Constants I2C Extended Exported Constants + * @{ + */ + +/** @defgroup I2CEx_Analog_Filter I2C Extended Analog Filter + * @{ + */ +#define I2C_ANALOGFILTER_ENABLE 0x00000000U +#define I2C_ANALOGFILTER_DISABLE I2C_CR1_ANFOFF +/** + * @} + */ + +/** @defgroup I2CEx_FastModePlus I2C Extended Fast Mode Plus + * @{ + */ +#define I2C_FMP_NOT_SUPPORTED 0xAAAA0000U /*!< Fast Mode Plus not supported */ +#define I2C_FASTMODEPLUS_PB6 SYSCFG_CFGR1_I2C_PB6_FMP /*!< Enable Fast Mode Plus on PB6 */ +#define I2C_FASTMODEPLUS_PB7 SYSCFG_CFGR1_I2C_PB7_FMP /*!< Enable Fast Mode Plus on PB7 */ +#define I2C_FASTMODEPLUS_PB8 SYSCFG_CFGR1_I2C_PB8_FMP /*!< Enable Fast Mode Plus on PB8 */ +#define I2C_FASTMODEPLUS_PB9 SYSCFG_CFGR1_I2C_PB9_FMP /*!< Enable Fast Mode Plus on PB9 */ +#define I2C_FASTMODEPLUS_I2C1 SYSCFG_CFGR1_I2C1_FMP /*!< Enable Fast Mode Plus on I2C1 pins */ +#if defined(SYSCFG_CFGR1_I2C2_FMP) +#define I2C_FASTMODEPLUS_I2C2 SYSCFG_CFGR1_I2C2_FMP /*!< Enable Fast Mode Plus on I2C2 pins */ +#else +#define I2C_FASTMODEPLUS_I2C2 (uint32_t)(0x00000200U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus I2C2 not supported */ +#endif /* SYSCFG_CFGR1_I2C2_FMP */ +#if defined(SYSCFG_CFGR1_I2C3_FMP) +#define I2C_FASTMODEPLUS_I2C3 SYSCFG_CFGR1_I2C3_FMP /*!< Enable Fast Mode Plus on I2C3 pins */ +#else +#define I2C_FASTMODEPLUS_I2C3 (uint32_t)(0x00000400U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus I2C3 not supported */ +#endif /* SYSCFG_CFGR1_I2C3_FMP */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup I2CEx_Exported_Macros I2C Extended Exported Macros + * @{ + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup I2CEx_Exported_Functions I2C Extended Exported Functions + * @{ + */ + +/** @addtogroup I2CEx_Exported_Functions_Group1 Filter Mode Functions + * @{ + */ +/* Peripheral Control functions ************************************************/ +HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter); +HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter); +/** + * @} + */ + +/** @addtogroup I2CEx_Exported_Functions_Group2 WakeUp Mode Functions + * @{ + */ +HAL_StatusTypeDef HAL_I2CEx_EnableWakeUp(I2C_HandleTypeDef *hi2c); +HAL_StatusTypeDef HAL_I2CEx_DisableWakeUp(I2C_HandleTypeDef *hi2c); +/** + * @} + */ + +/** @addtogroup I2CEx_Exported_Functions_Group3 Fast Mode Plus Functions + * @{ + */ +void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus); +void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus); +/** + * @} + */ + +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup I2CEx_Private_Constants I2C Extended Private Constants + * @{ + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup I2CEx_Private_Macro I2C Extended Private Macros + * @{ + */ +#define IS_I2C_ANALOG_FILTER(FILTER) (((FILTER) == I2C_ANALOGFILTER_ENABLE) || \ + ((FILTER) == I2C_ANALOGFILTER_DISABLE)) + +#define IS_I2C_DIGITAL_FILTER(FILTER) ((FILTER) <= 0x0000000FU) + +#define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FMP_NOT_SUPPORTED) != I2C_FMP_NOT_SUPPORTED) && \ + ((((__CONFIG__) & (I2C_FASTMODEPLUS_PB6)) == I2C_FASTMODEPLUS_PB6) || \ + (((__CONFIG__) & (I2C_FASTMODEPLUS_PB7)) == I2C_FASTMODEPLUS_PB7) || \ + (((__CONFIG__) & (I2C_FASTMODEPLUS_PB8)) == I2C_FASTMODEPLUS_PB8) || \ + (((__CONFIG__) & (I2C_FASTMODEPLUS_PB9)) == I2C_FASTMODEPLUS_PB9) || \ + (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C1)) == I2C_FASTMODEPLUS_I2C1) || \ + (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C2)) == I2C_FASTMODEPLUS_I2C2) || \ + (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C3)) == I2C_FASTMODEPLUS_I2C3))) +/** + * @} + */ + +/* Private Functions ---------------------------------------------------------*/ +/** @defgroup I2CEx_Private_Functions I2C Extended Private Functions + * @{ + */ +/* Private functions are defined in stm32f3xx_hal_i2c_ex.c file */ +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32F3xx_HAL_I2C_EX_H */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h new file mode 100644 index 0000000..4eef2a8 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h @@ -0,0 +1,216 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_pwr.h + * @author MCD Application Team + * @brief Header file of PWR HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_PWR_H +#define __STM32F3xx_HAL_PWR_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup PWR PWR + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup PWR_Exported_Constants PWR Exported Constants + * @{ + */ + +/** @defgroup PWR_WakeUp_Pins PWR WakeUp Pins + * @{ + */ + +#define PWR_WAKEUP_PIN1 ((uint32_t)PWR_CSR_EWUP1) /*!< Wakeup pin 1U */ +#define PWR_WAKEUP_PIN2 ((uint32_t)PWR_CSR_EWUP2) /*!< Wakeup pin 2U */ +#define PWR_WAKEUP_PIN3 ((uint32_t)PWR_CSR_EWUP3) /*!< Wakeup pin 3U */ +/** + * @} + */ + +/** @defgroup PWR_Regulator_state_in_STOP_mode PWR Regulator state in STOP mode + * @{ + */ +#define PWR_MAINREGULATOR_ON (0x00000000U) /*!< Voltage regulator on during STOP mode */ +#define PWR_LOWPOWERREGULATOR_ON PWR_CR_LPDS /*!< Voltage regulator in low-power mode during STOP mode */ +/** + * @} + */ + +/** @defgroup PWR_SLEEP_mode_entry PWR SLEEP mode entry + * @{ + */ +#define PWR_SLEEPENTRY_WFI ((uint8_t)0x01U) /*!< Wait For Interruption instruction to enter SLEEP mode */ +#define PWR_SLEEPENTRY_WFE ((uint8_t)0x02U) /*!< Wait For Event instruction to enter SLEEP mode */ +/** + * @} + */ + +/** @defgroup PWR_STOP_mode_entry PWR STOP mode entry + * @{ + */ +#define PWR_STOPENTRY_WFI ((uint8_t)0x01U) /*!< Wait For Interruption instruction to enter STOP mode */ +#define PWR_STOPENTRY_WFE ((uint8_t)0x02U) /*!< Wait For Event instruction to enter STOP mode */ +/** + * @} + */ + +/** @defgroup PWR_Flag PWR Flag + * @{ + */ +#define PWR_FLAG_WU PWR_CSR_WUF /*!< Wakeup event from wakeup pin or RTC alarm */ +#define PWR_FLAG_SB PWR_CSR_SBF /*!< Standby flag */ +#define PWR_FLAG_PVDO PWR_CSR_PVDO /*!< Power Voltage Detector output flag */ +#define PWR_FLAG_VREFINTRDY PWR_CSR_VREFINTRDYF /*!< VREFINT reference voltage ready */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup PWR_Exported_Macro PWR Exported Macro + * @{ + */ + +/** @brief Check PWR flag is set or not. + * @param __FLAG__ specifies the flag to check. + * This parameter can be one of the following values: + * @arg PWR_FLAG_WU: Wake Up flag. This flag indicates that a wakeup event + * was received from the WKUP pin or from the RTC alarm (Alarm A + * or Alarm B), RTC Tamper event, RTC TimeStamp event or RTC Wakeup. + * An additional wakeup event is detected if the WKUP pin is enabled + * (by setting the EWUP bit) when the WKUP pin level is already high. + * @arg PWR_FLAG_SB: StandBy flag. This flag indicates that the system was + * resumed from StandBy mode. + * @arg PWR_FLAG_PVDO: PVD Output. This flag is valid only if PVD is enabled + * by the HAL_PWR_EnablePVD() function. The PVD is stopped by Standby mode + * For this reason, this bit is equal to 0 after Standby or reset + * until the PVDE bit is set. + * @arg PWR_FLAG_VREFINTRDY: This flag indicates that the internal reference + * voltage VREFINT is ready. + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_PWR_GET_FLAG(__FLAG__) ((PWR->CSR & (__FLAG__)) == (__FLAG__)) + +/** @brief Clear the PWR's pending flags. + * @param __FLAG__ specifies the flag to clear. + * This parameter can be one of the following values: + * @arg PWR_FLAG_WU: Wake Up flag + * @arg PWR_FLAG_SB: StandBy flag + */ +#define __HAL_PWR_CLEAR_FLAG(__FLAG__) (PWR->CR |= (__FLAG__) << 2U) + +/** + * @} + */ + +/* Private macros --------------------------------------------------------*/ +/** @addtogroup PWR_Private_Macros PWR Private Macros + * @{ + */ + +#define IS_PWR_WAKEUP_PIN(PIN) (((PIN) == PWR_WAKEUP_PIN1) || \ + ((PIN) == PWR_WAKEUP_PIN2) || \ + ((PIN) == PWR_WAKEUP_PIN3)) + +#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 "stm32f3xx_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); + +/** + * @} + */ + +/** @addtogroup PWR_Exported_Functions_Group2 Peripheral Control functions + * @{ + */ + +/* Peripheral Control functions **********************************************/ +void HAL_PWR_EnableBkUpAccess(void); +void HAL_PWR_DisableBkUpAccess(void); + +/* WakeUp pins configuration functions ****************************************/ +void HAL_PWR_EnableWakeUpPin(uint32_t WakeUpPinx); +void HAL_PWR_DisableWakeUpPin(uint32_t WakeUpPinx); + +/* Low Power modes configuration functions ************************************/ +void HAL_PWR_EnterSTOPMode(uint32_t Regulator, uint8_t STOPEntry); +void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry); +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); +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + + +#endif /* __STM32F3xx_HAL_PWR_H */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h new file mode 100644 index 0000000..715abc4 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h @@ -0,0 +1,319 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_pwr_ex.h + * @author MCD Application Team + * @brief Header file of PWR HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_PWR_EX_H +#define __STM32F3xx_HAL_PWR_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup PWREx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup PWREx_Exported_Types PWR Extended Exported Types + * @{ + */ +#if defined(STM32F302xE) || defined(STM32F303xE) || \ + defined(STM32F302xC) || defined(STM32F303xC) || \ + defined(STM32F303x8) || defined(STM32F334x8) || \ + defined(STM32F301x8) || defined(STM32F302x8) || \ + defined(STM32F373xC) +/** + * @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 PWREx_PVD_detection_level */ + + uint32_t Mode; /*!< Mode: Specifies the operating mode for the selected pins. + This parameter can be a value of @ref PWREx_PVD_Mode */ +}PWR_PVDTypeDef; +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F303x8 || STM32F334x8 || */ + /* STM32F301x8 || STM32F302x8 || */ + /* STM32F373xC */ + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup PWREx_Exported_Constants PWR Extended Exported Constants + * @{ + */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || \ + defined(STM32F302xC) || defined(STM32F303xC) || \ + defined(STM32F303x8) || defined(STM32F334x8) || \ + defined(STM32F301x8) || defined(STM32F302x8) || \ + defined(STM32F373xC) + +/** @defgroup PWREx_PVD_detection_level PWR Extended PVD detection level + * @{ + */ +#define PWR_PVDLEVEL_0 PWR_CR_PLS_LEV0 /*!< PVD threshold around 2.2 V */ +#define PWR_PVDLEVEL_1 PWR_CR_PLS_LEV1 /*!< PVD threshold around 2.3 V */ +#define PWR_PVDLEVEL_2 PWR_CR_PLS_LEV2 /*!< PVD threshold around 2.4 V */ +#define PWR_PVDLEVEL_3 PWR_CR_PLS_LEV3 /*!< PVD threshold around 2.5 V */ +#define PWR_PVDLEVEL_4 PWR_CR_PLS_LEV4 /*!< PVD threshold around 2.6 V */ +#define PWR_PVDLEVEL_5 PWR_CR_PLS_LEV5 /*!< PVD threshold around 2.7 V */ +#define PWR_PVDLEVEL_6 PWR_CR_PLS_LEV6 /*!< PVD threshold around 2.8 V */ +#define PWR_PVDLEVEL_7 PWR_CR_PLS_LEV7 /*!< PVD threshold around 2.9 V */ +/** + * @} + */ + +/** @defgroup PWREx_PVD_Mode PWR Extended PVD Mode + * @{ + */ +#define PWR_PVD_MODE_NORMAL (0x00000000U) /*!< Basic mode is used */ +#define PWR_PVD_MODE_IT_RISING (0x00010001U) /*!< External Interrupt Mode with Rising edge trigger detection */ +#define PWR_PVD_MODE_IT_FALLING (0x00010002U) /*!< External Interrupt Mode with Falling edge trigger detection */ +#define PWR_PVD_MODE_IT_RISING_FALLING (0x00010003U) /*!< External Interrupt Mode with Rising/Falling edge trigger detection */ +#define PWR_PVD_MODE_EVENT_RISING (0x00020001U) /*!< Event Mode with Rising edge trigger detection */ +#define PWR_PVD_MODE_EVENT_FALLING (0x00020002U) /*!< Event Mode with Falling edge trigger detection */ +#define PWR_PVD_MODE_EVENT_RISING_FALLING (0x00020003U) /*!< Event Mode with Rising/Falling edge trigger detection */ +/** + * @} + */ + +#define PWR_EXTI_LINE_PVD EXTI_IMR_MR16 /*!< External interrupt line 16 Connected to the PVD EXTI Line */ + +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F303x8 || STM32F334x8 || */ + /* STM32F301x8 || STM32F302x8 || */ + /* STM32F373xC */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +/** @defgroup PWREx_SDADC_ANALOGx PWR Extended SDADC ANALOGx + * @{ + */ +#define PWR_SDADC_ANALOG1 ((uint32_t)PWR_CR_ENSD1) /*!< Enable SDADC1 */ +#define PWR_SDADC_ANALOG2 ((uint32_t)PWR_CR_ENSD2) /*!< Enable SDADC2 */ +#define PWR_SDADC_ANALOG3 ((uint32_t)PWR_CR_ENSD3) /*!< Enable SDADC3 */ +/** + * @} + */ +#endif /* STM32F373xC || STM32F378xx */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup PWREx_Exported_Macros PWR Extended Exported Macros + * @{ + */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || \ + defined(STM32F302xC) || defined(STM32F303xC) || \ + defined(STM32F303x8) || defined(STM32F334x8) || \ + defined(STM32F301x8) || defined(STM32F302x8) || \ + defined(STM32F373xC) + +/** + * @brief Enable interrupt on PVD Exti Line 16. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_IT() (EXTI->IMR |= (PWR_EXTI_LINE_PVD)) + +/** + * @brief Disable interrupt on PVD Exti Line 16. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_IT() (EXTI->IMR &= ~(PWR_EXTI_LINE_PVD)) + +/** + * @brief Generate a Software interrupt on selected EXTI line. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_GENERATE_SWIT() (EXTI->SWIER |= (PWR_EXTI_LINE_PVD)) + +/** + * @brief Enable event on PVD Exti Line 16. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_EVENT() (EXTI->EMR |= (PWR_EXTI_LINE_PVD)) + +/** + * @brief Disable event on PVD Exti Line 16. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~(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->RTSR, 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->FTSR, PWR_EXTI_LINE_PVD) + +/** + * @brief Disable the PVD Extended Interrupt Rising & Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_RISING_FALLING_EDGE() __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE();__HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE(); + +/** + * @brief PVD EXTI line configuration: set falling edge trigger. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE() EXTI->FTSR |= (PWR_EXTI_LINE_PVD) + +/** + * @brief PVD EXTI line configuration: set rising edge trigger. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE() EXTI->RTSR |= (PWR_EXTI_LINE_PVD) + +/** + * @brief Enable the PVD Extended Interrupt Rising & Falling Trigger. + * @retval None + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_RISING_FALLING_EDGE() __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE();__HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE(); + +/** + * @brief Check whether the specified PVD EXTI interrupt flag is set or not. + * @retval EXTI PVD Line Status. + */ +#define __HAL_PWR_PVD_EXTI_GET_FLAG() (EXTI->PR & (PWR_EXTI_LINE_PVD)) + +/** + * @brief Clear the PVD EXTI flag. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_CLEAR_FLAG() (EXTI->PR = (PWR_EXTI_LINE_PVD)) + +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F303x8 || STM32F334x8 || */ + /* STM32F301x8 || STM32F302x8 || */ + /* STM32F373xC */ + +/** + * @} + */ + +/* Private macros --------------------------------------------------------*/ +/** @addtogroup PWREx_Private_Macros PWR Extended Private Macros + * @{ + */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || \ + defined(STM32F302xC) || defined(STM32F303xC) || \ + defined(STM32F303x8) || defined(STM32F334x8) || \ + defined(STM32F301x8) || defined(STM32F302x8) || \ + defined(STM32F373xC) +#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_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) || \ + ((MODE) == PWR_PVD_MODE_NORMAL)) +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F303x8 || STM32F334x8 || */ + /* STM32F301x8 || STM32F302x8 || */ + /* STM32F373xC */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +#define IS_PWR_SDADC_ANALOG(SDADC) (((SDADC) == PWR_SDADC_ANALOG1) || \ + ((SDADC) == PWR_SDADC_ANALOG2) || \ + ((SDADC) == PWR_SDADC_ANALOG3)) +#endif /* STM32F373xC || STM32F378xx */ + + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup PWREx_Exported_Functions PWR Extended Exported Functions + * @{ + */ + +/** @addtogroup PWREx_Exported_Functions_Group1 Peripheral Extended Control Functions + * @{ + */ +/* Peripheral Extended control functions **************************************/ +#if defined(STM32F302xE) || defined(STM32F303xE) || \ + defined(STM32F302xC) || defined(STM32F303xC) || \ + defined(STM32F303x8) || defined(STM32F334x8) || \ + defined(STM32F301x8) || defined(STM32F302x8) || \ + defined(STM32F373xC) +void HAL_PWR_ConfigPVD(PWR_PVDTypeDef *sConfigPVD); +void HAL_PWR_EnablePVD(void); +void HAL_PWR_DisablePVD(void); +void HAL_PWR_PVD_IRQHandler(void); +void HAL_PWR_PVDCallback(void); +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F303x8 || STM32F334x8 || */ + /* STM32F301x8 || STM32F302x8 || */ + /* STM32F373xC */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +void HAL_PWREx_EnableSDADC(uint32_t Analogx); +void HAL_PWREx_DisableSDADC(uint32_t Analogx); +#endif /* STM32F373xC || STM32F378xx */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_HAL_PWR_EX_H */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h new file mode 100644 index 0000000..f083587 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h @@ -0,0 +1,1737 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_rcc.h + * @author MCD Application Team + * @brief Header file of RCC HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_RCC_H +#define __STM32F3xx_HAL_RCC_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup RCC + * @{ + */ + +/** @addtogroup RCC_Private_Constants + * @{ + */ + +/** @defgroup RCC_Timeout RCC Timeout + * @{ + */ + +/* Disable Backup domain write protection state change timeout */ +#define RCC_DBP_TIMEOUT_VALUE (100U) /* 100 ms */ +/* LSE state change timeout */ +#define RCC_LSE_TIMEOUT_VALUE LSE_STARTUP_TIMEOUT +#define CLOCKSWITCH_TIMEOUT_VALUE (5000U) /* 5 s */ +#define HSE_TIMEOUT_VALUE HSE_STARTUP_TIMEOUT +#define HSI_TIMEOUT_VALUE (2U) /* 2 ms (minimum Tick + 1U) */ +#define LSI_TIMEOUT_VALUE (2U) /* 2 ms (minimum Tick + 1U) */ +#define PLL_TIMEOUT_VALUE (2U) /* 2 ms (minimum Tick + 1U) */ +/** + * @} + */ + +/** @defgroup RCC_Register_Offset Register offsets + * @{ + */ +#define RCC_OFFSET (RCC_BASE - PERIPH_BASE) +#define RCC_CR_OFFSET 0x00 +#define RCC_CFGR_OFFSET 0x04 +#define RCC_CIR_OFFSET 0x08 +#define RCC_BDCR_OFFSET 0x20 +#define RCC_CSR_OFFSET 0x24 + +/** + * @} + */ + +/** @defgroup RCC_BitAddress_AliasRegion BitAddress AliasRegion + * @brief RCC registers bit address in the alias region + * @{ + */ +#define RCC_CR_OFFSET_BB (RCC_OFFSET + RCC_CR_OFFSET) +#define RCC_CFGR_OFFSET_BB (RCC_OFFSET + RCC_CFGR_OFFSET) +#define RCC_CIR_OFFSET_BB (RCC_OFFSET + RCC_CIR_OFFSET) +#define RCC_BDCR_OFFSET_BB (RCC_OFFSET + RCC_BDCR_OFFSET) +#define RCC_CSR_OFFSET_BB (RCC_OFFSET + RCC_CSR_OFFSET) + +/* --- CR Register ---*/ +/* Alias word address of HSION bit */ +#define RCC_HSION_BIT_NUMBER POSITION_VAL(RCC_CR_HSION) +#define RCC_CR_HSION_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CR_OFFSET_BB * 32U) + (RCC_HSION_BIT_NUMBER * 4U))) +/* Alias word address of HSEON bit */ +#define RCC_HSEON_BIT_NUMBER POSITION_VAL(RCC_CR_HSEON) +#define RCC_CR_HSEON_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CR_OFFSET_BB * 32U) + (RCC_HSEON_BIT_NUMBER * 4U))) +/* Alias word address of CSSON bit */ +#define RCC_CSSON_BIT_NUMBER POSITION_VAL(RCC_CR_CSSON) +#define RCC_CR_CSSON_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CR_OFFSET_BB * 32U) + (RCC_CSSON_BIT_NUMBER * 4U))) +/* Alias word address of PLLON bit */ +#define RCC_PLLON_BIT_NUMBER POSITION_VAL(RCC_CR_PLLON) +#define RCC_CR_PLLON_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CR_OFFSET_BB * 32U) + (RCC_PLLON_BIT_NUMBER * 4U))) + +/* --- CSR Register ---*/ +/* Alias word address of LSION bit */ +#define RCC_LSION_BIT_NUMBER POSITION_VAL(RCC_CSR_LSION) +#define RCC_CSR_LSION_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CSR_OFFSET_BB * 32U) + (RCC_LSION_BIT_NUMBER * 4U))) + +/* Alias word address of RMVF bit */ +#define RCC_RMVF_BIT_NUMBER POSITION_VAL(RCC_CSR_RMVF) +#define RCC_CSR_RMVF_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CSR_OFFSET_BB * 32U) + (RCC_RMVF_BIT_NUMBER * 4U))) + +/* --- BDCR Registers ---*/ +/* Alias word address of LSEON bit */ +#define RCC_LSEON_BIT_NUMBER POSITION_VAL(RCC_BDCR_LSEON) +#define RCC_BDCR_LSEON_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_BDCR_OFFSET_BB * 32U) + (RCC_LSEON_BIT_NUMBER * 4U))) + +/* Alias word address of LSEON bit */ +#define RCC_LSEBYP_BIT_NUMBER POSITION_VAL(RCC_BDCR_LSEBYP) +#define RCC_BDCR_LSEBYP_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_BDCR_OFFSET_BB * 32U) + (RCC_LSEBYP_BIT_NUMBER * 4U))) + +/* Alias word address of RTCEN bit */ +#define RCC_RTCEN_BIT_NUMBER POSITION_VAL(RCC_BDCR_RTCEN) +#define RCC_BDCR_RTCEN_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_BDCR_OFFSET_BB * 32U) + (RCC_RTCEN_BIT_NUMBER * 4U))) + +/* Alias word address of BDRST bit */ +#define RCC_BDRST_BIT_NUMBER POSITION_VAL(RCC_BDCR_BDRST) +#define RCC_BDCR_BDRST_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_BDCR_OFFSET_BB * 32U) + (RCC_BDRST_BIT_NUMBER * 4U))) + +/** + * @} + */ + +/* CR register byte 2 (Bits[23:16]) base address */ +#define RCC_CR_BYTE2_ADDRESS ((uint32_t)(RCC_BASE + RCC_CR_OFFSET + 0x02U)) + +/* CIR register byte 1 (Bits[15:8]) base address */ +#define RCC_CIR_BYTE1_ADDRESS ((uint32_t)(RCC_BASE + RCC_CIR_OFFSET + 0x01U)) + +/* CIR register byte 2 (Bits[23:16]) base address */ +#define RCC_CIR_BYTE2_ADDRESS ((uint32_t)(RCC_BASE + RCC_CIR_OFFSET + 0x02U)) + +/* Defines used for Flags */ +#define CR_REG_INDEX ((uint8_t)1U) +#define BDCR_REG_INDEX ((uint8_t)2U) +#define CSR_REG_INDEX ((uint8_t)3U) +#define CFGR_REG_INDEX ((uint8_t)4U) + +#define RCC_FLAG_MASK ((uint8_t)0x1FU) + +/** + * @} + */ + +/** @addtogroup RCC_Private_Macros + * @{ + */ +#define IS_RCC_PLLSOURCE(__SOURCE__) (((__SOURCE__) == RCC_PLLSOURCE_HSI) || \ + ((__SOURCE__) == RCC_PLLSOURCE_HSE)) +#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_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_CALIBRATION_VALUE(__VALUE__) ((__VALUE__) <= 0x1FU) +#define IS_RCC_LSI(__LSI__) (((__LSI__) == RCC_LSI_OFF) || ((__LSI__) == RCC_LSI_ON)) +#define IS_RCC_PLL(__PLL__) (((__PLL__) == RCC_PLL_NONE) || ((__PLL__) == RCC_PLL_OFF) || \ + ((__PLL__) == RCC_PLL_ON)) +#if defined(RCC_CFGR_PLLSRC_HSI_PREDIV) +#define IS_RCC_PREDIV(__PREDIV__) (((__PREDIV__) == RCC_PREDIV_DIV1) || ((__PREDIV__) == RCC_PREDIV_DIV2) || \ + ((__PREDIV__) == RCC_PREDIV_DIV3) || ((__PREDIV__) == RCC_PREDIV_DIV4) || \ + ((__PREDIV__) == RCC_PREDIV_DIV5) || ((__PREDIV__) == RCC_PREDIV_DIV6) || \ + ((__PREDIV__) == RCC_PREDIV_DIV7) || ((__PREDIV__) == RCC_PREDIV_DIV8) || \ + ((__PREDIV__) == RCC_PREDIV_DIV9) || ((__PREDIV__) == RCC_PREDIV_DIV10) || \ + ((__PREDIV__) == RCC_PREDIV_DIV11) || ((__PREDIV__) == RCC_PREDIV_DIV12) || \ + ((__PREDIV__) == RCC_PREDIV_DIV13) || ((__PREDIV__) == RCC_PREDIV_DIV14) || \ + ((__PREDIV__) == RCC_PREDIV_DIV15) || ((__PREDIV__) == RCC_PREDIV_DIV16)) +#else +#define IS_RCC_PLL_DIV(__DIV__) (((__DIV__) == RCC_PLL_DIV2) || \ + ((__DIV__) == RCC_PLL_DIV3) || ((__DIV__) == RCC_PLL_DIV4)) +#endif +#if defined(RCC_CFGR_PLLSRC_HSI_DIV2) +#define IS_RCC_HSE_PREDIV(DIV) (((DIV) == RCC_HSE_PREDIV_DIV1) || ((DIV) == RCC_HSE_PREDIV_DIV2) || \ + ((DIV) == RCC_HSE_PREDIV_DIV3) || ((DIV) == RCC_HSE_PREDIV_DIV4) || \ + ((DIV) == RCC_HSE_PREDIV_DIV5) || ((DIV) == RCC_HSE_PREDIV_DIV6) || \ + ((DIV) == RCC_HSE_PREDIV_DIV7) || ((DIV) == RCC_HSE_PREDIV_DIV8) || \ + ((DIV) == RCC_HSE_PREDIV_DIV9) || ((DIV) == RCC_HSE_PREDIV_DIV10) || \ + ((DIV) == RCC_HSE_PREDIV_DIV11) || ((DIV) == RCC_HSE_PREDIV_DIV12) || \ + ((DIV) == RCC_HSE_PREDIV_DIV13) || ((DIV) == RCC_HSE_PREDIV_DIV14) || \ + ((DIV) == RCC_HSE_PREDIV_DIV15) || ((DIV) == RCC_HSE_PREDIV_DIV16)) +#endif /* RCC_CFGR_PLLSRC_HSI_DIV2 */ + +#define IS_RCC_PLL_MUL(__MUL__) (((__MUL__) == RCC_PLL_MUL2) || ((__MUL__) == RCC_PLL_MUL3) || \ + ((__MUL__) == RCC_PLL_MUL4) || ((__MUL__) == RCC_PLL_MUL5) || \ + ((__MUL__) == RCC_PLL_MUL6) || ((__MUL__) == RCC_PLL_MUL7) || \ + ((__MUL__) == RCC_PLL_MUL8) || ((__MUL__) == RCC_PLL_MUL9) || \ + ((__MUL__) == RCC_PLL_MUL10) || ((__MUL__) == RCC_PLL_MUL11) || \ + ((__MUL__) == RCC_PLL_MUL12) || ((__MUL__) == RCC_PLL_MUL13) || \ + ((__MUL__) == RCC_PLL_MUL14) || ((__MUL__) == RCC_PLL_MUL15) || \ + ((__MUL__) == RCC_PLL_MUL16)) +#define IS_RCC_CLOCKTYPE(CLK) ((((CLK) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) || \ + (((CLK) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) || \ + (((CLK) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) || \ + (((CLK) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)) +#define IS_RCC_SYSCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_SYSCLKSOURCE_HSI) || \ + ((__SOURCE__) == RCC_SYSCLKSOURCE_HSE) || \ + ((__SOURCE__) == RCC_SYSCLKSOURCE_PLLCLK)) +#define IS_RCC_SYSCLKSOURCE_STATUS(__SOURCE__) (((__SOURCE__) == RCC_SYSCLKSOURCE_STATUS_HSI) || \ + ((__SOURCE__) == RCC_SYSCLKSOURCE_STATUS_HSE) || \ + ((__SOURCE__) == RCC_SYSCLKSOURCE_STATUS_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_MCO(__MCO__) ((__MCO__) == RCC_MCO) +#define IS_RCC_RTCCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_RTCCLKSOURCE_NO_CLK) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_LSI) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV32)) +#if defined(RCC_CFGR3_USART2SW) +#define IS_RCC_USART2CLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_USART2CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_USART2CLKSOURCE_SYSCLK) || \ + ((__SOURCE__) == RCC_USART2CLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_USART2CLKSOURCE_HSI)) +#endif /* RCC_CFGR3_USART2SW */ +#if defined(RCC_CFGR3_USART3SW) +#define IS_RCC_USART3CLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_USART3CLKSOURCE_PCLK1) || \ + ((__SOURCE__) == RCC_USART3CLKSOURCE_SYSCLK) || \ + ((__SOURCE__) == RCC_USART3CLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_USART3CLKSOURCE_HSI)) +#endif /* RCC_CFGR3_USART3SW */ +#define IS_RCC_I2C1CLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_I2C1CLKSOURCE_HSI) || \ + ((__SOURCE__) == RCC_I2C1CLKSOURCE_SYSCLK)) + +/** + * @} + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup RCC_Exported_Types RCC Exported Types + * @{ + */ + +/** + * @brief RCC PLL configuration structure definition + */ +typedef struct +{ + uint32_t PLLState; /*!< PLLState: The new state of the PLL. + This parameter can be a value of @ref RCC_PLL_Config */ + + uint32_t PLLSource; /*!< PLLSource: PLL entry clock source. + This parameter must be a value of @ref RCC_PLL_Clock_Source */ + + uint32_t PLLMUL; /*!< PLLMUL: Multiplication factor for PLL VCO input clock + This parameter must be a value of @ref RCC_PLL_Multiplication_Factor*/ + +#if defined(RCC_CFGR_PLLSRC_HSI_PREDIV) + uint32_t PREDIV; /*!< PREDIV: Predivision factor for PLL VCO input clock + This parameter must be a value of @ref RCC_PLL_Prediv_Factor */ + +#endif +} 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 */ + +#if defined(RCC_CFGR_PLLSRC_HSI_DIV2) + uint32_t HSEPredivValue; /*!< The HSE predivision factor value. + This parameter can be a value of @ref RCC_PLL_HSE_Prediv_Factor */ + +#endif /* RCC_CFGR_PLLSRC_HSI_DIV2 */ + 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 HSI calibration trimming value (default is RCC_HSICALIBRATION_DEFAULT). + This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x1FU */ + + uint32_t LSIState; /*!< The new state of the LSI. + This parameter can be a value of @ref RCC_LSI_Config */ + + RCC_PLLInitTypeDef PLL; /*!< 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 (SYSCLKS) used as system clock. + 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_PLL_Clock_Source PLL Clock Source + * @{ + */ + +#if defined(RCC_CFGR_PLLSRC_HSI_PREDIV) +#define RCC_PLLSOURCE_HSI RCC_CFGR_PLLSRC_HSI_PREDIV /*!< HSI clock selected as PLL entry clock source */ +#endif /* RCC_CFGR_PLLSRC_HSI_PREDIV */ +#if defined(RCC_CFGR_PLLSRC_HSI_DIV2) +#define RCC_PLLSOURCE_HSI RCC_CFGR_PLLSRC_HSI_DIV2 /*!< HSI clock divided by 2 selected as PLL entry clock source */ +#endif /* RCC_CFGR_PLLSRC_HSI_DIV2 */ +#define RCC_PLLSOURCE_HSE RCC_CFGR_PLLSRC_HSE_PREDIV /*!< HSE clock selected as PLL entry clock source */ + +/** + * @} + */ + +/** @defgroup RCC_Oscillator_Type Oscillator Type + * @{ + */ +#define RCC_OSCILLATORTYPE_NONE (0x00000000U) +#define RCC_OSCILLATORTYPE_HSE (0x00000001U) +#define RCC_OSCILLATORTYPE_HSI (0x00000002U) +#define RCC_OSCILLATORTYPE_LSE (0x00000004U) +#define RCC_OSCILLATORTYPE_LSI (0x00000008U) +/** + * @} + */ + +/** @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 ((uint32_t)(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 ((uint32_t)(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 (0x10U) /* 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_PLL_Config PLL Config + * @{ + */ +#define RCC_PLL_NONE (0x00000000U) /*!< PLL is not configured */ +#define RCC_PLL_OFF (0x00000001U) /*!< PLL deactivation */ +#define RCC_PLL_ON (0x00000002U) /*!< PLL activation */ + +/** + * @} + */ + +/** @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 selected as system clock */ +#define RCC_SYSCLKSOURCE_HSE RCC_CFGR_SW_HSE /*!< HSE selected as system clock */ +#define RCC_SYSCLKSOURCE_PLLCLK RCC_CFGR_SW_PLL /*!< PLL selected 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_NO_CLK RCC_BDCR_RTCSEL_NOCLOCK /*!< No clock */ +#define RCC_RTCCLKSOURCE_LSE RCC_BDCR_RTCSEL_LSE /*!< LSE oscillator clock used as RTC clock */ +#define RCC_RTCCLKSOURCE_LSI RCC_BDCR_RTCSEL_LSI /*!< LSI oscillator clock used as RTC clock */ +#define RCC_RTCCLKSOURCE_HSE_DIV32 RCC_BDCR_RTCSEL_HSE /*!< HSE oscillator clock divided by 32 used as RTC clock */ +/** + * @} + */ + +/** @defgroup RCC_PLL_Multiplication_Factor RCC PLL Multiplication Factor + * @{ + */ +#define RCC_PLL_MUL2 RCC_CFGR_PLLMUL2 +#define RCC_PLL_MUL3 RCC_CFGR_PLLMUL3 +#define RCC_PLL_MUL4 RCC_CFGR_PLLMUL4 +#define RCC_PLL_MUL5 RCC_CFGR_PLLMUL5 +#define RCC_PLL_MUL6 RCC_CFGR_PLLMUL6 +#define RCC_PLL_MUL7 RCC_CFGR_PLLMUL7 +#define RCC_PLL_MUL8 RCC_CFGR_PLLMUL8 +#define RCC_PLL_MUL9 RCC_CFGR_PLLMUL9 +#define RCC_PLL_MUL10 RCC_CFGR_PLLMUL10 +#define RCC_PLL_MUL11 RCC_CFGR_PLLMUL11 +#define RCC_PLL_MUL12 RCC_CFGR_PLLMUL12 +#define RCC_PLL_MUL13 RCC_CFGR_PLLMUL13 +#define RCC_PLL_MUL14 RCC_CFGR_PLLMUL14 +#define RCC_PLL_MUL15 RCC_CFGR_PLLMUL15 +#define RCC_PLL_MUL16 RCC_CFGR_PLLMUL16 + +/** + * @} + */ + +#if defined(RCC_CFGR_PLLSRC_HSI_PREDIV) +/** @defgroup RCC_PLL_Prediv_Factor RCC PLL Prediv Factor + * @{ + */ + +#define RCC_PREDIV_DIV1 RCC_CFGR2_PREDIV_DIV1 +#define RCC_PREDIV_DIV2 RCC_CFGR2_PREDIV_DIV2 +#define RCC_PREDIV_DIV3 RCC_CFGR2_PREDIV_DIV3 +#define RCC_PREDIV_DIV4 RCC_CFGR2_PREDIV_DIV4 +#define RCC_PREDIV_DIV5 RCC_CFGR2_PREDIV_DIV5 +#define RCC_PREDIV_DIV6 RCC_CFGR2_PREDIV_DIV6 +#define RCC_PREDIV_DIV7 RCC_CFGR2_PREDIV_DIV7 +#define RCC_PREDIV_DIV8 RCC_CFGR2_PREDIV_DIV8 +#define RCC_PREDIV_DIV9 RCC_CFGR2_PREDIV_DIV9 +#define RCC_PREDIV_DIV10 RCC_CFGR2_PREDIV_DIV10 +#define RCC_PREDIV_DIV11 RCC_CFGR2_PREDIV_DIV11 +#define RCC_PREDIV_DIV12 RCC_CFGR2_PREDIV_DIV12 +#define RCC_PREDIV_DIV13 RCC_CFGR2_PREDIV_DIV13 +#define RCC_PREDIV_DIV14 RCC_CFGR2_PREDIV_DIV14 +#define RCC_PREDIV_DIV15 RCC_CFGR2_PREDIV_DIV15 +#define RCC_PREDIV_DIV16 RCC_CFGR2_PREDIV_DIV16 + +/** + * @} + */ + +#endif +#if defined(RCC_CFGR_PLLSRC_HSI_DIV2) +/** @defgroup RCC_PLL_HSE_Prediv_Factor RCC PLL HSE Prediv Factor + * @{ + */ + +#define RCC_HSE_PREDIV_DIV1 RCC_CFGR2_PREDIV_DIV1 +#define RCC_HSE_PREDIV_DIV2 RCC_CFGR2_PREDIV_DIV2 +#define RCC_HSE_PREDIV_DIV3 RCC_CFGR2_PREDIV_DIV3 +#define RCC_HSE_PREDIV_DIV4 RCC_CFGR2_PREDIV_DIV4 +#define RCC_HSE_PREDIV_DIV5 RCC_CFGR2_PREDIV_DIV5 +#define RCC_HSE_PREDIV_DIV6 RCC_CFGR2_PREDIV_DIV6 +#define RCC_HSE_PREDIV_DIV7 RCC_CFGR2_PREDIV_DIV7 +#define RCC_HSE_PREDIV_DIV8 RCC_CFGR2_PREDIV_DIV8 +#define RCC_HSE_PREDIV_DIV9 RCC_CFGR2_PREDIV_DIV9 +#define RCC_HSE_PREDIV_DIV10 RCC_CFGR2_PREDIV_DIV10 +#define RCC_HSE_PREDIV_DIV11 RCC_CFGR2_PREDIV_DIV11 +#define RCC_HSE_PREDIV_DIV12 RCC_CFGR2_PREDIV_DIV12 +#define RCC_HSE_PREDIV_DIV13 RCC_CFGR2_PREDIV_DIV13 +#define RCC_HSE_PREDIV_DIV14 RCC_CFGR2_PREDIV_DIV14 +#define RCC_HSE_PREDIV_DIV15 RCC_CFGR2_PREDIV_DIV15 +#define RCC_HSE_PREDIV_DIV16 RCC_CFGR2_PREDIV_DIV16 + +/** + * @} + */ +#endif /* RCC_CFGR_PLLSRC_HSI_DIV2 */ + +#if defined(RCC_CFGR3_USART2SW) +/** @defgroup RCC_USART2_Clock_Source RCC USART2 Clock Source + * @{ + */ +#define RCC_USART2CLKSOURCE_PCLK1 RCC_CFGR3_USART2SW_PCLK +#define RCC_USART2CLKSOURCE_SYSCLK RCC_CFGR3_USART2SW_SYSCLK +#define RCC_USART2CLKSOURCE_LSE RCC_CFGR3_USART2SW_LSE +#define RCC_USART2CLKSOURCE_HSI RCC_CFGR3_USART2SW_HSI + +/** + * @} + */ +#endif /* RCC_CFGR3_USART2SW */ + +#if defined(RCC_CFGR3_USART3SW) +/** @defgroup RCC_USART3_Clock_Source RCC USART3 Clock Source + * @{ + */ +#define RCC_USART3CLKSOURCE_PCLK1 RCC_CFGR3_USART3SW_PCLK +#define RCC_USART3CLKSOURCE_SYSCLK RCC_CFGR3_USART3SW_SYSCLK +#define RCC_USART3CLKSOURCE_LSE RCC_CFGR3_USART3SW_LSE +#define RCC_USART3CLKSOURCE_HSI RCC_CFGR3_USART3SW_HSI + +/** + * @} + */ +#endif /* RCC_CFGR3_USART3SW */ + +/** @defgroup RCC_I2C1_Clock_Source RCC I2C1 Clock Source + * @{ + */ +#define RCC_I2C1CLKSOURCE_HSI RCC_CFGR3_I2C1SW_HSI +#define RCC_I2C1CLKSOURCE_SYSCLK RCC_CFGR3_I2C1SW_SYSCLK + +/** + * @} + */ +/** @defgroup RCC_MCO_Index MCO Index + * @{ + */ +#define RCC_MCO1 (0x00000000U) +#define RCC_MCO RCC_MCO1 /*!< MCO1 to be compliant with other families with 2 MCOs*/ + +/** + * @} + */ + +/** @defgroup RCC_Interrupt Interrupts + * @{ + */ +#define RCC_IT_LSIRDY ((uint8_t)RCC_CIR_LSIRDYF) /*!< LSI Ready Interrupt flag */ +#define RCC_IT_LSERDY ((uint8_t)RCC_CIR_LSERDYF) /*!< LSE Ready Interrupt flag */ +#define RCC_IT_HSIRDY ((uint8_t)RCC_CIR_HSIRDYF) /*!< HSI Ready Interrupt flag */ +#define RCC_IT_HSERDY ((uint8_t)RCC_CIR_HSERDYF) /*!< HSE Ready Interrupt flag */ +#define RCC_IT_PLLRDY ((uint8_t)RCC_CIR_PLLRDYF) /*!< PLL Ready Interrupt flag */ +#define RCC_IT_CSS ((uint8_t)RCC_CIR_CSSF) /*!< Clock Security System 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: CFGR register + * @{ + */ +/* Flags in the CR register */ +#define RCC_FLAG_HSIRDY ((uint8_t)((CR_REG_INDEX << 5U) | POSITION_VAL(RCC_CR_HSIRDY))) /*!< Internal High Speed clock ready flag */ +#define RCC_FLAG_HSERDY ((uint8_t)((CR_REG_INDEX << 5U) | POSITION_VAL(RCC_CR_HSERDY))) /*!< External High Speed clock ready flag */ +#define RCC_FLAG_PLLRDY ((uint8_t)((CR_REG_INDEX << 5U) | POSITION_VAL(RCC_CR_PLLRDY))) /*!< PLL clock ready flag */ + +/* Flags in the CSR register */ +#define RCC_FLAG_LSIRDY ((uint8_t)((CSR_REG_INDEX << 5U) | POSITION_VAL(RCC_CSR_LSIRDY))) /*!< Internal Low Speed oscillator Ready */ +#if defined(RCC_CSR_V18PWRRSTF) +#define RCC_FLAG_V18PWRRST ((uint8_t)((CSR_REG_INDEX << 5U) | POSITION_VAL(RCC_CSR_V18PWRRSTF))) +#endif +#define RCC_FLAG_OBLRST ((uint8_t)((CSR_REG_INDEX << 5U) | POSITION_VAL(RCC_CSR_OBLRSTF))) /*!< Options bytes loading reset flag */ +#define RCC_FLAG_PINRST ((uint8_t)((CSR_REG_INDEX << 5U) | POSITION_VAL(RCC_CSR_PINRSTF))) /*!< PIN reset flag */ +#define RCC_FLAG_PORRST ((uint8_t)((CSR_REG_INDEX << 5U) | POSITION_VAL(RCC_CSR_PORRSTF))) /*!< POR/PDR reset flag */ +#define RCC_FLAG_SFTRST ((uint8_t)((CSR_REG_INDEX << 5U) | POSITION_VAL(RCC_CSR_SFTRSTF))) /*!< Software Reset flag */ +#define RCC_FLAG_IWDGRST ((uint8_t)((CSR_REG_INDEX << 5U) | POSITION_VAL(RCC_CSR_IWDGRSTF))) /*!< Independent Watchdog reset flag */ +#define RCC_FLAG_WWDGRST ((uint8_t)((CSR_REG_INDEX << 5U) | POSITION_VAL(RCC_CSR_WWDGRSTF))) /*!< Window watchdog reset flag */ +#define RCC_FLAG_LPWRRST ((uint8_t)((CSR_REG_INDEX << 5U) | POSITION_VAL(RCC_CSR_LPWRRSTF))) /*!< Low-Power reset flag */ + +/* Flags in the BDCR register */ +#define RCC_FLAG_LSERDY ((uint8_t)((BDCR_REG_INDEX << 5U) | POSITION_VAL(RCC_BDCR_LSERDY))) /*!< External Low Speed oscillator Ready */ + +/* Flags in the CFGR register */ +#if defined(RCC_CFGR_MCOF) +#define RCC_FLAG_MCO ((uint8_t)((CFGR_REG_INDEX << 5U) | POSITION_VAL(RCC_CFGR_MCOF))) /*!< Microcontroller Clock Output Flag */ +#endif /* RCC_CFGR_MCOF */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/** @defgroup RCC_Exported_Macros RCC Exported Macros + * @{ + */ + +/** @defgroup RCC_AHB_Clock_Enable_Disable RCC AHB Clock Enable Disable + * @brief Enable or disable the AHB 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->AHBENR, RCC_AHBENR_GPIOAEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOAEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOB_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOBEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOBEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOCEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOCEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOD_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIODEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIODEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOF_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOFEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOFEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_CRC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_CRCEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_CRCEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_DMA1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_DMA1EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_DMA1EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_SRAM_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_SRAMEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_SRAMEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_FLITF_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_FLITFEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_FLITFEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_TSC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_TSCEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_TSCEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_GPIOA_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOAEN)) +#define __HAL_RCC_GPIOB_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOBEN)) +#define __HAL_RCC_GPIOC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOCEN)) +#define __HAL_RCC_GPIOD_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIODEN)) +#define __HAL_RCC_GPIOF_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOFEN)) +#define __HAL_RCC_CRC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_CRCEN)) +#define __HAL_RCC_DMA1_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_DMA1EN)) +#define __HAL_RCC_SRAM_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_SRAMEN)) +#define __HAL_RCC_FLITF_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_FLITFEN)) +#define __HAL_RCC_TSC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_TSCEN)) +/** + * @} + */ + +/** @defgroup RCC_APB1_Clock_Enable_Disable RCC APB1 Clock Enable Disable + * @brief Enable or disable the Low Speed APB (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->APB1ENR, RCC_APB1ENR_TIM2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_TIM6_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM6EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM6EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_WWDG_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_WWDGEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_WWDGEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_USART2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_USART2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_USART2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_USART3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_USART3EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_USART3EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_I2C1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C1EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C1EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_PWR_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_PWREN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_PWREN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_DAC1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_DAC1EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_DAC1EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_TIM2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM2EN)) +#define __HAL_RCC_TIM6_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM6EN)) +#define __HAL_RCC_WWDG_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_WWDGEN)) +#define __HAL_RCC_USART2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USART2EN)) +#define __HAL_RCC_USART3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USART3EN)) +#define __HAL_RCC_I2C1_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_I2C1EN)) +#define __HAL_RCC_PWR_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_PWREN)) +#define __HAL_RCC_DAC1_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_DAC1EN)) +/** + * @} + */ + +/** @defgroup RCC_APB2_Clock_Enable_Disable RCC APB2 Clock Enable Disable + * @brief Enable or disable the High Speed APB (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(0U) +#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(0U) +#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(0U) +#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(0U) +#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(0U) + +#define __HAL_RCC_SYSCFG_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SYSCFGEN)) +#define __HAL_RCC_TIM15_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM15EN)) +#define __HAL_RCC_TIM16_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM16EN)) +#define __HAL_RCC_TIM17_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM17EN)) +#define __HAL_RCC_USART1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_USART1EN)) +/** + * @} + */ + +/** @defgroup RCC_AHB_Peripheral_Clock_Enable_Disable_Status AHB Peripheral Clock Enable Disable Status + * @brief Get the enable or disable status of the AHB 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_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOAEN)) != RESET) +#define __HAL_RCC_GPIOB_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOBEN)) != RESET) +#define __HAL_RCC_GPIOC_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOCEN)) != RESET) +#define __HAL_RCC_GPIOD_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIODEN)) != RESET) +#define __HAL_RCC_GPIOF_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOFEN)) != RESET) +#define __HAL_RCC_CRC_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_CRCEN)) != RESET) +#define __HAL_RCC_DMA1_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA1EN)) != RESET) +#define __HAL_RCC_SRAM_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_SRAMEN)) != RESET) +#define __HAL_RCC_FLITF_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_FLITFEN)) != RESET) +#define __HAL_RCC_TSC_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_TSCEN)) != RESET) + +#define __HAL_RCC_GPIOA_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOAEN)) == RESET) +#define __HAL_RCC_GPIOB_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOBEN)) == RESET) +#define __HAL_RCC_GPIOC_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOCEN)) == RESET) +#define __HAL_RCC_GPIOD_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIODEN)) == RESET) +#define __HAL_RCC_GPIOF_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOFEN)) == RESET) +#define __HAL_RCC_CRC_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_CRCEN)) == RESET) +#define __HAL_RCC_DMA1_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA1EN)) == RESET) +#define __HAL_RCC_SRAM_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_SRAMEN)) == RESET) +#define __HAL_RCC_FLITF_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_FLITFEN)) == RESET) +#define __HAL_RCC_TSC_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_TSCEN)) == RESET) +/** + * @} + */ + +/** @defgroup RCC_APB1_Clock_Enable_Disable_Status APB1 Peripheral Clock Enable Disable Status + * @brief Get the enable or disable status of 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_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM2EN)) != RESET) +#define __HAL_RCC_TIM6_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM6EN)) != RESET) +#define __HAL_RCC_WWDG_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_WWDGEN)) != RESET) +#define __HAL_RCC_USART2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART2EN)) != RESET) +#define __HAL_RCC_USART3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART3EN)) != RESET) +#define __HAL_RCC_I2C1_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C1EN)) != RESET) +#define __HAL_RCC_PWR_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_PWREN)) != RESET) +#define __HAL_RCC_DAC1_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DAC1EN)) != RESET) + +#define __HAL_RCC_TIM2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM2EN)) == RESET) +#define __HAL_RCC_TIM6_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM6EN)) == RESET) +#define __HAL_RCC_WWDG_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_WWDGEN)) == RESET) +#define __HAL_RCC_USART2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART2EN)) == RESET) +#define __HAL_RCC_USART3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART3EN)) == RESET) +#define __HAL_RCC_I2C1_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C1EN)) == RESET) +#define __HAL_RCC_PWR_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_PWREN)) == RESET) +#define __HAL_RCC_DAC1_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DAC1EN)) == RESET) +/** + * @} + */ + +/** @defgroup RCC_APB2_Clock_Enable_Disable_Status APB2 Peripheral Clock Enable Disable Status + * @brief EGet the enable or disable status of 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_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SYSCFGEN)) != RESET) +#define __HAL_RCC_TIM15_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM15EN)) != RESET) +#define __HAL_RCC_TIM16_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM16EN)) != RESET) +#define __HAL_RCC_TIM17_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM17EN)) != RESET) +#define __HAL_RCC_USART1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_USART1EN)) != RESET) + +#define __HAL_RCC_SYSCFG_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SYSCFGEN)) == RESET) +#define __HAL_RCC_TIM15_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM15EN)) == RESET) +#define __HAL_RCC_TIM16_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM16EN)) == RESET) +#define __HAL_RCC_TIM17_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM17EN)) == RESET) +#define __HAL_RCC_USART1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_USART1EN)) == RESET) +/** + * @} + */ + +/** @defgroup RCC_AHB_Force_Release_Reset RCC AHB Force Release Reset + * @brief Force or release AHB peripheral reset. + * @{ + */ +#define __HAL_RCC_AHB_FORCE_RESET() (RCC->AHBRSTR = 0xFFFFFFFFU) +#define __HAL_RCC_GPIOA_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOARST)) +#define __HAL_RCC_GPIOB_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOBRST)) +#define __HAL_RCC_GPIOC_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOCRST)) +#define __HAL_RCC_GPIOD_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIODRST)) +#define __HAL_RCC_GPIOF_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOFRST)) +#define __HAL_RCC_TSC_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_TSCRST)) + +#define __HAL_RCC_AHB_RELEASE_RESET() (RCC->AHBRSTR = 0x00000000U) +#define __HAL_RCC_GPIOA_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOARST)) +#define __HAL_RCC_GPIOB_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOBRST)) +#define __HAL_RCC_GPIOC_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOCRST)) +#define __HAL_RCC_GPIOD_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIODRST)) +#define __HAL_RCC_GPIOF_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOFRST)) +#define __HAL_RCC_TSC_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_TSCRST)) +/** + * @} + */ + +/** @defgroup RCC_APB1_Force_Release_Reset RCC APB1 Force Release Reset + * @brief Force or release APB1 peripheral reset. + * @{ + */ +#define __HAL_RCC_APB1_FORCE_RESET() (RCC->APB1RSTR = 0xFFFFFFFFU) +#define __HAL_RCC_TIM2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM2RST)) +#define __HAL_RCC_TIM6_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM6RST)) +#define __HAL_RCC_WWDG_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_WWDGRST)) +#define __HAL_RCC_USART2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USART2RST)) +#define __HAL_RCC_USART3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USART3RST)) +#define __HAL_RCC_I2C1_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C1RST)) +#define __HAL_RCC_PWR_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_PWRRST)) +#define __HAL_RCC_DAC1_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_DAC1RST)) + +#define __HAL_RCC_APB1_RELEASE_RESET() (RCC->APB1RSTR = 0x00000000U) +#define __HAL_RCC_TIM2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM2RST)) +#define __HAL_RCC_TIM6_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM6RST)) +#define __HAL_RCC_WWDG_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_WWDGRST)) +#define __HAL_RCC_USART2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USART2RST)) +#define __HAL_RCC_USART3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USART3RST)) +#define __HAL_RCC_I2C1_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_I2C1RST)) +#define __HAL_RCC_PWR_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_PWRRST)) +#define __HAL_RCC_DAC1_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_DAC1RST)) +/** + * @} + */ + +/** @defgroup RCC_APB2_Force_Release_Reset RCC APB2 Force Release Reset + * @brief Force or release APB2 peripheral reset. + * @{ + */ +#define __HAL_RCC_APB2_FORCE_RESET() (RCC->APB2RSTR = 0xFFFFFFFFU) +#define __HAL_RCC_SYSCFG_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SYSCFGRST)) +#define __HAL_RCC_TIM15_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM15RST)) +#define __HAL_RCC_TIM16_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM16RST)) +#define __HAL_RCC_TIM17_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM17RST)) +#define __HAL_RCC_USART1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_USART1RST)) + +#define __HAL_RCC_APB2_RELEASE_RESET() (RCC->APB2RSTR = 0x00000000U) +#define __HAL_RCC_SYSCFG_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SYSCFGRST)) +#define __HAL_RCC_TIM15_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM15RST)) +#define __HAL_RCC_TIM16_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM16RST)) +#define __HAL_RCC_TIM17_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM17RST)) +#define __HAL_RCC_USART1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_USART1RST)) +/** + * @} + */ + +/** @defgroup RCC_HSI_Configuration HSI Configuration + * @{ + */ + +/** @brief Macros to enable or disable the Internal High Speed 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. + * @note When the HSI is stopped, HSIRDY flag goes low after 6 HSI oscillator + * clock cycles. + */ +#define __HAL_RCC_HSI_ENABLE() (*(__IO uint32_t *) RCC_CR_HSION_BB = ENABLE) +#define __HAL_RCC_HSI_DISABLE() (*(__IO uint32_t *) RCC_CR_HSION_BB = DISABLE) + +/** @brief Macro to adjust the Internal High Speed 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 0x1F. + */ +#define __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(_HSICALIBRATIONVALUE_) \ + (MODIFY_REG(RCC->CR, RCC_CR_HSITRIM, (uint32_t)(_HSICALIBRATIONVALUE_) << POSITION_VAL(RCC_CR_HSITRIM))) + +/** + * @} + */ + +/** @defgroup RCC_LSI_Configuration LSI Configuration + * @{ + */ + +/** @brief Macro to enable 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. + */ +#define __HAL_RCC_LSI_ENABLE() (*(__IO uint32_t *) RCC_CSR_LSION_BB = ENABLE) + +/** @brief Macro to disable the Internal Low Speed oscillator (LSI). + * @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. + */ +#define __HAL_RCC_LSI_DISABLE() (*(__IO uint32_t *) RCC_CSR_LSION_BB = DISABLE) + +/** + * @} + */ + +/** @defgroup RCC_HSE_Configuration HSE Configuration + * @{ + */ + +/** + * @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 + */ +#define __HAL_RCC_HSE_CONFIG(__STATE__) \ + do{ \ + if ((__STATE__) == RCC_HSE_ON) \ + { \ + SET_BIT(RCC->CR, RCC_CR_HSEON); \ + } \ + else if ((__STATE__) == RCC_HSE_OFF) \ + { \ + CLEAR_BIT(RCC->CR, RCC_CR_HSEON); \ + CLEAR_BIT(RCC->CR, RCC_CR_HSEBYP); \ + } \ + 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(0U) + +/** + * @} + */ + +/** @defgroup RCC_LSE_Configuration LSE Configuration + * @{ + */ + +/** + * @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. + * @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 + * @ref 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. + */ +#define __HAL_RCC_LSE_CONFIG(__STATE__) \ + do{ \ + if ((__STATE__) == RCC_LSE_ON) \ + { \ + SET_BIT(RCC->BDCR, RCC_BDCR_LSEON); \ + } \ + else if ((__STATE__) == RCC_LSE_OFF) \ + { \ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEON); \ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEBYP); \ + } \ + 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(0U) + +/** + * @} + */ + +/** @defgroup RCC_USARTx_Clock_Config RCC USARTx Clock Config + * @{ + */ + +/** @brief Macro to configure the USART1 clock (USART1CLK). + * @param __USART1CLKSOURCE__ specifies the USART1 clock source. + * This parameter can be one of the following values: + @if STM32F302xC + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F303xC + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F358xx + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F302xE + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F303xE + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F398xx + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F373xC + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F378xx + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F301x8 + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + @if STM32F302x8 + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + @if STM32F318xx + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + @if STM32F303x8 + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + @if STM32F334x8 + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + @if STM32F328xx + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + * @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_USART1_CONFIG(__USART1CLKSOURCE__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_USART1SW, (uint32_t)(__USART1CLKSOURCE__)) + +/** @brief Macro to get the USART1 clock source. + * @retval The clock source can be one of the following values: + @if STM32F302xC + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F303xC + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F358xx + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F302xE + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F303xE + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F398xx + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F373xC + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F378xx + * @arg @ref RCC_USART1CLKSOURCE_PCLK2 PCLK2 selected as USART1 clock + @endif + @if STM32F301x8 + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + @if STM32F302x8 + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + @if STM32F318xx + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + @if STM32F303x8 + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + @if STM32F334x8 + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + @if STM32F328xx + * @arg @ref RCC_USART1CLKSOURCE_PCLK1 PCLK1 selected as USART1 clock + @endif + * @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() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_USART1SW))) + +#if defined(RCC_CFGR3_USART2SW) +/** @brief Macro to configure the USART2 clock (USART2CLK). + * @param __USART2CLKSOURCE__ 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 + */ +#define __HAL_RCC_USART2_CONFIG(__USART2CLKSOURCE__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_USART2SW, (uint32_t)(__USART2CLKSOURCE__)) + +/** @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() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_USART2SW))) +#endif /* RCC_CFGR3_USART2SW */ + +#if defined(RCC_CFGR3_USART3SW) +/** @brief Macro to configure the USART3 clock (USART3CLK). + * @param __USART3CLKSOURCE__ 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 + */ +#define __HAL_RCC_USART3_CONFIG(__USART3CLKSOURCE__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_USART3SW, (uint32_t)(__USART3CLKSOURCE__)) + +/** @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() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_USART3SW))) +#endif /* RCC_CFGR3_USART2SW */ +/** + * @} + */ + +/** @defgroup RCC_I2Cx_Clock_Config RCC I2Cx Clock Config + * @{ + */ + +/** @brief Macro to configure the I2C1 clock (I2C1CLK). + * @param __I2C1CLKSOURCE__ specifies the I2C1 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2C1CLKSOURCE_HSI HSI selected as I2C1 clock + * @arg @ref RCC_I2C1CLKSOURCE_SYSCLK System Clock selected as I2C1 clock + */ +#define __HAL_RCC_I2C1_CONFIG(__I2C1CLKSOURCE__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_I2C1SW, (uint32_t)(__I2C1CLKSOURCE__)) + +/** @brief Macro to get the I2C1 clock source. + * @retval The clock source can be one of the following values: + * @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() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_I2C1SW))) +/** + * @} + */ + +/** @defgroup RCC_PLL_Configuration PLL Configuration + * @{ + */ + +/** @brief Macro to enable 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 is disabled by hardware when entering STOP and STANDBY modes. + */ +#define __HAL_RCC_PLL_ENABLE() (*(__IO uint32_t *) RCC_CR_PLLON_BB = ENABLE) + +/** @brief Macro to disable the main PLL. + * @note The main PLL can not be disabled if it is used as system clock source + */ +#define __HAL_RCC_PLL_DISABLE() (*(__IO uint32_t *) RCC_CR_PLLON_BB = DISABLE) + + +/** @brief Get oscillator clock selected as PLL input clock + * @retval The clock source used for PLL entry. The returned value can be one + * of the following: + * @arg @ref RCC_PLLSOURCE_HSI HSI oscillator clock selected as PLL input clock + * @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL input clock + */ +#define __HAL_RCC_GET_PLL_OSCSOURCE() ((uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLSRC))) + +/** + * @} + */ + +/** @defgroup RCC_Get_Clock_source Get Clock source + * @{ + */ + +/** + * @brief Macro to configure the system clock source. + * @param __SYSCLKSOURCE__ specifies the system clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_SYSCLKSOURCE_HSI HSI oscillator is used as system clock source. + * @arg @ref RCC_SYSCLKSOURCE_HSE HSE oscillator is used as system clock source. + * @arg @ref RCC_SYSCLKSOURCE_PLLCLK PLL output is used as system clock source. + */ +#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: + * @arg @ref RCC_SYSCLKSOURCE_STATUS_HSI HSI used as system clock + * @arg @ref RCC_SYSCLKSOURCE_STATUS_HSE HSE used as system clock + * @arg @ref RCC_SYSCLKSOURCE_STATUS_PLLCLK PLL used as system clock + */ +#define __HAL_RCC_GET_SYSCLK_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR,RCC_CFGR_SWS))) + +/** + * @} + */ + +/** @defgroup RCCEx_MCOx_Clock_Config RCC Extended MCOx Clock Config + * @{ + */ + +#if defined(RCC_CFGR_MCOPRE) +/** @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 No clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_SYSCLK System Clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_HSI HSI oscillator clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_HSE HSE selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSI LSI selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSE LSE selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_PLLCLK_DIV2 PLLCLK Divided by 2 selected as MCO clock + * @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 + * @arg @ref RCC_MCODIV_32 MCO clock source is divided by 32 + * @arg @ref RCC_MCODIV_64 MCO clock source is divided by 64 + * @arg @ref RCC_MCODIV_128 MCO clock source is divided by 128 + */ +#else +/** @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 No clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_SYSCLK System Clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_HSI HSI selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_HSE HSE selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSI LSI selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSE LSE selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_PLLCLK_DIV2 PLLCLK Divided by 2 selected as MCO clock + * @param __MCODIV__ specifies the MCO clock prescaler. + * This parameter can be one of the following values: + * @arg @ref RCC_MCODIV_1 No division applied on MCO clock source + */ +#endif +#if defined(RCC_CFGR_MCOPRE) +#define __HAL_RCC_MCO1_CONFIG(__MCOCLKSOURCE__, __MCODIV__) \ + MODIFY_REG(RCC->CFGR, (RCC_CFGR_MCO | RCC_CFGR_MCOPRE), ((__MCOCLKSOURCE__) | (__MCODIV__))) +#else + +#define __HAL_RCC_MCO1_CONFIG(__MCOCLKSOURCE__, __MCODIV__) \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_MCO, (__MCOCLKSOURCE__)) + +#endif + +/** + * @} + */ + + /** @defgroup RCC_RTC_Clock_Configuration RCC RTC Clock Configuration + * @{ + */ + +/** @brief Macro 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 @ref __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_NO_CLK 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 + * @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 LSI clock and HSE clock divided by 32 is used as RTC clock source, + * the RTC cannot be used in STOP and STANDBY modes. + * @note The system must always be configured so as to get a PCLK frequency greater than or + * equal to the RTCCLK frequency for a proper operation of the RTC. + */ +#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 clock source can be one of the following values: + * @arg @ref RCC_RTCCLKSOURCE_NO_CLK 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 + */ +#define __HAL_RCC_GET_RTC_SOURCE() (READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL)) + +/** @brief Macro to enable the the RTC clock. + * @note These macros must be used only after the RTC clock source was selected. + */ +#define __HAL_RCC_RTC_ENABLE() (*(__IO uint32_t *) RCC_BDCR_RTCEN_BB = ENABLE) + +/** @brief Macro to disable the the RTC clock. + * @note These macros must be used only after the RTC clock source was selected. + */ +#define __HAL_RCC_RTC_DISABLE() (*(__IO uint32_t *) RCC_BDCR_RTCEN_BB = DISABLE) + +/** @brief Macro to force the Backup domain reset. + * @note This function resets the RTC peripheral (including the backup registers) + * and the RTC clock source selection in RCC_BDCR register. + */ +#define __HAL_RCC_BACKUPRESET_FORCE() (*(__IO uint32_t *) RCC_BDCR_BDRST_BB = ENABLE) + +/** @brief Macros to release the Backup domain reset. + */ +#define __HAL_RCC_BACKUPRESET_RELEASE() (*(__IO uint32_t *) RCC_BDCR_BDRST_BB = DISABLE) + +/** + * @} + */ + +/** @defgroup RCC_Flags_Interrupts_Management Flags Interrupts Management + * @brief macros to manage the specified RCC Flags and interrupts. + * @{ + */ + +/** @brief Enable RCC interrupt. + * @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 + */ +#define __HAL_RCC_ENABLE_IT(__INTERRUPT__) (*(__IO uint8_t *) RCC_CIR_BYTE1_ADDRESS |= (__INTERRUPT__)) + +/** @brief Disable RCC interrupt. + * @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 + */ +#define __HAL_RCC_DISABLE_IT(__INTERRUPT__) (*(__IO uint8_t *) RCC_CIR_BYTE1_ADDRESS &= (uint8_t)(~(__INTERRUPT__))) + +/** @brief Clear the RCC's 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 Clock Security System interrupt + */ +#define __HAL_RCC_CLEAR_IT(__INTERRUPT__) (*(__IO uint8_t *) RCC_CIR_BYTE2_ADDRESS = (__INTERRUPT__)) + +/** @brief Check the RCC's 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 Clock Security System interrupt + * @retval The new state of __INTERRUPT__ (TRUE or FALSE). + */ +#define __HAL_RCC_GET_IT(__INTERRUPT__) ((RCC->CIR & (__INTERRUPT__)) == (__INTERRUPT__)) + +/** @brief Set RMVF bit to clear the reset flags. + * The reset flags are RCC_FLAG_PINRST, RCC_FLAG_PORRST, RCC_FLAG_SFTRST, + * RCC_FLAG_OBLRST, RCC_FLAG_IWDGRST, RCC_FLAG_WWDGRST, RCC_FLAG_LPWRRST + */ +#define __HAL_RCC_CLEAR_RESET_FLAGS() (*(__IO uint32_t *)RCC_CSR_RMVF_BB = ENABLE) + +/** @brief Check 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_LSERDY LSE oscillator clock ready. + * @arg @ref RCC_FLAG_LSIRDY LSI oscillator clock ready. + * @arg @ref RCC_FLAG_OBLRST Option Byte Load reset + * @arg @ref RCC_FLAG_PINRST Pin reset. + * @arg @ref RCC_FLAG_PORRST POR/PDR 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. + @if defined(STM32F301x8) + * @arg @ref RCC_FLAG_V18PWRRST Reset flag of the 1.8 V domain + @endif + @if defined(STM32F302x8) + * @arg @ref RCC_FLAG_V18PWRRST Reset flag of the 1.8 V domain + @endif + @if defined(STM32F302xC) + * @arg @ref RCC_FLAG_V18PWRRST Reset flag of the 1.8 V domain + * @arg @ref RCC_FLAG_MCO Microcontroller Clock Output + @endif + @if defined(STM32F302xE) + * @arg @ref RCC_FLAG_V18PWRRST Reset flag of the 1.8 V domain + @endif + @if defined(STM32F303x8) + * @arg @ref RCC_FLAG_V18PWRRST Reset flag of the 1.8 V domain + @endif + @if defined(STM32F303xC) + * @arg @ref RCC_FLAG_V18PWRRST Reset flag of the 1.8 V domain + * @arg @ref RCC_FLAG_MCO Microcontroller Clock Output + @endif + @if defined(STM32F303xE) + * @arg @ref RCC_FLAG_V18PWRRST Reset flag of the 1.8 V domain + @endif + @if defined(STM32F334x8) + * @arg @ref RCC_FLAG_V18PWRRST Reset flag of the 1.8 V domain + @endif + @if defined(STM32F358xx) + * @arg @ref RCC_FLAG_MCO Microcontroller Clock Output + @endif + @if defined(STM32F373xC) + * @arg @ref RCC_FLAG_V18PWRRST Reset flag of the 1.8 V domain + @endif + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_RCC_GET_FLAG(__FLAG__) (((((__FLAG__) >> 5U) == CR_REG_INDEX) ? RCC->CR : \ + (((__FLAG__) >> 5U) == BDCR_REG_INDEX)? RCC->BDCR : \ + (((__FLAG__) >> 5U) == CFGR_REG_INDEX)? RCC->CFGR : \ + RCC->CSR) & (1U << ((__FLAG__) & RCC_FLAG_MASK))) + +/** + * @} + */ + +/** + * @} + */ + +/* Include RCC HAL Extension module */ +#include "stm32f3xx_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); +/* CSS NMI IRQ handler */ +void HAL_RCC_NMI_IRQHandler(void); +/* User Callbacks in non blocking mode (IT mode) */ +void HAL_RCC_CSSCallback(void); +void HAL_RCC_DisableCSS(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); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_HAL_RCC_H */ + + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h new file mode 100644 index 0000000..ca56527 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h @@ -0,0 +1,3824 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_rcc_ex.h + * @author MCD Application Team + * @brief Header file of RCC HAL Extension module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_HAL_RCC_EX_H +#define __STM32F3xx_HAL_RCC_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @addtogroup RCCEx + * @{ + */ + +/** @addtogroup RCCEx_Private_Macros + * @{ + */ + +#if defined(RCC_CFGR_PLLNODIV) +#define IS_RCC_MCO1SOURCE(SOURCE) (((SOURCE) == RCC_MCO1SOURCE_NOCLOCK) || \ + ((SOURCE) == RCC_MCO1SOURCE_LSI) || \ + ((SOURCE) == RCC_MCO1SOURCE_LSE) || \ + ((SOURCE) == RCC_MCO1SOURCE_SYSCLK) || \ + ((SOURCE) == RCC_MCO1SOURCE_HSI) || \ + ((SOURCE) == RCC_MCO1SOURCE_HSE) || \ + ((SOURCE) == RCC_MCO1SOURCE_PLLCLK) || \ + ((SOURCE) == RCC_MCO1SOURCE_PLLCLK_DIV2)) +#else +#define IS_RCC_MCO1SOURCE(SOURCE) (((SOURCE) == RCC_MCO1SOURCE_NOCLOCK) || \ + ((SOURCE) == RCC_MCO1SOURCE_LSI) || \ + ((SOURCE) == RCC_MCO1SOURCE_LSE) || \ + ((SOURCE) == RCC_MCO1SOURCE_SYSCLK) || \ + ((SOURCE) == RCC_MCO1SOURCE_HSI) || \ + ((SOURCE) == RCC_MCO1SOURCE_HSE) || \ + ((SOURCE) == RCC_MCO1SOURCE_PLLCLK_DIV2)) +#endif /* RCC_CFGR_PLLNODIV */ + +#if defined(STM32F301x8) || defined(STM32F318xx) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | \ + RCC_PERIPHCLK_ADC1 | RCC_PERIPHCLK_I2S | \ + RCC_PERIPHCLK_I2C3 | RCC_PERIPHCLK_TIM1 | \ + RCC_PERIPHCLK_TIM15 | RCC_PERIPHCLK_TIM16 | \ + RCC_PERIPHCLK_TIM17 | RCC_PERIPHCLK_RTC)) +#endif /* STM32F301x8 || STM32F318xx */ +#if defined(STM32F302x8) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | \ + RCC_PERIPHCLK_ADC1 | RCC_PERIPHCLK_I2S | \ + RCC_PERIPHCLK_I2C3 | RCC_PERIPHCLK_TIM1 | \ + RCC_PERIPHCLK_RTC | RCC_PERIPHCLK_USB | \ + RCC_PERIPHCLK_TIM15 | RCC_PERIPHCLK_TIM16 | \ + RCC_PERIPHCLK_TIM17)) +#endif /* STM32F302x8 */ +#if defined(STM32F302xC) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | \ + RCC_PERIPHCLK_UART4 | RCC_PERIPHCLK_UART5 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | \ + RCC_PERIPHCLK_ADC12 | RCC_PERIPHCLK_I2S | \ + RCC_PERIPHCLK_TIM1 | RCC_PERIPHCLK_RTC | \ + RCC_PERIPHCLK_USB)) +#endif /* STM32F302xC */ +#if defined(STM32F303xC) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | \ + RCC_PERIPHCLK_UART4 | RCC_PERIPHCLK_UART5 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | \ + RCC_PERIPHCLK_ADC12 | RCC_PERIPHCLK_ADC34 | \ + RCC_PERIPHCLK_I2S | RCC_PERIPHCLK_TIM1 | \ + RCC_PERIPHCLK_TIM8 | RCC_PERIPHCLK_RTC | \ + RCC_PERIPHCLK_USB)) +#endif /* STM32F303xC */ +#if defined(STM32F302xE) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | \ + RCC_PERIPHCLK_UART4 | RCC_PERIPHCLK_UART5 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | \ + RCC_PERIPHCLK_ADC12 | RCC_PERIPHCLK_I2S | \ + RCC_PERIPHCLK_TIM1 | RCC_PERIPHCLK_RTC | \ + RCC_PERIPHCLK_USB | RCC_PERIPHCLK_I2C3 | \ + RCC_PERIPHCLK_TIM2 | RCC_PERIPHCLK_TIM34 | \ + RCC_PERIPHCLK_TIM15 | RCC_PERIPHCLK_TIM16 | \ + RCC_PERIPHCLK_TIM17)) +#endif /* STM32F302xE */ +#if defined(STM32F303xE) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | \ + RCC_PERIPHCLK_UART4 | RCC_PERIPHCLK_UART5 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | \ + RCC_PERIPHCLK_ADC12 | RCC_PERIPHCLK_ADC34 | \ + RCC_PERIPHCLK_I2S | RCC_PERIPHCLK_TIM1 | \ + RCC_PERIPHCLK_TIM8 | RCC_PERIPHCLK_RTC | \ + RCC_PERIPHCLK_USB | RCC_PERIPHCLK_I2C3 | \ + RCC_PERIPHCLK_TIM2 | RCC_PERIPHCLK_TIM34 | \ + RCC_PERIPHCLK_TIM15 | RCC_PERIPHCLK_TIM16 | \ + RCC_PERIPHCLK_TIM17 | RCC_PERIPHCLK_TIM20)) +#endif /* STM32F303xE */ +#if defined(STM32F398xx) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | \ + RCC_PERIPHCLK_UART4 | RCC_PERIPHCLK_UART5 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | \ + RCC_PERIPHCLK_ADC12 | RCC_PERIPHCLK_ADC34 | \ + RCC_PERIPHCLK_I2S | RCC_PERIPHCLK_TIM1 | \ + RCC_PERIPHCLK_TIM8 | RCC_PERIPHCLK_RTC | \ + RCC_PERIPHCLK_I2C3 | RCC_PERIPHCLK_TIM2 | \ + RCC_PERIPHCLK_TIM34 | RCC_PERIPHCLK_TIM15 | \ + RCC_PERIPHCLK_TIM16 | RCC_PERIPHCLK_TIM17 | \ + RCC_PERIPHCLK_TIM20)) +#endif /* STM32F398xx */ +#if defined(STM32F358xx) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | \ + RCC_PERIPHCLK_UART4 | RCC_PERIPHCLK_UART5 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | \ + RCC_PERIPHCLK_ADC12 | RCC_PERIPHCLK_ADC34 | \ + RCC_PERIPHCLK_I2S | RCC_PERIPHCLK_TIM1 | \ + RCC_PERIPHCLK_TIM8 | RCC_PERIPHCLK_RTC)) +#endif /* STM32F358xx */ +#if defined(STM32F303x8) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_ADC12 | \ + RCC_PERIPHCLK_TIM1 | RCC_PERIPHCLK_RTC)) +#endif /* STM32F303x8 */ +#if defined(STM32F334x8) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_ADC12 | \ + RCC_PERIPHCLK_TIM1 | RCC_PERIPHCLK_HRTIM1 | \ + RCC_PERIPHCLK_RTC)) +#endif /* STM32F334x8 */ +#if defined(STM32F328xx) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_ADC12 | \ + RCC_PERIPHCLK_TIM1 | RCC_PERIPHCLK_RTC)) +#endif /* STM32F328xx */ +#if defined(STM32F373xC) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | \ + RCC_PERIPHCLK_ADC1 | RCC_PERIPHCLK_SDADC | \ + RCC_PERIPHCLK_CEC | RCC_PERIPHCLK_RTC | \ + RCC_PERIPHCLK_USB)) +#endif /* STM32F373xC */ +#if defined(STM32F378xx) +#define IS_RCC_PERIPHCLOCK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_I2C2 | \ + RCC_PERIPHCLK_ADC1 | RCC_PERIPHCLK_SDADC | \ + RCC_PERIPHCLK_CEC | RCC_PERIPHCLK_RTC)) +#endif /* STM32F378xx */ + +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +#define IS_RCC_USART1CLKSOURCE(SOURCE) (((SOURCE) == RCC_USART1CLKSOURCE_PCLK1) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_LSE) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_HSI)) +#define IS_RCC_I2C2CLKSOURCE(SOURCE) (((SOURCE) == RCC_I2C2CLKSOURCE_HSI) || \ + ((SOURCE) == RCC_I2C2CLKSOURCE_SYSCLK)) +#define IS_RCC_I2C3CLKSOURCE(SOURCE) (((SOURCE) == RCC_I2C3CLKSOURCE_HSI) || \ + ((SOURCE) == RCC_I2C3CLKSOURCE_SYSCLK)) +#define IS_RCC_ADC1PLLCLK_DIV(ADCCLK) (((ADCCLK) == RCC_ADC1PLLCLK_OFF) || ((ADCCLK) == RCC_ADC1PLLCLK_DIV1) || \ + ((ADCCLK) == RCC_ADC1PLLCLK_DIV2) || ((ADCCLK) == RCC_ADC1PLLCLK_DIV4) || \ + ((ADCCLK) == RCC_ADC1PLLCLK_DIV6) || ((ADCCLK) == RCC_ADC1PLLCLK_DIV8) || \ + ((ADCCLK) == RCC_ADC1PLLCLK_DIV10) || ((ADCCLK) == RCC_ADC1PLLCLK_DIV12) || \ + ((ADCCLK) == RCC_ADC1PLLCLK_DIV16) || ((ADCCLK) == RCC_ADC1PLLCLK_DIV32) || \ + ((ADCCLK) == RCC_ADC1PLLCLK_DIV64) || ((ADCCLK) == RCC_ADC1PLLCLK_DIV128) || \ + ((ADCCLK) == RCC_ADC1PLLCLK_DIV256)) +#define IS_RCC_I2SCLKSOURCE(SOURCE) (((SOURCE) == RCC_I2SCLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_I2SCLKSOURCE_EXT)) +#define IS_RCC_TIM1CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM1CLK_HCLK) || \ + ((SOURCE) == RCC_TIM1CLK_PLLCLK)) +#define IS_RCC_TIM15CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM15CLK_HCLK) || \ + ((SOURCE) == RCC_TIM15CLK_PLLCLK)) +#define IS_RCC_TIM16CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM16CLK_HCLK) || \ + ((SOURCE) == RCC_TIM16CLK_PLLCLK)) +#define IS_RCC_TIM17CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM17CLK_HCLK) || \ + ((SOURCE) == RCC_TIM17CLK_PLLCLK)) +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ +#if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) +#define IS_RCC_USART1CLKSOURCE(SOURCE) (((SOURCE) == RCC_USART1CLKSOURCE_PCLK2) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_LSE) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_HSI)) +#define IS_RCC_I2C2CLKSOURCE(SOURCE) (((SOURCE) == RCC_I2C2CLKSOURCE_HSI) || \ + ((SOURCE) == RCC_I2C2CLKSOURCE_SYSCLK)) +#define IS_RCC_ADC12PLLCLK_DIV(ADCCLK) (((ADCCLK) == RCC_ADC12PLLCLK_OFF) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV1) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV2) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV4) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV6) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV8) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV10) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV12) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV16) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV32) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV64) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV128) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV256)) +#define IS_RCC_I2SCLKSOURCE(SOURCE) (((SOURCE) == RCC_I2SCLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_I2SCLKSOURCE_EXT)) +#define IS_RCC_TIM1CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM1CLK_HCLK) || \ + ((SOURCE) == RCC_TIM1CLK_PLLCLK)) +#define IS_RCC_UART4CLKSOURCE(SOURCE) (((SOURCE) == RCC_UART4CLKSOURCE_PCLK1) || \ + ((SOURCE) == RCC_UART4CLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_UART4CLKSOURCE_LSE) || \ + ((SOURCE) == RCC_UART4CLKSOURCE_HSI)) +#define IS_RCC_UART5CLKSOURCE(SOURCE) (((SOURCE) == RCC_UART5CLKSOURCE_PCLK1) || \ + ((SOURCE) == RCC_UART5CLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_UART5CLKSOURCE_LSE) || \ + ((SOURCE) == RCC_UART5CLKSOURCE_HSI)) +#endif /* STM32F302xC || STM32F303xC || STM32F358xx */ +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define IS_RCC_USART1CLKSOURCE(SOURCE) (((SOURCE) == RCC_USART1CLKSOURCE_PCLK2) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_LSE) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_HSI)) +#define IS_RCC_I2C2CLKSOURCE(SOURCE) (((SOURCE) == RCC_I2C2CLKSOURCE_HSI) || \ + ((SOURCE) == RCC_I2C2CLKSOURCE_SYSCLK)) +#define IS_RCC_I2C3CLKSOURCE(SOURCE) (((SOURCE) == RCC_I2C3CLKSOURCE_HSI) || \ + ((SOURCE) == RCC_I2C3CLKSOURCE_SYSCLK)) +#define IS_RCC_ADC12PLLCLK_DIV(ADCCLK) (((ADCCLK) == RCC_ADC12PLLCLK_OFF) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV1) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV2) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV4) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV6) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV8) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV10) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV12) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV16) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV32) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV64) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV128) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV256)) +#define IS_RCC_I2SCLKSOURCE(SOURCE) (((SOURCE) == RCC_I2SCLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_I2SCLKSOURCE_EXT)) +#define IS_RCC_TIM1CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM1CLK_HCLK) || \ + ((SOURCE) == RCC_TIM1CLK_PLLCLK)) +#define IS_RCC_TIM2CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM2CLK_HCLK) || \ + ((SOURCE) == RCC_TIM2CLK_PLLCLK)) +#define IS_RCC_TIM3CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM34CLK_HCLK) || \ + ((SOURCE) == RCC_TIM34CLK_PLLCLK)) +#define IS_RCC_TIM15CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM15CLK_HCLK) || \ + ((SOURCE) == RCC_TIM15CLK_PLLCLK)) +#define IS_RCC_TIM16CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM16CLK_HCLK) || \ + ((SOURCE) == RCC_TIM16CLK_PLLCLK)) +#define IS_RCC_TIM17CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM17CLK_HCLK) || \ + ((SOURCE) == RCC_TIM17CLK_PLLCLK)) +#define IS_RCC_UART4CLKSOURCE(SOURCE) (((SOURCE) == RCC_UART4CLKSOURCE_PCLK1) || \ + ((SOURCE) == RCC_UART4CLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_UART4CLKSOURCE_LSE) || \ + ((SOURCE) == RCC_UART4CLKSOURCE_HSI)) +#define IS_RCC_UART5CLKSOURCE(SOURCE) (((SOURCE) == RCC_UART5CLKSOURCE_PCLK1) || \ + ((SOURCE) == RCC_UART5CLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_UART5CLKSOURCE_LSE) || \ + ((SOURCE) == RCC_UART5CLKSOURCE_HSI)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ +#if defined(STM32F303xE) || defined(STM32F398xx) +#define IS_RCC_TIM20CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM20CLK_HCLK) || \ + ((SOURCE) == RCC_TIM20CLK_PLLCLK)) +#endif /* STM32F303xE || STM32F398xx */ +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) +#define IS_RCC_ADC34PLLCLK_DIV(ADCCLK) (((ADCCLK) == RCC_ADC34PLLCLK_OFF) || ((ADCCLK) == RCC_ADC34PLLCLK_DIV1) || \ + ((ADCCLK) == RCC_ADC34PLLCLK_DIV2) || ((ADCCLK) == RCC_ADC34PLLCLK_DIV4) || \ + ((ADCCLK) == RCC_ADC34PLLCLK_DIV6) || ((ADCCLK) == RCC_ADC34PLLCLK_DIV8) || \ + ((ADCCLK) == RCC_ADC34PLLCLK_DIV10) || ((ADCCLK) == RCC_ADC34PLLCLK_DIV12) || \ + ((ADCCLK) == RCC_ADC34PLLCLK_DIV16) || ((ADCCLK) == RCC_ADC34PLLCLK_DIV32) || \ + ((ADCCLK) == RCC_ADC34PLLCLK_DIV64) || ((ADCCLK) == RCC_ADC34PLLCLK_DIV128) || \ + ((ADCCLK) == RCC_ADC34PLLCLK_DIV256)) +#define IS_RCC_TIM8CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM8CLK_HCLK) || \ + ((SOURCE) == RCC_TIM8CLK_PLLCLK)) +#endif /* STM32F303xC || STM32F303xE || STM32F398xx || STM32F358xx */ +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#define IS_RCC_USART1CLKSOURCE(SOURCE) (((SOURCE) == RCC_USART1CLKSOURCE_PCLK1) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_LSE) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_HSI)) +#define IS_RCC_ADC12PLLCLK_DIV(ADCCLK) (((ADCCLK) == RCC_ADC12PLLCLK_OFF) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV1) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV2) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV4) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV6) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV8) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV10) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV12) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV16) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV32) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV64) || ((ADCCLK) == RCC_ADC12PLLCLK_DIV128) || \ + ((ADCCLK) == RCC_ADC12PLLCLK_DIV256)) +#define IS_RCC_TIM1CLKSOURCE(SOURCE) (((SOURCE) == RCC_TIM1CLK_HCLK) || \ + ((SOURCE) == RCC_TIM1CLK_PLLCLK)) +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ +#if defined(STM32F334x8) +#define IS_RCC_HRTIM1CLKSOURCE(SOURCE) (((SOURCE) == RCC_HRTIM1CLK_HCLK) || \ + ((SOURCE) == RCC_HRTIM1CLK_PLLCLK)) +#endif /* STM32F334x8 */ +#if defined(STM32F373xC) || defined(STM32F378xx) +#define IS_RCC_USART1CLKSOURCE(SOURCE) (((SOURCE) == RCC_USART1CLKSOURCE_PCLK2) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_SYSCLK) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_LSE) || \ + ((SOURCE) == RCC_USART1CLKSOURCE_HSI)) +#define IS_RCC_I2C2CLKSOURCE(SOURCE) (((SOURCE) == RCC_I2C2CLKSOURCE_HSI) || \ + ((SOURCE) == RCC_I2C2CLKSOURCE_SYSCLK)) +#define IS_RCC_ADC1PCLK2_DIV(ADCCLK) (((ADCCLK) == RCC_ADC1PCLK2_DIV2) || ((ADCCLK) == RCC_ADC1PCLK2_DIV4) || \ + ((ADCCLK) == RCC_ADC1PCLK2_DIV6) || ((ADCCLK) == RCC_ADC1PCLK2_DIV8)) +#define IS_RCC_CECCLKSOURCE(SOURCE) (((SOURCE) == RCC_CECCLKSOURCE_HSI) || \ + ((SOURCE) == RCC_CECCLKSOURCE_LSE)) +#define IS_RCC_SDADCSYSCLK_DIV(DIV) (((DIV) == RCC_SDADCSYSCLK_DIV1) || ((DIV) == RCC_SDADCSYSCLK_DIV2) || \ + ((DIV) == RCC_SDADCSYSCLK_DIV4) || ((DIV) == RCC_SDADCSYSCLK_DIV6) || \ + ((DIV) == RCC_SDADCSYSCLK_DIV8) || ((DIV) == RCC_SDADCSYSCLK_DIV10) || \ + ((DIV) == RCC_SDADCSYSCLK_DIV12) || ((DIV) == RCC_SDADCSYSCLK_DIV14) || \ + ((DIV) == RCC_SDADCSYSCLK_DIV16) || ((DIV) == RCC_SDADCSYSCLK_DIV20) || \ + ((DIV) == RCC_SDADCSYSCLK_DIV24) || ((DIV) == RCC_SDADCSYSCLK_DIV28) || \ + ((DIV) == RCC_SDADCSYSCLK_DIV32) || ((DIV) == RCC_SDADCSYSCLK_DIV36) || \ + ((DIV) == RCC_SDADCSYSCLK_DIV40) || ((DIV) == RCC_SDADCSYSCLK_DIV44) || \ + ((DIV) == RCC_SDADCSYSCLK_DIV48)) +#endif /* STM32F373xC || STM32F378xx */ +#if defined(STM32F302xE) || defined(STM32F303xE)\ + || defined(STM32F302xC) || defined(STM32F303xC)\ + || defined(STM32F302x8) \ + || defined(STM32F373xC) +#define IS_RCC_USBCLKSOURCE(SOURCE) (((SOURCE) == RCC_USBCLKSOURCE_PLL) || \ + ((SOURCE) == RCC_USBCLKSOURCE_PLL_DIV1_5)) +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F302x8 || */ + /* STM32F373xC */ +#if defined(RCC_CFGR_MCOPRE) +#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) || ((DIV) == RCC_MCODIV_32) || \ + ((DIV) == RCC_MCODIV_64) || ((DIV) == RCC_MCODIV_128)) +#else +#define IS_RCC_MCODIV(DIV) (((DIV) == RCC_MCODIV_1)) +#endif /* RCC_CFGR_MCOPRE */ + +#define IS_RCC_LSE_DRIVE(__DRIVE__) (((__DRIVE__) == RCC_LSEDRIVE_LOW) || \ + ((__DRIVE__) == RCC_LSEDRIVE_MEDIUMLOW) || \ + ((__DRIVE__) == RCC_LSEDRIVE_MEDIUMHIGH) || \ + ((__DRIVE__) == RCC_LSEDRIVE_HIGH)) + +/** + * @} + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup RCCEx_Exported_Types RCCEx Exported Types + * @{ + */ + +/** + * @brief RCC extended clocks structure definition + */ +#if defined(STM32F301x8) || defined(STM32F318xx) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t I2c2ClockSelection; /*!< I2C2 clock source + This parameter can be a value of @ref RCCEx_I2C2_Clock_Source */ + + uint32_t I2c3ClockSelection; /*!< I2C3 clock source + This parameter can be a value of @ref RCCEx_I2C3_Clock_Source */ + + uint32_t Adc1ClockSelection; /*!< ADC1 clock source + This parameter can be a value of @ref RCCEx_ADC1_Clock_Source */ + + uint32_t I2sClockSelection; /*!< I2S clock source + This parameter can be a value of @ref RCCEx_I2S_Clock_Source */ + + uint32_t Tim1ClockSelection; /*!< TIM1 clock source + This parameter can be a value of @ref RCCEx_TIM1_Clock_Source */ + + uint32_t Tim15ClockSelection; /*!< TIM15 clock source + This parameter can be a value of @ref RCCEx_TIM15_Clock_Source */ + + uint32_t Tim16ClockSelection; /*!< TIM16 clock source + This parameter can be a value of @ref RCCEx_TIM16_Clock_Source */ + + uint32_t Tim17ClockSelection; /*!< TIM17 clock source + This parameter can be a value of @ref RCCEx_TIM17_Clock_Source */ +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F301x8 || STM32F318xx */ + +#if defined(STM32F302x8) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t I2c2ClockSelection; /*!< I2C2 clock source + This parameter can be a value of @ref RCCEx_I2C2_Clock_Source */ + + uint32_t I2c3ClockSelection; /*!< I2C3 clock source + This parameter can be a value of @ref RCCEx_I2C3_Clock_Source */ + + uint32_t Adc1ClockSelection; /*!< ADC1 clock source + This parameter can be a value of @ref RCCEx_ADC1_Clock_Source */ + + uint32_t I2sClockSelection; /*!< I2S clock source + This parameter can be a value of @ref RCCEx_I2S_Clock_Source */ + + uint32_t Tim1ClockSelection; /*!< TIM1 clock source + This parameter can be a value of @ref RCCEx_TIM1_Clock_Source */ + + uint32_t Tim15ClockSelection; /*!< TIM15 clock source + This parameter can be a value of @ref RCCEx_TIM15_Clock_Source */ + + uint32_t Tim16ClockSelection; /*!< TIM16 clock source + This parameter can be a value of @ref RCCEx_TIM16_Clock_Source */ + + uint32_t Tim17ClockSelection; /*!< TIM17 clock source + This parameter can be a value of @ref RCCEx_TIM17_Clock_Source */ + + uint32_t USBClockSelection; /*!< USB clock source + This parameter can be a value of @ref RCCEx_USB_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F302x8 */ + +#if defined(STM32F302xC) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t Usart2ClockSelection; /*!< USART2 clock source + This parameter can be a value of @ref RCC_USART2_Clock_Source */ + + uint32_t Usart3ClockSelection; /*!< USART3 clock source + This parameter can be a value of @ref RCC_USART3_Clock_Source */ + + uint32_t Uart4ClockSelection; /*!< UART4 clock source + This parameter can be a value of @ref RCCEx_UART4_Clock_Source */ + + uint32_t Uart5ClockSelection; /*!< UART5 clock source + This parameter can be a value of @ref RCCEx_UART5_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t I2c2ClockSelection; /*!< I2C2 clock source + This parameter can be a value of @ref RCCEx_I2C2_Clock_Source */ + + uint32_t Adc12ClockSelection; /*!< ADC1 & ADC2 clock source + This parameter can be a value of @ref RCCEx_ADC12_Clock_Source */ + + uint32_t I2sClockSelection; /*!< I2S clock source + This parameter can be a value of @ref RCCEx_I2S_Clock_Source */ + + uint32_t Tim1ClockSelection; /*!< TIM1 clock source + This parameter can be a value of @ref RCCEx_TIM1_Clock_Source */ + + uint32_t USBClockSelection; /*!< USB clock source + This parameter can be a value of @ref RCCEx_USB_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F302xC */ + +#if defined(STM32F303xC) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t Usart2ClockSelection; /*!< USART2 clock source + This parameter can be a value of @ref RCC_USART2_Clock_Source */ + + uint32_t Usart3ClockSelection; /*!< USART3 clock source + This parameter can be a value of @ref RCC_USART3_Clock_Source */ + + uint32_t Uart4ClockSelection; /*!< UART4 clock source + This parameter can be a value of @ref RCCEx_UART4_Clock_Source */ + + uint32_t Uart5ClockSelection; /*!< UART5 clock source + This parameter can be a value of @ref RCCEx_UART5_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t I2c2ClockSelection; /*!< I2C2 clock source + This parameter can be a value of @ref RCCEx_I2C2_Clock_Source */ + + uint32_t Adc12ClockSelection; /*!< ADC1 & ADC2 clock source + This parameter can be a value of @ref RCCEx_ADC12_Clock_Source */ + + uint32_t Adc34ClockSelection; /*!< ADC3 & ADC4 clock source + This parameter can be a value of @ref RCCEx_ADC34_Clock_Source */ + + uint32_t I2sClockSelection; /*!< I2S clock source + This parameter can be a value of @ref RCCEx_I2S_Clock_Source */ + + uint32_t Tim1ClockSelection; /*!< TIM1 clock source + This parameter can be a value of @ref RCCEx_TIM1_Clock_Source */ + + uint32_t Tim8ClockSelection; /*!< TIM8 clock source + This parameter can be a value of @ref RCCEx_TIM8_Clock_Source */ + + uint32_t USBClockSelection; /*!< USB clock source + This parameter can be a value of @ref RCCEx_USB_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F303xC */ + +#if defined(STM32F302xE) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t Usart2ClockSelection; /*!< USART2 clock source + This parameter can be a value of @ref RCC_USART2_Clock_Source */ + + uint32_t Usart3ClockSelection; /*!< USART3 clock source + This parameter can be a value of @ref RCC_USART3_Clock_Source */ + + uint32_t Uart4ClockSelection; /*!< UART4 clock source + This parameter can be a value of @ref RCCEx_UART4_Clock_Source */ + + uint32_t Uart5ClockSelection; /*!< UART5 clock source + This parameter can be a value of @ref RCCEx_UART5_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t I2c2ClockSelection; /*!< I2C2 clock source + This parameter can be a value of @ref RCCEx_I2C2_Clock_Source */ + + uint32_t I2c3ClockSelection; /*!< I2C3 clock source + This parameter can be a value of @ref RCCEx_I2C3_Clock_Source */ + + uint32_t Adc12ClockSelection; /*!< ADC1 & ADC2 clock source + This parameter can be a value of @ref RCCEx_ADC12_Clock_Source */ + + uint32_t I2sClockSelection; /*!< I2S clock source + This parameter can be a value of @ref RCCEx_I2S_Clock_Source */ + + uint32_t Tim1ClockSelection; /*!< TIM1 clock source + This parameter can be a value of @ref RCCEx_TIM1_Clock_Source */ + + uint32_t Tim2ClockSelection; /*!< TIM2 clock source + This parameter can be a value of @ref RCCEx_TIM2_Clock_Source */ + + uint32_t Tim34ClockSelection; /*!< TIM3 & TIM4 clock source + This parameter can be a value of @ref RCCEx_TIM34_Clock_Source */ + + uint32_t Tim15ClockSelection; /*!< TIM15 clock source + This parameter can be a value of @ref RCCEx_TIM15_Clock_Source */ + + uint32_t Tim16ClockSelection; /*!< TIM16 clock source + This parameter can be a value of @ref RCCEx_TIM16_Clock_Source */ + + uint32_t Tim17ClockSelection; /*!< TIM17 clock source + This parameter can be a value of @ref RCCEx_TIM17_Clock_Source */ + + uint32_t USBClockSelection; /*!< USB clock source + This parameter can be a value of @ref RCCEx_USB_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F302xE */ + +#if defined(STM32F303xE) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t Usart2ClockSelection; /*!< USART2 clock source + This parameter can be a value of @ref RCC_USART2_Clock_Source */ + + uint32_t Usart3ClockSelection; /*!< USART3 clock source + This parameter can be a value of @ref RCC_USART3_Clock_Source */ + + uint32_t Uart4ClockSelection; /*!< UART4 clock source + This parameter can be a value of @ref RCCEx_UART4_Clock_Source */ + + uint32_t Uart5ClockSelection; /*!< UART5 clock source + This parameter can be a value of @ref RCCEx_UART5_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t I2c2ClockSelection; /*!< I2C2 clock source + This parameter can be a value of @ref RCCEx_I2C2_Clock_Source */ + + uint32_t I2c3ClockSelection; /*!< I2C3 clock source + This parameter can be a value of @ref RCCEx_I2C3_Clock_Source */ + + uint32_t Adc12ClockSelection; /*!< ADC1 & ADC2 clock source + This parameter can be a value of @ref RCCEx_ADC12_Clock_Source */ + + uint32_t Adc34ClockSelection; /*!< ADC3 & ADC4 clock source + This parameter can be a value of @ref RCCEx_ADC34_Clock_Source */ + + uint32_t I2sClockSelection; /*!< I2S clock source + This parameter can be a value of @ref RCCEx_I2S_Clock_Source */ + + uint32_t Tim1ClockSelection; /*!< TIM1 clock source + This parameter can be a value of @ref RCCEx_TIM1_Clock_Source */ + + uint32_t Tim2ClockSelection; /*!< TIM2 clock source + This parameter can be a value of @ref RCCEx_TIM2_Clock_Source */ + + uint32_t Tim34ClockSelection; /*!< TIM3 & TIM4 clock source + This parameter can be a value of @ref RCCEx_TIM34_Clock_Source */ + + uint32_t Tim8ClockSelection; /*!< TIM8 clock source + This parameter can be a value of @ref RCCEx_TIM8_Clock_Source */ + + uint32_t Tim15ClockSelection; /*!< TIM15 clock source + This parameter can be a value of @ref RCCEx_TIM15_Clock_Source */ + + uint32_t Tim16ClockSelection; /*!< TIM16 clock source + This parameter can be a value of @ref RCCEx_TIM16_Clock_Source */ + + uint32_t Tim17ClockSelection; /*!< TIM17 clock source + This parameter can be a value of @ref RCCEx_TIM17_Clock_Source */ + + uint32_t Tim20ClockSelection; /*!< TIM20 clock source + This parameter can be a value of @ref RCCEx_TIM20_Clock_Source */ + + uint32_t USBClockSelection; /*!< USB clock source + This parameter can be a value of @ref RCCEx_USB_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F303xE */ + +#if defined(STM32F398xx) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t Usart2ClockSelection; /*!< USART2 clock source + This parameter can be a value of @ref RCC_USART2_Clock_Source */ + + uint32_t Usart3ClockSelection; /*!< USART3 clock source + This parameter can be a value of @ref RCC_USART3_Clock_Source */ + + uint32_t Uart4ClockSelection; /*!< UART4 clock source + This parameter can be a value of @ref RCCEx_UART4_Clock_Source */ + + uint32_t Uart5ClockSelection; /*!< UART5 clock source + This parameter can be a value of @ref RCCEx_UART5_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t I2c2ClockSelection; /*!< I2C2 clock source + This parameter can be a value of @ref RCCEx_I2C2_Clock_Source */ + + uint32_t I2c3ClockSelection; /*!< I2C3 clock source + This parameter can be a value of @ref RCCEx_I2C3_Clock_Source */ + + uint32_t Adc12ClockSelection; /*!< ADC1 & ADC2 clock source + This parameter can be a value of @ref RCCEx_ADC12_Clock_Source */ + + uint32_t Adc34ClockSelection; /*!< ADC3 & ADC4 clock source + This parameter can be a value of @ref RCCEx_ADC34_Clock_Source */ + + uint32_t I2sClockSelection; /*!< I2S clock source + This parameter can be a value of @ref RCCEx_I2S_Clock_Source */ + + uint32_t Tim1ClockSelection; /*!< TIM1 clock source + This parameter can be a value of @ref RCCEx_TIM1_Clock_Source */ + + uint32_t Tim2ClockSelection; /*!< TIM2 clock source + This parameter can be a value of @ref RCCEx_TIM2_Clock_Source */ + + uint32_t Tim34ClockSelection; /*!< TIM3 & TIM4 clock source + This parameter can be a value of @ref RCCEx_TIM34_Clock_Source */ + + uint32_t Tim8ClockSelection; /*!< TIM8 clock source + This parameter can be a value of @ref RCCEx_TIM8_Clock_Source */ + + uint32_t Tim15ClockSelection; /*!< TIM15 clock source + This parameter can be a value of @ref RCCEx_TIM15_Clock_Source */ + + uint32_t Tim16ClockSelection; /*!< TIM16 clock source + This parameter can be a value of @ref RCCEx_TIM16_Clock_Source */ + + uint32_t Tim17ClockSelection; /*!< TIM17 clock source + This parameter can be a value of @ref RCCEx_TIM17_Clock_Source */ + + uint32_t Tim20ClockSelection; /*!< TIM20 clock source + This parameter can be a value of @ref RCCEx_TIM20_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F398xx */ + +#if defined(STM32F358xx) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t Usart2ClockSelection; /*!< USART2 clock source + This parameter can be a value of @ref RCC_USART2_Clock_Source */ + + uint32_t Usart3ClockSelection; /*!< USART3 clock source + This parameter can be a value of @ref RCC_USART3_Clock_Source */ + + uint32_t Uart4ClockSelection; /*!< UART4 clock source + This parameter can be a value of @ref RCCEx_UART4_Clock_Source */ + + uint32_t Uart5ClockSelection; /*!< UART5 clock source + This parameter can be a value of @ref RCCEx_UART5_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t I2c2ClockSelection; /*!< I2C2 clock source + This parameter can be a value of @ref RCCEx_I2C2_Clock_Source */ + + uint32_t Adc12ClockSelection; /*!< ADC1 & ADC2 clock source + This parameter can be a value of @ref RCCEx_ADC12_Clock_Source */ + + uint32_t Adc34ClockSelection; /*!< ADC3 & ADC4 clock source + This parameter can be a value of @ref RCCEx_ADC34_Clock_Source */ + + uint32_t I2sClockSelection; /*!< I2S clock source + This parameter can be a value of @ref RCCEx_I2S_Clock_Source */ + + uint32_t Tim1ClockSelection; /*!< TIM1 clock source + This parameter can be a value of @ref RCCEx_TIM1_Clock_Source */ + + uint32_t Tim8ClockSelection; /*!< TIM8 clock source + This parameter can be a value of @ref RCCEx_TIM8_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F358xx */ + +#if defined(STM32F303x8) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t Adc12ClockSelection; /*!< ADC1 & ADC2 clock source + This parameter can be a value of @ref RCCEx_ADC12_Clock_Source */ + + uint32_t Tim1ClockSelection; /*!< TIM1 clock source + This parameter can be a value of @ref RCCEx_TIM1_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F303x8 */ + +#if defined(STM32F334x8) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t Adc12ClockSelection; /*!< ADC1 & ADC2 clock source + This parameter can be a value of @ref RCCEx_ADC12_Clock_Source */ + + uint32_t Tim1ClockSelection; /*!< TIM1 clock source + This parameter can be a value of @ref RCCEx_TIM1_Clock_Source */ + + uint32_t Hrtim1ClockSelection; /*!< HRTIM1 clock source + This parameter can be a value of @ref RCCEx_HRTIM1_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F334x8 */ + +#if defined(STM32F328xx) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t Adc12ClockSelection; /*!< ADC1 & ADC2 clock source + This parameter can be a value of @ref RCCEx_ADC12_Clock_Source */ + + uint32_t Tim1ClockSelection; /*!< TIM1 clock source + This parameter can be a value of @ref RCCEx_TIM1_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F328xx */ + +#if defined(STM32F373xC) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t Usart2ClockSelection; /*!< USART2 clock source + This parameter can be a value of @ref RCC_USART2_Clock_Source */ + + uint32_t Usart3ClockSelection; /*!< USART3 clock source + This parameter can be a value of @ref RCC_USART3_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t I2c2ClockSelection; /*!< I2C2 clock source + This parameter can be a value of @ref RCCEx_I2C2_Clock_Source */ + + uint32_t Adc1ClockSelection; /*!< ADC1 clock source + This parameter can be a value of @ref RCCEx_ADC1_Clock_Source */ + + uint32_t SdadcClockSelection; /*!< SDADC clock prescaler + This parameter can be a value of @ref RCCEx_SDADC_Clock_Prescaler */ + + uint32_t CecClockSelection; /*!< HDMI CEC clock source + This parameter can be a value of @ref RCCEx_CEC_Clock_Source */ + + uint32_t USBClockSelection; /*!< USB clock source + This parameter can be a value of @ref RCCEx_USB_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F373xC */ + +#if defined(STM32F378xx) +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 RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t Usart1ClockSelection; /*!< USART1 clock source + This parameter can be a value of @ref RCCEx_USART1_Clock_Source */ + + uint32_t Usart2ClockSelection; /*!< USART2 clock source + This parameter can be a value of @ref RCC_USART2_Clock_Source */ + + uint32_t Usart3ClockSelection; /*!< USART3 clock source + This parameter can be a value of @ref RCC_USART3_Clock_Source */ + + uint32_t I2c1ClockSelection; /*!< I2C1 clock source + This parameter can be a value of @ref RCC_I2C1_Clock_Source */ + + uint32_t I2c2ClockSelection; /*!< I2C2 clock source + This parameter can be a value of @ref RCCEx_I2C2_Clock_Source */ + + uint32_t Adc1ClockSelection; /*!< ADC1 clock source + This parameter can be a value of @ref RCCEx_ADC1_Clock_Source */ + + uint32_t SdadcClockSelection; /*!< SDADC clock prescaler + This parameter can be a value of @ref RCCEx_SDADC_Clock_Prescaler */ + + uint32_t CecClockSelection; /*!< HDMI CEC clock source + This parameter can be a value of @ref RCCEx_CEC_Clock_Source */ + +}RCC_PeriphCLKInitTypeDef; +#endif /* STM32F378xx */ + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup RCCEx_Exported_Constants RCC Extended Exported Constants + * @{ + */ +/** @defgroup RCCEx_MCO_Clock_Source RCC Extended MCO Clock Source + * @{ + */ +#define RCC_MCO1SOURCE_NOCLOCK RCC_CFGR_MCO_NOCLOCK +#define RCC_MCO1SOURCE_LSI RCC_CFGR_MCO_LSI +#define RCC_MCO1SOURCE_LSE RCC_CFGR_MCO_LSE +#define RCC_MCO1SOURCE_SYSCLK RCC_CFGR_MCO_SYSCLK +#define RCC_MCO1SOURCE_HSI RCC_CFGR_MCO_HSI +#define RCC_MCO1SOURCE_HSE RCC_CFGR_MCO_HSE +#if defined(RCC_CFGR_PLLNODIV) +#define RCC_MCO1SOURCE_PLLCLK (RCC_CFGR_PLLNODIV | RCC_CFGR_MCO_PLL) +#endif /* RCC_CFGR_PLLNODIV */ +#define RCC_MCO1SOURCE_PLLCLK_DIV2 RCC_CFGR_MCO_PLL + +/** + * @} + */ + +/** @defgroup RCCEx_Periph_Clock_Selection RCC Extended Periph Clock Selection + * @{ + */ +#if defined(STM32F301x8) || defined(STM32F318xx) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_I2C2 (0x00000040U) +#define RCC_PERIPHCLK_ADC1 (0x00000080U) +#define RCC_PERIPHCLK_I2S (0x00000200U) +#define RCC_PERIPHCLK_TIM1 (0x00001000U) +#define RCC_PERIPHCLK_I2C3 (0x00008000U) +#define RCC_PERIPHCLK_RTC (0x00010000U) +#define RCC_PERIPHCLK_TIM15 (0x00040000U) +#define RCC_PERIPHCLK_TIM16 (0x00080000U) +#define RCC_PERIPHCLK_TIM17 (0x00100000U) + +#endif /* STM32F301x8 || STM32F318xx */ + +#if defined(STM32F302x8) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_I2C2 (0x00000040U) +#define RCC_PERIPHCLK_ADC1 (0x00000080U) +#define RCC_PERIPHCLK_I2S (0x00000200U) +#define RCC_PERIPHCLK_TIM1 (0x00001000U) +#define RCC_PERIPHCLK_I2C3 (0x00008000U) +#define RCC_PERIPHCLK_RTC (0x00010000U) +#define RCC_PERIPHCLK_USB (0x00020000U) +#define RCC_PERIPHCLK_TIM15 (0x00040000U) +#define RCC_PERIPHCLK_TIM16 (0x00080000U) +#define RCC_PERIPHCLK_TIM17 (0x00100000U) + + +#endif /* STM32F302x8 */ + +#if defined(STM32F302xC) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_USART2 (0x00000002U) +#define RCC_PERIPHCLK_USART3 (0x00000004U) +#define RCC_PERIPHCLK_UART4 (0x00000008U) +#define RCC_PERIPHCLK_UART5 (0x00000010U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_I2C2 (0x00000040U) +#define RCC_PERIPHCLK_ADC12 (0x00000080U) +#define RCC_PERIPHCLK_I2S (0x00000200U) +#define RCC_PERIPHCLK_TIM1 (0x00001000U) +#define RCC_PERIPHCLK_RTC (0x00010000U) +#define RCC_PERIPHCLK_USB (0x00020000U) + +#endif /* STM32F302xC */ + +#if defined(STM32F303xC) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_USART2 (0x00000002U) +#define RCC_PERIPHCLK_USART3 (0x00000004U) +#define RCC_PERIPHCLK_UART4 (0x00000008U) +#define RCC_PERIPHCLK_UART5 (0x00000010U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_I2C2 (0x00000040U) +#define RCC_PERIPHCLK_ADC12 (0x00000080U) +#define RCC_PERIPHCLK_ADC34 (0x00000100U) +#define RCC_PERIPHCLK_I2S (0x00000200U) +#define RCC_PERIPHCLK_TIM1 (0x00001000U) +#define RCC_PERIPHCLK_TIM8 (0x00002000U) +#define RCC_PERIPHCLK_RTC (0x00010000U) +#define RCC_PERIPHCLK_USB (0x00020000U) + +#endif /* STM32F303xC */ + +#if defined(STM32F302xE) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_USART2 (0x00000002U) +#define RCC_PERIPHCLK_USART3 (0x00000004U) +#define RCC_PERIPHCLK_UART4 (0x00000008U) +#define RCC_PERIPHCLK_UART5 (0x00000010U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_I2C2 (0x00000040U) +#define RCC_PERIPHCLK_ADC12 (0x00000080U) +#define RCC_PERIPHCLK_I2S (0x00000200U) +#define RCC_PERIPHCLK_TIM1 (0x00001000U) +#define RCC_PERIPHCLK_RTC (0x00010000U) +#define RCC_PERIPHCLK_USB (0x00020000U) +#define RCC_PERIPHCLK_I2C3 (0x00040000U) +#define RCC_PERIPHCLK_TIM2 (0x00100000U) +#define RCC_PERIPHCLK_TIM34 (0x00200000U) +#define RCC_PERIPHCLK_TIM15 (0x00400000U) +#define RCC_PERIPHCLK_TIM16 (0x00800000U) +#define RCC_PERIPHCLK_TIM17 (0x01000000U) + +#endif /* STM32F302xE */ + +#if defined(STM32F303xE) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_USART2 (0x00000002U) +#define RCC_PERIPHCLK_USART3 (0x00000004U) +#define RCC_PERIPHCLK_UART4 (0x00000008U) +#define RCC_PERIPHCLK_UART5 (0x00000010U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_I2C2 (0x00000040U) +#define RCC_PERIPHCLK_ADC12 (0x00000080U) +#define RCC_PERIPHCLK_ADC34 (0x00000100U) +#define RCC_PERIPHCLK_I2S (0x00000200U) +#define RCC_PERIPHCLK_TIM1 (0x00001000U) +#define RCC_PERIPHCLK_TIM8 (0x00002000U) +#define RCC_PERIPHCLK_RTC (0x00010000U) +#define RCC_PERIPHCLK_USB (0x00020000U) +#define RCC_PERIPHCLK_I2C3 (0x00040000U) +#define RCC_PERIPHCLK_TIM2 (0x00100000U) +#define RCC_PERIPHCLK_TIM34 (0x00200000U) +#define RCC_PERIPHCLK_TIM15 (0x00400000U) +#define RCC_PERIPHCLK_TIM16 (0x00800000U) +#define RCC_PERIPHCLK_TIM17 (0x01000000U) +#define RCC_PERIPHCLK_TIM20 (0x02000000U) + +#endif /* STM32F303xE */ + +#if defined(STM32F398xx) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_USART2 (0x00000002U) +#define RCC_PERIPHCLK_USART3 (0x00000004U) +#define RCC_PERIPHCLK_UART4 (0x00000008U) +#define RCC_PERIPHCLK_UART5 (0x00000010U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_I2C2 (0x00000040U) +#define RCC_PERIPHCLK_ADC12 (0x00000080U) +#define RCC_PERIPHCLK_ADC34 (0x00000100U) +#define RCC_PERIPHCLK_I2S (0x00000200U) +#define RCC_PERIPHCLK_TIM1 (0x00001000U) +#define RCC_PERIPHCLK_TIM8 (0x00002000U) +#define RCC_PERIPHCLK_RTC (0x00010000U) +#define RCC_PERIPHCLK_I2C3 (0x00040000U) +#define RCC_PERIPHCLK_TIM2 (0x00100000U) +#define RCC_PERIPHCLK_TIM34 (0x00200000U) +#define RCC_PERIPHCLK_TIM15 (0x00400000U) +#define RCC_PERIPHCLK_TIM16 (0x00800000U) +#define RCC_PERIPHCLK_TIM17 (0x01000000U) +#define RCC_PERIPHCLK_TIM20 (0x02000000U) + + +#endif /* STM32F398xx */ + +#if defined(STM32F358xx) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_USART2 (0x00000002U) +#define RCC_PERIPHCLK_USART3 (0x00000004U) +#define RCC_PERIPHCLK_UART4 (0x00000008U) +#define RCC_PERIPHCLK_UART5 (0x00000010U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_I2C2 (0x00000040U) +#define RCC_PERIPHCLK_ADC12 (0x00000080U) +#define RCC_PERIPHCLK_ADC34 (0x00000100U) +#define RCC_PERIPHCLK_I2S (0x00000200U) +#define RCC_PERIPHCLK_TIM1 (0x00001000U) +#define RCC_PERIPHCLK_TIM8 (0x00002000U) +#define RCC_PERIPHCLK_RTC (0x00010000U) + +#endif /* STM32F358xx */ + +#if defined(STM32F303x8) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_ADC12 (0x00000080U) +#define RCC_PERIPHCLK_TIM1 (0x00001000U) +#define RCC_PERIPHCLK_RTC (0x00010000U) + +#endif /* STM32F303x8 */ + +#if defined(STM32F334x8) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_ADC12 (0x00000080U) +#define RCC_PERIPHCLK_TIM1 (0x00001000U) +#define RCC_PERIPHCLK_HRTIM1 (0x00004000U) +#define RCC_PERIPHCLK_RTC (0x00010000U) + + +#endif /* STM32F334x8 */ + +#if defined(STM32F328xx) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_ADC12 (0x00000080U) +#define RCC_PERIPHCLK_TIM1 (0x00001000U) +#define RCC_PERIPHCLK_RTC (0x00010000U) + +#endif /* STM32F328xx */ + +#if defined(STM32F373xC) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_USART2 (0x00000002U) +#define RCC_PERIPHCLK_USART3 (0x00000004U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_I2C2 (0x00000040U) +#define RCC_PERIPHCLK_ADC1 (0x00000080U) +#define RCC_PERIPHCLK_CEC (0x00000400U) +#define RCC_PERIPHCLK_SDADC (0x00000800U) +#define RCC_PERIPHCLK_RTC (0x00010000U) +#define RCC_PERIPHCLK_USB (0x00020000U) + +#endif /* STM32F373xC */ + +#if defined(STM32F378xx) +#define RCC_PERIPHCLK_USART1 (0x00000001U) +#define RCC_PERIPHCLK_USART2 (0x00000002U) +#define RCC_PERIPHCLK_USART3 (0x00000004U) +#define RCC_PERIPHCLK_I2C1 (0x00000020U) +#define RCC_PERIPHCLK_I2C2 (0x00000040U) +#define RCC_PERIPHCLK_ADC1 (0x00000080U) +#define RCC_PERIPHCLK_CEC (0x00000400U) +#define RCC_PERIPHCLK_SDADC (0x00000800U) +#define RCC_PERIPHCLK_RTC (0x00010000U) + +#endif /* STM32F378xx */ +/** + * @} + */ + +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) + +/** @defgroup RCCEx_USART1_Clock_Source RCC Extended USART1 Clock Source + * @{ + */ +#define RCC_USART1CLKSOURCE_PCLK1 RCC_CFGR3_USART1SW_PCLK1 +#define RCC_USART1CLKSOURCE_SYSCLK RCC_CFGR3_USART1SW_SYSCLK +#define RCC_USART1CLKSOURCE_LSE RCC_CFGR3_USART1SW_LSE +#define RCC_USART1CLKSOURCE_HSI RCC_CFGR3_USART1SW_HSI + +/** + * @} + */ + +/** @defgroup RCCEx_I2C2_Clock_Source RCC Extended I2C2 Clock Source + * @{ + */ +#define RCC_I2C2CLKSOURCE_HSI RCC_CFGR3_I2C2SW_HSI +#define RCC_I2C2CLKSOURCE_SYSCLK RCC_CFGR3_I2C2SW_SYSCLK + +/** + * @} + */ + +/** @defgroup RCCEx_I2C3_Clock_Source RCC Extended I2C3 Clock Source + * @{ + */ +#define RCC_I2C3CLKSOURCE_HSI RCC_CFGR3_I2C3SW_HSI +#define RCC_I2C3CLKSOURCE_SYSCLK RCC_CFGR3_I2C3SW_SYSCLK + +/** + * @} + */ + +/** @defgroup RCCEx_ADC1_Clock_Source RCC Extended ADC1 Clock Source + * @{ + */ +#define RCC_ADC1PLLCLK_OFF RCC_CFGR2_ADC1PRES_NO +#define RCC_ADC1PLLCLK_DIV1 RCC_CFGR2_ADC1PRES_DIV1 +#define RCC_ADC1PLLCLK_DIV2 RCC_CFGR2_ADC1PRES_DIV2 +#define RCC_ADC1PLLCLK_DIV4 RCC_CFGR2_ADC1PRES_DIV4 +#define RCC_ADC1PLLCLK_DIV6 RCC_CFGR2_ADC1PRES_DIV6 +#define RCC_ADC1PLLCLK_DIV8 RCC_CFGR2_ADC1PRES_DIV8 +#define RCC_ADC1PLLCLK_DIV10 RCC_CFGR2_ADC1PRES_DIV10 +#define RCC_ADC1PLLCLK_DIV12 RCC_CFGR2_ADC1PRES_DIV12 +#define RCC_ADC1PLLCLK_DIV16 RCC_CFGR2_ADC1PRES_DIV16 +#define RCC_ADC1PLLCLK_DIV32 RCC_CFGR2_ADC1PRES_DIV32 +#define RCC_ADC1PLLCLK_DIV64 RCC_CFGR2_ADC1PRES_DIV64 +#define RCC_ADC1PLLCLK_DIV128 RCC_CFGR2_ADC1PRES_DIV128 +#define RCC_ADC1PLLCLK_DIV256 RCC_CFGR2_ADC1PRES_DIV256 + +/** + * @} + */ + +/** @defgroup RCCEx_I2S_Clock_Source RCC Extended I2S Clock Source + * @{ + */ +#define RCC_I2SCLKSOURCE_SYSCLK RCC_CFGR_I2SSRC_SYSCLK +#define RCC_I2SCLKSOURCE_EXT RCC_CFGR_I2SSRC_EXT + +/** + * @} + */ + +/** @defgroup RCCEx_TIM1_Clock_Source RCC Extended TIM1 Clock Source + * @{ + */ +#define RCC_TIM1CLK_HCLK RCC_CFGR3_TIM1SW_HCLK +#define RCC_TIM1CLK_PLLCLK RCC_CFGR3_TIM1SW_PLL + +/** + * @} + */ + +/** @defgroup RCCEx_TIM15_Clock_Source RCC Extended TIM15 Clock Source + * @{ + */ +#define RCC_TIM15CLK_HCLK RCC_CFGR3_TIM15SW_HCLK +#define RCC_TIM15CLK_PLLCLK RCC_CFGR3_TIM15SW_PLL + +/** + * @} + */ + +/** @defgroup RCCEx_TIM16_Clock_Source RCC Extended TIM16 Clock Source + * @{ + */ +#define RCC_TIM16CLK_HCLK RCC_CFGR3_TIM16SW_HCLK +#define RCC_TIM16CLK_PLLCLK RCC_CFGR3_TIM16SW_PLL + +/** + * @} + */ + +/** @defgroup RCCEx_TIM17_Clock_Source RCC Extended TIM17 Clock Source + * @{ + */ +#define RCC_TIM17CLK_HCLK RCC_CFGR3_TIM17SW_HCLK +#define RCC_TIM17CLK_PLLCLK RCC_CFGR3_TIM17SW_PLL + +/** + * @} + */ + +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) + +/** @defgroup RCCEx_USART1_Clock_Source RCC Extended USART1 Clock Source + * @{ + */ +#define RCC_USART1CLKSOURCE_PCLK2 RCC_CFGR3_USART1SW_PCLK2 +#define RCC_USART1CLKSOURCE_SYSCLK RCC_CFGR3_USART1SW_SYSCLK +#define RCC_USART1CLKSOURCE_LSE RCC_CFGR3_USART1SW_LSE +#define RCC_USART1CLKSOURCE_HSI RCC_CFGR3_USART1SW_HSI + +/** + * @} + */ + +/** @defgroup RCCEx_I2C2_Clock_Source RCC Extended I2C2 Clock Source + * @{ + */ +#define RCC_I2C2CLKSOURCE_HSI RCC_CFGR3_I2C2SW_HSI +#define RCC_I2C2CLKSOURCE_SYSCLK RCC_CFGR3_I2C2SW_SYSCLK + +/** + * @} + */ + +/** @defgroup RCCEx_ADC12_Clock_Source RCC Extended ADC12 Clock Source + * @{ + */ + +/* ADC1 & ADC2 */ +#define RCC_ADC12PLLCLK_OFF RCC_CFGR2_ADCPRE12_NO +#define RCC_ADC12PLLCLK_DIV1 RCC_CFGR2_ADCPRE12_DIV1 +#define RCC_ADC12PLLCLK_DIV2 RCC_CFGR2_ADCPRE12_DIV2 +#define RCC_ADC12PLLCLK_DIV4 RCC_CFGR2_ADCPRE12_DIV4 +#define RCC_ADC12PLLCLK_DIV6 RCC_CFGR2_ADCPRE12_DIV6 +#define RCC_ADC12PLLCLK_DIV8 RCC_CFGR2_ADCPRE12_DIV8 +#define RCC_ADC12PLLCLK_DIV10 RCC_CFGR2_ADCPRE12_DIV10 +#define RCC_ADC12PLLCLK_DIV12 RCC_CFGR2_ADCPRE12_DIV12 +#define RCC_ADC12PLLCLK_DIV16 RCC_CFGR2_ADCPRE12_DIV16 +#define RCC_ADC12PLLCLK_DIV32 RCC_CFGR2_ADCPRE12_DIV32 +#define RCC_ADC12PLLCLK_DIV64 RCC_CFGR2_ADCPRE12_DIV64 +#define RCC_ADC12PLLCLK_DIV128 RCC_CFGR2_ADCPRE12_DIV128 +#define RCC_ADC12PLLCLK_DIV256 RCC_CFGR2_ADCPRE12_DIV256 + +/** + * @} + */ + +/** @defgroup RCCEx_I2S_Clock_Source RCC Extended I2S Clock Source + * @{ + */ +#define RCC_I2SCLKSOURCE_SYSCLK RCC_CFGR_I2SSRC_SYSCLK +#define RCC_I2SCLKSOURCE_EXT RCC_CFGR_I2SSRC_EXT + +/** + * @} + */ +/** @defgroup RCCEx_TIM1_Clock_Source RCC Extended TIM1 Clock Source + * @{ + */ +#define RCC_TIM1CLK_HCLK RCC_CFGR3_TIM1SW_HCLK +#define RCC_TIM1CLK_PLLCLK RCC_CFGR3_TIM1SW_PLL + +/** + * @} + */ + +/** @defgroup RCCEx_UART4_Clock_Source RCC Extended UART4 Clock Source + * @{ + */ +#define RCC_UART4CLKSOURCE_PCLK1 RCC_CFGR3_UART4SW_PCLK +#define RCC_UART4CLKSOURCE_SYSCLK RCC_CFGR3_UART4SW_SYSCLK +#define RCC_UART4CLKSOURCE_LSE RCC_CFGR3_UART4SW_LSE +#define RCC_UART4CLKSOURCE_HSI RCC_CFGR3_UART4SW_HSI + +/** + * @} + */ + +/** @defgroup RCCEx_UART5_Clock_Source RCC Extended UART5 Clock Source + * @{ + */ +#define RCC_UART5CLKSOURCE_PCLK1 RCC_CFGR3_UART5SW_PCLK +#define RCC_UART5CLKSOURCE_SYSCLK RCC_CFGR3_UART5SW_SYSCLK +#define RCC_UART5CLKSOURCE_LSE RCC_CFGR3_UART5SW_LSE +#define RCC_UART5CLKSOURCE_HSI RCC_CFGR3_UART5SW_HSI + +/** + * @} + */ + +#endif /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) + +/** @defgroup RCCEx_USART1_Clock_Source RCC Extended USART1 Clock Source + * @{ + */ +#define RCC_USART1CLKSOURCE_PCLK2 RCC_CFGR3_USART1SW_PCLK2 +#define RCC_USART1CLKSOURCE_SYSCLK RCC_CFGR3_USART1SW_SYSCLK +#define RCC_USART1CLKSOURCE_LSE RCC_CFGR3_USART1SW_LSE +#define RCC_USART1CLKSOURCE_HSI RCC_CFGR3_USART1SW_HSI + +/** + * @} + */ + +/** @defgroup RCCEx_I2C2_Clock_Source RCC Extended I2C2 Clock Source + * @{ + */ +#define RCC_I2C2CLKSOURCE_HSI RCC_CFGR3_I2C2SW_HSI +#define RCC_I2C2CLKSOURCE_SYSCLK RCC_CFGR3_I2C2SW_SYSCLK + +/** + * @} + */ + +/** @defgroup RCCEx_I2C3_Clock_Source RCC Extended I2C3 Clock Source + * @{ + */ +#define RCC_I2C3CLKSOURCE_HSI RCC_CFGR3_I2C3SW_HSI +#define RCC_I2C3CLKSOURCE_SYSCLK RCC_CFGR3_I2C3SW_SYSCLK + +/** + * @} + */ + +/** @defgroup RCCEx_ADC12_Clock_Source RCC Extended ADC12 Clock Source + * @{ + */ + +/* ADC1 & ADC2 */ +#define RCC_ADC12PLLCLK_OFF RCC_CFGR2_ADCPRE12_NO +#define RCC_ADC12PLLCLK_DIV1 RCC_CFGR2_ADCPRE12_DIV1 +#define RCC_ADC12PLLCLK_DIV2 RCC_CFGR2_ADCPRE12_DIV2 +#define RCC_ADC12PLLCLK_DIV4 RCC_CFGR2_ADCPRE12_DIV4 +#define RCC_ADC12PLLCLK_DIV6 RCC_CFGR2_ADCPRE12_DIV6 +#define RCC_ADC12PLLCLK_DIV8 RCC_CFGR2_ADCPRE12_DIV8 +#define RCC_ADC12PLLCLK_DIV10 RCC_CFGR2_ADCPRE12_DIV10 +#define RCC_ADC12PLLCLK_DIV12 RCC_CFGR2_ADCPRE12_DIV12 +#define RCC_ADC12PLLCLK_DIV16 RCC_CFGR2_ADCPRE12_DIV16 +#define RCC_ADC12PLLCLK_DIV32 RCC_CFGR2_ADCPRE12_DIV32 +#define RCC_ADC12PLLCLK_DIV64 RCC_CFGR2_ADCPRE12_DIV64 +#define RCC_ADC12PLLCLK_DIV128 RCC_CFGR2_ADCPRE12_DIV128 +#define RCC_ADC12PLLCLK_DIV256 RCC_CFGR2_ADCPRE12_DIV256 + +/** + * @} + */ + +/** @defgroup RCCEx_I2S_Clock_Source RCC Extended I2S Clock Source + * @{ + */ +#define RCC_I2SCLKSOURCE_SYSCLK RCC_CFGR_I2SSRC_SYSCLK +#define RCC_I2SCLKSOURCE_EXT RCC_CFGR_I2SSRC_EXT + +/** + * @} + */ + +/** @defgroup RCCEx_TIM1_Clock_Source RCC Extended TIM1 Clock Source + * @{ + */ +#define RCC_TIM1CLK_HCLK RCC_CFGR3_TIM1SW_HCLK +#define RCC_TIM1CLK_PLLCLK RCC_CFGR3_TIM1SW_PLL + +/** + * @} + */ + +/** @defgroup RCCEx_TIM2_Clock_Source RCC Extended TIM2 Clock Source + * @{ + */ +#define RCC_TIM2CLK_HCLK RCC_CFGR3_TIM2SW_HCLK +#define RCC_TIM2CLK_PLLCLK RCC_CFGR3_TIM2SW_PLL + +/** + * @} + */ + +/** @defgroup RCCEx_TIM34_Clock_Source RCC Extended TIM3 & TIM4 Clock Source + * @{ + */ +#define RCC_TIM34CLK_HCLK RCC_CFGR3_TIM34SW_HCLK +#define RCC_TIM34CLK_PLLCLK RCC_CFGR3_TIM34SW_PLL + +/** + * @} + */ + +/** @defgroup RCCEx_TIM15_Clock_Source RCC Extended TIM15 Clock Source + * @{ + */ +#define RCC_TIM15CLK_HCLK RCC_CFGR3_TIM15SW_HCLK +#define RCC_TIM15CLK_PLLCLK RCC_CFGR3_TIM15SW_PLL + +/** + * @} + */ + +/** @defgroup RCCEx_TIM16_Clock_Source RCC Extended TIM16 Clock Source + * @{ + */ +#define RCC_TIM16CLK_HCLK RCC_CFGR3_TIM16SW_HCLK +#define RCC_TIM16CLK_PLLCLK RCC_CFGR3_TIM16SW_PLL + +/** + * @} + */ + +/** @defgroup RCCEx_TIM17_Clock_Source RCC Extended TIM17 Clock Source + * @{ + */ +#define RCC_TIM17CLK_HCLK RCC_CFGR3_TIM17SW_HCLK +#define RCC_TIM17CLK_PLLCLK RCC_CFGR3_TIM17SW_PLL + +/** + * @} + */ + +/** @defgroup RCCEx_UART4_Clock_Source RCC Extended UART4 Clock Source + * @{ + */ +#define RCC_UART4CLKSOURCE_PCLK1 RCC_CFGR3_UART4SW_PCLK +#define RCC_UART4CLKSOURCE_SYSCLK RCC_CFGR3_UART4SW_SYSCLK +#define RCC_UART4CLKSOURCE_LSE RCC_CFGR3_UART4SW_LSE +#define RCC_UART4CLKSOURCE_HSI RCC_CFGR3_UART4SW_HSI + +/** + * @} + */ + +/** @defgroup RCCEx_UART5_Clock_Source RCC Extended UART5 Clock Source + * @{ + */ +#define RCC_UART5CLKSOURCE_PCLK1 RCC_CFGR3_UART5SW_PCLK +#define RCC_UART5CLKSOURCE_SYSCLK RCC_CFGR3_UART5SW_SYSCLK +#define RCC_UART5CLKSOURCE_LSE RCC_CFGR3_UART5SW_LSE +#define RCC_UART5CLKSOURCE_HSI RCC_CFGR3_UART5SW_HSI + +/** + * @} + */ + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx) +/** @defgroup RCCEx_TIM20_Clock_Source RCC Extended TIM20 Clock Source + * @{ + */ +#define RCC_TIM20CLK_HCLK RCC_CFGR3_TIM20SW_HCLK +#define RCC_TIM20CLK_PLLCLK RCC_CFGR3_TIM20SW_PLL + +/** + * @} + */ +#endif /* STM32F303xE || STM32F398xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) + +/** @defgroup RCCEx_ADC34_Clock_Source RCC Extended ADC34 Clock Source + * @{ + */ + +/* ADC3 & ADC4 */ +#define RCC_ADC34PLLCLK_OFF RCC_CFGR2_ADCPRE34_NO +#define RCC_ADC34PLLCLK_DIV1 RCC_CFGR2_ADCPRE34_DIV1 +#define RCC_ADC34PLLCLK_DIV2 RCC_CFGR2_ADCPRE34_DIV2 +#define RCC_ADC34PLLCLK_DIV4 RCC_CFGR2_ADCPRE34_DIV4 +#define RCC_ADC34PLLCLK_DIV6 RCC_CFGR2_ADCPRE34_DIV6 +#define RCC_ADC34PLLCLK_DIV8 RCC_CFGR2_ADCPRE34_DIV8 +#define RCC_ADC34PLLCLK_DIV10 RCC_CFGR2_ADCPRE34_DIV10 +#define RCC_ADC34PLLCLK_DIV12 RCC_CFGR2_ADCPRE34_DIV12 +#define RCC_ADC34PLLCLK_DIV16 RCC_CFGR2_ADCPRE34_DIV16 +#define RCC_ADC34PLLCLK_DIV32 RCC_CFGR2_ADCPRE34_DIV32 +#define RCC_ADC34PLLCLK_DIV64 RCC_CFGR2_ADCPRE34_DIV64 +#define RCC_ADC34PLLCLK_DIV128 RCC_CFGR2_ADCPRE34_DIV128 +#define RCC_ADC34PLLCLK_DIV256 RCC_CFGR2_ADCPRE34_DIV256 + +/** + * @} + */ + +/** @defgroup RCCEx_TIM8_Clock_Source RCC Extended TIM8 Clock Source + * @{ + */ +#define RCC_TIM8CLK_HCLK RCC_CFGR3_TIM8SW_HCLK +#define RCC_TIM8CLK_PLLCLK RCC_CFGR3_TIM8SW_PLL + +/** + * @} + */ + +#endif /* STM32F303xC || STM32F303xE || STM32F398xx || STM32F358xx */ + +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) + +/** @defgroup RCCEx_USART1_Clock_Source RCC Extended USART1 Clock Source + * @{ + */ +#define RCC_USART1CLKSOURCE_PCLK1 RCC_CFGR3_USART1SW_PCLK1 +#define RCC_USART1CLKSOURCE_SYSCLK RCC_CFGR3_USART1SW_SYSCLK +#define RCC_USART1CLKSOURCE_LSE RCC_CFGR3_USART1SW_LSE +#define RCC_USART1CLKSOURCE_HSI RCC_CFGR3_USART1SW_HSI + +/** + * @} + */ + +/** @defgroup RCCEx_ADC12_Clock_Source RCC Extended ADC12 Clock Source + * @{ + */ +/* ADC1 & ADC2 */ +#define RCC_ADC12PLLCLK_OFF RCC_CFGR2_ADCPRE12_NO +#define RCC_ADC12PLLCLK_DIV1 RCC_CFGR2_ADCPRE12_DIV1 +#define RCC_ADC12PLLCLK_DIV2 RCC_CFGR2_ADCPRE12_DIV2 +#define RCC_ADC12PLLCLK_DIV4 RCC_CFGR2_ADCPRE12_DIV4 +#define RCC_ADC12PLLCLK_DIV6 RCC_CFGR2_ADCPRE12_DIV6 +#define RCC_ADC12PLLCLK_DIV8 RCC_CFGR2_ADCPRE12_DIV8 +#define RCC_ADC12PLLCLK_DIV10 RCC_CFGR2_ADCPRE12_DIV10 +#define RCC_ADC12PLLCLK_DIV12 RCC_CFGR2_ADCPRE12_DIV12 +#define RCC_ADC12PLLCLK_DIV16 RCC_CFGR2_ADCPRE12_DIV16 +#define RCC_ADC12PLLCLK_DIV32 RCC_CFGR2_ADCPRE12_DIV32 +#define RCC_ADC12PLLCLK_DIV64 RCC_CFGR2_ADCPRE12_DIV64 +#define RCC_ADC12PLLCLK_DIV128 RCC_CFGR2_ADCPRE12_DIV128 +#define RCC_ADC12PLLCLK_DIV256 RCC_CFGR2_ADCPRE12_DIV256 + +/** + * @} + */ + +/** @defgroup RCCEx_TIM1_Clock_Source RCC Extended TIM1 Clock Source + * @{ + */ +#define RCC_TIM1CLK_HCLK RCC_CFGR3_TIM1SW_HCLK +#define RCC_TIM1CLK_PLLCLK RCC_CFGR3_TIM1SW_PLL + +/** + * @} + */ + +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F334x8) + +/** @defgroup RCCEx_HRTIM1_Clock_Source RCC Extended HRTIM1 Clock Source + * @{ + */ +#define RCC_HRTIM1CLK_HCLK RCC_CFGR3_HRTIM1SW_HCLK +#define RCC_HRTIM1CLK_PLLCLK RCC_CFGR3_HRTIM1SW_PLL + +/** + * @} + */ + +#endif /* STM32F334x8 */ + +#if defined(STM32F373xC) || defined(STM32F378xx) + +/** @defgroup RCCEx_USART1_Clock_Source RCC Extended USART1 Clock Source + * @{ + */ +#define RCC_USART1CLKSOURCE_PCLK2 RCC_CFGR3_USART1SW_PCLK2 +#define RCC_USART1CLKSOURCE_SYSCLK RCC_CFGR3_USART1SW_SYSCLK +#define RCC_USART1CLKSOURCE_LSE RCC_CFGR3_USART1SW_LSE +#define RCC_USART1CLKSOURCE_HSI RCC_CFGR3_USART1SW_HSI + +/** + * @} + */ + +/** @defgroup RCCEx_I2C2_Clock_Source RCC Extended I2C2 Clock Source + * @{ + */ +#define RCC_I2C2CLKSOURCE_HSI RCC_CFGR3_I2C2SW_HSI +#define RCC_I2C2CLKSOURCE_SYSCLK RCC_CFGR3_I2C2SW_SYSCLK + +/** + * @} + */ + +/** @defgroup RCCEx_ADC1_Clock_Source RCC Extended ADC1 Clock Source + * @{ + */ + +/* ADC1 */ +#define RCC_ADC1PCLK2_DIV2 RCC_CFGR_ADCPRE_DIV2 +#define RCC_ADC1PCLK2_DIV4 RCC_CFGR_ADCPRE_DIV4 +#define RCC_ADC1PCLK2_DIV6 RCC_CFGR_ADCPRE_DIV6 +#define RCC_ADC1PCLK2_DIV8 RCC_CFGR_ADCPRE_DIV8 + +/** + * @} + */ + +/** @defgroup RCCEx_CEC_Clock_Source RCC Extended CEC Clock Source + * @{ + */ +#define RCC_CECCLKSOURCE_HSI RCC_CFGR3_CECSW_HSI_DIV244 +#define RCC_CECCLKSOURCE_LSE RCC_CFGR3_CECSW_LSE + +/** + * @} + */ + +/** @defgroup RCCEx_SDADC_Clock_Prescaler RCC Extended SDADC Clock Prescaler + * @{ + */ +#define RCC_SDADCSYSCLK_DIV1 RCC_CFGR_SDPRE_DIV1 +#define RCC_SDADCSYSCLK_DIV2 RCC_CFGR_SDPRE_DIV2 +#define RCC_SDADCSYSCLK_DIV4 RCC_CFGR_SDPRE_DIV4 +#define RCC_SDADCSYSCLK_DIV6 RCC_CFGR_SDPRE_DIV6 +#define RCC_SDADCSYSCLK_DIV8 RCC_CFGR_SDPRE_DIV8 +#define RCC_SDADCSYSCLK_DIV10 RCC_CFGR_SDPRE_DIV10 +#define RCC_SDADCSYSCLK_DIV12 RCC_CFGR_SDPRE_DIV12 +#define RCC_SDADCSYSCLK_DIV14 RCC_CFGR_SDPRE_DIV14 +#define RCC_SDADCSYSCLK_DIV16 RCC_CFGR_SDPRE_DIV16 +#define RCC_SDADCSYSCLK_DIV20 RCC_CFGR_SDPRE_DIV20 +#define RCC_SDADCSYSCLK_DIV24 RCC_CFGR_SDPRE_DIV24 +#define RCC_SDADCSYSCLK_DIV28 RCC_CFGR_SDPRE_DIV28 +#define RCC_SDADCSYSCLK_DIV32 RCC_CFGR_SDPRE_DIV32 +#define RCC_SDADCSYSCLK_DIV36 RCC_CFGR_SDPRE_DIV36 +#define RCC_SDADCSYSCLK_DIV40 RCC_CFGR_SDPRE_DIV40 +#define RCC_SDADCSYSCLK_DIV44 RCC_CFGR_SDPRE_DIV44 +#define RCC_SDADCSYSCLK_DIV48 RCC_CFGR_SDPRE_DIV48 + +/** + * @} + */ + +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE)\ + || defined(STM32F302xC) || defined(STM32F303xC)\ + || defined(STM32F302x8) \ + || defined(STM32F373xC) +/** @defgroup RCCEx_USB_Clock_Source RCC Extended USB Clock Source + * @{ + */ + +#define RCC_USBCLKSOURCE_PLL RCC_CFGR_USBPRE_DIV1 +#define RCC_USBCLKSOURCE_PLL_DIV1_5 RCC_CFGR_USBPRE_DIV1_5 + +/** + * @} + */ + +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F302x8 || */ + /* STM32F373xC */ + + +/** @defgroup RCCEx_MCOx_Clock_Prescaler RCC Extended MCOx Clock Prescaler + * @{ + */ +#if defined(RCC_CFGR_MCOPRE) + +#define RCC_MCODIV_1 (0x00000000U) +#define RCC_MCODIV_2 (0x10000000U) +#define RCC_MCODIV_4 (0x20000000U) +#define RCC_MCODIV_8 (0x30000000U) +#define RCC_MCODIV_16 (0x40000000U) +#define RCC_MCODIV_32 (0x50000000U) +#define RCC_MCODIV_64 (0x60000000U) +#define RCC_MCODIV_128 (0x70000000U) + +#else + +#define RCC_MCODIV_1 (0x00000000U) + +#endif /* RCC_CFGR_MCOPRE */ + +/** + * @} + */ + +/** @defgroup RCCEx_LSEDrive_Configuration RCC LSE Drive Configuration + * @{ + */ + +#define RCC_LSEDRIVE_LOW (0x00000000U) /*!< Xtal mode lower driving capability */ +#define RCC_LSEDRIVE_MEDIUMLOW RCC_BDCR_LSEDRV_1 /*!< Xtal mode medium low driving capability */ +#define RCC_LSEDRIVE_MEDIUMHIGH RCC_BDCR_LSEDRV_0 /*!< Xtal mode medium high driving capability */ +#define RCC_LSEDRIVE_HIGH RCC_BDCR_LSEDRV /*!< Xtal mode higher driving capability */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup RCCEx_Exported_Macros RCC Extended Exported Macros + * @{ + */ + +/** @defgroup RCCEx_PLL_Configuration RCC Extended PLL Configuration + * @{ + */ +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +/** @brief Macro to configure the PLL clock source, multiplication and division factors. + * @note This macro must be used only when the PLL is disabled. + * + * @param __RCC_PLLSource__ specifies the PLL entry clock source. + * This parameter can be one of the following values: + * @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 __PREDIV__ specifies the predivider factor for PLL VCO input clock + * This parameter must be a number between RCC_PREDIV_DIV1 and RCC_PREDIV_DIV16. + * @param __PLLMUL__ specifies the multiplication factor for PLL VCO input clock + * This parameter must be a number between RCC_PLL_MUL2 and RCC_PLL_MUL16. + * + */ +#define __HAL_RCC_PLL_CONFIG(__RCC_PLLSource__ , __PREDIV__, __PLLMUL__) \ + do { \ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PREDIV, (__PREDIV__)); \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PLLMUL | RCC_CFGR_PLLSRC, (uint32_t)((__PLLMUL__)|(__RCC_PLLSource__))); \ + } while(0U) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + +#if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)\ + || defined(STM32F373xC) || defined(STM32F378xx) +/** @brief Macro to configure the PLL clock source and multiplication factor. + * @note This macro must be used only when the PLL is disabled. + * + * @param __RCC_PLLSource__ specifies the PLL entry clock source. + * This parameter can be one of the following values: + * @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 __PLLMUL__ specifies the multiplication factor for PLL VCO input clock + * This parameter must be a number between RCC_PLL_MUL2 and RCC_PLL_MUL16. + * + */ +#define __HAL_RCC_PLL_CONFIG(__RCC_PLLSource__ , __PLLMUL__) \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PLLMUL | RCC_CFGR_PLLSRC, (uint32_t)((__PLLMUL__)|(__RCC_PLLSource__))) +#endif /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + /* STM32F373xC || STM32F378xx */ +/** + * @} + */ + +#if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)\ + || defined(STM32F373xC) || defined(STM32F378xx) +/** @defgroup RCCEx_HSE_Configuration RCC Extended HSE Configuration + * @{ + */ + +/** + * @brief Macro to configure the External High Speed oscillator (HSE) Predivision factor for PLL. + * @note Predivision factor can not be changed if PLL is used as system clock + * In this case, you have to select another source of the system clock, disable the PLL and + * then change the HSE predivision factor. + * @param __HSE_PREDIV_VALUE__ specifies the division value applied to HSE. + * This parameter must be a number between RCC_HSE_PREDIV_DIV1 and RCC_HSE_PREDIV_DIV16. + */ +#define __HAL_RCC_HSE_PREDIV_CONFIG(__HSE_PREDIV_VALUE__) \ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PREDIV, (uint32_t)(__HSE_PREDIV_VALUE__)) + +/** + * @brief Macro to get prediv1 factor for PLL. + */ +#define __HAL_RCC_HSE_GET_PREDIV() READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV) + +/** + * @} + */ +#endif /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + /* STM32F373xC || STM32F378xx */ + +/** @defgroup RCCEx_AHB_Clock_Enable_Disable RCC Extended AHB Clock Enable Disable + * @brief Enable or disable the AHB 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(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +#define __HAL_RCC_ADC1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_ADC1EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_ADC1EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_ADC1_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_ADC1EN)) +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_DMA2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_DMA2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_DMA2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOE_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOEEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOEEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_ADC12_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_ADC12EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_ADC12EN);\ + UNUSED(tmpreg); \ + } while(0U) +/* Aliases for STM32 F3 compatibility */ +#define __HAL_RCC_ADC1_CLK_ENABLE() __HAL_RCC_ADC12_CLK_ENABLE() +#define __HAL_RCC_ADC2_CLK_ENABLE() __HAL_RCC_ADC12_CLK_ENABLE() + +#define __HAL_RCC_DMA2_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_DMA2EN)) +#define __HAL_RCC_GPIOE_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOEEN)) +#define __HAL_RCC_ADC12_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_ADC12EN)) +/* Aliases for STM32 F3 compatibility */ +#define __HAL_RCC_ADC1_CLK_DISABLE() __HAL_RCC_ADC12_CLK_DISABLE() +#define __HAL_RCC_ADC2_CLK_DISABLE() __HAL_RCC_ADC12_CLK_DISABLE() +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_ADC34_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_ADC34EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_ADC34EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_ADC34_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_ADC34EN)) +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx */ + +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#define __HAL_RCC_ADC12_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_ADC12EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_ADC12EN);\ + UNUSED(tmpreg); \ + } while(0U) +/* Aliases for STM32 F3 compatibility */ +#define __HAL_RCC_ADC1_CLK_ENABLE() __HAL_RCC_ADC12_CLK_ENABLE() +#define __HAL_RCC_ADC2_CLK_ENABLE() __HAL_RCC_ADC12_CLK_ENABLE() + +#define __HAL_RCC_ADC12_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_ADC12EN)) +/* Aliases for STM32 F3 compatibility */ +#define __HAL_RCC_ADC1_CLK_DISABLE() __HAL_RCC_ADC12_CLK_DISABLE() +#define __HAL_RCC_ADC2_CLK_DISABLE() __HAL_RCC_ADC12_CLK_DISABLE() +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_DMA2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_DMA2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_DMA2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOE_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOEEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOEEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_DMA2_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_DMA2EN)) +#define __HAL_RCC_GPIOE_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOEEN)) +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define __HAL_RCC_FMC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_FMCEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_FMCEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOG_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOGEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOGEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOH_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOHEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOHEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_FMC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_FMCEN)) +#define __HAL_RCC_GPIOG_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOGEN)) +#define __HAL_RCC_GPIOH_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOHEN)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ +/** + * @} + */ + +/** @defgroup RCCEx_APB1_Clock_Enable_Disable RCC Extended APB1 Clock Enable Disable + * @brief Enable or disable the Low Speed APB (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. + * @{ + */ +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +#define __HAL_RCC_SPI2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_SPI3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI3EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI3EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_I2C2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_I2C3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C3EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C3EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_SPI2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI2EN)) +#define __HAL_RCC_SPI3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI3EN)) +#define __HAL_RCC_I2C2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_I2C2EN)) +#define __HAL_RCC_I2C3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_I2C3EN)) +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_TIM3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM3EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM3EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_TIM4_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM4EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM4EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_SPI2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_SPI3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI3EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI3EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_UART4_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_UART4EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_UART4EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_UART5_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_UART5EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_UART5EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_I2C2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C2EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_TIM3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM3EN)) +#define __HAL_RCC_TIM4_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM4EN)) +#define __HAL_RCC_SPI2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI2EN)) +#define __HAL_RCC_SPI3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI3EN)) +#define __HAL_RCC_UART4_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_UART4EN)) +#define __HAL_RCC_UART5_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_UART5EN)) +#define __HAL_RCC_I2C2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_I2C2EN)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#define __HAL_RCC_TIM3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM3EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM3EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_DAC2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_DAC2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_DAC2EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_TIM3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM3EN)) +#define __HAL_RCC_DAC2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_DAC2EN)) +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_TIM3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM3EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM3EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_TIM4_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM4EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM4EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_TIM5_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM5EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM5EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_TIM12_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM12EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM12EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_TIM13_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM13EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM13EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_TIM14_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM14EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM14EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_TIM18_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM18EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM18EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_SPI2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_SPI3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI3EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI3EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_I2C2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_DAC2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_DAC2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_DAC2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_CEC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_CECEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_CECEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_TIM3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM3EN)) +#define __HAL_RCC_TIM4_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM4EN)) +#define __HAL_RCC_TIM5_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM5EN)) +#define __HAL_RCC_TIM12_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM12EN)) +#define __HAL_RCC_TIM13_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM13EN)) +#define __HAL_RCC_TIM14_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM14EN)) +#define __HAL_RCC_TIM18_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM18EN)) +#define __HAL_RCC_SPI2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI2EN)) +#define __HAL_RCC_SPI3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI3EN)) +#define __HAL_RCC_I2C2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_I2C2EN)) +#define __HAL_RCC_DAC2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_DAC2EN)) +#define __HAL_RCC_CEC_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_CECEN)) +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx) \ + || defined(STM32F303xC) || defined(STM32F358xx) \ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)\ + || defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_TIM7_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM7EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM7EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_TIM7_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM7EN)) +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ + /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE)\ + || defined(STM32F302xC) || defined(STM32F303xC)\ + || defined(STM32F302x8) \ + || defined(STM32F373xC) +#define __HAL_RCC_USB_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_USBEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_USBEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_USB_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USBEN)) +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F302x8 || */ + /* STM32F373xC */ + +#if !defined(STM32F301x8) +#define __HAL_RCC_CAN1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_CANEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_CANEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_CAN1_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_CANEN)) +#endif /* STM32F301x8*/ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define __HAL_RCC_I2C3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C3EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C3EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_I2C3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_I2C3EN)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ +/** + * @} + */ + +/** @defgroup RCCEx_APB2_Clock_Enable_Disable RCC Extended APB2 Clock Enable Disable + * @brief Enable or disable the High Speed APB (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. + * @{ + */ +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) +#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(0U) + +#define __HAL_RCC_SPI1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SPI1EN)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) +#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(0U) + +#define __HAL_RCC_TIM8_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM8EN)) +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx */ + +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#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(0U) + +#define __HAL_RCC_SPI1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SPI1EN)) +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F334x8) +#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(0U) + +#define __HAL_RCC_HRTIM1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_HRTIM1EN)) +#endif /* STM32F334x8 */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_ADC1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_ADC1EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_ADC1EN);\ + UNUSED(tmpreg); \ + } while(0U) +#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(0U) +#define __HAL_RCC_TIM19_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM19EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM19EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_SDADC1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SDADC1EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SDADC1EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_SDADC2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SDADC2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SDADC2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_SDADC3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SDADC3EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SDADC3EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_ADC1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_ADC1EN)) +#define __HAL_RCC_SPI1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SPI1EN)) +#define __HAL_RCC_TIM19_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM19EN)) +#define __HAL_RCC_SDADC1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SDADC1EN)) +#define __HAL_RCC_SDADC2_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SDADC2EN)) +#define __HAL_RCC_SDADC3_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SDADC3EN)) +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +#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(0U) + +#define __HAL_RCC_TIM1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM1EN)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#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(0U) + +#define __HAL_RCC_SPI4_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SPI4EN)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx) +#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(0U) +#define __HAL_RCC_TIM20_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM20EN)) +#endif /* STM32F303xE || STM32F398xx */ + +/** + * @} + */ + +/** @defgroup RCCEx_AHB_Peripheral_Clock_Enable_Disable_Status RCC Extended AHB Peripheral Clock Enable Disable Status + * @brief Get the enable or disable status of the AHB 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(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +#define __HAL_RCC_ADC1_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_ADC1EN)) != RESET) + +#define __HAL_RCC_ADC1_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_ADC1EN)) == RESET) +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_DMA2_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA2EN)) != RESET) +#define __HAL_RCC_GPIOE_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOEEN)) != RESET) +#define __HAL_RCC_ADC12_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_ADC12EN)) != RESET) + +#define __HAL_RCC_DMA2_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA2EN)) == RESET) +#define __HAL_RCC_GPIOE_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOEEN)) == RESET) +#define __HAL_RCC_ADC12_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_ADC12EN)) == RESET) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_ADC34_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_ADC34EN)) != RESET) + +#define __HAL_RCC_ADC34_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_ADC34EN)) == RESET) +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx */ + +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#define __HAL_RCC_ADC12_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_ADC12EN)) != RESET) + +#define __HAL_RCC_ADC12_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_ADC12EN)) == RESET) +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_DMA2_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA2EN)) != RESET) +#define __HAL_RCC_GPIOE_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOEEN)) != RESET) + +#define __HAL_RCC_DMA2_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA2EN)) == RESET) +#define __HAL_RCC_GPIOE_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOEEN)) == RESET) +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define __HAL_RCC_FMC_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_FMCEN)) != RESET) +#define __HAL_RCC_GPIOG_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOGEN)) != RESET) +#define __HAL_RCC_GPIOH_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOHEN)) != RESET) + +#define __HAL_RCC_FMC_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_FMCEN)) == RESET) +#define __HAL_RCC_GPIOG_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOGEN)) == RESET) +#define __HAL_RCC_GPIOH_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOHEN)) == RESET) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ +/** + * @} + */ + +/** @defgroup RCCEx_APB1_Clock_Enable_Disable_Status RCC Extended APB1 Peripheral Clock Enable Disable Status + * @brief Get the enable or disable status of 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. + * @{ + */ +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +#define __HAL_RCC_SPI2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI2EN)) != RESET) +#define __HAL_RCC_SPI3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) != RESET) +#define __HAL_RCC_I2C2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C2EN)) != RESET) +#define __HAL_RCC_I2C3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C3EN)) != RESET) + +#define __HAL_RCC_SPI2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI2EN)) == RESET) +#define __HAL_RCC_SPI3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) == RESET) +#define __HAL_RCC_I2C2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C2EN)) == RESET) +#define __HAL_RCC_I2C3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C3EN)) == RESET) +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_TIM3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM3EN)) != RESET) +#define __HAL_RCC_TIM4_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM4EN)) != RESET) +#define __HAL_RCC_SPI2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI2EN)) != RESET) +#define __HAL_RCC_SPI3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) != RESET) +#define __HAL_RCC_UART4_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART4EN)) != RESET) +#define __HAL_RCC_UART5_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART5EN)) != RESET) +#define __HAL_RCC_I2C2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C2EN)) != RESET) + +#define __HAL_RCC_TIM3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM3EN)) == RESET) +#define __HAL_RCC_TIM4_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM4EN)) == RESET) +#define __HAL_RCC_SPI2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI2EN)) == RESET) +#define __HAL_RCC_SPI3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) == RESET) +#define __HAL_RCC_UART4_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART4EN)) == RESET) +#define __HAL_RCC_UART5_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART5EN)) == RESET) +#define __HAL_RCC_I2C2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C2EN)) == RESET) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#define __HAL_RCC_TIM3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM3EN)) != RESET) +#define __HAL_RCC_DAC2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DAC2EN)) != RESET) + +#define __HAL_RCC_TIM3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM3EN)) == RESET) +#define __HAL_RCC_DAC2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DAC2EN)) == RESET) +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_TIM3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM3EN)) != RESET) +#define __HAL_RCC_TIM4_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM4EN)) != RESET) +#define __HAL_RCC_TIM5_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM5EN)) != RESET) +#define __HAL_RCC_TIM12_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM12EN)) != RESET) +#define __HAL_RCC_TIM13_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM13EN)) != RESET) +#define __HAL_RCC_TIM14_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM14EN)) != RESET) +#define __HAL_RCC_TIM18_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM18EN)) != RESET) +#define __HAL_RCC_SPI2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI2EN)) != RESET) +#define __HAL_RCC_SPI3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) != RESET) +#define __HAL_RCC_I2C2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C2EN)) != RESET) +#define __HAL_RCC_DAC2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DAC2EN)) != RESET) +#define __HAL_RCC_CEC_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_CECEN)) != RESET) + +#define __HAL_RCC_TIM3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM3EN)) == RESET) +#define __HAL_RCC_TIM4_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM4EN)) == RESET) +#define __HAL_RCC_TIM5_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM5EN)) == RESET) +#define __HAL_RCC_TIM12_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM12EN)) == RESET) +#define __HAL_RCC_TIM13_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM13EN)) == RESET) +#define __HAL_RCC_TIM14_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM14EN)) == RESET) +#define __HAL_RCC_TIM18_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM18EN)) == RESET) +#define __HAL_RCC_SPI2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI2EN)) == RESET) +#define __HAL_RCC_SPI3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) == RESET) +#define __HAL_RCC_I2C2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C2EN)) == RESET) +#define __HAL_RCC_DAC2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DAC2EN)) == RESET) +#define __HAL_RCC_CEC_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_CECEN)) == RESET) +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx) \ + || defined(STM32F303xC) || defined(STM32F358xx) \ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)\ + || defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_TIM7_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM7EN)) != RESET) + +#define __HAL_RCC_TIM7_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM7EN)) == RESET) +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ + /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE)\ + || defined(STM32F302xC) || defined(STM32F303xC)\ + || defined(STM32F302x8) \ + || defined(STM32F373xC) +#define __HAL_RCC_USB_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USBEN)) != RESET) + +#define __HAL_RCC_USB_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USBEN)) == RESET) +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F302x8 || */ + /* STM32F373xC */ + +#if !defined(STM32F301x8) +#define __HAL_RCC_CAN1_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_CANEN)) != RESET) + +#define __HAL_RCC_CAN1_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_CANEN)) == RESET) +#endif /* STM32F301x8*/ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define __HAL_RCC_I2C3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C3EN)) != RESET) + +#define __HAL_RCC_I2C3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C3EN)) == RESET) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ +/** + * @} + */ + +/** @defgroup RCCEx_APB2_Clock_Enable_Disable_Status RCC Extended APB2 Peripheral Clock Enable Disable Status + * @brief Get the enable or disable status of 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. + * @{ + */ +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_SPI1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SPI1EN)) != RESET) + +#define __HAL_RCC_SPI1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SPI1EN)) == RESET) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_TIM8_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM8EN)) != RESET) + +#define __HAL_RCC_TIM8_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM8EN)) == RESET) +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx */ + +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#define __HAL_RCC_SPI1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SPI1EN)) != RESET) + +#define __HAL_RCC_SPI1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SPI1EN)) == RESET) +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F334x8) +#define __HAL_RCC_HRTIM1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_HRTIM1EN)) != RESET) + +#define __HAL_RCC_HRTIM1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_HRTIM1EN)) == RESET) +#endif /* STM32F334x8 */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_ADC1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_ADC1EN)) != RESET) +#define __HAL_RCC_SPI1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SPI1EN)) != RESET) +#define __HAL_RCC_TIM19_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM19EN)) != RESET) +#define __HAL_RCC_SDADC1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SDADC1EN)) != RESET) +#define __HAL_RCC_SDADC2_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SDADC2EN)) != RESET) +#define __HAL_RCC_SDADC3_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SDADC3EN)) != RESET) + +#define __HAL_RCC_ADC1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_ADC1EN)) == RESET) +#define __HAL_RCC_SPI1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SPI1EN)) == RESET) +#define __HAL_RCC_TIM19_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM19EN)) == RESET) +#define __HAL_RCC_SDADC1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SDADC1EN)) == RESET) +#define __HAL_RCC_SDADC2_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SDADC2EN)) == RESET) +#define __HAL_RCC_SDADC3_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SDADC3EN)) == RESET) +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +#define __HAL_RCC_TIM1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM1EN)) != RESET) + +#define __HAL_RCC_TIM1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM1EN)) == RESET) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define __HAL_RCC_SPI4_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SPI4EN)) != RESET) + +#define __HAL_RCC_SPI4_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SPI4EN)) == RESET) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx) +#define __HAL_RCC_TIM20_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM20EN)) != RESET) + +#define __HAL_RCC_TIM20_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM20EN)) == RESET) +#endif /* STM32F303xE || STM32F398xx */ +/** + * @} + */ + +/** @defgroup RCCEx_AHB_Force_Release_Reset RCC Extended AHB Force Release Reset + * @brief Force or release AHB peripheral reset. + * @{ + */ +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +#define __HAL_RCC_ADC1_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_ADC1RST)) + +#define __HAL_RCC_ADC1_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_ADC1RST)) +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_GPIOE_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOERST)) +#define __HAL_RCC_ADC12_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_ADC12RST)) +/* Aliases for STM32 F3 compatibility */ +#define __HAL_RCC_ADC1_FORCE_RESET() __HAL_RCC_ADC12_FORCE_RESET() +#define __HAL_RCC_ADC2_FORCE_RESET() __HAL_RCC_ADC12_FORCE_RESET() + +#define __HAL_RCC_GPIOE_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOERST)) +#define __HAL_RCC_ADC12_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_ADC12RST)) +/* Aliases for STM32 F3 compatibility */ +#define __HAL_RCC_ADC1_RELEASE_RESET() __HAL_RCC_ADC12_RELEASE_RESET() +#define __HAL_RCC_ADC2_RELEASE_RESET() __HAL_RCC_ADC12_RELEASE_RESET() +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_ADC34_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_ADC34RST)) + +#define __HAL_RCC_ADC34_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_ADC34RST)) +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx */ + +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#define __HAL_RCC_ADC12_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_ADC12RST)) +/* Aliases for STM32 F3 compatibility */ +#define __HAL_RCC_ADC1_FORCE_RESET() __HAL_RCC_ADC12_FORCE_RESET() +#define __HAL_RCC_ADC2_FORCE_RESET() __HAL_RCC_ADC12_FORCE_RESET() + +#define __HAL_RCC_ADC12_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_ADC12RST)) +/* Aliases for STM32 F3 compatibility */ +#define __HAL_RCC_ADC1_RELEASE_RESET() __HAL_RCC_ADC12_RELEASE_RESET() +#define __HAL_RCC_ADC2_RELEASE_RESET() __HAL_RCC_ADC12_RELEASE_RESET() +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_GPIOE_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOERST)) + +#define __HAL_RCC_GPIOE_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOERST)) +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define __HAL_RCC_FMC_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_FMCRST)) +#define __HAL_RCC_GPIOG_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOGRST)) +#define __HAL_RCC_GPIOH_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOHRST)) + +#define __HAL_RCC_FMC_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_FMCRST)) +#define __HAL_RCC_GPIOG_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOGRST)) +#define __HAL_RCC_GPIOH_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOHRST)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ +/** + * @} + */ + +/** @defgroup RCCEx_APB1_Force_Release_Reset RCC Extended APB1 Force Release Reset + * @brief Force or release APB1 peripheral reset. + * @{ + */ +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +#define __HAL_RCC_SPI2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_SPI2RST)) +#define __HAL_RCC_SPI3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_SPI3RST)) +#define __HAL_RCC_I2C2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C2RST)) +#define __HAL_RCC_I2C3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C3RST)) + +#define __HAL_RCC_SPI2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_SPI2RST)) +#define __HAL_RCC_SPI3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_SPI3RST)) +#define __HAL_RCC_I2C2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_I2C2RST)) +#define __HAL_RCC_I2C3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_I2C3RST)) +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_TIM3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM3RST)) +#define __HAL_RCC_TIM4_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM4RST)) +#define __HAL_RCC_SPI2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_SPI2RST)) +#define __HAL_RCC_SPI3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_SPI3RST)) +#define __HAL_RCC_UART4_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_UART4RST)) +#define __HAL_RCC_UART5_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_UART5RST)) +#define __HAL_RCC_I2C2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C2RST)) + +#define __HAL_RCC_TIM3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM3RST)) +#define __HAL_RCC_TIM4_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM4RST)) +#define __HAL_RCC_SPI2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_SPI2RST)) +#define __HAL_RCC_SPI3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_SPI3RST)) +#define __HAL_RCC_UART4_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_UART4RST)) +#define __HAL_RCC_UART5_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_UART5RST)) +#define __HAL_RCC_I2C2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_I2C2RST)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#define __HAL_RCC_TIM3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM3RST)) +#define __HAL_RCC_DAC2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_DAC2RST)) + +#define __HAL_RCC_TIM3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM3RST)) +#define __HAL_RCC_DAC2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_DAC2RST)) +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_TIM3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM3RST)) +#define __HAL_RCC_TIM4_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM4RST)) +#define __HAL_RCC_TIM5_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM5RST)) +#define __HAL_RCC_TIM12_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM12RST)) +#define __HAL_RCC_TIM13_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM13RST)) +#define __HAL_RCC_TIM14_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM14RST)) +#define __HAL_RCC_TIM18_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM18RST)) +#define __HAL_RCC_SPI2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_SPI2RST)) +#define __HAL_RCC_SPI3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_SPI3RST)) +#define __HAL_RCC_I2C2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C2RST)) +#define __HAL_RCC_DAC2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_DAC2RST)) +#define __HAL_RCC_CEC_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_CECRST)) + +#define __HAL_RCC_TIM3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM3RST)) +#define __HAL_RCC_TIM4_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM4RST)) +#define __HAL_RCC_TIM5_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM5RST)) +#define __HAL_RCC_TIM12_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM12RST)) +#define __HAL_RCC_TIM13_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM13RST)) +#define __HAL_RCC_TIM14_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM14RST)) +#define __HAL_RCC_TIM18_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM18RST)) +#define __HAL_RCC_SPI2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_SPI2RST)) +#define __HAL_RCC_SPI3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_SPI3RST)) +#define __HAL_RCC_I2C2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_I2C2RST)) +#define __HAL_RCC_DAC2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_DAC2RST)) +#define __HAL_RCC_CEC_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_CECRST)) +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)\ + || defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_TIM7_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM7RST)) + +#define __HAL_RCC_TIM7_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM7RST)) +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ + /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE)\ + || defined(STM32F302xC) || defined(STM32F303xC)\ + || defined(STM32F302x8) \ + || defined(STM32F373xC) +#define __HAL_RCC_USB_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USBRST)) + +#define __HAL_RCC_USB_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USBRST)) +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F302x8 || */ + /* STM32F373xC */ + +#if !defined(STM32F301x8) +#define __HAL_RCC_CAN1_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_CANRST)) + +#define __HAL_RCC_CAN1_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_CANRST)) +#endif /* STM32F301x8*/ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define __HAL_RCC_I2C3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C3RST)) + +#define __HAL_RCC_I2C3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_I2C3RST)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ +/** + * @} + */ + +/** @defgroup RCCEx_APB2_Force_Release_Reset RCC Extended APB2 Force Release Reset + * @brief Force or release APB2 peripheral reset. + * @{ + */ +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_SPI1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SPI1RST)) + +#define __HAL_RCC_SPI1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SPI1RST)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_RCC_TIM8_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM8RST)) + +#define __HAL_RCC_TIM8_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM8RST)) +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx */ + +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +#define __HAL_RCC_SPI1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SPI1RST)) + +#define __HAL_RCC_SPI1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SPI1RST)) +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F334x8) +#define __HAL_RCC_HRTIM1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_HRTIM1RST)) + +#define __HAL_RCC_HRTIM1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_HRTIM1RST)) +#endif /* STM32F334x8 */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +#define __HAL_RCC_ADC1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_ADC1RST)) +#define __HAL_RCC_SPI1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SPI1RST)) +#define __HAL_RCC_TIM19_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM19RST)) +#define __HAL_RCC_SDADC1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SDADC1RST)) +#define __HAL_RCC_SDADC2_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SDADC2RST)) +#define __HAL_RCC_SDADC3_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SDADC3RST)) + +#define __HAL_RCC_ADC1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_ADC1RST)) +#define __HAL_RCC_SPI1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SPI1RST)) +#define __HAL_RCC_TIM19_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM19RST)) +#define __HAL_RCC_SDADC1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SDADC1RST)) +#define __HAL_RCC_SDADC2_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SDADC2RST)) +#define __HAL_RCC_SDADC3_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SDADC3RST)) +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +#define __HAL_RCC_TIM1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM1RST)) + +#define __HAL_RCC_TIM1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM1RST)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) +#define __HAL_RCC_SPI4_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SPI4RST)) + +#define __HAL_RCC_SPI4_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SPI4RST)) +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx) +#define __HAL_RCC_TIM20_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM20RST)) + +#define __HAL_RCC_TIM20_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM20RST)) +#endif /* STM32F303xE || STM32F398xx */ + +/** + * @} + */ + +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) +/** @defgroup RCCEx_I2Cx_Clock_Config RCC Extended I2Cx Clock Config + * @{ + */ + +/** @brief Macro to configure the I2C2 clock (I2C2CLK). + * @param __I2C2CLKSource__ specifies the I2C2 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2C2CLKSOURCE_HSI HSI selected as I2C2 clock + * @arg @ref RCC_I2C2CLKSOURCE_SYSCLK System Clock selected as I2C2 clock + */ +#define __HAL_RCC_I2C2_CONFIG(__I2C2CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_I2C2SW, (uint32_t)(__I2C2CLKSource__)) + +/** @brief Macro to get the I2C2 clock source. + * @retval The clock source can be one of the following values: + * @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() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_I2C2SW))) + +/** @brief Macro to configure the I2C3 clock (I2C3CLK). + * @param __I2C3CLKSource__ specifies the I2C3 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2C3CLKSOURCE_HSI HSI selected as I2C3 clock + * @arg @ref RCC_I2C3CLKSOURCE_SYSCLK System Clock selected as I2C3 clock + */ +#define __HAL_RCC_I2C3_CONFIG(__I2C3CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_I2C3SW, (uint32_t)(__I2C3CLKSource__)) + +/** @brief Macro to get the I2C3 clock source. + * @retval The clock source can be one of the following values: + * @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() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_I2C3SW))) + +/** + * @} + */ + +/** @defgroup RCCEx_TIMx_Clock_Config RCC Extended TIMx Clock Config + * @{ + */ +/** @brief Macro to configure the TIM1 clock (TIM1CLK). + * @param __TIM1CLKSource__ specifies the TIM1 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM1CLK_HCLK HCLK selected as TIM1 clock + * @arg @ref RCC_TIM1CLK_PLLCLK PLL Clock selected as TIM1 clock + */ +#define __HAL_RCC_TIM1_CONFIG(__TIM1CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM1SW, (uint32_t)(__TIM1CLKSource__)) + +/** @brief Macro to get the TIM1 clock (TIM1CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM1CLK_HCLK HCLK selected as TIM1 clock + * @arg @ref RCC_TIM1CLK_PLLCLK PLL Clock selected as TIM1 clock + */ +#define __HAL_RCC_GET_TIM1_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM1SW))) + +/** @brief Macro to configure the TIM15 clock (TIM15CLK). + * @param __TIM15CLKSource__ specifies the TIM15 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM15CLK_HCLK HCLK selected as TIM15 clock + * @arg @ref RCC_TIM15CLK_PLL PLL Clock selected as TIM15 clock + */ +#define __HAL_RCC_TIM15_CONFIG(__TIM15CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM15SW, (uint32_t)(__TIM15CLKSource__)) + +/** @brief Macro to get the TIM15 clock (TIM15CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM15CLK_HCLK HCLK selected as TIM15 clock + * @arg @ref RCC_TIM15CLK_PLL PLL Clock selected as TIM15 clock + */ +#define __HAL_RCC_GET_TIM15_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM15SW))) + +/** @brief Macro to configure the TIM16 clock (TIM16CLK). + * @param __TIM16CLKSource__ specifies the TIM16 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM16CLK_HCLK HCLK selected as TIM16 clock + * @arg @ref RCC_TIM16CLK_PLL PLL Clock selected as TIM16 clock + */ +#define __HAL_RCC_TIM16_CONFIG(__TIM16CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM16SW, (uint32_t)(__TIM16CLKSource__)) + +/** @brief Macro to get the TIM16 clock (TIM16CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM16CLK_HCLK HCLK selected as TIM16 clock + * @arg @ref RCC_TIM16CLK_PLL PLL Clock selected as TIM16 clock + */ +#define __HAL_RCC_GET_TIM16_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM16SW))) + +/** @brief Macro to configure the TIM17 clock (TIM17CLK). + * @param __TIM17CLKSource__ specifies the TIM17 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM17CLK_HCLK HCLK selected as TIM17 clock + * @arg @ref RCC_TIM17CLK_PLL PLL Clock selected as TIM17 clock + */ +#define __HAL_RCC_TIM17_CONFIG(__TIM17CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM17SW, (uint32_t)(__TIM17CLKSource__)) + +/** @brief Macro to get the TIM17 clock (TIM17CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM17CLK_HCLK HCLK selected as TIM17 clock + * @arg @ref RCC_TIM17CLK_PLL PLL Clock selected as TIM17 clock + */ +#define __HAL_RCC_GET_TIM17_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM17SW))) + +/** + * @} + */ + +/** @defgroup RCCEx_I2Sx_Clock_Config RCC Extended I2Sx Clock Config + * @{ + */ +/** @brief Macro to configure the I2S clock source (I2SCLK). + * @note This function must be called before enabling the I2S APB clock. + * @param __I2SCLKSource__ specifies the I2S clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2SCLKSOURCE_SYSCLK SYSCLK clock used as I2S clock source + * @arg @ref RCC_I2SCLKSOURCE_EXT External clock mapped on the I2S_CKIN pin + * used as I2S clock source + */ +#define __HAL_RCC_I2S_CONFIG(__I2SCLKSource__) \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_I2SSRC, (uint32_t)(__I2SCLKSource__)) + +/** @brief Macro to get the I2S clock source (I2SCLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_I2SCLKSOURCE_SYSCLK SYSCLK clock used as I2S clock source + * @arg @ref RCC_I2SCLKSOURCE_EXT External clock mapped on the I2S_CKIN pin + * used as I2S clock source + */ +#define __HAL_RCC_GET_I2S_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_I2SSRC))) +/** + * @} + */ + +/** @defgroup RCCEx_ADCx_Clock_Config RCC Extended ADCx Clock Config + * @{ + */ + +/** @brief Macro to configure the ADC1 clock (ADC1CLK). + * @param __ADC1CLKSource__ specifies the ADC1 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_ADC1PLLCLK_OFF ADC1 PLL clock disabled, ADC1 can use AHB clock + * @arg @ref RCC_ADC1PLLCLK_DIV1 PLL clock divided by 1 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV2 PLL clock divided by 2 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV4 PLL clock divided by 4 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV6 PLL clock divided by 6 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV8 PLL clock divided by 8 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV10 PLL clock divided by 10 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV12 PLL clock divided by 12 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV16 PLL clock divided by 16 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV32 PLL clock divided by 32 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV64 PLL clock divided by 64 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV128 PLL clock divided by 128 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV256 PLL clock divided by 256 selected as ADC1 clock + */ +#define __HAL_RCC_ADC1_CONFIG(__ADC1CLKSource__) \ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_ADC1PRES, (uint32_t)(__ADC1CLKSource__)) + +/** @brief Macro to get the ADC1 clock + * @retval The clock source can be one of the following values: + * @arg @ref RCC_ADC1PLLCLK_OFF ADC1 PLL clock disabled, ADC1 can use AHB clock + * @arg @ref RCC_ADC1PLLCLK_DIV1 PLL clock divided by 1 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV2 PLL clock divided by 2 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV4 PLL clock divided by 4 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV6 PLL clock divided by 6 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV8 PLL clock divided by 8 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV10 PLL clock divided by 10 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV12 PLL clock divided by 12 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV16 PLL clock divided by 16 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV32 PLL clock divided by 32 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV64 PLL clock divided by 64 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV128 PLL clock divided by 128 selected as ADC1 clock + * @arg @ref RCC_ADC1PLLCLK_DIV256 PLL clock divided by 256 selected as ADC1 clock + */ +#define __HAL_RCC_GET_ADC1_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_ADC1PRES))) +/** + * @} + */ + +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) +/** @defgroup RCCEx_I2Cx_Clock_Config RCC Extended I2Cx Clock Config + * @{ + */ + +/** @brief Macro to configure the I2C2 clock (I2C2CLK). + * @param __I2C2CLKSource__ specifies the I2C2 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2C2CLKSOURCE_HSI HSI selected as I2C2 clock + * @arg @ref RCC_I2C2CLKSOURCE_SYSCLK System Clock selected as I2C2 clock + */ +#define __HAL_RCC_I2C2_CONFIG(__I2C2CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_I2C2SW, (uint32_t)(__I2C2CLKSource__)) + +/** @brief Macro to get the I2C2 clock source. + * @retval The clock source can be one of the following values: + * @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() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_I2C2SW))) +/** + * @} + */ + +/** @defgroup RCCEx_ADCx_Clock_Config RCC Extended ADCx Clock Config + * @{ + */ + +/** @brief Macro to configure the ADC1 & ADC2 clock (ADC12CLK). + * @param __ADC12CLKSource__ specifies the ADC1 & ADC2 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_ADC12PLLCLK_OFF ADC1 & ADC2 PLL clock disabled, ADC1 & ADC2 can use AHB clock + * @arg @ref RCC_ADC12PLLCLK_DIV1 PLL clock divided by 1 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV2 PLL clock divided by 2 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV4 PLL clock divided by 4 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV6 PLL clock divided by 6 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV8 PLL clock divided by 8 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV10 PLL clock divided by 10 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV12 PLL clock divided by 12 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV16 PLL clock divided by 16 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV32 PLL clock divided by 32 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV64 PLL clock divided by 64 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV128 PLL clock divided by 128 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV256 PLL clock divided by 256 selected as ADC1 & ADC2 clock + */ +#define __HAL_RCC_ADC12_CONFIG(__ADC12CLKSource__) \ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_ADCPRE12, (uint32_t)(__ADC12CLKSource__)) + +/** @brief Macro to get the ADC1 & ADC2 clock + * @retval The clock source can be one of the following values: + * @arg @ref RCC_ADC12PLLCLK_OFF ADC1 & ADC2 PLL clock disabled, ADC1 & ADC2 can use AHB clock + * @arg @ref RCC_ADC12PLLCLK_DIV1 PLL clock divided by 1 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV2 PLL clock divided by 2 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV4 PLL clock divided by 4 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV6 PLL clock divided by 6 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV8 PLL clock divided by 8 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV10 PLL clock divided by 10 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV12 PLL clock divided by 12 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV16 PLL clock divided by 16 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV32 PLL clock divided by 32 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV64 PLL clock divided by 64 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV128 PLL clock divided by 128 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV256 PLL clock divided by 256 selected as ADC1 & ADC2 clock + */ +#define __HAL_RCC_GET_ADC12_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_ADCPRE12))) +/** + * @} + */ + +/** @defgroup RCCEx_TIMx_Clock_Config RCC Extended TIMx Clock Config + * @{ + */ + +/** @brief Macro to configure the TIM1 clock (TIM1CLK). + * @param __TIM1CLKSource__ specifies the TIM1 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM1CLK_HCLK HCLK selected as TIM1 clock + * @arg @ref RCC_TIM1CLK_PLLCLK PLL Clock selected as TIM1 clock + */ +#define __HAL_RCC_TIM1_CONFIG(__TIM1CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM1SW, (uint32_t)(__TIM1CLKSource__)) + +/** @brief Macro to get the TIM1 clock (TIM1CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM1CLK_HCLK HCLK selected as TIM1 clock + * @arg @ref RCC_TIM1CLK_PLLCLK PLL Clock selected as TIM1 clock + */ +#define __HAL_RCC_GET_TIM1_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM1SW))) +/** + * @} + */ + +/** @defgroup RCCEx_I2Sx_Clock_Config RCC Extended I2Sx Clock Config + * @{ + */ + +/** @brief Macro to configure the I2S clock source (I2SCLK). + * @note This function must be called before enabling the I2S APB clock. + * @param __I2SCLKSource__ specifies the I2S clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2SCLKSOURCE_SYSCLK SYSCLK clock used as I2S clock source + * @arg @ref RCC_I2SCLKSOURCE_EXT External clock mapped on the I2S_CKIN pin + * used as I2S clock source + */ +#define __HAL_RCC_I2S_CONFIG(__I2SCLKSource__) \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_I2SSRC, (uint32_t)(__I2SCLKSource__)) + +/** @brief Macro to get the I2S clock source (I2SCLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_I2SCLKSOURCE_SYSCLK SYSCLK clock used as I2S clock source + * @arg @ref RCC_I2SCLKSOURCE_EXT External clock mapped on the I2S_CKIN pin + * used as I2S clock source + */ +#define __HAL_RCC_GET_I2S_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_I2SSRC))) +/** + * @} + */ + +/** @defgroup RCCEx_UARTx_Clock_Config RCC Extended UARTx Clock Config + * @{ + */ + +/** @brief Macro to configure the UART4 clock (UART4CLK). + * @param __UART4CLKSource__ 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 + */ +#define __HAL_RCC_UART4_CONFIG(__UART4CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_UART4SW, (uint32_t)(__UART4CLKSource__)) + +/** @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() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_UART4SW))) + +/** @brief Macro to configure the UART5 clock (UART5CLK). + * @param __UART5CLKSource__ 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 + */ +#define __HAL_RCC_UART5_CONFIG(__UART5CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_UART5SW, (uint32_t)(__UART5CLKSource__)) + +/** @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() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_UART5SW))) +/** + * @} + */ +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) +/** @defgroup RCCEx_ADCx_Clock_Config RCC Extended ADCx Clock Config + * @{ + */ + +/** @brief Macro to configure the ADC3 & ADC4 clock (ADC34CLK). + * @param __ADC34CLKSource__ specifies the ADC3 & ADC4 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_ADC34PLLCLK_OFF ADC3 & ADC4 PLL clock disabled, ADC3 & ADC4 can use AHB clock + * @arg @ref RCC_ADC34PLLCLK_DIV1 PLL clock divided by 1 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV2 PLL clock divided by 2 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV4 PLL clock divided by 4 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV6 PLL clock divided by 6 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV8 PLL clock divided by 8 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV10 PLL clock divided by 10 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV12 PLL clock divided by 12 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV16 PLL clock divided by 16 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV32 PLL clock divided by 32 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV64 PLL clock divided by 64 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV128 PLL clock divided by 128 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV256 PLL clock divided by 256 selected as ADC3 & ADC4 clock + */ +#define __HAL_RCC_ADC34_CONFIG(__ADC34CLKSource__) \ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_ADCPRE34, (uint32_t)(__ADC34CLKSource__)) + +/** @brief Macro to get the ADC3 & ADC4 clock + * @retval The clock source can be one of the following values: + * @arg @ref RCC_ADC34PLLCLK_OFF ADC3 & ADC4 PLL clock disabled, ADC3 & ADC4 can use AHB clock + * @arg @ref RCC_ADC34PLLCLK_DIV1 PLL clock divided by 1 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV2 PLL clock divided by 2 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV4 PLL clock divided by 4 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV6 PLL clock divided by 6 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV8 PLL clock divided by 8 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV10 PLL clock divided by 10 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV12 PLL clock divided by 12 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV16 PLL clock divided by 16 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV32 PLL clock divided by 32 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV64 PLL clock divided by 64 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV128 PLL clock divided by 128 selected as ADC3 & ADC4 clock + * @arg @ref RCC_ADC34PLLCLK_DIV256 PLL clock divided by 256 selected as ADC3 & ADC4 clock + */ +#define __HAL_RCC_GET_ADC34_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_ADCPRE34))) +/** + * @} + */ + +/** @defgroup RCCEx_TIMx_Clock_Config RCC Extended TIMx Clock Config + * @{ + */ + +/** @brief Macro to configure the TIM8 clock (TIM8CLK). + * @param __TIM8CLKSource__ specifies the TIM8 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM8CLK_HCLK HCLK selected as TIM8 clock + * @arg @ref RCC_TIM8CLK_PLLCLK PLL Clock selected as TIM8 clock + */ +#define __HAL_RCC_TIM8_CONFIG(__TIM8CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM8SW, (uint32_t)(__TIM8CLKSource__)) + +/** @brief Macro to get the TIM8 clock (TIM8CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM8CLK_HCLK HCLK selected as TIM8 clock + * @arg @ref RCC_TIM8CLK_PLLCLK PLL Clock selected as TIM8 clock + */ +#define __HAL_RCC_GET_TIM8_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM8SW))) + +/** + * @} + */ +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx */ + +#if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) +/** @defgroup RCCEx_ADCx_Clock_Config RCC Extended ADCx Clock Config + * @{ + */ + +/** @brief Macro to configure the ADC1 & ADC2 clock (ADC12CLK). + * @param __ADC12CLKSource__ specifies the ADC1 & ADC2 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_ADC12PLLCLK_OFF ADC1 & ADC2 PLL clock disabled, ADC1 & ADC2 can use AHB clock + * @arg @ref RCC_ADC12PLLCLK_DIV1 PLL clock divided by 1 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV2 PLL clock divided by 2 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV4 PLL clock divided by 4 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV6 PLL clock divided by 6 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV8 PLL clock divided by 8 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV10 PLL clock divided by 10 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV12 PLL clock divided by 12 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV16 PLL clock divided by 16 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV32 PLL clock divided by 32 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV64 PLL clock divided by 64 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV128 PLL clock divided by 128 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV256 PLL clock divided by 256 selected as ADC1 & ADC2 clock + */ +#define __HAL_RCC_ADC12_CONFIG(__ADC12CLKSource__) \ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_ADCPRE12, (uint32_t)(__ADC12CLKSource__)) + +/** @brief Macro to get the ADC1 & ADC2 clock + * @retval The clock source can be one of the following values: + * @arg @ref RCC_ADC12PLLCLK_OFF ADC1 & ADC2 PLL clock disabled, ADC1 & ADC2 can use AHB clock + * @arg @ref RCC_ADC12PLLCLK_DIV1 PLL clock divided by 1 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV2 PLL clock divided by 2 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV4 PLL clock divided by 4 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV6 PLL clock divided by 6 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV8 PLL clock divided by 8 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV10 PLL clock divided by 10 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV12 PLL clock divided by 12 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV16 PLL clock divided by 16 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV32 PLL clock divided by 32 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV64 PLL clock divided by 64 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV128 PLL clock divided by 128 selected as ADC1 & ADC2 clock + * @arg @ref RCC_ADC12PLLCLK_DIV256 PLL clock divided by 256 selected as ADC1 & ADC2 clock + */ +#define __HAL_RCC_GET_ADC12_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_ADCPRE12))) +/** + * @} + */ + +/** @defgroup RCCEx_TIMx_Clock_Config RCC Extended TIMx Clock Config + * @{ + */ +/** @brief Macro to configure the TIM1 clock (TIM1CLK). + * @param __TIM1CLKSource__ specifies the TIM1 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM1CLK_HCLK HCLK selected as TIM1 clock + * @arg @ref RCC_TIM1CLK_PLLCLK PLL Clock selected as TIM1 clock + */ +#define __HAL_RCC_TIM1_CONFIG(__TIM1CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM1SW, (uint32_t)(__TIM1CLKSource__)) + +/** @brief Macro to get the TIM1 clock (TIM1CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM1CLK_HCLK HCLK selected as TIM1 clock + * @arg @ref RCC_TIM1CLK_PLLCLK PLL Clock selected as TIM1 clock + */ +#define __HAL_RCC_GET_TIM1_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM1SW))) +/** + * @} + */ +#endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F334x8) +/** @defgroup RCCEx_HRTIMx_Clock_Config RCC Extended HRTIMx Clock Config + * @{ + */ +/** @brief Macro to configure the HRTIM1 clock. + * @param __HRTIM1CLKSource__ specifies the HRTIM1 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_HRTIM1CLK_HCLK HCLK selected as HRTIM1 clock + * @arg @ref RCC_HRTIM1CLK_PLLCLK PLL Clock selected as HRTIM1 clock + */ +#define __HAL_RCC_HRTIM1_CONFIG(__HRTIM1CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_HRTIM1SW, (uint32_t)(__HRTIM1CLKSource__)) + +/** @brief Macro to get the HRTIM1 clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_HRTIM1CLK_HCLK HCLK selected as HRTIM1 clock + * @arg @ref RCC_HRTIM1CLK_PLLCLK PLL Clock selected as HRTIM1 clock + */ +#define __HAL_RCC_GET_HRTIM1_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_HRTIM1SW))) +/** + * @} + */ +#endif /* STM32F334x8 */ + +#if defined(STM32F373xC) || defined(STM32F378xx) +/** @defgroup RCCEx_I2Cx_Clock_Config RCC Extended I2Cx Clock Config + * @{ + */ +/** @brief Macro to configure the I2C2 clock (I2C2CLK). + * @param __I2C2CLKSource__ specifies the I2C2 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2C2CLKSOURCE_HSI HSI selected as I2C2 clock + * @arg @ref RCC_I2C2CLKSOURCE_SYSCLK System Clock selected as I2C2 clock + */ +#define __HAL_RCC_I2C2_CONFIG(__I2C2CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_I2C2SW, (uint32_t)(__I2C2CLKSource__)) + +/** @brief Macro to get the I2C2 clock source. + * @retval The clock source can be one of the following values: + * @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() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_I2C2SW))) +/** + * @} + */ + +/** @defgroup RCCEx_ADCx_Clock_Config RCC Extended ADCx Clock Config + * @{ + */ +/** @brief Macro to configure the ADC1 clock (ADC1CLK). + * @param __ADC1CLKSource__ specifies the ADC1 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_ADC1PCLK2_DIV2 PCLK2 clock divided by 2 selected as ADC1 clock + * @arg @ref RCC_ADC1PCLK2_DIV4 PCLK2 clock divided by 4 selected as ADC1 clock + * @arg @ref RCC_ADC1PCLK2_DIV6 PCLK2 clock divided by 6 selected as ADC1 clock + * @arg @ref RCC_ADC1PCLK2_DIV8 PCLK2 clock divided by 8 selected as ADC1 clock + */ +#define __HAL_RCC_ADC1_CONFIG(__ADC1CLKSource__) \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_ADCPRE, (uint32_t)(__ADC1CLKSource__)) + +/** @brief Macro to get the ADC1 clock (ADC1CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_ADC1PCLK2_DIV2 PCLK2 clock divided by 2 selected as ADC1 clock + * @arg @ref RCC_ADC1PCLK2_DIV4 PCLK2 clock divided by 4 selected as ADC1 clock + * @arg @ref RCC_ADC1PCLK2_DIV6 PCLK2 clock divided by 6 selected as ADC1 clock + * @arg @ref RCC_ADC1PCLK2_DIV8 PCLK2 clock divided by 8 selected as ADC1 clock + */ +#define __HAL_RCC_GET_ADC1_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_ADCPRE))) +/** + * @} + */ + +/** @defgroup RCCEx_SDADCx_Clock_Config RCC Extended SDADCx Clock Config + * @{ + */ +/** @brief Macro to configure the SDADCx clock (SDADCxCLK). + * @param __SDADCPrescaler__ specifies the SDADCx system clock prescaler. + * This parameter can be one of the following values: + * @arg @ref RCC_SDADCSYSCLK_DIV1 SYSCLK clock selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV2 SYSCLK clock divided by 2 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV4 SYSCLK clock divided by 4 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV6 SYSCLK clock divided by 6 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV8 SYSCLK clock divided by 8 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV10 SYSCLK clock divided by 10 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV12 SYSCLK clock divided by 12 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV14 SYSCLK clock divided by 14 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV16 SYSCLK clock divided by 16 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV20 SYSCLK clock divided by 20 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV24 SYSCLK clock divided by 24 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV28 SYSCLK clock divided by 28 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV32 SYSCLK clock divided by 32 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV36 SYSCLK clock divided by 36 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV40 SYSCLK clock divided by 40 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV44 SYSCLK clock divided by 44 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV48 SYSCLK clock divided by 48 selected as SDADCx clock + */ +#define __HAL_RCC_SDADC_CONFIG(__SDADCPrescaler__) \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_SDPRE, (uint32_t)(__SDADCPrescaler__)) + +/** @brief Macro to get the SDADCx clock prescaler. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_SDADCSYSCLK_DIV1 SYSCLK clock selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV2 SYSCLK clock divided by 2 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV4 SYSCLK clock divided by 4 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV6 SYSCLK clock divided by 6 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV8 SYSCLK clock divided by 8 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV10 SYSCLK clock divided by 10 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV12 SYSCLK clock divided by 12 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV14 SYSCLK clock divided by 14 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV16 SYSCLK clock divided by 16 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV20 SYSCLK clock divided by 20 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV24 SYSCLK clock divided by 24 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV28 SYSCLK clock divided by 28 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV32 SYSCLK clock divided by 32 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV36 SYSCLK clock divided by 36 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV40 SYSCLK clock divided by 40 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV44 SYSCLK clock divided by 44 selected as SDADCx clock + * @arg @ref RCC_SDADCSYSCLK_DIV48 SYSCLK clock divided by 48 selected as SDADCx clock + */ +#define __HAL_RCC_GET_SDADC_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_SDPRE))) +/** + * @} + */ + +/** @defgroup RCCEx_CECx_Clock_Config RCC Extended CECx Clock Config + * @{ + */ +/** @brief Macro to configure the CEC clock. + * @param __CECCLKSource__ specifies the CEC clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_CECCLKSOURCE_HSI HSI selected as CEC clock + * @arg @ref RCC_CECCLKSOURCE_LSE LSE selected as CEC clock + */ +#define __HAL_RCC_CEC_CONFIG(__CECCLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_CECSW, (uint32_t)(__CECCLKSource__)) + +/** @brief Macro to get the HDMI CEC clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_CECCLKSOURCE_HSI HSI selected as CEC clock + * @arg @ref RCC_CECCLKSOURCE_LSE LSE selected as CEC clock + */ +#define __HAL_RCC_GET_CEC_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_CECSW))) +/** + * @} + */ + +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE)\ + || defined(STM32F302xC) || defined(STM32F303xC)\ + || defined(STM32F302x8) \ + || defined(STM32F373xC) + +/** @defgroup RCCEx_USBx_Clock_Config RCC Extended USBx Clock Config + * @{ + */ +/** @brief Macro to configure the USB clock (USBCLK). + * @param __USBCLKSource__ specifies the USB clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_USBCLKSOURCE_PLL PLL Clock divided by 1 selected as USB clock + * @arg @ref RCC_USBCLKSOURCE_PLL_DIV1_5 PLL Clock divided by 1.5 selected as USB clock + */ +#define __HAL_RCC_USB_CONFIG(__USBCLKSource__) \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_USBPRE, (uint32_t)(__USBCLKSource__)) + +/** @brief Macro to get the USB clock source. + * @retval The clock source can be one of the following values: + * @arg @ref RCC_USBCLKSOURCE_PLL PLL Clock divided by 1 selected as USB clock + * @arg @ref RCC_USBCLKSOURCE_PLL_DIV1_5 PLL Clock divided by 1.5 selected as USB clock + */ +#define __HAL_RCC_GET_USB_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_USBPRE))) +/** + * @} + */ + +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F302x8 || */ + /* STM32F373xC */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) + +/** @defgroup RCCEx_I2Cx_Clock_Config RCC Extended I2Cx Clock Config + * @{ + */ +/** @brief Macro to configure the I2C3 clock (I2C3CLK). + * @param __I2C3CLKSource__ specifies the I2C3 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2C3CLKSOURCE_HSI HSI selected as I2C3 clock + * @arg @ref RCC_I2C3CLKSOURCE_SYSCLK System Clock selected as I2C3 clock + */ +#define __HAL_RCC_I2C3_CONFIG(__I2C3CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_I2C3SW, (uint32_t)(__I2C3CLKSource__)) + +/** @brief Macro to get the I2C3 clock source. + * @retval The clock source can be one of the following values: + * @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() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_I2C3SW))) +/** + * @} + */ + +/** @defgroup RCCEx_TIMx_Clock_Config RCC Extended TIMx Clock Config + * @{ + */ +/** @brief Macro to configure the TIM2 clock (TIM2CLK). + * @param __TIM2CLKSource__ specifies the TIM2 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM2CLK_HCLK HCLK selected as TIM2 clock + * @arg @ref RCC_TIM2CLK_PLL PLL Clock selected as TIM2 clock + */ +#define __HAL_RCC_TIM2_CONFIG(__TIM2CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM2SW, (uint32_t)(__TIM2CLKSource__)) + +/** @brief Macro to get the TIM2 clock (TIM2CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM2CLK_HCLK HCLK selected as TIM2 clock + * @arg @ref RCC_TIM2CLK_PLL PLL Clock selected as TIM2 clock + */ +#define __HAL_RCC_GET_TIM2_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM2SW))) + +/** @brief Macro to configure the TIM3 & TIM4 clock (TIM34CLK). + * @param __TIM34CLKSource__ specifies the TIM3 & TIM4 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM34CLK_HCLK HCLK selected as TIM3 & TIM4 clock + * @arg @ref RCC_TIM34CLK_PLL PLL Clock selected as TIM3 & TIM4 clock + */ +#define __HAL_RCC_TIM34_CONFIG(__TIM34CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM34SW, (uint32_t)(__TIM34CLKSource__)) + +/** @brief Macro to get the TIM3 & TIM4 clock (TIM34CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM34CLK_HCLK HCLK selected as TIM3 & TIM4 clock + * @arg @ref RCC_TIM34CLK_PLL PLL Clock selected as TIM3 & TIM4 clock + */ +#define __HAL_RCC_GET_TIM34_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM34SW))) + +/** @brief Macro to configure the TIM15 clock (TIM15CLK). + * @param __TIM15CLKSource__ specifies the TIM15 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM15CLK_HCLK HCLK selected as TIM15 clock + * @arg @ref RCC_TIM15CLK_PLL PLL Clock selected as TIM15 clock + */ +#define __HAL_RCC_TIM15_CONFIG(__TIM15CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM15SW, (uint32_t)(__TIM15CLKSource__)) + +/** @brief Macro to get the TIM15 clock (TIM15CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM15CLK_HCLK HCLK selected as TIM15 clock + * @arg @ref RCC_TIM15CLK_PLL PLL Clock selected as TIM15 clock + */ +#define __HAL_RCC_GET_TIM15_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM15SW))) + +/** @brief Macro to configure the TIM16 clock (TIM16CLK). + * @param __TIM16CLKSource__ specifies the TIM16 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM16CLK_HCLK HCLK selected as TIM16 clock + * @arg @ref RCC_TIM16CLK_PLL PLL Clock selected as TIM16 clock + */ +#define __HAL_RCC_TIM16_CONFIG(__TIM16CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM16SW, (uint32_t)(__TIM16CLKSource__)) + +/** @brief Macro to get the TIM16 clock (TIM16CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM16CLK_HCLK HCLK selected as TIM16 clock + * @arg @ref RCC_TIM16CLK_PLL PLL Clock selected as TIM16 clock + */ +#define __HAL_RCC_GET_TIM16_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM16SW))) + +/** @brief Macro to configure the TIM17 clock (TIM17CLK). + * @param __TIM17CLKSource__ specifies the TIM17 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM17CLK_HCLK HCLK selected as TIM17 clock + * @arg @ref RCC_TIM17CLK_PLL PLL Clock selected as TIM17 clock + */ +#define __HAL_RCC_TIM17_CONFIG(__TIM17CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM17SW, (uint32_t)(__TIM17CLKSource__)) + +/** @brief Macro to get the TIM17 clock (TIM17CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM17CLK_HCLK HCLK selected as TIM17 clock + * @arg @ref RCC_TIM17CLK_PLL PLL Clock selected as TIM17 clock + */ +#define __HAL_RCC_GET_TIM17_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM17SW))) + +/** + * @} + */ + +#endif /* STM32f302xE || STM32f303xE || STM32F398xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx) +/** @addtogroup RCCEx_TIMx_Clock_Config RCC Extended TIMx Clock Config + * @{ + */ +/** @brief Macro to configure the TIM20 clock (TIM20CLK). + * @param __TIM20CLKSource__ specifies the TIM20 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_TIM20CLK_HCLK HCLK selected as TIM20 clock + * @arg @ref RCC_TIM20CLK_PLL PLL Clock selected as TIM20 clock + */ +#define __HAL_RCC_TIM20_CONFIG(__TIM20CLKSource__) \ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_TIM20SW, (uint32_t)(__TIM20CLKSource__)) + +/** @brief Macro to get the TIM20 clock (TIM20CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_TIM20CLK_HCLK HCLK selected as TIM20 clock + * @arg @ref RCC_TIM20CLK_PLL PLL Clock selected as TIM20 clock + */ +#define __HAL_RCC_GET_TIM20_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_TIM20SW))) + +/** + * @} + */ +#endif /* STM32f303xE || STM32F398xx */ + +/** @defgroup RCCEx_LSE_Configuration LSE Drive Configuration + * @{ + */ + +/** + * @brief Macro to configure the External Low Speed oscillator (LSE) drive capability. + * @param __RCC_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(__RCC_LSEDRIVE__) (MODIFY_REG(RCC->BDCR,\ + RCC_BDCR_LSEDRV, (uint32_t)(__RCC_LSEDRIVE__) )) + +/** + * @} + */ + +/** + * @} + */ + +/* 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); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_HAL_RCC_EX_H */ + + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h new file mode 100644 index 0000000..3161101 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h @@ -0,0 +1,2567 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_tim.h + * @author MCD Application Team + * @brief Header file of TIM HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 STM32F3xx_HAL_TIM_H +#define STM32F3xx_HAL_TIM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_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 */ + + 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. */ + + 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 */ + + 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 */ + + 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 */ +#if defined(TIM_CR2_MMS2) + uint32_t MasterOutputTrigger2; /*!< Trigger output2 (TRGO2) selection + This parameter can be a value of @ref TIM_Master_Mode_Selection_2 */ +#endif /* TIM_CR2_MMS2 */ + 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 */ + +#if defined(TIM_BDTR_BK2E) + 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 */ + +#endif /*TIM_BDTR_BK2E */ + 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 */ +#if defined(TIM_CCER_CC5E) + HAL_TIM_ACTIVE_CHANNEL_5 = 0x10U, /*!< The active channel is 5 */ +#endif /* TIM_CCER_CC5E */ +#if defined(TIM_CCER_CC6E) + HAL_TIM_ACTIVE_CHANNEL_6 = 0x20U, /*!< The active channel is 6 */ +#endif /* TIM_CCER_CC6E */ + 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 */ +#if defined(TIM_BDTR_BK2E) + void (* Break2Callback)(struct __TIM_HandleTypeDef *htim); /*!< TIM Break2 Callback */ +#endif /* TIM_BDTR_BK2E */ +#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 */ +#if defined(TIM_BDTR_BK2E) + , HAL_TIM_BREAK2_CB_ID = 0x1BU /*!< TIM Break2 Callback ID */ +#endif /* TIM_BDTR_BK2E */ +} 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 0x00000000U /*!< OCREF_CLR is disabled */ +#define TIM_CLEARINPUTSOURCE_ETR 0x00000001U /*!< OCREF_CLR is connected to ETRF input */ +#if defined(TIM_SMCR_OCCS) +#define TIM_CLEARINPUTSOURCE_OCREFCLR 0x00000002U /*!< OCREF_CLR is connected to OCREF_CLR_INT */ +#endif /* TIM_SMCR_OCCS */ +/** + * @} + */ + +/** @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_DCR 0x00000012U +#define TIM_DMABASE_DMAR 0x00000013U +#define TIM_DMABASE_OR 0x00000014U +#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E) +#define TIM_DMABASE_CCMR3 0x00000015U +#define TIM_DMABASE_CCR5 0x00000016U +#define TIM_DMABASE_CCR6 0x00000017U +#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */ +/** + * @} + */ + +/** @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 */ +#if defined(TIM_EGR_B2G) +#define TIM_EVENTSOURCE_BREAK2 TIM_EGR_B2G /*!< A break 2 event is generated */ +#endif /* TIM_EGR_B2G */ +/** + * @} + */ + +/** @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 */ +/** + * @} + */ + +#if defined(TIM_CR1_UIFREMAP) +/** @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 */ +/** + * @} + */ + +#endif /* TIM_CR1_UIFREMAP */ +/** @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. */ +/** + * @} + */ + +/** @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 */ +/** + * @} + */ + +/** @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 */ +#if defined(TIM_SR_CC5IF) +#define TIM_FLAG_CC5 TIM_SR_CC5IF /*!< Capture/Compare 5 interrupt flag */ +#endif /* TIM_SR_CC5IF */ +#if defined(TIM_SR_CC6IF) +#define TIM_FLAG_CC6 TIM_SR_CC6IF /*!< Capture/Compare 6 interrupt flag */ +#endif /* TIM_SR_CC6IF */ +#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 */ +#if defined(TIM_SR_B2IF) +#define TIM_FLAG_BREAK2 TIM_SR_B2IF /*!< Break 2 interrupt flag */ +#endif /* TIM_SR_B2IF */ +#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 */ +/** + * @} + */ + +/** @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 */ +#if defined(TIM_CCER_CC5E) +#define TIM_CHANNEL_5 0x00000010U /*!< Compare channel 5 identifier */ +#endif /* TIM_CCER_CC5E */ +#if defined(TIM_CCER_CC6E) +#define TIM_CHANNEL_6 0x00000014U /*!< Compare channel 6 identifier */ +#endif /* TIM_CCER_CC6E */ +#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) */ +/** + * @} + */ + +/** @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 */ +/** + * @} + */ + +#if defined(TIM_BDTR_BK2E) +/** @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 */ +/** + * @} + */ +#endif /* TIM_BDTR_BK2E */ + +/** @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) */ +/** + * @} + */ + +#if defined(TIM_CCR5_CCR5) +/** @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 */ +/** + * @} + */ +#endif /* TIM_CCR5_CCR5 */ + +/** @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) */ +/** + * @} + */ + +#if defined(TIM_CR2_MMS2) +/** @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 */ +/** + * @} + */ +#endif /* TIM_CR2_MMS2 */ + +/** @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 */ +#if defined (TIM_SMCR_SMS_3) +#define TIM_SLAVEMODE_COMBINED_RESETTRIGGER TIM_SMCR_SMS_3 /*!< Combined reset + trigger mode */ +#endif /* TIM_SMCR_SMS_3 */ +/** + * @} + */ + +/** @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 */ +#if defined(TIM_CCMR1_OC1M_3) +#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 */ +#endif /* TIM_CCMR1_OC1M_3 */ +/** + * @} + */ + +/** @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) */ +#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 */ +/** + * @} + */ + +/** @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 */ +/** + * @} + */ + +/** + * @} + */ +/* 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 + * @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 + * @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: Capture/Compare 5 interrupt flag (*) + * @arg TIM_FLAG_CC6: Capture/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_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 + * (*) Value not defined for all devices + * @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: Capture/Compare 5 interrupt flag (*) + * @arg TIM_FLAG_CC6: Capture/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_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 + * (*) Value not defined for all devices + * @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 + * @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 + * @retval None + */ +#define __HAL_TIM_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->SR = ~(__INTERRUPT__)) +#if defined(TIM_CR1_UIFREMAP) + +/** + * @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)) +#endif /* TIM_CR1_UIFREMAP */ + +/** + * @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 (*) + * (*) Value not defined for all devices + * @param __COMPARE__ specifies the Capture Compare register new value. + * @retval None + */ +#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E) +#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__))) +#else +#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__)) :\ + ((__HANDLE__)->Instance->CCR4 = (__COMPARE__))) +#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */ + +/** + * @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 (*) + * (*) Value not defined for all devices + * @retval 16-bit or 32-bit value of the capture/compare register (TIMx_CCRy) + */ +#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E) +#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)) +#else +#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) :\ + ((__HANDLE__)->Instance->CCR4)) +#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */ + +/** + * @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 (*) + * (*) Value not defined for all devices + * @retval None + */ +#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E) +#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)) +#else +#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) :\ + ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4PE)) +#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */ + +/** + * @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 (*) + * (*) Value not defined for all devices + * @retval None + */ +#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E) +#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)) +#else +#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) :\ + ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4PE)) +#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */ + +/** + * @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 (*) + * (*) Value not defined for all devices + * @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 + */ +#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E) +#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)) +#else +#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) :\ + ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4FE)) +#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */ + +/** + * @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 (*) + * (*) Value not defined for all devices + * @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 + */ +#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E) +#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)) +#else +#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) :\ + ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE)) +#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */ + +/** + * @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)) +/** + * @} + */ +/* End of private constants --------------------------------------------------*/ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup TIM_Private_Macros TIM Private Macros + * @{ + */ +#if defined(TIM_SMCR_OCCS) +#define IS_TIM_CLEARINPUT_SOURCE(__MODE__) (((__MODE__) == TIM_CLEARINPUTSOURCE_NONE) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_ETR) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_OCREFCLR)) +#else +#define IS_TIM_CLEARINPUT_SOURCE(__MODE__) (((__MODE__) == TIM_CLEARINPUTSOURCE_NONE) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_ETR)) +#endif /* TIM_SMCR_OCCS */ + +#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E) +#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_OR)) +#else +#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_OR)) +#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */ + +#if defined(TIM_EGR_B2G) +#define IS_TIM_EVENT_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFFFE00U) == 0x00000000U) && ((__SOURCE__) != 0x00000000U)) +#else +#define IS_TIM_EVENT_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFFFF00U) == 0x00000000U) && ((__SOURCE__) != 0x00000000U)) +#endif /* TIM_EGR_B2G */ + +#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)) + +#if defined(TIM_CR1_UIFREMAP) +#define IS_TIM_UIFREMAP_MODE(__MODE__) (((__MODE__) == TIM_UIFREMAP_DISABLE) || \ + ((__MODE__) == TIM_UIFREMAP_ENABLE)) + +#endif /* TIM_CR1_UIFREMAP */ +#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)) + +#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E) +#define IS_TIM_CCX_CHANNEL(__INSTANCE__, __CHANNEL__) (IS_TIM_CCX_INSTANCE(__INSTANCE__, __CHANNEL__) && \ + ((__CHANNEL__) != (TIM_CHANNEL_5)) && \ + ((__CHANNEL__) != (TIM_CHANNEL_6))) +#else +#define IS_TIM_CCX_CHANNEL(__INSTANCE__, __CHANNEL__) (IS_TIM_CCX_INSTANCE(__INSTANCE__, __CHANNEL__)) +#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */ + +#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)) + +#define IS_TIM_DMA_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFF80FFU) == 0x00000000U) && ((__SOURCE__) != 0x00000000U)) + +#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E) +#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)) +#else +#define IS_TIM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \ + ((__CHANNEL__) == TIM_CHANNEL_2) || \ + ((__CHANNEL__) == TIM_CHANNEL_3) || \ + ((__CHANNEL__) == TIM_CHANNEL_4) || \ + ((__CHANNEL__) == TIM_CHANNEL_ALL)) +#endif /* TIM_CCER_CC5E &&TIM_CCER_CC6E */ + +#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) ? \ + (((__PERIOD__) > 0U) && ((__PERIOD__) <= 0x0000FFFFU)) : \ + ((__PERIOD__) > 0U)) + +#define IS_TIM_COMPLEMENTARY_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \ + ((__CHANNEL__) == TIM_CHANNEL_2) || \ + ((__CHANNEL__) == TIM_CHANNEL_3)) + +#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)) + +#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)) + +#if defined(TIM_BDTR_BK2E) +#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)) +#endif /* TIM_BDTR_BK2E */ + +#define IS_TIM_AUTOMATIC_OUTPUT_STATE(__STATE__) (((__STATE__) == TIM_AUTOMATICOUTPUT_ENABLE) || \ + ((__STATE__) == TIM_AUTOMATICOUTPUT_DISABLE)) + +#if defined(TIM_CCR5_CCR5) +#define IS_TIM_GROUPCH5(__OCREF__) ((((__OCREF__) & 0x1FFFFFFFU) == 0x00000000U)) +#endif /* TIM_CCR5_CCR5 */ + +#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)) + +#if defined(TIM_CR2_MMS2) +#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)) +#endif /* TIM_CR2_MMS2 */ + +#define IS_TIM_MSM_STATE(__STATE__) (((__STATE__) == TIM_MASTERSLAVEMODE_ENABLE) || \ + ((__STATE__) == TIM_MASTERSLAVEMODE_DISABLE)) + +#if defined (TIM_SMCR_SMS_3) +#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)) +#else +#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)) +#endif /* TIM_SMCR_SMS_3 */ + +#if defined(TIM_CCMR1_OC1M_3) +#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)) +#else +#define IS_TIM_PWM_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_PWM1) || \ + ((__MODE__) == TIM_OCMODE_PWM2)) +#endif /* TIM_CCMR1_OC1M_3 */ + +#if defined(TIM_CCMR1_OC1M_3) +#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)) +#else +#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)) +#endif /* TIM_CCMR1_OC1M_3 */ + +#define IS_TIM_TRIGGER_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_TI1F_ED) || \ + ((__SELECTION__) == TIM_TS_TI1FP1) || \ + ((__SELECTION__) == TIM_TS_TI2FP2) || \ + ((__SELECTION__) == TIM_TS_ETRF)) + +#define IS_TIM_INTERNAL_TRIGGEREVENT_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \ + ((__SELECTION__) == TIM_TS_ITR1) || \ + ((__SELECTION__) == TIM_TS_ITR2) || \ + ((__SELECTION__) == TIM_TS_ITR3) || \ + ((__SELECTION__) == TIM_TS_NONE)) + +#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)) + +#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) + +#if defined (TIM_SMCR_SMS_3) +#define IS_TIM_SLAVEMODE_TRIGGER_ENABLED(__TRIGGER__) (((__TRIGGER__) == TIM_SLAVEMODE_TRIGGER) || \ + ((__TRIGGER__) == TIM_SLAVEMODE_COMBINED_RESETTRIGGER)) +#else +#define IS_TIM_SLAVEMODE_TRIGGER_ENABLED(__TRIGGER__) ((__TRIGGER__) == TIM_SLAVEMODE_TRIGGER) +#endif /* TIM_SMCR_SMS_3 */ + +#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))) + +#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E) +#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) +#else +#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] :\ + (__HANDLE__)->ChannelState[3]) + +#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__)) :\ + ((__HANDLE__)->ChannelState[3] = (__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__); \ + } while(0) +#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */ + +#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 "stm32f3xx_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 /* STM32F3xx_HAL_TIM_H */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h new file mode 100644 index 0000000..b95c503 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h @@ -0,0 +1,342 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_tim_ex.h + * @author MCD Application Team + * @brief Header file of TIM HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 STM32F3xx_HAL_TIM_EX_H +#define STM32F3xx_HAL_TIM_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal_def.h" + +/** @addtogroup STM32F3xx_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; +/** + * @} + */ +/* End of exported types -----------------------------------------------------*/ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup TIMEx_Exported_Constants TIM Extended Exported Constants + * @{ + */ + +/** @defgroup TIMEx_Remap TIM Extended Remapping + * @{ + */ +#if defined(TIM1) +#define TIM_TIM1_ADC1_NONE (0x00000000U) /*!< TIM1_ETR is not connected to any AWD (analog watchdog)*/ +#define TIM_TIM1_ADC1_AWD1 (0x00000001U) /*!< TIM1_ETR is connected to ADC1 AWD1 */ +#define TIM_TIM1_ADC1_AWD2 (0x00000002U) /*!< TIM1_ETR is connected to ADC1 AWD2 */ +#define TIM_TIM1_ADC1_AWD3 (0x00000003U) /*!< TIM1_ETR is connected to ADC1 AWD3 */ + +#if defined(ADC4) +#define TIM_TIM1_ADC4_NONE (0x00000000U) /*!< TIM1_ETR is not connected to any AWD (analog watchdog)*/ +#define TIM_TIM1_ADC4_AWD1 (0x00000004U) /*!< TIM1_ETR is connected to ADC4 AWD1 */ +#define TIM_TIM1_ADC4_AWD2 (0x00000008U) /*!< TIM1_ETR is connected to ADC4 AWD2 */ +#define TIM_TIM1_ADC4_AWD3 (0x0000000CU) /*!< TIM1_ETR is connected to ADC4 AWD3 */ +#elif defined(ADC2) +#define TIM_TIM1_ADC2_NONE (0x00000000U) /*!< TIM1_ETR is not connected to any AWD (analog watchdog)*/ +#define TIM_TIM1_ADC2_AWD1 (0x00000004U) /*!< TIM1_ETR is connected to ADC2 AWD1 */ +#define TIM_TIM1_ADC2_AWD2 (0x00000008U) /*!< TIM1_ETR is connected to ADC2 AWD2 */ +#define TIM_TIM1_ADC2_AWD3 (0x0000000CU) /*!< TIM1_ETR is connected to ADC2 AWD3 */ +#endif /* ADC4 */ +#endif /* TIM1 */ + +#if defined(TIM8) +#define TIM_TIM8_ADC2_NONE (0x00000000U) /*!< TIM8_ETR is not connected to any AWD (analog watchdog) */ +#define TIM_TIM8_ADC2_AWD1 (0x00000001U) /*!< TIM8_ETR is connected to ADC2 AWD1 */ +#define TIM_TIM8_ADC2_AWD2 (0x00000002U) /*!< TIM8_ETR is connected to ADC2 AWD2 */ +#define TIM_TIM8_ADC2_AWD3 (0x00000003U) /*!< TIM8_ETR is connected to ADC2 AWD3 */ + +#define TIM_TIM8_ADC3_NONE (0x00000000U) /*!< TIM8_ETR is not connected to any AWD (analog watchdog) */ +#define TIM_TIM8_ADC3_AWD1 (0x00000004U) /*!< TIM8_ETR is connected to ADC3 AWD1 */ +#define TIM_TIM8_ADC3_AWD2 (0x00000008U) /*!< TIM8_ETR is connected to ADC3 AWD2 */ +#define TIM_TIM8_ADC3_AWD3 (0x0000000CU) /*!< TIM8_ETR is connected to ADC3 AWD3 */ +#endif /* TIM8 */ + +#if defined(TIM14) +#define TIM_TIM14_GPIO (0x00000000U) /*!< TIM14 TI1 is connected to GPIO */ +#define TIM_TIM14_RTC (0x00000001U) /*!< TIM14 TI1 is connected to RTC_clock */ +#define TIM_TIM14_HSE (0x00000002U) /*!< TIM14 TI1 is connected to HSE/32U */ +#define TIM_TIM14_MCO (0x00000003U) /*!< TIM14 TI1 is connected to MCO */ +#endif /* TIM14 */ + +#if defined(TIM16) +#define TIM_TIM16_GPIO (0x00000000U) /*!< TIM16 TI1 is connected to GPIO */ +#define TIM_TIM16_RTC (0x00000001U) /*!< TIM16 TI1 is connected to RTC_clock */ +#define TIM_TIM16_HSE (0x00000002U) /*!< TIM16 TI1 is connected to HSE/32 */ +#define TIM_TIM16_MCO (0x00000003U) /*!< TIM16 TI1 is connected to MCO */ +#endif /* TIM16 */ + +#if defined(TIM20) +#define TIM_TIM20_ADC3_NONE (0x00000000U) /*!< TIM20_ETR is not connected to any AWD (analog watchdog) */ +#define TIM_TIM20_ADC3_AWD1 (0x00000001U) /*!< TIM20_ETR is connected to ADC3 AWD1 */ +#define TIM_TIM20_ADC3_AWD2 (0x00000002U) /*!< TIM20_ETR is connected to ADC3 AWD2 */ +#define TIM_TIM20_ADC3_AWD3 (0x00000003U) /*!< TIM20_ETR is connected to ADC3 AWD3 */ + +#define TIM_TIM20_ADC4_NONE (0x00000000U) /*!< TIM20_ETR is not connected to any AWD (analog watchdog) */ +#define TIM_TIM20_ADC4_AWD1 (0x00000004U) /*!< TIM20_ETR is connected to ADC4 AWD1 */ +#define TIM_TIM20_ADC4_AWD2 (0x00000008U) /*!< TIM20_ETR is connected to ADC4 AWD2 */ +#define TIM_TIM20_ADC4_AWD3 (0x0000000CU) /*!< TIM20_ETR is connected to ADC4 AWD3 */ +#endif /* TIM20 */ +/** + * @} + */ + +/** + * @} + */ +/* End of exported constants -------------------------------------------------*/ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup TIMEx_Exported_Macros TIM Extended Exported Macros + * @{ + */ + +/** + * @} + */ +/* End of exported macro -----------------------------------------------------*/ + +/* Private macro -------------------------------------------------------------*/ +/** @defgroup TIMEx_Private_Macros TIM Extended Private Macros + * @{ + */ +#if defined(TIM1) && defined(TIM8) && defined(TIM20) && defined(TIM16) +#define IS_TIM_REMAP(__INSTANCE__, __REMAP__) \ + ((((__INSTANCE__) == TIM1) && ((((__REMAP__) & 0xFFFFFFF0U) == 0x00000000U))) \ + || (((__INSTANCE__) == TIM8) && ((((__REMAP__) & 0xFFFFFFF0U) == 0x00000000U))) \ + || (((__INSTANCE__) == TIM20) && ((((__REMAP__) & 0xFFFFFFF0U) == 0x00000000U))) \ + || (((__INSTANCE__) == TIM16) && ((((__REMAP__) & 0xFFFFFFFCU) == 0x00000000U)))) +#elif defined(TIM1) && defined(TIM8) && defined(TIM16) +#define IS_TIM_REMAP(__INSTANCE__, __REMAP__) \ + ((((__INSTANCE__) == TIM1) && ((((__REMAP__) & 0xFFFFFFF0U) == 0x00000000U))) \ + || (((__INSTANCE__) == TIM8) && ((((__REMAP__) & 0xFFFFFFF0U) == 0x00000000U))) \ + || (((__INSTANCE__) == TIM16) && ((((__REMAP__) & 0xFFFFFFFCU) == 0x00000000U)))) +#elif defined(TIM1) && defined(TIM16) +#define IS_TIM_REMAP(__INSTANCE__, __REMAP__) \ + ((((__INSTANCE__) == TIM1) && ((((__REMAP__) & 0xFFFFFFF0U) == 0x00000000U))) \ + || (((__INSTANCE__) == TIM16) && ((((__REMAP__) & 0xFFFFFFFCU) == 0x00000000U)))) +#elif defined(TIM14) +#define IS_TIM_REMAP(__INSTANCE__, __REMAP__) \ + (((__INSTANCE__) == TIM14) && (((__REMAP__) & 0xFFFFFFFCU) == 0x00000000U)) +#endif /* TIM1 && TIM8 && TIM20 && TIM16 */ + +/** + * @} + */ +/* 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); +#if defined(TIM_CCR5_CCR5) +HAL_StatusTypeDef HAL_TIMEx_GroupChannel5(TIM_HandleTypeDef *htim, uint32_t Channels); +#endif /* TIM_CCR5_CCR5 */ +HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_t Remap); +/** + * @} + */ + +/** @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); +#if defined(TIM_BDTR_BK2E) +void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim); +#endif /* TIM_BDTR_BK2E */ +/** + * @} + */ + +/** @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 /* STM32F3xx_HAL_TIM_EX_H */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_bus.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_bus.h new file mode 100644 index 0000000..92e1407 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_bus.h @@ -0,0 +1,1060 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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) 2016 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 __STM32F3xx_LL_BUS_H +#define __STM32F3xx_LL_BUS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx.h" + +/** @addtogroup STM32F3xx_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 (uint32_t)0xFFFFFFFFU +#define LL_AHB1_GRP1_PERIPH_DMA1 RCC_AHBENR_DMA1EN +#if defined(DMA2) +#define LL_AHB1_GRP1_PERIPH_DMA2 RCC_AHBENR_DMA2EN +#endif /*DMA2*/ +#define LL_AHB1_GRP1_PERIPH_SRAM RCC_AHBENR_SRAMEN +#define LL_AHB1_GRP1_PERIPH_FLASH RCC_AHBENR_FLITFEN +#if defined(FMC_Bank1) +#define LL_AHB1_GRP1_PERIPH_FMC RCC_AHBENR_FMCEN +#endif /*FMC_Bank1*/ +#define LL_AHB1_GRP1_PERIPH_CRC RCC_AHBENR_CRCEN +#if defined(GPIOH) +#define LL_AHB1_GRP1_PERIPH_GPIOH RCC_AHBENR_GPIOHEN +#endif /*GPIOH*/ +#define LL_AHB1_GRP1_PERIPH_GPIOA RCC_AHBENR_GPIOAEN +#define LL_AHB1_GRP1_PERIPH_GPIOB RCC_AHBENR_GPIOBEN +#define LL_AHB1_GRP1_PERIPH_GPIOC RCC_AHBENR_GPIOCEN +#define LL_AHB1_GRP1_PERIPH_GPIOD RCC_AHBENR_GPIODEN +#if defined(GPIOE) +#define LL_AHB1_GRP1_PERIPH_GPIOE RCC_AHBENR_GPIOEEN +#endif /*GPIOE*/ +#define LL_AHB1_GRP1_PERIPH_GPIOF RCC_AHBENR_GPIOFEN +#if defined(GPIOG) +#define LL_AHB1_GRP1_PERIPH_GPIOG RCC_AHBENR_GPIOGEN +#endif /*GPIOH*/ +#define LL_AHB1_GRP1_PERIPH_TSC RCC_AHBENR_TSCEN +#if defined(RCC_AHBENR_ADC1EN) +#define LL_AHB1_GRP1_PERIPH_ADC1 RCC_AHBENR_ADC1EN +#endif /*RCC_AHBENR_ADC1EN*/ +#if defined(ADC1_2_COMMON) +#define LL_AHB1_GRP1_PERIPH_ADC12 RCC_AHBENR_ADC12EN +#endif /*ADC1_2_COMMON*/ +#if defined(ADC3_4_COMMON) +#define LL_AHB1_GRP1_PERIPH_ADC34 RCC_AHBENR_ADC34EN +#endif /*ADC3_4_COMMON*/ +/** + * @} + */ + +/** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH APB1 GRP1 PERIPH + * @{ + */ +#define LL_APB1_GRP1_PERIPH_ALL (uint32_t)0xFFFFFFFFU +#define LL_APB1_GRP1_PERIPH_TIM2 RCC_APB1ENR_TIM2EN +#if defined(TIM3) +#define LL_APB1_GRP1_PERIPH_TIM3 RCC_APB1ENR_TIM3EN +#endif /*TIM3*/ +#if defined(TIM4) +#define LL_APB1_GRP1_PERIPH_TIM4 RCC_APB1ENR_TIM4EN +#endif /*TIM4*/ +#if defined(TIM5) +#define LL_APB1_GRP1_PERIPH_TIM5 RCC_APB1ENR_TIM5EN +#endif /*TIM5*/ +#define LL_APB1_GRP1_PERIPH_TIM6 RCC_APB1ENR_TIM6EN +#if defined(TIM7) +#define LL_APB1_GRP1_PERIPH_TIM7 RCC_APB1ENR_TIM7EN +#endif /*TIM7*/ +#if defined(TIM12) +#define LL_APB1_GRP1_PERIPH_TIM12 RCC_APB1ENR_TIM12EN +#endif /*TIM12*/ +#if defined(TIM13) +#define LL_APB1_GRP1_PERIPH_TIM13 RCC_APB1ENR_TIM13EN +#endif /*TIM13*/ +#if defined(TIM14) +#define LL_APB1_GRP1_PERIPH_TIM14 RCC_APB1ENR_TIM14EN +#endif /*TIM14*/ +#if defined(TIM18) +#define LL_APB1_GRP1_PERIPH_TIM18 RCC_APB1ENR_TIM18EN +#endif /*TIM18*/ +#define LL_APB1_GRP1_PERIPH_WWDG RCC_APB1ENR_WWDGEN +#if defined(SPI2) +#define LL_APB1_GRP1_PERIPH_SPI2 RCC_APB1ENR_SPI2EN +#endif /*SPI2*/ +#if defined(SPI3) +#define LL_APB1_GRP1_PERIPH_SPI3 RCC_APB1ENR_SPI3EN +#endif /*SPI3*/ +#define LL_APB1_GRP1_PERIPH_USART2 RCC_APB1ENR_USART2EN +#define LL_APB1_GRP1_PERIPH_USART3 RCC_APB1ENR_USART3EN +#if defined(UART4) +#define LL_APB1_GRP1_PERIPH_UART4 RCC_APB1ENR_UART4EN +#endif /*UART4*/ +#if defined(UART5) +#define LL_APB1_GRP1_PERIPH_UART5 RCC_APB1ENR_UART5EN +#endif /*UART5*/ +#define LL_APB1_GRP1_PERIPH_I2C1 RCC_APB1ENR_I2C1EN +#if defined(I2C2) +#define LL_APB1_GRP1_PERIPH_I2C2 RCC_APB1ENR_I2C2EN +#endif /*I2C2*/ +#if defined(USB) +#define LL_APB1_GRP1_PERIPH_USB RCC_APB1ENR_USBEN +#endif /*USB*/ +#if defined(CAN) +#define LL_APB1_GRP1_PERIPH_CAN RCC_APB1ENR_CANEN +#endif /*CAN*/ +#if defined(DAC2) +#define LL_APB1_GRP1_PERIPH_DAC2 RCC_APB1ENR_DAC2EN +#endif /*DAC2*/ +#define LL_APB1_GRP1_PERIPH_PWR RCC_APB1ENR_PWREN +#define LL_APB1_GRP1_PERIPH_DAC1 RCC_APB1ENR_DAC1EN +#if defined(CEC) +#define LL_APB1_GRP1_PERIPH_CEC RCC_APB1ENR_CECEN +#endif /*CEC*/ +#if defined(I2C3) +#define LL_APB1_GRP1_PERIPH_I2C3 RCC_APB1ENR_I2C3EN +#endif /*I2C3*/ +/** + * @} + */ + +/** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH APB2 GRP1 PERIPH + * @{ + */ +#define LL_APB2_GRP1_PERIPH_ALL (uint32_t)0xFFFFFFFFU +#define LL_APB2_GRP1_PERIPH_SYSCFG RCC_APB2ENR_SYSCFGEN +#if defined(RCC_APB2ENR_ADC1EN) +#define LL_APB2_GRP1_PERIPH_ADC1 RCC_APB2ENR_ADC1EN +#endif /*RCC_APB2ENR_ADC1EN*/ +#if defined(TIM1) +#define LL_APB2_GRP1_PERIPH_TIM1 RCC_APB2ENR_TIM1EN +#endif /*TIM1*/ +#if defined(SPI1) +#define LL_APB2_GRP1_PERIPH_SPI1 RCC_APB2ENR_SPI1EN +#endif /*SPI1*/ +#if defined(TIM8) +#define LL_APB2_GRP1_PERIPH_TIM8 RCC_APB2ENR_TIM8EN +#endif /*TIM8*/ +#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(TIM19) +#define LL_APB2_GRP1_PERIPH_TIM19 RCC_APB2ENR_TIM19EN +#endif /*TIM19*/ +#if defined(TIM20) +#define LL_APB2_GRP1_PERIPH_TIM20 RCC_APB2ENR_TIM20EN +#endif /*TIM20*/ +#if defined(HRTIM1) +#define LL_APB2_GRP1_PERIPH_HRTIM1 RCC_APB2ENR_HRTIM1EN +#endif /*HRTIM1*/ +#if defined(SDADC1) +#define LL_APB2_GRP1_PERIPH_SDADC1 RCC_APB2ENR_SDADC1EN +#endif /*SDADC1*/ +#if defined(SDADC2) +#define LL_APB2_GRP1_PERIPH_SDADC2 RCC_APB2ENR_SDADC2EN +#endif /*SDADC2*/ +#if defined(SDADC3) +#define LL_APB2_GRP1_PERIPH_SDADC3 RCC_APB2ENR_SDADC3EN +#endif /*SDADC3*/ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup BUS_LL_Exported_Functions BUS Exported Functions + * @{ + */ + +/** @defgroup BUS_LL_EF_AHB1 AHB1 + * @{ + */ + +/** + * @brief Enable AHB1 peripherals clock. + * @rmtoll AHBENR DMA1EN LL_AHB1_GRP1_EnableClock\n + * AHBENR DMA2EN LL_AHB1_GRP1_EnableClock\n + * AHBENR SRAMEN LL_AHB1_GRP1_EnableClock\n + * AHBENR FLITFEN LL_AHB1_GRP1_EnableClock\n + * AHBENR FMCEN LL_AHB1_GRP1_EnableClock\n + * AHBENR CRCEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOHEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOAEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOBEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOCEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIODEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOEEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOFEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOGEN LL_AHB1_GRP1_EnableClock\n + * AHBENR TSCEN LL_AHB1_GRP1_EnableClock\n + * AHBENR ADC1EN LL_AHB1_GRP1_EnableClock\n + * AHBENR ADC12EN LL_AHB1_GRP1_EnableClock\n + * AHBENR ADC34EN 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_SRAM + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_FMC (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_TSC + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC1 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC12 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC34 (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->AHBENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHBENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Check if AHB1 peripheral clock is enabled or not + * @rmtoll AHBENR DMA1EN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR DMA2EN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR SRAMEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR FLITFEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR FMCEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR CRCEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOHEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOAEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOBEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOCEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIODEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOEEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOFEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOGEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR TSCEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR ADC1EN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR ADC12EN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR ADC34EN 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_SRAM + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_FMC (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_TSC + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC1 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC12 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC34 (*) + * + * (*) value not defined in all devices. + * @retval State of Periphs (1 or 0). +*/ +__STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs) +{ + return (READ_BIT(RCC->AHBENR, Periphs) == Periphs); +} + +/** + * @brief Disable AHB1 peripherals clock. + * @rmtoll AHBENR DMA1EN LL_AHB1_GRP1_DisableClock\n + * AHBENR DMA2EN LL_AHB1_GRP1_DisableClock\n + * AHBENR SRAMEN LL_AHB1_GRP1_DisableClock\n + * AHBENR FLITFEN LL_AHB1_GRP1_DisableClock\n + * AHBENR FMCEN LL_AHB1_GRP1_DisableClock\n + * AHBENR CRCEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOHEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOAEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOBEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOCEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIODEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOEEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOFEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOGEN LL_AHB1_GRP1_DisableClock\n + * AHBENR TSCEN LL_AHB1_GRP1_DisableClock\n + * AHBENR ADC1EN LL_AHB1_GRP1_DisableClock\n + * AHBENR ADC12EN LL_AHB1_GRP1_DisableClock\n + * AHBENR ADC34EN 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_SRAM + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_FMC (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_TSC + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC1 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC12 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC34 (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHBENR, Periphs); +} + +/** + * @brief Force AHB1 peripherals reset. + * @rmtoll AHBRSTR FMCRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOHRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOARST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOBRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOCRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIODRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOERST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOFRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOGRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR TSCRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR ADC1RST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR ADC12RST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR ADC34RST 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_FMC (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_TSC + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC1 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC12 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC34 (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs) +{ + SET_BIT(RCC->AHBRSTR, Periphs); +} + +/** + * @brief Release AHB1 peripherals reset. + * @rmtoll AHBRSTR FMCRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOHRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOARST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOBRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOCRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIODRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOERST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOFRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOGRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR TSCRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR ADC1RST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR ADC12RST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR ADC34RST 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_FMC (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_TSC + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC1 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC12 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_ADC34 (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHBRSTR, Periphs); +} + +/** + * @} + */ + +/** @defgroup BUS_LL_EF_APB1 APB1 + * @{ + */ + +/** + * @brief Enable APB1 peripherals clock. + * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM3EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM4EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM5EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM6EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM7EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM12EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM13EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM14EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM18EN LL_APB1_GRP1_EnableClock\n + * APB1ENR WWDGEN LL_APB1_GRP1_EnableClock\n + * APB1ENR SPI2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR SPI3EN LL_APB1_GRP1_EnableClock\n + * APB1ENR USART2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR USART3EN LL_APB1_GRP1_EnableClock\n + * APB1ENR UART4EN LL_APB1_GRP1_EnableClock\n + * APB1ENR UART5EN LL_APB1_GRP1_EnableClock\n + * APB1ENR I2C1EN LL_APB1_GRP1_EnableClock\n + * APB1ENR I2C2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR USBEN LL_APB1_GRP1_EnableClock\n + * APB1ENR CANEN LL_APB1_GRP1_EnableClock\n + * APB1ENR DAC2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR PWREN LL_APB1_GRP1_EnableClock\n + * APB1ENR DAC1EN LL_APB1_GRP1_EnableClock\n + * APB1ENR CECEN LL_APB1_GRP1_EnableClock\n + * APB1ENR I2C3EN 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_TIM12 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM18 (*) + * @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_CAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*) + * + * (*) 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->APB1ENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB1ENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Check if APB1 peripheral clock is enabled or not + * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM3EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM4EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM5EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM6EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM7EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM12EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM13EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM14EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM18EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR WWDGEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR SPI2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR SPI3EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR USART2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR USART3EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR UART4EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR UART5EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR I2C1EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR I2C2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR USBEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR CANEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR DAC2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR PWREN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR DAC1EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR CECEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR I2C3EN 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_TIM12 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM18 (*) + * @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_CAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*) + * + * (*) 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->APB1ENR, Periphs) == Periphs); +} + +/** + * @brief Disable APB1 peripherals clock. + * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM3EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM4EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM5EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM6EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM7EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM12EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM13EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM14EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM18EN LL_APB1_GRP1_DisableClock\n + * APB1ENR WWDGEN LL_APB1_GRP1_DisableClock\n + * APB1ENR SPI2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR SPI3EN LL_APB1_GRP1_DisableClock\n + * APB1ENR USART2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR USART3EN LL_APB1_GRP1_DisableClock\n + * APB1ENR UART4EN LL_APB1_GRP1_DisableClock\n + * APB1ENR UART5EN LL_APB1_GRP1_DisableClock\n + * APB1ENR I2C1EN LL_APB1_GRP1_DisableClock\n + * APB1ENR I2C2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR USBEN LL_APB1_GRP1_DisableClock\n + * APB1ENR CANEN LL_APB1_GRP1_DisableClock\n + * APB1ENR DAC2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR PWREN LL_APB1_GRP1_DisableClock\n + * APB1ENR DAC1EN LL_APB1_GRP1_DisableClock\n + * APB1ENR CECEN LL_APB1_GRP1_DisableClock\n + * APB1ENR I2C3EN 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_TIM12 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM18 (*) + * @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_CAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB1ENR, Periphs); +} + +/** + * @brief Force APB1 peripherals reset. + * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM3RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM4RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM5RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM6RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM7RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM12RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM13RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM14RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM18RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR WWDGRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR SPI2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR SPI3RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR USART2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR USART3RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR UART4RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR UART5RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR I2C1RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR I2C2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR USBRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR CANRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR DAC2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR PWRRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR DAC1RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR CECRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR I2C3RST LL_APB1_GRP1_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_ALL + * @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_TIM12 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM18 (*) + * @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_CAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs) +{ + SET_BIT(RCC->APB1RSTR, Periphs); +} + +/** + * @brief Release APB1 peripherals reset. + * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM3RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM4RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM5RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM6RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM7RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM12RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM13RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM14RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM18RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR WWDGRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR SPI2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR SPI3RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR USART2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR USART3RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR UART4RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR UART5RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR I2C1RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR I2C2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR USBRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR CANRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR DAC2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR PWRRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR DAC1RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR CECRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR I2C3RST LL_APB1_GRP1_ReleaseReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_ALL + * @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_TIM12 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM18 (*) + * @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_CAN (*) + * @arg @ref LL_APB1_GRP1_PERIPH_DAC2 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB1RSTR, Periphs); +} + +/** + * @} + */ + +/** @defgroup BUS_LL_EF_APB2 APB2 + * @{ + */ + +/** + * @brief Enable APB2 peripherals clock. + * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_EnableClock\n + * APB2ENR ADC1EN 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 TIM19EN LL_APB2_GRP1_EnableClock\n + * APB2ENR TIM20EN LL_APB2_GRP1_EnableClock\n + * APB2ENR HRTIM1EN LL_APB2_GRP1_EnableClock\n + * APB2ENR SDADC1EN LL_APB2_GRP1_EnableClock\n + * APB2ENR SDADC2EN LL_APB2_GRP1_EnableClock\n + * APB2ENR SDADC3EN 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_ADC1 (*) + * @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_TIM19 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC1 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC2 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC3 (*) + * + * (*) 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 ADC1EN 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 TIM19EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR TIM20EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR HRTIM1EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR SDADC1EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR SDADC2EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR SDADC3EN 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_ADC1 (*) + * @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_TIM19 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC1 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC2 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC3 (*) + * + * (*) 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); +} + +/** + * @brief Disable APB2 peripherals clock. + * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_DisableClock\n + * APB2ENR ADC1EN 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 TIM19EN LL_APB2_GRP1_DisableClock\n + * APB2ENR TIM20EN LL_APB2_GRP1_DisableClock\n + * APB2ENR HRTIM1EN LL_APB2_GRP1_DisableClock\n + * APB2ENR SDADC1EN LL_APB2_GRP1_DisableClock\n + * APB2ENR SDADC2EN LL_APB2_GRP1_DisableClock\n + * APB2ENR SDADC3EN 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_ADC1 (*) + * @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_TIM19 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC1 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC2 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC3 (*) + * + * (*) 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 ADC1RST 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 TIM19RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM20RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR HRTIM1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR SDADC1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR SDADC2RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR SDADC3RST LL_APB2_GRP1_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_ALL + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 (*) + * @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_TIM19 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC1 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC2 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC3 (*) + * + * (*) 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_ReleaseReset\n + * APB2RSTR ADC1RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR TIM1RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR SPI1RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR TIM8RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR USART1RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR SPI4RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR TIM15RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR TIM16RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR TIM17RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR TIM19RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR TIM20RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR HRTIM1RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR SDADC1RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR SDADC2RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR SDADC3RST LL_APB2_GRP1_ReleaseReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_ALL + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 (*) + * @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_TIM19 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC1 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC2 (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SDADC3 (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB2RSTR, Periphs); +} + +/** + * @} + */ + + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined(RCC) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_LL_BUS_H */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_cortex.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_cortex.h new file mode 100644 index 0000000..a16dc62 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_cortex.h @@ -0,0 +1,638 @@ +/** + ****************************************************************************** + * @file stm32f3xx_ll_cortex.h + * @author MCD Application Team + * @brief Header file of CORTEX LL module. + @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 + (MPU services provided only on some devices) + (+) API to access to MCU info (CPUID register) + (+) API to enable fault handler (SHCSR accesses) + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_LL_CORTEX_H +#define __STM32F3xx_LL_CORTEX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx.h" + +/** @addtogroup STM32F3xx_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)); +} + +/** + * @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)); +} + +/** + * @} + */ + +/** @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 Constant number + * @rmtoll SCB_CPUID ARCHITECTURE LL_CPUID_GetConstant + * @retval Value should be equal to 0xF for Cortex-M4 devices + */ +__STATIC_INLINE uint32_t LL_CPUID_GetConstant(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)); +} + +/** + * @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 /* __STM32F3xx_LL_CORTEX_H */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_dma.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_dma.h new file mode 100644 index 0000000..b770c2b --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_dma.h @@ -0,0 +1,1994 @@ +/** + ****************************************************************************** + * @file stm32f3xx_ll_dma.h + * @author MCD Application Team + * @brief Header file of DMA LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_LL_DMA_H +#define __STM32F3xx_LL_DMA_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx.h" + +/** @addtogroup STM32F3xx_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), + (uint8_t)(DMA1_Channel7_BASE - DMA1_BASE) +}; +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/* 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 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 */ +#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 */ +/** + * @} + */ + +/** @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 */ +#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 */ +/** + * @} + */ + +/** @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 0x00000001U /*!< DMA Channel 1 */ +#define LL_DMA_CHANNEL_2 0x00000002U /*!< DMA Channel 2 */ +#define LL_DMA_CHANNEL_3 0x00000003U /*!< DMA Channel 3 */ +#define LL_DMA_CHANNEL_4 0x00000004U /*!< DMA Channel 4 */ +#define LL_DMA_CHANNEL_5 0x00000005U /*!< DMA Channel 5 */ +#define LL_DMA_CHANNEL_6 0x00000006U /*!< DMA Channel 6 */ +#define LL_DMA_CHANNEL_7 0x00000007U /*!< DMA Channel 7 */ +#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(DMA2) +#define __LL_DMA_GET_INSTANCE(__CHANNEL_INSTANCE__) \ +(((uint32_t)(__CHANNEL_INSTANCE__) > ((uint32_t)DMA1_Channel7)) ? DMA2 : DMA1) +#else +#define __LL_DMA_GET_INSTANCE(__CHANNEL_INSTANCE__) (DMA1) +#endif + +/** + * @brief Convert DMAx_Channely into LL_DMA_CHANNEL_y + * @param __CHANNEL_INSTANCE__ DMAx_Channely + * @retval LL_DMA_CHANNEL_y + */ +#if defined (DMA2) +#if defined (DMA2_Channel6) && defined (DMA2_Channel7) +#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 : \ + LL_DMA_CHANNEL_7) +#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 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel6)) ? LL_DMA_CHANNEL_6 : \ + LL_DMA_CHANNEL_7) +#endif +#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)DMA1_Channel2)) ? LL_DMA_CHANNEL_2 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel3)) ? LL_DMA_CHANNEL_3 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel4)) ? LL_DMA_CHANNEL_4 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel5)) ? LL_DMA_CHANNEL_5 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel6)) ? LL_DMA_CHANNEL_6 : \ + LL_DMA_CHANNEL_7) +#endif + +/** + * @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 (DMA2) +#if defined (DMA2_Channel6) && defined (DMA2_Channel7) +#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 : \ + DMA2_Channel7) +#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 : \ + DMA1_Channel7) +#endif +#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)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA1_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)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA1_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)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA1_Channel6 : \ + DMA1_Channel7) +#endif + +/** + * @} + */ + +/** + * @} + */ + +/* 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 + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableChannel(DMA_TypeDef *DMAx, uint32_t Channel) +{ + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableChannel(DMA_TypeDef *DMAx, uint32_t Channel) +{ + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledChannel(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_EN) == (DMA_CCR_EN)); +} + +/** + * @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 + * @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) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetDataLength(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + /* Direction Memory to Periph */ + if (Direction == LL_DMA_DIRECTION_MEMORY_TO_PERIPH) + { + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CMAR, SrcAddress); + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CPAR, DstAddress); + } + /* Direction Periph to Memory and Memory to Memory */ + else + { + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CPAR, SrcAddress); + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @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) +{ + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetM2MSrcAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetM2MDstAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CMAR)); +} + + +/** + * @} + */ + +/** @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @brief Clear Channel 1 global interrupt flag. + * @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. + * @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. + * @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. + * @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. + * @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. + * @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); +} + +/** + * @brief Clear Channel 7 global interrupt flag. + * @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); +} + +/** + * @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); +} + +/** + * @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); +} + +/** + * @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); +} + +/** + * @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); +} + +/** + * @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); +} + +/** + * @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); +} + +/** + * @} + */ + +/** @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 + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableIT_TC(DMA_TypeDef *DMAx, uint32_t Channel) +{ + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableIT_HT(DMA_TypeDef *DMAx, uint32_t Channel) +{ + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableIT_TE(DMA_TypeDef *DMAx, uint32_t Channel) +{ + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableIT_TC(DMA_TypeDef *DMAx, uint32_t Channel) +{ + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableIT_HT(DMA_TypeDef *DMAx, uint32_t Channel) +{ + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableIT_TE(DMA_TypeDef *DMAx, uint32_t Channel) +{ + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->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 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TC(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_TCIE) == (DMA_CCR_TCIE)); +} + +/** + * @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 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_HT(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_HTIE) == (DMA_CCR_HTIE)); +} + +/** + * @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 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TE(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_TEIE) == (DMA_CCR_TEIE)); +} + +/** + * @} + */ + +#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 /* __STM32F3xx_LL_DMA_H */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_exti.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_exti.h new file mode 100644 index 0000000..59ed70f --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_exti.h @@ -0,0 +1,1381 @@ +/** + ****************************************************************************** + * @file stm32f3xx_ll_exti.h + * @author MCD Application Team + * @brief Header file of EXTI LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_LL_EXTI_H +#define __STM32F3xx_LL_EXTI_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx.h" + +/** @addtogroup STM32F3xx_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 */ +#if defined(EXTI_32_63_SUPPORT) + + 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 */ +#endif + + 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_IMR_IM0 /*!< Extended line 0 */ +#define LL_EXTI_LINE_1 EXTI_IMR_IM1 /*!< Extended line 1 */ +#define LL_EXTI_LINE_2 EXTI_IMR_IM2 /*!< Extended line 2 */ +#define LL_EXTI_LINE_3 EXTI_IMR_IM3 /*!< Extended line 3 */ +#define LL_EXTI_LINE_4 EXTI_IMR_IM4 /*!< Extended line 4 */ +#define LL_EXTI_LINE_5 EXTI_IMR_IM5 /*!< Extended line 5 */ +#define LL_EXTI_LINE_6 EXTI_IMR_IM6 /*!< Extended line 6 */ +#define LL_EXTI_LINE_7 EXTI_IMR_IM7 /*!< Extended line 7 */ +#define LL_EXTI_LINE_8 EXTI_IMR_IM8 /*!< Extended line 8 */ +#define LL_EXTI_LINE_9 EXTI_IMR_IM9 /*!< Extended line 9 */ +#define LL_EXTI_LINE_10 EXTI_IMR_IM10 /*!< Extended line 10 */ +#define LL_EXTI_LINE_11 EXTI_IMR_IM11 /*!< Extended line 11 */ +#define LL_EXTI_LINE_12 EXTI_IMR_IM12 /*!< Extended line 12 */ +#define LL_EXTI_LINE_13 EXTI_IMR_IM13 /*!< Extended line 13 */ +#define LL_EXTI_LINE_14 EXTI_IMR_IM14 /*!< Extended line 14 */ +#define LL_EXTI_LINE_15 EXTI_IMR_IM15 /*!< Extended line 15 */ +#if defined(EXTI_IMR_IM16) +#define LL_EXTI_LINE_16 EXTI_IMR_IM16 /*!< Extended line 16 */ +#endif +#define LL_EXTI_LINE_17 EXTI_IMR_IM17 /*!< Extended line 17 */ +#if defined(EXTI_IMR_IM18) +#define LL_EXTI_LINE_18 EXTI_IMR_IM18 /*!< Extended line 18 */ +#endif +#define LL_EXTI_LINE_19 EXTI_IMR_IM19 /*!< Extended line 19 */ +#if defined(EXTI_IMR_IM20) +#define LL_EXTI_LINE_20 EXTI_IMR_IM20 /*!< Extended line 20 */ +#endif +#if defined(EXTI_IMR_IM21) +#define LL_EXTI_LINE_21 EXTI_IMR_IM21 /*!< Extended line 21 */ +#endif +#if defined(EXTI_IMR_IM22) +#define LL_EXTI_LINE_22 EXTI_IMR_IM22 /*!< Extended line 22 */ +#endif +#define LL_EXTI_LINE_23 EXTI_IMR_IM23 /*!< Extended line 23 */ +#if defined(EXTI_IMR_IM24) +#define LL_EXTI_LINE_24 EXTI_IMR_IM24 /*!< Extended line 24 */ +#endif +#if defined(EXTI_IMR_IM25) +#define LL_EXTI_LINE_25 EXTI_IMR_IM25 /*!< Extended line 25 */ +#endif +#if defined(EXTI_IMR_IM26) +#define LL_EXTI_LINE_26 EXTI_IMR_IM26 /*!< Extended line 26 */ +#endif +#if defined(EXTI_IMR_IM27) +#define LL_EXTI_LINE_27 EXTI_IMR_IM27 /*!< Extended line 27 */ +#endif +#if defined(EXTI_IMR_IM28) +#define LL_EXTI_LINE_28 EXTI_IMR_IM28 /*!< Extended line 28 */ +#endif +#if defined(EXTI_IMR_IM29) +#define LL_EXTI_LINE_29 EXTI_IMR_IM29 /*!< Extended line 29 */ +#endif +#if defined(EXTI_IMR_IM30) +#define LL_EXTI_LINE_30 EXTI_IMR_IM30 /*!< Extended line 30 */ +#endif +#if defined(EXTI_IMR_IM31) +#define LL_EXTI_LINE_31 EXTI_IMR_IM31 /*!< Extended line 31 */ +#endif +#define LL_EXTI_LINE_ALL_0_31 EXTI_IMR_IM /*!< All Extended line not reserved*/ + +#if defined(EXTI_32_63_SUPPORT) +#define LL_EXTI_LINE_32 EXTI_IMR2_IM32 /*!< Extended line 32 */ +#if defined(EXTI_IMR2_IM33) +#define LL_EXTI_LINE_33 EXTI_IMR2_IM33 /*!< Extended line 33 */ +#endif +#if defined(EXTI_IMR2_IM34) +#define LL_EXTI_LINE_34 EXTI_IMR2_IM34 /*!< Extended line 34 */ +#endif +#if defined(EXTI_IMR2_IM35) +#define LL_EXTI_LINE_35 EXTI_IMR2_IM35 /*!< Extended line 35 */ +#endif +#if defined(EXTI_IMR2_IM36) +#define LL_EXTI_LINE_36 EXTI_IMR2_IM36 /*!< Extended line 36 */ +#endif +#if defined(EXTI_IMR2_IM37) +#define LL_EXTI_LINE_37 EXTI_IMR2_IM37 /*!< Extended line 37 */ +#endif +#if defined(EXTI_IMR2_IM38) +#define LL_EXTI_LINE_38 EXTI_IMR2_IM38 /*!< Extended line 38 */ +#endif +#if defined(EXTI_IMR2_IM39) +#define LL_EXTI_LINE_39 EXTI_IMR2_IM39 /*!< Extended line 39 */ +#endif +#if defined(EXTI_IMR2_IM40) +#define LL_EXTI_LINE_40 EXTI_IMR2_IM40 /*!< Extended line 40 */ +#endif +#define LL_EXTI_LINE_ALL_32_63 EXTI_IMR2_IM /*!< All Extended line not reserved*/ + +#endif + +#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 IMR 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 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->IMR, ExtiLine); +} +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_ALL_32_63 + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine) +{ + SET_BIT(EXTI->IMR2, ExtiLine); +} +#endif + +/** + * @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 IMR 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 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->IMR, ExtiLine); +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_ALL_32_63 + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->IMR2, ExtiLine); +} +#endif + +/** + * @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 IMR 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 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->IMR, ExtiLine) == (ExtiLine)); +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_ALL_32_63 + * @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)); +} +#endif + +/** + * @} + */ + +/** @defgroup EXTI_LL_EF_Event_Management Event_Management + * @{ + */ + +/** + * @brief Enable ExtiLine Event request for Lines in range 0 to 31 + * @rmtoll EMR 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 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->EMR, ExtiLine); + +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_ALL_32_63 + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableEvent_32_63(uint32_t ExtiLine) +{ + SET_BIT(EXTI->EMR2, ExtiLine); +} +#endif + +/** + * @brief Disable ExtiLine Event request for Lines in range 0 to 31 + * @rmtoll EMR 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 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->EMR, ExtiLine); +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_ALL_32_63 + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableEvent_32_63(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->EMR2, ExtiLine); +} +#endif + +/** + * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31 + * @rmtoll EMR 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 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->EMR, ExtiLine) == (ExtiLine)); + +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_ALL_32_63 + * @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)); +} +#endif + +/** + * @} + */ + +/** @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 RTSR 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 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->RTSR, ExtiLine); + +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_35 + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableRisingTrig_32_63(uint32_t ExtiLine) +{ + SET_BIT(EXTI->RTSR2, ExtiLine); +} +#endif + +/** + * @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 RTSR 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 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->RTSR, ExtiLine); + +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_35 + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableRisingTrig_32_63(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->RTSR2, ExtiLine); +} +#endif + +/** + * @brief Check if rising edge trigger is enabled for Lines in range 0 to 31 + * @rmtoll RTSR 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 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->RTSR, ExtiLine) == (ExtiLine)); +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_35 + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @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)); +} +#endif + +/** + * @} + */ + +/** @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 FTSR 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 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->FTSR, ExtiLine); +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_35 + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableFallingTrig_32_63(uint32_t ExtiLine) +{ + SET_BIT(EXTI->FTSR2, ExtiLine); +} +#endif + +/** + * @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 FTSR 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 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->FTSR, ExtiLine); +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_35 + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableFallingTrig_32_63(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->FTSR2, ExtiLine); +} +#endif + +/** + * @brief Check if falling edge trigger is enabled for Lines in range 0 to 31 + * @rmtoll FTSR 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 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->FTSR, ExtiLine) == (ExtiLine)); +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_35 + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @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)); +} +#endif + +/** + * @} + */ + +/** @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_IMR, writing a 1 to + * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR + * resulting in an interrupt request generation. + * This bit is cleared by clearing the corresponding bit in the EXTI_PR + * register (by writing a 1 into the bit) + * @rmtoll SWIER 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 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->SWIER, ExtiLine); +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_35 + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @retval None + */ +__STATIC_INLINE void LL_EXTI_GenerateSWI_32_63(uint32_t ExtiLine) +{ + SET_BIT(EXTI->SWIER2, ExtiLine); +} +#endif + +/** + * @} + */ + +/** @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 PR 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 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->PR, ExtiLine) == (ExtiLine)); +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_35 + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @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)); +} +#endif + +/** + * @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 PR 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 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->PR, ExtiLine)); +} + +#if defined(EXTI_32_63_SUPPORT) + +/** + * @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_35 + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @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)); +} +#endif + +/** + * @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 PR 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 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->PR, ExtiLine); +} + +#if defined(EXTI_32_63_SUPPORT) +/** + * @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_35 + * @arg @ref LL_EXTI_LINE_36 + * @arg @ref LL_EXTI_LINE_37 + * @arg @ref LL_EXTI_LINE_38 + * @retval None + */ +__STATIC_INLINE void LL_EXTI_ClearFlag_32_63(uint32_t ExtiLine) +{ + WRITE_REG(EXTI->PR2, ExtiLine); +} +#endif + +/** + * @} + */ + +#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 /* __STM32F3xx_LL_EXTI_H */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_gpio.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_gpio.h new file mode 100644 index 0000000..3de5970 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_gpio.h @@ -0,0 +1,978 @@ +/** + ****************************************************************************** + * @file stm32f3xx_ll_gpio.h + * @author MCD Application Team + * @brief Header file of GPIO LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_LL_GPIO_H +#define __STM32F3xx_LL_GPIO_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx.h" + +/** @addtogroup STM32F3xx_LL_Driver + * @{ + */ + +#if defined (GPIOA) || defined (GPIOB) || defined (GPIOC) || defined (GPIOD) || defined (GPIOE) || defined (GPIOF) || defined (GPIOG) || defined (GPIOH) + +/** @defgroup GPIO_LL GPIO + * @{ + */ + +/* 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_BS_0 /*!< Select pin 0 */ +#define LL_GPIO_PIN_1 GPIO_BSRR_BS_1 /*!< Select pin 1 */ +#define LL_GPIO_PIN_2 GPIO_BSRR_BS_2 /*!< Select pin 2 */ +#define LL_GPIO_PIN_3 GPIO_BSRR_BS_3 /*!< Select pin 3 */ +#define LL_GPIO_PIN_4 GPIO_BSRR_BS_4 /*!< Select pin 4 */ +#define LL_GPIO_PIN_5 GPIO_BSRR_BS_5 /*!< Select pin 5 */ +#define LL_GPIO_PIN_6 GPIO_BSRR_BS_6 /*!< Select pin 6 */ +#define LL_GPIO_PIN_7 GPIO_BSRR_BS_7 /*!< Select pin 7 */ +#define LL_GPIO_PIN_8 GPIO_BSRR_BS_8 /*!< Select pin 8 */ +#define LL_GPIO_PIN_9 GPIO_BSRR_BS_9 /*!< Select pin 9 */ +#define LL_GPIO_PIN_10 GPIO_BSRR_BS_10 /*!< Select pin 10 */ +#define LL_GPIO_PIN_11 GPIO_BSRR_BS_11 /*!< Select pin 11 */ +#define LL_GPIO_PIN_12 GPIO_BSRR_BS_12 /*!< Select pin 12 */ +#define LL_GPIO_PIN_13 GPIO_BSRR_BS_13 /*!< Select pin 13 */ +#define LL_GPIO_PIN_14 GPIO_BSRR_BS_14 /*!< Select pin 14 */ +#define LL_GPIO_PIN_15 GPIO_BSRR_BS_15 /*!< Select pin 15 */ +#define LL_GPIO_PIN_ALL (GPIO_BSRR_BS_0 | GPIO_BSRR_BS_1 | GPIO_BSRR_BS_2 | \ + GPIO_BSRR_BS_3 | GPIO_BSRR_BS_4 | GPIO_BSRR_BS_5 | \ + GPIO_BSRR_BS_6 | GPIO_BSRR_BS_7 | GPIO_BSRR_BS_8 | \ + GPIO_BSRR_BS_9 | GPIO_BSRR_BS_10 | GPIO_BSRR_BS_11 | \ + GPIO_BSRR_BS_12 | GPIO_BSRR_BS_13 | GPIO_BSRR_BS_14 | \ + GPIO_BSRR_BS_15) /*!< 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_MODER0_0 /*!< Select output mode */ +#define LL_GPIO_MODE_ALTERNATE GPIO_MODER_MODER0_1 /*!< Select alternate function mode */ +#define LL_GPIO_MODE_ANALOG GPIO_MODER_MODER0 /*!< 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_OT_0 /*!< 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_OSPEEDER_OSPEEDR0_0 /*!< Select I/O medium output speed */ +#define LL_GPIO_SPEED_FREQ_HIGH GPIO_OSPEEDER_OSPEEDR0 /*!< Select I/O high output speed */ +/** + * @} + */ + +/** @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_PUPDR0_0 /*!< Select I/O pull up */ +#define LL_GPIO_PULL_DOWN GPIO_PUPDR_PUPDR0_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_MODER0 << (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_MODER0 << (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 + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetPinSpeed(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Speed) +{ + MODIFY_REG(GPIOx->OSPEEDR, (GPIO_OSPEEDER_OSPEEDR0 << (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 + */ +__STATIC_INLINE uint32_t LL_GPIO_GetPinSpeed(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->OSPEEDR, + (GPIO_OSPEEDER_OSPEEDR0 << (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_PUPDR0 << (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_PUPDR0 << (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_AFRL0 << (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_AFRL0 << (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_AFRH0 << (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_AFRH0 << (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); + 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)); +} + +/** + * @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)); +} + +/** + * @} + */ + +/** @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)); +} + +/** + * @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)); +} + +/** + * @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) || defined (GPIOH) */ +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_LL_GPIO_H */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_pwr.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_pwr.h new file mode 100644 index 0000000..cb6d23f --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_pwr.h @@ -0,0 +1,551 @@ +/** + ****************************************************************************** + * @file stm32f3xx_ll_pwr.h + * @author MCD Application Team + * @brief Header file of PWR LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_LL_PWR_H +#define __STM32F3xx_LL_PWR_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx.h" + +/** @addtogroup STM32F3xx_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_CR_CSBF PWR_CR_CSBF /*!< Clear standby flag */ +#define LL_PWR_CR_CWUF PWR_CR_CWUF /*!< Clear wakeup flag */ +/** + * @} + */ + +/** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_PWR_ReadReg function + * @{ + */ +#define LL_PWR_CSR_WUF PWR_CSR_WUF /*!< Wakeup flag */ +#define LL_PWR_CSR_SBF PWR_CSR_SBF /*!< Standby flag */ +#if defined(PWR_PVD_SUPPORT) +#define LL_PWR_CSR_PVDO PWR_CSR_PVDO /*!< Power voltage detector output flag */ +#endif /* PWR_PVD_SUPPORT */ +#if defined(PWR_CSR_VREFINTRDYF) +#define LL_PWR_CSR_VREFINTRDYF PWR_CSR_VREFINTRDYF /*!< VREFINT ready flag */ +#endif /* PWR_CSR_VREFINTRDYF */ +#define LL_PWR_CSR_EWUP1 PWR_CSR_EWUP1 /*!< Enable WKUP pin 1 */ +#define LL_PWR_CSR_EWUP2 PWR_CSR_EWUP2 /*!< Enable WKUP pin 2 */ +#if defined(PWR_CSR_EWUP3) +#define LL_PWR_CSR_EWUP3 PWR_CSR_EWUP3 /*!< Enable WKUP pin 3 */ +#endif /* PWR_CSR_EWUP3 */ +/** + * @} + */ + + +/** @defgroup PWR_LL_EC_MODE_PWR Mode Power + * @{ + */ +#define LL_PWR_MODE_STOP_MAINREGU 0x00000000U /*!< Enter Stop mode when the CPU enters deepsleep */ +#define LL_PWR_MODE_STOP_LPREGU (PWR_CR_LPDS) /*!< Enter Stop mode (with low power Regulator ON) when the CPU enters deepsleep */ +#define LL_PWR_MODE_STANDBY (PWR_CR_PDDS) /*!< Enter Standby mode when the CPU enters deepsleep */ +/** + * @} + */ + +#if defined(PWR_CR_LPDS) +/** @defgroup PWR_LL_EC_REGU_MODE_DS_MODE Regulator Mode In Deep Sleep Mode + * @{ + */ +#define LL_PWR_REGU_DSMODE_MAIN 0x00000000U /*!< Voltage Regulator in main mode during deepsleep mode */ +#define LL_PWR_REGU_DSMODE_LOW_POWER (PWR_CR_LPDS) /*!< Voltage Regulator in low-power mode during deepsleep mode */ +/** + * @} + */ +#endif /* PWR_CR_LPDS */ + +#if defined(PWR_PVD_SUPPORT) +/** @defgroup PWR_LL_EC_PVDLEVEL Power Voltage Detector Level + * @{ + */ +#define LL_PWR_PVDLEVEL_0 (PWR_CR_PLS_LEV0) /*!< Voltage threshold detected by PVD 2.2 V */ +#define LL_PWR_PVDLEVEL_1 (PWR_CR_PLS_LEV1) /*!< Voltage threshold detected by PVD 2.3 V */ +#define LL_PWR_PVDLEVEL_2 (PWR_CR_PLS_LEV2) /*!< Voltage threshold detected by PVD 2.4 V */ +#define LL_PWR_PVDLEVEL_3 (PWR_CR_PLS_LEV3) /*!< Voltage threshold detected by PVD 2.5 V */ +#define LL_PWR_PVDLEVEL_4 (PWR_CR_PLS_LEV4) /*!< Voltage threshold detected by PVD 2.6 V */ +#define LL_PWR_PVDLEVEL_5 (PWR_CR_PLS_LEV5) /*!< Voltage threshold detected by PVD 2.7 V */ +#define LL_PWR_PVDLEVEL_6 (PWR_CR_PLS_LEV6) /*!< Voltage threshold detected by PVD 2.8 V */ +#define LL_PWR_PVDLEVEL_7 (PWR_CR_PLS_LEV7) /*!< Voltage threshold detected by PVD 2.9 V */ +/** + * @} + */ +#endif /* PWR_PVD_SUPPORT */ +/** @defgroup PWR_LL_EC_WAKEUP_PIN Wakeup Pins + * @{ + */ +#define LL_PWR_WAKEUP_PIN1 (PWR_CSR_EWUP1) /*!< WKUP pin 1 : PA0 */ +#define LL_PWR_WAKEUP_PIN2 (PWR_CSR_EWUP2) /*!< WKUP pin 2 : PC13 */ +#if defined(PWR_CSR_EWUP3) +#define LL_PWR_WAKEUP_PIN3 (PWR_CSR_EWUP3) /*!< WKUP pin 3 : PE6 or PA2 according to device */ +#endif /* PWR_CSR_EWUP3 */ +/** + * @} + */ + +/** @defgroup PWR_LL_EC_SDADC_ANALOG_X SDADC Analogx + * @{ + */ +#if defined(SDADC1) +#define LL_PWR_SDADC_ANALOG1 (PWR_CR_ENSD1) /*!< Enable SDADC1 */ +#endif /* SDADC1 */ +#if defined(SDADC2) +#define LL_PWR_SDADC_ANALOG2 (PWR_CR_ENSD2) /*!< Enable SDADC2 */ +#endif /* SDADC2 */ +#if defined(SDADC3) +#define LL_PWR_SDADC_ANALOG3 (PWR_CR_ENSD3) /*!< Enable SDADC3 */ +#endif /* SDADC3 */ +/** + * @} + */ +/** + * @} + */ + + +/* 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 Enables the SDADC peripheral functionality + * @rmtoll CR ENSD1 LL_PWR_EnableSDADC\n + * CR ENSD2 LL_PWR_EnableSDADC\n + * CR ENSD3 LL_PWR_EnableSDADC + * @param Analogx This parameter can be a combination of the following values: + * @arg @ref LL_PWR_SDADC_ANALOG1 + * @arg @ref LL_PWR_SDADC_ANALOG2 + * @arg @ref LL_PWR_SDADC_ANALOG3 + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableSDADC(uint32_t Analogx) +{ + SET_BIT(PWR->CR, Analogx); +} + +/** + * @brief Disables the SDADC peripheral functionality + * @rmtoll CR ENSD1 LL_PWR_EnableSDADC\n + * CR ENSD2 LL_PWR_EnableSDADC\n + * CR ENSD3 LL_PWR_EnableSDADC + * @param Analogx This parameter can be a combination of the following values: + * @arg @ref LL_PWR_SDADC_ANALOG1 + * @arg @ref LL_PWR_SDADC_ANALOG2 + * @arg @ref LL_PWR_SDADC_ANALOG3 + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableSDADC(uint32_t Analogx) +{ + CLEAR_BIT(PWR->CR, Analogx); +} + +/** + * @brief Check if SDADCx has been enabled or not + * @rmtoll CR ENSD1 LL_PWR_IsEnabledSDADC\n + * CR ENSD2 LL_PWR_IsEnabledSDADC\n + * CR ENSD3 LL_PWR_IsEnabledSDADC + * @param Analogx This parameter can be a combination of the following values: + * @arg @ref LL_PWR_SDADC_ANALOG1 + * @arg @ref LL_PWR_SDADC_ANALOG2 + * @arg @ref LL_PWR_SDADC_ANALOG3 + * @retval None + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledSDADC(uint32_t Analogx) +{ + return (READ_BIT(PWR->CR, Analogx) == (Analogx)); +} + +/** + * @brief Enable access to the backup domain + * @rmtoll CR DBP LL_PWR_EnableBkUpAccess + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableBkUpAccess(void) +{ + SET_BIT(PWR->CR, PWR_CR_DBP); +} + +/** + * @brief Disable access to the backup domain + * @rmtoll CR DBP LL_PWR_DisableBkUpAccess + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableBkUpAccess(void) +{ + CLEAR_BIT(PWR->CR, PWR_CR_DBP); +} + +/** + * @brief Check if the backup domain is enabled + * @rmtoll CR DBP LL_PWR_IsEnabledBkUpAccess + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void) +{ + return (READ_BIT(PWR->CR, PWR_CR_DBP) == (PWR_CR_DBP)); +} + +#if defined(PWR_CR_LPDS) +/** + * @brief Set voltage Regulator mode during deep sleep mode + * @rmtoll CR LPDS LL_PWR_SetRegulModeDS + * @param RegulMode This parameter can be one of the following values: + * @arg @ref LL_PWR_REGU_DSMODE_MAIN + * @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetRegulModeDS(uint32_t RegulMode) +{ + MODIFY_REG(PWR->CR, PWR_CR_LPDS, RegulMode); +} + +/** + * @brief Get voltage Regulator mode during deep sleep mode + * @rmtoll CR LPDS LL_PWR_GetRegulModeDS + * @retval Returned value can be one of the following values: + * @arg @ref LL_PWR_REGU_DSMODE_MAIN + * @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER + */ +__STATIC_INLINE uint32_t LL_PWR_GetRegulModeDS(void) +{ + return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_LPDS)); +} +#endif /* PWR_CR_LPDS */ + +/** + * @brief Set Power Down mode when CPU enters deepsleep + * @rmtoll CR PDDS LL_PWR_SetPowerMode\n + * @rmtoll CR LPDS LL_PWR_SetPowerMode + * @param PDMode This parameter can be one of the following values: + * @arg @ref LL_PWR_MODE_STOP_MAINREGU + * @arg @ref LL_PWR_MODE_STOP_LPREGU + * @arg @ref LL_PWR_MODE_STANDBY + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetPowerMode(uint32_t PDMode) +{ + MODIFY_REG(PWR->CR, (PWR_CR_PDDS| PWR_CR_LPDS), PDMode); +} + +/** + * @brief Get Power Down mode when CPU enters deepsleep + * @rmtoll CR PDDS LL_PWR_GetPowerMode\n + * @rmtoll CR LPDS LL_PWR_GetPowerMode + * @retval Returned value can be one of the following values: + * @arg @ref LL_PWR_MODE_STOP_MAINREGU + * @arg @ref LL_PWR_MODE_STOP_LPREGU + * @arg @ref LL_PWR_MODE_STANDBY + */ +__STATIC_INLINE uint32_t LL_PWR_GetPowerMode(void) +{ + return (uint32_t)(READ_BIT(PWR->CR, (PWR_CR_PDDS| PWR_CR_LPDS))); +} + +#if defined(PWR_PVD_SUPPORT) +/** + * @brief Configure the voltage threshold detected by the Power Voltage Detector + * @rmtoll CR 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->CR, PWR_CR_PLS, PVDLevel); +} + +/** + * @brief Get the voltage threshold detection + * @rmtoll CR 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->CR, PWR_CR_PLS)); +} + +/** + * @brief Enable Power Voltage Detector + * @rmtoll CR PVDE LL_PWR_EnablePVD + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnablePVD(void) +{ + SET_BIT(PWR->CR, PWR_CR_PVDE); +} + +/** + * @brief Disable Power Voltage Detector + * @rmtoll CR PVDE LL_PWR_DisablePVD + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisablePVD(void) +{ + CLEAR_BIT(PWR->CR, PWR_CR_PVDE); +} + +/** + * @brief Check if Power Voltage Detector is enabled + * @rmtoll CR PVDE LL_PWR_IsEnabledPVD + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void) +{ + return (READ_BIT(PWR->CR, PWR_CR_PVDE) == (PWR_CR_PVDE)); +} +#endif /* PWR_PVD_SUPPORT */ + +/** + * @brief Enable the WakeUp PINx functionality + * @rmtoll CSR EWUP1 LL_PWR_EnableWakeUpPin\n + * @rmtoll CSR EWUP2 LL_PWR_EnableWakeUpPin\n + * @rmtoll CSR EWUP3 LL_PWR_EnableWakeUpPin + * @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 (*) + * + * (*) not available on all devices + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin) +{ + SET_BIT(PWR->CSR, WakeUpPin); +} + +/** + * @brief Disable the WakeUp PINx functionality + * @rmtoll CSR EWUP1 LL_PWR_DisableWakeUpPin\n + * @rmtoll CSR EWUP2 LL_PWR_DisableWakeUpPin\n + * @rmtoll CSR EWUP3 LL_PWR_DisableWakeUpPin + * @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 (*) + * + * (*) not available on all devices + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin) +{ + CLEAR_BIT(PWR->CSR, WakeUpPin); +} + +/** + * @brief Check if the WakeUp PINx functionality is enabled + * @rmtoll CSR EWUP1 LL_PWR_IsEnabledWakeUpPin\n + * @rmtoll CSR EWUP2 LL_PWR_IsEnabledWakeUpPin\n + * @rmtoll CSR EWUP3 LL_PWR_IsEnabledWakeUpPin + * @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 (*) + * + * (*) not available on all devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin) +{ + return (READ_BIT(PWR->CSR, WakeUpPin) == (WakeUpPin)); +} + + +/** + * @} + */ + +/** @defgroup PWR_LL_EF_FLAG_Management FLAG_Management + * @{ + */ + +/** + * @brief Get Wake-up Flag + * @rmtoll CSR WUF LL_PWR_IsActiveFlag_WU + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU(void) +{ + return (READ_BIT(PWR->CSR, PWR_CSR_WUF) == (PWR_CSR_WUF)); +} + +/** + * @brief Get Standby Flag + * @rmtoll CSR SBF LL_PWR_IsActiveFlag_SB + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void) +{ + return (READ_BIT(PWR->CSR, PWR_CSR_SBF) == (PWR_CSR_SBF)); +} + +#if defined(PWR_PVD_SUPPORT) +/** + * @brief Indicate whether VDD voltage is below the selected PVD threshold + * @rmtoll CSR PVDO LL_PWR_IsActiveFlag_PVDO + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO(void) +{ + return (READ_BIT(PWR->CSR, PWR_CSR_PVDO) == (PWR_CSR_PVDO)); +} +#endif /* PWR_PVD_SUPPORT */ + +#if defined(PWR_CSR_VREFINTRDYF) +/** + * @brief Get Internal Reference VrefInt Flag + * @rmtoll CSR VREFINTRDYF LL_PWR_IsActiveFlag_VREFINTRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VREFINTRDY(void) +{ + return (READ_BIT(PWR->CSR, PWR_CSR_VREFINTRDYF) == (PWR_CSR_VREFINTRDYF)); +} +#endif /* PWR_CSR_VREFINTRDYF */ +/** + * @brief Clear Standby Flag + * @rmtoll CR CSBF LL_PWR_ClearFlag_SB + * @retval None + */ +__STATIC_INLINE void LL_PWR_ClearFlag_SB(void) +{ + SET_BIT(PWR->CR, PWR_CR_CSBF); +} + +/** + * @brief Clear Wake-up Flags + * @rmtoll CR CWUF LL_PWR_ClearFlag_WU + * @retval None + */ +__STATIC_INLINE void LL_PWR_ClearFlag_WU(void) +{ + SET_BIT(PWR->CR, PWR_CR_CWUF); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup PWR_LL_EF_Init De-initialization function + * @{ + */ +ErrorStatus LL_PWR_DeInit(void); +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined(PWR) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_LL_PWR_H */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_rcc.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_rcc.h new file mode 100644 index 0000000..4fbff15 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_rcc.h @@ -0,0 +1,2839 @@ +/** + ****************************************************************************** + * @file stm32f3xx_ll_rcc.h + * @author MCD Application Team + * @brief Header file of RCC LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_LL_RCC_H +#define __STM32F3xx_LL_RCC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx.h" + +/** @addtogroup STM32F3xx_LL_Driver + * @{ + */ + +#if defined(RCC) + +/** @defgroup RCC_LL RCC + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/** @defgroup RCC_LL_Private_Constants RCC Private Constants + * @{ + */ +/* Defines used for the bit position in the register and perform offsets*/ +#define RCC_POSITION_HPRE (uint32_t)POSITION_VAL(RCC_CFGR_HPRE) /*!< field position in register RCC_CFGR */ +#define RCC_POSITION_PPRE1 (uint32_t)POSITION_VAL(RCC_CFGR_PPRE1) /*!< field position in register RCC_CFGR */ +#define RCC_POSITION_PPRE2 (uint32_t)POSITION_VAL(RCC_CFGR_PPRE2) /*!< field position in register RCC_CFGR */ +#define RCC_POSITION_HSICAL (uint32_t)POSITION_VAL(RCC_CR_HSICAL) /*!< field position in register RCC_CR */ +#define RCC_POSITION_HSITRIM (uint32_t)POSITION_VAL(RCC_CR_HSITRIM) /*!< field position in register RCC_CR */ +#define RCC_POSITION_PLLMUL (uint32_t)POSITION_VAL(RCC_CFGR_PLLMUL) /*!< field position in register RCC_CFGR */ +#define RCC_POSITION_USART1SW (uint32_t)0U /*!< field position in register RCC_CFGR3 */ +#define RCC_POSITION_USART2SW (uint32_t)16U /*!< field position in register RCC_CFGR3 */ +#define RCC_POSITION_USART3SW (uint32_t)18U /*!< field position in register RCC_CFGR3 */ +#define RCC_POSITION_TIM1SW (uint32_t)8U /*!< field position in register RCC_CFGR3 */ +#define RCC_POSITION_TIM8SW (uint32_t)9U /*!< field position in register RCC_CFGR3 */ +#define RCC_POSITION_TIM15SW (uint32_t)10U /*!< field position in register RCC_CFGR3 */ +#define RCC_POSITION_TIM16SW (uint32_t)11U /*!< field position in register RCC_CFGR3 */ +#define RCC_POSITION_TIM17SW (uint32_t)13U /*!< field position in register RCC_CFGR3 */ +#define RCC_POSITION_TIM20SW (uint32_t)15U /*!< field position in register RCC_CFGR3 */ +#define RCC_POSITION_TIM2SW (uint32_t)24U /*!< field position in register RCC_CFGR3 */ +#define RCC_POSITION_TIM34SW (uint32_t)25U /*!< field position in register RCC_CFGR3 */ + +/** + * @} + */ + +/* 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 8000000U /*!< 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 40000U /*!< Value of the LSI oscillator in Hz */ +#endif /* LSI_VALUE */ + +#if !defined (EXTERNAL_CLOCK_VALUE) +#define EXTERNAL_CLOCK_VALUE 12288000U /*!< Value of the I2S_CKIN external oscillator 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_CIR_LSIRDYC RCC_CIR_LSIRDYC /*!< LSI Ready Interrupt Clear */ +#define LL_RCC_CIR_LSERDYC RCC_CIR_LSERDYC /*!< LSE Ready Interrupt Clear */ +#define LL_RCC_CIR_HSIRDYC RCC_CIR_HSIRDYC /*!< HSI Ready Interrupt Clear */ +#define LL_RCC_CIR_HSERDYC RCC_CIR_HSERDYC /*!< HSE Ready Interrupt Clear */ +#define LL_RCC_CIR_PLLRDYC RCC_CIR_PLLRDYC /*!< PLL Ready Interrupt Clear */ +#define LL_RCC_CIR_CSSC RCC_CIR_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_CIR_LSIRDYF RCC_CIR_LSIRDYF /*!< LSI Ready Interrupt flag */ +#define LL_RCC_CIR_LSERDYF RCC_CIR_LSERDYF /*!< LSE Ready Interrupt flag */ +#define LL_RCC_CIR_HSIRDYF RCC_CIR_HSIRDYF /*!< HSI Ready Interrupt flag */ +#define LL_RCC_CIR_HSERDYF RCC_CIR_HSERDYF /*!< HSE Ready Interrupt flag */ +#define LL_RCC_CFGR_MCOF RCC_CFGR_MCOF /*!< MCO flag */ +#define LL_RCC_CIR_PLLRDYF RCC_CIR_PLLRDYF /*!< PLL Ready Interrupt flag */ +#define LL_RCC_CIR_CSSF RCC_CIR_CSSF /*!< Clock Security System Interrupt 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_PORRSTF RCC_CSR_PORRSTF /*!< POR/PDR 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_LPWRRSTF RCC_CSR_LPWRRSTF /*!< Low-Power reset flag */ +#if defined(RCC_CSR_V18PWRRSTF) +#define LL_RCC_CSR_V18PWRRSTF RCC_CSR_V18PWRRSTF /*!< Reset flag of the 1.8 V domain. */ +#endif /* RCC_CSR_V18PWRRSTF */ +/** + * @} + */ + +/** @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_CIR_LSIRDYIE RCC_CIR_LSIRDYIE /*!< LSI Ready Interrupt Enable */ +#define LL_RCC_CIR_LSERDYIE RCC_CIR_LSERDYIE /*!< LSE Ready Interrupt Enable */ +#define LL_RCC_CIR_HSIRDYIE RCC_CIR_HSIRDYIE /*!< HSI Ready Interrupt Enable */ +#define LL_RCC_CIR_HSERDYIE RCC_CIR_HSERDYIE /*!< HSE Ready Interrupt Enable */ +#define LL_RCC_CIR_PLLRDYIE RCC_CIR_PLLRDYIE /*!< PLL Ready Interrupt Enable */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_LSEDRIVE LSE oscillator drive capability + * @{ + */ +#define LL_RCC_LSEDRIVE_LOW ((uint32_t)0x00000000U) /*!< Xtal mode lower driving capability */ +#define LL_RCC_LSEDRIVE_MEDIUMLOW RCC_BDCR_LSEDRV_1 /*!< Xtal mode medium low driving capability */ +#define LL_RCC_LSEDRIVE_MEDIUMHIGH RCC_BDCR_LSEDRV_0 /*!< Xtal mode medium high driving capability */ +#define LL_RCC_LSEDRIVE_HIGH RCC_BDCR_LSEDRV /*!< Xtal mode higher driving capability */ +/** + * @} + */ + +/** @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 RCC_CFGR_MCOSEL_NOCLOCK /*!< MCO output disabled, no clock on MCO */ +#define LL_RCC_MCO1SOURCE_SYSCLK RCC_CFGR_MCOSEL_SYSCLK /*!< SYSCLK selection as MCO source */ +#define LL_RCC_MCO1SOURCE_HSI RCC_CFGR_MCOSEL_HSI /*!< HSI selection as MCO source */ +#define LL_RCC_MCO1SOURCE_HSE RCC_CFGR_MCOSEL_HSE /*!< HSE selection as MCO source */ +#define LL_RCC_MCO1SOURCE_LSI RCC_CFGR_MCOSEL_LSI /*!< LSI selection as MCO source */ +#define LL_RCC_MCO1SOURCE_LSE RCC_CFGR_MCOSEL_LSE /*!< LSE selection as MCO source */ +#define LL_RCC_MCO1SOURCE_PLLCLK_DIV_2 RCC_CFGR_MCOSEL_PLL_DIV2 /*!< PLL clock divided by 2*/ +#if defined(RCC_CFGR_PLLNODIV) +#define LL_RCC_MCO1SOURCE_PLLCLK (RCC_CFGR_MCOSEL_PLL_DIV2 | RCC_CFGR_PLLNODIV) /*!< PLL clock selected*/ +#endif /* RCC_CFGR_PLLNODIV */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_MCO1_DIV MCO1 prescaler + * @{ + */ +#define LL_RCC_MCO1_DIV_1 ((uint32_t)0x00000000U)/*!< MCO Clock divided by 1 */ +#if defined(RCC_CFGR_MCOPRE) +#define LL_RCC_MCO1_DIV_2 RCC_CFGR_MCOPRE_DIV2 /*!< MCO Clock divided by 2 */ +#define LL_RCC_MCO1_DIV_4 RCC_CFGR_MCOPRE_DIV4 /*!< MCO Clock divided by 4 */ +#define LL_RCC_MCO1_DIV_8 RCC_CFGR_MCOPRE_DIV8 /*!< MCO Clock divided by 8 */ +#define LL_RCC_MCO1_DIV_16 RCC_CFGR_MCOPRE_DIV16 /*!< MCO Clock divided by 16 */ +#define LL_RCC_MCO1_DIV_32 RCC_CFGR_MCOPRE_DIV32 /*!< MCO Clock divided by 32 */ +#define LL_RCC_MCO1_DIV_64 RCC_CFGR_MCOPRE_DIV64 /*!< MCO Clock divided by 64 */ +#define LL_RCC_MCO1_DIV_128 RCC_CFGR_MCOPRE_DIV128 /*!< MCO Clock divided by 128 */ +#endif /* RCC_CFGR_MCOPRE */ +/** + * @} + */ + +#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_USART1_CLKSOURCE Peripheral USART clock source selection + * @{ + */ +#if defined(RCC_CFGR3_USART1SW_PCLK1) +#define LL_RCC_USART1_CLKSOURCE_PCLK1 (uint32_t)((RCC_POSITION_USART1SW << 24U) | RCC_CFGR3_USART1SW_PCLK1) /*!< PCLK1 clock used as USART1 clock source */ +#else +#define LL_RCC_USART1_CLKSOURCE_PCLK2 (uint32_t)((RCC_POSITION_USART1SW << 24U) | RCC_CFGR3_USART1SW_PCLK2) /*!< PCLK2 clock used as USART1 clock source */ +#endif /*RCC_CFGR3_USART1SW_PCLK1*/ +#define LL_RCC_USART1_CLKSOURCE_SYSCLK (uint32_t)((RCC_POSITION_USART1SW << 24U) | RCC_CFGR3_USART1SW_SYSCLK) /*!< System clock selected as USART1 clock source */ +#define LL_RCC_USART1_CLKSOURCE_LSE (uint32_t)((RCC_POSITION_USART1SW << 24U) | RCC_CFGR3_USART1SW_LSE) /*!< LSE oscillator clock used as USART1 clock source */ +#define LL_RCC_USART1_CLKSOURCE_HSI (uint32_t)((RCC_POSITION_USART1SW << 24U) | RCC_CFGR3_USART1SW_HSI) /*!< HSI oscillator clock used as USART1 clock source */ +#if defined(RCC_CFGR3_USART2SW) +#define LL_RCC_USART2_CLKSOURCE_PCLK1 (uint32_t)((RCC_POSITION_USART2SW << 24U) | RCC_CFGR3_USART2SW_PCLK) /*!< PCLK1 clock used as USART2 clock source */ +#define LL_RCC_USART2_CLKSOURCE_SYSCLK (uint32_t)((RCC_POSITION_USART2SW << 24U) | RCC_CFGR3_USART2SW_SYSCLK) /*!< System clock selected as USART2 clock source */ +#define LL_RCC_USART2_CLKSOURCE_LSE (uint32_t)((RCC_POSITION_USART2SW << 24U) | RCC_CFGR3_USART2SW_LSE) /*!< LSE oscillator clock used as USART2 clock source */ +#define LL_RCC_USART2_CLKSOURCE_HSI (uint32_t)((RCC_POSITION_USART2SW << 24U) | RCC_CFGR3_USART2SW_HSI) /*!< HSI oscillator clock used as USART2 clock source */ +#endif /* RCC_CFGR3_USART2SW */ +#if defined(RCC_CFGR3_USART3SW) +#define LL_RCC_USART3_CLKSOURCE_PCLK1 (uint32_t)((RCC_POSITION_USART3SW << 24U) | RCC_CFGR3_USART3SW_PCLK) /*!< PCLK1 clock used as USART3 clock source */ +#define LL_RCC_USART3_CLKSOURCE_SYSCLK (uint32_t)((RCC_POSITION_USART3SW << 24U) | RCC_CFGR3_USART3SW_SYSCLK) /*!< System clock selected as USART3 clock source */ +#define LL_RCC_USART3_CLKSOURCE_LSE (uint32_t)((RCC_POSITION_USART3SW << 24U) | RCC_CFGR3_USART3SW_LSE) /*!< LSE oscillator clock used as USART3 clock source */ +#define LL_RCC_USART3_CLKSOURCE_HSI (uint32_t)((RCC_POSITION_USART3SW << 24U) | RCC_CFGR3_USART3SW_HSI) /*!< HSI oscillator clock used as USART3 clock source */ +#endif /* RCC_CFGR3_USART3SW */ +/** + * @} + */ + +#if defined(RCC_CFGR3_UART4SW) || defined(RCC_CFGR3_UART5SW) +/** @defgroup RCC_LL_EC_UART4_CLKSOURCE Peripheral UART clock source selection + * @{ + */ +#define LL_RCC_UART4_CLKSOURCE_PCLK1 (uint32_t)((RCC_CFGR3_UART4SW >> 8U) | RCC_CFGR3_UART4SW_PCLK) /*!< PCLK1 clock used as UART4 clock source */ +#define LL_RCC_UART4_CLKSOURCE_SYSCLK (uint32_t)((RCC_CFGR3_UART4SW >> 8U) | RCC_CFGR3_UART4SW_SYSCLK) /*!< System clock selected as UART4 clock source */ +#define LL_RCC_UART4_CLKSOURCE_LSE (uint32_t)((RCC_CFGR3_UART4SW >> 8U) | RCC_CFGR3_UART4SW_LSE) /*!< LSE oscillator clock used as UART4 clock source */ +#define LL_RCC_UART4_CLKSOURCE_HSI (uint32_t)((RCC_CFGR3_UART4SW >> 8U) | RCC_CFGR3_UART4SW_HSI) /*!< HSI oscillator clock used as UART4 clock source */ +#define LL_RCC_UART5_CLKSOURCE_PCLK1 (uint32_t)((RCC_CFGR3_UART5SW >> 8U) | RCC_CFGR3_UART5SW_PCLK) /*!< PCLK1 clock used as UART5 clock source */ +#define LL_RCC_UART5_CLKSOURCE_SYSCLK (uint32_t)((RCC_CFGR3_UART5SW >> 8U) | RCC_CFGR3_UART5SW_SYSCLK) /*!< System clock selected as UART5 clock source */ +#define LL_RCC_UART5_CLKSOURCE_LSE (uint32_t)((RCC_CFGR3_UART5SW >> 8U) | RCC_CFGR3_UART5SW_LSE) /*!< LSE oscillator clock used as UART5 clock source */ +#define LL_RCC_UART5_CLKSOURCE_HSI (uint32_t)((RCC_CFGR3_UART5SW >> 8U) | RCC_CFGR3_UART5SW_HSI) /*!< HSI oscillator clock used as UART5 clock source */ +/** + * @} + */ + +#endif /* RCC_CFGR3_UART4SW || RCC_CFGR3_UART5SW */ + +/** @defgroup RCC_LL_EC_I2C1_CLKSOURCE Peripheral I2C clock source selection + * @{ + */ +#define LL_RCC_I2C1_CLKSOURCE_HSI (uint32_t)((RCC_CFGR3_I2C1SW << 24U) | RCC_CFGR3_I2C1SW_HSI) /*!< HSI oscillator clock used as I2C1 clock source */ +#define LL_RCC_I2C1_CLKSOURCE_SYSCLK (uint32_t)((RCC_CFGR3_I2C1SW << 24U) | RCC_CFGR3_I2C1SW_SYSCLK) /*!< System clock selected as I2C1 clock source */ +#if defined(RCC_CFGR3_I2C2SW) +#define LL_RCC_I2C2_CLKSOURCE_HSI (uint32_t)((RCC_CFGR3_I2C2SW << 24U) | RCC_CFGR3_I2C2SW_HSI) /*!< HSI oscillator clock used as I2C2 clock source */ +#define LL_RCC_I2C2_CLKSOURCE_SYSCLK (uint32_t)((RCC_CFGR3_I2C2SW << 24U) | RCC_CFGR3_I2C2SW_SYSCLK) /*!< System clock selected as I2C2 clock source */ +#endif /*RCC_CFGR3_I2C2SW*/ +#if defined(RCC_CFGR3_I2C3SW) +#define LL_RCC_I2C3_CLKSOURCE_HSI (uint32_t)((RCC_CFGR3_I2C3SW << 24U) | RCC_CFGR3_I2C3SW_HSI) /*!< HSI oscillator clock used as I2C3 clock source */ +#define LL_RCC_I2C3_CLKSOURCE_SYSCLK (uint32_t)((RCC_CFGR3_I2C3SW << 24U) | RCC_CFGR3_I2C3SW_SYSCLK) /*!< System clock selected as I2C3 clock source */ +#endif /*RCC_CFGR3_I2C3SW*/ +/** + * @} + */ + +#if defined(RCC_CFGR_I2SSRC) +/** @defgroup RCC_LL_EC_I2S_CLKSOURCE Peripheral I2S clock source selection + * @{ + */ +#define LL_RCC_I2S_CLKSOURCE_SYSCLK RCC_CFGR_I2SSRC_SYSCLK /*!< System clock selected as I2S clock source */ +#define LL_RCC_I2S_CLKSOURCE_PIN RCC_CFGR_I2SSRC_EXT /*!< External clock selected as I2S clock source */ +/** + * @} + */ + +#endif /* RCC_CFGR_I2SSRC */ + +#if defined(RCC_CFGR3_TIMSW) +/** @defgroup RCC_LL_EC_TIM1_CLKSOURCE Peripheral TIM clock source selection + * @{ + */ +#define LL_RCC_TIM1_CLKSOURCE_PCLK2 (uint32_t)(((RCC_POSITION_TIM1SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM1SW_PCLK2) /*!< PCLK2 used as TIM1 clock source */ +#define LL_RCC_TIM1_CLKSOURCE_PLL (uint32_t)(((RCC_POSITION_TIM1SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM1SW_PLL) /*!< PLL clock used as TIM1 clock source */ +#if defined(RCC_CFGR3_TIM8SW) +#define LL_RCC_TIM8_CLKSOURCE_PCLK2 (uint32_t)(((RCC_POSITION_TIM8SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM8SW_PCLK2) /*!< PCLK2 used as TIM8 clock source */ +#define LL_RCC_TIM8_CLKSOURCE_PLL (uint32_t)(((RCC_POSITION_TIM8SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM8SW_PLL) /*!< PLL clock used as TIM8 clock source */ +#endif /*RCC_CFGR3_TIM8SW*/ +#if defined(RCC_CFGR3_TIM15SW) +#define LL_RCC_TIM15_CLKSOURCE_PCLK2 (uint32_t)(((RCC_POSITION_TIM15SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM15SW_PCLK2) /*!< PCLK2 used as TIM15 clock source */ +#define LL_RCC_TIM15_CLKSOURCE_PLL (uint32_t)(((RCC_POSITION_TIM15SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM15SW_PLL) /*!< PLL clock used as TIM15 clock source */ +#endif /*RCC_CFGR3_TIM15SW*/ +#if defined(RCC_CFGR3_TIM16SW) +#define LL_RCC_TIM16_CLKSOURCE_PCLK2 (uint32_t)(((RCC_POSITION_TIM16SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM16SW_PCLK2) /*!< PCLK2 used as TIM16 clock source */ +#define LL_RCC_TIM16_CLKSOURCE_PLL (uint32_t)(((RCC_POSITION_TIM16SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM16SW_PLL) /*!< PLL clock used as TIM16 clock source */ +#endif /*RCC_CFGR3_TIM16SW*/ +#if defined(RCC_CFGR3_TIM17SW) +#define LL_RCC_TIM17_CLKSOURCE_PCLK2 (uint32_t)(((RCC_POSITION_TIM17SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM17SW_PCLK2) /*!< PCLK2 used as TIM17 clock source */ +#define LL_RCC_TIM17_CLKSOURCE_PLL (uint32_t)(((RCC_POSITION_TIM17SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM17SW_PLL) /*!< PLL clock used as TIM17 clock source */ +#endif /*RCC_CFGR3_TIM17SW*/ +#if defined(RCC_CFGR3_TIM20SW) +#define LL_RCC_TIM20_CLKSOURCE_PCLK2 (uint32_t)(((RCC_POSITION_TIM20SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM20SW_PCLK2) /*!< PCLK2 used as TIM20 clock source */ +#define LL_RCC_TIM20_CLKSOURCE_PLL (uint32_t)(((RCC_POSITION_TIM20SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM20SW_PLL) /*!< PLL clock used as TIM20 clock source */ +#endif /*RCC_CFGR3_TIM20SW*/ +#if defined(RCC_CFGR3_TIM2SW) +#define LL_RCC_TIM2_CLKSOURCE_PCLK1 (uint32_t)(((RCC_POSITION_TIM2SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM2SW_PCLK1) /*!< PCLK1 used as TIM2 clock source */ +#define LL_RCC_TIM2_CLKSOURCE_PLL (uint32_t)(((RCC_POSITION_TIM2SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM2SW_PLL) /*!< PLL clock used as TIM2 clock source */ +#endif /*RCC_CFGR3_TIM2SW*/ +#if defined(RCC_CFGR3_TIM34SW) +#define LL_RCC_TIM34_CLKSOURCE_PCLK1 (uint32_t)(((RCC_POSITION_TIM34SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM34SW_PCLK1) /*!< PCLK1 used as TIM3/4 clock source */ +#define LL_RCC_TIM34_CLKSOURCE_PLL (uint32_t)(((RCC_POSITION_TIM34SW - RCC_POSITION_TIM1SW) << 27U) | RCC_CFGR3_TIM34SW_PLL) /*!< PLL clock used as TIM3/4 clock source */ +#endif /*RCC_CFGR3_TIM34SW*/ +/** + * @} + */ + +#endif /* RCC_CFGR3_TIMSW */ + +#if defined(HRTIM1) +/** @defgroup RCC_LL_EC_HRTIM1_CLKSOURCE Peripheral HRTIM1 clock source selection + * @{ + */ +#define LL_RCC_HRTIM1_CLKSOURCE_PCLK2 RCC_CFGR3_HRTIM1SW_PCLK2 /*!< PCLK2 used as HRTIM1 clock source */ +#define LL_RCC_HRTIM1_CLKSOURCE_PLL RCC_CFGR3_HRTIM1SW_PLL /*!< PLL clock used as HRTIM1 clock source */ +/** + * @} + */ + +#endif /* HRTIM1 */ + +#if defined(CEC) +/** @defgroup RCC_LL_EC_CEC_CLKSOURCE Peripheral CEC clock source selection + * @{ + */ +#define LL_RCC_CEC_CLKSOURCE_HSI_DIV244 RCC_CFGR3_CECSW_HSI_DIV244 /*!< HSI clock divided by 244 selected as HDMI CEC entry clock source */ +#define LL_RCC_CEC_CLKSOURCE_LSE RCC_CFGR3_CECSW_LSE /*!< LSE clock selected as HDMI CEC entry clock source */ +/** + * @} + */ + +#endif /* CEC */ + +#if defined(USB) +/** @defgroup RCC_LL_EC_USB_CLKSOURCE Peripheral USB clock source selection + * @{ + */ +#define LL_RCC_USB_CLKSOURCE_PLL RCC_CFGR_USBPRE_DIV1 /*!< USB prescaler is PLL clock divided by 1 */ +#define LL_RCC_USB_CLKSOURCE_PLL_DIV_1_5 RCC_CFGR_USBPRE_DIV1_5 /*!< USB prescaler is PLL clock divided by 1.5 */ +/** + * @} + */ + +#endif /* USB */ + +#if defined(RCC_CFGR_ADCPRE) +/** @defgroup RCC_LL_EC_ADC_CLKSOURCE Peripheral ADC clock source selection + * @{ + */ +#define LL_RCC_ADC_CLKSRC_PCLK2_DIV_2 RCC_CFGR_ADCPRE_DIV2 /*!< ADC prescaler PCLK divided by 2 */ +#define LL_RCC_ADC_CLKSRC_PCLK2_DIV_4 RCC_CFGR_ADCPRE_DIV4 /*!< ADC prescaler PCLK divided by 4 */ +#define LL_RCC_ADC_CLKSRC_PCLK2_DIV_6 RCC_CFGR_ADCPRE_DIV6 /*!< ADC prescaler PCLK divided by 6 */ +#define LL_RCC_ADC_CLKSRC_PCLK2_DIV_8 RCC_CFGR_ADCPRE_DIV8 /*!< ADC prescaler PCLK divided by 8 */ +/** + * @} + */ + +#elif defined(RCC_CFGR2_ADC1PRES) +/** @defgroup RCC_LL_EC_ADC1_CLKSOURCE Peripheral ADC clock source selection + * @{ + */ +#define LL_RCC_ADC1_CLKSRC_HCLK RCC_CFGR2_ADC1PRES_NO /*!< ADC1 clock disabled, ADC1 can use AHB clock */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_1 RCC_CFGR2_ADC1PRES_DIV1 /*!< ADC1 PLL clock divided by 1 */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_2 RCC_CFGR2_ADC1PRES_DIV2 /*!< ADC1 PLL clock divided by 2 */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_4 RCC_CFGR2_ADC1PRES_DIV4 /*!< ADC1 PLL clock divided by 4 */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_6 RCC_CFGR2_ADC1PRES_DIV6 /*!< ADC1 PLL clock divided by 6 */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_8 RCC_CFGR2_ADC1PRES_DIV8 /*!< ADC1 PLL clock divided by 8 */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_10 RCC_CFGR2_ADC1PRES_DIV10 /*!< ADC1 PLL clock divided by 10 */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_12 RCC_CFGR2_ADC1PRES_DIV12 /*!< ADC1 PLL clock divided by 12 */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_16 RCC_CFGR2_ADC1PRES_DIV16 /*!< ADC1 PLL clock divided by 16 */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_32 RCC_CFGR2_ADC1PRES_DIV32 /*!< ADC1 PLL clock divided by 32 */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_64 RCC_CFGR2_ADC1PRES_DIV64 /*!< ADC1 PLL clock divided by 64 */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_128 RCC_CFGR2_ADC1PRES_DIV128 /*!< ADC1 PLL clock divided by 128 */ +#define LL_RCC_ADC1_CLKSRC_PLL_DIV_256 RCC_CFGR2_ADC1PRES_DIV256 /*!< ADC1 PLL clock divided by 256 */ +/** + * @} + */ + +#elif defined(RCC_CFGR2_ADCPRE12) || defined(RCC_CFGR2_ADCPRE34) +#if defined(RCC_CFGR2_ADCPRE12) && defined(RCC_CFGR2_ADCPRE34) +/** @defgroup RCC_LL_EC_ADC12_CLKSOURCE Peripheral ADC12 clock source selection + * @{ + */ +#define LL_RCC_ADC12_CLKSRC_HCLK (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_NO) /*!< ADC12 clock disabled, ADC12 can use AHB clock */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_1 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV1) /*!< ADC12 PLL clock divided by 1 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_2 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV2) /*!< ADC12 PLL clock divided by 2 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_4 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV4) /*!< ADC12 PLL clock divided by 4 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_6 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV6) /*!< ADC12 PLL clock divided by 6 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_8 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV8) /*!< ADC12 PLL clock divided by 8 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_10 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV10) /*!< ADC12 PLL clock divided by 10 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_12 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV12) /*!< ADC12 PLL clock divided by 12 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_16 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV16) /*!< ADC12 PLL clock divided by 16 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_32 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV32) /*!< ADC12 PLL clock divided by 32 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_64 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV64) /*!< ADC12 PLL clock divided by 64 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_128 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV128) /*!< ADC12 PLL clock divided by 128 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_256 (uint32_t)((RCC_CFGR2_ADCPRE12 << 16U) | RCC_CFGR2_ADCPRE12_DIV256) /*!< ADC12 PLL clock divided by 256 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_ADC34_CLKSOURCE Peripheral ADC34 clock source selection + * @{ + */ +#define LL_RCC_ADC34_CLKSRC_HCLK (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_NO) /*!< ADC34 clock disabled, ADC34 can use AHB clock */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_1 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV1) /*!< ADC34 PLL clock divided by 1 */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_2 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV2) /*!< ADC34 PLL clock divided by 2 */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_4 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV4) /*!< ADC34 PLL clock divided by 4 */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_6 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV6) /*!< ADC34 PLL clock divided by 6 */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_8 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV8) /*!< ADC34 PLL clock divided by 8 */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_10 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV10) /*!< ADC34 PLL clock divided by 10 */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_12 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV12) /*!< ADC34 PLL clock divided by 12 */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_16 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV16) /*!< ADC34 PLL clock divided by 16 */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_32 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV32) /*!< ADC34 PLL clock divided by 32 */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_64 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV64) /*!< ADC34 PLL clock divided by 64 */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_128 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV128) /*!< ADC34 PLL clock divided by 128 */ +#define LL_RCC_ADC34_CLKSRC_PLL_DIV_256 (uint32_t)((RCC_CFGR2_ADCPRE34 << 16U) | RCC_CFGR2_ADCPRE34_DIV256) /*!< ADC34 PLL clock divided by 256 */ +/** + * @} + */ + +#else +/** @defgroup RCC_LL_EC_ADC12_CLKSOURCE Peripheral ADC clock source selection + * @{ + */ +#define LL_RCC_ADC12_CLKSRC_HCLK RCC_CFGR2_ADCPRE12_NO /*!< ADC12 clock disabled, ADC12 can use AHB clock */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_1 RCC_CFGR2_ADCPRE12_DIV1 /*!< ADC12 PLL clock divided by 1 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_2 RCC_CFGR2_ADCPRE12_DIV2 /*!< ADC12 PLL clock divided by 2 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_4 RCC_CFGR2_ADCPRE12_DIV4 /*!< ADC12 PLL clock divided by 4 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_6 RCC_CFGR2_ADCPRE12_DIV6 /*!< ADC12 PLL clock divided by 6 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_8 RCC_CFGR2_ADCPRE12_DIV8 /*!< ADC12 PLL clock divided by 8 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_10 RCC_CFGR2_ADCPRE12_DIV10 /*!< ADC12 PLL clock divided by 10 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_12 RCC_CFGR2_ADCPRE12_DIV12 /*!< ADC12 PLL clock divided by 12 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_16 RCC_CFGR2_ADCPRE12_DIV16 /*!< ADC12 PLL clock divided by 16 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_32 RCC_CFGR2_ADCPRE12_DIV32 /*!< ADC12 PLL clock divided by 32 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_64 RCC_CFGR2_ADCPRE12_DIV64 /*!< ADC12 PLL clock divided by 64 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_128 RCC_CFGR2_ADCPRE12_DIV128 /*!< ADC12 PLL clock divided by 128 */ +#define LL_RCC_ADC12_CLKSRC_PLL_DIV_256 RCC_CFGR2_ADCPRE12_DIV256 /*!< ADC12 PLL clock divided by 256 */ +/** + * @} + */ + +#endif /* RCC_CFGR2_ADCPRE12 && RCC_CFGR2_ADCPRE34 */ + +#endif /* RCC_CFGR_ADCPRE */ + +#if defined(RCC_CFGR_SDPRE) +/** @defgroup RCC_LL_EC_SDADC_CLKSOURCE_SYSCLK Peripheral SDADC clock source selection + * @{ + */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_1 RCC_CFGR_SDPRE_DIV1 /*!< SDADC CLK not divided */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_2 RCC_CFGR_SDPRE_DIV2 /*!< SDADC CLK divided by 2 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_4 RCC_CFGR_SDPRE_DIV4 /*!< SDADC CLK divided by 4 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_6 RCC_CFGR_SDPRE_DIV6 /*!< SDADC CLK divided by 6 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_8 RCC_CFGR_SDPRE_DIV8 /*!< SDADC CLK divided by 8 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_10 RCC_CFGR_SDPRE_DIV10 /*!< SDADC CLK divided by 10 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_12 RCC_CFGR_SDPRE_DIV12 /*!< SDADC CLK divided by 12 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_14 RCC_CFGR_SDPRE_DIV14 /*!< SDADC CLK divided by 14 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_16 RCC_CFGR_SDPRE_DIV16 /*!< SDADC CLK divided by 16 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_20 RCC_CFGR_SDPRE_DIV20 /*!< SDADC CLK divided by 20 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_24 RCC_CFGR_SDPRE_DIV24 /*!< SDADC CLK divided by 24 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_28 RCC_CFGR_SDPRE_DIV28 /*!< SDADC CLK divided by 28 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_32 RCC_CFGR_SDPRE_DIV32 /*!< SDADC CLK divided by 32 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_36 RCC_CFGR_SDPRE_DIV36 /*!< SDADC CLK divided by 36 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_40 RCC_CFGR_SDPRE_DIV40 /*!< SDADC CLK divided by 40 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_44 RCC_CFGR_SDPRE_DIV44 /*!< SDADC CLK divided by 44 */ +#define LL_RCC_SDADC_CLKSRC_SYS_DIV_48 RCC_CFGR_SDPRE_DIV48 /*!< SDADC CLK divided by 48 */ +/** + * @} + */ + +#endif /* RCC_CFGR_SDPRE */ + +/** @defgroup RCC_LL_EC_USART Peripheral USART get clock source + * @{ + */ +#define LL_RCC_USART1_CLKSOURCE RCC_POSITION_USART1SW /*!< USART1 Clock source selection */ +#if defined(RCC_CFGR3_USART2SW) +#define LL_RCC_USART2_CLKSOURCE RCC_POSITION_USART2SW /*!< USART2 Clock source selection */ +#endif /* RCC_CFGR3_USART2SW */ +#if defined(RCC_CFGR3_USART3SW) +#define LL_RCC_USART3_CLKSOURCE RCC_POSITION_USART3SW /*!< USART3 Clock source selection */ +#endif /* RCC_CFGR3_USART3SW */ +/** + * @} + */ + +#if defined(RCC_CFGR3_UART4SW) || defined(RCC_CFGR3_UART5SW) +/** @defgroup RCC_LL_EC_UART Peripheral UART get clock source + * @{ + */ +#define LL_RCC_UART4_CLKSOURCE RCC_CFGR3_UART4SW /*!< UART4 Clock source selection */ +#define LL_RCC_UART5_CLKSOURCE RCC_CFGR3_UART5SW /*!< UART5 Clock source selection */ +/** + * @} + */ + +#endif /* RCC_CFGR3_UART4SW || RCC_CFGR3_UART5SW */ + +/** @defgroup RCC_LL_EC_I2C Peripheral I2C get clock source + * @{ + */ +#define LL_RCC_I2C1_CLKSOURCE RCC_CFGR3_I2C1SW /*!< I2C1 Clock source selection */ +#if defined(RCC_CFGR3_I2C2SW) +#define LL_RCC_I2C2_CLKSOURCE RCC_CFGR3_I2C2SW /*!< I2C2 Clock source selection */ +#endif /*RCC_CFGR3_I2C2SW*/ +#if defined(RCC_CFGR3_I2C3SW) +#define LL_RCC_I2C3_CLKSOURCE RCC_CFGR3_I2C3SW /*!< I2C3 Clock source selection */ +#endif /*RCC_CFGR3_I2C3SW*/ +/** + * @} + */ + +#if defined(RCC_CFGR_I2SSRC) +/** @defgroup RCC_LL_EC_I2S Peripheral I2S get clock source + * @{ + */ +#define LL_RCC_I2S_CLKSOURCE RCC_CFGR_I2SSRC /*!< I2S Clock source selection */ +/** + * @} + */ + +#endif /* RCC_CFGR_I2SSRC */ + +#if defined(RCC_CFGR3_TIMSW) +/** @defgroup RCC_LL_EC_TIM TIMx Peripheral TIM get clock source + * @{ + */ +#define LL_RCC_TIM1_CLKSOURCE (RCC_POSITION_TIM1SW - RCC_POSITION_TIM1SW) /*!< TIM1 Clock source selection */ +#if defined(RCC_CFGR3_TIM2SW) +#define LL_RCC_TIM2_CLKSOURCE (RCC_POSITION_TIM2SW - RCC_POSITION_TIM1SW) /*!< TIM2 Clock source selection */ +#endif /*RCC_CFGR3_TIM2SW*/ +#if defined(RCC_CFGR3_TIM8SW) +#define LL_RCC_TIM8_CLKSOURCE (RCC_POSITION_TIM8SW - RCC_POSITION_TIM1SW) /*!< TIM8 Clock source selection */ +#endif /*RCC_CFGR3_TIM8SW*/ +#if defined(RCC_CFGR3_TIM15SW) +#define LL_RCC_TIM15_CLKSOURCE (RCC_POSITION_TIM15SW - RCC_POSITION_TIM1SW) /*!< TIM15 Clock source selection */ +#endif /*RCC_CFGR3_TIM15SW*/ +#if defined(RCC_CFGR3_TIM16SW) +#define LL_RCC_TIM16_CLKSOURCE (RCC_POSITION_TIM16SW - RCC_POSITION_TIM1SW) /*!< TIM16 Clock source selection */ +#endif /*RCC_CFGR3_TIM16SW*/ +#if defined(RCC_CFGR3_TIM17SW) +#define LL_RCC_TIM17_CLKSOURCE (RCC_POSITION_TIM17SW - RCC_POSITION_TIM1SW) /*!< TIM17 Clock source selection */ +#endif /*RCC_CFGR3_TIM17SW*/ +#if defined(RCC_CFGR3_TIM20SW) +#define LL_RCC_TIM20_CLKSOURCE (RCC_POSITION_TIM20SW - RCC_POSITION_TIM1SW) /*!< TIM20 Clock source selection */ +#endif /*RCC_CFGR3_TIM20SW*/ +#if defined(RCC_CFGR3_TIM34SW) +#define LL_RCC_TIM34_CLKSOURCE (RCC_POSITION_TIM34SW - RCC_POSITION_TIM1SW) /*!< TIM3/4 Clock source selection */ +#endif /*RCC_CFGR3_TIM34SW*/ +/** + * @} + */ + +#endif /* RCC_CFGR3_TIMSW */ + +#if defined(HRTIM1) +/** @defgroup RCC_LL_EC_HRTIM1 Peripheral HRTIM1 get clock source + * @{ + */ +#define LL_RCC_HRTIM1_CLKSOURCE RCC_CFGR3_HRTIM1SW /*!< HRTIM1 Clock source selection */ +/** + * @} + */ + +#endif /* HRTIM1 */ + +#if defined(CEC) +/** @defgroup RCC_LL_EC_CEC Peripheral CEC get clock source + * @{ + */ +#define LL_RCC_CEC_CLKSOURCE RCC_CFGR3_CECSW /*!< CEC Clock source selection */ +/** + * @} + */ + +#endif /* CEC */ + +#if defined(USB) +/** @defgroup RCC_LL_EC_USB Peripheral USB get clock source + * @{ + */ +#define LL_RCC_USB_CLKSOURCE RCC_CFGR_USBPRE /*!< USB Clock source selection */ +/** + * @} + */ + +#endif /* USB */ + +#if defined(RCC_CFGR_ADCPRE) +/** @defgroup RCC_LL_EC_ADC Peripheral ADC get clock source + * @{ + */ +#define LL_RCC_ADC_CLKSOURCE RCC_CFGR_ADCPRE /*!< ADC Clock source selection */ +/** + * @} + */ + +#endif /* RCC_CFGR_ADCPRE */ + +#if defined(RCC_CFGR2_ADC1PRES) || defined(RCC_CFGR2_ADCPRE12) || defined(RCC_CFGR2_ADCPRE34) +/** @defgroup RCC_LL_EC_ADCXX Peripheral ADC get clock source + * @{ + */ +#if defined(RCC_CFGR2_ADC1PRES) +#define LL_RCC_ADC1_CLKSOURCE RCC_CFGR2_ADC1PRES /*!< ADC1 Clock source selection */ +#else +#define LL_RCC_ADC12_CLKSOURCE RCC_CFGR2_ADCPRE12 /*!< ADC12 Clock source selection */ +#if defined(RCC_CFGR2_ADCPRE34) +#define LL_RCC_ADC34_CLKSOURCE RCC_CFGR2_ADCPRE34 /*!< ADC34 Clock source selection */ +#endif /*RCC_CFGR2_ADCPRE34*/ +#endif /*RCC_CFGR2_ADC1PRES*/ +/** + * @} + */ + +#endif /* RCC_CFGR2_ADC1PRES || RCC_CFGR2_ADCPRE12 || RCC_CFGR2_ADCPRE34 */ + +#if defined(RCC_CFGR_SDPRE) +/** @defgroup RCC_LL_EC_SDADC Peripheral SDADC get clock source + * @{ + */ +#define LL_RCC_SDADC_CLKSOURCE RCC_CFGR_SDPRE /*!< SDADC Clock source selection */ +/** + * @} + */ + +#endif /* RCC_CFGR_SDPRE */ + + +/** @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_PLL_MUL PLL Multiplicator factor + * @{ + */ +#define LL_RCC_PLL_MUL_2 RCC_CFGR_PLLMUL2 /*!< PLL input clock*2 */ +#define LL_RCC_PLL_MUL_3 RCC_CFGR_PLLMUL3 /*!< PLL input clock*3 */ +#define LL_RCC_PLL_MUL_4 RCC_CFGR_PLLMUL4 /*!< PLL input clock*4 */ +#define LL_RCC_PLL_MUL_5 RCC_CFGR_PLLMUL5 /*!< PLL input clock*5 */ +#define LL_RCC_PLL_MUL_6 RCC_CFGR_PLLMUL6 /*!< PLL input clock*6 */ +#define LL_RCC_PLL_MUL_7 RCC_CFGR_PLLMUL7 /*!< PLL input clock*7 */ +#define LL_RCC_PLL_MUL_8 RCC_CFGR_PLLMUL8 /*!< PLL input clock*8 */ +#define LL_RCC_PLL_MUL_9 RCC_CFGR_PLLMUL9 /*!< PLL input clock*9 */ +#define LL_RCC_PLL_MUL_10 RCC_CFGR_PLLMUL10 /*!< PLL input clock*10 */ +#define LL_RCC_PLL_MUL_11 RCC_CFGR_PLLMUL11 /*!< PLL input clock*11 */ +#define LL_RCC_PLL_MUL_12 RCC_CFGR_PLLMUL12 /*!< PLL input clock*12 */ +#define LL_RCC_PLL_MUL_13 RCC_CFGR_PLLMUL13 /*!< PLL input clock*13 */ +#define LL_RCC_PLL_MUL_14 RCC_CFGR_PLLMUL14 /*!< PLL input clock*14 */ +#define LL_RCC_PLL_MUL_15 RCC_CFGR_PLLMUL15 /*!< PLL input clock*15 */ +#define LL_RCC_PLL_MUL_16 RCC_CFGR_PLLMUL16 /*!< PLL input clock*16 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PLLSOURCE PLL SOURCE + * @{ + */ +#define LL_RCC_PLLSOURCE_NONE 0x00000000U /*!< No clock selected as main PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE RCC_CFGR_PLLSRC_HSE_PREDIV /*!< HSE/PREDIV clock selected as PLL entry clock source */ +#if defined(RCC_PLLSRC_PREDIV1_SUPPORT) +#define LL_RCC_PLLSOURCE_HSI RCC_CFGR_PLLSRC_HSI_PREDIV /*!< HSI/PREDIV clock selected as PLL entry clock source */ +#else +#define LL_RCC_PLLSOURCE_HSI_DIV_2 RCC_CFGR_PLLSRC_HSI_DIV2 /*!< HSI clock divided by 2 selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_1 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV1) /*!< HSE clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_2 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV2) /*!< HSE/2 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_3 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV3) /*!< HSE/3 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_4 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV4) /*!< HSE/4 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_5 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV5) /*!< HSE/5 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_6 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV6) /*!< HSE/6 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_7 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV7) /*!< HSE/7 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_8 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV8) /*!< HSE/8 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_9 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV9) /*!< HSE/9 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_10 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV10) /*!< HSE/10 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_11 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV11) /*!< HSE/11 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_12 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV12) /*!< HSE/12 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_13 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV13) /*!< HSE/13 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_14 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV14) /*!< HSE/14 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_15 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV15) /*!< HSE/15 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_16 (RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR2_PREDIV_DIV16) /*!< HSE/16 clock selected as PLL entry clock source */ +#endif /* RCC_PLLSRC_PREDIV1_SUPPORT */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PREDIV_DIV PREDIV Division factor + * @{ + */ +#define LL_RCC_PREDIV_DIV_1 RCC_CFGR2_PREDIV_DIV1 /*!< PREDIV input clock not divided */ +#define LL_RCC_PREDIV_DIV_2 RCC_CFGR2_PREDIV_DIV2 /*!< PREDIV input clock divided by 2 */ +#define LL_RCC_PREDIV_DIV_3 RCC_CFGR2_PREDIV_DIV3 /*!< PREDIV input clock divided by 3 */ +#define LL_RCC_PREDIV_DIV_4 RCC_CFGR2_PREDIV_DIV4 /*!< PREDIV input clock divided by 4 */ +#define LL_RCC_PREDIV_DIV_5 RCC_CFGR2_PREDIV_DIV5 /*!< PREDIV input clock divided by 5 */ +#define LL_RCC_PREDIV_DIV_6 RCC_CFGR2_PREDIV_DIV6 /*!< PREDIV input clock divided by 6 */ +#define LL_RCC_PREDIV_DIV_7 RCC_CFGR2_PREDIV_DIV7 /*!< PREDIV input clock divided by 7 */ +#define LL_RCC_PREDIV_DIV_8 RCC_CFGR2_PREDIV_DIV8 /*!< PREDIV input clock divided by 8 */ +#define LL_RCC_PREDIV_DIV_9 RCC_CFGR2_PREDIV_DIV9 /*!< PREDIV input clock divided by 9 */ +#define LL_RCC_PREDIV_DIV_10 RCC_CFGR2_PREDIV_DIV10 /*!< PREDIV input clock divided by 10 */ +#define LL_RCC_PREDIV_DIV_11 RCC_CFGR2_PREDIV_DIV11 /*!< PREDIV input clock divided by 11 */ +#define LL_RCC_PREDIV_DIV_12 RCC_CFGR2_PREDIV_DIV12 /*!< PREDIV input clock divided by 12 */ +#define LL_RCC_PREDIV_DIV_13 RCC_CFGR2_PREDIV_DIV13 /*!< PREDIV input clock divided by 13 */ +#define LL_RCC_PREDIV_DIV_14 RCC_CFGR2_PREDIV_DIV14 /*!< PREDIV input clock divided by 14 */ +#define LL_RCC_PREDIV_DIV_15 RCC_CFGR2_PREDIV_DIV15 /*!< PREDIV input clock divided by 15 */ +#define LL_RCC_PREDIV_DIV_16 RCC_CFGR2_PREDIV_DIV16 /*!< PREDIV input clock divided by 16 */ +/** + * @} + */ + +/** + * @} + */ + +/* 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 + * @{ + */ + +#if defined(RCC_PLLSRC_PREDIV1_SUPPORT) +/** + * @brief Helper macro to calculate the PLLCLK frequency + * @note ex: @ref __LL_RCC_CALC_PLLCLK_FREQ (HSE_VALUE, @ref LL_RCC_PLL_GetMultiplicator() + * , @ref LL_RCC_PLL_GetPrediv()); + * @param __INPUTFREQ__ PLL Input frequency (based on HSE/HSI) + * @param __PLLMUL__ This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_2 + * @arg @ref LL_RCC_PLL_MUL_3 + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_5 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_7 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_9 + * @arg @ref LL_RCC_PLL_MUL_10 + * @arg @ref LL_RCC_PLL_MUL_11 + * @arg @ref LL_RCC_PLL_MUL_12 + * @arg @ref LL_RCC_PLL_MUL_13 + * @arg @ref LL_RCC_PLL_MUL_14 + * @arg @ref LL_RCC_PLL_MUL_15 + * @arg @ref LL_RCC_PLL_MUL_16 + * @param __PLLPREDIV__ This parameter can be one of the following values: + * @arg @ref LL_RCC_PREDIV_DIV_1 + * @arg @ref LL_RCC_PREDIV_DIV_2 + * @arg @ref LL_RCC_PREDIV_DIV_3 + * @arg @ref LL_RCC_PREDIV_DIV_4 + * @arg @ref LL_RCC_PREDIV_DIV_5 + * @arg @ref LL_RCC_PREDIV_DIV_6 + * @arg @ref LL_RCC_PREDIV_DIV_7 + * @arg @ref LL_RCC_PREDIV_DIV_8 + * @arg @ref LL_RCC_PREDIV_DIV_9 + * @arg @ref LL_RCC_PREDIV_DIV_10 + * @arg @ref LL_RCC_PREDIV_DIV_11 + * @arg @ref LL_RCC_PREDIV_DIV_12 + * @arg @ref LL_RCC_PREDIV_DIV_13 + * @arg @ref LL_RCC_PREDIV_DIV_14 + * @arg @ref LL_RCC_PREDIV_DIV_15 + * @arg @ref LL_RCC_PREDIV_DIV_16 + * @retval PLL clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PLLCLK_FREQ(__INPUTFREQ__, __PLLMUL__, __PLLPREDIV__) \ + (((__INPUTFREQ__) / ((((__PLLPREDIV__) & RCC_CFGR2_PREDIV) + 1U))) * ((((__PLLMUL__) & RCC_CFGR_PLLMUL) >> RCC_POSITION_PLLMUL) + 2U)) + +#else +/** + * @brief Helper macro to calculate the PLLCLK frequency + * @note ex: @ref __LL_RCC_CALC_PLLCLK_FREQ (HSE_VALUE / (@ref LL_RCC_PLL_GetPrediv () + 1), @ref LL_RCC_PLL_GetMultiplicator()); + * @param __INPUTFREQ__ PLL Input frequency (based on HSE div Prediv / HSI div 2) + * @param __PLLMUL__ This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_2 + * @arg @ref LL_RCC_PLL_MUL_3 + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_5 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_7 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_9 + * @arg @ref LL_RCC_PLL_MUL_10 + * @arg @ref LL_RCC_PLL_MUL_11 + * @arg @ref LL_RCC_PLL_MUL_12 + * @arg @ref LL_RCC_PLL_MUL_13 + * @arg @ref LL_RCC_PLL_MUL_14 + * @arg @ref LL_RCC_PLL_MUL_15 + * @arg @ref LL_RCC_PLL_MUL_16 + * @retval PLL clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PLLCLK_FREQ(__INPUTFREQ__, __PLLMUL__) \ + ((__INPUTFREQ__) * ((((__PLLMUL__) & RCC_CFGR_PLLMUL) >> RCC_POSITION_PLLMUL) + 2U)) +#endif /* RCC_PLLSRC_PREDIV1_SUPPORT */ +/** + * @brief Helper macro to calculate the HCLK frequency + * @note: __AHBPRESCALER__ be retrieved by @ref LL_RCC_GetAHBPrescaler + * ex: __LL_RCC_CALC_HCLK_FREQ(LL_RCC_GetAHBPrescaler()) + * @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]) + +/** + * @brief Helper macro to calculate the PCLK1 frequency (ABP1) + * @note: __APB1PRESCALER__ be retrieved by @ref LL_RCC_GetAPB1Prescaler + * ex: __LL_RCC_CALC_PCLK1_FREQ(LL_RCC_GetAPB1Prescaler()) + * @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]) + +/** + * @brief Helper macro to calculate the PCLK2 frequency (ABP2) + * @note: __APB2PRESCALER__ be retrieved by @ref LL_RCC_GetAPB2Prescaler + * ex: __LL_RCC_CALC_PCLK2_FREQ(LL_RCC_GetAPB2Prescaler()) + * @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]) + +/** + * @} + */ + +/** + * @} + */ + +/* 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 Disable the Clock Security System. + * @note Cannot be disabled in HSE is ready (only by hardware) + * @rmtoll CR CSSON LL_RCC_HSE_DisableCSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_DisableCSS(void) +{ + CLEAR_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)); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_HSI HSI + * @{ + */ + +/** + * @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)); +} + +/** + * @brief Get HSI Calibration value + * @note When HSITRIM is written, HSICAL is updated with the sum of + * HSITRIM and the factory trim value + * @rmtoll CR 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->CR, RCC_CR_HSICAL) >> RCC_CR_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 CR HSITRIM LL_RCC_HSI_SetCalibTrimming + * @param Value between Min_Data = 0x00 and Max_Data = 0x1F + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_SetCalibTrimming(uint32_t Value) +{ + MODIFY_REG(RCC->CR, RCC_CR_HSITRIM, Value << RCC_CR_HSITRIM_Pos); +} + +/** + * @brief Get HSI Calibration trimming + * @rmtoll CR HSITRIM LL_RCC_HSI_GetCalibTrimming + * @retval Between Min_Data = 0x00 and Max_Data = 0x1F + */ +__STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibTrimming(void) +{ + return (uint32_t)(READ_BIT(RCC->CR, RCC_CR_HSITRIM) >> RCC_CR_HSITRIM_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 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)); +} + +/** + * @} + */ + +/** @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)); +} + +/** + * @} + */ + +/** @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 MCO LL_RCC_ConfigMCO\n + * CFGR MCOPRE LL_RCC_ConfigMCO\n + * CFGR PLLNODIV 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_LSI + * @arg @ref LL_RCC_MCO1SOURCE_LSE + * @arg @ref LL_RCC_MCO1SOURCE_PLLCLK (*) + * @arg @ref LL_RCC_MCO1SOURCE_PLLCLK_DIV_2 + * + * (*) 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 (*) + * @arg @ref LL_RCC_MCO1_DIV_32 (*) + * @arg @ref LL_RCC_MCO1_DIV_64 (*) + * @arg @ref LL_RCC_MCO1_DIV_128 (*) + * + * (*) value not defined in all devices + * @retval None + */ +__STATIC_INLINE void LL_RCC_ConfigMCO(uint32_t MCOxSource, uint32_t MCOxPrescaler) +{ +#if defined(RCC_CFGR_MCOPRE) +#if defined(RCC_CFGR_PLLNODIV) + MODIFY_REG(RCC->CFGR, RCC_CFGR_MCOSEL | RCC_CFGR_MCOPRE | RCC_CFGR_PLLNODIV, MCOxSource | MCOxPrescaler); +#else + MODIFY_REG(RCC->CFGR, RCC_CFGR_MCOSEL | RCC_CFGR_MCOPRE, MCOxSource | MCOxPrescaler); +#endif /* RCC_CFGR_PLLNODIV */ +#else + MODIFY_REG(RCC->CFGR, RCC_CFGR_MCOSEL, MCOxSource); +#endif /* RCC_CFGR_MCOPRE */ +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_Peripheral_Clock_Source Peripheral Clock Source + * @{ + */ + +/** + * @brief Configure USARTx clock source + * @rmtoll CFGR3 USART1SW LL_RCC_SetUSARTClockSource\n + * CFGR3 USART2SW LL_RCC_SetUSARTClockSource\n + * CFGR3 USART3SW LL_RCC_SetUSARTClockSource + * @param USARTxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_USART1_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_USART1_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_USART1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_USART1_CLKSOURCE_LSE + * @arg @ref LL_RCC_USART1_CLKSOURCE_HSI + * @arg @ref LL_RCC_USART2_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_USART2_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_USART2_CLKSOURCE_LSE (*) + * @arg @ref LL_RCC_USART2_CLKSOURCE_HSI (*) + * @arg @ref LL_RCC_USART3_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_USART3_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_USART3_CLKSOURCE_LSE (*) + * @arg @ref LL_RCC_USART3_CLKSOURCE_HSI (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetUSARTClockSource(uint32_t USARTxSource) +{ + MODIFY_REG(RCC->CFGR3, (RCC_CFGR3_USART1SW << ((USARTxSource & 0xFF000000U) >> 24U)), (USARTxSource & 0x00FFFFFFU)); +} + +#if defined(RCC_CFGR3_UART4SW) || defined(RCC_CFGR3_UART5SW) +/** + * @brief Configure UARTx clock source + * @rmtoll CFGR3 UART4SW LL_RCC_SetUARTClockSource\n + * CFGR3 UART5SW 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_LSE + * @arg @ref LL_RCC_UART4_CLKSOURCE_HSI + * @arg @ref LL_RCC_UART5_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_UART5_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_UART5_CLKSOURCE_LSE + * @arg @ref LL_RCC_UART5_CLKSOURCE_HSI + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetUARTClockSource(uint32_t UARTxSource) +{ + MODIFY_REG(RCC->CFGR3, ((UARTxSource & 0x0000FFFFU) << 8U), (UARTxSource & (RCC_CFGR3_UART4SW | RCC_CFGR3_UART5SW))); +} +#endif /* RCC_CFGR3_UART4SW || RCC_CFGR3_UART5SW */ + +/** + * @brief Configure I2Cx clock source + * @rmtoll CFGR3 I2C1SW LL_RCC_SetI2CClockSource\n + * CFGR3 I2C2SW LL_RCC_SetI2CClockSource\n + * CFGR3 I2C3SW LL_RCC_SetI2CClockSource + * @param I2CxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_I2C1_CLKSOURCE_HSI + * @arg @ref LL_RCC_I2C1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2C2_CLKSOURCE_HSI (*) + * @arg @ref LL_RCC_I2C2_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_I2C3_CLKSOURCE_HSI (*) + * @arg @ref LL_RCC_I2C3_CLKSOURCE_SYSCLK (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetI2CClockSource(uint32_t I2CxSource) +{ + MODIFY_REG(RCC->CFGR3, ((I2CxSource & 0xFF000000U) >> 24U), (I2CxSource & 0x00FFFFFFU)); +} + +#if defined(RCC_CFGR_I2SSRC) +/** + * @brief Configure I2Sx clock source + * @rmtoll CFGR I2SSRC 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_PIN + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetI2SClockSource(uint32_t I2SxSource) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_I2SSRC, I2SxSource); +} +#endif /* RCC_CFGR_I2SSRC */ + +#if defined(RCC_CFGR3_TIMSW) +/** + * @brief Configure TIMx clock source + * @rmtoll CFGR3 TIM1SW LL_RCC_SetTIMClockSource\n + * CFGR3 TIM8SW LL_RCC_SetTIMClockSource\n + * CFGR3 TIM15SW LL_RCC_SetTIMClockSource\n + * CFGR3 TIM16SW LL_RCC_SetTIMClockSource\n + * CFGR3 TIM17SW LL_RCC_SetTIMClockSource\n + * CFGR3 TIM20SW LL_RCC_SetTIMClockSource\n + * CFGR3 TIM2SW LL_RCC_SetTIMClockSource\n + * CFGR3 TIM34SW LL_RCC_SetTIMClockSource + * @param TIMxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_TIM1_CLKSOURCE_PCLK2 + * @arg @ref LL_RCC_TIM1_CLKSOURCE_PLL + * @arg @ref LL_RCC_TIM8_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_TIM8_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM15_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_TIM15_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM16_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_TIM16_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM17_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_TIM17_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM20_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_TIM20_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM2_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_TIM2_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM34_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_TIM34_CLKSOURCE_PLL (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetTIMClockSource(uint32_t TIMxSource) +{ + MODIFY_REG(RCC->CFGR3, (RCC_CFGR3_TIM1SW << (TIMxSource >> 27U)), (TIMxSource & 0x03FFFFFFU)); +} +#endif /* RCC_CFGR3_TIMSW */ + +#if defined(HRTIM1) +/** + * @brief Configure HRTIMx clock source + * @rmtoll CFGR3 HRTIMSW LL_RCC_SetHRTIMClockSource + * @param HRTIMxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_HRTIM1_CLKSOURCE_PCLK2 + * @arg @ref LL_RCC_HRTIM1_CLKSOURCE_PLL + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetHRTIMClockSource(uint32_t HRTIMxSource) +{ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_HRTIMSW, HRTIMxSource); +} +#endif /* HRTIM1 */ + +#if defined(CEC) +/** + * @brief Configure CEC clock source + * @rmtoll CFGR3 CECSW LL_RCC_SetCECClockSource + * @param CECxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_CEC_CLKSOURCE_HSI_DIV244 + * @arg @ref LL_RCC_CEC_CLKSOURCE_LSE + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetCECClockSource(uint32_t CECxSource) +{ + MODIFY_REG(RCC->CFGR3, RCC_CFGR3_CECSW, CECxSource); +} +#endif /* CEC */ + +#if defined(USB) +/** + * @brief Configure USB clock source + * @rmtoll CFGR USBPRE LL_RCC_SetUSBClockSource + * @param USBxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL_DIV_1_5 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetUSBClockSource(uint32_t USBxSource) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_USBPRE, USBxSource); +} +#endif /* USB */ + +#if defined(RCC_CFGR_ADCPRE) +/** + * @brief Configure ADC clock source + * @rmtoll CFGR ADCPRE LL_RCC_SetADCClockSource + * @param ADCxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_2 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_4 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_6 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_8 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetADCClockSource(uint32_t ADCxSource) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_ADCPRE, ADCxSource); +} + +#elif defined(RCC_CFGR2_ADC1PRES) +/** + * @brief Configure ADC clock source + * @rmtoll CFGR2 ADC1PRES LL_RCC_SetADCClockSource + * @param ADCxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_ADC1_CLKSRC_HCLK + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_1 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_2 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_4 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_6 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_8 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_10 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_12 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_16 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_32 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_64 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_128 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_256 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetADCClockSource(uint32_t ADCxSource) +{ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_ADC1PRES, ADCxSource); +} + +#elif defined(RCC_CFGR2_ADCPRE12) || defined(RCC_CFGR2_ADCPRE34) +/** + * @brief Configure ADC clock source + * @rmtoll CFGR2 ADCPRE12 LL_RCC_SetADCClockSource\n + * CFGR2 ADCPRE34 LL_RCC_SetADCClockSource + * @param ADCxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_ADC12_CLKSRC_HCLK + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_1 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_2 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_4 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_6 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_8 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_10 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_12 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_16 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_32 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_64 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_128 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_256 + * @arg @ref LL_RCC_ADC34_CLKSRC_HCLK (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_1 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_2 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_4 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_6 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_8 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_10 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_12 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_16 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_32 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_64 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_128 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_256 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetADCClockSource(uint32_t ADCxSource) +{ +#if defined(RCC_CFGR2_ADCPRE34) + MODIFY_REG(RCC->CFGR2, (ADCxSource >> 16U), (ADCxSource & 0x0000FFFFU)); +#else + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_ADCPRE12, ADCxSource); +#endif /* RCC_CFGR2_ADCPRE34 */ +} +#endif /* RCC_CFGR_ADCPRE */ + +#if defined(RCC_CFGR_SDPRE) +/** + * @brief Configure SDADCx clock source + * @rmtoll CFGR SDPRE LL_RCC_SetSDADCClockSource + * @param SDADCxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_1 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_2 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_4 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_6 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_8 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_10 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_12 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_14 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_16 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_20 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_24 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_28 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_32 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_36 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_40 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_44 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_48 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetSDADCClockSource(uint32_t SDADCxSource) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_SDPRE, SDADCxSource); +} +#endif /* RCC_CFGR_SDPRE */ + +/** + * @brief Get USARTx clock source + * @rmtoll CFGR3 USART1SW LL_RCC_GetUSARTClockSource\n + * CFGR3 USART2SW LL_RCC_GetUSARTClockSource\n + * CFGR3 USART3SW 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 (*) + * + * (*) value not defined in all devices. + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_USART1_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_USART1_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_USART1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_USART1_CLKSOURCE_LSE + * @arg @ref LL_RCC_USART1_CLKSOURCE_HSI + * @arg @ref LL_RCC_USART2_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_USART2_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_USART2_CLKSOURCE_LSE (*) + * @arg @ref LL_RCC_USART2_CLKSOURCE_HSI (*) + * @arg @ref LL_RCC_USART3_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_USART3_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_USART3_CLKSOURCE_LSE (*) + * @arg @ref LL_RCC_USART3_CLKSOURCE_HSI (*) + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_RCC_GetUSARTClockSource(uint32_t USARTx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR3, (RCC_CFGR3_USART1SW << USARTx)) | (USARTx << 24U)); +} + +#if defined(RCC_CFGR3_UART4SW) || defined(RCC_CFGR3_UART5SW) +/** + * @brief Get UARTx clock source + * @rmtoll CFGR3 UART4SW LL_RCC_GetUARTClockSource\n + * CFGR3 UART5SW 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_LSE + * @arg @ref LL_RCC_UART4_CLKSOURCE_HSI + * @arg @ref LL_RCC_UART5_CLKSOURCE_PCLK1 + * @arg @ref LL_RCC_UART5_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_UART5_CLKSOURCE_LSE + * @arg @ref LL_RCC_UART5_CLKSOURCE_HSI + */ +__STATIC_INLINE uint32_t LL_RCC_GetUARTClockSource(uint32_t UARTx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR3, UARTx) | (UARTx >> 8U)); +} +#endif /* RCC_CFGR3_UART4SW || RCC_CFGR3_UART5SW */ + +/** + * @brief Get I2Cx clock source + * @rmtoll CFGR3 I2C1SW LL_RCC_GetI2CClockSource\n + * CFGR3 I2C2SW LL_RCC_GetI2CClockSource\n + * CFGR3 I2C3SW 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 (*) + * + * (*) value not defined in all devices. + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_I2C1_CLKSOURCE_HSI + * @arg @ref LL_RCC_I2C1_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2C2_CLKSOURCE_HSI (*) + * @arg @ref LL_RCC_I2C2_CLKSOURCE_SYSCLK (*) + * @arg @ref LL_RCC_I2C3_CLKSOURCE_HSI (*) + * @arg @ref LL_RCC_I2C3_CLKSOURCE_SYSCLK (*) + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_RCC_GetI2CClockSource(uint32_t I2Cx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR3, I2Cx) | (I2Cx << 24U)); +} + +#if defined(RCC_CFGR_I2SSRC) +/** + * @brief Get I2Sx clock source + * @rmtoll CFGR I2SSRC 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_PIN + */ +__STATIC_INLINE uint32_t LL_RCC_GetI2SClockSource(uint32_t I2Sx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, I2Sx)); +} +#endif /* RCC_CFGR_I2SSRC */ + +#if defined(RCC_CFGR3_TIMSW) +/** + * @brief Get TIMx clock source + * @rmtoll CFGR3 TIM1SW LL_RCC_GetTIMClockSource\n + * CFGR3 TIM8SW LL_RCC_GetTIMClockSource\n + * CFGR3 TIM15SW LL_RCC_GetTIMClockSource\n + * CFGR3 TIM16SW LL_RCC_GetTIMClockSource\n + * CFGR3 TIM17SW LL_RCC_GetTIMClockSource\n + * CFGR3 TIM20SW LL_RCC_GetTIMClockSource\n + * CFGR3 TIM2SW LL_RCC_GetTIMClockSource\n + * CFGR3 TIM34SW LL_RCC_GetTIMClockSource + * @param TIMx This parameter can be one of the following values: + * @arg @ref LL_RCC_TIM1_CLKSOURCE + * @arg @ref LL_RCC_TIM2_CLKSOURCE (*) + * @arg @ref LL_RCC_TIM8_CLKSOURCE (*) + * @arg @ref LL_RCC_TIM15_CLKSOURCE (*) + * @arg @ref LL_RCC_TIM16_CLKSOURCE (*) + * @arg @ref LL_RCC_TIM17_CLKSOURCE (*) + * @arg @ref LL_RCC_TIM20_CLKSOURCE (*) + * @arg @ref LL_RCC_TIM34_CLKSOURCE (*) + * + * (*) value not defined in all devices. + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_TIM1_CLKSOURCE_PCLK2 + * @arg @ref LL_RCC_TIM1_CLKSOURCE_PLL + * @arg @ref LL_RCC_TIM8_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_TIM8_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM15_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_TIM15_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM16_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_TIM16_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM17_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_TIM17_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM20_CLKSOURCE_PCLK2 (*) + * @arg @ref LL_RCC_TIM20_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM2_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_TIM2_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_TIM34_CLKSOURCE_PCLK1 (*) + * @arg @ref LL_RCC_TIM34_CLKSOURCE_PLL (*) + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_RCC_GetTIMClockSource(uint32_t TIMx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR3, (RCC_CFGR3_TIM1SW << TIMx)) | (TIMx << 27U)); +} +#endif /* RCC_CFGR3_TIMSW */ + +#if defined(HRTIM1) +/** + * @brief Get HRTIMx clock source + * @rmtoll CFGR3 HRTIMSW LL_RCC_GetHRTIMClockSource + * @param HRTIMx This parameter can be one of the following values: + * @arg @ref LL_RCC_HRTIM1_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_HRTIM1_CLKSOURCE_PCLK2 + * @arg @ref LL_RCC_HRTIM1_CLKSOURCE_PLL + */ +__STATIC_INLINE uint32_t LL_RCC_GetHRTIMClockSource(uint32_t HRTIMx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR3, HRTIMx)); +} +#endif /* HRTIM1 */ + +#if defined(CEC) +/** + * @brief Get CEC clock source + * @rmtoll CFGR3 CECSW LL_RCC_GetCECClockSource + * @param CECx This parameter can be one of the following values: + * @arg @ref LL_RCC_CEC_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_CEC_CLKSOURCE_HSI_DIV244 + * @arg @ref LL_RCC_CEC_CLKSOURCE_LSE + */ +__STATIC_INLINE uint32_t LL_RCC_GetCECClockSource(uint32_t CECx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR3, CECx)); +} +#endif /* CEC */ + +#if defined(USB) +/** + * @brief Get USBx clock source + * @rmtoll CFGR USBPRE 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_PLL + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL_DIV_1_5 + */ +__STATIC_INLINE uint32_t LL_RCC_GetUSBClockSource(uint32_t USBx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, USBx)); +} +#endif /* USB */ + +#if defined(RCC_CFGR_ADCPRE) +/** + * @brief Get ADCx clock source + * @rmtoll CFGR ADCPRE LL_RCC_GetADCClockSource + * @param ADCx This parameter can be one of the following values: + * @arg @ref LL_RCC_ADC_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_2 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_4 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_6 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_8 + */ +__STATIC_INLINE uint32_t LL_RCC_GetADCClockSource(uint32_t ADCx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, ADCx)); +} + +#elif defined(RCC_CFGR2_ADC1PRES) +/** + * @brief Get ADCx clock source + * @rmtoll CFGR2 ADC1PRES LL_RCC_GetADCClockSource + * @param ADCx This parameter can be one of the following values: + * @arg @ref LL_RCC_ADC1_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_ADC1_CLKSRC_HCLK + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_1 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_2 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_4 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_6 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_8 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_10 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_12 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_16 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_32 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_64 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_128 + * @arg @ref LL_RCC_ADC1_CLKSRC_PLL_DIV_256 + */ +__STATIC_INLINE uint32_t LL_RCC_GetADCClockSource(uint32_t ADCx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR2, ADCx)); +} + +#elif defined(RCC_CFGR2_ADCPRE12) || defined(RCC_CFGR2_ADCPRE34) +/** + * @brief Get ADCx clock source + * @rmtoll CFGR2 ADCPRE12 LL_RCC_GetADCClockSource\n + * CFGR2 ADCPRE34 LL_RCC_GetADCClockSource + * @param ADCx This parameter can be one of the following values: + * @arg @ref LL_RCC_ADC12_CLKSOURCE + * @arg @ref LL_RCC_ADC34_CLKSOURCE (*) + * + * (*) value not defined in all devices. + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_ADC12_CLKSRC_HCLK + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_1 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_2 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_4 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_6 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_8 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_10 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_12 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_16 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_32 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_64 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_128 + * @arg @ref LL_RCC_ADC12_CLKSRC_PLL_DIV_256 + * @arg @ref LL_RCC_ADC34_CLKSRC_HCLK (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_1 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_2 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_4 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_6 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_8 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_10 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_12 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_16 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_32 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_64 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_128 (*) + * @arg @ref LL_RCC_ADC34_CLKSRC_PLL_DIV_256 (*) + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_RCC_GetADCClockSource(uint32_t ADCx) +{ +#if defined(RCC_CFGR2_ADCPRE34) + return (uint32_t)(READ_BIT(RCC->CFGR2, ADCx) | (ADCx << 16U)); +#else + return (uint32_t)(READ_BIT(RCC->CFGR2, ADCx)); +#endif /*RCC_CFGR2_ADCPRE34*/ +} +#endif /* RCC_CFGR_ADCPRE */ + +#if defined(RCC_CFGR_SDPRE) +/** + * @brief Get SDADCx clock source + * @rmtoll CFGR SDPRE LL_RCC_GetSDADCClockSource + * @param SDADCx This parameter can be one of the following values: + * @arg @ref LL_RCC_SDADC_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_1 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_2 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_4 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_6 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_8 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_10 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_12 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_14 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_16 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_20 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_24 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_28 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_32 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_36 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_40 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_44 + * @arg @ref LL_RCC_SDADC_CLKSRC_SYS_DIV_48 + */ +__STATIC_INLINE uint32_t LL_RCC_GetSDADCClockSource(uint32_t SDADCx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, SDADCx)); +} +#endif /* RCC_CFGR_SDPRE */ + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_RTC RTC + * @{ + */ + +/** + * @brief Set RTC Clock Source + * @note Once the RTC clock source has been selected, it cannot be changed any more unless + * the Backup domain is reset. 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)); +} + +/** + * @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)); +} + +#if defined(RCC_PLLSRC_PREDIV1_SUPPORT) +/** + * @brief Configure PLL used for SYSCLK Domain + * @rmtoll CFGR PLLSRC LL_RCC_PLL_ConfigDomain_SYS\n + * CFGR PLLMUL LL_RCC_PLL_ConfigDomain_SYS\n + * CFGR2 PREDIV LL_RCC_PLL_ConfigDomain_SYS + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_HSI + * @arg @ref LL_RCC_PLLSOURCE_HSE + * @param PLLMul This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_2 + * @arg @ref LL_RCC_PLL_MUL_3 + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_5 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_7 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_9 + * @arg @ref LL_RCC_PLL_MUL_10 + * @arg @ref LL_RCC_PLL_MUL_11 + * @arg @ref LL_RCC_PLL_MUL_12 + * @arg @ref LL_RCC_PLL_MUL_13 + * @arg @ref LL_RCC_PLL_MUL_14 + * @arg @ref LL_RCC_PLL_MUL_15 + * @arg @ref LL_RCC_PLL_MUL_16 + * @param PLLDiv This parameter can be one of the following values: + * @arg @ref LL_RCC_PREDIV_DIV_1 + * @arg @ref LL_RCC_PREDIV_DIV_2 + * @arg @ref LL_RCC_PREDIV_DIV_3 + * @arg @ref LL_RCC_PREDIV_DIV_4 + * @arg @ref LL_RCC_PREDIV_DIV_5 + * @arg @ref LL_RCC_PREDIV_DIV_6 + * @arg @ref LL_RCC_PREDIV_DIV_7 + * @arg @ref LL_RCC_PREDIV_DIV_8 + * @arg @ref LL_RCC_PREDIV_DIV_9 + * @arg @ref LL_RCC_PREDIV_DIV_10 + * @arg @ref LL_RCC_PREDIV_DIV_11 + * @arg @ref LL_RCC_PREDIV_DIV_12 + * @arg @ref LL_RCC_PREDIV_DIV_13 + * @arg @ref LL_RCC_PREDIV_DIV_14 + * @arg @ref LL_RCC_PREDIV_DIV_15 + * @arg @ref LL_RCC_PREDIV_DIV_16 + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_ConfigDomain_SYS(uint32_t Source, uint32_t PLLMul, uint32_t PLLDiv) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL, Source | PLLMul); + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PREDIV, PLLDiv); +} + +#else + +/** + * @brief Configure PLL used for SYSCLK Domain + * @rmtoll CFGR PLLSRC LL_RCC_PLL_ConfigDomain_SYS\n + * CFGR PLLMUL LL_RCC_PLL_ConfigDomain_SYS\n + * CFGR2 PREDIV LL_RCC_PLL_ConfigDomain_SYS + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_HSI_DIV_2 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_1 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_2 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_3 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_4 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_5 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_6 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_7 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_8 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_9 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_10 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_11 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_12 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_13 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_14 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_15 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_16 + * @param PLLMul This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_2 + * @arg @ref LL_RCC_PLL_MUL_3 + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_5 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_7 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_9 + * @arg @ref LL_RCC_PLL_MUL_10 + * @arg @ref LL_RCC_PLL_MUL_11 + * @arg @ref LL_RCC_PLL_MUL_12 + * @arg @ref LL_RCC_PLL_MUL_13 + * @arg @ref LL_RCC_PLL_MUL_14 + * @arg @ref LL_RCC_PLL_MUL_15 + * @arg @ref LL_RCC_PLL_MUL_16 + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_ConfigDomain_SYS(uint32_t Source, uint32_t PLLMul) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL, (Source & RCC_CFGR_PLLSRC) | PLLMul); + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PREDIV, (Source & RCC_CFGR2_PREDIV)); +} +#endif /* RCC_PLLSRC_PREDIV1_SUPPORT */ + +/** + * @brief Configure PLL clock source + * @rmtoll CFGR 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_HSI_DIV_2 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE + * @arg @ref LL_RCC_PLLSOURCE_HSI48 (*) + * + * (*) value not defined in all devices + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_SetMainSource(uint32_t PLLSource) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PLLSRC, PLLSource); +} + +/** + * @brief Get the oscillator used as PLL clock source. + * @rmtoll CFGR 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_HSI_DIV_2 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE + * + * (*) value not defined in all devices + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLSRC)); +} + +/** + * @brief Get PLL multiplication Factor + * @rmtoll CFGR PLLMUL LL_RCC_PLL_GetMultiplicator + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_2 + * @arg @ref LL_RCC_PLL_MUL_3 + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_5 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_7 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_9 + * @arg @ref LL_RCC_PLL_MUL_10 + * @arg @ref LL_RCC_PLL_MUL_11 + * @arg @ref LL_RCC_PLL_MUL_12 + * @arg @ref LL_RCC_PLL_MUL_13 + * @arg @ref LL_RCC_PLL_MUL_14 + * @arg @ref LL_RCC_PLL_MUL_15 + * @arg @ref LL_RCC_PLL_MUL_16 + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetMultiplicator(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLMUL)); +} + +/** + * @brief Get PREDIV division factor for the main PLL + * @note They can be written only when the PLL is disabled + * @rmtoll CFGR2 PREDIV LL_RCC_PLL_GetPrediv + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PREDIV_DIV_1 + * @arg @ref LL_RCC_PREDIV_DIV_2 + * @arg @ref LL_RCC_PREDIV_DIV_3 + * @arg @ref LL_RCC_PREDIV_DIV_4 + * @arg @ref LL_RCC_PREDIV_DIV_5 + * @arg @ref LL_RCC_PREDIV_DIV_6 + * @arg @ref LL_RCC_PREDIV_DIV_7 + * @arg @ref LL_RCC_PREDIV_DIV_8 + * @arg @ref LL_RCC_PREDIV_DIV_9 + * @arg @ref LL_RCC_PREDIV_DIV_10 + * @arg @ref LL_RCC_PREDIV_DIV_11 + * @arg @ref LL_RCC_PREDIV_DIV_12 + * @arg @ref LL_RCC_PREDIV_DIV_13 + * @arg @ref LL_RCC_PREDIV_DIV_14 + * @arg @ref LL_RCC_PREDIV_DIV_15 + * @arg @ref LL_RCC_PREDIV_DIV_16 + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetPrediv(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV)); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_FLAG_Management FLAG Management + * @{ + */ + +/** + * @brief Clear LSI ready interrupt flag + * @rmtoll CIR LSIRDYC LL_RCC_ClearFlag_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_LSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSIRDYC); +} + +/** + * @brief Clear LSE ready interrupt flag + * @rmtoll CIR LSERDYC LL_RCC_ClearFlag_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_LSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSERDYC); +} + +/** + * @brief Clear HSI ready interrupt flag + * @rmtoll CIR HSIRDYC LL_RCC_ClearFlag_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSIRDYC); +} + +/** + * @brief Clear HSE ready interrupt flag + * @rmtoll CIR HSERDYC LL_RCC_ClearFlag_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSERDYC); +} + +/** + * @brief Clear PLL ready interrupt flag + * @rmtoll CIR PLLRDYC LL_RCC_ClearFlag_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_PLLRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_PLLRDYC); +} + +/** + * @brief Clear Clock security system interrupt flag + * @rmtoll CIR CSSC LL_RCC_ClearFlag_HSECSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSECSS(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_CSSC); +} + +/** + * @brief Check if LSI ready interrupt occurred or not + * @rmtoll CIR 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->CIR, RCC_CIR_LSIRDYF) == (RCC_CIR_LSIRDYF)); +} + +/** + * @brief Check if LSE ready interrupt occurred or not + * @rmtoll CIR 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->CIR, RCC_CIR_LSERDYF) == (RCC_CIR_LSERDYF)); +} + +/** + * @brief Check if HSI ready interrupt occurred or not + * @rmtoll CIR 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->CIR, RCC_CIR_HSIRDYF) == (RCC_CIR_HSIRDYF)); +} + +/** + * @brief Check if HSE ready interrupt occurred or not + * @rmtoll CIR 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->CIR, RCC_CIR_HSERDYF) == (RCC_CIR_HSERDYF)); +} + +#if defined(RCC_CFGR_MCOF) +/** + * @brief Check if switch to new MCO source is effective or not + * @rmtoll CFGR MCOF LL_RCC_IsActiveFlag_MCO1 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_MCO1(void) +{ + return (READ_BIT(RCC->CFGR, RCC_CFGR_MCOF) == (RCC_CFGR_MCOF)); +} +#endif /* RCC_CFGR_MCOF */ + +/** + * @brief Check if PLL ready interrupt occurred or not + * @rmtoll CIR 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->CIR, RCC_CIR_PLLRDYF) == (RCC_CIR_PLLRDYF)); +} + +/** + * @brief Check if Clock security system interrupt occurred or not + * @rmtoll CIR 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->CIR, RCC_CIR_CSSF) == (RCC_CIR_CSSF)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @brief Check if RCC flag 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)); +} + +/** + * @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)); +} + +/** + * @brief Check if RCC flag POR/PDR reset is set or not. + * @rmtoll CSR PORRSTF LL_RCC_IsActiveFlag_PORRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PORRST(void) +{ + return (READ_BIT(RCC->CSR, RCC_CSR_PORRSTF) == (RCC_CSR_PORRSTF)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +#if defined(RCC_CSR_V18PWRRSTF) +/** + * @brief Check if RCC Reset flag of the 1.8 V domain is set or not. + * @rmtoll CSR V18PWRRSTF LL_RCC_IsActiveFlag_V18PWRRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_V18PWRRST(void) +{ + return (READ_BIT(RCC->CSR, RCC_CSR_V18PWRRSTF) == (RCC_CSR_V18PWRRSTF)); +} +#endif /* RCC_CSR_V18PWRRSTF */ + +/** + * @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 CIR LSIRDYIE LL_RCC_EnableIT_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_LSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSIRDYIE); +} + +/** + * @brief Enable LSE ready interrupt + * @rmtoll CIR LSERDYIE LL_RCC_EnableIT_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_LSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSERDYIE); +} + +/** + * @brief Enable HSI ready interrupt + * @rmtoll CIR HSIRDYIE LL_RCC_EnableIT_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_HSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSIRDYIE); +} + +/** + * @brief Enable HSE ready interrupt + * @rmtoll CIR HSERDYIE LL_RCC_EnableIT_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_HSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSERDYIE); +} + +/** + * @brief Enable PLL ready interrupt + * @rmtoll CIR PLLRDYIE LL_RCC_EnableIT_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_PLLRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_PLLRDYIE); +} + +/** + * @brief Disable LSI ready interrupt + * @rmtoll CIR LSIRDYIE LL_RCC_DisableIT_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_LSIRDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_LSIRDYIE); +} + +/** + * @brief Disable LSE ready interrupt + * @rmtoll CIR LSERDYIE LL_RCC_DisableIT_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_LSERDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_LSERDYIE); +} + +/** + * @brief Disable HSI ready interrupt + * @rmtoll CIR HSIRDYIE LL_RCC_DisableIT_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_HSIRDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_HSIRDYIE); +} + +/** + * @brief Disable HSE ready interrupt + * @rmtoll CIR HSERDYIE LL_RCC_DisableIT_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_HSERDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_HSERDYIE); +} + +/** + * @brief Disable PLL ready interrupt + * @rmtoll CIR PLLRDYIE LL_RCC_DisableIT_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_PLLRDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_PLLRDYIE); +} + +/** + * @brief Checks if LSI ready interrupt source is enabled or disabled. + * @rmtoll CIR 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->CIR, RCC_CIR_LSIRDYIE) == (RCC_CIR_LSIRDYIE)); +} + +/** + * @brief Checks if LSE ready interrupt source is enabled or disabled. + * @rmtoll CIR 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->CIR, RCC_CIR_LSERDYIE) == (RCC_CIR_LSERDYIE)); +} + +/** + * @brief Checks if HSI ready interrupt source is enabled or disabled. + * @rmtoll CIR 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->CIR, RCC_CIR_HSIRDYIE) == (RCC_CIR_HSIRDYIE)); +} + +/** + * @brief Checks if HSE ready interrupt source is enabled or disabled. + * @rmtoll CIR 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->CIR, RCC_CIR_HSERDYIE) == (RCC_CIR_HSERDYIE)); +} + +/** + * @brief Checks if PLL ready interrupt source is enabled or disabled. + * @rmtoll CIR 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->CIR, RCC_CIR_PLLRDYIE) == (RCC_CIR_PLLRDYIE)); +} + +/** + * @} + */ + +#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) || defined(UART5) +uint32_t LL_RCC_GetUARTClockFreq(uint32_t UARTxSource); +#endif /* UART4 || UART5 */ +uint32_t LL_RCC_GetI2CClockFreq(uint32_t I2CxSource); +#if defined(RCC_CFGR_I2SSRC) +uint32_t LL_RCC_GetI2SClockFreq(uint32_t I2SxSource); +#endif /* RCC_CFGR_I2SSRC */ +#if defined(USB_OTG_FS) || defined(USB) +uint32_t LL_RCC_GetUSBClockFreq(uint32_t USBxSource); +#endif /* USB_OTG_FS || USB */ +#if (defined(RCC_CFGR_ADCPRE) || defined(RCC_CFGR2_ADC1PRES) || defined(RCC_CFGR2_ADCPRE12) || defined(RCC_CFGR2_ADCPRE34)) +uint32_t LL_RCC_GetADCClockFreq(uint32_t ADCxSource); +#endif /*RCC_CFGR_ADCPRE || RCC_CFGR2_ADC1PRES || RCC_CFGR2_ADCPRE12 || RCC_CFGR2_ADCPRE34 */ +#if defined(RCC_CFGR_SDPRE) +uint32_t LL_RCC_GetSDADCClockFreq(uint32_t SDADCxSource); +#endif /*RCC_CFGR_SDPRE */ +#if defined(CEC) +uint32_t LL_RCC_GetCECClockFreq(uint32_t CECxSource); +#endif /* CEC */ +#if defined(RCC_CFGR3_TIMSW) +uint32_t LL_RCC_GetTIMClockFreq(uint32_t TIMxSource); +#endif /*RCC_CFGR3_TIMSW*/ +uint32_t LL_RCC_GetHRTIMClockFreq(uint32_t HRTIMxSource); +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* RCC */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_LL_RCC_H */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_system.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_system.h new file mode 100644 index 0000000..52daf8c --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_system.h @@ -0,0 +1,1725 @@ +/** + ****************************************************************************** + * @file stm32f3xx_ll_system.h + * @author MCD Application Team + * @brief Header file of SYSTEM LL module. + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 + + @endverbatim + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F3xx_LL_SYSTEM_H +#define __STM32F3xx_LL_SYSTEM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx.h" + +/** @addtogroup STM32F3xx_LL_Driver + * @{ + */ + +#if defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) + +/** @defgroup SYSTEM_LL SYSTEM + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants + * @{ + */ + +/* Offset used to access to SYSCFG_CFGR1 and SYSCFG_CFGR3 registers */ +#define SYSCFG_OFFSET_CFGR1 0x00000000U +#define SYSCFG_OFFSET_CFGR3 0x00000050U + +/* Mask used for TIM breaks functions */ +#if defined(SYSCFG_CFGR2_PVD_LOCK) && defined(SYSCFG_CFGR2_SRAM_PARITY_LOCK) +#define SYSCFG_MASK_TIM_BREAK (SYSCFG_CFGR2_LOCKUP_LOCK | SYSCFG_CFGR2_SRAM_PARITY_LOCK | SYSCFG_CFGR2_PVD_LOCK) +#elif defined(SYSCFG_CFGR2_PVD_LOCK) && !defined(SYSCFG_CFGR2_SRAM_PARITY_LOCK) +#define SYSCFG_MASK_TIM_BREAK (SYSCFG_CFGR2_LOCKUP_LOCK | SYSCFG_CFGR2_PVD_LOCK) +#elif !defined(SYSCFG_CFGR2_PVD_LOCK) && defined(SYSCFG_CFGR2_SRAM_PARITY_LOCK) +#define SYSCFG_MASK_TIM_BREAK (SYSCFG_CFGR2_LOCKUP_LOCK | SYSCFG_CFGR2_SRAM_PARITY_LOCK) +#else +#define SYSCFG_MASK_TIM_BREAK (SYSCFG_CFGR2_LOCKUP_LOCK) +#endif /* SYSCFG_CFGR2_PVD_LOCK && SYSCFG_CFGR2_SRAM_PARITY_LOCK */ + +/** + * @} + */ + +/* 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 (uint32_t)0x00000000 /* Main Flash memory mapped at 0x00000000 */ +#define LL_SYSCFG_REMAP_SYSTEMFLASH SYSCFG_CFGR1_MEM_MODE_0 /* System Flash memory mapped at 0x00000000 */ +#define LL_SYSCFG_REMAP_SRAM (SYSCFG_CFGR1_MEM_MODE_1 | SYSCFG_CFGR1_MEM_MODE_0) /* Embedded SRAM mapped at 0x00000000 */ +#if defined(FMC_BANK1) +#define LL_SYSCFG_REMAP_FMC SYSCFG_CFGR1_MEM_MODE_2 /*CFGR1, SYSCFG_CFGR1_MEM_MODE, Memory); +} + +/** + * @brief Get memory mapping at address 0x00000000 + * @rmtoll SYSCFG_CFGR1 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 (*) + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_SYSCFG_GetRemapMemory(void) +{ + return (uint32_t)(READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE)); +} + +#if defined(SYSCFG_CFGR3_SPI1_RX_DMA_RMP) +/** + * @brief Set DMA request remapping bits for SPI + * @rmtoll SYSCFG_CFGR3 SPI1_RX_DMA_RMP LL_SYSCFG_SetRemapDMA_SPI\n + * SYSCFG_CFGR3 SPI1_TX_DMA_RMP LL_SYSCFG_SetRemapDMA_SPI + * @param Remap This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_SPI1RX_RMP_DMA1_CH2 + * @arg @ref LL_SYSCFG_SPI1RX_RMP_DMA1_CH4 + * @arg @ref LL_SYSCFG_SPI1RX_RMP_DMA1_CH6 + * @arg @ref LL_SYSCFG_SPI1TX_RMP_DMA1_CH3 + * @arg @ref LL_SYSCFG_SPI1TX_RMP_DMA1_CH5 + * @arg @ref LL_SYSCFG_SPI1TX_RMP_DMA1_CH7 + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetRemapDMA_SPI(uint32_t Remap) +{ + MODIFY_REG(SYSCFG->CFGR3, (Remap >> 16U), (Remap & 0x0000FFFF)); +} +#endif /* SYSCFG_CFGR3_SPI1_RX_DMA_RMP */ + +#if defined(SYSCFG_CFGR3_I2C1_RX_DMA_RMP) +/** + * @brief Set DMA request remapping bits for I2C + * @rmtoll SYSCFG_CFGR3 I2C1_RX_DMA_RMP LL_SYSCFG_SetRemapDMA_I2C\n + * SYSCFG_CFGR3 I2C1_TX_DMA_RMP LL_SYSCFG_SetRemapDMA_I2C + * @param Remap This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_I2C1RX_RMP_DMA1_CH7 + * @arg @ref LL_SYSCFG_I2C1RX_RMP_DMA1_CH3 + * @arg @ref LL_SYSCFG_I2C1RX_RMP_DMA1_CH5 + * @arg @ref LL_SYSCFG_I2C1TX_RMP_DMA1_CH6 + * @arg @ref LL_SYSCFG_I2C1TX_RMP_DMA1_CH2 + * @arg @ref LL_SYSCFG_I2C1TX_RMP_DMA1_CH4 + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetRemapDMA_I2C(uint32_t Remap) +{ + MODIFY_REG(SYSCFG->CFGR3, (Remap >> 16U), (Remap & 0x0000FFFF)); +} +#endif /* SYSCFG_CFGR3_I2C1_RX_DMA_RMP */ + +#if defined(SYSCFG_CFGR1_ADC24_DMA_RMP) || defined(SYSCFG_CFGR3_ADC2_DMA_RMP) +/** + * @brief Set DMA request remapping bits for ADC + * @rmtoll SYSCFG_CFGR1 ADC24_DMA_RMP LL_SYSCFG_SetRemapDMA_ADC\n + * SYSCFG_CFGR3 ADC2_DMA_RMP LL_SYSCFG_SetRemapDMA_ADC + * @param Remap This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_ADC24_RMP_DMA2_CH12 (*) + * @arg @ref LL_SYSCFG_ADC24_RMP_DMA2_CH34 (*) + * @arg @ref LL_SYSCFG_ADC2_RMP_DMA1_CH2 (*) + * @arg @ref LL_SYSCFG_ADC2_RMP_DMA1_CH4 (*) + * @arg @ref LL_SYSCFG_ADC2_RMP_DMA2 (*) + * @arg @ref LL_SYSCFG_ADC2_RMP_DMA1 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetRemapDMA_ADC(uint32_t Remap) +{ + __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)(SYSCFG_BASE + (Remap >> 24U)); + MODIFY_REG(*reg, (Remap & 0x00FF0000U) >> 8U, (Remap & 0x0000FFFFU)); +} +#endif /* SYSCFG_CFGR1_ADC24_DMA_RMP || SYSCFG_CFGR3_ADC2_DMA_RMP */ + +/** + * @brief Set DMA request remapping bits for DAC + * @rmtoll SYSCFG_CFGR1 TIM6DAC1Ch1_DMA_RMP LL_SYSCFG_SetRemapDMA_DAC\n + * SYSCFG_CFGR1 DAC2Ch1_DMA_RMP LL_SYSCFG_SetRemapDMA_DAC + * @param Remap This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_DAC1_CH1_RMP_DMA2_CH3 + * @arg @ref LL_SYSCFG_DAC1_CH1_RMP_DMA1_CH3 + * @arg @ref LL_SYSCFG_DAC1_OUT2_RMP_DMA2_CH4 (*) + * @arg @ref LL_SYSCFG_DAC1_OUT2_RMP_DMA1_CH4 (*) + * @arg @ref LL_SYSCFG_DAC2_OUT1_RMP_DMA2_CH5 (*) + * @arg @ref LL_SYSCFG_DAC2_OUT1_RMP_DMA1_CH5 (*) + * @arg @ref LL_SYSCFG_DAC2_CH1_RMP_NO (*) + * @arg @ref LL_SYSCFG_DAC2_CH1_RMP_DMA1_CH5 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetRemapDMA_DAC(uint32_t Remap) +{ + MODIFY_REG(SYSCFG->CFGR1, (Remap & 0x00FF0000U) >> 8U, (Remap & 0x0000FF00U)); +} + +/** + * @brief Set DMA request remapping bits for TIM + * @rmtoll SYSCFG_CFGR1 TIM16_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n + * SYSCFG_CFGR1 TIM17_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n + * SYSCFG_CFGR1 TIM6DAC1Ch1_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n + * SYSCFG_CFGR1 TIM7DAC1Ch2_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n + * SYSCFG_CFGR1 TIM18DAC2Ch1_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM + * @param Remap This parameter can be a combination of the following values: + * @arg @ref LL_SYSCFG_TIM16_RMP_DMA1_CH3 or @ref LL_SYSCFG_TIM16_RMP_DMA1_CH6 + * @arg @ref LL_SYSCFG_TIM17_RMP_DMA1_CH1 or @ref LL_SYSCFG_TIM17_RMP_DMA1_CH7 + * @arg @ref LL_SYSCFG_TIM6_RMP_DMA2_CH3 or @ref LL_SYSCFG_TIM6_RMP_DMA1_CH3 + * @arg @ref LL_SYSCFG_TIM7_RMP_DMA2_CH4 or @ref LL_SYSCFG_TIM7_RMP_DMA1_CH4 (*) + * @arg @ref LL_SYSCFG_TIM18_RMP_DMA2_CH5 or @ref LL_SYSCFG_TIM18_RMP_DMA1_CH5 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetRemapDMA_TIM(uint32_t Remap) +{ + MODIFY_REG(SYSCFG->CFGR1, (Remap & 0x00FF0000U) >> 8U, (Remap & 0x0000FF00U)); +} + +#if defined(SYSCFG_CFGR1_TIM1_ITR3_RMP) || defined(SYSCFG_CFGR1_ENCODER_MODE) +/** + * @brief Set Timer input remap + * @rmtoll SYSCFG_CFGR1 TIM1_ITR3_RMP LL_SYSCFG_SetRemapInput_TIM\n + * SYSCFG_CFGR1 ENCODER_MODE LL_SYSCFG_SetRemapInput_TIM + * @param Remap This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_TIM1_ITR3_RMP_TIM4_TRGO (*) + * @arg @ref LL_SYSCFG_TIM1_ITR3_RMP_TIM17_OC (*) + * @arg @ref LL_SYSCFG_TIM15_ENCODEMODE_NOREDIRECTION (*) + * @arg @ref LL_SYSCFG_TIM15_ENCODEMODE_TIM2 (*) + * @arg @ref LL_SYSCFG_TIM15_ENCODEMODE_TIM3 (*) + * @arg @ref LL_SYSCFG_TIM15_ENCODEMODE_TIM4 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetRemapInput_TIM(uint32_t Remap) +{ + MODIFY_REG(SYSCFG->CFGR1, (Remap & 0xFF00FF00U) >> 8U, (Remap & 0x00FF00FFU)); +} +#endif /* SYSCFG_CFGR1_TIM1_ITR3_RMP || SYSCFG_CFGR1_ENCODER_MODE */ + +#if defined(SYSCFG_CFGR4_ADC12_EXT2_RMP) +/** + * @brief Set ADC Trigger remap + * @rmtoll SYSCFG_CFGR4 ADC12_EXT2_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC12_EXT3_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC12_EXT5_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC12_EXT13_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC12_EXT15_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC12_JEXT3_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC12_JEXT6_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC12_JEXT13_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC34_EXT5_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC34_EXT6_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC34_EXT15_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC34_JEXT5_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC34_JEXT11_RMP LL_SYSCFG_SetRemapTrigger_ADC\n + * SYSCFG_CFGR4 ADC34_JEXT14_RMP LL_SYSCFG_SetRemapTrigger_ADC + * @param Remap This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_ADC12_EXT2_RMP_TIM1_CC3 + * @arg @ref LL_SYSCFG_ADC12_EXT2_RMP_TIM20_TRGO + * @arg @ref LL_SYSCFG_ADC12_EXT3_RMP_TIM2_CC2 + * @arg @ref LL_SYSCFG_ADC12_EXT3_RMP_TIM20_TRGO2 + * @arg @ref LL_SYSCFG_ADC12_EXT5_RMP_TIM4_CC4 + * @arg @ref LL_SYSCFG_ADC12_EXT5_RMP_TIM20_CC1 + * @arg @ref LL_SYSCFG_ADC12_EXT13_RMP_TIM6_TRGO + * @arg @ref LL_SYSCFG_ADC12_EXT13_RMP_TIM20_CC2 + * @arg @ref LL_SYSCFG_ADC12_EXT15_RMP_TIM3_CC4 + * @arg @ref LL_SYSCFG_ADC12_EXT15_RMP_TIM20_CC3 + * @arg @ref LL_SYSCFG_ADC12_JEXT3_RMP_TIM2_CC1 + * @arg @ref LL_SYSCFG_ADC12_JEXT3_RMP_TIM20_TRGO + * @arg @ref LL_SYSCFG_ADC12_JEXT6_RMP_EXTI_LINE_15 + * @arg @ref LL_SYSCFG_ADC12_JEXT6_RMP_TIM20_TRGO2 + * @arg @ref LL_SYSCFG_ADC12_JEXT13_RMP_TIM3_CC1 + * @arg @ref LL_SYSCFG_ADC12_JEXT13_RMP_TIM20_CC4 + * @arg @ref LL_SYSCFG_ADC34_EXT5_RMP_EXTI_LINE_2 + * @arg @ref LL_SYSCFG_ADC34_EXT5_RMP_TIM20_TRGO + * @arg @ref LL_SYSCFG_ADC34_EXT6_RMP_TIM4_CC1 + * @arg @ref LL_SYSCFG_ADC34_EXT6_RMP_TIM20_TRGO2 + * @arg @ref LL_SYSCFG_ADC34_EXT15_RMP_TIM2_CC1 + * @arg @ref LL_SYSCFG_ADC34_EXT15_RMP_TIM20_CC1 + * @arg @ref LL_SYSCFG_ADC34_JEXT5_RMP_TIM4_CC3 + * @arg @ref LL_SYSCFG_ADC34_JEXT5_RMP_TIM20_TRGO + * @arg @ref LL_SYSCFG_ADC34_JEXT11_RMP_TIM1_CC3 + * @arg @ref LL_SYSCFG_ADC34_JEXT11_RMP_TIM20_TRGO2 + * @arg @ref LL_SYSCFG_ADC34_JEXT14_RMP_TIM7_TRGO + * @arg @ref LL_SYSCFG_ADC34_JEXT14_RMP_TIM20_CC2 + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetRemapTrigger_ADC(uint32_t Remap) +{ + MODIFY_REG(SYSCFG->CFGR4, (Remap & 0xFFFF0000U) >> 16U, (Remap & 0x0000FFFFU)); +} +#endif /* SYSCFG_CFGR4_ADC12_EXT2_RMP */ + +#if defined(SYSCFG_CFGR1_DAC1_TRIG1_RMP) || defined(SYSCFG_CFGR3_TRIGGER_RMP) +/** + * @brief Set DAC Trigger remap + * @rmtoll SYSCFG_CFGR1 DAC1_TRIG1_RMP LL_SYSCFG_SetRemapTrigger_DAC\n + * SYSCFG_CFGR3 DAC1_TRG3_RMP LL_SYSCFG_SetRemapTrigger_DAC\n + * SYSCFG_CFGR3 DAC1_TRG5_RMP LL_SYSCFG_SetRemapTrigger_DAC + * @param Remap This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_DAC1_TRIG1_RMP_TIM8_TRGO (*) + * @arg @ref LL_SYSCFG_DAC1_TRIG1_RMP_TIM3_TRGO (*) + * @arg @ref LL_SYSCFG_DAC1_TRIG3_RMP_TIM15_TRGO (*) + * @arg @ref LL_SYSCFG_DAC1_TRIG3_RMP_HRTIM1_DAC1_TRIG1 (*) + * @arg @ref LL_SYSCFG_DAC1_TRIG5_RMP_NO (*) + * @arg @ref LL_SYSCFG_DAC1_TRIG5_RMP_HRTIM1_DAC1_TRIG2 (*) + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetRemapTrigger_DAC(uint32_t Remap) +{ + __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)(SYSCFG_BASE + (Remap >> 24U)); + MODIFY_REG(*reg, (Remap & 0x00F00F00U) >> 4U, (Remap & 0x000F00F0U)); +} +#endif /* SYSCFG_CFGR1_DAC1_TRIG1_RMP || SYSCFG_CFGR3_TRIGGER_RMP */ + +#if defined(SYSCFG_CFGR1_USB_IT_RMP) +/** + * @brief Enable USB interrupt remap + * @note Remap the USB interrupts (USB_HP, USB_LP and USB_WKUP) on interrupt lines 74, 75 and 76 + * respectively + * @rmtoll SYSCFG_CFGR1 USB_IT_RMP LL_SYSCFG_EnableRemapIT_USB + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableRemapIT_USB(void) +{ + SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_USB_IT_RMP); +} + +/** + * @brief Disable USB interrupt remap + * @rmtoll SYSCFG_CFGR1 USB_IT_RMP LL_SYSCFG_DisableRemapIT_USB + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableRemapIT_USB(void) +{ + CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_USB_IT_RMP); +} +#endif /* SYSCFG_CFGR1_USB_IT_RMP */ + +#if defined(SYSCFG_CFGR1_VBAT) +/** + * @brief Enable VBAT monitoring (to enable the power switch to deliver VBAT voltage on ADC channel 18 input) + * @rmtoll SYSCFG_CFGR1 VBAT LL_SYSCFG_EnableVBATMonitoring + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableVBATMonitoring(void) +{ + SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_VBAT); +} + +/** + * @brief Disable VBAT monitoring + * @rmtoll SYSCFG_CFGR1 VBAT LL_SYSCFG_DisableVBATMonitoring + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableVBATMonitoring(void) +{ + CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_VBAT); +} +#endif /* SYSCFG_CFGR1_VBAT */ + +/** + * @brief Enable the I2C fast mode plus driving capability. + * @rmtoll SYSCFG_CFGR1 I2C_PB6_FMP LL_SYSCFG_EnableFastModePlus\n + * SYSCFG_CFGR1 I2C_PB7_FMP LL_SYSCFG_EnableFastModePlus\n + * SYSCFG_CFGR1 I2C_PB8_FMP LL_SYSCFG_EnableFastModePlus\n + * SYSCFG_CFGR1 I2C_PB9_FMP LL_SYSCFG_EnableFastModePlus\n + * SYSCFG_CFGR1 I2C1_FMP LL_SYSCFG_EnableFastModePlus\n + * SYSCFG_CFGR1 I2C2_FMP LL_SYSCFG_EnableFastModePlus\n + * SYSCFG_CFGR1 I2C3_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 (*) + * + * (*) 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_PB6_FMP LL_SYSCFG_DisableFastModePlus\n + * SYSCFG_CFGR1 I2C_PB7_FMP LL_SYSCFG_DisableFastModePlus\n + * SYSCFG_CFGR1 I2C_PB8_FMP LL_SYSCFG_DisableFastModePlus\n + * SYSCFG_CFGR1 I2C_PB9_FMP LL_SYSCFG_DisableFastModePlus\n + * SYSCFG_CFGR1 I2C1_FMP LL_SYSCFG_DisableFastModePlus\n + * SYSCFG_CFGR1 I2C2_FMP LL_SYSCFG_DisableFastModePlus\n + * SYSCFG_CFGR1 I2C3_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 (*) + * + * (*) 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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @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)); +} + +/** + * @brief Configure source input for the EXTI external interrupt. + * @rmtoll SYSCFG_EXTICR1 EXTI0 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI1 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI2 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI3 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI4 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI5 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI6 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI7 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI8 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI9 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI10 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI11 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI12 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI13 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI14 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI15 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI0 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI1 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI2 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI3 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI4 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI5 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI6 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI7 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI8 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI9 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI10 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI11 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI12 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI13 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI14 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI15 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI0 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI1 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI2 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI3 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI4 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI5 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI6 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI7 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI8 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI9 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI10 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI11 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI12 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI13 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI14 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI15 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI0 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI1 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI2 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI3 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI4 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI5 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI6 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI7 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI8 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI9 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI10 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI11 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI12 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI13 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI14 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI15 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 (*) + * @arg @ref LL_SYSCFG_EXTI_PORTH (*) + * + * (*) 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))); +} + +/** + * @brief Get the configured defined for specific EXTI Line + * @rmtoll SYSCFG_EXTICR1 EXTI0 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI1 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI2 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI3 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI4 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI5 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI6 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI7 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI8 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI9 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI10 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI11 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI12 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI13 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI14 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI15 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI0 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI1 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI2 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI3 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI4 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI5 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI6 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI7 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI8 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI9 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI10 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI11 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI12 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI13 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI14 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI15 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI0 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI1 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI2 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI3 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI4 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI5 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI6 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI7 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI8 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI9 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI10 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI11 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI12 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI13 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI14 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI15 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI0 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI1 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI2 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI3 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI4 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI5 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI6 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI7 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI8 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI9 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI10 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI11 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI12 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI13 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI14 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI15 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 (*) + * @arg @ref LL_SYSCFG_EXTI_PORTH (*) + * + * (*) 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)); +} + +/** + * @brief Set connections to TIMx Break inputs + * @rmtoll SYSCFG_CFGR2 LOCKUP_LOCK LL_SYSCFG_SetTIMBreakInputs\n + * SYSCFG_CFGR2 SRAM_PARITY_LOCK LL_SYSCFG_SetTIMBreakInputs\n + * SYSCFG_CFGR2 PVD_LOCK LL_SYSCFG_SetTIMBreakInputs + * @param Break This parameter can be a combination of the following values: + * @arg @ref LL_SYSCFG_TIMBREAK_PVD (*) + * @arg @ref LL_SYSCFG_TIMBREAK_SRAM_PARITY (*) + * @arg @ref LL_SYSCFG_TIMBREAK_LOCKUP + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetTIMBreakInputs(uint32_t Break) +{ + MODIFY_REG(SYSCFG->CFGR2, SYSCFG_MASK_TIM_BREAK, Break); +} + +/** + * @brief Get connections to TIMx Break inputs + * @rmtoll SYSCFG_CFGR2 LOCKUP_LOCK LL_SYSCFG_GetTIMBreakInputs\n + * SYSCFG_CFGR2 SRAM_PARITY_LOCK LL_SYSCFG_GetTIMBreakInputs\n + * SYSCFG_CFGR2 PVD_LOCK LL_SYSCFG_GetTIMBreakInputs + * @retval Returned value can be can be a combination of the following values: + * @arg @ref LL_SYSCFG_TIMBREAK_PVD (*) + * @arg @ref LL_SYSCFG_TIMBREAK_SRAM_PARITY (*) + * @arg @ref LL_SYSCFG_TIMBREAK_LOCKUP + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_SYSCFG_GetTIMBreakInputs(void) +{ + return (uint32_t)(READ_BIT(SYSCFG->CFGR2, SYSCFG_MASK_TIM_BREAK)); +} + +#if defined(SYSCFG_CFGR2_BYP_ADDR_PAR) +/** + * @brief Disable RAM Parity Check Disable + * @rmtoll SYSCFG_CFGR2 BYP_ADDR_PAR LL_SYSCFG_DisableSRAMParityCheck + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableSRAMParityCheck(void) +{ + SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_BYP_ADDR_PAR); +} +#endif /* SYSCFG_CFGR2_BYP_ADDR_PAR */ + +#if defined(SYSCFG_CFGR2_SRAM_PE) +/** + * @brief Check if SRAM parity error detected + * @rmtoll SYSCFG_CFGR2 SRAM_PE 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_SRAM_PE) == (SYSCFG_CFGR2_SRAM_PE)); +} + +/** + * @brief Clear SRAM parity error flag + * @rmtoll SYSCFG_CFGR2 SRAM_PE LL_SYSCFG_ClearFlag_SP + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_ClearFlag_SP(void) +{ + SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SRAM_PE); +} +#endif /* SYSCFG_CFGR2_SRAM_PE */ + +#if defined(SYSCFG_RCR_PAGE0) +/** + * @brief Enable CCM SRAM page write protection + * @note Write protection is cleared only by a system reset + * @rmtoll SYSCFG_RCR PAGE0 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE1 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE2 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE3 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE4 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE5 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE6 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE7 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE8 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE9 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE10 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE11 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE12 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE13 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE14 LL_SYSCFG_EnableCCM_SRAMPageWRP\n + * SYSCFG_RCR PAGE15 LL_SYSCFG_EnableCCM_SRAMPageWRP + * @param PageWRP 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 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableCCM_SRAMPageWRP(uint32_t PageWRP) +{ + SET_BIT(SYSCFG->RCR, PageWRP); +} +#endif /* SYSCFG_RCR_PAGE0 */ + +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EF_DBGMCU DBGMCU + * @{ + */ + +/** + * @brief Return the device identifier + * @note For STM32F303xC, STM32F358xx and STM32F302xC devices, the device ID is 0x422 + * @note For STM32F373xx and STM32F378xx devices, the device ID is 0x432 + * @note For STM32F303x8, STM32F334xx and STM32F328xx devices, the device ID is 0x438. + * @note For STM32F302x8, STM32F301x8 and STM32F318xx devices, the device ID is 0x439 + * @note For STM32F303xE, STM32F398xx and STM32F302xE devices, the device ID is 0x446 + * @rmtoll DBGMCU_IDCODE DEV_ID LL_DBGMCU_GetDeviceID + * @retval Values between Min_Data=0x00 and Max_Data=0xFFF + */ +__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_IDCODE_REV_ID_Pos); +} + +/** + * @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 APB1_FZ DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM12_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM13_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM14_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM18_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_I2C3_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_CAN_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_TIM12_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM13_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM18_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_CAN_STOP (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs) +{ + SET_BIT(DBGMCU->APB1FZ, Periphs); +} + +/** + * @brief Unfreeze APB1 peripherals (group1 peripherals) + * @rmtoll APB1_FZ DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM12_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM13_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM14_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM18_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_I2C3_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_CAN_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_TIM12_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM13_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM18_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_CAN_STOP (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs) +{ + CLEAR_BIT(DBGMCU->APB1FZ, Periphs); +} + +/** + * @brief Freeze APB2 peripherals + * @rmtoll APB2_FZ DBG_TIM1_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * APB2_FZ DBG_TIM8_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * APB2_FZ DBG_TIM15_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * APB2_FZ DBG_TIM16_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * APB2_FZ DBG_TIM17_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * APB2_FZ DBG_TIM19_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * APB2_FZ DBG_TIM20_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * APB2_FZ DBG_HRTIM1_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_TIM19_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 APB2_FZ DBG_TIM1_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n + * APB2_FZ DBG_TIM8_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n + * APB2_FZ DBG_TIM15_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n + * APB2_FZ DBG_TIM16_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n + * APB2_FZ DBG_TIM17_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n + * APB2_FZ DBG_TIM19_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n + * APB2_FZ DBG_TIM20_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n + * APB2_FZ DBG_HRTIM1_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_TIM19_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); +} + +/** + * @} + */ + +/** @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 + * @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 + */ +__STATIC_INLINE uint32_t LL_FLASH_GetLatency(void) +{ + return (uint32_t)(READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY)); +} + +/** + * @brief Enable Prefetch + * @rmtoll FLASH_ACR PRFTBE LL_FLASH_EnablePrefetch + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnablePrefetch(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_PRFTBE ); +} + +/** + * @brief Disable Prefetch + * @rmtoll FLASH_ACR PRFTBE LL_FLASH_DisablePrefetch + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisablePrefetch(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTBE ); +} + +/** + * @brief Check if Prefetch buffer is enabled + * @rmtoll FLASH_ACR PRFTBS 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_PRFTBS) == (FLASH_ACR_PRFTBS)); +} + +#if defined(FLASH_ACR_HLFCYA) +/** + * @brief Enable Flash Half Cycle Access + * @rmtoll FLASH_ACR HLFCYA LL_FLASH_EnableHalfCycleAccess + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnableHalfCycleAccess(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_HLFCYA); +} + +/** + * @brief Disable Flash Half Cycle Access + * @rmtoll FLASH_ACR HLFCYA LL_FLASH_DisableHalfCycleAccess + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisableHalfCycleAccess(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_HLFCYA); +} + +/** + * @brief Check if Flash Half Cycle Access is enabled or not + * @rmtoll FLASH_ACR HLFCYA LL_FLASH_IsHalfCycleAccessEnabled + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_FLASH_IsHalfCycleAccessEnabled(void) +{ + return (READ_BIT(FLASH->ACR, FLASH_ACR_HLFCYA) == (FLASH_ACR_HLFCYA)); +} +#endif /* FLASH_ACR_HLFCYA */ + + + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_LL_SYSTEM_H */ + + diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_tim.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_tim.h new file mode 100644 index 0000000..e799626 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_tim.h @@ -0,0 +1,5087 @@ +/** + ****************************************************************************** + * @file stm32f3xx_ll_tim.h + * @author MCD Application Team + * @brief Header file of TIM LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_LL_TIM_H +#define __STM32F3xx_LL_TIM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx.h" + +/** @addtogroup STM32F3xx_LL_Driver + * @{ + */ + +#if defined (TIM1) || defined (TIM2) || defined (TIM3) || defined (TIM4) || defined (TIM5) || defined (TIM6) || defined (TIM7) || defined (TIM8) || defined (TIM12) || defined (TIM13) || defined (TIM14) || defined (TIM15) || defined (TIM16) || defined (TIM17) || defined (TIM18) || defined (TIM19) || 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 */ + 0x3CU, /* 7: TIMx_CH5 */ + 0x3CU /* 8: TIMx_CH6 */ +}; + +static const uint8_t SHIFT_TAB_OCxx[] = +{ + 0U, /* 0: OC1M, OC1FE, OC1PE */ + 0U, /* 1: - NA */ + 8U, /* 2: OC2M, OC2FE, OC2PE */ + 0U, /* 3: - NA */ + 0U, /* 4: OC3M, OC3FE, OC3PE */ + 0U, /* 5: - NA */ + 8U, /* 6: OC4M, OC4FE, OC4PE */ + 0U, /* 7: OC5M, OC5FE, OC5PE */ + 8U /* 8: OC6M, OC6FE, OC6PE */ +}; + +static const uint8_t SHIFT_TAB_ICxx[] = +{ + 0U, /* 0: CC1S, IC1PSC, IC1F */ + 0U, /* 1: - NA */ + 8U, /* 2: CC2S, IC2PSC, IC2F */ + 0U, /* 3: - NA */ + 0U, /* 4: CC3S, IC3PSC, IC3F */ + 0U, /* 5: - NA */ + 8U, /* 6: CC4S, IC4PSC, IC4F */ + 0U, /* 7: - NA */ + 0U /* 8: - NA */ +}; + +static const uint8_t SHIFT_TAB_CCxP[] = +{ + 0U, /* 0: CC1P */ + 2U, /* 1: CC1NP */ + 4U, /* 2: CC2P */ + 6U, /* 3: CC2NP */ + 8U, /* 4: CC3P */ + 10U, /* 5: CC3NP */ + 12U, /* 6: CC4P */ + 16U, /* 7: CC5P */ + 20U /* 8: CC6P */ +}; + +static const uint8_t SHIFT_TAB_OISx[] = +{ + 0U, /* 0: OIS1 */ + 1U, /* 1: OIS1N */ + 2U, /* 2: OIS2 */ + 3U, /* 3: OIS2N */ + 4U, /* 4: OIS3 */ + 5U, /* 5: OIS3N */ + 6U, /* 6: OIS4 */ + 8U, /* 7: OIS5 */ + 10U /* 8: OIS6 */ +}; +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup TIM_LL_Private_Constants TIM Private Constants + * @{ + */ + + +#define TIMx_OR_RMP_SHIFT 16U +#define TIMx_OR_RMP_MASK 0x0000FFFFU +#if defined(TIM1) +#define TIM1_OR_RMP_MASK (TIM1_OR_ETR_RMP << TIMx_OR_RMP_SHIFT) +#endif /* TIM1 */ +#if defined (TIM8) +#define TIM8_OR_RMP_MASK (TIM8_OR_ETR_RMP << TIMx_OR_RMP_SHIFT) +#endif /* TIM8 */ +#if defined(TIM14) +#define TIM14_OR_RMP_MASK (TIM14_OR_TI1_RMP << TIMx_OR_RMP_SHIFT) +#endif /* TIM14 */ +#if defined(TIM16) +#define TIM16_OR_RMP_MASK (TIM16_OR_TI1_RMP << TIMx_OR_RMP_SHIFT) +#endif /* TIM16 */ +#if defined(TIM20) +#define TIM20_OR_RMP_MASK (TIM20_OR_ETR_RMP << TIMx_OR_RMP_SHIFT) +#endif /* TIM20 */ + +/* 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) + + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup TIM_LL_Private_Macros TIM Private Macros + * @{ + */ +/** @brief Convert channel id into channel index. + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @note CH5 and CH6 channels are not available for all F3 devices + * @retval none + */ +#if defined(TIM_CCR5_CCR5) +#define TIM_GET_CHANNEL_INDEX( __CHANNEL__) \ + (((__CHANNEL__) == LL_TIM_CHANNEL_CH1) ? 0U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH1N) ? 1U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH2) ? 2U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH2N) ? 3U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH3) ? 4U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH3N) ? 5U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH4) ? 6U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH5) ? 7U : 8U) +#else +#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 : 6U) +#endif + +/** @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. */ + +#if defined(TIM_BDTR_BKF) + 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. */ + +#endif /* TIM_BDTR_BKF */ +#if defined(TIM_BDTR_BK2E) + 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. */ + +#endif /* TIM_BDTR_BK2E */ + 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 */ +#if defined(TIM_CCMR1_OC1M_3) +#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 */ +#endif /* TIM_CCMR1_OC1M_3 */ +#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 */ +#if defined(TIM_SR_B2IF) +#define LL_TIM_SR_B2IF TIM_SR_B2IF /*!< Second break interrupt flag */ +#endif /* TIM_SR_B2IF */ +#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 */ +/** + * @} + */ + +#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 */ +/** + * @} + */ +#if defined(TIM_BDTR_BK2E) + +/** @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 */ +/** + * @} + */ +#endif /* TIM_BDTR_BK2E */ + +/** @defgroup TIM_LL_EC_AUTOMATICOUTPUT_ENABLE Automatic output enable + * @{ + */ +#define LL_TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U /*!< MOE can be set only by software */ +#define LL_TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE /*!< MOE can be set by software or automatically at the next update event */ +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** @defgroup TIM_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_TIM_ReadReg and LL_TIM_WriteReg functions. + * @{ + */ +#define LL_TIM_DIER_UIE TIM_DIER_UIE /*!< Update interrupt enable */ +#define LL_TIM_DIER_CC1IE TIM_DIER_CC1IE /*!< Capture/compare 1 interrupt enable */ +#define LL_TIM_DIER_CC2IE TIM_DIER_CC2IE /*!< Capture/compare 2 interrupt enable */ +#define LL_TIM_DIER_CC3IE TIM_DIER_CC3IE /*!< Capture/compare 3 interrupt enable */ +#define LL_TIM_DIER_CC4IE TIM_DIER_CC4IE /*!< Capture/compare 4 interrupt enable */ +#define LL_TIM_DIER_COMIE TIM_DIER_COMIE /*!< COM interrupt enable */ +#define LL_TIM_DIER_TIE TIM_DIER_TIE /*!< Trigger interrupt enable */ +#define LL_TIM_DIER_BIE TIM_DIER_BIE /*!< Break interrupt enable */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_UPDATESOURCE Update Source + * @{ + */ +#define LL_TIM_UPDATESOURCE_REGULAR 0x00000000U /*!< Counter overflow/underflow, Setting the UG bit or Update generation through the slave mode controller generates an update request */ +#define LL_TIM_UPDATESOURCE_COUNTER TIM_CR1_URS /*!< Only counter overflow/underflow generates an update request */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_ONEPULSEMODE One Pulse Mode + * @{ + */ +#define LL_TIM_ONEPULSEMODE_SINGLE TIM_CR1_OPM /*!< Counter stops counting at the next update event */ +#define LL_TIM_ONEPULSEMODE_REPETITIVE 0x00000000U /*!< Counter is not stopped at update event */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_COUNTERMODE Counter Mode + * @{ + */ +#define LL_TIM_COUNTERMODE_UP 0x00000000U /*!< 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 + * @{ + */ +#if defined(TIM_CCMR1_OC1M_3) +#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 */ +#if defined(TIM_CCER_CC5E) +#define LL_TIM_CHANNEL_CH5 TIM_CCER_CC5E /*!< Timer output channel 5 */ +#endif /* TIM_CCER_CC5E */ +#if defined(TIM_CCER_CC6E) +#define LL_TIM_CHANNEL_CH6 TIM_CCER_CC6E /*!< Timer output channel 6 */ +#endif /* TIM_CCER_CC6E */ +#else +#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 */ +#endif +/** + * @} + */ + +#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*/ +#if defined(TIM_CCMR1_OC1M_3) +#define LL_TIM_OCMODE_RETRIG_OPM1 TIM_CCMR1_OC1M_3 /*!__REG__, (__VALUE__)) + +/** + * @brief Read a value in TIM register. + * @param __INSTANCE__ TIM Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_TIM_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__) +/** + * @} + */ + +/** + * @brief HELPER macro retrieving the UIFCPY flag from the counter value. + * @note ex: @ref __LL_TIM_GETFLAG_UIFCPY (@ref LL_TIM_GetCounter ()); + * @note Relevant only if UIF flag remapping has been enabled (UIF status bit is copied + * to TIMx_CNT register bit 31) + * @param __CNT__ Counter value + * @retval UIF status bit + */ +#define __LL_TIM_GETFLAG_UIFCPY(__CNT__) \ + (READ_BIT((__CNT__), TIM_CNT_UIFCPY) >> TIM_CNT_UIFCPY_Pos) + +/** + * @brief HELPER macro calculating DTG[0:7] in the TIMx_BDTR register to achieve the requested dead time duration. + * @note ex: @ref __LL_TIM_CALC_DEADTIME (80000000, @ref LL_TIM_GetClockDivision (), 120); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __CKD__ This parameter can be one of the following values: + * @arg @ref LL_TIM_CLOCKDIVISION_DIV1 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV2 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV4 + * @param __DT__ deadtime duration (in ns) + * @retval DTG[0:7] + */ +#define __LL_TIM_CALC_DEADTIME(__TIMCLK__, __CKD__, __DT__) \ + ( (((uint64_t)((__DT__)*1000U)) < ((DT_DELAY_1+1U) * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(((uint64_t)((__DT__)*1000U) / TIM_CALC_DTS((__TIMCLK__), (__CKD__))) & DT_DELAY_1) : \ + (((uint64_t)((__DT__)*1000U)) < ((64U + (DT_DELAY_2+1U)) * 2U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(DT_RANGE_2 | ((uint8_t)((uint8_t)((((uint64_t)((__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \ + (__CKD__))) >> 1U) - (uint8_t) 64) & DT_DELAY_2)) :\ + (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_3+1U)) * 8U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(DT_RANGE_3 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \ + (__CKD__))) >> 3U) - (uint8_t) 32) & DT_DELAY_3)) :\ + (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_4+1U)) * 16U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(DT_RANGE_4 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \ + (__CKD__))) >> 4U) - (uint8_t) 32) & DT_DELAY_4)) :\ + 0U) + +/** + * @brief HELPER macro calculating the prescaler value to achieve the required counter clock frequency. + * @note ex: @ref __LL_TIM_CALC_PSC (80000000, 1000000); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __CNTCLK__ counter clock frequency (in Hz) + * @retval Prescaler value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_PSC(__TIMCLK__, __CNTCLK__) \ + (((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)((((__TIMCLK__) + (__CNTCLK__)/2U)/(__CNTCLK__)) - 1U) : 0U) + +/** + * @brief HELPER macro calculating the auto-reload value to achieve the required output signal frequency. + * @note ex: @ref __LL_TIM_CALC_ARR (1000000, @ref LL_TIM_GetPrescaler (), 10000); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __FREQ__ output signal frequency (in Hz) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_ARR(__TIMCLK__, __PSC__, __FREQ__) \ + ((((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? (((__TIMCLK__)/((__FREQ__) * ((__PSC__) + 1U))) - 1U) : 0U) + +/** + * @brief HELPER macro calculating the compare value required to achieve the required timer output compare + * active/inactive delay. + * @note ex: @ref __LL_TIM_CALC_DELAY (1000000, @ref LL_TIM_GetPrescaler (), 10); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @retval Compare value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_DELAY(__TIMCLK__, __PSC__, __DELAY__) \ + ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__)) \ + / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U)))) + +/** + * @brief HELPER macro calculating the auto-reload value to achieve the required pulse duration + * (when the timer operates in one pulse mode). + * @note ex: @ref __LL_TIM_CALC_PULSE (1000000, @ref LL_TIM_GetPrescaler (), 10, 20); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @param __PULSE__ pulse duration (in us) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_PULSE(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \ + ((uint32_t)(__LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__PULSE__)) \ + + __LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__DELAY__)))) + +/** + * @brief HELPER macro retrieving the ratio of the input capture prescaler + * @note ex: @ref __LL_TIM_GET_ICPSC_RATIO (@ref LL_TIM_IC_GetPrescaler ()); + * @param __ICPSC__ This parameter can be one of the following values: + * @arg @ref LL_TIM_ICPSC_DIV1 + * @arg @ref LL_TIM_ICPSC_DIV2 + * @arg @ref LL_TIM_ICPSC_DIV4 + * @arg @ref LL_TIM_ICPSC_DIV8 + * @retval Input capture prescaler ratio (1, 2, 4 or 8) + */ +#define __LL_TIM_GET_ICPSC_RATIO(__ICPSC__) \ + ((uint32_t)(0x01U << (((__ICPSC__) >> 16U) >> TIM_CCMR1_IC1PSC_Pos))) + + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup TIM_LL_Exported_Functions TIM Exported Functions + * @{ + */ + +/** @defgroup TIM_LL_EF_Time_Base Time Base configuration + * @{ + */ +/** + * @brief Enable timer counter. + * @rmtoll CR1 CEN LL_TIM_EnableCounter + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableCounter(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_CEN); +} + +/** + * @brief Disable timer counter. + * @rmtoll CR1 CEN LL_TIM_DisableCounter + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableCounter(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_CEN); +} + +/** + * @brief Indicates whether the timer counter is enabled. + * @rmtoll CR1 CEN LL_TIM_IsEnabledCounter + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledCounter(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR1, TIM_CR1_CEN) == (TIM_CR1_CEN)) ? 1UL : 0UL); +} + +/** + * @brief Enable update event generation. + * @rmtoll CR1 UDIS LL_TIM_EnableUpdateEvent + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableUpdateEvent(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_UDIS); +} + +/** + * @brief Disable update event generation. + * @rmtoll CR1 UDIS LL_TIM_DisableUpdateEvent + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableUpdateEvent(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_UDIS); +} + +/** + * @brief Indicates whether update event generation is enabled. + * @rmtoll CR1 UDIS LL_TIM_IsEnabledUpdateEvent + * @param TIMx Timer instance + * @retval Inverted state of bit (0 or 1). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledUpdateEvent(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR1, TIM_CR1_UDIS) == (uint32_t)RESET) ? 1UL : 0UL); +} + +/** + * @brief Set update event source + * @note Update event source set to LL_TIM_UPDATESOURCE_REGULAR: any of the following events + * generate an update interrupt or DMA request if enabled: + * - Counter overflow/underflow + * - Setting the UG bit + * - Update generation through the slave mode controller + * @note Update event source set to LL_TIM_UPDATESOURCE_COUNTER: only counter + * overflow/underflow generates an update interrupt or DMA request if enabled. + * @rmtoll CR1 URS LL_TIM_SetUpdateSource + * @param TIMx Timer instance + * @param UpdateSource This parameter can be one of the following values: + * @arg @ref LL_TIM_UPDATESOURCE_REGULAR + * @arg @ref LL_TIM_UPDATESOURCE_COUNTER + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetUpdateSource(TIM_TypeDef *TIMx, uint32_t UpdateSource) +{ + MODIFY_REG(TIMx->CR1, TIM_CR1_URS, UpdateSource); +} + +/** + * @brief Get actual event update source + * @rmtoll CR1 URS LL_TIM_GetUpdateSource + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_UPDATESOURCE_REGULAR + * @arg @ref LL_TIM_UPDATESOURCE_COUNTER + */ +__STATIC_INLINE uint32_t LL_TIM_GetUpdateSource(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_URS)); +} + +/** + * @brief Set one pulse mode (one shot v.s. repetitive). + * @rmtoll CR1 OPM LL_TIM_SetOnePulseMode + * @param TIMx Timer instance + * @param OnePulseMode This parameter can be one of the following values: + * @arg @ref LL_TIM_ONEPULSEMODE_SINGLE + * @arg @ref LL_TIM_ONEPULSEMODE_REPETITIVE + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetOnePulseMode(TIM_TypeDef *TIMx, uint32_t OnePulseMode) +{ + MODIFY_REG(TIMx->CR1, TIM_CR1_OPM, OnePulseMode); +} + +/** + * @brief Get actual one pulse mode. + * @rmtoll CR1 OPM LL_TIM_GetOnePulseMode + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_ONEPULSEMODE_SINGLE + * @arg @ref LL_TIM_ONEPULSEMODE_REPETITIVE + */ +__STATIC_INLINE uint32_t LL_TIM_GetOnePulseMode(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_OPM)); +} + +/** + * @brief Set the timer counter counting mode. + * @note Macro IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx) can be used to + * check whether or not the counter mode selection feature is supported + * by a timer instance. + * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) + * requires a timer reset to avoid unexpected direction + * due to DIR bit readonly in center aligned mode. + * @rmtoll CR1 DIR LL_TIM_SetCounterMode\n + * CR1 CMS LL_TIM_SetCounterMode + * @param TIMx Timer instance + * @param CounterMode This parameter can be one of the following values: + * @arg @ref LL_TIM_COUNTERMODE_UP + * @arg @ref LL_TIM_COUNTERMODE_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP + * @arg @ref LL_TIM_COUNTERMODE_CENTER_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP_DOWN + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetCounterMode(TIM_TypeDef *TIMx, uint32_t CounterMode) +{ + MODIFY_REG(TIMx->CR1, (TIM_CR1_DIR | TIM_CR1_CMS), CounterMode); +} + +/** + * @brief Get actual counter mode. + * @note Macro IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx) can be used to + * check whether or not the counter mode selection feature is supported + * by a timer instance. + * @rmtoll CR1 DIR LL_TIM_GetCounterMode\n + * CR1 CMS LL_TIM_GetCounterMode + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_COUNTERMODE_UP + * @arg @ref LL_TIM_COUNTERMODE_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP + * @arg @ref LL_TIM_COUNTERMODE_CENTER_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP_DOWN + */ +__STATIC_INLINE uint32_t LL_TIM_GetCounterMode(const TIM_TypeDef *TIMx) +{ + uint32_t counter_mode; + + counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CMS)); + + if (counter_mode == 0U) + { + counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR)); + } + + return counter_mode; +} + +/** + * @brief Enable auto-reload (ARR) preload. + * @rmtoll CR1 ARPE LL_TIM_EnableARRPreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableARRPreload(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_ARPE); +} + +/** + * @brief Disable auto-reload (ARR) preload. + * @rmtoll CR1 ARPE LL_TIM_DisableARRPreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableARRPreload(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_ARPE); +} + +/** + * @brief Indicates whether auto-reload (ARR) preload is enabled. + * @rmtoll CR1 ARPE LL_TIM_IsEnabledARRPreload + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledARRPreload(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR1, TIM_CR1_ARPE) == (TIM_CR1_ARPE)) ? 1UL : 0UL); +} + +/** + * @brief Set the division ratio between the timer clock and the sampling clock used by the dead-time generators + * (when supported) and the digital filters. + * @note Macro IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx) can be used to check + * whether or not the clock division feature is supported by the timer + * instance. + * @rmtoll CR1 CKD LL_TIM_SetClockDivision + * @param TIMx Timer instance + * @param ClockDivision This parameter can be one of the following values: + * @arg @ref LL_TIM_CLOCKDIVISION_DIV1 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV2 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV4 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetClockDivision(TIM_TypeDef *TIMx, uint32_t ClockDivision) +{ + MODIFY_REG(TIMx->CR1, TIM_CR1_CKD, ClockDivision); +} + +/** + * @brief Get the actual division ratio between the timer clock and the sampling clock used by the dead-time + * generators (when supported) and the digital filters. + * @note Macro IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx) can be used to check + * whether or not the clock division feature is supported by the timer + * instance. + * @rmtoll CR1 CKD LL_TIM_GetClockDivision + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_CLOCKDIVISION_DIV1 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV2 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV4 + */ +__STATIC_INLINE uint32_t LL_TIM_GetClockDivision(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CKD)); +} + +/** + * @brief Set the counter value. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @rmtoll CNT CNT LL_TIM_SetCounter + * @param TIMx Timer instance + * @param Counter Counter value (between Min_Data=0 and Max_Data=0xFFFF or 0xFFFFFFFF) + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetCounter(TIM_TypeDef *TIMx, uint32_t Counter) +{ + WRITE_REG(TIMx->CNT, Counter); +} + +/** + * @brief Get the counter value. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @rmtoll CNT CNT LL_TIM_GetCounter + * @param TIMx Timer instance + * @retval Counter value (between Min_Data=0 and Max_Data=0xFFFF or 0xFFFFFFFF) + */ +__STATIC_INLINE uint32_t LL_TIM_GetCounter(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CNT)); +} + +/** + * @brief Get the current direction of the counter + * @rmtoll CR1 DIR LL_TIM_GetDirection + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_COUNTERDIRECTION_UP + * @arg @ref LL_TIM_COUNTERDIRECTION_DOWN + */ +__STATIC_INLINE uint32_t LL_TIM_GetDirection(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR)); +} + +/** + * @brief Set the prescaler value. + * @note The counter clock frequency CK_CNT is equal to fCK_PSC / (PSC[15:0] + 1). + * @note The prescaler can be changed on the fly as this control register is buffered. The new + * prescaler ratio is taken into account at the next update event. + * @note Helper macro @ref __LL_TIM_CALC_PSC can be used to calculate the Prescaler parameter + * @rmtoll PSC PSC LL_TIM_SetPrescaler + * @param TIMx Timer instance + * @param Prescaler between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Prescaler) +{ + WRITE_REG(TIMx->PSC, Prescaler); +} + +/** + * @brief Get the prescaler value. + * @rmtoll PSC PSC LL_TIM_GetPrescaler + * @param TIMx Timer instance + * @retval Prescaler value between Min_Data=0 and Max_Data=65535 + */ +__STATIC_INLINE uint32_t LL_TIM_GetPrescaler(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->PSC)); +} + +/** + * @brief Set the auto-reload value. + * @note The counter is blocked while the auto-reload value is null. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Helper macro @ref __LL_TIM_CALC_ARR can be used to calculate the AutoReload parameter + * @rmtoll ARR ARR LL_TIM_SetAutoReload + * @param TIMx Timer instance + * @param AutoReload between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetAutoReload(TIM_TypeDef *TIMx, uint32_t AutoReload) +{ + WRITE_REG(TIMx->ARR, AutoReload); +} + +/** + * @brief Get the auto-reload value. + * @rmtoll ARR ARR LL_TIM_GetAutoReload + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @param TIMx Timer instance + * @retval Auto-reload value + */ +__STATIC_INLINE uint32_t LL_TIM_GetAutoReload(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->ARR)); +} + +/** + * @brief Set the repetition counter value. + * @note For advanced timer instances RepetitionCounter can be up to 65535 except for STM32F373xC and STM32F378xx devices. + * @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)); +} + +#if defined(TIM_CR1_UIFREMAP) +/** + * @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); +} + +#endif /* TIM_CR1_UIFREMAP */ +/** + * @} + */ + +/** @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 CC5E LL_TIM_CC_EnableChannel\n + * CCER CC6E LL_TIM_CC_EnableChannel + * @param TIMx Timer instance + * @param Channels This parameter can be a combination of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @note CH5 and CH6 channels are not available for all F3 devices + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_EnableChannel(TIM_TypeDef *TIMx, uint32_t Channels) +{ + SET_BIT(TIMx->CCER, Channels); +} + +/** + * @brief Disable capture/compare channels. + * @rmtoll CCER CC1E LL_TIM_CC_DisableChannel\n + * CCER CC1NE LL_TIM_CC_DisableChannel\n + * CCER CC2E LL_TIM_CC_DisableChannel\n + * CCER CC2NE LL_TIM_CC_DisableChannel\n + * CCER CC3E LL_TIM_CC_DisableChannel\n + * CCER CC3NE LL_TIM_CC_DisableChannel\n + * CCER CC4E LL_TIM_CC_DisableChannel\n + * CCER CC5E LL_TIM_CC_DisableChannel\n + * CCER CC6E LL_TIM_CC_DisableChannel + * @param TIMx Timer instance + * @param Channels This parameter can be a combination of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @note CH5 and CH6 channels are not available for all F3 devices + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_DisableChannel(TIM_TypeDef *TIMx, uint32_t Channels) +{ + CLEAR_BIT(TIMx->CCER, Channels); +} + +/** + * @brief Indicate whether channel(s) is(are) enabled. + * @rmtoll CCER CC1E LL_TIM_CC_IsEnabledChannel\n + * CCER CC1NE LL_TIM_CC_IsEnabledChannel\n + * CCER CC2E LL_TIM_CC_IsEnabledChannel\n + * CCER CC2NE LL_TIM_CC_IsEnabledChannel\n + * CCER CC3E LL_TIM_CC_IsEnabledChannel\n + * CCER CC3NE LL_TIM_CC_IsEnabledChannel\n + * CCER CC4E LL_TIM_CC_IsEnabledChannel\n + * CCER CC5E LL_TIM_CC_IsEnabledChannel\n + * CCER CC6E LL_TIM_CC_IsEnabledChannel + * @param TIMx Timer instance + * @param Channels This parameter can be a combination of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 CC5S LL_TIM_OC_ConfigOutput\n + * CCMR3 CC6S LL_TIM_OC_ConfigOutput\n + * @elseif STM32F303xC + * CCMR3 CC5S LL_TIM_OC_ConfigOutput\n + * CCMR3 CC6S LL_TIM_OC_ConfigOutput\n + * @elseif STM32F302x8 + * CCMR3 CC5S LL_TIM_OC_ConfigOutput\n + * CCMR3 CC6S LL_TIM_OC_ConfigOutput\n + * @endif + * 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 + * @note CH3 CH4 CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 OC5M LL_TIM_OC_SetMode\n + * CCMR3 OC6M LL_TIM_OC_SetMode + * @elseif STM32F303xC + * CCMR3 OC5M LL_TIM_OC_SetMode\n + * CCMR3 OC6M LL_TIM_OC_SetMode + * @elseif STM32F302x8 + * CCMR3 OC5M LL_TIM_OC_SetMode\n + * CCMR3 OC6M LL_TIM_OC_SetMode + * @endif + * @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 + * @note The following OC modes are not available on all F3 devices : + * - LL_TIM_OCMODE_RETRIG_OPM1 + * - LL_TIM_OCMODE_RETRIG_OPM2 + * - LL_TIM_OCMODE_COMBINED_PWM1 + * - LL_TIM_OCMODE_COMBINED_PWM2 + * - LL_TIM_OCMODE_ASYMMETRIC_PWM1 + * - LL_TIM_OCMODE_ASYMMETRIC_PWM2 + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 OC5M LL_TIM_OC_GetMode\n + * CCMR3 OC6M LL_TIM_OC_GetMode + * @elseif STM32F303xC + * CCMR3 OC5M LL_TIM_OC_GetMode\n + * CCMR3 OC6M LL_TIM_OC_GetMode + * @elseif STM32F302x8 + * CCMR3 OC5M LL_TIM_OC_GetMode\n + * CCMR3 OC6M LL_TIM_OC_GetMode + * @endif + * @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 + * @note The following OC modes are not available on all F3 devices : + * - LL_TIM_OCMODE_RETRIG_OPM1 + * - LL_TIM_OCMODE_RETRIG_OPM2 + * - LL_TIM_OCMODE_COMBINED_PWM1 + * - LL_TIM_OCMODE_COMBINED_PWM2 + * - LL_TIM_OCMODE_ASYMMETRIC_PWM1 + * - LL_TIM_OCMODE_ASYMMETRIC_PWM2 + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetMode(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return (READ_BIT(*pReg, ((TIM_CCMR1_OC1M | TIM_CCMR1_CC1S) << SHIFT_TAB_OCxx[iChannel])) >> SHIFT_TAB_OCxx[iChannel]); +} + +/** + * @brief Set the polarity of an output channel. + * @rmtoll CCER CC1P LL_TIM_OC_SetPolarity\n + * CCER CC1NP LL_TIM_OC_SetPolarity\n + * CCER CC2P LL_TIM_OC_SetPolarity\n + * CCER CC2NP LL_TIM_OC_SetPolarity\n + * CCER CC3P LL_TIM_OC_SetPolarity\n + * CCER CC3NP LL_TIM_OC_SetPolarity\n + * CCER CC4P LL_TIM_OC_SetPolarity\n + * CCER CC5P LL_TIM_OC_SetPolarity\n + * CCER CC6P LL_TIM_OC_SetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @param Polarity This parameter can be one of the following values: + * @arg @ref LL_TIM_OCPOLARITY_HIGH + * @arg @ref LL_TIM_OCPOLARITY_LOW + * @note CH5 and CH6 channels are not available for all F3 devices + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Polarity) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + MODIFY_REG(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel]), Polarity << SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Get the polarity of an output channel. + * @rmtoll CCER CC1P LL_TIM_OC_GetPolarity\n + * CCER CC1NP LL_TIM_OC_GetPolarity\n + * CCER CC2P LL_TIM_OC_GetPolarity\n + * CCER CC2NP LL_TIM_OC_GetPolarity\n + * CCER CC3P LL_TIM_OC_GetPolarity\n + * CCER CC3NP LL_TIM_OC_GetPolarity\n + * CCER CC4P LL_TIM_OC_GetPolarity\n + * CCER CC5P LL_TIM_OC_GetPolarity\n + * CCER CC6P LL_TIM_OC_GetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @note CH5 and CH6 channels are not available for all F3 devices + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_OCPOLARITY_HIGH + * @arg @ref LL_TIM_OCPOLARITY_LOW + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetPolarity(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + return (READ_BIT(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel])) >> SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Set the IDLE state of an output channel + * @note This function is significant only for the timer instances + * supporting the break feature. Macro IS_TIM_BREAK_INSTANCE(TIMx) + * can be used to check whether or not a timer instance provides + * a break input. + * @rmtoll CR2 OIS1 LL_TIM_OC_SetIdleState\n + * CR2 OIS2N LL_TIM_OC_SetIdleState\n + * CR2 OIS2 LL_TIM_OC_SetIdleState\n + * CR2 OIS2N LL_TIM_OC_SetIdleState\n + * CR2 OIS3 LL_TIM_OC_SetIdleState\n + * CR2 OIS3N LL_TIM_OC_SetIdleState\n + * CR2 OIS4 LL_TIM_OC_SetIdleState\n + * CR2 OIS5 LL_TIM_OC_SetIdleState\n + * CR2 OIS6 LL_TIM_OC_SetIdleState + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @param IdleState This parameter can be one of the following values: + * @arg @ref LL_TIM_OCIDLESTATE_LOW + * @arg @ref LL_TIM_OCIDLESTATE_HIGH + * @note CH5 and CH6 channels are not available for all F3 devices + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetIdleState(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t IdleState) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + MODIFY_REG(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel]), IdleState << SHIFT_TAB_OISx[iChannel]); +} + +/** + * @brief Get the IDLE state of an output channel + * @rmtoll CR2 OIS1 LL_TIM_OC_GetIdleState\n + * CR2 OIS2N LL_TIM_OC_GetIdleState\n + * CR2 OIS2 LL_TIM_OC_GetIdleState\n + * CR2 OIS2N LL_TIM_OC_GetIdleState\n + * CR2 OIS3 LL_TIM_OC_GetIdleState\n + * CR2 OIS3N LL_TIM_OC_GetIdleState\n + * CR2 OIS4 LL_TIM_OC_GetIdleState\n + * CR2 OIS5 LL_TIM_OC_GetIdleState\n + * CR2 OIS6 LL_TIM_OC_GetIdleState + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 OC5FE LL_TIM_OC_EnableFast\n + * CCMR3 OC6FE LL_TIM_OC_EnableFast + * @elseif STM32F303xC + * CCMR3 OC5FE LL_TIM_OC_EnableFast\n + * CCMR3 OC6FE LL_TIM_OC_EnableFast + * @elseif STM32F302x8 + * CCMR3 OC5FE LL_TIM_OC_EnableFast\n + * CCMR3 OC6FE LL_TIM_OC_EnableFast + * @endif + * @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 + * @note OC5FE and OC6FE are not available for all F3 devices + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 OC5FE LL_TIM_OC_DisableFast\n + * CCMR3 OC6FE LL_TIM_OC_DisableFast + * @elseif STM32F303xC + * CCMR3 OC5FE LL_TIM_OC_DisableFast\n + * CCMR3 OC6FE LL_TIM_OC_DisableFast + * @elseif STM32F302x8 + * CCMR3 OC5FE LL_TIM_OC_DisableFast\n + * CCMR3 OC6FE LL_TIM_OC_DisableFast + * @endif + * @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 + * @note OC5FE and OC6FE are not available for all F3 devices + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 OC5FE LL_TIM_OC_IsEnabledFast\n + * CCMR3 OC6FE LL_TIM_OC_IsEnabledFast + * @elseif STM32F303xC + * CCMR3 OC5FE LL_TIM_OC_IsEnabledFast\n + * CCMR3 OC6FE LL_TIM_OC_IsEnabledFast + * @elseif STM32F302x8 + * CCMR3 OC5FE LL_TIM_OC_DisableFast\n + * CCMR3 OC6FE LL_TIM_OC_DisableFast + * @endif + * @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 + * @note OC5FE and OC6FE are not available for all F3 devices + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 OC5PE LL_TIM_OC_EnablePreload\n + * CCMR3 OC6PE LL_TIM_OC_EnablePreload + * @elseif STM32F303xC + * CCMR3 OC5PE LL_TIM_OC_EnablePreload\n + * CCMR3 OC6PE LL_TIM_OC_EnablePreload + * @elseif STM32F302x8 + * CCMR3 OC5PE LL_TIM_OC_EnablePreload\n + * CCMR3 OC6PE LL_TIM_OC_EnablePreload + * @endif + * @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 + * @note OC5PE and OC6PE are not available for all F3 devices + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 OC5PE LL_TIM_OC_DisablePreload\n + * CCMR3 OC6PE LL_TIM_OC_DisablePreload + * @elseif STM32F303xC + * CCMR3 OC5PE LL_TIM_OC_DisablePreload\n + * CCMR3 OC6PE LL_TIM_OC_DisablePreload + * @elseif STM32F302x8 + * CCMR3 OC5PE LL_TIM_OC_DisablePreload\n + * CCMR3 OC6PE LL_TIM_OC_DisablePreload + * @endif + * @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 + * @note OC5PE and OC6PE are not available for all F3 devices + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 OC5PE LL_TIM_OC_IsEnabledPreload\n + * CCMR3 OC6PE LL_TIM_OC_IsEnabledPreload + * @elseif STM32F303xC + * CCMR3 OC5PE LL_TIM_OC_IsEnabledPreload\n + * CCMR3 OC6PE LL_TIM_OC_IsEnabledPreload + * @elseif STM32F302x8 + * CCMR3 OC5PE LL_TIM_OC_IsEnabledPreload\n + * CCMR3 OC6PE LL_TIM_OC_IsEnabledPreload + * @endif + * @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 + * @note OC5PE and OC6PE are not available for all F3 devices + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 OC5CE LL_TIM_OC_EnableClear\n + * CCMR3 OC6CE LL_TIM_OC_EnableClear + * @elseif STM32F303xC + * CCMR3 OC5CE LL_TIM_OC_EnableClear\n + * CCMR3 OC6CE LL_TIM_OC_EnableClear + * @elseif STM32F302x8 + * CCMR3 OC5CE LL_TIM_OC_EnableClear\n + * CCMR3 OC6CE LL_TIM_OC_EnableClear + * @endif + * @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 + * @note OC5CE and OC6CE are not available for all F3 devices + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 OC5CE LL_TIM_OC_DisableClear\n + * CCMR3 OC6CE LL_TIM_OC_DisableClear + * @elseif STM32F303xC + * CCMR3 OC5CE LL_TIM_OC_DisableClear\n + * CCMR3 OC6CE LL_TIM_OC_DisableClear + * @elseif STM32F302x8 + * CCMR3 OC5CE LL_TIM_OC_DisableClear\n + * CCMR3 OC6CE LL_TIM_OC_DisableClear + * @endif + * @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 + * @note OC5CE and OC6CE are not available for all F3 devices + * @note CH5 and CH6 channels are not available for all F3 devices + * @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 + * @if STM32F334x8 + * CCMR3 OC5CE LL_TIM_OC_IsEnabledClear\n + * CCMR3 OC6CE LL_TIM_OC_IsEnabledClear + * @elseif STM32F303xC + * CCMR3 OC5CE LL_TIM_OC_IsEnabledClear\n + * CCMR3 OC6CE LL_TIM_OC_IsEnabledClear + * @elseif STM32F302x8 + * CCMR3 OC5CE LL_TIM_OC_IsEnabledClear\n + * CCMR3 OC6CE LL_TIM_OC_IsEnabledClear + * @endif + * @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 + * @note OC5CE and OC6CE are not available for all F3 devices + * @note CH5 and CH6 channels are not available for all F3 devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledClear(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + uint32_t bitfield = TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel]; + return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL); +} + +/** + * @brief Set the dead-time delay (delay inserted between the rising edge of the OCxREF signal and the rising edge of + * the Ocx and OCxN signals). + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * dead-time insertion feature is supported by a timer instance. + * @note Helper macro @ref __LL_TIM_CALC_DEADTIME can be used to calculate the DeadTime parameter + * @rmtoll BDTR DTG LL_TIM_OC_SetDeadTime + * @param TIMx Timer instance + * @param DeadTime between Min_Data=0 and Max_Data=255 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetDeadTime(TIM_TypeDef *TIMx, uint32_t DeadTime) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_DTG, DeadTime); +} + +/** + * @brief Set compare value for output channel 1 (TIMx_CCR1). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC1_INSTANCE(TIMx) can be used to check whether or not + * output channel 1 is supported by a timer instance. + * @rmtoll CCR1 CCR1 LL_TIM_OC_SetCompareCH1 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH1(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR1, CompareValue); +} + +/** + * @brief Set compare value for output channel 2 (TIMx_CCR2). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC2_INSTANCE(TIMx) can be used to check whether or not + * output channel 2 is supported by a timer instance. + * @rmtoll CCR2 CCR2 LL_TIM_OC_SetCompareCH2 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH2(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR2, CompareValue); +} + +/** + * @brief Set compare value for output channel 3 (TIMx_CCR3). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC3_INSTANCE(TIMx) can be used to check whether or not + * output channel is supported by a timer instance. + * @rmtoll CCR3 CCR3 LL_TIM_OC_SetCompareCH3 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH3(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR3, CompareValue); +} + +/** + * @brief Set compare value for output channel 4 (TIMx_CCR4). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC4_INSTANCE(TIMx) can be used to check whether or not + * output channel 4 is supported by a timer instance. + * @rmtoll CCR4 CCR4 LL_TIM_OC_SetCompareCH4 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH4(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR4, CompareValue); +} + +#if defined(TIM_CCR5_CCR5) +/** + * @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. + * @if STM32F334x8 + * @rmtoll CCR5 CCR5 LL_TIM_OC_SetCompareCH5 + * @elseif STM32F303xC + * @rmtoll CCR5 CCR5 LL_TIM_OC_SetCompareCH5 + * @elseif STM32F302x8 + * @rmtoll CCR5 CCR5 LL_TIM_OC_SetCompareCH5 + * @endif + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @note CH5 channel is not available for all F3 devices + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH5(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + MODIFY_REG(TIMx->CCR5, TIM_CCR5_CCR5, CompareValue); +} + +#endif /* TIM_CCR5_CCR5 */ +#if defined(TIM_CCR6_CCR6) +/** + * @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. + * @if STM32F344x8 + * @rmtoll CCR6 CCR6 LL_TIM_OC_SetCompareCH6 + * @elseif STM32F303xC + * CCR6 CCR6 LL_TIM_OC_SetCompareCH6 + * @elseif STM32F302x8 + * CCR6 CCR6 LL_TIM_OC_SetCompareCH6 + * @endif + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @note CH6 channel is not available for all F3 devices + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH6(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR6, CompareValue); +} + +#endif /* TIM_CCR6_CCR6 */ +/** + * @brief Get compare value (TIMx_CCR1) set for output channel 1. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC1_INSTANCE(TIMx) can be used to check whether or not + * output channel 1 is supported by a timer instance. + * @rmtoll CCR1 CCR1 LL_TIM_OC_GetCompareCH1 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH1(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR1)); +} + +/** + * @brief Get compare value (TIMx_CCR2) set for output channel 2. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC2_INSTANCE(TIMx) can be used to check whether or not + * output channel 2 is supported by a timer instance. + * @rmtoll CCR2 CCR2 LL_TIM_OC_GetCompareCH2 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH2(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR2)); +} + +/** + * @brief Get compare value (TIMx_CCR3) set for output channel 3. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC3_INSTANCE(TIMx) can be used to check whether or not + * output channel 3 is supported by a timer instance. + * @rmtoll CCR3 CCR3 LL_TIM_OC_GetCompareCH3 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH3(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR3)); +} + +/** + * @brief Get compare value (TIMx_CCR4) set for output channel 4. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC4_INSTANCE(TIMx) can be used to check whether or not + * output channel 4 is supported by a timer instance. + * @rmtoll CCR4 CCR4 LL_TIM_OC_GetCompareCH4 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH4(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR4)); +} + +#if defined(TIM_CCR5_CCR5) +/** + * @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. + * @if STM32F334x8 + * @rmtoll CCR5 CCR5 LL_TIM_OC_GetCompareCH5 + * @elseif STM32F303xC + * CCR5 CCR5 LL_TIM_OC_GetCompareCH5 + * @elseif STM32F302x8 + * CCR5 CCR5 LL_TIM_OC_GetCompareCH5 + * @endif + * @param TIMx Timer instance + * @note CH5 channel is not available for all F3 devices + * @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)); +} + +#endif /* TIM_CCR5_CCR5 */ +#if defined(TIM_CCR6_CCR6) +/** + * @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. + * @if STM32F334x8 + * @rmtoll CCR6 CCR6 LL_TIM_OC_GetCompareCH6 + * @elseif STM32F303xC + * CCR6 CCR6 LL_TIM_OC_GetCompareCH6 + * @elseif STM32F302x8 + * CCR6 CCR6 LL_TIM_OC_GetCompareCH6 + * @endif + * @param TIMx Timer instance + * @note CH6 channel is not available for all F3 devices + * @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)); +} + +#endif /* TIM_CCR6_CCR6 */ +#if defined(TIM_CCR5_CCR5) +/** + * @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. + * @if STM32F334x8 + * @rmtoll CCR5 GC5C3 LL_TIM_SetCH5CombinedChannels\n + * CCR5 GC5C2 LL_TIM_SetCH5CombinedChannels\n + * CCR5 GC5C1 LL_TIM_SetCH5CombinedChannels + * @elseif STM32F303xC + * CCR5 GC5C3 LL_TIM_SetCH5CombinedChannels\n + * CCR5 GC5C2 LL_TIM_SetCH5CombinedChannels\n + * CCR5 GC5C1 LL_TIM_SetCH5CombinedChannels + * @elseif STM32F302x8 + * CCR5 GC5C3 LL_TIM_SetCH5CombinedChannels\n + * CCR5 GC5C2 LL_TIM_SetCH5CombinedChannels\n + * CCR5 GC5C1 LL_TIM_SetCH5CombinedChannels + * @endif + * @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 + * @note CH5 channel is not available for all F3 devices + * @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); +} + +#endif /* TIM_CCR5_CCR5 */ +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Input_Channel Input channel configuration + * @{ + */ +/** + * @brief Configure input channel. + * @rmtoll CCMR1 CC1S LL_TIM_IC_Config\n + * CCMR1 IC1PSC LL_TIM_IC_Config\n + * CCMR1 IC1F LL_TIM_IC_Config\n + * CCMR1 CC2S LL_TIM_IC_Config\n + * CCMR1 IC2PSC LL_TIM_IC_Config\n + * CCMR1 IC2F LL_TIM_IC_Config\n + * CCMR2 CC3S LL_TIM_IC_Config\n + * CCMR2 IC3PSC LL_TIM_IC_Config\n + * CCMR2 IC3F LL_TIM_IC_Config\n + * CCMR2 CC4S LL_TIM_IC_Config\n + * CCMR2 IC4PSC LL_TIM_IC_Config\n + * CCMR2 IC4F LL_TIM_IC_Config\n + * CCER CC1P LL_TIM_IC_Config\n + * CCER CC1NP LL_TIM_IC_Config\n + * CCER CC2P LL_TIM_IC_Config\n + * CCER CC2NP LL_TIM_IC_Config\n + * CCER CC3P LL_TIM_IC_Config\n + * CCER CC3NP LL_TIM_IC_Config\n + * CCER CC4P LL_TIM_IC_Config\n + * CCER CC4NP LL_TIM_IC_Config + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param Configuration This parameter must be a combination of all the following values: + * @arg @ref LL_TIM_ACTIVEINPUT_DIRECTTI or @ref LL_TIM_ACTIVEINPUT_INDIRECTTI or @ref LL_TIM_ACTIVEINPUT_TRC + * @arg @ref LL_TIM_ICPSC_DIV1 or ... or @ref LL_TIM_ICPSC_DIV8 + * @arg @ref LL_TIM_IC_FILTER_FDIV1 or ... or @ref LL_TIM_IC_FILTER_FDIV32_N8 + * @arg @ref LL_TIM_IC_POLARITY_RISING or @ref LL_TIM_IC_POLARITY_FALLING or @ref LL_TIM_IC_POLARITY_BOTHEDGE + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_Config(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC | TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]), + ((Configuration >> 16U) & (TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC | TIM_CCMR1_CC1S)) \ + << SHIFT_TAB_ICxx[iChannel]); + MODIFY_REG(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]), + (Configuration & (TIM_CCER_CC1NP | TIM_CCER_CC1P)) << SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Set the active input. + * @rmtoll CCMR1 CC1S LL_TIM_IC_SetActiveInput\n + * CCMR1 CC2S LL_TIM_IC_SetActiveInput\n + * CCMR2 CC3S LL_TIM_IC_SetActiveInput\n + * CCMR2 CC4S LL_TIM_IC_SetActiveInput + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICActiveInput This parameter can be one of the following values: + * @arg @ref LL_TIM_ACTIVEINPUT_DIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_INDIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_TRC + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetActiveInput(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICActiveInput) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]), (ICActiveInput >> 16U) << SHIFT_TAB_ICxx[iChannel]); +} + +/** + * @brief Get the current active input. + * @rmtoll CCMR1 CC1S LL_TIM_IC_GetActiveInput\n + * CCMR1 CC2S LL_TIM_IC_GetActiveInput\n + * CCMR2 CC3S LL_TIM_IC_GetActiveInput\n + * CCMR2 CC4S LL_TIM_IC_GetActiveInput + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_ACTIVEINPUT_DIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_INDIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_TRC + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetActiveInput(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return ((READ_BIT(*pReg, ((TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U); +} + +/** + * @brief Set the prescaler of input channel. + * @rmtoll CCMR1 IC1PSC LL_TIM_IC_SetPrescaler\n + * CCMR1 IC2PSC LL_TIM_IC_SetPrescaler\n + * CCMR2 IC3PSC LL_TIM_IC_SetPrescaler\n + * CCMR2 IC4PSC LL_TIM_IC_SetPrescaler + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICPrescaler This parameter can be one of the following values: + * @arg @ref LL_TIM_ICPSC_DIV1 + * @arg @ref LL_TIM_ICPSC_DIV2 + * @arg @ref LL_TIM_ICPSC_DIV4 + * @arg @ref LL_TIM_ICPSC_DIV8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPrescaler) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_IC1PSC) << SHIFT_TAB_ICxx[iChannel]), (ICPrescaler >> 16U) << SHIFT_TAB_ICxx[iChannel]); +} + +/** + * @brief Get the current prescaler value acting on an input channel. + * @rmtoll CCMR1 IC1PSC LL_TIM_IC_GetPrescaler\n + * CCMR1 IC2PSC LL_TIM_IC_GetPrescaler\n + * CCMR2 IC3PSC LL_TIM_IC_GetPrescaler\n + * CCMR2 IC4PSC LL_TIM_IC_GetPrescaler + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_ICPSC_DIV1 + * @arg @ref LL_TIM_ICPSC_DIV2 + * @arg @ref LL_TIM_ICPSC_DIV4 + * @arg @ref LL_TIM_ICPSC_DIV8 + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetPrescaler(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return ((READ_BIT(*pReg, ((TIM_CCMR1_IC1PSC) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U); +} + +/** + * @brief Set the input filter duration. + * @rmtoll CCMR1 IC1F LL_TIM_IC_SetFilter\n + * CCMR1 IC2F LL_TIM_IC_SetFilter\n + * CCMR2 IC3F LL_TIM_IC_SetFilter\n + * CCMR2 IC4F LL_TIM_IC_SetFilter + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICFilter This parameter can be one of the following values: + * @arg @ref LL_TIM_IC_FILTER_FDIV1 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetFilter(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICFilter) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel]), (ICFilter >> 16U) << SHIFT_TAB_ICxx[iChannel]); +} + +/** + * @brief Get the input filter duration. + * @rmtoll CCMR1 IC1F LL_TIM_IC_GetFilter\n + * CCMR1 IC2F LL_TIM_IC_GetFilter\n + * CCMR2 IC3F LL_TIM_IC_GetFilter\n + * CCMR2 IC4F LL_TIM_IC_GetFilter + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_IC_FILTER_FDIV1 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N8 + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetFilter(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return ((READ_BIT(*pReg, ((TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U); +} + +/** + * @brief Set the input channel polarity. + * @rmtoll CCER CC1P LL_TIM_IC_SetPolarity\n + * CCER CC1NP LL_TIM_IC_SetPolarity\n + * CCER CC2P LL_TIM_IC_SetPolarity\n + * CCER CC2NP LL_TIM_IC_SetPolarity\n + * CCER CC3P LL_TIM_IC_SetPolarity\n + * CCER CC3NP LL_TIM_IC_SetPolarity\n + * CCER CC4P LL_TIM_IC_SetPolarity\n + * CCER CC4NP LL_TIM_IC_SetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICPolarity This parameter can be one of the following values: + * @arg @ref LL_TIM_IC_POLARITY_RISING + * @arg @ref LL_TIM_IC_POLARITY_FALLING + * @arg @ref LL_TIM_IC_POLARITY_BOTHEDGE + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPolarity) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + MODIFY_REG(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]), + ICPolarity << SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Get the current input channel polarity. + * @rmtoll CCER CC1P LL_TIM_IC_GetPolarity\n + * CCER CC1NP LL_TIM_IC_GetPolarity\n + * CCER CC2P LL_TIM_IC_GetPolarity\n + * CCER CC2NP LL_TIM_IC_GetPolarity\n + * CCER CC3P LL_TIM_IC_GetPolarity\n + * CCER CC3NP LL_TIM_IC_GetPolarity\n + * CCER CC4P LL_TIM_IC_GetPolarity\n + * CCER CC4NP LL_TIM_IC_GetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_IC_POLARITY_RISING + * @arg @ref LL_TIM_IC_POLARITY_FALLING + * @arg @ref LL_TIM_IC_POLARITY_BOTHEDGE + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetPolarity(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + return (READ_BIT(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel])) >> + SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Connect the TIMx_CH1, CH2 and CH3 pins to the TI1 input (XOR combination). + * @note Macro IS_TIM_XOR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an XOR input. + * @rmtoll CR2 TI1S LL_TIM_IC_EnableXORCombination + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_EnableXORCombination(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR2, TIM_CR2_TI1S); +} + +/** + * @brief Disconnect the TIMx_CH1, CH2 and CH3 pins from the TI1 input. + * @note Macro IS_TIM_XOR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an XOR input. + * @rmtoll CR2 TI1S LL_TIM_IC_DisableXORCombination + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_DisableXORCombination(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR2, TIM_CR2_TI1S); +} + +/** + * @brief Indicates whether the TIMx_CH1, CH2 and CH3 pins are connectected to the TI1 input. + * @note Macro IS_TIM_XOR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an XOR input. + * @rmtoll CR2 TI1S LL_TIM_IC_IsEnabledXORCombination + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IC_IsEnabledXORCombination(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR2, TIM_CR2_TI1S) == (TIM_CR2_TI1S)) ? 1UL : 0UL); +} + +/** + * @brief Get captured value for input channel 1. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC1_INSTANCE(TIMx) can be used to check whether or not + * input channel 1 is supported by a timer instance. + * @rmtoll CCR1 CCR1 LL_TIM_IC_GetCaptureCH1 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH1(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR1)); +} + +/** + * @brief Get captured value for input channel 2. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC2_INSTANCE(TIMx) can be used to check whether or not + * input channel 2 is supported by a timer instance. + * @rmtoll CCR2 CCR2 LL_TIM_IC_GetCaptureCH2 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH2(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR2)); +} + +/** + * @brief Get captured value for input channel 3. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC3_INSTANCE(TIMx) can be used to check whether or not + * input channel 3 is supported by a timer instance. + * @rmtoll CCR3 CCR3 LL_TIM_IC_GetCaptureCH3 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH3(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR3)); +} + +/** + * @brief Get captured value for input channel 4. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC4_INSTANCE(TIMx) can be used to check whether or not + * input channel 4 is supported by a timer instance. + * @rmtoll CCR4 CCR4 LL_TIM_IC_GetCaptureCH4 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH4(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR4)); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Clock_Selection Counter clock selection + * @{ + */ +/** + * @brief Enable external clock mode 2. + * @note When external clock mode 2 is enabled the counter is clocked by any active edge on the ETRF signal. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR ECE LL_TIM_EnableExternalClock + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableExternalClock(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->SMCR, TIM_SMCR_ECE); +} + +/** + * @brief Disable external clock mode 2. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR ECE LL_TIM_DisableExternalClock + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableExternalClock(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->SMCR, TIM_SMCR_ECE); +} + +/** + * @brief Indicate whether external clock mode 2 is enabled. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR ECE LL_TIM_IsEnabledExternalClock + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledExternalClock(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SMCR, TIM_SMCR_ECE) == (TIM_SMCR_ECE)) ? 1UL : 0UL); +} + +/** + * @brief Set the clock source of the counter clock. + * @note when selected clock source is external clock mode 1, the timer input + * the external clock is applied is selected by calling the @ref LL_TIM_SetTriggerInput() + * function. This timer input must be configured by calling + * the @ref LL_TIM_IC_Config() function. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode1. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR SMS LL_TIM_SetClockSource\n + * SMCR ECE LL_TIM_SetClockSource + * @param TIMx Timer instance + * @param ClockSource This parameter can be one of the following values: + * @arg @ref LL_TIM_CLOCKSOURCE_INTERNAL + * @arg @ref LL_TIM_CLOCKSOURCE_EXT_MODE1 + * @arg @ref LL_TIM_CLOCKSOURCE_EXT_MODE2 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetClockSource(TIM_TypeDef *TIMx, uint32_t ClockSource) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS | TIM_SMCR_ECE, ClockSource); +} + +/** + * @brief Set the encoder interface mode. + * @note Macro IS_TIM_ENCODER_INTERFACE_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports the encoder mode. + * @rmtoll SMCR SMS LL_TIM_SetEncoderMode + * @param TIMx Timer instance + * @param EncoderMode This parameter can be one of the following values: + * @arg @ref LL_TIM_ENCODERMODE_X2_TI1 + * @arg @ref LL_TIM_ENCODERMODE_X2_TI2 + * @arg @ref LL_TIM_ENCODERMODE_X4_TI12 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetEncoderMode(TIM_TypeDef *TIMx, uint32_t EncoderMode) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, EncoderMode); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Timer_Synchronization Timer synchronisation configuration + * @{ + */ +/** + * @brief Set the trigger output (TRGO) used for timer synchronization . + * @note Macro IS_TIM_MASTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance can operate as a master timer. + * @rmtoll CR2 MMS LL_TIM_SetTriggerOutput + * @param TIMx Timer instance + * @param TimerSynchronization This parameter can be one of the following values: + * @arg @ref LL_TIM_TRGO_RESET + * @arg @ref LL_TIM_TRGO_ENABLE + * @arg @ref LL_TIM_TRGO_UPDATE + * @arg @ref LL_TIM_TRGO_CC1IF + * @arg @ref LL_TIM_TRGO_OC1REF + * @arg @ref LL_TIM_TRGO_OC2REF + * @arg @ref LL_TIM_TRGO_OC3REF + * @arg @ref LL_TIM_TRGO_OC4REF + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetTriggerOutput(TIM_TypeDef *TIMx, uint32_t TimerSynchronization) +{ + MODIFY_REG(TIMx->CR2, TIM_CR2_MMS, TimerSynchronization); +} + +#if defined(TIM_CR2_MMS2) +/** + * @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 + * @note OC5 and OC6 are not available for all F3 devices + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetTriggerOutput2(TIM_TypeDef *TIMx, uint32_t ADCSynchronization) +{ + MODIFY_REG(TIMx->CR2, TIM_CR2_MMS2, ADCSynchronization); +} + +#endif /* TIM_CR2_MMS2 */ +/** + * @brief Set the synchronization mode of a slave timer. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR SMS LL_TIM_SetSlaveMode + * @param TIMx Timer instance + * @param SlaveMode This parameter can be one of the following values: + * @arg @ref LL_TIM_SLAVEMODE_DISABLED + * @arg @ref LL_TIM_SLAVEMODE_RESET + * @arg @ref LL_TIM_SLAVEMODE_GATED + * @arg @ref LL_TIM_SLAVEMODE_TRIGGER + * @arg @ref LL_TIM_SLAVEMODE_COMBINED_RESETTRIGGER + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetSlaveMode(TIM_TypeDef *TIMx, uint32_t SlaveMode) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, SlaveMode); +} + +/** + * @brief Set the selects the trigger input to be used to synchronize the counter. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR TS LL_TIM_SetTriggerInput + * @param TIMx Timer instance + * @param TriggerInput This parameter can be one of the following values: + * @arg @ref LL_TIM_TS_ITR0 + * @arg @ref LL_TIM_TS_ITR1 + * @arg @ref LL_TIM_TS_ITR2 + * @arg @ref LL_TIM_TS_ITR3 + * @arg @ref LL_TIM_TS_TI1F_ED + * @arg @ref LL_TIM_TS_TI1FP1 + * @arg @ref LL_TIM_TS_TI2FP2 + * @arg @ref LL_TIM_TS_ETRF + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetTriggerInput(TIM_TypeDef *TIMx, uint32_t TriggerInput) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_TS, TriggerInput); +} + +/** + * @brief Enable the Master/Slave mode. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR MSM LL_TIM_EnableMasterSlaveMode + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableMasterSlaveMode(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->SMCR, TIM_SMCR_MSM); +} + +/** + * @brief Disable the Master/Slave mode. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR MSM LL_TIM_DisableMasterSlaveMode + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableMasterSlaveMode(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->SMCR, TIM_SMCR_MSM); +} + +/** + * @brief Indicates whether the Master/Slave mode is enabled. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR MSM LL_TIM_IsEnabledMasterSlaveMode + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledMasterSlaveMode(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SMCR, TIM_SMCR_MSM) == (TIM_SMCR_MSM)) ? 1UL : 0UL); +} + +/** + * @brief Configure the external trigger (ETR) input. + * @note Macro IS_TIM_ETR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an external trigger input. + * @rmtoll SMCR ETP LL_TIM_ConfigETR\n + * SMCR ETPS LL_TIM_ConfigETR\n + * SMCR ETF LL_TIM_ConfigETR + * @param TIMx Timer instance + * @param ETRPolarity This parameter can be one of the following values: + * @arg @ref LL_TIM_ETR_POLARITY_NONINVERTED + * @arg @ref LL_TIM_ETR_POLARITY_INVERTED + * @param ETRPrescaler This parameter can be one of the following values: + * @arg @ref LL_TIM_ETR_PRESCALER_DIV1 + * @arg @ref LL_TIM_ETR_PRESCALER_DIV2 + * @arg @ref LL_TIM_ETR_PRESCALER_DIV4 + * @arg @ref LL_TIM_ETR_PRESCALER_DIV8 + * @param ETRFilter This parameter can be one of the following values: + * @arg @ref LL_TIM_ETR_FILTER_FDIV1 + * @arg @ref LL_TIM_ETR_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_ETR_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_ETR_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_ETR_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_ETR_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV32_N8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigETR(TIM_TypeDef *TIMx, uint32_t ETRPolarity, uint32_t ETRPrescaler, + uint32_t ETRFilter) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_ETP | TIM_SMCR_ETPS | TIM_SMCR_ETF, ETRPolarity | ETRPrescaler | ETRFilter); +} + +/** + * @} + */ + +/** @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) +{ +#if defined(TIM_IP_V2_1) + __IO uint32_t tmpreg; +#endif /* TIM_IP_V2_1 */ + SET_BIT(TIMx->BDTR, TIM_BDTR_BKE); +#if defined(TIM_IP_V2_1) + /* Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective. */ + tmpreg = READ_REG(TIMx->BDTR); + (void)(tmpreg); +#endif /* TIM_IP_V2_1 */ +} + +/** + * @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) +{ +#if defined(TIM_IP_V2_1) + __IO uint32_t tmpreg; +#endif /* TIM_IP_V2_1 */ + CLEAR_BIT(TIMx->BDTR, TIM_BDTR_BKE); +#if defined(TIM_IP_V2_1) + /* Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective. */ + tmpreg = READ_REG(TIMx->BDTR); + (void)(tmpreg); +#endif /* TIM_IP_V2_1 */ +} + +#if defined(TIM_BDTR_BKF) +/** + * @brief Configure the break input. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR BKP LL_TIM_ConfigBRK\n + * BDTR BKF LL_TIM_ConfigBRK + * @param TIMx Timer instance + * @param BreakPolarity This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_POLARITY_LOW + * @arg @ref LL_TIM_BREAK_POLARITY_HIGH + * @param BreakFilter This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV32_N8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigBRK(TIM_TypeDef *TIMx, uint32_t BreakPolarity, + uint32_t BreakFilter) +{ +#if defined(TIM_IP_V2_1) + __IO uint32_t tmpreg; +#endif /* TIM_IP_V2_1 */ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_BKP | TIM_BDTR_BKF, BreakPolarity | BreakFilter); +#if defined(TIM_IP_V2_1) + /* Note: Any write operation to BKP bit takes a delay of 1 APB clock cycle to become effective. */ + tmpreg = READ_REG(TIMx->BDTR); + (void)(tmpreg); +#endif /* TIM_IP_V2_1 */ +} + +#else +/** + * @brief Configure the break input. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR BKP LL_TIM_ConfigBRK + * @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 + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigBRK(TIM_TypeDef *TIMx, uint32_t BreakPolarity) +{ +#if defined(TIM_IP_V2_1) + __IO uint32_t tmpreg; +#endif /* TIM_IP_V2_1 */ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_BKP, BreakPolarity); +#if defined(TIM_IP_V2_1) + /* Note: Any write operation to BKP bit takes a delay of 1 APB clock cycle to become effective. */ + tmpreg = READ_REG(TIMx->BDTR); + (void)(tmpreg); +#endif /* TIM_IP_V2_1 */ +} + +#endif /* TIM_BDTR_BKF */ +#if defined(TIM_BDTR_BK2E) +/** + * @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) +{ +#if defined(TIM_IP_V2_1) + __IO uint32_t tmpreg; +#endif /* TIM_IP_V2_1 */ + SET_BIT(TIMx->BDTR, TIM_BDTR_BK2E); +#if defined(TIM_IP_V2_1) + /* Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective. */ + tmpreg = READ_REG(TIMx->BDTR); + (void)(tmpreg); +#endif /* TIM_IP_V2_1 */ +} + +/** + * @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) +{ +#if defined(TIM_IP_V2_1) + __IO uint32_t tmpreg; +#endif /* TIM_IP_V2_1 */ + CLEAR_BIT(TIMx->BDTR, TIM_BDTR_BK2E); +#if defined(TIM_IP_V2_1) + /* Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective. */ + tmpreg = READ_REG(TIMx->BDTR); + (void)(tmpreg); +#endif /* TIM_IP_V2_1 */ +} + +/** + * @brief Configure the break 2 input. + * @note Macro IS_TIM_BKIN2_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a second break input. + * @rmtoll BDTR BK2P LL_TIM_ConfigBRK2\n + * BDTR BK2F LL_TIM_ConfigBRK2 + * @param TIMx Timer instance + * @param Break2Polarity This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK2_POLARITY_LOW + * @arg @ref LL_TIM_BREAK2_POLARITY_HIGH + * @param Break2Filter This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV32_N8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigBRK2(TIM_TypeDef *TIMx, uint32_t Break2Polarity, uint32_t Break2Filter) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_BK2P | TIM_BDTR_BK2F, Break2Polarity | Break2Filter); +} + +#endif /* TIM_BDTR_BK2E */ +/** + * @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); +} + +/** + * @} + */ + +/** @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_OR + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCMR3 (*) + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR5 (*) + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR6 (*) + * (*) value not defined in all devices + * @param DMABurstLength This parameter can be one of the following values: + * @arg @ref LL_TIM_DMABURST_LENGTH_1TRANSFER + * @arg @ref LL_TIM_DMABURST_LENGTH_2TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_3TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_4TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_5TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_6TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_7TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_8TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_9TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_10TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_11TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_12TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_13TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_14TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_15TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_16TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_17TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_18TRANSFERS + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigDMABurst(TIM_TypeDef *TIMx, uint32_t DMABurstBaseAddress, uint32_t DMABurstLength) +{ + MODIFY_REG(TIMx->DCR, (TIM_DCR_DBL | TIM_DCR_DBA), (DMABurstBaseAddress | DMABurstLength)); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Timer_Inputs_Remapping Timer input remapping + * @{ + */ +/** + * @brief Remap TIM inputs (input channel, internal/external triggers). + * @note Macro IS_TIM_REMAP_INSTANCE(TIMx) can be used to check whether or not + * a some timer inputs can be remapped. + * @if STM32F334x8 + * @rmtoll TIM1_OR ETR_RMP LL_TIM_SetRemap\n + * TIM16_OR TI1_RMP LL_TIM_SetRemap\n + * @elseif STM32F302x8 + * @rmtoll TIM1_OR ETR_RMP LL_TIM_SetRemap\n + * TIM16_OR TI1_RMP LL_TIM_SetRemap\n + * @elseif STM32F303xC + * @rmtoll TIM1_OR ETR_RMP LL_TIM_SetRemap\n + * TIM8_OR ETR_RMP LL_TIM_SetRemap\n + * TIM20_OR ETR_RMP LL_TIM_SetRemap\n + * @elseif STM32F373xC + * @rmtoll TIM14_OR TI1_RMP LL_TIM_SetRemap + * @endif + * @param TIMx Timer instance + * @param Remap Remap params depends on the TIMx. Description available only + * in CHM version of the User Manual (not in .pdf). + * Otherwise see Reference Manual description of OR registers. + * + * Below description summarizes "Timer Instance" and "Remap" param combinations: + * + * TIM1: any combination of ETR_RMP where (**) + * + * . . ETR_RMP can be one of the following values + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_NC + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_AWD1 (*) + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_AWD2 (*) + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_AWD3 (*) + * @arg @ref LL_TIM_TIM1_ETR_ADC2_RMP_NC (*) + * @arg @ref LL_TIM_TIM1_ETR_ADC2_RMP_AWD1 (*) + * @arg @ref LL_TIM_TIM1_ETR_ADC2_RMP_AWD2 (*) + * @arg @ref LL_TIM_TIM1_ETR_ADC2_RMP_AWD3 (*) + * @arg @ref LL_TIM_TIM1_ETR_ADC3_RMP_NC (*) + * @arg @ref LL_TIM_TIM1_ETR_ADC3_RMP_AWD1 (*) + * @arg @ref LL_TIM_TIM1_ETR_ADC3_RMP_AWD2 (*) + * @arg @ref LL_TIM_TIM1_ETR_ADC3_RMP_AWD3 (*) + * + * TIM8: any combination of ETR_RMP where (**) + * + * . . ETR_RMP can be one of the following values + * @arg @ref LL_TIM_TIM8_ETR_ADC2_RMP_NC (*) + * @arg @ref LL_TIM_TIM8_ETR_ADC2_RMP_AWD1 (*) + * @arg @ref LL_TIM_TIM8_ETR_ADC2_RMP_AWD2 (*) + * @arg @ref LL_TIM_TIM8_ETR_ADC2_RMP_AWD3 (*) + * @arg @ref LL_TIM_TIM8_ETR_ADC3_RMP_NC (*) + * @arg @ref LL_TIM_TIM8_ETR_ADC3_RMP_AWD1 (*) + * @arg @ref LL_TIM_TIM8_ETR_ADC3_RMP_AWD2 (*) + * @arg @ref LL_TIM_TIM8_ETR_ADC3_RMP_AWD3 (*) + * + * TIM14: any combination of TI1_RMP where (**) + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM14_TI1_RMP_GPIO (*) + * @arg @ref LL_TIM_TIM14_TI1_RMP_RTC_CLK (*) + * @arg @ref LL_TIM_TIM14_TI1_RMP_HSE (*) + * @arg @ref LL_TIM_TIM14_TI1_RMP_MCO (*) + * + * TIM16: any combination of TI1_RMP where (**) + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM16_TI1_RMP_GPIO (*) + * @arg @ref LL_TIM_TIM16_TI1_RMP_LSI (*) + * @arg @ref LL_TIM_TIM16_TI1_RMP_LSE (*) + * @arg @ref LL_TIM_TIM16_TI1_RMP_RTC (*) + * + * TIM20: any combination of ETR_RMP where (**) + * + * . . ETR_RMP can be one of the following values + * @arg @ref LL_TIM_TIM20_ETR_ADC3_RMP_NC (*) + * @arg @ref LL_TIM_TIM20_ETR_ADC3_RMP_AWD1 (*) + * @arg @ref LL_TIM_TIM20_ETR_ADC3_RMP_AWD2 (*) + * @arg @ref LL_TIM_TIM20_ETR_ADC3_RMP_AWD3 (*) + * @arg @ref LL_TIM_TIM20_ETR_ADC4_RMP_NC (*) + * @arg @ref LL_TIM_TIM20_ETR_ADC4_RMP_AWD1 (*) + * @arg @ref LL_TIM_TIM20_ETR_ADC4_RMP_AWD2 (*) + * @arg @ref LL_TIM_TIM20_ETR_ADC4_RMP_AWD3 (*) + * + * (*) 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->OR, (Remap >> TIMx_OR_RMP_SHIFT), (Remap & TIMx_OR_RMP_MASK)); +} + +/** + * @} + */ +#if defined(TIM_SMCR_OCCS) + +/** @defgroup TIM_LL_EF_OCREF_Clear OCREF_Clear_Management + * @{ + */ +/** + * @brief Set the OCREF clear input source + * @note The OCxREF signal of a given channel can be cleared when a high level is applied on the OCREF_CLR_INPUT + * @note This function can only be used in Output compare and PWM modes. + * @rmtoll SMCR OCCS LL_TIM_SetOCRefClearInputSource + * @param TIMx Timer instance + * @param OCRefClearInputSource This parameter can be one of the following values: + * @arg @ref LL_TIM_OCREF_CLR_INT_OCREF_CLR + * @arg @ref LL_TIM_OCREF_CLR_INT_ETR + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetOCRefClearInputSource(TIM_TypeDef *TIMx, uint32_t OCRefClearInputSource) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_OCCS, OCRefClearInputSource); +} +/** + * @} + */ +#endif /* TIM_SMCR_OCCS */ + +/** @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); +} + +#if defined (TIM_SR_CC5IF) +/** + * @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); +} + +#endif /* TIM_SR_CC5IF */ +#if defined (TIM_SR_CC6IF) +/** + * @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); +} + +#endif /* TIM_SR_CC6IF */ +/** + * @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); +} + +#if defined(TIM_SR_B2IF) +/** + * @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); +} + +#endif /* TIM_SR_B2IF */ +/** + * @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); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_IT_Management IT-Management + * @{ + */ +/** + * @brief Enable update interrupt (UIE). + * @rmtoll DIER UIE LL_TIM_EnableIT_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_UPDATE(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_UIE); +} + +/** + * @brief Disable update interrupt (UIE). + * @rmtoll DIER UIE LL_TIM_DisableIT_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_UPDATE(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_UIE); +} + +/** + * @brief Indicates whether the update interrupt (UIE) is enabled. + * @rmtoll DIER UIE LL_TIM_IsEnabledIT_UPDATE + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_UPDATE(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_UIE) == (TIM_DIER_UIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 1 interrupt (CC1IE). + * @rmtoll DIER CC1IE LL_TIM_EnableIT_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC1(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC1IE); +} + +/** + * @brief Disable capture/compare 1 interrupt (CC1IE). + * @rmtoll DIER CC1IE LL_TIM_DisableIT_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC1(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1IE); +} + +/** + * @brief Indicates whether the capture/compare 1 interrupt (CC1IE) is enabled. + * @rmtoll DIER CC1IE LL_TIM_IsEnabledIT_CC1 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC1(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1IE) == (TIM_DIER_CC1IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 2 interrupt (CC2IE). + * @rmtoll DIER CC2IE LL_TIM_EnableIT_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC2IE); +} + +/** + * @brief Disable capture/compare 2 interrupt (CC2IE). + * @rmtoll DIER CC2IE LL_TIM_DisableIT_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC2(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2IE); +} + +/** + * @brief Indicates whether the capture/compare 2 interrupt (CC2IE) is enabled. + * @rmtoll DIER CC2IE LL_TIM_IsEnabledIT_CC2 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC2(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2IE) == (TIM_DIER_CC2IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 3 interrupt (CC3IE). + * @rmtoll DIER CC3IE LL_TIM_EnableIT_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC3(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC3IE); +} + +/** + * @brief Disable capture/compare 3 interrupt (CC3IE). + * @rmtoll DIER CC3IE LL_TIM_DisableIT_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC3(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3IE); +} + +/** + * @brief Indicates whether the capture/compare 3 interrupt (CC3IE) is enabled. + * @rmtoll DIER CC3IE LL_TIM_IsEnabledIT_CC3 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC3(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3IE) == (TIM_DIER_CC3IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 4 interrupt (CC4IE). + * @rmtoll DIER CC4IE LL_TIM_EnableIT_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC4(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC4IE); +} + +/** + * @brief Disable capture/compare 4 interrupt (CC4IE). + * @rmtoll DIER CC4IE LL_TIM_DisableIT_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC4(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4IE); +} + +/** + * @brief Indicates whether the capture/compare 4 interrupt (CC4IE) is enabled. + * @rmtoll DIER CC4IE LL_TIM_IsEnabledIT_CC4 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC4(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4IE) == (TIM_DIER_CC4IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable commutation interrupt (COMIE). + * @rmtoll DIER COMIE LL_TIM_EnableIT_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_COM(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_COMIE); +} + +/** + * @brief Disable commutation interrupt (COMIE). + * @rmtoll DIER COMIE LL_TIM_DisableIT_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_COM(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_COMIE); +} + +/** + * @brief Indicates whether the commutation interrupt (COMIE) is enabled. + * @rmtoll DIER COMIE LL_TIM_IsEnabledIT_COM + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_COM(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_COMIE) == (TIM_DIER_COMIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable trigger interrupt (TIE). + * @rmtoll DIER TIE LL_TIM_EnableIT_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_TRIG(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_TIE); +} + +/** + * @brief Disable trigger interrupt (TIE). + * @rmtoll DIER TIE LL_TIM_DisableIT_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_TRIG(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_TIE); +} + +/** + * @brief Indicates whether the trigger interrupt (TIE) is enabled. + * @rmtoll DIER TIE LL_TIM_IsEnabledIT_TRIG + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_TRIG(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_TIE) == (TIM_DIER_TIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable break interrupt (BIE). + * @rmtoll DIER BIE LL_TIM_EnableIT_BRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_BRK(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_BIE); +} + +/** + * @brief Disable break interrupt (BIE). + * @rmtoll DIER BIE LL_TIM_DisableIT_BRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_BRK(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_BIE); +} + +/** + * @brief Indicates whether the break interrupt (BIE) is enabled. + * @rmtoll DIER BIE LL_TIM_IsEnabledIT_BRK + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_BRK(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_BIE) == (TIM_DIER_BIE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_DMA_Management DMA Management + * @{ + */ +/** + * @brief Enable update DMA request (UDE). + * @rmtoll DIER UDE LL_TIM_EnableDMAReq_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_UPDATE(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_UDE); +} + +/** + * @brief Disable update DMA request (UDE). + * @rmtoll DIER UDE LL_TIM_DisableDMAReq_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_UPDATE(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_UDE); +} + +/** + * @brief Indicates whether the update DMA request (UDE) is enabled. + * @rmtoll DIER UDE LL_TIM_IsEnabledDMAReq_UPDATE + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_UPDATE(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_UDE) == (TIM_DIER_UDE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 1 DMA request (CC1DE). + * @rmtoll DIER CC1DE LL_TIM_EnableDMAReq_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC1(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC1DE); +} + +/** + * @brief Disable capture/compare 1 DMA request (CC1DE). + * @rmtoll DIER CC1DE LL_TIM_DisableDMAReq_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC1(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1DE); +} + +/** + * @brief Indicates whether the capture/compare 1 DMA request (CC1DE) is enabled. + * @rmtoll DIER CC1DE LL_TIM_IsEnabledDMAReq_CC1 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC1(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1DE) == (TIM_DIER_CC1DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 2 DMA request (CC2DE). + * @rmtoll DIER CC2DE LL_TIM_EnableDMAReq_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC2DE); +} + +/** + * @brief Disable capture/compare 2 DMA request (CC2DE). + * @rmtoll DIER CC2DE LL_TIM_DisableDMAReq_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC2(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2DE); +} + +/** + * @brief Indicates whether the capture/compare 2 DMA request (CC2DE) is enabled. + * @rmtoll DIER CC2DE LL_TIM_IsEnabledDMAReq_CC2 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC2(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2DE) == (TIM_DIER_CC2DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 3 DMA request (CC3DE). + * @rmtoll DIER CC3DE LL_TIM_EnableDMAReq_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC3(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC3DE); +} + +/** + * @brief Disable capture/compare 3 DMA request (CC3DE). + * @rmtoll DIER CC3DE LL_TIM_DisableDMAReq_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC3(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3DE); +} + +/** + * @brief Indicates whether the capture/compare 3 DMA request (CC3DE) is enabled. + * @rmtoll DIER CC3DE LL_TIM_IsEnabledDMAReq_CC3 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC3(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3DE) == (TIM_DIER_CC3DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 4 DMA request (CC4DE). + * @rmtoll DIER CC4DE LL_TIM_EnableDMAReq_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC4(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC4DE); +} + +/** + * @brief Disable capture/compare 4 DMA request (CC4DE). + * @rmtoll DIER CC4DE LL_TIM_DisableDMAReq_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC4(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4DE); +} + +/** + * @brief Indicates whether the capture/compare 4 DMA request (CC4DE) is enabled. + * @rmtoll DIER CC4DE LL_TIM_IsEnabledDMAReq_CC4 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC4(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4DE) == (TIM_DIER_CC4DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable commutation DMA request (COMDE). + * @rmtoll DIER COMDE LL_TIM_EnableDMAReq_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_COM(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_COMDE); +} + +/** + * @brief Disable commutation DMA request (COMDE). + * @rmtoll DIER COMDE LL_TIM_DisableDMAReq_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_COM(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_COMDE); +} + +/** + * @brief Indicates whether the commutation DMA request (COMDE) is enabled. + * @rmtoll DIER COMDE LL_TIM_IsEnabledDMAReq_COM + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_COM(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_COMDE) == (TIM_DIER_COMDE)) ? 1UL : 0UL); +} + +/** + * @brief Enable trigger interrupt (TDE). + * @rmtoll DIER TDE LL_TIM_EnableDMAReq_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_TRIG(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_TDE); +} + +/** + * @brief Disable trigger interrupt (TDE). + * @rmtoll DIER TDE LL_TIM_DisableDMAReq_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_TRIG(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_TDE); +} + +/** + * @brief Indicates whether the trigger interrupt (TDE) is enabled. + * @rmtoll DIER TDE LL_TIM_IsEnabledDMAReq_TRIG + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_TRIG(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_TDE) == (TIM_DIER_TDE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_EVENT_Management EVENT-Management + * @{ + */ +/** + * @brief Generate an update event. + * @rmtoll EGR UG LL_TIM_GenerateEvent_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_UPDATE(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_UG); +} + +/** + * @brief Generate Capture/Compare 1 event. + * @rmtoll EGR CC1G LL_TIM_GenerateEvent_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC1(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC1G); +} + +/** + * @brief Generate Capture/Compare 2 event. + * @rmtoll EGR CC2G LL_TIM_GenerateEvent_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC2G); +} + +/** + * @brief Generate Capture/Compare 3 event. + * @rmtoll EGR CC3G LL_TIM_GenerateEvent_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC3(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC3G); +} + +/** + * @brief Generate Capture/Compare 4 event. + * @rmtoll EGR CC4G LL_TIM_GenerateEvent_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC4(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC4G); +} + +/** + * @brief Generate commutation event. + * @rmtoll EGR COMG LL_TIM_GenerateEvent_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_COM(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_COMG); +} + +/** + * @brief Generate trigger event. + * @rmtoll EGR TG LL_TIM_GenerateEvent_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_TRIG(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_TG); +} + +/** + * @brief Generate break event. + * @rmtoll EGR BG LL_TIM_GenerateEvent_BRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_BRK(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_BG); +} + +#if defined(TIM_EGR_B2G) +/** + * @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); +} + +#endif /* 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 || TIM12 || TIM13 || TIM14 || TIM15 || TIM16 || TIM17 || TIM18 || TIM19 || TIM20 */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_LL_TIM_H */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_utils.h b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_utils.h new file mode 100644 index 0000000..d47183d --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_ll_utils.h @@ -0,0 +1,280 @@ +/** + ****************************************************************************** + * @file stm32f3xx_ll_utils.h + * @author MCD Application Team + * @brief Header file of UTILS LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 __STM32F3xx_LL_UTILS_H +#define __STM32F3xx_LL_UTILS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx.h" + +/** @addtogroup STM32F3xx_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 PLLMul; /*!< Multiplication factor for PLL VCO input clock. + This parameter can be a value of @ref RCC_LL_EC_PLL_MUL + + This feature can be modified afterwards using unitary function + @ref LL_RCC_PLL_ConfigDomain_SYS(). */ + +#if defined(RCC_PLLSRC_PREDIV1_SUPPORT) + uint32_t PLLDiv; /*!< Division factor for PLL VCO output clock. + This parameter can be a value of @ref RCC_LL_EC_PREDIV_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_PLL_ConfigDomain_SYS(). */ +#else + uint32_t Prediv; /*!< Division factor for HSE used as PLL clock source. + This parameter can be a value of @ref RCC_LL_EC_PREDIV_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_PLL_ConfigDomain_SYS(). */ +#endif /* RCC_PLLSRC_PREDIV1_SUPPORT */ +} 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 */ +/** + * @} + */ + +/** + * @} + */ + +/* 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 (uint16_t)(READ_REG(*((uint32_t *)FLASHSIZE_BASE_ADDRESS))); +} + + +/** + * @} + */ + +/** @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); +#if defined(FLASH_ACR_LATENCY) +ErrorStatus LL_SetFlashLatency(uint32_t Frequency); +#endif /* FLASH_ACR_LATENCY */ +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 /* __STM32F3xx_LL_UTILS_H */ diff --git a/Drivers/STM32F3xx_HAL_Driver/LICENSE.txt b/Drivers/STM32F3xx_HAL_Driver/LICENSE.txt new file mode 100644 index 0000000..3edc4d1 --- /dev/null +++ b/Drivers/STM32F3xx_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/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c new file mode 100644 index 0000000..04f2a0b --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c @@ -0,0 +1,532 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal.c + * @author MCD Application Team + * @brief HAL module driver. + * This is the common part of the HAL initialization + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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: + (+) HAL Initialization and de-initialization functions + (+) HAL Control functions + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @defgroup HAL HAL + * @brief HAL module driver. + * @{ + */ + +#ifdef HAL_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup HAL_Private Constants + * @{ + */ +/** + * @brief STM32F3xx HAL Driver version number V1.5.7 + */ +#define __STM32F3xx_HAL_VERSION_MAIN (0x01U) /*!< [31:24] main version */ +#define __STM32F3xx_HAL_VERSION_SUB1 (0x05U) /*!< [23:16] sub1 version */ +#define __STM32F3xx_HAL_VERSION_SUB2 (0x08U) /*!< [15:8] sub2 version */ +#define __STM32F3xx_HAL_VERSION_RC (0x00U) /*!< [7:0] release candidate */ +#define __STM32F3xx_HAL_VERSION ((__STM32F3xx_HAL_VERSION_MAIN << 24U)\ + |(__STM32F3xx_HAL_VERSION_SUB1 << 16U)\ + |(__STM32F3xx_HAL_VERSION_SUB2 << 8U )\ + |(__STM32F3xx_HAL_VERSION_RC)) + +#define IDCODE_DEVID_MASK (0x00000FFFU) +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/* Exported variables --------------------------------------------------------*/ +/** @defgroup HAL_Exported_Variables HAL Exported Variables + * @{ + */ +__IO uint32_t uwTick; +uint32_t uwTickPrio = (1UL << __NVIC_PRIO_BITS); /* Invalid PRIO */ +HAL_TickFreqTypeDef 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 Initialization and de-initialization functions + * +@verbatim + =============================================================================== + ##### Initialization and de-initialization functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Initializes the Flash interface, the NVIC allocation and initial clock + configuration. It initializes the systick also when timeout is needed + and the backup domain when enabled. + (+) de-Initializes 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 configures the Flash prefetch, + * Configures time base source, NVIC and Low level hardware + * @note This function is called at the beginning of program after reset and before + * the clock configuration + * + * @note 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 + * + * @note The time base configuration is based on MSI clock when exiting from Reset. + * Once done, time base tick start incrementing. + * In the default implementation,Systick is used as source of time base. + * The tick variable is incremented each 1ms in its ISR. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_Init(void) +{ + /* Configure Flash prefetch */ +#if (PREFETCH_ENABLE != 0U) + __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); +#endif /* PREFETCH_ENABLE */ + + /* Set Interrupt Group Priority */ + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); + + /* Enable systick and configure 1ms tick (default clock after Reset is HSI) */ + HAL_InitTick(TICK_INT_PRIORITY); + + /* Init the low level hardware */ + HAL_MspInit(); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief This function de-Initializes common part of the HAL and stops the systick. + * @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_AHB_FORCE_RESET(); + __HAL_RCC_AHB_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 DeInitialize 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) +{ + /* Configure the SysTick to have interrupt in 1ms time basis*/ + if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) + { + return HAL_ERROR; + } + + /* Configure the SysTick IRQ priority */ + if (TickPriority < (1UL << __NVIC_PRIO_BITS)) + { + HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); + uwTickPrio = TickPriority; + } + else + { + return HAL_ERROR; + } + /* Return function status */ + return HAL_OK; +} + +/** + * @} + */ + +/** @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 + (+) Enable/Disable Debug module during Sleep mode + (+) Enable/Disable Debug module during STOP mode + (+) Enable/Disable Debug module during STANDBY mode + +@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 Povides a tick value in millisecond. + * @note The 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(HAL_TickFreqTypeDef Freq) +{ + HAL_StatusTypeDef status = HAL_OK; + HAL_TickFreqTypeDef 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 Return tick frequency. + * @retval Tick frequency. + * Value of @ref HAL_TickFreqTypeDef. + */ +HAL_TickFreqTypeDef HAL_GetTickFreq(void) +{ + return uwTickFreq; +} + +/** + * @brief This function provides accurate 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. + * The 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 freq to guarantee minimum wait */ + if (wait < HAL_MAX_DELAY) + { + wait += (uint32_t)(uwTickFreq); + } + + while((HAL_GetTick() - tickstart) < wait) + { + } +} + +/** + * @brief Suspend 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 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 */ + 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 the SysTick interrupt will be enabled and so Tick increment + * is resumed. + * The 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 */ + SysTick->CTRL |= SysTick_CTRL_TICKINT_Msk; + +} + +/** + * @brief This function returns the HAL revision + * @retval version 0xXYZR (8bits for each decimal, R for RC) + */ +uint32_t HAL_GetHalVersion(void) +{ + return __STM32F3xx_HAL_VERSION; +} + +/** + * @brief Returns the device revision identifier. + * @retval Device revision identifier + */ +uint32_t HAL_GetREVID(void) +{ + return((DBGMCU->IDCODE) >> 16U); +} + +/** + * @brief Returns the device identifier. + * @retval Device identifier + */ +uint32_t HAL_GetDEVID(void) +{ + return((DBGMCU->IDCODE) & IDCODE_DEVID_MASK); +} + +/** + * @brief Returns 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 Returns 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 Returns 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)))); +} + +/** + * @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 STOP mode + * @retval None + */ +void HAL_DBGMCU_EnableDBGStopMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Disable the Debug Module during STOP mode + * @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); +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + + diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c new file mode 100644 index 0000000..086ab87 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c @@ -0,0 +1,537 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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 de-initialization functions + * + Peripheral Control functions + * + * @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 (0x0FU). + (++) 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 stm32f3xx_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 + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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. + * + ****************************************************************************** + */ + +/* + Additional Tables: CORTEX_NVIC_Priority_Table + 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 | 0U-15 | 0 bits for pre-emption priority + | | | 4 bits for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_1 | 0U-1 | 0U-7 | 1 bits for pre-emption priority + | | | 3 bits for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_2 | 0U-3 | 0U-3 | 2 bits for pre-emption priority + | | | 2 bits for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_3 | 0U-7 | 0U-1 | 3 bits for pre-emption priority + | | | 1 bits for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_4 | 0U-15 | 0 | 4 bits for pre-emption priority + | | | 0 bits for subpriority + ========================================================================================================================== + +*/ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @defgroup CORTEX CORTEX + * @brief CORTEX CORTEX HAL module driver + * @{ + */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions ---------------------------------------------------------*/ + +/** @defgroup CORTEX_Exported_Functions CORTEX Exported Functions + * @{ + */ + + +/** @defgroup CORTEX_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and Configuration functions + * +@verbatim + ============================================================================== + ##### Initialization and de-initialization functions ##### + ============================================================================== + [..] + This section provides the CORTEX HAL driver functions allowing to configure Interrupts + Systick functionalities + +@endverbatim + * @{ + */ + + +/** + * @brief Sets 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 bits for pre-emption priority + * 4 bits for subpriority + * @arg NVIC_PRIORITYGROUP_1: 1 bits 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 bits for subpriority + * @arg NVIC_PRIORITYGROUP_4: 4 bits for pre-emption priority + * 0 bits 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 Sets 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 (stm32f3xxxx.h)) + * @param PreemptPriority The pre-emption priority for the IRQn channel. + * This parameter can be a value between 0 and 15 as described in the table CORTEX_NVIC_Priority_Table + * 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 as described in the table CORTEX_NVIC_Priority_Table + * 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 = 0x00U; + + /* 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 Enables 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 (stm32f3xxxx.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 Disables 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 (stm32f3xxxx.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 Initiates a system reset request to reset the MCU. + * @retval None + */ +void HAL_NVIC_SystemReset(void) +{ + /* System Reset */ + NVIC_SystemReset(); +} + +/** + * @brief Initializes the System Timer and its interrupt, and starts the System Tick Timer. + * 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); +} +/** + * @} + */ + +/** @defgroup CORTEX_Exported_Functions_Group2 Peripheral Control functions + * @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 + * @{ + */ + +#if (__MPU_PRESENT == 1U) + +/** + * @brief Disables the MPU also clears the HFNMIENA bit (ARM recommendation) + * @retval None + */ +void HAL_MPU_Disable(void) +{ + /* Disable fault exceptions */ + SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; + + /* Disable the MPU */ + MPU->CTRL = 0U; +} + +/** + * @brief Enables the MPU + * @param MPU_Control Specifies the control mode of the MPU during hard fault, + * NMI, FAULTMASK and privileged access to 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; + + /* Enable fault exceptions */ + SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +} + +/** + * @brief Enables 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 Disables 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 Initializes and configures 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 */ + +/** + * @brief Gets 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 Gets 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 (stm32f3xxxx.h)) + * @param PriorityGroup: the priority grouping bits length. + * This parameter can be one of the following values: + * @arg NVIC_PRIORITYGROUP_0: 0 bits for pre-emption priority + * 4 bits for subpriority + * @arg NVIC_PRIORITYGROUP_1: 1 bits 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 bits for subpriority + * @arg NVIC_PRIORITYGROUP_4: 4 bits for pre-emption priority + * 0 bits 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 Sets 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 (stm32f3xxxx.h)) + * @retval None + */ +void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + /* Set interrupt pending */ + NVIC_SetPendingIRQ(IRQn); +} + +/** + * @brief Gets Pending Interrupt (reads the pending register in the NVIC + * and returns 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 (stm32f3xxxx.h)) + * @retval status: - 0 Interrupt status is not pending. + * - 1 Interrupt status is pending. + */ +uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + /* Return 1 if pending else 0U */ + return NVIC_GetPendingIRQ(IRQn); +} + +/** + * @brief Clears 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 (stm32f3xxxx.h)) + * @retval None + */ +void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + /* Clear pending interrupt */ + NVIC_ClearPendingIRQ(IRQn); +} + +/** + * @brief Gets active interrupt ( reads the active register in NVIC and returns 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 (stm32f3xxxx.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 0U */ + return NVIC_GetActive(IRQn); +} + +/** + * @brief Configures 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 This function handles 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 + */ +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_CORTEX_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c new file mode 100644 index 0000000..76add6e --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c @@ -0,0 +1,903 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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 + @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 Reference manual for connection between peripherals + and DMA requests . + + (#) For a given Channel, program the required configuration through the following parameters: + Transfer Direction, Source and Destination data formats, + Circular or Normal mode, Channel Priority level, Source and Destination Increment mode, + using HAL_DMA_Init() function. + + (#) 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_Channel_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 by customization of function pointer XferCpltCallback and + XferErrorCallback (i.e a member of DMA handle structure). + + *** DMA HAL driver macros list *** + ============================================= + [..] + Below the list of most used macros in DMA HAL driver. + + [..] + (@) You can refer to the DMA HAL driver header file for more useful macros + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_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_CalcBaseAndBitshift(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 = 0U; + + /* Check the DMA handle allocation */ + if(NULL == hdma) + { + 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)); + + /* 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 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)); + + /* 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 DmaBaseAddress and ChannelIndex parameters used + by HAL_DMA_IRQHandler() and HAL_DMA_PollForTransfer() */ + DMA_CalcBaseAndBitshift(hdma); + + /* Initialise 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 */ + hdma->Instance->CCR &= ~DMA_CCR_EN; + + /* Reset DMA Channel control register */ + hdma->Instance->CCR = 0U; + + /* Reset DMA Channel Number of Data to Transfer register */ + hdma->Instance->CNDTR = 0U; + + /* Reset DMA Channel peripheral address register */ + hdma->Instance->CPAR = 0U; + + /* Reset DMA Channel memory address register */ + hdma->Instance->CMAR = 0U; + + /* Get DMA Base Address */ + DMA_CalcBaseAndBitshift(hdma); + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = DMA_FLAG_GL1 << hdma->ChannelIndex; + + /* Clean callbacks */ + hdma->XferCpltCallback = NULL; + hdma->XferHalfCpltCallback = NULL; + hdma->XferErrorCallback = NULL; + hdma->XferAbortCallback = NULL; + + /* Reset the error code */ + hdma->ErrorCode = HAL_DMA_ERROR_NONE; + + /* Reset 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 I/O 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 + * @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 */ + hdma->Instance->CCR &= ~DMA_CCR_EN; + + /* Configure the source, destination address and the data length */ + DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); + + /* Enable the Peripheral */ + hdma->Instance->CCR |= DMA_CCR_EN; + } + else + { + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + /* Remain BUSY */ + 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 + * @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 */ + hdma->Instance->CCR &= ~DMA_CCR_EN; + + /* Configure the source, destination address and the data length */ + DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); + + /* Enable the transfer complete, & transfer error interrupts */ + /* Half transfer interrupt is optional: enable it only if associated callback is available */ + if(NULL != hdma->XferHalfCpltCallback ) + { + hdma->Instance->CCR |= (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE); + } + else + { + hdma->Instance->CCR |= (DMA_IT_TC | DMA_IT_TE); + hdma->Instance->CCR &= ~DMA_IT_HT; + } + + /* Enable the Peripheral */ + hdma->Instance->CCR |= DMA_CCR_EN; + } + 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) +{ + /* Check the DMA handle allocation */ + if(NULL == hdma) + { + return HAL_ERROR; + } + + if(hdma->State != HAL_DMA_STATE_BUSY) + { + /* no transfer ongoing */ + hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + return HAL_ERROR; + } + else + { + /* Disable DMA IT */ + hdma->Instance->CCR &= ~(DMA_IT_TC | DMA_IT_HT | DMA_IT_TE); + + /* Disable the channel */ + hdma->Instance->CCR &= ~DMA_CCR_EN; + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_FLAG_GL1 << hdma->ChannelIndex); + } + /* Change the DMA state*/ + hdma->State = HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + return HAL_OK; +} + +/** + * @brief Abort the DMA Transfer in Interrupt mode. + * @param hdma : pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Stream. + * @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; + + status = HAL_ERROR; + } + else + { + /* Disable DMA IT */ + hdma->Instance->CCR &= ~(DMA_IT_TC | DMA_IT_HT | DMA_IT_TE); + + /* Disable the channel */ + hdma->Instance->CCR &= ~DMA_CCR_EN; + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = DMA_FLAG_GL1 << hdma->ChannelIndex; + + /* 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, uint32_t CompleteLevel, uint32_t Timeout) +{ + uint32_t temp; + uint32_t tickstart = 0U; + + 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 (RESET != (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 = DMA_FLAG_TC1 << hdma->ChannelIndex; + } + else + { + /* Half Transfer Complete flag */ + temp = DMA_FLAG_HT1 << hdma->ChannelIndex; + } + + /* Get tick */ + tickstart = HAL_GetTick(); + + while(RESET == (hdma->DmaBaseAddress->ISR & temp)) + { + if(RESET != (hdma->DmaBaseAddress->ISR & (DMA_FLAG_TE1 << hdma->ChannelIndex))) + { + /* When a DMA transfer error occurs */ + /* A hardware clear of its EN bits is performed */ + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = DMA_FLAG_GL1 << hdma->ChannelIndex; + + /* 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((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout)) + { + /* 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; + } + } + } + + if(HAL_DMA_FULL_TRANSFER == CompleteLevel) + { + /* Clear the transfer complete flag */ + hdma->DmaBaseAddress->IFCR = DMA_FLAG_TC1 << hdma->ChannelIndex; + + /* 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 = DMA_FLAG_HT1 << hdma->ChannelIndex; + } + + /* 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 ((RESET != (flag_it & (DMA_FLAG_HT1 << hdma->ChannelIndex))) && (RESET != (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 */ + hdma->Instance->CCR &= ~DMA_IT_HT; + } + + /* Clear the half transfer complete flag */ + hdma->DmaBaseAddress->IFCR = DMA_FLAG_HT1 << hdma->ChannelIndex; + + /* DMA peripheral state is not updated in Half Transfer */ + /* State is updated only in Transfer Complete case */ + + if(hdma->XferHalfCpltCallback != NULL) + { + /* Half transfer callback */ + hdma->XferHalfCpltCallback(hdma); + } + } + + /* Transfer Complete Interrupt management ***********************************/ + else if ((RESET != (flag_it & (DMA_FLAG_TC1 << hdma->ChannelIndex))) && (RESET != (source_it & DMA_IT_TC))) + { + if((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U) + { + /* Disable the transfer complete & transfer error interrupts */ + /* if the DMA mode is not CIRCULAR */ + hdma->Instance->CCR &= ~(DMA_IT_TC | DMA_IT_TE); + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + } + + /* Clear the transfer complete flag */ + hdma->DmaBaseAddress->IFCR = DMA_FLAG_TC1 << hdma->ChannelIndex; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + if(hdma->XferCpltCallback != NULL) + { + /* Transfer complete callback */ + hdma->XferCpltCallback(hdma); + } + } + + /* Transfer Error Interrupt management ***************************************/ + else if (( RESET != (flag_it & (DMA_FLAG_TE1 << hdma->ChannelIndex))) && (RESET != (source_it & DMA_IT_TE))) + { + /* When a DMA transfer error occurs */ + /* A hardware clear of its EN bits is performed */ + /* Then, disable all DMA interrupts */ + hdma->Instance->CCR &= ~(DMA_IT_TC | DMA_IT_HT | DMA_IT_TE); + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = DMA_FLAG_GL1 << hdma->ChannelIndex; + + /* 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); + } + } +} + +/** + * @brief Register callbacks + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Stream. + * @param CallbackID User Callback identifier + * a HAL_DMA_CallbackIDTypeDef ENUM as parameter. + * @param pCallback pointer to private callback 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 Stream. + * @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 functions + * @brief Peripheral State functions + * +@verbatim + =============================================================================== + ##### State and Errors functions ##### + =============================================================================== + [..] + This subsection provides functions allowing to + (+) Check the DMA state + (+) Get error code + +@endverbatim + * @{ + */ + +/** + * @brief Returns the DMA 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 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 Set the DMA Transfer parameters. + * @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 all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_FLAG_GL1 << hdma->ChannelIndex); + + /* Configure DMA Channel data length */ + hdma->Instance->CNDTR = DataLength; + + /* Peripheral to Memory */ + 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; + } + /* Memory to Peripheral */ + else + { + /* Configure DMA Channel source address */ + hdma->Instance->CPAR = SrcAddress; + + /* Configure DMA Channel destination address */ + hdma->Instance->CMAR = DstAddress; + } +} + +/** + * @brief Set the DMA base address and channel index depending on DMA instance + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Stream. + * @retval None + */ +static void DMA_CalcBaseAndBitshift(DMA_HandleTypeDef *hdma) +{ +#if defined (DMA2) + /* calculation of 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)) << 2U; + hdma->DmaBaseAddress = DMA1; + } + else + { + /* DMA2 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Channel2 - (uint32_t)DMA2_Channel1)) << 2U; + hdma->DmaBaseAddress = DMA2; + } +#else + /* calculation of the channel index */ + /* DMA1 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2U; + hdma->DmaBaseAddress = DMA1; +#endif +} + +/** + * @} + */ + +/** + * @} + */ +#endif /* HAL_DMA_MODULE_ENABLED */ + +/** + * @} + */ + + /** + * @} + */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c new file mode 100644 index 0000000..3c5399d --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c @@ -0,0 +1,619 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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: + * + 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 + interrupts 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 "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_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 CPU IMR/EMR registers */ +#define EXTI_CONFIG_OFFSET 0x08u /* 0x20: offset between CPU 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 and line mask */ + offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + linepos = (pExtiConfig->Line & EXTI_PIN_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->RTSR + (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->FTSR + (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->IMR + (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->EMR + (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); + linepos = (pExtiConfig->Line & EXTI_PIN_MASK); + maskline = (1uL << linepos); + + /* 1] Get core mode : interrupt */ + regaddr = (&EXTI->IMR + (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->EMR + (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->RTSR + (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->FTSR + (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); + linepos = (hexti->Line & EXTI_PIN_MASK); + maskline = (1uL << linepos); + + /* 1] Clear interrupt mode */ + regaddr = (&EXTI->IMR + (EXTI_MODE_OFFSET * offset)); + regval = (*regaddr & ~maskline); + *regaddr = regval; + + /* 2] Clear event mode */ + regaddr = (&EXTI->EMR + (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->RTSR + (EXTI_CONFIG_OFFSET * offset)); + regval = (*regaddr & ~maskline); + *regaddr = regval; + + regaddr = (&EXTI->FTSR + (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; + + switch (CallbackID) + { + case HAL_EXTI_COMMON_CB_ID: + hexti->PendingCallback = pPendingCbfn; + break; + + default: + 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 and line mask */ + offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + + /* Get pending bit */ + regaddr = (&EXTI->PR + (EXTI_CONFIG_OFFSET * offset)); + regval = (*regaddr & maskline); + + if (regval != 0x00u) + { + /* Clear pending bit */ + EXTI->PR = maskline; + + /* Call callback */ + if (hexti->PendingCallback != NULL) + { + hexti->PendingCallback(); + } + } +} + +/** + * @brief Get interrupt pending bit of a dedicated line. + * @param hexti Exti handle. + * @param Edge Specify which pending edge as to be checked. + * This parameter can be one of the following values: + * @arg @ref EXTI_TRIGGER_RISING_FALLING + * This parameter is kept for compatibility with other series. + * @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)); + assert_param(IS_EXTI_PENDING_EDGE(Edge)); + + /* compute line register offset and line mask */ + offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + linepos = (hexti->Line & EXTI_PIN_MASK); + maskline = (1uL << linepos); + + /* Get pending bit */ + regaddr = (&EXTI->PR + (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 Specify which pending edge as to be clear. + * This parameter can be one of the following values: + * @arg @ref EXTI_TRIGGER_RISING_FALLING + * This parameter is kept for compatibility with other series. + * @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)); + assert_param(IS_EXTI_PENDING_EDGE(Edge)); + + /* compute line register offset and line mask */ + offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + + /* Get pending bit */ + regaddr = (&EXTI->PR + (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 parameters */ + assert_param(IS_EXTI_LINE(hexti->Line)); + assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); + + /* compute line register offset and line mask */ + offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); + maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + + regaddr = (&EXTI->SWIER + (EXTI_CONFIG_OFFSET * offset)); + *regaddr = maskline; +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_EXTI_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c new file mode 100644 index 0000000..9fc21ee --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c @@ -0,0 +1,692 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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 State 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. + + [..] The FLASH main features are: + (+) Flash memory read operations + (+) Flash memory program/erase operations + (+) Read / write protections + (+) Prefetch on I-Code + (+) Option Bytes programming + + + ##### How to use this driver ##### + ============================================================================== + [..] + This driver provides functions and macros to configure and program the FLASH + memory of all STM32F3xx devices. + + (#) FLASH Memory I/O Programming functions: this group includes all needed + functions to erase and program the main memory: + (++) Lock and Unlock the FLASH interface + (++) Erase function: Erase page, erase all pages + (++) Program functions: half word, word and doubleword + (#) FLASH Option Bytes Programming functions: this group includes all needed + functions to manage the Option Bytes: + (++) Lock and Unlock the Option Bytes + (++) Set/Reset the write protection + (++) Set the Read protection Level + (++) Program the user Option Bytes + (++) Launch the Option Bytes loader + (++) Erase Option Bytes + (++) Program the data Option Bytes + (++) Get the Write protection. + (++) Get the user option bytes. + + (#) Interrupts and flags management functions : this group + includes all needed functions to: + (++) Handle FLASH interrupts + (++) Wait for last FLASH operation according to its status + (++) Get error flag status + + [..] In addition to these function, this driver includes a set of macros allowing + to handle the following operations: + + (+) Set/Get the latency + (+) Enable/Disable the prefetch buffer + (+) Enable/Disable the half cycle access + (+) Enable/Disable the FLASH interrupts + (+) Monitor the FLASH flags status + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +#ifdef HAL_FLASH_MODULE_ENABLED + +/** @defgroup FLASH FLASH + * @brief FLASH HAL module driver + * @{ + */ + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup FLASH_Private_Constants FLASH Private Constants + * @{ + */ +/** + * @} + */ + +/* Private macro ---------------------------- ---------------------------------*/ +/** @defgroup FLASH_Private_Macros FLASH Private Macros + * @{ + */ + +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ +/** @defgroup FLASH_Private_Variables FLASH Private Variables + * @{ + */ +/* Variables used for Erase pages under interruption*/ +FLASH_ProcessTypeDef pFlash; +/** + * @} + */ + +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup FLASH_Private_Functions FLASH Private Functions + * @{ + */ +static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data); +static void FLASH_SetErrorCode(void); +extern void FLASH_PageErase(uint32_t PageAddress); +/** + * @} + */ + +/* Exported functions ---------------------------------------------------------*/ +/** @defgroup FLASH_Exported_Functions FLASH Exported Functions + * @{ + */ + +/** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions + * @brief Programming operation functions + * +@verbatim +@endverbatim + * @{ + */ + +/** + * @brief Program halfword, word or double word at a specified address + * @note The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface + * The function HAL_FLASH_Lock() should be called after to lock the FLASH interface + * + * @note If an erase and a program operations are requested simultaneously, + * the erase operation is performed before the program one. + * + * @note FLASH should be previously erased before new programming (only exception to this + * is when 0x0000 is programmed) + * + * @param TypeProgram Indicate the way to program at a specified address. + * This parameter can be a value of @ref FLASH_Type_Program + * @param Address Specifie the address to be programmed. + * @param Data Specifie the data to be programmed + * + * @retval HAL_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data) +{ + HAL_StatusTypeDef status = HAL_ERROR; + uint8_t index = 0U; + uint8_t nbiterations = 0U; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Check the parameters */ + assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); + assert_param(IS_FLASH_PROGRAM_ADDRESS(Address)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD) + { + /* Program halfword (16-bit) at a specified address. */ + nbiterations = 1U; + } + else if(TypeProgram == FLASH_TYPEPROGRAM_WORD) + { + /* Program word (32-bit = 2*16-bit) at a specified address. */ + nbiterations = 2U; + } + else + { + /* Program double word (64-bit = 4*16-bit) at a specified address. */ + nbiterations = 4U; + } + + for (index = 0U; index < nbiterations; index++) + { + FLASH_Program_HalfWord((Address + (2U*index)), (uint16_t)(Data >> (16U*index))); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + /* If the program operation is completed, disable the PG Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_PG); + /* In case of error, stop programming procedure */ + if (status != HAL_OK) + { + break; + } + } + } + + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + + return status; +} + +/** + * @brief Program halfword, word or double word at a specified address with interrupt enabled. + * @note The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface + * The function HAL_FLASH_Lock() should be called after to lock the FLASH interface + * + * @note If an erase and a program operations are requested simultaneously, + * the erase operation is performed before the program one. + * + * @param TypeProgram Indicate the way to program at a specified address. + * This parameter can be a value of @ref FLASH_Type_Program + * @param Address Specifie the address to be programmed. + * @param Data Specifie the data to be programmed + * + * @retval HAL_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Check the parameters */ + assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); + assert_param(IS_FLASH_PROGRAM_ADDRESS(Address)); + + /* Enable End of FLASH Operation and Error source interrupts */ + __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR); + + pFlash.Address = Address; + pFlash.Data = Data; + + if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD) + { + pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMHALFWORD; + /* Program halfword (16-bit) at a specified address. */ + pFlash.DataRemaining = 1U; + } + else if(TypeProgram == FLASH_TYPEPROGRAM_WORD) + { + pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMWORD; + /* Program word (32-bit : 2*16-bit) at a specified address. */ + pFlash.DataRemaining = 2U; + } + else + { + pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMDOUBLEWORD; + /* Program double word (64-bit : 4*16-bit) at a specified address. */ + pFlash.DataRemaining = 4U; + } + + /* Program halfword (16-bit) at a specified address. */ + FLASH_Program_HalfWord(Address, (uint16_t)Data); + + return status; +} + +/** + * @brief This function handles FLASH interrupt request. + * @retval None + */ +void HAL_FLASH_IRQHandler(void) +{ + uint32_t addresstmp = 0U; + + /* Check FLASH operation error flags */ + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) + { + /* Return the faulty address */ + addresstmp = pFlash.Address; + /* Reset address */ + pFlash.Address = 0xFFFFFFFFU; + + /* Save the Error code */ + FLASH_SetErrorCode(); + + /* FLASH error interrupt user callback */ + HAL_FLASH_OperationErrorCallback(addresstmp); + + /* 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); + + /* Process can continue only if no error detected */ + if(pFlash.ProcedureOnGoing != FLASH_PROC_NONE) + { + if(pFlash.ProcedureOnGoing == FLASH_PROC_PAGEERASE) + { + /* Nb of pages to erased can be decreased */ + pFlash.DataRemaining--; + + /* Check if there are still pages to erase */ + if(pFlash.DataRemaining != 0U) + { + addresstmp = pFlash.Address; + /*Indicate user which sector has been erased */ + HAL_FLASH_EndOfOperationCallback(addresstmp); + + /*Increment sector number*/ + addresstmp = pFlash.Address + FLASH_PAGE_SIZE; + pFlash.Address = addresstmp; + + /* If the erase operation is completed, disable the PER Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_PER); + + FLASH_PageErase(addresstmp); + } + else + { + /* No more pages to Erase, user callback can be called. */ + /* Reset Sector and stop Erase pages procedure */ + pFlash.Address = addresstmp = 0xFFFFFFFFU; + pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + /* FLASH EOP interrupt user callback */ + HAL_FLASH_EndOfOperationCallback(addresstmp); + } + } + else if(pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE) + { + /* Operation is completed, disable the MER Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_MER); + + /* MassErase ended. Return the selected bank */ + /* FLASH EOP interrupt user callback */ + HAL_FLASH_EndOfOperationCallback(0U); + + /* Stop Mass Erase procedure*/ + pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + } + else + { + /* Nb of 16-bit data to program can be decreased */ + pFlash.DataRemaining--; + + /* Check if there are still 16-bit data to program */ + if(pFlash.DataRemaining != 0U) + { + /* Increment address to 16-bit */ + pFlash.Address += 2U; + addresstmp = pFlash.Address; + + /* Shift to have next 16-bit data */ + pFlash.Data = (pFlash.Data >> 16U); + + /* Operation is completed, disable the PG Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_PG); + + /*Program halfword (16-bit) at a specified address.*/ + FLASH_Program_HalfWord(addresstmp, (uint16_t)pFlash.Data); + } + else + { + /* Program ended. Return the selected address */ + /* FLASH EOP interrupt user callback */ + if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMHALFWORD) + { + HAL_FLASH_EndOfOperationCallback(pFlash.Address); + } + else if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMWORD) + { + HAL_FLASH_EndOfOperationCallback(pFlash.Address - 2U); + } + else + { + HAL_FLASH_EndOfOperationCallback(pFlash.Address - 6U); + } + + /* Reset Address and stop Program procedure */ + pFlash.Address = 0xFFFFFFFFU; + pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + } + } + } + } + + + if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE) + { + /* Operation is completed, disable the PG, PER and MER Bits */ + CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_PER | FLASH_CR_MER)); + + /* Disable End of FLASH Operation and Error source interrupts */ + __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR); + + /* 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 + * - Mass Erase: No return value expected + * - Pages Erase: Address of the page which has been erased + * (if 0xFFFFFFFF, it means that all the selected pages have been erased) + * - 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 + * - Mass Erase: No return value expected + * - Pages Erase: Address of the page which returned an error + * - 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) != RESET) + { + /* 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) != RESET) + { + status = HAL_ERROR; + } + } + + return status; +} + +/** + * @brief Locks the FLASH control register access + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_FLASH_Lock(void) +{ + /* Set the LOCK Bit to lock the FLASH Registers access */ + SET_BIT(FLASH->CR, FLASH_CR_LOCK); + + return HAL_OK; +} + +/** + * @brief Unlock the FLASH Option Control Registers access. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void) +{ + if (HAL_IS_BIT_CLR(FLASH->CR, FLASH_CR_OPTWRE)) + { + /* Authorizes the Option Byte register programming */ + WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1); + WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2); + } + else + { + return HAL_ERROR; + } + + return HAL_OK; +} + +/** + * @brief Lock the FLASH Option Control Registers access. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_FLASH_OB_Lock(void) +{ + /* Clear the OPTWRE Bit to lock the FLASH Option Byte Registers access */ + CLEAR_BIT(FLASH->CR, FLASH_CR_OPTWRE); + + return HAL_OK; +} + +/** + * @brief Launch the option byte loading. + * @note This function will reset automatically the MCU. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_FLASH_OB_Launch(void) +{ + /* Set the OBL_Launch bit to launch the option byte loading */ + SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH); + + /* Wait for last operation to be completed */ + return(FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE)); +} + +/** + * @} + */ + +/** @defgroup FLASH_Exported_Functions_Group3 Peripheral errors functions + * @brief Peripheral errors functions + * +@verbatim + =============================================================================== + ##### Peripheral Errors functions ##### + =============================================================================== + [..] + This subsection permit 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: + * @ref FLASH_Error_Codes + */ +uint32_t HAL_FLASH_GetError(void) +{ + return pFlash.ErrorCode; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup FLASH_Private_Functions + * @{ + */ + +/** + * @brief Program a half-word (16-bit) at a specified address. + * @param Address specify the address to be programmed. + * @param Data specify the data to be programmed. + * @retval None + */ +static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data) +{ + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Proceed to program the new data */ + SET_BIT(FLASH->CR, FLASH_CR_PG); + + /* Write data in the address */ + *(__IO uint16_t*)Address = Data; +} + +/** + * @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(); + + while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY)) + { + if (Timeout != HAL_MAX_DELAY) + { + if((Timeout == 0U) || ((HAL_GetTick()-tickstart) > Timeout)) + { + return HAL_TIMEOUT; + } + } + } + + /* 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(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) || + __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) + { + /*Save the error code*/ + FLASH_SetErrorCode(); + return HAL_ERROR; + } + + /* There is no error flag set */ + return HAL_OK; +} + + +/** + * @brief Set the specific FLASH error flag. + * @retval None + */ +static void FLASH_SetErrorCode(void) +{ + uint32_t flags = 0U; + + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP; + flags |= FLASH_FLAG_WRPERR; + } + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_PROG; + flags |= FLASH_FLAG_PGERR; + } + /* Clear FLASH error pending bits */ + __HAL_FLASH_CLEAR_FLAG(flags); +} +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_FLASH_MODULE_ENABLED */ + +/** + * @} + */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c new file mode 100644 index 0000000..6abd00d --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c @@ -0,0 +1,980 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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 peripheral: + * + Extended Initialization/de-initialization functions + * + Extended I/O operation functions + * + Extended Peripheral Control functions + * + @verbatim + ============================================================================== + ##### Flash peripheral extended features ##### + ============================================================================== + + ##### How to use this driver ##### + ============================================================================== + [..] This driver provides functions to configure and program the FLASH memory + of all STM32F3xxx devices. It includes + + (++) Set/Reset the write protection + (++) Program the user Option Bytes + (++) Get the Read protection Level + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ +#ifdef HAL_FLASH_MODULE_ENABLED + +/** @addtogroup FLASH + * @{ + */ +/** @addtogroup FLASH_Private_Variables + * @{ + */ +/* Variables used for Erase pages under interruption*/ +extern FLASH_ProcessTypeDef pFlash; +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup FLASHEx FLASHEx + * @brief FLASH HAL Extension module driver + * @{ + */ + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup FLASHEx_Private_Constants FLASHEx Private Constants + * @{ + */ +#define FLASH_POSITION_IWDGSW_BIT (uint32_t)POSITION_VAL(FLASH_OBR_IWDG_SW) +#define FLASH_POSITION_OB_USERDATA0_BIT (uint32_t)POSITION_VAL(FLASH_OBR_DATA0) +#define FLASH_POSITION_OB_USERDATA1_BIT (uint32_t)POSITION_VAL(FLASH_OBR_DATA1) +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/** @defgroup FLASHEx_Private_Macros FLASHEx Private Macros + * @{ + */ +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup FLASHEx_Private_Functions FLASHEx Private Functions + * @{ + */ +/* Erase operations */ +static void FLASH_MassErase(void); +void FLASH_PageErase(uint32_t PageAddress); + +/* Option bytes control */ +static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WriteProtectPage); +static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WriteProtectPage); +static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t ReadProtectLevel); +static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t UserConfig); +static HAL_StatusTypeDef FLASH_OB_ProgramData(uint32_t Address, uint8_t Data); +static uint32_t FLASH_OB_GetWRP(void); +static uint32_t FLASH_OB_GetRDP(void); +static uint8_t FLASH_OB_GetUser(void); + +/** + * @} + */ + +/* Exported functions ---------------------------------------------------------*/ +/** @defgroup FLASHEx_Exported_Functions FLASHEx Exported Functions + * @{ + */ + +/** @defgroup FLASHEx_Exported_Functions_Group1 FLASHEx Memory Erasing functions + * @brief FLASH Memory Erasing functions + * +@verbatim + ============================================================================== + ##### FLASH Erasing Programming functions ##### + ============================================================================== + + [..] The FLASH Memory Erasing functions, includes the following functions: + (+) HAL_FLASHEx_Erase: return only when erase has been done + (+) HAL_FLASHEx_Erase_IT: end of erase is done when HAL_FLASH_EndOfOperationCallback + is called with parameter 0xFFFFFFFF + + [..] Any operation of erase should follow these steps: + (#) Call the HAL_FLASH_Unlock() function to enable the flash control register and + program memory access. + (#) Call the desired function to erase page. + (#) Call the HAL_FLASH_Lock() to disable the flash program memory access + (recommended to protect the FLASH memory against possible unwanted operation). + +@endverbatim + * @{ + */ + + +/** + * @brief Perform a mass erase or erase the specified FLASH memory pages + * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function + * must be called before. + * Call the @ref HAL_FLASH_Lock() to disable the flash memory access + * (recommended to protect the FLASH memory against possible unwanted operation) + * @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_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError) +{ + HAL_StatusTypeDef status = HAL_ERROR; + uint32_t address = 0U; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Check the parameters */ + assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); + + if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) + { + /* Mass Erase requested for Bank1 */ + /* Wait for last operation to be completed */ + if (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) + { + /*Mass erase to be done*/ + FLASH_MassErase(); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + /* If the erase operation is completed, disable the MER Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_MER); + } + } + else + { + /* Page Erase is requested */ + /* Check the parameters */ + assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress)); + assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages)); + + /* Page Erase requested on address located on bank1 */ + /* Wait for last operation to be completed */ + if (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) + { + /*Initialization of PageError variable*/ + *PageError = 0xFFFFFFFFU; + + /* Erase page by page to be done*/ + for(address = pEraseInit->PageAddress; + address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress); + address += FLASH_PAGE_SIZE) + { + FLASH_PageErase(address); + + /* 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); + + if (status != HAL_OK) + { + /* In case of error, stop erase procedure and return the faulty address */ + *PageError = address; + break; + } + } + } + } + + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + + return status; +} + +/** + * @brief Perform a mass erase or erase the specified FLASH memory pages with interrupt enabled + * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function + * must be called before. + * Call the @ref HAL_FLASH_Lock() to disable the flash memory access + * (recommended to protect the FLASH memory against possible unwanted operation) + * @param pEraseInit pointer to an FLASH_EraseInitTypeDef structure that + * contains the configuration information for the erasing. + * + * @retval HAL_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* If procedure already ongoing, reject the next one */ + if (pFlash.ProcedureOnGoing != FLASH_PROC_NONE) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); + + /* Enable End of FLASH Operation and Error source interrupts */ + __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR); + + if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) + { + /*Mass erase to be done*/ + pFlash.ProcedureOnGoing = FLASH_PROC_MASSERASE; + FLASH_MassErase(); + } + else + { + /* Erase by page to be done*/ + + /* Check the parameters */ + assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress)); + assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages)); + + pFlash.ProcedureOnGoing = FLASH_PROC_PAGEERASE; + pFlash.DataRemaining = pEraseInit->NbPages; + pFlash.Address = pEraseInit->PageAddress; + + /*Erase 1st page and wait for IT*/ + FLASH_PageErase(pEraseInit->PageAddress); + } + + return status; +} + +/** + * @} + */ + +/** @defgroup FLASHEx_Exported_Functions_Group2 Option Bytes Programming functions + * @brief Option Bytes Programming functions + * +@verbatim + ============================================================================== + ##### Option Bytes Programming functions ##### + ============================================================================== + [..] + This subsection provides a set of functions allowing to control the FLASH + option bytes operations. + +@endverbatim + * @{ + */ + +/** + * @brief Erases the FLASH option bytes. + * @note This functions erases all option bytes except the Read protection (RDP). + * The function @ref HAL_FLASH_Unlock() should be called before to unlock the FLASH interface + * The function @ref HAL_FLASH_OB_Unlock() should be called before to unlock the options bytes + * The function @ref HAL_FLASH_OB_Launch() should be called after to force the reload of the options bytes + * (system reset will occur) + * @retval HAL status + */ + +HAL_StatusTypeDef HAL_FLASHEx_OBErase(void) +{ + uint8_t rdptmp = OB_RDP_LEVEL_0; + HAL_StatusTypeDef status = HAL_ERROR; + + /* Get the actual read protection Option Byte value */ + rdptmp = FLASH_OB_GetRDP(); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* If the previous operation is completed, proceed to erase the option bytes */ + SET_BIT(FLASH->CR, FLASH_CR_OPTER); + SET_BIT(FLASH->CR, FLASH_CR_STRT); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + /* If the erase operation is completed, disable the OPTER Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_OPTER); + + if(status == HAL_OK) + { + /* Restore the last read protection Option Byte value */ + status = FLASH_OB_RDP_LevelConfig(rdptmp); + } + } + + /* Return the erase status */ + return status; +} + +/** + * @brief Program option bytes + * @note The function @ref HAL_FLASH_Unlock() should be called before to unlock the FLASH interface + * The function @ref HAL_FLASH_OB_Unlock() should be called before to unlock the options bytes + * The function @ref HAL_FLASH_OB_Launch() should be called after to force the reload of the options bytes + * (system reset will occur) + * + * @param pOBInit pointer to an FLASH_OBInitStruct structure that + * contains the configuration information for the programming. + * + * @retval HAL_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit) +{ + HAL_StatusTypeDef status = HAL_ERROR; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Check the parameters */ + assert_param(IS_OPTIONBYTE(pOBInit->OptionType)); + + /* Write protection configuration */ + if((pOBInit->OptionType & OPTIONBYTE_WRP) == OPTIONBYTE_WRP) + { + assert_param(IS_WRPSTATE(pOBInit->WRPState)); + if (pOBInit->WRPState == OB_WRPSTATE_ENABLE) + { + /* Enable of Write protection on the selected page */ + status = FLASH_OB_EnableWRP(pOBInit->WRPPage); + } + else + { + /* Disable of Write protection on the selected page */ + status = FLASH_OB_DisableWRP(pOBInit->WRPPage); + } + if (status != HAL_OK) + { + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + return status; + } + } + + /* Read protection configuration */ + if((pOBInit->OptionType & OPTIONBYTE_RDP) == OPTIONBYTE_RDP) + { + status = FLASH_OB_RDP_LevelConfig(pOBInit->RDPLevel); + if (status != HAL_OK) + { + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + return status; + } + } + + /* USER configuration */ + if((pOBInit->OptionType & OPTIONBYTE_USER) == OPTIONBYTE_USER) + { + status = FLASH_OB_UserConfig(pOBInit->USERConfig); + if (status != HAL_OK) + { + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + return status; + } + } + + /* DATA configuration*/ + if((pOBInit->OptionType & OPTIONBYTE_DATA) == OPTIONBYTE_DATA) + { + status = FLASH_OB_ProgramData(pOBInit->DATAAddress, pOBInit->DATAData); + if (status != HAL_OK) + { + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + return status; + } + } + + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + + return status; +} + +/** + * @brief Get the Option byte configuration + * @param pOBInit pointer to an FLASH_OBInitStruct structure that + * contains the configuration information for the programming. + * + * @retval None + */ +void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit) +{ + pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER; + + /*Get WRP*/ + pOBInit->WRPPage = FLASH_OB_GetWRP(); + + /*Get RDP Level*/ + pOBInit->RDPLevel = FLASH_OB_GetRDP(); + + /*Get USER*/ + pOBInit->USERConfig = FLASH_OB_GetUser(); +} + +/** + * @brief Get the Option byte user data + * @param DATAAdress Address of the option byte DATA + * This parameter can be one of the following values: + * @arg @ref OB_DATA_ADDRESS_DATA0 + * @arg @ref OB_DATA_ADDRESS_DATA1 + * @retval Value programmed in USER data + */ +uint32_t HAL_FLASHEx_OBGetUserData(uint32_t DATAAdress) +{ + uint32_t value = 0U; + + if (DATAAdress == OB_DATA_ADDRESS_DATA0) + { + /* Get value programmed in OB USER Data0 */ + value = READ_BIT(FLASH->OBR, FLASH_OBR_DATA0) >> FLASH_POSITION_OB_USERDATA0_BIT; + } + else + { + /* Get value programmed in OB USER Data1 */ + value = READ_BIT(FLASH->OBR, FLASH_OBR_DATA1) >> FLASH_POSITION_OB_USERDATA1_BIT; + } + + return value; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup FLASHEx_Private_Functions + * @{ + */ + +/** + * @brief Full erase of FLASH memory Bank + * + * @retval None + */ +static void FLASH_MassErase(void) +{ + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Only bank1 will be erased*/ + SET_BIT(FLASH->CR, FLASH_CR_MER); + SET_BIT(FLASH->CR, FLASH_CR_STRT); +} + +/** + * @brief Enable the write protection of the desired pages + * @note An option byte erase is done automatically in this function. + * @note When the memory read protection level is selected (RDP level = 1), + * it is not possible to program or erase the flash page i if + * debug features are connected or boot code is executed in RAM, even if nWRPi = 1 + * + * @param WriteProtectPage specifies the page(s) to be write protected. + * The value of this parameter depend on device used within the same series + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WriteProtectPage) +{ + HAL_StatusTypeDef status = HAL_OK; + uint16_t WRP0_Data = 0xFFFFU; +#if defined(OB_WRP1_WRP1) + uint16_t WRP1_Data = 0xFFFFU; +#endif /* OB_WRP1_WRP1 */ +#if defined(OB_WRP2_WRP2) + uint16_t WRP2_Data = 0xFFFFU; +#endif /* OB_WRP2_WRP2 */ +#if defined(OB_WRP3_WRP3) + uint16_t WRP3_Data = 0xFFFFU; +#endif /* OB_WRP3_WRP3 */ + + /* Check the parameters */ + assert_param(IS_OB_WRP(WriteProtectPage)); + + /* Get current write protected pages and the new pages to be protected ******/ + WriteProtectPage = (uint32_t)(~((~FLASH_OB_GetWRP()) | WriteProtectPage)); + +#if defined(OB_WRP_PAGES0TO15MASK) + WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO15MASK); +#endif /* OB_WRP_PAGES0TO31MASK */ + +#if defined(OB_WRP_PAGES16TO31MASK) + WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES16TO31MASK) >> 8U); +#endif /* OB_WRP_PAGES32TO63MASK */ + +#if defined(OB_WRP_PAGES32TO47MASK) + WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO47MASK) >> 16U); +#endif /* OB_WRP_PAGES32TO47MASK */ + +#if defined(OB_WRP_PAGES48TO127MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO127MASK) >> 24U); +#elif defined(OB_WRP_PAGES48TO255MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO255MASK) >> 24U); +#endif /* OB_WRP_PAGES48TO63MASK */ + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* To be able to write again option byte, need to perform a option byte erase */ + status = HAL_FLASHEx_OBErase(); + if (status == HAL_OK) + { + /* Enable write protection */ + SET_BIT(FLASH->CR, FLASH_CR_OPTPG); + +#if defined(OB_WRP0_WRP0) + if(WRP0_Data != 0xFFU) + { + OB->WRP0 &= WRP0_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } +#endif /* OB_WRP0_WRP0 */ + +#if defined(OB_WRP1_WRP1) + if((status == HAL_OK) && (WRP1_Data != 0xFFU)) + { + OB->WRP1 &= WRP1_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } +#endif /* OB_WRP1_WRP1 */ + +#if defined(OB_WRP2_WRP2) + if((status == HAL_OK) && (WRP2_Data != 0xFFU)) + { + OB->WRP2 &= WRP2_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } +#endif /* OB_WRP2_WRP2 */ + +#if defined(OB_WRP3_WRP3) + if((status == HAL_OK) && (WRP3_Data != 0xFFU)) + { + OB->WRP3 &= WRP3_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } +#endif /* OB_WRP3_WRP3 */ + + /* if the program operation is completed, disable the OPTPG Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG); + } + } + + return status; +} + +/** + * @brief Disable the write protection of the desired pages + * @note An option byte erase is done automatically in this function. + * @note When the memory read protection level is selected (RDP level = 1), + * it is not possible to program or erase the flash page i if + * debug features are connected or boot code is executed in RAM, even if nWRPi = 1 + * + * @param WriteProtectPage specifies the page(s) to be write unprotected. + * The value of this parameter depend on device used within the same series + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WriteProtectPage) +{ + HAL_StatusTypeDef status = HAL_OK; + uint16_t WRP0_Data = 0xFFFFU; +#if defined(OB_WRP1_WRP1) + uint16_t WRP1_Data = 0xFFFFU; +#endif /* OB_WRP1_WRP1 */ +#if defined(OB_WRP2_WRP2) + uint16_t WRP2_Data = 0xFFFFU; +#endif /* OB_WRP2_WRP2 */ +#if defined(OB_WRP3_WRP3) + uint16_t WRP3_Data = 0xFFFFU; +#endif /* OB_WRP3_WRP3 */ + + /* Check the parameters */ + assert_param(IS_OB_WRP(WriteProtectPage)); + + /* Get current write protected pages and the new pages to be unprotected ******/ + WriteProtectPage = (FLASH_OB_GetWRP() | WriteProtectPage); + +#if defined(OB_WRP_PAGES0TO15MASK) + WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO15MASK); +#endif /* OB_WRP_PAGES0TO31MASK */ + +#if defined(OB_WRP_PAGES16TO31MASK) + WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES16TO31MASK) >> 8U); +#endif /* OB_WRP_PAGES32TO63MASK */ + +#if defined(OB_WRP_PAGES32TO47MASK) + WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO47MASK) >> 16U); +#endif /* OB_WRP_PAGES32TO47MASK */ + +#if defined(OB_WRP_PAGES48TO127MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO127MASK) >> 24U); +#elif defined(OB_WRP_PAGES48TO255MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO255MASK) >> 24U); +#endif /* OB_WRP_PAGES48TO63MASK */ + + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* To be able to write again option byte, need to perform a option byte erase */ + status = HAL_FLASHEx_OBErase(); + if (status == HAL_OK) + { + SET_BIT(FLASH->CR, FLASH_CR_OPTPG); + +#if defined(OB_WRP0_WRP0) + if(WRP0_Data != 0xFFU) + { + OB->WRP0 = WRP0_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } +#endif /* OB_WRP0_WRP0 */ + +#if defined(OB_WRP1_WRP1) + if((status == HAL_OK) && (WRP1_Data != 0xFFU)) + { + OB->WRP1 = WRP1_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } +#endif /* OB_WRP1_WRP1 */ + +#if defined(OB_WRP2_WRP2) + if((status == HAL_OK) && (WRP2_Data != 0xFFU)) + { + OB->WRP2 = WRP2_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } +#endif /* OB_WRP2_WRP2 */ + +#if defined(OB_WRP3_WRP3) + if((status == HAL_OK) && (WRP3_Data != 0xFFU)) + { + OB->WRP3 = WRP3_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + } +#endif /* OB_WRP3_WRP3 */ + + /* if the program operation is completed, disable the OPTPG Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG); + } + } + return status; +} + +/** + * @brief Set the read protection level. + * @param ReadProtectLevel specifies the read protection level. + * This parameter can be one of the following values: + * @arg @ref OB_RDP_LEVEL_0 No protection + * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory + * @arg @ref OB_RDP_LEVEL_2 Full chip protection + * @note Warning: When enabling OB_RDP level 2 it's no more possible to go back to level 1 or 0 + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t ReadProtectLevel) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_OB_RDP_LEVEL(ReadProtectLevel)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* If the previous operation is completed, proceed to erase the option bytes */ + SET_BIT(FLASH->CR, FLASH_CR_OPTER); + SET_BIT(FLASH->CR, FLASH_CR_STRT); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + /* If the erase operation is completed, disable the OPTER Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_OPTER); + + if(status == HAL_OK) + { + /* Enable the Option Bytes Programming operation */ + SET_BIT(FLASH->CR, FLASH_CR_OPTPG); + + WRITE_REG(OB->RDP, ReadProtectLevel); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + /* if the program operation is completed, disable the OPTPG Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG); + } + } + + return status; +} + +/** + * @brief Program the FLASH User Option Byte. + * @note Programming of the OB should be performed only after an erase (otherwise PGERR occurs) + * @param UserConfig The FLASH User Option Bytes values: IWDG_SW(Bit0), RST_STOP(Bit1), RST_STDBY(Bit2), nBOOT1(Bit4), + * VDDA_Analog_Monitoring(Bit5) and SRAM_Parity_Enable(Bit6). + * And SDADC12_VDD_MONITOR(Bit7) for STM32F373 or STM32F378 . + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t UserConfig) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_OB_IWDG_SOURCE((UserConfig&OB_IWDG_SW))); + assert_param(IS_OB_STOP_SOURCE((UserConfig&OB_STOP_NO_RST))); + assert_param(IS_OB_STDBY_SOURCE((UserConfig&OB_STDBY_NO_RST))); + assert_param(IS_OB_BOOT1((UserConfig&OB_BOOT1_SET))); + assert_param(IS_OB_VDDA_ANALOG((UserConfig&OB_VDDA_ANALOG_ON))); + assert_param(IS_OB_SRAM_PARITY((UserConfig&OB_SRAM_PARITY_RESET))); +#if defined(FLASH_OBR_SDADC12_VDD_MONITOR) + assert_param(IS_OB_SDACD_VDD_MONITOR((UserConfig&OB_SDACD_VDD_MONITOR_SET))); +#endif /* FLASH_OBR_SDADC12_VDD_MONITOR */ + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Enable the Option Bytes Programming operation */ + SET_BIT(FLASH->CR, FLASH_CR_OPTPG); + +#if defined(FLASH_OBR_SDADC12_VDD_MONITOR) + OB->USER = (UserConfig | 0x08U); +#else + OB->USER = (UserConfig | 0x88U); +#endif + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + /* if the program operation is completed, disable the OPTPG Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG); + } + + return status; +} + +/** + * @brief Programs a half word at a specified Option Byte Data address. + * @note The function @ref HAL_FLASH_Unlock() should be called before to unlock the FLASH interface + * The function @ref HAL_FLASH_OB_Unlock() should be called before to unlock the options bytes + * The function @ref HAL_FLASH_OB_Launch() should be called after to force the reload of the options bytes + * (system reset will occur) + * Programming of the OB should be performed only after an erase (otherwise PGERR occurs) + * @param Address specifies the address to be programmed. + * This parameter can be 0x1FFFF804 or 0x1FFFF806. + * @param Data specifies the data to be programmed. + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_OB_ProgramData(uint32_t Address, uint8_t Data) +{ + HAL_StatusTypeDef status = HAL_ERROR; + + /* Check the parameters */ + assert_param(IS_OB_DATA_ADDRESS(Address)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Enables the Option Bytes Programming operation */ + SET_BIT(FLASH->CR, FLASH_CR_OPTPG); + *(__IO uint16_t*)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); + + /* If the program operation is completed, disable the OPTPG Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG); + } + /* Return the Option Byte Data Program Status */ + return status; +} + +/** + * @brief Return the FLASH Write Protection Option Bytes value. + * @retval The FLASH Write Protection Option Bytes value + */ +static uint32_t FLASH_OB_GetWRP(void) +{ + /* Return the FLASH write protection Register value */ + return (uint32_t)(READ_REG(FLASH->WRPR)); +} + +/** + * @brief Returns the FLASH Read Protection level. + * @retval FLASH RDP level + * This parameter can be one of the following values: + * @arg @ref OB_RDP_LEVEL_0 No protection + * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory + * @arg @ref OB_RDP_LEVEL_2 Full chip protection + */ +static uint32_t FLASH_OB_GetRDP(void) +{ + uint32_t tmp_reg = 0U; + + /* Read RDP level bits */ +#if defined(FLASH_OBR_RDPRT) + tmp_reg = READ_BIT(FLASH->OBR, FLASH_OBR_RDPRT); +#elif defined(FLASH_OBR_LEVEL1_PROT) + tmp_reg = READ_BIT(FLASH->OBR, (FLASH_OBR_LEVEL1_PROT | FLASH_OBR_LEVEL2_PROT)); +#endif /* FLASH_OBR_RDPRT */ + +#if defined(FLASH_OBR_RDPRT) + if (tmp_reg == FLASH_OBR_RDPRT_2) +#elif defined(FLASH_OBR_LEVEL1_PROT) + if (tmp_reg == FLASH_OBR_LEVEL2_PROT) +#endif /* FLASH_OBR_RDPRT */ + { + return OB_RDP_LEVEL_2; + } + else if (tmp_reg == 0U) + { + return OB_RDP_LEVEL_0; + } + else + { + return OB_RDP_LEVEL_1; + } +} + +/** + * @brief Return the FLASH User Option Byte value. + * @retval The FLASH User Option Bytes values: IWDG_SW(Bit0), RST_STOP(Bit1), RST_STDBY(Bit2), nBOOT1(Bit4), + * VDDA_Analog_Monitoring(Bit5) and SRAM_Parity_Enable(Bit6). + * And SDADC12_VDD_MONITOR(Bit7) for STM32F373 or STM32F378 . + */ +static uint8_t FLASH_OB_GetUser(void) +{ + /* Return the User Option Byte */ + return (uint8_t)((READ_REG(FLASH->OBR) & FLASH_OBR_USER) >> FLASH_POSITION_IWDGSW_BIT); +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup FLASH + * @{ + */ + +/** @addtogroup FLASH_Private_Functions + * @{ + */ + +/** + * @brief Erase the specified FLASH memory page + * @param PageAddress FLASH page to erase + * The value of this parameter depend on device used within the same series + * + * @retval None + */ +void FLASH_PageErase(uint32_t PageAddress) +{ + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Proceed to erase the page */ + SET_BIT(FLASH->CR, FLASH_CR_PER); + WRITE_REG(FLASH->AR, PageAddress); + SET_BIT(FLASH->CR, FLASH_CR_STRT); +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_FLASH_MODULE_ENABLED */ +/** + * @} + */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c new file mode 100644 index 0000000..8b95993 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c @@ -0,0 +1,541 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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) 2016 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 23 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 PC15U, 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 "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @defgroup GPIO GPIO + * @brief GPIO HAL module driver + * @{ + */ + +/** 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: + * HAL_GPIO_Init + * HAL_GPIO_DeInit + */ + +#ifdef HAL_GPIO_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private defines -----------------------------------------------------------*/ +/** @addtogroup GPIO_Private_Constants + * @{ + */ +#define GPIO_NUMBER (16U) +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +/** @defgroup GPIO_Private_Macros GPIO Private Macros + * @{ + */ +/** + * @} + */ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup GPIO_Exported_Functions 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..F) to select the GPIO peripheral for STM32F3 family devices + * @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) != 0x00u) + { + /* 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_OSPEEDER_OSPEEDR0 << (position * 2u)); + temp |= (GPIO_Init->Speed << (position * 2u)); + GPIOx->OSPEEDR = temp; + + /* Configure the IO Output Type */ + temp = GPIOx->OTYPER; + temp &= ~(GPIO_OTYPER_OT_0 << 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_PUPDR0 << (position * 2u)); + temp |= ((GPIO_Init->Pull) << (position * 2u)); + GPIOx->PUPDR = temp; + } + + /*--------------------- GPIO Mode Configuration ------------------------*/ + /* 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_MODER0 << (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->RTSR; + temp &= ~(iocurrent); + if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u) + { + temp |= iocurrent; + } + EXTI->RTSR = temp; + + temp = EXTI->FTSR; + temp &= ~(iocurrent); + if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u) + { + temp |= iocurrent; + } + EXTI->FTSR = temp; + + temp = EXTI->EMR; + temp &= ~(iocurrent); + if((GPIO_Init->Mode & EXTI_EVT) != 0x00u) + { + temp |= iocurrent; + } + EXTI->EMR = temp; + + /* Clear EXTI line configuration */ + temp = EXTI->IMR; + temp &= ~(iocurrent); + if((GPIO_Init->Mode & EXTI_IT) != 0x00u) + { + temp |= iocurrent; + } + EXTI->IMR = temp; + } + } + + position++; + } +} + +/** + * @brief De-initialize the GPIOx peripheral registers to their default reset values. + * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F30X device or STM32F37X device + * @param GPIO_Pin specifies the port bit to be written. + * This parameter can be one 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) != 0x00u) + { + /* 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->IMR &= ~((uint32_t)iocurrent); + EXTI->EMR &= ~((uint32_t)iocurrent); + + /* Clear Rising Falling edge configuration */ + EXTI->FTSR &= ~((uint32_t)iocurrent); + EXTI->RTSR &= ~((uint32_t)iocurrent); + + /* Configure the External Interrupt or event for the current IO */ + tmp = 0x0FuL << (4u * (position & 0x03u)); + SYSCFG->EXTICR[position >> 2u] &= ~tmp; + } + + /*------------------------- GPIO Mode Configuration --------------------*/ + /* Configure IO Direction in Input Floating Mode */ + GPIOx->MODER &= ~(GPIO_MODER_MODER0 << (position * 2u)); + + /* Configure the default Alternate Function in current IO */ + GPIOx->AFR[position >> 3u] &= ~(0xFu << ((uint32_t)(position & 0x07u) * 4u)) ; + + /* Deactivate the Pull-up and Pull-down resistor for the current IO */ + GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPDR0 << (position * 2u)); + + /* Configure the default value IO Output Type */ + GPIOx->OTYPER &= ~(GPIO_OTYPER_OT_0 << position) ; + + /* Configure the default value for IO Speed */ + GPIOx->OSPEEDR &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2u)); + } + + position++; + } +} + +/** + * @} + */ + +/** @defgroup GPIO_Exported_Functions_Group2 IO operation functions + * @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..F) to select the GPIO peripheral for STM32F3 family + * @param GPIO_Pin specifies the port bit to read. + * This parameter can be GPIO_PIN_x where x can be (0..15). + * @retval The input port pin value. + */ +GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) +{ + GPIO_PinState bitstatus; + + /* Check the parameters */ + assert_param(IS_GPIO_PIN(GPIO_Pin)); + + if((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET) + { + 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..F) to select the GPIO peripheral for STM32F3 family + * @param GPIO_Pin specifies the port bit to be written. + * This parameter can be one 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..F) to select the GPIO peripheral for STM32F3 family + * @param GPIO_Pin specifies the pin to be toggled. + * @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..F) to select the GPIO peripheral for STM32F3 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[15U-0] */ + GPIOx->LCKR = tmp; + /* Reset LCKx bit(s): LCKK='0' + LCK[15U-0] */ + GPIOx->LCKR = GPIO_Pin; + /* Set LCKx bit(s): LCKK='1' + LCK[15U-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/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c new file mode 100644 index 0000000..7fdfa73 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c @@ -0,0 +1,7548 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_i2c.c + * @author MCD Application Team + * @brief I2C HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Inter Integrated Circuit (I2C) peripheral: + * + Initialization and de-initialization functions + * + IO operation functions + * + Peripheral State and Errors functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 I2C HAL driver can be used as follows: + + (#) Declare a I2C_HandleTypeDef handle structure, for example: + I2C_HandleTypeDef hi2c; + + (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API: + (##) Enable the I2Cx interface clock + (##) I2C pins configuration + (+++) Enable the clock for the I2C GPIOs + (+++) Configure I2C pins as alternate function open-drain + (##) NVIC configuration if you need to use interrupt process + (+++) Configure the I2Cx interrupt priority + (+++) Enable the NVIC I2C IRQ Channel + (##) DMA Configuration if you need to use DMA process + (+++) Declare a DMA_HandleTypeDef handle structure for + the transmit or receive channel + (+++) Enable the DMAx interface clock using + (+++) Configure the DMA handle parameters + (+++) Configure the DMA Tx or Rx channel + (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle + (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on + the DMA Tx or Rx channel + + (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addressing mode, + Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure. + + (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level Hardware + (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API. + + (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceReady() + + (#) For I2C IO and IO MEM operations, three operation modes are available within this driver : + + *** Polling mode IO operation *** + ================================= + [..] + (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit() + (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive() + (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit() + (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive() + + *** Polling mode IO MEM operation *** + ===================================== + [..] + (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_Write() + (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_Read() + + + *** Interrupt mode IO operation *** + =================================== + [..] + (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Transmit_IT() + (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() + (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receive_IT() + (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() + (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmit_IT() + (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() + (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_IT() + (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() + (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can + add their own code by customization of function pointer HAL_I2C_ErrorCallback() + (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() + (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() + (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. + This action will inform Master to generate a Stop condition to discard the communication. + + + *** Interrupt mode or DMA mode IO sequential operation *** + ========================================================== + [..] + (@) These interfaces allow to manage a sequential transfer with a repeated start condition + when a direction change during transfer + [..] + (+) A specific option field manage the different steps of a sequential transfer + (+) Option field values are defined through I2C_XFEROPTIONS and are listed below: + (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfaces in + no sequential mode + (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start condition, address + and data to transfer without a final stop condition + (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a sequence with + start condition, address and data to transfer without a final stop condition, + an then permit a call the same master sequential interface several times + (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit_IT() + or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_DMA()) + (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart condition, address + and with new data to transfer if the direction change or manage only the new data to + transfer + if no direction change and without a final stop condition in both cases + (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart condition, address + and with new data to transfer if the direction change or manage only the new data to + transfer + if no direction change and with a final stop condition in both cases + (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a restart condition + after several call of the same master sequential interface several times + (link with option I2C_FIRST_AND_NEXT_FRAME). + Usage can, transfer several bytes one by one using + HAL_I2C_Master_Seq_Transmit_IT + or HAL_I2C_Master_Seq_Receive_IT + or HAL_I2C_Master_Seq_Transmit_DMA + or HAL_I2C_Master_Seq_Receive_DMA + with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME. + Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit or + Receive sequence permit to call the opposite interface Receive or Transmit + without stopping the communication and so generate a restart condition. + (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart condition after + each call of the same master sequential + interface. + Usage can, transfer several bytes one by one with a restart with slave address between + each bytes using + HAL_I2C_Master_Seq_Transmit_IT + or HAL_I2C_Master_Seq_Receive_IT + or HAL_I2C_Master_Seq_Transmit_DMA + or HAL_I2C_Master_Seq_Receive_DMA + with option I2C_FIRST_FRAME then I2C_OTHER_FRAME. + Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to help automatic + generation of STOP condition. + + (+) Different sequential I2C interfaces are listed below: + (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using + HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA() + (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is executed and + users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() + (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using + HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA() + (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() + (++) Abort a master or memory IT or DMA I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() + (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() + (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT() + HAL_I2C_DisableListen_IT() + (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can + add their own code to check the Address Match Code and the transmission direction request by master + (Write/Read). + (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_ListenCpltCallback() + (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using + HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA() + (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is executed and + users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() + (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using + HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA() + (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() + (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can + add their own code by customization of function pointer HAL_I2C_ErrorCallback() + (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. + This action will inform Master to generate a Stop condition to discard the communication. + + *** Interrupt mode IO MEM operation *** + ======================================= + [..] + (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address using + HAL_I2C_Mem_Write_IT() + (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() + (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address using + HAL_I2C_Mem_Read_IT() + (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() + (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can + add their own code by customization of function pointer HAL_I2C_ErrorCallback() + + *** DMA mode IO operation *** + ============================== + [..] + (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using + HAL_I2C_Master_Transmit_DMA() + (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() + (+) Receive in master mode an amount of data in non-blocking mode (DMA) using + HAL_I2C_Master_Receive_DMA() + (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() + (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using + HAL_I2C_Slave_Transmit_DMA() + (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() + (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using + HAL_I2C_Slave_Receive_DMA() + (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() + (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can + add their own code by customization of function pointer HAL_I2C_ErrorCallback() + (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() + (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() + (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. + This action will inform Master to generate a Stop condition to discard the communication. + + *** DMA mode IO MEM operation *** + ================================= + [..] + (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using + HAL_I2C_Mem_Write_DMA() + (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() + (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using + HAL_I2C_Mem_Read_DMA() + (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can + add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() + (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can + add their own code by customization of function pointer HAL_I2C_ErrorCallback() + + + *** I2C HAL driver macros list *** + ================================== + [..] + Below the list of most used macros in I2C HAL driver. + + (+) __HAL_I2C_ENABLE: Enable the I2C peripheral + (+) __HAL_I2C_DISABLE: Disable the I2C peripheral + (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode + (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not + (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag + (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt + (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt + + *** Callback registration *** + ============================================= + [..] + The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1 + allows the user to configure dynamically the driver callbacks. + Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback() + to register an interrupt callback. + [..] + Function HAL_I2C_RegisterCallback() allows to register following callbacks: + (+) MasterTxCpltCallback : callback for Master transmission end of transfer. + (+) MasterRxCpltCallback : callback for Master reception end of transfer. + (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. + (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. + (+) ListenCpltCallback : callback for end of listen mode. + (+) MemTxCpltCallback : callback for Memory transmission end of transfer. + (+) MemRxCpltCallback : callback for Memory reception end of transfer. + (+) ErrorCallback : callback for error detection. + (+) AbortCpltCallback : callback for abort completion process. + (+) MspInitCallback : callback for Msp Init. + (+) MspDeInitCallback : callback for Msp DeInit. + This function takes as parameters the HAL peripheral handle, the Callback ID + and a pointer to the user callback function. + [..] + For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCallback(). + [..] + Use function HAL_I2C_UnRegisterCallback to reset a callback to the default + weak function. + HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle, + and the Callback ID. + This function allows to reset following callbacks: + (+) MasterTxCpltCallback : callback for Master transmission end of transfer. + (+) MasterRxCpltCallback : callback for Master reception end of transfer. + (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. + (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. + (+) ListenCpltCallback : callback for end of listen mode. + (+) MemTxCpltCallback : callback for Memory transmission end of transfer. + (+) MemRxCpltCallback : callback for Memory reception end of transfer. + (+) ErrorCallback : callback for error detection. + (+) AbortCpltCallback : callback for abort completion process. + (+) MspInitCallback : callback for Msp Init. + (+) MspDeInitCallback : callback for Msp DeInit. + [..] + For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback(). + [..] + By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET + all callbacks are set to the corresponding weak functions: + examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback(). + Exception done for MspInit and MspDeInit functions that are + reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when + these callbacks are null (not registered beforehand). + If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit() + keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. + [..] + Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only. + Exception done MspInit/MspDeInit functions that can be registered/unregistered + in HAL_I2C_STATE_READY or HAL_I2C_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 HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit() + or HAL_I2C_Init() function. + [..] + When the compilation flag USE_HAL_I2C_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. + + [..] + (@) You can refer to the I2C HAL driver header file for more useful macros + + @endverbatim + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @defgroup I2C I2C + * @brief I2C HAL module driver + * @{ + */ + +#ifdef HAL_I2C_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ + +/** @defgroup I2C_Private_Define I2C Private Define + * @{ + */ +#define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ +#define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ +#define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ +#define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ +#define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ +#define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ +#define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ +#define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ +#define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ +#define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ + +#define MAX_NBYTE_SIZE 255U +#define SLAVE_ADDR_SHIFT 7U +#define SLAVE_ADDR_MSK 0x06U + +/* Private define for @ref PreviousState usage */ +#define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \ + (uint32_t)HAL_I2C_STATE_BUSY_RX) & \ + (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY)))) +/*!< Mask State define, keep only RX and TX bits */ +#define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) +/*!< Default Value */ +#define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ + (uint32_t)HAL_I2C_MODE_MASTER)) +/*!< Master Busy TX, combinaison of State LSB and Mode enum */ +#define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ + (uint32_t)HAL_I2C_MODE_MASTER)) +/*!< Master Busy RX, combinaison of State LSB and Mode enum */ +#define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ + (uint32_t)HAL_I2C_MODE_SLAVE)) +/*!< Slave Busy TX, combinaison of State LSB and Mode enum */ +#define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ + (uint32_t)HAL_I2C_MODE_SLAVE)) +/*!< Slave Busy RX, combinaison of State LSB and Mode enum */ +#define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ + (uint32_t)HAL_I2C_MODE_MEM)) +/*!< Memory Busy TX, combinaison of State LSB and Mode enum */ +#define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ + (uint32_t)HAL_I2C_MODE_MEM)) +/*!< Memory Busy RX, combinaison of State LSB and Mode enum */ + + +/* Private define to centralize the enable/disable of Interrupts */ +#define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with + @ref I2C_XFER_LISTEN_IT */ +#define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with + @ref I2C_XFER_LISTEN_IT */ +#define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2C_XFER_TX_IT + and @ref I2C_XFER_RX_IT */ + +#define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of global Error + and NACK treatment */ +#define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evenement */ +#define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of NBYTE */ + +/* Private define Sequential Transfer Options default/reset value */ +#define I2C_NO_OPTION_FRAME (0xFFFF0000U) +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @addtogroup I2C_Private_Macro + * @{ + */ +/* Macro to get remaining data to transfer on DMA side */ +#define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__) +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ + +/** @defgroup I2C_Private_Functions I2C Private Functions + * @{ + */ +/* Private functions to handle DMA transfer */ +static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); +static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); +static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); +static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); +static void I2C_DMAError(DMA_HandleTypeDef *hdma); +static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); + + +/* Private functions to handle IT transfer */ +static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); +static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); +static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); +static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); +static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); +static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); +static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); + +/* Private functions to handle IT transfer */ +static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, + uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, + uint32_t Tickstart); +static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, + uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, + uint32_t Tickstart); + +/* Private functions for I2C transfer IRQ handler */ +static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources); +static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources); +static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources); +static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources); +static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources); +static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources); + +/* Private functions to handle flags during polling transfer */ +static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagStatus Status, + uint32_t Timeout, uint32_t Tickstart); +static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, + uint32_t Tickstart); +static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, + uint32_t Tickstart); +static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, + uint32_t Tickstart); +static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, + uint32_t Tickstart); + +/* Private functions to centralize the enable/disable of Interrupts */ +static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); +static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); + +/* Private function to treat different error callback */ +static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c); + +/* Private function to flush TXDR register */ +static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); + +/* Private function to handle start, restart or stop a transfer */ +static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t Mode, + uint32_t Request); + +/* Private function to Convert Specific options */ +static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup I2C_Exported_Functions I2C Exported Functions + * @{ + */ + +/** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and Configuration functions + * +@verbatim + =============================================================================== + ##### Initialization and de-initialization functions ##### + =============================================================================== + [..] This subsection provides a set of functions allowing to initialize and + deinitialize the I2Cx peripheral: + + (+) User must Implement HAL_I2C_MspInit() function in which he configures + all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). + + (+) Call the function HAL_I2C_Init() to configure the selected device with + the selected configuration: + (++) Clock Timing + (++) Own Address 1 + (++) Addressing mode (Master, Slave) + (++) Dual Addressing mode + (++) Own Address 2 + (++) Own Address 2 Mask + (++) General call mode + (++) Nostretch mode + + (+) Call the function HAL_I2C_DeInit() to restore the default configuration + of the selected I2Cx peripheral. + +@endverbatim + * @{ + */ + +/** + * @brief Initializes the I2C according to the specified parameters + * in the I2C_InitTypeDef and initialize the associated handle. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) +{ + /* Check the I2C handle allocation */ + if (hi2c == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); + assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); + assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); + assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); + assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); + assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); + assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); + + if (hi2c->State == HAL_I2C_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + hi2c->Lock = HAL_UNLOCKED; + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + /* Init the I2C Callback settings */ + hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback */ + hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback */ + hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback */ + hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback */ + hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback */ + hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback */ + hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback */ + hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback */ + hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ + hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ + + if (hi2c->MspInitCallback == NULL) + { + hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ + } + + /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ + hi2c->MspInitCallback(hi2c); +#else + /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ + HAL_I2C_MspInit(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + + hi2c->State = HAL_I2C_STATE_BUSY; + + /* Disable the selected I2C peripheral */ + __HAL_I2C_DISABLE(hi2c); + + /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ + /* Configure I2Cx: Frequency range */ + hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; + + /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ + /* Disable Own Address1 before set the Own Address1 configuration */ + hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; + + /* Configure I2Cx: Own Address1 and ack own address1 mode */ + if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) + { + hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); + } + else /* I2C_ADDRESSINGMODE_10BIT */ + { + hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); + } + + /*---------------------------- I2Cx CR2 Configuration ----------------------*/ + /* Configure I2Cx: Addressing Master mode */ + if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) + { + SET_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); + } + else + { + /* Clear the I2C ADD10 bit */ + CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); + } + /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ + hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); + + /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ + /* Disable Own Address2 before set the Own Address2 configuration */ + hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; + + /* Configure I2Cx: Dual mode and Own Address2 */ + hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ + (hi2c->Init.OwnAddress2Masks << 8)); + + /*---------------------------- I2Cx CR1 Configuration ----------------------*/ + /* Configure I2Cx: Generalcall and NoStretch mode */ + hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); + + /* Enable the selected I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->Mode = HAL_I2C_MODE_NONE; + + return HAL_OK; +} + +/** + * @brief DeInitialize the I2C peripheral. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) +{ + /* Check the I2C handle allocation */ + if (hi2c == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + + hi2c->State = HAL_I2C_STATE_BUSY; + + /* Disable the I2C Peripheral Clock */ + __HAL_I2C_DISABLE(hi2c); + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + if (hi2c->MspDeInitCallback == NULL) + { + hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ + } + + /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + hi2c->MspDeInitCallback(hi2c); +#else + /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + HAL_I2C_MspDeInit(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + hi2c->State = HAL_I2C_STATE_RESET; + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Release Lock */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; +} + +/** + * @brief Initialize the I2C MSP. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitialize the I2C MSP. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MspDeInit could be implemented in the user file + */ +} + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +/** + * @brief Register a User I2C Callback + * To be used instead of the weak predefined callback + * @note The HAL_I2C_RegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_RESET + * to register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param CallbackID ID of the callback to be registered + * This parameter can be one of the following values: + * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID + * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID + * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID + * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID + * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID + * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID + * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID + * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID + * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID + * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID + * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID + * @param pCallback pointer to the Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID, + pI2C_CallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + if (HAL_I2C_STATE_READY == hi2c->State) + { + switch (CallbackID) + { + case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : + hi2c->MasterTxCpltCallback = pCallback; + break; + + case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : + hi2c->MasterRxCpltCallback = pCallback; + break; + + case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : + hi2c->SlaveTxCpltCallback = pCallback; + break; + + case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : + hi2c->SlaveRxCpltCallback = pCallback; + break; + + case HAL_I2C_LISTEN_COMPLETE_CB_ID : + hi2c->ListenCpltCallback = pCallback; + break; + + case HAL_I2C_MEM_TX_COMPLETE_CB_ID : + hi2c->MemTxCpltCallback = pCallback; + break; + + case HAL_I2C_MEM_RX_COMPLETE_CB_ID : + hi2c->MemRxCpltCallback = pCallback; + break; + + case HAL_I2C_ERROR_CB_ID : + hi2c->ErrorCallback = pCallback; + break; + + case HAL_I2C_ABORT_CB_ID : + hi2c->AbortCpltCallback = pCallback; + break; + + case HAL_I2C_MSPINIT_CB_ID : + hi2c->MspInitCallback = pCallback; + break; + + case HAL_I2C_MSPDEINIT_CB_ID : + hi2c->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (HAL_I2C_STATE_RESET == hi2c->State) + { + switch (CallbackID) + { + case HAL_I2C_MSPINIT_CB_ID : + hi2c->MspInitCallback = pCallback; + break; + + case HAL_I2C_MSPDEINIT_CB_ID : + hi2c->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + return status; +} + +/** + * @brief Unregister an I2C Callback + * I2C callback is redirected to the weak predefined callback + * @note The HAL_I2C_UnRegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_RESET + * to un-register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param CallbackID ID of the callback to be unregistered + * This parameter can be one of the following values: + * This parameter can be one of the following values: + * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID + * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID + * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID + * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID + * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID + * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID + * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID + * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID + * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID + * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID + * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (HAL_I2C_STATE_READY == hi2c->State) + { + switch (CallbackID) + { + case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : + hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback */ + break; + + case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : + hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback */ + break; + + case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : + hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback */ + break; + + case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : + hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback */ + break; + + case HAL_I2C_LISTEN_COMPLETE_CB_ID : + hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback */ + break; + + case HAL_I2C_MEM_TX_COMPLETE_CB_ID : + hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback */ + break; + + case HAL_I2C_MEM_RX_COMPLETE_CB_ID : + hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback */ + break; + + case HAL_I2C_ERROR_CB_ID : + hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback */ + break; + + case HAL_I2C_ABORT_CB_ID : + hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ + break; + + case HAL_I2C_MSPINIT_CB_ID : + hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ + break; + + case HAL_I2C_MSPDEINIT_CB_ID : + hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ + break; + + default : + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (HAL_I2C_STATE_RESET == hi2c->State) + { + switch (CallbackID) + { + case HAL_I2C_MSPINIT_CB_ID : + hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ + break; + + case HAL_I2C_MSPDEINIT_CB_ID : + hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ + break; + + default : + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + return status; +} + +/** + * @brief Register the Slave Address Match I2C Callback + * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pCallback pointer to the Address Match Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + if (HAL_I2C_STATE_READY == hi2c->State) + { + hi2c->AddrCallback = pCallback; + } + else + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + return status; +} + +/** + * @brief UnRegister the Slave Address Match I2C Callback + * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined callback + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (HAL_I2C_STATE_READY == hi2c->State) + { + hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ + } + else + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + return status; +} + +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + +/** + * @} + */ + +/** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions + * @brief Data transfers functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to manage the I2C data + transfers. + + (#) There are two modes of transfer: + (++) Blocking mode : The communication is performed in the polling mode. + The status of all data processing is returned by the same function + after finishing transfer. + (++) No-Blocking mode : The communication is performed using Interrupts + or DMA. These functions return the status of the transfer startup. + The end of the data processing will be indicated through the + dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when + using DMA mode. + + (#) Blocking mode functions are : + (++) HAL_I2C_Master_Transmit() + (++) HAL_I2C_Master_Receive() + (++) HAL_I2C_Slave_Transmit() + (++) HAL_I2C_Slave_Receive() + (++) HAL_I2C_Mem_Write() + (++) HAL_I2C_Mem_Read() + (++) HAL_I2C_IsDeviceReady() + + (#) No-Blocking mode functions with Interrupt are : + (++) HAL_I2C_Master_Transmit_IT() + (++) HAL_I2C_Master_Receive_IT() + (++) HAL_I2C_Slave_Transmit_IT() + (++) HAL_I2C_Slave_Receive_IT() + (++) HAL_I2C_Mem_Write_IT() + (++) HAL_I2C_Mem_Read_IT() + (++) HAL_I2C_Master_Seq_Transmit_IT() + (++) HAL_I2C_Master_Seq_Receive_IT() + (++) HAL_I2C_Slave_Seq_Transmit_IT() + (++) HAL_I2C_Slave_Seq_Receive_IT() + (++) HAL_I2C_EnableListen_IT() + (++) HAL_I2C_DisableListen_IT() + (++) HAL_I2C_Master_Abort_IT() + + (#) No-Blocking mode functions with DMA are : + (++) HAL_I2C_Master_Transmit_DMA() + (++) HAL_I2C_Master_Receive_DMA() + (++) HAL_I2C_Slave_Transmit_DMA() + (++) HAL_I2C_Slave_Receive_DMA() + (++) HAL_I2C_Mem_Write_DMA() + (++) HAL_I2C_Mem_Read_DMA() + (++) HAL_I2C_Master_Seq_Transmit_DMA() + (++) HAL_I2C_Master_Seq_Receive_DMA() + (++) HAL_I2C_Slave_Seq_Transmit_DMA() + (++) HAL_I2C_Slave_Seq_Receive_DMA() + + (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: + (++) HAL_I2C_MasterTxCpltCallback() + (++) HAL_I2C_MasterRxCpltCallback() + (++) HAL_I2C_SlaveTxCpltCallback() + (++) HAL_I2C_SlaveRxCpltCallback() + (++) HAL_I2C_MemTxCpltCallback() + (++) HAL_I2C_MemRxCpltCallback() + (++) HAL_I2C_AddrCallback() + (++) HAL_I2C_ListenCpltCallback() + (++) HAL_I2C_ErrorCallback() + (++) HAL_I2C_AbortCpltCallback() + +@endverbatim + * @{ + */ + +/** + * @brief Transmits in master mode an amount of data in blocking mode. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t Timeout) +{ + uint32_t tickstart; + uint32_t xfermode; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferISR = NULL; + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + xfermode = I2C_RELOAD_MODE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + xfermode = I2C_AUTOEND_MODE; + } + + if (hi2c->XferSize > 0U) + { + /* Preload TX register */ + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferCount--; + hi2c->XferSize--; + + /* Send Slave Address */ + /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, + I2C_GENERATE_START_WRITE); + } + else + { + /* Send Slave Address */ + /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, + I2C_GENERATE_START_WRITE); + } + + while (hi2c->XferCount > 0U) + { + /* Wait until TXIS flag is set */ + if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferCount--; + hi2c->XferSize--; + + if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) + { + /* Wait until TCR flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + I2C_NO_STARTSTOP); + } + else + { + hi2c->XferSize = hi2c->XferCount; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + I2C_NO_STARTSTOP); + } + } + } + + /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ + /* Wait until STOPF flag is set */ + if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear STOP Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + + /* Clear Configuration Register 2 */ + I2C_RESET_CR2(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receives in master mode an amount of data in blocking mode. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t Timeout) +{ + uint32_t tickstart; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferISR = NULL; + + /* Send Slave Address */ + /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = 1U; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + I2C_GENERATE_START_READ); + } + else + { + hi2c->XferSize = hi2c->XferCount; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + I2C_GENERATE_START_READ); + } + + while (hi2c->XferCount > 0U) + { + /* Wait until RXNE flag is set */ + if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Read data from RXDR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferSize--; + hi2c->XferCount--; + + if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) + { + /* Wait until TCR flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + I2C_NO_STARTSTOP); + } + else + { + hi2c->XferSize = hi2c->XferCount; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + I2C_NO_STARTSTOP); + } + } + } + + /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ + /* Wait until STOPF flag is set */ + if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear STOP Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + + /* Clear Configuration Register 2 */ + I2C_RESET_CR2(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Transmits in slave mode an amount of data in blocking mode. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t Timeout) +{ + uint32_t tickstart; + uint16_t tmpXferCount; + HAL_StatusTypeDef error; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferISR = NULL; + + /* Enable Address Acknowledge */ + hi2c->Instance->CR2 &= ~I2C_CR2_NACK; + + /* Preload TX data if no stretch enable */ + if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) + { + /* Preload TX register */ + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferCount--; + } + + /* Wait until ADDR flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); + + /* If 10bit addressing mode is selected */ + if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) + { + /* Wait until ADDR flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); + } + + /* Wait until DIR flag is set Transmitter mode */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + + return HAL_ERROR; + } + + while (hi2c->XferCount > 0U) + { + /* Wait until TXIS flag is set */ + if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + return HAL_ERROR; + } + + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferCount--; + } + + /* Wait until AF flag is set */ + error = I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart); + + if (error != HAL_OK) + { + /* Check that I2C transfer finished */ + /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ + /* Mean XferCount == 0 */ + + tmpXferCount = hi2c->XferCount; + if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) + { + /* Reset ErrorCode to NONE */ + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + } + else + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + return HAL_ERROR; + } + } + else + { + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + + /* Clear AF flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Wait until STOP flag is set */ + if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + + return HAL_ERROR; + } + + /* Clear STOP flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + } + + /* Wait until BUSY flag is reset */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + return HAL_ERROR; + } + + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive in slave mode an amount of data in blocking mode + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t Timeout) +{ + uint32_t tickstart; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferISR = NULL; + + /* Enable Address Acknowledge */ + hi2c->Instance->CR2 &= ~I2C_CR2_NACK; + + /* Wait until ADDR flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); + + /* Wait until DIR flag is reset Receiver mode */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + return HAL_ERROR; + } + + while (hi2c->XferCount > 0U) + { + /* Wait until RXNE flag is set */ + if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + + /* Store Last receive data if any */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) + { + /* Read data from RXDR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferCount--; + hi2c->XferSize--; + } + + return HAL_ERROR; + } + + /* Read data from RXDR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferCount--; + hi2c->XferSize--; + } + + /* Wait until STOP flag is set */ + if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + return HAL_ERROR; + } + + /* Clear STOP flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + + /* Wait until BUSY flag is reset */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + return HAL_ERROR; + } + + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size) +{ + uint32_t xfermode; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Master_ISR_IT; + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + xfermode = I2C_RELOAD_MODE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + xfermode = I2C_AUTOEND_MODE; + } + + /* Send Slave Address */ + /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ + if (hi2c->XferSize > 0U) + { + /* Preload TX register */ + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferCount--; + hi2c->XferSize--; + + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, + I2C_GENERATE_START_WRITE); + } + else + { + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, + I2C_GENERATE_START_WRITE); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable ERR, TC, STOP, NACK, TXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size) +{ + uint32_t xfermode; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Master_ISR_IT; + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = 1U; + xfermode = I2C_RELOAD_MODE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + xfermode = I2C_AUTOEND_MODE; + } + + /* Send Slave Address */ + /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable ERR, TC, STOP, NACK, RXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) +{ + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Enable Address Acknowledge */ + hi2c->Instance->CR2 &= ~I2C_CR2_NACK; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Slave_ISR_IT; + + /* Preload TX data if no stretch enable */ + if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) + { + /* Preload TX register */ + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferCount--; + hi2c->XferSize--; + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable ERR, TC, STOP, NACK, TXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) +{ + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Enable Address Acknowledge */ + hi2c->Instance->CR2 &= ~I2C_CR2_NACK; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Slave_ISR_IT; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable ERR, TC, STOP, NACK, RXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Transmit in master mode an amount of data in non-blocking mode with DMA + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size) +{ + uint32_t xfermode; + HAL_StatusTypeDef dmaxferstatus; + uint32_t sizetoxfer = 0U; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Master_ISR_DMA; + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + xfermode = I2C_RELOAD_MODE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + xfermode = I2C_AUTOEND_MODE; + } + + if (hi2c->XferSize > 0U) + { + /* Preload TX register */ + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + sizetoxfer = hi2c->XferSize; + hi2c->XferCount--; + hi2c->XferSize--; + } + + if (hi2c->XferSize > 0U) + { + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; + + /* Set the DMA error callback */ + hi2c->hdmatx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmatx->XferHalfCpltCallback = NULL; + hi2c->hdmatx->XferAbortCallback = NULL; + + /* Enable the DMA channel */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, + (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Send Slave Address */ + /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), + xfermode, I2C_GENERATE_START_WRITE); + + /* Update XferCount value */ + hi2c->XferCount -= hi2c->XferSize; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR and NACK interrupts */ + I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); + + /* Enable DMA Request */ + hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + /* Update Transfer ISR function pointer */ + hi2c->XferISR = I2C_Master_ISR_IT; + + /* Send Slave Address */ + /* Set NBYTES to write and generate START condition */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, I2C_AUTOEND_MODE, + I2C_GENERATE_START_WRITE); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR, TC, STOP, NACK, TXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive in master mode an amount of data in non-blocking mode with DMA + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size) +{ + uint32_t xfermode; + HAL_StatusTypeDef dmaxferstatus; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Master_ISR_DMA; + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = 1U; + xfermode = I2C_RELOAD_MODE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + xfermode = I2C_AUTOEND_MODE; + } + + if (hi2c->XferSize > 0U) + { + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; + + /* Set the DMA error callback */ + hi2c->hdmarx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmarx->XferHalfCpltCallback = NULL; + hi2c->hdmarx->XferAbortCallback = NULL; + + /* Enable the DMA channel */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pData, + hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Send Slave Address */ + /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ); + + /* Update XferCount value */ + hi2c->XferCount -= hi2c->XferSize; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR and NACK interrupts */ + I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); + + /* Enable DMA Request */ + hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + /* Update Transfer ISR function pointer */ + hi2c->XferISR = I2C_Master_ISR_IT; + + /* Send Slave Address */ + /* Set NBYTES to read and generate START condition */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + I2C_GENERATE_START_READ); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR, TC, STOP, NACK, RXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) +{ + HAL_StatusTypeDef dmaxferstatus; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Slave_ISR_DMA; + + /* Preload TX data if no stretch enable */ + if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) + { + /* Preload TX register */ + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferCount--; + hi2c->XferSize--; + } + + if (hi2c->XferCount != 0U) + { + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; + + /* Set the DMA error callback */ + hi2c->hdmatx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmatx->XferHalfCpltCallback = NULL; + hi2c->hdmatx->XferAbortCallback = NULL; + + /* Enable the DMA channel */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, + (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, + hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Enable Address Acknowledge */ + hi2c->Instance->CR2 &= ~I2C_CR2_NACK; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR, STOP, NACK, ADDR interrupts */ + I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); + + /* Enable DMA Request */ + hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + /* Enable Address Acknowledge */ + hi2c->Instance->CR2 &= ~I2C_CR2_NACK; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR, STOP, NACK, ADDR interrupts */ + I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive in slave mode an amount of data in non-blocking mode with DMA + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) +{ + HAL_StatusTypeDef dmaxferstatus; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Slave_ISR_DMA; + + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; + + /* Set the DMA error callback */ + hi2c->hdmarx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmarx->XferHalfCpltCallback = NULL; + hi2c->hdmarx->XferAbortCallback = NULL; + + /* Enable the DMA channel */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pData, + hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Enable Address Acknowledge */ + hi2c->Instance->CR2 &= ~I2C_CR2_NACK; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR, STOP, NACK, ADDR interrupts */ + I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); + + /* Enable DMA Request */ + hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Write an amount of data in blocking mode to a specific memory address + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + uint32_t tickstart; + + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferISR = NULL; + + /* Send Slave Address and Memory Address */ + if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) + { + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + return HAL_ERROR; + } + + /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); + } + else + { + hi2c->XferSize = hi2c->XferCount; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); + } + + do + { + /* Wait until TXIS flag is set */ + if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferCount--; + hi2c->XferSize--; + + if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) + { + /* Wait until TCR flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + I2C_NO_STARTSTOP); + } + else + { + hi2c->XferSize = hi2c->XferCount; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + I2C_NO_STARTSTOP); + } + } + + } while (hi2c->XferCount > 0U); + + /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ + /* Wait until STOPF flag is reset */ + if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear STOP Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + + /* Clear Configuration Register 2 */ + I2C_RESET_CR2(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Read an amount of data in blocking mode from a specific memory address + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + uint32_t tickstart; + + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferISR = NULL; + + /* Send Slave Address and Memory Address */ + if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) + { + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + return HAL_ERROR; + } + + /* Send Slave Address */ + /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = 1U; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, + I2C_GENERATE_START_READ); + } + else + { + hi2c->XferSize = hi2c->XferCount; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + I2C_GENERATE_START_READ); + } + + do + { + /* Wait until RXNE flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Read data from RXDR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferSize--; + hi2c->XferCount--; + + if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) + { + /* Wait until TCR flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = 1U; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, + I2C_NO_STARTSTOP); + } + else + { + hi2c->XferSize = hi2c->XferCount; + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + I2C_NO_STARTSTOP); + } + } + } while (hi2c->XferCount > 0U); + + /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ + /* Wait until STOPF flag is reset */ + if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear STOP Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + + /* Clear Configuration Register 2 */ + I2C_RESET_CR2(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} +/** + * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory address + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +{ + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->XferSize = 0U; + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Mem_ISR_IT; + hi2c->Devaddress = DevAddress; + + /* If Memory address size is 8Bit */ + if (MemAddSize == I2C_MEMADD_SIZE_8BIT) + { + /* Prefetch Memory Address */ + hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); + + /* Reset Memaddress content */ + hi2c->Memaddress = 0xFFFFFFFFU; + } + /* If Memory address size is 16Bit */ + else + { + /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ + hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); + + /* Prepare Memaddress buffer for LSB part */ + hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); + } + /* Send Slave Address and Memory Address */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRITE); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable ERR, TC, STOP, NACK, TXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory address + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +{ + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Mem_ISR_IT; + hi2c->Devaddress = DevAddress; + + /* If Memory address size is 8Bit */ + if (MemAddSize == I2C_MEMADD_SIZE_8BIT) + { + /* Prefetch Memory Address */ + hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); + + /* Reset Memaddress content */ + hi2c->Memaddress = 0xFFFFFFFFU; + } + /* If Memory address size is 16Bit */ + else + { + /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ + hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); + + /* Prepare Memaddress buffer for LSB part */ + hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); + } + /* Send Slave Address and Memory Address */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WRITE); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable ERR, TC, STOP, NACK, TXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +{ + HAL_StatusTypeDef dmaxferstatus; + + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Mem_ISR_DMA; + hi2c->Devaddress = DevAddress; + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + } + + /* If Memory address size is 8Bit */ + if (MemAddSize == I2C_MEMADD_SIZE_8BIT) + { + /* Prefetch Memory Address */ + hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); + + /* Reset Memaddress content */ + hi2c->Memaddress = 0xFFFFFFFFU; + } + /* If Memory address size is 16Bit */ + else + { + /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ + hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); + + /* Prepare Memaddress buffer for LSB part */ + hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); + } + + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; + + /* Set the DMA error callback */ + hi2c->hdmatx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmatx->XferHalfCpltCallback = NULL; + hi2c->hdmatx->XferAbortCallback = NULL; + + /* Enable the DMA channel */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TXDR, + hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Send Slave Address and Memory Address */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRITE); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR, TC, STOP, NACK, TXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be read + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, + uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +{ + HAL_StatusTypeDef dmaxferstatus; + + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferISR = I2C_Mem_ISR_DMA; + hi2c->Devaddress = DevAddress; + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + } + + /* If Memory address size is 8Bit */ + if (MemAddSize == I2C_MEMADD_SIZE_8BIT) + { + /* Prefetch Memory Address */ + hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); + + /* Reset Memaddress content */ + hi2c->Memaddress = 0xFFFFFFFFU; + } + /* If Memory address size is 16Bit */ + else + { + /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ + hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); + + /* Prepare Memaddress buffer for LSB part */ + hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); + } + + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; + + /* Set the DMA error callback */ + hi2c->hdmarx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmarx->XferHalfCpltCallback = NULL; + hi2c->hdmarx->XferAbortCallback = NULL; + + /* Enable the DMA channel */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pData, + hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Send Slave Address and Memory Address */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WRITE); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR, TC, STOP, NACK, TXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Checks if target device is ready for communication. + * @note This function is used with Memory devices + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param Trials Number of trials + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Trials, + uint32_t Timeout) +{ + uint32_t tickstart; + + __IO uint32_t I2C_Trials = 0UL; + + FlagStatus tmp1; + FlagStatus tmp2; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + do + { + /* Generate Start */ + hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); + + /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ + /* Wait until STOPF flag is set or a NACK flag is set*/ + tickstart = HAL_GetTick(); + + tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); + tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); + + while ((tmp1 == RESET) && (tmp2 == RESET)) + { + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + + tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); + tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); + } + + /* Check if the NACKF flag has not been set */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) + { + /* Wait until STOPF flag is reset */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear STOP Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + + /* Device is ready */ + hi2c->State = HAL_I2C_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + /* Wait until STOPF flag is reset */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Clear STOP Flag, auto generated with autoend*/ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + } + + /* Increment Trials */ + I2C_Trials++; + } while (I2C_Trials < Trials); + + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Interrupt. + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t XferOptions) +{ + uint32_t xfermode; + uint32_t xferrequest = I2C_GENERATE_START_WRITE; + uint32_t sizetoxfer = 0U; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = XferOptions; + hi2c->XferISR = I2C_Master_ISR_IT; + + /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + xfermode = I2C_RELOAD_MODE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + xfermode = hi2c->XferOptions; + } + + if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ + (XferOptions == I2C_FIRST_AND_LAST_FRAME))) + { + /* Preload TX register */ + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + sizetoxfer = hi2c->XferSize; + hi2c->XferCount--; + hi2c->XferSize--; + } + + /* If transfer direction not change and there is no request to start another frame, + do not generate Restart Condition */ + /* Mean Previous state is same as current state */ + if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ + (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + { + xferrequest = I2C_NO_STARTSTOP; + } + else + { + /* Convert OTHER_xxx XferOptions if any */ + I2C_ConvertOtherXferOptions(hi2c); + + /* Update xfermode accordingly if no reload is necessary */ + if (hi2c->XferCount <= MAX_NBYTE_SIZE) + { + xfermode = hi2c->XferOptions; + } + } + + /* Send Slave Address and set NBYTES to write */ + if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) + { + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); + } + else + { + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR, TC, STOP, NACK, TXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t XferOptions) +{ + uint32_t xfermode; + uint32_t xferrequest = I2C_GENERATE_START_WRITE; + HAL_StatusTypeDef dmaxferstatus; + uint32_t sizetoxfer = 0U; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = XferOptions; + hi2c->XferISR = I2C_Master_ISR_DMA; + + /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + xfermode = I2C_RELOAD_MODE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + xfermode = hi2c->XferOptions; + } + + if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ + (XferOptions == I2C_FIRST_AND_LAST_FRAME))) + { + /* Preload TX register */ + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + sizetoxfer = hi2c->XferSize; + hi2c->XferCount--; + hi2c->XferSize--; + } + + /* If transfer direction not change and there is no request to start another frame, + do not generate Restart Condition */ + /* Mean Previous state is same as current state */ + if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ + (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + { + xferrequest = I2C_NO_STARTSTOP; + } + else + { + /* Convert OTHER_xxx XferOptions if any */ + I2C_ConvertOtherXferOptions(hi2c); + + /* Update xfermode accordingly if no reload is necessary */ + if (hi2c->XferCount <= MAX_NBYTE_SIZE) + { + xfermode = hi2c->XferOptions; + } + } + + if (hi2c->XferSize > 0U) + { + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; + + /* Set the DMA error callback */ + hi2c->hdmatx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmatx->XferHalfCpltCallback = NULL; + hi2c->hdmatx->XferAbortCallback = NULL; + + /* Enable the DMA channel */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, + (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Send Slave Address and set NBYTES to write */ + if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) + { + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); + } + else + { + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); + } + + /* Update XferCount value */ + hi2c->XferCount -= hi2c->XferSize; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR and NACK interrupts */ + I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); + + /* Enable DMA Request */ + hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + /* Update Transfer ISR function pointer */ + hi2c->XferISR = I2C_Master_ISR_IT; + + /* Send Slave Address */ + /* Set NBYTES to write and generate START condition */ + if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) + { + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); + } + else + { + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR, TC, STOP, NACK, TXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Interrupt + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t XferOptions) +{ + uint32_t xfermode; + uint32_t xferrequest = I2C_GENERATE_START_READ; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = XferOptions; + hi2c->XferISR = I2C_Master_ISR_IT; + + /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + xfermode = I2C_RELOAD_MODE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + xfermode = hi2c->XferOptions; + } + + /* If transfer direction not change and there is no request to start another frame, + do not generate Restart Condition */ + /* Mean Previous state is same as current state */ + if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ + (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + { + xferrequest = I2C_NO_STARTSTOP; + } + else + { + /* Convert OTHER_xxx XferOptions if any */ + I2C_ConvertOtherXferOptions(hi2c); + + /* Update xfermode accordingly if no reload is necessary */ + if (hi2c->XferCount <= MAX_NBYTE_SIZE) + { + xfermode = hi2c->XferOptions; + } + } + + /* Send Slave Address and set NBYTES to read */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, + uint16_t Size, uint32_t XferOptions) +{ + uint32_t xfermode; + uint32_t xferrequest = I2C_GENERATE_START_READ; + HAL_StatusTypeDef dmaxferstatus; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferOptions = XferOptions; + hi2c->XferISR = I2C_Master_ISR_DMA; + + /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + xfermode = I2C_RELOAD_MODE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + xfermode = hi2c->XferOptions; + } + + /* If transfer direction not change and there is no request to start another frame, + do not generate Restart Condition */ + /* Mean Previous state is same as current state */ + if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ + (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) + { + xferrequest = I2C_NO_STARTSTOP; + } + else + { + /* Convert OTHER_xxx XferOptions if any */ + I2C_ConvertOtherXferOptions(hi2c); + + /* Update xfermode accordingly if no reload is necessary */ + if (hi2c->XferCount <= MAX_NBYTE_SIZE) + { + xfermode = hi2c->XferOptions; + } + } + + if (hi2c->XferSize > 0U) + { + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; + + /* Set the DMA error callback */ + hi2c->hdmarx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmarx->XferHalfCpltCallback = NULL; + hi2c->hdmarx->XferAbortCallback = NULL; + + /* Enable the DMA channel */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pData, + hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Send Slave Address and set NBYTES to read */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); + + /* Update XferCount value */ + hi2c->XferCount -= hi2c->XferSize; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR and NACK interrupts */ + I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); + + /* Enable DMA Request */ + hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + /* Update Transfer ISR function pointer */ + hi2c->XferISR = I2C_Master_ISR_IT; + + /* Send Slave Address */ + /* Set NBYTES to read and generate START condition */ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, + I2C_GENERATE_START_READ); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR, TC, STOP, NACK, RXI interrupt */ + /* possible to enable all of these */ + /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | + I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ + I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode with Interrupt + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t XferOptions) +{ + /* Declaration of tmp to prevent undefined behavior of volatile usage */ + FlagStatus tmp; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + + /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ + /* and then toggle the HAL slave RX state to TX state */ + if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) + { + /* Disable associated Interrupts */ + I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); + + /* Abort DMA Xfer if any */ + if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) + { + hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; + + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); + } + } + } + } + + hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Enable Address Acknowledge */ + hi2c->Instance->CR2 &= ~I2C_CR2_NACK; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + hi2c->XferISR = I2C_Slave_ISR_IT; + + tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); + if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) + { + /* Clear ADDR flag after prepare the transfer parameters */ + /* This action will generate an acknowledge to the Master */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* REnable ADDR interrupt */ + I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); + + return HAL_OK; + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode with DMA + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t XferOptions) +{ + /* Declaration of tmp to prevent undefined behavior of volatile usage */ + FlagStatus tmp; + HAL_StatusTypeDef dmaxferstatus; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); + + /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ + /* and then toggle the HAL slave RX state to TX state */ + if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) + { + /* Disable associated Interrupts */ + I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); + + if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) + { + /* Abort DMA Xfer if any */ + if (hi2c->hdmarx != NULL) + { + hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; + + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); + } + } + } + } + else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) + { + if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) + { + hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; + + /* Abort DMA Xfer if any */ + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA TX */ + if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); + } + } + } + } + else + { + /* Nothing to do */ + } + + hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Enable Address Acknowledge */ + hi2c->Instance->CR2 &= ~I2C_CR2_NACK; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + hi2c->XferISR = I2C_Slave_ISR_DMA; + + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; + + /* Set the DMA error callback */ + hi2c->hdmatx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmatx->XferHalfCpltCallback = NULL; + hi2c->hdmatx->XferAbortCallback = NULL; + + /* Enable the DMA channel */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TXDR, + hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Update XferCount value */ + hi2c->XferCount -= hi2c->XferSize; + + /* Reset XferSize */ + hi2c->XferSize = 0; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); + if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) + { + /* Clear ADDR flag after prepare the transfer parameters */ + /* This action will generate an acknowledge to the Master */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Enable DMA Request */ + hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR, STOP, NACK, ADDR interrupts */ + I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); + + return HAL_OK; + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with Interrupt + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t XferOptions) +{ + /* Declaration of tmp to prevent undefined behavior of volatile usage */ + FlagStatus tmp; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + + /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ + /* and then toggle the HAL slave TX state to RX state */ + if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) + { + /* Disable associated Interrupts */ + I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); + + if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) + { + hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; + + /* Abort DMA Xfer if any */ + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA TX */ + if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); + } + } + } + } + + hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Enable Address Acknowledge */ + hi2c->Instance->CR2 &= ~I2C_CR2_NACK; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + hi2c->XferISR = I2C_Slave_ISR_IT; + + tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); + if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) + { + /* Clear ADDR flag after prepare the transfer parameters */ + /* This action will generate an acknowledge to the Master */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* REnable ADDR interrupt */ + I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); + + return HAL_OK; + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with DMA + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, + uint32_t XferOptions) +{ + /* Declaration of tmp to prevent undefined behavior of volatile usage */ + FlagStatus tmp; + HAL_StatusTypeDef dmaxferstatus; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + if ((pData == NULL) || (Size == 0U)) + { + hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; + return HAL_ERROR; + } + + /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ + /* and then toggle the HAL slave TX state to RX state */ + if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) + { + /* Disable associated Interrupts */ + I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); + + if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) + { + /* Abort DMA Xfer if any */ + if (hi2c->hdmatx != NULL) + { + hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; + + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA TX */ + if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); + } + } + } + } + else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) + { + if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) + { + hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; + + /* Abort DMA Xfer if any */ + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); + } + } + } + } + else + { + /* Nothing to do */ + } + + hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Enable Address Acknowledge */ + hi2c->Instance->CR2 &= ~I2C_CR2_NACK; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + hi2c->XferISR = I2C_Slave_ISR_DMA; + + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; + + /* Set the DMA error callback */ + hi2c->hdmarx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmarx->XferHalfCpltCallback = NULL; + hi2c->hdmarx->XferAbortCallback = NULL; + + /* Enable the DMA channel */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, + (uint32_t)pData, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Update XferCount value */ + hi2c->XferCount -= hi2c->XferSize; + + /* Reset XferSize */ + hi2c->XferSize = 0; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); + if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) + { + /* Clear ADDR flag after prepare the transfer parameters */ + /* This action will generate an acknowledge to the Master */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Enable DMA Request */ + hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* REnable ADDR interrupt */ + I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); + + return HAL_OK; + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief Enable the Address listen mode with Interrupt. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) +{ + if (hi2c->State == HAL_I2C_STATE_READY) + { + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->XferISR = I2C_Slave_ISR_IT; + + /* Enable the Address Match interrupt */ + I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Disable the Address listen mode with Interrupt. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of tmp to prevent undefined behavior of volatile usage */ + uint32_t tmp; + + /* Disable Address listen mode only if a transfer is not ongoing */ + if (hi2c->State == HAL_I2C_STATE_LISTEN) + { + tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; + hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->XferISR = NULL; + + /* Disable the Address Match interrupt */ + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Abort a master or memory I2C IT or DMA process communication with Interrupt. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) +{ + HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; + + if ((tmp_mode == HAL_I2C_MODE_MASTER) || (tmp_mode == HAL_I2C_MODE_MEM)) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Disable Interrupts and Store Previous state */ + if (hi2c->State == HAL_I2C_STATE_BUSY_TX) + { + I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; + } + else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) + { + I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + } + else + { + /* Do nothing */ + } + + /* Set State at HAL_I2C_STATE_ABORT */ + hi2c->State = HAL_I2C_STATE_ABORT; + + /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ + /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfer */ + I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); + + return HAL_OK; + } + else + { + /* Wrong usage of abort function */ + /* This function should be used only in case of abort monitored by master device */ + return HAL_ERROR; + } +} + +/** + * @} + */ + +/** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks + * @{ + */ + +/** + * @brief This function handles I2C event interrupt request. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */ +{ + /* Get current IT Flags and IT sources value */ + uint32_t itflags = READ_REG(hi2c->Instance->ISR); + uint32_t itsources = READ_REG(hi2c->Instance->CR1); + + /* I2C events treatment -------------------------------------*/ + if (hi2c->XferISR != NULL) + { + hi2c->XferISR(hi2c, itflags, itsources); + } +} + +/** + * @brief This function handles I2C error interrupt request. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) +{ + uint32_t itflags = READ_REG(hi2c->Instance->ISR); + uint32_t itsources = READ_REG(hi2c->Instance->CR1); + uint32_t tmperror; + + /* I2C Bus error interrupt occurred ------------------------------------*/ + if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ + (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + { + hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; + + /* Clear BERR flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); + } + + /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ + if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ + (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + { + hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; + + /* Clear OVR flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); + } + + /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ + if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ + (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) + { + hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; + + /* Clear ARLO flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); + } + + /* Store current volatile hi2c->ErrorCode, misra rule */ + tmperror = hi2c->ErrorCode; + + /* Call the Error Callback in case of Error detected */ + if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_NONE) + { + I2C_ITError(hi2c, tmperror); + } +} + +/** + * @brief Master Tx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MasterTxCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Master Rx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MasterRxCpltCallback could be implemented in the user file + */ +} + +/** @brief Slave Tx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Slave Rx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Slave Address Match callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFERDIRECTION + * @param AddrMatchCode Address Match Code + * @retval None + */ +__weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + UNUSED(TransferDirection); + UNUSED(AddrMatchCode); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_AddrCallback() could be implemented in the user file + */ +} + +/** + * @brief Listen Complete callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_ListenCpltCallback() could be implemented in the user file + */ +} + +/** + * @brief Memory Tx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MemTxCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Memory Rx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MemRxCpltCallback could be implemented in the user file + */ +} + +/** + * @brief I2C error callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_ErrorCallback could be implemented in the user file + */ +} + +/** + * @brief I2C abort callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_AbortCpltCallback could be implemented in the user file + */ +} + +/** + * @} + */ + +/** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions + * @brief Peripheral State, Mode and Error functions + * +@verbatim + =============================================================================== + ##### Peripheral State, Mode and Error functions ##### + =============================================================================== + [..] + This subsection permit to get in run-time the status of the peripheral + and the data flow. + +@endverbatim + * @{ + */ + +/** + * @brief Return the I2C handle state. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL state + */ +HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c) +{ + /* Return I2C handle state */ + return hi2c->State; +} + +/** + * @brief Returns the I2C Master, Slave, Memory or no mode. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval HAL mode + */ +HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c) +{ + return hi2c->Mode; +} + +/** + * @brief Return the I2C error code. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval I2C Error Code + */ +uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c) +{ + return hi2c->ErrorCode; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup I2C_Private_Functions + * @{ + */ + +/** + * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param ITFlags Interrupt flags to handle. + * @param ITSources Interrupt sources enabled. + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources) +{ + uint16_t devaddress; + uint32_t tmpITFlags = ITFlags; + + /* Process Locked */ + __HAL_LOCK(hi2c); + + if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + { + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Set corresponding Error Code */ + /* No need to generate STOP, it is automatically done */ + /* Error callback will be send during stop flag treatment */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) + { + /* Remove RXNE flag on temporary variable as read done */ + tmpITFlags &= ~I2C_FLAG_RXNE; + + /* Read data from RXDR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferSize--; + hi2c->XferCount--; + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) == RESET) && \ + ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) + { + /* Write data to TXDR */ + if (hi2c->XferCount != 0U) + { + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferSize--; + hi2c->XferCount--; + } + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + { + if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) + { + devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + /* Errata workaround 170323 */ + if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) + { + hi2c->XferSize = 1U; + } + else + { + hi2c->XferSize = MAX_NBYTE_SIZE; + } + I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); + } + else + { + hi2c->XferSize = hi2c->XferCount; + if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) + { + I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, + hi2c->XferOptions, I2C_NO_STARTSTOP); + } + else + { + I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, + I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); + } + } + } + else + { + /* Call TxCpltCallback() if no stop mode is set */ + if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) + { + /* Call I2C Master Sequential complete process */ + I2C_ITMasterSeqCplt(hi2c); + } + else + { + /* Wrong size Status regarding TCR flag event */ + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); + } + } + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + { + if (hi2c->XferCount == 0U) + { + if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) + { + /* Generate a stop condition in case of no transfer option */ + if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) + { + /* Generate Stop */ + hi2c->Instance->CR2 |= I2C_CR2_STOP; + } + else + { + /* Call I2C Master Sequential complete process */ + I2C_ITMasterSeqCplt(hi2c); + } + } + } + else + { + /* Wrong size Status regarding TC flag event */ + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); + } + } + else + { + /* Nothing to do */ + } + + if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + { + /* Call I2C Master complete process */ + I2C_ITMasterCplt(hi2c, tmpITFlags); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; +} + +/** + * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param ITFlags Interrupt flags to handle. + * @param ITSources Interrupt sources enabled. + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources) +{ + uint32_t direction = I2C_GENERATE_START_WRITE; + uint32_t tmpITFlags = ITFlags; + + /* Process Locked */ + __HAL_LOCK(hi2c); + + if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + { + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Set corresponding Error Code */ + /* No need to generate STOP, it is automatically done */ + /* Error callback will be send during stop flag treatment */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) + { + /* Remove RXNE flag on temporary variable as read done */ + tmpITFlags &= ~I2C_FLAG_RXNE; + + /* Read data from RXDR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferSize--; + hi2c->XferCount--; + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) + { + if (hi2c->Memaddress == 0xFFFFFFFFU) + { + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferSize--; + hi2c->XferCount--; + } + else + { + /* Write LSB part of Memory Address */ + hi2c->Instance->TXDR = hi2c->Memaddress; + + /* Reset Memaddress content */ + hi2c->Memaddress = 0xFFFFFFFFU; + } + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + { + if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) + { + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + /* Errata workaround 170323 */ + if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) + { + hi2c->XferSize = 1U; + } + else + { + hi2c->XferSize = MAX_NBYTE_SIZE; + } + I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, + I2C_RELOAD_MODE, I2C_NO_STARTSTOP); + } + else + { + hi2c->XferSize = hi2c->XferCount; + I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, + I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); + } + } + else + { + /* Wrong size Status regarding TCR flag event */ + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); + } + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + { + /* Disable Interrupt related to address step */ + I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); + + /* Enable ERR, TC, STOP, NACK and RXI interrupts */ + I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); + + if (hi2c->State == HAL_I2C_STATE_BUSY_RX) + { + direction = I2C_GENERATE_START_READ; + } + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + /* Errata workaround 170323 */ + if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) + { + hi2c->XferSize = 1U; + } + else + { + hi2c->XferSize = MAX_NBYTE_SIZE; + } + + /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ + I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, + I2C_RELOAD_MODE, direction); + } + else + { + hi2c->XferSize = hi2c->XferCount; + + /* Set NBYTES to write and generate RESTART */ + I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, + I2C_AUTOEND_MODE, direction); + } + } + else + { + /* Nothing to do */ + } + + if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + { + /* Call I2C Master complete process */ + I2C_ITMasterCplt(hi2c, tmpITFlags); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; +} + +/** + * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param ITFlags Interrupt flags to handle. + * @param ITSources Interrupt sources enabled. + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources) +{ + uint32_t tmpoptions = hi2c->XferOptions; + uint32_t tmpITFlags = ITFlags; + + /* Process locked */ + __HAL_LOCK(hi2c); + + /* Check if STOPF is set */ + if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + { + /* Call I2C Slave complete process */ + I2C_ITSlaveCplt(hi2c, tmpITFlags); + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + { + /* Check that I2C transfer finished */ + /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ + /* Mean XferCount == 0*/ + /* So clear Flag NACKF only */ + if (hi2c->XferCount == 0U) + { + if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) + /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for + Warning[Pa134]: left and right operands are identical */ + { + /* Call I2C Listen complete process */ + I2C_ITListenCplt(hi2c, tmpITFlags); + } + else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)) + { + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + + /* Last Byte is Transmitted */ + /* Call I2C Slave Sequential complete process */ + I2C_ITSlaveSeqCplt(hi2c); + } + else + { + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + } + } + else + { + /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Set ErrorCode corresponding to a Non-Acknowledge */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + + if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) + { + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, hi2c->ErrorCode); + } + } + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) + { + if (hi2c->XferCount > 0U) + { + /* Read data from RXDR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferSize--; + hi2c->XferCount--; + } + + if ((hi2c->XferCount == 0U) && \ + (tmpoptions != I2C_NO_OPTION_FRAME)) + { + /* Call I2C Slave Sequential complete process */ + I2C_ITSlaveSeqCplt(hi2c); + } + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) + { + I2C_ITAddrCplt(hi2c, tmpITFlags); + } + else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) + { + /* Write data to TXDR only if XferCount not reach "0" */ + /* A TXIS flag can be set, during STOP treatment */ + /* Check if all Data have already been sent */ + /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ + if (hi2c->XferCount > 0U) + { + /* Write data to TXDR */ + hi2c->Instance->TXDR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + hi2c->XferCount--; + hi2c->XferSize--; + } + else + { + if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) + { + /* Last Byte is Transmitted */ + /* Call I2C Slave Sequential complete process */ + I2C_ITSlaveSeqCplt(hi2c); + } + } + } + else + { + /* Nothing to do */ + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; +} + +/** + * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param ITFlags Interrupt flags to handle. + * @param ITSources Interrupt sources enabled. + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources) +{ + uint16_t devaddress; + uint32_t xfermode; + + /* Process Locked */ + __HAL_LOCK(hi2c); + + if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + { + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Set corresponding Error Code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + + /* No need to generate STOP, it is automatically done */ + /* But enable STOP interrupt, to treat it */ + /* Error callback will be send during stop flag treatment */ + I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + } + else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + { + /* Disable TC interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); + + if (hi2c->XferCount != 0U) + { + /* Recover Slave address */ + devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); + + /* Prepare the new XferSize to transfer */ + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + /* Errata workaround 170323 */ + if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) + { + hi2c->XferSize = 1U; + } + else + { + hi2c->XferSize = MAX_NBYTE_SIZE; + } + xfermode = I2C_RELOAD_MODE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) + { + xfermode = hi2c->XferOptions; + } + else + { + xfermode = I2C_AUTOEND_MODE; + } + } + + /* Set the new XferSize in Nbytes register */ + I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); + + /* Update XferCount value */ + hi2c->XferCount -= hi2c->XferSize; + + /* Enable DMA Request */ + if (hi2c->State == HAL_I2C_STATE_BUSY_RX) + { + hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; + } + else + { + hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; + } + } + else + { + /* Call TxCpltCallback() if no stop mode is set */ + if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) + { + /* Call I2C Master Sequential complete process */ + I2C_ITMasterSeqCplt(hi2c); + } + else + { + /* Wrong size Status regarding TCR flag event */ + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); + } + } + } + else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + { + if (hi2c->XferCount == 0U) + { + if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) + { + /* Generate a stop condition in case of no transfer option */ + if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) + { + /* Generate Stop */ + hi2c->Instance->CR2 |= I2C_CR2_STOP; + } + else + { + /* Call I2C Master Sequential complete process */ + I2C_ITMasterSeqCplt(hi2c); + } + } + } + else + { + /* Wrong size Status regarding TC flag event */ + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); + } + } + else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + { + /* Call I2C Master complete process */ + I2C_ITMasterCplt(hi2c, ITFlags); + } + else + { + /* Nothing to do */ + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; +} + +/** + * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param ITFlags Interrupt flags to handle. + * @param ITSources Interrupt sources enabled. + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources) +{ + uint32_t direction = I2C_GENERATE_START_WRITE; + + /* Process Locked */ + __HAL_LOCK(hi2c); + + if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + { + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Set corresponding Error Code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + + /* No need to generate STOP, it is automatically done */ + /* But enable STOP interrupt, to treat it */ + /* Error callback will be send during stop flag treatment */ + I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + } + else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) + { + /* Write LSB part of Memory Address */ + hi2c->Instance->TXDR = hi2c->Memaddress; + + /* Reset Memaddress content */ + hi2c->Memaddress = 0xFFFFFFFFU; + } + else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + { + /* Disable Interrupt related to address step */ + I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); + + /* Enable only Error interrupt */ + I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); + + if (hi2c->XferCount != 0U) + { + /* Prepare the new XferSize to transfer */ + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + /* Errata workaround 170323 */ + if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) + { + hi2c->XferSize = 1U; + } + else + { + hi2c->XferSize = MAX_NBYTE_SIZE; + } + I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, + I2C_RELOAD_MODE, I2C_NO_STARTSTOP); + } + else + { + hi2c->XferSize = hi2c->XferCount; + I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, + I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); + } + + /* Update XferCount value */ + hi2c->XferCount -= hi2c->XferSize; + + /* Enable DMA Request */ + if (hi2c->State == HAL_I2C_STATE_BUSY_RX) + { + hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; + } + else + { + hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; + } + } + else + { + /* Wrong size Status regarding TCR flag event */ + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); + } + } + else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) + { + /* Disable Interrupt related to address step */ + I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); + + /* Enable only Error and NACK interrupt for data transfer */ + I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); + + if (hi2c->State == HAL_I2C_STATE_BUSY_RX) + { + direction = I2C_GENERATE_START_READ; + } + + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + /* Errata workaround 170323 */ + if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) + { + hi2c->XferSize = 1U; + } + else + { + hi2c->XferSize = MAX_NBYTE_SIZE; + } + + /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ + I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, + I2C_RELOAD_MODE, direction); + } + else + { + hi2c->XferSize = hi2c->XferCount; + + /* Set NBYTES to write and generate RESTART */ + I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, + I2C_AUTOEND_MODE, direction); + } + + /* Update XferCount value */ + hi2c->XferCount -= hi2c->XferSize; + + /* Enable DMA Request */ + if (hi2c->State == HAL_I2C_STATE_BUSY_RX) + { + hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; + } + else + { + hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; + } + } + else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + { + /* Call I2C Master complete process */ + I2C_ITMasterCplt(hi2c, ITFlags); + } + else + { + /* Nothing to do */ + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; +} + +/** + * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param ITFlags Interrupt flags to handle. + * @param ITSources Interrupt sources enabled. + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, + uint32_t ITSources) +{ + uint32_t tmpoptions = hi2c->XferOptions; + uint32_t treatdmanack = 0U; + HAL_I2C_StateTypeDef tmpstate; + + /* Process locked */ + __HAL_LOCK(hi2c); + + /* Check if STOPF is set */ + if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) + { + /* Call I2C Slave complete process */ + I2C_ITSlaveCplt(hi2c, ITFlags); + } + else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) + { + /* Check that I2C transfer finished */ + /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ + /* Mean XferCount == 0 */ + /* So clear Flag NACKF only */ + if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || + (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) + { + /* Split check of hdmarx, for MISRA compliance */ + if (hi2c->hdmarx != NULL) + { + if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) + { + if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) + { + treatdmanack = 1U; + } + } + } + + /* Split check of hdmatx, for MISRA compliance */ + if (hi2c->hdmatx != NULL) + { + if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) + { + if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) + { + treatdmanack = 1U; + } + } + } + + if (treatdmanack == 1U) + { + if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) + /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for + Warning[Pa134]: left and right operands are identical */ + { + /* Call I2C Listen complete process */ + I2C_ITListenCplt(hi2c, ITFlags); + } + else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)) + { + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + + /* Last Byte is Transmitted */ + /* Call I2C Slave Sequential complete process */ + I2C_ITSlaveSeqCplt(hi2c); + } + else + { + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + } + } + else + { + /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Set ErrorCode corresponding to a Non-Acknowledge */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + + /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ + tmpstate = hi2c->State; + + if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) + { + if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) + { + hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; + } + else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) + { + hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; + } + else + { + /* Do nothing */ + } + + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, hi2c->ErrorCode); + } + } + } + else + { + /* Only Clear NACK Flag, no DMA treatment is pending */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + } + } + else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \ + (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) + { + I2C_ITAddrCplt(hi2c, ITFlags); + } + else + { + /* Nothing to do */ + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; +} + +/** + * @brief Master sends target device address followed by internal memory address for write request. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, + uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, + uint32_t Tickstart) +{ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRITE); + + /* Wait until TXIS flag is set */ + if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* If Memory address size is 8Bit */ + if (MemAddSize == I2C_MEMADD_SIZE_8BIT) + { + /* Send Memory Address */ + hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); + } + /* If Memory address size is 16Bit */ + else + { + /* Send MSB of Memory Address */ + hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); + + /* Wait until TXIS flag is set */ + if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Send LSB of Memory Address */ + hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); + } + + /* Wait until TCR flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + return HAL_OK; +} + +/** + * @brief Master sends target device address followed by internal memory address for read request. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, + uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, + uint32_t Tickstart) +{ + I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WRITE); + + /* Wait until TXIS flag is set */ + if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* If Memory address size is 8Bit */ + if (MemAddSize == I2C_MEMADD_SIZE_8BIT) + { + /* Send Memory Address */ + hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); + } + /* If Memory address size is 16Bit */ + else + { + /* Send MSB of Memory Address */ + hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); + + /* Wait until TXIS flag is set */ + if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Send LSB of Memory Address */ + hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); + } + + /* Wait until TC flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + return HAL_OK; +} + +/** + * @brief I2C Address complete process callback. + * @param hi2c I2C handle. + * @param ITFlags Interrupt flags to handle. + * @retval None + */ +static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) +{ + uint8_t transferdirection; + uint16_t slaveaddrcode; + uint16_t ownadd1code; + uint16_t ownadd2code; + + /* Prevent unused argument(s) compilation warning */ + UNUSED(ITFlags); + + /* In case of Listen state, need to inform upper layer of address match code event */ + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + transferdirection = I2C_GET_DIR(hi2c); + slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); + ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); + ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); + + /* If 10bits addressing mode is selected */ + if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) + { + if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) + { + slaveaddrcode = ownadd1code; + hi2c->AddrEventCount++; + if (hi2c->AddrEventCount == 2U) + { + /* Reset Address Event counter */ + hi2c->AddrEventCount = 0U; + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call Slave Addr callback */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); +#else + HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + else + { + slaveaddrcode = ownadd2code; + + /* Disable ADDR Interrupts */ + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call Slave Addr callback */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); +#else + HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + /* else 7 bits addressing mode is selected */ + else + { + /* Disable ADDR Interrupts */ + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call Slave Addr callback */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); +#else + HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + /* Else clear address flag only */ + else + { + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + } +} + +/** + * @brief I2C Master sequential complete process. + * @param hi2c I2C handle. + * @retval None + */ +static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) +{ + /* Reset I2C handle mode */ + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* No Generate Stop, to permit restart mode */ + /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ + if (hi2c->State == HAL_I2C_STATE_BUSY_TX) + { + hi2c->State = HAL_I2C_STATE_READY; + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; + hi2c->XferISR = NULL; + + /* Disable Interrupts */ + I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MasterTxCpltCallback(hi2c); +#else + HAL_I2C_MasterTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ + else + { + hi2c->State = HAL_I2C_STATE_READY; + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + hi2c->XferISR = NULL; + + /* Disable Interrupts */ + I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MasterRxCpltCallback(hi2c); +#else + HAL_I2C_MasterRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } +} + +/** + * @brief I2C Slave sequential complete process. + * @param hi2c I2C handle. + * @retval None + */ +static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) +{ + uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); + + /* Reset I2C handle mode */ + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* If a DMA is ongoing, Update handle size context */ + if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) + { + /* Disable DMA Request */ + hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; + } + else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) + { + /* Disable DMA Request */ + hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; + } + else + { + /* Do nothing */ + } + + if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) + { + /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; + + /* Disable Interrupts */ + I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->SlaveTxCpltCallback(hi2c); +#else + HAL_I2C_SlaveTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + + else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) + { + /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; + + /* Disable Interrupts */ + I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->SlaveRxCpltCallback(hi2c); +#else + HAL_I2C_SlaveRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + /* Nothing to do */ + } +} + +/** + * @brief I2C Master complete process. + * @param hi2c I2C handle. + * @param ITFlags Interrupt flags to handle. + * @retval None + */ +static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) +{ + uint32_t tmperror; + uint32_t tmpITFlags = ITFlags; + __IO uint32_t tmpreg; + + /* Clear STOP Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + + /* Disable Interrupts and Store Previous state */ + if (hi2c->State == HAL_I2C_STATE_BUSY_TX) + { + I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; + } + else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) + { + I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + } + else + { + /* Do nothing */ + } + + /* Clear Configuration Register 2 */ + I2C_RESET_CR2(hi2c); + + /* Reset handle parameters */ + hi2c->XferISR = NULL; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) + { + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Set acknowledge error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + } + + /* Fetch Last receive data if any */ + if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) + { + /* Read data from RXDR */ + tmpreg = (uint8_t)hi2c->Instance->RXDR; + UNUSED(tmpreg); + } + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + + /* Store current volatile hi2c->ErrorCode, misra rule */ + tmperror = hi2c->ErrorCode; + + /* Call the corresponding callback to inform upper layer of End of Transfer */ + if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) + { + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, hi2c->ErrorCode); + } + /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ + else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) + { + hi2c->State = HAL_I2C_STATE_READY; + hi2c->PreviousState = I2C_STATE_NONE; + + if (hi2c->Mode == HAL_I2C_MODE_MEM) + { + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MemTxCpltCallback(hi2c); +#else + HAL_I2C_MemTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MasterTxCpltCallback(hi2c); +#else + HAL_I2C_MasterTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ + else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) + { + hi2c->State = HAL_I2C_STATE_READY; + hi2c->PreviousState = I2C_STATE_NONE; + + if (hi2c->Mode == HAL_I2C_MODE_MEM) + { + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MemRxCpltCallback(hi2c); +#else + HAL_I2C_MemRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MasterRxCpltCallback(hi2c); +#else + HAL_I2C_MasterRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + else + { + /* Nothing to do */ + } +} + +/** + * @brief I2C Slave complete process. + * @param hi2c I2C handle. + * @param ITFlags Interrupt flags to handle. + * @retval None + */ +static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) +{ + uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); + uint32_t tmpITFlags = ITFlags; + uint32_t tmpoptions = hi2c->XferOptions; + HAL_I2C_StateTypeDef tmpstate = hi2c->State; + + /* Clear STOP Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + + /* Disable Interrupts and Store Previous state */ + if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) + { + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); + hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; + } + else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) + { + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); + hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; + } + else if (tmpstate == HAL_I2C_STATE_LISTEN) + { + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT); + hi2c->PreviousState = I2C_STATE_NONE; + } + else + { + /* Do nothing */ + } + + /* Disable Address Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + + /* Clear Configuration Register 2 */ + I2C_RESET_CR2(hi2c); + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + + /* If a DMA is ongoing, Update handle size context */ + if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) + { + /* Disable DMA Request */ + hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; + + if (hi2c->hdmatx != NULL) + { + hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx); + } + } + else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) + { + /* Disable DMA Request */ + hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; + + if (hi2c->hdmarx != NULL) + { + hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx); + } + } + else + { + /* Do nothing */ + } + + /* Store Last receive data if any */ + if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) + { + /* Remove RXNE flag on temporary variable as read done */ + tmpITFlags &= ~I2C_FLAG_RXNE; + + /* Read data from RXDR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + if ((hi2c->XferSize > 0U)) + { + hi2c->XferSize--; + hi2c->XferCount--; + } + } + + /* All data are not transferred, so set error code accordingly */ + if (hi2c->XferCount != 0U) + { + /* Set ErrorCode corresponding to a Non-Acknowledge */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + } + + if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ + (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) + { + /* Check that I2C transfer finished */ + /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ + /* Mean XferCount == 0*/ + /* So clear Flag NACKF only */ + if (hi2c->XferCount == 0U) + { + if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) + /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for + Warning[Pa134]: left and right operands are identical */ + { + /* Call I2C Listen complete process */ + I2C_ITListenCplt(hi2c, tmpITFlags); + } + else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)) + { + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + + /* Last Byte is Transmitted */ + /* Call I2C Slave Sequential complete process */ + I2C_ITSlaveSeqCplt(hi2c); + } + else + { + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + } + } + else + { + /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Set ErrorCode corresponding to a Non-Acknowledge */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + + if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) + { + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, hi2c->ErrorCode); + } + } + } + + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->XferISR = NULL; + + if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) + { + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, hi2c->ErrorCode); + + /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ + if (hi2c->State == HAL_I2C_STATE_LISTEN) + { + /* Call I2C Listen complete process */ + I2C_ITListenCplt(hi2c, tmpITFlags); + } + } + else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) + { + /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */ + I2C_ITSlaveSeqCplt(hi2c); + + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->PreviousState = I2C_STATE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->ListenCpltCallback(hi2c); +#else + HAL_I2C_ListenCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + /* Call the corresponding callback to inform upper layer of End of Transfer */ + else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) + { + hi2c->State = HAL_I2C_STATE_READY; + hi2c->PreviousState = I2C_STATE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->SlaveRxCpltCallback(hi2c); +#else + HAL_I2C_SlaveRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + hi2c->State = HAL_I2C_STATE_READY; + hi2c->PreviousState = I2C_STATE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->SlaveTxCpltCallback(hi2c); +#else + HAL_I2C_SlaveTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } +} + +/** + * @brief I2C Listen complete process. + * @param hi2c I2C handle. + * @param ITFlags Interrupt flags to handle. + * @retval None + */ +static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) +{ + /* Reset handle parameters */ + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->XferISR = NULL; + + /* Store Last receive data if any */ + if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) + { + /* Read data from RXDR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + if ((hi2c->XferSize > 0U)) + { + hi2c->XferSize--; + hi2c->XferCount--; + + /* Set ErrorCode corresponding to a Non-Acknowledge */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + } + } + + /* Disable all Interrupts*/ + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); + + /* Clear NACK Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->ListenCpltCallback(hi2c); +#else + HAL_I2C_ListenCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +} + +/** + * @brief I2C interrupts error process. + * @param hi2c I2C handle. + * @param ErrorCode Error code to handle. + * @retval None + */ +static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) +{ + HAL_I2C_StateTypeDef tmpstate = hi2c->State; + + uint32_t tmppreviousstate; + + /* Reset handle parameters */ + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->XferCount = 0U; + + /* Set new error code */ + hi2c->ErrorCode |= ErrorCode; + + /* Disable Interrupts */ + if ((tmpstate == HAL_I2C_STATE_LISTEN) || + (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || + (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) + { + /* Disable all interrupts, except interrupts related to LISTEN state */ + I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); + + /* keep HAL_I2C_STATE_LISTEN if set */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->XferISR = I2C_Slave_ISR_IT; + } + else + { + /* Disable all interrupts */ + I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); + + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + + /* If state is an abort treatment on going, don't change state */ + /* This change will be do later */ + if (hi2c->State != HAL_I2C_STATE_ABORT) + { + /* Set HAL_I2C_STATE_READY */ + hi2c->State = HAL_I2C_STATE_READY; + + /* Check if a STOPF is detected */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) + { + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) + { + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + } + + /* Clear STOP Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + } + + } + hi2c->XferISR = NULL; + } + + /* Abort DMA TX transfer if any */ + tmppreviousstate = hi2c->PreviousState; + + if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ + (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) + { + if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) + { + hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; + } + + if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) + { + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Abort DMA TX */ + if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); + } + } + else + { + I2C_TreatErrorCallback(hi2c); + } + } + /* Abort DMA RX transfer if any */ + else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ + (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) + { + if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) + { + hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; + } + + if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) + { + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) + { + /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ + hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); + } + } + else + { + I2C_TreatErrorCallback(hi2c); + } + } + else + { + I2C_TreatErrorCallback(hi2c); + } +} + +/** + * @brief I2C Error callback treatment. + * @param hi2c I2C handle. + * @retval None + */ +static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) +{ + if (hi2c->State == HAL_I2C_STATE_ABORT) + { + hi2c->State = HAL_I2C_STATE_READY; + hi2c->PreviousState = I2C_STATE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->AbortCpltCallback(hi2c); +#else + HAL_I2C_AbortCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + hi2c->PreviousState = I2C_STATE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->ErrorCallback(hi2c); +#else + HAL_I2C_ErrorCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } +} + +/** + * @brief I2C Tx data register flush process. + * @param hi2c I2C handle. + * @retval None + */ +static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) +{ + /* If a pending TXIS flag is set */ + /* Write a dummy data in TXDR to clear it */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) + { + hi2c->Instance->TXDR = 0x00U; + } + + /* Flush TX register if not empty */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) + { + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); + } +} + +/** + * @brief DMA I2C master transmit process complete callback. + * @param hdma DMA handle + * @retval None + */ +static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) +{ + /* Derogation MISRAC2012-Rule-11.5 */ + I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + + /* Disable DMA Request */ + hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; + + /* If last transfer, enable STOP interrupt */ + if (hi2c->XferCount == 0U) + { + /* Enable STOP interrupt */ + I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); + } + /* else prepare a new DMA transfer and enable TCReload interrupt */ + else + { + /* Update Buffer pointer */ + hi2c->pBuffPtr += hi2c->XferSize; + + /* Set the XferSize to transfer */ + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + hi2c->XferSize = MAX_NBYTE_SIZE; + } + else + { + hi2c->XferSize = hi2c->XferCount; + } + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, + hi2c->XferSize) != HAL_OK) + { + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); + } + else + { + /* Enable TC interrupts */ + I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); + } + } +} + + +/** + * @brief DMA I2C slave transmit process complete callback. + * @param hdma DMA handle + * @retval None + */ +static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) +{ + /* Derogation MISRAC2012-Rule-11.5 */ + I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + uint32_t tmpoptions = hi2c->XferOptions; + + if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) + { + /* Disable DMA Request */ + hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; + + /* Last Byte is Transmitted */ + /* Call I2C Slave Sequential complete process */ + I2C_ITSlaveSeqCplt(hi2c); + } + else + { + /* No specific action, Master fully manage the generation of STOP condition */ + /* Mean that this generation can arrive at any time, at the end or during DMA process */ + /* So STOP condition should be manage through Interrupt treatment */ + } +} + + +/** + * @brief DMA I2C master receive process complete callback. + * @param hdma DMA handle + * @retval None + */ +static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) +{ + /* Derogation MISRAC2012-Rule-11.5 */ + I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + + /* Disable DMA Request */ + hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; + + /* If last transfer, enable STOP interrupt */ + if (hi2c->XferCount == 0U) + { + /* Enable STOP interrupt */ + I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); + } + /* else prepare a new DMA transfer and enable TCReload interrupt */ + else + { + /* Update Buffer pointer */ + hi2c->pBuffPtr += hi2c->XferSize; + + /* Set the XferSize to transfer */ + if (hi2c->XferCount > MAX_NBYTE_SIZE) + { + /* Errata workaround 170323 */ + if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) + { + hi2c->XferSize = 1U; + } + else + { + hi2c->XferSize = MAX_NBYTE_SIZE; + } + } + else + { + hi2c->XferSize = hi2c->XferCount; + } + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, + hi2c->XferSize) != HAL_OK) + { + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); + } + else + { + /* Enable TC interrupts */ + I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); + } + } +} + + +/** + * @brief DMA I2C slave receive process complete callback. + * @param hdma DMA handle + * @retval None + */ +static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) +{ + /* Derogation MISRAC2012-Rule-11.5 */ + I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + uint32_t tmpoptions = hi2c->XferOptions; + + if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \ + (tmpoptions != I2C_NO_OPTION_FRAME)) + { + /* Disable DMA Request */ + hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; + + /* Call I2C Slave Sequential complete process */ + I2C_ITSlaveSeqCplt(hi2c); + } + else + { + /* No specific action, Master fully manage the generation of STOP condition */ + /* Mean that this generation can arrive at any time, at the end or during DMA process */ + /* So STOP condition should be manage through Interrupt treatment */ + } +} + + +/** + * @brief DMA I2C communication error callback. + * @param hdma DMA handle + * @retval None + */ +static void I2C_DMAError(DMA_HandleTypeDef *hdma) +{ + /* Derogation MISRAC2012-Rule-11.5 */ + I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + + /* Disable Acknowledge */ + hi2c->Instance->CR2 |= I2C_CR2_NACK; + + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); +} + + +/** + * @brief DMA I2C communication abort callback + * (To be called at end of DMA Abort procedure). + * @param hdma DMA handle. + * @retval None + */ +static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) +{ + /* Derogation MISRAC2012-Rule-11.5 */ + I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + + /* Reset AbortCpltCallback */ + if (hi2c->hdmatx != NULL) + { + hi2c->hdmatx->XferAbortCallback = NULL; + } + if (hi2c->hdmarx != NULL) + { + hi2c->hdmarx->XferAbortCallback = NULL; + } + + I2C_TreatErrorCallback(hi2c); +} + + +/** + * @brief This function handles I2C Communication Timeout. It waits + * until a flag is no longer in the specified status. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param Flag Specifies the I2C flag to check. + * @param Status The actual Flag status (SET or RESET). + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagStatus Status, + uint32_t Timeout, uint32_t Tickstart) +{ + while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) + { + /* Check if an error is detected */ + if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + { + if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) + { + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + return HAL_ERROR; + } + } + } + } + return HAL_OK; +} + +/** + * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, + uint32_t Tickstart) +{ + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) + { + /* Check if an error is detected */ + if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + { + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)) + { + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + } + } + return HAL_OK; +} + +/** + * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, + uint32_t Tickstart) +{ + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) + { + /* Check if an error is detected */ + if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Check for the Timeout */ + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + { + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) + { + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + } + return HAL_OK; +} + +/** + * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, + uint32_t Tickstart) +{ + HAL_StatusTypeDef status = HAL_OK; + + while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) && (status == HAL_OK)) + { + /* Check if an error is detected */ + if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) + { + status = HAL_ERROR; + } + + /* Check if a STOPF is detected */ + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) && (status == HAL_OK)) + { + /* Check if an RXNE is pending */ + /* Store Last receive data if any */ + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) + { + /* Return HAL_OK */ + /* The Reading of data from RXDR will be done in caller function */ + status = HAL_OK; + } + + /* Check a no-acknowledge have been detected */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) + { + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + hi2c->ErrorCode = HAL_I2C_ERROR_AF; + + /* Clear STOP Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + + /* Clear Configuration Register 2 */ + I2C_RESET_CR2(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + status = HAL_ERROR; + } + else + { + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + } + } + + /* Check for the Timeout */ + if ((((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) && (status == HAL_OK)) + { + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) + { + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + hi2c->State = HAL_I2C_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + status = HAL_ERROR; + } + } + } + return status; +} + +/** + * @brief This function handles errors detection during an I2C Communication. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t itflag = hi2c->Instance->ISR; + uint32_t error_code = 0; + uint32_t tickstart = Tickstart; + uint32_t tmp1; + HAL_I2C_ModeTypeDef tmp2; + + if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF)) + { + /* Clear NACKF Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Wait until STOP Flag is set or timeout occurred */ + /* AutoEnd should be initiate after AF */ + while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) + { + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) + { + tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP); + tmp2 = hi2c->Mode; + + /* In case of I2C still busy, try to regenerate a STOP manually */ + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \ + (tmp1 != I2C_CR2_STOP) && \ + (tmp2 != HAL_I2C_MODE_SLAVE)) + { + /* Generate Stop */ + hi2c->Instance->CR2 |= I2C_CR2_STOP; + + /* Update Tick with new reference */ + tickstart = HAL_GetTick(); + } + + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) + { + /* Check for the Timeout */ + if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) + { + error_code |= HAL_I2C_ERROR_TIMEOUT; + + status = HAL_ERROR; + + break; + } + } + } + } + } + + /* In case STOP Flag is detected, clear it */ + if (status == HAL_OK) + { + /* Clear STOP Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + } + + error_code |= HAL_I2C_ERROR_AF; + + status = HAL_ERROR; + } + + /* Refresh Content of Status register */ + itflag = hi2c->Instance->ISR; + + /* Then verify if an additional errors occurs */ + /* Check if a Bus error occurred */ + if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR)) + { + error_code |= HAL_I2C_ERROR_BERR; + + /* Clear BERR flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); + + status = HAL_ERROR; + } + + /* Check if an Over-Run/Under-Run error occurred */ + if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR)) + { + error_code |= HAL_I2C_ERROR_OVR; + + /* Clear OVR flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); + + status = HAL_ERROR; + } + + /* Check if an Arbitration Loss error occurred */ + if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO)) + { + error_code |= HAL_I2C_ERROR_ARLO; + + /* Clear ARLO flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); + + status = HAL_ERROR; + } + + if (status != HAL_OK) + { + /* Flush TX register */ + I2C_Flush_TXDR(hi2c); + + /* Clear Configuration Register 2 */ + I2C_RESET_CR2(hi2c); + + hi2c->ErrorCode |= error_code; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + } + + return status; +} + +/** + * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag are set). + * @param hi2c I2C handle. + * @param DevAddress Specifies the slave address to be programmed. + * @param Size Specifies the number of bytes to be programmed. + * This parameter must be a value between 0 and 255. + * @param Mode New state of the I2C START condition generation. + * This parameter can be one of the following values: + * @arg @ref I2C_RELOAD_MODE Enable Reload mode . + * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. + * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. + * @param Request New state of the I2C START condition generation. + * This parameter can be one of the following values: + * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. + * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). + * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. + * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. + * @retval None + */ +static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t Mode, + uint32_t Request) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + assert_param(IS_TRANSFER_MODE(Mode)); + assert_param(IS_TRANSFER_REQUEST(Request)); + + /* Declaration of tmp to prevent undefined behavior of volatile usage */ + uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ + (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ + (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U)); + + /* update CR2 register */ + MODIFY_REG(hi2c->Instance->CR2, \ + ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ + (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ + I2C_CR2_START | I2C_CR2_STOP)), tmp); +} + +/** + * @brief Manage the enabling of Interrupts. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. + * @retval None + */ +static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) +{ + uint32_t tmpisr = 0U; + + if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \ + (hi2c->XferISR != I2C_Slave_ISR_DMA) && \ + (hi2c->XferISR != I2C_Mem_ISR_DMA)) + { + if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) + { + /* Enable ERR, STOP, NACK and ADDR interrupts */ + tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; + } + + if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) + { + /* Enable ERR, TC, STOP, NACK and TXI interrupts */ + tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; + } + + if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) + { + /* Enable ERR, TC, STOP, NACK and RXI interrupts */ + tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; + } + + if (InterruptRequest == I2C_XFER_ERROR_IT) + { + /* Enable ERR and NACK interrupts */ + tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; + } + + if (InterruptRequest == I2C_XFER_CPLT_IT) + { + /* Enable STOP interrupts */ + tmpisr |= I2C_IT_STOPI; + } + } + + else + { + if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) + { + /* Enable ERR, STOP, NACK and ADDR interrupts */ + tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; + } + + if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) + { + /* Enable ERR, TC, STOP, NACK and TXI interrupts */ + tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; + } + + if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) + { + /* Enable ERR, TC, STOP, NACK and RXI interrupts */ + tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; + } + + if (InterruptRequest == I2C_XFER_ERROR_IT) + { + /* Enable ERR and NACK interrupts */ + tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; + } + + if (InterruptRequest == I2C_XFER_CPLT_IT) + { + /* Enable STOP interrupts */ + tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); + } + + if (InterruptRequest == I2C_XFER_RELOAD_IT) + { + /* Enable TC interrupts */ + tmpisr |= I2C_IT_TCI; + } + } + + /* Enable interrupts only at the end */ + /* to avoid the risk of I2C interrupt handle execution before */ + /* all interrupts requested done */ + __HAL_I2C_ENABLE_IT(hi2c, tmpisr); +} + +/** + * @brief Manage the disabling of Interrupts. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. + * @retval None + */ +static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) +{ + uint32_t tmpisr = 0U; + + if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) + { + /* Disable TC and TXI interrupts */ + tmpisr |= I2C_IT_TCI | I2C_IT_TXI; + + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) + { + /* Disable NACK and STOP interrupts */ + tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; + } + } + + if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) + { + /* Disable TC and RXI interrupts */ + tmpisr |= I2C_IT_TCI | I2C_IT_RXI; + + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) + { + /* Disable NACK and STOP interrupts */ + tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; + } + } + + if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) + { + /* Disable ADDR, NACK and STOP interrupts */ + tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; + } + + if (InterruptRequest == I2C_XFER_ERROR_IT) + { + /* Enable ERR and NACK interrupts */ + tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; + } + + if (InterruptRequest == I2C_XFER_CPLT_IT) + { + /* Enable STOP interrupts */ + tmpisr |= I2C_IT_STOPI; + } + + if (InterruptRequest == I2C_XFER_RELOAD_IT) + { + /* Enable TC interrupts */ + tmpisr |= I2C_IT_TCI; + } + + /* Disable interrupts only at the end */ + /* to avoid a breaking situation like at "t" time */ + /* all disable interrupts request are not done */ + __HAL_I2C_DISABLE_IT(hi2c, tmpisr); +} + +/** + * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. + * @param hi2c I2C handle. + * @retval None + */ +static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) +{ + /* if user set XferOptions to I2C_OTHER_FRAME */ + /* it request implicitly to generate a restart condition */ + /* set XferOptions to I2C_FIRST_FRAME */ + if (hi2c->XferOptions == I2C_OTHER_FRAME) + { + hi2c->XferOptions = I2C_FIRST_FRAME; + } + /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ + /* it request implicitly to generate a restart condition */ + /* then generate a stop condition at the end of transfer */ + /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ + else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) + { + hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; + } + else + { + /* Nothing to do */ + } +} + +/** + * @} + */ + +#endif /* HAL_I2C_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c new file mode 100644 index 0000000..3fc652b --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c @@ -0,0 +1,364 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_i2c_ex.c + * @author MCD Application Team + * @brief I2C Extended HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of I2C Extended peripheral: + * + Filter Mode Functions + * + WakeUp Mode Functions + * + FastModePlus Functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 + ============================================================================== + ##### I2C peripheral Extended features ##### + ============================================================================== + + [..] Comparing to other previous devices, the I2C interface for STM32F3xx + devices contains the following additional features + + (+) Possibility to disable or enable Analog Noise Filter + (+) Use of a configured Digital Noise Filter + (+) Disable or enable wakeup from Stop mode(s) + (+) Disable or enable Fast Mode Plus + + ##### How to use this driver ##### + ============================================================================== + [..] This driver provides functions to configure Noise Filter and Wake Up Feature + (#) Configure I2C Analog noise filter using the function HAL_I2CEx_ConfigAnalogFilter() + (#) Configure I2C Digital noise filter using the function HAL_I2CEx_ConfigDigitalFilter() + (#) Configure the enable or disable of I2C Wake Up Mode using the functions : + (++) HAL_I2CEx_EnableWakeUp() + (++) HAL_I2CEx_DisableWakeUp() + (#) Configure the enable or disable of fast mode plus driving capability using the functions : + (++) HAL_I2CEx_EnableFastModePlus() + (++) HAL_I2CEx_DisableFastModePlus() + @endverbatim + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @defgroup I2CEx I2CEx + * @brief I2C Extended HAL module driver + * @{ + */ + +#ifdef HAL_I2C_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/** @defgroup I2CEx_Exported_Functions I2C Extended Exported Functions + * @{ + */ + +/** @defgroup I2CEx_Exported_Functions_Group1 Filter Mode Functions + * @brief Filter Mode Functions + * +@verbatim + =============================================================================== + ##### Filter Mode Functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Configure Noise Filters + +@endverbatim + * @{ + */ + +/** + * @brief Configure I2C Analog noise filter. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2Cx peripheral. + * @param AnalogFilter New state of the Analog filter. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + assert_param(IS_I2C_ANALOG_FILTER(AnalogFilter)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY; + + /* Disable the selected I2C peripheral */ + __HAL_I2C_DISABLE(hi2c); + + /* Reset I2Cx ANOFF bit */ + hi2c->Instance->CR1 &= ~(I2C_CR1_ANFOFF); + + /* Set analog filter bit*/ + hi2c->Instance->CR1 |= AnalogFilter; + + __HAL_I2C_ENABLE(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Configure I2C Digital noise filter. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2Cx peripheral. + * @param DigitalFilter Coefficient of digital noise filter between Min_Data=0x00 and Max_Data=0x0F. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter) +{ + uint32_t tmpreg; + + /* Check the parameters */ + assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + assert_param(IS_I2C_DIGITAL_FILTER(DigitalFilter)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY; + + /* Disable the selected I2C peripheral */ + __HAL_I2C_DISABLE(hi2c); + + /* Get the old register value */ + tmpreg = hi2c->Instance->CR1; + + /* Reset I2Cx DNF bits [11:8] */ + tmpreg &= ~(I2C_CR1_DNF); + + /* Set I2Cx DNF coefficient */ + tmpreg |= DigitalFilter << 8U; + + /* Store the new register value */ + hi2c->Instance->CR1 = tmpreg; + + __HAL_I2C_ENABLE(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} +/** + * @} + */ + +/** @defgroup I2CEx_Exported_Functions_Group2 WakeUp Mode Functions + * @brief WakeUp Mode Functions + * +@verbatim + =============================================================================== + ##### WakeUp Mode Functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Configure Wake Up Feature + +@endverbatim + * @{ + */ + +/** + * @brief Enable I2C wakeup from Stop mode(s). + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2Cx peripheral. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2CEx_EnableWakeUp(I2C_HandleTypeDef *hi2c) +{ + /* Check the parameters */ + assert_param(IS_I2C_WAKEUP_FROMSTOP_INSTANCE(hi2c->Instance)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY; + + /* Disable the selected I2C peripheral */ + __HAL_I2C_DISABLE(hi2c); + + /* Enable wakeup from stop mode */ + hi2c->Instance->CR1 |= I2C_CR1_WUPEN; + + __HAL_I2C_ENABLE(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Disable I2C wakeup from Stop mode(s). + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2Cx peripheral. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2CEx_DisableWakeUp(I2C_HandleTypeDef *hi2c) +{ + /* Check the parameters */ + assert_param(IS_I2C_WAKEUP_FROMSTOP_INSTANCE(hi2c->Instance)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->State = HAL_I2C_STATE_BUSY; + + /* Disable the selected I2C peripheral */ + __HAL_I2C_DISABLE(hi2c); + + /* Enable wakeup from stop mode */ + hi2c->Instance->CR1 &= ~(I2C_CR1_WUPEN); + + __HAL_I2C_ENABLE(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} +/** + * @} + */ + +/** @defgroup I2CEx_Exported_Functions_Group3 Fast Mode Plus Functions + * @brief Fast Mode Plus Functions + * +@verbatim + =============================================================================== + ##### Fast Mode Plus Functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Configure Fast Mode Plus + +@endverbatim + * @{ + */ + +/** + * @brief Enable the I2C fast mode plus driving capability. + * @param ConfigFastModePlus Selects the pin. + * This parameter can be one of the @ref I2CEx_FastModePlus values + * @note For I2C1, fast mode plus driving capability can be enabled on all selected + * I2C1 pins using I2C_FASTMODEPLUS_I2C1 parameter or independently + * on each one of the following pins PB6, PB7, PB8 and PB9. + * @note For remaining I2C1 pins (PA14, PA15...) fast mode plus driving capability + * can be enabled only by using I2C_FASTMODEPLUS_I2C1 parameter. + * @note For all I2C2 pins fast mode plus driving capability can be enabled + * only by using I2C_FASTMODEPLUS_I2C2 parameter. + * @note For all I2C3 pins fast mode plus driving capability can be enabled + * only by using I2C_FASTMODEPLUS_I2C3 parameter. + * @retval None + */ +void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus) +{ + /* Check the parameter */ + assert_param(IS_I2C_FASTMODEPLUS(ConfigFastModePlus)); + + /* Enable SYSCFG clock */ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + + /* Enable fast mode plus driving capability for selected pin */ + SET_BIT(SYSCFG->CFGR1, (uint32_t)ConfigFastModePlus); +} + +/** + * @brief Disable the I2C fast mode plus driving capability. + * @param ConfigFastModePlus Selects the pin. + * This parameter can be one of the @ref I2CEx_FastModePlus values + * @note For I2C1, fast mode plus driving capability can be disabled on all selected + * I2C1 pins using I2C_FASTMODEPLUS_I2C1 parameter or independently + * on each one of the following pins PB6, PB7, PB8 and PB9. + * @note For remaining I2C1 pins (PA14, PA15...) fast mode plus driving capability + * can be disabled only by using I2C_FASTMODEPLUS_I2C1 parameter. + * @note For all I2C2 pins fast mode plus driving capability can be disabled + * only by using I2C_FASTMODEPLUS_I2C2 parameter. + * @note For all I2C3 pins fast mode plus driving capability can be disabled + * only by using I2C_FASTMODEPLUS_I2C3 parameter. + * @retval None + */ +void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus) +{ + /* Check the parameter */ + assert_param(IS_I2C_FASTMODEPLUS(ConfigFastModePlus)); + + /* Enable SYSCFG clock */ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + + /* Disable fast mode plus driving capability for selected pin */ + CLEAR_BIT(SYSCFG->CFGR1, (uint32_t)ConfigFastModePlus); +} +/** + * @} + */ +/** + * @} + */ + +#endif /* HAL_I2C_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c new file mode 100644 index 0000000..5a57c62 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c @@ -0,0 +1,460 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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) 2016 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 "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @defgroup PWR PWR + * @brief PWR HAL module driver + * @{ + */ + +#ifdef HAL_PWR_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private 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 ##### + =============================================================================== + [..] + After reset, the backup domain (RTC registers, RTC backup data + registers and backup SRAM) is protected against possible unwanted + write accesses. + To enable access to the RTC Domain and RTC registers, proceed as follows: + (+) Enable the Power Controller (PWR) APB1 interface clock using the + __HAL_RCC_PWR_CLK_ENABLE() macro. + (+) Enable access to RTC domain using the HAL_PWR_EnableBkUpAccess() function. + +@endverbatim + * @{ + */ + +/** + * @brief Deinitializes the 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 Enables access to the backup domain (RTC registers, RTC + * backup data registers and backup SRAM). + * @note If the HSE divided by 32 is used as the RTC clock, the + * Backup Domain Access should be kept enabled. + * @retval None + */ +void HAL_PWR_EnableBkUpAccess(void) +{ + SET_BIT(PWR->CR, PWR_CR_DBP); +} + +/** + * @brief Disables access to the backup domain (RTC registers, RTC + * backup data registers and backup SRAM). + * @note If the HSE divided by 32 is used as the RTC clock, the + * Backup Domain Access should be kept enabled. + * @retval None + */ +void HAL_PWR_DisableBkUpAccess(void) +{ + CLEAR_BIT(PWR->CR, PWR_CR_DBP); +} + +/** + * @} + */ + +/** @defgroup PWR_Exported_Functions_Group2 Peripheral Control functions + * @brief Low Power modes configuration functions + * +@verbatim + + =============================================================================== + ##### Peripheral Control functions ##### + =============================================================================== + + *** WakeUp pin configuration *** + ================================ + [..] + (+) WakeUp pin is used to wakeup the system from Standby mode. This pin is + forced in input pull down configuration and is active on rising edges. + (+) There are up to three WakeUp pins: + (++)WakeUp Pin 1 on PA.00. + (++)WakeUp Pin 2 on PC.13 (STM32F303xC, STM32F303xE only). + (++)WakeUp Pin 3 on PE.06. + + *** Main and Backup Regulators configuration *** + ================================================ + [..] + (+) When the backup domain is supplied by VDD (analog switch connected to VDD) + the backup SRAM is powered from VDD which replaces the VBAT power supply to + save battery life. + + (+) The backup SRAM is not mass erased by a tamper event. It is read + protected to prevent confidential data, such as cryptographic private + key, from being accessed. The backup SRAM can be erased only through + the Flash interface when a protection level change from level 1 to + level 0 is requested. + -@- Refer to the description of Read protection (RDP) in the Flash + programming manual. + + Refer to the datasheets for more details. + + *** Low Power modes configuration *** + ===================================== + [..] + The devices feature 3 low-power modes: + (+) Sleep mode: Cortex-M4 core stopped, peripherals kept running. + (+) Stop mode: all clocks are stopped, regulator running, regulator + in low power mode + (+) Standby mode: 1.2V domain powered off (mode not available on STM32F3x8 devices). + + *** Sleep mode *** + ================== + [..] + (+) Entry: + The Sleep mode is entered by using the HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFx) + functions with + (++) PWR_SLEEPENTRY_WFI: enter SLEEP mode with WFI instruction + (++) PWR_SLEEPENTRY_WFE: enter SLEEP mode with WFE instruction + + (+) Exit: + (++) Any peripheral interrupt acknowledged by the nested vectored interrupt + controller (NVIC) can wake up the device from Sleep mode. + + *** Stop mode *** + ================= + [..] + In Stop mode, all clocks in the 1.8V domain are stopped, the PLL, the HSI, + and the HSE RC oscillators are disabled. Internal SRAM and register contents + are preserved. + The voltage regulator can be configured either in normal or low-power mode to minimize the consumption. + + (+) Entry: + The Stop mode is entered using the HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI ) + function with: + (++) Main regulator ON or + (++) Low Power regulator ON. + (++) PWR_STOPENTRY_WFI: enter STOP mode with WFI instruction or + (++) PWR_STOPENTRY_WFE: enter STOP mode with WFE instruction + (+) Exit: + (++) Any EXTI Line (Internal or External) configured in Interrupt/Event mode. + (++) Some specific communication peripherals (CEC, USART, I2C) interrupts, + when programmed in wakeup mode (the peripheral must be + programmed in wakeup mode and the corresponding interrupt vector + must be enabled in the NVIC). + + *** Standby mode *** + ==================== + [..] + The Standby mode allows to achieve the lowest power consumption. It is based + on the Cortex-M4 deep sleep mode, with the voltage regulator disabled. + The 1.8V domain is consequently powered off. The PLL, the HSI oscillator and + the HSE oscillator are also switched off. SRAM and register contents are lost + except for the RTC registers, RTC backup registers, backup SRAM and Standby + circuitry. + The voltage regulator is OFF. + + (+) Entry: + (++) The Standby mode is entered using the HAL_PWR_EnterSTANDBYMode() function. + (+) Exit: + (++) WKUP pin rising edge, RTC alarm (Alarm A and Alarm B), RTC wakeup, + tamper event, time-stamp event, external reset in NRST pin, IWDG 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, a time-stamp event, or a comparator event, + without depending on an external interrupt (Auto-wakeup mode). + + (+) RTC auto-wakeup (AWU) from the Stop and Standby 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_RTC_SetTimeStamp_IT() or HAL_RTC_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_RTC_SetWakeUpTimer_IT() function. + + (+) Comparator auto-wakeup (AWU) from the Stop mode + + (++) To wake up from the Stop mode with a comparator wakeup event, it is necessary to: + (+++) Configure the EXTI Line associated with the comparator (example EXTI Line 22 for comparator 2U) + to be sensitive to to the selected edges (falling, rising or falling + and rising) (Interrupt or Event modes) using the EXTI_Init() function. + (+++) Configure the comparator to generate the event. +@endverbatim + * @{ + */ + +/** + * @brief Enables the WakeUp PINx functionality. + * @param WakeUpPinx Specifies the Power Wake-Up pin to enable. + * This parameter can be value of : + * @ref PWR_WakeUp_Pins + * @retval None + */ +void HAL_PWR_EnableWakeUpPin(uint32_t WakeUpPinx) +{ + /* Check the parameters */ + assert_param(IS_PWR_WAKEUP_PIN(WakeUpPinx)); + /* Enable the EWUPx pin */ + SET_BIT(PWR->CSR, WakeUpPinx); +} + +/** + * @brief Disables the WakeUp PINx functionality. + * @param WakeUpPinx Specifies the Power Wake-Up pin to disable. + * This parameter can be values of : + * @ref PWR_WakeUp_Pins + * @retval None + */ +void HAL_PWR_DisableWakeUpPin(uint32_t WakeUpPinx) +{ + /* Check the parameters */ + assert_param(IS_PWR_WAKEUP_PIN(WakeUpPinx)); + /* Disable the EWUPx pin */ + CLEAR_BIT(PWR->CSR, WakeUpPinx); +} + +/** + * @brief Enters Sleep mode. + * @note In Sleep mode, all I/O pins keep the same state as in Run mode. + * @param Regulator Specifies the regulator state in SLEEP mode. + * This parameter can be one of the following values: + * @arg PWR_MAINREGULATOR_ON: SLEEP mode with regulator ON + * @arg PWR_LOWPOWERREGULATOR_ON: SLEEP mode with low power regulator ON + * @note This parameter has no effect in F3 family and is just maintained to + * offer full portability of other STM32 families software. + * @param SLEEPEntry Specifies if SLEEP mode is entered with WFI or WFE instruction. + * When WFI entry is used, tick interrupt have to be disabled if not desired as + * the interrupt wake up source. + * This parameter can be one of the following values: + * @arg PWR_SLEEPENTRY_WFI: enter SLEEP mode with WFI instruction + * @arg PWR_SLEEPENTRY_WFE: enter SLEEP mode with WFE instruction + * @retval None + */ +void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry) +{ + /* Check the parameters */ + assert_param(IS_PWR_SLEEP_ENTRY(SLEEPEntry)); + + /* Prevent unused argument(s) compilation warning */ + UNUSED(Regulator); + + /* Clear SLEEPDEEP bit of Cortex System Control Register */ + SCB->SCR &= (uint32_t)~((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 Enters STOP mode. + * @note In Stop mode, all I/O pins keep the same state as in Run mode. + * @note When exiting Stop 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, an additional + * startup delay is incurred when waking up from Stop mode. + * By keeping the internal regulator ON during Stop mode, 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 PWR_MAINREGULATOR_ON: STOP mode with regulator ON + * @arg PWR_LOWPOWERREGULATOR_ON: STOP mode with low power regulator ON + * @param STOPEntry specifies if STOP mode in entered with WFI or WFE instruction. + * This parameter can be one of the following values: + * @arg PWR_STOPENTRY_WFI:Enter STOP mode with WFI instruction + * @arg PWR_STOPENTRY_WFE: Enter STOP mode with WFE instruction + * @retval None + */ +void HAL_PWR_EnterSTOPMode(uint32_t Regulator, uint8_t STOPEntry) +{ + uint32_t tmpreg = 0U; + + /* Check the parameters */ + assert_param(IS_PWR_REGULATOR(Regulator)); + assert_param(IS_PWR_STOP_ENTRY(STOPEntry)); + + /* Select the regulator state in STOP mode ---------------------------------*/ + tmpreg = PWR->CR; + + /* Clear PDDS and LPDS bits */ + tmpreg &= (uint32_t)~(PWR_CR_PDDS | PWR_CR_LPDS); + + /* Set LPDS bit according to Regulator value */ + tmpreg |= Regulator; + + /* Store the new value */ + PWR->CR = tmpreg; + + /* Set SLEEPDEEP bit of Cortex System Control Register */ + SCB->SCR |= 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 */ + SCB->SCR &= (uint32_t)~((uint32_t)SCB_SCR_SLEEPDEEP_Msk); +} + +/** + * @brief Enters STANDBY mode. + * @note In Standby mode, all I/O pins are high impedance except for: + * - Reset pad (still available), + * - RTC alternate function pins if configured for tamper, time-stamp, RTC + * Alarm out, or RTC clock calibration out, + * - WKUP pins if enabled. + * @retval None + */ +void HAL_PWR_EnterSTANDBYMode(void) +{ + /* Select STANDBY mode */ + PWR->CR |= PWR_CR_PDDS; + + /* Set SLEEPDEEP bit of Cortex System Control Register */ + SCB->SCR |= 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 Indicates 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 Disables Sleep-On-Exit feature when returning from Handler mode to Thread mode. + * @note Clears 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 Enables CORTEX M4 SEVONPEND bit. + * @note Sets 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 Disables CORTEX M4 SEVONPEND bit. + * @note Clears 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)); +} +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_PWR_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c new file mode 100644 index 0000000..68404c5 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c @@ -0,0 +1,269 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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) 2016 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 "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @defgroup PWREx PWREx + * @brief PWREx HAL module driver + * @{ + */ + +#ifdef HAL_PWR_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup PWREx_Private_Constants PWR Extended Private Constants + * @{ + */ +#define PVD_MODE_IT (0x00010000U) +#define PVD_MODE_EVT (0x00020000U) +#define PVD_RISING_EDGE (0x00000001U) +#define PVD_FALLING_EDGE (0x00000002U) +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions ---------------------------------------------------------*/ + +/** @defgroup PWREx_Exported_Functions PWR Extended Exported Functions + * @{ + */ + +/** @defgroup PWREx_Exported_Functions_Group1 Peripheral Extended Control Functions + * @brief Extended Peripheral Control functions + * +@verbatim + + =============================================================================== + ##### Peripheral Extended control functions ##### + =============================================================================== + *** PVD configuration (present on all other devices than STM32F3x8 devices) *** + ========================= + [..] + (+) 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 the PWR_CR). + (+) A 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_PWR_PVD_EXTI_ENABLE_IT() macro + (+) The PVD is stopped in Standby mode. + -@- PVD is not available on STM32F3x8 Product Line + + + *** Voltage regulator *** + ========================= + [..] + (+) The voltage regulator is always enabled after Reset. It works in three different + modes. + In Run mode, the regulator supplies full power to the 1.8V domain (core, memories + and digital peripherals). + In Stop mode, the regulator supplies low power to the 1.8V domain, preserving + contents of registers and SRAM. + In Stop mode, the regulator is powered off. The contents of the registers and SRAM + are lost except for the Standby circuitry and the Backup Domain. + Note: in the STM32F3x8xx devices, the voltage regulator is bypassed and the + microcontroller must be powered from a nominal VDD = 1.8V +/-8U% voltage. + + + (+) A 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_PWR_PVD_EXTI_ENABLE_IT() macro + (+) The PVD is stopped in Standby mode. + + + *** SDADC power configuration *** + ================================ + [..] + (+) On STM32F373xC/STM32F378xx devices, there are up to + 3 SDADC instances that can be enabled/disabled. + +@endverbatim + * @{ + */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || \ + defined(STM32F302xC) || defined(STM32F303xC) || \ + defined(STM32F303x8) || defined(STM32F334x8) || \ + defined(STM32F301x8) || defined(STM32F302x8) || \ + defined(STM32F373xC) + +/** + * @brief Configures the voltage threshold detected by the Power Voltage Detector(PVD). + * @param sConfigPVD pointer to an PWR_PVDTypeDef structure that contains the configuration + * information for the PVD. + * @note Refer to the electrical characteristics of your device datasheet for + * more details about the voltage threshold corresponding to each + * detection level. + * @retval None + */ +void 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[7:5] bits according to PVDLevel value */ + MODIFY_REG(PWR->CR, PWR_CR_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_RISING_EDGE();__HAL_PWR_PVD_EXTI_DISABLE_FALLING_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(); + } +} + +/** + * @brief Enables the Power Voltage Detector(PVD). + * @retval None + */ +void HAL_PWR_EnablePVD(void) +{ + SET_BIT(PWR->CR, PWR_CR_PVDE); +} + +/** + * @brief Disables the Power Voltage Detector(PVD). + * @retval None + */ +void HAL_PWR_DisablePVD(void) +{ + CLEAR_BIT(PWR->CR, PWR_CR_PVDE); +} + +/** + * @brief This function handles the PWR PVD interrupt request. + * @note This API should be called under the PVD_IRQHandler(). + * @retval None + */ +void HAL_PWR_PVD_IRQHandler(void) +{ + /* Check PWR exti flag */ + if(__HAL_PWR_PVD_EXTI_GET_FLAG() != RESET) + { + /* PWR PVD interrupt user callback */ + HAL_PWR_PVDCallback(); + + /* Clear PWR Exti pending bit */ + __HAL_PWR_PVD_EXTI_CLEAR_FLAG(); + } +} + +/** + * @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 could be implemented in the user file + */ +} + +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F303x8 || STM32F334x8 || */ + /* STM32F301x8 || STM32F302x8 || */ + /* STM32F373xC */ + +#if defined(STM32F373xC) || defined(STM32F378xx) + +/** + * @brief Enables the SDADC peripheral functionaliy + * @param Analogx specifies the SDADC peripheral instance. + * This parameter can be: PWR_SDADC_ANALOG1, PWR_SDADC_ANALOG2 or PWR_SDADC_ANALOG3. + * @retval None + */ +void HAL_PWREx_EnableSDADC(uint32_t Analogx) +{ + /* Check the parameters */ + assert_param(IS_PWR_SDADC_ANALOG(Analogx)); + + /* Enable PWR clock interface for SDADC use */ + __HAL_RCC_PWR_CLK_ENABLE(); + + PWR->CR |= Analogx; +} + +/** + * @brief Disables the SDADC peripheral functionaliy + * @param Analogx specifies the SDADC peripheral instance. + * This parameter can be: PWR_SDADC_ANALOG1, PWR_SDADC_ANALOG2 or PWR_SDADC_ANALOG3. + * @retval None + */ +void HAL_PWREx_DisableSDADC(uint32_t Analogx) +{ + /* Check the parameters */ + assert_param(IS_PWR_SDADC_ANALOG(Analogx)); + + PWR->CR &= ~Analogx; +} + +#endif /* STM32F373xC || STM32F378xx */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_PWR_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.c new file mode 100644 index 0000000..c2731ea --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.c @@ -0,0 +1,1224 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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 Internal High Speed oscillator + (HSI 8MHz) with Flash 0 wait state, Flash prefetch buffer is enabled, + and all peripherals are off except internal SRAM, Flash and JTAG. + (+) There is no prescaler on High speed (AHB) and Low speed (APB) 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 input floating state, 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 whose clocks are not + derived from the System clock (RTC, ADC, I2C, I2S, TIM, USB FS) + + ##### 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 __HAL_RCC_PPP_CLK_ENABLE() macro. + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_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 + * @{ + */ +/* Bits position in in the CFGR register */ +#define RCC_CFGR_HPRE_BITNUMBER POSITION_VAL(RCC_CFGR_HPRE) +#define RCC_CFGR_PPRE1_BITNUMBER POSITION_VAL(RCC_CFGR_PPRE1) +#define RCC_CFGR_PPRE2_BITNUMBER POSITION_VAL(RCC_CFGR_PPRE2) +/** + * @} + */ +/* Private macro -------------------------------------------------------------*/ +/** @defgroup RCC_Private_Macros RCC Private Macros + * @{ + */ + +#define MCO1_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() +#define MCO1_GPIO_PORT GPIOA +#define MCO1_PIN GPIO_PIN_8 + +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ +/** @defgroup RCC_Private_Variables RCC Private Variables + * @{ + */ +static const uint8_t aPLLMULFactorTable[16U] = { 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, + 10U, 11U, 12U, 13U, 14U, 15U, 16U, 16U}; +static const uint8_t aPredivFactorTable[16U] = { 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, + 9U,10U, 11U, 12U, 13U, 14U, 15U, 16U}; +/** + * @} + */ + +/* Private function prototypes -----------------------------------------------*/ +/* 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/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), 8 MHz factory-trimmed RC used directly or through + the PLL as System clock source. + The HSI clock can be used also to clock the USART and I2C peripherals. + + (#) LSI (low-speed internal), ~40 KHz low consumption RC used as IWDG and/or RTC + clock source. + + (#) HSE (high-speed external), 4 to 32 MHz crystal oscillator used directly or + through the PLL as System clock source. Can be used also as RTC clock source. + + (#) LSE (low-speed external), 32 KHz oscillator used as RTC clock source. + + (#) PLL (clocked by HSI or HSE), featuring different output clocks: + (++) The first output is used to generate the high speed system clock (up to 72 MHz) + (++) The second output is used to generate the clock for the USB FS (48 MHz) + (++) The third output may be used to generate the clock for the ADC peripherals (up to 72 MHz) + (++) The fourth output may be used to generate the clock for the TIM peripherals (144 MHz) + + (#) CSS (Clock security system), once enable using the macro __HAL_RCC_CSS_ENABLE() + and if a HSE clock failure occurs(HSE used directly or through PLL as System + clock source), the System clocks 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 SYSCLK, HSI, HSE, LSI, LSE or PLL + clock (divided by 2) output on pin (such as PA8 pin). + + [..] System, AHB and APB buses clocks configuration + (#) Several clock sources can be used to drive the System clock (SYSCLK): HSI, + HSE and 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: + (++) The FLASH program/erase clock which is always HSI 8MHz clock. + (++) The USB 48 MHz clock which is derived from the PLL VCO clock. + (++) The USART clock which can be derived as well from HSI 8MHz, LSI or LSE. + (++) The I2C clock which can be derived as well from HSI 8MHz clock. + (++) The ADC clock which is derived from PLL output. + (++) The RTC clock which is derived from the LSE, LSI or 1 MHz HSE_RTC + (HSE divided by a programmable prescaler). The System clock (SYSCLK) + frequency must be higher or equal to the RTC clock frequency. + (++) IWDG clock which is always the LSI clock. + + (#) For the STM32F3xx devices, the maximum frequency of the SYSCLK, HCLK, PCLK1 and PCLK2 is 72 MHz, + Depending on the SYSCLK frequency, the flash latency should be adapted accordingly. + + (#) After reset, the System clock source is the HSI (8 MHz) with 0 WS and + prefetch is disabled. + @endverbatim + * @{ + */ + +/* + Additional consideration on the SYSCLK based on Latency settings: + +-----------------------------------------------+ + | Latency | SYSCLK clock frequency (MHz) | + |---------------|-------------------------------| + |0WS(1CPU cycle)| 0 < SYSCLK <= 24 | + |---------------|-------------------------------| + |1WS(2CPU cycle)| 24 < SYSCLK <= 48 | + |---------------|-------------------------------| + |2WS(3CPU cycle)| 48 < SYSCLK <= 72 | + +-----------------------------------------------+ + */ + +/** + * @brief Resets 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 and PLL OFF + * - AHB, APB1 and APB2 prescaler set to 1. + * - CSS and MCO1 OFF + * - All interrupts disabled + * @note This function does not modify the configuration of the + * - Peripheral clocks + * - LSI, LSE and RTC clocks + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_DeInit(void) +{ + uint32_t tickstart = 0; + + /* Set HSION bit */ + SET_BIT(RCC->CR, RCC_CR_HSION); + + /* Insure HSIRDY bit is set before writing default HSITRIM value */ + /* Get start tick */ + tickstart = HAL_GetTick(); + + /* Wait till HSI is ready */ + while(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == RESET) + { + if((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Set HSITRIM default value */ + MODIFY_REG(RCC->CR, RCC_CR_HSITRIM, RCC_CR_HSITRIM_4); + + /* Reset SW[1:0], HPRE[3:0], PPRE1[2:0], PPRE2[2:0] and MCOSEL[2:0] bits */ + CLEAR_BIT(RCC->CFGR, RCC_CFGR_SW | RCC_CFGR_HPRE | RCC_CFGR_PPRE1 | RCC_CFGR_PPRE2 | RCC_CFGR_MCO); + + /* Insure HSI selected as system clock source */ + /* Get start tick */ + tickstart = HAL_GetTick(); + + /* Wait till system clock source 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 for HSI as system clock source */ + SystemCoreClock = HSI_VALUE; + + /* Configure the source of time base considering new system clock settings */ + if(HAL_InitTick(uwTickPrio) != HAL_OK) + { + return HAL_ERROR; + } + + /* Reset HSEON, CSSON, PLLON bits */ + CLEAR_BIT(RCC->CR, RCC_CR_PLLON | RCC_CR_CSSON | RCC_CR_HSEON); + + /* Reset HSEBYP bit */ + CLEAR_BIT(RCC->CR, RCC_CR_HSEBYP); + + /* Insure PLLRDY is reset */ + /* Get start tick */ + tickstart = HAL_GetTick(); + while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + { + if((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Reset CFGR register */ + CLEAR_REG(RCC->CFGR); + + /* Reset CFGR2 register */ + CLEAR_REG(RCC->CFGR2); + + /* Reset CFGR3 register */ + CLEAR_REG(RCC->CFGR3); + + /* Clear all interrupt flags */ + SET_BIT(RCC->CIR, RCC_CIR_LSIRDYC | RCC_CIR_LSERDYC | RCC_CIR_HSIRDYC | RCC_CIR_HSERDYC | RCC_CIR_PLLRDYC | RCC_CIR_CSSC); + + /* Disable all interrupts */ + CLEAR_REG(RCC->CIR); + + /* Reset all CSR flags */ + __HAL_RCC_CLEAR_RESET_FLAGS(); + + return HAL_OK; +} + +/** + * @brief Initializes 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 pll_config; +#if defined(RCC_CFGR_PLLSRC_HSI_PREDIV) + uint32_t pll_config2; +#endif /* RCC_CFGR_PLLSRC_HSI_PREDIV */ + + /* 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)); + + /* When the HSE is used as system clock or clock source for PLL in these cases it is not allowed to be disabled */ + if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE) + || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE))) + { + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + { + return HAL_ERROR; + } + } + else + { + /* Set the new HSE configuration ---------------------------------------*/ + __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); + +#if defined(RCC_CFGR_PLLSRC_HSI_DIV2) + /* Configure the HSE predivision factor --------------------------------*/ + __HAL_RCC_HSE_PREDIV_CONFIG(RCC_OscInitStruct->HSEPredivValue); +#endif /* RCC_CFGR_PLLSRC_HSI_DIV2 */ + + /* Check the HSE State */ + if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till HSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + { + if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till HSE is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) + { + 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_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); + + /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ + if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI) + || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI))) + { + /* When HSI is used as system clock it will not disabled */ + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) + { + 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); + } + } + 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(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + { + 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(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) + { + 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(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) + { + 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(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) + { + 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 of necessary */ + if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + { + __HAL_RCC_PWR_CLK_ENABLE(); + pwrclkchanged = SET; + } + + if(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + { + /* Enable write access to Backup domain */ + SET_BIT(PWR->CR, PWR_CR_DBP); + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + + while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_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(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till LSE is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + + /* Require to disable power clock if necessary */ + if(pwrclkchanged == SET) + { + __HAL_RCC_PWR_CLK_DISABLE(); + } + } + + /*-------------------------------- 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_SYSCLKSOURCE_STATUS_PLLCLK) + { + if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) + { + /* Check the parameters */ + assert_param(IS_RCC_PLLSOURCE(RCC_OscInitStruct->PLL.PLLSource)); + assert_param(IS_RCC_PLL_MUL(RCC_OscInitStruct->PLL.PLLMUL)); +#if defined(RCC_CFGR_PLLSRC_HSI_PREDIV) + assert_param(IS_RCC_PREDIV(RCC_OscInitStruct->PLL.PREDIV)); +#endif + + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till PLL is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + +#if defined(RCC_CFGR_PLLSRC_HSI_PREDIV) + /* Configure the main PLL clock source, predivider and multiplication factor. */ + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + RCC_OscInitStruct->PLL.PREDIV, + RCC_OscInitStruct->PLL.PLLMUL); +#else + /* Configure the main PLL clock source and multiplication factor. */ + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + RCC_OscInitStruct->PLL.PLLMUL); +#endif /* RCC_CFGR_PLLSRC_HSI_PREDIV */ + /* Enable the main PLL. */ + __HAL_RCC_PLL_ENABLE(); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till PLL is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + { + 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(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } + 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 */ + pll_config = RCC->CFGR; +#if defined(RCC_CFGR_PLLSRC_HSI_PREDIV) + pll_config2 = RCC->CFGR2; + if((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + (READ_BIT(pll_config, RCC_CFGR_PLLMUL) != RCC_OscInitStruct->PLL.PLLMUL) || + (READ_BIT(pll_config2, RCC_CFGR2_PREDIV) != RCC_OscInitStruct->PLL.PREDIV)) +#else + if((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + (READ_BIT(pll_config, RCC_CFGR_PLLMUL) != RCC_OscInitStruct->PLL.PLLMUL)) +#endif + { + return HAL_ERROR; + } + } + } + } + + return HAL_OK; +} + +/** + * @brief Initializes 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 + * The value of this parameter depend on device used within the same series + * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency + * and updated by @ref HAL_RCC_GetHCLKFreq() function called within this function + * + * @note The HSI is used (enabled by hardware) as system clock source after + * start-up from Reset, wake-up 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 A switch from one clock source to another occurs only if the target + * clock source is ready (clock stable after start-up delay or PLL locked). + * If a clock source which is not yet ready is selected, the switch will + * occur when the clock source will be ready. + * You can use @ref HAL_RCC_GetClockConfig() function to know which clock is + * currently used as system clock source. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) +{ + uint32_t tickstart = 0U; + + /* 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) 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; + } + } + + /*-------------------------- HCLK Configuration --------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + { + assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); + } + + /*------------------------- SYSCLK Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) + { + assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); + + /* HSE is selected as System Clock Source */ + if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + { + /* Check the HSE ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + { + return HAL_ERROR; + } + } + /* PLL is selected as System Clock Source */ + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + { + /* Check the PLL ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + { + return HAL_ERROR; + } + } + /* HSI is selected as System Clock Source */ + else + { + /* Check the HSI ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + { + return HAL_ERROR; + } + } + + __HAL_RCC_SYSCLK_CONFIG(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; + } + } + } + /* 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 reading the FLASH_ACR register */ + if(__HAL_FLASH_GET_LATENCY() != FLatency) + { + return HAL_ERROR; + } + } + + /*-------------------------- 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[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_BITNUMBER]; + + /* Configure the source of time base considering new system clocks settings*/ + HAL_InitTick (uwTickPrio); + + return HAL_OK; +} + +/** + * @} + */ + +/** @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 control the RCC Clocks + frequencies. + + @endverbatim + * @{ + */ + +#if defined(RCC_CFGR_MCOPRE) +/** + * @brief Selects the clock source to output on MCO pin. + * @note MCO pin should be configured in alternate function mode. + * @param RCC_MCOx specifies the output direction for the clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_MCO1 Clock source to output on MCO1 pin(PA8). + * @param RCC_MCOSource specifies the clock source to output. + * This parameter can be one of the following values: + * @arg @ref RCC_MCO1SOURCE_NOCLOCK No clock selected + * @arg @ref RCC_MCO1SOURCE_SYSCLK System Clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_HSI HSI selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_HSE HSE selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSI LSI selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSE LSE selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_PLLCLK PLLCLK selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_PLLCLK_DIV2 PLLCLK Divided by 2 selected as MCO clock + * @param RCC_MCODiv specifies the MCO DIV. + * 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 + * @arg @ref RCC_MCODIV_32 division by 32 applied to MCO clock + * @arg @ref RCC_MCODIV_64 division by 64 applied to MCO clock + * @arg @ref RCC_MCODIV_128 division by 128 applied to MCO clock + * @retval None + */ +#else +/** + * @brief Selects the clock source to output on MCO pin. + * @note MCO pin should be configured in alternate function mode. + * @param RCC_MCOx specifies the output direction for the clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_MCO1 Clock source to output on MCO1 pin(PA8). + * @param RCC_MCOSource specifies the clock source to output. + * This parameter can be one of the following values: + * @arg @ref RCC_MCO1SOURCE_NOCLOCK No clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_SYSCLK System clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_HSI HSI selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_HSE HSE selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSI LSI selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSE LSE selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_PLLCLK_DIV2 PLLCLK Divided by 2 selected as MCO clock + * @param RCC_MCODiv specifies the MCO DIV. + * This parameter can be one of the following values: + * @arg @ref RCC_MCODIV_1 no division applied to MCO clock + * @retval None + */ +#endif +void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv) +{ + GPIO_InitTypeDef gpio; + + /* Check the parameters */ + assert_param(IS_RCC_MCO(RCC_MCOx)); + assert_param(IS_RCC_MCODIV(RCC_MCODiv)); + assert_param(IS_RCC_MCO1SOURCE(RCC_MCOSource)); + + /* Prevent unused argument(s) compilation warning */ + UNUSED(RCC_MCOx); + + /* Configure the MCO1 pin in alternate function mode */ + gpio.Mode = GPIO_MODE_AF_PP; + gpio.Speed = GPIO_SPEED_FREQ_HIGH; + gpio.Pull = GPIO_NOPULL; + gpio.Pin = MCO1_PIN; + gpio.Alternate = GPIO_AF0_MCO; + + /* MCO1 Clock Enable */ + MCO1_CLK_ENABLE(); + + HAL_GPIO_Init(MCO1_GPIO_PORT, &gpio); + + /* Configure the MCO clock source */ + __HAL_RCC_MCO1_CONFIG(RCC_MCOSource, RCC_MCODiv); +} + +/** + * @brief Enables 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. + * @retval None + */ +void HAL_RCC_EnableCSS(void) +{ + *(__IO uint32_t *) RCC_CR_CSSON_BB = (uint32_t)ENABLE; +} + +/** + * @brief Disables the Clock Security System. + * @retval None + */ +void HAL_RCC_DisableCSS(void) +{ + *(__IO uint32_t *) RCC_CR_CSSON_BB = (uint32_t)DISABLE; +} + +/** + * @brief Returns 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 a value based on HSE_VALUE + * divided by PREDIV factor(**) + * @note If SYSCLK source is PLL, function returns a value based on HSE_VALUE + * divided by PREDIV factor(**) or HSI_VALUE(*) multiplied by the PLL factor. + * @note (*) HSI_VALUE is a constant defined in stm32f3xx_hal_conf.h file (default value + * 8 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * @note (**) HSE_VALUE is a constant defined in stm32f3xx_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 + * baud-rate 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 tmpreg = 0U, prediv = 0U, pllclk = 0U, pllmul = 0U; + uint32_t sysclockfreq = 0U; + + tmpreg = RCC->CFGR; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (tmpreg & RCC_CFGR_SWS) + { + case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock */ + { + sysclockfreq = HSE_VALUE; + break; + } + case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock */ + { + pllmul = aPLLMULFactorTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMUL) >> RCC_CFGR_PLLMUL_Pos]; + prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR2 & RCC_CFGR2_PREDIV) >> RCC_CFGR2_PREDIV_Pos]; +#if defined(RCC_CFGR_PLLSRC_HSI_DIV2) + if ((tmpreg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI) + { + /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV * PLLMUL */ + pllclk = (uint32_t)((uint64_t) HSE_VALUE / (uint64_t) (prediv)) * ((uint64_t) pllmul); + } + else + { + /* HSI used as PLL clock source : PLLCLK = HSI/2 * PLLMUL */ + pllclk = (uint32_t)((uint64_t) (HSI_VALUE >> 1U) * ((uint64_t) pllmul)); + } +#else + if ((tmpreg & RCC_CFGR_PLLSRC_HSE_PREDIV) == RCC_CFGR_PLLSRC_HSE_PREDIV) + { + /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV * PLLMUL */ + pllclk = (uint32_t)((uint64_t) HSE_VALUE / (uint64_t) (prediv)) * ((uint64_t) pllmul); + } + else + { + /* HSI used as PLL clock source : PLLCLK = HSI/PREDIV * PLLMUL */ + pllclk = (uint32_t)((uint64_t) HSI_VALUE / (uint64_t) (prediv)) * ((uint64_t) pllmul); + } +#endif /* RCC_CFGR_PLLSRC_HSI_DIV2 */ + sysclockfreq = pllclk; + break; + } + case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ + default: /* HSI used as system clock */ + { + sysclockfreq = HSI_VALUE; + break; + } + } + return sysclockfreq; +} + +/** + * @brief Returns 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 + * and updated within this function + * @retval HCLK frequency + */ +uint32_t HAL_RCC_GetHCLKFreq(void) +{ + return SystemCoreClock; +} + +/** + * @brief Returns 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 + */ +uint32_t HAL_RCC_GetPCLK1Freq(void) +{ + /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ + return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_BITNUMBER]); +} + +/** + * @brief Returns 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 + */ +uint32_t HAL_RCC_GetPCLK2Freq(void) +{ + /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ + return (HAL_RCC_GetHCLKFreq()>> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_BITNUMBER]); +} + +/** + * @brief Configures 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 != 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; + + + /* Get the HSE configuration -----------------------------------------------*/ + if((RCC->CR &RCC_CR_HSEBYP) == RCC_CR_HSEBYP) + { + RCC_OscInitStruct->HSEState = RCC_HSE_BYPASS; + } + else if((RCC->CR &RCC_CR_HSEON) == RCC_CR_HSEON) + { + RCC_OscInitStruct->HSEState = RCC_HSE_ON; + } + else + { + RCC_OscInitStruct->HSEState = RCC_HSE_OFF; + } +#if defined(RCC_CFGR_PLLSRC_HSI_DIV2) + RCC_OscInitStruct->HSEPredivValue = __HAL_RCC_HSE_GET_PREDIV(); +#endif + + /* Get the HSI configuration -----------------------------------------------*/ + if((RCC->CR &RCC_CR_HSION) == RCC_CR_HSION) + { + RCC_OscInitStruct->HSIState = RCC_HSI_ON; + } + else + { + RCC_OscInitStruct->HSIState = RCC_HSI_OFF; + } + + RCC_OscInitStruct->HSICalibrationValue = (uint32_t)((RCC->CR & RCC_CR_HSITRIM) >> RCC_CR_HSITRIM_Pos); + + /* Get the LSE configuration -----------------------------------------------*/ + if((RCC->BDCR &RCC_BDCR_LSEBYP) == RCC_BDCR_LSEBYP) + { + RCC_OscInitStruct->LSEState = RCC_LSE_BYPASS; + } + else if((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((RCC->CSR &RCC_CSR_LSION) == RCC_CSR_LSION) + { + RCC_OscInitStruct->LSIState = RCC_LSI_ON; + } + else + { + RCC_OscInitStruct->LSIState = RCC_LSI_OFF; + } + + + /* Get the PLL configuration -----------------------------------------------*/ + if((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 = (uint32_t)(RCC->CFGR & RCC_CFGR_PLLSRC); + RCC_OscInitStruct->PLL.PLLMUL = (uint32_t)(RCC->CFGR & RCC_CFGR_PLLMUL); +#if defined(RCC_CFGR_PLLSRC_HSI_PREDIV) + RCC_OscInitStruct->PLL.PREDIV = (uint32_t)(RCC->CFGR2 & RCC_CFGR2_PREDIV); +#endif /* RCC_CFGR_PLLSRC_HSI_PREDIV */ +} + +/** + * @brief Get the RCC_ClkInitStruct according to the internal + * RCC configuration registers. + * @param RCC_ClkInitStruct pointer to an RCC_ClkInitTypeDef structure that + * contains the current clock configuration. + * @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 != NULL); + assert_param(pFLatency != 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 = (uint32_t)(RCC->CFGR & RCC_CFGR_SW); + + /* Get the HCLK configuration ----------------------------------------------*/ + RCC_ClkInitStruct->AHBCLKDivider = (uint32_t)(RCC->CFGR & RCC_CFGR_HPRE); + + /* Get the APB1 configuration ----------------------------------------------*/ + RCC_ClkInitStruct->APB1CLKDivider = (uint32_t)(RCC->CFGR & RCC_CFGR_PPRE1); + + /* Get the APB2 configuration ----------------------------------------------*/ + RCC_ClkInitStruct->APB2CLKDivider = (uint32_t)((RCC->CFGR & RCC_CFGR_PPRE2) >> 3U); + + /* Get the Flash Wait State (Latency) configuration ------------------------*/ + *pFLatency = (uint32_t)(FLASH->ACR & FLASH_ACR_LATENCY); +} + +/** + * @brief This function handles the RCC CSS interrupt request. + * @note This API should be called under the NMI_Handler(). + * @retval None + */ +void HAL_RCC_NMI_IRQHandler(void) +{ + /* Check RCC CSSF 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 could be implemented in the user file + */ +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_RCC_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.c new file mode 100644 index 0000000..93b7c15 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.c @@ -0,0 +1,1581 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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 extension peripheral: + * + Extended Peripheral Control functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +#ifdef HAL_RCC_MODULE_ENABLED + +/** @defgroup RCCEx RCCEx + * @brief RCC Extension HAL module driver. + * @{ + */ + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/** @defgroup RCCEx_Private_Macros RCCEx Private Macros + * @{ + */ +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +#if defined(RCC_CFGR2_ADC1PRES) || defined(RCC_CFGR2_ADCPRE12) || defined(RCC_CFGR2_ADCPRE34) || defined(RCC_CFGR_USBPRE) \ + || defined(RCC_CFGR3_TIM1SW) || defined(RCC_CFGR3_TIM2SW) || defined(RCC_CFGR3_TIM8SW) || defined(RCC_CFGR3_TIM15SW) \ + || defined(RCC_CFGR3_TIM16SW) || defined(RCC_CFGR3_TIM17SW) || defined(RCC_CFGR3_TIM20SW) || defined(RCC_CFGR3_TIM34SW) \ + || defined(RCC_CFGR3_HRTIM1SW) +/** @defgroup RCCEx_Private_Functions RCCEx Private Functions + * @{ + */ +static uint32_t RCC_GetPLLCLKFreq(void); + +/** + * @} + */ +#endif /* RCC_CFGR2_ADC1PRES || RCC_CFGR2_ADCPRExx || RCC_CFGR3_TIMxSW || RCC_CFGR3_HRTIM1SW || RCC_CFGR_USBPRE */ + +/** @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 Initializes the RCC extended peripherals clocks according to the specified + * parameters in the RCC_PeriphCLKInitTypeDef. + * @param PeriphClkInit pointer to an RCC_PeriphCLKInitTypeDef structure that + * contains the configuration information for the Extended Peripherals clocks + * (ADC, CEC, I2C, I2S, SDADC, HRTIM, TIM, USART, RTC and USB). + * + * @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) and RCC_BDCR register are set to their reset values. + * + * @note When the TIMx clock source is APB clock, so the TIMx clock is APB clock or + * APB clock x 2 depending on the APB prescaler. + * When the TIMx clock source is PLL clock, so the TIMx clock is PLL clock x 2. + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) +{ + uint32_t tickstart = 0U; + uint32_t temp_reg = 0U; + FlagStatus pwrclkchanged = RESET; + + /* Check the parameters */ + assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); + + /*---------------------------- RTC configuration -------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == (RCC_PERIPHCLK_RTC)) + { + /* check for RTC Parameters used to output RTCCLK */ + assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); + + + /* As soon as function is called to change RTC clock source, activation of the + power domain is done. */ + /* Requires to enable write access to Backup Domain of necessary */ + if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + { + __HAL_RCC_PWR_CLK_ENABLE(); + pwrclkchanged = SET; + } + + if(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + { + /* Enable write access to Backup domain */ + SET_BIT(PWR->CR, PWR_CR_DBP); + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + + while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + { + if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + + /* Reset the Backup domain only if the RTC Clock source selection is modified from reset value */ + temp_reg = (RCC->BDCR & RCC_BDCR_RTCSEL); + if((temp_reg != 0x00000000U) && (temp_reg != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL))) + { + /* Store the content of BDCR register before the reset of Backup Domain */ + temp_reg = (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 = temp_reg; + + /* Wait for LSERDY if LSE was enabled */ + if (HAL_IS_BIT_SET(temp_reg, RCC_BDCR_LSEON)) + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till LSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + { + if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } + __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); + + /* Require to disable power clock if necessary */ + if(pwrclkchanged == SET) + { + __HAL_RCC_PWR_CLK_DISABLE(); + } + } + + /*------------------------------- USART1 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); + } + +#if defined(RCC_CFGR3_USART2SW) + /*----------------------------- USART2 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); + } +#endif /* RCC_CFGR3_USART2SW */ + +#if defined(RCC_CFGR3_USART3SW) + /*------------------------------ USART3 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 /* RCC_CFGR3_USART3SW */ + + /*------------------------------ I2C1 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); + } + +#if defined(STM32F302xE) || defined(STM32F303xE)\ + || defined(STM32F302xC) || defined(STM32F303xC)\ + || defined(STM32F302x8) \ + || defined(STM32F373xC) + /*------------------------------ USB Configuration ------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB) + { + /* Check the parameters */ + assert_param(IS_RCC_USBCLKSOURCE(PeriphClkInit->USBClockSelection)); + + /* Configure the USB clock source */ + __HAL_RCC_USB_CONFIG(PeriphClkInit->USBClockSelection); + } + +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F302x8 || */ + /* STM32F373xC */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)\ + || defined(STM32F373xC) || defined(STM32F378xx) + + /*------------------------------ I2C2 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); + } + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx || */ + /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) + + /*------------------------------ I2C3 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 /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) + + /*------------------------------ UART4 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); + } + + /*------------------------------ UART5 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 /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) + /*------------------------------ I2S Configuration ------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) + { + /* Check the parameters */ + assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection)); + + /* Configure the I2S clock source */ + __HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection); + } + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) + + /*------------------------------ ADC1 clock Configuration ------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC1) == RCC_PERIPHCLK_ADC1) + { + /* Check the parameters */ + assert_param(IS_RCC_ADC1PLLCLK_DIV(PeriphClkInit->Adc1ClockSelection)); + + /* Configure the ADC1 clock source */ + __HAL_RCC_ADC1_CONFIG(PeriphClkInit->Adc1ClockSelection); + } + +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) + + /*------------------------------ ADC1 & ADC2 clock Configuration -------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC12) == RCC_PERIPHCLK_ADC12) + { + /* Check the parameters */ + assert_param(IS_RCC_ADC12PLLCLK_DIV(PeriphClkInit->Adc12ClockSelection)); + + /* Configure the ADC12 clock source */ + __HAL_RCC_ADC12_CONFIG(PeriphClkInit->Adc12ClockSelection); + } + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) + + /*------------------------------ ADC3 & ADC4 clock Configuration -------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC34) == RCC_PERIPHCLK_ADC34) + { + /* Check the parameters */ + assert_param(IS_RCC_ADC34PLLCLK_DIV(PeriphClkInit->Adc34ClockSelection)); + + /* Configure the ADC34 clock source */ + __HAL_RCC_ADC34_CONFIG(PeriphClkInit->Adc34ClockSelection); + } + +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx */ + +#if defined(STM32F373xC) || defined(STM32F378xx) + + /*------------------------------ ADC1 clock Configuration ------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC1) == RCC_PERIPHCLK_ADC1) + { + /* Check the parameters */ + assert_param(IS_RCC_ADC1PCLK2_DIV(PeriphClkInit->Adc1ClockSelection)); + + /* Configure the ADC1 clock source */ + __HAL_RCC_ADC1_CONFIG(PeriphClkInit->Adc1ClockSelection); + } + +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) + + /*------------------------------ TIM1 clock Configuration ----------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM1) == RCC_PERIPHCLK_TIM1) + { + /* Check the parameters */ + assert_param(IS_RCC_TIM1CLKSOURCE(PeriphClkInit->Tim1ClockSelection)); + + /* Configure the TIM1 clock source */ + __HAL_RCC_TIM1_CONFIG(PeriphClkInit->Tim1ClockSelection); + } + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) + + /*------------------------------ TIM8 clock Configuration ----------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM8) == RCC_PERIPHCLK_TIM8) + { + /* Check the parameters */ + assert_param(IS_RCC_TIM8CLKSOURCE(PeriphClkInit->Tim8ClockSelection)); + + /* Configure the TIM8 clock source */ + __HAL_RCC_TIM8_CONFIG(PeriphClkInit->Tim8ClockSelection); + } + +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx */ + +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) + + /*------------------------------ TIM15 clock Configuration ----------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM15) == RCC_PERIPHCLK_TIM15) + { + /* Check the parameters */ + assert_param(IS_RCC_TIM15CLKSOURCE(PeriphClkInit->Tim15ClockSelection)); + + /* Configure the TIM15 clock source */ + __HAL_RCC_TIM15_CONFIG(PeriphClkInit->Tim15ClockSelection); + } + + /*------------------------------ TIM16 clock Configuration ----------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM16) == RCC_PERIPHCLK_TIM16) + { + /* Check the parameters */ + assert_param(IS_RCC_TIM16CLKSOURCE(PeriphClkInit->Tim16ClockSelection)); + + /* Configure the TIM16 clock source */ + __HAL_RCC_TIM16_CONFIG(PeriphClkInit->Tim16ClockSelection); + } + + /*------------------------------ TIM17 clock Configuration ----------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM17) == RCC_PERIPHCLK_TIM17) + { + /* Check the parameters */ + assert_param(IS_RCC_TIM17CLKSOURCE(PeriphClkInit->Tim17ClockSelection)); + + /* Configure the TIM17 clock source */ + __HAL_RCC_TIM17_CONFIG(PeriphClkInit->Tim17ClockSelection); + } + +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F334x8) + + /*------------------------------ HRTIM1 clock Configuration ----------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_HRTIM1) == RCC_PERIPHCLK_HRTIM1) + { + /* Check the parameters */ + assert_param(IS_RCC_HRTIM1CLKSOURCE(PeriphClkInit->Hrtim1ClockSelection)); + + /* Configure the HRTIM1 clock source */ + __HAL_RCC_HRTIM1_CONFIG(PeriphClkInit->Hrtim1ClockSelection); + } + +#endif /* STM32F334x8 */ + +#if defined(STM32F373xC) || defined(STM32F378xx) + + /*------------------------------ SDADC clock Configuration -------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDADC) == RCC_PERIPHCLK_SDADC) + { + /* Check the parameters */ + assert_param(IS_RCC_SDADCSYSCLK_DIV(PeriphClkInit->SdadcClockSelection)); + + /* Configure the SDADC clock prescaler */ + __HAL_RCC_SDADC_CONFIG(PeriphClkInit->SdadcClockSelection); + } + + /*------------------------------ CEC clock Configuration -------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CEC) == RCC_PERIPHCLK_CEC) + { + /* Check the parameters */ + assert_param(IS_RCC_CECCLKSOURCE(PeriphClkInit->CecClockSelection)); + + /* Configure the CEC clock source */ + __HAL_RCC_CEC_CONFIG(PeriphClkInit->CecClockSelection); + } + +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) + + /*------------------------------ TIM2 clock Configuration -------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM2) == RCC_PERIPHCLK_TIM2) + { + /* Check the parameters */ + assert_param(IS_RCC_TIM2CLKSOURCE(PeriphClkInit->Tim2ClockSelection)); + + /* Configure the CEC clock source */ + __HAL_RCC_TIM2_CONFIG(PeriphClkInit->Tim2ClockSelection); + } + + /*------------------------------ TIM3 clock Configuration -------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM34) == RCC_PERIPHCLK_TIM34) + { + /* Check the parameters */ + assert_param(IS_RCC_TIM3CLKSOURCE(PeriphClkInit->Tim34ClockSelection)); + + /* Configure the CEC clock source */ + __HAL_RCC_TIM34_CONFIG(PeriphClkInit->Tim34ClockSelection); + } + + /*------------------------------ TIM15 clock Configuration ------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM15) == RCC_PERIPHCLK_TIM15) + { + /* Check the parameters */ + assert_param(IS_RCC_TIM15CLKSOURCE(PeriphClkInit->Tim15ClockSelection)); + + /* Configure the CEC clock source */ + __HAL_RCC_TIM15_CONFIG(PeriphClkInit->Tim15ClockSelection); + } + + /*------------------------------ TIM16 clock Configuration ------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM16) == RCC_PERIPHCLK_TIM16) + { + /* Check the parameters */ + assert_param(IS_RCC_TIM16CLKSOURCE(PeriphClkInit->Tim16ClockSelection)); + + /* Configure the CEC clock source */ + __HAL_RCC_TIM16_CONFIG(PeriphClkInit->Tim16ClockSelection); + } + + /*------------------------------ TIM17 clock Configuration ------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM17) == RCC_PERIPHCLK_TIM17) + { + /* Check the parameters */ + assert_param(IS_RCC_TIM17CLKSOURCE(PeriphClkInit->Tim17ClockSelection)); + + /* Configure the CEC clock source */ + __HAL_RCC_TIM17_CONFIG(PeriphClkInit->Tim17ClockSelection); + } + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx) + /*------------------------------ TIM20 clock Configuration ------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM20) == RCC_PERIPHCLK_TIM20) + { + /* Check the parameters */ + assert_param(IS_RCC_TIM20CLKSOURCE(PeriphClkInit->Tim20ClockSelection)); + + /* Configure the CEC clock source */ + __HAL_RCC_TIM20_CONFIG(PeriphClkInit->Tim20ClockSelection); + } +#endif /* STM32F303xE || STM32F398xx */ + + + return HAL_OK; +} + +/** + * @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 + * (ADC, CEC, I2C, I2S, SDADC, HRTIM, TIM, USART, RTC and USB clocks). + * @retval None + */ +void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) +{ + /* Set all possible values for the extended clock type parameter------------*/ + /* Common part first */ +#if defined(RCC_CFGR3_USART2SW) && defined(RCC_CFGR3_USART3SW) + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_USART3 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_RTC; +#else + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_USART1 | \ + RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_RTC; +#endif /* RCC_CFGR3_USART2SW && RCC_CFGR3_USART3SW */ + + /* Get the RTC configuration --------------------------------------------*/ + PeriphClkInit->RTCClockSelection = __HAL_RCC_GET_RTC_SOURCE(); + /* Get the USART1 clock configuration --------------------------------------------*/ + PeriphClkInit->Usart1ClockSelection = __HAL_RCC_GET_USART1_SOURCE(); +#if defined(RCC_CFGR3_USART2SW) + /* Get the USART2 clock configuration -----------------------------------------*/ + PeriphClkInit->Usart2ClockSelection = __HAL_RCC_GET_USART2_SOURCE(); +#endif /* RCC_CFGR3_USART2SW */ +#if defined(RCC_CFGR3_USART3SW) + /* Get the USART3 clock configuration -----------------------------------------*/ + PeriphClkInit->Usart3ClockSelection = __HAL_RCC_GET_USART3_SOURCE(); +#endif /* RCC_CFGR3_USART3SW */ + /* Get the I2C1 clock configuration -----------------------------------------*/ + PeriphClkInit->I2c1ClockSelection = __HAL_RCC_GET_I2C1_SOURCE(); + +#if defined(STM32F302xE) || defined(STM32F303xE)\ + || defined(STM32F302xC) || defined(STM32F303xC)\ + || defined(STM32F302x8) \ + || defined(STM32F373xC) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_USB; + /* Get the USB clock configuration -----------------------------------------*/ + PeriphClkInit->USBClockSelection = __HAL_RCC_GET_USB_SOURCE(); + +#endif /* STM32F302xE || STM32F303xE || */ + /* STM32F302xC || STM32F303xC || */ + /* STM32F302x8 || */ + /* STM32F373xC */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)\ + || defined(STM32F373xC) || defined(STM32F378xx) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_I2C2; + /* Get the I2C2 clock configuration -----------------------------------------*/ + PeriphClkInit->I2c2ClockSelection = __HAL_RCC_GET_I2C2_SOURCE(); + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx || */ + /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_I2C3; + /* Get the I2C3 clock configuration -----------------------------------------*/ + PeriphClkInit->I2c3ClockSelection = __HAL_RCC_GET_I2C3_SOURCE(); + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) ||defined(STM32F358xx) + + PeriphClkInit->PeriphClockSelection |= (RCC_PERIPHCLK_UART4 | RCC_PERIPHCLK_UART5); + /* Get the UART4 clock configuration -----------------------------------------*/ + PeriphClkInit->Uart4ClockSelection = __HAL_RCC_GET_UART4_SOURCE(); + /* Get the UART5 clock configuration -----------------------------------------*/ + PeriphClkInit->Uart5ClockSelection = __HAL_RCC_GET_UART5_SOURCE(); + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_I2S; + /* Get the I2S clock configuration -----------------------------------------*/ + PeriphClkInit->I2sClockSelection = __HAL_RCC_GET_I2S_SOURCE(); + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx || */ + +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)\ + || defined(STM32F373xC) || defined(STM32F378xx) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_ADC1; + /* Get the ADC1 clock configuration -----------------------------------------*/ + PeriphClkInit->Adc1ClockSelection = __HAL_RCC_GET_ADC1_SOURCE(); + +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx || */ + /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_ADC12; + /* Get the ADC1 & ADC2 clock configuration -----------------------------------------*/ + PeriphClkInit->Adc12ClockSelection = __HAL_RCC_GET_ADC12_SOURCE(); + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_ADC34; + /* Get the ADC3 & ADC4 clock configuration -----------------------------------------*/ + PeriphClkInit->Adc34ClockSelection = __HAL_RCC_GET_ADC34_SOURCE(); + +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)\ + || defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)\ + || defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_TIM1; + /* Get the TIM1 clock configuration -----------------------------------------*/ + PeriphClkInit->Tim1ClockSelection = __HAL_RCC_GET_TIM1_SOURCE(); + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */ + /* STM32F302xC || STM32F303xC || STM32F358xx || */ + /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ + /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F303xE) || defined(STM32F398xx)\ + || defined(STM32F303xC) || defined(STM32F358xx) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_TIM8; + /* Get the TIM8 clock configuration -----------------------------------------*/ + PeriphClkInit->Tim8ClockSelection = __HAL_RCC_GET_TIM8_SOURCE(); + +#endif /* STM32F303xE || STM32F398xx || */ + /* STM32F303xC || STM32F358xx */ + +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) + + PeriphClkInit->PeriphClockSelection |= (RCC_PERIPHCLK_TIM15 | RCC_PERIPHCLK_TIM16 | RCC_PERIPHCLK_TIM17); + /* Get the TIM15 clock configuration -----------------------------------------*/ + PeriphClkInit->Tim15ClockSelection = __HAL_RCC_GET_TIM15_SOURCE(); + /* Get the TIM16 clock configuration -----------------------------------------*/ + PeriphClkInit->Tim16ClockSelection = __HAL_RCC_GET_TIM16_SOURCE(); + /* Get the TIM17 clock configuration -----------------------------------------*/ + PeriphClkInit->Tim17ClockSelection = __HAL_RCC_GET_TIM17_SOURCE(); + +#endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */ + +#if defined(STM32F334x8) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_HRTIM1; + /* Get the HRTIM1 clock configuration -----------------------------------------*/ + PeriphClkInit->Hrtim1ClockSelection = __HAL_RCC_GET_HRTIM1_SOURCE(); + +#endif /* STM32F334x8 */ + +#if defined(STM32F373xC) || defined(STM32F378xx) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_SDADC; + /* Get the SDADC clock configuration -----------------------------------------*/ + PeriphClkInit->SdadcClockSelection = __HAL_RCC_GET_SDADC_SOURCE(); + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_CEC; + /* Get the CEC clock configuration -----------------------------------------*/ + PeriphClkInit->CecClockSelection = __HAL_RCC_GET_CEC_SOURCE(); + +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_TIM2; + /* Get the TIM2 clock configuration -----------------------------------------*/ + PeriphClkInit->Tim2ClockSelection = __HAL_RCC_GET_TIM2_SOURCE(); + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_TIM34; + /* Get the TIM3 clock configuration -----------------------------------------*/ + PeriphClkInit->Tim34ClockSelection = __HAL_RCC_GET_TIM34_SOURCE(); + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_TIM15; + /* Get the TIM15 clock configuration -----------------------------------------*/ + PeriphClkInit->Tim15ClockSelection = __HAL_RCC_GET_TIM15_SOURCE(); + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_TIM16; + /* Get the TIM16 clock configuration -----------------------------------------*/ + PeriphClkInit->Tim16ClockSelection = __HAL_RCC_GET_TIM16_SOURCE(); + + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_TIM17; + /* Get the TIM17 clock configuration -----------------------------------------*/ + PeriphClkInit->Tim17ClockSelection = __HAL_RCC_GET_TIM17_SOURCE(); + +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + +#if defined (STM32F303xE) || defined(STM32F398xx) + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_TIM20; + /* Get the TIM20 clock configuration -----------------------------------------*/ + PeriphClkInit->Tim20ClockSelection = __HAL_RCC_GET_TIM20_SOURCE(); +#endif /* STM32F303xE || STM32F398xx */ +} + +/** + * @brief Returns the peripheral clock frequency + * @note Returns 0 if peripheral clock is unknown or 0xDEADDEAD if not applicable. + * @param PeriphClk Peripheral clock identifier + * This parameter can be one of the following values: + * @arg @ref RCC_PERIPHCLK_RTC RTC peripheral clock + * @arg @ref RCC_PERIPHCLK_USART1 USART1 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C1 I2C1 peripheral clock + @if STM32F301x8 + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C3 I2C3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S I2S peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC1 ADC1 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM15 TIM15 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM16 TIM16 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM17 TIM17 peripheral clock + @endif + @if STM32F302x8 + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C3 I2C3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S I2S peripheral clock + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC1 ADC1 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM15 TIM15 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM16 TIM16 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM17 TIM17 peripheral clock + @endif + @if STM32F302xC + * @arg @ref RCC_PERIPHCLK_USART2 USART2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART3 USART3 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART4 UART4 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART5 UART5 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S I2S peripheral clock + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC12 ADC12 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + @endif + @if STM32F302xE + * @arg @ref RCC_PERIPHCLK_USART2 USART2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART3 USART3 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART4 UART4 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART5 UART5 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C3 I2C3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S I2S peripheral clock + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC12 ADC12 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM2 TIM2 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM15 TIM15 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM16 TIM16 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM17 TIM17 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM34 TIM34 peripheral clock + @endif + @if STM32F303x8 + * @arg @ref RCC_PERIPHCLK_ADC12 ADC12 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + @endif + @if STM32F303xC + * @arg @ref RCC_PERIPHCLK_USART2 USART2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART3 USART3 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART4 UART4 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART5 UART5 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S I2S peripheral clock + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC12 ADC12 peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC34 ADC34 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM8 TIM8 peripheral clock + @endif + @if STM32F303xE + * @arg @ref RCC_PERIPHCLK_USART2 USART2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART3 USART3 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART4 UART4 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART5 UART5 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C3 I2C3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S I2S peripheral clock + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC12 ADC12 peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC34 ADC34 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM2 TIM2 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM8 TIM8 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM15 TIM15 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM16 TIM16 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM17 TIM17 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM20 TIM20 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM34 TIM34 peripheral clock + @endif + @if STM32F318xx + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C3 I2C3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S I2S peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC1 ADC1 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM15 TIM15 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM16 TIM16 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM17 TIM17 peripheral clock + @endif + @if STM32F328xx + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC12 ADC12 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + @endif + @if STM32F334x8 + * @arg @ref RCC_PERIPHCLK_ADC12 ADC12 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + * @arg @ref RCC_PERIPHCLK_HRTIM1 HRTIM1 peripheral clock + @endif + @if STM32F358xx + * @arg @ref RCC_PERIPHCLK_USART2 USART2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART3 USART3 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART4 UART4 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART5 UART5 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S I2S peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC12 ADC12 peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC34 ADC34 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM8 TIM8 peripheral clock + @endif + @if STM32F373xC + * @arg @ref RCC_PERIPHCLK_USART2 USART2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART3 USART3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC1 ADC1 peripheral clock + * @arg @ref RCC_PERIPHCLK_SDADC SDADC peripheral clock + * @arg @ref RCC_PERIPHCLK_CEC CEC peripheral clock + @endif + @if STM32F378xx + * @arg @ref RCC_PERIPHCLK_USART2 USART2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART3 USART3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC1 ADC1 peripheral clock + * @arg @ref RCC_PERIPHCLK_SDADC SDADC peripheral clock + * @arg @ref RCC_PERIPHCLK_CEC CEC peripheral clock + @endif + @if STM32F398xx + * @arg @ref RCC_PERIPHCLK_USART2 USART2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USART3 USART3 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART4 UART4 peripheral clock + * @arg @ref RCC_PERIPHCLK_UART5 UART5 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C2 I2C2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2C3 I2C3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S I2S peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC12 ADC12 peripheral clock + * @arg @ref RCC_PERIPHCLK_ADC34 ADC34 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM1 TIM1 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM2 TIM2 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM8 TIM8 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM15 TIM15 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM16 TIM16 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM17 TIM17 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM20 TIM20 peripheral clock + * @arg @ref RCC_PERIPHCLK_TIM34 TIM34 peripheral clock + @endif + * @retval Frequency in Hz (0: means that no available frequency for the peripheral) + */ +uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint32_t PeriphClk) +{ + /* frequency == 0 : means that no available frequency for the peripheral */ + uint32_t frequency = 0U; + + uint32_t srcclk = 0U; +#if defined(RCC_CFGR2_ADC1PRES) || defined(RCC_CFGR2_ADCPRE12) || defined(RCC_CFGR2_ADCPRE34) + static const uint16_t adc_pll_prediv_table[16U] = { 1U, 2U, 4U, 6U, 8U, 10U, 12U, 16U, 32U, 64U, 128U, 256U, 256U, 256U, 256U, 256U}; +#endif /* RCC_CFGR2_ADC1PRES || RCC_CFGR2_ADCPRE12 || RCC_CFGR2_ADCPRE34 */ +#if defined(RCC_CFGR_SDPRE) + static const uint8_t sdadc_prescaler_table[16U] = { 2U, 4U, 6U, 8U, 10U, 12U, 14U, 16U, 20U, 24U, 28U, 32U, 36U, 40U, 44U, 48U}; +#endif /* RCC_CFGR_SDPRE */ + + /* Check the parameters */ + assert_param(IS_RCC_PERIPHCLOCK(PeriphClk)); + + switch (PeriphClk) + { + case 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 ((srcclk == RCC_RTCCLKSOURCE_LSE) && (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY))) + { + frequency = LSE_VALUE; + } + /* Check if LSI is ready and if RTC clock selection is LSI */ + else if ((srcclk == RCC_RTCCLKSOURCE_LSI) && (HAL_IS_BIT_SET(RCC->CSR, RCC_CSR_LSIRDY))) + { + frequency = LSI_VALUE; + } + /* Check if HSE is ready and if RTC clock selection is HSI_DIV32*/ + else if ((srcclk == RCC_RTCCLKSOURCE_HSE_DIV32) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSERDY))) + { + frequency = HSE_VALUE / 32U; + } + break; + } + case RCC_PERIPHCLK_USART1: + { + /* Get the current USART1 source */ + srcclk = __HAL_RCC_GET_USART1_SOURCE(); + + /* Check if USART1 clock selection is PCLK1 */ +#if defined(RCC_USART1CLKSOURCE_PCLK2) + if (srcclk == RCC_USART1CLKSOURCE_PCLK2) + { + frequency = HAL_RCC_GetPCLK2Freq(); + } +#else + if (srcclk == RCC_USART1CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } +#endif /* RCC_USART1CLKSOURCE_PCLK2 */ + /* Check if HSI is ready and if USART1 clock selection is HSI */ + else if ((srcclk == RCC_USART1CLKSOURCE_HSI) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY))) + { + frequency = HSI_VALUE; + } + /* Check if USART1 clock selection is SYSCLK */ + else if (srcclk == RCC_USART1CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + /* Check if LSE is ready and if USART1 clock selection is LSE */ + else if ((srcclk == RCC_USART1CLKSOURCE_LSE) && (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY))) + { + frequency = LSE_VALUE; + } + break; + } +#if defined(RCC_CFGR3_USART2SW) + case RCC_PERIPHCLK_USART2: + { + /* Get the current USART2 source */ + srcclk = __HAL_RCC_GET_USART2_SOURCE(); + + /* Check if USART2 clock selection is PCLK1 */ + if (srcclk == RCC_USART2CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + /* Check if HSI is ready and if USART2 clock selection is HSI */ + else if ((srcclk == RCC_USART2CLKSOURCE_HSI) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY))) + { + frequency = HSI_VALUE; + } + /* Check if USART2 clock selection is SYSCLK */ + else if (srcclk == RCC_USART2CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + /* Check if LSE is ready and if USART2 clock selection is LSE */ + else if ((srcclk == RCC_USART2CLKSOURCE_LSE) && (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY))) + { + frequency = LSE_VALUE; + } + break; + } +#endif /* RCC_CFGR3_USART2SW */ +#if defined(RCC_CFGR3_USART3SW) + case RCC_PERIPHCLK_USART3: + { + /* Get the current USART3 source */ + srcclk = __HAL_RCC_GET_USART3_SOURCE(); + + /* Check if USART3 clock selection is PCLK1 */ + if (srcclk == RCC_USART3CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + /* Check if HSI is ready and if USART3 clock selection is HSI */ + else if ((srcclk == RCC_USART3CLKSOURCE_HSI) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY))) + { + frequency = HSI_VALUE; + } + /* Check if USART3 clock selection is SYSCLK */ + else if (srcclk == RCC_USART3CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + /* Check if LSE is ready and if USART3 clock selection is LSE */ + else if ((srcclk == RCC_USART3CLKSOURCE_LSE) && (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY))) + { + frequency = LSE_VALUE; + } + break; + } +#endif /* RCC_CFGR3_USART3SW */ +#if defined(RCC_CFGR3_UART4SW) + case RCC_PERIPHCLK_UART4: + { + /* Get the current UART4 source */ + srcclk = __HAL_RCC_GET_UART4_SOURCE(); + + /* Check if UART4 clock selection is PCLK1 */ + if (srcclk == RCC_UART4CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + /* Check if HSI is ready and if UART4 clock selection is HSI */ + else if ((srcclk == RCC_UART4CLKSOURCE_HSI) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY))) + { + frequency = HSI_VALUE; + } + /* Check if UART4 clock selection is SYSCLK */ + else if (srcclk == RCC_UART4CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + /* Check if LSE is ready and if UART4 clock selection is LSE */ + else if ((srcclk == RCC_UART4CLKSOURCE_LSE) && (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY))) + { + frequency = LSE_VALUE; + } + break; + } +#endif /* RCC_CFGR3_UART4SW */ +#if defined(RCC_CFGR3_UART5SW) + case RCC_PERIPHCLK_UART5: + { + /* Get the current UART5 source */ + srcclk = __HAL_RCC_GET_UART5_SOURCE(); + + /* Check if UART5 clock selection is PCLK1 */ + if (srcclk == RCC_UART5CLKSOURCE_PCLK1) + { + frequency = HAL_RCC_GetPCLK1Freq(); + } + /* Check if HSI is ready and if UART5 clock selection is HSI */ + else if ((srcclk == RCC_UART5CLKSOURCE_HSI) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY))) + { + frequency = HSI_VALUE; + } + /* Check if UART5 clock selection is SYSCLK */ + else if (srcclk == RCC_UART5CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + /* Check if LSE is ready and if UART5 clock selection is LSE */ + else if ((srcclk == RCC_UART5CLKSOURCE_LSE) && (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY))) + { + frequency = LSE_VALUE; + } + break; + } +#endif /* RCC_CFGR3_UART5SW */ + case RCC_PERIPHCLK_I2C1: + { + /* Get the current I2C1 source */ + srcclk = __HAL_RCC_GET_I2C1_SOURCE(); + + /* Check if HSI is ready and if I2C1 clock selection is HSI */ + if ((srcclk == RCC_I2C1CLKSOURCE_HSI) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY))) + { + frequency = HSI_VALUE; + } + /* Check if I2C1 clock selection is SYSCLK */ + else if (srcclk == RCC_I2C1CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + break; + } +#if defined(RCC_CFGR3_I2C2SW) + case RCC_PERIPHCLK_I2C2: + { + /* Get the current I2C2 source */ + srcclk = __HAL_RCC_GET_I2C2_SOURCE(); + + /* Check if HSI is ready and if I2C2 clock selection is HSI */ + if ((srcclk == RCC_I2C2CLKSOURCE_HSI) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY))) + { + frequency = HSI_VALUE; + } + /* Check if I2C2 clock selection is SYSCLK */ + else if (srcclk == RCC_I2C2CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + break; + } +#endif /* RCC_CFGR3_I2C2SW */ +#if defined(RCC_CFGR3_I2C3SW) + case RCC_PERIPHCLK_I2C3: + { + /* Get the current I2C3 source */ + srcclk = __HAL_RCC_GET_I2C3_SOURCE(); + + /* Check if HSI is ready and if I2C3 clock selection is HSI */ + if ((srcclk == RCC_I2C3CLKSOURCE_HSI) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY))) + { + frequency = HSI_VALUE; + } + /* Check if I2C3 clock selection is SYSCLK */ + else if (srcclk == RCC_I2C3CLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + break; + } +#endif /* RCC_CFGR3_I2C3SW */ +#if defined(RCC_CFGR_I2SSRC) + case RCC_PERIPHCLK_I2S: + { + /* Get the current I2S source */ + srcclk = __HAL_RCC_GET_I2S_SOURCE(); + + /* Check if I2S clock selection is External clock mapped on the I2S_CKIN pin */ + if (srcclk == RCC_I2SCLKSOURCE_EXT) + { + /* External clock used. Frequency cannot be returned.*/ + frequency = 0xDEADDEADU; + } + /* Check if I2S clock selection is SYSCLK */ + else if (srcclk == RCC_I2SCLKSOURCE_SYSCLK) + { + frequency = HAL_RCC_GetSysClockFreq(); + } + break; + } +#endif /* RCC_CFGR_I2SSRC */ +#if defined(RCC_CFGR_USBPRE) + case RCC_PERIPHCLK_USB: + { + /* Check if PLL is ready */ + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY)) + { + /* Get the current USB source */ + srcclk = __HAL_RCC_GET_USB_SOURCE(); + + /* Check if USB clock selection is not divided */ + if (srcclk == RCC_USBCLKSOURCE_PLL) + { + frequency = RCC_GetPLLCLKFreq(); + } + /* Check if USB clock selection is divided by 1.5 */ + else /* RCC_USBCLKSOURCE_PLL_DIV1_5 */ + { + frequency = (RCC_GetPLLCLKFreq() * 3U) / 2U; + } + } + break; + } +#endif /* RCC_CFGR_USBPRE */ +#if defined(RCC_CFGR2_ADC1PRES) || defined(RCC_CFGR_ADCPRE) + case RCC_PERIPHCLK_ADC1: + { + /* Get the current ADC1 source */ + srcclk = __HAL_RCC_GET_ADC1_SOURCE(); +#if defined(RCC_CFGR2_ADC1PRES) + /* Check if ADC1 clock selection is AHB */ + if (srcclk == RCC_ADC1PLLCLK_OFF) + { + frequency = SystemCoreClock; + } + /* PLL clock has been selected */ + else + { + /* Check if PLL is ready */ + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY)) + { + /* Frequency is the PLL frequency divided by ADC prescaler (1U/2U/4U/6U/8U/10U/12U/16U/32U/64U/128U/256U) */ + frequency = RCC_GetPLLCLKFreq() / adc_pll_prediv_table[(srcclk >> RCC_CFGR2_ADC1PRES_Pos) & 0xFU]; + } + } +#else /* RCC_CFGR_ADCPRE */ + /* ADC1 is set to PLCK2 frequency divided by 2U/4U/6U/8U */ + frequency = HAL_RCC_GetPCLK2Freq() / (((srcclk >> RCC_CFGR_ADCPRE_Pos) + 1U) * 2U); +#endif /* RCC_CFGR2_ADC1PRES */ + break; + } +#endif /* RCC_CFGR2_ADC1PRES || RCC_CFGR_ADCPRE */ +#if defined(RCC_CFGR2_ADCPRE12) + case RCC_PERIPHCLK_ADC12: + { + /* Get the current ADC12 source */ + srcclk = __HAL_RCC_GET_ADC12_SOURCE(); + /* Check if ADC12 clock selection is AHB */ + if (srcclk == RCC_ADC12PLLCLK_OFF) + { + frequency = SystemCoreClock; + } + /* PLL clock has been selected */ + else + { + /* Check if PLL is ready */ + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY)) + { + /* Frequency is the PLL frequency divided by ADC prescaler (1U/2U/4U/6/8U/10U/12U/16U/32U/64U/128U/256U) */ + frequency = RCC_GetPLLCLKFreq() / adc_pll_prediv_table[(srcclk >> RCC_CFGR2_ADCPRE12_Pos) & 0xF]; + } + } + break; + } +#endif /* RCC_CFGR2_ADCPRE12 */ +#if defined(RCC_CFGR2_ADCPRE34) + case RCC_PERIPHCLK_ADC34: + { + /* Get the current ADC34 source */ + srcclk = __HAL_RCC_GET_ADC34_SOURCE(); + /* Check if ADC34 clock selection is AHB */ + if (srcclk == RCC_ADC34PLLCLK_OFF) + { + frequency = SystemCoreClock; + } + /* PLL clock has been selected */ + else + { + /* Check if PLL is ready */ + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY)) + { + /* Frequency is the PLL frequency divided by ADC prescaler (1U/2U/4U/6U/8U/10U/12U/16U/32U/64U/128U/256U) */ + frequency = RCC_GetPLLCLKFreq() / adc_pll_prediv_table[(srcclk >> RCC_CFGR2_ADCPRE34_Pos) & 0xF]; + } + } + break; + } +#endif /* RCC_CFGR2_ADCPRE34 */ +#if defined(RCC_CFGR3_TIM1SW) + case RCC_PERIPHCLK_TIM1: + { + /* Get the current TIM1 source */ + srcclk = __HAL_RCC_GET_TIM1_SOURCE(); + + /* Check if PLL is ready and if TIM1 clock selection is PLL */ + if ((srcclk == RCC_TIM1CLK_PLLCLK) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY))) + { + frequency = RCC_GetPLLCLKFreq(); + } + /* Check if TIM1 clock selection is SYSCLK */ + else if (srcclk == RCC_TIM1CLK_HCLK) + { + frequency = SystemCoreClock; + } + break; + } +#endif /* RCC_CFGR3_TIM1SW */ +#if defined(RCC_CFGR3_TIM2SW) + case RCC_PERIPHCLK_TIM2: + { + /* Get the current TIM2 source */ + srcclk = __HAL_RCC_GET_TIM2_SOURCE(); + + /* Check if PLL is ready and if TIM2 clock selection is PLL */ + if ((srcclk == RCC_TIM2CLK_PLLCLK) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY))) + { + frequency = RCC_GetPLLCLKFreq(); + } + /* Check if TIM2 clock selection is SYSCLK */ + else if (srcclk == RCC_TIM2CLK_HCLK) + { + frequency = SystemCoreClock; + } + break; + } +#endif /* RCC_CFGR3_TIM2SW */ +#if defined(RCC_CFGR3_TIM8SW) + case RCC_PERIPHCLK_TIM8: + { + /* Get the current TIM8 source */ + srcclk = __HAL_RCC_GET_TIM8_SOURCE(); + + /* Check if PLL is ready and if TIM8 clock selection is PLL */ + if ((srcclk == RCC_TIM8CLK_PLLCLK) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY))) + { + frequency = RCC_GetPLLCLKFreq(); + } + /* Check if TIM8 clock selection is SYSCLK */ + else if (srcclk == RCC_TIM8CLK_HCLK) + { + frequency = SystemCoreClock; + } + break; + } +#endif /* RCC_CFGR3_TIM8SW */ +#if defined(RCC_CFGR3_TIM15SW) + case RCC_PERIPHCLK_TIM15: + { + /* Get the current TIM15 source */ + srcclk = __HAL_RCC_GET_TIM15_SOURCE(); + + /* Check if PLL is ready and if TIM15 clock selection is PLL */ + if ((srcclk == RCC_TIM15CLK_PLLCLK) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY))) + { + frequency = RCC_GetPLLCLKFreq(); + } + /* Check if TIM15 clock selection is SYSCLK */ + else if (srcclk == RCC_TIM15CLK_HCLK) + { + frequency = SystemCoreClock; + } + break; + } +#endif /* RCC_CFGR3_TIM15SW */ +#if defined(RCC_CFGR3_TIM16SW) + case RCC_PERIPHCLK_TIM16: + { + /* Get the current TIM16 source */ + srcclk = __HAL_RCC_GET_TIM16_SOURCE(); + + /* Check if PLL is ready and if TIM16 clock selection is PLL */ + if ((srcclk == RCC_TIM16CLK_PLLCLK) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY))) + { + frequency = RCC_GetPLLCLKFreq(); + } + /* Check if TIM16 clock selection is SYSCLK */ + else if (srcclk == RCC_TIM16CLK_HCLK) + { + frequency = SystemCoreClock; + } + break; + } +#endif /* RCC_CFGR3_TIM16SW */ +#if defined(RCC_CFGR3_TIM17SW) + case RCC_PERIPHCLK_TIM17: + { + /* Get the current TIM17 source */ + srcclk = __HAL_RCC_GET_TIM17_SOURCE(); + + /* Check if PLL is ready and if TIM17 clock selection is PLL */ + if ((srcclk == RCC_TIM17CLK_PLLCLK) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY))) + { + frequency = RCC_GetPLLCLKFreq(); + } + /* Check if TIM17 clock selection is SYSCLK */ + else if (srcclk == RCC_TIM17CLK_HCLK) + { + frequency = SystemCoreClock; + } + break; + } +#endif /* RCC_CFGR3_TIM17SW */ +#if defined(RCC_CFGR3_TIM20SW) + case RCC_PERIPHCLK_TIM20: + { + /* Get the current TIM20 source */ + srcclk = __HAL_RCC_GET_TIM20_SOURCE(); + + /* Check if PLL is ready and if TIM20 clock selection is PLL */ + if ((srcclk == RCC_TIM20CLK_PLLCLK) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY))) + { + frequency = RCC_GetPLLCLKFreq(); + } + /* Check if TIM20 clock selection is SYSCLK */ + else if (srcclk == RCC_TIM20CLK_HCLK) + { + frequency = SystemCoreClock; + } + break; + } +#endif /* RCC_CFGR3_TIM20SW */ +#if defined(RCC_CFGR3_TIM34SW) + case RCC_PERIPHCLK_TIM34: + { + /* Get the current TIM34 source */ + srcclk = __HAL_RCC_GET_TIM34_SOURCE(); + + /* Check if PLL is ready and if TIM34 clock selection is PLL */ + if ((srcclk == RCC_TIM34CLK_PLLCLK) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY))) + { + frequency = RCC_GetPLLCLKFreq(); + } + /* Check if TIM34 clock selection is SYSCLK */ + else if (srcclk == RCC_TIM34CLK_HCLK) + { + frequency = SystemCoreClock; + } + break; + } +#endif /* RCC_CFGR3_TIM34SW */ +#if defined(RCC_CFGR3_HRTIM1SW) + case RCC_PERIPHCLK_HRTIM1: + { + /* Get the current HRTIM1 source */ + srcclk = __HAL_RCC_GET_HRTIM1_SOURCE(); + + /* Check if PLL is ready and if HRTIM1 clock selection is PLL */ + if ((srcclk == RCC_HRTIM1CLK_PLLCLK) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLRDY))) + { + frequency = RCC_GetPLLCLKFreq(); + } + /* Check if HRTIM1 clock selection is SYSCLK */ + else if (srcclk == RCC_HRTIM1CLK_HCLK) + { + frequency = SystemCoreClock; + } + break; + } +#endif /* RCC_CFGR3_HRTIM1SW */ +#if defined(RCC_CFGR_SDPRE) + case RCC_PERIPHCLK_SDADC: + { + /* Get the current SDADC source */ + srcclk = __HAL_RCC_GET_SDADC_SOURCE(); + /* Frequency is the system frequency divided by SDADC prescaler (2U/4U/6U/8U/10U/12U/14U/16U/20U/24U/28U/32U/36U/40U/44U/48U) */ + frequency = SystemCoreClock / sdadc_prescaler_table[(srcclk >> RCC_CFGR_SDPRE_Pos) & 0xF]; + break; + } +#endif /* RCC_CFGR_SDPRE */ +#if defined(RCC_CFGR3_CECSW) + case RCC_PERIPHCLK_CEC: + { + /* Get the current CEC source */ + srcclk = __HAL_RCC_GET_CEC_SOURCE(); + + /* Check if HSI is ready and if CEC clock selection is HSI */ + if ((srcclk == RCC_CECCLKSOURCE_HSI) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSIRDY))) + { + frequency = HSI_VALUE; + } + /* Check if LSE is ready and if CEC clock selection is LSE */ + else if ((srcclk == RCC_CECCLKSOURCE_LSE) && (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSERDY))) + { + frequency = LSE_VALUE; + } + break; + } +#endif /* RCC_CFGR3_CECSW */ + default: + { + break; + } + } + return(frequency); +} + +/** + * @} + */ + +/** + * @} + */ + + +#if defined(RCC_CFGR2_ADC1PRES) || defined(RCC_CFGR2_ADCPRE12) || defined(RCC_CFGR2_ADCPRE34) || defined(RCC_CFGR_USBPRE) \ + || defined(RCC_CFGR3_TIM1SW) || defined(RCC_CFGR3_TIM2SW) || defined(RCC_CFGR3_TIM8SW) || defined(RCC_CFGR3_TIM15SW) \ + || defined(RCC_CFGR3_TIM16SW) || defined(RCC_CFGR3_TIM17SW) || defined(RCC_CFGR3_TIM20SW) || defined(RCC_CFGR3_TIM34SW) \ + || defined(RCC_CFGR3_HRTIM1SW) + +/** @addtogroup RCCEx_Private_Functions + * @{ + */ +static uint32_t RCC_GetPLLCLKFreq(void) +{ + uint32_t pllmul = 0U, pllsource = 0U, prediv = 0U, pllclk = 0U; + + pllmul = RCC->CFGR & RCC_CFGR_PLLMUL; + pllmul = ( pllmul >> 18U) + 2U; + pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; +#if defined(RCC_CFGR_PLLSRC_HSI_DIV2) + if (pllsource != RCC_PLLSOURCE_HSI) + { + prediv = (RCC->CFGR2 & RCC_CFGR2_PREDIV) + 1U; + /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV * PLLMUL */ + pllclk = (HSE_VALUE/prediv) * pllmul; + } + else + { + /* HSI used as PLL clock source : PLLCLK = HSI/2U * PLLMUL */ + pllclk = (HSI_VALUE >> 1U) * pllmul; + } +#else + prediv = (RCC->CFGR2 & RCC_CFGR2_PREDIV) + 1U; + if (pllsource == RCC_CFGR_PLLSRC_HSE_PREDIV) + { + /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV * PLLMUL */ + pllclk = (HSE_VALUE/prediv) * pllmul; + } + else + { + /* HSI used as PLL clock source : PLLCLK = HSI/PREDIV * PLLMUL */ + pllclk = (HSI_VALUE/prediv) * pllmul; + } +#endif /* RCC_CFGR_PLLSRC_HSI_DIV2 */ + + return pllclk; +} +/** + * @} + */ + +#endif /* RCC_CFGR2_ADC1PRES || RCC_CFGR2_ADCPRExx || RCC_CFGR3_TIMxSW || RCC_CFGR3_HRTIM1SW || RCC_CFGR_USBPRE */ + +/** + * @} + */ + +#endif /* HAL_RCC_MODULE_ENABLED */ + +/** + * @} + */ + diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c new file mode 100644 index 0000000..41218d5 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c @@ -0,0 +1,7950 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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) 2016 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 and HAL_TIM_OC_ConfigChannel: 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 (when supported). + + [..] +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 "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @defgroup TIM TIM + * @brief TIM HAL module driver + * @{ + */ + +#ifdef HAL_TIM_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* 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); +#if defined(TIM_CCER_CC5E) +static void TIM_OC5_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config); +#endif /* TIM_CCER_CC5E */ +#if defined(TIM_CCER_CC6E) +static void TIM_OC6_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config); +#endif /* TIM_CCER_CC6E */ +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 (*) + * (*) Value not defined for all devices + * @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 (*) + * (*) Value not defined for all devices + * @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 (*) + * (*) Value not defined for all devices + * @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 (*) + * (*) Value not defined for all devices + * @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)) + { + if ((itsource & (TIM_IT_BREAK)) == (TIM_IT_BREAK)) + { + __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK); +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->BreakCallback(htim); +#else + HAL_TIMEx_BreakCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } +#if defined(TIM_BDTR_BK2E) + /* 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 */ + } + } +#endif /* TIM_BDTR_BK2E */ + /* 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 */ + } + } +} + +/** + * @} + */ + +/** @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 (*) + * (*) Value not defined for all devices + * @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_MODE(sConfig->OCMode)); + 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; + } + +#if defined(TIM_CCER_CC5E) + 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; + } +#endif /* TIM_CCER_CC5E */ + +#if defined(TIM_CCER_CC6E) + 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; + } +#endif /* TIM_CCER_CC6E */ + + 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 (*) + * (*) Value not defined for all devices + * @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; + } + +#if defined(TIM_CCER_CC5E) + 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; + } +#endif /* TIM_CCER_CC5E */ + +#if defined(TIM_CCER_CC6E) + 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; + } +#endif /* TIM_CCER_CC6E */ + + 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_OR + * @arg TIM_DMABASE_CCMR3 (*) + * @arg TIM_DMABASE_CCR5 (*) + * @arg TIM_DMABASE_CCR6 (*) + * (*) value not defined in all devices + * @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_18TRANSFERS. + * @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_OR + * @arg TIM_DMABASE_CCMR3 (*) + * @arg TIM_DMABASE_CCR5 (*) + * @arg TIM_DMABASE_CCR6 (*) + * (*) value not defined in all devices + * @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_18TRANSFERS. + * @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_OR + * @arg TIM_DMABASE_CCMR3 (*) + * @arg TIM_DMABASE_CCR5 (*) + * @arg TIM_DMABASE_CCR6 (*) + * (*) value not defined in all devices + * @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_18TRANSFERS. + * @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_OR + * @arg TIM_DMABASE_CCMR3 (*) + * @arg TIM_DMABASE_CCR5 (*) + * @arg TIM_DMABASE_CCR6 (*) + * (*) value not defined in all devices + * @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_18TRANSFERS. + * @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 are relevant only for timer instances + * supporting a break input. + * @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 (*) + * (*) Value not defined for all devices + * @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 defined(TIM_SMCR_OCCS) + CLEAR_BIT(htim->Instance->SMCR, (TIM_SMCR_OCCS | TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP)); +#else + CLEAR_BIT(htim->Instance->SMCR, (TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP)); +#endif /* TIM_SMCR_OCCS */ + break; + } +#if defined(TIM_SMCR_OCCS) + case TIM_CLEARINPUTSOURCE_OCREFCLR: + { + /* Clear the OCREF clear selection bit */ + CLEAR_BIT(htim->Instance->SMCR, TIM_SMCR_OCCS); + break; + } +#endif /* TIM_SMCR_OCCS */ + + 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 defined(TIM_SMCR_OCCS) + + /* Set the OCREF clear selection bit */ + SET_BIT(htim->Instance->SMCR, TIM_SMCR_OCCS); +#endif /* TIM_SMCR_OCCS */ + 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; + } +#if defined(TIM_CCER_CC5E) + 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; + } +#endif /* TIM_CCER_CC5E */ +#if defined(TIM_CCER_CC6E) + 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; + } +#endif /* TIM_CCER_CC6E */ + 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: + { + /* Check whether or not the timer instance supports internal trigger input */ + assert_param(IS_TIM_CLOCKSOURCE_ITRX_INSTANCE(htim->Instance)); + + 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). + * @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_SELECTION(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). + * @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_SELECTION(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 + +@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 +#if defined(TIM_BDTR_BK2E) + * @arg @ref HAL_TIM_BREAK2_CB_ID Break2 Callback ID +#endif + * @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; +#if defined(TIM_BDTR_BK2E) + + case HAL_TIM_BREAK2_CB_ID : + htim->Break2Callback = pCallback; + break; +#endif /* TIM_BDTR_BK2E */ + + 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 +#if defined(TIM_BDTR_BK2E) + * @arg @ref HAL_TIM_BREAK2_CB_ID Break2 Callback ID +#endif + * @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; +#if defined(TIM_BDTR_BK2E) + + case HAL_TIM_BREAK2_CB_ID : + /* Legacy weak Break2 Callback */ + htim->Break2Callback = HAL_TIMEx_Break2Callback; + break; +#endif /* TIM_BDTR_BK2E */ + + 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; +#if defined(TIM_CR2_OIS2N) + tmpcr2 &= ~TIM_CR2_OIS2N; +#endif /* 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 defined(TIM_CR2_OIS3) + 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); + } +#endif /* TIM_CR2_OIS3 */ + + /* 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 defined(TIM_CR2_OIS4) + if (IS_TIM_BREAK_INSTANCE(TIMx)) + { + /* Check parameters */ + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS4; + + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 6U); + } +#endif /* TIM_CR2_OIS4 */ + + /* 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; +} + +#if defined(TIM_CCER_CC5E) +/** + * @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; +} +#endif /* TIM_CCER_CC5E */ + +#if defined(TIM_CCER_CC6E) +/** + * @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; +} +#endif /* TIM_CCER_CC6E */ + +/** + * @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) + { + 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: + { + /* Check the parameter */ + assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); + 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_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 + * @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; +#if defined(TIM_BDTR_BK2E) + htim->Break2Callback = HAL_TIMEx_Break2Callback; +#endif /* TIM_BDTR_BK2E */ +} +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + +/** + * @} + */ + +#endif /* HAL_TIM_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c new file mode 100644 index 0000000..2784849 --- /dev/null +++ b/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c @@ -0,0 +1,2536 @@ +/** + ****************************************************************************** + * @file stm32f3xx_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 + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 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 + + ##### 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). + + (#) 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 "stm32f3xx_hal.h" + +/** @addtogroup STM32F3xx_HAL_Driver + * @{ + */ + +/** @defgroup TIMEx TIMEx + * @brief TIM Extended HAL module driver + * @{ + */ + +#ifdef HAL_TIM_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* 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 + * @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 + * @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 + * @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; + } + + + 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 + * @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; + } + + 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 + * @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; + } + + 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 + * @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; + } + + 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 + * @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 + * @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 + * @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; + } + + 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 + * @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; + } + + 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 + * @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; + } + + 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 + * @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; + } + + 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. + (+) Enable or disable channel grouping. + +@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_NONE: No trigger is needed + * @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_SELECTION(InputTrigger)); + + __HAL_LOCK(htim); + + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3)) + { + /* 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_NONE: No trigger is needed + * @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_SELECTION(InputTrigger)); + + __HAL_LOCK(htim); + + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3)) + { + /* 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_NONE: No trigger is needed + * @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_SELECTION(InputTrigger)); + + __HAL_LOCK(htim); + + if ((InputTrigger == TIM_TS_ITR0) || (InputTrigger == TIM_TS_ITR1) || + (InputTrigger == TIM_TS_ITR2) || (InputTrigger == TIM_TS_ITR3)) + { + /* 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 defined(TIM_CR2_MMS2) + /* 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; + } +#endif /* TIM_CR2_MMS2 */ + + /* 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)); +#if defined(TIM_BDTR_BKF) + assert_param(IS_TIM_BREAK_FILTER(sBreakDeadTimeConfig->BreakFilter)); +#endif /* TIM_BDTR_BKF */ + assert_param(IS_TIM_AUTOMATIC_OUTPUT_STATE(sBreakDeadTimeConfig->AutomaticOutput)); + + /* 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); +#if defined(TIM_BDTR_BKF) + MODIFY_REG(tmpbdtr, TIM_BDTR_BKF, (sBreakDeadTimeConfig->BreakFilter << TIM_BDTR_BKF_Pos)); +#endif /* TIM_BDTR_BKF */ + +#if defined(TIM_BDTR_BK2E) + 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)); + + /* 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); + } +#endif /* TIM_BDTR_BK2E */ + + /* Set TIMx_BDTR */ + htim->Instance->BDTR = tmpbdtr; + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @brief Configures the TIMx Remapping input capabilities. + * @param htim TIM handle. + * @param Remap specifies the TIM remapping source. + @if STM32F301x8 + * For TIM1, the parameter can have the following values: + * @arg TIM_TIM1_ADC1_NONE: TIM1_ETR is not connected to any AWD (analog watchdog) + * @arg TIM_TIM1_ADC1_AWD1: TIM1_ETR is connected to ADC1 AWD1 + * @arg TIM_TIM1_ADC1_AWD2: TIM1_ETR is connected to ADC1 AWD2 + * @arg TIM_TIM1_ADC1_AWD3: TIM1_ETR is connected to ADC1 AWD2 + @elseif STM32F303xE + * For TIM1, the parameter is a combination of 2 fields (field1 | field2): + * + * field1 can have the following values: + * @arg TIM_TIM1_ADC1_NONE: TIM1_ETR is not connected to any AWD (analog watchdog) + * @arg TIM_TIM1_ADC1_AWD1: TIM1_ETR is connected to ADC1 AWD1 + * @arg TIM_TIM1_ADC1_AWD2: TIM1_ETR is connected to ADC1 AWD2 + * @arg TIM_TIM1_ADC1_AWD3: TIM1_ETR is connected to ADC1 AWD2 + * + * field2 can have the following values: + * @arg TIM_TIM1_ADC4_NONE : TIM1_ETR is not connected to any AWD (analog watchdog) + * @arg TIM_TIM1_ADC4_AWD1: TIM1_ETR is connected to ADC4 AWD1 + * @arg TIM_TIM1_ADC4_AWD2: TIM1_ETR is connected to ADC4 AWD2 + * @arg TIM_TIM1_ADC4_AWD3: TIM1_ETR is connected to ADC4 AWD3 + @elseif STM32F334x8 + * For TIM1, the parameter is a combination of 2 fields (field1 | field2): + * + * field1 can have the following values: + * @arg TIM_TIM1_ADC1_NONE: TIM1_ETR is not connected to any AWD (analog watchdog) + * @arg TIM_TIM1_ADC1_AWD1: TIM1_ETR is connected to ADC1 AWD1 + * @arg TIM_TIM1_ADC1_AWD2: TIM1_ETR is connected to ADC1 AWD2 + * @arg TIM_TIM1_ADC1_AWD3: TIM1_ETR is connected to ADC1 AWD2 + * + * field2 can have the following values: + * @arg TIM_TIM1_ADC2_NONE : TIM1_ETR is not connected to any AWD (analog watchdog) + * @arg TIM_TIM1_ADC2_AWD1: TIM1_ETR is connected to ADC2 AWD1 + * @arg TIM_TIM1_ADC2_AWD2: TIM1_ETR is connected to ADC2 AWD2 + * @arg TIM_TIM1_ADC2_AWD3: TIM1_ETR is connected to ADC2 AWD3 + @endif + @if STM32F303xE + * For TIM8, the parameter is a combination of 2 fields (field1 | field2): + * + * field1 can have the following values: + * @arg TIM_TIM8_ADC2_NONE: TIM1_ETR is not connected to any AWD (analog watchdog) + * @arg TIM_TIM8_ADC2_AWD1: TIM1_ETR is connected to ADC2 AWD1 + * @arg TIM_TIM8_ADC2_AWD2: TIM1_ETR is connected to ADC2 AWD2 + * @arg TIM_TIM8_ADC2_AWD3: TIM1_ETR is connected to ADC2 AWD2 + * + * field2 can have the following values: + * @arg TIM_TIM8_ADC3_NONE : TIM1_ETR is not connected to any AWD (analog watchdog) + * @arg TIM_TIM8_ADC3_AWD1: TIM1_ETR is connected to ADC3 AWD1 + * @arg TIM_TIM8_ADC3_AWD2: TIM1_ETR is connected to ADC3 AWD2 + * @arg TIM_TIM8_ADC3_AWD3: TIM1_ETR is connected to ADC3 AWD3 + @endif + @if STM32F373xC + * For TIM14, the parameter can have the following values: + * @arg TIM_TIM14_GPIO: TIM14 TI1 is connected to GPIO + * @arg TIM_TIM14_RTC: TIM14 TI1 is connected to RTC_clock + * @arg TIM_TIM14_HSE: TIM14 TI1 is connected to HSE/32 + * @arg TIM_TIM14_MCO: TIM14 TI1 is connected to MCO + @else + * For TIM16, the parameter can have the following values: + * @arg TIM_TIM16_GPIO: TIM16 TI1 is connected to GPIO + * @arg TIM_TIM16_RTC: TIM16 TI1 is connected to RTC_clock + * @arg TIM_TIM16_HSE: TIM16 TI1 is connected to HSE/32 + * @arg TIM_TIM16_MCO: TIM16 TI1 is connected to MCO + @endif + @if STM32F303xE + * For TIM20, the parameter is a combination of 2 fields (field1 | field2): + * + * field1 can have the following values: + * @arg TIM_TIM20_ADC3_NONE: TIM1_ETR is not connected to any AWD (analog watchdog) + * @arg TIM_TIM20_ADC3_AWD1: TIM1_ETR is connected to ADC3 AWD1 + * @arg TIM_TIM20_ADC3_AWD2: TIM1_ETR is connected to ADC3 AWD2 + * @arg TIM_TIM20_ADC3_AWD3: TIM1_ETR is connected to ADC3 AWD2 + * + * field2 can have the following values: + * @arg TIM_TIM20_ADC4_NONE : TIM1_ETR is not connected to any AWD (analog watchdog) + * @arg TIM_TIM20_ADC4_AWD1: TIM1_ETR is connected to ADC4 AWD1 + * @arg TIM_TIM20_ADC4_AWD2: TIM1_ETR is connected to ADC4 AWD2 + * @arg TIM_TIM20_ADC4_AWD3: TIM1_ETR is connected to ADC4 AWD3 + @endif + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_t Remap) +{ + + /* Check parameters */ + assert_param(IS_TIM_REMAP(htim->Instance, Remap)); + + __HAL_LOCK(htim); + + /* Set the Timer remapping configuration */ + WRITE_REG(htim->Instance->OR, Remap); + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +#if defined(TIM_CCR5_CCR5) +/** + * @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; +} +#endif /* TIM_CCR5_CCR5 */ + +/** + * @} + */ + +/** @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 + */ +} + +#if defined(TIM_BDTR_BK2E) +/** + * @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 + */ +} +#endif /* TIM_BDTR_BK2E */ +/** + * @} + */ + +/** @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 + * @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 + { + /* 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 + { + /* 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 + * @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/Open_Box Debug.launch b/Open_Box Debug.launch new file mode 100644 index 0000000..91ad292 --- /dev/null +++ b/Open_Box Debug.launch @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Open_Box.ioc b/Open_Box.ioc new file mode 100644 index 0000000..94c811e --- /dev/null +++ b/Open_Box.ioc @@ -0,0 +1,145 @@ +#MicroXplorer Configuration settings - do not modify +CAD.formats= +CAD.pinconfig= +CAD.provider= +File.Version=6 +GPIO.groupedBy=Group By Peripherals +KeepUserPlacement=false +Mcu.CPN=STM32F302C8T6 +Mcu.Family=STM32F3 +Mcu.IP0=NVIC +Mcu.IP1=RCC +Mcu.IP2=SYS +Mcu.IP3=TIM2 +Mcu.IPNb=4 +Mcu.Name=STM32F302C(6-8)Tx +Mcu.Package=LQFP48 +Mcu.Pin0=PA1 +Mcu.Pin1=PA3 +Mcu.Pin2=PA4 +Mcu.Pin3=PA5 +Mcu.Pin4=PA6 +Mcu.Pin5=PA13 +Mcu.Pin6=PA14 +Mcu.PinsNb=7 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32F302C8Tx +MxCube.Version=6.8.0 +MxDb.Version=DB.6.0.80 +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\:15\:0\:false\:false\:true\:false\:true\:false +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PA1.GPIOParameters=GPIO_Label +PA1.GPIO_Label=PWM1_Out +PA1.Locked=true +PA1.Signal=S_TIM2_CH2 +PA13.Mode=Serial_Wire +PA13.Signal=SYS_JTMS-SWDIO +PA14.Mode=Serial_Wire +PA14.Signal=SYS_JTCK-SWCLK +PA3.GPIOParameters=PinState,GPIO_Label +PA3.GPIO_Label=Ctr_Vin2 +PA3.Locked=true +PA3.PinState=GPIO_PIN_SET +PA3.Signal=GPIO_Output +PA4.GPIOParameters=GPIO_PuPd,GPIO_Label +PA4.GPIO_Label=Sens2 +PA4.GPIO_PuPd=GPIO_PULLDOWN +PA4.Locked=true +PA4.Signal=GPIO_Input +PA5.GPIOParameters=GPIO_PuPd,GPIO_Label +PA5.GPIO_Label=Sens1 +PA5.GPIO_PuPd=GPIO_PULLDOWN +PA5.Locked=true +PA5.Signal=GPIO_Input +PA6.GPIOParameters=PinState,GPIO_Label +PA6.GPIO_Label=Ctr_Vin1 +PA6.Locked=true +PA6.PinState=GPIO_PIN_SET +PA6.Signal=GPIO_Output +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32F302C8Tx +ProjectManager.FirmwarePackage=STM32Cube FW_F3 V1.11.5 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=Open_Box.ioc +ProjectManager.ProjectName=Open_Box +ProjectManager.ProjectStructure= +ProjectManager.RegisterCallBack= +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_TIM2_Init-TIM2-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_USART1_Init-USART1-false-HAL-true +RCC.ADC12outputFreq_Value=16000000 +RCC.AHBCLKDivider=RCC_SYSCLK_DIV2 +RCC.AHBFreq_Value=8000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV2 +RCC.APB1Freq_Value=4000000 +RCC.APB1TimFreq_Value=8000000 +RCC.APB2Freq_Value=8000000 +RCC.APB2TimFreq_Value=8000000 +RCC.CortexFreq_Value=8000000 +RCC.FCLKCortexFreq_Value=8000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=8000000 +RCC.HSEPLLFreq_Value=8000000 +RCC.HSE_VALUE=8000000 +RCC.HSIPLLFreq_Value=4000000 +RCC.HSI_VALUE=8000000 +RCC.I2C1Freq_Value=8000000 +RCC.I2C2Freq_Value=8000000 +RCC.I2C3Freq_Value=8000000 +RCC.I2SClocksFreq_Value=16000000 +RCC.IPParameters=ADC12outputFreq_Value,AHBCLKDivider,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSEPLLFreq_Value,HSE_VALUE,HSIPLLFreq_Value,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSourceVirtual,TIM15Freq_Value,TIM16Freq_Value,TIM17Freq_Value,TIM1Freq_Value,TIM2Freq_Value,USART1Freq_Value,USBFreq_Value,VCOOutput2Freq_Value +RCC.LSE_VALUE=32768 +RCC.LSI_VALUE=40000 +RCC.MCOFreq_Value=16000000 +RCC.PLLCLKFreq_Value=16000000 +RCC.PLLMCOFreq_Value=16000000 +RCC.PLLMUL=RCC_PLL_MUL4 +RCC.RTCFreq_Value=40000 +RCC.RTCHSEDivFreq_Value=250000 +RCC.SYSCLKFreq_VALUE=16000000 +RCC.SYSCLKSourceVirtual=RCC_SYSCLKSOURCE_PLLCLK +RCC.TIM15Freq_Value=8000000 +RCC.TIM16Freq_Value=8000000 +RCC.TIM17Freq_Value=8000000 +RCC.TIM1Freq_Value=8000000 +RCC.TIM2Freq_Value=8000000 +RCC.USART1Freq_Value=4000000 +RCC.USBFreq_Value=16000000 +RCC.VCOOutput2Freq_Value=4000000 +SH.S_TIM2_CH2.0=TIM2_CH2,PWM Generation2 CH2 +SH.S_TIM2_CH2.ConfNb=1 +TIM2.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2 +TIM2.IPParameters=Channel-PWM Generation2 CH2,Period,Pulse-PWM Generation2 CH2 +TIM2.Period=159999 +TIM2.Pulse-PWM\ Generation2\ CH2=8000 +board=custom +isbadioc=false diff --git a/STM32F302C8TX_FLASH.ld b/STM32F302C8TX_FLASH.ld new file mode 100644 index 0000000..21a81fd --- /dev/null +++ b/STM32F302C8TX_FLASH.ld @@ -0,0 +1,185 @@ +/* +****************************************************************************** +** +** @file : LinkerScript.ld +** +** @author : Auto-generated by STM32CubeIDE +** +** @brief : Linker script for STM32F302C8Tx Device from STM32F3 series +** 64Kbytes FLASH +** 16Kbytes 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 = 16K + FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 64K +} + +/* 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 : { + . = ALIGN(4); + *(.ARM.extab* .gnu.linkonce.armextab.*) + . = ALIGN(4); + } >FLASH + + .ARM : { + . = ALIGN(4); + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + . = ALIGN(4); + } >FLASH + + .preinit_array : + { + . = ALIGN(4); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(4); + } >FLASH + + .init_array : + { + . = ALIGN(4); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + . = ALIGN(4); + } >FLASH + + .fini_array : + { + . = 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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%0Dq||^G#LS#(WAA0`#m!y8fZ5o#C*fxklq4)N zV(yyedJqZ2T33)Fnq^w_or{`bdfAGm)pJ;Z)LBy)`p&v@1yX07;_#sGOaUtNmsZ^) zCaEnND9!s*?iBpTJqrn7hHwdST^5UgI#!*ne#k@~m<~kTg~uP&^G}E}hNSqUIQ|x8 z7F5MsOG_LU8X~?a)&i`(0bT!myYBb66E>mz4|Kx)Hvn0b>WBtFqUc;{kkyIdm`I-Q zxDdVT4w}rIA?|jSQgdgEB2k-`E4za^IVGe_N0d8gr%)iI6RKp%xX^@Z`I3S*dHi)M zXr+#)f|kh|pB9E!Bub@jl#+?ZT+O&lkQT$(>5BC^;_kVSsZRLBiwImK-l@ z3vgf7$9qpFpGwd&C~lz+ho$u8e1a{v>kS9yl8|0gb%Q-5o0Hl;3SDZbj80;$S_=^I4KSiix=-xF?E4!Bxc#78#v4x_3ZEsB&WV_m+@2r zgEV{a=uzo=ED0iJ;5_^wc+U*Gbog0sdA6KbZPU4d1ie!GH=KnWF~EDJr;`%csVm+ z$90&r;~I$;M1#x=<+OB3(F-0BF+t$Wh>4sassHXIvx0>QX?J4#&f*#>PbueQwi{4` z;R^2Wu4q-f@yfZ6lJsQTI}w%+C4ZKVpY>Z2D^`4!DHhJ=q73$Q1$2iql7IVdK(k=ueItJITd>6oX_fL$)hI2w%NigK@v*q4J9;f4l z-Xha~x-8D2mArZCgmgf5MZ-#UZiE<y;tj^NIm^dgY z6rg8&%gmz#cXd!Y6rJnflOm+Jcc>O+>Bb4w43mw*VO`HJF2FQJDN6Ao;7DOv*eR&s z9Kn#gC9RKWK#E`ex`OK`GSHbX_ikq|s1wX<)e#uG*M|FmClyM0;1W#h ztO-SADAarFW1HT%3Uq^ShZSZm_gV5zRyr4MSedDBcCjs#rTOt14?rHTm+z%)!?|#W z_3kdZ-OxN-lMpRdoM8ke^2sK;QW1?aeqlS5N6-+C)AA;PYyk5FBp=Q=@Tmblte#dR z3TAg2tus)AR`{^PD!W^ONgjwgn1E#1E8gEz^mZ1yPcWNfqEPd}>+Bt%{8leOI+zZ! zb^JF0QD0;1-DN}xnjUm2u^xriI?^3Dv3CB*CJCq8m&s5lUsNliQM*moYL0`)HZ{Q?=eP= zb>$&H%hX=9=!=L<`6|YeCb7M!J0)H<0R}P*cHA-C2RPmbIN1j{^&=!cs&lU!D=R&s zpEqN=;Hjc%Q}V+mlLnKO_!K|*9bnBInJC(`5?1*bm4c8KwSn^6icBcl5jqUQ^ph!PmcBzuG*0ky&S3wsC60n&KX2ikR5t|gAE>I;fE z=cn6;!knMxDCa_@>Iz)!sH_9UTvA+2c4x@LnG=PV4CP~?M2njV@)uWnJ;MVjWfo@O zxYN0;>QQc?LCO_C7G@yn$ly+hT!93yGk5wmnR*i$t1*+5s{yU_W2rK^_FQ--iZ}ez zi)KnXZiNKWM$>mY>+Sl|xYBoPgNA;uV$Rc8IUTz5c|6WnAHMnPZv4Zy^xUTdzyAK= z54K-uGGV9q5aqtITRc-K*eG+?_b%?Q-{_M~C1SXpiLyk`BnZiUO>?6Ne`?9CY!`g@ z>5nDE?5D8>EYBh=OKS=?t<33nb~t~=rhX37v|12qTq!t4ZV zRc@z+>Dv$g%{a^svlP5**B+%=-SV%k{%`MpySn@M_5&g-2y68IKfV9_{_VTFL&$qr zY118<-!^MfYC^#@o4@8($>*o9R$wp>zw8fA*vtjy)c6WEw5pXYkGUd>czUIdu-h8Z z$$z?8oTCO3z4l?8e@!?29(A7`?Pj08rbjFOv1PW(ABA-~fwf|(Mw+?VaZ(yhn0nK9 z6=FFK#e*2#Ep#@CH3Qjp$m(PujoC*C2n;SwHS-qq=@Qbf^lnIQkvzKspf5`s`{r5+ zQkb)uls&g^E@q>fEAqbt{08Z&ou-+9TP5zc5VJVErS2X^7^oB6yWvF0N>*TeRu>(C z1-OJ@(}*!@+I=Ck#AfP*<35aJ1j)s);+7`JkgmnC`)B!u5FXK5&iB;f4l_s-JEr<* zQshLA21sAm*sN3Y#Q+Cq$wu64I-qMJzljPvl*jt(-RB?2Z{EH8`pq|g6=q~Rf}3iH zlM~}RLO~bmHgo@~t&rz4i2Kw*!*il2j}}FaQEz=;mE%%EFw3xe#R_2aWmyin+#$sf z=O&nKJg;A`yvHcxcMT1bv%=;qBHOBHfr6=2<6~z9(_nEiDj|r)c_oO?g$X#$a3y23 ztGo8N43}J5AgaPA{IrvH+CK2N4I+wIOb@C%u5=5*ZX zhxgh7zE(+g4X+w=Y%`Dsx6{FWi#(^)_j?jPiO_XZ?0ssQ3IlkNwGDneksX(e> zdP9&L$}{ITGvvZS^u(W$;1>Ug9kCx@(IW#cz*hFj+Ww7AWLsJ6i3BWMTFzguV(E}XSpn|?rxaq^wmf(J&N<};_A~{u&W^IYa-_s1c?7f z6Ao_R__P<*Ec2~70wao{tUs^VLVolZ&O*r0y`H>oTc4X?Jw4fuNLq8+A+skXuXam5 z1k)UYj+p|aJLuRT8ds|xTFD4iVLk)Rq=hP3=xGyAC78XR;%@p#2nBat=&=-F!wb;_ z>YmMvL{v&QLdN42)+OY`8Y(gIflMpVy&Xan`T~Es+3*uPtar%EKscO5xJ^ygu))CP z=z2E40J~AO(ti|6zxnJnRYsP4hs3GW%|}%T-vT;60by);HIB0Nx&vPq>W+RlC`oQZa|ne^Y&AUM9G}@7;jk ziy#Jt>J=r-+3J~pm=OaQg9ShOfd*t&Qf)MI$uajO|==cKY%w zBB(E9-_}jSY;c)#^ktrftv#u(38p<6SkyxVIh(~MZbEenH>$QMGJb5B>KyoQ^L%&x z;r*R;m;K;n7c1qB5WW;!Z#6z+Sj4VzE-MOr{jOQq0)x!%}RMa)N8 zE05Ho4W^SG6hDM)r|~9b3u8t2%MfB$J(Df4rqYJ>xXmW9X#mr5ZSc)kC_xMHWT48@ z;LC-Io9!D|y$mDM6Zz#0(wkxs@K~HF?FF~PcqOGi8OGXu#inqd_liT6^rfgB7|Hl- zL6DLVNTZ!S8Lw;tpCyB#*K88{sGcbFl&t9#`Y!79%Xha=VuVd*;DI4v1*ko2Dp`sG4Kg#9f)53nl@0VHnICd zVby%8SF_nuk`gLK2R=>o)dc#ZR$}*F|0YJ+q`DfY*CxKbULv336e-bMPd5=3ZnhrO zrglw%8`@`XB?$Ei-K%YHGF#@$8>DA#oR}t5?_#(|bQ|(^$w1Z+bw-jR##BHkYzu4+ z$ieOMYCEFgXLOB!2cC$$(R!c+XyX|$`pbE*ywIFOE`mJ{1aEKXPy^^&mdXXqRiJ*z zB)0s7lrC4f!vPL6kT12M@+I!EFksoBJ(5T*=EGPqpbet>DwX4LQgVh$cLL&M+>Ix6 z?!-+A=Ce)K+gLiX-S|argMZBZIRdjcYcVPbBp2u0Gt5dRfi{noA;o~{!SFf3;lYnkWLO@=Ok5DZ+mD* zkHh|u!&65OiC@xJ(@w}3g@`z&d?qd}I8NkZxhzUmVv~3~>$4 zQ=JYPn!x{%_?YeKK@U@YSG$8$YTOZ4Fm|`O`;X7?^?Cc|9UOg-G53eJ_n}m(dzD~3 zeuE5*USmPuyz4={GAt45w%~cp8$_D|&SahW{>&S;fax{mMlfZ;>je~jG?z%(B_xdo zf(a@xVGDftk5${!q<5StE2Sb`xg12*L|r*p7UVRxk~T+Mu<)T9w!rJ!xOCiWT^x=xczyUf_!Is->DDW^&%mNO~fbiu@Xx(*`{kOk5f{C$%JIP8D z1iFQ(XoxX!_^{{O!1S@ZsFyN0ac?4StSR>u1qbYK7GmA8lpmhLCQT;~AP@@Qym3uS zwj*QZr=yp)o4z<`mLJFT?d7)?Tul?Ib>}-sUa8cT#3eI{Qw_oCSxatWI9co!@n(&u z`Zh9<9;udaXzNv1S{;6Km;?JYrL934jZGl7$M^>uw`Et%AoWIxZMo{RSkmWDyXg-< z-v3uGHCmnU>0-4-A_QPVi=;dHX=;W9Sb=TfcuvitR&YY=yKnB^qUxku*Q!3d479m2 zUw9WO{6ZfeEGDtut1Y;5#h>6W6|fzAx~6Za?eC-cg+?Qefoi!E_n4HIhHmeA1_~IkxO2QSk}GRyn8D1$KU^sb$zH?|H$kj9D%WEBb4S$ z{u*v*t6_1TprZt~T+qg+PnVN9E5fnX;U28n25O@-{r+}i+GGE%jky|2d$GK}SmNWw zp?eckz#zQXA%=q(yT(LxdYe*>HrQRAPdwdrvQELhTGW^iD$t)!N`mQIiToI_fnW#d z*%7h91`o(Ul@dFu?yc=;Hfvqk7s35dNFjxUa;V&FoGcK871n5sdguC1mM^cB7VT!roRL-fpJEYm>7IJ7T_P$EJHo@&zidy(uo7$^Wg%u#p81OGJu@_)*UIbgAGpp^<(dn4n ziSc+`TV%s;E_(y0he&V@dk);pMCv#%T(6fb0F8h0Y-L)`6n&+kp(NxoHKi)rwtLy1 zwx&{-Kw~4y8Oe8Db{jSLawm2eiBI9cjUj`LSXD!H3c8RS-X$OD%8e&1SRtBAr2my>G2 znlPVg9t?uuD1<|yoJ2f)?NW%M2-NtXCs-7fHT4^kd@S54bj%GaM4AtSnR<>lenjI^ z$3@eWz6#{0Zh*4-6zmJN7EIJ)KFml|VN2w?m*j(2Qkn$Q=Q<~`p_7gA$UFT>41`!> zxb!$5ppI&bFYSp_&Udvs%3CKf346!8Kx)FtHF9lb~+Y0>#&_{ zk3i)wnyfvye1>T*okyqUcQ^Yp`FXOabY-Qd5V}|pW^f0a%T<$tR3MFMI7G?_xsLc& z$qm{plABT$vtv^bHwplPHp8*Sja&31nyv=x-XVWU4wp`vT#r4n5$jYi`fa%0)JYd} zoJ_Cb&}0hJA&$R$k^`?fms6zx4>T61J4*lK)x3qjjTw)F%KXM~du#tIBgmcHm*=;l5E&&|zM^nw;o{gQurwrb1C7 z8A_NCL1BQzkMZTx(;k0Vj+v@m+=x^TOfEv-Dc!$Q8+i24I&GH z`vwS|9&CQRyZaXF{Udzd@4m(QzPZ2u`1b41_jkJ;?Htw){8@<}-R{=LyaJ|g*0a57 zkoKeLeQKDxb5EI(S+*_ZD1v=TNldUqxPf7m9g>Li4_GBRx0vQV#aq-}G_d4qB$Yx` z?;UdBP(0AG>{%C3V1alG+G1wd zy&g}C44|FqK#d|r?;x(sWD0E-GBQ&gVdkX*f7E~jtSf{s<2y93`5G!YWRA8eNRd1A zgzJd8%?y>h$~`$S^94Ee^BI;&Sm%^E<$*I&UPLGVr5|4x*j@t1jr*)Sb&r*A3$PX) zBLP`p=QMfa0+2VFdo2`;FJ5Vd30e1>wG1ne#z<~RQDioFD+Cjt{!9#gsaZFo$blMgQ~(f!lya@Z$!4t3CMCUsCEKKn!{Cp{Gy zvMfRh=}Ua2G7U~hz^>dskt9GelUW+bb;i+xAuARMXn#rf%!# zW2~(y^9$3cFW=3+S|bGb<6+03Hjd8z`2rey@cibyDlW;V^N%IS; zi%yNmuWsfOltY4H6_Prb(?IbdDk-Y1)k*Ijwk4R!wo5pyH?Fn+%uNiu>WO=a;V0a6 z&8KAf`Tobx_ntPU)-n!cUB_pf$F@?jI^!eg;Nd3IJt);C$6YnLv94`;sUZsazurE^ zRTf~~RGe1NZegcdI<&$bM?ZeyDb+t^aiPMtM8|m9mPkai;w)*1V*Z<8-!tPc@CG;NVEFDe3P@jbB0f z_jMsnUM_ln`|$3~J%XMKS>g)mYJZL_L7M|H=yEK<9OiPIXExC7k_=#rUBdNREwmokui9k#K4pdyoBYQ=eZA>%!OVl!PH&E-!oijPJ_HdrA(d* zh~s3B&94b+7*0J95*dzTF_NaTx$kVP3UL0Ch(PhtluoW7spyEasIAYCUuE1zuHb?I zO>n8Dv|WRMVQhiq+-=AxFl^nWcnOz!JgzxRf)=n{C>9_KFW0Y;{BG=r!_T!u+6)Y| zc$RQc{ThxH0oE(f@Y724oR;<>&uy`sF6WsACz5c)m1brJr+LIXAc+!m`t;018Tww` z_+LMwB;a4{xOhgj<|6ujm#2rTacpWR)EDmYkz4`E7vy=ucsw4nFTVnEW{65^Z*VeA zFJsM1usPzmOoG#>;Bz1wI0igp1m7V92KXpJ2%1b^(QgwQ6PRPQ+{|Udg}Q>S2-E`D z&2*ciGzE`3cs1b{*Tt?%25h}E(N+c_@n3YQI7d~%3pj5eQz}R=nL3w93bgq^ucYx9 zHPfkz;kP7c3Ze;%pkm+o?n0DM_Tu*~(vhB@+p2kBraQ64m94)D(ST^Iknl{K4qOAy zRDr=z6t%j_CyH{WA_(bVKnt8zU4hJ5x9W>*_WC=hMpRMqW@X89nL^WG8Q_n%qla2f zI_d+4^XU9Xw%~#km+krRdd$Ya2k`G=N`|ZDOMVAO@B~u)#(-!9VkS)F=Jhqxf{TXa z%RC8IBPD_&6m6#I3J+GD2a8y6l%P$@tSs1*D7+F1#MI2lUMtChCe;69$S|XqJWMAp z^$OgVZcSZmo;TS(;>7i<<@J?G%7;oXqO&tXx_SAXg4h%%g`t|5rAl>Xrv9UNP4c}Q zmwzn)+rkkp>Gx1<_EP-jBU|voI7{0swwYM!WLSV5;lwtA306oBr-_X#eLppygH(Zi z0KElV=eioL_gYK3p59`wv4!jJSX2%~L=%G99>U<591d4HXX@HKs0=O8VJNv_im|oO z=G3N#@4%m7o8oO#*hWjj+|$FR!OSBtacUakN@LSyZ4URD^YIp?_C|*AUTE1s+|V#1k;dw4$`O{dy=(~Tnq86fZF`? z0l@{ta#d`U2c;UZ6bbkI`{=-9`JT~<4 zBSXiUH`nN7-+e|}C{HroB@kR@hH-)lF4e+wLy$BDQwyx^OXpJKSO+kE5s(fzt#b3!*X9 zaBCny|6;d6HK7@4NZ%2kYG|WqI(WX`J)gebOOq1~FSBOoe)#~b?JB8I>z_)Dk!t*1B z&bNZ7FF$b2NJ``e&#V%)8_N+!SdIqN>>fQ;7gq2hFbg~o}&GLo;L&c@Z1WD~$6ba>{M5KRR$ z=0x~c{Kf~D9KfKoTXE9x4Twcpu}n_*M;4P)kUEmR=#ktg_LHS9ikIh^wE}yvf8$Zb znEx2D>ln2jmO>k}{*RB|Melyr=B;&7NPio2nj%fdWtxU@3AEy)ABM;9oc2fB1O6``g_&Py&C_8DoVcqa{S0^9fRV z)tACULe$0*RzhReMYtedoDQ;m6-!sHIPeI38HtvuJA@A-v|{{Zwh&W+YDsF7UZEU@ zykzoy*z*9xNVyvZP5MTZW&EQ&A~gJV+E-z-e`Z8jaH|mq|MZB%#)!jzdc@<#h{yl* zh$oE^PyXossp(d@osK1``ETt|$%{xXf&`N$C)#g=Q3ni43bw(- z=v%YY$zpC0kSVHJPAfHt_<@K=CN*&Nhz_VMZ+ID`@R*tH%`f!GY)*jh+QRZsuX>%W z>ThA>M-NG`JnZcb2gYRK5DB~B)hq`#Y{=`$3Q^CuuwvmubQ-9#JNoJT95}&_oAh4f zF^aIg(&?BfokfY%(SwILl@>chUE6d87e`o>p~$H-Qz6+ro@2%?6&WfFVwNhTHi+%% zV-_(XAkV=JYjrIoG=N$j<5XpsPD zk^EYHBCcWkN+pXZbuj{qoGOENXeiY?IR$k+Q(UFTu$af?cBn`A?*uasH$0fxt!xd6 zZ8^q?k%lM%HC5(}G##yll3AK#jiZ1} zlgcWW8w;D&C1PItLgRA<|LNN1jKTK`l9+A#rl5>W1Lb5Tqf+@^Hgj^q*uwzA=k-wz zF#KXUJJe5a7vKiU3%zHOZ9OCge&6N;&J)FG7&HV21uQ&Xj8mo+ztk{V0t-dy&PAJG zn(ER8XozeSC@SNE52f8$QrpNwms*rFocN3tHg3GW2Kxf35zp-px9$QTfLbDB0e#Kh z-d}(I;cH+=&P8s{;h6e3Gl5$DdA@A9UI z;I;}<08K`rfhk|03DXPc1B3iHnu|r)K)h#eT?@#ZrAsY4mxFQ(Y%}BIIFjVao&J`d z(+IDdlK7hD;b*!{<8c4}cQ>EzK7P`_zf@80juKm7E&$=%nVzq4}&!z(dB_pZ!9UkLNmT5WmgBS%t8*}lJ%6ah?c#^5{9 z0Q}Xis+%-*oCajQQ0*&MOo^OhDiKIja{vXkH*j7xk6iK9iK}!bb?{Lp*LO#%thSw8 z!Fz>18h*OuC9lv-(%dOC$>g8S|% zm*1KZyp528*`LLIWjDJj$l$4h3?LnM3yUDwmrnz2$Q{Z&WFrp%qHzT+Vg@ou6G$RW zv2ZnoMgrE_>M~8?%(Zl-jf_kN3U#1FtxB*U0ufb^$(yD~sJP2r>EzK+B1v}(aI|P% z0ffUghMnW3_TobCl37}m7M@rj-JY0sb-?^Iwy+@%vT#7{{5M#dWVm&o1@~%+D?L7G z3+4+%2B#||E;~BNJQpg!C)u2=pdd!crP|XZDT5|CN(Pa@Z4mAcFK6?LiI+9ew!K_D z6e!|T%q^zp({B#+*Wbpx=#K0N7Ks2xVCMM+1=8j=_T&MU5sh86C8%9gIw%^Vr)!kC z5;M|ncI0CIIAQ4aE6o>A4?Y|^lEMX-7lIZfrRkzjf%H;*UD74w{3!hvOE#@U@tpG# zrZF_CIgmB6O9fJA+iJ)uEp3HKE=tDJ>u6&p8rnT}C^XoZ=Mqv3%h1fUG+`^&=Q_x;=<4DE<#4Ldj~38hP8=oL& z{ul5W>gWQB$D~fPl}RTHI1tUJ)2S1}5TCSdWj?Qc;cNIcMJKbe%bJ00bTe5ix03zL zTgXi~oxWlTrmxf76ldSqLtrdoer*B6bMP)le`Lh*z<`_`GJN~1NPuXRQcCj&KRWI} z&vx&Bz&?<{Gp|+ZWZPZzmL_t;Q+l#pUYJ{WYNB=P?{-C>9765Q71a6irdeT!AC*8F zU7zW`9gfbWq_=9M;_&5OftS+@rWUB|6@YMH<~KP!X_}5d8!Ga2(P1>BFNBVvWpV3w zCYfPM5ZzGHt>mre-US@R$d>F_E)NtnPoDX%zgaPtJpV0-3AW4VYP0Q!gTDKNWyC2SP12A{8^kE9jcaS|La#xO zg~{|5Zs%}{xP}83e__KuyRns^vYR@Bl0+e{)E?{U9)lYq-P=T2j4eDRr4Z4oi(oj9 zzo(0RCR8Vwc+Ndf4QUhQNC*!}e6-(2d}XGhGZ~b=Jdr;oYf8F8u&I*ojHoa?x{>0s z=p5j4g8O^HV}b{J!4raq1ZP)Ev7fY3!y79*wyQxiPYkyny^ahtz3K{x?mdFYc0b;K z{Pyi%{<5pGQ$aqU5^a8cvqZuZZfRyr$xYH2L0yJPT#P_#YgJoWkRjYCI}u(6YH92v zvbEPwynLCoVO=0^Dp6{ftuoaG?*HicQND9x86gLgkwL2An#*VaHIQ>26c6xviB+Q1 zW<&|eiQ!i1iAbPjQI*l%?dr(2tKIPV^2m0$ZSY~&f%n|ffaOo}bJ*EE!PGq}vRCmo zy@DrIHTDW>Z{#|brm0=$F~RcOKz5>5R&I)W7`J8@-ONL$gFA+TLRy=+O85k?usNU2 z+oPIdNlAR7gT_QQ_RHPq-FF{0ckf_Rdi&x1ZgV+eVm54PviS&--PIAyIli5T z_W|Qz_Qk%ESQIv_|M>jo~VOSIU9cIhaH z*#X*F@@XECH)9dYTRyf6u198_B9l?n=eLFxZ|KRQnmS*5{RGT6Sd-(8h`CUh+H7;P zS=HDM`me;1xq4#Y^hyPtfjvuAH6t9Yc8$YE3qDEysxecJ+FPXzGw-ZLrMLf`T*kE28t;;RPF*h5?k_#2+k-yL&5uv)25 ztA~Cund4mk>g3)NOi$zI(}QAw+%1WVf%^9PrbT=roC6?z8RZWIkRf5H3hp7_9~QqL_Qb1Ht*^$D-Q;cr z2KR4w>$@L5+}~NPOK`ar5U%PaSg(VLd@X7RMG{}JNr%r`+6l{?rbRQqv|%Z!n+rfu zM0!dM&Ml4t16lCh)Z>Qf4UxVw^gtg__p%+N$SV)AIHBgt5QnE{6#=PrtKfPeg%xQo~3R6PJ1Gx{lC0#FgNj(8+iK?abRxZ@zwa zH(oDS+Co+1#}7Xmhv`m*&nMc47%3CbXch@0fWdy znDys1q4qR5ein(Pvh$X#_z=w@S!01YC{h*CD<`ZWJDb2bKm!PBnOuncrfO{aXcoZ1d?g_JgVXs0wMW!09p2?GOp!4`+X z|BETZtGqjLt*_l!Jiuw&qM9IikCpC4q&9)Ax&IPO-LuF8jm70AMZNB^YKG3D43I6m zikrfxtS(lYv2a6NXi_+T^i_b-c6_pMv>lh$BWD$*S|h3)N@7q$-f;FILBiuoaH;*o zPk=bqN2LP!6lCnMIRSU^s$egyK_?+G#I;~6E{S516=lkc5ZEFLP~>a9BlAGEQmska zCQpr-dMGDS7ud9y#<(Ew6h6ecbTSzV&c=c7l(OvHXOJEIZ19_a1FC0{A6?`(W(S{3 zp7+Uv=DR&TVwbD_PG|XEgXlRWuSe~8x8A@wKZENwYB%U@ux%uWFIb_b9<~DI#Wkk^ zWSc+}_%14sg~#0cqd7_q(=bAer7^H?d|K6{oszIS5twmmt~Pg8O=QLJZ&Q)32fHjF z?COCIpd-uqCWM_}LwPYXs!il^0>nAoFNUL}L8bJ)n;Kl%+B$!bPoZq7XEFo+9B|S*klx(&*ajBd_Wpo zq0;*-heU>X(ag{7ZnjHsz}7Qpon}ydH9wB~vH+$VQt)&4k#udHpGgY(>sN64M!Y8f z1iEE{5exlk_0WT~8CB^DJdG}hRze*NO*I$BMcp2(&4BcB9UL&OJm~b5q$)u6WF$GHb%oZh@GT(e^RzK57q>UcY#NYcnvC} zLtR<4=$XRYg`#^{>8sjMtrYhjJ`v_bXynGs_iye{vA!+1?lP`*u)Es24d2olosbMnA0-CorcAktxXGUKh?hxYzDuR z;4!#>`~ni!(fVo`U+2fG0_k=2YDO$0fm2-BqeRp2fp8mb4CY(HKpKp4M#@afDU(I+ zvW#OZT3tZ`em183ZjPeDEF?)`H0=c9N8Bo|QM(n5OWp>~O7A zS)4t-mEl@RyX0ujqkjuK=J;xjl)Q7K&Bmv}xj^RvvpOE1SjIsdOX~8t-M6@hDNcaY zZH{8P8?Zd%Zcugt8dsWe_&0#5yJW&{j;WI~f^>E#Hf189Oo5P9IOjVUP=!#%nlT`ezANv4{5X|{+Wu(THC zk8DsW%pWsSonFP`Nc@QNY!Ny*bH0Au4-%Z#&wIu1yopiC%&-u>lNRf%+X-^=BscYF zNSa)6uNFZ8L>U}az+aU zRT(l&Up|2T@hD+vaskwF6Deekptd^JyC4h-e1z6ZY zXCTEKomEzdCQLVo*uxHc={PwdLEQLidk^?rdBhzS^iEK;{u zosRqvIPb#D{E6%l2xb;$1*K8_lhVnVJ1N@rj<&U|-oy|NjMC-ArQT9PhZV}jo4lM) zP_73FP~A7se33fc6au8@cs8ceyS~ldDJ-<3ODQNsdbFgwB%Tc+u-L?v!mtCbw{j^k zvY5hnq`*?pw-+}k@OtQfg_F~77y8U4YQ|)pE)#b5AThqiZUc9=zw4tN>}ec}b?6@) z>lbu@&z!L|6lzv#JB*_c{fp1hbvy!oqlrqI1qkJM$w_g@FVrwxuv0 zGl)8aET?OW9j4n%5jt!+vk_nk9^|nO8xelQq2RD64yEte(2rq!3McCdoZer~ai}^t zLhue>8prv3fcl-rR55iecr17{;)dQ~#0G6ypKdT)VMpp78r{%FF|WKHBsPBiiuSB3 z^uif@LG(6;I3*7Wlezm4J!t)00h16Cb(Y0dlnvO%`F8c(XaJ3n-^l>A4dB?J9 z;GcgFG*v&Udt?#o#>iGCBHp+?a-;j{LobpxBn8h-Q@NoG5i^Un2IKCovkUNb$bp`& zoi&wjFXhUpos}De8?|v!Fnle4)1)*@o~Vd}VHaj-43%2}lNtG%XZq#Gw|B-PzYpyNJgST?!Pryq?W3Fz>iZ?k-BRh6ec1&=d=feLi~)Ty|lOP}G!sVNMNF ztDz^hV4y~h1kUscdbEZGeq-91G&H>*O#8wOHAap({_R7oO@0k9{Ln#Df}a;NF3n6N zeYBokFKPON*3m_aqD2#|`%SYrkkkytEhRd&n=-L5K$$$`b??uY@FJB3jq+X(MG!8} z!Bwv3C>3VepUVqoex@%5|6_SKxX5fLkc;qTtHYn3fI;Z}kN@!#{=eJl;bnwG@6eoT zB-2tLgPFiMBZ`;%szuRwl!`@JcRn_1JCr6GJUzzl0z3L)5kD4lZlI13_#7zg!O=`z z%;m=xRV{HwOJOsmEm4FkqPCxuB%>MJ{rOL+h8Cph!8)uQE%tQL%a|zx^$BOA$hm13 zX$Nq!5njG8QbiyQ<=cfAz%Aj%gor%Zrt!o8VJJ79p27We@%Vt@gbnV*_Cr`Nx7e^( z+y3quVN7I^s6{~Z5;5TelflvEYPn#_VH8=co^|r;4$2?1>0@3HN9+`^&qD>n5O@H* zqWB)1N+3}8n)4%iCKZI0pcvIrG{i>%&|_?Gt!^iVT!Y#5Jx7~v3#QRMPxxr_dVyNv zC_~2z+we#ePR#kihfd~_D7r|LuV@1CR(*D%}3r3dtu+H7Jo%R+#KZSuAaU|K2+b!1MCj*+DE(T+3=4Dz&~ zGxh@aQ=r{~W5pucw$rXd^`5|U#zzf0C5{BsduUWF7^}h9G4_jelxB8=A73g;s8OV2 z*G;7o&8_JJ!wuqTPaow@5u&uBWL$W&L@B)+O)Q2ppgE0rw<-v(xB$z*z9Z+Pqq|&! z2sqyd81Dl_0lC&tGf*#{MCmUQ!z(pJtAH7W%1yb$S61iO{zyKFpP0(J6Z6&iEbZ@O8Tl$6 z%Ds(^Ycl^cVXzlKg9yP39h@$-zcQ7QV?vmFs$hyzS5S!C_%dqz>#ja)k}$&c*)EF5 zX^ZJh2Ig{ZbeA|^LcjcK1-CD9G3x6u|6Z>U(TPeDOeQe`) zHyjR>O4rrvITq4WSh{$oDK3mBV&v=)k?>uDBw{#Ma_gm>WAhB?aivw$^e0;^0$l3` zWT75_z+uV|yIz|M3ofV&e4y%=P)@8yuc=?{S^gbV#LR6m$z%{ZXVZM0Ji|R5+GZ%0 z4*LjdXt+Ox&q))e`P8SV7A}IF?Zdn>?l5_w!d>{~g#NJMmKqJ39UXeuZ^0VEt+rJk zuLag)WjeuI!csL>Rvo@FFEk`~AK73_`ekyf+#ban_lc&pK`p73^!&gWjL-Uig!e!g z!Nf2S3FaDYEW<3qiy{iw5aht3a1lyIseugI>9GYo?|Sb(y#LPr`TYLV z+wb0^SRnLz;-Z+92mbRHCMWuZrX^!jotSGyH#GZb;V7X+07g8`Z(#358I&Q}wGEbSsM+RMAr>=yiZKo|cXNu^_owUkvT>U?6r&${VK3mJ8+E5=wf zKM~t@eSw-T;~_kZo$7*zSS&V>zr2`{U#Ch&@_M1xr^#`fcDw-VC2+2)%-)Ahy#n}o zNQOoaS{V|pb|aMTGvODSF2evc}OQ z$r>J8Hi+4D+HKQmaun8ac@EXe=;j)Fn~pZUGEs8v(2K`W+`w_L2_izn9`U!3@&$0- zN7h^sCH3-GAWc0g>A>oIv1DF7>NI#w5d<1$Z#If=F27OAA+GeEqJ7v?jPk*l_L9t& zkX=;1{;&JHZC6`lMmJOW`uZhG=+KEDJ(+Wio+sHXra zT!HAa&=C}9q#*1D13n(RD%Wu|LukjNNBpCxAU#b^^ryUQ6nMaiDC|0}K_3zzsUN7#IE| zZ)WlVG=t;Jj9}b*a;lOEPDqB{(=MO#8$)Tj3P%j^-O~2iM?|7TFYJ;oZJTpP({qo7 zALsA&xU(DXI~_=zMTjxXN|t1pxWKm4A`u1^MM$~1ccTL=2wr7<&j>ICJlx^zu?~G? z1=e0Ly@jTZxCICT2N}E7g3=h|-NGQv4!F6AlrYZ{#JTUv#ERza6h3Wnl~>P%T;Ljrz* zf;yn)jjjo#Y*4t=OH{yA8aDOJZk+;Dg6TU;`V8(w3zgMkV5I307S3epGS6t=4vn7y zYOBJgzMalz#}al(EOe#YY78+j&Lg9Yft{Di#gsDvyBQ?oqV7iUnx&Iz-7$S23x90> z`0mD^0XS~2-Wx<0q?o+ed`n$z)jV;0HMAQ_ zG%tM0#xysj13afwcz-*!+yUJ0_zyEJHX8`z2F_jc3#8avuQ(FKeD`jJ4;%%}60TQD zd^kAorX8+^sXJy>eoFMAfj5iDH7Ui0Z#V;o&w7?P#U-* z7|+dDt;A%}Zf5{EWVsp7udZMUgI75w5pqlB_EM${?%b>M=S?=7r#68!Da2P>a#!d& zdIeHG{O$44;A}8FK0O_toea*-PVas*Je!#!sSJnc$YWB2({kn9duJlD#kIbQ9wax| z+W2f>#!6FIptZeyfDl7eHZ10xt)E1>7HBIH*ClH$Qf0v}zr&0h015FtMG%CvbtC=P zWP0F2+DrInx`vEipvKFWYRl{CdW6yjP>Qj9mX1h6cPV|D7yl^XMMlT9GcU>?VcJ?@ zUyl#(l^5wu0VB9RFzBRihZfxg>PQ!&S#X7or^<;d-((aclB=4$*&cLN zV-MT)O#^6TTo?+OdagXEg}D7!SCCLv=P)G7!wbQo_fIOCM0yT5!yZb$&nPGdlsl~BdFA7YSPoJ6KeN~0MIV$P7Uayv45LjHp}W+4M$G`)4ow87^R!@)6k z{o*}$JLJ$c(ts=>Wv6yqd@t?mVq{!tjzz*1L~;qoxDzAd`P$dP5Z?nQy}QE!MI=zA z@yi=`!y)Hf$kw7rN|O?l9kagA$S;rv6UrVAUcqxS>)*;_Bo*=-77pl)Pr9OC> z1q+!fvHsO^Ywq{Sw;bzaB9TYSyM`%RnoNz#+*_>xHP1(9ZE9Fv8?OOb+HpmVvpK_a z)~5?FXAB+tI5pVTc6=rGkS|u`T9A%wa&yEEQX4&>$$jvqhg7*0(dY@)u8D>ehgfi^ z5lxAx-)sMH?#Sdq5Kd%uC5-STvwix|4d!(AuMcz#PdM)x2ecv(RI4nMUMRZpDCy(> z<-l2KiW6|+OX>Q(nQ;a(iBLHQWLQ%@OhZ^k9|3#7GE>u#Lzb15{-&(_;#c$xFDslj z&_K0?Q?p|ELuo|^BqA6ow&cc}W0=->MXYfs{cy3sMtWN$M=}#FmBGUkc+drke2LZ1 z#rdMQ(b}`w zd}ieKurK_y|7%14&(?rqQZYpL`oIuTav9mO4S$mkJLF$%ddD$HhzOW_ke+Q&0NJ9& z@KgAv2m1+Kx+dsUV6g2e(vxq_Jv3c>oNYg@Ip0$hS)jukE?d?$@({UB5NMH@3fzIe z5N-5cJK$P__mLTjTK&7zWgS7{sQn>cV%rUJ(bC6xAQuidIC;aBgWOkj&h&QBjG5V+ zg^Q7#CZs1tclv8Re}U`kqovn!YT%1y@s~U39JN7kWtcD71i&AS-xJ0}Z|Na96&Gqi zFawnwo}udw>nCcPraWHgqAXSB6dgV6tWVUM8ZmQ>KY*b#3Bu#5gFfDPjrDUdhc9O9 z=XT&z0VAvcQT)?$PaqQi`a6C?&zO3dyNU_aeQ>(G;H^Y-*yo@n)4G!ugEesM#b9-M8-bw~q$7QW zXLIr;p{_ITlZ4xlGl@d9&~Zr{^+szsk*p1@P~Ji7w-ydjUm zE4}kcAm)gnZok;{^b~ryuviEj2oQPYnHrXry%5YKo_t&qfS3W`e+x2vw{6m^BMp!c z&~maqBTcB2Z2A@NI+q*^*1X;d{-14Ht3Ni}@x1?rf9SN2On`K*mNsU%U(O$pQ3 zU6kWo6Y2Rk`4&ZNxCw-H7yt0gDB#zN)ud3w+J#3}iVVAKeg@S6_KOq(doRLz+ zRTG>i!(f^t&AMgRdFn=@BFGwAjS-Zc?#08tVuHYWj$w7`R~`mXkB@JMG&Qc0JFzK> zB|>zzL25O)?X4${j~DF!2MD8(rbHK@Q3+0NlDqiBg0;L5Di8&O_`TPlpy6O<2 z+rao4WI~Z!;IcP0`Fi}Rj9DOQt81*Cx@9%LuBmUykT>QuaTCUD73%oR+W0Q6X$2Xa z#Ni-af}9F@+EZ!5{N#3*%5D4?de-nH+M^&ERfw+T?a4crNu1Qrmmriz2U>krAi0?2-9`rj>KIPFY<|lUB4-AJ3lN%gY+8 zBLp=DK_{K_N2sMFKEeE>hUX%}g+GC`f!J>@v2)86P$808z#hVP&PoSfCKZ44?#H)x zJNQ+7|K=m}nB%#~{u%pAe5hMfhBV#gL*wGryVq|~8?AGiIKZ7;MmvP4^Pv_jrkOV3 zQFG5}EYuPuE*o6m$#-0?7Sy9$F5su=N=5KrmLVYr;+RP)(r-mei$&BDm4xs3;`&l5 zR7|guTj9&3;l?%$FUX`SDF7M_7NWFEAZVUxK?nVp^=2xYU|OPg{$}`eyBr!hB`vjL zq55nvLW?o8ELSZ(fNKv^4(vx>RmwTsg2Ao88fSz2nrO$R2Bhv3nRt{>HjyVT|MMWJh$m8F$ucDls*GomJ7Gv~QJIXAPxyz2`*e=0k`<0BI09HtcX6mBu4oH?{^I{@tgzX4ky`LGZNM z<>tY?907*;f>xQIWOZz?D1DaC3aIf}(G%=u>4D@wQ1EFyWhz)wCm|9Ak*#gkxQvPh z)hmKnQ~_emC-?X95d!s&_YANF1+k@)t@juy_#B>-K%3EI50lz~nOv$$jN|bkV{#eU zN*^ z$t#-lsLiXqT`PSLhYfd+-cVSCNVEkaXwvJ8;xBE0?87{!Q^W*QW8sP>_mOU$DKzc` z)68<$@%+IN{v@k^?M#322%H{LLLh?ka&tYs5!YAKsh$pctl9r*Ntz?>_-c+!bu=W& z7=z%<*?2l$hxKLn9p;2+NGA@W;So+XEpZBbgDML{s{ODZ9wa*3=R4Jb1$TPn$!(Ey zkc0&1QWkQ+o(9;K%Fjdykc-W;LrF01v&gnS$7La0Mz*hdsVa~jSni%<9w|QS^gYrh zlnzWxcB~axtWSv*-M+vyb`F5xd;+Rh5%bpI?P;GbbhjqKLSqWo;+(n!_7*tzVi3-( zP*N&*5ZKAdgfyS`aNjhD8Mdum7`G|RK+s^) z7zERh#yX%~qP<}1aG%&+GQ*}L?@WWrf|96HH z2H=}2*OTSodi)R3K@11?z)tm0cgxXf&+hhobN~DC+xOr9ZSv+9Numha!Na2We-2XG zdTsP%evTrq=>qK02V{~?;mOml$ZJ7H%Iy=3ppZTmhkAtY*%6N<5SVe@B)`J(_++3t z1^$gskSawD2J|CkWw&ZbB(p5}Ee}c9V-Pbpt}uvc&)C^r(51{pZ=Po{qi}VK3dgRG zEO>M3jDnEjyAdaJ4UIpJ!9O8DZaUeWub0;=inll{`an|sAh-%HxbU;MI77m;oPmN# zCnUX$c~F=VM4@?S&qgy%TWV=miO_4Cd-rAVk5sC?5VHJ0vBgr^20~0Zwi*wQmBBjp zh41&i9=CP^e(kYquj%*9ronw%I_V5*$lnsEyc z$wsbS+e`E+5*)iTfaX#;TAY1N4u0N&2e|7kVC6-tm3AUh3G!BcXWJYYnWbxw<{=y>J(hCKmo&b=X*0+8^_TAeJyF{!5ky0IB6W* zLlNuF_+|ekdM-G02jJ*HWOD24$N#Wf0f`$B%dE^W`F?B>9*hye+ALQM)1Wvc%hW&$4@@(#no3o-+%gW_xk45+fR4WNEp=@msLCZEu>zsQ2-Z)#9JK9_>&E(#(Ky1hy(}R1t+_0(B-q`-<5!mcGmkP%~6rxQ)lmo8-lyw1h|X^~!QF)l{`$ z$Lel+h_=%lQpRTM)rudhvJ}Uy6j`JgP1dY*iAl3c%*GjphkE)b2mtHJivOpFqyKbd zhm1bGrE?)kN9Wk;fl5?h>Tsc62qMw+r;-+(6sKtC!TlYeotrB6Q+D(KpMjdckW8SJ zy*xXGm5e?OHdn}HvwZP?ck7{xv)F@`7^`k}Pq+BmrT`by8iwgc96t?^<)%fl&$^lC8&r^W*n>CcLUWxcvLogH z91$1YO;7+e29QuBX&766x7<+RJ2op`L3_;!n8o&Cyj*wC10h*ilJR|-qdxGX-h`D; zm6Y^>jFv@*O>8Stpu(12&0V=pHu)2t7^iS{(MS2u89pT1*xGWf_0cDwq* zBjXDhXoNx*=SXu(k~Oqu@|Md2H zH8guow1fgiVEp({LQc6D^Q3_Rj84@C`}U7If|Pdoadq0zBbnVHme*Y&i1&6xg}Cgg znbW^qDm4tIX@EeFU|Ej&RnbJyLy&Lih)AM?QPA&DIpvCRP*f%OskVU|J>8 zbY`&JERpEoA8e^MJeuL@!&rpb6qUYBa~e&}XnT-j>vb=wC)pgbabOA{KuEMw(9<jI{Zsh)*@WRV|NqO9`g4+3 zcq&Uu=7{fCVkZyww*s!%K({y71I2UL@3fq($w)I---l$FeTiw`==4)s%XlQaFOa&~ zDxq%662_8F@G)1Zg4xDFGIQ*l#i~v}#gm<8T?gs$!N0r!BM9HzO4)3TE7xw6)^3#6 zt_&mF*GI4LiG*|mq4cLu_peyVe*Eg~+rPZ}{%?|fFwF@X0O_|<_-c-6WsNNzr&M4_2#ug_dLDVC+ z0F6*k!O?~#iLjHH&%t6q%guz7cjlGFdyTXS=E#9CxWf@l{^P|4O671kU3)SR_c8`P zS!5d7IoAo55?GJhGSSc-4K`f_%@7U4$vlrARdU2%=+o@XG7*UKBeyOm&9n&M+-{gU zB^Vl5%?Seo;}9o-Ci0ICIOiP_n1Ffp&Ex&h<3v^NF}P?r%JsUqV6|&|ZMSRTpi3 z%=c*MSy-c$KF8u0-BW~OXth*1-EeDT)#T({PDU4K)QMs@Dc^8NcC@%wiHJ#wpb5lD zIhkIbzO0B`1G10y2e^GK8K#&=*5xJAzaypEbhViyIVa4gILcSwo&XTb6CzRKqXjdcx2HQ*S;vf zrOoe%rc~zStDE{VDkpL+ooCaRj5-ogVu=`I^in{sSY>FS9@3RrA4ty50HOB$^m%(m z(`yh~Q1^1|;|P@TTJH``FMOR=(XW?YRyGpB)3WO9wB z)`LBeL(DY^`Z(@DTL|+b-`w5H8nyax_woBz^mDAB$mgvfdJsj>C0H!%rH0NnT@(p+ zWDA%$c#GTdr27wVzP}I6+mU-K7w0c>V`r@P5FHohcSpfQ~sr~}!Y zJqzUprQJeMgF~M_xhui}qVG+C_c%tzFg>r=whrk!(#EJ{9Nxnv{}+_8vZK#4N`q8G z_>em&jz+*h3oW6@p3Th!&bGWlKOVZmVElfJhv?i&ghwC)HI8!7U<&!af z=`e)PwrEAN8^_*As2(Q0;0v!0jvSM5Qdr) zyHvR+c*%0-KzcDc!Sq&5jUCX{X)PB=>|uQd7`eWKsRQ$m=7G!a>f|@IIVr$t2sEp# zpO06jUQMkMC+K}YyPR)lKsVf18p%uNfQ~I z`6c2k=alSp2bpPZio)f`G6*o8)P9d3-jW%QQV^{n8fQkI?G#F2d$H8x+9Hv{LERX5 zX`7^TIiY{{-cK7K>KyXpOR(N=6yF_d%doQPIiz)$B3u{a$3xZGRmD3G1ovp|hk7=F z-T7Gat{G7gS~=t_S~I(C3T^B?M^2*rzn~_>9>S+ z3|r|$C{41d3I}N@L@AVciGX@=w^T_s*W_tJosoG|C0uqkn=(WRtv--1jvTti@=GtK zta=mXxdI)Uu8~?#dl??nTut!W9Kw-s)*0_343+$5AO<`?s?cWQMuQwy<0%3Xi37(? zJYw(@2q|%1Dfx-x12<=%c9&F1ylXi{i9Vl3x%=IpWs@&O67~8>QoR{1m1mb*-q& z(bdZLZ8SwrgteAP2(FM-OYruJ;)EMSLgHx(Sykqc~QEcI(!ClqwouU1P)qEf?tu*)n zAt7GL3W|#&fW$j;xwo!-NJodUnTJVSC@qr-rti?oxstcnJdj}OPR5dNWmMpkLDdoh zar`;XFWle~iWr?Awd7iZNU(BTl=YkwH@^B-4(cSyx>$c~2|P0}Ch98i6UNf$@}d*RyzoCV^adbugrKq)*E z-gj1n9#gg< zDeNbbhWrvT#}R^*qAK}*$qn@V_jeyZ8lCff!Z70kr0=!UjgA!S-Ev#WkVJ2r4uyzP z&)#Bq2b`Z-_%x-vJS0Nztl+v043b2)KD|x@F#&^LN#ALNdppgh?59oSW};Hk(i!Dt zRm=gz8`@g6Ni%qqKrya?@}|Rw*SB2bt`tyx3Hb;TMttKn6m8~tHyJq6xbD?;Jwqyc zg5n^QMr?y=lK2REOk6?R(&365pwA%rrhRd)9T;b^JZE(BYc`A15!FfdcGF8q8=-a@ zIqB%JnifzWCQuv7(K@5VAak94V9>D5X2qiwH2Ni~L*F1($AQgUO6A$|SDM!Xs@D@i zR|dQ z7$MUlwEoq0Xa!7@M)@hpn#cu>i-X79n=zZ1J@^;t@=#<3H%xzlC28~i(}(ZxaI@#) zV3w<#pCfI1!_?$+Ny~wb=;tugpbnWko{>|s(K-7ap}5i1M3fX?m7gn$Z?&MYAKc{( z+Y$AtSLa0)5;pBg_zEBcyjteYx$v9q`4JE2507SEih?_bKYhIcGd2(z5K-lR?3!n| z8Zilb@mmkI57(g_sa@?DHv6m?EhgM`1u_i?dW}L`pbW6Z;ZfrsKo5@dlTCbpH}$Ue z5b^Y#sg?mxX$XgwjSrifxqkfxe6K5ZZ-4^~3~;ThD|Ewb?w#PUzIw2u`Hy$xHB%gQ zE^GLly7?Hn4iI2vuCg#$ZMXA6X99#o=$K=ZaXO_LwqBqkBNN4n9{D8dAjMI!47MU) z&`2@~lsE)8-2IX_^01bvfY>zC2=q0GlF6xnDk_np6ib#VF|y96#XhkQwbb6mssIO& zI)%o(8be#C$Uvd4z-6)25-)V1(I-6E3&)NLLJEZjcOQk76)@ zdZ;1d65sI-<+zc$zaB;hoJZo-YersxFEup|Qm~}b#XTl{6oiWhRp3BFstQm^KrDb1 zHV-m@c1!Jaf@Ax$PA6tuUH62nIL&R+s!PvDJ)JDqw&zHUF-tbK(;-Znz`v?=FwfR4 zu!E(j`*W!gqN${LmQKO-HYv7IA6WY&D>mEXub>vlQ{ZPG5lXJQ3O`9p5<7xvAW(a~ zS^gHPA@icPEL}({^sgc6YzWCcfyf2DH4)E9!_q4bW}qIE2|eBcRX8WiC`dM7e!kQq z))7=cW$0!@s(dP6_ZM4y_^yX?bldSP1{uYwnz?O&`b;j;0{fF%Z$I#pGRHM%rEQz@ zUBzQ#cckfc1Les1Mr8#ilAC<29AciHX&5=g!g~~I_URZw)TpZQh;kE`Z*%K-Uy#!p zrZ3q1{p0q{_kXh_CbmLBn*GFL;Z2?`USR>&h^#ED4mCb~b#`JE7K{)Tfvq+@N#Mk! zS#mLXZu2{>2|pQqbb><%V#i6PKcBv!Vh{HmSFS&8l_6{oKRv&X{X zoP$3Mygv?1oJ#n9Xpb5cEC6{lenRzH=@Tq>H}mVrrSnm8#qjv6lIzo%W~OcbSZ`!< z>b9l!7}A{yrk5{Hq5PP`4gv{7>7NpJsFbc{L1ns31?%!Q3Igw@ zqSVxw6=kzp&zEZ?+)<(dqld0qqcotQdkAT{~Mf-BD#G%FbunLwy& z32ww(#0z20$ORB?h_ypz}`5VydKX;u9|g7w}~(w-<|Qf^bjrxXMq$Z*N4=YG>5Gr+l0yjtkqLIGPZ!{ zkT<14Y!+Eo!&TX3*^!3U$e;3Ka+Edsk{u`=0eU! z&~&f%%sfY-KTU_X#f^E&d2jgM$?2AvY8pEJ-9?jrTG#Z7V8JJA*Z5Mwq6a`U!>$(x zr`@f12E!c47dhL#HS}sK2Q>@ZaVRY4ZOtRty+!AfF$GY#!ob8l=)0JAhDXNnLc1{n zqzR;M82eUXJn~J-p+3@p(RZSX^~s$Q+(|s89M(}vbTM3B@Ks2-k-_%j&D6A!zF9dd zs9IgMd`TuKwmX>v%?HC{N}!|2CIcN#Z#Egu8nekL!=$Ju(?vjs*Idx^$ueM*AP9GO zVWe0E8f!IEGmi~WA2eP=CW|aLz2iFcaVZ-?C1Hb;)2q$lA0{W9MM-Aq#+3JWkZ|6c zmoXa3Yx-Tw6jwjtqjrk#xfRKcQplF!`ZIsfc zlJ!xZ!uj|xX*Aq7g$H^8)P(B&o_xta7LUiL0A(wm(zN`606l&5L=wL73alnFMi#%d zKpFwbsB7J)+ckw7B#Xt+vTSC02TFnpiPu7>R$l4T*%Q>+;Jk%cSVI2R4ONkqp2p*Jsor-c}6@C z5xS6H#|RZpA^E;oJsosoE!*dMM|c>M1G$L7L4Hn-r| zqK@P@U?AGZxB?LrRf@^U6j?U(g>KUl@vER3B`-ti4R`;|8Vu`nu`-<_+_FTga=Hcc zL@3%?Us4xkFlMS0t$%7I_{`0)&5Vl_2FRyuGg&NfEC>VI48k3l1~{vtRthZ8<1^3} z)13M!tHb1hAaYEk{yHmHw7|k)ilIJI=MXw0d0@J!?q-?+cZOVzCosR?zxm~EefQJ* z`@7p$f4lqivkvtHf?2QxR+h1j)!KJ|E5eqP!NY+}{kGh~skvfy3nEAbT(^TwsR_TW z{!J4aAWf$hKk_8n;zvu156V*|ksh=cGKz#0T3?<8h+My~Ox^!QF8t9Ug@V zca~rpEmqkwWUANtVl$rbU-U_QC$St~ZzQaFR+^C&Tp3 z1$Qs59+m}T2p(JV9;3=Jccc>+oFsQ4Nu9oizDeT?k-nn6 z+g!|N+hp-@$LD&~u?@0UG^AV=tw6ZxdKIKH{2OpIBV`FCK{wk==SB1fcX#&b!^iu} zyLUg{|8;k={qXAD#~*vi;i6*u^AhJ zI*?*NRT*i)S4aVodJD(V+ixZkVmne_Vbx(6vyM1J)JtkY)(>GfeWn?s#`n4+m7FTO zs)coXAqX?w#jCtCcEPYFB>(eEcUMvrPclt-dhTH7sbq*H0sgrIvePMdLguPx57Bf| zyO&rC)mZ%$)47H$5G0!tV}wAIk2hQM!^YRBp|OWt0hMy#I&Ii~`jt?<1iU-c=Wp(> zKK=9;L`_>W~u`F}`Z{b+|>HGhHhKG#U8g1n6yv4v8&>X+(qh+D*z(hh=E zwp>f0DJ$Dw%V`*SypfX{+}QPM1)r|zL@o<@P#5ww6j{Qw{8U_N-%9HWJRd-%dm+Zc zRYU84$dkPfdE!Z=zu+NH_dew5mp|mYy$|{BOCN%%818wBKwmg3=sVi~n8^3`*?GZZ z4);F>AezE2segjt1x98C9n|A*hX8rmx~QhdKXwlY|q8` z*>XB?9x>V)`fg_lJ|ECz^>>g0n7%XSSf@|1gb5%!S< z!;&U7!P)wG%ZG9{GECoW2dWM-vlSx14=7d~L{Qzpq;n0~Ri{ygRY#GEFn`SmHYt13 z9iUxM{m@H>S^1D-h!&RS5+3Yy&p7y~W#u{X%_!vurWZxRm-PE?6mUKB3~006466f; z(-7Cw!Y3qiTo2K{!9Qc$n`8Yr9qW+{0OoO~IoTk7IO)BHC-#+|A-c5eIackro(QKJ zu+IqB4lG9aHWcgAGS2gNAMani`~Hr$k|8qUiF?Q1!rf+{sB&-|lE+Iqhj?OE-~xMy zqzHeTz{Srb;?jMqv;nCTf<$|IIRcp5XvElgOB+u+*|-KEgtiZI^MzYa+9&>O+eDKh zj_%^Dbmmiwd?ZV)m!5o_ljT^BY#?)I2!=y~?^}4sJ=Sc6n;4_5yy#B8bkMyts$4!> z3!StJ#tkIf528p8v2Q_|VH)`T@X7JfcSncE2Tw<%(bFf#ci$d9oxvDH5}ehh%4m6L zVa%2!ENN5?WO`d~Azx%+bVwVJzUkb@vPJ}4{tWckEl**iUY?FVotMzPqw&CIy8uSiW z11H8}B|&&k4U^v(_FUt z9r6<_J(gO;9ZZPpC0$fjAKw4?;nh!ixV{qC*uy#mIBSvSvr3C(oZZk z7bFcd(UkcRHXiGwx8|-O=~XwU?PWRCQrIY@W_}%TEy?L75fl_qIa*xEVS*ufC5Z+? z_@)2fQ3!Jf2jgq)2vGnQqgcIp_Xuvw_jf-jWuoUma#H1qP&`6T2{T2#Q;?+G>tVp* zxhQ;64hOnm*>EDwE05I#68ea|SWIm{xl1s0*KQ+U#%I?Xssd%y#3^G26mEG4n6P4A zbfvXon#0uD)61sAl>H-!G}VR{W0qhV0POB0z*w=43Zw=&v5=A*4!CZ&z}7~?Ug}Oj zE=NX7Sf>}8+6OUyJ%dUx4GLQVnfG>Qa(i1Wkroh&s40R^Aw@A2ZU;CG=p%v{QI16e zrHqd%uYxnwgFz0i7z*VQeb!+(OZnyOBfrk8KO3dOA%{#X&39Iy_)K0*z9P!Z2W%gQ z?+u@k-Y6P(8j(yOP4Nme5&T}SJDX?jEr5?0k*x^ha6Xa-n65^Tnq+z)c76qgW`{Tt zhnqFj!F0BHN7osINTKinyhA3_+3nf2`IMuAfT=8ruF{GXFXukNb(66eel=hLM)pjh zvAhKka7ljI!nE*>!(&|6U{ml`Torb6NYo}!z&U_$Y#4zgPl_T~jDeIzz1$PziQr)Z zJCH}&O5LVhG~2m$I-=}RC!!d>;{XSyiK&1|IDk|3pUv>XNRIez0EKZy1z3+|?T*6OWzB5t;&x(e01B+OM5hAjS+-p;r8j5bGa_dd zPel+`P9C*fms7YpBlFG6@FUoO{SITl*+;83m=N9Shd3MvoLesLY5Ig|<)P=mZX%4S zr!=|2dk$$sO{JSdnsKC$%|FeDT6&V3)uuIENbD|wnxJfI1RI7c=B#foA^im(KMZxi z&{!M)Y&*nZS;k})y8L1e%+}}K_c>nVo3r0Va=W0n{XJ;K~5_CEqn z6rX#KLYL)pL@jdXC85+N9=#a@&5uwBQeaJo;sA7P)$cs@H&jB2!s72i>7|) zKmu`B3s;rx=^{*lsR5ZhmowxNX675{j-QrJ`-XAm^KWkaj)NG1Nf2`!u#()!2;)D7 z6>uLRV>VLKEXOC%EO}bj6y2?T2F<`?v0+`DrU?D8y@0CpB1$=9nQb4h{@1|tS)>_= zb)&i=GAu+(G+A)tx2srRqb!x)x|on-Vu?|EM`+o7kRidATg$4{4ck$=xj^Oivf5 zD-HsW7#(pqK*Wo~wD|0 zz@bo`Va44ncjFz4X)}w%=wRsHD<*Csyt8L&5=_tF8CIm_=`k&pVBJE_ASe2wm}07- z;-WK%RP+uHxQ)FQo%Fob74#%R$gc)=Dn0{y{?ogUZ+?7t_j>T=omDO3 z5i}}ag$RrPW|Gx8bQ4hO+vZGHaj~v-5Yz-5?D6h=d^~QguR6XmFwd3yrnL;Q?`=t9 zvgCPEF>v^BbW7*l`y`T?8c9P}#r5WDs941MW z?oy06L%uqn(Sq}bn31qDm(L-jXl=HW?Fhom6#G`%mv+H^$zDnRcIG+Ja;-M^#9m4~2@O zR5`5DRuj_GM+3+w9~^ET%-|Mq-DXI}oY3>}Xtvkh0#Ke6bHsN?(+K17&`*+l`WvFR zAFf%|x1|gxP~RB10}Ij2^6T8aXF2&#c5_ia>`BMY29zHqk?l z5U_D=Y;d%4%PRWjBWq0JoQ34@?)6{({!pdn)WJ@)!X=?L8R}52pqf5ij$`m(P&e~T z7+LC_hXCnuehU;uc-?WQMQP32K2Ot+}oO=~+YsDiM`c58N`_DJ6=wPV(dL zE>8m4qqO5KKo5AeCuL*_*KJDhD5dEVxtZsKvJD%lZC@i9;A?OT5G+i$nKMkLebQG= za1o%Gc#Ja4u!7r2K=f$Ll)6F|{?yVU;Z!FALTLm66aR+ing4|N?%?nn^W!4ygVEH( zbXdv(ao$sWyM@-{o5I@C>=qJijaD#qCvl^IFhd=vKEjt_>Tcd8BWO3fwNh$W)qU1U z&J>*qQP&EmY7EQBZ$^LEv_+GnCAhGb7E^q7Wn~J#WRI{(%N&v^&kH{f40XbpKA3L| z&(cBoaVRugkB_Y8o?4(IM^6n2T?gqIKcb}}20a~to*tSfLJ`eL#zVyj$S2J1Sr`82 zJ5&?L+o3o#Y=x9`Sc*U@@Dr7W*9b@0!BTqJw~hr+(;Wx>>awEi#pSdr`a;_OIes2O zQP#=`kz7f8L16P;{qlik=4DzO}Q&ny}A2 z=QX!-uE8cFby}xFyB*9Ks)1CBz8vrB^sr7VBIml(<}J-QD>PelEmA5F-#B zd&L8hPfXkXSY9;=r%QA7<3OkIo}GnxE8Za+`jtd?uYjuei|Fk z2?plFy)5-TU;+JYJXN&(NJLo$iIyIz7BS5PBJ55JManOED6dqWa~8M5je(V7Dh8m! zC>y3h)wqJ>>Y+_R+Fsu%s(5G=LE5u6lUN1P!e>1Q7WmJcBZi!S(=C0`B0&cSyT6w( zE(vCHNXt>4PPpfXMsEiV1yVT>-7>cAvF`VGDAgUEx?tKBW*;}@RKdW(5cAZwji=*z zO7Y@$wV2~Gdo5pGps=2q*w!y{*pSgA&UQfbh5U9!hF>k_tLfE*iHQIhAf<|ZgYRA+ zRJ1g)SZUbU5T{^CyTrg$mu&mtlz?z_hEkUGv0^KqfEo^;5qV$m)cS@7s2l7d&JFY) z48aYIj5E;dOLSm!8wY5RMSPcR1MjhEMSaIzIC9R2$AYtx0705J?Z z#`6_obNT|>T87vR4@O7Eft3F1b8Et}hw>kbG!jK)F}w zrs4k4-`9}QwFjk6n8(-_XFbzef*)%_4FaMelfp&DG^j`>^Xr9A-QfsjfC;8{glw1@ zEqvkRQ+>V4)Dkfn9Pk)s<<0eGHF*3FHs=g2V!M_m`bnm39HFp@w>>Ap-3KzBB-s1U z3WNJr^_;-&9T zI@=Al5duH86ybnWT-QQCSIR2k2u?u6STqpQ^X&lql3u$Rf_>hMeW58L8W%*@(D9aj zBTYN)R@PfXPKBEGaCIBjk$3>P||W@)$-1yGZm=>qB7 zgRGBLJWH%k%B$KiKCOZQ9?gy+do&E_prHsGJx4{U^wxD(a=3d~w1fpDeK=kh*Ox>s zZ((Cx4o8nl*YR{vaRXt3%z5%7qVx$8I#zs@r(SnXN~!?IE)rAY zvgFMM-?0Ot z^RigZ17|NSLi9Fae4*JKRiP4HsBYrAg#ZC8#cmSn)|ZUR!6}guR`lZd^l>+Qjv8)^ z!us^~?SQU{g2Cw<@h8LQ?&jKcU;l0$skc)PkB6uynm0sxUF~ZzLYnNpu2O`HI66_jd-N5x6!}bMGM%lkg1%CrlcRMZJhrpF$ z!)PXwfQ9C^N;_h}uzmS(!0s>k4RfGQ#(^k;05jt|oGF2Q#Mp}gtlm$tdJnVi?18qf z=|8eM7UjNZj4-VLj(2a1R#8pKbgVIoV(Jq}W5{X;{rVNettL%99nxHb_?cV^{r_R& zwZK?Bg4GSgbh}0huGwxoNSj@Sd=59a!cns(P}H=-KVsdb7+);i=_#TxxO_Z1Etv*X zNuE_ByufnP9lSU+=#nD)#xNWOl26#@?m)qKcP;qhTMmEwEl0oomK<^X#RJQ^N51%$ z>{;=}w>+O93c%M`v;hQ8mz@9pGh)boV6b61{#tev6AJSg&PSaurup#G#T$CI zojw>19Nao=s(191zR}Ws9QTyiMIfJ&z*S3E!AVI^ z_m}(ten=-G*mxYV_Ot)YY*Vmk* zG)}8uNf|Ibxbma1I8$h0+AvdJP;p|$UN~E(T@wku=pL95FgUXssCTZULCUF}yq&nf z#L;+kKb-8dKjX1>qAjU=UPQssXlhX0DR6>|%AfuK#CRlgRspp+KHH%5tI&MA8@Pr= z81LjXsQLkpe1Q=iBRam$y8s`?VBc=Y|dR(Z|0c zSDYteGaq)76-D17;UP`URBjyxyBJ_b z#bNs}ykWzj1>VuB^xbflx#EH|-w@pT6sT&t=|b=fZDgEbCWRo#6`$dsG?#U;0Dm=iKH727kX}(z%O>EZ-0EBs&DTWlVfOadHM33smeTx8keoA zDH)HmnH4p)-#$6O$&TT8kd>=_;H<2@22W7A1QT7PsU<{TAUz0hp0#1*j_#U)@_PPM zBP&QXgG;a&gxQXQJ5*^&h{taYpAU&F=DZ+e$;yuevXK-d7oQxt=6l?6^z!6oYR(1D z8GA!-xAQhElY_eH(<}VM4$Y4C#pIHGsbJ}lm)fHEU~i|7rnZ6hMt)&sZ{&qOKVWQ5 zI1bDI2-;yKrqp=N+1s4Ui`lDTn!ea+qas`(*C8_28P)c5XS9lGI<#XnnGGEcY|;`? zZ)yxk;XkWvQ^w?~M_kuSDuQ$*)i7NAd#~m}*=t9>w9yjW2!&anL}o!YjL(+=DsK=O z`Ic9+`8kwCXwaHtRd1mx0;TPwgwGk_*&VvuCLw(Dj1cxTeJC|iW4TRVz%+a0Ng#|q z5%uGehKObRB7<$NqSyaK)J5MQj zz}nuFgHzxP0wo(NrKa!{zd{+CAkbrzm6_k;;&L{AdFsM*zMvKMiNM)}*JGaidrYdoh_U-iyC$XpC``cIa(SE3taM<#Q(x(IXy@4R5v zaQ`O-$fDpM)43tk9+P_x3Vjg+MOdX8^Hs8*Ppir0FD zm17JKy6V!60~v?ctf)GtBnpWcGRaiVfN;4z1=^g$#?A;j2pngqw7y~4Rfz{E309d> z3qp*+v{1VTx$F8*b=*t#oO`WTQ3 zGa3Zlz@3#$#8{J~N+!}3jfhW)fFL(eA!0NOtk`XYkL;bz*#YBJ=Zc z$T6pBnC5L4ZN|`eP-XZpng%kWWj;N6u9?@ECYUrt6xsa|U1p3{`kcyV6pjTVqa_7t zI|vJmWRA28kx8tQF2Xv7pgvVLfI$lUO}#*+$Z2pr*6b}C6xhSgpI_YowNNBQb&z&9 zt3wOq-Sxu}A!HvsH2uj4qw69?2I__Gt;A$!2kx-+_}jySC$*SN4h@kD4bLV;6}M0s zQ0w9s_(fuPk8>eOFf*0(xfBLWi(|*B>AhUErK?nCeONf?DoGhg&d0WHwUMUD7dl!p zJ971ti#2ts_&FZpcg#}ggZjGoT;b?ZR?G2}CoU4K=X0_J`8cV7xjdV+IT0M=1E|OA zd(9`oNi4bHY$;CZKG1uBEEC*IU|8`C{jx+g^@8{G(5pDl*lnBZv*AU=@TsBMlP-b3d6vA_vaehSb}!Et}9*&c$P*MR=g&*t|v@e9&Xt5iZHN-$%6cvF5k1 zzz~^8PLET1Sy8&l`UomIrtJ!M9gkUWpqf;zpECgPM(Npm8K@g@0&=Rc81l5UOz_o3 zb44mp9`5GhfFiL$oJqtz;SALHhm@8$!isWri%VBvjfi+bj0H<{>iTKo;2rA+(Ft>R zv%K8GZ*T|e==pRo?Z56+$fmh)oTv@`my`AM#o&o`w#ds~hB`nRpvCPXkh_W4{r<17 zK4?SikXmVVz15aD0fLQ|VjOxu@Fx1pSw%mc3#*3vDBq|0;fGg^r5bOfM_|r8V;&f+M^dH$U^m; zcPvC0@{l)2<-8UVg+fx(+;<$MYnX;XEFwa9T7ZhW)G%Kjxv?>Q?_@$@%$2x)6|QX4 zcZ>-{=3YQUG^RoUX@IU+5EAS{uA!J}+NiuCOt;bx^I zM(ipYC5nssM3AZYdb;>f_#zgc;73Dmdb?=s=#P|v)6-{AU7xZRv39oP4|!ieTm`$$ z72`9wh&89qA?9RDWo~VZ$O0LVal6W`ogasnvm$$l=xTmeNbl5bJMJyqc3eKl)xWI{ zH`&%oFT!poO%(B)835!&eP|~@LH-Mnx`Q-rpJzcx80G0xOU1mdn@T;bLK3SKNNRX! zu~n7AJ@F)y#I}eih?U9LgnArzPH;kgEKX1tpt~LP0om7Qb$)&dj?hmqR}yr1 zk7`Ghx)NuGbX_mx1pNFVYKwCH7Qv(6a_J z1A1wk(YP&S3lB?Yc$z*|#}*Ej#lrN)bJ;R^JeNL+j^MYJhPV$*>X7xWSlzaj|3lU7qaM`3PuC{j7 zOoY%V5J9*=#4@WW({sYB=1*Gwd>L1itXFJbPFqrcqPnLPCL&5M=JD7acY~58MkSc0 zgUUDhDsNwiHF1U$Yf;Qo8xvoF@}$DER_-spphK>xR-vWG`9yw*YNJ6@ZG7E zX_8HN7$Wgv%JclLi|OeE1M}~q9}o8#p*H_W)S-z+u$Pt~L$osM7dks(`r)S76T>Fc zPzx_f|L92Lo_Ub1xmt7ewj3e2P$6!qcnLt70ZYD|q!5n_;%o#&U1JNI+Aj9{DN*HB#iLgOR@2nT5FCK(J~#BHBYFvKxCJsIU%6m`5>LSamL+C0@M9 zl)>vm!|l@<^emWI$diRZ`V@G^(7@CA8j}g%uKDTJbh8l_(xEnXu2>Q0CS>jrz#XxU zv>G@&5xe=^Qry~{jes??Gq(nLBX0#mvdFR)Ey0BVnD0;x8-Xq^sFzVfdH;B{c^zXC zkTS~Ldpx?jnZp@xJztU$Jzp=8V=_C^AYmouMbyKzcG?JCEhoRusaa)X3TL63kLm4_ z_RY+criFd?bOrgxnW12y>{7nTvow{OaSa;?$-#|W@sOH6Z!?J1HFI5HXcuUFKh$l| z%aD9P%o`?jD*`2WJ?z>Ga4?XLIBCwix-4k`eS%I{g__Q`ho;2wz|+IfVgW0?#vkr5 zg$t1bX8^8)9AMFe&M?f~e`88&lzX)~@Wai?{D@>8T1V*N`gdjnLEl??=Cu+(b95<^ z7(;`ulzQRq#Tv2bMW98J>$C{13Ra`@07abyu3Dm&9+_5cBBZiEGX1#ZVCY3^%A-Rv zK$=gAY#7z*asx;8!ZGYXfnGf-QKN9si5AC>$n5FmjMf#HPxQBmk?HS}vC>0VeB(z; zxK|MruPhRxP7!J7*2dn1ISHm0k`Y9cd?P}uAy6bqopxvJr1>D z`perSSn-Lz!Tcmw1f?UUhX8}U6xpJYo?)+II4vvZ8p<2w^gf-u^tf$qZzIGy;8MO{ zEx7Ofz&UKPoDJASa;!O`u$X>LD$^tP?OiL7 z9I2&Uj4WlXej(CNF?#EA@JIwcs?1$ay1XDrrR=kF*mLOx>$f(_K17NMKj&acbddzVO1u0CD+@4@??d- z^FSXNt%PpKoMg1i^&ARbilbmMF=pYW~jL2HZPz<_5fFuISuFiF8GUkCknTF$A z2qH+-XQx84XL^E%;Mh`ABN5ByBJ_w1y-$}*P91RmJRg3cudfO`L$MsmDv+x}Q{Zo| z6jfA9mWtNmw=uv}?^5G|e?3oIc_q)L@nKLFVuT*9u9w<@U1+q;+qm-FD!3?oFj!&Z zmNqK2pr;seN4?2t>Fr#9Q+fNur(g~{t@^9IB$y`DSYpHK8K+H!scAD@US2bLP^>yq zrT4+a=3Q>4lQjzFnQ}G}0bRb)^doa4&|`bP6+WhxVF4B%r_l!P;+4-P4;H_!ah3{{ zt<5xdu}$fd+U=*A)CMYLj?~IBR(lM+>OSiD?FYF~)C&CRpm|8%7Yaadw~X=24FaVl zqQmpcMD>UcOf3%%R990ZrnsiwJ}#s{;VztU_M_KnF2OXdvlZfRkZKRa_5RPhpWeT| z)7)ZTS7g-WlkD#2CtiOaJ=nILb4?*sL{lrD?fEF~`}pZ7mlP;IBl z(gCz8xT8VmN_#(?k?QlHc(yqz5u0sL9kIT>>|QWp%joig14XolnK-$Z;XcUp{r)Ek z-N6o<{9o!GnzBrBRd*=t$e{Az4?{#U^a-_((^VXx_%_??FNmPWi_Q0Na>fkXypN%*~p6yCEEAukZstmLpEv$oHw#I+}Q+`(*q75gEc$Y zy{w|al2~xSnlJH*JPzp1R$RZ1>sU)SC4!_!1r=;~a5(466^ZkfMQ&v|%a{Mh|3D@W zdX6C9`W5puO(Kts~!g*q$bt46Lf zkCxzOP=nnLj((-kY%UfezL?3w>dY!gZwD5Oq!)S~Ow-X@rZv;ZNsK)yL|XCLm=QQV z!y3rZ+<+&!+Rir{7og>yUSaUK zY{=gWwHNsxt+l(|bLpXzinUfa@wDvkQ09oddjC$@dTRPnB$12``b-IN5GYW34~qL% z2hc)eW+2BxodM-)E?-NA1VU(W$yb47bQXc{K^dI3J0ZeV2~ft>qLKrsQOUY?fEtIb z9(_wYuCx_MoqHAVC)Hc_bct_Hl_QSec;VHP!5FJn#HcL|(N`-%&o7ul9FV05*#p+A z=?9Rw{a=$mI$$2VKmr957aUXJ&vWR4OA)o2V0xS?9D&L}kD++RDHaYT@#YBL+$shg zo~>l$KHrbs6!#%2wK=o653Dv~K!D1d$sFnQA3){)4v&}_2B*RrRkf&4p29uF=?U}# z_un825lOLnluhV+f*YZ1sxkk;u4!>SE#qivy5KQ*d89P8v)_ob*1=SY@cPAJ#ZpMd zZh=x0AWw$i&dLj5(DL2t#iq*16wlT*^NFy>B8|VjXo@^?u)bMYm(M>~6=IqPn`rCf z?LN5aee%FCNT%c`^gzU4FPv-$R+7AWQ4NtzDzNxi=(0dV63W;t3~X#9MZIuwH_rU) zXpWP)6$*I5USARMrxRz1vLCDSL@9gNDHBlAOfJWGZ8mz0<*@+Wpnd&K)=}PK)=}+s z9#60fSsfQ10T7b$3R>QfHW10|F6my5ttt7gP)M*Br^A$T^D{5LgQ{Yu*O%BVie=+i z5$A4h>{fmK;P*IXF4u9gQh8k11F|uw&8-_FsCx8SJxGaa4-F_pF&rLonVGD6Xa`E) z4$6VT=7?)-_Ahnu38wC5tVM<@oLeM=g*ip%viqF7s4Z=xeY9&;OOK7b7PPTpf|m4f-z)I`m9U?W5F5kLV}#p8Q?}Cd!Am`l|-0rx`|GUja|22-g)_ z8p-pG?BEJV+zUoe-ft5LWSNsM|CUvcT^U*0(1#Uz$6Wj@M83ra}$1JX{E54%v^`mI* zaM8hFw^Ek)*$P%QOm86#1IZ}Neka-Gv$p%4xZfuxk2^eT(+y!`VhyH;SIY)3Oq|bH z^%Oho)tMlV5z9^yyt{;$IKM zdx#N3T>Xv+PaRYq}F zPd^I~`=YLNtF}#hLRkSMgI=t_OEuLpn(Q{_f!5F)+AT)es2?}nL0zV+^KiAQcmryq zQ$K@vX}29&r{dJcON_&?USO(TzaRWNC?)*-NteiC4(@;Y`NQ3h|2m)&6Y*b_Q>X=2 zMjkpm4lbep>USVmn^w0kyyyA~F=dm-_A)%Vpamn>k7 z7f6L?08_EL|6X#g@DVnLK-p~a=2OXG^ecO4)Vj(CRFz_A?5waFcjF^WQq58D;RR6S zVm$M-O)9|}EyGYVi4^{MhMD4a7*4|C;xu+h`7L8{T(SFI4d0AHYaAdO1Lhx9ib%wg zrZ_l?5~R)|o{g`xjA(rh)V>3>Prw51AX+gv(;b%MICT|N@@8KlhvN0m{CD#H-`<(W zrZdh8K{_hffP6uC#nEvl6jIJacqGS_6A_44zHYeaE_k!`i|vJ{uE5dAmf*q(=H$a^ zcZ6n>;D_5 zuMlQs^pHWO0osm&O^>_86~ab$=uE@x!7PVpQ8ZrlPBApdtq4y5E@enFwuw2Y22xBp z&q=1&4g~lu=Y=X7`f-t~8#07o|9SDyJ)b=dNLg2-_}B7w61 z6tV>`6;e|JOph$309^DF6i%GvMT*@#$Qapz#J@+0RjK$QoiJVc87+g%cejNJuctTgz^^t+ z4biK0bkgjCl3HHPgRS-OX}Q(O8o)nIDg*6(UC`Kc49N8bqa4!x!d@AHGCgp;nBP>} zA+-^B^pwi(%9g1c`M^4_HIlaEw_pS`64AMo$G;ZOvY`AJBo2GjBFA6=@c)1EN$4R?^IsrN2I)H9l4q#mN)qiz>Vy)QIA z0rkb11wH-#{>?8qZg2DJ=-aVGQoTCj7Y9(CiKI7WvWfJ$l0QGu%8%bpuuyexKJXWSE0%K(WnDDF#mh z(BGl$bJvsUibch4ck9I}1a5b7@AWZHFs+SN%j8)o+Q{b!Aq(xjUnb@A#W>i>%xL$^Bs2gHJVYx?w z*Ul{+aGG$u3FLqB=EpbpuinnyyhVx)k0gztwG=j5b$YbhM&ACxBa2EvK-P_TX2Vl# zL<$jQUeTN?-2y+9D#X)@y6tZ0?!F*rN0NYT=;3%G(#?V-HIKWelfJUpMMyJTwfGdC zGZv4qxkZ+*q9G{zuajT9u@pr+^-h5|{JSE3tqNsW@;11DuuCVd&yF(|K?oi@lp&lPg`su^R z`^&p`Ki>a!H{5=B_3q;jcON9hHtU_z=_jf#DJtwVb`Xus8;ZN1b0U0k$&-PSc5B2E z+o$47wT_;)sxnT3_;Xc_kT6OR_3GidRNn|jZZB(-U|K4@$Ax;U3Fv0U-PQE=a(=c$ z;w9G88GLp0`{C~ozDnpMJsn)hIhuwmAz4jey@mUo7FjrrH2q76x{}V5F%rEmI3rzm z-iYf&@^QLexh9z>L=PXy!_quFG(S8PGrtb{xf|?p2o=9xSZ-5rx`%2arPCv=C^Btb zzW=w?`+tknJ&#v+AKv`@*WZ2r(`(s-@OSXdAO2wKz;FJisE&^me>@9F?<45G;qO?C zuT_q6Vui%}yBkL%*BVrt*~r)|15aj->FB$NgGt(AAO{2_rJIQDy#+^96OL zXVSA`c`^*(B8`9@fD+GubHP%}H-&Zq&Abj%$7y0__?ufaBhn28rNU!*L|N24)G#6r zWt0c5x!9Pid$+uXF?}UmsHOLtw{0aCm9*lC5frBto|6Y;WHv{j&_GX!md31mVbE9l zGnWoL?^A$A5Q8isNZLG6U#pBpOr+UsZ)wPyWu_zO$&;gcb(W>T=|w2#j+`7&MPs9o zu)nTi1wf1%O=-cpc7eupoNefW0x2SS?|Mq*cFKJS)aQ}vg*%2@grw&aR|ZnCTi&dJ zRX*lqV8@vvYU%`9(UO{f6N~$U4-(8~52qbS!0?2uG;;(An~Xf^I>;9W-xU4E4@gm`~T_@B|Y)BDzRQJeRCMkk-^c2KigD;@ErDK@h z-7eP?QI#w;?H6t;MMFAQ$$E@>OzkH@bVUB;Otob;V`_s+wsm<<{C;`4Hz{ zXf8}puXrtK#aIx=GVFzxvQScjvIJCb=Pa)02jKpo$;TD&$CxP1t;gQ=s%MA5)MZ4Lr)Aa2Z| zbaKF$0F$g;ES;n-t_M78g+|0Z0MV4IWsZM?$U`gU#t>W1Zb_5SUv4{z@Oo-{Ma z{Q;}Xo_igbW_;E$4~z54KE0RQ%JaVq)uVuj6llawuct72J%*)?eSzk+s)$eJP^wzVTBL^kgpJLOUqSDvq7J0cxgQ4wf z6Pv4SrEp?fpF-**%eN=%P=5#Gl#{|?c=D;D9iG$8DT!DS?K8<+=a}klF0G(dfimW}9O9Tm#SPC2;28579M^%k6{L8C zbN~H*n+d2JN)g9(J?;-JD_4Y?n!;KpYx)F2m54Bz8Y?T+cGFX@+U<5&*WKH@S0C?T z3fR5A`{B*IyVtgd9l@JDPG|QpFKv48Ibvmje!G4Pa@kkTQ;f`P zSH$G70<2*>gAu~XP(y?M@d4R|n=T3RzoNJmSVla{GT!jWxnSO7WP4QzfgETyyNiMC z8P6rt%Y!7CMkYQZrR{A!`CF)N5fSnXn>f$lRMo6vPY2z&LcU&BsB+&~Hg{|nN5<{- zW)O$Z;SMcr(2}pp+?FE?v5&Rg`Ip6plAE{YH%PUKa;E4gSO9x+0&18At2wIj6;%Lr zIvk;qHukFtsSm~LA^L_ zCvGdn3d}4!x^u4H5Uv^lFmub%L$(+IZ6$J)hFM5!l4#E(3wfRlsD37xlFVH?ypi{d zt74i})vN_b?~m;UN;XV;j}1LaD_W}eTgQc-4tgwDF;Nd>sfx;cMM*z6>c>^p@nhFh zXTLgtvweW^KEPxjU=-hrLL3r?Ii}KpIzBmmKy@#9x}V`oKz+X$8R%b; z0$lXwleAQtlHhT;5fJNsvAMpaBW+@sTn7ey2gN*6Qz{`C6@RfogjiqSFHIUgLDujm z-~HyS;kwP}mmU2uLutxn=Qcz9(>*6Bw|E6JO=g@qt!KDqC<8T@qItWEq%|4x|m<~9H`p%JSXaCe%W&l_dW-Z-|$_CeBCo1 zKz_q>j`u$27+c;-@jcTXGa0VfT*Q(RBvz8{XVlPjjWJY2QU145C}t_aoM}@>C~-9K zX<`~ue>beqB5MV&LDO&ja+z&mN1wGaL+h6Jpy)&OR+ZPXc5g1h4mBV!3yp;wOjr0+WzN6X~3FMMz zRpfLoYFj}W0UsML`G^uSTt|@e@q)%V4XmP41%fbbXay^*zn&7-s3D~_O@K+MmB?xm zEBF3v#nT)qA{lu^Dtbs)Ao%r;!`Mr^=)rI}9J#9r(FvLx{`+uPpX+{OX;}&o@3N2O zVp`h4^K0@18FHFbflOu%gTEgYv_<73 z4P@Aq1b*6O7R*G8f(3I~gLh=k&$NY6q%T@RiZwDGQ3Z)AT4&R>^doU;XVxs27a*;Fe5^#I^Y>I%K8Xht>ylS3j2E1^RhWu@?e5Nr-nhwDnb|aN!_h5C; z6Gw7Y#YNDvhe%0YV}?I}b^19OhfZRx0-DDb+{ofrJ+ zQ^>5X<6U{Wz3c~vO0HyVtCEJ_3oaAQN=<-BmD(FXL)uBF=HmI zRcUu?>v?2d_`E9=u=7pD^as8)q{SWc=23N8pBk?FAZiSLfsXzj5v%UNh&UiHzWldHDzQiG z9~`4fLg7hx1YHMZCi!jg#Aq{W72=fVS8`|DXlbFfX2I|jj>qbKcg_9m#i_#}qmjR6@0srB%~cA%AJ z@Eph9$e&;r8dW*5$ntBMs=O=t?dbtbbpNp3;OLRjjt$%vX%_NhZ?)XW9>~C8xw+$W z#~XACf6=5yq+{wO;#m-9|5G}Hyxnf}8Js$O-RpgATPv$CutRjF7iJJ`vj1TG64+Kc>z~B+4 zsEh*04FFQGdF+2>cu2n?6EyvF6QoMXMxX09l=ljmI2aG$^~wmGLqfl+^a_Oz2Fs{(0=B9-n1QW`jP-TeG3zq^pepgWI@ z0A$KUgxf@@iA8-V5vqssGmSU1dch1!`(!6WB)LvnqrU@5Homvt8V$I<3!8;20(?dN z6AE#NnVlxBBE1h1cr(4)AbWPVSIHz*ian7Qx2`4qk>hO*%X92LPhG*+^DFup5G~%1JNb-mBV~DMSY?Ek_HMLf-2Y%t#u5jUS90XYB!fXwQ#ez4d3LH4NPxj%%yRdIK(s? z6tMOYYv>gPlws4L)vFkK*=Pq^e`=!5I|75t-I*Cu{}e1*poe#R0pJ!|H?Pqf*35jmS@dMlTY1yccE1w}A9Qp2$k;ItXQ2#WN>J#ovumS{{Y=1-0{QI zSrLlnEumqD6Xbe+u@>C8KvU;}H_E5L6FVFD3Mn&;GSufs^syDEAA=u{h|w#LP9PZ` zqc2&265T$#o(mogL5**as}mKyt}Iage0qK0J|v?c{?sF?VH%0e2#*DR4)}&YA+<3* znzulu-Sg||^;Ad1Ua0Mzr!`OQClhA?3)%o5nPUpMw$xncz{Qya5OREblBlSChI#z15$T^}r66>vS2l-ugKgD7v_ z-rfDYK#7wwYO@QiPpO<9)lDS zLvo9q{A~}m%i(dITm@2tp_NiEi~RDQV*3WZ-KHzD7ezFuf$b7>O1@;EoKh1nh)!)M^2T{oOnI05(#?D^!Ua1uncxS6KP=2 zDB=-)a|%!gB%0<2^JNoO&(|5|E9?nOXP>PLYU$I2Zmw%9*&e>jj0j$}y4(pJpgudU zdQ#Lt>w|+b(h*DJaNSerZF;fGG&X^f+z3DbFeGkjD^*5>cm&p6D`$E5CZd14!5{tC2?&+Wbh?7)uGH|b!oyTc>1EpXt!d`CBENgO_+;H$5(=f>@TpdCSYTD@Kxa7b{=UJPM^kIg zvgR)lrP3>{v>;<-#_MAewPPJQ{GpbfmgqOob#Z-}G8~YEV~g6ZXD63~_8L$u-PzY= z}{kcJYW3L&`}&{sCl7OX9Ep||Rp?kK8EaR=F4SfL>H}1y1ov@Yl)j>$ zq=+Zd27_Y6#_@gQB5m10&q_*H7OdOc@K6*@X?3z0tlJ88m^c=>h1crbJzaErxSu^F z6q@JVBPd9OU6@6fL1b+nRm)4=F}%g z6d*vlSy#f#t+#sy>V~9SBNAe9kSUG7#urE8X{6JuuUFjb=;?Nen)U95?Gat5-L$SnIV#{}|?6&{k@ zBU7x~3wqqlAx`GHDF?qEmPCv_QQ%NV2bB=1YSex$1iJTVA<~UhLufNW*KDs$k;7|%b zavGS8!nvBX7vmGG_zL5j;?VS#RzR#ARDd`$J9vxzQ9?>)rSdi4r)PQFIHcMbl%N`u zf>$in`UzZ*>wO)87)LlAd2a?J#Q9OV5u2>oq3{rbqW^N+blyO*ZtVIPuehLcKyn2Ppy% zB8>)^9(usn5Y06n?5wer9stdC&{HL>X1o^%{7_%lS0fQEzuLa(o7^m2`!|%C-?h& zxjxNR+cn!pHquj46&|B@H8XC)%h(Iq+-jVg0rkmdy?e5EW5ZiG?|EB1)m;d8FS5AY z*T^(8@;o%|r2v{7h)_b)M0>$)7KKdwLU0V6xB~7Y<)N&1ZJw`pf4UqLzpXyFjSpVk zP@~Yx+es_ckvdgc5hT3LxQdyjWJrh|`Nqu>@pLBYTzy@fYqos$`8?jIA zgd=EmPAzPiZ_Wh^1Ej^AnNF)eyIO+f?w;x)X=aUh!*ds3B5v6P2Z*MaPYa~Nl>@JS zD)Teius&;x1@q?XNvEMKyRWy)hZ4UE>Iim?G&$Fc-Q2R&3{Uj*GVKQXA+VO{QaoRo zWe4pAeTlJ3xAb0uht=qy8z^!BEZIzeBP=dkgmw=yKK6mb8bI_j<&f;c%uP{8TM``; zD9x^GEk_obmRbqUXbpIyL?NbRo$@p$ah=-E>;wus)WS+vulOJxAWnJuJ89OFpgM`0 zo`g(fcB0Kj;bz!QOuDe$4NRJ{!l{SQZxTbisw$fL2JShS_*tYR{hipc8QK5)y96R! z8YVc;@gjt^_`CY{5Ppcy4Es#|-5bjvAU!ru0$dW1fD6MGKFK<(;efxLF2Qr!S!v}a zNw`oBQ;F4axv9#8=0;#iW zSiN*fC|td%)v*Pm3p2F13ttv70Unoaf{+fL(D3B#&;`moUGqRHgIixph{4_Xr{~L? z8Ip-{8j801>~{Zl_v&xhfJL;x$wg^{VHXNpI_@*9SvCZXMA55A6rB}EwD%9Cr(3^}y+0a;dv3w^q3|}21j^;*B|?3-FWpeA5y@=j zApi{=M2I;G@yQ>5(t|lCGfa?kEezK(*@v3_b7qhUE|tVKTU=?oF^g+!iyr@RL}(H2+3ZGXDo`_|?*lI%+T6s$MGLCuWD1i*)SJ<|>l z4-zAifB=wG?-ztxVs|qvQN0q`?y<-I?R(C-_vWLjz}BpH!fr9^W)-S3Z{GLA!1|fu z=rxtS3Y0g%a}hezVG>N!jVf6ObEi}YVW3S5JrSIRH=r9sEjLejctnhh8dzcg!l_d@ zL{W7F8yGjP{Y*FE=zD(D0q1I%VPLZ)&0Q@^jRGR%*7#25)4t424| zFcCA21lPVs#a~Ep$v96jg1^OLhwvnz3vzjwYe?D+bW?TPmv8oQr6eS%Zs0SbzH#%} zaa|LGj3X*>vyP~8aUUQNlq67~(S+TW|1w=bd{40ft?PNkEGoinCqBqfC)6!_2>Ad) zQH&AU-^ES7?$QGxc#;gmL<RmDNp)0;Ucpy0{Mnrr7RUaorOXX^8MEsF{n2b$v}Ety5_^cq$Fl3<%W>y%qA@ zk9O)jI-dsGAK7Uw7hc{ZORfG!2{>*zf_B}lf)hInkO zB?y@PkhcFaDN+OZtoqa#UhY#-GN~7G6+$I0mnQm0dP^$F=<-%JMAs$xJi>(Mg0D4piaquVIV7F*7o_S!MLIPfOa4XQ+vX*nyv`tL~Se~ zHDb|Xl;I|TbXy`4OkZU*1A^>ytO%{fI6pGH$34A3j0A_IMKdd#LaRRZp8hL2%m0EX z0Qa9O27CuJsvYeB51+g_N)zq4`S8h`k6c3Baq}@Y+gOk=Rvmi{$IYuE z9sL5fiut%ds|`vuD0U_l#|EC8cgx(y(bnsj)iF^VdxW-r@)DzA8)}`)eV@l@Ik@HC z4kB*BcuM0UXa!KP^kD$GrLSqo z+jrYS)SB33ouafit?9Ut%j84}O_6*~UR<{!IGyrK+IO-dBxpe3Lu6Uyh(y9$Xt!kS zSCFsibX{lrjN9T zr06Rk*b44bJQY71vqE*l`pGU$t#46>uo8HQ#=48-fevB0!K6uKK){GNhw*2?)#Z*MLAGEpSdwM4!gU# zVQFTBC$GqhPp@FEa2a?9)I`6cw0sg?%hc`)p1#{c-4rq?OGq)+MoMEz=?2b&Y31dj z$&hnl2^PdG|I7-cU)te_k{_z~6j1LVWHWicQW7#D!Y{(2l^n2eOT7Qo`wvhmm>(Wd zUYPEQ-owYAKi~fN&prC*Aum?_HoZr**QMg)kdL#wN3_k`anq9>W>*m67ceyP|KnUV zQb^2&Uz|9#pyQ${j;LXu`c3;)(n;Zgb9!US61uF?cMPhDNWtlwB@2JN815ev_0eNo z_I|HQKkPpv0j9-m_Tll%Ppe;NcRzem&@!%}-&=82A`9G51EiXV7b)cUnJIsRPWwTE zCFDF|xwAO}q@4>Gy(bZ5$Z6?%G40j?y1&qB6y58@&r!4qO+Ojd^5l6da5}>@J@hKp zZVEk_Cqs(Pj9I#~4K%ep1UWi1%DL_XxE`nM9sdy_dV=XkYWZ)sVaKFFH;>!t%o&Se zDNg1FsB5t6E$4{U!=W(+q!qi+33pkY;>vhzIW0W-PH2RrN>UI|U%;)QDvuORv1b2U zC!3*Mqd6G`q+!K$tfsFklG#0@*sf$N4|57aJd7VI$=w4|;0mdR`t?Gz*|7vkz$xKX z+%$cR`yM2-)0v9%Rc0=9TlZvus%yh{s?c89LU~Zmh|NV<#p)PsbkbTz3mi3q1^Vq^ z0dVycEN~RD0zzXZ=OPELYUwpNHvUr@o9p}meQyoc1`6FxWdKFMCD?If2xA;XxYAGP z;Rzc4d@tl(^Y8S2ueQmYZ34m;(|^~42kLo%;P0-hDE+R7LrRexxlnASf!+qzPbr(_ z%gZ<@vkSb>?sL)w#$6#KD>Q6@yh$q7(+!s&B9?V}rk2|K8~PzNG*b41z$@zTS8*b; z+yTFxV6-P_VR<>}%}13fu>nf^Kyo!YS-tK`{K_y*=ONdpv>F7VXzCeSN+7X%`v+Jg z@b@L0YEeS97(?+Bsqh)F(*6r}Ip6*K#kcc&RGGMccZ){3Bq$1K$>as961?wh3&q=Z zKN(8l-~HslS3Mbt#=r68LG{i9tk$r2ax7HqQ`@&4@HRW@tI39}<6@rWRP1QODhnwR z*_w8q$axFpQ{}Im7D^kndRSnNF4Eg^bb>|$ggS@NrfS8)Ha#AQ^UZMZ2BDGbIo+Pt z^Kt*+;AsEgo5A5eTDA9YU-XaE@^SswFPpn}|4LsodS6~H5O7r!_zrl&%9&YQBNie? zqTb{yu+kqv80gY#GFVRwtp>pcS@7avAUlE~+a+xMt;dtQ1K*~w(t>x*iPTzAi#=mV znE5-3zzWwGj&VA=!xb1G+<-cvSY9Iy0_w6mB|UF7ESW}3%vAEkJl{f#DG9C2NBSla zTr&$H1h*OqPEr-AwDAgMKq?|RQqXuAyIRg^*@0bWU~m`r1mx_-S}b~0DLMR@q2X8S z)2Q}S?5L@EU6T@)D13GL1_8SKq%_he+0wbKO|i)y8H`IClovXOp~2M!o3y(zH*Qo} z4d?~+R1k3g0gE|_iQ9d&r2Ds@P@YlhFTXzgJ8kJTL-bwt-X-IP5Mk`RXRr?5-rrB+ zS&*Ab@Cf>ufN2RmzR{7!0vfHpv9Qu*4lmIWql{B-%^7&N@17El{ukp891ke8cf0;J=5%pw}Iyx&vr!S z;ecZVR_x6RO%2OfaTw%s+yY4vs7q;6`|m2OeB9ryu%?@yR9H#r%sOWwXoa3{iws2% zg`X7LNzD;BW?DsSEgO($$`@PC=}Q{hKU_`b;wj@Tgff^QY>OtydrY%6@ zNfY3w*ldShM!=E+5T;D}fDa_u%DM8WVF8g(Q5PXu#=ynOG}o7HSFQat&rlU2R+19b zk}$ZCyMCyZFc)1g;ejNf?P@fcGyZ;{+u?{rLuFY0oC2Vy)pI>o6_p7<@J=O#A6GQG z0Wy@eLufuWu1bO8eh3|=>GjVcl&g6`3oEUxFbYQGVzSj(**=#Oe4sm-%fw`Ff05Cl zFOXl>JMc5;rBXE669Fk1p1;&WKAe~Mz<$^{DAJ=4A>lvorib9J2Ghf2pq1r>3!fsxT0xki>f7yJqNTjiaSXXNFwm(dEiF!FCSZ1lDO6N-+PC z>)8^G2Y`2dl_`@5b#a9vA+O-b2uoEx)H3iA zNCb2a(yXK$hV!5awpW8I9^t5nMx{L)Cd0ByNfDvb4A;Tb@ZnYAI=DW>*=+1)y%`Ol z-h*TVkGxo4E!%G#Zl3DCaoA|S zVIjmtAd+o}G1x%&U{D2L=8o2eqb35CLY!w#=-DQSbq1sbD192%5h1cxBxU;s293qV z$^6oalya%*#O55cT98ow<+UF=wKFT2CY4SX!3J4DwE!IkP)4E%`y9HMJD-4!p-b%a z8f{!-EwU5q4U|uJ$RhP;{EU+;}cAt~F9@ zjx6XbwJg`x`Z;$GO33Ij)SF~aV-Iz!TqzaXfWv~4w^6abM^06%3U`rM+X@yBd&;Y_ z`;Mn1R5D?d%F;fLI;4#7$g3rdDdzwkrDZ|dE(a-Lv z3NNf>VX|(}OI$HqX-IHnCqz5E)tkw(Q+rU(8Yug9cq!>@kPREmKN}c(`QwG$1<15R zn(on!Tc1Zy5Gh?%>)&ZzVPmYoLhXERA{Nks^LL%DdX^qR>{mEKQOia_LHaDMHdWoZioS%ja4>y6=HbL zxlYwI!L$YLq@@1yyg0zyMSg;DkKX3_cC9=O_-gzPtbN!|fLS)OUAZ5b$JgjL-s; z1fQ6wS0Q0xkQTc?lItTZv3*HDnQ@t$G%4{s8`8bQW3r>~Z16};wSDBxoH6hNFNVY{ zvN>XxMjIu58ykaW>ddH_P&5wo?Oa!*OZ@l1i`X`Kjb+u3GVmlG-hdJ@qws-&YV-*u$2(eJz%_mLT8Z{x8L0nROgBLv{wVK>PtW)_Ni;~H)V2nx#n10V0$n;{g zbi+U0wd)DIzD}e3?3BKNGzG}=7Jd)}ZLe4KB*V$F}wgqcN z5FGc!wThqt^G1XWd|t?}TpnyXs&DmC?V~b|RUqL5DGe0&z9-~&kcssmo&;a5;?3IWZ;g5A8}}7+qC0AlM%Q=_590Z&-+UAT zI=*7gZ~q+7{A+&BrqP}rIb*0fD0B4=jV}QWdm6Qwh<_HwhY$+*#KG>DRC4hAm%Ri; zI27xR2EdMzx@2SD zzlo1=ZW0saJm;kKT7hr{cXM;mHP&bGfc|xgus}J<8qRElv8&*xy{Yp@T zS_v5!8o^lf96laIlGET3eE}G+z!2n)#sFN$$|^8E(|$Cr>1|AyV+aM%V&id8AxiKU zJwinZ)GFi}3*cC6q^Oj9VwjhtX|HArRHX2|_fO|O7eIZ7Er;6KsZ77e^W+O! zb;!9RlsYcVKQ29x>^4C~tqR?6?P2?j+7L^jR7JU2_C?89lA_a*bq%Tz=|p-8|I)s( z^zw?{lZz;aI#T~yncxkeKA-EDE4CpP$)#hys~vLh?ZAm$a#IFlzNGiEl25Tp7Oz7p zY)s$1283ZQR4f28~M0 z!08CjY^Go(HzQs%1A#HnlGCcHv>Aw6omN#bgjPM2 zre2Xsr9|lzFT5f$Y`VB}D<9~`DdWj6hfJFB9A04@BJu=3+Z|v#-&|}U5t|-0i;8F? z5=_&1J`q=UF**-2PK3l^(91dZbh}TVs^xaecv@(c4>l#pWHcmjoqeEhAhl4twv!2h zQl%2)p=K10(CZ7hh|26?T}aQ#?sJ(eeHr)*8KO_pn|o9>0As6&;$29+kI@kMZ(wKr*`u$yxoShN z!isC6%Wr+JOyL4tUu`x`Z$$;WOLEaX%1Z~c(0UH+GgHLA+ak1f36$5){SKA4BHJm> zPbRLOrofs8P){;GV-fU&RzgG(PY+=6(-tk%>Xm0poq)PQuMaWu23>Z5T^>yp<(qMZ z=99AN`)2GHqwTv^HnpX%F{OstCpjHsvgN?+`3f)AP>UUuj&`QOto7CDeuL_v()}9k z9}CKk4Q&AJ*m-1T&k>qT!(?ERB*;-906FPR2B_Het_gY*+eJh*Ab9HBT0e#{igLBl zrU?Cvkv`k)Bshw!@dmaFXQ`D(q17tK-~UF5H{NI!-o*Y>;@F`v|2$5J9ex0u;q=0k zR0|@5nEsjyA<7>_Og54tV%7C-l=Sk&-w~~v=Xp#4rH{)9<)bNWJwJu%e{q41hhdFc zZzi-+Ax#Pq3=q&qZ=UyLkfQz$Qo4a_dW=jx&;^qcMzfc&flxm}^+zorBY|Kx;m1+H zHZ$Uw0dJMm0t7sMN^BtMF%*0byt;LUjL1-$ovoq`AR|Cxv_Lge&531!axYM7s54aQUEgiJ9L`aK+JbYxQWcXXVQ7KVYT{TApR`{GRCjg6Q9_EYQ4@ZP zu@KMR+=2$&q31#M%HTD^wuA|D)&It%VIMfUWA|Pbq`ttc21Ht1D40hPtI5~Qf(aL- zux9+G{~z-qEPCS9%;HER$}vX%p4?{B%XhHT?g@4j>{$)x3L2?VphMC|Et6_R6HFT< z4&d(YD#OA8?(IiRSge8<^eCe*gLL2vvr*Wf{IK&J7MO#TfNfHV38|1m0oI%87ovof zdydmkOGg=uh5O<684d8hv%CAdFFz?UTn3HmvVDnH%l3nyin08iRf;lA2ca~~mEint z{`FmJ93V{&?PiE3>*vc}J=BLdIfBL^)!#je`KlfRscT7_&@QW52UKoZ&+S3dx-y{i zP(Mu)M+3(duoXi4DatJN_fu$S*h#;koirZ?YwnQ+z_!z=kbYa!@F2SU;ccZY3(n0C zpYDG|?V>MtKi=QIM`LeT238^)D+XMmt_sOU1dD;1s7l9D7T+||#|UN0(?u*Rkut%w zqN1P}Rj%+$W9oT8UBN-XoUrAulxWV@A-Rj=lPczYjUYVDXnQyrvW=)P7=&x_l-_TRj$ zm7tx+im9tQs$L>@RkO6dBD_a@2uTOy_1g7nv;BnHB(jrrA*ap6nliO7PcRY%>!V68_YcKnG* zbDX$cg(3S#U>J5ZpyTx*UZepMnJY;i1VCBgEXS*qKxMyOeo5`1a0MR`R( zmT3c@kjOebbQo$zadcUC3;L_fRyxbNpjmbnt5_mm^IRvXV~)Nd8F7pBRiXt>rf5I5 zaf}K%ytJoHcM8dboo1MR1=7>Mn2N9%ODl>zH^qu4(c9%tE@oqb9zi7YP%24J6JRs~ z?>b_tEJZC^gLc|oUEvk;cF)k|1hPB+W1mP1z$y6L7-r7?{vU^b?Dq!ygZ}x+*E82^Cr4?q8M@Z!tQFWw__4Oc#Vdi(I=?e}+o z{^{-K_qg!z)8ohQ@$cKu?|%C8+s_|=Ilg`I@%KOc+ouP+|Iy#4VO(06}*_uzurCk6`WFzt|)&z^hGi@2K#D#IDH2x`bBtRGv5$x*b!L)4^r(6cw(Bi5j2iF z{FS*hnA%CCaKXro#<`&uD*%f=%hmQf zslufCZm5tiQ`dzJqcb*xoZS6#_x|=XWr-s04ZfAQz__I?tS$NX)XK3kCO2S)Y;J;C zUz|)r=28-m@Z0pk;C?vpd^s0tk=j3$VquZsHAK(0y#^IB^GbJmToYWTxuCZ4ahc}A zaY5|Orqrymh+}N6Bnl0(K(RK^Sfy(bZq132eyv=$(G%@40n>LI=drhg9uigJmFv^d zmfP4o8MunZ!{Y1>yA^5ZS$&pZ8%cdHuR_uwbLnoM<0UlQj6qpYQd3lWz&U`y2Qj+b zLl_(JKUE*ozPkkDhJY9qOD|gn12}@u<_nrdY+zySVUc{{vKxh49QFU6@YYG%_(_Kz zF&2+c<-wzLXA7XBofOa9>3uY=o!}VjliUq)=`jUbzpj{r6syS@S@_TCuQeYrX#;d4 zPY@Du!*T<36v%o1{a<%CNY8MQ2w35UFvUT%t1?DNEHX$x6E>`&*FZ$k6eKlgoPZB@6j&L(4x+*y3Q6NV<_>WF{1r)`zs_BVPhxrdU9uQm0OdJv6?Pd=o*^%qb zFX>x`zWw3u{`OfR0w`%0+j2QtB4+Bm2qym1pL$Qt(@%1V%}HZ9gOT>yFT#9aKu5Xa ztW;^NH7yBM8DC_iOII{6NxqR>40KImvm#iz;6;V~USphh5Sy~wT9$$OI7&hIK-hy} zeI1{BlRyPEH;Ohu(mEThCSM_G#WekZQ(mk6!_JRa!2Cm!LhPAv$nAHf90VWm>H`0d z`lN`3o*|FJ)i}n-tXX3Wb{0Gy##c+*qr~-;1FsWqKObHvPw|i;q7K6FUN*fwb2c)J zPiF8bn9)w=AB;*`xYCPYCkYo&^8E;)eklaCfX>C$NH4zKzLvvzx5u~>t}rw%n=ze}f4%y7 zb^D|2yL8z9T3n0P6_`UfvK0{@8ndNjwVXm*%KI*`o^p0e{h=z z{*JjoDDg5X_!li-WCcpEbO9QP_%?3Zo{X5L$#gUVD1_4-hG^Q0pA_?6Ehr*FrP@UL z6OjukP{yBY+=|@Rvj1Q`LoZ6ag)1O(Boa*zdwc_)?|~G7t{`vJh*O_PF@ZuKarWwD zS9*ql^q5kphDo84QyMVMw{3P*3J+Bb9r5wHgM!lf>J{tTJ;89+BFG(;DXZ%jO%do0 zaY`_~U=?s}CDGv%$`RLIyjxFo*&KfL3cqWZp1Or;5NTerhOQ4l?cWrf+%AY%DEJVm z1t;JA@9An`&vo%AaqkS)qk*?*=*$p}`Rer<1k4Y&pK0vX#p0S7=`8ZfgW;*a>Se=6 z)M?+!K>rko{)hnBr44pK6PX!!D1Pa(A#&y**TP+!xcGYil$x zqXOx%ddY}1X&R>*K;1y%xxo6%q}Yg5qM)MH@Bm4dUDIU~u07D%2YCt2&sVrbNeF1V z&pv-2*k_8}N?`=*p*%=^2#gySU`HNOaS1H?I7_(%***pH*A>NXvQ897FTP!_dXN!n zm{H0yaiK>fDlg~_^*r)^)Y0~Km68MoR&@`&82cu_h_b3Nm`{EE%whunDBjuw^7s>V zcB%gdGSD+gKzr)Z4W1xIFckHz?ve;COCeJz2^R>ai!9NT{O?#?QBu2k9!CeMnmDyQ__oca0|mRU#2^ z1u1?C+pW9{ZUP+A#K{?~+pi*WNDy(y4%Y?5b*=)$_@f`LTuOhHNe+_tPEHq6InR0- znWC@!*T-TQiGb}Bk;TQ|+R1bvmr^4bbTe;_>oyAZ)pjea>6a=7z1TO7M%s6$%O>)%`Vt0H0Wnd?M3HL!yPx0TH1s8D^ z->kXSf;&2-#G>%cF#}@x_~FZ~uob}%h=c7J;#FDoaD@0P zvu034>kNJnmFZ|W=?OhW*qKGU$W}`lj6DC4I1haLNKI%Knk}x;K~uyf4~3LsI2NNH zWlCa{;okW%YTTO0RU{Cm1}jZAqNf*7EemTCZYC$_2nw;Fiq$2?C31pF^G^1SoS5?` zh!9P#ohB%Awo2v2;R2~pvJ)I7;qkPf1;{xm)UIt4?|{--gR_yn)Ha}(8WIk^gKAr} z&whxY<+1mRgJ({7kq|A z8M$m;y3R_{S_B$(&9noODid^IQG)3+OwHTC35NggRU>@{_e^IJgy#xXx#O_-K{QdT zQ}gi9#n1^Tj*eKUWrIb5{r+_oi(*Stf%SUAd;5{f5h`(w5uw=Gagobk{PoJx0WZ-VLfs<(DxCZ=Z}Xh+Vhl!H#YPlD-j){$DW ziihy9kSwzUT!6W{%rWga`(eKC?b-3TTwc*uFWl=g+ncpc?yC!nRrSBMICdK>AgIFR zNsOL(C*eS58PPbh^qB|fsmY#*V~Ve0m!gisD_I*(ZH$~EQMSsV`629r1EO4=!?Zkl z!69dFp;}tD`+mrwOUo!s6^y?{$1}`g>KS6%p?`M^XkP+uEt#9YSj(|{d$cLBqQ(4j zGJVs72N9M!ph0JMdB1F_{Ql?1hwTJWYTMQAFSnn+ z+{)7e5Iikypnr0z`=C=;I7SK&7QME5xn@CK#djCPHps2B46mr`v-Gk=ilQ*2u+~%< zNHb`u0aA1^9L$Dq-ms7zKh4<8`or5_Zb$Fme;&X6@Zoy|-s#&6R$hkTTE&q-;LasY z&Dfe)r_)bB=Y;fbp5`|mp_G~jTyJS>KuwCG!s$sjpSwmS<>WoW1g<}t#!b}t| zE6Jyrq4%>$v>jmv_#s%bav|5kS%1Am@J~wF_DF;50&s9z0%9nSlBJTRkq}nfmvSwF z>d@jLB25X_$#+cscWnsQ3$;xSASf(pv@SM~Gl zg5CtlAd{1Gm{C}JL2VSby@Nk~bFhDOcyw_1@}NIBI66GIeK8yyoSPBBIg>{-$4C#u zCxgMk<8se0MuXYaE6Qbl?b)Xve)w|x@acy=I{W?rMd4(MaKi2O`^UQv4|n(5fFm`N z6M8;FTM9cis&*)o903Ps7M_PJ?;cjwN9sf674JV5q$xrmfJ* zjOde5;B#OxaShSIhT`t@7$L-{6UQsKeoTzXGLM@?uL9-C2qKZBklC0GwfZDdREVzM zzrXu5xcG#Qlb>ob1t>^xC%od4g^NV;hFOYy$9zQ zDtQYY$S z3NZxOC8Klr0zST6Hd8J-5-!{h3Ii!3>>fotgyB*w^cFx6<(hg^zm~(`5B_#6C{cJ3 z(6oj87gbUJ5r8zuE~iE6LmVwnRAUb+klu!`ax=P~o=z_jK)YcR$V-rW{+6z5WJq9m zH1N|FBOSJk#p>6OS&!RHjoIqYPC z4$?A6K5eC41;t6O++-4OtgAjC1NF$_qhNBzC4{n2esE(Jw}L7z{{rzb{Za+#1d_83=Ppbw(ohB~Gfk7&GbG5n2U1l}Xno*lmfchGf=o4A5yTjBA zxPF$4UGYa3^megN-2{i`^ctoZn61_qy)wm~7th}Oc)V6r)ecy`+q+yz2lKbKsN)&I%!!(2WKjMvb*p$V)L3;|a zkGDunA!KUWpS-)Ns5%lLthK4pc;13i9g4n2i0^d6%!GE!K~gPrYysISOv`0bqL-zp z+79aTt!M%rA(gyR!?Z_Q=q1?Ps_C>TA(~pKQS=!{YPGlcoG7#FO2niC(fV`u_fdyemT7wH%zQ7u9lrP3 zJW7qm$4i%Uk-}D{(;XHdeJode483a#hjwr8zc^I+G>$_$u~3ij&Upr|d&A5HWYL1F z$NS}{f4luW`Sfr1QuYK)L4zgOmye7YBDWJ2+S`chb%+{pTNDK@#mo`wDf$vFI!fNU zBmh}n+mMUkZgHs;0)i&G5SBZ$S%6D1)=}XxAQP2ZYgu~hzuv$5=`*Cqf5(CUWS`tU z1;&8S${>BlnDh6;Km~zBawg-n z6by=UzIwB`Ja5YP4WO1&XUKE+o$3!r^>y7a0uAq~k=BXAC}WRL5rNP+mK8`pBFYAB z@*4TQRtgP5N(}Wlrr_h7o=oQ2F~eT9uwNB)SMMF5{JkOZh1TFgo=l51zq6wI>3q2} zqhg6MMUO{TxN642|N8LwWjlQR2tO<=KC{OUA9@LB5k14#R92@eJe2rA%;Sz*y0Z&R zZc~F*EQ1jC^!`)tKi+=%a{KvV`}5n+Z$Iu)NQ-+}JS7d_H-6sL*|agI>S#)JLaBXw zsq&F>`X)S@IqOXJd=#|`x@5<;GK~YOWy$P?n|vf!sR>hHE&P~XiUeoqP4D3&dXW5x zhO7wTg(B~~XL$lc6z>=TVe_(#q+*T)TBL zhC*%;iwioGE&wNS@qwU*qmF{18pcpFl8yr^2RApp+%NeODA%w5@g-1&7)`WjCfKeY zzo(igs&H`S`3h1kmx$yK4?YA94IT6N8)8+V5Pl`^*F6p9kG(A9qj#Us^4r1y@SB_Q zd^WTwfEcB3jEEdKutTfECC2D@9F(~w6g*xWa&h(m3EkB8>YC35$2GL{O9D$4Z3@pG zBt+UrHIKfR8@9JJH_VMu8MjS%Y-Eh|0fyqnC#!fxt-M-V3i#sNHEcXGbUVbT`4kqq zlfkLIbjo%jwgkja5-Q_@w|tF#YIbyBuN{)U)4Mb*UYtLq5`hTiWV|5`WUxZJ>~#Zy zF7}OuMbqbU(^@cbs%ZJKUVnEng%AZB;LU}Vd`+P5E(#ESg?TqKB(_`u;pf13^h2aA zM{9O-rLY(33dr;DfcZ62Dv=blwT)eUQ@Q;+w_LVl$Rbl(kf)=SJ$uD7GG2X$Fzou` zv+WJ2GEf+cA2k7G9<$JoGLE8H5iD#QZrfr35`C9YWP&ce9hQ=XUGMEFuZ%SPf&ntt zvi)YUg54$8a3q*qRrQ>==&4~`z+%0lX8`w<%Lw(p3bG)FPF7Y^h6-IML4<-tm2hLR zhrNq+q=iPyjNw{50qkE4!_@lIrl6mmu2Atv@}8g04zPYo&-2<6y>cMT6_o%EtkAv6 zWgu$4y38m|QA5TG6%?DsI7+_=M--S^qpu?Pk|Gk1MAkD20?8f3v5eB~i9QKv%OXCY zphH%^^IfG-mRTZqZ+?00E5?PPu$044%l#yzjI6ReC%CJYiyNTm^z;hJEszb7?#CU) z&Yv$QYYC3L)dWY`MnY3Je#K>kseJsxeCVh3Cwq63W;X172Y8j%noJ3oa`i_{2C z*`o$QA!SYqaE;!T40&WFxe!Id-PJisyEPxIhqu2zV8JOBS7ucK+_H+2Nxk0>aFmEM zyPS(Hn7EzJ;vD@R;-!ocrDIBvUWJ$z+9J;X(~)OBA>EkkF3^G^tvr=s5DKTd3~r(D zSmH*z32m4dsRCJsAORXtoo`e{W*tbFe)^9|Nsw8g$(6PHUX)q3T*Gw`4@R_5r9pck zuZ|<~W~>8fY~^uspkXeTBW7ZxXE8poRP90#$b`wDS|kM-fyVB%a|5?qV6hs!$`TD} z&Zh|RPDdz}_Mcf?WktOc&7gt`r$=R=#x-65E(H-zQC*7WVuaZU<$axZ@Jy!(4zjSX zl6kl>$2f_FQ`#!XBs{oWHn6V&)C$=~%bmDF?h~$o;gFg``ca1KXf;O*pz+xh2?5dc zy8z%)d=$gf*vQn?mab1RvERQW?fC`XS3gYpEN&3Z$`Q_p#fM`tL|whE2dFfaj~b@0 zGb&_mBH3ee!84Gn0f^UOr?u4}dW7v5iRv-Eii~1ny<|CQsw;&*aJBKEV)qB`OEm}8 zk+Z`7jlFRbDG5quffj;0MGSfDROHZY{it$c58BOtwg$jvAq~;My>K3=S7P zWdj$qV~&(_E@K{RhBV!YEwENvh&M+-lZP=8<&<;D!|0YuM5O^Ev)Cox z3pS)8^=5#`%?k0eKEiFZ1opxSPREN>(6f<-y*H)=Kb2N>u`AY?|$tYG` z1cfpS?a=5De= zxvikv6WMn<0FtaWK`ZNH#DJ)S(=4K@Y8!$k`Ha#@<{|;mFa>pl{B{+8m0J z_Q8K)!A5+w_KBC{0`P_l|4OE-9jadU1jjhOGQJY;P!LHvRsc{`?*M||N+EDsG}yOz z!S2CdaFmwkYkbB=0QJ#t!?jpeRDPH6%8K$8Od5n1_`|1n|7s?1sVVftF=s68kE0$L zV}|J`*(rFolmvW1!@u6sr#E4`fmDl0^y~A{tGVG1Rk<%0Z@<8N>MxO`d5Zh%YZ?b} za}Nrp&Id9e=1Zl9Xq{bVV<}t;GhxkOc8opG`{^0ui}Ynj-edwt%m&5VoP(~B&?^ZW z(~E((fj6;aFnGpdr;V2yzdCr?n~Pvf!i_; zjc<2)>JlvN_{<#-ow`GU<>}_qLXfg#ix_Envbic`<;D0{`eE?-MJ#HV)n$(Zs2Ka& z#1%v?{0sPezPpZAWuAjlF1VglNz}l0hW>>AOLxU%@I#FUqng#<{a|z~`RxY}fAhhE z>WzVL%;|`N6TTt(|G#b%eWIUp3QutIms1D#1#e zlY09kQ#1OOjJBfR6^qM{Gbg+on^Un^1%;2t2Wvanxx5eQ>Sj8E;#HG+mzWYX|9~g; zN7zdm>XcNnv&C|_P86}tmg7E#qG7LMA;2V_(mP-&U0jCVfX?*`T3yT*wGz*yn!R&| zm@REgUP#8jsmP@&fchl8(5j{y;+=^h1G1XxI|v`Hyc1@br9(o~=3C~6TV{OV+a`2PesibtK)zC32vqgX6zztcf|!X_^U6V zfe}Q|atbZhpqwU3s}33%zZ^0$8nAiU+Yfi&e^zM3_1h1Rw=&Y9=n{?nie5}%i&1Qh z2-F$Z=o3Pj@ZQsgK$16r+_3iI4K?zn)jr~3wA#g~nz{^PI%(PVS^y23Wwuu`iOlxy zz|9wowm?3edBS?ePCpy{ZHjMpm8AgaM*{OK4hErYpf^NRALpNNa$Q*!C11lBiSo{` z5R6|Bb?ezmQV9G)Cl(Wl|4z5Z@DC>)4KlDvXx=;5DU)J7bhC>vkTi6jL!|LuY1&k? zyoyc9BI*@Q;&#MyI|n1aSkuRi^@OYnToow4ds6cUomIFYq5CIKv8vwRi)Bhqt%M0x zeVDhjRs!i@mpM=pH};ct%PTI zdn9fOx1IiHR1y0^C+Acdk_t`cNWwTl-dNLhp9+L?IfiQuorR1JrGyTAzg1qO$_1*? zT_6S2H$tRM^k0vC5k@oEAC_|jey3`N@S{-ElxejUby=Jf>_iLvET{j%R{FnbzLK#3 z9M-DjmxS-+^kRIqMW%4aRPC!j3}lASvGZDsoLw_?YhgdW$?x4&9^>R}tMWZ8tzx7+oU?b~*u6qIXaD7Y2DjX)eWQt3h2cL2fF%&gcOZb9=ms-!%KWC87*-iNNnvg?S*v48US4zPxKYgqq5#|vnhhc7C2Y;ITR`+6 zT05DLaJgPDd*wh65}$faMKjKW5n3c8!=r2QxzYRqVN#r)zlVwH;q&b*+g4|?8@d)w zF5_)j9&=ujEzyCA16e8Ho-Lckm;)r{xmfKFaVayN){Cb@VNEs`1aP<=ExDRz$kb;E)>HfO>P=cxsS_V%d1 z2x+b9Mo~SOS5X&{=H~gNSB-2{Kn&IopMJi1`>(fGKaXjrhA3^3;NpJft1}r200|39 z<;gi@OU4C}W>|_(4Hy{fPo&(G`CCWNhY7*sgE? z&*Sa=!`<5t$jEfon>|i-6B`Ot2grQdN{r3}MO6aw5c5RMA8$Ni`}R(j$?DoTP!FiWjGB)Rff= z)}~0P3y2j8ej{E1v~h6;iB&7FS`*IGvNFfe#Gq%UG4Z(1{J7^BWdCdeQTU4!%A~72 z?-^eUN<2S&!1FSm=cf%3?oty_1R6W`S5VKA0S8*>L38Y9^HxGzYK?-bg=T+ei9}bfd zvfHNAd-4B8^~ynY*_MqeC+xv3g_9aA7E~>0dKdta*Jt_CGh5UNjbJPGArUo0B73o_ zqB+CvWd(*do!PqJh-@n>@dLOIY_CA zg|2Ye$WJKZS4Nj(*h&$}0z5`zGjk++pap4!Ba{d^F`RK42nf`9IdPxg~?JuwqTvp5ernRS9` zIzPakf_Ibjjzfk2(dR={6Waxd>N#;ub>LL;6O%B9h{{OfH*?`E#Yg-d+5xwABIm#D zE$D4|$#<7@^#;)xQ?%FEz_!bTZqqoNZ0(-l$jGlCUmdfZ^t9Q~i}-UnK|R53?IpZK zk}8=C1MAl3uUfu>8WziionbZ}x@V_YWG)0>!7bhrM=$}hIy4JvQ0pVsYvOUIk32wnzoq~V<)eM6I8@xe{yrlb&k)Usb?Xe;549J@EZ78otE#%u z#G$yZS6~P_YunVaOm$6rgd!3H?;_rzlCxw_fc02mm}gj&J^@|#X#GJ%znG+FMI>?h z@HObEQWNAjwICl|VBDowJ`@$N4?1pPLSzXlD6_l&0To1Y4SFdCO z@xKkZ`!8!}aE;qdXs~hO#uyO`{Fja0Q)DuYKwuW-$$~Oe?^pw<4GerH+WRxTE84m3-?2_APc5;whzVifrrO1j2so4(4mO0l19R`kO^}8I0-hy zn0!eyxvU7$K=^_RR3SyW%=FMlMhy#yt)in0{C5{a(@k+KmqzbNXnsL_z&UJ~5Hg#A zihBPNT;O*c3~SxFx^jycJ}q6*&Y@xbzUitS!=oU)ETzhtREnqt(wL>G1ZFYI6J5Os zf~7kIvY36*Gc$-nHBYtmqj}TJ11a}d0BcTMYj&nI7IuY(VrRSMM9+hIjpjv!FR+%e z2V{k2Yk(?&^mVB4>Z`lQ=DIrR_6Mu}a4IKQ_9EjI-21j`3W&mtNshlUO;ebx0yPJ! zW|7K;5ltc{%tDT(&Lmf1kxe38^x8mOXE8uR6&`8iHiP*fy;Q54%QO?YV1-7cM$Hf_ z4Tai#p`l2*=S>X-MK5I)XCsa)M#A$wcIvP=2rbkER(8Jn$Ib901FT+bIs zGbUN*Wp8Rby-*Fh=xPhIB!1J;&fGMCr-d|v#Y-+6qkC*L3ks~KXLf4dxbC3Negf)E zgNv2+5|vYMwn}%i2~PAb$(SIzAR@ktGK4kTnd88qOc^cx1N>d2SN2onvYH}`#6Y(ax$a#{UDdjVkvwp$&OE(%9n0s zM&Tt#9U$m_$cs2XL4eVkr!V*mV$E+RL;|h0asmrF;TiU2V;DRZDE8-FI z1yLU%?D7hxA4avo05Mjn0e&fxU7lG;m693P5XB*P`4!mrA5e>c86}<~l5@g4%Ly~ND(s3fh>?C%SE43Zw;1XL!z7`Zk;Bt)JPq3jGV|J&kP9|%Wc%<# z%s?%db-i?YlMnf!QFOKHYubm{YDVN$1YKc4asF0yVzm~aaa?akO`};}@->0DDfk6- z8q+}#p^(f(AX?DISaqhn`r_L;%9y;pe|P)hTVTK+lErJ80?U0dl`YvirM8xip+a01 zmR5D?12fa)vG#`t%_2I^rJ4BOf>}ln&5OGN>zLKkf*blcHS8uPz-`oI_wyTMfXSKb zR~}Zv_2$v_Dw79DG1fk)AUw?Cbg=vGrNUQcR;8gyb-)UHw1{yIgtWANI`&RxXS2(T z`Kjp*$neo`;v_BR>rfd;{x7dlO$2?XuW#R>xGRM1`T~Vi-bv|G(kZg0PB&+J_Kzgg z`19L8^W>s}x(Zgt)j#nfIm1=NgDF8CnW>f_Uq_^ZoLaMo{x^@7ax}X@#1|FY(f!*G zpMIR7urGDtPxn9ES-;gZ!LF6l68-4QW8>>ggA;cKi?mrsn0_wDPvsuWy^nGVrYsf( zMy1<3Q0Kr`XEA;Q>I;NH5tRQAdL$Ry!fcChbGBR==YVsG(uMaF#>)03A-f@)SIwVQ z44?tBPr{*Q-Vce<@*I6Iu>6BwWx(T=E!MrzH-YvRK_?mS$q2fRsrupR0*Huo2-uaF z0ii?NxMl}%2rLFi^em01#GyWRY{L>2Yh2gi~2rKsgX@|E1pPIkj@TEX;sI%$eH zK0#@l5VhR73I2oa!RaK-rUS#Gt7FXepfMs}0%>xP*dZ$8EEA8@NS|f&s&M<_oVv+p zOG;HhoJP5x;9^5Wn#io<)W>B6t0I&{2E}(ts@#B-oxzMjI_iJxU79X*Cnf{am+H})7893I$lNW9dMxaHMlcLV=r2kdTue zBNA=28^dc_7?bu}W-z|f@%pB*G;O%84$y?gE;>uerqp#z50zViD}rN5!T1#<%X+mN z!0LGsB#FX!&Aa>;%Ne@W?eZN#5yg7woOevYDq1AJWR8|qzXj_eyr5Xn^vcdfg~2b; z-1aPfU_~@K9iL7?WZKA9Q#o#76|!EQ|6K!W?{9y@L5rtE-e(_4j@^KxU4Ua8!KQAL zB5yncq7BzJie9*zCJdC}&PA++JEif-11T7|1Sv6lrRnA!_-aZN^k?u9NIsY_?P^#0 zQU_FYkR?shZ;%gr+?|9G0I5jXW&8x`nAc{&r$BE~;JTxr8-NSA5n75oP?gBPD0lCB zCIH?!_tJnh11heaSShmj97twCTq2&pe~IU{3;fJPB*m6bPbog)PwcdQ)-C9k`v;W} zq|44SP1{b$MH@Rc1dn-k4Z%;hstEbH_l++hdCP-CHshQ1vl*xxK-CtoVcMrCxr#DI z>#9qi>;iI$v?Js3KGLBB>6~HH3q7NC^1CP4Vt9@8PCX>S^uor%RX?LG(?&53&7^S+ z#o$)^+sWN8cZgf@wR4M73#^-5Hl+B8)^76KKmlsHZNxU9BwoTCQuKd=W@2k>F>`|` zDH}trlytf5cpVB|D#v-3Tb7JwdUFc5F@GVA^h6#1R#r_?u}dP+F-xCK5pi@mI$xa5 z=I1m41%urI2wr}O!)AE|p`7OkIk0+w?eVbgZh$+R&u`z|o;-eGwHUkY*mr~W-^L8x z*|0LUcvu_W-bO3RivyTjQy?3T(uXlX3rFG+2k#Xr1Rt(0YMHt4l@F|;*Jqes!Qu)= z6s6B+&_Ih)nc+!t!^4m%KcIJz z0BPBPtBRI9<~>mHL;14RciS7}K~`aNBI31${N#LeiEhoOl}_5g&NN5wg_ni+#9zHS zhqbpJY89jeBhFy3onE9c0}e9O98j=8Xl{%IHwK!@#(B<$=Xdx4cNWLbO%v_t=d2J0 zeshCp>r{nrZH0>0bG?U}V^-x^zHoCA=oAE50$ZPs>q8RvNZGZ>HEP z>n>G}g*}a3+ay+*YB#0ui*kI{38iX)lPT2CP_%*M-=N50wLdIg@i1<`-d)Ph#F8I5+Pusn^t3{!pk@S=QsfVkzsWy zLHbC&li_ya&1Iy0fbwKBmP-l*sm1H*5nc<&HO@g{0(9lD*H8z!k+vXiN%0O={UT@t z;VH=n1^YlbOqGM07rmBEb$NUiK_%^nbj^PQU3+nHGQU*&9+?}GF^K(jBegSCEqedy zKYDjRfE?E~inwvuGZesmjso&ww8zyK-*P`KD%RTO)x!-r+pm`&#r zk%b;2{+K75H{rnJX|B3oF8FB4u|jwN>9)OGCYhi+EQ6O-%yI{NkXLRt}6m?lilx%j+>kyk@aD17k^%8@8hYa)5zWwfu&{ zB&vXk#gCu|T+#}2Z>e$p<@Mqk4RfmD91%qwr3Ggf=aN2>Pg}LOVUFZOJZ+nm5@ugQT+X?BAge?-c$V!LMeHXBULfPB|sZOp*IykX&TBJK;6L1?cB3HmvFE9vBLnN{#-U_rvOYr%^~(D|1E%TK zv4(hx?2`+m{+89koYuX!Pn z5URY?7`bSnF}iIGMt_|xTBkY1KD(uglMuD0=q>*E$A4l}_CKvZzx$_;Z}0B^_^!+7 zOOhdH8}0$BCwa%!0T+XE*sLvLr;{W=wg%?%Rf#HP445eEwM%tHIZm_{k%er3c>Hqv z9)4@f+hj#avI>^pM_TF}sUEZ5Um`o!Jv1f=KLoGNog7F11)|1n| zZ7l18gVL;TmKVr4dE(9;GtB%s5OqT@VK9V}TuU1(fm*o+iKK=$Qnvr3!&5~wxhmB>RZr~azhpHXBXNtcjEG{nK zEUJtQ4414fhAppuypra?pt@t(^{}b*{be6$|BwA|2K(O(UVd|UxPSbzKRCR7aXe#O z1zet^st+@aI{9kRfLUirhYnkL^kiBOpz*0@C_xNj(}#txEMS^WA+W1s)ePheURwB{ zSq>`dJq#f?m}~9k3K4HO7tR+72RHP=0O}VM{e?yp$kt>(XX~o+nN}=VjIWDJ&(MF4 z-M?<}tC)=g)_FRbAVoGQpLjF2>f;`yOfk(#5j-!85mFWXUnd}h(oQp4EvF?LrbOoo zBk8JT+A7v|wYpkv+`0vcvS@nZUcf4?vuC(PM3xVr0vg{7r>~oD`iv2hGzgTsysFN5 zaarpsN@?6K+M>otWRoZj$tSnE#$Bcu7g29>vsLb!py&mg`fgW9Lp?92RZUJeCuVNq z>tZ93U3`Yak95JRBa0FH(MTo^ObEbfoArNCS~NB_sRE>UEKl!jXPP-=O$0 zZ{eVX=JTW`thG`TOtD0du04jv5Hz??=SgoSAi(l3>iKDEudi(bMUr}!H!}kaf0_)2m zi`9(D+lRMlRypkty+`!3fjRJ@_xbJp`%fQ-gYWMi?5L`ZE)dd6YVWCOlg_3IG2Q$r z!StFDSxh4U?DQRR#X0X1MJSPk=RIDSY-ty?o}Ip}mlYM+F-5Q8Z>_^)C{1%&aHeq2 z7k>JN&)$L@$TVh%uDM~Aw{8;N1$KI9m|U3+^;)5Wds(S8)OX_tpK!0YVD?jfr2T<0 z()09-ZnEg~E+v@O&B#1a-Ms;@eq|g({V({fuxDT$W*yA1DzlpQVii=VZ*V6L^lbET zVB!ItAChK#tXGz9&lKnZ6ZK&Qvgxrz5>3Rl?jTv=Ka9hYVXu><>R`rW{fD*yDi#9b!b?C6Hj z2{*wD#D)n6H_dmGRF;8SE}=wWBxz~a9TRjTALdlFE#8&nRm8-LGs2A6EY1kZ!3Ek` z?XjRFmgWXh|I^$1``Zs;77v=EkRUuOO+YF5c4$yJ0VUm^o`BNqPfzHKJ}Q5rGYYAk zz-T0+4Lq?b(5vq*9eXL=^CkudKG6y5Tn@UL&s#`?0q850k zohJizgMQXLx|Ms^?B0S#fr#XMa${BlsK>`KuOa`tIRDOT02WvDEm`J3QA5^*y_~aaVolU{Ow!w;YPQLbu5Tf$v~j5t{z*+H zv;%0ZWx6t!q5LD1`*!v@g~r^3~0p;Ays zgk(KM_5)z}DSi5jnG_iMJ2((OcG({|+lItX&yTgr{&2vo!0#TXdhtJn*axQt#2DB4^Z;<{2C6R>WZFh zzb5c`8YRj ztf2qj-WJT!U%OzBe#IChDfAf8P(btb@}gld0x!U$3Tc?mhJjlHBt7dw>{HGnKYT{c z02veQKT{wZ|JGEIGh^mfXGSO7I7$sG7oJ!}ot*y`VfkFwO6vHAPlI7CspU1;9%(*o z;OGL49<`LTiSSu#&+2yr-O)RN05G+RhY%D^XE8bu#Q?Hno~|4-4%IBE zc$luW9vQuXo_?0v_%xnnWlGA|2b?xth@DsQN+H^ zDQ%ZLeIMe@5u$if@ey0yI)C)kn*IvIT zg(XUlM=AY0&i9&6tRl3K>=m%dOuS}{Lk-iXS5l=*7mAwFH@p3(DT>xGJ%?d+XETsf zx%E91*d^B{EUh_DG%`Za>Ykre5CW546HqspeS3d}4Y#r%hCylh>L=(G6HE_qMSVHh zrNRrMsah4&90s1Z7$YryLw+`KgINluvE(^4hn$>4T5R$dJ)wZ6H7U;sc;QjY{mqNy zJ|$muJaYE^a^4`Z)S<_v8IX z6xhv?8;EFaT2jhYlq>+w^w%$&I}~%4*IotvMAGo}O3KF}gxCTbJ!BUYyW(YY8hd64 z9omt|2^;|dD)WhKz8u`K8q92lgJMYBYL+NAkQTnEFLtI-k?s0&M6Cd}LB7Nx+{HOK zlYGzDL}^@|#!7Td-*H{buC<|RPw6AD6!kZxS zUdVW`*_ef$WlLNoMG>qn3wx@y?dKe_RU5Un63ng)z$g4>zrXCfCEE)RPg?K9A$oO-GNs|{+{7^sL=|! z35v%icSq+apVX+eAWnm_BZ@~c?SV@{SIXuhG8e4|9i2wTTH!JCv&D8xM~rbb(>qn zPud+wvSM*L6=uM%p=GKTXvaNQm+(eR_Uu;0VCJ|*mW5g@HeerUJW+m+B<6JTR>*zL z6h@ax@1Rm28!~(3{jo6`E343%+7%$33Xi+DBC?|D%hNs9SxRR(%`-t)!oC|t>kQW(DP`w}}AQCxt!Y#}4`dGi5H{Fj$ zp~U8jOHq+Gm0W5B6Lq9H!f#o|sE`s^fa{5s@( zNf=9OKBFBj4b7#HAAAdy3J!@z&yn}6Vg|cwKH_j!yXs7IiyhBdu(*|W)k5<#zp7r>i z(ixH&VX+6fx)^^qh8xH}j3nQjhwHQX3=%GSJM`D0bmavhjJe%Ge2$9JSx2E%NmD3n zw-iK0K2Og*$3P`GlAqn<)})B1$h9Pv<`R8oQ7guJmwdvblBZZ}G{Ox?f4&i401fOUO&R&44_y4?{EjCCDN^^qs@c z_fNQU&WgoaoUn?0%+BW!f1v^rLydEkN&a16dzK}~bW+>^=>^B19`8|fg>}p;gv&Pn z;(S7n7dA@P&4s`a`SWIqOw2Iz`?!HmE+Et2%&%P`ewCuQ1umqKZW3HEATvY-`XYzv zyaw7wkWIS}vl+Onl})fb-D2iDwX*NmoK(a;jjL^kDl6W?>+zLj>`jFR{hz=^kMh(15W?Xp356yZL5qM(9sYfB1vkR z3pf!6C4|)3F_j@hmO)1uGL{_bxQv`e(@HE{X^7AjDJd~bc!-K(6p%a7DnQ!IB4iZq z+g3@67P!Q&od;Y9RzuAQAE8O>o1{Q1RLQDq$g1ti;2@Mi)~w`qQ+`>Wc!5Y|O95xZ zQB2(~#J;^fPDZ>6;u|K@H@!do3F;iYs=ei6Jy&@?Gzd_`SI%>7{dw|<`qr`W;(&gk zI?1vH-QNyb442iXlNl5Ni2Vxb!#*m2)-Vhnqstl6*MeL)D{26J(H)W1F>(Mq8!W6i zKjdYr>!=aa!fJg63J*O%cVFG|zjvSR-K56cc*JTz3TXU((8L7R8;B@bU_&J5#V8}5 zNygm)VhN_lu|xsGvsZ6s^Vwp1f>6kt?dA;MbGA62L{t|eu3Q{<+f?af;6gR*C*O40 zPvm(ptqe2;))^oZinJ!DUN*utbL)4swG@vM!k$2fd4+UdVSqd_UQ%x`^<}2d0h17R zo&5|NYtB+6|$r@GcPYFI`QuLJGQ&ln{X*-Xv`5IqrCXAZGqYzsnrrfQ3w!c?O8 zl{_q-vH>eb&DtK(a+9jm;uQ^Dyx@e#wAA;wO~aNexM#bb%d2awFpA@mn!S zuQKz3ozi5idXTi4Li{PXuSh|Xi|k#U)0gT=#je>NGu;yG?rW5AQ_ozZc3lnBxql2@ zV7D6n^j%LW;vx}d@E(-sl~z=_SwkaFUE|Lq%J|5 zXj?e?DGrIXAr}@N>x#8mGT>M6wn&r31A@2F*n}_jWh`*=Om?UYYSk*T;$QIWrk6I9 z?JV^YAbmOwyeI{Y<92W=>KFs9e=r(E5lqo6E*8?I_XgAv15X@2wPT%d+p)qH5ZH-L z;BqrQfCbE{@=U;j)}=5fSwSTF_a?Vsa*=b6a=8#5h-jqr>X0K$OCv`$ycldgd6kO| zXo6f6T4DYe|G}5To{d+dhEGns~Z zm-3QZ2z`QC2nF~0b#}iGbT{P?7lTk$K-s!)5G+!Oyq?2*7}i9S*eB+8WVUl^KHA-` z^f&8RAXFEh4~_RCs(MK7ra-V>%pe*;#YVkI{yr8BR;FD=t~#K$f)-2bH64ABR&Rqc zGq4E$az||b>l0F8fCP&=XDIGz z#gP#8_%ApQe12EsC79e;FROfFxUb_0aE*K2fVd(z_*2gu{Qb{FY~|DMIsE&dDHr=w z?|Ja|KNAt0Prv8ku4nGrfTPw8MvxF$HuTm(N+VXol4PzbprWnnHGg8hR>$3~ueMVX^4RrDw{Nx7+(&uP&?MP2Iv zdwzG%bgL`ehKj+kmr?RXW)mF-dvD*r|7=ZXKB0nh@5{sI$9E4s5W_sD_q*qN?*#qj z)7^WHbQ9v*f3YgQO82GYf%7s@IPm!FSi+_t)n&->Xn07a;pWxV(m8{tS<#G%1FF?9 z{iYIpn0}R-G(I6_JTc3daRdW2Ij*cR8K`|UzPW*SjsKsRYQ6HvLN-k zS{Rh3r`zxsm^6u_mA^r~)n;#{22dYEeuC>D%`2(esrIWcW*e^Cs9nLH0%kBe_YgX% zm<5Y49-yoo{xFj%2gq(Zn038Y3Dpm1+l#EGeii7~hWgGR5fp6lw^BioGNC6lbzy`( z;yE7Q=NL~jQz1*~s#yh`DEL5ll%@LQ%;}Knt))uxV7L*GcSxeQhtQ2yawIq=SyHA! zsn5|znw*EkhIdTSdgecRpKl)?Ki})($<_M1R7K`L$ixZ~Yj+nnbEcI`F>%aA9v+y8 zRfEqXN6H)XE|KBF63J2?Sq;-JnMqIac4z^G7Vlc~)GCEx-Kdx@4=|+!HyH_s0;K22 zY6h%D8Ljff7MJbk;53^|uOZ1?e%^dWWxx6T&yNrK(XhOj)7b?@A80>$vQfK<`L_O# zeu-S8XqQsY(2qi9fieQ)8e>nFL89vFgN-@5&yda)sT|I19+(DDH%PXZE5qaEnIBXL zS5|_G=wUx+W*kJV0~5rzB0GvA6{`pBX&yTUJpTjHrJQ6u7e{`^_7U;##K>OrsuobM z?6S3+4^+>|KE?P6>c!MU-DxzQD#rQA#Lc1%YAgj!I5&g%+X^*+w*Rsqle(WW`_tco z3AFrGhPG|igUU!!UeCK?0S6xA>;t{2dmQJ80OD#f5ORHarL1svCLs<%Cs(hXBP~@L z>2`7$GaYQE2yiRxK^kig44A$izuhrS6Fc*G1nErR5oDMw#F7vqI6Vj$^bGVNL?c2l zDAXCDSj||8w_m>8ety{g{Py$Pk9&AeqFQ-B30CvQ=djJVIt4_d3&FTr$4pS990nn4 zs3KaBMm$pz2oZ!y#WRyoLXE+;F~H~fv*g9C<300bZ7>5|$v7tSQ}`MY(m>hI9ZuQj zR-D2F^V_w6D9Qun*A1na6)@SY1TnEw)Qkk%T<2ILl|9P33Sk_DR*~l>antjtid#D- zqj@BCuE2+{nj9$d^kjrBliMhl>o;e9<-D)^<@si{|5Xpf#IO5sO#JGf<}qPAW*YTT zYJPKJQ2@b9+zRH|tufLmHY(?VOP#JO7+R%oc+qd!utzi%FUS2uICZW(f=~$v!a2o* zEaB%hE=meX+`_igaRL&J^Ge@#k5?5|uey@^3X)pAVSw5jnyPh}im_fe+?J9uA;IHc z7m%pglaH^zyM*fx6{u+LkWnD6j2Ph)RuD5m;i#@qzD6~#vL|sbJOZwl{l1r7S1NL-na=Z`!|W-r&4A3FAb0n7Jw$T4iHd}t6*!D3`M`)MeJP|KxMh`y2M4ap@pG|E zRKgJZjxv38J+YUkmDHp6f-6x;;O1-LT_%8Qk3IObX*jK6nX`B;3dH3ahIkH&yx?6W zh(HFLaiTRF{OZ_J*Xz8HcT?oj+ay>flt-92f&;~<<>62)4xu3jZZrh3J2Qp~+fGu( zn-larVz^f-GOmI(K2SVPeRZ+!>sN@cDp>%xG7U(Ge@j1*VCl&logKz7A`T)SCc7Y< zs03VZfSO{=T?Oi%qaQ)}cIba6cMq43AHTo-EaRzPOW0X5rtbU@V_JaenL%4n3}pk& z9oG~{Y^VVN80tu80EuIbsF9bEhrJYM?)svr7vo`ch2Pu2`f2i4ir<&C6epi)gm^Td zx}(z03kyHznt6DFq8t(TOrfi~18JI#vC$o1g_6?HZ=>{HX$xtli00c;!tsekLVlq# zG@*Lq^b91t`Kj@JE+Lv~OK$pILW&5cqJ#kI&i#;E%Z}1!a^45Q1wl zBn}p#Y~g7;S$52*nWbsiC|2fTu_BiY%lGdQ{>28;!)9L!9oTdDpa-UN_&_I6i(_mI)eG=)kfymi;h*=q@a0gi;r*|-i^m5j+3VX6=y4|d zg1=uEoXCZ(te9@Gt}U4DoCU?_RV{?`0BKFb`315JPazgW-(szkxF|;ly?^-d;U99W z`UNDWnw{Elfha+c9xCz%@dGgrb1g5eBN|N|uS}40hd0BT6I*bZh3}QFxgeuZY9rco zUJN`pvMjWt>pGg{484^0%zV=k79S(+smNhslC1e-S@N>*CN7$D7QBo#$p^l-@=zDs z(*$Am>E#v7h+Yb082pcdt%=IHNc6twCpf;|Jw_P=!xp1W%Z-ag>tw~XBt=;>G*%WO z^AtIH@$GVDeuEMgwrr!_Sb~ZWNM;kA!Er#DfJHNOiBu+mwC8gIhZnx@Qyg%{Xup7$!Q^I}I{8U3@-w_$nJwZer_%vO? zbwk6(!FDqkz{GL7(C3vPHq}c|^U!k zoHE)xDb@HJdt){=hVmgV$$Ih)Uy2>9CTII5CR_MgF&2vPUWV9r+S8gKJrO~6{zNzM z^2~_rr&xl%Zlky}K33x&{OTUvW$`dhP zABsG?S3^Wo))1T^e4W#Myr>1<5TRIweuXx_Z#Md}s3_g3ox4X?-%LhL{Msc*0oJd9 zVieN5DGlPCA?ot4mZvyhkHenQKy)l|ywiouy*)Cr5Q2zpU~BAhX^e&rq$GL-q&#pQ6%Krb`xRHgJ|6BfXH}c~nQQM)`$dh|x2f0epIR2I~EUTM{?$d)8RjO9TAP z9L$K%_QtwLkD(l%^$qLG5V;&m*;c6{meL`H4<3c!vXnG~T8S>1OM$;EM;YqK8iel{i zQmfB|P`RkjgoU;bt|uT+cwvLw6lB#v9d*U{r*c z0s6*2NU$4^f4zheZOzd7n967i+h#Mo4LXl~f~BJ}#T%pZnmfu!{Pb!pb;M#?4f|jT=HE~X z2!hqFR%1qKIjN&?ZdI@aAb0!65Q?Xibm;O(v0)smxpjH}|EMRB?os092cMz|@dxycNk%ZF6=b|@v+J^=kUVr)s$ahOBwzHwRWQdH!YEVfTOC!o`B8QDIl5(*8QjVm zv~cq}fspQp%o1Ro)_`jd{Y-x+ez1S==u7SiAKot}Mn-e-oiw1X)_$aw8ttTsk|1Xl zw$7kh0@+ey^32N;Ilr;!X2=$hcCrwsqfYcTFEq=n3=1!`#(F2Lv6it@Dr*n>QX%#hf@d5ZY;2@YIDmtGp`Sc$DQ;ZXd_n6aqK`5J1=*j`9zUUUc?QO(- zU`q~MkVFse1_3NFIC47*WO%+LH_ZVPEO9niBsw3Mg-9H=aN5dSD%J|s9)sC-Ix&O^ z=eP$9XWBP-)X%|4#KrDnriX-hQ$c~3xl+aS<^e3-rsCB0CM)fQp1|Q}G&GMR1 zK*ZA0Z8`&V0_3a7UqaQ$Y!oV}QVZr*NK}??6tERHUyQ}AS8(pm5r?s&+yI;XMKqMB zU3@X_Uu=h2D{D2bwDx*9;a#3Zew&(`)Mu%~pO|LqGhKRnx#}veX@|aRitgn;g2N1e zruyeh8bx)bK66L-JS$~B#E(3jkC^<-nMaIDvg4?NS zv8Vv)LlH7(gD@@yRz<0IRIlf+b*c;j(ogByCiw zcx4A8zj<=^E!SB2z1)4`qx5Co0#$fL2vsCcMP@>KW;ckmAR*!E<*}5S>ZUzoSMn>eDqya5Q^_X4bLF@1tN}H0dFRSKiK!V1TysH+HkO26$#J?dJhumuzf5GhF0R4oqNt5&*>b-gu1KPA~c znGE5osxM4e{R2;frVo(j*q3gaO=HmpM20HCgluVk+1q=e(AsnfM$&EXMXw*qY*B&u zptE3ZIl%-;FSG4$7$g07a~WZe^_?l(t{1z23Ho~5F>{rl<-Hg}x#$sJsm-Ss;1Q>nTiPqUbxMQs; zT9HJT;DnRIE%QASO4?9A$t?nH_hV5tV23Voehw=fqL_0o1w!$cFA#=zj&9a6Icy{= zW(T-6_jy))iWQYMRZgg6u8;2O2??gP&4q=K!l1%JF!}MlQ{leu8O6p(FdMk6<+~*N zK9&>|#EV>)tJcd>Q}+ZXdz7?cR`bp}@{e(-WrakxoLi(!D-^f^2^InwUdfzb8_cLA6;;mauGITdO`9PRz128Uc5S3yjx-dn5iz zxQ7ZNY(jRgBEt5kW9qR7eYDND$S~nhSPL z(T~sw12O27o$8aY!P*$cZUq{T2W3HY44y5=;}JBk^%ZK%AhBCwv|mC1z!g2Uf@n9` zH}9nj`9&;(KAn5yaJ`R?352{|9wn@L6B;NTEoFhyi!qJEhSTMcX5YR`cWtvT>7GUD zHz-?iMmyos259$&IXt8T+Vz7hf!`p+tr{6h(q3k=NzjZKWw=Mfc3Ncv!#){)WQ5(|z$;G#d#z!L$zdu;b>$y>|5e@~Yf`fRKT6D4F)zGkZ3P0r$kPI| zn;~8sw!*6=$^8Fq?`?oI&93sWcV-stAf#nQmVk`{ACkP9h1Jmg^~~-pSybx&`ggbg zrn~27*DAj4nfYd>QUAGrc4uJ`a!O!{U?m|gM>xWT@t>SvDmJ)Ej)_YlB#~{!V)8BXBbKm=O?z!ilbMCq4&h##& zV7DGe%6CKP(588vf_q)CCAv;)0r)P?G z-_}((t^tSjqB%XgKD~4zyAZUw1?^%1_gy3ClJ7)Fd$20wTtv_0Q9mW2!6COxTiDtI zV4yqS#=amswt1GfU|P%NHihkfziS{O7EpGdUQWJWK2n^V0TDXY9FNJ}>FSYS%ARe; z^5o-vd<_h&m#D>(opBc?_!(tc+~++%HE|-c+dxO9Mh{vD3Wq4gcqf{Jt6+<3aR639 zplw*$XWL$dE19O1cvSf)NI+pH{eUUMj^@!BxUIq>Q-lRwIZBT>G$DEE4&bVP6~<~? z^BEOX#taCliaRoVp&8>f9z+wMu5bBEv&^X!S%(YhWAt+stD%Cvm6E~cvd*NJx!xn8FB@+6;%&OA@8(>~V zYnNd{zdpNmnT;h!b2CvBDgxCieE$GneeQtcR$E$qFq8 zC%5nHF-qug9+BoC`SH=>+zN#WJ>u-4ssilDN|+lx8XzGdxo)g3P2y0+67)v*<*)}Q zT|w?-;(U_9ak}p*FQ*l@jO|v%Y*(3a&{0}r+T(tv*nyVD>S<$Xwq6vxOYRe9zh~!LV!8 zJUTO6koa6Fm=Fsffea=VW_=oSt%@UqW=YWfLU5Bc?ifxq^#a}r7m@qs)8zU~*Z=?% z0wG>ovSWpI=z=>>RlSY8F-Qjs6zfiDp@n0U3r#sqHetfE`tJ5Dm<}|RWEpY6Y!y!J zn(xmRtf386X)Xd~t3$8uf4Yaj7mkF;3EZs>-|7}Gr16sw70uQ+wh`Im?4_<8dR2|p zwDp5;tB^IbG*p8GFv~XggftC`3M4H!LTfg1MY?1a zjNKoqL+PMASC%lf%pZ+o4d&hLc;I|pk63~ad%Mn zM$iE$V-=+RxCoMgGwfzR!~w*z>jIiH73S=?71B6wdJhqy#bmE6Kz?L!1-Bf=fX8!X z6316mRuKV6bqX9`4ff@ya~>y{u;O|tI}Uvb5(&?nK%0P7U&O#sC(gseLZQ*~Q1Agz zX@)IxV9It>X{~#C21jUCR}@ABTO1cc1_W<2$4s=Jzcm)MX+fd7?3#m&eYWAMo;sjT z1<%Z^uB|M=ba`c$UVt)%=^gGVgZCNSp%pg9X>!0(4#?08H0{NLcoGD1p!7|U34dL>2-kN_#-WQp%;>@7yn5sfZi)*L5DC$P;N&mFK;}?3nr3lo^C? z2qTDAkZLk)Ym)I%=3dRfWo@)mO@(&9ijk3U^Fk?0Gd<9llLX zadz7QcC>MYgx5l?m}a6!3uZ`j;g;i-O$1H20IBd`V-W6eQKPw`_0Dl&%GT72^x}2T z1}(CBAX*Tc^eYq^l@%aWrt00l-n|zirNSJ})dj)B@d~!G!d_P2R2tR{F;-(CW?G8i z8J<#+94NTR!VEAyTwI@mDZ!&knq`>|o7{IW*G=f-{8{9AvZu`n1JR0ywFzFEF1B#6 z#fY$>TZnl{FiX&cf%?>nYt|-XFD{y@=)(Im=8ZLdWpXiE9BhVtYCkt28q~%3Kfbjt zgG^>V0=qupq#Fg3IRmGL&c>b1O&hR~UIX<435lzNh!lZCg0P13usLvB#+4Bl$brw2 zG({~nP-Su@fmAesw&`nr_$-MTz7&_TU6(S4HOAF@Xwklh?{k+ zl^``H+&izQo`Bg*|-AeZ?bVKa}tS6Bq3Ot+|BEa`YtxV(20u0V>9^ z0;7wq^1L!J2O~V;=-qxMdN;_lbx9D`y$-u z{5RPPlH%(8WG_#sAR+?(sI>R2T^3qWN^m1O*^tOA;s8ngz?*|5v!5-98DnceBurAE zUYo&5j?Aac(^e}q+pu)4ELtp?W!!_k4F3wAfu&$Xdshd{d?*#jQR<0rGChmk>_rR}fq?Jd`C9q}4tz_)pv$t(Aae=>6K1?v{wfs9UO59z#r)X57 zWwG&QyPD;-;WZ|0mp@{@MM{l!H`4_R8L~EWb+|Cy>w2i%K)9QYrm@`9FbuwB#-nVZ zJSmqNgvro19rhdru?R$j&=ZI>WE(vb+82&RRLqsrz#0BH&6lncTZB)+}j%6xd;SEnZaDNkyFdJ*>rA#)DA3#U?CK- z6P<_Z$2pLL>*m;`YOWueGXYX&al_JhmyK`}nqJ}1!&lN5GDH<}MX!(PU!SwSP_;v& zN0CLq^lEkUfcJwI!msOTowBdNGB;~jA6_P5NZ)!!TdP6dv>LUcqI2QHtb{OemTPSZ zt1)YQC89t?O2wH9cdEXX(0;?it2g^xFgOWR_MeYb?8D7fG=MlP~`F#B12?eEK2dy`rg;JNs2ip)$u35s=wLJ3D zg^d-DB`?7~rlCcOO=Y=Zlj9H&mBcAHyWE_C7vzCdXjb)tl=O)UY1a_jnM><0PRP>g z+nY?s#DLJB2PM|F1RLv|0hG|lk%pNX*y7q$QoXfR$%T<3-o{I?xS8(9DWmRNh-XQ3 zZZ>T$*d%08WZ*8sQ?I=@oM(xJrGshMqYBM8ti!=dKEy`{u`1)>TkPREY z>?Qh=v(CF6Fy-nWrJ-T&noZ3HiaN5xk`*LZr)(9Mv zO=w-O+lF&L^UTn~l_2=I?H|)_NVK?wM+cS69Rk-?kSgUQM`0p4Ni5(3fX&^TqxZd^ zrxqeiuH~)W1>k3}fgeEbBoixO zFu!*|HTPB~(YKY!J`a(O_2pYsKFU@<(`d2{1}@tSq(Y;NeVe#RZi``QE_NM~Kr@Sv zp2<5p^|w5E4ODnN3yL`Dk8D%kHp}Y63OKqTVL>COmI2}TwwCEU3f2sIbWN?yCO%9e zEcsa}Z;@AEm?F{gWp)lx%!#>gmQ^UDolCPQapZm;^$c;97hZ?MM2JIrruPwcFwTe!HxYN~I3 z9zOTyXhSt2$SukGSEb0{QSThNi{_)dMl=PY5~fl(t_a#(8+uxXgHCwC5a z5_8!)EH*FC6#Ev@ZiA>1YL|PdcPf(!R%f38GlM^c-;EI|4V1~uW4z!Z834oRQ^4}l zS`G(X6zfxvE-%8gTOZy)L>aYw+}MA%e;6K^2&}UB1Gs&`M%?+ClT;tPE+W^=U7m>7g^q`2ra<3P{`9Kz4=s+ z;c2eaFP=j{Mw$9H_}=m8Dbzl>zSMhlZ+r7-YkSl?_pTcs+CS>O>)i&f)+4me2Ckrn z)bb*a4r(>l!t-rF!d*nrt?ob^gy?;WGF+MDYm2q1T!WfW8&^mY z&>tZcAxygrXW0W=A+;GayD?Tc?Tq=L8cB6JPka1b4S1SyBp|ziE3*OmjB}Wy;_l|F zqv7`6?j8O|nAdUmvvZbUTW4k#mvl_KKf6yTj~W)Kj2E$2vEA>oY985>JM(2sc)F0< zjy{Jz9E7P{4SR=oaYDLxyn84eqz4MM9cMcGB!6=sXwD7Fa^|2EmS#4`jIiBq{O)F- z0i_CnOTY~P%+qcrITyPa5FuTZj?s42mcv~Gg;W^|5PW8a@@RyAbhbj|XD&mv1cdyPkiPuylq%W)sznH7T8?1<51ZqSjoGS;sPD_>ZP{uA^IAP8V7_eLikP%iYFu?JLTAVPhZiY4hbYsnF2em2 z0$|r=I2|Q$$!WaG>u@ZPF;<-NUL0M))XZMoi6bG&Ic($TciQ=dzl5$6O}oGGK*+{& zl!eroUS9>LG+~H>1&j`PLT`vK(H#b{j1+?9f)QZ;TzCcxfr5oeWQRA>Aqr|cS}U-t zgX3D*zsp=O)gv88(Ui}oQ4Uf0H9taN!1Wm_J~;GcvemSVXPk~$&;*9nHG@~UUICRu z4SW4)GZR6BE);PeK0B|K(D1o|mjkv+6L7zo98 zV;=FZ5Ne0e4);ix^b6^o%h3kbo%s#Ftt+>720)FW70Ik1`h}eeo{$HKN5@T&U=&B# zt6n@Q!lS`dnwAuvNQMteGPKIpTHD{sEyeM^hkaqL$z)!NBQ336Jk^jv6Gmw)-EhMJ z9Wu464+XB?*0&86-#xH!LWS=KIsXQ4`N1D-&T>RJpF&J;f(?CKg#F6*Op})$AXUfN zBL~DRFUv1LyQXDxfDov-WZ}xnmG$2J!Bxb=uneHKTsnI>*<6va%?_zKCK(=mtLh^DjN>prShFN_&FOIs7&)2akIX@ zkd`R?R*5$4O?&a}ta>*K48b7klBgLT^EfC${404I$UY_A!&C$qo4EqsSg^ zd&vyZ(o3$ca&WVyy(5EKgB3KQX}IXsGvSO4Z-Pvw0BeU#fqR+C8r0JStGj9egR)(y zOd{nO6qk3&f761w4EMcRgg93BaKyv*4=4=+k^I{?%y93}R!h6H24Np3*lBmKZh+J# zV?7WiaFv61z%8#iq;9^MSS^e?&gyX3Ok`I#D8cavY7~{Ts034Cq#Ba*3zt`LMO%rw z5?0sk-dp(|m`x%x=pnF1nPjoXuFaI=t@ebVYQpdQ?P@LSDPB2VsPCn(5EIKv? zr*AYJ=*OUB4F@8<={Oy{n2&0W0kkqK4x4@W4Ql0XH*6kIBUf>-$3~$E% zAndDMkmK`rCq>(FsjC3{WR)roSqB9{u%z~49UUpS!{$9Ew((Wp)V1<@6H4NtfPGw96+_aGy zZgVrUT_E+w_t^EQ;Np5)|Ekw z&m)EoViDkvU-4L{HF(&8X$DjfQ$SdSiSflX8+=!2eS$@*9{g}1Drc95K0s=`n9Kkx z?*K6xdPS-rR-RE0YSko~flR~*WiV4*+x*bz%D$3~^}%>@^fdE*fmDPW#N4;tj8wvx`5Iz{ zEmFb`RVHd@z)n+pE8{LN>uqE@g4P7YU=aYzq0 zHR?1DE->@EK2C-?E=~L$@7_#Gz`C8eLI=JnRn&MeXEf~7l&WTzRzu+}pVp+K00(m2 z?MW-F)5=4VU|6-WH36yshQ>s=+ygES4OaMmyt48!*#?puUy9T#uRz-?s- zlfmw|llx)UX&%kilTP};X>JlDRIG^ETxkQjT$&zCLzUy3Go3@^QY7w{ZS%q!rk+HA zld<9K>hNIic=y)U?w#Qd00^1hx=OS=E4=;gU3_|^Q6^||GGn|(v!naw% zX?cTV238G8>;^j?rmzx|vt>vLQJk%f&H|~t7NR^fe;JL;wOu#D^jc3uZ!D}n9ckvP zEUi4bi`?2Z4C36mgQt4$`p$!Q_3)!|-j$}@a1{>ln2SDWoU3HyQ_~Pebv!AL3RFUb z1wNwD0`XDijHo=J#<*{i4&QTUe;GcD%QzW8Cm%bJZ!SIsEWDH8>a06zxV4iqr%P>S zc`&efsSSO3;6)?A2G0sX$Q?m2C;~p|b`lH6#Ho3#kJW|4h zGplD3uX+Y1gizaKFV^i{X;TD~9h&(STt^VR8k94OKy!3>X~_#Ez==vbfV4#V0yfTR zS#S7^PnhnviVc%B+y74ss4UYiB)Chw8SpHJowF#+;+hhxSd3w#%uWnrS+r=Il1Ha; zy3bA!*hRek#sPwWio62duoyL^{Q{)S*<7>0C*b;AB>9}%YH|hb6{&g*JQiLNF{ozZ zv&|*C0M)e{Qi{Xbw#~=LkK8I4_iewFRtsuDef@Is3>?o4n{lJDcnEp~y*4`mk>BNm zK64UlD5loAzv7#TkV^Oozx%jl`-EH1-6ctuB8D%U!fi22++o8Pw)+~x%cBsrNe+WG zxG-B7Pst{DG{`|hm?6fGY~aMQK7N=q93(pSq-u~#N%mr#CJD)iT9-II_Caw}P5Yqb z^4x@~C{YxxATvuoEzBe`fmx?bO3X(cnJQMsT$vbWeA?1!g-`UBDHBFF)V~K`5GRtM+SxgY#r8eUerS3FF zuK{%KqHT?ID&96U7xUgPFWJgfFskx=W6_-Wa@Rq?F z$5T+aZB2$t@AMi1H?Ki9A~&WQt&7W}g|#6nfz&)sPI+(P0NcWh`|4 zwd}5LvLBRUNHg0xJcaNEXo%d6G=r(U1Oc}Y-|NRJ-6Xg29Dim&X@T{UD)mTGUL|UT zl!yR~8;U|*toF^vlE0~&^mQTh#iXlvx+cS*hS(x7%MYw0pd7JGO38F7$^ukabOb(= zXy~Sp3y7;sQmvCJBWVKMw#J?8YKqhwf1q4caPe~5Qsj>*`A@Z;Du1DI$9^fCJwoMn z`9f$k6Gh)QcO#`@2;Z1q9E+v6kxqGVH>|vtU?eSe(^P(fY2;k4yO89%3nteQ4_K*q zdtdiq8iS||my&tc^$GVnf)diTj_$gz+>&Tq<~=EoQO*N0U4bvhMjiaVyEcR(d_XbC zfuQ6M%+!CFOcM{2=>juxrtqW;@MzSlt3P>8EmrLgC}bKt=VALa-6uUbij2sG!11=j z*t{i;0F5D9Fu8oP&fEsd?MYOk5K0P@ghuFSPyHBA6jwdk4TcaBfxt1Exf$-9x#p!1WcLujri}C}s_Ip2RM(Eo$fhSPkyC z(KW>bB>b6Dg9!pzl7B-&p_H91E!J({fzF<*3=SxEzGf%k&lBI%?ePmxd`}x~h0(&V zsIuc$V`CHah9ibWE;aWr1n(wH%|W1LM9i9v2@}d?Jzu)OhBdbq`|iE=L}m^S_6`Ox z(#Y?IOFb{HMGPJJ-mG4=ApHK!1xKxqGdbfCgF>>EJ6;A<0(7C}ato+gU||`Wp*xuBCRt8d zR57y#=LR0if~^wT;=nA>IRM7is}7T7=H7H3Js2VkT9l_t|aov zJpOtnrFFtZ*(-zPh3Ul^JMoT9YzZ$;?&Hg8n*lq?*k)*IXWV2khzO*nV-HBvYdxt4 z$Gq73or*w$so2C6z#{y>fIHOS!T?#nv{5>~Y-$s34x)~aq$*<$BA(|N@dqsnDGDrz z+NV5KREO?;Ve;9bu7cNOvO}FU2wUt7F}4JEJvk^(!cnA0Pvz!AQ)|~D+)Q8TNyW9_ zH44UE;ccfI?v=HCgxFHz<3qe70iIk)D?< zluV(7DZBZxoV36I;icWn#3`z7i)~5D9;;aOz^rK9TcZi4>>Odtj;Sl)_KP#ib8yvv zb^{mVuEVZ@Q{@&Fmw3oVlG;- z49m6Em>S;=M^_>E+UnX6SECAV{#%VS8kVU590HZY02-De-`PZT8Q=C(gg;>l<t-H{}YW2o$x4-65Lwc>j08r$|{ulBOymyzZo5&Dz2w+bX!?_$@n-Y zJZ#)VI}4EFV&76BS2^QF9JmR9t9DALeznPbWa3_sNC_^- zm{l-ERyF|nq@&8_!xx8gB9#|P^~Wx6h1$Y7OBPM6n@ED8rwOw)lW{WGjHzxC(R^`r zB4YWvDy@xKocXr`!|-AU{)=ZYTyf8ccvzo$vFTIZ01C&p(FRtETai}%+!MC}i9y&X z!9gxRXQvm!8@GViI1TBudFg)QTXzQGq)>z|Vg)2_8$7O^M->PA%g%zeJ!0ffh(?cd zV}mouDc0SunhTaFCBf?KestBQAi0hNqPXyF;(=Gfc@9Td?UfAYoZKs!*o8Mq-?za% zW^*30IfJS&>H{3`Wo*69N~%vOQ7O3=g$r)pft5TH^2Au&^i}wh!gMGZIX~&w%%EzG z>DHz%znwD+R-|A?C0lLzSVNbb4JPX@qqU_8EeA9FD(xoi;QcJ_0alayymUXCiID34L(x z=2N|!y?4L6x0o>y9Kz4+KYk=%R8NJVeI=MZRrN1QCJHZ<1#C-GM)I_ZaJ{Q5{9y)C zVWeM>H;f!{X^eSEk;@X6&cM4Eto(>zlb#z1`uq(Gt(>pn0>I^vniXP`;2u{ol;%@$ zDef{YzUX@&VBMD0UGtC@!_={BYL0%#mYu`)2lbNS?j+;kKjZdn85StM@aXI{+?sHX zf3%p}53bY>g2i+>mhmp&!urfp@^)$iVH=p#ZN|RVNGdczv2{$g79~>#jft3~`5}b= zYNYCJdUWef2Ag1YalZXH5rH;MIkbDLZ3xW`Ak!Ae)dR=iHtQQ)_{%4Cb6iz*KPuf# z&P94a{U6_Gh)LWWL`-NdL}hptdt!W_itv)uCyPzQFm?zpKeslC>%kDEK(djotvQH~ zp+%8*@+6~}TiTJR8Ac~OmSpOlxfz2i23Bf57BaaWAhIGlapL*o9ISV&>e^f4(gVCH zE};{UmJkvXGDZq`ZYQIKAP5xKt{@~DwqkN8K{Cn=R1dzNhv8^tOTWl0K+4R?Ez5?_ zMBBXT=`k!&Q~f!axwryi2yIa5KoF9G`F1`NcXec!ZtC)ZxtR^Q#aiihAwl`fWp+PX zxC#M1?;qP?SF=g2ll5jY`~@@*%@bmol7EVK)###2)o4e#4nN zdFGGV<-skE=j=v;J*-830qM%}`W0Mrj8kNkVBFg0Ym00O95`-hEW$o-*3RsHp8yop zAxs8gauCNw!MpYCGX`;Mo2N>iFMGjoV`YlAF)*C2J*oOwZ)&tT~oAKZlr9?TAR zPL&Ak$RN&{Xl)65n1}9BUHK{p` zJCAcmJUi9%h#)FvN^oY41USr*Ks4Tm5ADf^WeS)Nj8-MxRZLSykrGRFSD^`5 ze$+f#f_Sf{nZVVjt?i@H!R*2;0w*YKCwuiE@pm}eWgr0w#9AKZKfzr z5nDp&H`*ZI0;bZK-8MF6Y^qb0htI07I}8+T9y-_{A!TEW#4eZtWV`?wDuDaV!x4nu zG!)d`*8PN5xLbGcSG$2i1VKxLUs$_7+8*6J+S=O%Rm0CX-CBzU+QNeBc`V(ybg<`3 zHBQb{le`7jPCCL;nOl6ZPnUM-Wv0>t5t-?S^!J9nzP<(u0oZ95j4d*a@`a|Mo)qAl zAb<(STAm^ErZY-dsenlL<_Tzigee$<%?I1~PY2k;yea)NV5&%qHOwK3Bq3c{f>+@_ z;}ijNv-w_<*%uj95_|u%yLELyg$RDWOZmHpz zuWziZYGR~ND<|Dk)SV#(S!2L++@2#P2wR8hs5=xyuxMin7GX-mgxxH73cEO=OVnta zLY!-;lU%(^Rvxak^$rizX6Bru;uokV6>*}cX8u1rPE-ku4)mof6#oS#}JXo`nYyto==*Xb9aT$xlMB{C(r3TeKaidLfGAgZm<6*F4gUuL%+ld%DeOj)p<)dnG zm2Z*`><}_iGeZ+RL4b%ZwBEa47UjsPqh-y?CM~xkrgQG4I-z@kr_G0h(=X>oe z8k&YNqYP)*Wz#5gpc^Jw+}|oU*R?6CQ5)*i6++eQ;sV_M zI%O&!*QC9gV51i#P&tu{VR-m**99eZ5W}EfkQc6FoK5jd#%N398@ zTI-&|H^s_UI1{90hmPtc5Wb+aA$QA&aoWVI*Xs$ z)at<9B?GF7ECvCh$TSyINC_9wOPI1hXsvvR#Z-I>QDhbwRc3L#*GP**)Hz!v`<((! zf~i%RRs+&6X`zHEyKyUSX2?}Bt&?1M)EYa+yyh+n76q6P$IQcIUVkM;5C{sNbFF^-E7^D>IR$8_9V#iY+Fxh0{l;p|u7k zT5z+o?;@HF+V&8&+Y6l>lLDdkGFiMc)*j(1R8*~l*sxiwOA@zp*-Wa_#3~~{%$Rp! zrhv*`l%8yX43+zFv{-edpnGL22e&x z!hu?|vqnlCAV%iaR<5iL<}cEf8%yTE@e*!ewi@}VpiU7o!Rn4qj+2KCHo{w~PODnY zDf2-IoitK{`#c=OrtAx)5>L_>?*PkRB6n}@6q5Z5pvKfvn*3-_6egjf;uuPjCM~Ix z>kV;|w|q>&K^5UtQ8kz%z&pKnrT1_*_f%8uOhhU-00{kEV_FK zkhIGOh70p@WaXlPg!(O4C##QEm;~=R`{vm_|m3_2)=V*~TlM%ICTCj+8>W zei;mmu96@CTg_o~!h(gEthTHuiOZ2;zk*9Ow?z1z7q91DzWwIUlIT#L+t*$Rvgy2I&a670dDs#6=_{Epf#x25rJQ! zc%~M0ExR5}r8qJ-F(&2!6B~B9*jSQ0RWE+bNXB{LaO*A6cn$Z>tz45YgA?Pl9ers7 zf<00}j?2*88>uh!h@(Ra;@Pcnr#JIXSi_c6VaLcgT?=OQ*s-v_4@0C>PqN@aIts=L zEr(Tc1lJaT0hqmTLe|jmY+#^-3JH|U*zVP9l&SZpM+>`KN7db`zU3SFur?pV+&@a>CuhjJ4@Jzj1q7qNBTX#d2p+Ib?W%A ze9+y(ts^vUb+mhH{c0*KHhH6>rP0pP<}MnSa$Mb5S*wZyUq3t=?F>`TQRvdr>{>NB z%iY&iTq9lWZ*L#&9Ut5rF>di-t(t-^3jT^e>+_hf)jYGJYLr7v4z~Ahe(1{nt<9rR zwSO?Wwe{-lO)lFwgoS*(mqhkHvYF;vp4PbFf+@6OeoB{^ZfxGz9;I7+QTtN5}d%FCE=Ge^|{eU+GP*_xk52o;g2W z9bvqbv%(m`3}}%!IhZw#F$Gx!#t`5JBn{ir-Ob(I(Kdo;BaA28(Vu-86j+l9UxApz zV>DocCqN)PEiBXA#}%OW#);Y1uS|_I8_x^hKU<&KE?w!}FPpBQWcwsi@qiW1R~>8} zy*`JCgZl_Ls0oA%Wsi48qGsFin>Q~ z;=&Z=igEb;*_-5l*ygPp2m0dxj73>Yj4QEze7Fy$pf-qYUiaErEAROm!sqca25NTl z%HoDzsh`5;JpVGQhO^k3)waC1yR>=uA9x8MnY5>t(9^oHU#oqa{J#dhaA0ienLr z6i(TJ-V?5SggjaCnsRdQm%UUB@1h+!X|8#=FjZ4-+= zx0Ate4F#G}RBV-*!!qv!fzw25)*gfL(k^NS_^Z4aXU7fO10`4_Y{vK?5lyQFNb#nU z&g|YqppV3N5(Z{=HDA^)*GR#PjeG@Xje5|8ShbIUheN#?z_cU9i@U3$oHDhsvybsN z242<;o&aW!S}-9N)~8Bfys>_KBMP6|Iy$U?0`IBV99-jPmAY|L`WRyd2#F6F|UTbP#gGXlFkmUH#c_ zJcKlY9tElUP>Y7AN8KYkz`Y6wl)4<52ctVf-KeS+=y3UX=SC7x`svq1`gO5JhDl7i zs=a%F*^X4&dXMbxC{ntjgij*OP6K0qwh{nF^1_t+N^XT|c^C48S`jw5nJ9oB6 zt6RGjmALx(A|yLL-P*f(d~g6ZuGsYqAc#Wwrys_nU?XY)U(pXlK%0WYgM~U_OZsX6 zgg3~J`*l6eWW^WY`(*w!*$fHN8n2*I^{f58!!3IHsgipYeGFxtF>MVy#HQ1cE3g^Z z9?DKwRm7UACfsZ0)@pQttbGt5U{7nhXCkwAesu-+ zqe2iI;{2R;s%3tXr>5~x)@2NYQ?p z-g-5EQ&F80X9WBnCJ7ZJ9>p_!VYkdSI~cI`QUymEs58~<_U0X)F$SfWu$`B>a(L6H zjMutuT0%4#^*DSJZlFu>dXpYtvizH;?t_~*LENmWcJO)-TImH=V-@U22+Vjoi=%Rv z6Iay0G3nF4@_{4Qe~Rb<2jWhyD?QczYX_i>o6rsJjBXi{Z8of|Z3xwq)h756^rIXv zfjqR8!3Q;HM?3q6J2wv~5JN-9J-XXaCC0pB zN#+EtNcaVR!!+%zt!v za}yzU@=Clhkil*j-X5scTa*=m>$9m03H4ZfBYAUgXMcM{L3Z=t^&!U?`rmLI+9eyH zx?L&Mn;0I8Tj98ix>K`g#X#c^jyRG&&Nv&>8t1^ZWlpbakV_4fC^o!_Amz; zM)M}f9B2r;`_}iq+0fO)a{>jTE2$ogR~j4Our(%XeaaC9b|NfM(8}=<#y4=>`A*8q zwZ)VpHlC;!z0Pj!ZXMno-HO3T`HjmO#+>x{qV`ocwsuAb*}xFs$TN)*R*mV=?P}v- z>&~6gK_VFDOM@rX(lbWWF-wYB3Z!u!Cwc%~Gzd50R~N691}@|_ey{{CzI6>GJQ8`O zcZ}dNJ`tU0&aBjEaTRfj3jFBi&7Ff1r#^QbR#TZeLdwQ+Ni0yAZWDI2C-ryc-VtJY zCj14OQgbp9As+*^k`HhP`Mr*MfUA0*wF>nKW7D}32B(g1!!1lLui1j-3kIpN9X!)f zTRpAOdDez;8BX4Sph|2ws!YCOA$A5LMtxz>Pu(Y!CXf*PTTMeW%IHs-1=dFJ1-wou&>(n;+_@309ZpY)P12qsPMG5$v#u zN>O0q3+mgTi*^#RJDr27iM!Oa^`nF1n_TWvxk2nTDe&-OdI8e0+dI=rf}CLNYy)cZ z&U5u(O^yvqY+PGQMbvC9 zkKqpbPpC)}s^C6pI)Z*!$HoFAYEgvNHk5hC#fF-C1F31mqE2vtqHv!*3*#y)wItpz z@&@-%D{wY9KLQ8{7_`pTpM3BWhB8t?idQN6jDVl0oiJ)xI8suNk>QrXJ zx!zB#AQMy2?Q#M}3o(A}bv_1_C5d7hM3~KdAgpdiQg^nFZbQ&d0IPasa4@>9sTzQo z$t}Fijdn)|m>@H+QYY*dAPzNyq8~AZLWqp#2{o|}c}DM%7=_E1Sf)eHvj$hH-dRc% z7(>;@8fm-`1X8z*@oyfECU4yWQ!rZ$M_JT}MOm|g@|hno3j~n^#tH;v0ojASot5c)u~#?V7ZhVv ziHEY)XkQ`4iDAaTfKB-7f>{tkvp2wb4t9H+JSX1vkx<5!!Nm@g`A~4I;-zSFgDb>i zjYF0_r^UuA36z)}`%5m_9y??)qgO1Z(VS=@=j5T2FqV^=sx;0PI)Dh&!NUIHcEUF~w6A#6Z*eJDe;RN7% zonA?uojg9;+rdh4({$Uci$QG}FGHU)Vyc-|v#%i0Em}gtMxmyHAuM-tgqkNW+W>nm zgbFmBC@qC`{iwkwr7cn@yQ}G>_s+2oPE`Xnk6Kf%MqSa{#D9pKxxwJOd*`^Nzp=Ns zeb~DVXF=^9_QuD~PrR=`)*nBQU;G{)AG`QI{26;nu=C?RJ{`N%hs)mq)^)7@PgT|1 zs;c^Jd`?xT-+1h8Z?C=?X?{L;sycfQ-;{bQ#;acc7Ik5*NW0DL}hx;p#s;X7cD z%>(?#V`nGd{`QpTmyqW(d7d%kIlZP#Jv`^Y@_ zJb&bC%JSdo^}ZF)iHyMIlw&90-~0ghlPADQGwjy|z}e@Z3(`yz2dwLr)1V>bB_5+K zFL+z{jBtLwfd2-6jN^2Am?5`WF5B=Ky!RQD`?TJx={8_^T-n&yFt&&9@pBSx?g#JT zJ;J|;dSAis=)0(4Wb_hsOuwZ%droua$WK7X1`_apB?fa2`ir&SrImJVMxq(GHvM zSzG6B`UoZEGrOleU(d_KS9KTvgBBj6OrFWK(XIwvwRq{9$+!A#)!9$0PT_|% zb9yR65NR>WBhA{_z5UTxvwInQTJUTvUaIF-lyOp?z$uET9;s=Qv~>FQtUY+LL?*gSD z`&X0ild4m=Af^7$N#!lq`PlkbPRf_jgeZS5%b2(Cd&~0fX4$G9VA0>l^SLA{dsW1d z=dtn3=*MY4&+~f;|9QJUpZ8A~`=46#(^a;g>%4qD|rk>^o4W<<=(SEo?-E$3}l|9-lahjz0>!z$-5wetLEo=4?;R(W#1{*Q7x7cbuI zq|LwDD(fG#>U$(FOKtkstvm${Xk5&2n~&Y4ye{SWPl|RQy{kI=WL}rr{a9zae>N}c z5~a4k-)hqZ&|kvkxyiRZ+PhNJ2XOW2R(;QR)>rgTIB56p|BL$aF@9LtYQELSZ|m&i zkLNg5AAhNZuS^$UjzSm6$NHl=?n$FRsG_Qe$&>fd=5mrVe=wK#@_bLIz9gIfj^*3` zzr1p4El;-$6=O5e!E`C`5L{gSWNRn^~_lj!uIrc=(JgOl>z4=?!~`f-()+YF{# ze9&~OJkLri&)sG@d+qu9xn>^hz|csTx94HXIo~YDRN8_!SpTy&XEws1#otLe!8<U_B|Hp=_dd#kfwsq0mF zdmZI{@?3S+@Lrdf8_}b@SDvcQ{z9X?m5%b>`5o2S&o=U{X8C%61%98**8{ci6B_TR z6IrXD!T;Q@_d-@yo-fneSyG|5=lQhd^$ z^Pwo(_klVe`}a`|k4EgvzY`!lx${S@2B+5JYov>Rq^5q+>kq=p_UvK2w?I@4=-e2eA%xmq#2K{CG zm(17Nzl?mp8+<75$M1G|_mju+de>^aklJo!=qvae-$}fgIhRB#Z#vJ9G|TyLyPVx- z9y7gYy$bxlnRSS=?h{W|)t5k5^D6uCk3RClXMO~JVJ-h2u3;ZQ-shjL&SLB8q|aFb z&QNf|=VS0SS781D+*{^=~u*H}K*ZAE{2v02 zQR{IIMEOB)RrP4aH6YTbkY@csPt5*&U&4X&o;`Z2+Vi=rKJHEap!-F#zwbc$ zzja^A=>PLb+xv#E4>Z#By$m?(J3@JpX8-AT8EL|QJxdc#pUZ%ME9#FA+fO)sE$x|& z$8?q^oIaL0{3BVKaQar}@L$Q&{f_$RFB$pyKK&%~H2ovK^&6VdA=#lV`X7G0d&UC<8AN@}7 zg^$te+rGX|6aILXW_iE#juQU4EKT_1-&n%mnWYK8@XaOsQkEus<6BDj^(-wo{9lj_ zALEDghlw=dKmVTzS38&9WqzV6GmVO5KicgFm_pj}l)z5w7Nb~(y z-c_ex!2AEvA2Qn#>6!bJKlxs>4Kclo^iP~K8xYeUL3-0|Jxu>N(*KUzbeLv)xsQ_9 z_vtK6_*WWf+Q9PsA3=K}&HS`|MVjsZu_x;^;j(!tgVD#2q5Y9x@GQ;uKZgF~aN4*c zP53JM7iqpv+g79re;fK6X~JpKiZtP$&(eg`&JyrH2YkgR#*6wddz5(g0 zNdE!A9|N4}J4nxgzg_Y)WRK$g{{ZR#6YDi4cjo^yNMqs9=W+DsuQc-iH%MPZ`P4I* z|Cf>e%ivdIp8n^J{E%ge`reANKjrvi`QL!_d$aa_JJSC$YtQ?T4*Wb`eNFWo(s}=1 zK>9M~|EInF8%UqR`}3aOMLOhx$I;$nq(eS@9P;50Af1=@38a4l`1+#b^HUA@Uu&fQ zyGHsSH`0);svq|Cmg5E4iJu<7-huHv4HYV{|67pec%O1OWTEP7fS(wj=aA0ZKZo=W zX86C3G(J84d7SbP(s}s@jr5NoO?k)K^VaH*BRzTA&KGffe+uaz0zN2zGyQW&=i~8T zBmJ*1KLg*tjC5Wf{c`j4SCC%v@n?Cb(Xkx<1k$1ZaeV$@13rQD2>2j96Q7ev|0MY7 zm%M!&NTV+azeA+|I`Tj5@ViLo_5DC2{fS2UFCv|{=jR&mUql+s(1-N=KQ`dMiZt~x zW+DCk-$;`lx!%76^1xZB$a#Cdy^($f>6hHUl=ym~0sq5Dk7Io3155b52K?V|r2ljy z{a2CR0ey0OiO;{;fdAb_`d5(t9&bPE``?lN&1}A&0`dMW=u^O%+Vd8qe-rcbXFdH* zNPivh5&Y@hNay{3zL8#Tq=!gP;{Eq{dEbZhOBp@wH}Zd?k^YNF|8u z^#7cvKikOv_ZsOhApI2R{qtV`TVTS#yS+uE-vN4k8`3|?^%@hH`1w|(e;D|=>-qag zS09M^d8+zur1Sp2*hqgb()E1*+Uf#`yQaslt44tTCCEFU_xfIIy#H~e|0(zb{g~OF z{}gF_&FTgE4D((!wYPVKtJ~b@KqB4H2_PaUf^r5$zTizzwHn z<`C9yh^TkB_J()1_iiA(_bmjSJsfTx-}8VKN26Pa0Nt5m$V!Hr2M3$44-w(w;PvYE z!RF3rcF{0IH@fPe!9zDaJgH(kls2!y%R?Q`r>NXf$#7|Fm+>4hmg`&JKhlj87C<+0#85|? zbt$f)f{-xOr$^R~3}u|%cse}XLWKCu2)7)M%Ru|1dt0~eVaDB3m{3LMjf||8!5bMO zA&-m6=W(QbI6^?!qiT3au7Nnr6CTw%FGEdV;Oz5Q!3>(caXrUUib);sW$~}$kq1JL zBwL{v6|D&O8U@6L=C{IS$17R*;w-pyK!-#0fg$)1I&7$e^lCT*N)hG5Lm@MZ6CN+3 zo@a)<)+3Ad=ON00H-_wI#K)MpYnICQL+x*CjD0+(^fW?In8?qJQJ0Qj- z8TGw!{{+{-hy$Tej2f=|LW~@vit-(0dTrTQunPsr8AYo|E!oEN5J!-g%4o_Jq?K3I zVlFI2y*8q zno&k`^S8;raL37!^#dXCco(e*BOh<{X!XLdB-@d=KorA;0<0YIN$UFv@`jS6>KMLv zhWod7?Sd^a%eVp{-pG+v^qEt#3^A0hNr-n-6#95jN1u-;5q&+ zoGuOy5U40hBIeTN5%Ca>#?3}+FN!D%GONxXzP@v`c>~`^2ljn8er+8d3}4k9WYu{s zE$0vRg!1!~YfI;`*6=m_tj-sUe|3H<2?y2rT9&NN+sovC=ZD9Kh%9=SoW(|5Wo{lF z9cP>Ad)r&Pqj(E_tIi{28-v-# zGl{Vf=^y&@EyxKK2O5Yz&|gk*pE7;o=X>#lzp0jUAM<0UPSGBjKD2Z2^FI8K@~DsB zdis=Ni3o^4k&pYa%*X${`1p3XPrLr^Y7tFp0D@wr>nosgGT;| zU;ng`?^mxrQa!;&`zP}K3#9owaPeFJ&m+~>{?By-3FCj-weozA{_#+zP@^E00E1i|1a83Pk{gc literal 0 HcmV?d00001 diff --git a/Debug/Open_Box.list b/Debug/Open_Box.list new file mode 100644 index 0000000..2b556b3 --- /dev/null +++ b/Debug/Open_Box.list @@ -0,0 +1,6601 @@ + +Open_Box.elf: file format elf32-littlearm + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .isr_vector 00000188 08000000 08000000 00010000 2**0 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 1 .text 00002adc 08000188 08000188 00010188 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rodata 00000030 08002c64 08002c64 00012c64 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 3 .ARM.extab 00000000 08002c94 08002c94 0002000c 2**0 + CONTENTS + 4 .ARM 00000000 08002c94 08002c94 0002000c 2**0 + CONTENTS + 5 .preinit_array 00000000 08002c94 08002c94 0002000c 2**0 + CONTENTS, ALLOC, LOAD, DATA + 6 .init_array 00000004 08002c94 08002c94 00012c94 2**2 + CONTENTS, ALLOC, LOAD, DATA + 7 .fini_array 00000004 08002c98 08002c98 00012c98 2**2 + CONTENTS, ALLOC, LOAD, DATA + 8 .data 0000000c 20000000 08002c9c 00020000 2**2 + CONTENTS, ALLOC, LOAD, DATA + 9 .bss 0000006c 2000000c 08002ca8 0002000c 2**2 + ALLOC + 10 ._user_heap_stack 00000600 20000078 08002ca8 00020078 2**0 + ALLOC + 11 .ARM.attributes 00000030 00000000 00000000 0002000c 2**0 + CONTENTS, READONLY + 12 .debug_info 00008dea 00000000 00000000 0002003c 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 13 .debug_abbrev 0000141e 00000000 00000000 00028e26 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 14 .debug_aranges 00000940 00000000 00000000 0002a248 2**3 + CONTENTS, READONLY, DEBUGGING, OCTETS + 15 .debug_ranges 00000898 00000000 00000000 0002ab88 2**3 + CONTENTS, READONLY, DEBUGGING, OCTETS + 16 .debug_macro 0001a2ca 00000000 00000000 0002b420 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 17 .debug_line 0000a514 00000000 00000000 000456ea 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 18 .debug_str 0009d709 00000000 00000000 0004fbfe 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 19 .comment 00000050 00000000 00000000 000ed307 2**0 + CONTENTS, READONLY + 20 .debug_frame 00002660 00000000 00000000 000ed358 2**2 + CONTENTS, READONLY, DEBUGGING, OCTETS + +Disassembly of section .text: + +08000188 <__do_global_dtors_aux>: + 8000188: b510 push {r4, lr} + 800018a: 4c05 ldr r4, [pc, #20] ; (80001a0 <__do_global_dtors_aux+0x18>) + 800018c: 7823 ldrb r3, [r4, #0] + 800018e: b933 cbnz r3, 800019e <__do_global_dtors_aux+0x16> + 8000190: 4b04 ldr r3, [pc, #16] ; (80001a4 <__do_global_dtors_aux+0x1c>) + 8000192: b113 cbz r3, 800019a <__do_global_dtors_aux+0x12> + 8000194: 4804 ldr r0, [pc, #16] ; (80001a8 <__do_global_dtors_aux+0x20>) + 8000196: f3af 8000 nop.w + 800019a: 2301 movs r3, #1 + 800019c: 7023 strb r3, [r4, #0] + 800019e: bd10 pop {r4, pc} + 80001a0: 2000000c .word 0x2000000c + 80001a4: 00000000 .word 0x00000000 + 80001a8: 08002c4c .word 0x08002c4c + +080001ac : + 80001ac: b508 push {r3, lr} + 80001ae: 4b03 ldr r3, [pc, #12] ; (80001bc ) + 80001b0: b11b cbz r3, 80001ba + 80001b2: 4903 ldr r1, [pc, #12] ; (80001c0 ) + 80001b4: 4803 ldr r0, [pc, #12] ; (80001c4 ) + 80001b6: f3af 8000 nop.w + 80001ba: bd08 pop {r3, pc} + 80001bc: 00000000 .word 0x00000000 + 80001c0: 20000010 .word 0x20000010 + 80001c4: 08002c4c .word 0x08002c4c + +080001c8

    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%0DYOY%v3d5qJk_!FZ~rzBUMHA_N+K*)oCZmx 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%0D)d~YPOPJ|- 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 literal 0 HcmV?d00001 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.su b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.su new file mode 100644 index 0000000..ed577f9 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.su @@ -0,0 +1,121 @@ +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:273:19:HAL_TIM_Base_Init 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:333:19:HAL_TIM_Base_DeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:376:13:HAL_TIM_Base_MspInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:391:13:HAL_TIM_Base_MspDeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:407:19:HAL_TIM_Base_Start 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:446:19:HAL_TIM_Base_Stop 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:466:19:HAL_TIM_Base_Start_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:508:19:HAL_TIM_Base_Stop_IT 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:533:19:HAL_TIM_Base_Start_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:602:19:HAL_TIM_Base_Stop_DMA 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:657:19:HAL_TIM_OC_Init 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:717:19:HAL_TIM_OC_DeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:760:13:HAL_TIM_OC_MspInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:775:13:HAL_TIM_OC_MspDeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:799:19:HAL_TIM_OC_Start 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:856:19:HAL_TIM_OC_Stop 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:891:19:HAL_TIM_OC_Start_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:984:19:HAL_TIM_OC_Stop_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1061:19:HAL_TIM_OC_Start_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1225:19:HAL_TIM_OC_Stop_DMA 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1328:19:HAL_TIM_PWM_Init 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1388:19:HAL_TIM_PWM_DeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1431:13:HAL_TIM_PWM_MspInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1446:13:HAL_TIM_PWM_MspDeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1470:19:HAL_TIM_PWM_Start 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1527:19:HAL_TIM_PWM_Stop 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1562:19:HAL_TIM_PWM_Start_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1655:19:HAL_TIM_PWM_Stop_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1732:19:HAL_TIM_PWM_Start_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1895:19:HAL_TIM_PWM_Stop_DMA 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:1998:19:HAL_TIM_IC_Init 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2058:19:HAL_TIM_IC_DeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2101:13:HAL_TIM_IC_MspInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2116:13:HAL_TIM_IC_MspDeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2137:19:HAL_TIM_IC_Start 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2189:19:HAL_TIM_IC_Stop 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2219:19:HAL_TIM_IC_Start_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2311:19:HAL_TIM_IC_Stop_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2383:19:HAL_TIM_IC_Start_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2542:19:HAL_TIM_IC_Stop_DMA 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2647:19:HAL_TIM_OnePulse_Init 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2716:19:HAL_TIM_OnePulse_DeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2761:13:HAL_TIM_OnePulse_MspInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2776:13:HAL_TIM_OnePulse_MspDeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2796:19:HAL_TIM_OnePulse_Start 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2853:19:HAL_TIM_OnePulse_Stop 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2896:19:HAL_TIM_OnePulse_Start_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:2959:19:HAL_TIM_OnePulse_Stop_IT 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:3038:19:HAL_TIM_Encoder_Init 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:3153:19:HAL_TIM_Encoder_DeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:3198:13:HAL_TIM_Encoder_MspInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:3213:13:HAL_TIM_Encoder_MspDeInit 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:3233:19:HAL_TIM_Encoder_Start 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:3327:19:HAL_TIM_Encoder_Stop 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:3387:19:HAL_TIM_Encoder_Start_IT 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:3487:19:HAL_TIM_Encoder_Stop_IT 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:3552:19:HAL_TIM_Encoder_Start_DMA 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:3765:19:HAL_TIM_Encoder_Stop_DMA 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:3842:6:HAL_TIM_IRQHandler 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:4078:19:HAL_TIM_OC_ConfigChannel 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:4181:19:HAL_TIM_IC_ConfigChannel 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:4283:19:HAL_TIM_PWM_ConfigChannel 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:4435:19:HAL_TIM_OnePulse_ConfigChannel 56 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:4588:19:HAL_TIM_DMABurst_WriteStart 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:4646:19:HAL_TIM_DMABurst_MultiWriteStart 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:4830:19:HAL_TIM_DMABurst_WriteStop 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:4936:19:HAL_TIM_DMABurst_ReadStart 40 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:4992:19:HAL_TIM_DMABurst_MultiReadStart 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5176:19:HAL_TIM_DMABurst_ReadStop 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5260:19:HAL_TIM_GenerateEvent 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5300:19:HAL_TIM_ConfigOCrefClear 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5479:19:HAL_TIM_ConfigClockSource 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5633:19:HAL_TIM_ConfigTI1Input 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5665:19:HAL_TIM_SlaveConfigSynchro 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5705:19:HAL_TIM_SlaveConfigSynchro_IT 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5748:10:HAL_TIM_ReadCapturedValue 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5832:13:HAL_TIM_PeriodElapsedCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5847:13:HAL_TIM_PeriodElapsedHalfCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5862:13:HAL_TIM_OC_DelayElapsedCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5877:13:HAL_TIM_IC_CaptureCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5892:13:HAL_TIM_IC_CaptureHalfCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5907:13:HAL_TIM_PWM_PulseFinishedCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5922:13:HAL_TIM_PWM_PulseFinishedHalfCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5937:13:HAL_TIM_TriggerCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5952:13:HAL_TIM_TriggerHalfCpltCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:5967:13:HAL_TIM_ErrorCallback 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6533:22:HAL_TIM_Base_GetState 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6543:22:HAL_TIM_OC_GetState 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6553:22:HAL_TIM_PWM_GetState 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6563:22:HAL_TIM_IC_GetState 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6573:22:HAL_TIM_OnePulse_GetState 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6583:22:HAL_TIM_Encoder_GetState 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6593:23:HAL_TIM_GetActiveChannel 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6611:29:HAL_TIM_GetChannelState 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6628:30:HAL_TIM_DMABurstState 16 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6653:6:TIM_DMAError 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6696:13:TIM_DMADelayPulseCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6755:6:TIM_DMADelayPulseHalfCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6794:6:TIM_DMACaptureCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6857:6:TIM_DMACaptureHalfCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6896:13:TIM_DMAPeriodElapsedCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6917:13:TIM_DMAPeriodElapsedHalfCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6933:13:TIM_DMATriggerCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6954:13:TIM_DMATriggerHalfCplt 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:6971:6:TIM_Base_SetConfig 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7026:13:TIM_OC1_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7102:6:TIM_OC2_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7180:13:TIM_OC3_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7257:13:TIM_OC4_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7321:13:TIM_OC5_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7377:13:TIM_OC6_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7433:26:TIM_SlaveTimer_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7567:6:TIM_TI1_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7614:13:TIM_TI1_ConfigInputStage 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7657:13:TIM_TI2_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7697:13:TIM_TI2_ConfigInputStage 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7740:13:TIM_TI3_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7788:13:TIM_TI4_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7831:13:TIM_ITRx_SetConfig 24 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7861:6:TIM_ETR_SetConfig 32 static +../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c:7893:6:TIM_CCxChannelCmd 32 static diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.cyclo b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.cyclo new file mode 100644 index 0000000..0585028 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.cyclo @@ -0,0 +1,44 @@ +stm32f3xx_hal_tim_ex.c:140:19:HAL_TIMEx_HallSensor_Init 3 +stm32f3xx_hal_tim_ex.c:242:19:HAL_TIMEx_HallSensor_DeInit 3 +stm32f3xx_hal_tim_ex.c:287:13:HAL_TIMEx_HallSensor_MspInit 1 +stm32f3xx_hal_tim_ex.c:302:13:HAL_TIMEx_HallSensor_MspDeInit 1 +stm32f3xx_hal_tim_ex.c:317:19:HAL_TIMEx_HallSensor_Start 10 +stm32f3xx_hal_tim_ex.c:371:19:HAL_TIMEx_HallSensor_Stop 3 +stm32f3xx_hal_tim_ex.c:399:19:HAL_TIMEx_HallSensor_Start_IT 10 +stm32f3xx_hal_tim_ex.c:456:19:HAL_TIMEx_HallSensor_Stop_IT 3 +stm32f3xx_hal_tim_ex.c:489:19:HAL_TIMEx_HallSensor_Start_DMA 13 +stm32f3xx_hal_tim_ex.c:565:19:HAL_TIMEx_HallSensor_Stop_DMA 3 +stm32f3xx_hal_tim_ex.c:627:19:HAL_TIMEx_OCN_Start 13 +stm32f3xx_hal_tim_ex.c:678:19:HAL_TIMEx_OCN_Stop 8 +stm32f3xx_hal_tim_ex.c:710:19:HAL_TIMEx_OCN_Start_IT 18 +stm32f3xx_hal_tim_ex.c:797:19:HAL_TIMEx_OCN_Stop_IT 14 +stm32f3xx_hal_tim_ex.c:872:19:HAL_TIMEx_OCN_Start_DMA 27 +stm32f3xx_hal_tim_ex.c:1010:19:HAL_TIMEx_OCN_Stop_DMA 13 +stm32f3xx_hal_tim_ex.c:1100:19:HAL_TIMEx_PWMN_Start 13 +stm32f3xx_hal_tim_ex.c:1150:19:HAL_TIMEx_PWMN_Stop 8 +stm32f3xx_hal_tim_ex.c:1182:19:HAL_TIMEx_PWMN_Start_IT 18 +stm32f3xx_hal_tim_ex.c:1268:19:HAL_TIMEx_PWMN_Stop_IT 14 +stm32f3xx_hal_tim_ex.c:1343:19:HAL_TIMEx_PWMN_Start_DMA 27 +stm32f3xx_hal_tim_ex.c:1481:19:HAL_TIMEx_PWMN_Stop_DMA 13 +stm32f3xx_hal_tim_ex.c:1572:19:HAL_TIMEx_OnePulseN_Start 6 +stm32f3xx_hal_tim_ex.c:1621:19:HAL_TIMEx_OnePulseN_Stop 6 +stm32f3xx_hal_tim_ex.c:1660:19:HAL_TIMEx_OnePulseN_Start_IT 6 +stm32f3xx_hal_tim_ex.c:1715:19:HAL_TIMEx_OnePulseN_Stop_IT 6 +stm32f3xx_hal_tim_ex.c:1795:19:HAL_TIMEx_ConfigCommutEvent 6 +stm32f3xx_hal_tim_ex.c:1851:19:HAL_TIMEx_ConfigCommutEvent_IT 6 +stm32f3xx_hal_tim_ex.c:1908:19:HAL_TIMEx_ConfigCommutEvent_DMA 6 +stm32f3xx_hal_tim_ex.c:1957:19:HAL_TIMEx_MasterConfigSynchronization 6 +stm32f3xx_hal_tim_ex.c:2032:19:HAL_TIMEx_ConfigBreakDeadTime 3 +stm32f3xx_hal_tim_ex.c:2177:19:HAL_TIMEx_RemapConfig 2 +stm32f3xx_hal_tim_ex.c:2205:19:HAL_TIMEx_GroupChannel5 2 +stm32f3xx_hal_tim_ex.c:2256:13:HAL_TIMEx_CommutCallback 1 +stm32f3xx_hal_tim_ex.c:2270:13:HAL_TIMEx_CommutHalfCpltCallback 1 +stm32f3xx_hal_tim_ex.c:2285:13:HAL_TIMEx_BreakCallback 1 +stm32f3xx_hal_tim_ex.c:2301:13:HAL_TIMEx_Break2Callback 1 +stm32f3xx_hal_tim_ex.c:2335:22:HAL_TIMEx_HallSensor_GetState 1 +stm32f3xx_hal_tim_ex.c:2350:29:HAL_TIMEx_GetChannelNState 4 +stm32f3xx_hal_tim_ex.c:2379:6:TIMEx_DMACommutationCplt 1 +stm32f3xx_hal_tim_ex.c:2398:6:TIMEx_DMACommutationHalfCplt 1 +stm32f3xx_hal_tim_ex.c:2418:13:TIM_DMADelayPulseNCplt 7 +stm32f3xx_hal_tim_ex.c:2468:13:TIM_DMAErrorCCxN 4 +stm32f3xx_hal_tim_ex.c:2513:13:TIM_CCxNChannelCmd 1 diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.d b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.d new file mode 100644 index 0000000..f703138 --- /dev/null +++ b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.d @@ -0,0 +1,56 @@ +Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o: \ + ../Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \ + ../Core/Inc/stm32f3xx_hal_conf.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h \ + ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: +../Core/Inc/stm32f3xx_hal_conf.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h: +../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.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/Device/ST/STM32F3xx/Include/system_stm32f3xx.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h: +../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h: diff --git a/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o b/Debug/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..1f5132a84212aaff74be34caf63a7119b4bdeb02 GIT binary patch literal 908208 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

  3. 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�>9+~nmO*5r-^J#XkLZ1q%=PrPIH003l?bZcq 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

    =B5Iww9DfmP=swOd}2K$t`hfQR7j;5Ylu`eD) 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%0A%nGkI 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