From c2367adb65770f5ef7242af806e5cd49aadd1fac Mon Sep 17 00:00:00 2001 From: kevin Date: Tue, 5 Apr 2022 18:14:42 +0800 Subject: [PATCH] updata pcb --- .DS_Store | Bin 0 -> 6148 bytes Morse_code_PCB/#auto_saved_files# | 1 + Morse_code_PCB/Morse_code_PCB.kicad_sch | 678 +- stm32f103/.cproject | 170 + stm32f103/.mxproject | 25 + stm32f103/.project | 32 + stm32f103/.settings/language.settings.xml | 27 + .../.settings/stm32cubeide.project.prefs | 4 + stm32f103/Core/Inc/main.h | 71 + stm32f103/Core/Inc/stm32f1xx_hal_conf.h | 391 + stm32f103/Core/Inc/stm32f1xx_it.h | 69 + stm32f103/Core/Src/main.c | 192 + stm32f103/Core/Src/stm32f1xx_hal_msp.c | 88 + stm32f103/Core/Src/stm32f1xx_it.c | 205 + stm32f103/Core/Src/syscalls.c | 156 + stm32f103/Core/Src/sysmem.c | 80 + stm32f103/Core/Src/system_stm32f1xx.c | 408 + .../Core/Startup/startup_stm32f103c8tx.s | 365 + stm32f103/Debug/Core/Src/main.d | 69 + stm32f103/Debug/Core/Src/main.o | Bin 0 -> 701848 bytes stm32f103/Debug/Core/Src/main.su | 4 + stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.d | 69 + stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.o | Bin 0 -> 699672 bytes stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.su | 1 + stm32f103/Debug/Core/Src/stm32f1xx_it.d | 72 + stm32f103/Debug/Core/Src/stm32f1xx_it.o | Bin 0 -> 701352 bytes stm32f103/Debug/Core/Src/stm32f1xx_it.su | 9 + stm32f103/Debug/Core/Src/subdir.mk | 35 + stm32f103/Debug/Core/Src/syscalls.d | 1 + stm32f103/Debug/Core/Src/syscalls.o | Bin 0 -> 81452 bytes stm32f103/Debug/Core/Src/syscalls.su | 18 + stm32f103/Debug/Core/Src/sysmem.d | 1 + stm32f103/Debug/Core/Src/sysmem.o | Bin 0 -> 51368 bytes stm32f103/Debug/Core/Src/sysmem.su | 1 + stm32f103/Debug/Core/Src/system_stm32f1xx.d | 67 + stm32f103/Debug/Core/Src/system_stm32f1xx.o | Bin 0 -> 700548 bytes stm32f103/Debug/Core/Src/system_stm32f1xx.su | 2 + .../Core/Startup/startup_stm32f103c8tx.d | 2 + .../Core/Startup/startup_stm32f103c8tx.o | Bin 0 -> 5248 bytes stm32f103/Debug/Core/Startup/subdir.mk | 20 + .../STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d | 68 + .../STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o | Bin 0 -> 711756 bytes .../STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su | 25 + .../Src/stm32f1xx_hal_cortex.d | 68 + .../Src/stm32f1xx_hal_cortex.o | Bin 0 -> 715512 bytes .../Src/stm32f1xx_hal_cortex.su | 29 + .../Src/stm32f1xx_hal_dma.d | 68 + .../Src/stm32f1xx_hal_dma.o | Bin 0 -> 710728 bytes .../Src/stm32f1xx_hal_dma.su | 13 + .../Src/stm32f1xx_hal_exti.d | 68 + .../Src/stm32f1xx_hal_exti.o | Bin 0 -> 705284 bytes .../Src/stm32f1xx_hal_exti.su | 9 + .../Src/stm32f1xx_hal_flash.d | 68 + .../Src/stm32f1xx_hal_flash.o | Bin 0 -> 708056 bytes .../Src/stm32f1xx_hal_flash.su | 14 + .../Src/stm32f1xx_hal_flash_ex.d | 68 + .../Src/stm32f1xx_hal_flash_ex.o | Bin 0 -> 711304 bytes .../Src/stm32f1xx_hal_flash_ex.su | 16 + .../Src/stm32f1xx_hal_gpio.d | 68 + .../Src/stm32f1xx_hal_gpio.o | Bin 0 -> 706708 bytes .../Src/stm32f1xx_hal_gpio.su | 8 + .../Src/stm32f1xx_hal_gpio_ex.d | 68 + .../Src/stm32f1xx_hal_gpio_ex.o | Bin 0 -> 700056 bytes .../Src/stm32f1xx_hal_gpio_ex.su | 3 + .../Src/stm32f1xx_hal_pwr.d | 68 + .../Src/stm32f1xx_hal_pwr.o | Bin 0 -> 708704 bytes .../Src/stm32f1xx_hal_pwr.su | 18 + .../Src/stm32f1xx_hal_rcc.d | 68 + .../Src/stm32f1xx_hal_rcc.o | Bin 0 -> 712412 bytes .../Src/stm32f1xx_hal_rcc.su | 15 + .../Src/stm32f1xx_hal_rcc_ex.d | 68 + .../Src/stm32f1xx_hal_rcc_ex.o | Bin 0 -> 702840 bytes .../Src/stm32f1xx_hal_rcc_ex.su | 3 + .../Src/stm32f1xx_hal_tim.d | 68 + .../Src/stm32f1xx_hal_tim.o | Bin 0 -> 698188 bytes .../Src/stm32f1xx_hal_tim.su | 0 .../Src/stm32f1xx_hal_tim_ex.d | 68 + .../Src/stm32f1xx_hal_tim_ex.o | Bin 0 -> 698200 bytes .../Src/stm32f1xx_hal_tim_ex.su | 0 .../STM32F1xx_HAL_Driver/Src/subdir.mk | 56 + stm32f103/Debug/makefile | 100 + stm32f103/Debug/objects.list | 20 + stm32f103/Debug/objects.mk | 9 + stm32f103/Debug/sources.mk | 26 + stm32f103/Debug/stm32f103.bin | Bin 0 -> 3676 bytes stm32f103/Debug/stm32f103.elf | Bin 0 -> 765760 bytes stm32f103/Debug/stm32f103.list | 2606 ++++ stm32f103/Debug/stm32f103.map | 2353 ++++ .../Device/ST/STM32F1xx/Include/stm32f103xb.h | 10242 ++++++++++++++++ .../Device/ST/STM32F1xx/Include/stm32f1xx.h | 275 + .../ST/STM32F1xx/Include/system_stm32f1xx.h | 98 + stm32f103/Drivers/CMSIS/Include/cmsis_armcc.h | 865 ++ .../Drivers/CMSIS/Include/cmsis_armclang.h | 1869 +++ .../Drivers/CMSIS/Include/cmsis_compiler.h | 266 + stm32f103/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 +++++ stm32f103/Drivers/CMSIS/Include/core_cm0.h | 949 ++ .../Drivers/CMSIS/Include/core_cm0plus.h | 1083 ++ stm32f103/Drivers/CMSIS/Include/core_cm1.h | 976 ++ stm32f103/Drivers/CMSIS/Include/core_cm23.h | 1993 +++ stm32f103/Drivers/CMSIS/Include/core_cm3.h | 1941 +++ stm32f103/Drivers/CMSIS/Include/core_cm33.h | 3002 +++++ stm32f103/Drivers/CMSIS/Include/core_cm4.h | 2129 ++++ stm32f103/Drivers/CMSIS/Include/core_cm7.h | 2671 ++++ stm32f103/Drivers/CMSIS/Include/core_sc000.h | 1022 ++ stm32f103/Drivers/CMSIS/Include/core_sc300.h | 1915 +++ stm32f103/Drivers/CMSIS/Include/mpu_armv7.h | 270 + stm32f103/Drivers/CMSIS/Include/mpu_armv8.h | 333 + stm32f103/Drivers/CMSIS/Include/tz_context.h | 70 + .../Inc/Legacy/stm32_hal_legacy.h | 3783 ++++++ .../STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h | 358 + .../Inc/stm32f1xx_hal_cortex.h | 410 + .../Inc/stm32f1xx_hal_def.h | 210 + .../Inc/stm32f1xx_hal_dma.h | 457 + .../Inc/stm32f1xx_hal_dma_ex.h | 277 + .../Inc/stm32f1xx_hal_exti.h | 320 + .../Inc/stm32f1xx_hal_flash.h | 328 + .../Inc/stm32f1xx_hal_flash_ex.h | 786 ++ .../Inc/stm32f1xx_hal_gpio.h | 308 + .../Inc/stm32f1xx_hal_gpio_ex.h | 894 ++ .../Inc/stm32f1xx_hal_pwr.h | 388 + .../Inc/stm32f1xx_hal_rcc.h | 1378 +++ .../Inc/stm32f1xx_hal_rcc_ex.h | 1908 +++ .../Inc/stm32f1xx_hal_tim.h | 2129 ++++ .../Inc/stm32f1xx_hal_tim_ex.h | 262 + .../STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c | 606 + .../Src/stm32f1xx_hal_cortex.c | 505 + .../Src/stm32f1xx_hal_dma.c | 899 ++ .../Src/stm32f1xx_hal_exti.c | 555 + .../Src/stm32f1xx_hal_flash.c | 967 ++ .../Src/stm32f1xx_hal_flash_ex.c | 1127 ++ .../Src/stm32f1xx_hal_gpio.c | 587 + .../Src/stm32f1xx_hal_gpio_ex.c | 127 + .../Src/stm32f1xx_hal_pwr.c | 621 + .../Src/stm32f1xx_hal_rcc.c | 1403 +++ .../Src/stm32f1xx_hal_rcc_ex.c | 863 ++ .../Src/stm32f1xx_hal_tim.c | 7483 +++++++++++ .../Src/stm32f1xx_hal_tim_ex.c | 2335 ++++ stm32f103/STM32F103C8TX_FLASH.ld | 186 + stm32f103/stm32f103.ioc | 100 + 143 files changed, 81922 insertions(+), 51 deletions(-) create mode 100644 .DS_Store create mode 100644 Morse_code_PCB/#auto_saved_files# create mode 100644 stm32f103/.cproject create mode 100644 stm32f103/.mxproject create mode 100644 stm32f103/.project create mode 100644 stm32f103/.settings/language.settings.xml create mode 100644 stm32f103/.settings/stm32cubeide.project.prefs create mode 100644 stm32f103/Core/Inc/main.h create mode 100644 stm32f103/Core/Inc/stm32f1xx_hal_conf.h create mode 100644 stm32f103/Core/Inc/stm32f1xx_it.h create mode 100644 stm32f103/Core/Src/main.c create mode 100644 stm32f103/Core/Src/stm32f1xx_hal_msp.c create mode 100644 stm32f103/Core/Src/stm32f1xx_it.c create mode 100644 stm32f103/Core/Src/syscalls.c create mode 100644 stm32f103/Core/Src/sysmem.c create mode 100644 stm32f103/Core/Src/system_stm32f1xx.c create mode 100644 stm32f103/Core/Startup/startup_stm32f103c8tx.s create mode 100644 stm32f103/Debug/Core/Src/main.d create mode 100644 stm32f103/Debug/Core/Src/main.o create mode 100644 stm32f103/Debug/Core/Src/main.su create mode 100644 stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.d create mode 100644 stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.o create mode 100644 stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.su create mode 100644 stm32f103/Debug/Core/Src/stm32f1xx_it.d create mode 100644 stm32f103/Debug/Core/Src/stm32f1xx_it.o create mode 100644 stm32f103/Debug/Core/Src/stm32f1xx_it.su create mode 100644 stm32f103/Debug/Core/Src/subdir.mk create mode 100644 stm32f103/Debug/Core/Src/syscalls.d create mode 100644 stm32f103/Debug/Core/Src/syscalls.o create mode 100644 stm32f103/Debug/Core/Src/syscalls.su create mode 100644 stm32f103/Debug/Core/Src/sysmem.d create mode 100644 stm32f103/Debug/Core/Src/sysmem.o create mode 100644 stm32f103/Debug/Core/Src/sysmem.su create mode 100644 stm32f103/Debug/Core/Src/system_stm32f1xx.d create mode 100644 stm32f103/Debug/Core/Src/system_stm32f1xx.o create mode 100644 stm32f103/Debug/Core/Src/system_stm32f1xx.su create mode 100644 stm32f103/Debug/Core/Startup/startup_stm32f103c8tx.d create mode 100644 stm32f103/Debug/Core/Startup/startup_stm32f103c8tx.o create mode 100644 stm32f103/Debug/Core/Startup/subdir.mk create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.su create mode 100644 stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk create mode 100644 stm32f103/Debug/makefile create mode 100644 stm32f103/Debug/objects.list create mode 100644 stm32f103/Debug/objects.mk create mode 100644 stm32f103/Debug/sources.mk create mode 100755 stm32f103/Debug/stm32f103.bin create mode 100755 stm32f103/Debug/stm32f103.elf create mode 100644 stm32f103/Debug/stm32f103.list create mode 100644 stm32f103/Debug/stm32f103.map create mode 100644 stm32f103/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h create mode 100644 stm32f103/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h create mode 100644 stm32f103/Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h create mode 100644 stm32f103/Drivers/CMSIS/Include/cmsis_armcc.h create mode 100644 stm32f103/Drivers/CMSIS/Include/cmsis_armclang.h create mode 100644 stm32f103/Drivers/CMSIS/Include/cmsis_compiler.h create mode 100644 stm32f103/Drivers/CMSIS/Include/cmsis_gcc.h create mode 100644 stm32f103/Drivers/CMSIS/Include/cmsis_iccarm.h create mode 100644 stm32f103/Drivers/CMSIS/Include/cmsis_version.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_armv8mbl.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_armv8mml.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_cm0.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_cm0plus.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_cm1.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_cm23.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_cm3.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_cm33.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_cm4.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_cm7.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_sc000.h create mode 100644 stm32f103/Drivers/CMSIS/Include/core_sc300.h create mode 100644 stm32f103/Drivers/CMSIS/Include/mpu_armv7.h create mode 100644 stm32f103/Drivers/CMSIS/Include/mpu_armv8.h create mode 100644 stm32f103/Drivers/CMSIS/Include/tz_context.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c create mode 100644 stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c create mode 100644 stm32f103/STM32F103C8TX_FLASH.ld create mode 100644 stm32f103/stm32f103.ioc diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d1327778e0e2f0a9273ec2b7f351e3bc14530170 GIT binary patch literal 6148 zcmeHK&ubGw6n>M&Cb3p>uwX%9!JCAdG^VlilBP+aphdbt5tW$DE^TnL6S5lvhCpr} z^z6Uk*|YzHe~REm{pLqCn`osJM8Z6H^SzmQ-)#1q%*+lEvFgAr5M_xd4HuZajN&&Y z`i0L~LbqH2GC9T}*;GI9dE4>lvQ2|gz$oy)DInHvitf_^?NObk)-QL^BesQI_{Mi> zh={Jz1LD-DkUVNq8?h^+hZv!%*8WfKhx2fqVc2tg$^Gc`{7x9<^PgE_DS2r*1zSly zw@>)cj#|+mthV}3MXkZP@0`Xh=TXNSHnZ3Eco4NZf!CLWj_V=i+2c;&@?n(^0ymUg zTXke$&FuPUv{@|WtU@_I&RL^Eeyg0bO82(L<4k(()}5WB=1adD@V8O|V%YAat!g}l zcL>fD=#||Md>$MlPmHm4mY9$?Pa9N%m+5s}T6Poc>1oN(5hie#Y8bH&Mwi?fhWPE% zj4Y-wLSB(JX&+B2!uRR!uSuQZe?2dMQ6}`SLd{I-^6~A)xUuTJIsEcudq%|fnD@lg zYKrA{xm(jKAWiA@+Kq3Y#OjOX^iB$Pn|FI?zo_XyaeC#V0~x+iz$mbA3W)u|f(xu@ zoG6rA2MT!w04C8a4YBxW5FATmMdL&vdSFaZfr`rX6@w`{+AW<|(Ku14=-5PMm6(1q z(>D|*pN{b@-Ct2?N~3^LAg;iYs%FLcU;p#{KTa|=qkvIhp%h@rnq8~nmGs#<_j2N_ uwcsz{!bILgp`@VD$FU5=QG6XP4SkjffEA4sg=m494*@BIDU1UDRDmB}bNi$K literal 0 HcmV?d00001 diff --git a/Morse_code_PCB/#auto_saved_files# b/Morse_code_PCB/#auto_saved_files# new file mode 100644 index 0000000..45ec3df --- /dev/null +++ b/Morse_code_PCB/#auto_saved_files# @@ -0,0 +1 @@ +/Users/wuwenfeng/Documents/morse_code_trainer/Morse_code_PCB/_autosave-Morse_code_PCB.kicad_sch diff --git a/Morse_code_PCB/Morse_code_PCB.kicad_sch b/Morse_code_PCB/Morse_code_PCB.kicad_sch index 751511b..2787384 100644 --- a/Morse_code_PCB/Morse_code_PCB.kicad_sch +++ b/Morse_code_PCB/Morse_code_PCB.kicad_sch @@ -2167,6 +2167,9 @@ (junction (at 331.47 195.58) (diameter 0) (color 0 0 0 0) (uuid 3f245c18-4bca-4b2e-8839-35198b27b579) ) + (junction (at 180.34 109.22) (diameter 0) (color 0 0 0 0) + (uuid 4034be23-1868-478e-b4a0-46f0fcc6c5c6) + ) (junction (at 64.77 91.44) (diameter 0) (color 0 0 0 0) (uuid 407c76ee-bebb-409c-a065-130d56d59030) ) @@ -2200,6 +2203,12 @@ (junction (at 44.45 111.125) (diameter 0) (color 0 0 0 0) (uuid 5bc8692b-aaf6-4453-8f03-614e77e67d00) ) + (junction (at 223.52 81.28) (diameter 0) (color 0 0 0 0) + (uuid 5f7dc1e4-f204-4ec9-b7af-8831ee6e3899) + ) + (junction (at 151.13 72.39) (diameter 0) (color 0 0 0 0) + (uuid 652d51a2-e959-49ad-9b49-1355e352c1e1) + ) (junction (at 108.585 111.125) (diameter 0) (color 0 0 0 0) (uuid 6cd92f79-dc13-45f9-86ca-570bc1c9be53) ) @@ -2212,33 +2221,57 @@ (junction (at 82.55 111.125) (diameter 0) (color 0 0 0 0) (uuid 7421c8de-fa2c-4b3f-9c96-411069890256) ) + (junction (at 186.69 72.39) (diameter 0) (color 0 0 0 0) + (uuid 74d0c053-ac1f-48a2-bca1-66f7a9eb5f0a) + ) (junction (at 66.04 19.685) (diameter 0) (color 0 0 0 0) (uuid 78e6145c-58bd-4b87-b77b-c9e34c97b75f) ) + (junction (at 201.93 67.31) (diameter 0) (color 0 0 0 0) + (uuid 844f91d4-a552-4c1f-a6d4-38f4e57e75f5) + ) (junction (at 349.885 96.52) (diameter 0) (color 0 0 0 0) (uuid 845c3758-3f28-4d50-a546-df60da471946) ) (junction (at 358.775 105.41) (diameter 0) (color 0 0 0 0) (uuid 90619477-3c43-415e-a3a8-b8303f59ea9e) ) + (junction (at 220.98 157.48) (diameter 0) (color 0 0 0 0) + (uuid 91d92ea2-6d2d-4a9c-8ddf-ba3bddb27cd0) + ) + (junction (at 177.8 90.17) (diameter 0) (color 0 0 0 0) + (uuid 936a315d-79de-480f-a556-c2d187ce9b55) + ) (junction (at 367.03 177.8) (diameter 0) (color 0 0 0 0) (uuid 93f80029-d6d4-4f02-9f20-19a5f553199e) ) (junction (at 82.55 121.285) (diameter 0) (color 0 0 0 0) (uuid 95fb789f-d4df-4f99-ba1c-ca81213aa7af) ) + (junction (at 180.34 101.6) (diameter 0) (color 0 0 0 0) + (uuid 9a10bf82-4f52-405f-ad92-537fa4e3ac52) + ) (junction (at 359.41 38.1) (diameter 0) (color 0 0 0 0) (uuid 9a2d9092-08f4-4605-9911-facfa3d14ae4) ) + (junction (at 223.52 72.39) (diameter 0) (color 0 0 0 0) + (uuid a2c6a3b1-91d4-40f7-9e60-eae95359afdc) + ) (junction (at 29.845 90.17) (diameter 0) (color 0 0 0 0) (uuid a3356943-2334-400a-a1a6-879da1578786) ) (junction (at 91.44 111.125) (diameter 0) (color 0 0 0 0) (uuid a342b7c2-c9b2-4617-9c15-38c12c1851ea) ) + (junction (at 167.64 90.17) (diameter 0) (color 0 0 0 0) + (uuid a40416ba-ca0b-4c30-877f-b171f2631caa) + ) (junction (at 358.775 62.865) (diameter 0) (color 0 0 0 0) (uuid a581af87-fb67-4eba-b1f1-03a2b62fc5a8) ) + (junction (at 218.44 157.48) (diameter 0) (color 0 0 0 0) + (uuid b5bb9203-0a0f-4e7c-bfc6-a87d3990d40a) + ) (junction (at 58.42 91.44) (diameter 0) (color 0 0 0 0) (uuid baab4eb5-3a6d-4a45-a4a7-5298e8ca8e3f) ) @@ -2254,6 +2287,18 @@ (junction (at 304.8 144.78) (diameter 0) (color 0 0 0 0) (uuid c9b835e5-4271-4644-80d7-f83e9052ee49) ) + (junction (at 187.96 67.31) (diameter 0) (color 0 0 0 0) + (uuid cceda4b7-e939-4400-b029-fff512bf1acb) + ) + (junction (at 167.64 109.22) (diameter 0) (color 0 0 0 0) + (uuid d1eeda82-db62-43c2-af4d-75c78a7aaeb7) + ) + (junction (at 177.8 82.55) (diameter 0) (color 0 0 0 0) + (uuid da6270fb-b12d-4427-802d-0c1d27463e11) + ) + (junction (at 223.52 157.48) (diameter 0) (color 0 0 0 0) + (uuid dd23a43d-8815-4c73-a56c-9d2faa660a10) + ) (junction (at 334.01 144.78) (diameter 0) (color 0 0 0 0) (uuid dd2fa474-3bd0-4e48-ba7d-adac298e98ff) ) @@ -2299,6 +2344,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 03abac70-4aa2-40a8-800b-e7db30c3e62b) ) + (wire (pts (xy 185.42 82.55) (xy 177.8 82.55)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 03b8dbef-22de-4eba-92a2-7dcb41cdc738) + ) (wire (pts (xy 388.62 195.58) (xy 372.11 195.58)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 0457f909-3c09-43e2-918e-f9bbf0a147aa) @@ -2323,6 +2372,14 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 0a62cbae-1c9f-48cd-8d93-d9df88b13243) ) + (wire (pts (xy 190.5 72.39) (xy 186.69 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0bc55cbe-05a2-4fb1-ae8e-eccb45a64e9a) + ) + (wire (pts (xy 186.69 67.31) (xy 187.96 67.31)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0bc76391-9a99-4874-8682-7ae8b550fcdb) + ) (wire (pts (xy 58.42 91.44) (xy 64.77 91.44)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 10165703-da8a-4933-bd03-1de83ece570c) @@ -2331,10 +2388,22 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 10b82a86-6374-49b1-bca4-16ea3b40e138) ) + (wire (pts (xy 167.64 101.6) (xy 167.64 109.22)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 11044acc-5b97-4b8a-bcf3-4cbb66744c81) + ) (wire (pts (xy 366.395 73.025) (xy 374.015 73.025)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 11af898b-5f2c-4dd5-8860-50e1fc715034) ) + (wire (pts (xy 218.44 77.47) (xy 218.44 81.28)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 12e8c5e6-f476-43e1-941b-0468ea284dc3) + ) + (wire (pts (xy 193.04 106.68) (xy 205.74 106.68)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 13e9869c-a924-4929-985a-684024f0377e) + ) (wire (pts (xy 44.45 130.175) (xy 44.45 130.81)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 14c4cd63-d9b6-4c72-b4e4-51af2050d699) @@ -2383,6 +2452,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 22767ef6-5abb-4b94-b3a6-2a41c2a867dc) ) + (wire (pts (xy 187.96 67.31) (xy 189.23 67.31)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 22d4b765-b917-427c-a567-113773e1520b) + ) (wire (pts (xy 368.3 177.8) (xy 368.3 184.15)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 25dd3369-bdb8-45f0-a44b-30cf56766e97) @@ -2391,6 +2464,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2621949b-021c-4aa7-80f5-adf65ed8ee38) ) + (wire (pts (xy 220.98 157.48) (xy 223.52 157.48)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 274444d1-8da6-4522-aafe-67fa318426a7) + ) (wire (pts (xy 54.61 181.61) (xy 55.88 181.61)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 29388bb3-e9f3-4856-a56f-8adb4c0b18fc) @@ -2439,6 +2516,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 38c0ad0b-4b5c-44b7-800e-2e1f79aadedf) ) + (wire (pts (xy 175.26 90.17) (xy 177.8 90.17)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3a8d36b7-ae2b-4099-920c-31906ad65e30) + ) (wire (pts (xy 368.3 177.8) (xy 373.38 177.8)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 3e9c6e9e-971e-4087-959d-7cf1486899a2) @@ -2487,6 +2568,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 4c5b9fba-d577-48c0-bcc3-ac1798098e41) ) + (wire (pts (xy 228.6 72.39) (xy 228.6 73.66)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 4fb261fa-de6a-4a33-899a-d29ad68fb27f) + ) (wire (pts (xy 314.96 186.69) (xy 318.77 186.69)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 501196fc-7aa4-4f6a-9072-47f3728776a1) @@ -2499,6 +2584,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 515bebc9-1ab2-413f-b2a9-61ad67eff9cf) ) + (wire (pts (xy 185.42 96.52) (xy 185.42 82.55)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 516ee21d-51fd-46e8-b0a8-d5159065aa7f) + ) (wire (pts (xy 40.64 36.83) (xy 45.085 36.83)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 52195a4d-dade-4f7a-a6f5-0a59caef567f) @@ -2515,6 +2604,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 53b33f89-0a5e-45cd-bc1f-5aac82aab89e) ) + (wire (pts (xy 177.8 99.06) (xy 205.74 99.06)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 53cfc117-6bb0-4b9a-9aaa-d2c35450aa93) + ) (wire (pts (xy 110.49 179.07) (xy 116.84 179.07)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 54b51d31-2349-4972-8c28-b2ae1a316391) @@ -2539,6 +2632,18 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 5f33571b-b664-4efb-bb79-624f452c152d) ) + (wire (pts (xy 223.52 72.39) (xy 228.6 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 61b1ac70-6d06-4c6c-96d4-a7b8dedb8c29) + ) + (wire (pts (xy 186.69 91.44) (xy 186.69 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 62cb486d-0a66-4e74-a967-ed281dab24f3) + ) + (wire (pts (xy 179.07 67.31) (xy 151.13 67.31)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 62ec4720-71ea-4744-89b7-9377af96acfc) + ) (wire (pts (xy 388.62 172.72) (xy 392.43 172.72)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 64b1126b-63bd-4ad7-bee5-a3a1d4c3e6cb) @@ -2551,6 +2656,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 680953f1-bab2-45b5-97c0-9a10d74a0590) ) + (wire (pts (xy 180.34 109.22) (xy 205.74 109.22)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 69865d57-3d25-43a8-a481-21b13df58cfa) + ) (wire (pts (xy 299.72 195.58) (xy 304.8 195.58)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 6c206581-e0fd-461b-9470-b056303d171d) @@ -2575,6 +2684,14 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 75bb07c2-c6c1-43cd-a0fd-4f4e2975c33d) ) + (wire (pts (xy 187.96 67.31) (xy 187.96 86.36)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 75c1e7d1-a028-4ae6-a445-cb97b9e27a61) + ) + (wire (pts (xy 175.26 72.39) (xy 151.13 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7736816f-eb60-4616-b87b-88e78b8485f7) + ) (wire (pts (xy 344.805 52.07) (xy 354.33 52.07)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 77f17d9e-57f8-4064-b6d1-4632032cc2e5) @@ -2595,6 +2712,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7aa994e8-1f73-4fe7-9ad9-dd1582ab51c6) ) + (wire (pts (xy 218.44 157.48) (xy 218.44 160.02)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7b59be76-6abd-450b-ae11-3a3d7e412e8c) + ) (wire (pts (xy 64.77 139.065) (xy 67.31 139.065)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7b80e310-d7c9-442d-977f-2d38e16d532f) @@ -2615,6 +2736,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8443c336-3a43-46f3-87e5-9cf1be3b6f60) ) + (wire (pts (xy 223.52 81.28) (xy 226.06 81.28)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8654a6be-29d5-4462-8fb4-039f8b77920f) + ) (wire (pts (xy 359.41 172.72) (xy 359.41 173.99)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8784d10c-0ac0-4c4e-8e62-fedd2301d30c) @@ -2663,6 +2788,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 976da33c-3cb7-4adc-8d16-0ee063b49e44) ) + (wire (pts (xy 205.74 91.44) (xy 186.69 91.44)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 98ec82c1-07c1-4873-8d25-715c5efce5bc) + ) (wire (pts (xy 41.275 17.145) (xy 41.275 20.955)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 997a269f-22a9-4d19-b924-2b46397b1f95) @@ -2671,6 +2800,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 9b865d01-83b4-4201-bb4c-d8e471b70f2c) ) + (wire (pts (xy 223.52 72.39) (xy 223.52 81.28)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 9c70d6be-7d44-4e91-93dc-68bee7b7c2c1) + ) (wire (pts (xy 344.805 54.61) (xy 359.41 54.61)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 9d33a0fe-c65c-4d11-a8ed-96e96a4dcd90) @@ -2691,6 +2824,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a2feca1e-932e-4cc6-9f65-40c949995c45) ) + (wire (pts (xy 175.26 101.6) (xy 180.34 101.6)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a310a299-792a-4cd4-8ccf-3ba11bff76c5) + ) (wire (pts (xy 359.41 176.53) (xy 359.41 177.8)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a3b24ead-f6af-43c6-88c6-e117c893951d) @@ -2715,6 +2852,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a673f924-516a-4093-be23-cbdb84fae0b9) ) + (wire (pts (xy 223.52 157.48) (xy 226.06 157.48)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a7a2dedf-d5b3-4d61-bb88-0ee29fdb6b09) + ) (wire (pts (xy 368.3 195.58) (xy 363.22 195.58)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a961002a-5ca2-4064-b8d4-a475c2f7d7db) @@ -2739,6 +2880,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ae6aa9bf-6413-4d22-b3d3-d822148f8a9f) ) + (wire (pts (xy 186.69 72.39) (xy 182.88 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid aeaba207-434c-4889-af8f-7e7a0cdb2151) + ) (wire (pts (xy 102.87 181.61) (xy 102.87 184.15)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid aff1b121-9f3f-4b34-a75b-b8b8a0f92296) @@ -2783,14 +2928,30 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid b9b40065-3d7b-41f6-8610-065fcf73efc1) ) + (wire (pts (xy 167.64 82.55) (xy 167.64 90.17)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid bc6da79c-2b1d-4879-b809-80ed1e9bba97) + ) (wire (pts (xy 363.22 158.75) (xy 363.22 144.78)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid bce6dad0-f8bf-4037-a62e-5b1bec09552e) ) + (wire (pts (xy 204.47 67.31) (xy 201.93 67.31)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid bde63d47-aa0f-4104-8e41-f8b3a07a0243) + ) + (wire (pts (xy 217.17 77.47) (xy 218.44 77.47)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid bf5020c9-3fde-4715-8cad-ddb124053c64) + ) (wire (pts (xy 44.45 120.65) (xy 55.245 120.65)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c027e5a8-26fc-43df-910b-36c2e585ee3b) ) + (wire (pts (xy 201.93 72.39) (xy 198.12 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c161b3a6-ece8-414a-94d3-106b7ca7e828) + ) (wire (pts (xy 70.485 77.47) (xy 70.485 83.82)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c1c14eb9-a3dd-4b08-82c2-f6d9b74ef146) @@ -2807,6 +2968,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c8ca2977-60c6-47e7-ae16-c75429d5987c) ) + (wire (pts (xy 220.98 81.28) (xy 223.52 81.28)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c8d5ca8f-4f26-4380-91ec-7bfbbed50503) + ) (wire (pts (xy 364.49 43.18) (xy 373.38 43.18)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c9116b8d-e168-44aa-8187-cd8e4040229e) @@ -2815,10 +2980,18 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c92b0571-af2e-4f88-b355-e1c2d9413dfa) ) + (wire (pts (xy 201.93 67.31) (xy 196.85 67.31)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c9b68851-2d0d-4d63-b927-2a439e962bcb) + ) (wire (pts (xy 334.01 144.78) (xy 363.22 144.78)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ca5bacaf-a92d-4025-9056-338079bb613c) ) + (wire (pts (xy 201.93 67.31) (xy 201.93 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid cb49a849-396b-414b-85fa-2e86078468bb) + ) (wire (pts (xy 299.72 158.75) (xy 318.77 158.75)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid cb8af6ee-30a1-4b21-829e-e46b552209d7) @@ -2851,6 +3024,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d542ea6c-df3c-4e0a-9abd-2c97b9602607) ) + (wire (pts (xy 218.44 157.48) (xy 220.98 157.48)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d6faca29-6b77-4743-8ebe-3fb18fc5b2d1) + ) (wire (pts (xy 330.835 205.74) (xy 333.375 205.74)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d85f7eea-61c5-46a5-922a-5bc97e055ad9) @@ -2875,6 +3052,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d95aa962-0b90-4788-99cf-a33940d9564f) ) + (wire (pts (xy 205.74 96.52) (xy 185.42 96.52)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid dc71b610-72a0-4250-b3dc-8d4f071275d2) + ) (wire (pts (xy 358.775 78.105) (xy 358.775 82.55)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid dcf5446c-839c-4922-8a75-13578b13320e) @@ -2899,10 +3080,18 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e0f1db80-8fbc-453b-a14f-b14375f82f7e) ) + (wire (pts (xy 187.96 86.36) (xy 205.74 86.36)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e1818785-0232-4dd5-98a7-221af5eecd40) + ) (wire (pts (xy 304.8 144.78) (xy 304.8 148.59)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e2c453b3-700c-4b1e-9eb6-5024769d4fff) ) + (wire (pts (xy 175.26 82.55) (xy 177.8 82.55)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e4deb2aa-5602-4d24-baee-8301e95df3c1) + ) (wire (pts (xy 58.42 82.55) (xy 58.42 83.82)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e54959e2-550e-453f-b43e-e592a638b445) @@ -2911,10 +3100,18 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e8031a32-9082-4f92-873a-2ecff5a5087a) ) + (wire (pts (xy 175.26 109.22) (xy 180.34 109.22)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e90f36e2-0a78-4911-93e6-7c180ac1a0f4) + ) (wire (pts (xy 42.545 111.125) (xy 44.45 111.125)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e9a753ee-f5d5-4742-b8cc-1c57c8da4b59) ) + (wire (pts (xy 177.8 90.17) (xy 177.8 99.06)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e9e7f75c-0c31-4d67-85e0-faf9e10fd3e1) + ) (wire (pts (xy 40.64 36.83) (xy 40.64 36.195)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ea3e1da0-089d-453a-a1b0-75eae3f0d6f2) @@ -2939,10 +3136,18 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ecee3477-ff41-4a3e-8355-a0963b5d128a) ) + (wire (pts (xy 180.34 101.6) (xy 193.04 101.6)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ed45006f-f5bc-4503-b8bc-f66391d7cebf) + ) (wire (pts (xy 347.98 35.56) (xy 354.33 35.56)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ed6dade1-8c85-499e-baa0-8c54adbd3897) ) + (wire (pts (xy 193.04 101.6) (xy 193.04 106.68)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f1400b5a-2718-4c4f-a64c-92d7497e2168) + ) (wire (pts (xy 25.4 59.055) (xy 53.34 59.055)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f27e429d-838d-4b4e-ad6a-96afc97205e2) @@ -2995,6 +3200,10 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (uuid fcf04f82-526f-4453-9fef-86b6bf8f33c8) ) + (wire (pts (xy 151.13 67.31) (xy 151.13 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ff1a083c-c977-4661-85c1-193cfe071ef5) + ) (wire (pts (xy 53.34 59.055) (xy 53.34 57.15)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ffca6732-7af0-4812-9af7-9228ab7b096f) @@ -3021,6 +3230,13 @@ (effects (font (size 1.27 1.27)) (justify right) hide) ) ) + (global_label "RXD" (shape input) (at 238.76 137.16 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 0cce02f0-e9b7-4d03-a5b1-c97fe575737f) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 244.9226 137.0806 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + ) (global_label "BAT_CHG_DET" (shape input) (at 344.17 161.29 0) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify left)) (uuid 0ce72dd4-a162-45ea-a7df-84fd5e648b2b) @@ -3049,6 +3265,13 @@ (effects (font (size 1.27 1.27)) (justify left) hide) ) ) + (global_label "SW_D" (shape input) (at 238.76 147.32 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 16974a66-63ee-4d75-91d2-5bffd655f5b6) + (property "插入图纸页参考" "${INTERSHEET_REFS}" (id 0) (at 246.0717 147.2406 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + ) (global_label "K1_DET" (shape input) (at 78.74 139.065 0) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify left)) (uuid 1c314be9-edd6-4958-bcd8-4c9e80defeb7) @@ -3084,6 +3307,13 @@ (effects (font (size 1.27 1.27)) (justify left) hide) ) ) + (global_label "SW_L" (shape input) (at 86.36 224.79 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 46253482-33a5-4052-9690-5ce30bc0c140) + (property "插入图纸页参考" "${INTERSHEET_REFS}" (id 0) (at 79.2902 224.7106 0) + (effects (font (size 1.27 1.27)) (justify right) hide) + ) + ) (global_label "TXD" (shape input) (at 76.2 26.67 0) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify left)) (uuid 575bb6cd-262c-4b83-a5e2-f6e46a426eee) @@ -3098,13 +3328,6 @@ (effects (font (size 1.27 1.27)) (justify right) hide) ) ) - (global_label "RUN_LED" (shape input) (at 82.55 224.155 180) (fields_autoplaced) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid 5cb1e5ca-f1d1-422a-9dbd-fd73a3eb07d0) - (property "插入图纸页参考" "${INTERSHEET_REFS}" (id 0) (at 71.7912 224.2344 0) - (effects (font (size 1.27 1.27)) (justify right) hide) - ) - ) (global_label "BAT_CHG_DET" (shape input) (at 41.91 88.265 0) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify left)) (uuid 60c25dff-0c84-4969-b2b5-953690273e5f) @@ -3133,6 +3356,20 @@ (effects (font (size 1.27 1.27)) (justify left) hide) ) ) + (global_label "BAT_ADC" (shape input) (at 238.76 114.3 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 6b13a063-2d23-45fb-9290-1cbe3e05c5fe) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 249.0955 114.2206 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + ) + (global_label "IIC_SDL" (shape input) (at 205.74 132.08 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 6da3dc33-2480-46a7-b08f-ac8d522e2764) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 196.3721 132.0006 0) + (effects (font (size 1.27 1.27)) (justify right) hide) + ) + ) (global_label "TXD" (shape input) (at 344.17 166.37 0) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify left)) (uuid 785fe102-6080-4f51-a827-78f4446345c9) @@ -3147,6 +3384,13 @@ (effects (font (size 1.27 1.27)) (justify left) hide) ) ) + (global_label "BAT_CHG_DET" (shape input) (at 238.76 116.84 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 9423c406-ce85-4424-8076-6a17e12492ed) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 253.6917 116.7606 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + ) (global_label "USB_VCC" (shape input) (at 41.275 17.145 0) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify left)) (uuid 9765090e-5ec9-418c-8793-e138a4ca0ee8) @@ -3175,6 +3419,13 @@ (effects (font (size 1.27 1.27)) (justify right) hide) ) ) + (global_label "TXD" (shape input) (at 238.76 139.7 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid a4fec3ec-1ab8-4ce8-9252-31f2a9686605) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 244.6202 139.6206 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + ) (global_label "RXD" (shape input) (at 76.2 29.21 0) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify left)) (uuid aea8ebdd-24cc-48f6-a569-93b1b6a74142) @@ -3196,11 +3447,11 @@ (effects (font (size 1.27 1.27)) (justify left) hide) ) ) - (global_label "PWR_EN" (shape input) (at 82.55 221.615 180) (fields_autoplaced) - (effects (font (size 1.27 1.27)) (justify right)) - (uuid bc32bfe1-f778-42a8-8879-2785f51c5b63) - (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 72.6983 221.6944 0) - (effects (font (size 1.27 1.27)) (justify right) hide) + (global_label "SW_L" (shape input) (at 238.76 149.86 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid c4010abb-8971-4f0b-9048-a5396896c094) + (property "插入图纸页参考" "${INTERSHEET_REFS}" (id 0) (at 245.8298 149.7806 0) + (effects (font (size 1.27 1.27)) (justify left) hide) ) ) (global_label "USB_VCC" (shape input) (at 58.42 72.39 0) (fields_autoplaced) @@ -3210,6 +3461,13 @@ (effects (font (size 1.27 1.27)) (justify left) hide) ) ) + (global_label "SW_D" (shape input) (at 86.36 222.25 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid c73e01e7-3ef1-4071-82f2-bd2a5898c272) + (property "插入图纸页参考" "${INTERSHEET_REFS}" (id 0) (at 79.0483 222.1706 0) + (effects (font (size 1.27 1.27)) (justify right) hide) + ) + ) (global_label "BAT_ADC" (shape input) (at 344.17 158.75 0) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify left)) (uuid cbcb4db5-db5f-4238-b5e9-7c269f0aa1c5) @@ -3224,6 +3482,13 @@ (effects (font (size 1.27 1.27)) (justify left) hide) ) ) + (global_label "IIC_SCL" (shape input) (at 205.74 129.54 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid e7e8498f-6d84-4164-a146-807367cb9419) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 196.3721 129.4606 0) + (effects (font (size 1.27 1.27)) (justify right) hide) + ) + ) (global_label "IIC_SDL" (shape input) (at 344.17 181.61 0) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify left)) (uuid ec648ad6-fb24-4beb-9a26-6b2c04288ce2) @@ -3269,19 +3534,19 @@ (pin "1" (uuid acccc70d-8fb6-4dee-b56e-8b8aec809c42)) ) - (symbol (lib_id "MCU_ST_STM32F1:STM32F103C8Tx") (at 210.82 93.98 0) (unit 1) + (symbol (lib_id "MCU_ST_STM32F1:STM32F103C8Tx") (at 223.52 119.38 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 0677197f-925d-49ae-b672-407868493e87) - (property "Reference" "U7" (id 0) (at 215.3794 132.08 0) + (property "Reference" "U7" (id 0) (at 228.0794 157.48 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "STM32F103C8Tx" (id 1) (at 215.3794 134.62 0) + (property "Value" "STM32F103C8Tx" (id 1) (at 228.0794 160.02 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "Package_QFP:LQFP-48_7x7mm_P0.5mm" (id 2) (at 195.58 129.54 0) + (property "Footprint" "Package_QFP:LQFP-48_7x7mm_P0.5mm" (id 2) (at 208.28 154.94 0) (effects (font (size 1.27 1.27)) (justify right) hide) ) - (property "Datasheet" "http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00161566.pdf" (id 3) (at 210.82 93.98 0) + (property "Datasheet" "http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00161566.pdf" (id 3) (at 223.52 119.38 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid ec7cf9c2-f528-4dbf-a2b9-a3aa0ddc963d)) @@ -3599,6 +3864,22 @@ (pin "2" (uuid 2def88eb-e989-4e96-be6b-8ce0957d36e3)) ) + (symbol (lib_id "power:GND") (at 218.44 160.02 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 21b46c85-84d4-482d-92fa-d9b0df09e6b9) + (property "Reference" "#PWR?" (id 0) (at 218.44 166.37 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 218.44 165.1 0)) + (property "Footprint" "" (id 2) (at 218.44 160.02 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 218.44 160.02 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5973006c-1575-433e-b44a-e42e4975722a)) + ) + (symbol (lib_id "Device:R") (at 377.825 73.025 270) (unit 1) (in_bom yes) (on_board yes) (uuid 24690760-2269-4e12-a914-4a79ca256393) @@ -3614,6 +3895,21 @@ (pin "2" (uuid d185cdde-569e-4a9e-8e2e-d7e8e72c62a0)) ) + (symbol (lib_id "Device:R") (at 179.07 72.39 90) (unit 1) + (in_bom yes) (on_board yes) + (uuid 28dce972-fafd-4ac8-b8d0-ff3e3e001c2c) + (property "Reference" "R?" (id 0) (at 179.07 69.85 90)) + (property "Value" "1K" (id 1) (at 179.07 72.39 90)) + (property "Footprint" "Resistor_SMD:R_0603_1608Metric" (id 2) (at 179.07 74.168 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 179.07 72.39 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c606cbaa-3cc1-428d-be6e-5dae3475d025)) + (pin "2" (uuid 096da53b-d94e-4019-aaf6-54b420629486)) + ) + (symbol (lib_id "Device:C") (at 58.42 87.63 0) (unit 1) (in_bom yes) (on_board yes) (uuid 2d338117-477b-4e82-a08e-a090de86844c) @@ -3633,21 +3929,41 @@ (pin "2" (uuid fd73e918-297c-4282-b487-d15f9d6a2924)) ) - (symbol (lib_id "Device:Crystal") (at 162.56 77.47 0) (unit 1) + (symbol (lib_id "Device:Crystal") (at 180.34 105.41 90) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 313df197-02c6-46f5-9c77-acf80bf7847c) - (property "Reference" "Y2" (id 0) (at 162.56 69.85 0)) - (property "Value" "32.768k" (id 1) (at 162.56 72.39 0)) - (property "Footprint" "Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm" (id 2) (at 162.56 77.47 0) + (property "Reference" "Y2" (id 0) (at 184.15 104.1399 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "32.768k" (id 1) (at 184.15 106.6799 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm" (id 2) (at 180.34 105.41 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "~" (id 3) (at 162.56 77.47 0) + (property "Datasheet" "~" (id 3) (at 180.34 105.41 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 2e2726d3-9ce0-408f-8e09-4809b99caffc)) (pin "2" (uuid 13532bc6-c9ee-429f-a43c-c5ef87eb9989)) ) + (symbol (lib_id "power:VCC") (at 223.52 72.39 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 31a7b109-39f1-4f47-8fd2-02735ea338cd) + (property "Reference" "#PWR?" (id 0) (at 223.52 76.2 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "VCC" (id 1) (at 223.52 67.31 0)) + (property "Footprint" "" (id 2) (at 223.52 72.39 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 223.52 72.39 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 24a7386c-4c68-4a53-bd44-9bddedc405e8)) + ) + (symbol (lib_id "Device:R") (at 44.45 125.095 0) (unit 1) (in_bom yes) (on_board yes) (uuid 32e5518b-5e24-4756-b583-015ce860c6eb) @@ -3663,6 +3979,21 @@ (pin "2" (uuid bd9f9752-0b62-4b31-8aac-daddbf637836)) ) + (symbol (lib_id "Device:R") (at 193.04 67.31 90) (unit 1) + (in_bom yes) (on_board yes) + (uuid 33ada24f-a0d9-4b83-b4c9-3e94e63b878f) + (property "Reference" "R?" (id 0) (at 193.04 64.77 90)) + (property "Value" "10K" (id 1) (at 193.04 67.31 90)) + (property "Footprint" "Resistor_SMD:R_0603_1608Metric" (id 2) (at 193.04 69.088 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 193.04 67.31 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a774a0e5-23bf-4b48-901d-72974321c745)) + (pin "2" (uuid 4dd3db10-7909-4199-8da7-f2742fcfd170)) + ) + (symbol (lib_id "Device:C") (at 106.68 179.07 90) (unit 1) (in_bom yes) (on_board yes) (uuid 380da292-0013-443d-ba49-fb4f1b7f982a) @@ -3815,17 +4146,17 @@ (pin "9" (uuid a29f8df0-3fae-4edf-8d9c-bd5a875b13e3)) ) - (symbol (lib_id "power:VCC") (at 82.55 216.535 90) (unit 1) + (symbol (lib_id "power:VCC") (at 86.36 217.17 90) (unit 1) (in_bom yes) (on_board yes) (uuid 4bc53345-25fe-427a-a648-514d97b80f54) - (property "Reference" "#PWR0121" (id 0) (at 86.36 216.535 0) + (property "Reference" "#PWR0121" (id 0) (at 90.17 217.17 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Value" "VCC" (id 1) (at 78.74 216.535 0)) - (property "Footprint" "" (id 2) (at 82.55 216.535 0) + (property "Value" "VCC" (id 1) (at 82.55 217.17 0)) + (property "Footprint" "" (id 2) (at 86.36 217.17 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "" (id 3) (at 82.55 216.535 0) + (property "Datasheet" "" (id 3) (at 86.36 217.17 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid da9b6201-f0ad-4d2a-a816-43004f342313)) @@ -3862,6 +4193,21 @@ (pin "1" (uuid 86d0ebd6-3f72-4457-9c26-bbd62913d687)) ) + (symbol (lib_id "Device:C") (at 171.45 82.55 90) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 5bdd29cb-8f55-4095-af05-9d35ec92d17e) + (property "Reference" "C?" (id 0) (at 171.45 74.93 90)) + (property "Value" "C" (id 1) (at 171.45 77.47 90)) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (id 2) (at 175.26 81.5848 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 171.45 82.55 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 577b8a16-4a9c-4a68-b5b6-edd8faac8397)) + (pin "2" (uuid 4736816d-9361-4383-9d46-9f67b0c0e530)) + ) + (symbol (lib_id "Device:R") (at 53.34 43.18 0) (unit 1) (in_bom yes) (on_board yes) (uuid 5bf4db13-f95c-4510-aa5f-610b83763fd1) @@ -3907,6 +4253,21 @@ (pin "S1" (uuid 6551c37f-9afc-4b25-9b2a-c1739b8edf17)) ) + (symbol (lib_id "Device:C") (at 171.45 109.22 90) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 5c64e8e8-6c2d-483f-aafc-e21e16486282) + (property "Reference" "C?" (id 0) (at 171.45 101.6 90)) + (property "Value" "C" (id 1) (at 171.45 104.14 90)) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (id 2) (at 175.26 108.2548 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 171.45 109.22 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 92f759df-e7f5-4cd6-b760-c1a61545e330)) + (pin "2" (uuid 7080766e-5700-4a31-bc1e-1d239e4d43bf)) + ) + (symbol (lib_id "Device:C") (at 48.26 25.4 0) (unit 1) (in_bom yes) (on_board yes) (uuid 5dd32f3d-960d-444f-be85-96d5b718d202) @@ -3941,6 +4302,22 @@ (pin "2" (uuid 5a2af9e3-ad5e-40ea-88cf-da84e56dc935)) ) + (symbol (lib_id "power:GND") (at 167.64 90.17 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 6c2104bd-3782-49e7-96e0-61c450efbfb5) + (property "Reference" "#PWR?" (id 0) (at 167.64 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 167.64 95.25 0)) + (property "Footprint" "" (id 2) (at 167.64 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 167.64 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b21f0a26-b6ea-4430-b555-e9039bcd3621)) + ) + (symbol (lib_id "Device:C") (at 106.68 184.15 90) (unit 1) (in_bom yes) (on_board yes) (uuid 6c5bad07-6597-499a-bbb1-65b5ba4a8e58) @@ -4047,19 +4424,15 @@ (pin "2" (uuid f1435094-ccf9-47e9-8c84-0c9c44a8f781)) ) - (symbol (lib_id "Device:Battery_Cell") (at 132.08 63.5 0) (unit 1) + (symbol (lib_id "Device:Battery_Cell") (at 212.09 77.47 270) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 88d8a17c-0ee1-405b-b7c6-a4e8fee4260e) - (property "Reference" "BT1" (id 0) (at 135.89 60.1979 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "Battery_Cell" (id 1) (at 135.89 62.7379 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "MY:BAT_BC501SM" (id 2) (at 132.08 61.976 90) + (property "Reference" "BT1" (id 0) (at 214.122 69.85 90)) + (property "Value" "Battery_Cell" (id 1) (at 214.122 72.39 90)) + (property "Footprint" "MY:BAT_BC501SM" (id 2) (at 213.614 77.47 90) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "~" (id 3) (at 132.08 61.976 90) + (property "Datasheet" "~" (id 3) (at 213.614 77.47 90) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 074d674d-f1d9-4325-a99c-eab01091a621)) @@ -4115,17 +4488,17 @@ (pin "2" (uuid e990d4aa-3652-4433-98b4-deb8fc5b6e36)) ) - (symbol (lib_id "power:GND") (at 82.55 219.075 270) (unit 1) + (symbol (lib_id "power:GND") (at 86.36 219.71 270) (unit 1) (in_bom yes) (on_board yes) (uuid 8db05113-bb5d-40cb-916f-5b0147562482) - (property "Reference" "#PWR0120" (id 0) (at 76.2 219.075 0) + (property "Reference" "#PWR0120" (id 0) (at 80.01 219.71 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Value" "GND" (id 1) (at 78.74 219.075 0)) - (property "Footprint" "" (id 2) (at 82.55 219.075 0) + (property "Value" "GND" (id 1) (at 82.55 219.71 0)) + (property "Footprint" "" (id 2) (at 86.36 219.71 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "" (id 3) (at 82.55 219.075 0) + (property "Datasheet" "" (id 3) (at 86.36 219.71 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 37299e3d-49ce-49aa-8376-30d30c6526f0)) @@ -4151,6 +4524,25 @@ (pin "3" (uuid 1c358b91-989a-4038-b556-b071732a4666)) ) + (symbol (lib_id "Device:L") (at 228.6 77.47 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 94979294-58f1-45cf-861c-a1d9abf6b6a1) + (property "Reference" "L?" (id 0) (at 229.87 76.1999 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100mH" (id 1) (at 229.87 78.7399 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Inductor_SMD:L_0805_2012Metric" (id 2) (at 228.6 77.47 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 228.6 77.47 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 76738b70-d94d-403d-be39-f81f271a0f9e)) + (pin "2" (uuid 44ae20d5-0f5f-4320-a4a9-c28977b525c4)) + ) + (symbol (lib_id "Device:Buzzer") (at 361.315 85.09 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 972eb069-8d6d-41f6-83d3-1d7e45627208) @@ -4170,15 +4562,19 @@ (pin "2" (uuid 52bf5f1e-b0b0-45c5-a9cc-30fb48e7f10a)) ) - (symbol (lib_id "Device:Crystal") (at 162.56 63.5 0) (unit 1) + (symbol (lib_id "Device:Crystal") (at 177.8 86.36 90) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 98a4e67b-a902-425f-8239-d37d3d9798fa) - (property "Reference" "Y1" (id 0) (at 162.56 55.88 0)) - (property "Value" "8M" (id 1) (at 162.56 58.42 0)) - (property "Footprint" "Crystal:Crystal_SMD_5032-2Pin_5.0x3.2mm" (id 2) (at 162.56 63.5 0) + (property "Reference" "Y1" (id 0) (at 181.61 85.0899 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "8M" (id 1) (at 181.61 87.6299 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Crystal:Crystal_SMD_5032-2Pin_5.0x3.2mm" (id 2) (at 177.8 86.36 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "~" (id 3) (at 162.56 63.5 0) + (property "Datasheet" "~" (id 3) (at 177.8 86.36 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 3d8dee54-b40e-4a44-bf51-bf7310c37e8d)) @@ -4221,19 +4617,19 @@ (pin "2" (uuid ccdd9ea8-b569-48e4-b835-17b0f4e8725c)) ) - (symbol (lib_id "Connector:Conn_01x04_Female") (at 87.63 219.075 0) (unit 1) + (symbol (lib_id "Connector:Conn_01x04_Female") (at 91.44 219.71 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 9f9d9ec1-f12a-47cb-a033-e6a9e0eb276a) - (property "Reference" "J5" (id 0) (at 89.535 219.0749 0) + (property "Reference" "J5" (id 0) (at 93.345 219.7099 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "Conn_01x04_Female" (id 1) (at 89.535 221.6149 0) + (property "Value" "Conn_01x04_Female" (id 1) (at 93.345 222.2499 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "MY:SIP-4" (id 2) (at 87.63 219.075 0) + (property "Footprint" "MY:SIP-4" (id 2) (at 91.44 219.71 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "~" (id 3) (at 87.63 219.075 0) + (property "Datasheet" "~" (id 3) (at 91.44 219.71 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 56620332-4506-4e68-83be-ce8c73e73020)) @@ -4416,6 +4812,25 @@ (pin "2" (uuid 4e6d461c-37d8-4efc-9476-aa998097df97)) ) + (symbol (lib_id "Device:C") (at 182.88 67.31 270) (unit 1) + (in_bom yes) (on_board yes) + (uuid b5b14a72-6174-4e0d-a89b-0052cd50bb4f) + (property "Reference" "C?" (id 0) (at 185.42 63.5 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100nF" (id 1) (at 180.34 60.96 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0805_2012Metric" (id 2) (at 179.07 68.2752 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 182.88 67.31 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid efdb53e3-c9e8-4424-a42e-08939df4df75)) + (pin "2" (uuid 4407ceea-5fa9-4b32-8991-89270e209011)) + ) + (symbol (lib_id "Transistor_FET:AO3400A") (at 356.235 96.52 0) (unit 1) (in_bom yes) (on_board yes) (uuid b68ef65c-4e1d-4f1f-b670-988ac039a2a1) @@ -4516,6 +4931,68 @@ (pin "2" (uuid 96bcdb1f-b8e7-420f-8c77-538b93ac3005)) ) + (symbol (lib_id "Device:C") (at 171.45 90.17 90) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid c46704c8-86a9-4f34-9da9-6591a57c007e) + (property "Reference" "C?" (id 0) (at 171.45 82.55 90)) + (property "Value" "C" (id 1) (at 171.45 85.09 90)) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (id 2) (at 175.26 89.2048 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 171.45 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d34d1a16-2950-4e7a-9c8a-737eb401685e)) + (pin "2" (uuid 11267c1f-ff31-4e53-a2c6-2c0fa744aecd)) + ) + + (symbol (lib_id "Device:C") (at 171.45 101.6 90) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid c5449947-3eb6-438a-a259-9adb710c7987) + (property "Reference" "C?" (id 0) (at 171.45 93.98 90)) + (property "Value" "" (id 1) (at 171.45 96.52 90)) + (property "Footprint" "" (id 2) (at 175.26 100.6348 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 171.45 101.6 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6558fe1b-a3c8-432c-ad80-f285a01e900f)) + (pin "2" (uuid 5492858d-1b8c-4f1a-b061-e929f40eed8a)) + ) + + (symbol (lib_id "power:GND") (at 209.55 77.47 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid c690254c-97ba-4bfd-b863-b129e5802ed6) + (property "Reference" "#PWR?" (id 0) (at 209.55 83.82 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 209.55 82.55 0)) + (property "Footprint" "" (id 2) (at 209.55 77.47 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 209.55 77.47 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 33c90149-01e7-46be-8bc9-c4ecd9b8e441)) + ) + + (symbol (lib_id "power:GND") (at 167.64 109.22 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid c7754a4b-140d-4713-bf5f-ab94041f5ca0) + (property "Reference" "#PWR?" (id 0) (at 167.64 115.57 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 167.64 114.3 0)) + (property "Footprint" "" (id 2) (at 167.64 109.22 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 167.64 109.22 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7d75aabb-9894-4f8e-97bf-be569486f7f7)) + ) + (symbol (lib_id "Device:R") (at 336.55 96.52 270) (unit 1) (in_bom yes) (on_board yes) (uuid cba80511-2d97-4527-bf5e-8b6b0c65757a) @@ -4622,6 +5099,25 @@ (pin "1" (uuid e1a000aa-8d42-4458-93e8-e8b2601b676c)) ) + (symbol (lib_id "Device:R") (at 194.31 72.39 270) (unit 1) + (in_bom yes) (on_board yes) + (uuid d7341a7c-138e-4958-94b9-6d075160a22d) + (property "Reference" "R?" (id 0) (at 191.77 70.485 90) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "*R0" (id 1) (at 192.405 72.39 90) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Resistor_SMD:R_0402_1005Metric" (id 2) (at 194.31 70.612 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 194.31 72.39 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 046aab5e-6009-4b2e-9cba-d64e2266d3bb)) + (pin "2" (uuid f0c13791-a261-407d-83e9-659f086500f8)) + ) + (symbol (lib_id "power:GND") (at 99.06 121.285 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid da1096a4-0ecd-4b01-971c-7656c87afcbb) @@ -4638,6 +5134,22 @@ (pin "1" (uuid 6d3a73ef-068e-4292-a054-cbaed3828f93)) ) + (symbol (lib_id "power:VCC") (at 204.47 67.31 270) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid dbbb0b2d-141b-41dd-98e7-2878d6220dd6) + (property "Reference" "#PWR?" (id 0) (at 200.66 67.31 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "VCC" (id 1) (at 209.55 67.31 0)) + (property "Footprint" "" (id 2) (at 204.47 67.31 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 204.47 67.31 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 11bf8f4a-c5cf-4a42-874b-3401818e2bc1)) + ) + (symbol (lib_id "power:GND") (at 29.845 93.345 0) (unit 1) (in_bom yes) (on_board yes) (uuid dcda9a2f-c22c-4de1-98d4-d2ede815dbff) @@ -4670,6 +5182,22 @@ (pin "3" (uuid 02d00e64-f36d-496e-920c-b627c093fcb9)) ) + (symbol (lib_id "power:GND") (at 151.13 72.39 270) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid e61f0717-555b-4c31-8df3-116be7b94d4e) + (property "Reference" "#PWR?" (id 0) (at 144.78 72.39 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 146.05 72.39 0)) + (property "Footprint" "" (id 2) (at 151.13 72.39 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 151.13 72.39 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5cc186bb-f909-4d34-80dd-bf9d1d174240)) + ) + (symbol (lib_id "Device:C") (at 70.485 87.63 0) (unit 1) (in_bom yes) (on_board yes) (uuid e7e0052c-3e13-4581-99c7-2bd19cd19294) @@ -4916,6 +5444,27 @@ (path "/4bc53345-25fe-427a-a648-514d97b80f54" (reference "#PWR0121") (unit 1) (value "VCC") (footprint "") ) + (path "/21b46c85-84d4-482d-92fa-d9b0df09e6b9" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) + (path "/31a7b109-39f1-4f47-8fd2-02735ea338cd" + (reference "#PWR?") (unit 1) (value "VCC") (footprint "") + ) + (path "/6c2104bd-3782-49e7-96e0-61c450efbfb5" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) + (path "/c690254c-97ba-4bfd-b863-b129e5802ed6" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) + (path "/c7754a4b-140d-4713-bf5f-ab94041f5ca0" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) + (path "/dbbb0b2d-141b-41dd-98e7-2878d6220dd6" + (reference "#PWR?") (unit 1) (value "VCC") (footprint "") + ) + (path "/e61f0717-555b-4c31-8df3-116be7b94d4e" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) (path "/88d8a17c-0ee1-405b-b7c6-a4e8fee4260e" (reference "BT1") (unit 1) (value "Battery_Cell") (footprint "MY:BAT_BC501SM") ) @@ -4961,6 +5510,21 @@ (path "/6c5bad07-6597-499a-bbb1-65b5ba4a8e58" (reference "C13") (unit 1) (value "10uF") (footprint "Capacitor_SMD:C_1206_3216Metric") ) + (path "/5bdd29cb-8f55-4095-af05-9d35ec92d17e" + (reference "C?") (unit 1) (value "C") (footprint "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder") + ) + (path "/5c64e8e8-6c2d-483f-aafc-e21e16486282" + (reference "C?") (unit 1) (value "C") (footprint "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder") + ) + (path "/b5b14a72-6174-4e0d-a89b-0052cd50bb4f" + (reference "C?") (unit 1) (value "100nF") (footprint "Capacitor_SMD:C_0805_2012Metric") + ) + (path "/c46704c8-86a9-4f34-9da9-6591a57c007e" + (reference "C?") (unit 1) (value "C") (footprint "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder") + ) + (path "/c5449947-3eb6-438a-a259-9adb710c7987" + (reference "C?") (unit 1) (value "C") (footprint "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder") + ) (path "/ba50dcc8-5bbd-4264-91b9-75a161f252c6" (reference "D1") (unit 1) (value "1N4148WT") (footprint "Diode_SMD:D_SOD-523") ) @@ -4997,6 +5561,9 @@ (path "/a6e73968-bfeb-49ba-b5d0-6a71117f7ee3" (reference "L1") (unit 1) (value "100mH") (footprint "Inductor_SMD:L_0805_2012Metric") ) + (path "/94979294-58f1-45cf-861c-a1d9abf6b6a1" + (reference "L?") (unit 1) (value "100mH") (footprint "Inductor_SMD:L_0805_2012Metric") + ) (path "/fcb41881-c9cb-478a-9b39-b27b7306d1ef" (reference "Q1") (unit 1) (value "AO3400A") (footprint "Package_TO_SOT_SMD:SOT-23") ) @@ -5081,6 +5648,15 @@ (path "/ea5be27d-cc3f-4f0f-8258-28a6b9a5c4e9" (reference "R24") (unit 1) (value "510") (footprint "Resistor_SMD:R_0603_1608Metric") ) + (path "/28dce972-fafd-4ac8-b8d0-ff3e3e001c2c" + (reference "R?") (unit 1) (value "1K") (footprint "Resistor_SMD:R_0603_1608Metric") + ) + (path "/33ada24f-a0d9-4b83-b4c9-3e94e63b878f" + (reference "R?") (unit 1) (value "10K") (footprint "Resistor_SMD:R_0603_1608Metric") + ) + (path "/d7341a7c-138e-4958-94b9-6d075160a22d" + (reference "R?") (unit 1) (value "*R0") (footprint "Resistor_SMD:R_0402_1005Metric") + ) (path "/14f2ae6e-5c6f-4b04-a137-aaaffc15e481" (reference "SW1") (unit 1) (value "RotaryEncoder_Switch") (footprint "MY:EC11") ) diff --git a/stm32f103/.cproject b/stm32f103/.cproject new file mode 100644 index 0000000..475c449 --- /dev/null +++ b/stm32f103/.cproject @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/stm32f103/.mxproject b/stm32f103/.mxproject new file mode 100644 index 0000000..46f6018 --- /dev/null +++ b/stm32f103/.mxproject @@ -0,0 +1,25 @@ +[PreviousLibFiles] +LibFiles=Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_armv8mbl.h; + +[PreviousUsedCubeIDEFiles] +SourceFiles=Core/Src/main.c;Core/Src/stm32f1xx_it.c;Core/Src/stm32f1xx_hal_msp.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Core/Src/system_stm32f1xx.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Core/Src/system_stm32f1xx.c;;; +HeaderPath=Drivers/STM32F1xx_HAL_Driver/Inc;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;Drivers/CMSIS/Device/ST/STM32F1xx/Include;Drivers/CMSIS/Include;Core/Inc; +CDefines=USE_HAL_DRIVER;STM32F103xB;USE_HAL_DRIVER;USE_HAL_DRIVER; + +[PreviousGenFiles] +AdvancedFolderStructure=true +HeaderFileListSize=3 +HeaderFiles#0=/Users/wuwenfeng/Documents/morse_code_trainer/stm32f103/Core/Inc/stm32f1xx_it.h +HeaderFiles#1=/Users/wuwenfeng/Documents/morse_code_trainer/stm32f103/Core/Inc/stm32f1xx_hal_conf.h +HeaderFiles#2=/Users/wuwenfeng/Documents/morse_code_trainer/stm32f103/Core/Inc/main.h +HeaderFolderListSize=1 +HeaderPath#0=/Users/wuwenfeng/Documents/morse_code_trainer/stm32f103/Core/Inc +HeaderFiles=; +SourceFileListSize=3 +SourceFiles#0=/Users/wuwenfeng/Documents/morse_code_trainer/stm32f103/Core/Src/stm32f1xx_it.c +SourceFiles#1=/Users/wuwenfeng/Documents/morse_code_trainer/stm32f103/Core/Src/stm32f1xx_hal_msp.c +SourceFiles#2=/Users/wuwenfeng/Documents/morse_code_trainer/stm32f103/Core/Src/main.c +SourceFolderListSize=1 +SourcePath#0=/Users/wuwenfeng/Documents/morse_code_trainer/stm32f103/Core/Src +SourceFiles=; + diff --git a/stm32f103/.project b/stm32f103/.project new file mode 100644 index 0000000..e07da81 --- /dev/null +++ b/stm32f103/.project @@ -0,0 +1,32 @@ + + + stm32f103 + + + + + + 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/stm32f103/.settings/language.settings.xml b/stm32f103/.settings/language.settings.xml new file mode 100644 index 0000000..ee34a60 --- /dev/null +++ b/stm32f103/.settings/language.settings.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/stm32f103/.settings/stm32cubeide.project.prefs b/stm32f103/.settings/stm32cubeide.project.prefs new file mode 100644 index 0000000..83ac0de --- /dev/null +++ b/stm32f103/.settings/stm32cubeide.project.prefs @@ -0,0 +1,4 @@ +66BE74F758C12D739921AEA421D593D3=1 +8DF89ED150041C4CBC7CB9A9CAA90856=979A1C77DA7C159653BD18E6A0BB4227 +DC22A860405A8BF2F2C095E5B6529F12=979A1C77DA7C159653BD18E6A0BB4227 +eclipse.preferences.version=1 diff --git a/stm32f103/Core/Inc/main.h b/stm32f103/Core/Inc/main.h new file mode 100644 index 0000000..f79fdef --- /dev/null +++ b/stm32f103/Core/Inc/main.h @@ -0,0 +1,71 @@ +/* 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) 2022 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void Error_Handler(void); + +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +/* Private defines -----------------------------------------------------------*/ +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Core/Inc/stm32f1xx_hal_conf.h b/stm32f103/Core/Inc/stm32f1xx_hal_conf.h new file mode 100644 index 0000000..77d5aa1 --- /dev/null +++ b/stm32f103/Core/Inc/stm32f1xx_hal_conf.h @@ -0,0 +1,391 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_conf.h + * @brief HAL configuration file. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_CONF_H +#define __STM32F1xx_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_CAN_LEGACY_MODULE_ENABLED */ +/*#define HAL_CEC_MODULE_ENABLED */ +/*#define HAL_CORTEX_MODULE_ENABLED */ +/*#define HAL_CRC_MODULE_ENABLED */ +/*#define HAL_DAC_MODULE_ENABLED */ +/*#define HAL_DMA_MODULE_ENABLED */ +/*#define HAL_ETH_MODULE_ENABLED */ +/*#define HAL_FLASH_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +/*#define HAL_I2C_MODULE_ENABLED */ +/*#define HAL_I2S_MODULE_ENABLED */ +/*#define HAL_IRDA_MODULE_ENABLED */ +/*#define HAL_IWDG_MODULE_ENABLED */ +/*#define HAL_NOR_MODULE_ENABLED */ +/*#define HAL_NAND_MODULE_ENABLED */ +/*#define HAL_PCCARD_MODULE_ENABLED */ +/*#define HAL_PCD_MODULE_ENABLED */ +/*#define HAL_HCD_MODULE_ENABLED */ +/*#define HAL_PWR_MODULE_ENABLED */ +/*#define HAL_RCC_MODULE_ENABLED */ +/*#define HAL_RTC_MODULE_ENABLED */ +/*#define HAL_SD_MODULE_ENABLED */ +/*#define HAL_MMC_MODULE_ENABLED */ +/*#define HAL_SDRAM_MODULE_ENABLED */ +/*#define HAL_SMARTCARD_MODULE_ENABLED */ +/*#define HAL_SPI_MODULE_ENABLED */ +/*#define HAL_SRAM_MODULE_ENABLED */ +/*#define HAL_TIM_MODULE_ENABLED */ +/*#define HAL_UART_MODULE_ENABLED */ +/*#define HAL_USART_MODULE_ENABLED */ +/*#define HAL_WWDG_MODULE_ENABLED */ + +#define HAL_CORTEX_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +#define HAL_GPIO_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED + +/* ########################## Oscillator Values adaptation ####################*/ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSE is used as system clock source, directly or through the PLL). + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE 8000000U /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT 100U /*!< 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 8000000U /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE 40000U /*!< LSI Typical Value in Hz */ +#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. + * This value is used by the UART, RTC HAL module to compute the system frequency + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE 32768U /*!< Value of the External oscillator in Hz*/ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/* 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 3300U /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY 15U /*!< tick interrupt priority (lowest by default) */ +#define USE_RTOS 0U +#define PREFETCH_ENABLE 1U + +#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_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */ +#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */ +#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */ +#define USE_HAL_HCD_REGISTER_CALLBACKS 0U /* HCD register callback disabled */ +#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */ +#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */ +#define USE_HAL_MMC_REGISTER_CALLBACKS 0U /* MMC 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_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */ +#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */ +#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */ +#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */ +#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */ +#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */ +#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */ +#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM 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_WWDG_REGISTER_CALLBACKS 0U /* WWDG 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 */ + +/* ################## Ethernet peripheral configuration ##################### */ + +/* Section 1 : Ethernet peripheral configuration */ + +/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */ +#define MAC_ADDR0 2U +#define MAC_ADDR1 0U +#define MAC_ADDR2 0U +#define MAC_ADDR3 0U +#define MAC_ADDR4 0U +#define MAC_ADDR5 0U + +/* Definition of the Ethernet driver buffers size and count */ +#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */ +#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */ +#define ETH_RXBUFNB 8U /* 4 Rx buffers of size ETH_RX_BUF_SIZE */ +#define ETH_TXBUFNB 4U /* 4 Tx buffers of size ETH_TX_BUF_SIZE */ + +/* Section 2: PHY configuration section */ + +/* DP83848_PHY_ADDRESS Address*/ +#define DP83848_PHY_ADDRESS 0x01U +/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/ +#define PHY_RESET_DELAY 0x000000FFU +/* PHY Configuration delay */ +#define PHY_CONFIG_DELAY 0x00000FFFU + +#define PHY_READ_TO 0x0000FFFFU +#define PHY_WRITE_TO 0x0000FFFFU + +/* Section 3: Common PHY Registers */ + +#define PHY_BCR ((uint16_t)0x00) /*!< Transceiver Basic Control Register */ +#define PHY_BSR ((uint16_t)0x01) /*!< Transceiver Basic Status Register */ + +#define PHY_RESET ((uint16_t)0x8000) /*!< PHY Reset */ +#define PHY_LOOPBACK ((uint16_t)0x4000) /*!< Select loop-back mode */ +#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100) /*!< Set the full-duplex mode at 100 Mb/s */ +#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000) /*!< Set the half-duplex mode at 100 Mb/s */ +#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100) /*!< Set the full-duplex mode at 10 Mb/s */ +#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000) /*!< Set the half-duplex mode at 10 Mb/s */ +#define PHY_AUTONEGOTIATION ((uint16_t)0x1000) /*!< Enable auto-negotiation function */ +#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200) /*!< Restart auto-negotiation function */ +#define PHY_POWERDOWN ((uint16_t)0x0800) /*!< Select the power down mode */ +#define PHY_ISOLATE ((uint16_t)0x0400) /*!< Isolate PHY from MII */ + +#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020) /*!< Auto-Negotiation process completed */ +#define PHY_LINKED_STATUS ((uint16_t)0x0004) /*!< Valid link established */ +#define PHY_JABBER_DETECTION ((uint16_t)0x0002) /*!< Jabber condition detected */ + +/* Section 4: Extended PHY Registers */ +#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */ + +#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */ +#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */ + +/* ################## SPI peripheral configuration ########################## */ + +/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver +* Activated: CRC code is present inside driver +* Deactivated: CRC code cleaned from driver +*/ + +#define USE_SPI_CRC 0U + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED +#include "stm32f1xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED +#include "stm32f1xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED +#include "stm32f1xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED +#include "stm32f1xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_ETH_MODULE_ENABLED +#include "stm32f1xx_hal_eth.h" +#endif /* HAL_ETH_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED +#include "stm32f1xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CAN_LEGACY_MODULE_ENABLED + #include "Legacy/stm32f1xx_hal_can_legacy.h" +#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */ + +#ifdef HAL_CEC_MODULE_ENABLED +#include "stm32f1xx_hal_cec.h" +#endif /* HAL_CEC_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED +#include "stm32f1xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED +#include "stm32f1xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED +#include "stm32f1xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED +#include "stm32f1xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED +#include "stm32f1xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED +#include "stm32f1xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED +#include "stm32f1xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED +#include "stm32f1xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED +#include "stm32f1xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED +#include "stm32f1xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED +#include "stm32f1xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED +#include "stm32f1xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_PCCARD_MODULE_ENABLED +#include "stm32f1xx_hal_pccard.h" +#endif /* HAL_PCCARD_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED +#include "stm32f1xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED +#include "stm32f1xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED +#include "stm32f1xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED +#include "stm32f1xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED +#include "stm32f1xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED +#include "stm32f1xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED +#include "stm32f1xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED +#include "stm32f1xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED +#include "stm32f1xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED +#include "stm32f1xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_HCD_MODULE_ENABLED +#include "stm32f1xx_hal_hcd.h" +#endif /* HAL_HCD_MODULE_ENABLED */ + +#ifdef HAL_MMC_MODULE_ENABLED +#include "stm32f1xx_hal_mmc.h" +#endif /* HAL_MMC_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 /* __STM32F1xx_HAL_CONF_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Core/Inc/stm32f1xx_it.h b/stm32f103/Core/Inc/stm32f1xx_it.h new file mode 100644 index 0000000..bd13bd5 --- /dev/null +++ b/stm32f103/Core/Inc/stm32f1xx_it.h @@ -0,0 +1,69 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f1xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2022 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_IT_H +#define __STM32F1xx_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 /* __STM32F1xx_IT_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Core/Src/main.c b/stm32f103/Core/Src/main.c new file mode 100644 index 0000000..b29d6fc --- /dev/null +++ b/stm32f103/Core/Src/main.c @@ -0,0 +1,192 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2022 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* 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 ---------------------------------------------------------*/ + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_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(); + /* USER CODE BEGIN 2 */ + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + /* 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_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOD_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + +} + +/* 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 */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Core/Src/stm32f1xx_hal_msp.c b/stm32f103/Core/Src/stm32f1xx_hal_msp.c new file mode 100644 index 0000000..3b8909e --- /dev/null +++ b/stm32f103/Core/Src/stm32f1xx_hal_msp.c @@ -0,0 +1,88 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f1xx_hal_msp.c + * @brief This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2022 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_AFIO_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + /* System interrupt init*/ + + /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled + */ + __HAL_AFIO_REMAP_SWJ_NOJTAG(); + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Core/Src/stm32f1xx_it.c b/stm32f103/Core/Src/stm32f1xx_it.c new file mode 100644 index 0000000..16c4acd --- /dev/null +++ b/stm32f103/Core/Src/stm32f1xx_it.c @@ -0,0 +1,205 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f1xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2022 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "stm32f1xx_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-M3 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + while (1) + { + } + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Prefetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + /* USER CODE BEGIN SVCall_IRQn 0 */ + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + /* USER CODE BEGIN DebugMonitor_IRQn 0 */ + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + /* USER CODE BEGIN PendSV_IRQn 0 */ + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + +/******************************************************************************/ +/* STM32F1xx 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_stm32f1xx.s). */ +/******************************************************************************/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Core/Src/syscalls.c b/stm32f103/Core/Src/syscalls.c new file mode 100644 index 0000000..bc0dd6c --- /dev/null +++ b/stm32f103/Core/Src/syscalls.c @@ -0,0 +1,156 @@ +/** + ****************************************************************************** + * @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 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* 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) +{ + 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) +{ + int DataIdx; + + for (DataIdx = 0; DataIdx < len; DataIdx++) + { + *ptr++ = __io_getchar(); + } + +return len; +} + +__attribute__((weak)) int _write(int file, char *ptr, int len) +{ + int DataIdx; + + for (DataIdx = 0; DataIdx < len; DataIdx++) + { + __io_putchar(*ptr++); + } + return len; +} + +int _close(int file) +{ + return -1; +} + + +int _fstat(int file, struct stat *st) +{ + st->st_mode = S_IFCHR; + return 0; +} + +int _isatty(int file) +{ + return 1; +} + +int _lseek(int file, int ptr, int dir) +{ + return 0; +} + +int _open(char *path, int flags, ...) +{ + /* Pretend like we always fail */ + return -1; +} + +int _wait(int *status) +{ + errno = ECHILD; + return -1; +} + +int _unlink(char *name) +{ + errno = ENOENT; + return -1; +} + +int _times(struct tms *buf) +{ + return -1; +} + +int _stat(char *file, struct stat *st) +{ + st->st_mode = S_IFCHR; + return 0; +} + +int _link(char *old, char *new) +{ + errno = EMLINK; + return -1; +} + +int _fork(void) +{ + errno = EAGAIN; + return -1; +} + +int _execve(char *name, char **argv, char **env) +{ + errno = ENOMEM; + return -1; +} diff --git a/stm32f103/Core/Src/sysmem.c b/stm32f103/Core/Src/sysmem.c new file mode 100644 index 0000000..d7cc52c --- /dev/null +++ b/stm32f103/Core/Src/sysmem.c @@ -0,0 +1,80 @@ +/** + ****************************************************************************** + * @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) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* 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/stm32f103/Core/Src/system_stm32f1xx.c b/stm32f103/Core/Src/system_stm32f1xx.c new file mode 100644 index 0000000..052bec6 --- /dev/null +++ b/stm32f103/Core/Src/system_stm32f1xx.c @@ -0,0 +1,408 @@ +/** + ****************************************************************************** + * @file system_stm32f1xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. + * + * 1. This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): Setups the system clock (System clock source, PLL Multiplier + * factors, AHB/APBx prescalers and Flash settings). + * This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32f1xx_xx.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_stm32f1xx_xx.s" file, to + * configure the system clock before to branch to main program. + * + * 4. The default value of HSE crystal is set to 8 MHz (or 25 MHz, depending on + * the product used), refer to "HSE_VALUE". + * When HSE is used as system clock source, directly or through PLL, and you + * are using different crystal you have to adapt the HSE value to your own + * configuration. + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f1xx_system + * @{ + */ + +/** @addtogroup STM32F1xx_System_Private_Includes + * @{ + */ + +#include "stm32f1xx.h" + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_Defines + * @{ + */ + +#if !defined (HSE_VALUE) + #define HSE_VALUE 8000000U /*!< 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 8000000U /*!< Default value of the Internal oscillator in Hz. + This value can be provided and adapted by the user application. */ +#endif /* HSI_VALUE */ + +/*!< Uncomment the following line if you need to use external SRAM */ +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) +/* #define DATA_IN_ExtSRAM */ +#endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ + +/* 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 STM32F1xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F1xx_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; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. + */ +uint32_t SystemCoreClock = 16000000; +const uint8_t AHBPrescTable[16U] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint8_t APBPrescTable[8U] = {0, 0, 0, 0, 1, 2, 3, 4}; + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_FunctionPrototypes + * @{ + */ + +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) +#ifdef DATA_IN_ExtSRAM + static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system + * Initialize the Embedded Flash Interface, the PLL and update the + * SystemCoreClock variable. + * @note This function should be used only after reset. + * @param None + * @retval None + */ +void SystemInit (void) +{ +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) + #ifdef DATA_IN_ExtSRAM + SystemInit_ExtMemCtl(); + #endif /* DATA_IN_ExtSRAM */ +#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 by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32f1xx.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 stm32f1xx.h file (default value + * 8 MHz or 25 MHz, depending on the product used), 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 = 0U, pllmull = 0U, pllsource = 0U; + +#if defined(STM32F105xC) || defined(STM32F107xC) + uint32_t prediv1source = 0U, prediv1factor = 0U, prediv2factor = 0U, pll2mull = 0U; +#endif /* STM32F105xC */ + +#if defined(STM32F100xB) || defined(STM32F100xE) + uint32_t prediv1factor = 0U; +#endif /* STM32F100xB or STM32F100xE */ + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00U: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + case 0x04U: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + case 0x08U: /* PLL used as system clock */ + + /* Get PLL clock source and multiplication factor ----------------------*/ + pllmull = RCC->CFGR & RCC_CFGR_PLLMULL; + pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; + +#if !defined(STM32F105xC) && !defined(STM32F107xC) + pllmull = ( pllmull >> 18U) + 2U; + + if (pllsource == 0x00U) + { + /* HSI oscillator clock divided by 2 selected as PLL clock entry */ + SystemCoreClock = (HSI_VALUE >> 1U) * pllmull; + } + else + { + #if defined(STM32F100xB) || defined(STM32F100xE) + prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1U; + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; + #else + /* HSE selected as PLL clock entry */ + if ((RCC->CFGR & RCC_CFGR_PLLXTPRE) != (uint32_t)RESET) + {/* HSE oscillator clock divided by 2 */ + SystemCoreClock = (HSE_VALUE >> 1U) * pllmull; + } + else + { + SystemCoreClock = HSE_VALUE * pllmull; + } + #endif + } +#else + pllmull = pllmull >> 18U; + + if (pllmull != 0x0DU) + { + pllmull += 2U; + } + else + { /* PLL multiplication factor = PLL input clock * 6.5 */ + pllmull = 13U / 2U; + } + + if (pllsource == 0x00U) + { + /* HSI oscillator clock divided by 2 selected as PLL clock entry */ + SystemCoreClock = (HSI_VALUE >> 1U) * pllmull; + } + else + {/* PREDIV1 selected as PLL clock entry */ + + /* Get PREDIV1 clock source and division factor */ + prediv1source = RCC->CFGR2 & RCC_CFGR2_PREDIV1SRC; + prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1U; + + if (prediv1source == 0U) + { + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; + } + else + {/* PLL2 clock selected as PREDIV1 clock entry */ + + /* Get PREDIV2 division factor and PLL2 multiplication factor */ + prediv2factor = ((RCC->CFGR2 & RCC_CFGR2_PREDIV2) >> 4U) + 1U; + pll2mull = ((RCC->CFGR2 & RCC_CFGR2_PLL2MUL) >> 8U) + 2U; + SystemCoreClock = (((HSE_VALUE / prediv2factor) * pll2mull) / prediv1factor) * pllmull; + } + } +#endif /* STM32F105xC */ + break; + + default: + SystemCoreClock = HSI_VALUE; + break; + } + + /* Compute HCLK clock frequency ----------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4U)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) +/** + * @brief Setup the external memory controller. Called in startup_stm32f1xx.s + * before jump to __main + * @param None + * @retval None + */ +#ifdef DATA_IN_ExtSRAM +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f1xx_xx.s/.c before jump to main. + * This function configures the external SRAM mounted on STM3210E-EVAL + * board (STM32 High density devices). This SRAM will be used as program + * data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ + __IO uint32_t tmpreg; + /*!< FSMC Bank1 NOR/SRAM3 is used for the STM3210E-EVAL, if another Bank is + required, then adjust the Register Addresses */ + + /* Enable FSMC clock */ + RCC->AHBENR = 0x00000114U; + + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_FSMCEN); + + /* Enable GPIOD, GPIOE, GPIOF and GPIOG clocks */ + RCC->APB2ENR = 0x000001E0U; + + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPDEN); + + (void)(tmpreg); + +/* --------------- SRAM Data lines, NOE and NWE configuration ---------------*/ +/*---------------- SRAM Address lines configuration -------------------------*/ +/*---------------- NOE and NWE configuration --------------------------------*/ +/*---------------- NE3 configuration ----------------------------------------*/ +/*---------------- NBL0, NBL1 configuration ---------------------------------*/ + + GPIOD->CRL = 0x44BB44BBU; + GPIOD->CRH = 0xBBBBBBBBU; + + GPIOE->CRL = 0xB44444BBU; + GPIOE->CRH = 0xBBBBBBBBU; + + GPIOF->CRL = 0x44BBBBBBU; + GPIOF->CRH = 0xBBBB4444U; + + GPIOG->CRL = 0x44BBBBBBU; + GPIOG->CRH = 0x444B4B44U; + +/*---------------- FSMC Configuration ---------------------------------------*/ +/*---------------- Enable FSMC Bank1_SRAM Bank ------------------------------*/ + + FSMC_Bank1->BTCR[4U] = 0x00001091U; + FSMC_Bank1->BTCR[5U] = 0x00110212U; +} +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Core/Startup/startup_stm32f103c8tx.s b/stm32f103/Core/Startup/startup_stm32f103c8tx.s new file mode 100644 index 0000000..8f5e8de --- /dev/null +++ b/stm32f103/Core/Startup/startup_stm32f103c8tx.s @@ -0,0 +1,365 @@ +/** + *************** (C) COPYRIGHT 2017 STMicroelectronics ************************ + * @file startup_stm32f103xb.s + * @author MCD Application Team + * @brief STM32F103xB Devices vector table for Atollic 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-M3 processor is in Thread mode, + * priority is Privileged, and the Stack is set to Main. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + + .syntax unified + .cpu cortex-m3 + .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, 0xF108F85F +/** + * @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: + +/* 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 the clock system intitialization function.*/ + bl SystemInit +/* Call static constructors */ + bl __libc_init_array +/* Call the application's entry point.*/ + bl main + bx lr +.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 M3. 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 TAMPER_IRQHandler + .word RTC_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_IRQHandler + .word EXTI3_IRQHandler + .word EXTI4_IRQHandler + .word DMA1_Channel1_IRQHandler + .word DMA1_Channel2_IRQHandler + .word DMA1_Channel3_IRQHandler + .word DMA1_Channel4_IRQHandler + .word DMA1_Channel5_IRQHandler + .word DMA1_Channel6_IRQHandler + .word DMA1_Channel7_IRQHandler + .word ADC1_2_IRQHandler + .word USB_HP_CAN1_TX_IRQHandler + .word USB_LP_CAN1_RX0_IRQHandler + .word CAN1_RX1_IRQHandler + .word CAN1_SCE_IRQHandler + .word EXTI9_5_IRQHandler + .word TIM1_BRK_IRQHandler + .word TIM1_UP_IRQHandler + .word TIM1_TRG_COM_IRQHandler + .word TIM1_CC_IRQHandler + .word TIM2_IRQHandler + .word TIM3_IRQHandler + .word TIM4_IRQHandler + .word I2C1_EV_IRQHandler + .word I2C1_ER_IRQHandler + .word I2C2_EV_IRQHandler + .word I2C2_ER_IRQHandler + .word SPI1_IRQHandler + .word SPI2_IRQHandler + .word USART1_IRQHandler + .word USART2_IRQHandler + .word USART3_IRQHandler + .word EXTI15_10_IRQHandler + .word RTC_Alarm_IRQHandler + .word USBWakeUp_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word BootRAM /* @0x108. This is for boot in RAM mode for + STM32F10x Medium Density devices. */ + +/******************************************************************************* +* +* 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 TAMPER_IRQHandler + .thumb_set TAMPER_IRQHandler,Default_Handler + + .weak RTC_IRQHandler + .thumb_set RTC_IRQHandler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_IRQHandler + .thumb_set EXTI0_IRQHandler,Default_Handler + + .weak EXTI1_IRQHandler + .thumb_set EXTI1_IRQHandler,Default_Handler + + .weak EXTI2_IRQHandler + .thumb_set EXTI2_IRQHandler,Default_Handler + + .weak EXTI3_IRQHandler + .thumb_set EXTI3_IRQHandler,Default_Handler + + .weak EXTI4_IRQHandler + .thumb_set EXTI4_IRQHandler,Default_Handler + + .weak DMA1_Channel1_IRQHandler + .thumb_set DMA1_Channel1_IRQHandler,Default_Handler + + .weak DMA1_Channel2_IRQHandler + .thumb_set DMA1_Channel2_IRQHandler,Default_Handler + + .weak DMA1_Channel3_IRQHandler + .thumb_set DMA1_Channel3_IRQHandler,Default_Handler + + .weak DMA1_Channel4_IRQHandler + .thumb_set DMA1_Channel4_IRQHandler,Default_Handler + + .weak DMA1_Channel5_IRQHandler + .thumb_set DMA1_Channel5_IRQHandler,Default_Handler + + .weak DMA1_Channel6_IRQHandler + .thumb_set DMA1_Channel6_IRQHandler,Default_Handler + + .weak DMA1_Channel7_IRQHandler + .thumb_set DMA1_Channel7_IRQHandler,Default_Handler + + .weak ADC1_2_IRQHandler + .thumb_set ADC1_2_IRQHandler,Default_Handler + + .weak USB_HP_CAN1_TX_IRQHandler + .thumb_set USB_HP_CAN1_TX_IRQHandler,Default_Handler + + .weak USB_LP_CAN1_RX0_IRQHandler + .thumb_set USB_LP_CAN1_RX0_IRQHandler,Default_Handler + + .weak CAN1_RX1_IRQHandler + .thumb_set CAN1_RX1_IRQHandler,Default_Handler + + .weak CAN1_SCE_IRQHandler + .thumb_set CAN1_SCE_IRQHandler,Default_Handler + + .weak EXTI9_5_IRQHandler + .thumb_set EXTI9_5_IRQHandler,Default_Handler + + .weak TIM1_BRK_IRQHandler + .thumb_set TIM1_BRK_IRQHandler,Default_Handler + + .weak TIM1_UP_IRQHandler + .thumb_set TIM1_UP_IRQHandler,Default_Handler + + .weak TIM1_TRG_COM_IRQHandler + .thumb_set TIM1_TRG_COM_IRQHandler,Default_Handler + + .weak TIM1_CC_IRQHandler + .thumb_set TIM1_CC_IRQHandler,Default_Handler + + .weak TIM2_IRQHandler + .thumb_set TIM2_IRQHandler,Default_Handler + + .weak TIM3_IRQHandler + .thumb_set TIM3_IRQHandler,Default_Handler + + .weak TIM4_IRQHandler + .thumb_set TIM4_IRQHandler,Default_Handler + + .weak I2C1_EV_IRQHandler + .thumb_set I2C1_EV_IRQHandler,Default_Handler + + .weak I2C1_ER_IRQHandler + .thumb_set I2C1_ER_IRQHandler,Default_Handler + + .weak I2C2_EV_IRQHandler + .thumb_set I2C2_EV_IRQHandler,Default_Handler + + .weak I2C2_ER_IRQHandler + .thumb_set I2C2_ER_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak SPI2_IRQHandler + .thumb_set SPI2_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler + + .weak USART2_IRQHandler + .thumb_set USART2_IRQHandler,Default_Handler + + .weak USART3_IRQHandler + .thumb_set USART3_IRQHandler,Default_Handler + + .weak EXTI15_10_IRQHandler + .thumb_set EXTI15_10_IRQHandler,Default_Handler + + .weak RTC_Alarm_IRQHandler + .thumb_set RTC_Alarm_IRQHandler,Default_Handler + + .weak USBWakeUp_IRQHandler + .thumb_set USBWakeUp_IRQHandler,Default_Handler + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/stm32f103/Debug/Core/Src/main.d b/stm32f103/Debug/Core/Src/main.d new file mode 100644 index 0000000..ba9b435 --- /dev/null +++ b/stm32f103/Debug/Core/Src/main.d @@ -0,0 +1,69 @@ +Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h + +../Core/Inc/main.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: diff --git a/stm32f103/Debug/Core/Src/main.o b/stm32f103/Debug/Core/Src/main.o new file mode 100644 index 0000000000000000000000000000000000000000..016779f6dc02a5b0035e3380f775172fb09811ea GIT binary patch literal 701848 zcma&O2UHbT)HZzQ-f4Gk@7EY(HtQ$0PFvBpi|M|nn zn#=w#CzCY@mq^8RasZmk*2`QR`p)3H;4fjj;%~Rw^X{NMYR`Lu_NqPa4ce#nyf0|K z+VlRP-`AcG03BF+J_vMh?fDSUp|$73K!?|!j{qH6dp-(ubnW>V(6P1WKY)&_Js%G` zq4xYo(4T70CxT9@J)aCZrS|-1(5bcOzkvQ)d;S~fwA%COpfhUEXM+A-d;SOLtlIP0 zpmS=^=YsxOdp-|ze(m`J(7$TW7lJOTJ^veYaqamM(51EK|9~#5JzoyG0)L%SWC@?& z)qMV+zcr7XQoIvo3BoJ8qIn}(L;GOT^sFaq^wqQ}({@d}Iqj?IOyjiaW8OG*teP%s z+;axF8S=)fXObih$0AeJOtSuBsTeG4#atvGy2h)g$s4CllQpiI2JFn9uwFgAXFYjs zjQ@+29qZRMW3W?((?M5cVjdAV*ED=UxnAKj-GFli&Z?$W&C%jq19=0;RStOrMcTBq zIU>#l$XUoahn!Wcp0;|9?3kInrY{;I)64rg9h4<3J|sI<^Qa#yli@%7VVOx9xlH~1 zDlgl4O5qUw_aJ9@aVRfS9QD&Ai<3u5VSMXqr<1*AWUch>`}3WibEOxN**}q zWZXRvG2#_3<2%_%?f~fVPC5XBjHCBc?D>+F@ttiXS2Y)+7-cHX)C0!Jgc!z<4KtaB ziDhL%>=%wz4;Thr+!s#NH2p;(6XL&cYK>Z;%Y5(h?dGF2}tJq=<|HqLuH zo;b1JOJMqZO^!@U{(^A?Pd8Y?UnXb+q~;#A?;O2%Oq4=qS@@>}gFpt=M4urj$v zU8HVcnrcldg|@EtN1K7s+XB9~!BZ2NO4SEac(KY9+8(N&s_v>`CX6(-8WHboGZ{(v z&JH4U`hw#K*SAiuI=Hp9B8TZ0k&7!C1=9e7FhrT&Xz6R7#>l+D>+*s?%kq@~twPE_!`Jb!% zwvK@@^8M_7-`63qxt^@Oi6oO$lT{M|wzOgXKcH3>?xK+=E8BlBS&rY){zZqM@Bb~9 z@0VC#wUPZdk716u{p`@nWOdv8pZou9od(E5M#Tw!Ui_hl@XH_iS?Lcw81#o8MfyWe z?tlOM|H0wOAQOQOct8{uHD^DHF&p7$o=)kl8Jt{P&FRViQ zzvP^zOKZ7|RrEFg2d!9Q;l3K!3)5UX`4@4mjlz}TxdsiYaKHWw|IDaZR#D$t8=-;i zKgusa#d}ftU!md^V|Vb1LZ;6DQoLop`ob$dFm=B`O66bwFNmkSUM(b8{>>N2d#3&u z5vxd%H~4bO)ySt~G_TE+W$8EOWKxj=$LJys$HNO)93OOLaQw+k@}oAA&(qNi=(msX zRuf?|`jfU~3~9}$cpU51BYD3-l7x5=evISTXCj>&KFe|ZgrSp@y@@8t^0##U`8UF^ zSWV}*{w4X6bL4HmKY23@q9||8q%C+!S=E0`$H)viD!LQ?RdYg$5+Rix3E3l*d_MOj zN$z+;3T`BixkTrK{v`bDTcmB0O2}z3bY1?NNpfsEVa8u3Ny(3tiPJ8U96e0PzS)Ff z=aHl_#&Ay7a4C77@r>}*?MYHLjkH((A^Eq5>DanG9X+ERo;iwsVJ3O27eQ8ouaU%? zBaA$ZB(41Dy5_qRCZL4mm;R;mniR*mmd<4}$y-V}ov%4b#~pam;rSTlTvtVzeB(}j zrmrE1o1TsnMiJ(ZdlYdR=0HxCnMKG(j^8DJ2Aw~@MLC@PnY0flQ^c0RBw6sDB=szG z^bVrvtv8VTCs)E8K1uT2eiX5#<8DVxrt>GMgegBo`1`NOf5$>PijKQ+&zCTLS<=38 z+>;=@e4K3HFgl((OL;zV{ML_L3HfvgNq*ufR=f*I=I*6)?Ls>yr!IN${C7# zx*i=1r;xX+u@v`=MCa{l=v?SYcO%(xZ~LyM^8qVJ{^2?u4QokKSVIx_XON#28_DyM z6O`>}$GKHcn0Jn=nA?x!Wh%mm9Od@?5%M#&DPeA*Xu~gch|WuXCvTlGp5mSQiTr=- zc!To)rSs-7gxu|T6Ad#7^T$|{s2#u8;Kqb;-A9stKGJ!NKv5*eHD);8g1MOIIoUNY zNB)cHc#ff~o;;q86DrBp97XbxSnT0xxk2*c_jEqVhqQ*T$#bAHdA`?@&X)}*eE4XR zJl{aqnCN&i8}+3tUDTE27iN(k&qO*lo=fsoj%TmaH{{`|BatoJZzpvnD0K4#I}+!n`0G)FtNqYW3$kGHt9!7P`$%5KbChr^3F%Z)t z-W|t?bapNIxxA6$o-~r}grOAi4a!zXVhO26<&IIp@r2K)AkV9hlceoqI(O1i+?|fA zHhxX=+Zp61*n^ID7n6tYo{+coJqbVjDV_JmOvK4H{X~)kl!u6=A=~sMIxo0Qm?lni z&iz5i8|j3Mai(KcN76QPj6c>)l6=#dayair=b{hcC!z-BWWBJw!P8==^WQT_JJONu zk!td=*`MUUnkdgRI?}pqAxZIj(vJ9v&ZEAj^9$R^&%8sF&v{2a+bT&u+JSt4=-6`(9ZgulVZ|%a`Pl1p&V&&%Go8Gxa-!os$7tEiLOCRLp;)$3lB=5% z-r`N?8>8sF!*Rkqbll0xYn0)MtK@l77-1%iChaoE%(Bt({B%qsZKait8^g$RyK0Jl z9xEV>7#HZ=bt4@|k0sk8PeSe~rdTNp2s7ayIu}tqak2v{io!d5j&h6)^|8Xh)A%o0 z8FI)&yUXOQCz@io+vi9U988$PHss;E4kY)RK={7nN#1ukUB!+^G;ih@>4N~e8xGRs6*}O`~sS3 z7)!C-#?#_XM;YoI+^fZO?e31J*V$16>~@T_<&Ix`1V_l}3+e93bXX*?@M6g;$FcDy ztYx{jvtQy0hwK&*b*S47_!_p6-pS$jmcnv`LpySf2hK-Dj)V56wwrL}Q$l0lab`$Q zNdAmRdyiY1+7yx%#+A^zF#Uf(%Ilfwok2D*yXg^kWu8n0ViObJ7y;dwZxj%2W}Ita z;LhyGN6alu@-65*m?MXv^JL~%fb(J`s++em{jpZ#yqS44TWw?h7zt-XqX4<|>W2+05F$5FTd?pCQa)n$ubEgWr3yj_j^NUQ!@ep2O7CR%)%gkxI{{;*~#Ze*iQvx7YnZ}J^ zaD%Ct057+gffhh+GaWy{-~m%U3QsjX4&MehfxL6GE)f6rf=a$=?ldV(SFXfy#$OM3k1&qpk1~$z(-=qk>5L=)42F{Ck28+zIKj|` zIPR&GM1!Jbe=d%7GU)fJ%iTkY4e#KoG`0X<@_{i^9WcI@5(;k&!g zf}{6P`U(5~Nz2@U1AfAB*g;xkjPBGKH)#CYefa6<*R#bvgs*xHzs7mvS3&UJLOOwC z=WnMYYTw`ukPnm7!fkx+3&@=qFREponRVXqe;lAx>0?96cDf%0bL}tcFKn^qaHXyYl%xbhMxucAw8GN2(a+<>6 z6jOf^kU32EHMoWXChQ!Lh0N$j&|PKvPlLfjrjQ28M~vH4ARjZo4uN?kqx}Vtcg)Wt z5$`?IZx+lq$}56MHe0g@_DECP2}{>wx}$dTvyBSNlR`wz$k`TBc+T$8V%PQe{{68&Cx9)f!)|8WnvXY#qDDNlLB7vP)}0aP5hDr9%y#Y5qi52U9e%L_Vxh4&fw3{cEC z4lY9Rt~FdoDi#<(k`x&?K@KR|42CXSQCC8`#}#I3SJBVg!0#%KjeiNjvB@+w(r()H zyV{@r`?WMP44APA5eM!biV#DV{R7F!2FTW7{Z&4#KbuU;gI$YZI;8a7+8H>ub)s3X z!&wWwcD^|oHr)ts4MP(B&n$(KZ$dkN z+(H}|-YkNL#R@C5X?y||ed+unTB&956DgsSypFE!EZ>8k_{;qMA&7N@H~s)*zVO{x zAS(pFZ=rKm&K(GYZORO(_9EBqJC6|in1Ayik7jN^K#&+_8%;;?%xyQMvY#1N4Sxwt zsyl>tm??dLyvuY70kViGxCq^S=9g9QUcxk`8ord7LYMrIY2yvyBgTW?izm#|)et^q zQm9a^VpQKlSk1^?L44(-zeA3G@*nrZXMo)I9+11_4b{jjNIr=AFv0SFsC^SEA4(N& zn7kJ~cDv>K4G`{;CvJr>Qoe`!IeX=W*d@Xvd4hT#(ek|d@DeLmx&s*}9~=q0{qmP` z=n~{VzQPq{%Uh7aae3YvAWzD#U^3uN$^WJH#zXm@M?gN3H=>HeTalLnvQ5!>6YP8x zZ<~YLp%}3r#8+`N9Y{Y#3tEH+Cl)6@~8xK8GAisoa%#VgKWkAq84`1OaEM8)lL zkOPVcTHPcovOB;oMbT#pgohMcX&^tW7(}b|BZ{7va7Af~y5T^kD_ow!XO`lg5y)&s zJ6GsVC`Qo0bW*W=5+Hes>q|iL72~kgz@1mPn1Q^Y*nm9-?vkQQFu2Q#op@Qe0>z_8 zFfUY$X^KGC6vOFWUsp_N1ZOuDEk^=!OEEbM&h98)9Razk*h{6&eZ_Y)#}+G!IB=y3 zT^ravP|TnUd!*R<2h1NUrqS~3nZh~^Njz8ldI%9-DhyfBl_`FH2jMHlv0q^DS}`LW za#%BDBc#p^=CzO0Gv6q^R|%?S!!C%ugxx$YnDzP!B$UnE zh9tt+JygB!W*4@Cmp$xwH+YF;AGHJ7%cjvHDVj~50xvP_lV%`s>=UZl;@Ph*AVLB= z@dda|e6*lNc1iH$;JcZ1zvCea0euKS8v&Ky}y$4+1W`8{igFEb) z2N2$4FHlFLh#ieCI9JRrqoJgPUB3e40lS&{Z4cS_3-I!U6_&v6Df=%ip`Nqea*!8n zYg#Clv5lw@FK17N!mfh-t|4-H!`7qgt7Ox#>A<~X%Z@_$ft_Ih`N;0N4TEZS&On6y z#HLgG?K8Xm1I(Sc4pbTia{Jzc3*y%I2N%Yv761~?C3STO_fUtMY@F zeO%MmKpx}bsgBR$yy74{&PCH4d4l_zmY1ivD;e;a!_B3F>NIzS3X?NjJ#YBT=hoDN zvvVB#0pucALgW7>Ze@Smf&wm*s;ok;Ej6^RajMgRT<6N10J+Jvr0&rzj-@8mRzAjx z2;Te*YJd9hbCSXB;8O)~zI-{2w0``xJa7SgD{K#PyZA;_A_wu)e}m6pzV}pcq5RFk z;KF$4l_0x$uh&5C;Tc*qNAg@9_}t59odOrdw?ByJ(R|tp*v0Y>sThvqLpLH&0&k#R zSt36%6v-#^N1H%+kRMF%bSnRrrn19)E^Rxc@!!%Ina(fALYK?rO()^=82^;kFxmVP z>gpcn3u$@!g1M1YD8Ws1>+k(Q^-wC1PeCxCde%8ps}s182bQ zvDk~eJP{Y~z|}qzg@@ptix%p_ycEYNkXe~Hir#?N;=g7XREYC0fxH!s?Gd3;oY?@* z%9Lk5!k}CkO$*Q0%FND$RGz2t^R05>p9ov2{E4RB_sY#Q7k^N$pmuYWQmX`{T3K`i zkQ!wu{Q#ephp64|EbW*Fp^Nn02t?Q*$*4qil~VE%Xp{8x0FZ9d-h~jlOUr(SaEmlX z0iT}I-0?8*k{0^_;w{bh1lcAn9{}MFDaaLMr*xWX20v+9U+DZLFKQGAN^jnS1WAtx z86y1{57(j6fs=rQOKbcPVYlQTiR2@sJ2}urO0G0O?2~%a-b9q--xgWNNY&k79xF|w zreeHwuRXZ^5`D+VB}x%yUh^)H)eH$^MyHyPvLbylOe;-JMYSLJc zNY&i4NN}&}LN$>4R4i2xQL5WitVgRF(l~fPwdfUe$*Sd1&>d2h(cbk@m9h)6PE(cd z1DCE!oCb16yXBW6lF1HaK#sBLO%WxF-A3=karQ_JF5m>a=y&+dWq+pu z`7|3#Yxy(mIBJjNvEByQ<+DSm`G1b>uo=Sh>}WF}7uZSdpu5P{qhsUcvsoCt6*@AUGO~uU1wA7LU)6mPA!m|Y^ed{7VAdy+-#}z!rtBh*H2l`Q}FqWy+jq_bM`bnqc2z6^uYm0b0xuiPa ze7SkFTJ+=Ab%7UuZebL30i5d%1lq-w(ULWgdrnVY5I1!$biv$gdQ?NWyC1=Yathi% z3F9t(g9zbV><%DzbKxJ6%N}m|B>0Tr9%LhlNUqm6(Cy`BS)kj;dC(IQ#r<;-&Z0SG zG_ELytEq%REax;D&f>V2w3>?NPSpo;KewK?MiaO$v|dZ(a_K{XOzyW<5MJhTsZhMa z3B#c);IzXL=o&YL#`^2rbw?e|UC)QJ+uU1xeZt-0s_50f%l$!}u}9qG$uM}#HMtMr z6K)pWm#5tP2>5))g;J6HoQs=`j4S#bTsg;9!SySy)eDfpdVpb1P_G zb>fF6fH?EfVL-a@T^1n1dVcbLKsN9T`oXm;zwU29Hu7g_iM5$8plwWd{szsYTlf_N z;M#*9GZn;>_oU4PFMc&G)VA^~s4wKrhfji+?Yt!w5Fb8@p5z_;TUzn@^Etf`D1a}Z ziFgWFpN({vzH6!2bF^C=1<;ly$05&DzH|c&4)b-s^n04& z%TyG*B{Ok-8GIG3$+CD~86sr!efNSK=O^BT`6=Gg4dyv~(LHdv{DmHfca{(T83uX$ zekxw_`Pa0+bAf*`9L_HC^{QcTiO-<+P60nx14tpCNw57?zC8X|>xJUdr`kLY~ z|1*tXPx$XMpnJ;qp~dYpzP1hx(4*liTpfTwe!_zhxLN+fzf{8n2y>_;*(EfmMrWYlybcCI z!X7I4f`#n!5QYe|;=zRqZSjFN7bYyFo^!Y`f!4pfg_z|adxX+|VHY73zJ@`h@XrE3 z_6o;?!R-^&mvOaGLOXg5qlJ4rfQ%6?b_Yoi#)m+cDAcF-C`stG5yAt)hS^9ySt$4# zBtu!;>4wn%IK12x zWPRb~mQbf3Ah(5q^zFtS;pJ8c?+LT+gDVo+heLN?$fL2mSlC3{93?{Vd3bp!w73r4 zBcY=w;yo5}sD^nW?4pYFsn9$Hx@SUPDvMtT*_!})DV%H%QYI{;PGh;y%nQ0#cpKpQ zjSxB$25$v-+U~Cuu47A!dnY`m!T7!K{0W2~g~qgtRwcO7vb$OkX~g^_Bt;^n&%(T~ zakWljUFyy{i;478trtzdL$^VkItb>jVh@_w-NcSRfZHsJRLZ!E<_GYy1s{ilc!&>+ z5zkW`%7XI}gFAtEi^B)OZks4H2j?U1qMN)!9B>+Br&w8pu)bo4IRn+K9WvNxgs!6f^rn7bMzfi#}MK8i(j1VrOcsg^KyZkad_?O~Y@v`1&QtZc)|@ zUiOIL^yOHDm@^Lsk>bw=nC}%wQhB>iG=;)EN{pZ?H(D$k4=zTm7z1Ri*z#xC#fbsm z02wd-tB241VlsUelprS2)RQPiQ=2A9JWp-e1EPcv?Xm7Ua~aMKio@H$AVp063(gLS ztrh^8D(YykIxJ=+fjc6$_XOmqIJgH$niwzu$aGP66kLY5t|fBG6#c1+KPLXN30#)g zC=n4(h+(vXIVm=$TX#y#q8*zY@#%V)=Zb4-ayu=Kj|Jqcc$8|;Jn@Ab$b7N56wc0x z%DLdqiz}!|yd<`w@%pm3Y!rl7#K@H(1){17q)c5T636IasS?RC-J8xd}Z zMfAbkZPAIgx9*6hKauraF^1;Gdty5!xFRvv8+P}_m&3soi`}VXQ6lzV0a7Z~n+Dwj zaXP)|55@4?aP~+{4T0;&Vi;9VPsGhs89x;}Jc96<_|rs?=i-=D*u4Hi z`0E%5KZ@pF2wNrk(kEoqVt0J^zsNN}_A7pe=~m2K(Q+@eg(2Jui@ zXz}2wd_;4Am-4|f2)8Ree}FR|rDX(?*r6OZ2aui0g6|R5S2_6;bbiV@!;y=>a+U^= z0HtauT<=o;bpnt;r6>_e;X-O9#v z4SSTzBKV9{deg(VSGkpb#(l~~bhDzBr~D8hMp=FnT&!~1Uf9Jc`5A!3D-TfrV!v`I zH4YP$>5)JtDxdj*OH$^21>HfV1z&J*Da!g`AcvG2_d=MiEcpS*45bIzWhxKT{XC`| zON+lOrM@My&Q_+;F2`|YT2N zmlH^#a_*l%UQ<>*fwSw%6Q{u4P%b$PxAv8P{D<4KeSE^jgBbNutA1=b+p>h>{$@Ee=IRUydc^gxlBtDrO6p+)$&s4U zu$C*e%Yy6E(vll6KO@y$hzMt;EmSAxNs+XHnJ;aP19whxrP}+vr0Wml1?lk$kW13& z9x%TwO`u=;iuCRXAh)E*OE9=C75)w39Vvr~w!2b~JJ8*ey4E0_j z(tn1oMA}D7#0S!R`kvsS)VCM7N0MnDbdROHKyXi_OnPjdOOI)edm+sZ!<~33wWgt~ zObR~(;VY?REy!!>`~?Urq-gr;=#7+f7v!yUhx&Py(nTuTK1e0B>HATtL%X3>Qs=dB zRxK^q1@4p7i@v?7k*;LJ?z8mJ0|rj2my>ZR&Z=-1=v-87R={Ars&pB28&uw%A#_!x zje+?_)emt%Zc@en0?th}l7`C7s#Gez+*PlJgWIB-N&}#WY8&lAc&h5BAr~)I#Rx#Q zs_HDoMSH8hqSnVYRqIl?-mYqS2s$6tn)(ois1C_s5UR?i_Dz^-L<2x}t72{gvPZR= zTEr2mlUo3ZRLyPzZm+8Ib3me0r8Eabs}es$7o+O`1c72zGe?2Msa8{SX}{_|jdcmC z;HI!kR81~}&m`49H0>Tx{Yf>-L6v<5bSbJ?z95HGb0Xk6Rn^S}$iu3m-asBzmC@Xv zrkXShKGRj7S=eQ$?)QU1rpj#}kXb5@ZgRG&*-aQ6SG}T|_JoR^0^vzjJ-TN(svcD0 zYUd2yP1WGPV18TmsT{gHs`b<) zxvMIg3xj*A&ZBU9id3z9fGk$k%mlJTwU%b)Qq{JR5I#_a6~Ng;m7V_m%41c!1TRli zG4tW&sVa#+8hxfprlRJ#%9pF#D(s%(Nmd0ro@AB$54e7#`lA?j zZ&mH7!BDBP(>HSORDY4ddsP6fA3my@egdRQ6-_OZYSpA1kWZ>*tAVUhji)ivN!?>4 zh_gDB`Y0~yILuWV6~rkJJ`*%>W=h)D7#w+*3Wz z(UDMJC<3=tE%wI^*{1&YUvS&iy`Li&AN6Re?sup!P)a-1YY#!^r!M;*Ui{VGlv#kf zBW>*NQvbyO5~$vH8CHf`q9@41ry^`bWBvd(@W)Bc%v+=b`Wt zscuc}l)dVetw8pv|9u04X!SzsImW2ZQ0X44{xJbuocg8&E?(WeBe(>0vm}s2^%dII zN>cCf1UaA{dIAxW)lKRkLW;WkX$TLghkpg1sp{r*2M?=V=*c>w7RP~0Q}3sBf4X`F z?Jj4iUF|S9rgr)P!YuXok0H!fm(b*PTwOv>)(LeeJz1yJ;|C#^9Q8ln1Cp!utPk$A z`ZhgTXVga@0hy=H?Fnc3>YeoSpHt`3*7$k#xZBWOP**PkxuiCJhO^7+2h_#6qK;dP zJ71voqv(a|G8Wu5b*dG*>*{BlVSYoMLsjfebzAazOTF(KAn&M?vmm^yK1xlJd+J$3 zaU+Y=v)dr+`|7PUKa{8s&@!o1eTc@T2Woi`@_eYy@`KMu>ZjB!exlw%)9zFCywxDj z)Vj$qc&_%F0531pmFYm1s~a4E`78AY6S&uEa|rAz)YE-JkdBd@2Y&sL!>B>yPS|SvqkLRPgv{K8=R? z4oxq5c6VytpM=g=Q$H7+pXMBGGx=+bw9X08^l1UzE{!M6je(lA@gPB(;qJIS!J40G z9T1{XQ^PG(v%d?>cWXSl!(fl59rd9jG&1TTMQXZVhiAn`u(lz@2 zu*=Z6I3aAN#zZ}VW19Ob5id(~mFmH4O&oo~c3k5@FV_i8pUcpl)TG9NJEi&cA8Cg1>^oz*;g0FtN4a|0w_lS0kubDA{|K+bCx((c^_O(4yw z7d6;S!+WH;Mn!Oe=FKSR3N$Rtoz`1It#DQ$odK?4Ur2VT6h?{oT7#M8UK8uFAyH-PsgDu(>G%acFrp6`cTytU{4LG*3f3J%Ea+9LYO)kj-r3b-BG9aOsS)Ye%H*S^|c z#{%i6HBx2luWd{p1qEn5X}55f_H=6`5vbic8(fg~S88DdYa?jk7oz=h0(^#QlUslb z)27Y>7p_gEfo!)nmWsqZ+77hu6rpX*gNxKQrycpdT3s6i+NTY_1iL7$>@-|QYY)~% zpcw7$AaJo--HOT4yf9=QG5;q=XYg7y&2qKVoSwDFLn9n=ln0qr2#jY!s> z_z3Qxb`E`hoT|;FF6v?JoPUtS5$$0KkfYk8U%^?Lw$lQTbgi@ukPPjR*Wfa>{?z(E zroBenu36f~R2O7xV}oFKT>FeR=}u^SM}Rx2T}%bRDXo-(taG&c)_}{^_MkP%Y3&($ z|ITQgY1wjC+b#kT^0WuOg)m*X&PcFOTSK2cT-9dLe$_SY!gt`VYbEME-OyGKgqNGzyoCsROMCoZ z=x%Gr{Q{qNwB-dbxT}q)clw_8+;HfMw02t9-q(f}z^+)!Q;)htyU8E%O0};20C}J- z&O#CowZo~3eWE=@kIhr<;Jbi4(>9p{@?0B8pRK&mcIgf;FSY4raAn#$G&h!OEe(;` zEA6kV;N`V;iZe)sHiG8xH`;}?PJOGbq9?La%cx-YPMb+l2^}2_0=r-tj z&`as6OQr8@H|j3Uf%zug%3pzW({;ZJUx*FuH?l-Df@^rJQ_mr=D(+b=<-2&Pl zJFj!6ndE}*>@Ik@sQZeZ$VxL|V-5uQkDmjXDRn$AYuPZwau2|=+16QK!_zI*{ zH=4GvALv?t2i-$m6n&ijNasHV++$rYs?wk6QbXbFscr?mzRz?c%n&};b)sVSrS38< zJIi!y+d){a+d><@6}s=dVE#r|ObgAoy36>WHw;Nc>0RhKi`I|l zKw|V)sZ|}T&y#?R)4ym8XYu;gZ;;Y{z3e5tBuEqr)o)FJ@UTA36?RATQ|Tc(s-H?FT$zq4%dn(=q*0>ZxYwZ>@sQ zZ2i|%`Jd2#vjXI#Ug`_sDSZNs-Z}bdvk^U4-;N6Fv-(?9NaX349|R;{zq=2dozriB z5AM9)Ef@wD^zJ?&7xl^&u)C~p;aJP)U(?7?pkH4H30~8SG&En=yZ?dAZs=W30C`g% zy9$t7`Z|{p;kJIneIW1Z7lgyvJ$(j!N>HT#oi-)z>r>~#yjY*o7|0U+2O8u`^*zVI z*#mt9E$ScYchKiikM#bh0ePnXdogs+_1CD^^+JD^{=w`^{k)~%%JdUf0#dFodk*qS zzv?8Auk{hX!Apfc@e{(n(X%uczty)Nja(}Azt;frL0{h&kdJziKC7zIpKv_T`q#ej z`APp9_26stx*o9mtlvic7bnA&$Kad|TZ*7_G1N^3S#L~;`tF>E#>ke6ZoNeH(ZJUsyMHU!ewjoS=MX>qXK zP^v)$A448h7ds5isbt(~u-w6A`Wgayg7Y&((LM7w1k{DI0K*|OxLtV_kjyFD5*pZGq73&+GEHc4uc3osUKWN8tSbEa<5@u5s>=~zbyud zGQ?A3H`>sKe8w1BdTck74*Cu zFj(ouOEwIn>gk}N4sFh+7+TE$@~~lAF1RCx_@Qui)NpkpglPtQSCDkW4%%eRFuV(e zd8T0%{ri_=hIKjMvJ72+fL*p>HGRr^+)&dP!V`wqEg?K<$fBCzl);T!NjZi&v*0?{ zP;ds^X~WeENaBnk;d=s#v{znWxE=*zq2c~T7+f`6q88#c!_^@m*A4NdAh!&43V^(ASW+L{9Ycj1;@vgy z^kLyWL&ZCgBEt`Iko$&~I}oqfut5c`#4v3?>`D!Nnjyji!@}3NzK4bq4+tL_vgJBwd?eozv>k+srLva8|wPBP3UOpMB zd_igq+4QZ$XTz~T5GSK`G0dHfW+jj=MpJWeuEq@;K{gtjQ%$?c=t)}?ZpITUaABK` zr+lDuH@4Ft&=#XG5)cpL6Dm$Tjg6n-zIYiUY4NkwSWYvLx3O&)0&O!ckA}f^<6l&> z`xxUog6uH%^nuTv#!&hk!q<3_I+uRNf|cNQ8DEPC8)#f!0WU$ui89=?VB--A6k^PE zg|kp&2sLxUjF~&Zg&Xft)wSDr^DB7SW4u7qV1%(m2`uPw`;09&z%I)8 z53LHKja_SyM2zu$4)TmOeyR&$oN+c)@CnAuiy(={I&?)z#v|VFa==)21qR8+?K*G= zjY}$_OEGRajdTwgwUk7vF?kIl95zm*UcwRMwdF84YCJ^6bB1v+{S$*s<7r;TeR2+tUQ zS`43OjmxM;$uo``2fKV@ES3D{j8Q`o;ko%_ zjb5&M#=Ggb=py6#SdjZhEA`onjcRK8mKa-ags{|@)EDHD@imQ~kBv{Mz5m3>(+}{} zIGMI?o*93oQuDbnpV|g5jO$$x@1^l{BOuF+Q^x^WZVaKfS}?vfrcpg#Y1~N9#5?1kG-19s_I?lH2jg1W_pLTo&Ij_7apQS-sWBd;f0Xsv zc!qXmolG%*fO9srqzTN$)F}+Y^(KGXTHIhV(P-*wI`1i955LP|Zc_(2?Dm)c7Cno6KvW+i&{j2)rbin$awiXv&=mF3I%o68Jo5x8(C~EJ`t08cYvHSZJ`gda!hxd0dmIVLu2Gw(@c8p z^Gvr_BEfuX8R>(R9@c@UEB! zGz2L$)o%g2tESvABzVpAC%q5XO$`=;yJ0dG0CLl`W*p3KndZ=*_g&M<)*$yxah;$m zGF8&7cHiV8f-5$?p-&!4Oy%Ud)bx?o0S`=<$ACOEwVw*)BU4m=JQ|NpKhWnhPfR6i zAbe{2(H-%gnOYo&@VV&?wYXoHuF=c<(v&y{x-ydo17x`==@z(8rqz@~NK zgWW!J6Bc$+=1Xs35N&QnUx&w-twHb-Yu?@gkT~9RalOIqH!u7XUJ}gC!{8;+ ze21p;By$7DGQ#{aAG&1o&AG_>pt&XW)>6zi`pWXKc`X%fN6ad(;2k zEZy9t0IoC4^NvH9X?_|5FUQOWsJWSCF6)3m+2)qh;pMp5whX!xX4!TKPnr)qVngSIm92i6q%*2@N(aLu?q}}&8?{>DlxC2wM?nG z{&*NXFb}hUJT$NK2YF=9pNCu?o2O7U^TfPmDY&QRO;n9OGZ)iH^xT{%!2E@|%M|Ed znh*8{S7r_h2Prp)(lGPNT(ca}Uz=mUhtCRgZ(5AJF>^FOyfrI|;kwe?c_bk3%rZ~- zd~e<`4dx%r3!Fhdn!l#UrpnyLh~%ryXQ*iVWG)VbuEw112JW+YV=SCGS!%Api?ijx z8|Yjtr?!DxZy9tAJ~vooG!nU5hMk3Oqvh#+2sc}*Y36dbETo>}7Ry?C7(6WLw1)Mx zwDSbg%Tk91_^p<9^r?imWndx5Hj5uE6}DSK4}thtjI`Ch!xHHM-A;>vZmX}wjfM+9 z%b3;B`CH5{;U&Ow?;v!$EJIE~7ifvR1M?8e(pG?kTF&)_F3d8MCgE_4iU#=ImL83O z++*?NU>;$aP5)Lt($bwirrB$WqhE8MC0`GND2vY^=%Ovt=`-FK%clnr##$!PPZekJ zp;cYHC5Bd}`z`)77bjR|+yo@iVxdwx$x_@4<_9dp=-azwOAq??=b)uG6)q{3BikW7 zWNEe=wQ8t%Z0Ru>x+9k7i=aDdxtj!^X_j8}PN!S8iqK_P9*+f=X&HDGmvYQ< z|0i%+mQs3)vn}bgm^^OL()P>=%YgeJCoNt9fSj_Nq6T!1#U~M5uI1k$FgR_g;{@Ru z%Ov`6_pBv876y5i`E$YLTXZ9#J7-x-E$8!=JQc_V%S1iWy=aN0KHnwF;}1ybvgLe7 zkSms>RDTv&<_-j;(6TEA=2tC)SK*>>SUPWq@TTRf_i%m7QkDVaZHp_-9d|4dv`Kf@ zqW%QkJ&S>A?;^{m>(Je|#J+%CvE_$7h)`k)WC1C){OSSnz;c=vy$>y;X`TAWvU(24 zV~gzx$P>%gwAOxV$qfd1X31)RTwYrGjRq;REbj%oa!c2LfP7`K|Ah#zE!DK~USUyD zDfY&qEe7}2Vwi~}DlIu30eNTPTY$W`G^EXp50+muq5Ej*PY*+tWxFeUR$F9L(0#IO zqME(Na`q&=e6~zIhd@qNkp*$K4&M(u7i-Q07_7I((ZsjG>P6pKxmxFM1=(o5c?5Qw ztlPW*akFmt8+U%Q_0mqbcDEK#Ew#n^T@oN3R^18cJgtHY?7Xb+<6yAW+Itm`-W335p$TQA*BLt9mD?=ZC?zcXq)kK1|=UwO$ zt!=)7&m`+W8XON;+SNfhI%Q}E++HC9EW=QwAbr_X*C#)6p%%8L_rCqO6 z)?hQz&9N$9P!Rt-x~nQv-P6-9CF{qDAeXJhAK>MRb>%}K3#{=iVOMA^Y6o)F+VmKFUb8Ns!T7pW zPA%CR)^2onZ(6lhaJQ_3+X8ai>P$t(9qR}B_WZ8Zbr+6p+wrY6 zYc?R2)&Q#6KUnJ*!u+FkLMb3s)^^e0s;y~eIQwK>&=v+Y)-E&(f42Taja?^OZ`#^$ zwpFYH=VBYR6Wn^6<};jau$_1U;%fVGG@@^`1<)PbWLwz;oSUumBMdg%qW*=@-F9&{ z$QIiQ^66y@tc&a0YFi*7thcS`PZ(^oiDQxHc3XXS5FZ=v-GBiAZ9>n>O_XkXyElG#HfH zq%ARGh0vukk4&xp2GZv?Q#Zm zFKvVW1XpIeSdDn)Hsb)K^vX8B84Om|A?`f+iIUm6^pmsNc&aW>_IodZMTnFh6q0PBY%L~ zVL#RxK6lzRrxD%P{zi*He)eayL+o$wEf; zCqwLm65uS6-6 znm`z3PY8tTXnPTLaboNdK@i5;S0{kP*$2{?9B=38e^0XC{`+=ZdxE_w?QkU87iGdr zk{$nFalAS9(^S_b+beYt9<;A*0)rHLR0+r-d%ug&rP`a)M*mT}g|^Ak?517_n{FTW z0VKoTUWPm~?F)uNcg#Nj7`$ZJN6>_lZP%WI@VNaX&6FqXzGuLlv=`E(c*?$f2Dlu1 zK?~?|?a}`aN7o%!b=k#JvotF$t+;#N%iViW+0ZOoX2Z11UM(v})3RkLL)jp*muvw= z5D^d+WQwQ^1(YF(AfSNkDa-eJ`s;koKEL%mXFL}ufh@C&px`gr%}`Bp*>15CyeoD~ zsqI>B_mFmk3cL4Df>>!caR?$+c3-IhuG$@b3gDU@=SA?U?cVzi!PnS%%7E3{-Jo6V zy4}yjyJ2^010?J0=F!#G+a0EHP=noiIw;j>=SdIlrk%14K{VOTr-^N|-3e-E-m)v9 zva`i*(`{I}ZI`kOSgYOK1psY!g<9O!J9ckfg|T+K&9o_Y*tv87blNfLM_zaBT&H34 zp4~cHU%Kp89)js^JK1`u_t?N+A(jM>G_0*u@JJQt=X>@q3Kdti5th?8~?-T|1h zd)frvv|Vfwcr$kE6)-((w}v*%hjxC{esg3z&;vLzmfeJRXGU59^jsJ_XzSU}@Nb90 z0mf1qG`cc^D4BI*d_NzO?u-`NEj$>lG~V`PRP_V%Vl3MW5pTwuw21pKHh&2#eheig z8HX74!?5DdSXKp_0gMw`hy*fRsQeFNFlc-c%ou$gk|B&i6C^_!@1KXUFoxd;;Ds{| zegwA>3{^MuA{pgRL-H_V8O^+-7|W(163tj)!2^h4B*#E6ma$_NAdXS|0K9m{8R{!0 zFjA?nc!Xg)54}W27tMW>7&j=%KgxK8HsNE8m;Z%i3WF5|aGdcc8|tZyE!0vt!3dZcfkY+zZ8PI8pZaHjP2G-KaJU^xtxJFqj1to_hC#~7{z zF_%$C4Te0%ldpqVzzE+6^+JYnJ&YAGE?XgTfzermYba&plj)0$4_||o%M5=So?Kzv zeHD`Bj3hesSjW)N$fuFPkwfGrV|6>?Y+|qz!E0vxycOUU<7+EKS{N2Nu-goK>K(Q+ z)@=f4V?6#Ng1EytNP9p#W6KtR4u*>}Kqq6h8^B#gOBU4cF`lI--NUe>dhy@I%IDE+9HG71w|{F=bm|)0ycr3K19P zE>Aex&kUwl{{XY)NdQ--f!1U&9A}nOXD^khT#Lxkn5*ba_X*~AbkXU|@3SFt zlDU&MsSIW^HKa~4f28^$lR0t>dRa_I+JUl}QHLOTnwdq%6LOee&=IFI%-F{O&N9!@ zN_39-_CMg|GBuY$%wxWE3jXq$3j?5Dz#Q2OVj=UvFR)U?Or+1gn7NA*&l2WRYMGQW z*Hcw~kr^Wgv5e_XtKwzmQV%FxVG1b$DQ7Ny3|Iy85h{}^na?+aSjBYHLE##6B~7-f znSCh`sbPL{7shItZ_zh)o%t0L*bQbMo$0P)y7@q|o@x0O#0KUc^sAyqX2F-Rd6UVc zi*8~j=m1)n4xd2sHWR<`#uvbJ(gUEWL}Af!d+&-VtBvD ze4hHBUCgH_rRrwpQg5w?IoBDIz0C8$0Da6x0j%^hLw zj^{mO{=tE1N7jNC=sB}4(BpSu{qi%g{j3yPdk(P7G^ccB1x&!78_R`yPadp=Lg;z2 z`e@+m#o8VYqBm zAl7n9GD2A^=tNx@%OMhu!ddpTT}QBb-h*T$E1z!UVb%bR=%ZOL%fX9b%{~j8v8?R_ zP>*Ak(Z?0f%KI4#39N`h5EEIyh#->0`nUz^$*fmC0XWLK$A^_;tV1D?OktHYKqQs5 zlHT1k*3<)7Il;O?!KbrqufWPlmSZo78LUz2b!DpQA!&amEC2xI41i)x{e%c@%mERV&a;|b?k+r!{JpJm+(g#y+tIsjP2THOq+nDy>g z;FYj^*&tqE_0t@vl(q2?z(v;2{Q#F(UKIRg)`=Hk^9oB&=d;RLuM7aIV4bD}xsvtW z6o^+@?R1x}v3AneQO$B84>hczdjPepf~D|qo%Qtd!0K4v--Sp$i%B_H1B+Xa>uY3v zcNy4C))i-1X=1I|46KD!b_3UUn-#JYj#^pwxUkaBV$-?b4ptQpyiV4<9$;OpldFJr zvoy4o_pt0ULF{9FQwh`ktc#S*46s6}avNq@RzPHgwT?=?QI_3Bn4VxQp;zMpYr_I~ zm}L3H!q^P!RxQ9R%c}!=4_TiYAnC~Vy8=lkHaj1to!JEqAiA(Ge+S9^>=~Nzxw7MF zO5?^>ABChldoCRi@L)@+^7dqZZ4aIoyLJ%j-s~Ine)_O;|Aojw_D_Rw>$RZES-=G^-r)5y^P4x*+E~x(Mk3%d!cuV zZFdyJO!g?<$SigvZ5r8ZGtJ6Rvlr2Fn8S{tSMdznk2>UM*@ffqkju8w$+0~4^nV#V zdnp~N&u4#4YgPf9_ZE1C>_+Oe6|tLW#9Pcxpf1h@cKzGnm9jU{1Gvbx?*g%m?G*sM zOYDzn;&7R5>xPFb>~-@&EN9=NZLpI4AQ9fH*hW5rzsk1IIge}XNa|fwvwyq~UJW~Y z0YEML3(9S-v)yPHtz#d%3Wa+1zm!%quy?C~HL}kvfrp!H-_L+Gv5yI0teG7~t$|zY z?MdLZvQHaftc|_)F%a*to9P*~vvWmI=wM&0LY$rK(=6D$%jVO}?H-%;HNx#?i+_S- z4|{SoMDDY@D3R}F|G5Un`q=#U!Ru$|QVBf3HqoLw$nK}FahSb&Kdg+f#WbZEWpAVk zY>d5w+>W!)i{WU3-B1kT19l}Ptds1swB${*-=_}i47-qCsabXe6-E!)i(;YR$gxuS z@5HIR3!*dUY78V@IBV&RJitl%6+BnYg7@IojT24tBX`cNOCWl19w~<-PmcNotax#3 zRR4K%7SQoLU(RCcGaTe(`2qNGGN|`-h@*HPvG{YOLy!#MJh}?T0y(0cPzd69Qi2uA zSxy^m80Whu;V+!?RvaWFIGt1gL~?HY1d+p>hkmdU#o0=SIHEb<&=wiXc_|jeIL8 zW`LN+SvQKvPH+xVmm{6yD*^E&r)C;fPH}wcZ}enx4rKz%;ym92@7bKWw3?pgoZEuP zayU6Rpnit)&I<6(at?0*FPEdIeJqdTK=Y&X9DgbY@;UeZt7ti6ze2K@BcPuNlyDkp zjl95_N9BJRM?&w}CC(2U!Mn^kN1tH@r)x8am7LXP1X#r}E`Zx=&dC-KYdGJ20FheG z+9nX|I9dPA@i?wD4r<_x(AVF{Sxk%7O-}A2U`?EJ;Q$>R$D4?(lha9y&Rvd11Jn07 zN9kMX;@qd-7NJ)e$LB%zy>&BX-uKNkx5D)G!rGB1V z39Z6j+`o#U?#(?yRhAF;{XYPFxv$d@(vN#T3my(}Gp+&nbAS8-!~pIyln4fLLpK8i zaaV3doFUwL8smm?o#+(~cw+a$p8u5zbG*~!fjm-kwk7!JQR|+?gIeH+-Ta^k8;&l zAaabml=8C_u8rR0qWxUFsgnOrly!dYDB zU%<=e{`?|L=Wu_y2i_U(Z*_?CEVrA=xpQ1k$|rKUry>FJxa+B-o6nti6Y2%ryL5XB zxz9)din&Z1L`t}y{{!p-H)#eUrQEgDHowUIi8?%GTz8sfUEAe5e6W(6NRPOR`;0%VT;smB2)t@;&AX7S;eJ5-LoJs@cm6tegDZ$PxYcoR)W9`R z|GJT@qDAK>_o;cnnz#@D1lG*;?}o@NZpPQZTDT=tI^X6#LHlMacmH1qsf}9@4(ty1 z%U8i`=dun$y@UJS$580x<~;*&mpgtEBKNpK^g?%Wm(GDmH+L(2%suc25BIsf)TZd= zI#FTU$9;7iSUZ38kl3;Wpu7& zoEs>@^-XZ!pM|jp+`r#~@VJHy>Ux#BGM*g7aYZhxM*(c!W1L1<6ES4)qI?c$KH1kj!JyMDr-G znlh_ny!QJLN#UhYEtAZ&d5IM=)u@E4Gw}MUyo#Jgj3M`ZN_*zJ2 z@nY%0W%G8^p`X*d5IV_~!>bqvIK#`O6Cr1LqC3z#$J52bW-gCAjUe)Pf21JX^Sq$B zkj&@Zkiu92uYy+gLSE^k07bm9S3oT0t@;91N_c%6W}cBUJLX=%7%=n+*W*DleUC^lQA$N~l-!W_H1J4e!e13Xpv}9R_v|w;-NOrc7ND1> z_5$eR{XX60af~Ny!=+5}c5Q>r zDPHk7h||2gp#U?yVCqWG@)|v1(~uJov~_=S_; zW%IYtB6pghI zA5VR^tNbeJrC;M)z6Yr0M;3us!>{@aSS`P`6#lOBcf1GnI)0!xc=i0rOz1W6e@F#r z9i)H>V-8QT~AzNRIJcZ$V_7&s+`S1b@RAyg%SyI}hF@ zKZA0&DgKjo0Mq=%hX7{y-%w>U%P(wz&4>KOR4h9R)+~oVC&4`G#yAT;S`1?@0v@GX z`vv7x?i>)@qW-R{z~L!iZi1*6z;hQ=Pa`A`!37SCc?x#ZXYVC=m8^IR*jHfFN3e+6 zlD>kQ^vkG&g7;`v=PyV~fMkFmXAX=73Qp1I8zOL|u6wB9{l9^Q2`&&8Dd^4vI4lT? z0f-VTZiAy(!7KEB#tA%WDTx>C3WGwTK;93KB#59B1<8W*eejSXctQZ|xZod39a04g z9pOD)@HP$NP6`Ir1IrNn{RgaM32ui#BwMg@Ex>8P)89hmtYFO;teg|LJOnXU@KF^! ztq(D&D4q~C8a4xVSfw>o0v0!8p-b(~4p8{4YNL~P&7X@!+ zL!?ab(oPt=B*@E$_sfEVv?G)Yq;?=y2&!r6suYyAL9a^iI~_HRVg{~JYpj+1=UPC?Gw5 z;a9`(7a%O7Azh$w(hBt;q374Yf`#{J%n~A8Rt5D?VT1*eVZuw)Pz)C`<^Ve^4536Y zO6YSJAX>Ph5t4DjFLIzBFASk_H9;6g$2O9L^EN{vS$K5_B1eT8^c$7qLi`sAyr#k} zzr$vlP8f~HFbD$gmWnsJ14B=1Ira=QfZPW zDvpO`U~X!Y?VMY7uUG4aD2RNk4#A z;ZIcVvmVglb(HB%t9}@M`yX!9+{1&_bk&g=`14YZ|iwhDZQn3{*`r*Gr zVxpOwAcl!{9)M)H=xJ*DMu?i|g^m=RrZ*&7Et*Rm>(ipIePAp{ zG($J!jL2sf)N@6vDILiZiOzv|UevDumM@B;U!D|*Of=ZzW zXd|r!7er0T;FXHH{NUlDh_wO4GSS0ec)uh{p}hRED3X4yb4Apzg}-vqqk+IGM7>nX zR*LL@hh&v#8LfO*MSawuy(U^P50cfQH@gsSjp+RXfLalk7J=)cFKD^HA-ek}K%GcO zeWH3%2qhT}BF|A6YZ7hz9K>6q&jS%zi)fe{n72i9ssUO>pHTMOCfY>n(jCzlAA0Sg zeLq67L)85eu)8AH-+*%yeSgI zKyf%5rh~+Z)Ex;H-|~jBP;sRgSeW=Uonr|XN7Idr5PQ)>jT9%RK_p7-tAM{~@z#1^ zG2%N^g~W>8>0^!)FL@1m@nYL3E;CX5H7$8b;;c%jCyT?sfWk4ci8@g!;^*jz9TzWm zhKE$~rV8-V#22VvkS|g+9`1tohZl@JHG*tCH|Bq;MroYXegW( zGv5c6Bfeh@n`gzjYhdi0IAjZmx#D$Hfai&mwgH?MuVa8%Al|eMrVGWd_d&8q{O$yZ zCE`9ag1;axVBk_p#l@u%xhM{z-J(qVhZ96Di&G{M*%fi#$1qkd&ZgY0Lacuhpi&$( z1n*U1&p6nu7MFhttVa9^jp1v>XXk);LtNSkD|O;O9)Znzv6+^c2Jx;&5F5qc({HGn z#BHh2YZhx-K)fZcqak^VSVKF>ZSnMKh_s6D)5B>K&p8c|JK}#GV5MEWj0e3=u`j)} zcg3mBAl?&i(1F+`HtdCDw|LKE(7P`_cL~H^@hV!~`oynOH9sJpj)9{=@#AlSHzdCJ z4tT@j^)!tb5&v})yfJa#L-5AMPgA}-A%2Up!w2HWYT#&6yoKtADe-mcD9wudm%-md zajpk2N6FlE0L~J9Dv5_pzKs+g#DFBus3DpB+N-oldk|jB?7eQo89+Uw)Ey<*kG)I#0EP^;AaXbRz zS;+@pAfA&1P$w~0l3{_P^Aceji20KC-#{#o=z9PPCC@d(SdoNB54=Q@KMCxDq?9V? zQpw{*z{(`XeE^pv^y( ztd__xK(a=1?p56D8xk|^0dR{uREz+dB+j&kG)s)ZAl{PH zw!`gh$w&~wZI!GV0%()0N&)YVWGB@*?UIF*_jE{pdKdmWC39k-a983;pT#{%(hd;2 zC7WnR=#h9(6>?v~{~N?!$td+P`y^{`GlUa)ivEdn9Z0cr+>O1EVI z3zKet7YgB0Z!_FRN+VxJWQU~@^s9|1=`ZP!jFF1o2QgL}whsz%(s*jH$4evFP)Lv- zr}H+6(rzlKlBDhRkW7|3*hBBA^ac7-k4e*YP)L#f`v$NyY1L(joREG+zbHndH-nfdjiN?Kmh}8Nn9i1NrBpgcnza+)jI>&g$j(Z4P5K@&iklL=(W@+`?kh~?m^&%u&r0-Dvd0YBQ z1{7MQ-dVufq?b})`i}HY4Q)V7lhT&oK%A1^TMy#2luO;-8L5h% z`>b>sEnN?#aymoqD0_~|Kqr~gByPce*;n+a4#>7prsFE>uYnae*#P~j!Cm&55Nep%H~lO;w9scAtY~^j!s?q$X;-Ph_7svuIQlbCZ+s-vbU(!a!9tC+WY>p%;ynO zfNbVE^a5oqKSCr()*J^AEL(dM{z7EmP@Nhoi=iAkOt!lj3gNOz+H4|Z9rR{J%DkTj zI4t{!_KqmovEQK{E!#i^M~v)4>O{rLey8Sbg6xtvM2^VR1>hyhQt91Ik}aQwda^8L z9N1CW2xWlBWK%ytFGaS1(wO72q9)i(mHkQQ2h(J83vhiWWG~XZ0%ft99aboM9;`J(nfn$_BiDz=VXIRAek$xNC7cV#-tPM z=VgLl5pKS0!46;rGRC9*OamR^wklK`w#ws;XlF3P;= zBPo;FE(5zHTl6Wg%QEpt(7Pi0A5|0OvOGG-P$^q^7LirSf~btYD*Km-SZZVwlycO{ zHc-xfUG^nyHVv{Pl%F-qUMhpgOz1|BiR50{GIG=>d$I_`ep%NBfFaq_)XE)}eflD>5!o$T zcgJNTRQycH3LgdWfozC+0@Je3Uxwt2Y{@>Do|Qef6Ou0WN$UXi+i#;r&jI_TFG14X z{(G9Cc-R+5A|y}yf@fjO$Np2g1-|wh>Y;wnK5-bp-+qk@ml8uEAJ~{WS{d zw!M=M{#xxlX;*8vmp_2p4tv*rD0JGt7Xq7I_6H7w*KNP(4`4m^d}^-r*8zuOLx341Q391rZb=|P;dzjYI)XY8}6IGD9RNgcX} z_NiJ(I?D?M@a`g?{{z5&d4mEX9`ddA;CagRfl&97dw&GXN4`l1%vavA7m^3%Pp*R% zKlwMGL*bA-BNCXu+@gj^fPC3{5Ci4!3V{X7k5GCSBA>~{6@|*}y%2nayqgl9NO?{o zh==9hQ%)2uue}Yu7Q*zzE(94t`ps`$* zd^gpU+49dQcRMYgq+%pT{;?9+S^2y$h@6ve3WA4Rd1p0<`SSTgAQs5C?gl87?VaL5=kXy~DnGXbx96hVmoB@~Ux8OIuX_eqgM9csTv4Mu zk~Ykn@_AH~G|6iMz`G@XKt0YD`O{|rZp(++5V<4wr$$J-{0-W3I^;+GfWlpQr3;An z{T)rt2;DOwq2gyl!ssT2qL|ha&e1o@DvDpQ{P4NVkSMG|UXMuSrmV3jdm%=j>z*{jyb%&3l z>M2<9Rh-C#$U(*G04Vq=tnWeOkb+BA{1q;=j0P$)xVYLN#q^T^!HS5_Arhe|j)(eT zMbCTi9;Nt=#zE1FMRY7uvmp3Er)T6do({vP~04bu_VRX=YSnmIME$Erud5z zo)ks%c}N~t30LxKq zqkQR%;*)ETJgbPN>>^iTHy7&p3f7+hg$mhH5Q`K>`e2I{_20r+iJ~=DGVA@GJ zss+(mdF>9Y>{qrvglRXWf^t3&J4&ZNA=0kYvf#Z#X-8{Mr}9x9h@#sa*9uf}c{h>j9>f&wY;zn^EqK0+>}g(J1qw zay>m2XVuydAmXALItvf`RTcE^9#A>1LY%IubqfI8R8JR!=dP;g2IiqUL2rSls+4Lj zFO_r+fVb*#JDB!SeKP`^zN)`NVCA4{U;~JLDt8M0km?P}bo^CYUV%t}s5UA=+ zhs_|>@?SsjH(X_-Q*#ljUYbTks#ej6K3e5b0h=+Z z2XvS;R<(iwy*QO?K1AYGBW=JERNqhqeMA*X31p(`QF^74RN*#=B&$B43gxJ(-2m*E zs`zh+q^MTaf_Pl@rx;kO>SfB4(^SVcf_Or8S`B~cs=ICgCshq}Y9~XLNGCo|sUlax zbf&6;>VPcOtF$gE2p_|F!T{D=2lZQ@!>KBCA(@NF{fJ>bpZQ)~NDSK<}pN zdn%8cRgdq5zgw!oLl9|Eom~WQTNO%YD_T_{RDHIo(%%BOqxxnT3hk;N$X|y_yct-h zYT5*wcU6^iU+$?w{(@eQDt8(R_f>l~L$X(O@@s%TRiG=}_N%_5GXw*wH#g(94yvA_ zrFls8J}ooDDtQ!aj;Ky_fH$goZV|9C)h@bc4^%%q3gV>d=QrVRO0|a;|7n$p-iaC2 z*UnI%Rpr`%Jye~1A2uD;TPOu^Qa8GQ=&Y`%W~z(2bQQ4u>hW zhGc+xRX&J;>V!u43sQeaJ3_E}-C__!)Km0@hpLzIK@3xis2U7c-=G&ILcNiG4H2ns zl|$sPdV)&XDD^j2K#W!g?}TKG`Zg)VsxQ**iBrGBf=ImDOeuJRI)%#kBWnNOfhDT9 z*?=Xf&sV^7vbuCDVmYb~r_t~+wg30PQq+G@Qgd8AX@EkidM~{iY3f=!$#p{gcRGma z>IGS_a!S2|7LQDI_+YUw7p%~tm$K;*P~D=qgq>e$UtKcfx}gUz$*+%MtwoVwr+ zK%V-s4bVHU&ie-n`RdtyP%luMXz*UB&RPk*BDEj&noHEvG>N&O-b}{~O4Ywp#(7a4 zWrLM6^;fjEUQ&0`Ns@B)Rm!C*)bG$fU8zo^M7K)q5d`e2dI$AbuBi>R@KCM3{vLQW z>Uq@fsa3mC_wKqn+7WTyP*1%9w{_}%dYbj>uYQGkgZlG-;Js0OhdM4d)mv%tZ&DYw zg4e7*uohVDsYg13t3U)_bV-L`-PC5#O4)yEyQ0P?u zupDl?)hR~!>rr2&J?FkUhBB63wSi`sed>xwV60!gDhRv*_1dQ)IjC-a57>};RU&K- zt360zM16f4lB4Q_&qHrat)b#)ThTexmHqO;h?8thj4Bse9+4IY6nOr)G^8 zh+dipyKsHp8UwZIeKfbJGWFH$LxDU0phidi2|vwJTAB}O9O{4tYU-CkAxPtX60rnp z+~$K9qIo6)#86EF_58y$_Yc5rxaL#J)*>{21VSWIb7BKbAJ%N5`x&KiF#?O$jQk6m zahh;Sp5rwlYN{n@exjcE5zQx7h$L!;X~v$U(JLUCtSQTdv7?$jkAiqiBd&r-issjE z!8@*bG#*w`H8MK)l%~mS1a?9rV*{jXPS8z0r4g3^WNKE@s69)wllJ0l4RbZH)0)&f zFrB0M&;d5jXxyj)c2-mLD|qKL^Fl#9uL+^Yn6Kf`reB~bqync<<9!vxB8?rbOU0Un z&QK`P+-nB7plPOZpj7kPJV;*D)D}XrOtbX~n7*XxpyaY#Nf??UkC7pW;%g zG{Q0vuWA(4AYRivM}PXLS`+m=6lydzFXD=7HG63%xvu%+7O)!{Om6TYXewopY}EWh z-|bD!_QwI5G~15>G;5}};u>ygj#2}xMWgEjxUKp4DD+x2Nwg%iY3fb@+|m3_2Q}I? zdtU{wL-Q%MqdPT^V|l1yQ03;Rolg~}lU7T$(|&E<4)6|WU#17=s-2pEh?_Qh5JYz^ zw-H1Stw$xScxva;-tVP-nKF29ZNY!75A7m)X??X9DB(G%b^IHW{@PED4oXhqwR32(O3+5o-grd&&L_YUwe#9xEJ<5Hvz}yaBu#}nfN|(_TkOH2;M5w?Dv3*VfREcTyX210X}&L|Nr2?Xe-4&eVEP+LWbj z4F@q>`vL9YXS6@P3@c}~d+7+mIqeSWt>tPHsUMlAE%^v;&uib?4qm=i76M{{_D}(c zh1vp|ofTgD-RcgDIX@jZoyQE!DtJGy}Xb7+?+UEj+m201( z-gbrdaS@1>+P~Mqbd`3B_WrBd(0LHKrnOALO0`z~DB`@Xo%aN=8`_8*@anY9E8(_Y znfTuiZrh zyaBE3EyOvf4ITh-NE^EZdc)fJMKC?0b)aNnRQu*1AdYEW=%J2l7g4%ApkA+{>ekUK<)llHLeg2cn+`)A(7jj#5m((Lm56S-+CE6S z>k7R=^w0@uJ@eFUejUI|cl28X=&hU2g}RUKz(uJ0>OQ>#?4T}aK1}=RZqg@nNat>Z zF@IevEdl|$hL@los0)7+ydYiSAK(S++$c8<(Or5DH#t-{M(yY@-P;3@4A&hULl62}i;FV*1o-b#Ki8T-V)Dfp8>n9xZS$*bQGjV_sSh$_jO?{ z0KK}sdl7D*?xRm|Bl~slgE*x7)*slg&S4>pjp%wlhu)|zgSsPQ zy5-ak8`o{56Co42ALy9D16>jIf+lsJQ$u4)_o)VPPV1^@b(_)UmjavBZHk7mhq{UH zpzf&8kVC;q|2%aaob{hjdF-NR)A6AF`ZF~M>43gJ21HjqHxH6-`m4oIcgLT{goua! zNgrUIdath`;-&vS05-k#nx`P?qmQS`)K`C>ii3mtOh*LaueVSSFhIZcIS>Q&**`%t zNdMUn;05a!6~S1D{!j~eq59caU}5^ZRA`3lfAB|u5&AFo07U9%Y0h<6zlrLcC_VEy zY)0!hQS}m|_xl7ORxfu2FHZj%rMB_<%15A=py$?tcSQf_4uC}cDK1$K=U5fyZ>$lR;uT*_=2Z(9<6%_y{^cNSwZMr^z+U+Oxt0;BI z&_7Kn|0%uGO8}Yr$LNjB(uaNn$!xuZ1`nt8<}OI)=ohtvcSireG8j9nFQwBP=k(nt z!OPXRe~rlU^gYhN&g)ZY=2oaz&}v$w-(v?W#rhs<{*~yXsd;oke_9WPQvF~%u#5VB zI)YH9w~q#PN$>RlRxay*4u_*F`p>e!E7uRwRJ}r9z719?_1CWftI{u^-RY{n|1hrT zn%;@Nm1_N7Itx&vulXIIR=?*Xfb04>8=!DQ|0EAso&Lu{gjBEZqN#I(KFS`TQNMwX z#NE{IpjxI$KTHFeW_=m$B)9bU!x2P_{;6-lyRCP&A&6G}ZF=r)`oBscc}G7$Pr6;d zaVI1@^#4+I-Kj62Mf|Qlou2zW{SU7}p-Zoz_pDo=O2to){x+RRzOTPYt$|)Wk2Z!r z{mf2a{ra9lU;}#pJrEhxhaZROA^l6ofeq`E=(&&R_pF1+s9qBUY)t>r+X#1D?>h`^ zLZ8M*xDWKdr2(7Ni~ZnlO8+l4MW^)=n!wHIOO!A+tG_P*@u7Zs7=WW;9vzN%GCZ~r z#+(h?jflm?U_A?LzaixhT*CpwSMP)9YN)5X>twJL!zPgIjAQYhChR3vf&(k0Y?o{v`-&1 zbkQr7V#uHm_PAm9MSxU8EiIgBhKtnCI$`+zOdFx`SYL(DOV zoHw*NBlvv7HhORc2JI547a9&d3CSWu;Tzx;8%C&cR$>@>8^$geI@Um>)ZjoJf{TVW z8eWzeB=kaGGDzBB<+6c8Tk;jd-?ZeF8=`*%R$*B353E!g)V|QGGPu#8_^RRL_Yk>e zc==BRUv1b%*HB|vLZ5G~;mK35dEMZZ1MG%j+Yy9RXLv3G3iSpq2a*kj eE;kFopOW^&sq3}A0t%e=T0on}5w!_#RgMb#6cEi2@ zA*2pN^h5AE4e3jk=m$hQel;?lz474bWq-r=8@!VLK&5y#_1Q#eIf# zG>zytXg)V{SL+^ z46z#l9vGg~fj4RBqzV6&K@$mM(}sexurgzK;}ZliYp|z<^P%AkO#mE?MrSBE84or> z#MwAb<-h^sOaXYV#!eo9n=zRVvb!4<)IjktK1Sn8Pvb*M{k)8;DKGFgzDtR&k8yYu zJYQoA73T+yf6}i3{fyOHp?=6HrDDt97_Nd|fN=+nAp(tlg&+nQMKl2jHagH&5Mn${ z4WdxveCk7o8E+;63pdJU0V0fDSs+FlZ*PM7VWU$Wuqb0D?GMpLJ{{tSF+Pz25Notc zgF>89cmN>YDER^+3B~|An03UMPCIj=anpO?B^mep4PLUbgI3d{#$A56lw(HyQy``o z1D&97+_-!{c&SEv8pNd;OCE#z31j4s0O`iqK!}_)+OLFOhLJ~$)hT25J}6`wN6Y|O z#<)a?WE&f(_C0NU;~0oJ#uaZv;f(PqTAI%q-!UPUbH*Jnf|qOjssRdl#{G0k@4PYR zH@M9=E~EepjC*L+C^Ys{%~fQS)80{RyefcXiE%SUeZlBLyIQHy^gl>mH1elltjxHG ze%Nuzc%cIUUN)vtE8>dr0p;xF#shS?rNX$(0#IrE@I!zq;h;uZlU$;ma&nN;1***5=3qr)3$-wYAm2w+KdbT8%!H5l;X4-_nm=a(3;#B}nCNZsG&ZdzQ&~q^zQGmGLw4PFx z1Exh3uB+)ZH9p-;nX?daH?5~ur-v!#I51Dsr+Z=A%QQ~Om$&J#5CQs_%66zoe4w=mP5b-zh-T@Y1s>p_9py@Ztp@U4z_5lkvmF2^2h-uqu=!Kfb zXx|Jo3FsVPxaosdh(wsq9tAJbRC5K`VUw8J`%xzEgRmKGs=fBw7k$xk*<8P+=OTvy+vkAw3kTOrvxh{;Ekw_2xBGFg4t&O`TM{)|kGa$$72m z%W7D;ZrUXT?}lkvEr@ldO+SNJZ(2;#>IPFeHI^Dp8*c);X_~EpNR#Q!ZSc@+>W#tG z-ZH(Jj;LEqk~(0wO-rcmXf>^L1!yz9P3^@yrbg*?=*}Jn-*+^`iLoLEfhvg%c(6nW-6V8$hfJ2KFSGGIVF$}OzmN?GHJR^`{tBs z1AUFtrW{}B&6r+Hfx@h5J{@a#Xxd7Pm7{rW7uCju@kTZ zW-mHd;%c5B2;gRZjbd>(M^Qu3!+edd*3)e1ffXB^N-76CDAN=1~!w-b7^XsY~Jt|^is^}ZBRIF&i(=*)m*y*yfkwq z4V6xqJ*d!3H-AU<`$_YCYT9R*qkUlIl=;l};ANWoC|S=kPmVw&+nll=A)Pj_p(mYV z_T2*SXUvNZ13PQ}$_5YT%q{;wB-cEZ2`tYnq9y3O`GpWz$v5}Y0HMIVpI)0nb9*X4 zk-4Y^{))|6ivUW@jVyo*=Jjj9D>eU00bVqR8R4PKETq#~m&_?$AYL}Fwg}-fX_`C-iQaU!y~eEoNUj zi+bDaMpbgFSxg#cIU7r5Rwh!s>28ClFtpMMuA^@wBv23FTvvQ$yI-!gT{UXj#4#vG`f`4#UbJOJ@}P z`CHzlR#||BN8fv(S>mD{sDHv z!Z-qjbW6z#04FUIOA%*=Wlj@BPFd;`Ad+c0aSEohECx!6vn``)fYX*QlVCc>@)R9i zKVxanfZkcl7>&2jS$^&T$h9QC3@dq-u$vG$Z_&~_k#7mS3#`C$g<64ymW5Ol7Fl|! zvsY|sq{XVl^7dMQ3zoZH;FVf@=fTlM%Q7{tq0F-L8DN(zFAPBBvZa9z_FSZ>^&??*VIh7BE+9ryA;R)&gp(xm(j{ck-~V ziw5RtT^4`vn4XMOeGu2QSikhXvDz zt%1X=bw7Q7u~x~m0C86LASlFJcW(nous%(VtRvQTD!me|DO52e zS)ZgvR#^4&RTW5|#@`iP24~*4W*HbgR-Wo~6lLo6L z01A!P6ExVoY5lVaB289jsvDcFuTdd=%escX_ZI8p`B1oR-9rmftMz%RE!wP^^tRry zHqegVZXLY@&|%G?1*y|&`3}bJT65@9?paHpfn=Apf}UTu^~72j!2dx==@P@1l&qHC@x`UGL5$lzsusMoxEA6 z#;t>tFHKlC(=C5s{ho&8lUDV4C`?(c-f%Q+oeBUpV--?aJ!=irLgb;fj0X>nw)f>A zI@x~Zz>2f2p7u=_+rN)OWWQ|>WpW2>9b5oc+fM3ny4kK%Ip=P>M=c=_TQ;rbp0*_V zU8I-ojaLD@Z5=D&*2h*ti=3~m`V$Zj+FnbA6+fGidTWPlS1IT7w=Ji#I=~h|_cPG; zqdnpbvc3KWB!g`p^l69KI;kWLwXLB}O_=SY;|L<$wmAX{5jGz>>lbM=Q#a3ql)+b7=xl-n*+&#J;!LPbTTta1xn;Xl0%I+<4?2O}w!QveKhhRX6>Xa>j1uxYwia5f z+HGIE!)Aw#Hx5Ugwr8l3eAm_`26oTZ>Ile!$~^! z=H=je4Lom$@G)RM4(2s5?d$O99S{#XoE(KQKZo&F@D4dtl|#?pfk8i74RR=~h3R02 zHRoY7#9{bFV4)6esSpWsn4&&WxI+mW>Jbi?X*u>@^dIeJ8Ypf zB*x(|eYdd=e;x!D=P-vp=6DB>Z(%yYq4+z1BMvK*!Ao>_vLAX$4iRSDtYn9E*lp$? zb@=>mcsS>VkeRO+Si4p7~n&g-R3@(f=5 zAOM*>i$UnJc+)l_Y&LHXtq(c8U@GTwdH2U)na3+u!C5{pe*!EEc>V7KSI9d?RY4K& zZJNC=^WM-_doj^Murlj4OoAy!n)rw(!JM5w-GeB!g??9nt}JgO|4sVcU5lw1LpU+u0A@P2O)$ z5wDXsUjfp^Ywv}yo2L&%^d8=?Q!wgVyjPjvZu5lnaPIK-(Y{kJZzbg@eZ0n6IJ?Vx zzYXLbZyGJ^_j#5y7xeQc><4+k)6*{SLtZl-z_0>9wI#BB~Vvvh*v=g<2<}B_{R7nlxsNgAJPKm%y;jFr3*hi3!E!Ii838G{@@juxbues zFbEI+$*&Q?lV3)CVK08uW|$n|fBrU1y!lN{fcx-g2g3DH{xB^zzWjNVa`^EJX(Pv< zUrqg`0KWMtI6KCla1PFn^J5%APVjBsL)epieIZC7f1G+cLHy3W0G#4qrsOM_zk3~U zr}-0Gz=iNfcOdK;zJZRHgz~r2%{t4sz6abne%C{g^LzvS-{&vz579~z#^=xpjd1?A zRHQ}lC(!g1$v;M|fhhjiC2-OF>DAz3_*^@17x|M-0gvTRNd)c^UrjT69DfNt{&@Z& zBS->2P7G&>{F1i-Na7z~fVuG z83W*1{0M3=Wb@x;g3ICiO~Wn7kv7Xwhhcl-nJLjI>`5xt0?Of%7C zzJ)n-#r)YvKuY+rw2M*7zsdl2g^gsn zJ4~ARH)QbA%->6Qw~b%n3iu7aJQBKgzWpnZ4*r#mz}@5v{h{mRyVHTLE`G8EW8A=3~)yT{l9^D3({z-)<9jv&Vc(bOV6AxKmMep0aU0HOy9KBQY7B$!BtUQY>JnIOS}#AF0IEg1O# zCLw}lwBDW(7<0lrLQptf&M$POzVH%y>Z%Rmlm0 zHB=2I3L1i;OA-v91xXgnx(bpaP*fp8s$c`fOA`#YL6|OZq9frM0{d$aW(qv1*OeuB zryiru74*|?OP;_)4K80WLcON~!Dae;9)*Ib3qgtmznlX6vfv<{87dZ({|>H1aG2Vl zrGl-LPF@kj{|3u4LFpv8E*B(h2dNMQABE3KL8BMQRl∨kruTL@m8)!Ke+cp+?}g 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

25hde<%RlQ}( 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

    ~m|xuM1R{IEuH#LFG>WK#DjrycG1g7Dwd%T>rj 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%0AIL;BqJ)>Fkhw;yb zn&3GmvNkY=TtMc;2N3}I9~XlJ9UZs>lY?oE=YhqH4xsW9s$>--j&0x;LH$T4(Unj< z<@O!pq{%bJ5-CXfN#f1|@fpZNP5wfm#M?0YSL_fUi~6R2bKO{wv8xyZ+tIBTz(h%= zv@8jrs!Wowd*SZ-nLTt{a!t~W-LQiE_IKA!2MbGu8xDHm^ki-XsBmNbp8DwQrO_3i zGZ@%|yt!9;)D>%BN4igMLp_{rbuTUVhuz0d`!{R)J$KxOd=FH(_n_mI4uL`Gluu&VQPTDjE7W`;?4O|k`0p&`lse$Y_S)|5@%XmLEt6eP--%6 zNV9`95a9QXwV7F-SzMXNu|CNB5p%8{fUuJ@k>UbE-^Hz+(d^|*7H#KBrVv|MQG;J& zZHZfjQ4j1U6n4uO*>d}qOii3XSpZ4S0H>myNM?Z%iEC9wZDHv;A;v z`+l>bVf%y%&na2dmjx16X__pM>;yy-;A|&`hHloU+!U8POmr}8=P$tsa>*@oz;0j| z7W>Qd_;w^m3holQ=c~2M6=FG0c~C932J|e=C;?JNwXj6QwjHEsRf?<<$iwP9OydBq z0nGrDlyDSApj-FiY}1mnO?H00DYQ?Ts1dzCC4wAOi(kZrEk#3iEE~8NQfcEQ%!ID8 zd3+U{Sg`~rGzENeWSdB;D>44R5FYbvo@E@{S9r3A6RFIp9Ye;cz_5`1`f8G_$4bOU zjqb)W@`GF6>D=;Ih1ZnB7<%rU+(>KvQAS~SkzX$|72_Og1vcMCd< zmoUX_|6J_P&-8AoryQZXwLr(xm+q5tL~%7zpn;5Nndd9)ZPup=hv_o!MEWpYDxTzm zTAXjGrZ=G2qXj=Qo$w=0?v0L+*f3@!&+kM37*HDvNHYF&b$xAaVKCTSuX74oo&(cx zlH#I(-|%6wQKDO^r_e(K+_uD-E-$4q-(^=FRx0oVN^>KyFP8UmV4-oo`h!ZnTG!I_x6JQn2ZWP!|419oUis`{KwWHyLv_Mo~MYyUI{)E?@ngdsX;y z_RJf#vYw;7Ta4p5LZl+@>^NO{HYuq738^9}5OgTdjIVTT=NZZyq{I>O(hQ|yNrdey z@!MrX&Fv4Oq)&hM0qi*KI8dIP>1C+m{rx4m()#QD>|%7|6%()oba|Q-!GF~$4@#k2 zS_Nr_CpXqKcfP7<`Sawlx+4b1T?2^0a;_UP6s+bm=kWe_p z9D2>8lhczE)9q%vGd0m_H@lOg8`_Pj0o><(w{uN!WLQ(OaspE;Dv zYrWOuWlh02Ufn|?ksOLKz|5|@=o9G%9D-p}Tv@vXZsSWH*FQ*&8YSki!0{dY68A`~ zq*?*R%C;tGNXCDi@w8b5O3jDPrgrq`v+Wq_XAdv#Jp0_%ne#_?#PXT`$%1>=PuHCX zEG`twz(1tY1{hF$7uX-$QfId=jTraWjy#+>hFFweTZ0z-YAF#6LYx70>$Z-1OACpf zd`vr0iN^;)U1Fq;KN4c+h)C`>=1y!bm}?x&VtAR(sUu@l_BMXi-Y$ zT!CYcL?TWXXYP#r1*Gp|+*v?VX9f_r{V*w&5GRK%$qw7OyEtPh9-CwL9l6QQCx~b1 zJRL4?d>l_L2w`?$1Y(VsAn?s!A#h8Iyc~3VzG-?aQF$U~+@{QG zA%#+zm*C!1AlX9_y6B^4tuLIOlS`b6Rx@$?w55l5h2(HNt6;u1R!f(J2p3Ts`-W}P6}JrLF`FXjj>q>SSXe0iRhQM3z*HVqJVWa`t^ zMI?zeE?{+bf(C*Nfs1$rS4uk-VCsd6XB?@;EG=)!)c9Q{J!vb32Iv?f`*9A98F&gk zOnUvuO$+BQ;h^fB5m*iK8j`-~Hj>cDmV9QMEW-cMhY-y9fsB3$B|mg5I^?iimnp=! zF-}o)Jz@MrR*I9*a)4kQ3L8GsdYmBJimMeUb`xB78g%C&$%`dE)HgC&4~QQ~o5~dw z8s!mE62MIUw)td-KqDxV)LXy#%*dzUl$)UW3v4LW7PD(7+(Hveyw7$QGacc6i+N1_ z14<~)PYIIg2@t02bFb}S%PWdf{-xEi9UHBWeh^o#3^Cw7*Ic-dHBA+1l1FO_DqY*d zOozIGiOcOP6yiwnWN}1R%=t*#spD26o~(l9*cff?-W85FNawhFXNDScTl-tFR$A>@ z1<8j#WcR|kc5D00zUZ-Up4H?y;y5}R_%dq}xL;FZBMJgr7m^Sy&d&6XBlEV2VKDu{ z8eUEYkw|>t>NMAQyn)yS``lzNh@>r`eRhD{m}8n*ZlZ^U&-TCpBoYr1f#p`h=vZX; z8imK3vc-o2*IxNLR~=C zM-4{SR|$%hxoz8uwaI1>i#)0=)7)ocb&941AAP4Ep%lAK;ibLEdnF-0RZZDdmjB{ssgo*{Z02O8K6v};M9l(Bqd;0L#+B}? ztiqeIo1vTiMCx&Qa14i)pp1Dib;1J$8@BdqbJ9VeIz0D%u3BWctHY1?ZwZlC_LHAE z=H)TYz2;sZj%QEf#Ix0vQ_ur2L(e)|v9cT#Wi|xHf7qUC-4~8t%g$p<3ZS&E-MVe- z{Q1#YI7=|iLAZ^!%CtgARDEED_Psr!b8i*8_f}!z-YQIjKs#$e#en&((C9@aB!`PE zHWT~h%BNgo;^sQ15N`O&c2!@Vtxa<^DW4MT!iDXSj^$i4>gRqT;3vZmZpon#uX2*u zAkuv-Ow2SK&(=7!3t(f{l=({q-b!pZu7UznvWiMbwoN>YVkOf3JjcWpM;2NJP3LM7 z3#aC|9DN`(jZN<|ss^Ky8w6F=L+8>k z6ex;pVz!qgc{}tlQyUd3sQg8aEBa0r;c+f%?ijdrYe2Mz2Wy$V9nKsP&4>BK-B>Pk zY+9gT=c%`p&>KiK&XyrcD1n})`WTdtrL>v z?Mo{nIjh)#GTz5FBnpXO=2shhy1+3iY-!_e(+QGqNR|xvsI0_6!lqOuYRbdhgk$Xd zsjx|$xnS7hU;M8c$hIy6{oiGcXC*c=+u!ZD671$cXni2+?h!cY|OA(JgAy+81 zE|r!X%aGj$-&rd2Ui)_WR}AOfMYkvxPj{VIOD-QgTg(W4$mdcHjL&iG@{Ep)dNrd{ ziFo`n@n^q89G??4BB7%v!amq&^w81vK^DgbLh9;f&)}3_;)j`i?brZQkH$^$rkZAD z9AE7dt>K52TDF0(+p6dDnXOq|j0z6MRMxAxgILd1!^C&lM$0rR@dr>Yx@0GnuJ^%1 zLK9)BM{xGxMjywuBLg0%HJq*cD?Ow|FlxoZFc8?b33&`O;I_`Rhk@eaQ)+XoQ|&1P z;@NSY)`I>J;?5F-p6fwbx0Np=q~ro! zHs{qnBsDDguG-{>`pgU|VZY-p=KHW=ZH@O+ZC4gXY*I%WzZ?T}kgdVumoML8BQm%+ zdJzLMP8z?yj(pQFXwM`d58)acal(!o?ok3D7l$Q)_DXrG2#n76^UQB z8h&VpkTpAS2qfRxf>?L8}kQ7vx*=aIta^(;bR;Q$qFSt z##XKTQ-h^5(V@Azs^ye4B=K<}iOb#ngu-!=p~MH1_zqY5eYoRV_K2na+`*~p+gOlawDBKbCpdR@##-Uf@NdcLQ zzSlCI)=3p;3*sU`Lu{YJfYg)U9I41;GW%%GJchl-9l1pD$m55N*C-VGBC#uGrbOiI zUcETFw6kt;%qf*?Er)cHBzh>aIb8FrpoYyvM-((fep*$IXi`;fs&p-CuNf2Pu{%rTMlA>6O_Oh%Tk#`5Z40vkbEr!7S;tRdyAh)h>(?f zR`S6#JPif|SVBdX!kl9Dh%8zym0uJ_!-(TqgNQ4td#qk16B$q%POOfJbeF6b!%;># zM+s5hEYxkc9)wh}MgW3wnqBM1X0IaVVmR7gyK``6aDnP^TtPHbyq2vFTR?@0kY0&? zDfSyq1u&IvWj6#AKg>B)Fm~Xn3j22~^MSOwO&mNO`ThB1Em0|-+eSvo(1Ohw&IWBb zE^^M8_s?);fF!P&xR>KJ7*yxGx00P((6Uo6b0v(pjsn}*#E~OXGukuLWJrm0nW2)m zS-bf#NOTA;LQt+zmNgs-p`FE=gi0|bg;&0Cet&d+e{E#{Fbg(iPLbgyAUmSDWZ3%Q!6wAr#pnXb-S$Sa4!FKrtK+X(t*M-{`vlXgI!j6PwAR za?Y7dVLhf>fWHOsQIl@5!b0LxIfdB_RO zt?Q9+R!rWvjvhfi1JXMjYT>1bAIMoWPxfAX1}#eIRLVN2>_$^UCJWD)8P0>u zs-4Lw@XD^6-$$0}$nT-iJZG-Jdgd39leddKH=ZkW0K-^`=gv9=TL>E1w^;q0c)3BR z!1BA;LBZQciOI=g65;N#Qg@iPgX}&-zYx}_+%uh5{!P_XSUUcR-)v{&D;mvm0hf_}HLp?zq$xi+rig z2UEXVij!8QLdMTDxLj@0f^oN8u@nHa$^kGOs5EyQ-%c2t~zwmdTnpORP|%z=Mk(+;hv zcIL%5ma+bs&i1L1D#TA%M>vSv`7x8Byf&M7u_17@#Rq66=I50dr&2zq+iohISCSvV z+3OAJT6^L6OG zAle4O@8J1u%R+`k%T#rEYj^h|V;y;zZ2i*y#mhVU_4Tw4{E81d_Qe;@>{^L8U4P`J z7dxxRJ3;+nJNz};uQ+97GA$fzVmS$&` zj~j9BiIQkp6i_6+_swlf6)ii+3Ok zkTc^k2GjXVtpXLa2#hM(@noq}4qY+N>{&Ep^kqA8(;_lA*I{iBcl420>hAi*(f;L& zeqi|Q#_*OH#dx=w@W$>=Znm24fQf;^ba#z`IjVJ~GO*v9-CD%~^+CwQ{DbnA-4A92 zX(-B0#ThCe`HeIuA`0veiY}PQ5U^7Na&p-p0!5J@U$=a5-NNq{&fk7{pPdfM<8uY# zika?K!&Ed~iT%00q*RAb&6tMD1spgE*|-X_Y&w;EA4s_;I}vydey_$y23J=nIIu_g zTSJk(;L04VD;*!B#pj#4>-O4Xy1lu}dbBGzCE2LJ$HqBtawz-<@X=5$89y0WaL`~2 z-7CEN8)U(a&=d*<`7#A(zc_aw+~!H*qY}#LgPTVdkTbg5owk(^=hf46jfNk78+01k z1~%&xPLQPUfOb2QHHz|tWO8>I3^4SgMYhxx16XTG5V13DL4VX>d zYf#IY!&!0eJ97A>>Y&!ic0HM;I6g&ZU~0<9%Pf>Q9^6ADnzqG7ggWExISS=vb0mj*o|q$GB2_jA^I%$y7J3BUi)l7CV!71qohYk*TLw z>;ORo8sIXbJgFYB?1X*-@oef5eK>4SVis;-dRFE#biNR5ME#j?P2RX393t7r@;S!O ztV7%c+sJK^lYDY)j!$0BJrmO-hvMu`tYx+Z$xJ?m*4&xv_u!Aov=brc#6+{x!h6OP zm>|4~J{Ic91FG=JT-M4tLGkI- zFO-NkUct}(lu`nuwZlyL`PG#nR@fRcF2R;y|Ij4g$igzlF*obr{_MJ0F8N;d=mB;c z%F{C3WDH(eR192UQ%0wv%ulenMvVr^>6J7ZQq>ee*`~CylA7zhLfMe-pAv8!3%gXL zp^wVeu-%o>yr)nCVVj2XC07BtnT~p}Dl|WoofMqdLA6pJk20=!rLAz&lp92Em-#g} z50>lj_As=h(7yj5Hx%PKT^I?J~9on|~g%X(AtY&x2&kab%_uuiO`c zPCRT3SZJ$jW`nmQQJh~d7$jSU5zB8gzB3q_$3i`3rYk}{W~TkS6*}x|(NmKIC8cJ5 zT9l_SCji3(pgBWAqg%;R>#4 z(yX>z@cgBgn$H^@3?exw)njWpG2E@H7_?-Y2q;$e+eADM z5{ZWI#4vw|0jrlUu$Gvd7X2r=@Jc7eIY!-b>CBgpHuuenJ-@txxe`6A*}d*3$NbKm) z_|ajJVPz0f_*QR8TIifHMM5yl5O{HdoKW5%r!9dUnS^^d7p62F3)1RXerF+TSvyOI zK&QeMy=QV=wTWMrm*3p_ovycBkz(i4Gz04j7Ra@iChg$QG%IE%4vOCc^sm(wNR6?< zvCmDfh=hNw7Br0WD|H*16a{nF$%u9SR}tc=&VOu5f+?Bt0rcidUNGB)g}>!X++~S? zi_^^XA{qqho|7_Hp&8(j^$spmy_xmiF%Dtdf_cKUvr~Yuo31Qw*uKk8%P*lWY#RrK z`jt`KbD^|iWbevai;c1}24@pxUuxnPwV%-M(UxF5crO3+48<=OQ6RflR_x_CR_9U* z9yn8(Vxoj%^+@h3xIgn$F)tPSvu?Ee!M->xN8U+95^)?T z*rPCO4%+X5E2(sR^2xrL?24K)^eL_M2JrpIj{wqcA+3LEno4!*6I1IelTtQN>mE2r z>50m=JvIU2Bio>ZDzxXMzITXVDEZ#agi&nzyht0whe~I!&6Amnxlu%sC#6xO+-Sti z8a%ktf@aqS+`Z(~jTR<%zHAkEK0i;e5NzDKC9@Mpp9dCHvbl1qTxifP~sGjZnS%VSCuJ8 zGn^V|x>*wLa1bH{S${o@3MRHwKNq5|(+e2M;%3&e;=N~3PEJz*G*wO*yY78sue^R zj1o#B+sZ7A>#N`-*PMg4r4Qd*WUX3UwWrnXzoZ-{g|Rov*5wWdG-;6PS{Nhbr=?XS z>H-liitL}b86(_kxYl!1m!f1)&g%?MWeicg7uVT8HaUV}J>lJtsuM7Yia3DciUkAMRI-R39QN%>e~+2XFLCxL{ty}m{IcGK zv$jqWfkmodAt@F!Mj)i8ORn%qPOrUxz+hDo^N8epWKZkJmuc_pP%0kS!0H&xRx()u zRV;pandCkv)a9h?g*aZ2rYc6*F7x&5iw#79Gr{A++KFSx%5Zi>XL00;SVaPua0x_U zIJ4j`TP~YQL`XCpp+M^j14v$ppHATf?k$y+%vztK&{Pu`Z95Bk z2py#xnk+P2J9U=W0=zme;+z3Lws`T(dCN?b<_|M}mGu>0AJQ*X4p_t$Bc_}u;#{Lc zow6p1W`M_Q#@=ybkBd1Vn3*Z(OaBQy4-caCs zT;yvV*sHA+#l=e>Tkt)0d&0CD&k|9|mn-^(Z#HEP1qQy_^%$TJYnuc9uLqh+*#2By zHCC&5wr_%oS`3?%jB7K|K-BKIh)>^-Ub8qXMUxIQ2U{6KEey%0n-fcjX>7UICw6B$ z?ZB05-X@s(TW0T%qmVbbK=YZ-(@hpUU8>t3Llz$y(&bc(mrfio^?AdXzhju}#U@g6 zcvOX=i_9+q&+^$8$CT!ag9hA@YykJ(81VutT7CgenU+jY;XtQPTNuz~&(dPKf=S$s zrY%xbi{iEPK$#U18JjS*9Vi9cZN@Kp&y`FMD)}cT3yHW(OIo~Z>hva zhqVHa=(rHHv@#Ss7U~|zW~VF;)5!Sv^sGWV#dZBfyV8&vaePS;!-EkR%xoaH_A-)E z7`0Nvs%!9O-`+XCEp4ze;ra&ayHL6ZX7ZCbKBPae?@RkRnS;=?D*+Rgp;ly9CQjR9 z4~_2Hjv*zcI~lVQ#pG|M8ndK_E;H6_lUrOjhMP`}3+K=54=!FfH?zBS`~GORcj4SQ zZ1%}{I#$;LRPMF5GxaAx&EfXZafUpNh8ac_dv#3f0qsu4l|IJ>7#B)X1p2ghrzQp6wcaun#5+eI%^kw^A zx+PR8R)qX8DwP)z$LdZYq~worKVncyNZwH1BFa3~IG(rJ-b4#%De-G|g7-m{DqoCw zoKKbVo5MD1q1VvNtRWzV1in56dpj#DbbHM3XF^2({I%JaYusoiPe>Yf|F9d&bD(eA(jo)pU$h9)F; z3M3seZc;;Z{xC1m!6UnekMYI3GVCoZV!wk3W?89l;!h9?kzLyl1!Ha7T09uUEa6t_ z9qT0i)?+yTN@d5WG{Hn%n8vVW6ta(zpmA{sLA)j5KI!anWT2Yh4o-l1r&YEQ%(6y( zPGI99s+gdwP{QPS4xKny6bj-6p_s;jB%F=(hsZC1z!;vuDW0?teR3- z9=VBGIn8<07@Lq;xQ9dV>;Nv0p7vvQ_-M>IXA{#M{oW%4a8F4q5x9l*J~)ZUbhD&& zGH=v<9sb*3Q*hV<*ur&sGFv3Qo#({8TXqhq*+Pj=aJCLhk;*M!Jy8~uLQYH_&nWg? zD_Y7=M`=IHTbJS^Wy(Cgan%n8PTcn>;F>dhNW*o246G`AFf|G8z9}~_75H_L)>Y&P zYikvGg8Hx>KwD%6DFkrX0}@%Tq5>Ph&4^Jr2imb)J-1^QOWigT%s`9wOFgVBD-@p@ ztUU@BibZ~EnJ`a|$r;>4F#B!Qx?UjV#gau@T|w$AB$-^p?8blUpIpK#&}=uOvS!ZS zdSU6p?r8Ja(o7GW0%Evk7Ux$O>SdSECdjDB=P}%vh0S9Ls}tf5ypS75-AEh$Z}yM0 zr`mIK&g;nMFj2_)WL}$FML2a-8t3f`NVYCc4|!Zy9+twK6Kxz1Qc9Y+hHR5yYEG_I zvEK=jZ}MeB^OgI$fRL`v%Me(;%<;7O=I2$~0dLa(Lc`z(zBx;nYd+#uU8(tyIPAQ< zXU0S#jeL%mkZd{URmebBmS##w-oS_G1(Fs*i62J1ON+?mi(3$0WdYOR6BlQCy^SU8 zxy+A+bd`KQseR)7ne?St&y*#=7$m=3$4E`5+papUTq0aX$p%!VFVLeS^?J!;e5J^Ngr|i9MW_XdrmDR zmR@pH=n$+*X&=KzStum~O>{kqP4xoDN9$4(VH!|_`1EH?tW7lP3SpV{nDSWS*IJ+3 zOzRz=bB%-l_MQOWGejB0NKXv8pOyQpC4CL!7`dq2w<+mud%v$0$jRYHz49vG$z?1@ zv|zxCMb?0Ljuyj{g#WKB-eOm6M=cbY<5k#6Y@y@^9hVVGd@^aH*}{gWhN2*tFWw?_ z1N?U-|MCF7Fdx^3#oWa2;wxMMTb*G!;@GfA4VYw6)F7Wul~v-<#|*`xF9M5$nNr|b zy_}0?fLsQCSJc?#$!b`kcoQ^o))k3<9l8{RCYsOU3Jn0*VLMFsgQ`bU? zRa_b6?dGoR-j(@W;D;pGIEQ#dK?r?H_Y9jo8B$XLa=keK7QwoFQJe^4=wcekHKl64 z1r#f5WAd1#Dk&_9X5#wvFxg6uAfQU$J415fpGW1R50iWHB54V#*AGLS&i1|F8a(D^ zDOE=|x_$GP24LLnyHt-&3*+M%O@o%dIJHw+&JZ@{8c;G#G0_la_S!0?Oa@a}iBr~y zQQ_Dp3Cg5LlTqh3W)_XaLU9(CM)h^)Q84l*^NG_f&Yc=CU;1FCtR5mIERgYAvAo9e z<5?eAKmk?HCtJSwjJAd(lH$Sw3m64HO+L* z`Ba!B`KcDSnaGU3niHfxHM5|ufVB4N&92+2sR`obp>#+YvAo6#F>$P7=u7B}N~|>J zI{ioB+Sx3IdDV)dvXH_SO#1RLvgTyEK3m#ITE_Ii>4Ez~n8Y**L7rwT_*6rIUh8II zT|d2cqHgVsCA|!Lfs@&>kuG64fc@1D_y~r~ii*T?TyF#4tP_Ed3qc;4m5U_e;$SL* z#6~iUz|GYKe6SO)D0Zb=c|h^8Tq4l|*k2nr0lHEV*+{WNFVDko+`Q4rl9#SwzGLgA z`-jQLcTVp47`dXZTA+(KHYU1WnE0LhQI}AaZ7++A zzc{dt_r32Dm10Fe@k2Fd4s>d9Ux&d9AP(`8y$5Xre^?eh863wMkz&Rw{}Q#VA8_RJ+qK$+rwq~*mD zjNitonAw!9*$`e`YZAZW#b9j325#SUgGE>SqvX+D=SQf(2@a{2;-}ez7jW?D%yO@v z9Q1&r9d(gsI#^XbQLZxnL>2hNphPxb4KX53Ye%9-kxmL9c7-{XR$^~QdVz%K;<8O{ zH%`WwAsjjr86*5=TkLa-T$avQCFNKroQRZ}?EHMT<(1`y<&*t2M0URb)L1O?6T$*AEn%4m<+%7jJDFg87%Pi^v=0p! zR%Lgtg6Kiz6Y|?NnwQh18L7XHEu(aTb0OfxmzgZ<1*bfQBL~%E-pP&O>Jk~KqR4Md z=ul#*l|ntl=~X8{q5%bAdVGYFNaapYfiFOlK?M49Xy?}c{>3xfm-k1Tn}-kIzP0nh z(eAVATW8PQdVaKfxM}Gp;3r0tTri#1JuD}?R(uppUBlv=tWZQc%CNI%tYH9Q#44X9>rgWlE%+Od5$%BR-VY9up5Pv7sVqtWr2jHkNJbh)ls+q#DnNHJYplviC!sXsA*$v}Z-V}8Ip4<(W>W5A4$fX}7 zBFQhnx3lFNC~cjvYUxYWdeHo4qis2z8kXG>Q*%6tWJ1>~@lJL%4Lfzwaa&+5mnwNh z{zwcyNfZ=0j$dls4ywc4@N;dh#G=S?xW-# zgzZ&o_N*Pt7Ic;MG_bK3}CvJcla>_us&7?-vZ&1oS` z7&-4lOP;(lcV#;u!mdwWwx_@fZzofvEDqe=%idK5|3hRkwbUDB%FP~(xT1RSyY+oA zl*ZPGG_YDDZUi-z#UirxFTfF)meBM9pJ1w23%Wp@XTP^Nvj$yuNRXJDmDnecAB2gIx`4y?b64kEZL?Qe+G6JKOP7!j>Enk>kD^Vp9ksTL7PNF zYD@5B*J*ppz2gymlX}M^TN|1PP2gSoqnVu@HWN;!(R6GfDKr~H@3mlTw;dQVJlVr} zDQIH7g>#VTFja9n6MR2SXtGUhZ2WCz=6HT^bhR|wwtOw~wOv(%x7xrU9WNLv`%gC& zo(DNP-r@9v!caj`gV)+MH#PMkCsc}l$HnspD&W>Dp5WYE;)-hw)jgJ5;Mk6FU}l4DAU1^I6j(8Tkt3xQ?-_{YE3ZBfkcjFNHO|u zDJGBH1Zla7MA%IwcUKxWz#w^KlUXI)oCJtka1W1REM>wQWWlSsg+HnEX!O1tcVwN;yRvAw2`RE{qFvFWVgLGMQ)D!kNOH-Jw*pMIpt~Y||WJqh%)pAYK~%S3hj$pLwT9 z&*Ya)IvIC*TZ+k>p!0Mo2s*L({;=8Vtgkd%c9PMQTwVS2RjnKxsE#eTyk&+?Hkzsm z98)N727OBtrLJIjg0#KHHjLZ1#*zL}uD(k+o=9w$VYD7VgUHW?UwEppl$ijx$xF`c zIAslZRK0YadXD4yEn#)^mZBb4wyzXZOl9X=b*6|4#emB3J*Zu5lzi}9P0^J4I%FlG zzDG4kK=fQ!U%59m?l-QKQ4!}UEHAFoe>`6FxfUs_dXwSxu4}N(c6f_V9ODN(ND|tt z#g+NN0s{3C_bJ9tR-mxQKn?BzcG(KBNm9bNm>n6~R>rpE%&rU^rcJc19*IBuOokl_ z>{{wAz>-!6>)?SoF7J=yzW74-xRHo_k8Fy_&7BwZP96h!c7$^vO`tBhW+MSS$w(Mb zm3XW5NU9XDi?-)V1vrN0~fU^oMDV=GiiQ<;-ea|_A1HGW- z!!%8uJZ-v}0bqFZsqkLS=M=+N_D@?D%=L{mNPalVXa~XPNPQ`uf)< zB1Iu4&9Nn;%9*4u~A6LgOwHm^9>|f(AjuSy98k z&=+n?IRQe6!)YYmPF+A^p%(syUezvL#`62hv?d%uXp0YguAjDbkZq+3?bMBiH;i{M zyRG7j7G`vklO~y(#THz#J{wxdVC+B;nuAiN9F%U+@57cHGA_BCC#{_d>_^Td=Onb@ zMe}>`>aF{16EjuZrMx@is=30v3C-wOuc!I}n>U^q7mM9YF69fRE%v#f*K28q5?kX| z4}`vlSzznL_m=|2p7k$@I>mf+O337fsLsYUL@gMr78CtJ-x*SuH(OozfC0@!LLs8w^Z++|57d>TJ?w0qfFyXbj*#9^Pd!%yvR z^+>z9xaO^L2D(z>4ya^$#>06&s}x$cP%XQJnOK950#!0NrvL$m+*&;e35!ls=;0P4 zg*J{Im+Jvse{j0zvYZc8D(0))UbUNt67jwxn>QQI_vHT^X`>959NE*sL9|8pnWRv@ z#{4_wM0HTAM1@qw?c|O-)CdHMF8y1zx-KF)3b}SHPjk-Pg<>g#nLRMrK84MQ!M%olUsed)Fq~9aJZh+gBh-VuO_5cSd6C#S7{Aogs74$H?25=%b5T z&@>aw&M);g;K!|091E}@qwPJU!U7w(uzuLLZVnNm+8u?I^73D zi^a5uB=$JC0@dLXJGi*DV<$1%%MnkzGEA8g_5`{`x_9k4#e z*5?TC1*#Ec0Px@ZQZ|X@(z))$qIaS2DTj3Yfd2b^jDOh&95lBGnuN5pak@ zsw@awIwBWBpBqofA%Y^@gD&FMDAu@)<*V6G=ETuoYP&?@9v$tR^KM}r!Bs=4QgGg7 zojR9wV7;qv;47U@(oq?Q@<6h84-8md?2MkcB|1S#wvkk?(}7y26VInck7*C~F^W@H zU(P8NP;5haG6!2x%lMIEW~IT{a_}u7`80?&L3unbew9&J&Nkn)OJO>+E8VFRJhmU? zrocUOYYXts#BOaod`xQDtyD9#tO9$_wl6t9LV!Zj?8N!r;$+i|-L9|0K8Hh^g7!|O zVq|=^OJ}J(&B_s#^aP|vVQF;(*(Di6Jz|>evtLwMGDiFLN8h3VQ zX1ewdZKl(6kEh*D*h4$At0dQx9(NraG)uUK?LOum_j81UhELQcWA^t`#n3jePMZH1^M}}jK;jP zU2T5dSVJ7TldZcFj^pmzN=)J??k1Kwa0ziPGa(sD)7GvHN@|Q`%&O2SAL`!GSno`T zkr1O~#wB(5QnRknAJ21*(86X~jO1GAU6bXVr@*ezDhUS}vylh~tm;TCTvq@-%jJnO z;}P*To;}lbWNsEoM~owVW;CVhF88&s+KA+bo1l*&v_oe?G@Bhe17p;xCE2bDtY};z zu%dxBgKt3YlmiyrIMU2smVpH)Gs0FE+ykfR9XQiXcmT%N)6vI%)s6DSQu53AFp+OF zG4pttD;ml?^RsWo30Dc*W-K91Tf>=DkZGJ|h7CjB8sz+KNuh2$Ql^bVW56sRq@#q; zfii|GcpL7#Id79IX^i`jf!NPo359}A%Py%%lTeEIzhvd=>}ngw!YME!IRqs zbTDfcb#KXc+(gipEa955mKcaup%2#PTb!Co?#IpPuD6^F6FHK%f^y>valD!)dcbQk zOGK+?q#}}&8Iy~qWNZY>7>{U9RylS@$V?i;$~@PMwW1SR;j(qQy;PyyawR*lBwvzZ zQ!ZO15$v!-ZZJIaGkA zdXcX-C2t!&QmA~rWXfKrvd$5uVrI>vHep`tg`w1zw*X1(sT*xa}+$ItQ#k2j&mxcf>Z&S`!J{nMD&gOV{6 zTbA?yiaMM?$`Lc)*~JwejQ}f7q-*NOpsO&Ugc7*bF7lFuQt`pI6axDXVtEBl#6<+w zDTdD{n{&!CDkVdgk>3zm33`Pz6L>`ZaC93Lb)?UKc@{)m@>b39Y7;|5@&>0o=C=d$ zOdv#|$bKj%@jD4xhr?^ARS*>u^pzRyYW@wpglp>_58$gwz-%9d1MNVe{&+ z{l_D7{D)4d!d-}pkJ%k(8_s`vaadhjAb?kvOGJ=lME!V;< zo<*u^`Y#ipz!{iR?v1(y8E@%&WR}VMaMQ*zcHFtc{yIG5p86fPA!LfDy%tS|!a7>btk5pvl6W+L>R|v3Du9m)yrAcP>Pv3 z82*kub?6(R@^!?kz1GC)d!Lt}Z)wYP&;vorC2mO^-uNdbC~t#Q7_>%pNZD;3MwU1T6_R;=QP z<6JT>qqhXRKOin($=f@?UqY5NmU(v82QR%+OQbuxt&>$46Z|&q^7vZ8_g~>$MPE;> z!}cX~3n~$BB2^%UfVR|*>b0E5I6Igp2J*rU;>??7?n*oqtt-XANW2Q#2wOVb{C&$H zi@@V3XJ!}s`Cg-WlIYr0o44AmLZ7-9tP>60kj$&<3b=E19oY&8Fh}xKl_K`QN8RlT zWDv`wIiT2QM!JfO0#{P>Bs^w3Krs#IgrkmIplFhWMcmWUi#T}Hmt!xMUqD=3MZ~#n85pso*B??LvQ#|7Mo`UFOwOqk} z@t`B$>@F+?5R9m_r9B)|e-TXme6G9AP#991S%s%f3&GX+ZaaFW(w13SGf)B}Ey4Us zP8tT6h2;ep4dB&(Y;$E9*-ep;E6ELiOE1X{4_85#M3O9EVM&qKglDaixUVb^H5}T;Y>Evq4+fe8Mm5Mt%1gIIcrp|R<)Fxfd^8WLrEx`1PA2-S@r71hfy}Dy zw#eLSr$vaWnEeiNml1xPQ*L3?n26zIOZ`?pUn@bJmjo4Srr6~xAZKq`of!@>p$d5e zEe$@qDYsZzfnU#&0Ttta7OM9b>m*R3m z(9il}e|a7=2D`s?!aYM7d%t=3Eq8br73)HaoXHsQChI1T;$XeoF{@}ctneRaf#p?0g z-SxE)LgdTH)fPsJgLi6-T#?&Gj^oozM6fw-hB!CDsldLp_k-sWiv}+kw{V{HoQ%LU zGgP{Z%fwvg)U<^i)J{~GV-Rfg(`7m4G*(@~X-)9Jsx~D_;3glS)zhbgH&2F45@O>O zP;DNzSyW74yQukVL)>5O!W{r7#n^!+qC3(LkD+~l5NNdlBa_h`FtL_pK4b|s!>REbNIfI02}+Lc2c){m-NvgG0s-eQ z3d}%*IZ&N3@ZUjynFg*?sNm|uXS#%eu5sEfXAT|e5K6_`^li5~|6|0lQ7}cw2V7@> zH~h0as-lv64ygR2m_6yf;3DDwleMs28!b3Lpa`5c1 z2c&2|HQRuKxGOR&fq3B@bK{*(?DS6Sbi!@Cl(0+pDEJeMkT zt>`}Xg|w7574b!$UHl-SqPjvY#L`=)t=(P<@TMy3~84K>}&nuy&9-2hRHk+pw=D=ob;uu9A4w)T-$qPFa<}Nok+;iL3C8)D@ z&R*Uf9Y$cUxt}JNkhaY(rd+2oABDuq+&?m7bt@II`a}ywxi@ufLeZO7p!UGA zW61xeY?GgF z4ThCjMzbdpDU&XLFl6FMC852P{LHY?@5*KOyoQzzLSNh~D)MOg;u*td`;GUWwT7J+ zJP&k+RxEP5vEQAAQ&fTq$(~|!VX(LWpP*!h6*3NUoYafM>pkZQZ(#J153P%i%GM@9 zl1u@Ev7{7aAXZQi8b!5@LCKG7f_q9N{L*9{Kl14ZM&fpI@gHyyW+&Z8P3FpZ3duMJXU2&{mNb6{m^1g}uQtB!% z0UY{DW9reAko+mWoqa9!oW3NKiVsP}C|hfByOlhWa2_sxc_qFyr3(=Hpq8V?HjoOx z6noV|OXgs?Nm{S0@i_K0cpx_?hA4i26ZoJVvFxF1= zR?$S#Hk&Ipf*$16imA~w-WiIowPwqWqiS!Cs8~5<9ZiU4(qWN%jMAvyTwSMlsBQC1&l|EGTR&ktfct4zeCyElDV4^3B+9Ep0jo<|hxtENAAab;X_6w$=Nv?{Zy4 z2km^T%W?crr?z6-^0>udP;}&diCXjy(`rWYM?GxIjLsIyW!!Iz z@o-p0HnUcGr;)V?9F>JZhft{Gqyywm4Of{X756kXfy>uh2V8F-a2**&-Gc^u*eUFy z=6K1U{9bE+DSJH(5P_m2`_PPFfC`>ZVnBkNH6zlv*Z9yI zliTsE;7W3jJUcF%fXlFPi`74|u>fa>Wo*tCu1}g_s_)*IQ)GtXO!00+ZbZ1=%?yuY zW+G4yVL7&?RbF)};S8O$7%Fh&#`EVaW%+a93h2AFoqN(7!fc9WKx{E5lF&M&Y-nimTD)1wM zJPU`fRNTO0!klw~wuGmokmpi&)h6ho@s<#%J*hCVgd8TX>BU50pVgA)KG-!tF)dZM zIxO;ZQI^!sotzg|$Q4)l#YRk-A!%VTWM*|Gis|LA;ILnX#>_NFOgOd; zkC~MM2@PzrnkRm>Ub&3Y?(f=_EZDGEJeVuNdKg{V>`RPANkxbd`ZHdc)8EXRw1^_C z5|1=1b)5`j#(hN_HLA2Abl#V|5mr@sBS_q$gWW`C7Axb}Dt@MIki9hp=t11Nf`pV- z(yE4lcaZ+3jPmYYYC>R`T~fGZC}}wiJJY@1g-)RC<2|CB%sTE ziIPsC#<0gV=|z*wwJ1^w%Td4-AoGS3VtY+3EB9MlTec(?)$x*JI4uX4$%7+q;B;Jf zZOeCU0Xiip0pmPD1gk4`b1a)ygQq_dna?k8)YmUuID4tS2P#SXP<{GHtI=v4c~R@g z<=c0+_D4sph&9nf4w4qO|LLRcqs_WqY;+n^$SN|jd~l=dYoAlA)jos2t7=!j)^Ztifl}9J_9vtgE^no+aLSbvPwSA^`)wTF}|H&guwFf--flJq1 z{mA=0`l`oV_1Hs?yXx^*eg0KXdcd_;CC>;y(`)yu{mo~>b%Td$*QG_2)7BdPX(jyA zYY)n{7W|Dz{7JyGrG|OXY5d+`0z`yX8!WaY=yUYV6YulC-o{8$jk^!~@yo|ly$Uwdg* z{`}fcW#uQ-K9!Zfpf>S<^m$LLUCPQ&s{LqIesb-9X61UViG8B@drIwGR=&1C;n$(s zOG@SP?8pWW^|Q`LIqOW6vd%#{`#6-d#-f}x4&|KMAF5qbYM<>?#orrl3{ z5L)lOL-?;D{&4LVOZZ{rho!V3PYfGo;XtTL+{>*;u zsk^m1&UKD9j!sSNwWmiDQ;p_SbGy-<*xT(+Z|`;XCbmbT-S%k2YM1uUwOf15JMV;R zz}d|mm~@WbcC^(zI7CB>mSvr5H_{h2+IMc-T~kL#JJS=ByWOqb>D_i~VtQx0 zF*!9g!Yj5KovBfKig#_EAKh{G%=YGs;dqIB9k{b|v^m=AjGAct#N^%-+PRB2HX7Z| z_NY72=r+8Gd!w!W%kbQ=ceRhUo2b~?ootR8)7{C5_Vmu)cDu3H+}&>OO^$Z-uHDhz z*5$MNoBQzFv>Th@=ENQ?2Q(>B(+uqA{96-*xwC_a+l1kKue;r9kG%%D(~s_TI+LAd3q!JnHg$GK+nBc)+0NcxbF#a;r9R-C)fDPZ zLV!RXrRlA$$J(`-H*c1>7UaddiOyMeC7?3`}zv^%@o zyOVp3?Wyh#rv5IPTfB>Fjk)v~_!@+iY)bZA~@XJNQB* z3)pFIw_BJp74OBpo1;7JJ6lJmutxT#r!gT%?NMuYXRon0+8#|eCz`vUDeVJp$GsTB z)=^BQ?%wpMv4eFw+MAr}H1@X83+?HNMhlB#qT=PZ-hSqSzj|+LqK!#5HMP65)1BPe z!g=I-BMjzL8^mn4;p-<3DM!d|j!o~Pa~h+)cDLEu*_{LtoZJ~MPXyX}e2c2$pu zmrt~h?sZ4odzhyk(4|p#8dGv>d%9(mZPf1W?o_>fbm#sVZ#w2fXS#_twsxj4zjiPu zCqP|5H=0{}QxmO<@7_JP<@dICnw@rgs@v{NO-)RJ0PnRSb8fY^Cikonfe2(1<=j^M zYRJ`FAU2=`%^l3+ovl%4dV6=GyVJxor$pfLUh`LX8q-I2w)Q~ccJ@Y-5YVTa-FA1P zjm@Ilp4@4IOtdT74Jxr8CJSgsr#aaH%|p-cPJ=vlyAzWj78nOCw6G}Brth8Ix^$a= zcz0*CHI22}Y>Xz_&F(fH)#_|_Ch^qWy;h^@<-9w7`Ytwu>77<{ueF7pZ>xpbx6|4I zF$68yZf#W!`0aOGRIhj1pyQLc4PDS~bsAV;oeBJF@9wqHDdS&``=+Kq2O8+x#ss#z z(e6Y8?{9bZnxp9*>_b!2d%N7D-G9QiW;m$tkIwbZUf6k|yeDesM(1#jC#%p(acRfB zC~EzS7cX4gJhpXy7l(UBJnvNv@CC+IKKLtYyijk)o1Z!u~z2TdJ z&lMa9nlx+pHNh_v90{8AX811`MAKP*z2G+rzE$wY1m7?CTY{ey{5&vT_Pl99lf|sO zBlsf0mkGXB@J)h0A^3j5|0ejyf`1|SSAzd6cn#Qod(Ym9a3DAo{4&9Ff_Dpk zo#2}VzfbVT1%E;CgMxn~_)mh5fw*Dqc!Jh|^_dx_tUHAItF8bl*rXAm!Y zqd|xuZ#D?g9>-sMkytY>RfWhl(wcpnDKQQ>zTJ28_qVfOJ z;L~fhe>C_E=u-_I#yHsgy}nj^n89b_yA48x_auW@+|Mw0q*gm(5URULgXn}AgALFX zgIN5l23xh-7aMHXYP$wIwc0s@UCbkc6Sdk`7{vE{wZTbO4Osah)*iq>cTDQDa_E12 z8p~)ZVHk(5$~Owm2+j*G35IdGMddI)Bb7}HW$z2)bcf3K2);t_)q<}V{3gLS3BE<} zZGs#(JeT7J_%2=lS;6-Sa{Pe*pvu1^_=kcY5&TQRPY8Ze@Y8}+uF8GEYg~F2SD_4EyB=RQ{mg?+E^(;70`iQZVeNpH%tNf>&V!G&=S`!G{VyO7QW5 zPZkXO?hPt81t$fcBiIvM5L^-55PZJimf)>|=L9ba-X-`l!B+~tM)2ze-zfNI!S53M zUcnz0e5c?~3BE`0{er(L_?v>iC-`B(KNtL%;NJ*-O7LF<58dDU^%}v43qD5h34%`% ze1_l=!M5PE;By80g2x3<2%Zvrf#8nd8NmyJmj&+@e7WGO1Yaxo2ElI@{C2^&3Vy%f z+Xa7I@ZEy%75rtvUl;t4;O`6miQq>CKQ8!pg8wM^8NvI5!L#}L5WzEL-YRIe6?@(#!Mg-sCiqIh*9d;S;2QGuBL6#P9w)2Z9_KNtL%;NJ*-O7LF<4?!@n`qv0PT<|f1PY`^H z;4=h|2(|^M1)nR}7d$R_LhzK}3j}ur&j?-+yexRP;L8PHCHPvwHwb>S;I|9DRq*=- z-!Ay$g6|f5ui!5W{<`3Y1b<)fPXs?I_;JC%6Z}WP&j{ZC8t>PK2tGpav4T$&yiV|X z!DkD01#c9b5u6uX5*!NNBDg6y5`3ZHiv;fwyhrdAg0B{Qz2G+qzDe*cf^QT2LBV$j zzDw|D1>Yz50l^On{*K@u3VuZJF9km#_({P}3tj~o*XHR11s^K-D8a`IK3VW-f;R{@ z1t$fcBiIvM5L^-55PZJimf)>|=L9ba-X-`l!B+~tM)2ze-zbP}g5UH1lzh0S_n#Bo z7ra~WD+OOI_;rGB6#O>9w+jA%V2}rYQswsu{*vIY3kG>U$bo;R>mL*RTS3b87zQRQ>|N>ja-E805Ywm7gm(5L^;m7Yy>=w#sJ&Zx_5n@TG!5&ih)G-yrxc zf^QN09>E~r{g}${7W@Ul4+#E-V36yAp6;W%{?~$^6b$;hAkRHG$RX;-f9*WGuk-W& zwjNZj9M8uK)&-v-2$c-+UBNFB>N~zm@cRVcF8C9ILI3lMD*vkBZwdas;GYUoe}{GaDV6`X;J>!N z!g%~!_uFUN4yXn>Kb|8vCwN>i*bjpK?#p!jR>AXvmjz!U_zJey`w< z2>!U>&j^O^{T!7aB?waj*UeJ|4-1Cx{QuXL_s{>=*VUhBz5RE=PYC{lV9;aVPyEh9 z1Rp8*c)_}0&|e=_xhwcZf<3{T1%uxDw91=;dxF8vxvz52SAV6-uNDmU&o`?4ZGu5h z{R1k$L+~dB-y`@-f|7gI?MUf#jbBA13%1!7mUD`sin>+!UM= ze6C=yuLeEzx~@N8(0p<2eP;x37YzF6m#X|qLE2wY{|zdCi(t?@2Yc)f>-vugzFY7Y z1cSc$H&p&T!9N!KsNi1<20imXt9(d$QS%M9_CG@Kae_g={B)I%2zCU6eRo#npjTd1 z`IO+73XTNN3I=`hm#h48!GACKdcpr781%^Bt@8H^{;1%)1b&O@cvByr}X}@QVev1aA`z`r#L= ze2?H)3BE?~8w7)1_&Zd7o8S)#zEkk01%p2LS5*F>;O`24Snw|dgC6+rRsOW#)erFg zxkm7F1%v+gNh&{0@L7Uw!7mgHdf#IzuLzzLe1YJuV9@toRQWE!uMm8d;Ohi~p7&c- z{w~4q6MVbiPY4G6?k}qRtAf8J`1^u?Dj4*-=BsY=%1;qI zEck4}3BjPpom2U^;F{nqf?p;W^tb0#zAX3>!B+@=jbPB*{zsL+UGP5%{-EH077Y5@ zpI7;p1^=ty?+E^pV9?Y4mCAo7_)mgYNuT&2!Jwc0Je8j)_*B6g1Y3eZFZ(=|=LMGq zHw3>#Fz93doyso~yi@RHf?q8d^swKk@|y&|Q}BBQe?&0oUw=mB_X++N!QT}8Z-PPZ z`rlRlgy262{)^!KuJQR5^sSFn`SF5v!Dk2_6%2aTFH*TDc(dRM!PA04zq+ULIl+Cw zy9K{eFz8jkPUSZWew*N11%E&==u>}E<@X5wlHjik{#4F@j$pc%9%g1%uvnO6BJY4g{A3*9C*VbX(;!g0~CaA^1|kpeOxWmER!vErM?m z{2sv{7W^^6cMJZ4;0FYML-6+m|5)&&f`2XeNx^>>JOo9V(WwUuK0@$uf=?EFy5JGP zj^K@gvw{nPtAeKlzf^D}cvkR|;Fk-&T=3ruzFzP@2)vg@&j>yM0vq>#!AA=|LGW6^>jfKvlY%!1_5~LOhk{=$xFvX- z;03`K3*IC6Rf4Y({06~q7W@vuw+a4`;5!9>TJXJszascS!QU19u;5<^eq8YH1wSol zzIWC?*9d;D;9~`!B#3R$`%&=Gf=>{Jmos{R)XZVBEdctP;Rg7*l1mEdax zzd`Vu1;0b^ZGt}}_)fu}7JRSZuLyon@OK42Ech3K9~b<4!A}cbEjjNR!OsU!TEaD%&$3~{OH)Z z#%lI>lY6bb+kJ>X_FNa-*Ljam_?ka6wi`c2Y&$rCEtJS)V`lQElB__}_bs|ND9daU_52qNcm&aVghu z6MyWX4!Do=9Ix^Yf9#-MxgL=LT#UJ~p=8bk-|K@jw@SOK! z&lK4miwT*6>G)&El*e6|rC5m}E|V}7f9#TSxbw3Z%d!f8?2#I}Td+O5u`hq@ zkVd;FaV8gVIe+Yrwzzlm5Kr;~f9#I#xu5VgKk*xX?2W>B-iySTOu*#)u`|lz&dowB z$qM|jFRJHm!q)7>p8T;Z8txv)shq>b{IMt6=-$qKJjyftu_Lp?!xR5Kjo?E$xhk1$@d4qrPDc|sKerJfVf!EV-jLcX}$P`S+tjxp0EX9hf!9UoP zZP=N;IFKVap3^v&OSqbUatHVG7|-$wZ}TBv@IC+K&*6OkXLv?qTqa>EW@HZLXEBy# z71m}$wqSd9V_y#8XinlxF5q&m;}-7bA)e#~UgteN;cI^4HwF(M=oE&L7?TN@oN1Yb zxmk!MS%KAAk4@N`o!FBDIGp1+m2TZ>g=R#?V06wjrS%jroi8WcD&DfS**qehmk`p+c^SG32xQRP? zfX8``S9ynz_>v#^g+c%K7uo-H3dIPF&Uj49)Xc=3EWqL{$EvKuMr_Fr?9P51$}ybG zSzO2!T+glC!^1qqi@d?V_>^z>H@`E){~G<*={H7ZEGA?Mrejv-VPTeHMb_XSY|1w5 z%w8PG5ggBHoXaI#%|E$=`+1CKd4;$6kT3Y2|MKUkfj+-7Jfkr#lQ0!CG6(as7|XH> zYqKF+usyr6FNbh6Cvheha5>j;3wQGnPx1n<^B$k@H9zqigGUQ=3d2Z@$plQ!w9LZX zEX0zm!0N2WCTz`4?8yNf&T*W|Ib6(D+{o?R$D=&M%e=)0e9m|Lhe4tT`h;XSMr9l( z=I_kF?99iaEW^sI#RhE7cI?VN9L!Oi$Qhi^Wn9b6+{J@D!SlSvyL`-7{K&5i_P;k| z{P*WkXhviV#%D67VP@uHL6%^7R%2Z@W-E4N5BBFUj^z~2<|3}-25#eC9^q+T;!WP? zGrr|#{`WDA|MmHWVHt(7nTRQwp4pg}MOd1ZSd;bHjBVM4y*Y>@If2tTk4w3Ro4At) zc%0{Wm3R1vFZqFA81#Stfc;;mP>jInjK`!*%}mV60xZsQtjaoU#Fp&9?(D~*9K*?+ z#f4nK_1wxmJj_$P$Q%5NPx*#_^E*St4s`mBkr|5#nS$wAA8g7t?95&q$PpaRX`IU? zT+KhZgZp`mXL*IU`H(O8p8xXa#DPA)GCZR(E|V}7GcpJBvlz>=3Tv|=Td+O5u`h>k zG$(N;7jQY(aSM0z5Kr;~uk#+C@HId28-phabPB^rjL8H{&a}+J+$_YBtibB5$0lse zPVC769L{l^$~j!jRouw!+{dFl!^^zI2Yk+V{D(o32Kt0#I7Ve0Cg$(V!0gP&qAbJ8 zti=Xw&UWm|J{-(ZoX8oR&t+W8&D_OyZJgc!T8?zNVvIqNf7{_u7XLAu(as#(NChM~q+p-ILa}Y;z0;h8xmvRj^aVHP(IM4Aa@9+^{@&msxXo^6m zP>jInjK`!*%}mV60xZsQtjaq4-;dM!|L4S({NIn-{{Oo>`*A48a586cAy;rcw{i~; z^As=g2LIwyzTw~e&JZaBU*~U(%vemw6immg%)`Pg#fq%KKiHIQ*qOaJkRv#r(>Rw) zxSD@*2lw+B&+-ay^C4gGJ^$r@pV|BW&;Jb1XpGAwOvQ}M!Tc=7vaG_|Y{(XD&u;9? zAso#~oXG`T&UM_v-8{sTyujO9H(*)7jqRiay$3&D9`XRZ}9=2^BwXGbOvW_K z%v>zU5-iVZtjor1#g6R3{v5`!oWj{$#FgB@ZQRQvJk3kI$@_f9xBSfiJ}CYF|Nft0 z8HKT#h$)$#*_f9_Selhsll9q*ZP|srIfx@UfzvsUOSy)dxRVEXoacCzcld}e`GH>; zG+m%mC`Mp(#$!^ZW+vuj0TyRDR%IPFVoP>lclP5@j^Sj^;zF+AdT!+&9_A@tdHO&tp8xE4EW@HZLXEBy#71m}$wqSd9V_y#8 zXinlxF5q&m;}-7bA)e#~UgteN;cI^4HwMob=oE&L7?TN@oN1Ybxmk!MS%KAAk4@N` zo!FBDIGp1+m2x^2#O?8-hI%u$@k8Jy2$T+7Ye#e+P-^Ss8pe9Tw;$gd2RIq-FdW<qX8t4>?5g48En3SoRi8)z-#aWJ3S%;0-k{#Hc{Wz3kIGMA!kSn;JTe*jad5RZ# zgMaZU-|%mKXNYWpPQNiSV=*C9Fdefp4-2ytE3yXvU{khXXZGSij^KDs<6JJ`YW~R` z+|Oe?%PYLihkU{J{Fgsx5A^w!;Ter_nS`mBkvW*3#aNbASep&mg6-LjeK~}qIf*m5 zfXlg#TezEtc#;=*o%i^Julb4J7(7RyQy4~KOeSD*rezl9W+9ej1y*N0HeqXaVowg> zaE{|t&f#LN;zn-gJ|5*6Ugj-6;B&s?KMayH&?h9rF)HIQF@I+UW@kPYWf@jxEjD0t zwqsZJ;b4y9M9$!RF5_Bm<}M!O37+RQ-sNMy;zxdEuv~#op&5}e7@x_QhMAd*1zCdS zS&ensn6226J=mYaIF?g5n~S)T8@P>od4#8Vi8pzl&-j*~`BUydpI;c3Q5c(vn3Cz4 zjd@vwrCEtJS)a|=mR;DJgE*2CIGyvjlxw(&J9&V|d5%|khmZJ@ANYkq^8`ADVgyEK zJSJsoW@1hjU~!gXRn}o6wqyr(XFm?*7*6IaF60WX=T`3FVV>ee-r!$+$~XL*-x(rr zpwn-R%vemw6immg%)`Pg#fq%KKiHIQ*qOaJkRv#r(>Rw)xSD@*2lw+B&+-ay^C4gG zJ^$s;`2u}@Wq3woTqa>EW@HZLXEBy#71m}$wqSd9V_y#8XinlxF5q&m;}-7bA)e#~ zUgteN;cI^4HwMoi=oE&L7?TN@oN1Ybxmk!MS%KAAk4@N`o!FBDIGp1+m2$#PCc$lYnkvI4kpYjd==68lD66o|BBQq8gG6mBy zEAy~0OR*wr@DDa+8+K+d4&(@q=QPgc60YW-+`;`k#$ruxd59-@f!BGDPxzXj_>IAf z1v-UcB*tU{CTCh^VQv;;NmgKW)?*X4W+(RK01oFkPURdf<|=OFcJAX*p5bNQ;sZYC zJO0BU#RGjpG905a4ioctW?**aV^Nl2W!7Q?HfK9_WgiaaC{E-I&gU|&@If2tT zk4w3Ro4At)c%0{Wm3R1vFZqFA7_?NNQz%AYbjD*+re-GQWC0duIaXyIHeyS5V0ZT8 zP>$hb&f-F@;CgQ59vkAtgiOJ7%*s40%u=k#8vKJz z*@m6jivu}=<2j9UxrD3vCwFi^kMS(8@HQXv1>f^u{#+)|=U0YjG{$8Trea3sV15>3 zSyo|fHe?I7XE*lc5RT>~&g23v=Q?iTZXV)EUf^}!;}gE-Cw^n_vVl%v7>O~NfXSJb zS(uxJSdtZ3o%Ps+t=Wk^Ie^1Cj#D{@i@Ay$xt;rXlxKLExA=h1`HufENV!0tkPOGD zjKjqIof(*&`B;=?SedohfX&&CUD=0&If@fGgY&tJYq^=bc#tP}p4WJnkNJup`IW)S z2RemjM8;rzCSw|AW-bdHO&tp8xE4PUb8wo zH~gF58KP#O({GH-SWL(iOvkLu!@?}Zimbsu*pzM9nY}oWBRHPZIG0PfntyT!_wyLf z@(OSBAz$!4|K-oM0)2jEct&GfCSfXOWDe$MF_vW&)@DPtV0(6BUk>4DPU1{1;Bv0x z7VhRDp5z5y=RH2*YkuN42Cp6H6o!!)lL?rdX_o^3tZtxFXhviV#%D67VP@uHL6%^7R%2Z@ zW-E4N5BBFUj^z~2<|3}-25#eC9^q+T;!WP?Grr|#{!}l}=NE=$6vk#Ereu0%V_p_v zX;xxQ)@L)eWf%75Adch&PUk!>AA8g7t?95&q$PpaRX`IU?T+KhZgZp`mXL*IU`H(O8p8xXa z27x}mGCZR(E|V}7GcpJBvlz>=3Tv|=Td+O5u`h>kG$(N;7jQY(aSM0z5Kr;~uk#+C z@HId28-q6tbPB^rjL8H{&a}+J+$_YBtibB5$0lsePVC769L{l^$~j!jRouw!+{dFl z!^^zI2Yk+V{D(mr1^R?!I7Ve0Cg$(V!0gP&qAbJ8ti=Xw&UWm|J{-(ZoX8oR&t+W8 z&D_OyZJgc!T8?zNVvIqNf7{_u7 zXLAu(as#(NChM~q+p-IL za}Y;z0;h8xmvRj^aVHP(IM4Aa@9+^{@&msxXwyKaP>jInjK`!*%}mV60xZsQtjaoU z#Fp&9?(D~*9K*?+#f4nK_1wxmJj_$P$Q%5NPx*#_^E*Q{3v~L8kr|5#nS$w#+%2vlDxA0EcrNr*aM#a}_soJNNM@&+syD@d2On9sgmF zmVrJY8IDmIhl%++GcY^zu_(*1GHbB`o3kCevJVGy6en^9=W`j?ax-`FAW!f-ukkJ) z^A$hxD}%KPbPCOgjKTO!#x%^#Tr9{EEYE7J%f@WQj_kqy9LBMn!r5HJmE6E>+{+_8 z%}cz=`+UZ?{LG(P2m1WNu#CdkOvIE-&uq-gA}q~HtjYRp#V9 zEXfM2&U$RZ*6hTd9Khim$Elpd#azXW+|GSG$}_yoTYSLhe8+znq(h)jNQPrn#$jUq z&J4`Xd@RZ`tjt<$z~*enuI$6X9L0&8!TDUqwcN~IJjfF~&uhHP$9%<){K{Y*1D!%M zB4aQ#{Lhu_Jr1KZkKFr*JkGaV0l!8~5@EPxBIQ@;;yOEkE<8 zPJuqZFf5}mHWM)=(=!|MvItAF5^J(Po3Smsur~*BBqwk>=W!|5a1(d(0FUz=uksEb z@g+a-3xjqJbPB}?jLvvW%GAunoGifNEXS&>!$xe$4(!f;9Lh1A%voH>6 z#f!Ybzxb4I_&2{ZM3+FP-x!&(n2;%$j#-(9g;|OfS%ZJDDci6!dvPE~a6G4RE|+jM z|Ktwt=P{n;72f7UzTkWQ%b&Xj`uxi9jK;W3!c@%29L&#REXyja&4z5j_Uy*K9Kz9@ z#F<>ca4}bLBe!!OkMayJ^A;cQIp6Ug2I(H?6O!Q=m2sGuzcT}~Garkx3@fu1 z8?ZUsu`By#z}9vID!bABS=bCvz4Tas}6OEBEj)Pw^se@Gm~)8~)Aj z4ADE#={H7ZEGA?Mrejv-VPTeHMb_XSY|1w5%w8PG5ggBHoXaI#%|E$=`+1CKd4;$6 zkT3Y2|MKTPfj+-7Jfkr#lQ0!CG6(as7|XH>YqKF+usyr6FNbh6Cvheha5>j;3wQGn zPx1n<^B$k@H9zqigZB+|3d2Z@$plQ!w9LZXEX0zm!0N2WCTz`4?8yNf&T*W|Ib6(D z+{o?R$D=&M%e=)0e9m|Lhe7%U`h;XSMr9l(=I_kF?99iaEW^sI#RhE7cI?VN9L!Oi z$Qhi^Wn9b6+{J@D!SlSvyL`-7{K&5i)<4iGG$S$w<1-o4Ff((pAWN`3tFbN{vlTnC z2m5mv$8rj1a}if^1GjN6kMJ}v@h0!{8Q=0Ve;N?z^9#c=3S%=7Q!+iXF)xd-G%K+t z>$4f#vI~225Jz$Xr*j^cat$|eClByA&+#hn@DX3~1HUlnz(A)^jKJuO$D~ZnOw7pw zEY5PQ$~tVsmh8ap?8l)T!^xb*g$CSzh67KI99&=fC`UaG=kx z49{qc%Op(2jLgCOEXJ~|!rE-e7HrRM?8_k>%}Jce1zgT`+``>F#FM%7M&e9ce% z#^6H&ox(5@V=@7gGcB_)Hw&>OE3i82u?btV6MJ$1hjSdKat;@B6*qD__wgvt@G@`l z0iW|7|6!1!fj%J_j!_whiTOJ-Fgx?HD9f-iYq0^FvmLv#4+nD;Cvpboa~aoiGk5VI zPw+gi@h%_p6+iMTgAEIG3eAX&!T3zZG|bFgEXWcp&uXm8#%#ro?7{vV#<85j*<8ex z+`w(z%OgC^OT5YZe8#u@%%6q_`uxJMjKbJV#FR|WY|P6dEX_)+$@*-@w(P>*9K?~F z!0DXFrCh^J+{ptx&U3uVJAA~K{J<{^IwH_16eBP?<1r~yGZS;N0E@F6tFjIou_ZgO zJNt1c$8a)daUoZ5J-2cX5Azf+@&^CnQ@-Kf{LT;~1D$?jWX57breHc|WgZr0DOO|+ z{=uef!_Mr*fgHi{oW{9a!qxnfJGh_6c$Qaqn-BSd@A)r(9u?^GE5kDy<1z_TF(Y#@ zKZ~&}tFSg3vIX0-8~btyM{^Qqasiif9k*~d5Ah@~@H+4D319OQzcKjeK&LQ_#F$LL zbT*Zyt&V4+}GrY`Oe8A^?$A1`POrTFl zhGSI5VPgKy49w1aEXp#h%vx-~=4{8V?8Ctv#fhB3`CP`e+{|4($P+xzYrMYa5filB{y&z_woo&^Ad0J zKA-U|Kl7(?fj+-5ETb?s6EP*zGaK`=2urgPYqCC@u`Ro>HwSSfCvZCFaVghu6L<0e zkMkU_@(v&IB|q>BgN_e$3dIPF&Uj49)Xc=3EWqL{$EvKuMr_Fr?9P51$}ybGSzO2! zT+glC!^1qqi@d?V_>^z>H@`E)gg~d?7@4t{kSUmsS(%50S&9`|gMY9o+psfxaUe%< zJg0FkmvA-znOwl-T*ock%|krN3%t&Ie8SiK#BU5fDbOhlBQYiuFgepQ3v;s&OR@s1 zvmTqUH9N5<2XHvYaVqCz zWK6@%%*BE%!Sbxex@^o=?8qMM&tV+PDV)tkT*(dG#=Shk)4ar+yw7KR%g_92YM{?A z49h5t%|uMe^vuS*EW*;P#G0(nW^BtY?9D+O$qAg!d0fgh+{B$cz~el}tGvTUe8~^| z!l2UvokB4Jqca|pGBqyhjI)ja~2nJ1=n*c_wX=J@gi^V zFFxfP{>|?UF+I@fH%4YGCS(exV^-#2VU}V=*5Ds($~NrGUL42~9M5T-%OzaRKe>bZ zd5mXyg}3>TFZiDS^5+?WKEEWW@&d2(9-r_vKk*xb&kS@5!$^$D1WeAf%);C(#FDJQ>a52mY|T#W$pIYB zah%FIT+CJ6$nD(6qdddQyu}B6&UgHWL1qQ|gk(5IWgI5v@65pL%*UcE!^*7125ioD z?8-hI%u$@k8Jy2$T+7Ye#e+P-^Ss8pe9Tw;$gd1GJJ2aKBQgf#Ga1t`Gjp*ZORzkv zu`V046+5yA`*Rq_atdd25m#~pw{b6z@H8*+ChzkZ-|{nmniJ^r3&S!BV>1y`GCi{~ zFN?4=E3qc)vl-j63wv`AM{)wEa~_v+4L5No5AZn8@hb1|5nu8HzcA?BK&McQ!03#} zq)g3B%*g^Q&T_2EI&8$2?7;5q$Dtg<$(+T7T*39+$~`>HQ@qF<{EJWdhJW)rL(B_w z`i+qpiwT*6>6n#ySeT_)ku~@So3af%vlj<)1jln4=W+>G^H1*JejejlUg2#%w#pYt96VUUG^J|P*7Q5lDc`8zW(JM*z9%dj$Qu>qU29lNp*2XhoBat7yf z8P{?%ckv)k@I0^aE+6w1Kk_SsEedoB&4`S__)Nw$%*iBRtJZyvh4~#<%>;pB4xD{KBw|!q`m2luXZT%*!Gy%}T7v`fSFw z?84q0#F3o9>72)LBXcl6i?J-Lur?dA1>3V5`*H|Ja}sBA0heVd;ZIx*9Q9h%J7WFxJ<%S%*Y(f&tfdg zDy+?hY{B;I#=acF(VWDYT)^dA$1U8=Lp;d~yv}=k!q@!7Zw$UJ&?yWfF(wl*Iny!= zbF&ajvI48K9-FW=JFzDRa5%?tD(7%9S8*e^b03fL3@`H*AMiQf@gD|RALtX3;TV;1 zn3%sa1G6(9i?R$Wvlbh$Ioq)-`*1KvaUy4MK9_MVH**&c@&wQG8t?KkU-2WqGT4Sd zr_hYZ7>v(kOvB8~#eyus@~p0cOfKMZuHzQ&<{_Ts1zzVpKH+PA;x`8066h3$krug}GUXC0T*hS&vQF znw{8_12~-HIF)m_n5(#v+qsWNd4`vHix2pm@AwacYz_1Y$#9IyI84mnnSt4vk40IA zm061o*qrUym3=svqd1W>IG@Y7mYcbY2YG_$d5w4Zn6LPeUm0v$pi^i@WDLe z=3+sXV0l(!T{dPbc4QCs=P-`t6wc-%uH*)8<6a)&XwvzT^jfVbC3c zPN5iq(HW0PnVOlHlLc6u7(!!@v2RAr1sO{l>_Q z#e_`3bj->;EX-1@$Qt~EP1%N>*^2`?g5x=jbGd}8`6qX9KacS&ukbb>@&(`XU;cbB z(C1f%XEerT5~gBC=3ssnV_8;VZ8l^Jwr4l? zyLgZ%c%IjImyh|1ANiHRjs!Y|W<ox7U&d;5g48En3SoRi8)z-#aWJ3S%;0- zk{#Hc{Wz3kIGMA!kSn;JTe*jad5RZ#gMaZU-|%mKXNcp0PQNiSV=*C9Fdefp4-2yt zE3yXvU{khXXZGSij^KDs<6JJ`YW~R`+|Oe?%PYLihkU{J{FgtU2=w`t;Ter_nS`mB zkvW*3#aNbASep&mg6-LjeK~}qIf*m5fXlg#TezEtc#;=*o%i^Julb4J82n_QQy4~K zOeSD*rezl9W+9ej1y*N0HeqXaVowg>aE{|t&f#LN;zn-gJ|5*6Ugj-6;B&s?KMZmz z&?h9rF)HIQF@I+UW@kPYWf@jxEjD0twqsZJ;b4y9M9$!RF5_Bm<}M!O37+RQ-sNMy z;zxdEu+xD~p&5}e7@x_QhMAd*1zCdSS&ensn6226J=mYaIF?g5n~S)T8@P>od4#8V zi8pzl&-j*~`O}#|pI;c3Q5c(vn3Cz4jd@vwrCEtJS)a|=mR;DJgE*2CIGyvjlxw(& zJ9&V|d5%|khmZJ@ANYkq&jvb$VgyEKJSJsoW@1hjU~!gXRn}o6wqyr(XFm?*7*6Ia zF60WX=T`3FVV>ee-r!$+$~XL*-x=aupwn-R%vemw6immg%)`Pg#fq%KKiHIQ*qOaJ zkRv#r(>Rw)xSD@*2lw+B&+-ay^C4gGJ^$s;=L3CyWq3woTqa>EW@HZLXEBy#71m}$ zwqSd9V_y#8XinlxF5q&m;}-7bA)e#~UgteN;cI^4HwM2D=oE&L7?TN@oN1Ybxmk!M zS%KAAk4@N`o!FBDIGp1+m2$#PCc$lYn zkvI4kpYjd==68m;8tC*JBQq8gG6mByEAy~0OR*wr@DDa+8+K+d4&(@q=QPgc60YW- z+`;`k#$ruxd59-@f!BGDPxzXj_>IA@2RemeB*tU{CTCh^VQv;;NmgKW)?*X4W+(RK z01oFkPURdf<|=OFcJAX*p5bNQ;sZYCJO0BUHv)Y^G905a4ioctW?**aV^Nl2W!7Q? zHfK9_WgiaaC{E-I&gU|&@If2tTk4w3Ro4At)c%0{Wm3R1vFZqFA81#0aQz%AY zbjD*+re-GQWC0duIaXyIHeyS5V0ZT8P>$hb&f-F@;CgQ59v=R`_U;2pimF=_a1$gW zl9VV>q99R35Qzdxk|03@1{i|mB%q>$paLpM6jYF40u@ETfLRp9gcvc4V!()56w!BT z`YWBqPtPCTd-tyQ);((-z6!f{*X*jUI@LYXa0g%KyWGPs_#OB2Pv+U3tW#l@U|CjX zP1a)*wqQGUVh{FX8b@#(&*Kcv<`rDb>zF5Dds%{IS(!Cik4@Nu?bwMu*pF!(!6R6Z zMR^R%vkK$qKf!!sHe)NcXJ^LS(bxPyrgIc0a4KhT7UyySui*_`&D*%1o4AFKaT~+O zB8i+O6N&KlQKq{XPEVQhd-yr`@h2W&jvUGOye!P(EX@i$j{D`0PTmHg7ctp-*{R*)-%diq_@C2U7 zQ`nYgusi#55QlRtr|?3~;yf1?8W{Z!gD!+(|9p2<5gV38@Pt+xPkZcQEuZ4e3ftWL+<51{>+2S zojX~lf-J_;tjOxD%f@WZHawkYvJVGx7{_ojFW@Dd%Y|IZ8+i-wA1&g{vvIhZ3ko>O@dFXffIn%8qR*Ya-O z$4B@SpXV!li@W(5zu`~(ow>q=IjU0u7G)_`U^UiZBQ|4ec4Rm9<^ZO1G$-+V&g2{} z;I&-An|TK}atj~lGu*+~`7ZbH3x3D_{F8a|ChJs~C0Le~S(EkHge};Po!Eo@n8pzt z$MZOYvv~y<^E$5LZM=*3@?k#7=lC+;>3pR7|M7H1h& zVhx_a6L|{T@(gxoUk>7Mj^z|y$XT4nMO?;}yp`*@nGbO*pXE;O;`{uBU-1Y2#vBEb z^~uK~JeuWMm9^P`P1%y|*@eB>pF?;qCvX}s=4HH!OLzmZGOnT z+{d4Jkh#MRO?2Ka$YLzbimcAMY|Q3t!_#>t`*0wKaSSK(0$#$oT*#%ok+<+pZsLP{ zg4_8L-{5=vm|yaH{>nt5WPS4TNS0(dR$(pH=Se)3r?E48@@x*~NRH=JUc^gzC9mf7 zT+Ow-oA>b%KE>zx3g6;xe#US36Mtu}!pS-nU{RK01y*AnHexfjW=D2oZw_EOM{^R- z=S?R^ zkSDVhJFqLy;yE13QJl!>%;4pm&uh4xH}Q7f!w2{npXQ5vjqmUye$H?C3;*B|MZ&GM|u+HAn4Y{~ZQ!d~ppAv~88IE@$cGG4_cyn$=DjvIJCALTZ_ zz*qS;KjdESYd-7}!=17j`R9?hO zc_pvr^<2%hyqov&5kAG|`3m3SZhppZ_!EC;uJA^D=KVj5vJ@+@8tbqTo3S-JvKxDI z0Mj{|lXyO7at;^pTCU*Dyn`FLg^%+Y?%?ZumwWgHzvF)X$vokl6xFFPORy{}vnK1Y z30troJFy4*F^wZQj^}X(XY&d!=5<`f+jtl6<->fE&+%ox$q)D`zvhoTz??@X>yw{H z@faS<<9Iw9@?^GR2X^IIJcmO$iW51V8N8hHc@3BICf?3__y8Z{(|nPy@g07|&-pEX z;U7FAeDD+ANU({luFhoAB*s4mS(I4sPTYKF(*jgRk>l?%@~wj{Es1^OQ^0sW3~h zEGx4n>#+%2upK+G2m3LNBRG!daRz7e3NGe#T*cdX7w_f6e3H-cWxmM|_$j~Uk37Jf z;TI{Q<0wCm;xRmy$MJYJRe zoB0s8@>%ZWF22uC_!WQPZ_H64S)Y6?!lPN9Rau)2*pw~Vo?Y0B{W*l^assFEVqV6p zxP&)w4cBo4@8_f3#uxZ1-{yzh%YFQr2bsHKvQ7nAjHOwT)mfK~*_>^7I?rSu4&*S7 z;bdOGOE{Mcxs*5Z7T(ECe2`CYJ73}(e2*XVOMcH^nW&VkPhK9$k}St6ti}2~iKp^3 zc4kkW&A}YW@tn$wcqy;s)x4goxt4eHK0d;y_&i_XTingh_zi#J@61&>S*HRl%2KSr zYOKRXY{u5?$ZqV-0Ziv;PU88T$vIrWYq^3q^A2w07Cz2rxP!0rUGCu*{EqwiC-YQE z)~PT{uq-RHChM^YTd*BFu?PDxjUzaY=WzyS^9nBJbzH^Uco*;G!+es@@nycr5BMp+ z=8rtUoK=(c$kt;SF5Fb=<)F`6##X1-{C+`62gmAAjaS=B}QsQ$ZGEX;x%))@5ThXB(c*Guej& zIgDdCnHTU9&gDWb<&C_BcXAUSsck?rT!=Ly&bJa}NsQ`#z}a=xcs^%x4j1rRuHenQgB!VpkMkMs;Ol&sd-w&v<9`0h zJhhT_D$Eir%gU_DdThcLY{yRQ!G28R2#(`b3U)(a^A$-c@H1p zV|1%3fuAwc4uD>;&6`T6kf<#oX166 z#+AI4>$#Z^aVwwYPVVCS{Dfce2mZz!b&~bT$09tM*ilI_`rz1W{acrGV! z8ZYK$yoyVB1J`gJH}HNw%58jsukvkv$i3XhpLvkE>n7_|ki}S<6Lu$` zfJIq~6EKFt^T8sFhZ{G8wN7yiK`8Yb&hh{aikl~{u(@I;=%wmgH~*_VSjoMSnK7jhQo zaS@ksC2!?=ZstSW%4fNgyZAmo;aB{DzcELnWPS3n2#;oYR%LBAU{khadv;+j_U8~D zkw`voK^A5BxIOc8t?;&crs4KG({LHiG(0@hW^B!l?8e?4z;ur0B%aTioWljYmMeHO z@8Cvm;p2RUJNP=^)@3^0TGEa`=&l~^UZwd2dS(!CikMZC8wlLq0o!Eo@82_E` z2=n8ZYCnZvAIaPg;bXQ;!`qUXhTFGH!{sj1#{5_J*Z=9~YvuVnuq)5vIULGSoXF|S z;N_gpYq*>@@pj(B2lyDD=8Jrd@9-mj&Tsh(|KJh!Qz6EG7hcAECDz~xJdyF=gSRz* z2D`H_2QmIT@UiBn@IubwJTBrguH>y;&&_;@Tlp+^au?s{C;W;(@HghjnLG~ju?UZ5 zc~)g@Hege>WP5gDFZSmUp34cG#*29wui_Hkz%^XQ4ZNR^avNXZt9+XuaxeGsXC7qk zT**2WWHFXzMOJ5BHfD3S;pse+eK?TAIEIsX0WaZPF62_)$Xj?PH}OF}!R>sBZ}2^S z%rE&pe`O+fvOalvBula!tFRX9^CX_i)7Y6kc{T@gB*$|qFXE-Vl2`M3uI5_a&HMNW zpW^d;g>P{;KjSz2iN7;fIDu#WeiMtb6f3YA>#z}a=xcs^%x4j1rR zuHenQgB!Vpfy|%l(D6#D>tJ}BE;Bw1*E2ndr}8v*W>22Y!5qo)oXU%MDX-+!yq>GM zmUr_$KEkK?JYV5k+|AGU4S(YA%;mgWfJIq~@%NNeGhc^|*o>{&k=@vv1DMXyoW%1v zlXJL$*K!4K<{jL~Eqt8Ma0g%KyWGPs_#OB2Pv&vnEzA-u%gU_DdThcLY{yRQ!G28R z2#(`{D43Fh;Jf01CGF!0&yYeia!=W6-iTuC)y*vNz z`7S;lQjPmtsb71>=e_v2=xg~vrZXOoPcR>!|Kj6gmgRG~fbqEe2J@>KA1CY0Z{|bX z%4fNgyZAmo;aB{DzcGjXl#fOD|4Uu}=YA)7-uqAQcmCD$?EkCB%R;Y%rM!{1@J?>x zgM5P9`4ZpYd;FMR@_YWugx6bM9?6m{$11GF`i$#dNWS7M!%D2d_`G+b`BT`IXRtft z^W7lx!#S2ycp>BS+&uG(xQr`#EC0LBZ%3WP5gDFZSmUp34cG#*29w zui_Hkz%^XQ4ZNTK>3;uLU(fM%^3ZWp{JaJ2zoI;b%SQ|Md9&-`&2( z>eGy^_|L{2gT(#M>o9p;`|o}oKI-+jjW6(3zReH0m;3lL4>Gs=n}RIH(yYkptjor1 z&i}6C^Pi22r#XHv=4HH!OBj!b*O*_&4ZNR^avNXZt9+XuaxeGsXC7p3`=KC!zblqrS-7#q+$7Y%BF@4hH^f7Hlj~g;-V4HDchm9PbNXB*UGq8QPj$H?K96K^( z%6w?Mi4(_79M~ak?9kEa6O%cHrVpMneBj8j!^VYY%bZRdJa}UId0E${O-vg*Jl!@V zgZ^>Jn6x1iLyl-OlOdx=j!lnqhMy`?cgVOgW75ZlZTUN9*u=CkA*faN&UMo!Po6k( z@RZ5X^9-LjZp!#jpMSAM??Xk`*0@FWkH&Zzp*IaZw|;0`%dk9-J2{)UPFdojYf!3u z(SDBeHP0q)XqLEWOqnWQRDw8P^d3yAxahcw<4(;cZcdiCmf6HD$r9Hpo48e3;#y}D zcW0KkHrd2IkR`5dHgQj7iEEcl+|Dde`CN8?~h~uJjcdC4|v&8kvCT?MtxU;f}Tb?DZ zcQ$crv&2Q`npE2teeN3n9MPCPRovrQ;`(KYD;uW6szkWVWwvOXmbHapQ)a6a{*6}U zO3o$@jf)>vJ**Fx!+#oAFT_NT$@;v-!hGD~=RH0w$RB!3D^``upLq?=2=moKkAB|h z`J!`S)_l?D%k#prxW)ORb9&Z%4}^R*!m^CeBjbEg&9ml<-hb~Omc=cKi`uBrv&KCY z;=<+suNFUVbpId4#cfAe(Kb#J7RKwM@n6>M+a0zq`fl-zuso_oynPG8bo`hwnJAVw zk=T@FK|HzokhpE3SSLjf(BiliVLt2gPOI>DU7~x`_<1*n>G&~Gii06vRJXXr>o$Z1 zS@W$5`C5i$8KKt?J?D!_faBU#MBs zHiezBJj)LGhkWAtgfEhR9T)w;h#e6NZ z z)&96Ua%?-M)&A!~PB18s&?}Ifu)4AY1^-g_yXd%GaSuczuMRjLPlM$Fx-WGENG6yGSx$JkB{>z6!Mxi5qvv*-~#`M*IAU4PomuLTEhBIb6O+!UykT z{!W+j=dIVFKw?^mi}Jiu^H2OPXs-Jgl$XBCzGG9E-Ib6QQr{+jZj+2D6 z@#LY$-_F?u644kY+P>bQ=MMdF`SOGhQu~K>aZ8nNTKGcg@gXQ9^mv?exO{^{zDL9T zdE8Rv+Z*yN3xki05O{XzskX0Tcw>8Rcpb$pRlbbyMb~@1-ps~ zX#GYkERe`2-@t70O+F(>qC}h|n|$LJ7fAF8aTy^dEt`CEI^{@2zdI4Pc=FKg+kW-m z+czYed?$xDBBL>3+*0M+c}+O}LQqEN>7l3EA88@qiE)w;7f&9#efvYccziHCn|w>d z2lo%hNwUc|erbWk{t%ZDVn$|@ug94=GT##lA(<^sedzX$xURro*Yju$nd;}gJmd>6 z%fDKxe5*pfmLV!5^yvJND&LbKU-Wv6TdI7!L%tCqC?oW7p{L4MrhAUe>sAQKY^m~f zxW2$&*YgP>GF84cAz!PUk_A%b+Z*KzaTy_IQs}Aj?Fl!S;gs-Kizg4=A9Gd|NMwYS z86k2?=&ABm4Zq+q>#uC7w=dtyaDEAK8KF-NJSRtO z|B0S6YLQuXd!l)W8x&6PGsE)eo+!$9ROr!jhJ1gurI7O6@Hz literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Core/Src/main.su b/stm32f103/Debug/Core/Src/main.su new file mode 100644 index 0000000..92caa7e --- /dev/null +++ b/stm32f103/Debug/Core/Src/main.su @@ -0,0 +1,4 @@ +main.c:64:5:main 8 static +main.c:107:6:SystemClock_Config 72 static +main.c:146:13:MX_GPIO_Init 24 static +main.c:164:6:Error_Handler 4 static,ignoring_inline_asm diff --git a/stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.d b/stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.d new file mode 100644 index 0000000..e442e79 --- /dev/null +++ b/stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.d @@ -0,0 +1,69 @@ +Core/Src/stm32f1xx_hal_msp.o: ../Core/Src/stm32f1xx_hal_msp.c \ + ../Core/Inc/main.h ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h + +../Core/Inc/main.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: diff --git a/stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.o b/stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.o new file mode 100644 index 0000000000000000000000000000000000000000..8d6c20dde18aacb9d3650faf584f98ec2f615e12 GIT binary patch literal 699672 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%0D1174P{B*H9)Nh=HzL9Q6&j3UMN39+l$a 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

    ? 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 H<2n8pP?(b! literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.su b/stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.su new file mode 100644 index 0000000..6f735d5 --- /dev/null +++ b/stm32f103/Debug/Core/Src/stm32f1xx_hal_msp.su @@ -0,0 +1 @@ +stm32f1xx_hal_msp.c:64:6:HAL_MspInit 24 static diff --git a/stm32f103/Debug/Core/Src/stm32f1xx_it.d b/stm32f103/Debug/Core/Src/stm32f1xx_it.d new file mode 100644 index 0000000..6baed36 --- /dev/null +++ b/stm32f103/Debug/Core/Src/stm32f1xx_it.d @@ -0,0 +1,72 @@ +Core/Src/stm32f1xx_it.o: ../Core/Src/stm32f1xx_it.c ../Core/Inc/main.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h \ + ../Core/Inc/stm32f1xx_it.h + +../Core/Inc/main.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: + +../Core/Inc/stm32f1xx_it.h: diff --git a/stm32f103/Debug/Core/Src/stm32f1xx_it.o b/stm32f103/Debug/Core/Src/stm32f1xx_it.o new file mode 100644 index 0000000000000000000000000000000000000000..5ae6f6f535c4d61ef823cc57ecfbf34f944e2ea7 GIT binary patch literal 701352 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

    &e1&eogf`exyns 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 i+Qz${Rxg7I@fD(K!AY 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

    <;gtm*);y^yXLVw1 zcH|a00R_iM#js-9EaP5aslTcLEZ;!wR=*Naf#Mbp?;Ae1jm&xMMyH}T!So7RF=&;g z51zY2F?Tov`v{_QRX12KDk^&S_}N8Uc&p9pQ`AXw6HJ3i=K;==@VzNkLW+C?sk?Yr zjSlXtia9e`#0Jb5G@A`K8Mza1w9){vR&+8#kgWA6+UmoV;c>}epAC8Tc0@*J7md+z zkWRaieJ=1a9C;I8shJQexvO-dJo?L*#rX^#z#+_InR+|P zx6rM^E(Q*AVkeP`;|q8qlq3I=z%&e)*b8F4*}RlzW0wlP0r9Was9V|)n}UD|&veOl zSwZ|H))aYu6Y2L2-iGU8&Y$d&NwMlh{GpcS8|c6;$K&hcixJX#&Mx38fL}ZDgYrlI z4Rr;&M-5DmO?J|1sSuIg6-66l#ldN^3N1r*5ej&m#|X`WLy47xXkIYFfgQd^{3}YR zZIFQ&V+(hB`b^LQV$cjQ3gDGNi^;RI8{QOrF2#Y&z-5r;tIR$J{(XJf-<2=42cuVq zut^!TWRBZ{tS%>%p5WM;EUu?Q`Dh55>4fFQwbp6z95#ZzV$ci_Oi*+QmZm)yik@=1lahozi%JyUsSyDQAlU)b-F_}b#t2ucJE z{Gvx*T#n|bnuskZoS|F0Tq`nDSLsE!b<$!N2O#p=UY=%tau@*}oFh6ID#c(zKnp_x z41&naa}1V1%c-xzN8sKO03z??LNn2%Y!ygj)4?DwHf%W3QT(n_hjez(txZy3eyASq zC7_v|vVKe?#}#!R7aJ|xiI@ekrVFr$bV|DJ2Wz@}$Or*THV-GYPU)HRT*1(v-b6h2 zDt$<=*bQB9j|d{Kv1m3hV9uK4DX9`O?g8A8zh%-+W+& zqpM%$DdyHqiB4W**dya*0{7MGR022lq^1|X(-~2f=prL3#)U;8XKRB7D-9ND?OqVx z()>%Mj6(vtkI98BF%%coN+bq(efW!1{WDSDxszfj5S8 z0n@>g*jh14x1jyGU0@M3gvJ}m|l%?<(&=ESzh`1N2916{61+o|Cf?INSaJo~} z;nHRK8k5{0OIy5)Zl%Pl$zqQ#PEc|fo)v9PpQ#-RmmpV&kr&tD8-5>6qSXLuywXO$ z#KbC7eh|6Pd_cXnO2E`Vv}%lHN^x~m!SRBID4aGMuIsbCk)Szir(3g4lJNBJmh@!j ztKF~n=S%yGpeL4kr`uc{2UPZ8m5}xos7%8O-P=%G&}y5m5r>%5W5MlCgDO(*oBksm z-7r#?*8KjVZcq@*`t|aqAq3AAO=INnG*L2I`aDn=vn7Vq4M3#VhsMf;*Ai?-l zEzKiUq@r?@*Q3exnumYjr&0Qj4tj7R&YlCS)0;GP0vpKq&CEeSE&|UgJA-tfvQ-1u zSW2+DrD|CIEYDh0c-NF-KT;4?N&ut8Rc?Wr2v;DRX^VB~(qVfTjNH53!T_@=Oj)zF z&2qF1TiqLl8Mvm&A4M&}3u==LKpm196auEX^>rlIRDAttiqnA3rk)@Vd6;|5m)E>l zsw2yQN9{Q`7dO|ShG`9)s=+nyCER7Zl2ABEy>Uj!iooKuJRnj-6QB=r{alKt*I}*6 zx7F~lN@w$f_0BwT+M-ZQDG`-q^h#DaZol}oKa`UFrHO~Yz2 znT&VzS2j-n6%G+5{F8xA(3o!^+2j~-~=dcs6EEIWC&yu7$X&=1H} zuj3kM^GseWiB|yO%8WrLvmkUZZ5c*YwKS+KK@w&XW|=^s3$FPnJ`l$-E`j}^Lbcd{ zM*gv_aO`Fqf4*u1pnsqpS8zwo9PD0;&VkAuj%ZG$ut^p^Sbd~Bn&x;lGd-y%&zll1E=9imC(*~A4KqrOt(;4C2OI=lE5<|b$= zPnVZh3-KWJr2;*YvLY*XfIc8V#30}Vq&`!@O1b!kY&jR8@|_0kv*J#j(K0fn z_aZ>()foA!13wGFgPs8f)HnKM*z_8rMO4Xz0mgMhQkdUTB9R!#$w({0C=G(g7u0cVpHuF4tE?4#Qgs~4q@ zQRY4(eMUIT`NBlumIE%S+7_)pcrstiuR+;zR`9q0Z3o0?l!hq1zacd@Srtjm7RV>4 zeH0G_TA}DL1Lsq?pe~$|K;S?C#nxv)C}S+g(SCK(X&s}anzT%0t{^3JRd+|xky7@g zv$v)R%w+bAF;ouQdaoohCJRyqLBx9wiBSXW5BVd01MRD!$}emHO@jcs_MH`q-ZB*6 zI%+-JFpPqC21Eo%^ZLiDk2m)p|M<60f4jN;;pXad%xa&K(5sf zH@&xaw;vzu(JSMdI%#x*>EYzL88dFq5vy8U&kbJjv!HAUB>@(e%`3#Fj0wj6fjL|ks>Jtr( zT%Xf95l{@s-O5j^4ZKnZa7+KZOFF_5vQIi^vE`&*a>ocRUc8Ru4+ArninL1yON%ie zq>S&+9sHX#YS)PrXR)1A#i9O9uX*xYBt62!KtfSEB;+!4B&e?WD7jfdr%KBQ1Pr!Zo+-)u4Te9)Pq`LY6GKW1y9IT8NA+1+K~i5AHCiF-?44oi zuA>Ww!fB4EB%{c2oGnV-kzc{G^_eCtYn5zom^}np?dxd~El4n5WoW6OPVIC8Xo4^h z@bN>q7nxcmm!2?y*PJLAi0slDdE~+?REg(KSc07%F-7Xe)ay6RG=SWA1Y_$k^0mdfA z1~Gjg72MMYg~c-ni;=n@A{{-*6r}>e2gPz4!;361#R^l#riT~)DT;rn$&^P)t{_o& z+1P?mjqD*WajrMJh#FlO&Xf#%1r^p1{ba6gtNj`&Qfw~m9EZLG zcjNes0=&y9w%&4jiEnQsY5~+c^(6a{PMIM<>MRKm%rJ^ABkuV7zdzi(z5A5q#K;c7 z+=Csx^oVTfhxZH)?li`>+e&oMedO6gT0PpNN~qw(otJRyO?L*x4AjF&5U6H=d5C5s zQ+dLF#Sd07;O^4~vUXxRKOT1@IJ@&-rfycoLL&^uyY=^an$2i&_5&{4Lo=z0_jZ^@ zrb}kH2>V*J^f-~S#DzB*$tF~f+-$r!-{#%T58xNy!GD7tr5E-rk10{RCn0V=*oQ>} zk$4RfPtYucM1#CvGz)9gFdsy?w_s0NJc@7Q%G*@2jekZCYwl{A_x(&CGP=>Q$tZY(Xgw1#G@n z4;yMU+M7*zLUDJgp|#bw!770B5rXd2B;DLrA0ZR&I$KkI#|V&aLo$H|2WMx@eS4|s z_)x)$WD1BoLUAGFt8M1G&Wf|5i+wX0xrmj_l@r0(p^~D8DQXf`L5yZbE5ki;q-RTy zmf$T<4d`VYr%(@>bO~-8g~Nu!uz-HP9+D}|&I7V8?7DejTPJ;+Ms6%jr`ubA)R|A3 zEDpg2Gh1t~Zt6ok2e&!$oq_K^Rn2W_y3bcHp5sQP>o=K*uFqhE9(ssf{*zt8FNiph z2|4w&#Hf? z8+VWhT-XWB^FS`c&fM15vQJKotS-5k7yg*q1%_$H-lo1lMOZca39LD;H}UQx8{AzH zN!iCxNP_i{g35pE^U8kYRPYxbf4Q&S<1nu!mA(gt^^qb#zBVMEO(^QaY{FK9W8rkS?NUAkO%C0?ba_-WgB zGV{TlVf6PL*a4QCdXp@~n@i}*&){x1$82^o1Kerdon*nHa1RCoB9&GlMLB`TCx2Sm zQ(Idhp>?HkPsi|U(?z;fhOUvw``!#^v;r$N5ENCrIj(x>qY*|+5p#Tnyzls6SKiD9 zD>AqugWEdvJwt6XBL2MZ5%CSc?9yGc&2r;nsyDO*!Xz;NaJIN)M0JvWz(LWSG7Z0T3{s{GxP_ki;BvB|ip4|UN-;LIY%hnvA9Bzc1glWfXZ>3bJ!q)*2)>Ic)7ob=Zb#(%-y~_)5gsT@DlmNKtZG(YVqK;8~6VPKizJibI7llBGes$VB z1PP^MWepKz7&;`^k%#`8S~&}#`F4x$j7Lrd3#7H6+8Gi_KxY+rTV2!y>Bx#8(nAxW zQd2z?jzc^KgVZYw56j+9;J<9%R1FV9aeA#cFhhgE=aS%keK ziXR7xGq{aFFdi&CsS-V=_*}|DEnvo8C#zK|1tY7{hqx+oSn5dPn$H-qdw0uvwqQ@_ z^MUhpF<)&42>UOZh`vn;`4A$5;wjZPI4kH7eE{Vl>3PneUUfYWlPcRja+$+51JUw9 zhxhdc9O1jWPsmC0tpD}lH-`t`AU)vT(ZOKY-#@(h!*KTq8JfdXyfjns@yR8^|JP^0 zp|eXIyZ&ZGPWqcYBVwmMD8cjvz&A-}*r55WEF)mL!1j3&fs&5A!YDD#K)nW!*YRa> zM@k3{_FtEj96Ef#sw=;s#Y#s`YT+R0-A``Jz zzFyrW<}y%Y4N1XS^~!gyl+B%sH~!C>^~;<4o8$YN zH~RW6z~<k5(CrCHytuhPIHo=m$r} zzxEinv)Cc(TO7rGSoo`CNHr{XciQLKVxpzt+N`-xarYKW!1O=`Xn^%9UH%|*Gvyn1 zw<#7|%CSzk?{PaoeP1}+Zr)_2E+{Mn++|!$`LePD$uAfWYJ<-XWKB2c*y=itWINAs zUw8KDE^w(!PY1%HovEhd9IJJ)+YU9&Dt9FO2Q4u}by^IrkDf5;BN;fj${6LP@p65R zJl8$0UutPZLxnNNGr>c+h7CH5xL|17;lrJR+xAUQQ5=uv>H`8`xou3CGKb%$0!g$r zK>9e*nZ+QvPc^W%1=dZamL)u5Le0YThU5h-=-AH`R|uAe3fZ0p)bPz%S?4^xktUCV z0wxYKj5uvt4(m-8vP9KIL#DS|PL7jZEoy^IHhM~dZCPC@l0%Y`IvD?gpf}#y(IHKf z?gCwb^HRl02oo4D>oDD58{VCHn_Bz^u)2XlspTc76LaGbc3{52*?D)sh?eF!^d_Wj z-Fg!fE3#0r_ZgSpz3gas1;06X-f{V~Y^9}A@p~Db2kXHvgHA>!19d}76!%ln-0~nO z(og8sYz+StSWqq2jY;`s9SbdRG&LV3!{_|MF!|<~5w38lOk|{?{0$^^9pkoc`J+9o zDCy_Q6-}_*JrYoh;vh7g-(x(7NU>)k+@9pnavXZ<9LtXA_rP*ysSO=i=Qi9487mmu z2A}KBZy_->BJvxyH5V%yo%E5MFw)q4>eSN@pH);3E9Nyp(+@oXbrxuJ=Ly(0PBcNz zSL{Kn?#?B6hO-tNN=n0iAZaK!g)-WwC5H`-WlGiTi`S&fx+lSW#K2c%140}y{1S<{ zOpJc`L;c@;9!wBY&Z-PA96V?e@Ic{zcuVGiXduHJRdvyP0r%GU&G6#&Yj1H1t!ro# zNVSkj#B&GqvUdd2i}+RN8k~xCZ`%aar}~T$YdeXaA+#HX)!Av*o*{g+H2oLXs5rX1 zd05=PzXL1zcMP(5NmC}Cpn+^vKpwyU_I%`eGDP~D#b@&MN z#R$z(Q$xp*i5lda5scSotgJd&&PG=CbTk4}fo#neu8>R#Vck8W6Q2@HBPMT40f`Zu zJiIF#+W2n}<=mhbBZED8`Olge=X7YrP$6 zlkoDCBV%&<+)Q9liDlE;E2sxqPvvw+rZQB<;1Bo=@)G`+@oXooXDXgu+0Q^`SAYMw ze*gAA>EgK=T`dtVmv|q_FCu}lOY`9jRkImUeOcV1T6Vy)P-~|lLh-+L6;OjpZtu~- zgG1;mifeJv&1?Ve_J{XBj!^AeLS1?7{_Yni8>V0PEv0lVM!{gP^U9i{xsye{puJOi zfVy-8l?e31Sz}6dew@U{MAxutks;V3Mx!#P$ND=+-9?Q|S1<@`xN#d`P!ZO+O{LNS zHNM?F0lZ>Gw46L#c^ZV7`GD=(21tp)>W>ral3*IG?Ld=f;Kd>JLU_Y+nMy6g;`+S5 z^XyL@mj~UK5$D*|8~J1_D=xlVIzj|-j)v3`Y9G;sfK+Jp5+q9L?-CnZT-HYv-?eg~ zGrZE)uX$i2uJ`fMmOl@85PL(U4tzKB(VdczjG$Xu&n~VI4lH9W8TKxql)yau zEFY7fglKFK)JEmp^7YBp^x~w497Kh1mc`PlfM;>p*On9Q`x0n5q=3WXagXiavY%}q zi@r&euw)wpq&dt^cCh{%-eTB7X45FZ0oB%pQ)}DAa+37QhKA0&P>5|88x+<-v+fmb z_2F#c>|j3i&{V=9j*ge6Tih!2OEFnN{T}3M0ei+=8F0)vGLMYvk`8%tFqleX8ueo< z(^z-YEE!GNs9;wA0NLr1OCTzBUwJwkusyU3)q9T;ArD)D^sHo*T8u2i$M&ohMGxIt zU{iPomYVRmrinIUIb8O{2Fk4dQuXf}D^nkBs!f|Xv(V2z1jI_fD5o0l+AWDll796C&(vRo5ws+I<-rcNTH@VD$Y;fBZ>cz#IAFW1h;~KS%V&I^w0sCfpEY?wFL!)V}5?BsbB9Qvj;kCvs z+DxM;EVBI|jmhY{>bPk`^%;g*1CSex2jUXu3Jg(S9{%Gk&!k03>OwVU}aB3y^)F(NfOHSINf3d5k4=gAD z%gsA|53T&P@6XQ3N-9$dvM_Pyl9^b2c=PKGLW#j!uKs@e_NV*1+xPz)@nm;av9r62 zK0#mm`tpS-!ct2^jDpRNDa~=}Q~TRgt0zK17s;kT8$`rlT1nS2S*T)C`81^%+9IXS zGKZk3oF^8ll;yhkD~Jy`kT9=uq!#j$swd70*>Lu1g?J6pFpYk?Q0aaRE&(I)00@Pl zg{$QHp-yv8b@3!N>zP;JUEF)2z!7~Zz{PuAV-RMNXzIOWNy2ZxY1B)ahBhUeCYavC zZ65sH;7I0uG{xWzj-F&g(mqEFM}Aq1^5r~MBS6JKoE+Dl0_bn9Y+Nv4MdS@=gw?|I zWb-n?ZI>aYRIn$byZajjiEhR! zi-8OvlT$YfK#S&nmfJezc{Ckb;rmk=V)~`oesG;LC%N*|KA+r$2@GHtPY|o@@tEI;0lw8E;RZN|NLk~dQS6BcF)&F5AP zPa9~&p`1q-e+q=^E=*|X6?F-#gSga`(WDBM0ZK{8y+Mwfs=VPSGnTK}V?FRu^EDO4 zopzEY$Uex-7U9(qE$sy2zB12a%bqvpzlJ3|F(JUs9j~d_^aNKM?(k}Zx11QdJJ=|V z+bj+f&7#YqeyT=GV;7^AqTu{Am$aJo*hGqi0x`)9HnTkq5sU%j%}RQ3AO!t_&XHg!x9BCmQe%kbh>&FTQ0Swt=HAT?6&9(2UChJ?wxQS4qjlgJNudFbc8`_PEUb!M# z#djAfV9gjs2))EeL8nn9K$;6O6gurua|8NxD=AZ#k|`nB9TYlrSfXxl5qVt&7}EKm z_YZ{3uwxR#QThM?5Ol_S%)pHtBMjzv{GA2GNf*Y4i?C(~nXIHO0PPfVSTyP^nYA9a z(7Aq=#HDhFFw$!lM`@}dwEX>%ziKd!n#YH#ss5M1imWA5K)RrElHzs^+k`v|b zfhL7Rw_wg~$NH8Yc5;66xs$V_L(|vN%r{nXDIEdS0K!7+IdvHym0L{gB1H5^bU#e8 z8Q4wqrH@vUxaMLsT@jweDxGc-uj_7Krg^eAm7ZX3t4{nOOc7>|G-lCxWmlARYKs$0 z`-E>mwIuF0hEt0W6>V)vQ&%y(-g37}YpU6Tq9HT;69%$eL()2jNsl*nNd$E#4FOxv zLP3jN*US5{4Kyh{5%8F5GNr3c8fFiT#>lmDORy85Kno{I3GsbioVAaZCcu`#=u0j9 zX4%(6pR0rh;3H^4?f$MN2uMw`-rczYadK4<4rl=s*8;mMC{_V*Q;@DG@1%N)jM(7> zN!VjbpvDi`*bAR*a49?aoUhg|noFBfjRjCkD)f}=FRUg|rp+zViH7cB8J&toF~Qmg zgHEJ%(}fOs-+(LNEYmM`o&_1`D2A`LAk`LY(ST^A$0XwTA2);ljkCwyhdL7-B$(cJ zd4dp#lgrDsc{d~6hR*lQFH~IhMKm0xJb_=QAU6CbrO%887z*pC3wRz9$t+pIbVrxJ z`U|3Gz>QcRM$({*di;;nW90=_^n^_kKn_1gMmsuWInD|kJ zp*|BV=;Xv!Zv>ldCZWZNDsS0PrPEo zzJ91m1(vW!#aF}r{6*4Lu8|pFzZcp`wR~lg8UPL( z2sl6m(ila_rOFkG4o^WVI@o zu_G?vlRZ}m5~`s?!)%G(y)1_}lV z?lIFULN6P`dikd&#~uO}0hB54Mqi2sP|qjEGRp|`=}l`@1yW}&HwX_kdxtGjbSSbi z$12aYzy(dW^+Q#4JOwg)C-nfZ@EHbML7xCd(!#}H#$4kRG{|lg*XeYi>-qScK`P_% zsW+u_6Bp}3&OB~1s*?kD_WuGNWWe;qrqa$szQB@D-O45DK(#Fe z73d_(4({#_5O!bCNs|ZU-cxUq?mn7xFf3;;H_2l~^%Bqy@HKw;MKE*tl{ubZEa6D-VB{S75G3n{m{hS?($ zDI1Q_xRjgNB2+ikgL8dC z|Id|l)ue$%QiOomjIrbjb{%*<%ZkWvLX54JE7&SCt4&i=FCi|vwF2hf{7aKUtQKXL zvm@9(n<`w*+87$nQaF_ph9*>FEO64!cj$1!AWtM}W*5=^?7EmHC(@1;rk&y??$U$x zt;%2&m-QeagQuByC(&r72~s-9S11w8E5%vF$;&W(B^5X;C{Pd%46-48PHyUf48-^j zJ02>%7F*kZ*!nrOOGx08thG%ry`1z^aUXEbK=u|}EqM$<#Nx?4KSq#ZM8`dn*OUaz z6D&mUD1g=(;fwx{7di_yJNTf&r*=G9OpuEgd}X;^I$e})@93nY4xStUDC`y!SPSU< zo*h^?Vy70`y#Y&xGM!ne6MQ**K&UaY{&WaAn@>mI9Ygk#56l_MqqNSq8m0wFTwkL^ zfLJ|kc{d>Ch(urA22f8Es=CUcfr%AJo%Mj@=`KQN2Y6(`Uw;u%3lVT8R_dw#c&g*PaqR0|8V$P6~CQ? zKzq4n#-2|%EU9w5Dw6i@JpKMZe|hLV{Wk*_Y)OaYVl<*qqe~4fLz$8tkVk4?DzPVu zs~Gkm69;g`;NgtWSToVB1oP!0+snli7doZX{raeRy@Fnv%UsQj-_ z$e;ZF&4ftHGOzYY(OiI@^Nl@AMS2{v_GG2 zKfeEw83dVmTWe<~r9y$H%1J}G{DEbKX2*(`?R+&n46UoVM{H3NC7`~8-1zx9(jF{> zW$r_l;0R^v+e&Ldq>;cMInoFFsW|KIB&+eE7x)%B+zsUMZ%w0{n>j}1*#EI-6#;_x+!mPVz?azUfXq}QfVU#EHqZkRDTZDH|Px>%Kd$?2mklMA&4Y>NBLhB=3q=1bRf-yMFk=hee`^ASW*>w@m5?jSKv5sfLSfQ zeGSuNtfu@C%FXKu+M0g2;DDiFF3uWx6>#Gs12hh9s7gR2yK=)BW^jD9?$J+X0cz!= z9T>KQe1myITUB&cDud-Zs$_-+Vc+gG;x+JNPL)K`Srf|ggO<|D^bhd_Zf_?Prs@+N zO`CTwA|dp{v8x?ETX)kO8!sxYpZ;j3RSAba zsW2N?Y?6XPT!ZAN5!%KKfeRTNle~Y@>Bz+ny0Kc4&VxEuPv@xXZa~Fp zRA^EiX>Jls&nHG@b0ZusTlU5aq_{&pnDUS@+JaB>Gloitw8Buj77k5i5(;1DMhBm2 zQxbN2WI>+D-e%5r+KJkos35`e+&36C-;Sl>snH|Nj`&abc4lfoM^8LJ0_+G0dts4< z!)=_msamA5gswe=10r6)Y^tn>@n5}AndGt-M3Jxl!cnAJ7f@0NaWpiS?-Gy)WP0eI z)X{E7{@5t5@qfJ9#V2=qVzS{0N?nN7c|)H9kALlE+~_TzpP~^c=`+K-?Pc<9Qds#CL-V0w!)K|}>HB~GMj&OVCA=M>taSnh)NKbWd5Vr(he>!hQfaB4t}eR2f0WY$hwzu#k)E!c$);&1O(}nsiHjT^VnJk z56-oJs#=Xb5Za2gO~0sKO>x^}6>E|JiIfI=r8v2lEX!2bJ8C3eHpsrgin*}^4JpWQ z4XC8JU9xX1%~hoMwCPn&gkh^RKm%Aj-9&#^KYB*9QvFyM`gN2zP4+cyv9fX8#I`nf zWoa}td}jT?mm&=Gr#H8^Hy;L;=XnPT7^^)MWm0Hrz(7}Y5zI?K)b%#-2C=%1FZ}4K_U}jaS$Lg zz-09t9oU;W!1*um$P|D(Pd|Np^U(YE-RHf3@8kc$Q>2P{`se$nWVvx8Gsirgp{3V6 z?>#k$p3&1&& zJ1sJu=_tD5@s-vh(O8FRj*WD~*A^b@TH{jB(E{q0kHInoL2JPPwd*a;@x z!%k8ez4BG{7u|Cf$dxN7L2bGasm1VT&{kn&kY>}Ur=4u!VCOBpg{uZpMD;u{^I?!0 zq=-e^{@wWv6HKqt$?YWqy;4+ZCrOZm7}SC&)G~hbh!N4qKggsRuIyz*!c#2Mn5}4; zkN2=M{=e#Bs~Y;%zFS>$TXQ2i?RLgGDZGsEc9`KPW2yTKJ6@xu`$e$jOi7aM;m^6P zKE!sIt`_6*D#d2ucUqefScR15PTy?wU1-b=3pXAm<(Iz*Q{#4B)aNp*-U)(|nl2wi zkqp!7*lEC&;g_SnS0J(U$gpyB6m%-KRd)vsz^vivSn~w-e0@Ol@?xW;s5<0(rpliy zLVFAUg=(nKoSPD6kmNDPJfVMr>G6gydYtp!^mz*YzVh&li|Q=yJ^M!m6}8ROEz$){ z@6}LTw^}+A#axT)3G2O82fzNZXnV3NQY6n=~3Q+@O*V*DhCCLwbtdU871a1E1$W9jE`r>j4 zRY=b9=xyzX0tKA5mRJ$wmefK!cY6HyljrOSX5Cvo8inG}mq0LN5b&WI+p(Lv==7(6o zUH7q>VEQh-(`D{K4u5rVhuEwh>1>j1q3~~MLVbnE<_Lp8DnoEfRmce_i;X6Oc^P$} zIAl1=T%gp(nrWQ5a%GwX5Bije%YIXl0H&L4Inxht43!U-^0To9DWuGGp?u_i{pv3g zJ)i3s)CQKDI~=`2R4B?*b0|Afm5S|z_9kaRf!eP{DUy~UbdUKoF}jgd4R8X5y0yFF zBfN)m#X+-kMohm*y+!ofjv*~;p0p)I%QTZFfL-xDm@=O%%bL5J7y_kS2YzFx!#qk0 z71FvF4d2!ZHSCUZXo9dfNQOYY?D81i;obV&Ej`M^0(yDjpB){ZK9krbq)@rU-ST(X zi-9DCR)%KbyrX3#Cf>s_=Mn{^^rw}8)DHD6ipB)gENg^jI*r;A(bCMx`G(bjPA$t2 zDA;6kr1(5Ij=|)%>OIy)J#13U9^nTlJzjZ0t}LMcJ3MOiBGpfF2BouuMs4JO2#)ty zeDP$V-x{&A+HlGRK@#d>H}HM>)TwC2)YD2$Q&YE!DFwzM2Tw>9#@XSx27d_YYSTLs zyR9XJi)>kutFpbOb#8RZlWroWzb9!_xw)AUkpEIaUNLvYWk>6D!ohoi2Es~&1B#Un zW?y1}#PaT$`Oz#ijOnH|!%ex~hjG256K{%-wrAF2)`%j9(^dn(<3Sm1N1dF+V@KfE9xI<_`ojWr?uj0xZko{P^-3Aeh!srv++gU?JUPBL#9LF&xgBi-l3Br#9^X(ECXOY zCq)%p&UJAlnSI6efK&tKgazZ%HEJ5w?F|Z8!K|woke*wp&14pS%cZu4^AgwdfK5$S z>~KwAIu6hgYfr;cI{Riw3U4@(JZqB9xub-YVO-yJoX(Ur6BR)2)0<=g)(9fGawoTx zf%*``9#cv)HIO4vz7U&gGqnZjcEV3EJ=Ca_?O_~m)5#i1L6Gba5#L|n$_fvs^-0t= zPRwEPkqTx*4Vq35WqWG|fn-uV43TSmxrWR&mh^&6J{k?m$U!vpy~M2vliZv5(ZJp& zRNt(bkEIG$Hfg7Mq;F->O_D1uWFeAkFa@{cOHG#rz0Xv0we}mOrHQm3DDoqrc{yXTZ_iFkSAwM#MZJ{1+3;g#xN*56a((sG$Z>eN9lQZe4@=xg=-lG) z=!?o{GQp(IxXZl5=)pqy)KnJc-am9!zJjIq>#jowNl;Xvu>|A_cnVOa}i_~`tH6ZyPbno%Ve{cIn5dX@81<&i4hio z$lJx)Y(9r1hd7ePRa{I7IgjVdQ0`$xB;R@nGc`biPeKP>25p9=3#IW^XR|5toN#T{ z<2fiXc|l9NQnWSc%Q3PbPQHs-JNAMnaXDj$8}JGdCHO}M!^QmxJB_szsCb5FXlOdj z7!oC*FOQx-(6nx`UT^84^T{fsK?~gyrsLF>jv7$CPW#crHJY(+I7YcM3cU{8Q?ZBX zq?)%dTgFn!P!u+PjZtzAH`D0M!hTJG+=At>Po$7qhD?E9YHGm@wY0nJA=uE+Yp<85 zOtEbG7zi^(2fvn2(CQ97gjPXTSgb^%0*hO)*m_nT2J0t3w9c(pcPWs;WW0VSqvcLb z0O|%3Em{;UzM@~551X+3hIB%dBu#UUGXdfv6nRxk^Goa)tBz31-cf<{8e5EHAi{}) zIL}8?Nq6=P^$b4lB|f-I%5ae0Nx^?)1za9W{s7llOAV3d!>M#*uWIuJ$iE5}VwS;x zSM{bh_+whWrJ`q?<@D~k_ zwQ^&0!HvE2e8`^dDq8wbXADdW)9Jz=APs|aS?IxoVXFKg3wZukld&Y~TJ}pQ##9FJ zv4x$J7T~j>e(MTiY=SB=Ys+RfPChoXEi>FV%(WVOuy(b^_Z95E7Lv|pVDV#(orTU6 zt?H!j7kgd!=GEBIgyz+@%o?4>i3;SO?E-%HftG-JJS=ZwMLm^td`qbF8qmCmAca!4 zG;XjnGhphDr7_Zl+9fbI;F=k_ojG6-N|V@DAUz~=KXtB;;(B^nq{ZEvRuq}zC_w6N z!_}9x22sO`?naeD9`u%WkO`^`-rwBnZ`u^b9=G6nYV!B>TE#U|G@*GQDRvTV za3ozfXI=2jWCr>5(p8;bnno!a8n_?dex40_iB49&jYVdTAY}c`)pjlmpfp-#Rz9Ej znJ3#7167x&s0IcF%JpnDLq?+Bu3@l|h)M{y{WyfS!Ch~3A|)qsZq@>*_tKb%YGWv* zL!+QeCSrQBWD=9@($}_b={u&T6L(diH+&9pK6S;TrOD)Zlu*5^-o5h`T15}&Xj&3$ zn1*F*A@BPC$K0Dg$B`swqWDv4wPs^%sX2x!fFQYZ$bdS)8saEc6?o{EGIkT)%^fy5 z%cIqLny0`0ec$Kq5gwUY;ArRBuEwM$B0V!JGQz{}18q(_DAxjYzhNQ7w+W>=r^D2% z5N{5OhKBGE(4VL`&1$ovftYb;_}?rd(-u}rC+a=MNXwvOV+?DMnFYvJ6xAvbE`rD| zgze*sc~Y%4bFZjkVsKoA9vmFv*)vGQviUzWokVeC4@Q-sm{C`g^xy?&g)!1caLZ^7 z_|xgl_Sz;U&6CdsCXe!hnfUJrbF6&;3*LK&^datk*`B8CiboOCiFYj zpb+0=9bVj&U9$Ne`xZ}jaiUTqv|J{!Rky$qOba&3y=p)o3RF-?$sV1ZaVQA{x7K@w zeoVI)G(Bw==%#E3Dfr;f4O%gTs4q4%a27}vP*QI|Ugk+8sgO{uFUT~Qj0OFyj^85gV2rF&g{Ol5XheuuU& zZZCU|jS{Ss;0d5j*n<@ZrKkeag!ga_orNK{BM3ujU4YXyyM6ci-&SAVeY&0g|HAd_~hi=iL4kASFcnuSw#3|?ill6?rIEZF~0l>^>8Vj!wI(p%KraX95Wq6GZ z*nd~|PoPv?to0#b1w)Z^F7oOEHI29tsztKsUKJ6MEk1ZTR?&n)VM?gkZl6^SE?Ru= zHfZw$SpjyY=aNu5*Q#|p^0G@-#NlHFaD4vh%g^7L*VTT=le;78A%?yNv@hJDWc8t@ zAlUIS$1irOD<7pJmhNfssM9-i*v8tqNpC1(9+RUQvu_L0&DbHy{=k67a42-9%X4$H zS?#UaY(TvzeUgQrVCP)YS5S)lgxK0)7 z8e_%2n>2IHEc*x`E;D4`1Y#ZylT8r&M?W9yEzA+x?nAY!Pb0+qe184;7Gd%vV0>B+ z*gK+%meTF6;qorw)#*xEjJ5TxXXpkdidpfn^HaLjoB>k!cB75!cqHYU1gDDZ>;RIi zOq7Uup)9GTAbB4e{d(DoqI0-xo}L^<*y(F@MO`+|0EP9IHh(Q~`A|TmjWDs{*PagDGFb{TkpM zp(tpL{D`>x1ho@J>``Qegba6K*j2>x_Jrui3e1-T7bn~p1*=s^ptbV8I>qrCO)>o>d2UtWK_J^gt5S{!iTI-BU3(GD?0;mO3G zaAcMP#5Pw&>UOJY2j~cB1URX3N%ZZ(48JYD0z$?BeixWtALom9&N7|6KqY(7XOn|c zHp|P|(Zqhzqcc4#Cq_at{YGR(8T!UZaAII~6rX3p|^5)i44DET1gj2B^HglcCOIO7bpx8 zrTFM{lsHzssx>3u!0)S>)^%&bxL#)=Kt-#9?UPuDK3Ow>hJSGv@YW2;9J9#0<#Vzt zz|?_sk3NciSuzI|_4CG-sl=Zlj-f(VZBIC(a~NWQ$X+x@vw_wF%G{Ne)1E~}AdP$X zUcY(sQ3j{)KfM3+dGzV?$1mSQ`^@)@{_&f82L0v3+czBPp>OX0@fY=zn|KT3&WJr7av@e4%RA+hK0dI zBI3^Q4F^xx3UUAgy*`~;6=ViI*jOzJC;?HE^Hd!8)2Uv=^#?cV>D6@pf3BQnp}!VT zYJNX zyF~WGPj7JWaPFMUU=b;E zNR-`o!$hjv8v5)SMm+6P5y#!ZpSO=xka}B5Yr<*e{#l*RykoYDIKz1t$smA9i`Sn% zUw(LVyF#IQ>-KujEsq`Gx8MK###kHv{lg!OnSb-oVkNj0tYrTF^>^=X^9%R9>YM+O zo|?V=^tV11b^?hs*Oy47Kn6H^vu&Sv8_8+sqP2&nIP(0a;x^qoJOWP9FHk@QC7E(CW(%pWu+XT%^B*AHY>GS6t(VhDF(SB!wFA@x zq(ick5Al#63gw039_#ovS9G6we<5c~JU57c3PK{qcIM3Pe`s!j81;VPB|`2|K@Xx{=3o(Q zhWz(iBq`IwYF)4S`Sj>r7kKZ6fg6(u}w$r|#+JU6{_!ORTbP@80tTO&`Iv}km zUGMUrBk|^rkgVXGm+&nJTz^+pBZO9;{ikahm51)CXe6vMJ$*Rkxxn;^Bxz{h1%Jt< zODAN7q7f1r9`$5~N01o=FR4N(Pvu4xh3ni!5!5qLCd4NUB>K?)}QjQm;RM{`mI0FQ0FByLfq9of5G>0;C4i|?=D0G zO6z8#a(DK=!dcZU$3iLsD%d;1xUH%O)^8Yr=P5$E(m9Gq>|R{2XB2LW&3e2$eKDIp zaR%WdzT7xD3-Zj-rgkL0?&W!od?|SdI%M+im45iT|FrZ|9=c2VVbRegSjFiU+R75K zZCXGhP}O{wb-QJY;hYVs^pG^(JV5@M$DWAg6tDi9*ktC#Pr%v0J=-|Mt^QG9aL^A?*A4vL8z~ z$+`5Wa%e)8j`_?S9-WK&(e(A;2r#N7);Z(nl}_Xo+IEnMeH!zr47y`bOV zU97l=XwjGT52pbAGUx4Wh1wt;k?&=nW4@JB%-OaXT%JLqs+&h~3D#)pp+WhsuF*Sy z8S@s&f*Z>f%{rMAn&>C8q8gfa)CtwI08iU}e)qz|av4iq!fnqX;CnYYKPJ4D0lK(7 z2k4p>P#8bx1ElrWu~ZEUOKU%}_vI^E=X$Qd)FOLF+okAk%0Kg8P-l7b;mgPGZ+F{| zZ-4yp_M-$Pg{!!I)YtQXKTDki8EKB1|H{ZIEhTY5j-Xi9!>mbY58RdwfWq2M4A zZi0g8r#IaIfHW<@^nR9}T`U*ZXfL#d<)cFhI#4|!0~k0ALJ`kk<{cj@WUm%KINY6q zSwN_g4o|Wtt7fI(7PLSDZf2mqYHS91(fH;TVPiJ;m5>D&e7c7Of!(Y|&JGw-Y{jKG zqTB=_P8TzJ!J~vHuq(yT?^%n32eiQSD~_cUK&5|Kmk;}H%H-x3uoQ9d=gsxS4eL-z z*xCa-NYWZfwPLd*we^I#1`J^U2mL`>K_h)hiWr2~z6_gJSJQ1T@2@0k1y~=>1H=#H zqQZJ{vw5X;ZZA4P46d-+9y%E{~{&aeV zqlzEeT3}bl3V{B%ZmP>2I@8*TM;2IJ3GX9SPGNi+gsVk?>2|%L7y`W^R~gUOCkI#} zkSl9s6Mv)eyS`MtKyhG-pT&QOt59KeUS@NjWOc8EO)@HSvz-E)MC<%b1K@#q&mnU; zh4kmz?;>1}aboh=p#1?ZU@5U@G)(~=W@qk8BI`(#Za+j`ka9~kg7xESq|f*Sp+4isP@~a~L;sV_6do&7a(nXn{TuXhr*wrZ z(p9>Iorf*jD0H6zc0s8q;mzh;Ewb;7?(N*9t$LwqfqufufJaR04cpcQ$~M~K`#@Nc z*jkigv}6La2jzu^Sy9-oKz@<`QaR#8C{3d@4Ja$zNsN;n%4_pFQ97EyG^y)2D~u&@ z@y{IYa3Hh?P_rvAeQ2dti|xcr6;8W6R?$Uw3mNvT;zVyfW(U~TMBt^%nmdYqu%z%# zC6@Jd%@rBWWqLd^(_^BiWGn@wIrB5f1-362UC&bk(#?E4%kYRR@5%4DrhNs=n?SFJ zA=ZoZXoGm_L}IWTe}c&;Qe#vlU+WiLySgH02UsS*aI>DLjK@eTrDx1`^eCH-9vSYG zdo?w=hM?dZ6$xpadDPqa)$|qc6^Me6;xtD6=jQI+q1S-E`>yE3eD_@w9C#s_NB?;E zU5pHkO`qZZtxu;=mgsWImhI|2OgGfEGt#{WwJA>)>yQL%*86Pclo_3Ilxnv`opjC4 zML(ZOf`jZ^$)F=fly+S_9bk9PK@pt!DDg3-ripj)$CuJ!dY!~9tNl3XB7Y0h?UXk6 zot0ZdEm;=JD5(_!xS#LNFH+d`*y3g++H^AI%=nN*#-W?EE<#R^cpp~y%ogwNH4}-BAQGjz z?J?9`5r=>hy)~J}M4=|7rrK-FaEyg#y%nPA5(UU?KoPPe89Vp&ROlGl)=~2Iv)JSk zBCLx1wxIhZYN^MA)D3*`S;--g;L9pn&^<0^4G3v*CQ4KF}uN)}oO%*ayBr8_>M%lttl)SnK(-n>o_D z8+G}vTMl-NqcpPYMA^R4wZpPXQ4GH71BPwjz>BkPfK>z1hjRxoK?VFHB2oOFV-_vI zSZ3G_)L1yDP!8nu24y<%+~{5-UvFMe$gAN@5u;^t^dSEUP&pqe4e|2&X=uNcs==;F zm4&RB6vG>BF@ebk86qe)$<3_Bd8xSsA+JrU*=NdhFI9F%O66 zR^yGdSdR}`LL&%R@5%uJ7gtsQLeVW8o>)5HXb6-KkY#Elp90D!$o)DP1=0l_Ji)n# zr4Xq#^NZ70^BH_~uC+%D$!t{a0p~j1!4d$~e&5Z;`dGDW3Cm2^3PHVBCCvh;brPqU zuB{YSWR#H(xJ&INxB`3fZIX5Fe zt_t^QPG`De$YXrP$)gYa>Fd=g_SKDTFmWS%WeJ1q^=2tc+}&W!{ql74bc>hF*Wy90 zy3O<{cAa+^gK}UsVX*90D>4)d20`VFEnJly4@yrJs0U2+1#MoPyBMs$^~FFVl*L=4 zs_wOL3hI;Ui#OMKr5rm7W|Ii-c00;M@8VR&IVbcx)kO5+`tqHdG*hYFPvDB99RxlQ zi3Mm9S1#yxgnVo(e$+ElJu*&Y6|SzQM<_$j!;;2&gQ%y)0*~FLql9s2-DDf?mIFi!a!h{g4PeML_0#TaTSBQ2JuKzP`8sZDZZ>-uvOkamS^_ zil(tvgdu*2?w6YY|3Vj2)L(l^cgpUO9B8#XnzsfXxIy#Qr&t7<3sJQ1!RtY~J-@!$ zdVzNESCbJjVK!9tna?bX9UYM5I1r>q8$e^ zHpy?ZDMrX%Yf-qD*N@Ibxg?A|R402E=IfX&KnC0Cz3;yneUG6M&^kW)QANWcup~?s z{{*E%-3A`(I@B7;U}iaJg9ft(WXFkG4Je=+flS94Gd~LY<8}@k%+{JJy`*Z!r96eb z3F0VBu%}nhY;+7^qQn#U!tu%IAAb4=SC^ww_vP#NpWlA^^g8yds9dHv_iod!Wdq{j z_WEc{o>34TN?T&ur_<^4<+XM4xmULv^$jHDu{jC157~%7L1)}JRkT2aG<0PDGgYv? zMbi=KS%DTU7v3|EgY{t%DsevJWv)h1VxqW7h~B{?K?PxUW+j~bZ|z*Qe&8=25wyc$ zgf-`Fl|6KzjIK47;p%^+fAqV5`+WQThcDhE7@ZYm;lhD}8Q0y`5O0Au&&Ruzd*!W~s$R1lg|;*067q@_+Wj_DZEff<7! zCEv3f?*DPR{x%w^>Aa_$3Evbiq2a7?Qe5dCvppD2Q($$$!_Vq;0_08K;&(ObTGM&{0M5IguE_u{pP8T{+$Uc4JkoJarq)7y8q zAh$H+>OFYxxBK4p&4?8)Z_otVAH0Wfd(v(r#73A^OyK?~s5T5bj_B?eab+wk<0YpC|BG>NS*OT>{x<%g~jqMG^Ne1FioyRE-KZRx~D5KM`2qs1= zixqWkfNjgROIWJ6FW1lNQgk`G2X`}aQk!V&>b%tlT6KOI=GCj=@BYe!0nl+)O=E=iPvqS|o2I3SJ zdD2=ehD+ylZqkeOTVS4wdaZ$lHqc)0uG)6W)orpi<{u#Uj%^`U#>S{Y?;1*RxmM@SiSJkJzG_ zh4lRP^Yp{dEZ5{~>6a0v3_f|fp0@&j!L&%Lay41nKqGa!s^a3M#}imumPnEtwKmqN z6Y~O^$BB=-oyhPqsuaC~8ZiU%=-4nCuDRkg+UP^n#PgBR&}i{dF*7uxcn_$BBKeXH zb2~lJo>~0Ljg_tvSK6QAOwkgZ6m{rr|JhBs(%{1{WoaYc163ssf9)t!0n>!+uvx}b zVMH<1SLzNsjg1@L_?V76OM1d7c@s4ysSwD_d<9#R|53@F&{O#aQrGENqVugKr+aSd z%^5*J`4fyR`_9>C^wkuLTq%ebht}M9rU>bGl8PRNap~yevAzx_CoI3u9(E)N!0pBB z4I&fyUbl#Qphk=e7RkgbTG&PvwlxZ9h)|J2IIJ0ogsQb#RRoX}GwRuLrsP|h-)L8j z3;HeUS@4}|7e#iTNKrmk;-E{hKmXAU854 z4y~k$d7l-2s)1kiet@S3vSH~bFXrc`(^rf!z_(hf?) znC4H{3v40&yTG)HtFV~6xM7`J>LQy{*y)xJ3KDFd;l1d;b7JZZxQ6%+UsyqU7uVI6 z10o;-hndDkk^|qrFx$)nMSaePDL{2jrbZ4*&jHfSTFr@>{%tvXdLveI;0BwMY1-Ye zQ72?{wn$5kvbV=Dplz?AQNQfaAS2-kTtCEhc`uw0BP}oGqNst_R|R`8V9o+L{z-rA zed-`QYmXrj-cvf zAMXLDrQFWn>0_-;3F7;*~t%~kn`E-fRRSbdfK8VNy|nvL{Ar<#sHc2-Ug(b zWrmnuE_Ys@Xo`+|iZ-6*iyuGyMH-vSHAf+kK(q- z3;j9b=eK93^90rLlF)Axs=q;g?-YfKPK3~OYIOJ=MhQ)3 zc0BZfR-H%H#my&Y$qYiD2Gb@FsY_7W6jpd(>O(Uu#i(wd7v_>_v%8Q5Ru=LSn+j&K z)ai(UUbbKAOR~Iiib=+min_-(MagMqd$zL|la816%rOS4%Y{_4)duJ-~3)yQbL+-uMRnw?fKBgUD|C66N#@^g-E9-gbP|7(O!BW z4VNwhZI~)@xnt5+8HdWpair=H2Wrn#biJ2|_P_A~v{_Q|?EHgw`~toPTL^=yl9YhF zFzld+ep7~|0cr0!-!>{ipU_?sIm#aI@!>I2W)2^cx|fvV-lyA)^ge}hSnQ&E-zgle zU)&&=0-Q&p5=Q!=@EC*WG#+FBl!y%Utk>>cc0?#Pxg70Ua*Xs7C>o)DZnhJKM&4dy zFle~I^mf!6Fn@|_o~)tO3O)OmCBpirBffI83}J@cP`1qlqD9ctaD`<+X1otH#U!*D zIR)KH;k*(dyb!o2PsK=&3vRqENtrymAbN24SY1k()_(p1W%%uf_sT|*IM%;GFk2-{ z$C|hd5F?v$QumGr#TO}w;vI!Jtlhh&ZDS3ZS07{d|Q+JjngxEaPJFupgXX-HfI%rc1ejPC#Z{a?QP;d`Xc-Tr$2=Oc`Nc=zG;=lid}d;5n^AAb0Z3u^U) ze_wz6{--~@{`m7R5AXjxy8k2Yy*?b>|MdCIAAWrQ1;26shabMYSDX3!pKkTGhAd2RM8%ZNQw|en!1qKSa3VQuHAD7nqhuAzug%L5`z4Y(Nff zs?dIZK|>RzKFWOn43!FyDG@igd^>oLevNC7NrO)B9%&;mAl3HFqp=xy_Jpbxpk7r~ z#G1d}vMl~s%3OD#VZO<`!}W>_Ouu7ZgIYVI^(J($gQY@Yh7R`GOzpB|N@S^t1LNXs zx`Y(7I70y+SA7G(nC^?~7sPdn%x?bXYXYLF5!n?V35bYR4D681m9zy}0Fk}Z^{bUx zmoc&>C{Y0|R}uacn0`mX>;j&(DP>!mE7>k3E(;1nIj<7lr-Q=3m zIe=Xis0VmX6JJdcrXWO#pr7>1s%=b*c3)5yYEB^2oM@3vU&SID6Rx3Kwcm$lWewbr zzNokihQ6o(>jOqc8eO#e1I0A@z-_ED0M!{vyCHW)jK;p|gk6xE`=`^>iz)J98Al(Q zfCb(n)O!FX0Y(U>Y^^4K3G6>9{*J8j%ve_^bTNlIG=p=^G1k)o2XDdSusqQdw?|1C zfZ~~}`HPF?8QjQ6A>hg2A|@Y-9)w5`&JxEGW#3WyfI7*bOCdnoHj*rscR(=sW|Rk_ z2yx*Oc`Z4YG+&R`SX_UTZ5~noH47a}Zqo7*k{40#5f58d84m=5mm~X|+<+>x4g+aC zSlN^T|6LbehQ(As{$=1eir9P~>6;R>IV49k&)i9E#=1^e=ULb_`sShAt&;%q!e*Y z`_C;|?%A z04#>RG#vIm(ozjAV(tbj&Rt5CctBej&)1Kos6n&vQgb+CNBiRU+gmg}+j$1XJ*0IN zHajbXqdeyJlKTR$&k)JGVi;5vjr8FrX@eHv#h_7U=evXQbwTkVk%j;jNkVh0HEGc- zv6Z%el#>LNeD~q~kE159HE+dmfoVwJq?6VGJ#;!!H#mJxzo0wLEfk(Nel&C)ejhfg zhI}?<0=I=JW$#@JYS=`{MA;L)CzMiNdcBa&YQm?}edQ2K;MiG@*sscn%qX;~f1K=94_~m=lDg)Z$dqJgR>>LUHn4 zAs5Gj>`^&2_`(_|Xg3Z8BkK`UqWnR8yQLJtgc|P2aNd|e-vpy08f$&ITd+jQ>H2&l z_P=Ed!_AiE19-G1I$CENG`41;Gy1=xJb)c%YA`G&M?X{wX++?oJX19O;g&HX95*Uf zS+4s&na;9LUDT;@zp*gZ%~RR`iFrJW5VOOB%k{sxF0&u56t^@v_7m|9Gi4tz0rS@C&e#D81a(a^~4m&xdH9(&*r8#z}G z;q_E~;k(IV=V&ppTcOEvCyA1BT7h-f+E_j4#~rTPbdMhAELmOY`UZ)YG>On)e}!1; z=c4fRlsB*gONB*ZE^EOr=|tJWd9q}b*Y5f1Xml5RdF?{8*8p=$8zcXI^G~UM868#n z19PRPB%)ptr)!lUivmgDF6Ow2(a=azf^V+z94COzft&z#l97|v+2kqfry{A&%PFNH z3o88zePj1bw1Qbm#B;R8ShK*o<&-H(TG-~9BSkaI!f=71`mV0;L%PonU`_8 z#Ac>15mwMiwD{ItISik=mm0#sqk(7Obo|Y42q|~j^>6^~qSDVk_{5zh``|}kfgdAR z%G@ozx#89SW#@*^`Y$`T<+>y_?BnqjCo?)Ejg*2x3H z%5bn!1rS=;DR=Fur*tGGq$#FE^H1TE*q*~G9qx(o3A%a~OESxkfPzJ^!R0BlPUzr-JpvLs3u8wL31rVf$>}uSEE8>G zFwQC+Kb6j@&7WR0cAS{jJ5*avJj-?z&xI`lbHo zz=BZXzZzqsDw?{qsGIZxGFZqW7NISnq;sLp$^({NJX4)sV{|+jaP1(jU~_T$99=lu zaZ;YwD5|nGT%fF>k2P;6oMp{OKWkixt=_H?wlm~+U}#@J^*wrtoq=lg&8)q^bUO^m zm=mp4bGX0qXcr|5r7Bw+v?Q45cia~23ITbv`l(7YS1wQZ)0mK9Px$r?pWOnqt-<@u zs|AtKWkebTBsX>e)(VUZrXcJ~I0f($M>t`L98~1l9<0ugX$!j7jjZ-9B3qiudok@g z)}ADcJ5n$Sw1LJRR@pU#ytYb_9DuDUfReN}JX(r43qjs|jc1i=84`4GC=K z&|7SW=PeXVRXFq+y!_VmblAfJkPTQ6!vr#lnN+SD6_UNjF*RhaK|J$-_z(9`V= zy6$mK{kc5;$5(i9tOb#CPe)s%i`XRioJhkf`Sts;KW<2k9_>BP}O1Maj!#?@ZE zbpR?;4>eN$zyE#>MC9)TP(SQKJ5p~U=Je%u$?GA_tN#Yq#%1O1^^n55*F*a5UWe3; zFO>MAOgkD}C_O~=w#dNiU8i3I*(hw{%?u~dbY?v!+cX&PM9m7EIk=T*(41FbT8|!@ z8=Y*9hF&AzN=2;)cc5MI%CXFfQeJTOhk7s2h%A@<<(a@O`gEb1ucQo#UY)ceVWm;o z=jhDDnl@IG$*)=7>u&Y($ii~neeN-@G16Org(W~3dy$%br^w+JU@9}+&ja<%=^b=W zHodH1^U(-vBBozP`gL&=%YNQ;(=b|?7Q|SB+h`%6@GPn8Hl@@ERg8br0*5*Dq-1c6 zOz5r`G#$O)<1iW%(*}iJ;9{GvHcOOYhDjYCxw`-G3G!|kkLL1dm~P8ZFIBVvc4YgY zbba0K9^i1?Y*11O6=FJXeRT6=Ehy|vjVeE?Hm$y%Ut{}W1=qqb$$%ISD_Z1SCpW%`us&(^CEx7`00 zOo-~mUK@_hRfed+f&z{9Ae=Gv#zSN25;1&V^EVu|Oa6gpD)`Ncqus&F#BzC++4tj} z_S^yFBCSe^c{QeIJ6|q5j9OLMSR;_lJ%@7(0-9TYb|R}Npt;s-GJxs4SI?JFmA61a zOoe;r%v4oXiqy}CVP_XQOPNS()OgbDG@Ay!^|S3GZIM0@o6qXKCnX+Vqq>EW319N( zx?$DKrOjHsCm0AJkjf+Pjb4X37Ax@5fr#*QhWFjVvyVlA)sh0GXw47)zt9j&?!^kk zvRTB4(V_y>3FXR2&qU%>E)3X&MD4ptZ(v&yl}*%txEDBCW+9&Hxd* zz{Vh`i2MVbl8z~;Ku3#(#Q+$MOCEj{zP`Iewp%K|$y_y%f9z?cBX63SC_n~7{$IMHGt*k0a9VQLeCQs7RU<-I3; zz|!*w6&2--AE*sGyPZc$RH3oZyW zUrms?v66h{r@US$pF3Y2IiIgit;Q0czrfq<+GtgNvX$?xJRDFEWyz zN?`N94=AXM{2FqawUrlTB6TOUvK+fJqF&-ne8kvH+JIFFQU>{omo?*@6qI8S%-ojQ zRN=w8Q~@eqDN!CmC#-rjSv_(TM?nP8tjgusVE%!z0Y$QETvyhejA3soL)}q~iogD< z_2OGmpiq)7valzSh3(>Qb4f3#f(I4`%dA-7VrfYt$Pn14z!s|Y9?X`}DIx@v z78!*v6{w}uwXvbJ3v0Cf5O1$hF`aQRW_>Or&5Kfn3j2ttdO@Ic#q1%7LzFP>boV6{ z*!;iMeN?}@cnWl+tA91!uxpc~Y`3M2nvt&v4k@T!^?RiS>4GFOmbPkUVxc)huk~^= zS=6dZ?B?C;Uv767Z$Ev$eGj=>;T{&vU=bn(l1YE@_NMR`{ginSQ~w*WVY(t$m#0WM zxfF?$Z_+Q=x3VJgOO%!NgNShAM~9E2v_a*Zldmw&i5-ZIk`%kgD+DIQczd{Cm)D_j z76S(u=p=*+18Q|AMCYuytwAlZC>QON6K>RpQaa1lNcDA5lJ%)_cnM($&bUOWJKnBa zm2-#(Q{K0fQ)hVgcf;@!bG9AAWbUwvr+f4r7FNByQ~oBo9Jr$m3`dF4lSqZOW_&iY zqS#+U0zWgdV5KH`VRh!@nrG4rJHgB&mrx!0xiN__nO05osfLPvfSBzDDL0e+-=V17 z?CmdaKOvjQ50*fn{xTSV)Gig1YA5s1?BT=WX#r{(iSlY8j=B{$mMc|?u$_j5cE1(T&$dRGpcW<7}_Z=H7pu;Zc4L<2tpKxd|hP{zo6f- z0EH*J>ldh7q(Da(rzZSDptj81|jeOJ`8&1?L1J)r$2B^kMsmT)#z8*C&l zcENgx=&6e0%h`OC2W9(fJKw^bLloBir5Ui>xP|ahN8IZgm7(4$k<|kxpkQHG!!1ly z^Ehywpd>x=SVxTbii)@E;*Nw}Hldjmm~Iz2j_jGP+ol851BP*=V+vTIs3{jCMyca%~?F7U*fHn94M9sxCodIhH2O}|CXKmHFFuzV1Xv=kA zJ1XkB$CTSvNwE|0u;^c$4H2ga7fj%~uwE0)mWlzZ3aCUga#Kh)r)MZ6U+Io(>rz$( zJFuUQ;yX@cW2jYW@X9NS2M+2?h2K)y^Al5EXzxL$yur17u35*Yg-Ao;GeG(*GecP$ z-{?f{qq0fW(A|U&HWqO^U|}wq>@Ln`7x+Bd+^8^dsQ391VZ@ikH$rV@k5&lMZ1J?* z11L7(>2_I82>#YPv%dnYgwlHF62rbKS*(TClsRe61u&~7!K#(Ih$CROd+8#AQ zpj17Mq3*DQafvlRBZ+AwtCX>QKv=dU+?AFWLJwJ&+Ut5I#9CVZqAwdUQZw@7;R=0> z^qk=&yGpOti|yImOMTS~Wk&PWF^-7YfJ7H;J0WE+!uf~a%bHX-y0C=_--^2K{#l>8 zngS4^B!ulw+4omuAdRU8qYPbR0XRAC8vss@eXrR>l(HDVC@}^@gaXvGO2c7jB#4z| zNi^Yy$8Xod9EGL^3FdlduwIuWa_880i{$wxy`Y{P#zm%sq=NSNo=l|2O^g5nmI>!# zX1^a^>+uox{bQuPLO2_Mze;vjKUmI*oDROpyGV}0lV>ccih;%@^_7{ z@etimAF>%L%pp`YU=tx?qzsbNVaE^Lu-^QFH|XQ4F$F53b7lG~(k2$g7ey3mF{^r2 zD{izvw)5doF9+#ItyiCF2BVP$z;YU-SeUa&MJhf0Kt0n0TvjthDe36#W5Fh&7 zc^pz_!o&CIiw%Dd?`Gc#tcUbTrZ2eApo&P`%x_aWyxa*}afKcPcxxxhzzvxMEMAwLvUT$VU~`~FAdW8xI{FG6G?&wrYxWsEq< zEyFkP$*UVgY^>*~{(JA|*Z=d|pWnV`=!FAzqu>7?(KKxL;8%dssGqnS{Sg(>`M@{z zj(dF8%PgfVHx!VQ1k_xr_!=pdj_T?ot9_WD3{P3--UneH25u0BQW~G;E+*9hRY2Mc zP0PB=KCn4jwR!r#5x0r{LaS|dV)iDn|0dBciw@yOOrIWm6^SU5&2Kw?gdd^-FQ*?{ zgBkI3thvm4u#PXz_uXWN($vqfw=RoOU1bv((mBaX-21M&xCX*BX+C8*FT#^NfQ021 zv#jYc&K@u!Wz4xYPVOCysY2_qcBDx2)oCA_k+q0rG1Pa$zIq8m#~H$BX~(ETqfT+) zdq!=O8bx9&-=NW5gc2OK!#O+z6=&2FmWqt#)3FzJ%0Qq}2tE(wlD6vZd2mxBDJh9R z@b{*dE|>rndA;iwvQzcSGSq_D=D-AcwuV=w83_&!FatR&aPJ)ohQ8SE_g za%9S`Ve7qnCW&s%W-|K6Z)}VSs5OC+&Yxbte}DV#ID)8#>-M2Q3o5kax_wBEwQqFI z>8QayI1aSBvYnW&P!V;Yb*f>LOZ8lgBuuujij%HnWd+r>lIm7)hj?D7w6|n)Pd3RW z{NnWK+zpGYlmVDsskh+dNpO59TG-zt201h^9XZ(`apd5kC^91P$4j6b)ecXtMRtJt zXrjj@Tsgyjiykb0^Ke-lLmWE@78*l82Skvj+!kld)F*9&3r7AKI39jg2Kqgsl*8)A znX9PO*p|%ZCAL*20E*LQ{`~ri)u{DLFwhm&fbi^YrQa4-f5*|uP1$OGRtXA~x~?+S zh3ZvAk{Ww|xbx`yC`Mpbcp52Ko_DXCtq--OGq+BYwc5IIq2Mu`6%9Wldp6;aXh?CZ zQb>T@@he1J$O3tUBr5f9IQ{0Ee;yrvxj?DLLHHTr;R83Lh1&Ygp@;Se)wj#ScT{s_vqo*{eK%?Al7u_a5eCg~Q!|9Vh9|@J^a9fh z8Q{&_5O%m>93^|#eEeqg4}bXh52*KLEk>4d5?g3gOUM#>Mc|ahEHl#63j`N6A_@jm z(d0)WkRj?xV=AM2WLxA4R+(akguD*f>;QfKGnBlY%^@;gnlc1Dc=O@Qckgb$IsWbA zYz_ddxG|*)>Di4A<{Eo-$}G@h@F9jVoQ%B1cwcFVCb4)$7G>5ZSA~)G;Hv z*>6}J*lX#2SWYHcIrEpLy^yUgXj|vv%etiA;^T)T}effO5+ughOm)GC_`S#7X zqu1}={`mg(&Al-@bCi^p1`q! zr)8L%cOXsyU@`(3kY%-{EJh#_xFU@OwGX%7F0gvLM(Mp`*B{M8z2vdf_Mw_rSC0*frOk8XR$fp%0=nbpMr>>(|_B7||7ODU5LWMni3kmIi5zmB0ci)wCW`y-6rv?WLB z&tg7e>E^je+XRsilZb>sjz@|z1$p0e_NN|Jfa?C3*(cOWS*vK$T_X!&yWWZw$3Sa> zr3Fu^r8l^!eyv2NnN|217z&CB9$Lb02rDFth>&wocOFM==?K4>l}ZzW1O;@%f*%W0 z?m?m$g*_!^s0&&iC?` zo>>_qEsdS!44H~^`+LsYPe;>C&MvIn(w+h|G)i0O+j zFecW3wDyWJIP;oThrdo#YLT_94vMeh>Ke3$NZ)zczzupOm!XCwijUNx7HWY1!lc2u zNAIw7JQASPko ztMO2_)dSDA;!40*pdv)1xuyP8y`uGy46_02VmP+#B;_(bE~d=>Te9V2~`5;$4zei@yrb%Mx2gq_eC zjwZ_O;5Q@CvI;ktGJCDSrk5n1dQq?Mh_<;9Vh5yc)oiUD%y9Lj0@LlS){LJ%#`2;w zbxQ>H-Bo`PXNFRCV@}glin*zMV++%JY$I9H#?sT<2f9!_Qn!3LJ?fVC_DYJKPtgwt zNG~BD1~;D~fyoY%8a`ELTFuoj1|x#>UMT1frL5{ zf8=nio_00wK3wmk!yBiEy=lM2zqHZdPh`--IK#0My~wlkX|tuSp$rb@>b#T+B#{*5 z3mbF&OfV7_a2^bA?m&`g1{5sb$AJhw^Xj6duC(*;0`sByRTIM}yo{tqCo^RzLLd{W zqPo4D-y{D*ATN?`TraeN9?&aI6Y0i?H6SgsDmHDk8lAKn^MoQ;yJV2{(Ldc&kia_# z6d~S4YW=hu-}!T9Lfx#OjBH=3lOirkzycyIT#-5)I>iO1w?JBc1_}g;5}i*U94KCg zd;k2#Vt4FsEsP^HWyA-2otH9@C*)c}o`Lnp6&P3X#a4-W291e;aWTS#e9L)G9szrZ z00^6|@mEP?>A_q)vuLHM^(@~s56kXraU;P&rE_6S-|uji*T zJHlUo=;jKN_w1fMo7+a?bM+~3snL1?w+PYXo=j&H6!sMGfpz1tA|0uw61!FxFbU(L z_X5l1pHkFQ&=Gp;j-!(nwETJ5g>{2s_g~u;O!ba>jl_!K3MpiM2lyDSf zj!f5;t%kops0m8|^!0I{X(el#mfOp{>RXKT^A;=(=j~?Ufz$e1u>9;O59-9x$pCit zO;e&tUlf44Hsxn+=SZSOigEJsonc;NL7ELThiG^1&8s(CwAkFzj*1FnU>&C~(IJBE zt2HfCsv_JdMw;an#ZsO|s_6^qu`ZT}=?kd-b#s?~#`Z1c6YDAh^eFo@C~2l8glhJz z&tW}4nmZC4wG=$dd;qi4f+*3V<5UBz=TsxdT-;ol&35`~3coRmEb*1$c#1rG+q@Xn zy^W{^*Ne+gcW_E9ObA!Gb)I75#;vb_}xaO*s)an#0VEvz+Z_jv% zhuZmR2Z)8XACT^T$X}>`#gk!c=1*2={Yx(?k`)rYkk5XBB@mXt&5R1;?G?J}LN-6(#C_h>b z&n=T?ZZ^J#^|B|r>Bli)7#8TDC~POt%)hUIyIXDkLZx6kj`VAvrF-;v_6|agHT_V+wa;7D;*mM;^0a?1tinj25aowIo5f zM1>nzZ7`b=rGMMzEw}k%I%-BjVVG1%3Y{ULEY3arzr5%A7k={=42O{|t8eR|PEcT4 z6B3o=DdWr(>dot*@Fh1xT@<~Mo=ndfsOE?4s%^2rHU|?!qK-_A^j%z)rp>94*cF!^ zQ1g^zK`HG8eaV_8+zPgL7b~`hiKZ0XOiX zEU(`L^1+v62?QT~$-r?aDazOO)*{{@hZMl;S&h=)l~B2oC0jb=rs7gGIWtO+#i;un zIuf_MLWj%VY2Av0eo-tUg<{AXt#HbCM=(aIUd`AHRtSZq{_{5s!zd8sslG?=uJ_-g zX&6H`>TP%_qFgOh3pn`Ca@Xkf+v!-*9DmOnC!IG={_Zy(b>4XNcfS!O!kVu>{=47! zp!3EDfABH~_^n!GmRe$KixNE^?H{%=rLKH)lA6DcV_$V2~mg369hO z#apVMhQ(VRvb+K*{Xy&aKX$3Ra}^Wv!bH$4H^-RFOD|Z?m=U{RznD_tJ4aO$%3#qu zt^gD%uXfdp%64pry2bL=*8UY{1LZw{_;^Ju<7Ad#jh<{HF*eV)rXv8?%!E!7$QU60 zdzdB5$Rh{o3FD(w1T$3c-g0vS&m^Psbd_M*AYT>+QR>=->X4b;=woIDE^WFF+A<$T-E4q;y)k>ej z^lQ}rUEg?fJcfe!g?L`J8;`ni_gx6{i2p%!(6IfLxajdg=>}lAR%OtP)`9pD^Oc#~%Nonx{!jb=ZR*x`LNc9@@k|lkUhLKf zg`zCn6rSR>gsvvn9(fo1PV@#0wF74(e~thkfBbbU!pOvr)*TjV{G{3wa1_ zwwI${KDA=!M(V||7UbGdRq z3HUc`Z}+G})Wiv1^sEUU*L5kfP!zz7j2T?904JYJW4Pp51?qvy53)gMWYQVwYcPcj zW`F>vJ(mRx{NQRjPhBjA+ij?|c()$!|6cuG_OIQs=kaG)kU#I<-2U(uL6)$8k?GA> zhd7{nbA=1gKRNU6`^_Il{}EnEUEwMmS4 z``OLu1q~L+nFqG1wm_629sq%25owDp7jwqPrXL!B+7U1gF)l|S%QXe2Re?iFGs=&ZPV$IA=ENQ6M_#k@I_!6=~uOQMc< z*oyd<;*Hd3P>RENibE~qYwdQ5aMk`LeSLHMy&Jjrn(lyXiD5VKHkIg=g#L69>!1b^ zL`u#mV!tVAloaZ7M1?vb^lj&@1F_&k5t7NL;p%nV@qUGY(VVR+Lq2td`5US5O&B*!TU(+WKrBGXxNOQdqdh;_LNoVau;Np-n z!mE@~FUPvl)j_y1eal7dwcr%fFEA~jzRKLYR#-F1VlAw!H;_@*GBUOk6UMm%ylmA8 zPuxv~5}0Gw!7N8P7>`l13f8Nw)IR#2s-g$oJBoccpsy6cHgJ&IA99%H3zc-ZjcX8X z3QRxN9H>c?_|XBCRbrq&OrUE+?K0A@>r60d17%mD!X8k=hy$HSD&JhpizxYv{SCf> zNLCmqt&cIATd~a~?!U>kV|Y)3)cX%~0x-4BVhc7>3cWdL?n3o7oR&N(D*e?oLG~%q z^5GU~e)Y@ir{>hrS97GVHZv>)1y~4VBBHxWaf37h0D&*OqF1L7_z9@m1xta)3V>T! zV!UH{=9@HBq#D^?v4KxejmJwC7YK!a=_x{!-%chE4j&#pdhiJUOb*A)3_5(YIGX&b z1I!OtKbuyR^mQVtS6D?6i-3M;C)5WO-`sjWh;Ic}5QzE|rK%#?rQfbF-L8Y0a?gfO za(jaw%!n9?yN;I#Fypr9P>1(CGeQ9@LkB;Hx4Gq+#B8-*UZXG%dPB@-%bUxNxmRBP z)y3}6iR4(H>25$D=(n4rb=o6P>++{KOPMDD=@80mVn#FZkmXwIYgBy zieJ^nwAtJG};^ z*-@^f8R8)&-tvbN6_`NX12lYF{XSRnL${=f*EZVwiYuMn3BB*OI~E6S$oh~ghf>;* zh+;Cf>V=gP;j81nt)PM=$EqgR=z=2PyaC9=xIM+t@@su7LWpO$Z@Vv9`J*^!6@`~*V7O020ywR{P=G0`0y+6X#Te6)5c#}xbat3Zv2&{8-Hc( zP$dn*h`Pbxc&q-{+FHk&KL|;~rXUR76Nh1rOkjkRf+T*t{e(&a-+#7f16IL3W_&}9 zZfGjE7IQ%7CcW1=e_F%jO8Hv7iKi6Lp^I2A2>*iU=$-;u+`8Y zO>MTKC)F22@-!Z~!fO>g%q(G(biH$sYdNK|@ON?-zQssM%U37@_h5ynO;E)37}ZZ( zu{r2kK(&l&;&fr&pUxNck|>F3~bpnIrOCg;=KL9@Hl6t7KyGU~omW%kGTU zZ7gc>5Pga*Cv@Ren+MmRz%)O&(;(oX`6GxUWR$M3b%=(-wyb6FF$|B45Z;R^pH9Y z3xj_B3^C0b%3UY8*@X=L_V5k1Hf}o^6fO%)tDV2X;sje1>cjPzIaMHyvg(4J845?* zn2-rO$k@X4mR7&%>K9$89^qS*T5>T*ge@*Xs&(c*|K;}m=go&NAHTl^A3Ks9B$Yl= z>(RJd6#yT3#iRpTN7#8yEpjY0K6Lq+<#`VSEuVy;N2s>tl6Z0dOKX&0IZ`f3b)-Qi zwQ~3dVV~%T*B?AFsuCl?d8$iy;dZwgkk%`qve%I^yfzV?yUSE@n9mKNF~HxuC{&CS zWI@bul)E#s1~qH95$lDU7%ZMMvZ{)$?+gXHo$Q{QG;NB6itXY8yFoXW8*dTaGYMs1 zg+WL%mQQ6)@UR~6M{8ESLeK1yme%bFv>D-K!w`Ip&Usfi*NB*x+SIuSbi&qps~r}} zb%FfpfxeAvA1WK1>rIJXQ{;G6Kb-Ej7zW5@cjQ~9d$e3OZ|){Aps9C|?J(x|O?H@~ z2p^jrrr}`4PS=etAh(l6&PB>70`J8~%TOPtQ*UKEy^Demx}RNDkm5M#=MLnX^x=BF zQ?$}jjdUG^n|R_xN0i>{q+68G#7xlUwB{jp+YLIhvS?hrqO-mMF5nWVos%4kwgFC{ zIp2N~JqV9E$#ppL37Q{~GZrR@hHPH^iD=kpDt%~O2G_pBSQ_Nmv%ZpLKvEVXJLjA0 zg;z?595fjz6oTp%`|y5{*h1VPuW+u#s~W?)+WvckGDCrB);*+$nX^$#4b6GAzTPCT zru~D~5Rw`v7M2Jfb+OEoj<6VQMY~e!x-=@Zc91moUsxSCnC-1P%!8u?u_n+Tt8w3w zwHBri7G4nyV>{S>0nw!SH4hBe7picm4L#vDrflFm}CskKRSj2-S$f5{6g4joFcW4bf zTOwl25)ygVQN*Y*L2`%Ux}M6%+~syB2qufP5y>V

    z6cjfD%(=U4MJgVA4{LKF9k z{M!TutJ^b7D+)~WAT6^J$w-qPG6^K09uTg1T_BrQN%Mm1MbcCk%k@YF*4LQ#6>)jE z1WG{zH}Ac~0&Xr&pGw||f!Ii1{=>Z+BU9x!2XMoyPONO8?3FxnYesuj#-_#9dbjY{ z>}t<30FJeM#l1!^#s~+|;L_w1(D4P#yg!EaN4$$}m4qo(LPc z7SY4FOdQo4JSr+Lp|tSYOP=rQct@uR8dxxn>g21l$xzX;2}5gCsg|Ur6paJ^zz{aj z5W2aeui`)fEGg|y43mUs3XkrI`9boKz%g+P0+Gc?_OkSM6Lc&4)Gq03M zwBQVGHK1ccZ!@uWJb2CuObe$2<7qwJ+gq4!cO)a0x`tj#_m`4%gV><}@klJD-xJ

    P#*~djDJi_PIvZ9h4?Go#X0#Q&c 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 literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Core/Src/stm32f1xx_it.su b/stm32f103/Debug/Core/Src/stm32f1xx_it.su new file mode 100644 index 0000000..c0a6d67 --- /dev/null +++ b/stm32f103/Debug/Core/Src/stm32f1xx_it.su @@ -0,0 +1,9 @@ +stm32f1xx_it.c:70:6:NMI_Handler 4 static +stm32f1xx_it.c:85:6:HardFault_Handler 4 static +stm32f1xx_it.c:100:6:MemManage_Handler 4 static +stm32f1xx_it.c:115:6:BusFault_Handler 4 static +stm32f1xx_it.c:130:6:UsageFault_Handler 4 static +stm32f1xx_it.c:145:6:SVC_Handler 4 static +stm32f1xx_it.c:158:6:DebugMon_Handler 4 static +stm32f1xx_it.c:171:6:PendSV_Handler 4 static +stm32f1xx_it.c:184:6:SysTick_Handler 8 static diff --git a/stm32f103/Debug/Core/Src/subdir.mk b/stm32f103/Debug/Core/Src/subdir.mk new file mode 100644 index 0000000..0c7a921 --- /dev/null +++ b/stm32f103/Debug/Core/Src/subdir.mk @@ -0,0 +1,35 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (9-2020-q2-update) +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../Core/Src/main.c \ +../Core/Src/stm32f1xx_hal_msp.c \ +../Core/Src/stm32f1xx_it.c \ +../Core/Src/syscalls.c \ +../Core/Src/sysmem.c \ +../Core/Src/system_stm32f1xx.c + +OBJS += \ +./Core/Src/main.o \ +./Core/Src/stm32f1xx_hal_msp.o \ +./Core/Src/stm32f1xx_it.o \ +./Core/Src/syscalls.o \ +./Core/Src/sysmem.o \ +./Core/Src/system_stm32f1xx.o + +C_DEPS += \ +./Core/Src/main.d \ +./Core/Src/stm32f1xx_hal_msp.d \ +./Core/Src/stm32f1xx_it.d \ +./Core/Src/syscalls.d \ +./Core/Src/sysmem.d \ +./Core/Src/system_stm32f1xx.d + + +# Each subdirectory must supply rules for building sources it contributes +Core/Src/%.o: ../Core/Src/%.c Core/Src/subdir.mk + arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xB -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + diff --git a/stm32f103/Debug/Core/Src/syscalls.d b/stm32f103/Debug/Core/Src/syscalls.d new file mode 100644 index 0000000..8667c70 --- /dev/null +++ b/stm32f103/Debug/Core/Src/syscalls.d @@ -0,0 +1 @@ +Core/Src/syscalls.o: ../Core/Src/syscalls.c diff --git a/stm32f103/Debug/Core/Src/syscalls.o b/stm32f103/Debug/Core/Src/syscalls.o new file mode 100644 index 0000000000000000000000000000000000000000..0dc1e55b1faf46e3adeb466d3354fa3ca49b5146 GIT binary patch literal 81452 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 Gy8i`>?7STS literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Core/Src/sysmem.su b/stm32f103/Debug/Core/Src/sysmem.su new file mode 100644 index 0000000..4474c68 --- /dev/null +++ b/stm32f103/Debug/Core/Src/sysmem.su @@ -0,0 +1 @@ +sysmem.c:54:7:_sbrk 32 static diff --git a/stm32f103/Debug/Core/Src/system_stm32f1xx.d b/stm32f103/Debug/Core/Src/system_stm32f1xx.d new file mode 100644 index 0000000..62678ad --- /dev/null +++ b/stm32f103/Debug/Core/Src/system_stm32f1xx.d @@ -0,0 +1,67 @@ +Core/Src/system_stm32f1xx.o: ../Core/Src/system_stm32f1xx.c \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: diff --git a/stm32f103/Debug/Core/Src/system_stm32f1xx.o b/stm32f103/Debug/Core/Src/system_stm32f1xx.o new file mode 100644 index 0000000000000000000000000000000000000000..df7bb4ece16479f6f9a6cc9038376a2db622a542 GIT binary patch literal 700548 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 z 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¬?%o6+Dp#Wi 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

    6^6 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 literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Core/Startup/subdir.mk b/stm32f103/Debug/Core/Startup/subdir.mk new file mode 100644 index 0000000..e8b1c54 --- /dev/null +++ b/stm32f103/Debug/Core/Startup/subdir.mk @@ -0,0 +1,20 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (9-2020-q2-update) +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +S_SRCS += \ +../Core/Startup/startup_stm32f103c8tx.s + +OBJS += \ +./Core/Startup/startup_stm32f103c8tx.o + +S_DEPS += \ +./Core/Startup/startup_stm32f103c8tx.d + + +# Each subdirectory must supply rules for building sources it contributes +Core/Startup/%.o: ../Core/Startup/%.s Core/Startup/subdir.mk + arm-none-eabi-gcc -mcpu=cortex-m3 -g3 -DDEBUG -c -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" "$<" + diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d new file mode 100644 index 0000000..84bc218 --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d @@ -0,0 +1,68 @@ +Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o: \ + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o new file mode 100644 index 0000000000000000000000000000000000000000..434efb0a6d47c3ecc58874b7df7c19a0675638c5 GIT binary patch literal 711756 zcmdqJcUTqIw>Lg>&a^Y9cYEyJsIeQ3HTGCy?3&nOOpG;ZG#Uelh+spI4pI~WQ9u+? zLZqEgrSKXcuxS+bd5O7g- z`!~SF)$JvKORL+z11_s>F9-aiy1fE$Wp(>cz*W`lzW|-8+s=S4)$P@QuGQ@|fNs_8 zwSex`?R9`2)oo9}_0{bSfE%mZn*cXgx4i(jRJXkWeX84A0e$h$P>nn7XX2%ywP%Y% z`jr`!=Bdj1pWb}@q<37Y#Wbohz$uM6%G6i%CRx?c5oMpgxHeTB$~3GsO{m5=VArPp zOWpwaeM~%aG;M&>;ROT#)!y%tz{D?`Y8qN=wrObXWi}$$Xqm}xbJfvc| zd4bAdrz+}--zruxtrU66A*n0O3o2IB7-0BUeAPad{mZYz$1=zLOPRW2cE!|+*-6ho z_2TnnM=vVShYIw7JSYaF&d#s(es*BrH&^gfj#gVg`gi;sVo?rhRHneQ{JYPFQl^yr zR`L4%uRO)j|3q|@kyw`Gm9SM?^ACD`&S8h>ndNHbe>m0jf8NjgZ$5qY-|y$+|Akgo zP2+}6LfrkzSmo&d#LZOOt>QKMfAFYJ|98FrJFj0E_y5rQ@4Q(e!*GrP#IYj{3PzK@ zNWnzqDjlSMUKBjL0F#|CzyXvwjag=qvg-wg`Aw-guVfZ0o4w+hCCdFeo>{8AY-X4h z%7&n?RMzUqF{_l1n+nWdTw!k>?pzzO49i{hRWJ%}P>GUJa&=-^hT}Gs@eI#Bf|kIE z{X|COf@&xki7V_OFe6dh;utfR{j-v>a9`Hq87o)M#xpkVC1mW}lx&`u7n3`PkY$a2R zt9yZGYIC1%Fiah8$yAQ1%f0tjF!eZ9n1cC?D?Q5L0iG^lm?sH5_hG&JT!vsdS_ceOos>W*E zQl6FSKSa+Jd~t6DfY>aGXN2Tq9HaQA#�m`1uG+7yt{35j77uNaDNMEW=BDq!$6P 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%0A&?7?PbsP^Zyxo9-FQw` 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%0AU0 z-Bdv81N;D&XH#f1Y{Mr$$VroJm4NB1#5cXfCYV>jv&Cg~Yq}&EYlk8r!Zt1;?x0T+ z)-|&Jjk4+?C61^MbB!m#^deo_^f6BxRJOn+E32-{wgW5eRfX(Gd1L1(umfc&EgL)% z;YgE;Vw5UW38HQ8fy|Ke+ujf&Zh&mdaF%8G#cYlXU;eTTl%-w^bj)g6GwpWX}IH}mLLeEJ#OOA@b$}a!KbXmvF zWCe|=OkbW3puFJY;qDDWFD3~Dq3^cWB1a1jmSn+c*Bnl6S07 zji7|oJ!NpZJAeVukg4N0Ef+=)*P!kCg8Ak$$&nSndc;Ltl9IE!N1gI+I8Q!EeqzQp z0U&KA4|nd~e5TN|#A5C?h7$)&K)q4PQ&C6&K+hGmNI_P;x~W;yNe5opLm;QdJQWwz ziwuFEcL$UN;|v6AZ`GJ-55U2EjTHUbwuYhIrBf3u50ON0-SiI7XdR-iVoQXpXIE$Q zrKg4DtB0TMwI06MDLp2bo~3Fjo<`f}Fb9m5K=n52=-TLk5uO3*U7@AG0d^F+c9iEp zwL;crvFK@Yo}_-Ubur5>NZXU-7)w^_m`O=UlflYH&cu1LQD^^phQjPv<_b5*tL|Iy zY~{U3!Ex5P)KqoCeJ7eE-eeqYo&u(+GlGdwKo`77uk)_KMnI^iOaqX%`EQy+8kj&; ztv;z7Aw7JixB|Z^e8<(~c0PkoP02O;3_Y5@LyV_C_VRDlcZfeTYQ=(IH2UJe3{&A-23wQw6TV9A^G`>)? zv&`1|l{;gaLn&#T>(~sNoQ4H@L^|0Kl0d=H0Fg|5^w-~zd_0pnPOnm)TIlI)lGaq` zKT`cM!_!o4Q{wp~N;Tre@kk3N*FE5?EN~+jr@k9VzykDl_xhW5uqkE}pAc}H_Kniu zGjeo(z(3Od+YfMcqAsWiCV-sJY7kr3D|c~ggIJ0yAJz(%>13na+^pT;;ZQDVRS92& zH-^2#RN9A6HBF3Rx4S*MK%-P>ZKFD^(%45j5qiTg+Cnr#I8T%0`u=s8W{oGgDpgRM zq2oNYbTmY&0R#uqsMwusz?9WQl`5xPzMw}nJTc~z$*SRrXXiRr+jc~pY(|i2Tc_I= zRm+FHL4*Y|5<{39_@1f)ckTuVJ2ngE;kn0~DgiY|VbB?^E}Q9PDv&yZ(m*fw)0_MI zyY~=~4n%pZSvXl$z1(LfNrR0T4QZz%xNTo2z1zObv_y!>t(#f{93(G8L;>MZ0Cg*c zvL83(9YDZaVB7`m19*^q2B{9HxJ$VJu#_P4*kQmZ5sx+1C|!2%MA!tgZ-nX;?tQE4 zt?XmU7a^s59B|a&KGMP7XWO(>DHtHVEwq&GhuNv2WFl7xAseeHHZ%F})HEsRqQk0N$dWTaPOBycE&WP4owrx{QWqQBWBikc!a zQShcl{%#$zNG)d36gk|-qkevbiHpb_Mh^1wVdCK7SuF<&emB}0^qHcIqpLK0Csk~S z-{cTORXX9hTwRs^(yZAw9k|RFEximIWHx2JmkW5>T|Co~O*;P!93uaH+A~CC2lhb0 z>I43OucqJg^eLz99|!4HD5PK&I*140DAVMVaw3RW6qKgNX|MaTFPzlXo%Z_%#GhXJ z;tu`M*%x={Cq4KwC2p)aA3Nm(rU~UDDxeN--{(ld@=vMmbi+R7T|B6*y%T9fb=Uny z_XZF&fIOJaLd+^PHf1J%WW1Lu*NH2;b@1}e_fMc3kWayEu#x`={smIVwV=M_3&Rl0 z;bXFKcL$MW9NMfJne~n?#p+8EObf8vJ^b|fFW(QOST{^5m-u;WiJ#*Qq)TKf$Xa>~ zlqb1nH9Ba5j3m3bUs*SF(x5^TQEp#!DThgIcvm;9NmD7{Y=SQXF=|f_8^BLu>2o>UxPHd{7M=b48_h3*@MiWAMN$8n@)bbk?ct;5)3Talue}2aG)6 zw8+CxC7RtKsNP|nUGy!4&;xz_YP`T%lp8`fv0ENPU}sIdQ0gK_CXGbtIQaloes!m6 zJ+ZvtNKD6hh$|a-&j%$B3T}L@vi8q`GtLo)auD(80~iNA`xE>PB9EBmsGK2ZWo6^1 zex?BFlSPxAd-uGA(bDijf`q5>M2^N(#IPZ#eIk@+{P;+Tn$kv_?Idgf(bA22twqyz zsx<k012Xn&5ZcOUrUB&|Yl(W4l5h#u?ECpq z7P30(Bm-qEZa*@5A7xje(w!yky@+SktF(hx)XKG`(g-DSt;&ELl0Mk*w(w>l#wo4O z7W{loS}KrUNlHs!6*wBB^kdRPS~Jbr)E3c2-jv%rtou!KiN=+IdXasx$)2?KI;u3s&$ z=C2z>cX;eFKze`nVK6^nq)xpYWlVgRJ4Z-BF|Yg(=)3?BsP(mGbZbdNGqy= z$Ri_C^?*&%1$@ZyqfAA2hitb7lF@FhiI%3gP|PUB`vM*o>q#Bsw6Bk5UK8OeXg`0V zrO!1^1wLS|%6IK1s(wBFq7ztX|2bZKKg|fRJ;7sXjvONq?~6i{o!6;TO&X1%S;Y?^ z4s{v{4pA2wMgnNUWx->y;#1_0JGK0AeJb-Ku)vNUw*z`ZUn~3P=3Ee`00>%v zYCWyT~?~L@jhp%X6 zSfQHnwHJ5u@bIRMR=Y33gaOnwY+u0=es#|D^GjsyUtXQRhD($@gO$v~1Wne+_M~1@Asz8U2Uj#Q7>9zMtSl8pm|~%ou@44I9AM#>X#2=wjl-2dTv9p<=@R^e zY#vOyOa?u)10!^g6-1BZ#+wzzYcwT1wc+cJvSDS6Td|3npz@V{F_Zp&Y1jjbS$#B9xF)`;@iEO{aDvO$`;Z@>!en zjOTeFd&mVU z7?oXfdNN;>B)xGhNJjWqZAtm9u4@Paa1R3M>T8;;=k#1^;Ue z6U?W<^r^^`8V)5C{lF!X#9zMo_`~$g=l2hc%DA_qa{(!zQBFY0N;2g+U%-6EEI+&J z%b~M|W9ek;$=MrM4gcIq-N`;Bm>#aLaRJ|r-qF(FL7TyuW?gR!3A?~Hh(nvdPJ>>8 zX%ITCB8oSdIO;D!>`W)%F5;hl`tb3gjw8{rh{-%#x9Yf8AYUl2t0t~u*;iqd8)ntSD|OaW0{|rsG-r(+TL3gXqdp!U?`l7!4#&QSN`?hoVX%;{mjaGE z=9VB{HgBF4+*MXq_9-VC=PH&lBA?4GmQzE^|IW%;aX?;AuUGumBKY80L|P^md|?!n z4)mgk;OwM{i{c%DG<9{MFhb{(uoI5^fH2sQMG}Z&`C2fSiq^^y;!@waxAX;WAefCu zw5_ivH#^km(Qb#pJupn_?Blo;=XQ3YAeR$tsPb18#bcp#K&ofc;UQ5v*Gh372=Cv> zTbt~cG!y@5JORieQ`)T_GL>$vH!QNS{DBZ5k4#jfU z7nhrGMa^c$4y%+NS)J~lAtyKiDH?64+%SQJB%3=7D-u%(F==D@D^)lXlw5=a3FJ1b@tx-pR+?^g`OWP>W@rFmOov)){rM8l1H zbFD#ez7!66{+;XTl$Su$5*}HZ5@H{}48NEmV}_#mLhB5w0gV&ZktC_iP0CBmb{S9; zAblZt8!%+#aB?~ywmc6LNSAs1bs&%f^cWUARr%*-tM zDz0Ta86;7YzO8)sn5qY=9g_8;unQMJy*Zy5n;YsBd2%5B3a}nbfGPVkTxOk;(>CVB zGX*a0A)ZaRYd=ol;2Cq2y_668r>3WYhG-BPBHwnUtW$#Z1=;}Ntl{ElY6_#&!2zoF^GSw34R!f$8D+H?ht1`(<>W#tJ8Fz;mCfC z}CchgQcmmVjun<+S#?DIL!Px8V#k{CsFc%w@haQ)Z9p*#NJYtr3MbxusoHv zUAqeRSPUGa9dy;!2C)1NX9RumqNR6Gk@W2t zjxgU!*IGB#gG3JwM68cZKU?GuZe3A7?gZqy0P5W`9TU9WiY#X>piOTSxhzh^`iu6Q znF)<1XWMI-Bc$4Rk`jcoZYFp@&oESt0RN^7S`CqV*N-F^8ddi;DDSBJyL0tci)-rBewA>Kpt6O#)H2FQ+9O=8l$WBW(X%|eRwp+v)wE-n$>6*2vdVas_pQg9{RBt)HS_Hsk7vUw?z_h|gRcV4_5HWlvgG z@7{m9!yVoa&L?o|N^f8Xx7tcqToL)**;a|SMRlOaGAz%v)%rTnK|Q0k8dQlEf?`@8 z&wFv$iB8IUAu?q8v4}O9Em!9ul9NBD1gN^>EH-SZj?(h$Xma&haUdLtcM##W<7KYp z)ag&{4`ya&l$6YoZ=g%&pz#V7j5K0P$l~iP)ur=oo{-OUp2azk_}o;K#&rbUeH<_3 z#SM(0Yk#EM>9D0}9JXhnB*48OJ>)A}$-R20-(Z}MIf)J2|1w%>3t;82L$G`?p*iAP z^ellj&_v>(=7?}Kc_eBAlRJa6ozflhmdRhiMr}TP{`i*l_^ceCszW&wfNM6`>_%G) z8MgIIZZoYaPXRm{mLJlTc6>q$rgH*Dlvncai8G$gb&<_H@$sU`lT~VKvb1+V=hhys zew(oe(^vTVNdmcrZx*aQ$oqtSmKqkC9bA#*$zt>j;sOU##Blu)UKQkNVqfqMrN0oN zh8YqYXt5erD(?o!@ynQK*f@w|v~|!vS=d{|eAnP7P!?bl*4FfNt+J*UD!rzrK0q3W zqy%tFifZvl9!+)`)We7uIVjqUV<9K3OaLl`g0~&ld|^T8Tb^n-hnywcfx*N|IGc&M zuk;(_wdfPIVE2Hd3hW;6kw-%B0UtjOK6xDc{BiK<J$V((vMo zK@TsS#F{0x@+YUVtetGPCc)i((zX^0i+B`gZS_l^$K$EsD?R=*%&Qed4=d)gGF$1o z2e4GS{!GPq2!T;BuQ9iakf=7OswF22nrgfT0zGrJ+Y&{LjR<_flmKB+un6A$i=9U; zL#Mz)j)y1<&W=a5Z!g*sBF*)i^d4j|8II@+m_!3)1ZQ6PEW`A{Hldb-iJR!jkzwFg z-2k|ibe@^pcfq7nj!7^_qWF->YBQT-d$8(XfA#gSKc9b>N2OS}!^n0o2m-FJmI2$-AeYMbN`^|-yJkW|dYa1r1>zoT0imd=w^j_Kly@C-C2Ck^an+Vy z-@W-^xB2lY-f?|*`n?nsGcc}59e&gUu3=)VA-WO>`1#|fhxy(8pB{eN z4YnWO+<*GhRX`G+HK%Yndb{*QQI9>tPG}=`d3oUl9 z*Jx`{!fWQfo^Gx;ZqrGXNg6=MNPNd>&4xGz5%b%?wgM)K7Zo}gnJ|#Wcd?QR+L#YE z!Kzc|-|GSav%zgKMgJa-sRc9~Fhybn-$W~|5llIlve9s*HA$@uht31u5C*m1f>8ou z?Bx0Ma(cBu))8KX7RXS&4b^lS$#i$3rXi;R)D2FJDVCk?O;qT*Z{1&TcNRNEJj`E( zhngQz_8LK1YIDsEr;#V92&OWvBBFlpQI~IHhH0=tAb38*NOn8c?$Ia2709C0Xe58V z<4#W5{QNxis79(BD$_0U@#W@LmCQia<{)`+s-7S>(<1ACU6JA*AALGAfO1LKySYXl zruA$|CxV0c!DA`^{$HZ=qigx8HlaPb98>pHz<+4TTQEoJL=`UJB zDZwqoq*FB%AWgP9o2SdbO~KL9!(yIYAaM%Pl@s1AfcBxbKf)9eez%1mk*i|rST=(b z)oQ`gbP=^+*|#ZmRit~=M@vH&;g4XMrY~dzsJY;ask06pS`VCI8|0JDf!5cQR= zcRPXka=RD~rv1ZLlye|7JaatjQks+WUrzAnE8sHaw2P45DWCj-Ph6hDPt3)vn^({lwVp6o^g-w?jd%qav%pG7I` z!?g}5?!lX$?|03tK;mN~CrP(we+kvFxfYS@T?-Qpt&3iN)NN70z)FZ-UMdD53OT)c zVcS^zf1yh>S;^~5E=Ek_gqH^k-#;1!A6yx*Em#ys6AB2njo7Lx*lEV*+i3(!J}5lk z5KBzkQySUkRu{m#nPWSmVdz~`H#IXxXzh6FHcw*ldEA(^1!3)W40n4mMx^SwSsu{+ zM-FJf(u$EuWwoDN{Y@>6EOFdWv$_gC6#?`yxvP0?P0R&x_GLFw4=_@YwW=<*4UJOt zJ%>=V(qu)xj4lVM49i<7BI*5%P0jScX=pWhrDNOctS@%G3+Vp5Xz6ij{aG4mP;K-E zNaOPvzEtusP?j?IqY2XuRQ=DkVCmtLij?ayU`hf-aunq7`9k?K<5BuS94XNW4?P|> zJr~Mm+j13DLve>Juu0*XMK4c!P)C~<2Mo&)+_|DoP9|6;=UnA!>q^-zk7LqEC1_qQ znvM7G3DY6C|*G4R7*?Q<$si1dvx@p1~b6NoZZP=8Q46lFdHm&rS3o^U zJV}``qhN?vJj?bmP|kEX2`4+av<+2JMZRK^h+g=n+crPG0eRxQ3@` zDB6ssn##Fzn*_+elTWI6pNNPN8vzw;HdT`xeEkjdZ=Jl4cAR-z`0?irt)(V(&~dK! zvJRNo-_fIB&angBbSlImg_krZ=P`Ux?;tw@n8mU05=1`%?E90JuvGK~NK?bjYe^76 zr{FRc4$#Vr7?<>IlO?#m+0_MBVS@}POa`S5(s7-N1&+EXREhSh?&?biRrw{{7KWVW z^)TQxuZQ8LdHo24C-U5KGzcX}oISN$h-5fFL!DiOb^GCL45qo2Luo~ed-BhnZ>}dd zs6Sz31lDZ7$5jKIoEFa%umb%!(@1D{xw)Q`hcO#~F@J&88A(WHJp0|=?lufNLz}L` zN;!m&h69gM4k6lZJ3E`JF|cF#(JqNHt+Ovy`#TGuK2+q?v!66kuZH=&@ZzJn|GPVY z0C7VLcbW9xC)20#iv|^tE*Yr{gNn9w$e2mmDtAo=YV3BpKta+{>w?ckN+<|i%<>ah&pZk|_RDMTn1`G_D!t*h>1f)saEr1y z!m-1+xg1Xw{#u@kMSdKbD5oI3vZ1H(<8n5zjxR5O#WY5}UNG&Y0AO=m03B;|ETFz0 zYni9C&?CP3bS>BjxWwvB#@xczCWS$mDeJmpA|4v%kE%r?%4pJ1WXxu0`~b zUqR0I%Kvq~ z?&Y7FXJ&q)jW}79p1YKi0h+5&NuZ3lEpBE>BvCial;ROAA3!CQ7N^&~E|_xWBHiQb z(gam}K){oc?9o7%k^L&ZZF&oH@w zpOI&Q1?lmG7<(CxA{Fex(?8gkRZk7hq^$dep4kDel)=t6t)j+RKod}SkkDr~p3y*< z@yRa;tGJz29B2)TSWUGmkRD0?9*aK4wwu87Ww(Hb?2@I~1~_z!FhkdykjFfAU+!zr1oj}S}^pFGl4ur`4%1s*nsA?#AuElf|8Qk5-*Tjp~)IMS&nKiwOimb zE6LkaRvek1Y;o3;t0;g@o}4%C{>(NoF-xOYaB9ASF70YGNlei*PoYKnlrBo~%^@SL z4e~)FQJm%3it9P=mMgIL!GopR2OqNF8JAPe6LNM=zj}MF3zcj!Y<|{oiDcFj(-QVF z2-}!F^h7Y0I~HRQk}$DHLow#JiH@#2;I8_!_>keErw4nu$Z(O+dujq&i(jT&P zl|3tT5=M@$G}nzzLb-IfAOL^`U@JYW2L+`0f#@;nZ|pRX=SvO{Fna?wY*ThD^e;sp zM|aFLv%Gd2ecC{0o_!r$#p(L5z8S)$knvQVrV5C>oghknzgY*|J%S1-AXAW0Qn&;D z(WbE;z;yxltftB;JrFprLymSN@0 zBwi``nE6}QO<{Mj_BjEEg@8*8C7CWl?78o7GQbL*Yic-eQi2R`Tge|r{m$eM5fbH6 zTDNs70Ua;nG!RQv;b(as$Wf^-K~DcDY2TTQRR`y{AdL) zySa^UB2ybf^0l$TH68pgQ+mszp?Oh^>-H6-9~`XwhcD)_nLW43kW@W16Ot#KGBi2p z8s=;4x%j|@%z)2WoeTOqJhv4v8Qf?}acJv736|gMzT2fOR$Na+XrzzG_JAC(kssr3 zRGsUdV5$3dJZJpJ+4jsOczU@S=P|zC&>JBRz%hTT>O%FVX2R%xnV}LbIA#_HO5Ac(3Ni#2Cmj^Q zia20QICkP1h6$+-2^_WvTdVvRPp>c6Lelj(g5b?(rD$s!jo-mGWMK?5t}3A%%Vh8{ zL?wk4GUr4UTP60wF5aw`o0%An$HAs_gmwVMOi>|42QOP|6cLik7Be287SBrA-B4$Q zPF}ory}6LMil4-$-=T05IT_9}F2T`so$YfYGf9UAl&$`JE`W4%|l zzW!$A5kV!)jU}GX-%(Ss^*rje66u(aV{s1`5MXDM%mwbM_JO;yDGyv4?yjIi#9lMh zvSwa1NZghLJyAc`CTU3vXx?H@9>VUMn!eIJ&?vYvFC4ZMElABW6kQN!n6!OelM?}z zQ`23Czf`pJK5cLFpz`b;-pJ6Pm_7B4R)(9|qTtbre*R3m$t;cqr(woIH=~eC<(=DC z?q@JPo6RR<=cSpCis@7n{&9L3t&vv7ni^Kc%s;Q0dHJwB!D)pD^UTUAd)Ts+J!V%E z6-k+_KvDE;Luf7#)f3Q;!*i8l&+_VGN$CbvNg)Vf++XfuWGSSKdYF1w9RTTO{ZkJC$a7F=T1jE#BNey!-U&4QI|- zG~;iKuC==9i>^N0FW!9m^PBJA-_3w^p3wqn4x3R2#ZnZ`Y=La{qV7J$%&CK!F*GG^ z%K#T&K;ohZ)cDOKJXq3zT9h8-i*` zu2X4#b`8^KXRZLAg=&z}!xI4~!{BrBi(6k@gH$B9xDnFv%d>lnT(5d+8GZtPOfD-J zSvu0!D(7M<-Ug%+3d0-GHvB7dVLxZxTxoK~I-Ps2My`ngx&5TWiI!wyaMu=GSJAzyzpyZ`j? z=Kk%Sw4y~fJQRY1)$Z&+efr-zLufWqW{v-HzG65~36A1j|J)M?jVBIzzxIhx!d7D( z{^}>fGG0CL=vP1Sxbei}U;RXcOIBk%!4ruNzEICCM2UHy<{$pH`tY~AkE0LwKfe3Z z!RqegyPto0_VzD72s`-iAOC1FBA!Sl+P#r@@8q6`SmzU-;)RXg<9DC-cTX|;u!TSf z+*3xLQMZJw;1+ zsHv9eO%)n_*A+&9W{pNtq9WM&tlMX1b*?(Wh=yhdEk;!u7w0zXfr)=ditGcTY9Yfj z?Vkzpwy;pUQk_6Y@wU%N0kjukgmP%bg3`iPCfw)fOISve5a5Tk1h3#A@youQwf4!U zkJd-?zG%~{4AWacl%|_8J=?miZynGl1*>Kv8C(sMPr1t@-F@^*5df1fx|6^rn7Ws~ z=ttY-^WeRiy}ZU=_jsfpM-05ePZ*gpfilt#$Lf-y8nVu#-q~iNqTx8Lr?<=X*o`R6 zJKqM{TMMVn=8+H}pJ8sL@g8E;f{|Kj^gQNUnoRJj4dv#4+J{M1X%(PZYX;h^&tchb z-SCg}d?asS&1hIQ?G8KTalr4cU~|qh4YQ4L)6&kogd}U8%^UrM|Ius;f+Sxf=-rTY zs3{KAFwG11knHv++(2K}BQ?6|8Dy@IN-(0-ZDHI<;ng>z<>#BsJzhk1`1_;7!RcUl zbaFC0JszB%p4|Ozcsh;riB6G{?WA<&OE3*X810ggle1{)wSs$Ch#P4_+;{yc5@EKt zYKG}8TD6EMZuV~g^RPSyuBS10BM-`z5dC9}!`bOQbWxlVlYCc`-i1;@Wx z1WQ=yezBe0V1fywL(7GtY0!iG` z-q6EKk^u3G1EYzJl_(HMUsa=6oS{q|mT?3Qw*_!@ra4Cxx?x*8Z8Wny!ZV5rKx0mb z6VN$bBUE>2RpB)u7&;U7C4b3+sHzmSVAWcK#VE9%{EWegAN;oc{pH@!r}Ma3oA-eJ zk@>Z}pk7tBA0GcV)IJ&)0T*V>R6Z@NNMC<&`sDowq_O?s!)FNnh8Lc2Agu3+vfCNa z9gmY>`qXq3LX`|&vO5cn81e|PYtCN-sHfWcIEjq7p=fFXv?4Qbs*_icnK`uwG5Rep zZ(prnij1X}Zfo&&`1C52&bUHeO{+n{iIsEqat02}Be#)8Y4m96fteR!h%*Yzz(wx% z41V0wa#okHh!U;$^0ySpDr zwf!79KCVWuo%bxRq{W)Lhf-;%&f6TR6NW|xf=d{>sfN4GY>Wk~YARX>Y2I543(amy z-LQ|bS0B6GDlfu4=u(-?lYdY;hUm4pukhj}&k--YsD8hF8if~e?9i{M*MOY^7w>_cckD6v9uT5)01=399HQBB^d;0>p4?j*L(s{)* zB3IA)^@09M`RKpg`H)?7g=Og7KW~4JiHWkRZUyHNb4_KbD>n4GrEqnOK;PpR&h#_0 zxX1W(Y zpyVkq2Fl`qf5Ge(=%_ci+e)VaIlhJ0MH=llz#(n(ZZ}%dNfTGZJCtTw}_Vqrf81!R0k#bYx(R8@B z)MrVo4ozXG5#s{i;V(b>e_$X!e7qaqegFAS&=^xE!m{kFO=OrBY{|Y(np7Mt$qID* zrSj*;r?j%Ch``A!M13K&%OV2dapaS3w8#Y-dXd>)S zn`dzK`ThIrpZS+FY<7)Q|AoO8qw6)2X>4O-nWKcl$9;2I{ykW#`NQT^{vQOFnMIO( z><2^}9+RciCa^+#E*dhUvI4tdayhpWRPL@kfxfV;;DO3j6`bcZs#RRL?T4w3*B;d)co*{r{xT?k9Ir7*@t!CoNW(KMyvk}e=v^S z?(Ua|yL(zR;O2XPJmmKeLzrm+z(Mv5|FAPNhx1=>9Jm1If`hN%-}2D=kHcrZ|9~Cp zKL%gHviH>=KYm4_2{+Qv_tgw7z2#Z&D}(46Jv{}Tz`lgHC_HD*k!meApHmw#@m{nK zTovs}ATbDwS}c(wYP0ZHGr>Tf5cc;Pio|0i{W}d2H>Mn8{ zN){JwLM~8ht8_VEL+(I+L5aJ@Eskw-vNp}{f%H=}C3j^WIy$m%@t6>+G5>BbqMo2JA+eY!&;LJLjVA>zk(I&g+@&~feBhmXqvItFcKa06V$ zLc`##^i-Ew2Tih~dyT0COdssXH&FNtt#tUI-9ui#yr_p46HWAjPAeHa;bQPFRFx;P zrvmZ9eBtBp3w7lmz3s8e^2L{X*n>@jBt?;Y^G>D1UgEC&j3B`;p_;cqP-)-X3Z_zD z+~72ovMyCWM>JYflc@D=Iy)wp3g2L4EGlK$;%qy*^eUckQOu71*9boS4k*ND)6-QM zBeTnYKsD+DwO}*?;RC{sN{6p}RYOf$GWpbIgOM@;9(onJeVx)gk^0?!cO6WqeEoF> z(A0_~ZJwtoT6(kQ*ZdNya<^UFtA+9HWnR6$s-9>9B21H2D}8HK5gg-py)qKBUhdA` z|LKF0m$8K-keB8cOIZQga++nn@l6ecp-aHh%wVGuf#8rDl*yJ)-4jgRxlt+PF<4}I zqb-`7)AVwkQ9&2{q!8V+9&SW)GA>t19=Kyrkfe2@Tw=q>APoU|6<}7K>><4^*b}c$ zVS4V=;GtMPsU`g92N?*x#g5z{n;KBo9U44#zjn8f%=TD6^U)99qi-hu)D#}r+f1{P zb1iN`?p)ncU$l93lc&>vXv>3)yVsEKvG5_nYU8UQ05ue$y-Z-+!17?QeF~1K3L4B; z^(9@qy@&zTWSV--i4I1sLsTBGET1Mc!~V_;7B2dF$e|jxdYIW6Qdl?92a0^>2l~J7 zKR-TtaWp(WJRJ-Mr_Yb?zJ}4aBw_HdVGzA@9hrJH1C~e@wK;-Y?btT~a-78>zbE3X z0m+i*WZ}LGCWansR!RZf=ZngMVv=2$#94k;+3`srEwB&94!f1#Arfe^hX=KI!_hE` zTerEK2E=$wh$KuRU4;aS+jM|WNAmY?1h)-Qm>${rc?TH4(P)s1qNyDSrcsBJrhmfnw9N?3vrazw{ZU5>1?gxt6E!>Uh2Z1S>6E&N{BpVq@^Z1XA^W1 z+#Z$ulZ^!)&{YyzEB zFhFUI!D>>_+NVerFWTxLUq#g52KKJk3sH~M%1aS@xD@R5MSY9tugbv*;BHn;Ov82v+W_gooL=NQdkunjg|JwbQmbFkJLnzUe|UHQ{@pzycY-Sl zc6aqEX(B3NEPC7cdBoeO0ssm&}`j?%jDWw~J?(WNoSD;ZegW6DKP(<3@(}f{&{} z`iM%^BEKY}9$&!Q9BKD-(gV1Tm===wxGN|?0Z~`t(qx4MiQ!0IvsNvzZsL%ExvB)l zf;GLkz_N?HAaXxh4RA{VAN9&>gv+2C{n9J~|d#(awD?)^7xB>t$UzdJaHr~TG$=A#v~`Sk04?|;en`Sh@_ zZ9qc~e60VqS0ZupzxB$)fB%(Cr1|fBAa;7^#*_j2Cmc<9qEk zq`Is8<@Y+$69DQR{Gx=}mJe6*>JnL_SplV4jNC*+NF-zriRwjFE}#Jt?iLiH4B99z zClq%|QHe{$^ti5$Qqn))qlQB73WSfQoV26c1dTMDFW4yd2us07Al-l&@PmceSrgZv z&?7dqPw{WDg^m9sEr31)Dv-*HCdh<9`WT)n(+%~bD~06qxVwGx=ez5l%fzxEpimRG zm^5?IE8K*zy%k|~c{|0@wG$I+cT>~CbcNc!(z|yiZ#D~&dpx!8L4d0nR{{|dFWX4S zIRIa?l4dND&Cu+2IcBbQy#uT3?TlS7@x`nbR%x0wdjZkx@g#&ycxa+QlKnz~*#tZK zpe7-LXDnsKFVEdSWgcg_RQi6%nxujZ^;kxyuytnJ!t;3QKKp4NN&z9kdUdPib^KPGAt(42_|JwSjA0dg=8Chpfjj#DM9e z$NwzNFJ=l(9*v2D;+C8M0lwBL-x;l>t`j}_{fnc+ljD=4Axi{WBKdD_t1ovq%(YgC+^m z{#>%rU80zB()F9pP`CK$xBy-#->!>ng0%iOWTo_QT{F(ypBq`M6wV1V>VGx64<73t zBj+s8W?PFecw8fiuEm{ogzGg)jPRq-NkMxeyb%f*T}%QGNr1?nJ40c=L7ZP*m?&>7 zV7i8>e)%$r+`5a$2CItdSAFQtlhutn7@qqxMlXa0j)YMoli&^a>m$=zx*Xm=dUDIt z-d!=`H*HS7b9j&%Jud`;8m7-geX6=zm9^|KE~RuoCj<2$8r6~O4f)t6@J7A5m|d+{ zc6@ONPn{0HYy=n9+#bjF3(vR$&LnMRSq5;cnXYn{V@D&{40 z-Z*R!qzNxll8zdrfm_8VahC9CD>+Ll-fe~&Qxr`NLx^np_7d^=9ZUcWozs!N01f=! z9a);|TEV2u*GhwhwaUJ;X_79S#347nRfLvV!evDJ@NidQ44)xXU`%zGC!oGvUuSxC z&kE-aecAb#9;}EUa91vVQo0uD!}JJaV*C-_&?AJODfq@+EQ*>vj+0Hjn9X_urm-eA zpvNAmrB}(`NX6m?+20WQ)N)Gh?4U>6!6)~wery|Rv?;|?+N+b1#lcLmPDs_=O;0vc ziBx1Lrc+5o4N%d&_G#1p0uEz55DYX_sx{qLZn9mI8ABlsmj{YW4!}^d-iaT;S0=qc!X`s6BaDZCXEX1Ei;& zO*UjON28vip!L%b(B(xJ?FSTE;4pGF+n;c^4dfj#3Qku{uk4NrS>=B0ru5>9;}=JY z8Yao&)ajwq?jQ^!!}cxCwXzVKxBcln{y~k3om3)N2eh1!P=32Rs>$WWa+ynj9~Pv0 zrcHgm?j7)#N<0283!Wq6Z?aX{#QvhKL1!|89Jx6~Dcm2uVp}5jCs4eK?&}BE*ep3D zy>bG+E?t1p(BnlynEwba0N``a&r3``Xh_DtvlY8?1e!0vZ0C z6mkVHa%e)xF>2?IWlbY<11JQA8_xpL6#|!#NM?eU6=bFXA-18sEPO)tuWomTuts@q z>||MVwR_q)I<4GGpK~Um51ad668fya7*B2~xG;lYEY2V^SRV4{jxt9OGgrpbIpy-< z7)BLfO%zucq-!)9E~gS-qoEb1^f$YIr>q$!zIe*8Lz7;jqX!ePiM?kM``$CP*^|`ZC&V7;-17L{D?Q z)f0(yQiBB3I}_%+Q&X>bL36H$Ms_O|YwaEIW%O_2$+$#vAf?!fhVHUQ9X`J43UFF2 zTKJIL<7LOXB#_S-cOmHp5hRF|JBmC1aoLe zCZXS7_Q{D zOf@D!{v6a-kzn_`;;1n=Jvu;nOzypw4(U=w zkYMVLlNQvb)&Znzp#vaBFjF!-T->@vI;qo?+joLoCVq6e#9V>&9;g$sJH=48IMoKE zV-p^B>_FL(Y;G)Ipwsa!KpKQCW#*;B%aSo%lC<160G%x-48J4dLhS~t>`C1LP zSacf&GSFuQ<-zDHwSlV?oU|zdI47l`iz2-pWEGhi%GpVQu?=5ljsw1Upv2UiS+c64 zEu^BK1cI&MZ5IE;5^@cZ%bh{7SaT-SF@F(nWR!HPl3U@TB{+k9krI7@S_-q}HDmOn zz;LesT?1srBn&59G0hAgtMznyzA?fQ#vqEXip|&ec|)%wF_KHtArr;q5SU=73Pny= zH$x5=wPgv-`b}%*kM_*jJ*~Aj1SPRlG-Llu;f@_0`i98nUFmx)QqD{_eTdtekrPKI z+HWGVpWu|GT3Q<&q&B}_(AlV`Yi#s+PFP%0Q<2i}xjaXjuHv_5Kqi0SedT;rFrL^l zO{hMbnK!nZzG-q@k<0hTbuCX8?_`uV%t%vYrViN1H125SRWns%cg~>%(|gM8ci8Q7 zhpnh7fx>Q$3SGzuNCFDMf3Yg+Xzz#FTDySfVL;K+kU6n*HDo$+m`N%VZw)JlETzS1 z*N`2e&g8G;i%R}*5_XGx^#MV|ezlEDtMMVk0OhFr0xqei<5G}T`cs%jtMI!pwilau zy|~Gl-`LPpkj%Cc%}I7^<(ac-jpMkR{uWTp2IJZnyQ>M#!0E~!;I6Z7uZflh6F3N- zu${1}0o3E2fs)=3UxLU6w2h?#83+nFziA+fVP_-yI+;rW2J~p;qcewY9KFD>xc6!^nXY3;nw8P!K{gd9Hp_#hL z@AQV2O;B?jX!@B}AT1fK2sel~*lo{I$sCfswx2UlEue167NVvjKnYP-h{@vt(u^GZ z`0nog56}Mk=KW{5;zE%hi~W>|n|SR%d+O5r&2M@f!qeV2-xOE$Fb%%sB%8+41k2q+ zuI=gOXla^A190l+Tq!E3dUpTj{f7=GZ2>EJ(H5L`6=eZIT|cPVs6jOJE)D{)08J?F z0cC6I!;5=5pe}4o5x6?O*q&FE&xDTz(gc*^j445|A8YE`*+n-y5euI%iy&fmX|Tb7 zJd#twq17N1wvC4}e%pycvgEqIzw0ED1N4?QGA2Ra2l3fCXl_c`pl72QZ5h(fB6Y{L={Z;Ax0}LZrd{fdx_zLGXERow zgoappW@f3yY@kA&{4HnTD9)h{7$885YxTO)k-5NbbQq^IZ#+ztL{pw&Ef7$O`f8L=}AP24H^3Nyy>!8fz;Vf=3+xPk9GIhlssro=TXMW zO$!QbmkByNxcVpMWSD9bLZdTj5-AP;nS#a79oaL}3Ae)eHlVl5saxiT@~||n%-qJV zmfQcCte5h}?znEAit_2E=S@C1C~}QUTO+7vqVX`lL(kh(g+d!SmMWCvgNiaGWy{Cu zfJm2!7($H9iX&P_`w>}E3Rz_3fzV}Bu(wYGoY4&}@9NP(hGMes2 zui=I`hI7j0?BcQq_O`xa`^LkSIt}y*rjZDrB@J{RA3!G5objM+SkeWbO zAfF3zlB9FAF}ABU2K8$Ozy1?lO-pCVfHD{4+8w9h34@*F*z|xD)#KLkCYT0p8_y0X z*TcHF;|gUeFxMks5dSXc@=7(&9o_1Bnr=g02IhBJqK|NJiI%XBA447m+##xxHOAfm z`mAHUr7)jT8L{h~8s^yNAoQ-|^Ak)@;7V>xpS#*rUJ*4UkKY-`&bZM8%iV)Tb%kMS z>Vu^`!Yb`2{}l}6gApUA;n0^Hpx^%V<|BZx?l9RGQe9bw>VvQQhl9SOgbDS|f>4K4 z90G|pdagezA4{E3znYmE;tRnH4^Xkd;)Q$}v+ZlCb-5=%>!)u%JupGd>iy?WUR5jX z?KSYRDqDCCq%NcA{VuvV$+g-6Jb4Bvvu2z(mK z$UdQtnswO(dThv@~%R4S&-gB$Ff$o2{)Kju17Wrfa(8|Ih_xaP<>8U)9* zTuVW!l{WJXxm3eRu<$Nycp9>+@1?@{WHu8rG{lIjC1m9Z@?r5aiq&qzH8c*F#OLgM zY5AC=p;^dm$b7zlBqZJkb8Kn!nAVhMP0}@#&Pr`yx!sK~ga?;vy2uJ;&cu(+%0^x?GR%lrI=a;g0>83V737$Fkm#kb5%po#gHxd*h8Q!1hoIC0jiTog#EQ1t zr*7A);ZA?-`Bc!1&*6uJeYj-Uz}fuTgt*pKV_+f}ua4;#|B^vk1rypKsqsx59CpbB z&2xB_nFLKP7r4KL@d5l9jzsX{*DIuYg7ZBKr!}q@Zm;l&=%CrkiYJf;kQnH7#XqM_ z$rC3f_N1Idm4k}2+T^j6>E>3~^zE0h^;{;KMsl&{w>wC$wbLCZcq)d zy6G_`rcOkpS%7i~u9YcpGNq$6w=d9`+Y8(k0}3A8fq5xTf=liQ8o{VrU}(wQucm`*Is(^}BdyK%5{l>5DQ1=GwIO-7JPbc5^wNiamT z{^7_tr>O_yyU#_m^i*OGXem_&y(D8{pWLn%m13`Bx9sU+46uj5zA%Z@RmLx#@O9K% z^3VlE#=lOAd7jeJvQcm#gWNVZkT`9>6=vur+*bJvo@A67kgAgooEZ~JB_~uIo@~Gl zXE*=#s+LW4Qj2brgz005NB435a_CWF!7TIo>lyosD|%>gAS7i=%4=JyCCP3Oi}^38 zsWL4^M$XNe(fgj1*qz6v;u*^Y#byVt~X(hRJy9I=HOz% zwhiUt)VeCVfk8ED{CY6D9hC)CdQBGj^$z8(f`$Ch>?fEFO>gn_x~Lc=VH0@5^A<2{+wX z=!E>VCObj@LFp}+rXo2IvH?zm8lPE74+<*Xf<3WRTX5EF=Grp*QDW#FGxgyCDlij5 z>b)U>D~{aGQKq`Kz_0YgW^fAw#>7C#`xQ&JCX=*~91Cyt^~+1hr0?%O(m^Rh^L2cB zoK*6(SFswH2V4*MiQB&TQNoGkJznesD3i7yKqU1cE(Iu^Y#?n!?#(S)cJm606~scVkVL+f5*ww-GQbN z3omgmWSK^)E86N{|0I@#C);nIs%iD8In)&6xq_Cclr&mE4OrM?{Bq*(O2i6Kfmq9P zi%ND1E?%0a5*5&%zb5J{#lPSmgZuC>_Bi=#V}=9uGAHv?Lzvqh@z??9h=j6r#y zyX5E;{BDw_v&G?132$MrI;7mma1hbZoS+h%W{vK->zAWd9-GNxx*@@QXhcy?4!*<` z^utqOpV?a*HRdw%!WJ^+X^7o1-GN;Y1~)I-CU*(i4LQ-$38Xc)D}Ax)u1OT;D9me` zN(Oq=SAXbRXvNIsH>?m&P3KizvFWt2Rhn}h2>1w08&hnhfw*3U z$4LRzPvuWwU5T z9r}8DPKRh|duXmB-#%zqrM_lOV7 z=AO@}x@Hfy6QS=ce0COf(x9DLC>b=E1k(#e8X}O_t;MM+WYJB@?(bVax7DX>w^r)H zv_DN-C>;eeXs^b%mVaLvwApe5efbins(d1z>r=_7Y!?%IeKgdUOD7#4R=n`%bupj` z)kpK989}h)Z;ny!DRsN#BkZD0vFj6$dYXr5<(YAvr-vRyOYqtpXSA(v#!6Fc?+d!= zfMzyd2@s@m*_te)lfS?Va1N}rO*f1!f$&&qLvOw;_vnxovm?30yvyZo9s5>kp z!8D~a)HUCN<{)oF)B*LR9U*6;Hjt1lxAP>LQ%m3ZzGw-azE9#!4in=r50tgYcCghi zGPm`@q}B!8Hf)a|DIgOIt(SQ$O)s_*%Ro2Q?@XiyWO-(D3z{7Fe$f(CU}s= zR%UP4zUcxWD~hv{(4;_WsMwJTB*a z=tn$0!euQ-^P;vBmFH4rF~l|fATqlhed@7Yr5ebo<#+|xnU(7=@r$jRg2?*fsyq7~ zN3~RU72nhhOl|;$wV)edq#(X8&M)COW9UQEBtII+2GumIzuJn@SLp;XJ=W0u>7uol zn7Buq$`>;EK-No9jD{aXait?oo#_R&{X!wqN@Zt#^hMHXp-Rs37GZr#E1};SorpJ6 zOHkViZ>>gKeU>X)9?xGx(BWD@4n&wiJP3Lqr#tfVre-APCUlBLvC(AV3lx0aQT=mF z1_p7gGW<7S8nj6s`wCYA=a68NgvFVA+oHyH7aA0hAOy@C%K^`8QY2V9c%RKrMF6t#;s}U0n74Xdin_XzBNNo!or+mF)AycjgCu zx$hausVpy;`-8Y1@w1`_)Y(zzyFA=*B#E2${2mMpcjV#e!RnV}`zf9bD% zzTBdUE9!3ax}Y_kur&!mq^Y{qqGVwHaR0vMB9`ChIR>C{)|WtCPc5}MaQ-H;g{*8FiALSrEg zR_N?Nv{1#+q{ai2ZLc@eHTC@|ra>g4aHt)ciMPC>Wwj05cfx@Loy`mCrRDLGw!wrb z@k)9|mp{&sBr7rw^SND}3fwGw3;EoF;2G|gaNTB34Km$8>Ih1lY)3v_EMGhu^(~WK zSh@O^HUY7V;OGW>5TXThn#8k3>JKawWi13Zk~3^xdqM$yjsxWE?c2LgpG1?x3Es6x zZf1yqA>y4&&q?yq*2Y&e z;r;IChmSwJ`|(FaKK|5uvibX`?Yp;sR<MXZ;lWv6(EyC) zrBz1m(Y^$(-f92~OhnjOvSU`{*^@0eF%yq!EVo37dq=DBGEYV=U(}@i!iv+?gxHcRiX_+fIBJ?;-D9F1ZM6_5kcgzw*8B(yBQ2gM zlSxhWFiN$+49-TwX=g?#2kE8UJ#(N0tet3M=L2XAw*T^sk1qP;U?P??2y-?|w`KXMlR?M~k*46Hem} z(tzo|G@61yV3|iZGsMgY(_D0ELv<6k50h~pMs`;Ha1>Q}CYRc}y6FkF>{}51>0)ND zB=?k!s0fE~p!#bIySdl>v)tPIf|!dyemHS-AE|Aid#N1l#y#^_!7t6box|=Do{SWD z_7Ln|HvjDRA7@wXS3@0c5Y#2!Y;G5r4g;^;R^8ZP=%5>oX@HDiF1ogV`33L+-oXj@RO+YFE7+qhJu0e`iApfN z!Z$6sV5g>D&PX#LsAP1JKXUe7JHqC2*9C;bINnj zlPloJzgkU3a=|0ctEHzg-!6Gu9wM+WBMT)tM~Hz`;ckc@WHdqF88m09zvWbi>Jzpl z$Rpg0p_73rNy)4fvW}}Ms`BQC9{`o|ZH~8L3l@<*yaJ(dy+t)Jhv32FCBMUXC_uOK zFn2(WyKsu*walYc%$oC1-OHbVjsSH^1Y#<@Kru!|4eEeI{2eM*(WllYHla)$nyOWJmxDqAdI~Q!Fo75OWpk9}bR8FKW?6 z+>N1qg`qSmXn@pX+dBRhLg-{=5T7#Cc0*~mN0f8j9jwqT4>{O+rf1i48WQ7W{?K$XQdMXQt1VP-ZBs5Tx{83_vFjr0PE^t2<~@M9VcVvsy96>9 z#;|nP>%?38&;pSN$=~6T6`_VsP2qt=KFkbtO-=>&$LeQp-Hc<=_^xQ>7n=gg z{WQEGC~;)Qg+;9FcG;P6tN|`&-YDuYoVuc^2ZyTsY`%7N2$gk6Opc7BkSfc-x)eN5 zr$BK0H#I!eZZ?F0oS13{c|bfg@O+ZL`;lGcZe>u*Qr?oryUD zRE$rk3W*l3tw}+wl44P;vS;7Hez#}eO>n~4dgz!6HL>nUPT)+nBx!v)N4`j$d)J#w zL~kXEcmf>d^Y&pg138GzjCu%Ly;0%LuL7MXvm)Z+<|$5iI6Fjon8U*}Jgrd9;jG1n zWBSh0$kO|KTe=BFu~|;Bz~Rx`wF-f%L7LqHX}#8%VXzpzk|r8w2kwLVB`u&Gp@Squ zmSi}=G8Wk0b?*XiXuqX01x3z@7l_d=rociOFmr_?JJ0A*8OK*6V+*X2@G6wY(h*bB z!yjTrn-?`QO^#~aop=pFaw90Qhjl;sTxpdz#g^CX^o^$Y_eRSSKLvk ziizU6h&eW?5yo;}6ocn;?fF)k1VnF2usqixdS?=%$yB-;oJFv^PVk#TE&pw!l@HhQ zc@;an{4xObLg?JKFGJ7RADkB48JvL~shmAS0XsdyTqKwaUJPwAhSz-hGbXzoRDOXHd6bYTIPLf8MpHV#9n2-Xj$Agb%8V3ejLK_R20~T+jgjuc` zpKp-SxV(-7ni*+5>)fr5SmCD=T_C#)~f7{ucP30vz{O`&UVLS3Dtsn99A1{B%CH_vq=|w z{j;yka2=Mso~=c`kT8xZtfq_A4E5CN)gw9g(noRqXxAIJ3R#vAb=9&uA#Xaxhg8~mKxLqwQ=ID_*A4_pg%FNQ z#ga@IWv4V|ci{-x$@mGcWGxcu8G7AKKU!(+Re=N3>?aTf`(j*XHNgT^6-@F~J;oW% zt0Lpd$>VO*MEDa4;51;<=zuH8Z5kWQC7#tryAD$kc;-A4`pY@{;Pp3#;0rF3z$1!;hX_{fr z&?uqYdzEvkXuv|xX?J^k^p3KR|4w;FrIz_0AWa775b%z4R!&)}2@xd=od%NA6hlh{vzW@Ai zx7!^Yym|lbPbi@c2>c>CkrG@bFjr!iOdFk@9IcQ(a!|U8;B7JDCdiHqQ$e^5%NyE_ zMpjISb5C;@>7~@89_SA`OQ#J7YH)g>E3N%781gV6exG6c;Qu1<{#%0( zd#FGXDu!I{>+`Mx0#$=UQXMQmb6nvOEj`kY1)1;ts8(JR`(DYc13y7crWr`3iZ$dp z2_+xw!h4Rz?ha3=f4)6KYB)r{!QCCzMtKFKgBPJ@%To6-6MB46hh%n=ZXc=y%Tw;c zsYg*nOLJk!L0ODj29m?|c8QEpNfnZ=;Oik?q_pc!e#`V}UEn8hx`KM?3^v^>sN9{0 z8}~Xd8$y-CE4XGYPJ-#%xYMW)n}b|~KDh2m7{w0)gjK(5%2WXK3@(_|9UT*2t2=}> zUYO5BLFfh&i(`l$yF^%DY!btHpb_2)QyA|e&bv@1oG%14n+MApTPTr?W#U1zyXRlG zOXmw(P|cI=;wl8w7Mc>`bGn;CLbTXGSxxFoX=4|rChTOj3Z&umi~gsOZKH#w!O+UB zC5xd~U$eU!M#Cl(9fY^wtIZeWiFr7mzk9g){Fm<$LeGKtHGG+!EA|a0LU;RyC7AG_ z`Sya}Bb`BL9do@Q5uH}hBS7d9^8OC_F%f=R$;bs7yaFpXe48$d1o3T%?Tko+O_!mIV1^_fy$S+`eIAU&hx zwO>@iMGaABsPW}{cF8jaR#$KcL~7|7 zLO?Aqg6WTiot_^C5ly+dUH8F{@~Dj^g^sBnN)xJ~r0@6i4LQOo5{o<^rLXsN!!B7w zE6t;(o-TfU94TBmU?ct+ZuqR0E;re%JPuYYN$Kd~7 z7s#R$u8^NjwihTki2m~V5m$qwO96A$Rhg+T<|q1AOWtDs4UvyCtH*qo67e%ob7;%r zDxiT=vz*k8Q|zjhZnWGZx3Bsp<*)cjohcC{Ko+1A{zyCLHR`38wCuk+zyK(2?4S2g&qT<^JR2 zz7S7EX)9$Nkm!|edMutw%SCeG`4whhK^`evX_goDNfVTn%+9h?-B&!(cTAsV_9Dk=~^;$uq&1E8`I z8v8`AzI%$%IqNHrI<2!5~^b3OkWji2Z`IoMI<>!=wHnp{e3L zlY@#yeeyuld!0MvqnZqFfC~I0>4yBFIjd}g7tnMtyT%1rLqk<|b#WyqAlAmGsx}d7 zAa0N^Oa~d|K}+DSXmZa#%jfZ)2A5Y(w2PcR?XtAngd}T8$BZPHrX-zXu<$&dtd}|w zOi#|j^qk=r_vF3vbzV`rJsj$DSc^ulRrazT27S$Hc-kvdW4t@*V1U$FZ#Dm3syU)4 zJZsHHJ^KLQFe*V%&T>#`x`hdY@S5#_kT)RTiJ(jjl|9&Ya5K79BH#HcU$ z<4N~t119Ko)bR_nj!$P7T9%y3$K@Cj0@p-)08?(^l|!kt|lq1|bp+4pxn zRPO!#@#Wh7BDbCUSHoXxb`H0YD`dvOZS>mWvQJh;cJg|KT3~yd+eql>#N%T_ad$i} zG9(%0uVFsWP@zyWn90qrCH#2WzfAYzp2x^OcNx8m=F8jAvnUxHcR$ry;2MpI^oCJk zPi4=D{0##05l^w06z&4IXUOmx-U4)Jab2KvZ7fTKlF^ZAmFN@K~ z&gYXaDfQLYmHL`NFWg<3(&12nLK+r%aB%R$htJ=?zkAyM{qq;kPhJfB!=uxa!LWb) z{O)&9se_{G=nTx)FtZ-V4_p^mqNN2S)up%37zxE{dQ(D#HmUvoghTvSz zAXki$Z42gw$}BuM>S-!X3NX(133M5_=Rw9qRCst=Sp%2w) z*i7nGfz(;=H0iOE*$z}y@{Bis*u*quo4V~Tz|>`tCAlab|R7*FPB%5q6MbqLpf zW(l-pSe_XW`&x+tn-}Hrm7^|(RpbUXPZ5zJopZ=EzI$zI(_Y35;)vDG*kA6r3#^4; zl!G)B=?5kUYRBMM-Q~viTB`nNQg$be2~eJ6Q!Tk_*c*oKqjPxaP*X!M9pc_n&^e`}j$elVIAq z=98-n97+K5NSaR88>9X10MzN|oM8GyI8LDa0zAnOqWSz}yL|q_GzD@#2|l8qJvD54 zlgF2_rj@prOiA*gfzH zfdV?Gev{-JMQwYiY5NBgrtu3w&F};ruP3i=4_fI}{*#YD*vbEIDdSL}xTgxmSRABL zKtv*L!ZV)jyHNov;EK|X2ZxnS3Dzc8zUy=-Kd-6OtznuyaoHDl4`**5-u?9spHW{B zzd$s9^XZONy?XovVtL zmQPq~ksAAy+A{SCqg_WGc{^TIabOy325GvmU}O6EfHhBs@ha!%;i;ws$_S{bnGw<` zR?$wQTz~^%dK^*WXc!7+ls4Cfh>sIK`z7@>^%4Z$?fLbzW!`Q=^$D6FI|RD(awb?t zklMGW2tYwL0-j}dHf@)#-c)RVipO9{gD&<0%!j79yFimCM!7_`m6kuVl#$4_B2e*B zb}YEK?v@G@*G;K%2Jvr>8u3@7*A+|MhT3AwAkDN4IwY9Oow`kI5=vRTUTP}>?7q2{ z&f5u$qr8nJMvwCybsDRd)>M-c5%%BlQlV{W05#4+$>lCNEuUn^Wz#C!F-$>=xUiia zf)j>upng#WYQ84v-`onrgNWxPwRfY@cq1|q4Sf`6Y&=2`qt$pDt(PkaQRTIdAAZKJ zf}&g;VWY5m>vE~v%brMyy>ni$JvSgz^57Q{g~0ODoBR8__sSgvor?M608j8sY3#A% zG1NWR^=XNAxsB!=b!}jP3j+m@aBy|BeT4UKCqs~dnr)$6^3H86P6MbLY+rk*wI@(= z?<%vkXob$lSm`lb1FBFVoTW>lrvUBr6&BxHhRJq{#|P z%p?$}46=i)nNo==sBMymtI8!%y=^Cbab4p-th@GV$1ElT=xgiz2 z+Bs_1l%lhXZr<(g@9uuc*$5i0Fwf14+MH(K8e`;9`D9rQ!{d1v!Nc#^fVRMW?X^)a zcdRM)uWKnU&%2bAz}ZtODJ!(CKcfQq@I|#?Rwr#ojW1GvoMhw4D==%309R>ef-ihZ zrY=Ep(p$N;S-Cq(uTQ~J<)J@)`rn!fJ)ZHM{{`Og*F161c;et!KXKT2;_z2L@u=~{ zqhI~R=XDJeZc3_pi7kO(BG&tp!>D`cQua?E>zx@&w|7C^8ZmUVs_O7CU)}D)x(TM| z*;(VlW9T-cDf+e?Z*J*7kepxQLc{aLO*tqOY0q?BPmls;pQ>nMaiFwd_7!oCx+6JPVo~Wv+7OG*IAreKz zNFcfde~x-}Q!^ymV(f-jumzK`dHBD)y=!wDN0uh6pMvcV6Y_M+LjaUWZEyD*BrYN> zl7Ik^lKTrnwrE>BvgFaF#~nL6zkQ$QIp<`aEEH(Z#v9u)W3lQasi5W@OAjU7mAI^(7K!y+vj5iorc zQI2-SZ(tH-$!E<+Rh7~1Ba+r(SD7zf!IWoDk7y5%$tagvfq0;zU+i&8l=BF_-fsXW z7^kmuEBY9wJ#Y+gsFtR4+0}o+q52N^Vj-y_N@}yag{g*>b2c}yAq@(um>$s|j#XfK zmUcdZ?YeOS9iVGh9y*vJSfTIc5Vh_}I(2Au_} zE)g1Sw$nrk^y3ETi5oDg9qr!pzaE8HZ|J!qI&Lj+nK`Zm=XNP0VRdzec7TraR>{k4 zyqonzc16kvH2E%32uWq>%zmH30=vmulHwbOpSyi z$<;^^6EfHZOe4&!du$S7T-E2ga^IUbR$y999wV6AmzOszzIytdqU`F8-RZe#h+=E^ zgUrBLbC8|U6Qsn!I*3H(K4MdVdb_sRt;>Fhy;Q{tS#tfB4+wuvHUwVk+O>)jEhfjc zKpHDE9b17kkTa=S($%O%Ga-+6m~mj#*j)R`PABvaC2G)IX|3@DZU<~jFlsA>?;&+t ztF)*;{>pleAe@7LLQ4z>{tw=gn#k&&6+2x^$2v6GJL$GwYSIp+|Jj-dC!@Hw;l_@X z$J{h&(Z;|)C-4#Gg*0`|-FJyr^be4PCKY(O0lH!HV3{OC&<=VN_TB?rVA^m?cD!b3 z;~l9Mh}z>rM5_z)wPG|L^9WZ6HUKHL1xyw7hRPBlC*Ghno@QDz8-u5kM|TPa;0Mj! z2kZwghYdp&ti%(B1Xjz4r!0;N(kBW{EZTL{wJ^6ZUlC9bm}1G!52(=n1ElrwGf^`q zCgp|!>VpC4&S@`BBF%}>U#zx9dPcXm3Y)QvGVWThcP|Gd-E;HhJGztvRHYq~Id~`f zWUDU74xAmW{+2ie=Bs3(S?BPBme8!@@yIRg;hD+C^dQRFK{edo>!2D|2NlkB(LkBz z&U5azu$1oJjB?MBwNgSA>my+g8}^XQ?B6zg?&P)`K6h^F+*gyx9QA$YX`TNop#&=S zVHfmK%%kbmN#sRiOH3$z^woWZ)iFpTOAtQnP0- zK(JQpF_3XzkEC~mD8@Gvjt|j3*s^*CfKK5+Au=r+p%TU12O3rMKyRnR&gG63J`?%Q zlb_!_{Ql=RVi^4QFMqLbfW?FQkB9J@P1t{f&HnEh=*m%nhU?PgnBEXJmvN*4M#Xdx zb)*S&IW}cZgJ>T_Don!f3iA!fH|_G$YPrrA3!{n(q}u9Pq@WBYqc7rb`Y{R! zz;K9C$tX25-{y|Bn_E_5JKV9h!u1hF!#m-^yIhIC0K`l2JrJs(g&;<2J9`Mt{>H>9 z{|i~M77HLa88)MjJV~~HjGrjz{_;C)P4%X2{(LzP>%79wwUTbhahHEwY0vXYdoYW- zr0Bl61xtzqcqg<9%N?s&xm^!^GXg8kk|VEj>qU%`Q$R^D*MvDmE4as(lg4P#HA53` z`%M`Irs2X~rgT7IgZ^fFqb?MNf)HyqmvzTX?1!7o#D49hghP1!87Fv%aP9*|9C`eV z;M|_*t#yXZ0qwcR&APzb;hMMzusU4+Cbamyea-pD!+1 zYS7V)`HnEL@A_a5)Ra%r=$2PcJni1IvuZfiOF#ppUC^F)C4n63*gHT!CG)^JVum30 zqy}j`L)>`)~|N0ypl?+Bb!Uie%Pqok zCa_g~T;08Y^Y;CZh=Rx0h_rNW8y=dDav(&BXr>x_pyeJm%vQ*qi?#E`s{xyc4m*PNg1 z;%=`VCt0^b@{>}ktsgWlT7Qs{`9c7*-N5$IGJ7_Sjz^?PG!|m=sSGOwJliE{`^)v# zH!Uu;SS76kNgwF9LgBDov7P~%MW8uC9Z>E5yMKJX`~JfhWCr`MLp|}s&>f{m=)288 zI`RT)aizIcg1vc(-VO6-yKlB<&z!s1{wS&380r`d6-1C?Qagt|u&rW6;A%2T0VrAFi1S^ z;%pSxn+0(9$72h zcnSk?O+?~7B_WaeR4>I?Vl_PN12j2pL7Kd(cFR%Erd9Solt)fz)k}j6$D9Ub*^Q|~ zC)(8-p?kwhOg?weDOlK8D496ivZXk3Rwpla8}DMBmYFC-65{bJ_#y zC;CS7ZYG@_>ncMORvvvXP=*zLTwlHps61pw`U;DfzC<#swfK6HENp(_((ZBtdq!kV z723*}2U1TjXcbkr_GHaT&;ZaXvm^ zI6dot_LT?5c=a(nM1GM0$X!A6>e;(@J~=E7J9E?MnG-Ke8hB`l$Hwga02PtBnyq@_ zLNw4Epz00@4MBl$iDZXDs#oZc2iGa&p};{GhWbVnRG6DqGm2Sqnu*Ojm4y4Y={B2g z`&wHM$$r<`9?T^M=WxB})vc9g_VDd?PmptsxY7jdz??8HZTT#513!j)V12*Y*7s$v zg!2c4Go8fnM0fIYSgCNn0y1DRu0W~Js2*LPZ5OvQ`);$^_7}n|u)0A`fs2sqpQI@i zSRHP{Rs`?K!X@USV@gxKB=h(~;$&RN7Ar6@TrV*Bx8IFjV7{31%k6jsK8!?sRy4llOoEt@q^qVSvop{Vy7Z~5}_8bk-eJFSC39_F4mC5s1Wf?@JQ0Hn`+Jf zo-nutjW!B{%iLzv&aMS%PU)1G5ei4hMG5nz$nbrTSN1@&MBr?>kWb@ZKpMPz@DR1h z{7kqDz|TZn=}c$?J^mtdd0Vks*>2RUbtSlb9g5UMme+JPAX}-IMgXXIyj-L1Y>jT$ z`@Muluf|+p-Su?x0utPoMOIv&HRChOr_7~n#wToL8tD4PWYra>IFSm|%hK9-*pMxh z@qIyEDs37!pu-1`h6E@X?Ym*P8B$;5?&Qj*imHTDN&B%JQ3y)V=6c1QKx?wyj>tu{ zuHl_1m(Z;`#NYH~qdT#8*)Fd1O(yG5F@pn7|8;>nbn5*9`oJPfd0MOo`sUl-3S4Xq zhE#Ae=rAY?lOq%(;?mQu{;2R(tjo?+d=CHT!5G{LK}!7ecuI){0~j$CtSUzZvIK;7 z% z^aQIos}()dEiHzS!=2jM$*Oz=czIqZRR>7$>~ui60;_!6-tOcMK(oD`o`1`Sr`>B! z7coY2B_fiPp!VZ6D3OyBiga4$8f1piuJVas(Xz3)IvtdYtMw@us}~VK6a|o>X@?+o zIHd)Sq@qgtEi*Phw@bMVD;CN6%iuqClGEyIc;vBdP(TqpHjM4|9f$tnkesJ-|foaX3C&Tz5gr&`2GOF_A){cz9fyvHxibkBrsCVOd3nZQ0eshZP)P&6BRwc z4xJHkqhPnC{?twMuuBiC*H$=s!#^b>xsFtTyl^03s!$_)3&Hh zd0>D$rTn|u^sNXQu!t%+^L|NAAN>_pyg#X|vZ$+M0Q`_))<6)8Y1;D%bRaGem}=J* zIc=o^rZ2ZIqo@VPT)W<`HTTl50xQdh2SJ;jMRm}WhvxMPdQI&Grsr^e=nswE-#*)l z43;Zx1I30Yy?>x0KX23L%>xVH+zk>imuq_I>@V49(-o|=9C>xNxGs0$$ai~exut{} z4n*mg)sl7D zgnwWLA8(C|_fVq?GG)Z07{YTN#@!Q-$wTdORU(_N@s~57q+cMA{E*gcgz%pduQqch z2=K9yLZcBbmAKXjV<;+3nPVay2pjb1uM?bzR*caP%yaBNb79*|ddb{LnLH#0427D* z?@5%PXF$Qjxud2lb#bK?(K+(mkzRGR!1Op$cgUSyW*fJxd?nu=r7l?|sAZI0Xq}kX z`szL01y+W$6#F$r$oA9u2?eCVSfR@AA;)Q+9(NE3K+@luDaZ+ne#r`aNx$SJyqc2K z25^mwzXlUJ!GeI^R&Pw#{^n54Eg4X%J+TA{9qbhVTcnuZR}Vh@ggk=*ll#)6EW#bS z1WKM%Z%@6ey|z!rOmXPNE=$V*EGQ`r*Xq^Z=d3-^UIlaF^15LQ!(Ni^hIIh-R)u$&o^_5qd}anxp5JXo$w2N!XB9fv2b~pKZchCk&Ba?tKEXJ zQaf1Tnjj62X^>MsC>@(ouHcH6ZgX6Hxivymzv9D#3lSU756dBklGtIAIX5{Zq4Q=q z8nl=7L#3v2S4~LMe^WIQh+o=rlRJ88YJjx#jvq7%B#WRzrcAcq_oL!;G$1U3#b+m7 zbWj&&59X+D*4uv9jMLx7d$xfDKHp5-5)oHg81w#SN7(+X$>n-R808@snO%AN5MwEQ zy>R%leMwCc1s>1dDvr)X3Uw3Tp{~$`AttDOZ%g90XItsgv$a`F5DqquaIg+znU_!1 z>9h>jhS!Q;2z5uR!?nE-arul2{1EiUgJbJh;H0;K13H6e7#`(X{ zF)J_Zsux{e=_-a^=yqY~4DF?Mk~zPY+uMW`Bd=FRSgbN*g=7~~7lx~icR%K`h~P)i ztzHRYM(ZJ8w4Po7foPDku-|m8H|xB)g|X}7Z(&-g%HpC(%MRTAMTf^VFr1T@b5>DA z7z#q#N>lHLfB5$w?*8EVf|=kvQ_(LpKP{G-?vWAITnSD>PQ3!eM222c6#~+J_YTq5 zU|n}IKy5yJ`S?A`TrIEUB~w{+ui%b*_yS^f33}w2I_Wj3v_mp~Fi939+D)2FFvDVU zZirB4=?FxvN7$18?O{v2%5h0O&@jKw&HF_!TeAdOw*u3*%PEI}mg|mBtUmKS*4+g) za*LA>mtyp0GbeeJH6wK-#{w(qB(NZN%k3MY*&+(PmeTkzI#IKyg+_iBFfQ-UH%B0T zDecM>!!am6;@N7_}H%ILd3kty31|0E_6wn1VwqIyDk|m<+3jLR7 z=j&t>u6D8t(@RN&W-Ca~ma*>Uz;azqL-m9tQ9*%?mf*9`10=U3wIDgN5JtGa!o#Dn zLbReAArf1?8+Eg8HsJ)+X9(3?e>ot~nb8Zt^aChhh^TaffnuAAh_*lyM&NVk0WGjT z$C!MI*W?+4@csMpZ86g6k+Fv+M1*MKg*=W!BM&M&H?D3ZHZHVd8QVvv+ag73TlvQXrqSsI-PCR3V z^_cBO%2kAJ4|QZSxOa?(Jg|PRsH#R6<>DH(9asi>aZMlX?P}=F<@@1_Wn|Tk5S@9A zrY7CIZYwXIkZcgsELPgL9z_#DexT|rtFik={6-`k7c#rKAWD0-nt~NLCLug_%&Q>k=*m<4dCg#)qW8z-#2A>ucL$!xoT!9dUudl?sx`k z&%tBX)3dgXMY@B{rfKsTq8WEgtR7PYW9=By#hhZPcY1K1GTiDAUv#igJ7uH^UIg5QbIo)xOsucj`i zt3|s!Td=F3O`vLAefq7gO#4&AS$eTw6h_LmuLWzEx3MO}6DTN~i`@k(3Ov92hmz(mKfM1Df5YMHfF0tn6=i|| zqG$Nq*1c3~a>Z}R^o{af1%!fTwD`OS)>4`5iU`Q;4M{6O@wEdjjCTaadyFVqpiX0P z$9px+^>mAXhWXWEKx8RbT99O`Sa%t33)3`-Nwl=&1i=5B)IZQOOOwXK5>2qYz=!aF z*(!~3fX;j)^|$8SRZ+bp2v0+kCDK}6`Ai;ea>Yxux7yp52B@#)(-xqV=fEhG3qZBw zv+1{m(2yPa`SVc6?gHv;7MLEXTPB%BGHP7u+XQ#BK`#$0Fg;EbJ6vwA#gt1ukoF*% z(5!I((W?_^7pq4n7tftolMTx03o$bZ*lmBoK2HpPB+D{&Jcc^RV7HmETV>OE^~=ly-o$HE1ZiaK4Yg`E~y#sL)a5o_4&{Hu+JUukw+`_-T+n!%C&chc2 zA`bp%Ot3qod_)b4vVh=pon~cb5wwUFp1WDxYMw}I24|U`ujE6wKlNJ?BG$5=T+g9u zx0f1GkfW!;Xq2*5OKPLrt`s!NXNYR77jr=JIuM$JUnIfHT^`-kf=o<37f9v{9!o!( zzcQRS{||-xqUlCyGVyq9pI`^6adQc~+^be-p9}3ROuJUrtaG5Of4Bec&>%el)-d`x z(`qG-)dk^GSUh4319U1)Xde@N)OEIUslBCKfpizxNvxbeQ9fzT6f!3(4Nza)x^1s}xLcSWv?sgm#g*$v7X8v_>bmcF-3`Zq zAlkyZFRBsjr5I96Z3Yo}p>Y`XqU1OYdxAp=nXJ(?AYJ{_!~e9O zrW)neG$8-pMRtmAua?lc`f07fG^uQO7{kmqE@n1Z&tN+Pb!I--w|JZ_mT`ZnmY%jnzFP4`G z7wEg28OdmnScg_F>jgE2!KrzxOoB<6TIvTVE0f09bBqmxEcgq#)Zs8va`^^PkY7IS zE?&R;Vg3baXXQSmBa{IE?vO!TO08YLg4L3W1C5vXbkkGpkReLL&2TQ&)f;6+ogI$) z5TwGirXmgN#d5ts=@XbtzSX+s=>B??T~zbbp>A-#pD9`JWB^4pKRVFOZ>}e_&&V2d z%WS1WSe313?MG?4~n|2Bb;wrIIO8VED0h zOE?-^*0zkyNW@i2H%8b4GE>%a(Orx0(1$l8&}!$gi8!)O6d?fJL5@PL(jA1JS;fb0=n2t`bU7 z+~1(GBzomBLE~&al?Kq>stOg5f4rYe80SJZ3#-7dB(UYi)d_spQb)|N$#P{!9=I4+ znw8E{M4lZtT}e8if*Etm3TUilI=?7r$UO2tRKR(5dm}68fUtkVyq`UUj9su4HmKCylsB(#B;YqW)AGYviImFdVT%P$K z^n{YV>(8jyzSUR{tj{4+P!E)D*eU8^qQ5Z%^k#^Vx>e8?Z}RVb>;-MOr?y#f^(q>N zCn%z9t4%s#^FGk)G)-^LF3B}fW--L~DAUvf@)#mDpILiOmV$fOpQ`j8Jk)YfVFsey zWGy6+uyZmH|H4`|Skz5(-?tiwhdmVAhyB(f?QdGEiBw?xXY~k7kD zRd7aEn-mPuf$IpE+=;Rjiz!ovTVmP)>Ia!!ja!3s3#un9)Tdr^R0Zk>P~k4l8&^Zx z)-K2-(hy*}`cD;hwzPcM?0e#1T_~*iBf}yT_V{KKuzsOyU|k(sr>np;yeNZk_(6P{ zQF(l#P#9Mr<|V5G{!Io%Jjk?7J zUj5H27}zqqMZ_8;IUdUaO`cZ@`FELd2dMRu?15S-O^|8&a2%g5ROgPKAu|fk-@X3y z)9S;&-+i2Z`1kj)poin94{V?B1(JG2*8%8^N0dydgVLmse$7Hbf%U$OcYA|#fmeN|ODpBI7&OL23#275lx}Q8eU^xnS)`x2YUGSQuEdkTM<9=)HOw^<3x)%-m2!o3 zZEU2Pkx#)IRb zs?%Z@>sPl|!-rq}x##w%|Ms~5_Azcp3r2QQme5kJwDrXmnu@Gn?L)*S45OF=O5dYg zf}!DKCO4veRruc!g0f|0e4b8PsziLO!3{!-nk#+r{0c!atZIp-F>Io>d%2i`_?`|5 z07WUgz>M}Ip)Ev`CNZbp)mu8+KIL!d{x(a-NEI@$dCBo~e0K>1AX-N=fuxWHrqb(k zDO>6TJq;m6d6AIF(7ZvJk=rMQu}wlyvAD2ar(l5eb}5NC&#Xgi>Y-ogGdocXC;SdX zaUG0sNYuj?jMb^^V<^GJ%Rm5H;+z1QmA=}QM|aq|Xs-`1rj9)Z+y^#AAv{9E)+1!G z1&o-pbQRS$7YDLuPn8~zqm*s<{-@U;K^hTtF&sgHfy2w9-k%JQAIDCb z==!8l02-;*WwylgT|qQkH^-v2S+91w2g78%=qrsgdl}MIEI6|r@%5KJfN5_utdNWJO=i7@@7L8vJz%P$^AWBC)tYGk{n}_)>pM< zA2MB;e;$IB9lRzOEXt>p{bDww_TA%|Jd!=GL_M@6mgM87&M%y{aG4?x6CXTyNZ+`T zLu$ip4yW5z@t?vsKg@zB)pp3rleG72R$j8Ht95F|1y&b1>kUPzr~Da>C#lcilXhz3>@hV(ybgk(bxv%LVFhgs@ z$N@P;H8+R-SZRU$1rWGK2DDI3jxVKPAmIu}g28QibN8lRzoYzh;23ux4=`<-LD%eM zL@5Z_C4=%Yl1taOd>X$IBIlQ-JK zi-)$x^iR|NFcfwmC=tFF3omwl5z!Syjtthz_T_InXg!(0Qwuy?(~74Tt`bR&tNN;1#c140kbM+ZmC@9T4QLx+M4%I|71EQxdYJ|_r$k#pmvljT@a=E z4Gl@{$s@G`QPCnh{3LR!e^U@1HBIAxYMSK{dl<;|)#MXCk-I-iKwBCJM0&J}TFwz3 zbp32MUEZLf0kX4BJ%Sg$BJ(e&h-=UT^EcZUMDnMXJ}Z}6GE$_gProeQzx^zQ$9sy< zdc^FJ)g{DTic+idr;_Cw0B#1ok)6ojP$JHNUEm;UQr*uPyC6O7oN4qM5Bm1QO~j1* zLP{Jslv!A#%k=U}wpMVt^^5nUhxNW{?26zSHAb(s=BgkTa(?&$i9e;2S7Q~r_R<4` zG(o+nM4KA&Fxrf~bV4~>?I!&Exgg)d^q6aSwSiuL|M2$B;Ge&O#_gx^+C$ToKi!uQ zUec&I0>2{l>XkNH07h~NkABnn*E2%9$07`7%F;LUlM8=PaMW)_&UFT972MK{0s}8j zdL2pz(O8j^$@-GPTF3qJoFE!pr9zbMM9$;v5ro3=^itYZ7&a_96O4umhYo(2pou^! z0=b3h1(Vu@d&Z@?rQzy1G$YXy$iTuOIeD?}?)hzI-8(?f#t*W97qr~iVFzfF!6|Zk zvx^31sgoUBpKK)zJ#7#6CSXiuAyh9BV?oSjq|4=OqT}R$>o95Yqu83MMR8RQ8<*ki z<;|6T92bH%>*tM;VyVr4h5dRF$=FARZqRZk=lIove`i{Slrh>G~CY2dB85}<_#oe zRj)3fHL+07bouhy*$pziSakUarHRrRdqNrPD8;8n_#snp-9+u-nBh__mvzyM>-i!O z?KQE|HLFGY7N#%ckyq?HF(UuFI8P!1nqxvzG&$YBAW zMw?jdj#mZ)X5JexP~geb;}+jy5q54UK{^E;x%u2gip))!OZS+G3L3QY|+w-md%Z0IWGVgNsw{JY~QBr2D5 zt-jEC{AMq5UcP}_I1*_2F|q!>B&_=e`kK26yq_UyfL^6zWSQz(PjvTJrdo~Pwr@U+c3q7EvR%vJ)Xub z;iI5b8xRc8DN1TBw+q9v1NAmTcJzNWv3{qOoWk- zsn2sZYZl|9IIVuERYRr$#MHUf40>{$bcT89I~j8A6U+!=g{4Iwini<@fM2>*Bk{XI zr7kpYKF;xf4@&pUF=8<~-81bLyJwcuGrK~7L%BkHoEea6)heuqMOO=VJj%C(^d{Zi zwT|c@tl=(cd(K5%X#oX~C{kD2%ViodvN%&0G9XNl*ir~#5IKnCUfBIUydDKRlpYi3 z7kU>}sVS6}>G_$-^^u950rfdPscy7@zNx@8T-lvx?|%HSxqEl_J3&%Q{m$3pSef^iE0{hwhf`MD@eurexKQibaqZa!U z&O9DUw9)kr*XGNLy1AqrMCkKURh+uoqU@RMu!H2EV3?s2F%Ap$BS7QOOb>FzWQC@M zsIzQRmP6Fqjy=E5woTNsPeQ-m8>8(dm+mXD8tnUWHQiL>$cVKg8Iz5!v-WpmJWrxf zF$H%!^7fCZnCVt9w`Ho5jGZ)-TMGfr2iGNMr=A*aLTwcGjw{DO5}lr6Ssk*}GeT!~ zQrrV2`!DM}397G(>VfOqn@R)3jAi;mwAOmM;*QTQkJxduTTreTptZ#s>VE zX8#8wPl3w%rTGPda(hi7mRi8VKrcRE0N)4NQFXFA8rcGm=!ofE7v|sm?nSJFwVbr? zQOsaWE`;93deVj2#&4K2e7Gb{D`a43uZV&Bqeu)kGL z>QHvkrny1EMvwDY6%X`@E3Ldfti&ZfHPNSB&(=>Z?)ri%IrOag+0EsasyXr@L^yo$ zk}I_xq}3xnBL#x(8lG5)zF%kxA)v@z2~~sUCVM!Vqnl;7cSyT2u;6>Tf*=3K&0&VF zhVd|oMfy40U8Ahf0(t4JfX@|6K)uBTOwlbZm?^gi1JIRxVhpw9)uX?zR1mg>MI@F) zZe&jQE5ivXF~n-1SXzZ|TsW?>rsjte?#RXL(&H9NNS9f)dd&<0(g&gN&*Iz`$gDgr zlKO@AMX2M3(%uk&0`oP($vQoJ7E=-#Cz_0PDMmd&+$x2O2b2S|(^DmzU`5GQqBz zH303(+W)N{JwaL2%iO*Uey=X!NG7Zc6x^<5g>}W?O(lq?GTgC4wDX}=V0)SN&`x}^ z1Zt$)s$8s&tMoGyk@mZg87B2N-Yqc439GSnhy(XP!L*rWiSzn-hd$bG-`~B7x}5gx zWY<+#C(-Si`!)5}e z^y@XSj-e00KU_BV%8#{IMXY!F7EgAd){ggT(Y_Lc7$l<$F26y(E+4ZOfoksvm~Ri& zCo9BHk~UqSrPGEDR4td}gNBBNkmJXs6S8(@r_Y&PylVrx+yWr)|fTbq3;walIR z9@DQ30NX#;WqY-T0!vG4VOSmnf*v6<8^XSJvqEWQFbu)jAwjjpTBujnX|=SLRrRZJ zayx)t-dYl`_T6;*UWZ_SH0>ma6^iS^33-e-pjX?7svzZ3M+aekibx#%;isSeV2ic^ zMP?~t!n@*Pf$8l!cXEdTt4>T7i3+tR9@B;>l95Vy!<=K!ixXjso#1+A6JStlOGGGw zpGzZkqjJicb6J3Tpw`niyPF%*fa+ii=j$OQc2b=HL+jwVl{jLv@-V<&Y%8$(8h?PR zy4)_Flg0b*ndNM();I}@1Vmr6bVJ)m+9`EhAqnSbh4;6aC}{VlM(caMl7^eC;;KAN zE>Z7QR3&G=$5Q)Y0VsdqTg+)maq@zg&+u7L3)|`>Yc@bF0Z((7!Q|@^t8VUSPM~Pp zp-KqnMbWR5Q2N`j2{tG9&GG46{%t4K_A5TRnzZ+ZsL9 z#VbBCt`6i5^qLhA+VGNn7NLl{xgYT}xL~9tt-vDX_ZHhfFhW_jmvHl6ZY93kpIXjB zpAi#)n)q7uh!J3oe4J4~xLCkv?5d5L5o=8n4w#Z2gc2*KH-rE1Rc07JMq(gT)x=DP zQE*MHb!al4ZH%5iL;noB1nS_zj*$i8x_IOlnir8!5x^>?<@!Nk^v35KM~AdcHl^MzC(xd9qu9uuz^WqYA{c?MgC7TsWfh_>0LYD6@zC{4*KSa^UR*fGpZR8l=v@-Offjm`EeG zyfLVjg>!+$Sl5)v5G=yHTwZS2*rCuY)h_9HA90>oPXzAZ-OviDB4Fv@l;@ zhS5Zsh!F#zxY^EwT3FfC2^{tOf7~!%1Kj_rYSI5?doZ0DGvA|!IC(BoHI;6H1$4VU zQbgIuN+jH^$GwcEz{+=GW?<+zGo6nS?6A_6*sV8ClY#0{!l>G%J@qbr<|sGv3J28^Wb4OGj8OqPc*1eXnG z>nBNtOV-f(MXtV;M7LIfbCJX7%Q(1yTyjx;ggiZ?F7j!|yxORg5Z^?TQoJ>^U+7_O zeW9;7!rzPgb?!c>UP-3FDyG`?qNQ@8_8bfhlDa?SOG*@*-?&)@!2sVJw;!J>piMKu3wzvhT4<{K#t(cp| z^xuypQu)O&UyR(iFfNwPMvXE0kbru!v=n^8%bPC2&kzmO;i8|!k_=L?+YpffN587_ zx_moHM&Dq++wbcD+efPze2rC&U%G3#%%C$&&(OL>QH@HsNN%`CljBAA3mZ^>#m{owu*zhu2DxKGF(pp4YmaU^rdv>u-T7j{brIHAw3{8e>>_I^2m zj85IY@^Z#uv_l~*>e)VVztB&J6>Q;)5chtYc$m4|U7;{R^8tmT=s~pQvP^|xu~P5* zEWQa?kueZDnVd}cgEU7Ah6|g1RbNylhevrLl$aLJ0&*mEH|)?+iL`rC6PdTtt&-qj zZaKX-PMyBUo)LyGM$ku2zT-;s))~qCc~BW0@ghkcH3Rc{37M9HN{|W@GD;3+fon;* zx7KiYf!fKNiA2_XLlfaBuk2+)ZCuplbwwA|W7_xHk{JcD(lSBq-3#mj1DHS|9%zR7 zYG-<`Lm8l{Cm9dzwV4D+-$h!DLKAYi?oPtfZETvZ+#T|$}-1vA3g?4u2u>`dO2;>O;q85EOaVA}tO%*jk z>3`dHk``PD$~nwdbP3LwSk`W82dEF?_CyiLLB7!AWc6Uxu6M8hez)7){o5DBH@toQ zZnypT`u(S$-+l%`N4yD4BY9AUy2e_SHb3a~hF)a&W^3I~Qv&AOU=@`V0XzD7GT%OK&2TpIl6=JDSiAnk&sFWMmbSM4z-U@ziei zxTTSyb+F_ZW(JcBoh?~Xb3dTVZI&y+ji^?jDkdm$FDm^V8l(lt!bg|Ew=fOo2g&gg zML--O)p0M@UKaCyDb76_^5XlEwzSZFOPn|P>rP59DKJe6^_gm}IqXK>GHA^2lUjG?OzE5=jq>#^EjG2C5EHXfIJ8&K3(1 z5iLwhxPFC?LUk7uccFrLpiUCs>?L5jqbTDw%r-tFLb$qMeM${-k+?#Ulo3KJ$P|k+ zi*y9WDVE~6a+Y*UUq@8leEIat-TODi=|FQLU2K7Y zDWs!-v}~gHKG;rW`lYMaJYv^p5tT$r%cXH_^*9_?*~|K7kZQpU4B+b99&hX9j9 zfN)DR1{OYQ=5&yWyK^s7sz0?dh3IAZdH*O$UdTiA#n#jlm^7VTo_#x;uGY(~$Nc)8 z^CgN6&1SbJPX}c%Z0u({h#(*xzx698;3Ffk?X--5J4n+JuZhfi7_Zv#U8sJNWu6ocyU#eFDNSc|UN8C9x6qW#qF)_%*h1&01D*6ZHQ`=bHbQZ0&Mw7wL1z4S*^rg0+ z$oL_1^62aa)iN<1PmEoRHt?m5bS@7K7-=rl_!l^%ops~_6p$8C=beL*txcbYo%wX5 z2h&U;yoFx!4@L^lwRebV{AA zQGe;=ifQ4%$du4AHZ(IMb+1J_Kw4k7#-6)0sFF0cJtO%3_!oVWrCJ%t_-Q0dju_}v z($Cur)_yWB84nAgPHp5!sUN!-l>Mv|TUku0J?E~#;B@oktAK-dHMMu~d374hdeW7B(X z2c9W}sYTFBx1~muoeIFDKs%XLVONDb0D-lXOzjf~`rtZCrfR}|%!5Tu0&QrSYsk`O zFVXT~mU)%;MsYFY@CXUxk`bpU*tqA9E09E*gqP8|*vyt@%QwN^&hN08QgE0>#UxBu z4urf<4-XJeOYswZWAu7ZCEpcR>aKfa+Z>tJK>u-7pm$;yR|UAHlH2u zspV(qNeaE!LFOq+c?4x-LKQr9-cJxyC?B9 z0t`IaFO+~YX!kKp!fS~^>`E9UhY4u2sFAND1sQ`zd965wB9ggNXRrdlw{PCO{V=-v zfQmLBK1!bi3_ad@phj0BmkE7ORi2qT2LAWOPM;S_+;bjju_{m#I%Hw>(+{k>>C9Q~_Jrbv#{ps%$Pkk`x$k}$jKry2zmN2wX28)Itx1>Rc7!a*n z)n|n5$)Hwv0AhwY&+#p$}gqkDMAQgaWWaf zwq^%&EWznjO?PA`w8n!SEPZ$P0 zvQ;ozn1)l2P+d1D_~+mLZMI(82bTLcn`g?zzzq21e;gFYwx1JMN@Oa9EzA?OkA9tD zZ~6Z;PsXCUcv_Y=#8phQp$ENoKqm+8X)u0aP1?s#&^_vD7%_lU*@%I6LzJx^iQj|3 z_=zDfSIk;nTOz&Vz@Z(negh5EjZi0=wu(b&+B|%e7jvAt_dOuG zjVtQc;QF&mbQ|xKx}{aGxsPy8N@I4Oj!}I7ak$=CZO@GgUOr^xi45hktaFhqy2#Sd zN~gCrLsqK^#k70p0lFEjrwjC|%vN0ChPz6f_@HKsMQ;KrRlO5>$zzGEyus?7yrGq& zX~F$gvqK5&d4O<_hK#T!B_l~y9W7;c-5!Mz{^w$`C zf4?l|%lWo6dOoKBN+=zrX!(9qU(U@?%P02y)5OYE!3q&dxh(2m!sa4?1tw*~r%v@O zD#WZ_IjsD~k_jM1wPZ=yQDE9VDFJ8mCl=W_XfKBkWJ8yc;9!k&oGasFRaW-0NpSgf z{Wdo7+=x+wG?iE`)`M|6%MYSzuVe-&)_diWc&}D1qEV$_`FhkM`FbQ-h43#QKYhNu zd;jC-pLS2T^hW=HTK8r24L0?1hDPugfUeK3H;60VG#ySD-RQpP>=fZ`k-1tO^s#Mw zsUE7cuQ78^D)eAH>!eF&H@#RZqYtTp&#q@zv+J#zPBgc9x72e)KIjPlZ?cKPFtyJv z5+qWq1zrqQIn3te7k*A%vG?*MW3wZ2p7QSYa;*w1TZl%-^ldaoP)*3(r|Em`t_5+R zmUnxpIVE(lJQ#?Q9+0Gl;|cCKhlAR!$9`Z?cfzCMCvaU>^RbTstPb~LBeu0sULk7QzUyEdf5VQVjB!IX_l3LBt?!Er;^O$c{6jCLH5RGz;BjH8^t^4e< zN~4Ryk~f=x=u|f+3wKWE!9LB@%j|v-5xzgkZ4L8?A$lE5Jc*7-XQSE2g4_~Bf=}fW z-Mk>N5%+uJ)sWQ!1BexH07F|p7l%&QMvRac|y?f-Eu#0wlNbsj8- zld9rIS^J?YLY~tqLnrj3IKokUg|;A`Bap0IjMWO55XE+sijT=ij8H=I2>)RsBg^zr zY{CGOnOGt}fXMA($q6aC**FF|K18@{zJ!T~50wI4eB%~{$9NNd8 z?O<0^<xC!tE@to> zAtwh$=>5X474{SsnL)W&kIi!JC3&Bipcz;CVY5$^-1&&&_Z{60m-5 zud$pR3;zTTQ4cdlkI-$_HW-B-a>M{mf<)V8j%_`xt=R-j2)UTk87fX*Q6y$1&xdb5 zeEII(-B-t7KRrHr^7zT|j{wetM1f+wc$XKO@$2eaHWzw3s_hK^ynWy-;$Y_#u!T z4(btN$=LRAAmCH!Z72(7y8KI04eyDx8$e)nd|QI3pe?qF0H_)W7FKjf zcW-#jlDM*yq|m-by%w1<`ZYMH5FLBdCoWF4T!C?3{0$4sLU^#BJpBHv!S{wHCN6eJ zZZ5sA`ui-rk8O&^(X++eYxb+N1N@B8;mGujof^U>*tKM`D7|*bd}%Ct|#9P5MZnS8L~6qSozKI2dKEEBR6;TRd#NW zg-a<{0e%#$ypYu%P@kcNa5saO+=(kaG8=VHkGIRy6JeK4F^r_8b76l?Ij5>zr!vyd zMzpE0E)#W4f$)%v`%SL4q$vT>kG?k zCkfs%O^sVe$BmXn``t|WP$EnZ^4vwsiSavfEcZq*m?6{(1x2_VB;$zeL-ekVa(Qz$SkhH)6>GmpBV?=4Kjx#9O)MNZr*Qa4_-W85js!vl41y=429 zf+qgkUl3ym5$`MYf5EKS_r)v!@~k0emI83S`#?sr$s8o|Xi)z~1v=9#m|cmOJfv85 zu5~`NN>ODDk~Z~C@=6IW)Aez;tG%7VC#7tUPV;P4Z|JF2MZjNu454R$mb}m@CRF); zo|tp90co)9u*JfRT)0xiASWp%+v)XiEc7VN;Q9yY(KJUfkn0J~jMXu1@37iec?;MV z0wr&dN)utJkOOGcDpR&dhs&<>Y9C&|%Ulu3j-s>etZUe{VswCYEfLj;x)NxI6y47# zpCH777WA{p^BXaH&|349IHfxPZNn10i%vu-XhyQ1p+h%tbanP@wsDlBa+~fN1@nA| zgmbo^5EEcm@~}M@di~)gjv6xfJjxT$)S&B%&u$to?Wy=gl!%Em23vN~ai;reLGgH4%MwozdRR&W#We-`4Y>53dqX3CaY&uZmCO3s?!EHQ zj;jiHTV!LhLZQi5C<=1EK=qIHhC12sXgCIjl!oL;;IMXf$e6)>e#VoaZ$;Ir1h5yb zFF@qN5$MLH=j8E#Ku~&->Vp(H8|t;UR>`RqNV<^b?Yv4jUxKu}kZ`%4t%nNG*=yM~ zczD>eYY}iNSF;^hL9-WJKb&VHLNeC9Aejs)Kcp2FS3M}L09esUcHjAVmv zB<&Zv^qRi#agn*1UDUF_5V<|?sODLm?-jh@Q0l^jI3jB@ReVWk3`ir{7;*-mb z6!K-_lq`jMhkb8!Va)jFpG-(4{xJN@jIL1y{sqWW*$o9ba6*ZoDCNXK>_FxDc~hyd zF)1i&ywq#)YWn;I6`(3)vO7unY+p=yuA_B{3?Cj^WphFlWs@Q60tIIXkiJ@L>MYn~ z!abeQ`HnxH+wJuwhu4-RUoZ99=~%hG?(|9?@KE7_bM|eXR-8op%Gx+Pi@43gL?1kT zjP&M4sxxdN?YKOj`0=FRua7qxK7Qs|eB%)*kgu z+a>6tg?(#orgb*vJXlK1+VqgRk1E>PA5iH_cHs>$ydD#f&{CMz=Qd5o0xxakm73bZ zMg!Eob3=j2Z^-39b#wQ)GSGnfDUEJYPs<;^UX15Ak+y%B){Ydu2433!lC^UMkXlD+ z9=_S4i^dbXU_Fb%6IbwjFdS{=VPBnqkBGvwH_0Ph)c`rAW>PkwvM zli%?wl%o0V2aO*8j<-D?(!ofqQNcu&Z!V?gp$+*Bt-kipWg4%&6;~A=jN294a;Xtm zJ$fJ5O`gKjZ}$!Bw3he&!D<4m*|=EX*c4ZFHr^h@sF{+^YQ$3#nlgn?xAh!ileGEa zZ{_v%3>ZnLgPoOjKK^&W;a5% zRpyO-g|W&Hf@L7$7Ord0PEgU?q#tywUm;p0>LNj@GfcGwFSd~?pg&$)WU zIZwgw8)@9l_(bE5(|5a>P?|MNoaziH`5H;{FQ>@F8%(_LsGqhbF}{qi-l9z zS~<@zm++tL2FHF(N&KyX{lI=*Z)oybATza%3N=qN@G94U)s+~Uei6kc%4K=rTIQbl z)xr?e?2eEJ?#mVH1B)N$v@KIFIp^ruob!hA{W4p2fxRvo6rCs)^(3M=KK1Zm6HmKY zj{H$4$FVim!2GnIMrdWi4NomVGXmn`N~?#5n?7umkDoUDuG#rohksxRCsFumiExQq(lwf}QVXxemO*ErF{f6)t zj0OG#WPLKc%@DR+7xeO$+C%r&D^O5)?8e_-b8UeMGd7d=GzBjBCMaS2_zlhYJWw9+ ztx(>p-nJD5RIn_9JrC5%ath?uOU*Ti)u6f3H-_wmyaU%1ls@Ge4WpIEp@8Y4E)0&M z8@%};4^@Ye-wBq49GbJsE!v6rCzA9wRe#Fqf824pxCg_;eD^^nOQfd}<~y1YcTePB zbqUH}+SPKEMpP8$FHw<2Xjx1q14D1ZoDo?3M`zdry_VHcv9(wBvbfT;AZhH{sPG(*PKGs^HtJQj{8OO$U;+rUX4fd;jh0+a+@sI+u5t##lWbZF^y7(Rr9hoZJ=DstHIwtynFrm z?Ylc%ZBPZIJ-tDw+A9S*+-!h~EStnO9BjCalm&1o*Id** z#=_;y3k)?z)z3|jNf)TQi+Y!H{M1l46;Kl)Ft!Ie4v$U~@8PG4$l3!nGaNbS3}qw8 zo4oS1ip=P!VnOCE*|dBA>Tr&`Y>k5K=JI&qJOJy2QL zJ_|topa^gt3v}#<#?EhJ;jx43){Bx_gQXfaOx_0crPgq$Jo7N1NyDl3cC?M^-qERW zZsP z|7(z@As(_K6?b95a#Se~nu%=cCNe4oWzMR+>wXXWJFGbJdk8CCSA`JL9{CQ?HWvnl zD98nJXiKcG8i{=|r@gbCR7bGB>V^l6YrlgY>uN#y}a_bdX9I+079x)wv%QWOL+(1mkX9a(^wI zX;%FmLJCZ)y0?rFuZmI7Rha%U`Z-Up+FQskZ*mc{Fi_|^LVwyCgkE-#d4{#!vY+w2 zs0>2`Pkl+sQ_UQ5r(tQ7Ha8*BeL8-jH70dVnR{MdGO?MS0s2Ingr)a@^5dRIrw~9P zmYG;JaZOixV@gS&nNMvBQa}e~B7}_=P{!z*8dkZdE7sMTk_VNUlFyu-FA?$D@KDaR zfXZOk0Y)D2P?BqjM#ZVMV0uY}JKV=EJ1sA9P>iW;rU!V6 zogN4m!4$Kpe-Btc*2Vg8v73;um_A5Aq|MI`Snl^=S_U8?=D_WpY$_2X5g?995OPr)Z$1z2TO{2FDoGfTf$oa-$!IAq6Mc@ld(;7HahzEp zbeWNID+rvB=lmvpnY^)@)(k_4St+JVNr!feL0v)+pVc5=Xiap(W%QK1C>P&q!Qu@Q z`^T|Y^5Rzyu5TBxFaP7y=ewWRXaM{f>(;$xFE;(uTva%w#nWpZDL0V%g(jr+pdpZC z)}3G7#;*o)e4bx!A@Xc?FK!laVP4}{vHX;Mmp#}mqd7{&jOL`>`@}7r)j!sgcKe10$S@w(Nzk|1`Wo8& zdhzUpR|qvg4I|nIG6*5@w*?A1A^7##IkIW&fY%#^dyA3TB#oxWzG@5N)A`CY3#3L3hL4rw zA#WYqZaLkjxJSJOCKaW|FV|9Ic*#h`B_D!M-Tm{+RWh%d=xtqF41#!7rM9Oqr>UCV9Qha`H zrgpcqcR+fePj`-(JyKa z3sBQ4ksQ}c%!CI|yN#}t!i!>~KA}{0>S4zGz5>x>Y%gJLd=3nxQ}XN@$!)vcpK$(G zutLD;YTagehgUJ+tHGNO|7(zb@ztZh?)?VFn18~M=68SQkD5DQuU>yd+Kx4wD$oD( z;C~PP{U?}T6u^Z&$IgQ2vCC$vdS^Yim`R0_gQblaE?3Xk947jT;Rd3@VEt+D0Y~6I zq=600XS#d&@$F~SjsFGHIs16`TG`BffZgeLnQDh3=zP9a4vF9yRZ0+v<8BMHt)-{i za%?6{Y2#w0YvC5LlBS9670UhDVJJP5TbOV2`@6e0AXAr@IBxvluC@-vYshoRSpMIs zwd*HVB*cGcrg~&+ZIH@H35{vvn=>@)HW6*;`2m>s$kPMxCybH$L~IhPDs_$JEli)o zbnpeza?W8=MODEqbA`V($(s5S*2aaoes*UfRm1IYx@4#BzT8fK0qX4}{h%l)^ny@! zr?KG_k%a-dj5!8hT}>l)m@;+WAU#=cbEk9|+WBPbmbX{y?Sqitw_YZV%9ZKmRa01^Vd7(69KgcxmGUbc4tW9 zCph_l#j{TvC78;?Hq5I5bB1J%J%jt&F0Kc5cQ?Rb^knZ^_ zaJCzexZm{d-Rpngcfhc{5U@c#;C0LX8MXIabSRZPIF^`7Zgo|hvY&Mv>-TJp zt86C|+KGih=20Cvvc#2eB@8n>4E@%AJ;Cq`p`rLB_nvYF(Z@g`7yA~QF{Ixbj{$un zvCE@im&LnE8W?UG2uWi~O2vj8P9~6!&4ob(u1CT$T$^6;HW*zNpU=KkKUe)Lf@>8* zD>3LFs;3iOJh=6EZW(l@_++$tRQx5*|5}*MMzRARPQ4mT-@>7KgHrlV z&jKwxJ7?#hta5t=u5+ItqxpfrlMzRKpmM3Nt9-D8=eeWagYMiFpxkI2{ofqVAialQ z{rT{?_JMzP+r%1*2(SiA2tftNn#?k0fPgdIbIvTk%jNK1TD=DY?q4q<=_xcOY-Kb> zFRs@wBxl8i7Dc*+%o}?$QUfY@RFWk?WZ+I0CUx%V!9Vhse?;&|d>&VNoOlfuhPIJ0IeP@tWkB~y zU3;G+T+|6O^s|}=5GZ=P&zxL%C64gM+1%nvbCbQ}WG}kVagu9`N$$g2>(`($ca?88 z!^U!Q9L3oz)1_2UkIbZ3!xdUlUOs)f59#=I5R?b!l ztd-rveR_QE@rT&~u|aifOdZ;@_6Y$BOv52tATs`^*YDroy<B_ueo(WGGYjs3>W4sfq(s^^02plxSQ%cs#q9B7{vw0*8y#rA z8y^mAKmH=k!;iUFC)r#q=37Kw4|Ln~w}wO&YoABzhObo$tBS;s74~J8BP5IArtZpB z8EIMNT0P5eX~H~+hOLvyc+*5`bU+#o{-gRkU})O~+oYjogL`Tf(;r)M8ah1ZCG$zSw0EKnI9UR3&f{YWS(v-|k+{7r>h6tA;nD zwOZA=~@#uA|U!Oj?@Fc65L)y)}Y|@n@dXcIY2$+vV@#m z1P@F+JigVc6c#XeNY@D8HNQgXw8;>%i3i+677&l$1FSG+NW(LN7STtLe;~BFR>&@p zdhY?$&1gJ>^UUh_gA?y(BtDv8LLW$@EQcT!~M`U+vB7emjKxXo_i>>CE+tF zHPZ$ZZHEj46q0J_XYrNLTW)3g?cT(U8LJr!Z}Mf%3Fv`l0nn(cpL-=i5U-}QTZHvp zum1)UDgGc@l)=hQ#H=og~K2b{PcQc=<}s~?Pr9FKM*A~4eF+U;s?t9v`3VHwrnErb$RuU zw4HS34>3kdBA*-=qjEqQL+YiznMasX)nlf*mp|+Y`o!)T?^PoX4|;H4qYG=c26q6G zMrXHAPJds=i_WjG4OYI?Y9>GZ`ld$yli|Fn5!L}!tn`I+svlQcElD-W z-qzJ}_u+ah#Y83+BDme_oB2gWJF^6Ob#o?vC6FluswY%ZBxaWfzzpB=#So>)51$a#_E?4~Q>YTnSE=81>ViD#5E<2~N_Y%zvz( z{ERK<-UDk|{EE!v_;srCug`NcgojGSmEIP+!SZsC&Gm)t(3Q=mdh{)s89Zw;Nc&Om zYCO&`d?w&a&Mx<bLiL88dZUU~R1Lr%!d&_1)b!I0g@qNWm|5y6tAsy5n%C}u3dOi(D#EZLAz#M~cn z9br=_=0}E28~zy zm~{{S3cr?Pqq%G{Vw+#VNw+AeruFyt{s7t1|M4H#srZ$v$3G?) zMpR1T5=@GAn*tD#`A|IHKG4Zd3XZlND4|(y6B~7P1Z__R8XiFQP!9CE(Y;FUGkj%4 z7gR;^swQ*P`GxBQH80a?D;ndoddTRuPfNjVncr~8Q;OjL6Z2h{{#^Z^i->0^6&W3%{9CP(}(st zJS4|MkZ5n9A+S-kXm(uagFKlG2OGVJA@-n$&CBx}Z^T=Co=P~|8>6+u#CNL=43+$U zZcqeCR=b1i3W^pMMnkLGP9jN=D48B2;U*r4ofC13Ria!~H%AL+w>q0c(lhPQ@!#~~ zzz&THBwu|ssI?3YS7gmAy;Jm?lA5RnvG@lZ~2eVtL#X z=YlEFEa71bb1Bj+l3|eaD^1!}33-IBUjNSzA5|ltdk2|AISr9|D4H@_aB5@ej3z2Pc zJ$U#?jiPZ;TZQNgEeygvf_|a>6EuqAISWq#Liiu@8=ev$dB;*uu2-l_5DtIXVy? zb9LlSrM<|QBXBjIw8;{&GuquS*3_s72mt8<{J##C_l1|J&GG;Fp%qm3IuHD6@ZY;b zj62qV4Vf8bi{w4?r!Q}?8pv&7UQl~eTTd6@uO`Dg$F|n#1Q`Kj|1{zRgvZ~gWX_>_NU(>p7lnt0&d>wc9tHB3+>&N!Hv8L4cmz4 ziDd^1BSbrk*RjNDJw8_O6f(!70WFd^baOKaz=hOY)f40<16Q*}bb#y#X^~sXB*2IE z5B>k;Pi$}uf`<)eBNqZ=Xo3^yvoUi-f90kE3#@(d0@iDGuYTiajWp??w$KDq(>4M+=SCRdLB`1Z%e`_99=Q2m73&UB5w zQilCz1fnEyFAwVSnjR_2f@uJd<`N|Ab-E?XqQ**-veIl59ASwGwc7_TEnTih!Nxqg!jExG#q8SI z&={=}cP3<1tYd`mtNVKEYdRX z-l3K6eb1WD`LNnE@xI6X=BV>;SHJ767Q23m?rINIF!c{djhSy_Y+># zWF6F>xHp;SRJxs2VA&m?4oK1H{D)uu_|(HUmvHmGr|XSEm)k{~dwR1ijiti5CD_T1 zLL?f3*qff^)KTZna>98+6?`9mhz!JqJSYP5K|=Br|ea-`Bgf8>s7jE$OU+U_Tjlqa&qTR-g!|mOD(4 zUbC!RIwpGgXBb4!Ud_<_&GyK&GfbC8jfm#FwXeijQT8+ zSaKj07ccJXr6P_}zQ+UWvBY&pI1?gP#$P(cdL5m^Zi(!Cy;6)dF6tTZTxW0e5LbdH z0kIYdNbymIbVLdjuR{I4(Ri{RbZ^)SdyTCTpWM}z3QQlHURwf3Ba>XxYQ0-NBTCTW z0iM^6I!5a$EIgNsEgH<%zqe-qoXBA0^%Nu-IfbxvJ=W@&dy?@O`xAaG)->O zdU`Pg%VF|<8Sdk|VEqPC3u-lFt!z)A>>uDl5VKuwr>Mx}h7=PqX3r2TP5&ek|6J1S z4s?Yg%7R#*Bu)|8V$xHChSSVQ`e|8r3Pmwjq_XlXG$nY*8U+a%DO2cEiqx*K?w&d- zm8_z$OIGh@8KIvpwg{ZSR&8FQ>!r1GM5c%4?o6|U3FesY0<-rsgW?4~b@Sq>9knCR z&nLDPh{lSfMR9AyL@J5RAKiuN2Sgef6gz!xR1XnFq$FS;8l)%aYwQ#>=>+L0*p8PZ zz5P{-0rtIhHSInOsP4}wHdJ4sk~ZX+5NShm)R#I)lJ|kOBW8t*K(4sbG2JO_W`daL zO=)sMLnDJ}n!8Y2U4b6-a zi^X-Rx89F$KfiuAM+f!0kGsi-_dmS-(PE+$5{40WZ~8WkGwV}?0FhZqzlR#QKt>oZ z${BG)($3!hgMt~LGSCf4WlUU4*P4G7eyu&MjN16M#UIgeqk{H>@|S*0DHfuj7%D%iDTC&`Q2j;=!K`1j26Pz%Wn{?S^5`{LWv)m%i^io3;aS~R#l1Z z`q;p(Nr*~2E#<+7DN#|iS~0}bmJ4Xk$e0!@`;9S~yP@KwmR-iz+yhLyw(oqpuZ2qM zT*JVlfB|_D^$gE)qZnt|qK^hCcT{JoJLzs zQb8ndd#M$s8>-fCsaK_R3*=i0O?&l!;Y4+Y=`tHXP^glPfX>ADu?0z-gK4={6L7yV z3@2JZT3d+Y5SaF3@5UZ`=ft0mvL{C8BU!nDI6{XRLh24rpwQl^3=878USHPW+IH#Az9Sb!w0p1X!|UVp1Fgv|R2OcU4sjl||hF6PCRHj^o@ zNK>n(<9vS7Ht9L0gF90Ag`NTv9RfxjD(Mbqkz>$>3 zXYtEshSMANgeL5Wks55#Jg!kK2^7ymqDFK}Nv)== zA`{mPmR?x+#F&Jtx=WiMAP*F14nGF|FV|#Fw}lvFpEWfc?l=4bTmwb9Jw6eA2cb77 z(Kd1-@vR0CxMGqTn7{nd>#n_DhQ;(zQ`l%el5aXxi>2y55E6iOFblGVuA>mG&rE5s+P~ z+W8)OmJTx=##UB8a!j=Z<_c?VDJWl*%hS+kts&4uwyZdn)S?`I{LeR-Dct!`l%f+lNMmA!rY;O(=9JG610p;qnC1tEB%nX zjaJ~v>cZ5z5^9ArpaUKi1ST$zw zUx+g#CYLxvp|vMl-xp_i&yVhlGptq+hG2K)tS(fGEx}2A7h+9|nGHyTB@{s_`vxG! z$z?M`7nZg%K$rj&QS^QPH#4~5N%fW+%Gr##wcvJ@k4zzKDeVATv>7*z2L&l(n!lNw zkR0^P_nW||^>y}qh8&yDIFrOm&q7aQLP|$az>p})c~o!1I!<3sAYBimGcmekZIvFhUlBYt%+rBmC$h1p2A$1berYI|xhEvyDF(y9zAjj+Rn02+ z%ab?h)jM#%uAoN+6$@up%?eDf(0lP^45xI~X-*7cd_zJLD(}HSUcvaVYrUOfyP(5X zGvTgJ_CC{E-FXQot|BUAlXhpEkk#d8H@ZDhM-#t9iKWM)2G%?!s#g!OtunR80pKIM z#8bz}lubWHy5njl@}* zi-Uk{=hvVI1V zcT=js`ZMs#ode3z@|ek9ubw?w;iCSsoNDl3u*lt!I?>>G1`rV!AQi#eC z+>Ehz!sLh77*e_R-b;83%vQCFM`+11!;!O7pFhdG@BU7~PbZj~0b5$$&iZ)b#7pygil&`zEovNVX=B^}6i?ROg%G zh`JOsKpI?1_@Ykx>~;&`u!HeE1L|9hbo-9^g%;SdjOH`cM1wetf-TI?XCewB>wygw3bW9Z=&$+ zdNzmIddD^kt*GV+Dm??TH`l$r<2E8-O|u{B+Y-;+ZPDDSR2MFV4%I!5B8rstpSgKg ze{0$l%`9RL#SThdrIqKhbPu{bHc!BYUwMv4z0ossxGBR=&8mn(xX}5Y8r?0IzHZwK zl&Pn&f3}7N8qJ5J+ky*ry%K4GrR~9fqav;(6mQ3A)_7A=+3SnlIj$$)^2MZqE^h3@ z_0XXE+udUhMim4Fi`3g1Rg`%PKD|Wn_Wmt>sUHqX**-~QQ8r1|$7P}s(n6OgKx5_f zkH3C;eDvh;ljFyy$HUR_lgGz*kH(|pd88}5bGRGMCPPnwX_~Hv-p8AyjP4C^cT@Fc z;Bhb_V{i36A^F6TcC-fW2$0!Qws}Bw<`C?;M1d!*yGx&bJodnu_#LXi$CpHZFipzT z(T0x_&mpy+fBE?7^X1+9A3y)JJKcVK{r=MrcOO3~517y!IQA}Q*UuoGoFZQ1dNZG` zH=2SPuB~o^m=wR3yK}>pL<>P){bmkTZ^zd%m93OGh#Ch`%Au%{zMMKn6{z*p$%P2L zTx_~BX#>*Wq&?I?h9(6o-4?bIiJ^yg@}86A&@(`<+MJvn&bh;ZD zi8=QQm#u7W%jO_W?)h5o^x4a^fjqACt-nMf;cSPxiI|By_aTr>AiMV)Z8{K)y_uFm z0;oekh8YfSh&d7>(siZ<#9ZgO#u?2xCz}F-d}rtdlm6B(mBDLi#-J8C%~-j{r5}mQ zjO=7a;$^g}@PGI+!{&+LrQgU!>mMM(0Pc#=ZgjNJ`SJ_R(_eMLAoSC|NjOB?LYMhw z_JWp>TYYi9fd$?o;lEO*J$q#zIOCCXRhV|>gLD$oZC~0Obchq`^4X!P`diqtHl+V7Q^VO z3-Ddi-T~?d#=pSc6fs*_yamt}J?UgRw9#?n zn*X~o>P$b-V(#H-atb}IfVEjE6R8tL*Dw=Pzj}ajzPVhwT~_BV0?`@rrFgHWPqxda zPiasX#vBZx51V0#&mE{v8zeDQrCb!#P%^I-kT&ohGkE%}L!{fjAEUe%@tisZ0^K+n6fI8(JJoX*Z~ohA2K0bY3Z$io6`c?Ag-C|5(bU{gqx4$09K&Ke zN!2!-WuyYrqMN!%ixq;NUZ{kVj8^4Jij8G}TsB0NY$ERKQAQ}tM$s=g4GS>6n_OLi zQ;vT|Yp0Df+T!SnGde^B_;QnHxu6XF)F2b@2 z-{wsT1ECka*a{pyArFHHfx8RV;FP5LUQPy_a$xxZ>aD@B#RzG4M$vp_neur0{N3XH z>f?tWxm`h;+$fI-FccJ1ewn9&gzcbKZ;=b;wKfDj}{_G-ax?fOg?uE+{(U#B#Yix7#W%5KWZkg!K z1^w_o-W`E0OwYfEDO#z(a4>n!iyr8o-vQP6x@XxlI^)VWaI6o>=NIi z9EyN_?R3d{(o$m}Sy?+Eek*FldQjHFsvdm5)>{iYb?SaMosA9+(uSz+D(Tvu9F-v& zYWm}b3gqUA8LvzU-&kfd-!oesiA~@KpkJT?!a+m9CXxUUyRUy-WFM;y&&MW0_jS1qK@_dXq|z%*R^21W@)v?FEh zY-<&VoEW%qynl>-o)b$8*MS@IE7n6d8Fa#8MxZd01sbreo9WZ;(*f(LnZF$O_U7`Y z-x^&!Wh$=MTvfcXRGThY7Rm*vzBhjRu9+Slx+7*Q3~eC(wN_Q%LhPH3Tp%g7!R;hx|yZ#6##X>n#$OibkU= zeG`|bbio^@OeWOeBDx2=O)cTDEa&q!K@1aX_@uZo0PXIE1_>$6&u0-6Q1TlT9B3}7NYvl)(n%KYP$YYr{EVFE-s~(Sy2S%_rT$mxQ3k8fH$)4%H6tjC; zWr{3d3JG8{B}q<;VwyY%xo5ACUqR91(rCfYR%ho6WMzNbUvMv~@G0aNKZ^2a9$9!G zcE~ich#ji(+@SvH>%qNVVrtv)t98q9{k4>1xYh8$YN(3GvyVIb$GPr6xVJ6HUfO1;bP4x5B4G9ZF!%P)Z5>D2 zsQwhJx84-Ju@eHIL}~NJTObIKus{L=Kz-~lDA{2g-N=$(iOM>6bN6q*&+~Nme4PWz zuC2OvT?vIbJ?ES`Gd(^1-Bp22PH_fluu!YQ;`@B&&!80>f#OKpjFJNZOILh0U&twYj)o%fst$&RE18KzzcA5-K| z2Es%HGo1t^f+6nxfCN@T%=koA1U7r4iU{IpyRw}l$184FpCVoHN)qm25G{SP9k4Fj z8atD$u;GbOZc=hVkSH$pQ2HRfu8)sQD@vJy@yhAnfe=t$Aevt?8bEf3_z2Udq)3AM z{GL77pz2cLeql@SkCo-NbEH zNN%AVhYNRREGfRmly71?sd=epK(TF}iu+K4AEGl*Q1NZBI~}s?C3XaMKW9huE5w-a zm_O7{Q<;oKC@Av+3K3ki7+y+{$h`&^#YvqLt_0{2S|HEQRGMIns`yD=oqiQ0Kf`$G z-t`Yq?(9Nz$;x)Mi2RyhM$OeX5}8Izdufk@etq;a3oZ`+`JaEr|M&X`bh#jVzMi~d zt+|0%_4*oU1DORK=48^ihv4QjB?I4haQDFE-CqRtGK84}9z8N+g&54!1F>-R^-K|r zyXqw`0n!|$B3-*OicNw+dnHrxdS-A{j+UbQwK1YKy`R%`4dbJw`l=~HUqN` ze1WsNF}=<`IR{*Jkgim_atF6v6D+{wj-sj`v?`dNo3)s2DOuFihZjc%c6`+mJS2J0 zeMtM?{r&Ft`}d#T-Nkn_@_yS(U&KAc1g3){{*pWt;tzNUI8{;2%oIkGGv-mJ+t*7V zlOqUEFw@>4Avermm#8oS_tyPa5-xGH->kvh!loQi>_s2gj2AF7zkc`qEuz|)3=u$i zNBLbM6PV=Fuo1eA#^;)3s0XTeT+)3^j_-ONA4KQ#>D9tjaw~XvcP?%Gt0A1Cq0?)@R8w=>pI;(CZ`|si1JRM1ykGf<6MGig@lF>IC+Mc%CcZ^8eoB> zoE}EPxP2>}+&^pJ!aYr}Ww2ahxI`ue1NjH=XcN=}j1X)hgCqJW5gnEn{>O^g;v> z)V_ioV+-<=)VPTxy*7GxvJ)=5aut`XF1~#8?soRK+jrB~Z{L0gBbwH?g4_kj&Qe-C zX`nx?6pT7%Ge|S)*F4kP!@m9rrW*>r&E<2PA65Ra;<9b!&^ z96J`?+}kF1c)FAm@N2NEIpnl&Et5>5<)}w(ZaY0)^if=6;^oi#_46xBePkqE*X#ly z`4d2SEX#;Kh^;iqm>)kK`QfI32z`OO2rUg-H z;&X(L?^l)-r3&EkfZoW`UwsIGE`J_;CALikw90pwW`MHnc?-F z{o@CD;8jl#pNs7Ji(fC7>#M@|*RL2><@8s4Cn<0|oU^|xz|Reuew=K-;hY@;GW~QpnlfFRO-WQ4_1x`tB!Pr^3W;Q~fKN>$Qo0ZjlSBy;hG1X=H{bVD8`K3~R5) zL4xH;H7qYwhBh&FIi2to`xdbL5HoA}PVt7mui&H19*4zi7reiZ9&X~A3uUQ1DA4Kz zY_J6$p(MzWb?8g2#je<-t96c_%{rq(=?(=t2(bPR-N&H1q>tI}pHZ^tKY3e_Bbc$l zkuuFS-y`E@GE>LwHqNtgTgMV)52eA;m^+6XN}kN9CIP?BdgC-en?Mj9n5n3aoh~OE zWQ7(s(Rl%WjKG=@vFJ>ekz%7iAtfnPwS8pd89u%IcWrbjM4BW(m2(g`e_toZ@-3{ZC?4e^=_yDLbd<32^rIRd z<|dw^18%yUY%dSo(}J`f+2bu87r`hH1xv6Gv`A_-y_^7vR!H$qZOLF%q=Z1&Osb42 z93}Y(w00^Uv9i(B4in<1lUQpipXss+u4Vdra$4<@k!#zOG*fgj^JZEIchYJ=`YIN+xhx z&l^CS(rCGd19~HGS+oE69^^WaL?xH@;yRzjlNK2oI*eZp(=_VU#%}cIdrUBOPofp- ztApR7p%D@oi>+hTu&6qtjn~?;UeX|Mtrny&P?i}wj%{Azan!R8&5;av%_o`{GZz2c z%6219;SNOr73MuzvJBw)uc-Zv?9%y`2RLg(X!bOcyaIV+16^}Kv`v_>WI8=Ll*>e* zVm6K7n(-Y+rZMCQYn7ugR4V+?Xyg@kd>cBCotn9aV`^{UcY0u(Rm;0gFqyJ*XM=WtrUzlrXdoGZ*8g9JL) z)5db9!`!)cJ=sm*q6~2qn@YN*Ek5^56RA8TRfK`T1%l7guR%AJ&9#6XZVrz1q8z@#E%Z={jzz=L$!OSh zg@W^h`!Oc5*NAS27SYNZ()VcP4yzHGiZg2WMoTwRT^If@RIS_k9{=p$&;e^@ad>TT zUe>~KdC7?>EM?|}>%=s*^=hNVZh3RD+E_Ek1?SVM9yaC9G4@KU38tZny`me$Y3l~@ z81AvgyXE@eevGzxNDE1g6G8_d{NH?4?6*FMd&$Ih2t;KAVwa8EdEZ`=nP3_>4|kmH zaCLp=7OI2>L5ls9t*T>t4=J6f6^Ek%TiH+WXV9Labv^)hcYAOm~aqH;k(_o<7*&RvTF)mtKMd54s^0aHx0QEo!7>nl+`kx`}_-f5F9=bnSxbtunM;piUVVs&hvW06|D)~*0)s2V+;?q)~`TzOE8Y)hI$-lGy^+g!m6>l-9y ze?FnN>W;&f-N$6ME?h4(J|88TJWHIPRr!Lx-g?pXgSq4&4wOoU4p0v+6az(Qf{)2P zJ^K6D?Yq?#^H8neas28MoABZY|Nlx#(5vm!ui&7eN}Z+>_=NNdASHK$zrB9@2fKt{ zgFjNzT%K=cFE3d&2i3n)$A9_qH+&!hV}CRFucLS@n*WgVho1e1!T&Q*ZAKiP*r+-VA%G?6J01M;q8SXrb6PEFOuzVoE(o&P%yZku<9<-ToC+T-Vn~=Z?=k>a&vm z<~M|-US>T7?bcn01u!$}A$XWm55dE%dI%2ls=uK#Haz-&?AY*G|6|8?@;_m0!G|gl zVj>k)4xD^d_+D^_V7022?T0LwT`DOS$Or0HP@O$)ldozLHCU5es~ zphnQFgzi7)aP0pXV%1&j1IeAy@PgxSi?9|>lqofzKQdNLR+;T9D18$^nnG~zXGLDI z;iKJsiNye}GK#D?RPaQvut00s zQ#0eKY2G~(mp23@#gu_jPBUkq2yk%5YJj#=Q?R~#wV&MVV8XmuX;GH5-KG`G?ov-@SRytgwBTZ3V1?gkhkqx(~jW z!X}tL%+!|fG_7O7^JVoab4v}6Pj;)}vD}KCE}}kIQ`+gCvQ7kf+5tGPjrQ;O*EK5n zg1#(Na_2XQ4mAX(MQYA^8<{P!W@bmU;kN4;EH*OjUoI{#2S*k4rGk)ZxRkD9T=6U| zOmmBP$tIN}J0w}E zk6sELy150OO|G9F@s9)^`+<#?fe>kY6IjyQ`NTb{s5{gsWM2{5A$6e%OUJD3k%1K2^)=f! zmfg3q9#KuEltf6O)9$AlrWa=A8E}GbvT<6Wc4Jb#H6U@cDiRhd2&YHB;KoA3-7LU* zlMu|aqclbsV{%}$!U0+&w8A0bnXCp!lsN61BagvA4~&*@RNrT=>G=9#>8j4Q`k3+v z9yP7*XgzfQ-7ajg8U~$`YS&L&Gbp*vnR_sji&cnMT-Q7lTgKQy=sSxYMdmqjio)d! zUJ?Z*v6+n&5|Sfe2rDv57)S5wxQC{hidNdjb7=6$aaTOG(;H=+9F8lcQUlUg%s<@z zA23?T(uLqj{)v3`P|s(tmR!#_a*2bh%@;KyIp|N%_vg10936kV-Q528{_gh0>%ZQ9 z`pG=?Gw}6Y1;zmA%|P27%elIH>&L&m|8O^8l27B=B#tmUd1JBrY&Z)L3_hmNbbu1c zGUzHGc(6gNgefJb-|=>u;#?=z$&|c7{~WWpH$J_n)6s_+*yha?^hu?p^`*A$_^YD25d$}Yidk8#WkxGH#KcGUi;lty`uh>kv zkdj#|9dB+uJRtb$FjDXX77Eo3H_vC5&oIR$2m|O{&`b}PwWpJ2iJOvkGI)!A!1M=$7Yy@=qFOd;Q7*f{|2ZVg8AUF z7b<;VxAS2l2ppTsbxC(WbSEst3{1r`fB`Tda~)OQbGrp4-2F z+`ak!ugILZT%7HCFkI;TOyYJeEMfhHks3 zwUwVM$H%LcsU@PJ?=Uk~`kXcY5|$HJ;ADC!%iA!x%26wb?J1F#*w{wDUr;2*G6RT~8F zqPGr+8de{S#?->%bK}9c&kz+19R)Ni(t{Ok&5g>s?_O@6aWDm$;#XvtzOs}GTDn=o zY(;r|ax$5eyLq|}&;(O=KXWYw1066#Ay9#MA-6QG|hV z)>p;(Siza9UOgN?ob4dY1rbfV3PRZyJ#xyy*M(pB8t(H^a`bWTd zL=0~h>&rHN-_n;Q{6sB=B-ft?eXODOC3Lsw5=c7U&aV(v?~70UB~lE|7l`I}Vl|L)D*`ww=7>C$nOLQM~q6Vwq@JqdduvmOFfE7JNY zlq;eEMt0+&%dki#Qp$A3Tok~JD`u?-ucK&bok(uW(m)1uuU2oUBROmtn`}>?y@I|p zC4bN{07QM#&+;`8KjBQ18|rsVGxwP6h2@l zqtEm7YP?4^+8G^D;r>vje2^do#$U-Es34$+YUF;P_NQol{S8xb+`@N&JPD^oH$c4u zISDL}Tp?BeJ>}>_B?Wzxmel>zAm?_e?mPqaY2xO2B%kHE9)5E5rpYG>%Zx%*7lmIN z#>P@V)_q+9>18}!B2*j#e%-wRX54c6St(C6>@r@gRSx%bNJEGdj}8o<Zl{vzW=6hUv*=raG*$c^!6HoBXDJh*GSu_aGDiELZTKght%6g zQ|Xw51B_MVq0pg(B8HSj<$)JM@*NztW*hpBt|!Mr_2SBEJJggY|BE@fHV9?p3aIJO zw1}Yyil{k9Fz|$YbFtZz(Lbdj?N;0@`sf8F=%RQGC_n$YGB;n)OTf{jv~&oj?mLSf zKDM)nsfW)uI3CXj`KQeh)=z$hmK=guz?5)OFJvudtw1f*n>8Sbyo`<+K5|1Up2lhP z{9Om6?H;(DJE5}q^>U4%q^+<Vq}p%Q`l!QFkVpibwieM;dXXLT?|Y26j0)M?qqWq>9R zokn@ZbK+_ZLf-Fp-vzo_jfKZmy` ztm3ws2k8`-x(4EoimwuW*{o&=QB8wSa6vJY0#831!a=wwH#3ok2B6e~Z8Bjq?A5)fOLi7|l&|;kseo}K*HB7_TB^yg?o~uCW%sn&# zi>iI+$uCgHN|!x3i%k+46Qxg&`9G%mrV`Xfl|y_3%0n}9i_P8hB?*?hyFt($#iOOw zCAYlZERnl!vlI^z4MFv>1sYl5Z{{2zH?nyNqzX$^;}vjVedRF_%L{VbRt=MWTNS{* zf*UUwe-;Hp+RdY*wsx3$vRqiVY#0wY-fgmgk^xXfvc=1p0p3U@vB;Pa=#CH&VTGLw z#BP9^O`#p+SojIR-Q=U{=?uRA%j*x84-1EAYyHp+8bU%vgoi*R;;Rcb%2jSK7E~3d zi_2OIV~8c+-BVfGbpBNb|4c-Dz`k*{*yiKWQ`g~|#?SJZlVw6q5(m>24fo&DSEs?Y z8m9Rnkzw@Fj!|eeZdM?5CV!oaRwN$MwJt5x=YMI52^Q4VCx;)`z4UI?1k(d-Bf^FT z1F2TAE5H{(-BNABSi+>;j9{lo$}Hu>@X8d?>oXNM(;H|KIHmc=yeLz6;NkU5V3Jb5(5`5xL}VR=JJms~H)bS;jMZo}YnvJli2;$?ddv_a|8H zZf2N%cew;JLv1?eKcwwS(+dBPj*TOd?=L7CL{`@HV>L^%Hhz63CYRBYVrBc%`-dZYK$KvuFb^cZQVhauU=Fl};N(M{;Yj*IG^i+aK_r-iUQEouJWIA!*Z43R z*u1s4{wn>Vg#+G@e|rC)3Y3HJb2qsA@uv^BKY;1wM1TDaJswjAo!|U%@L%=K2?Tql zRz@C@E_9Z_blV?_2jeaFIz--i{M;vQBatDH%Q>_k^OnRFE>)LjNYsabKC`5%W%o25 zRm9sX5S-o1D=`iJTa%t#QxKVvszzZB5f&KbqENS?c3PnfSReLv&fON4m!!l}a43cJ z0Nzd3)w3A_O`Tl}PTx44Xld9Tr2yWE^AFxz%!O`;b?63c?)_R`rRom#3FUw%b1w4< zp1;_E*}z}r3x%XK;BOiD%>5obBsxUAB@1$)@IpfKtQ9tG6K^K+*&j|f!~-LEFttsm zLkL#&f!zQ#rN$IN+Z#37_*2tUPzmD-a8MvniOb5fA{Iy%%f}VfZ9sa@e(&YZX=E~y z!S#JFVW*t0Q9pF!-x@o-8NE$J0{T+}&+%;_@|8iOz;Y}8p3vNyv}Z88l|oS6R<+;n z;gPui4~mfcyZv7ri`cfZXqe3vG3W5ZBtF7J9t9A!{lNL!U>a zmsiw}!4*ma1*wAa2fhawwfuMd-7sM#FJUEez(kcSFkjXhkQB^st}UXQSV^Z+e{=RtA7Ia(U6;1Jv;`S!9j8E9B>PTn;KQ;<14vuin`0&{QdCV7a59BNqN zDo7ro%idM7bYch-$?dn7lhMOR`}v!9Z$AD-Div*v>N1c)`LFwNp#^~+;oyf52Wj*S zbhet#8m2L7?WJQKnqXkR^9;J`z~eTeCAd*Hu%vP=?!3!0iy2Ta<4z>A_ATDZB9mo$ zfflA4O#E42OrYSth9L=Q7{Zkv7peBv)yChRKJ_*>2>;O0JY8HT2NPEeb--zSAO#R* z%+<<&>tijS6ULu6bg?BVu2irG@-V{#*3WO6nJFQ9ZC;kmi?(wOQ+Fa73D$JXVr^0e zrd&SKYDmv*;#O`KAAyPMbLr(blpv!j<(?{bX0`i5CZG%9WHY_Qp@y_Cmp4~uNTBHi zlhQ*GcT6s;t{X2@_2ub8_2qh$k-16_+G_-V!qKwYgGm>?eezS?qR^juCIfXtNVQN< z&P_Uws2DTGX_%1=KY300r!~O*z_e5@Dd)D9&X^t$qS)|Y2buMB;ZgjeJ8&?Aq;jF#SSJ7&a#k{q?&NfWOmbt{Az zM-Q%6pXnB%m=bCH)T8j-swow3FMxTSJl#!lZ4!022U61pu?b9v{fKSn;$;WiOg&3Z zw8uoP3v}66pXO(NdqWM=8;mC{(r>xoT3pct>sD7Z7k?_f0pi8hkNxnrqMm1V` zi;=PULB@=$*+6YA&44p>^G~!AYDip1oQw~gBRPQ#dqMbkAh)tox6>>#_ zcdr4Rn!1l?X_3457`clN3rTQ1_?1Eu?{Fb03#ibslY+X{73Z_s9`_6%AWLV1`;g6s z3?CgxzLID!SCZ`u6%}gk%2F6fWvIDLp&&J;t%Iq#qpVi6G!;6_JtV6oJ2gzGqPcbT zo5yBHD=n*1X3n-iiF$vM8e~|)yr^s9`Z;>bW?s7$?MjHAAf?rGdc$Z2R&zRjNq_nE z*N<;5pW4T}=RgEL@%fOS$f%W*34S!Mg@UYe)19r#?ur<)q&DS^{XL<4R~3=Z^@I)w zDB^MnCV#epm6CZdq58t+*j%h6Ta*x>)AIoK`+gyTw;0Y}cBaWMaP|_;wc3cBtU^9E zl^G1{Fx`rW0N98F?6N@aLjoePrl$w)1*@XP%W3wIVbNF5PA_JOQzaBXz*1ZImY0!a z{E=lB)P{+Sst5pt*W4AHLGlPY28v#|slaV-^tv$y$Pv*$g-+A^!O_>pFNf>X%ct=# ze84@Df=MArOZkuQ5aO&(mB=yshhc0hRQa&M#+nV5bJRWrg!pDoXfNnl(r-3MUxCCj%`Xsw)Vjo3LIFp*c3fw|Ec!*IA%Zp@cz@YolN}rl?u-<3!G9N*UyrY9|);Z{KsxRe7 zyZsAy*N1?RCj&KBbDw;?ueO76;2ETzwhmw@-RDQ^JX_}r8UTAic>({6GQ$zB;N>(@ z$?LsLag@{hSKhdhrIwvQbIpu_mh42A)HXaa3rm$!#bgE?V>CC&=GIBsCWCKWRm`x&!tf;SLLv!U z7c%CN)XCuCTUWM}FsI_9jknkChQYhk@-kttmlf70QmO0SfNEQ~(mzb4;FG{~p(wma zvKW3>u%WnUa_SzGntCe+G97i?-8uCIP*bmihen)3x<)hOR8adc<|u+wf1U6`E14jA z0}m#hLkKUX+9K>TnWJOev7Puly1XdvbYl_k!OYVj>bl6`UNyAgR~GCsT<|E$RQVRd zbdGt0*0pNo%^4EIK)W$of^)W#y~}YpjBOPx?MK!re?-%7`r)@x-<_>=37UTB2^xV3 zXs&f;c3$paNe8Nge!NHO&Hb5jIUPHlJ)P1^NVHNyFXif(G(3QhrNDZ&Njovw3`b=)k_uvj2^ zDsXZ5-^~L`S~}zyS%Z8@SjL;}D`1Nhml@($AIOv-xg)2$@;JsmP)U~DZ4LT_%G0B` ztWV=R%e>wZ|2ZW78eIYrGp;t(ZR_!w;2d}0w#r7ZTWLy|9w05EmKCN%@&oHfhfPaj z1Gp(>GI#Pp5ECIv(f$P_JDW_OZli{Bj)XCNN72^z+n0TNA2-ZT>vkwN8`K`HUZL2E zg4!46Q^VIG%}StlPY>T;BozDM$GiRX6#@((`mhOYyP7o;o8+62SWHJwE&x?8BohTKxqpWfaLKpJ}iKqM@e$sQf4 zqk-fDhG=+V+ct9IY2NzLy{{N6c7eDlvMc%EbobFu@7#fuNl8R2EZvhbJr(Vg{>dbv z!nPA0LDePA63++=8eoke&P&l$k3`#bXt)k2dv_-?eW;%nD*<&tc+i#o<^hp{u0%>? zo=Ax2C{RKi;p!xJCVtLd(jyWg2@(w)cA)Bk8YytMa@Wj6E6)QQ?Xj03RX~4HF^u}a z0_sD=d_FnIv~+zKGG%BC>4xWGV!UWHGppw3z3NENUpZ zr!yuRx{m`93A{uOqkJFOrrn)t2YN+#*z%b@lNCrG+7I0m;c30HV+Q804_ix_rqPUG z7dx&Eyyg5wnIom(l%RT4A>tI7uwsOUBmI4JyJU*p(PVQm{0e^{PVM)%KLgJ{;*g+5 zsPLSE@q4!Y3LV&+Q3L!JxxsN^do?)v;?u|1cZ2_R{MF!p4e|fc7s%!L#UDR>LEAZQ zWVXgH7HH`;Uk$!6h@LUfQ_u;1Qjt)^-DDCc>|5Jta{}rkctW6d(*^PhE4?o^?);u) zgaOvVQ<1w|z0kV*?~KpBM99*J_dtdrmyfTVK@)o*!m0y9f6@^*%6ahd2(>K%HmS&f{__lD+GlX1I1CW0&g?;;zbil3PFT?}Als-4*xko49_Zl6r-Q0Qr6mJoItR#nRq#r_ znsLt;HN-_dX17V z1ZnI@>STk%8?z(CbKPKigtiatec;KdbIdi+*NC{FbA%pF;Q|G664zf$p3YD#O-xUK z^?vcpE0mxsSZFo%$?K_VonVuxWI3PamnaM4IClswDk3M8(S0+(!H|3`yw%!j0$tS< z?(J1f;d-xH3fH41Ks;S4E?j4+b?qBFC0+ZPQQy|1&^4&DiQ>sn$rZ7Dvim)evOgC< z1JP@tK8AA(X=f6U;>_WTN^sudE@ya%o}CSV2hUeX*?MNox^!zNwQh}> zWc|BGI>!A|ypi^TjBQsa(_RxF4lRK+E=mn!$SsyysA$>bdSz+17Dr33DKz>koU!Yv zD+*=1wkv5kbJt1tjVHr2pe$eJzyN7}QfPpXyO2m=r{YmV6&hEHiW<26nbF`#ez}xA z<%PUHKZasBSAbHcXzX`0PC12uhhi2Qnv~GB=nyefHv7F)Hb6Gn;s9Y@xF=sihUylH zX<1w7%UP!!D^!U*Y$I#;e(=SU-;IAa9E|Aca&r85aP;B!?d|K2w_ko?t81&`{H`~& zW~MwSYXQ~-oQEPu*3(0$-?ytds2%>!abTxKPkKV0flU{EthT5HQ23y{p+On{jQNp% zE)}TE7kubYhMEL%z^>K{SHg>woTxV;#K;pulq%m+vrB>WRQfQ81uc@ck!)SKW`NHw z(xZTRW!1xEfl(xlI9?S)1UA@0+B8L}%4qp~?4IrGv(FPmwUV-CKfyGd?AE~0t~jX~ zs(CemM9E`oapuR5rUktkXxs(FMCLf0A1tU$!yr8%K78r??uTToM;>=@zxbOHruc8S zxw8elN~ZQ6DAPbfl!W8OyhPBBUgkg#+)E+!1ErAu-E+@~aI;+}- z8!kmga68?y0?XXSchZ{+sId64L*AgCW^f>U@rF>X5Sp?!ws0ZP4Mq^lxKe2blgATD zIZyGFwSpBH-~tSe>}m!#h}~wjWC4gy8Ve&2tXjonwj5Bw*f&5&Zm+pWhk-7A>jJB# z8(jtb1T(yLvGobPl23zP_NP)Df0p?t(8 zuMg4jF>r)Qhg7G79w)kO4k7MoMBf=Ly^-BQH>0aq4f!EP{B|@oXV=d`L@#ddX765q z_x2X#VzA$LuE|Zx#f0ffK?$jq5ihN}?aS0u4{BuQto!cC$(>B(4)((%h_C%tP#$gG{vRm#_6Nwc%z;EK4%fS z7cW?j`o`*CbN{r1zNun3F?WD(9;p91T!67)nJUCty_>qS*oJmc%o_63j?b z9M#=RS}MAt7HPH?kNXmD;e@i{c&=0#jD0~2yIL=%5)s|VWS2q{h%tJ)Y91l5QUPc2 zcX(25uNI~+Ggc8voDR8-m!NW^SRs#Ms*6oz>LcG*E_Ea}veeZin2%){I8wMei%^>r zG8~brmS)@uxn=boRbSkI`j;~F4HV~!Bha(eqB>bNeZ@7sxAb zPYv>KHz6k6BWacAe~d(P4@nb0qn>88^e#zV5S-}f+_I`Q%;o?{icld-Sb!f!S9xp) zj>y(|T1{pH(u4HXrWrXPK9P9pyfSQ%9%H_k73OTV(u8fF0jIam3Sa#&KoYSNP%kG{ zJfA(6we0Hk|MmU@bL;R)1>xxLlgDm~y56w|D0lYEIlbF6!E$%!t=uChTKd$2F-P7i zw=F3iZp%=ze*p{ar7j`d-yt?r)CLQ@xkAEV=o(OcU4`SxDLOm!9W6qs`i6T`2QGqr_k^FcS!^{#--%ifXzzv?GxRb)gYIO;uu~Fe= za!mJ?eA+;_0?n_-fTSa->7?Z_BLhpdAo0FiSGe6dt4gS8k}fA!L3^GM@V6rJMF-Bd zo@KMwnYRv1v$A3Rn?7gV%Exl-geGy)FNb5ijzz4T7#fQ;{N2g%aP;Ky$)l6;=;ZP6 z6!oo79?s>$!L4p-e9GLfU=+-?wj||)jDompRDz5MSiI%X4#$#kVHYxqjL4?MKCUo* zXhOwT6!(OOc3hR>4_$i|h`7$Im|PFYEn*zO48n=gIX=?`Q*C$<(Yru-7EBf!>g9l4 zh$JTSod^Vos~L;PTy(n$al$$X&yBdxkFOG&DN?z^YWWm(8}&l*=3K?k$%$VqoTWjw*4sw|QKihX`?eJpRPQ zOFrh8 z%o*MXcaFmxu7)9;llvrQvB*gNItWNQy)qJe5X@Y4MZrF-GzbRnmS zXy|iwhe>ah-m#jdq;GaaYJhr;9%Sdw&~>-b$}cjbNAJ-UAU#ayf2D#g5U&C11~W%N z`pawq2eeBnb2D-kZC~v5W^w@vgsi!QjByRAA4(H_kQu)#)1u9oS+t`J0t{O+ zzUa&BPCs0Gzcs<~%()WGjYHAWAoH>1ksoAJJMg4xT1p^H|6M|9nQBaeoEzC6Cg zjqC@N?@lQZ6|%cN-bUBUQUpjJ=DrmN64A)DqJ)9s!@D0T_zqcZJ3yQ1Fx$Jho0|H> z3R!%2QEi`(5*>i$IKa*P>HXk8aoUvpOr!`2b1-(NLgz{NEto1!0ec{_BBabCEUJWv z3|f(Y(QP-^aL7A9vR9UMy)kgDfZLS#g~i6GK)wPI13NgyCrea0UtBQa;h`KY5spm5 zK+R!H%pXdom- zB<-nSzLW*U)&fB85x0reEI?hF?VazT+WkFk6>Cc za!zi}^vM=&6Lt(ORryH8guu&!`^{XYgYcs4x!drw%1(zo)oog(iZj+oWlRHgTW{Ks5-lyX zHUf_mRe;35FbgMFH8=3}_tAT86Pha>E&Xzvg;i#Hi4^1Xz^gBI3{p=_0xOtGGlZ{i z-~DO(+)NkLMM1i^sA>F=DyqDo5AjKnmeXUYWLI51H*NENg&oOks=L{>c2XapGrm|_ zg_^7+-=@ya#zmnzjW(i{<%C*}WfNCjFHy~!P3wkhp|KV1JS0J*o z%F=T<!TR zK?qD|;`P-8o6J)<$VE&9mVN|uHbJJoGQCO*)4NDba~xu+;jSTRVD1Xo$73guI#ULU zKrQIoaSa4K2xhoR<;(02#TDGl7j2|@1=6#PU}houNk=JSR8BK#VxA?7hWgud1Y~VY z>5pG?3qpYF@016;6CG;U)CD{zOlC-dcl2L&OD?}iW87}D%+yCt>p9jbZBQ2$6YXjG z>8oPKk-Vj~PgEdvhK9-G7Moz}@#qHOiv{^jIVNZM4h*r88{sKy`a_;?6^C~CQwQS3gl ze4q#J)rxOsGm;Og7tHZ=V1SMn>hJ+^3@n;ZE%Rt00#k{Fb#(|V`a$9yGGt8uB#k;@%9U!6Fg7a-(GWX0n{_a zI5VI3wmq^+h`Jiqm}KBiZ|<3G`m1y>)EROI2d)dDjn}F$y-oj&Q$gOH(6?)rKJ$NYpTr5kv_-kTWEQ6S1+y zGre$}EYT7g72G)7|Dc$fT`CvART)U z1McnN2xe;3sy0pd#a-;+tUr4uBqQ}Rj5L#S$4t@yg&MX}Iyr9d5bycZ>kqfSNV*8w znjy)smlS7|=+o%XDaFaCPAScf-NOW}S{Z8oci9Mll#yiNZ8Q`?5Ir&)?=GQoyM(}i zbdZZVohG-d;&euYUQDj05nY*sNTMfVmY32*ljsLteg z_(uY8dBJuYxfIXY-6uq4nC2(ZSVa$nI5D>WY)S@c5ly8 z!+W@^2LD9WJ`~iB#%4%^FF_Ej%vE`fX23KnWMCp!z*s??sg=H#2bbKhQOIDzWU#oi zkXxNXIeQr`-Axxu#M+?<&UCT5*=oIF_6yhzV3N*bX^fPaPQLJ$EvWLPk`qH*I=i_D zA6}k;HUSFsc)5CN%E#2wm|VwU#at?ta0Suq6fcxgX2*0-zK#9FJ$NwizQNO7VbxLJ0K&>D_VM8=?NF>n=zZ4(VQe4=C8N) zJsH?wyyedW6-&Fp?<&ih_JK{0Y854Md)^2IX28*Y(($dZ7XEi!UlP7bV`@!^|ug#O|G=nJEvCXt`b-ABc}75PQ= zfi1M8u<#tXu3?3CO(+x%VGyY_(+}m8d1#@rSF${4Rw3F#5doi!qQV^rxJ6F%oBX;! z9Ep>2>7r*o*4b^`6}c(`;KDq(q<{rZsIxettWCvKKF*1!LHdJt!<8p@$J z5@Q;#p%k0|tquH^R8~_)X8(=?fXw3zQ5h?KD_zi2k1A+ ziz%NCVYiwE3x5d=jaEWo7T9_5^k!jq6+tsvlThv08Gst( zb85%;aFmfWl>#$IeU-Y$G@~wq>$hV#>|-uaxq)m-gATqF`ckE^KrB>s0jB|_i4LEf&uI-PL$BAO4Km*4V}H#baWm%QA{I6SYtb zy?7_V5PCj;aetTeLGpW?jxKDDviZ-?#(oYf0reQ2+<_b_v$+{P%jW#o0n8CcN`!e4JXTk-xND|uO-QPU|zSg=a6vWZHI&~e|!HHsm9*k zA~Vd#+rNEbdZN%xkI7S&<;nt}*V{<~`oJ*a5H;Kcwk0LZ>FMdL7NOM`A9e;R{)GT64|*d-n$^iBe?om%V7tf zm6`*xk&YBYjTG}Eikf_fSZlHmTQ~1}Rj$S#U6y}$ndUNzabBI@AknaEAqIL4vQr^B z9sWGh6z8Vz9BftS94YG9Z3W$EL57ZQ5puObwDh#t_Mbj{yj$MB`{C{{`_tWh?%1c< z8@rIlT}ObgO0u)#wVY&~B{iQWr;S`siJx(08jaTVd(L2yuDr!F+?i#UYvTKN_ceQY6Tt+A#8>Fq?0 z<@@jdx}W~|r=#zG{1bIk`uC52v=#qy@NZ&kTuidSPP^s#hF;Aq&;GAvm-9Ct8T{Gw z@zcyb(S4Po<=Do-RCWX#0$Aeh;u;m-&M#(oS@_73?tlFaN&Q!naPz4TSr@ix98s1k z5zb>YCyI}EYTf~AGF)`J_qY^`+3iv9rib-zGICAEFw}4@|6ap1n9S93r#VksIwSOU z@b6%d45MQ#{qxb+!_h;kHG&j?2N^XQ&ChBjc~7I2{1)DtD;A4`v3EUr#l-LfYBPGS zo5KA19AW|f*jgZ%wN{rWu)ZSYe?&@kgjht)V8!*?CDsj2#1d@(OXS*>*A(stEq#b> zLc&LLm}xq}3gL&u#`dC6Frh^*v#v+w>)VUEOk$YhXJ9{IRyP_=*9eXaHfJE~&05$H z4ZVmO0ePXNL&JRAJ^PI})YT9U+fqLYCtAlubJ5_DkYg*WK(HF5shxsJhHqwev4{)V zy@IGhO~L-f>%ZQ9`l-ry$m_@&T0?+dR+uN7ONPH2J{cW989jdT@Zs_4V<6$}*QfLG zs3M*2SnoWY_!3N>WsF7sd{!LjOBw5Dp!qYK_t!D}f#?cdgY1K4i!gS}l;lu#C!XD= zd)UhpC77NQr4W=S1b(^KS5R?#d?k_DOo+C7nCtAA74im{>GYiATN1TFy8JrczJe!oCk@g8o-$pgwuOKii(~pMwOWOaY6o zi;8fL&lkvsgRJ706I3Q!YTD~d_A<-EQz-oN6R6DrSBc%gJQ%ZQdPaNEU3f;&BVJ?P zU6al|#?2j;nzL8yW*%E;Mg)%r8fY#eG>9B^c3Qe-fLl^g_g|+#57Q6VIZ+`wj@I1e z2;3!8$n!r}pShy2cjXgI<1KLcw71eDH$cfxx?CT=uhc4WBIv#a+6Zk<$86dG>%~c# zO03J_Zl+)j@;gw_n-1O(!@~oP#McBENi5Kl)>vM{^vX1eV$mxFhB-EK2EnI$A`iZ{ za5bO1>sE7>uYHgMWLk6Y;K+=ZW6jF zuPD@n$Vj4-VERNueV&n;G_o?m+*}|7qHBHzxm#%%=yF4GgKx@;cXH%S&o|~NTfRAf zd)TLnPBd#*!}MYL9Ivz9E_Dr4_tp_VUf?7YM7+~O_jQ=!^e#8M_jE`voGcNqglHHr z=BsNE9hBz1e*f-Puj+%r(Z~sSs9;>UXK)6QHHk|jo$$FSq!WgR6(I|6n!KR>Ay>E* zsIRein&!J7rxHw`rU$ybVQ*BPAh6G0)!X+x^3W2J!}~`3&#i z<_;f(U71(WA+9W{g13)-H)hY};W4ljk8BxFM|M)79%v$7=6iaOcqOo=Bv_GdauqV# zka+PwbTnz&HXGgzr7rwsU{Hllwzw#N8JKuy8+-s+pL;w(`@p8PbRDL>HhX6CvoWSL zDRJa{mL2C!V#k?A%$x)mrb?HL^<-(4e(kr=AkkL2V<+W@@HRVfr|Y^$`_}1t+GkGN zYFGykYxSp6E*~;Sb%75|N>;rRo3A+RW&Hu>!j9+@NeGrs{-ON$ka*RLKp!4YPO&ucb*7veqR;V5maDN& zrQU!HJLXh~>{c)h(O+UfO?7#JtB4dmz~3!+YTRO*vwBoAg0z;{=BQs(Ban^sGCrR9?gEGbBj39*7TU&--D()SZq35@KFVAX?35$UO_x4P$PCA~!8u z0J=R2VjK?kU1D5AbTDa(dsxw0(U}nP#VF(Bi~YzR!LS?HH`Wn!6DsW;lXvW1f=%jv zeTM1lwRoQYpjC&~uspXOWz@?WCs^+8BAvUNL`y3x5|zRMVXLk$%r?VQ?e`qE4^B5^ zxomAH!Fn%tDyg=49v~!_{s*XosoIPF+fzHbbHWf?ixgzG#>`0};Ka+00nUV#BEGK- zVNVaER-T5rS9ndZJYgp8guhR;G+`c5f};`Eq-5jrqTFRln0a3 z7LmK5kyo#UW$Blw0^upqHTmwSw*K+W-2t0#0mjE|5fbm&%{&(Z%a_;`8L_Ce|E`2Q zJrJQz4x@rOYQe_tAr1q>wR}N~Ye`a|rn{JJk9Vta_UV9e+Xmx4#{DMY1k|)kHz!{k z;9a4c%a^E|pfh7>Nj)kXzqN0b3{JBuSbr#R|ML3XyW6)&ikkE^k=vn{_GDnj zI}((TKp}9agelG=6|#usNmC!)p7c3|j&}SQshw;kWOOL}l{qb!w8DVC3~iF~7U4C! z&*&p^!s#i|((>zyo3RY+4MB^MdZJT^@s&VbT#o1IgvIQYwF)o2Rw2&b43RS$)|-L% zh_uhB_XwiA1y>zFcCm4V+m=s{={O?q8%|uA+_h|Yo+XHyF5t?9`C>YXC)|Y$i@(_+ zzvd&+8J`d-+1wi8X@*72a0j0f&o3oqpq6^ID zKWZWS@gLqvbD!;Mpv7DfEwL@27fiZ5Z}a5ClQ~h`Gt=F+Bh0l>ZIuFZU8$AEVkq33 zM=?P85n&5A?2neAKUO)E=fkcpIfL{xdf}S?#_`WHDWuF>BaRDI3W6+opMy~9v(Mf` zh6m=v<@}5{G{_K&RxdmfkSLM_ldjJXw1wujhg|7tpFIw%Pso`C;&8Kd;Ccf&XB9b* z9|OKO8uH6%koYChc02fn`=I&*R8gv@U+qPonCGiyz zkrWe3b66`sq$mh%@!ni7!nO)ndc8QoV_-$8SS&6Z9fVk86(y!u=ScbnEx|SNADej7 z18};+jfw%EltZJ)kLwBxmAz{44+LUsONRlAx4?kq{G_;inZ2^yKBhbpP8A6|nodIF zGYBHt0Hjv7{(!D~y1QOL5II15xWcV!c3`!6+9D_3n427$F zuXMCDpDL162KHO77LNfxDM)xVDOXiq-3F8i6)3*==FkmBQ&ZqPt4ZBSUg?vEH4F^w z1)QR{H_X%E|M;@Gt;(216xlYxq+Zhon8)ZENRRJ~mPW|$f-#gaSaa%OQbSNpo#`ii zWoRhidy@9FxK8AESGmix9+obxmZrsX=!}h(kCtAWkH;t?1HnzKsYz~3trX2~z7aDD z8Ls3}zx+4yU0;6#f3<(5tk-*kj8TcLjazsXH`(pm4FY?9L$@+=z2#$mBgRgnplA#n*P&(qYO#Q2#?t(U<)K$12~ZxAN%OtJc!1Q|*!}!2r4Zo^J#hnilLJ9~SLA{& zhyA!S?8iZS-2*M?Nz6Sst?e_=HzcOfKCiq|fU;U-$JKlwUY^wfsA>zv6@6OppGa{6 zQyuvJIrWWDGm?RCEAO6}r!x+Y&5;*^x%c zolV0ZIWubpf-(mht9_itY9BV$jE3hbJOYuA#5@kP{2m`3nc7p z^AybgJ^(qPn6rn#+bV#yjH39T3A zvt*hY-|f^Yaa6UqYwjLYVNcFhE;l9plX*ed_hJ&M`s0MtZ)gL*q4H41xln@iwM-_n zT&>nDne2KL2(ouyn&YZhrw8)Q3SK zb*vMzl*VO+Xvp$zieb8q6ZzP|FJl_%_fy=R_s#6ZMVk9!pxjadX`IP*?`n&L*YHKb z)xi<3*6|BGH3<6cfV)PcU=$HKEXbg8Qi7+`=_6%mu>hm$dXkPt`_=U1s>?u3xy=O9 zxWMNz!4rnMT6Yv74Nx~gWjN{DiDSmF%za=#FGQDZ(AuG_JX%~s{P%7#Sy~1t#Yqtv ztiS$_%RJKw=E!JDilMtMM$6IQr`O;A_4ZE~%U&H< z4^)hcPX!pQ^h+FWYUS&C57!V>895mk#)j#uvh*4RUjcHX#M}3kn_3gbXhQ0dUj z^#a-{X~CKdWC6IoNuJkopS$GFTgrg7-`iyM#bz}SCF}tap?X~-CE_b!PY$Fe3IQ$Q z9w@a10%E~uZwL2vQ4cH(cY!ea_HOd&4*T-$``0}0({;!Ute}Y6%s}6MW86=x&gay12{OQke`cg9) z5?6Wk>u(nCKHj~4_x&xjky8Xe@n)V}t_xYLa^R(Xiy1aYE`>!)^X)tURaq7+r{mSw zqZ;Pl%5~KtO-tY6`dj#PX?<~ETt}k%&%hsuFm0BQd{go@3!Q-ETf+28!w9ApdB;Bu zEoq=WNFXExp#CGV1B)8q9U!6-XVaCzrQD4TYHy4Z5bLU|n&yb23?a0mEj}ojYuDR@~kNE$mvbpb@5EW8W z-(pj!X+TW*YV&Fj_c-4{ZcuE1;jid9pxrYhJgzONjcou^Sw{$cwDek&0YDt3<0Dbm zZ^7p9M}+6-hMICI{TMo4Uqpem^V>f=$pD*&keyzoxv|-R72Aj_QJ5oQ+kcf!5l84U z#D3o*`yS)pfbH;SfXsyTO)js;Jua`+dEdH*H9(C>zQg1*A*ADiVT^4qT*Wbuh%X3M zwfxkD>sh5%v~Z#&8B9@kcpr0))z9nep(hfcZ(pxA4B)FAi7>uoa%nt?xRkoXI4au% zQ2ZeQ5xw}JX0XbXfhE%DyW}Pn9lLYFjM`HhE7MO{Qm?3cNhc2Vp?;qV;sMT9c*7zPzw0=&Cr4 zblFH$q^l_nla|=VRxo_aTyIMSRJc%Z!!ynrC_aG)U3-~PT7o#gzB&WZ2gBs$Zlft= zu%uF#_jrJiFm&K9ua6+F%df{UH9IKz>7!gcP=hpT(vcK^P@7lYWcjK_c8@geZ2Rfd zd|1ShmW$Vs#t!tbiFU6bH^f9sW1v^h0xNok%tgoW*VL?z^szDr8N07nLx&ogBX8GV zAzvIx()#5zt{WuK^b=-@=Q3LXT)t}ZSi^Gn2qx<5o?yAVambOoD_Z&l7)>I3?FMZ-yAwFP=$S7Lj76aO4TL*V(C@HNDrF3?CtgO5?_}S(K68+8m zf)yEucK{q@`rHFfU=XLrr=V37mPl z*`vbZ{`|$nm|8YiH3qJMRrLi4tZ)_g>`$<9NJWn;!+c3+g>Xt`sPEG_IonQNB(fkI z_kr{hKqy-QPb<}asP0X$j5Fp~?*fE3^swL?uzgyGpbDf%iS@*3ba5adS%B18LIjQo zocA!`8r6x2Z50q*z{wIlEoZ4Syf9;}3a=A1@+W(6Kr(ih5?zAn)!XSi>L{T2fsBF^ zK36@9FqWw`qP$cv6jEn$kxq zn*n067Z-5ghRC&CTwGJV0$spky>qrcxzC9w0riD03s_c0@HL3;hO)LdL0*w94=yoe zJUyH!dMoe<*GC7gj}Kfw0Uyh$6jx8w;ImH|4Gu$#Wx^MzzHaF2hfd4c3VjnyUm945 z_+6qxA>Nh{b=BRThoCnUD8X`fdl^J$TmmLi_A)_+pF!px+g+Ti9NkMX9!#v<;mulK zLb8CbsV%zUp~-U{Q6>K-(O-|>p@1~~lCu5(*FO;jXR9ZU{@YI+H%}b@x1R{4sm6Hn z-+to5=7|sg+fRJdJn<2pNObUpIyDUw&6KF|JRsKjZ_%p63@Lug74k@JA_OCMMe-1A zZ|NpcUKfH&3y8NM#BgrvRBvROXeLmLge&#`2^`V|k#DsVue2 z-K!qYuW3R9)HE8aaIvHMcRQ^OPz_A|rS7A4Z2KZFT3S^cXfOBm@y!Gg^g5F3snItx zBEqFe1BzB&H>gf@z8gGRg4_B%I;{P|M;Dqgd!MT(N@q5`+0VtkSqhN8+2+lOp(7KP zUYCuX=$+{Ra zw?1a`#uD7c0=JSBm4d|VWtYLqFTA*{!RSdg{K99bay&y6)}yc$62oD)l67@9*@#l8 z2o8Kuk=R688}h|M5s3;~^P#AVC3{udrh~2%@(7ymytrQY2bJ^Cd(hdWxPxB8=d~j8 zz%2yAS~3oPsm(WBLs-wgh%yn&XGr{V{Q(4WE&Lir%KDDqc|D3;gf0g{7)N4^Gzfb3o& zIU+)?%L_CMjXonmje(gd6{+(-kF?6j954NmHg?DJ&s7;!jLIp!CU9;r{@Z?syhPd9 z<~azn(GZ?T+DY5tMhT1DCq6ZWV#Esa%g{YdPdqqA`U#s8s4dUnXIwUPTUdA3J8rPg zn0Na+aZO2-sN)J|xZsw--^Ep}8`b=MtT3*F^WvUPyxnQ6O260pF&w?qqPSzB&rG!R zg=sUQXo9ISj$|Fs_46gHa5P)_;jgNB(6i$Fo^G`>&MJN~Z($3r#`q)f{P{ zVD&s3{L26(`MyjbdrI0!07J8dFQsG`F;ydTl#2SjHAwr(1ntu6xLc&nGXp0tK*V-C z$*V4}n8ZU-0lIDcXWO*!ed++S7e zouyz>t@paX(tWkw@4fB5TJI*O!ul;iwVa@yYgw()#F9w@3A{*LZqrF9Vw?c<5MI#) z7u}mY-KL7hIv?~)J?xBEINI7+R}_Utslr*5ud1?MDUW*Xqf^6Gw%y!K!!6?Gd^4a! zJGL2q3VB2fTua#-Pmy5yH0WiXt|iR$+iiNFhQG$+4Bg*r$jDYpl4NMqwO#-TM-}V= z)fh~7a;}^|`lU~>>BfnBzFS==z5y8|$&29UiFpcb~s0dHxb_5sMqo28|E3?v5u=NC(e2ExPN zDuSUPkrjo@O+81QYEaQ)Pe&G21XNB>^Jauve`^t$zK+6@Pn#VNH9Cpy?j_m zFluW8j6iY48EV25k&9~^v7#RZsZ3S1MPp)g(r7BoR{m#%@Awc*h z^lttP)XZQS;mS?3+y0&Y`sRrsxDH%*X$@T>>qW~1Q}_KIWx9~I^_~N&zrzE&j9g1_ zWw=(!LdwO9Yg94ZKVKgY?t?E@$Au%@xH#A?+k)oGGy!H^Xo$u zTtBO)GY+cDKDMb&I#lVHZ5gqbuUM)t~HGQsHFijuVdA5c+imXtOhDs+DF#l>D&sGZI zfFC$Tjcy0<4dyxk?2GsKRxBZUOF}-`c!h@i1=hfkvc9h6bDx(|FzIrQdQ(pqP1Ejt zIW$dxxeyg?y@6{@c27(F{INtuMUh@I4I|WnkM$T9UfnLAf(PT=r&fA|ZlMZsRN*Y2 zUVt~n6_NHv$8KH;*SiwFj3HE9~fPi&QM2xUSI| zvyQ1irqcDrL~GMrlk$w7tPHBf*W{Smd?k<26X%t5Oe1&uS%(?0A3bV2t@gp1&&QFWPP% zXbfm6c()rkoy}<;3q|EQ5VXkFSK0GmOHjh8OBF+9~SgoD3% z;f3j;utBs22`*uuL4xBuaQ!}Co@&QJ3EZ^x8PxUQ+y$ykwktnJsq`wm>2hFw;oeo2 zB0eM!apPM-;;M&98JMM=>R^hJDk`@)E?To*1#%qXc4PL18)>GI%$EU|#fIp>VogPo z+c#)(+*l(yp-$o8hncGY3R&BEg;rsp$0eALm=kiyExiK+OW;hV+*0cj7DF29Xrq>y zS}!x71UEofm3#w9iAZ_}MG?bS3Q>Q^D2u%CQE48J5!Z zbhKNYJ~Vr(O4*gsO7OP~2Q|sy^s$4n)YJcT+hMEbTu{wFx>!y6WDUHJv}!RK;1yjeDe~jXs#i{Df}Io z`|tEfFOt`3id#%A;V5xPPFXWplW~VzHYlAHbtYMRa&m*(T;|w|bjR8fDQAM+NP?Is z(BkT0$=E)um=Btc!FcO7sT0W8Z+5FK-BeAl4u{I_H)fDNj)PY=pT*E=vSP?ERrI7m zd=V-hPIg%XJ%S3_IgNgMhd7M_P-H`!UIs z6IDs~Ns%2_F0}$6-Hhkb6|pii#`GlIoJA>%kz0XF=&fqEbB)bTmWcR_R-P!=DFtS@ z$fjEZq=_;f5Jip-(h7c72M&E{;nypH3vx^C)mvOu5WcE%D3gqSX{?#kqO!>cVZ`*D zoL186o5Cq)%Oq#+>ZZXzr2-km;~jSX_SH2^Q4{-m|MnK9&$kINIm!l(2ITfKQ=F%eQ7f^<`I^<@57x;bavTl81wn1|I6*&Y|)?q~PbsT`OL7DIUO(3EGL~iwhi< zXn_QI2*n;zmAJqVK6qOpD=nR(VEZ%-B0FKGcQF>|_!W=a`Ux-%nXm{}vdB(AVU@T{ zH4u{8Ll~@Djwo17)fLv6`%g3kX>KJ+3`)3b{DPM=*)=bNHd`PszoY zHxMHqd;4gGuysh}Q9uoMV<$024~g=S_UixhNMO%fP;X{G2KeEc;~MHqoK6R9OW3>5 zF0Q6Geq(!nu!n6M_u=VdCLryKZ*bK=mkqfI>D1C+RM#MyPtyoMs8C>~Ym1_(C8wfh zy#P%xa#gxg5kwJ);H2rpiKsK**)j5pJSBDQ7v{+-ZncE8QWRb89*Hfq0>?bK8OowW z{ot5hEY6X%5``C-Bu%k%rfH}|D4%4m&Y>RvEsp^pY`46#O7OX;!I3Dz;P~SPYbukR3LdUJ9|KjjBDE zVs$C#)C2<6Bw~WCktU7*niP4#f$4|y=D*XZaQw6DP#~T0IF5q%Re*g7&=(mKjGESV7(~VhA1xW< z4onOQ&N4_N&%y^NJGq7$y;ok&z%-qxfCOzl?IooaK_^p06tqzU4X}I^JZSl-(%1zW zBWny(>%mn>jbjoSO68B4uqmk-d`fcyH`Z%7pqzqr952T5)4;=NrHo7SofAZl?k^!} zpz{&>$}PY7Qcvc|T;DW7>R@+EA2{mt4lu#~V$ZEbo4m(HkV6FZqz02rztYnmHRQ`Nf# z6D%WxkC8MA_gL;wq>?O00@fPGA>w~L zI81SOKs+Hh6t5{GSiSQ*U`=fB@+gr!l@lWwdp0z!g|^1c8j$_GNc=Du!(#huvlneW zL^v9``#{s`VYSe_+#WU9n?)kQ)Ez7eZQ_=#%FmVJN@<;Obs2CZ=>-m2@6<^z(9)PA zf(HkfRh~KRSOl>W=!;{x14Dn69^+AtBGh8U_Jg(Wo+E!VB(-!Ew-(SvjXK&2iAD>Q)+75d`~!NK$FVko;7OqbkL)N;0}?_ zcnBRreOC+BE#=QhMr|~l_CfD zLYcNPYpS)}r`71`hkX#XCES_xufJ3^%6l5h%+I4}HCs*L!gZ9J$kB`F#cOW2sYyh+ zp$V6tS`+Y5akN~8zD}Abq*vRQ1%2429|%fDMKzzq&G;b(G=0m;o0i|QM>w5CyWS49M(MC^>Jw(CX z=G77OA)8lJX2&mRHBuh|_b=uP*FkvazAjWhP-R3#GThe^eRgtFfqdkFL(()UGKO09 z!X`=IgfL1*co^nS8Tjpski)|q&lbBPEpWQ#xq?G-B5RD2hwGPa73LY3St=x26}zQM z$fyPhhH&=D(r4@C(1UteNKo>)(~cD^c{*gSHbZksge6hVLA^&{f@v;D>ny^NawxE$ zFSq|9>!?e&iG?pEf&|mULUDnVg88SAP-9F&lMOjF4NZxW%rUw9@aBibJE7|18{&c~-Th#!yh_XSGmL}YZ=`WJZ)AI8Y;=-)G*05p%hmM~Y3P8YJS?oK z*|no~Y{Z*^-WZ9cL>3dQ?4?nnw{(^5LiGt<&KaXgB(2MGI(w~7X%3h*Z2PTe;TTaU z(*)RLxh{j2?gDe-=rGJN_E2zUIG8NAyO#gvy%}a>H$#Hhfk!CANE?j{(L7dzQ;^t= zsU;hT{eE+;oK8^ut~sHkaB@)WgX=Z&=)|cEX=4wuz$%*@eLX%#f|+#W$}Qt_&ODr_ z<=NAg{oXXy_>cxb{A)ZX^%2EGC=yz1}QV$_9fP_Lp+Lxk0X6L>Sl(t3|a!IJI}g{+q=uxZ=c_O_=pG|P#Xm1Al7ki1ZT)R zn9V6bd1-KdBLHg^~mKWj-uckFr?6XUsGf_gX4_)^j-L!#oa2mhrTSSguG5v}Ko z*MGge`N{SobEAR+_hLA37^+Cp&lF`|rd4LfB_ar<5%zSK; z4$I6@U5W%UU=G|+f*KRJ9ZQF8hO>1w_}lxpukYTxy)Ee;5~|cA&{rExv}7y3bv;kG z%URLVM3{7dl%OaihP>xqW(~@yxZu-;e)pRb`#Y2hhvel_x##4odJ{i^5huH=RE~^u zP_BJoSCD(tp9Z;)mVKSd-<57a&}7t3HhQvQP^&?xKw3=^{m=v!+BM_I89lgx$W^s8 z4sJZjO{etBIABN6>c!U6>XS3xTs@x`UKd0%yOjMd{6=XlN@e_h{}K@=%m|3o1m91 zs2G3J@;wQriB@+{-{kWw-M?sLb`R}K4N}m1>?T866L26A{ptPSKL^@SLBDl4zJ=E8N>j;=sp2*8X)V9MVnqC2(M^3C#5pNB?y89649rqbZ%qJsmVpz9Nw~ zooi6g`xcsSp^iNA7_!&TNd`$Rh!96?Oqc`j_|sC!^vru(y#szm`0y}%O8Dq7{G9MH z;U}LEl1iom96XY7L-p&D8yp_!?Z9)tGLnUx#0DsSjVN1F1@C9)7tGZE`5Ua`AMWW` zKk^R`l2-D!$3}^V?qrvJ%CrrQ1-J7yIBD*DF3#vi++YWo5Fct|H?1WJHCQL^ixRAR zZ2a8a+8!}0DWHy!7n7&68;VF{?*X){>kqddzu&$7F3w;(Xo^EX!#9ghpJ?IrOmu^PtD8PN zCMsGYr0xbq?ZJlLT{3r+=+oOl3&N#5?m-U1 zL@7;jeo?L`u;+YGbrE-H$sD6cZ8v*Vg;iDusf$mh)+>RB$S#EFQgY@If~Rl#v>@E1nGVt%XhdPbC8izGA+%6@j6`^m zJ)sDM3O8jO?L6;!+t@shHYtqTQo$ANJOMT(y@?Y7q_I^y&8;0?4Z8uUd*R)4U>dOt zN=d+2D^@w6cMtK~2@kcGae%8-m#>?Gs63Ixu+ij1z?{o4+EiKUiYRp^>j<6h44axP z1NAN)vsVGo$2C(fjP+x!0r^}gSJezA40wVw5@I=fsl6sQYi47jdMpq>u!A!85Uw!} zwpE}Y5_NxgNaFV%8)a#~YPKya(lFQE&NeoOnsv>G{Pj3fqiQftlz&H!{Zf;iK+QpvuY+2Vyk!g`|`? z2a!=R9J|rNPh0@8)7d~`SKHo2UU_U3Ae-eNU_B!XkiJ+aR#u7N8uW=d_UrrrO$X{D z#ZE!*xl6Eb|ML3XyW6)|A{HcyW>IOd>ZK$y&Z~Glv2Wb0f(^XsiYn8xtpp#y#u{c5|L$c7#I9S0Q1H;S75Kwvv!!ZPE*ADf?`t;mCMS2k@P7qySRxNbSygr2|lmX_o zV2AMyj%X8#85+}_Vh8pyghDp8E66I)Oa$r%{7G>!*38>5nd$ZDVT8pnvfcBc{-R8@ z=zb^_Z6~d2q@rbF7U1Um{D!AA%qUkr4KSNY_l~0>kur&x?ozA>^3pf{Azb4hdI0Y6 z2)Bh=7KCf3wU1pNyn~ds8LD*`ozcoFk!7so@$u-B+u%lE9x%ZjuEk7p8LG#TI&6@G z4Ng|;LgwVUL;~J%ozT7p=^?R-2yW`sc&TCP&chZJfJ~|YRurwg4>Bn_-r*V(h#Yo2Me#Co;=R%CYA1!#o8qIWgqAP zvbRAGf(XBBNR_hzo1loiGThUDZ99jk4Sa`Z<9=}b@^rrb`t)*BQhwv(!5a0{z~a^X z(OYnU@>?H>uBT@1;iSIuYzI1IbFxb#|1WXx+T2ERZHelq;Lb!iDBJBIKe0jQo;WkV{jRn4-kCeA3hegW8)rIf3Ryd=Dk~rR{ZQqk z3h3rOFw47p(S-s2;i)khZu@lK%V=o~+MiXE>dt)S0`e|%N>qtHaS@5!bV2Ua1|H+N z=l|sKH{H$7iz|AHt4U^u(j$d<8lWB;(b#>hN-Rqu})p=uaa`5eEdCCJW`G zVKX8VyVtd+I8h}lt$h_a)vBuEqd>%5MS7>WN8MWSYZA=+b_pqZ26aN>{DswDT z5(Gnfx1CBIGn7z(@egjz|`Hiio#AR zZO5@w&5l?_1M;Dc4p z|Kp$M(8-9oxrl5-$Q@0;sQ>&pVq!a4TOx^;9K#*QLLR9Zvk8lI^Z5N9Uk+J|reg#4d>dQ|-6 z07FGlGHad;XGZmip7UO;`f>@^t9TN?F?73*A{H)v? z^uIc$E}};vGwpNCq9Fmh2Yw14;CE!&#B9p6sM@m*sx@kcWTQH-*cC; zEOAvPODN2(-6F$%>OnQFB?740+qmrzj4S((Hmj>+?9wEwV~EXx2j)NTryqa(@#`13 zzJ2^Kee?ePU*3H8H<9`b4FHZg6<6H%%noz;=EIkFpFh8;f`~@oBH(0jconG6DO$h9 z>H-BEilGi<+({HPGEMc`c!j?5RH&%%nC27$85pBH&ANH#Cbdhtu*PH!pGb_W7yuMY zZ`z8VAN|$-!;Z^VtJ!vqD_-NH((AsJ;!qc9Dz{iQ&bYFDlmQr~Ch4A@tUHU{!ZewQ z_%MUqTIskFUGKx|mU5ZiW2mF0^JrKZXpGe$azjuZdzXG;W}=@^RmF|JVs0>rENSFg zpE{3PNzbo7s7oj?8)nv7x|2*%Vj4~g|NKE;feNgX6$V4Fe=->6REL_aZihNy9%k-` z>O`J|l*!zC^%ZJhnqNqB#U>OUyKtt#A$key3_B&BIzs3S*mQUJKDVXATA80G)T*q7hobs z46Z@o)GlAN$v2a7!~;f4A56?llkG@lb-X587?_VwBe4&uAb86cmRVYsC^nU6Ix7jy zqZR7Tr=x@^>s7sT|8n{aiXPTZ01cf_$A|`*ueVEN9-w_-{>{nB>_QO*H#@}9?asj) zgLl?aAZMS52|YaE?Q(tTmH@K~5_b}lm_L+Tiy9S5lOS@joxz?z*bO6th1!&&b!_lS zTz~TrE(8}FbcnZ+@WDo24WNzd7bsTi`9%_jNYyz*7yWR!BVAWPVhFVWwF$V1AQ5AS zUY?zgnpRrSQ^0A12Up(iL0j(x)kKg@Gj%{z=-+mg|ayry2tpQJL!41zh{!*jgPKGezJ+~kb>~x3Q z;Uf3t)4T7!c*aWDlf0A_e)-CnX$hWta7gT}O9RyO+VbnAgV@2W51K-4BudKI&O{En z^$b&h^k_RbPn2evq(xXPhWP=vZe)HXbVP2%EloXAF+N0|n71jc4B$mH`QBUF0@E|q-IS1H=hSsLc%YTVceRE8I%mle zzc?37BxBZ|v1C#lXIyfxBL@gUs#vYN;fSHn7wQHu$1NPg7E5S!1y%=aq{A~Kc|#9# z8^}sfp9lhUb%mUSEiXujaT^`DohL&w$?s0n-94ng2r)ZkXOP+)ok z`96i_<;7!@gQN6d1JOr2JB73#U6hd_>Kf-Ehp(hb?SXZZ;k~Lif)>(Ff@4HK7P*78 zBPD&U)`}_NwITbL%Vw*te1!?j?lKvyk#RLFzLa*qIBSe_G{c(3;UX!Ogrd$hmQ}QB zi?(*2jmGg-v^2IJqk^SOt`b^g=TL)%D$Vk7$csm@XOMyiNMDtYmLDWPX!6w3Xhpn2 zfx{Jilqae}>jOkuMD;|Piu#l!9v(Y*TAl?Si!;D3R>1m35r?_H15~Q2v zu=?@CU*CP-R{NORH5U8uin~oMYQF|sw*}T4`$jjm2jotUBd=I^uraromj=uR*^DDa z7u(6N#mjde&cFV3`#-ffV6uqws-hB{v`(P}n^0BaqFln4 zhyXu_8{;w325#nOv)6{QFx&g9`OAytIk>nDvmlKA%gLWk{&f6bN?r+I=^gaMP9tJ3 zMm`CL)|vLSJcC6C3(RMW(#Hf|7VAB-)eHK1=ROfv8W}hDa~Ch9&Xq*ny7dqG zZo491{+G^qdpw{cZ&@gcc+t9(v!&5!rTjAn>1KiH6J^YOlBEMjtXw%9w+2L^j?bsf zVo;kN7gdTIJ;$vCF&WZmlFK7L08k^sJ9x~`W;bU@AU*pHFGBZtk$;@Cl+n_}K$e5% zDPkpnDpj?(y(Z?EE>Q@)bM6NCTvLis5`#uU9B=8#WFRG#gO<)Wh%nc!a0=654_}(1 z;TRu}-IYdbNn9f%l4me%S)IWyzH*?L@U=Zqs<98W@9^kxw_iugHnMw?$p^{VSEXC_ zl5t`c64rCQcfR5?eYT!%_a_s%(`gdIOLk%^@6uF%J=g86-5t`x{KFycAO7$@Flzvc z=9I)EabDQ%@LzK)90lY9`B@r&xj&DLmxLchLFQp`Vd35_VC zYW#toueS%*Lp5OcUmoR#9%*PnxU2Xmc&owS^`C~fiEs$4TQ_?4rZsv z4#mhdLm=J2)p`?w8ktD5V?gl7H;1nkEYd=8OmsQw-o#oTTo`+fNA1As;=_^ zzN^G{GpMcu=04o2bRF>IYb2<@nO^|YXu6pXYfAjtjmhak^?G7Id3{}?)@X~J8<09n z7l4(6nqZ~0Yb2v=XveWo4&J>Bv9=S_Vd{CX#djd6)TfLt+)cXzZ2 zh+)wEUd&762!Sw{<YxB>H zemDBxrs^s6w%}9t96BF8gz4hgzAwg|c9!G0gDzWOnP)8P zkKwLcIh}aFy|p*`c9^4owbx0Bb%itsu5-aITCI1m?idY-rgm9gqvHH>y?bqTHY8LBHz+d*{^f5C zMLWlQK)PhE0i_)!(jJLajF>|)ODwPN0+_)c>9=4+17StH1i41hw*IBk6Us5God_hy zxPQmyl}ldVpt=du6nI=f7;hUo#j}2Q$M8CC%d9-6CW&c+jp({!uk8~n1C#gWDZ@T_ zcoWYb=d zcXFCsFVrW>-3*SF!zh<(4FRUDnXFkY;3bov%0a3PDW?Je)|X!2CPG81*MOu>yl|9f{3sH-Wy<0glsFup&S?$$ohSc(%KKGCl1eLqa;Hq%-9GV6EJR4bjSNF1b zJ%zQQIu=wYy%ZH0R;F~bgws#QrPrrgDyBjGx2HEM^jLeUvsu$z4uLh5@+WR>y4YbZ zb*>}a*9N$QS{cvc`w_J}i}Ryen!hS+PH zJRUftp28v`)xi}=%oQw>@P|46nIC}vAR(kmmdMoTG^~U<5NX-Nm6At)Flfv(Lv6J# zCV>?fE>atbeu<{RdK>1*yVPT#{VdU8$%|bcGpvZIxJLTGb^{SFI-pEDa$j-)K-_I# zKgbTN-QC?d6LobpyOn>GH?#or|Jg zrMyO0h$aF_K)u7($4rJ;pq|MP*D8xUU#%lpx*nBqpKt|rY1S{cMV`2UShWp>ITQ5b@MsFxoZEclhR4o3~R<217nC!cg?yX5b1&a4YpD?k%x8!Z>OB4yWJ6+LrS!^ z0colYX{^9%lCJf<7P?^F!;D-A@Z49{qOh;j*h(95l6dvLN)1as&_TY)rKYTrC)b`r zb!7kz;1I{IU4<%CB>|trtPc0DCm1hHW!hCqL|T$YkTD+vJ2jj+jQ02Mz4`q4_S2XB zPj5cG`SIxX=bt`N)%W+0@7~@giIuTjzG<}PwPFeAv=+E{4cb|1%IIP1sIY34a{4oO zpa&)$Zb2Czro+;KXoHZuLhiJI{Sgq&6KzsbDN*fEe&ll%?z3EzXRc3TP?jfc90*Tl zPsUrLcaFDqPA2YSkaFGW+_;7+{oQVJ8S0^dV?Jmi;8gZR$qoc_N1~x`hc>kNmSw|Ev#N6!{vB4Ml5Wx2K+!#={18w>=Qa7qQK#9S-v*@4k|e8g z(NxE^EtEvv>l7r0xpC8P!NSApVoODCq{TQsK7;(sNhi~;@S{=F(!IoyH4`BS4`&+| zrin;E%1D?%rfRbCqbFCx(u{>10H`k%CWcl?KE+T1^t>7eI_O5{3(vQf1|J`SpBlK1 zCzvm7=-E6{n7f|554FePOfM-tAsZg7Y1GhZktZiMQ#BsUJa$uCFV(K&-lEjWe=D*z zgf-AXFBZ~v6AYi!#peN1XXxfJ(1XcYp*a1Ihn)T&(y##WK*MOfVY>sV zKn;b5YCWC78usPg-)}d!KYsjj%iQQ+e-dk2KySV@Ku9Xk4tmn2Y;sET9VFA&dbajTbaa!6gv5n5H3tOsF$eT0UeX-T;3* zgts~nd$Ebb@W;jDM@PygqLnhgl?bPdmfj(_o20vTnif`utlUz&>7_;-jruT;@p4!7 zX!!?eA4E}1$MPk4t!a9_VrBtmqoijR4YDr#omnWIgX6Ny*9`5027P{!?0Uoup}JN` z3}{Z93Y(u>K1VZ1l*f`5o_0WDgZ9^)58ASY`x)fg?Eh*fY_hG#_k z9#-!0^x3G>25Y)p?5bUIdId9Q;kT)u}I<;mwKCl?)Uq5~R za&i0N`!7H2AMQTA`SAI#DCME?5_%2E;bMOE6yfU+75lq@S0*v=h1L1!L?fLbrS|ip z%*8kLSO9$>$g08WOnSnyVAE)QvyI4cqb8aC;|mnaGti?x(INsGbQ^|gB-1W-X-}+e zv@A?q&e}#oEVHGyz%Zu9RquQM9y0PnAy(Xutyw*eMKjmn@HP-!azpEg+U?urtG&fg zAUmDb)kMnV>W{MWvvc?nLHdajHRIz6yds^!YVvuvHusgF8gISic#!&KDF_T4aX4MFi$4J9SCpz z)A-SY(gH9^8I&@^}HQn#dP63J8D^FZ-?2CShBTmPZDgC$JF1CEn!l z4oKxrz!M;4#hzgwBU7Tk0(O}`hZN6i_I2;xf4Tj{awtwv6-q2;i{pFZO_?t3?b~-B zCzl^Ty!-O;Q+5UL4oFpSsEbqr%ul^5nk0F7G=Za1QQIEmZmBlj>3VfBijB*L<^l*{ zx4K*c{U9EB3Jcx?onGT*A$%r-yq_h$zg7~+Cup#PR!wVf(n-%M*TQ^}W43@}OiMBa zvH;f&XGN;txk4(yjnX2-J$1!!Lj(f54tY@SC@{TGw}(r25tjY1b%44-x(!YQ3!~%qt<4#a9T!G2hJ96aw)uu_#QNzmSkkP#4 zV%9*=*fE7@NKCPa5wTEJTVBIRs>Kjaaj+R1bBsf#rk>aGZ!C~SvAZyE9{Axqcsd>1 z#!WQ70hO5vs-Mk-+`e&L9rZ0tl(5)d!zUHjES#?+1^U5r;@<)4LH1p=oUb>F-T9VZ zmWJ2^>n0A|LnBUmv8x@RZU}y0I^9NA8|lI{W7~4g4z(N92d&EmRvt@HW)D^7X2rZZ z>rWrQhmE4zfN_mItV4h+kzXzvu>mK5ie=S%2#bB%|2>%TCs(UA`~!pSK#=2C?KO*j z^E9Z$ib4i~*h7A1oP5~*sQo(N$ZCeaZU<*$Or&Xw3keq#uVg3;xkHp-pIb)}<3!N# zWNQv=52$%2%TG$r|NH(ZLVbp*GuNMS{76PT4zEgY>DY8pVwWQJ;d-nti$m(yU_SlY z#7h)mCcKerJr36z3L&IzE+SW8dS4?%JjpTz#EeHn@)SI421P3KU9zQe>z6wkM605c zWKj;Ll-`FLpGTt)>RJm-V=tJlUtATtlpgc^@A}>qwrxS2$Uk$r2HDFBE#lak6G6nw zXlxBnh(fxgzR_Jsmz;Pl3)TU(!xR?}+Q)D{`_01y$50!lVF~y|ux4P3pBj)J3LPdd z7W>SoUhqOuqA#*&FtrJ@VY12^ZXUrS#7{0g#pI%*+&MTYRwLv;?0hg0@%1_y&gDdt z!LIR}ckNzziyALuh6^o&)c&X@uTu-q#c9546d_v-biT$K`f5U%aH)#|ekKo{@7g?T+!p zwfg~S)V{q=KE$BQvfw9sQFbblTYGjYGCz0TVopUIBPj#p?2v76V><#Nypl{Wr?Bm( zf)5YD#Ra3v()=ar3swcBHLC)WyMq2&$l>3`O%13s;k364 zC9baF$;IhT1(+GZ&%$#SOhw_>k|dgHTV>ks<0Q9EVNF$>yna$&=JhjuCY-`p{us|0 z+($$9MQkr6w*!u(KtX#h>dtdFs@w(-&XPtY+KirVEX$~Nqlx}HKqj#@`GjG*h0bEN z*juO}!Z#leM>(Ld4G0S3zs)}568=D#gR!mh*8EU?Hswl3;xIc0>*Mwfgpgj(M+}{4 zsI1E+PFF2jL?2+hRugb1*2I+1nbE2W2>fE~KPW8Shcsbc>qs+6FXLf>YX~ff%ee2= zWeH5C>V?Fqt1M1#B_qNQtBa{owkhxgUXC+mS~a?NvKh`LH%%Hju^d$&CmtYD;P5FT z@|{jP99)>i>O4h8@8c~V7ax0so~i~Aao9wHoJR^M^I4$3wl>Ix^c2u|pGp2SaS&{2R6*w?95+;Y@Nf^X*po0-G!7c}?XxYj?muP9nyB z)Hnhs?Rs@Se4IDmI3FZVLa9L^?MP{HRr7rl*L9XHOt@BJ3FZs`53vhhB)Ua4!xDN1 z=xyv{%hitZ;SY$c@%eG<+Ms}1U|JFpvmF$38Nc(Q^rlePd6cB`Tp$C=`g(^N@rB(P zkH6Z-nX1hS#8yLqPJ9W@+r3;d$Fk;8=pD^TA_`Iq``ZOyCI2F2CO zz9g}%a|4y-);17d#81tY3f_Ep`?!C zcs4-#2aP3U8u9&k%6WW&Y>&_?HfT(#Yit6ad>B%sA zRDm`{ueT6rEM9LjJ+u9BJkQ!xC9GVwYQ!Fq5r^NX>83 ztyUfig{DU?R&E_65{TngM!sJytK{LFLxT^H#;(r^HqnE}XzsGlbgDiy#S7mAG_P?I zB(fl>Cs4VOkTIDMoy{%MD9`p6tCyqHWM*n!GgYIpzmvh*I?U?=gvpm^9m6@ri=&pN z_ENB9Ynh?BZmvE_fcoJ^bO*WV0I9Q*6rD_7!Oeb)kV+C!W%bf5c_tVavP{2*4Z3iT z)j<+gVE%aVM8iJ2U6AwdHP`3qU9KrOTc?G=!W@X{COgIXAWO}EErBPKp7;)^DWFYA z?nb=Y?hw|m0mINFSdy6ohL4(|CU;28JB)mhl2~WX4`|`zm#Ks1&1EV`<1Zke$Xpo( zyIN50&FxghwZO_$kJ~1cyposz1kXPnCAvR;j1}0vTwfw@&H)Cu2Q)Gdc6DpAdgcs}R=$mN3mGPTVjuEZHn*bNARbElZOC8UWi>EoowU$?#^e%r0AA_={+ME4iGfYiC-AF%967jiHGXoSn3pO5}La{LrrqYe;K zw&2OIC(tcIA8&lp=_ofe*YPaCp{DLrl7!ZR?sR)&mjwKZb+wjmrFwGh3O+lgtWYCxcN zSbIrRQ<7>~rmgXduWvrl7xe4<_uYhB;}>MG5aL5u0L`&WDgBi&kFBI@(kv+TxFYFb znt@ly;?W%D8JtNz_i-Xewm_L04R$DsC6ntKCjz3FB;#pTY|L(ziP{y>)NG`kGwAnW zJIrMTzJgwCDa|QA$|!IK)|b1u)0L6++5)TH$DU4fn9(Xg-5|OX8LE&rOGy*jeLC1h zH}9Vk8|^l;B}|jMktSBUf=i^PLJuhRDYMl?0N{qB(l&gSXSeU){9@|7#>MIawN(!J zR}q%aK%-CMiIgm={9mmssuc04vSg$W^(rs7u=?@?o{h@36os{s7mJYbh$Z*GjQw@h zJ=t3ig@+`b^PVsa$K!CkXx1yPeEx6!4MTDmlVe`Wazc1!rrP<_Kf)~Hdf=}}cf#BN zqrbm-|1YK*#xLMJvVEKRt7l9Nh_Vr--|z4L?g&07%;AS*gM3iY^}=)j$pLBIaTgx) z$3u7CA0hJ@sAjpbD2WXpC0^H1CmAy8FJa6vN{lC4ik$uakJ=UBF0K*nyQg`YqX_8z zZ~krh;q#X_AHKUq-k?pX(LAeln*Zw=pmX7{gB>!x7p3iwLRECdMEvX8)M+^wG zZFL9QW6*$X`zwUQE6CS}cs)7)2S^Xo0N0}*-hB9Q`yM!lC3d86@I2dH=CpH!T8#%sEu(0oXbZFF9Vs^8%Z=nXNSSmC6bNe}_ZM3YyY|-uwK+$4_69ejOW( z4^YM&;q73KTOL`M_j6^dH}ny< z!?ChdzsU!NtBf@OOEr&+chjkimof?~cKDu|s` zeKQS5a|80Dtp=U3P+@E=6olgS=*y2keY*YrUrJ$U-1*JF(VqhBVyUqzzXmT*_b+}6 zs8Z{2boWhnRarI51}1xZSz>$eTU$sjW>c0bKN;2E`x7B`$V`%wl7MGo)CD5aIAinm zDcE(Ez03ZlL`Su@P+`D=UF(9iUCR7-d{9oP^*w%UjNYM6{sb_tphHS{vPnWS4%f!d z{52|BET3LMflXfsGFF@AZhrLU?b}a(1Q7>8RrVZ`Rg{+d`rVh&uIV}Y{eAV|zr5)_ zNbcW3RB<2f4w1>&+ymB@0<5P*Mos7?Edtl_4Xbq3c=FYsX*)LQ2-1<;MAjZjXHZ=| z+n>Gv{$nX_u)mx=0B6X{7f)AP_%xvu2=#-r2MW;?>5gDwlJRr1(_n@`WlPwlely;( z9szF2tTyfYw}JJEq<#xvM@b4e#>}_Y3rO+nnio+tv)LdP441$ahoVvbc8J(7RABp3 z%gcvH+C^SScAf^L7l5sN23s+>XBHw`H`39&b?NYN#fx zcy=srXi$QNiOnmNlxFNo`t6+_%JR{LX%exgrBCJej`(%FKz%ANV1-Cvjal~!L;LOZ zIk~|pL^Uz->ALSR_W>NV4;7duFBDSn@+iDjP1|RDZMghIE6s+f5Qh~fpwi@2OiDMu ziO^1_^(4LY%Nh{X?3Umv+=G~RS9>7Y9r`_Vvn`QcJDi}=#a8E@tb2({Xg691=v$4> z7u>DRFeInKd}7R__jiAWq`}TqAi!u3KPa#n<`T;1kg_uY1(y2a>;_pfu8~D(_e!E) zh51$N1j_p=Qr#^R#AMy|ng>=feA2KbXFG%}!@j0n@gALh0PU8YQtAhdw|a6XZ`FZ1 zH5p?__%>1#pI0~d8L>%Vy?P1ikG^x5`)rkhB-~eeWat_0}(<{b?^Kc7NZv?}D zy{G~p$L-gu5Exbm+p}8~*U~TebD~rO?CwbM)#`f9&WslTGXcr?_(?3_BGa_=eMqi~ zWX)UTYrR@sEw4cCc8DihUeTBHW_{u*Fo)sG)rmdd$R5fM>9rGj^0|?bIT?@L&Up0A z$?+pIg37{rP7i*j3(nC4k;@F}jXDK+ zlE&BotKlnbmAcN$m1dLOyc%`dnll6%!=|;EqvivQIMa)NM{<_Jb3dZ-q7jU6%&=HV zJqSVLVLk%scyvKFzhiI%WazN#(U2^*k|U zT)27y^J$~WO{l8ABjW7a-Puz&D|II5?!Fpu!Fup0ZWE> zplA$??dKCWwKT9gPfSt!#L*oU?Dv5el)AvTI~6y>HM&g|Y6+|wS$ELQ!o=W0!%2H7 zq20`8I%!wT8z)W}SK;kF|3GJNWJ&>4h-?9$w#}>Ay0Z&;a{-l2SG{Gl{cBSPQrnVl z6U=Yjd0q?C18t+4)ZoDoZg)(+5Hcwl17>=~r^v8Ik&JE^Q`z~9P(n)x7@F3)%8<+ix63fL&TTUJla392dHOktQnzCDt zjw1On*;cV z3TOk_ntc3pJG=eM*YAO1=%juL_N~MaL+^5r2MxF3NO|q)k3atS6;|wbA3x0he*57I z?fb)h0u0J77GRhe?t+|K!6+}zS)!OStTi+ZJo91)5dpAyy??owJMMYxsK+sh?buL{ z$*gJ%=cIMiwDf30`w)%KS#_dm3C^R9qr}gE8bye~n(j4&i)1gzO;pvHx5#>M@@XrF zKaBFSNO_Yl=q(cDvAf`l#CAHP8KSil^Pha@60Oqcl|8&u*N3i5Hk1ukdo#Dxjs9B$ z&{HEPhWqB0W|;^eKk0{ulI+`24pmpwc{0PhRgr5PAW?3#S`2m@!)V%fIB z`c_-5Ud9z^L0V;S4Mj& zKz6L?IP6%ciA+^j!%oiYc|$KJw8SlFi#qVNWWq+ zcvOC8JVGG_?R7nz3^+8!;temDin@nr2H|EE;|h{<;J?7Si|nacua=Ln)H#J|^>jG= z{D5d0~g5OkO!$o_SJ>|u$V>xyMP3)Rz>cKW>*GrU2 zVE8&j6OJtR1uP0j)&V{kF!8lY40e^$JcmClb|($;I|)o?nKK`bNbj(eYh=Zr+&peE ztK)mszJYGy?9g88KrsI=L8k`efHe;$YdYTchUUPbWPK)sY?1pZJ6j~IPURG1QA-0g z2yHH1m0|IkU?V!tDWfBG;8czz?RWfH@RaR~FykEC%sAC|E<0MbF{?KLrPV z;7JLpXJN<5IAq@UU_6A;!dxWIL;j9S@H}TQqo2)QyIV6)j)!Ao^VKvWdTBDN&=6Ch zdg*?TVi7Dg;~`37qL)VQ=L{sm_pm7{(rC6J$y}NPgs2mpkM{ zS5iyX-UASM{(B$=r`;Y-#}`{lCMPq((cO*%?CGra_AFOc13abHH3rfhFV=0u0`nLXx^-5gUfZeYeWFi}1;%AYn|q?Wyc>Z}=h zhbm$K(-xSz8#&{qa&^A4+7l_QF0Pf?^A4C!HWEd^0b%!aH`0lYR-FM)Vv*IxHV1by zUJ#`kw#-;xFQ(R29Em^|m_Ceq>Kt?d!4a^XxR|R9(mJ-opmB1O!vpB;M>jd2Mc=Je z`J1}bx%Z7fNaYHwc6W8!I2bpl%*O6ltIZyi&{4Aez{!gTN>EK9Hj-Pymy@57+;Heo3zebppx3s#?7C#O0PC<=l5!E{P9Y$xUwt;?v2;n@N^TA+~E z?Y_al-~j2R5P68ZnX?qi#^nkRrYkG0BkB5eT(=>htT-_J=7q+%i7Tf*Gg|&44`IDSY(LNgO9i}i(qPJw;W7=T3)4q0 z+^p<5BBG_SR2KhXV)qp{ZTC7B8$4D8rq31|!0^-yU=A!qXR>-=-L&7okoM+|c+24q zHoBm`E>@|&h}8LzDA%hEY>QoWY8P5p%rQ{a(PSpbP4y~R8~hgyp1qHx?vs29KzcOE z$o2&;AYd~o2Giv-dD1#N9mU1b5e?WJZz%3gdxpL7sm+52`MMAlEv<0EL*^xnxteBG zPra)CWRfHmZO=`T#ZDokzWbx?@ihX_j zU@Jg#X`N{Xq4~;?X(N@JdhMFI2wQ3CBYy6y6#P|N8P?MzTq3U>yBAty`i&4MydV3nr8HC>D z3LQ+JB1Jha*Th$_g#vz$tpDQr%KU&YP`Do3Q49OT)r0Qu>AY05%Chce7hqNCfMN@u z+CCts|3CjMHJ>}1f<70{poKtSLWDHRzfVrF90z;BiFM3g>x%4?)wRSKz+Sk0xTjV7dB{3e5XdHE>x?vY&4-2TG6Oba}lfjfD1*Yzz zgv?+7KKm7ty%tqJez$d30;vKKIVV4T?m2#lYt!WmT))Sp0$_)bHS|&m-5IuZ{(3j} z*xEy2pH_YsG6j?8+g||rciP^oRPQj~>L{nwAV_ZQ($65JqHD^JNi-QjH^qny4ofjN z!0_ZD>~2Jez{JyBGJIwpNsT`X{A{1g`U&R@p*h^98f?l@YAH{k0)v|wJ-c?#HpnTH zqK2ifLbg-n5_me_j*lPjR%3XqF{;7bG_PGgK)o=gqHZ}t6CE6+#ja8l5v<8o`a5xQ zMvX<0?XOnYi=5NWa|b%u&O<1O9MnoM2wOHc=BweH5o77Z`s6sQ(@@VGKasA~e~rT!SZ>oGbI{&2_ShblEuewJD6@xkox zI6A0swBMY~P)BV)n%MYVT5}Z-3c&_`a~p(b8RE)fYN+nH+gPD3Ko9>Qfe)ZVJahV| z-$M4bMP;nk5#NGBx#1e)G+#SUH)?8BMB!E?1e60trY#@ z(!bM3l>dzvUmc5ZRmI!^W!6NM%?<$XzUe1iwwugn&^Q*`UXv(w9!-5KU*pX4Nso87 zpedjNq+P&~tJy(Z&ed_LP~Q^3CNK^kG`9_bZMmV*BYjAEO3k)aOnV%bozL&S|8VU22V$>C<=|Viq?t-keTz+>`&NV+CYqW)e9T@RA={5%KYe$* zzy9eh%I%8Xmc8C-()AkD#*vPT9(hxzMR?R(1b6cbixmboI-+N(2DcqU6xmJ_3X3sk z(%~|oY5gja!@4772twZimAWcl%bNYRCE5*Tk^>8GY2q~^o}0+lH_^!{Eln0I$4pM0 zwsTspF37&mB+jU^8!bIeD$eRPuX&Ntkfvg&^T0b!&lp3gg-+(346DoRA@`+7_2!&Zo?-sdZOL$4k-DY?UpDP`IY1Fm(An zV&q3jzPfs_Ba*>ID=>|((k4~W#@Su{{r1!B6AEf4S;O2e3nWI*Bi3b<{lg4YUh$0P zlkGDI%!_v)-hKW-&z9dwx~OD#L=7<;oc)8llTnTv6B)3vJ6!<(v+{eNK|Dcl7 z2plhrazhh4C@8h4aIlL$rLg5~Osfc}Oj_-Ay-*wxEc0Lt8g_N~Iz&@sm zuD?)9#T}S$l|Y2W|8oDAU%uRa$GmLX@rbgpMR8xTLEB4#={?;3Wa&uZ>1N0f08T+t zj}3OIgLEQqM~*hctOIezng>xccD6W%N)qVA`~ypKY_tNU#=ro;E4VA?>69jD8GESX z`Ygrx#O5Nr$lUC!SlB8EU?}kFt%(Ro?`$_naro-0pY65>)?iGvSF2U$yr=hg_(8Lz zO!)rYmpAVhDrM;|p*o`mHXe2ME_J$xx`LkbW|U@Wt}McMb@;Euu6vD?0Sf^*IT{cB~Eq8-zVzGl;eU!0z-p zo*@D~{jQI4RYz0fy2Y$_DLgm>JOpQ(NG{J~9P>h_nAPT_Oa(+;wjBdv@j>&M6b`tR zJVL#o;Z+_0atWlcVRNE*fK;QYcv!n%DJ%enRvZz#*KxG`O>$_UOEF$_{BvZ>aZG6# zwwWQVf(4>SP2_0li82?!3wA5sMbi}|&6{m31JIuOtI<@QH@=k$Fi z-BhDZ$@|!SetjQ1=MJCD#S$Jp+6{|nHG?)6`v-UA4ROP)+tNVx|NqLwna;eKIp}t& z@;iyx9O$HZ(!%(jh8KdJ1G1q?tHlL2b_SWj$}X2$PaFe(X)~6V1$C$g@mjcV-l23M z4MQwQ#}v^}JU32Bg^)gGA}uMeM4C@@V-dXGgtfFsHD z=lY%{by*{%(-l0C=Otaj1dvV<`QwnEcI0a61FU?L?+m8Ma@IgbS>B_hlStYnj~KFy zRM^z%3f+2r(I8w@j&BiDg6E!)DY4~tv_zdQr&ydv!ehFEK z3(r;U9YYV;Gn(|EnQ)M6xu7mo6K}Zf)Y(0x66jvg*(>Mva^uO0?bw=qtK1SoQufjA z0rgrt2+qh2D%~P@K=h~9s783b%_D4O1aqUVJ(#T#+QILzo8x1 z_^g+GXbDk>Go`0rAuFprr<+~fyvq|RXui@-0lH?`crv&`1*VBI{TfNw#mW_I*3i1x z3r=h&8P0V5g&v(X!PD2%DO`TJ2PfeN?xvl=XuATd>t!QL&WC9ZQzEcz4NjLeU^_RY zz}wp|%V`w*`*ic>{Z~^3Q8Nhu&L86M=NnVA8)936%}wbuM)eT#Xmp_W#H2$PxqPZb z7jwLHzJDwp2l4&LfwLXm)kQsU{&CwRApqCY)>jY0brLsAn8`K}N;v0o4z%UcYJpQ5 zIGyfg=v#%;#4Wd4dnAJWww13@TT%D%3ZCyf`$y&zI`=fdWGp9}2%A0fwlMpkR?bxH zu7dG~-a#V5T9>ju+)N&%lv&R_BQh@Dd;jsn_ao}R`7z(F7MoN4U0}!iJkUvj&oX7> z9+Hi>ED@JrN`SP+Q^%O78+37X_#>v$O9#@>7gTgj0o;031Ba>w+_%{^rCWFR)#jqm zEc+pG05Pup)cxie0FA$eN_m2@(pDetVx>5p?abFV8iHCXCfCS#bVKplw}Zo3F~-y# zq+yekz}dYBWN-d5IIwFZcxn$=2dK>-*HB3Srl12iIM8qKK-v?gsW}e*i@#$b@jnr>S|f+6<+>CUDDaK82*^&Opg=VQk3Ir3XMT$z+I?r zDF#Uk?7Z30hziIEE?8DFMmoIRe$;S5h`w!SBeO^mnp^hY3R&Gd{acuZ;vZzXVC1oJ zhA8Fd!7J}Y={zi=65=u$)AschSOla6ID@y=8Ip-_U&8Bk67k9=6*n2Eksa{w^tE1m zy8R#aVRS>L>JNfNW}@_638s+>CwVpr4}*@DmQ8TyCW_f2$O3lAqQLaHJu)SInOGPN zTsr7r1v$_XPo}mWjZ@ns(>s|Q{j7wvP2#+h2~*|$Yu0Z(cx`sQ zzL+D)$nkNMDDY$g6I=?F)>HVZ@1GhQBRdM0OX85i8CzvQIg-dyV!8W4_$AgaO{lL; zeHGP_OR)QAJ8&J#nOO;Nr?_ADi|%Zo2ISL-Q~eMu6@)pfL;)9L9pXC7@=Kemw9^+;{;Ws8sn_G*)a%J_>NWn2lmFXh zfBf5~fBf6#fBf4PVEjNXV8nX+_qT68e?k6${oC8WzN5t)Aq+ePp(A@D{*i-tZ|=&0oU>AH<}q56odTmh>HubU3~9O$4M zE*)b47=rV3IEkIvVSt9s7AS`C+ibFu*S=7Mxdh08~}HMj%R4d#sb zptxn?SKS>(^M_cl@S^8XTZ5C!0wrOEqW2)MdX7bfg1T5hH)r$WrV$CPQ=_tO9v+nI z3rsJjEp9fy!Nbo!|MFq_{%^|W>+_PdXUbVwpd8Kg3znun zdbC2ol?Tnk!6klpY-q+WuD2cPhuI1?S@ZN&?n_|VKYBVcH)2S)gnG5mGh9;h za(B|J8FFPkdh$=_%F=CiP)u=6Exwo^N}3i__xOP44aPKXV7B;y76(_q0?RDzigD4+ zYf}FXsbVJogeoS?z{9GTfF@N8k1)e62P?>f#A7n3PbVn^QD9;q%Kq?!+AT#8yBAxc zS7%4v&(_FSvo`jilYinph2rdA5L&w7~^FzbO+;KH3x`MPM zoCmt!N~kYCY)@!QNKeqLdqN3TR3~|A1rnxyzY)w*nk%>IA1M3m9trMCMz?t^K_qR4 zvGEvA#1pR#e=urw2~-LR2)iZ z|LnZxv)6CMyTFoiIGz0+x7?M?-u5F4q@1r-@bUnS_JyGO4V7yf&^`LFf)kP}Yc=$% zNdt?cy0D}>5~!ZDoEETJ&?XJL71LUa_3CNh?6E_V95-Z+6S!!K?Qa(E6M z>WI&dMtPZQI0_q=ISo^OxT#oQR19YxWm((hFj=WJl+GxFm-!Ean7<4ri2gU4iAYAR zcX(fYZPRr0#TCdfsRVyamVFt{Ta$wJF#4%D1Zch>6XJbPfL z!edxZwI3JJ(vUJI7}@2VF@!4sN21MPe!Ii6N`Yx6?5r!G;AUos;QwnBjc4x}JTL{O zmy?)>_pKv0on^8LFmM4a(eh?oLT&3a+oVWBux8u`wozz}bFh9|f31VXoe&D`6KJh3$TSHGg@rJcpM4M1Dl1H)cL5$d@=XF4=3s zl&f2Q7Rl83UZh4avHNxQec`t z?L8w(gNP+S>I}0PoJgo17TbjUVo(&KhT3*3wO#oQwOyy5c@?>e>DT&=ON^cg1W#|j zOh5kk)08O}0@ODP83EA~QH>2XN2_ib zEU2711`kjL>VeuP@<^XfPqs}scL${Io%)eObtB2yI|?R6TCF*-Bx)J*11+mPA zL;5Sq$8?7><2(cZ7S_3Acr3dX>BO~2jYiy%D(}}E(7K&m4suA5e0y58K_wPNPm++nNC)QwE42mQ(6N{Nxj0SKuhO*zYL#%~A;^{L9<*RG3WCAX4rL z=6O8dtVij0zJ~{?cMmu^@=g)w8LfIB)C|0_5$Uyatj-dQYHIOQEk(=uSC9X%&K2p% z=p;Hsvr1~Bd4lY5eNiJyfqKY)EFm#m@l_*~V*K*%JDB_5L!s>GMq_u|7dcx!DDbdN zf3)fsc?x$;)505qYLlnXqvA&8s-HewUtq`uLxBL8D0fjbLHC<}>rKXUL76QU%aKYG zArmmYfeY$dzZBhbIX5Xl3YI65sSag+zz_#IV2U~W9>|D3$n856HlI7##G6jAkyXgQ z)bvc_s9(8Q!Oum1!oBxV z`1jUwm^_3_YW|S40iGZ8OB4Xrqn(})!L(9;kL1(oikAQU>*vLr zukXK@D-4hQ8LYpnr;FtU>!g&4IRp{D6)N&F66rVbGAttWcyNDa)0sO{<_!%)`lA=v zvxqS{?Z<+Ft8-AH^br$@2D(I!XP}(p?G~?S$(#hLJ*AQ1pmLnLAinh z6jqa-hP+1i%zWLRi=~|c`XvC6PPc2HR-KkxuZZZEyNGkLz z!j;hx**YmSM!LjRM%DM5^Gj4?RfS zH-MY3Vi(p3ayMVm-*^W@1Ut;Up`nP41`IB^^`{_}H3vJ_`gV0dw$&>QmJ>H-96D5O zI0ldvGU^#~tE_hn_W<(`W}zVTav`uIW z;}ermnIT$V%7LizghLFEJNPH06uBq|=MLUT7{n-`ve>8eF2Z4D>L>f%@X|=_i1?#c zeUa!|9~ju7N51RE_Yw>_^I#9C58@`~he#npq{i^4b`l1==w^N)l0I^iiW9_d;8FT_ z9w%pfBY%+d+sBG<7MPyLOEe8_=F?I7tz|Z>eujmAcCnbgK64?dUQn;H$QDF{Bccs} z1I5ob1KGHnWT^pZAZATj9Kf&K1Pv@3#%dhR%xDO;7*hlg@Lw`pjnfgAu&+7^<}(Bb zXUL6bAuAZg|Ktot-T+zBDH|Q}k2JgX18QAjS%R%j*!cL_zq?NNV2@w#@*EGLNbJ$B z<_qsaq4TZd;QZWi!#F=9Krr+=C90-gzhK5*?yLEle$A{|-e~=JB13+B2%HIL0al@; zmtG6fIueA}E5!;|K|$fQ2Qf|1 zk7r;bvo6)}jr*Ycx<*UWs5}u=Jubdnef+Tf^6@84$cd+ZM=%=$+Wh$Q1NomVny`|0 z(D!9_FR|H0al#zJ+Z$Bzv*&g7Diy4!Ig;TqLqg&@Rs7Uqgc9y5Eq#$}2#N}ULAUEc z-2v7YnH>s_Q}!Y<%#|5kttE=LNU#Ui!|bZ_MVqf5)*t_Y^esp$R)c9OW0c{xQeh4k zzDU$elTm?s714t@UVao71I~W@HGOs}LTfB>a~kRh-}wqbdL zj)NrEdkYp3Tu8XNYW5hiX&aYo1;&T?ld++we0>4EEfTRkMV>&~E}z2pqIPu-XuzwY z+*ooE+F_Y^UW#aG2k_8Z1efKLYNFVCK+PowN=up4_~nN$_@lDrhr8(sTp@XpE_-Q| z8&K)I*kVSJDhoW7W=+P2c)>&R9UO;#92`g6O^?=GOAr6Jr-pz06_Fs*&59w6C~xko z4~9?|P37cQ@6G1t*H7u9&6MX6X&CNp;58VeX!4c~pVpNFg-f3kLxBHc!^PpQ3u@Hk?cqRy7C#!W~T3+}_Wi z)}dt0{a!=KnmfIetXWvcMVLrxQ<^$oI*|wuL?FzKEbfjA#1|T!bkt^M<50>+OAp~| zsKZ&TZk8}uYU`CF>g;Le#5Anne%zITdI5_IT_Rn{g9lGWmdKFtLr{5Lu8VfO#7oq8 zOM9g_Z|#(1;B9?m>RHq=+KBW+9Jv!G#N_&7YTV?a{j-aVGDdq zU9BOS()2Ge!TNF!U#FBF!xx0#PLH#cALE{jxKv%8Ki!wCy?k7v@rQc(Ciutgo4?^5 zZ@zr_^zJWTzufNkM@PKo=!!^*RZF1BL3(T3q5L3@N74KUt=?#5N=u(3iU$D>($0h8 zGQ~#vSgO#+VhWMmC^v9~&bF5v)#o2I?>d%?B@!QC)T1NKXf1kUTMo9JZoqk3l+;Hb zZvGdrWS%3fO>X%3wzjKW4fv?)+Lg{*%5_&5(a%V2OZ45Le@=>Bk*7kmhR&RR5Aq@5 zH7F$HuIf=`pu2g+Sy!O1>XvoTQ0Z|7#%n)%?8jEteJEGfui!rsDAI|jrnBjwM>T^T zH7(7Q2~jV(Kne@;qN+JWNc{>PctG`w>n`m#xr5>dz=KkPEnNm_QjS}KjEl#kE*7+e zL{%^_d#=f%rZ|(lkS}Xwh8jWHw>#=|+GacUjysi z9lDD;J@pemkcly?ta7A);3iv9PGuAtlcqyTXB4`V#_E@1)<9>aw3Coi41TGD&w@#L zcg?~;58Nw^3(u)6IW_Nu+NJ}>U6=-&)V^az7lhvY0AlX5m$NY{am=^RRu{;^LK%(| znM*O=-Nm+}R|9b;qiE@58c&f3r5(n3x}tt$kfM~-)!NPhr2~>JTHs_KGh%emLe}l1 z9f~{^XVd5N8S=2upZMzs6uQE6HVoWPZ@&B6?b|<&-n>^8fFromyZmF${NbVzEsaadao5_@GA2XNRMZgw*vsK2VO6BCJVDk;V^N$-^lI6R@86uoD^65-oix z$Z_cFRBHQ3e?^G>7pSoJuv*-a^Wp$_d|#ZqFB)xi2V~m;i6mfVfE)rf%Vsp)yk4jFJs>nX zsHhMm4y0#h?p$eGx8q2+NTRn7264z37oCnjV!-$wI{_BZh-) ze#scW09nOQ#`_aeJ!sRiozg+-4efa;J@oK&w|e-f1fvLt6GRU3%_`-v2cpS7?eVVTp0(o5#e)mNmh;* z%>p-Dmm zI8pjj;CGTF>P78Mj#M)6rTJhcHl_h-F6;w%_Fx+oBS7Jv=f^1{K{Px8oDEOW%T9`M zS&dad+@^=#7H+?r!vs-ezMc7+o_a>pES>`-6$*EY^@mUxBGR_idYW(=>2x9!}yQ9Ul+P?HbEkm>w)!$^-3p zUG+(Ct=3qCLi6P*tG4m2W663_kIx|3EmG4mkIJC3^W^mi>~rDt$4-FJIPC*t`x*xd>5am^bbb!B_7!=+ znB(I9QF!0M8Ic}&f3PIsn02r1j_$u7L7#j-K=8+bm5S1srDp&bZtuVf#vMx|UNRem zQ+v&M%dzldlCaf}GyIP~*IeZ;HJlsjSt7{=qXO4A*Y#NPyBUIYcD{Krq+P5qEib!o zW;>px%VnjozN+MWhU>i;q #!V7T8s(O?%3G?-Ki8v=HB3UZo`1JJQ@#zy(U`N%Y z@$EO`hpLo-Is)3H(7_?dnt5!z;BxHm0eF48=?|h}c(g=7v=3aPIxN>zpdMJW0$jp} zU-=+4FK`PpvSTW+#^NK=1^dMz85e}D19b{!hW%iNyrpqtPm5P&c0{GZ9(nj`a18FL z5)KCYIlNFnLkIbW##5!McyO&cS-|Y4*u!N+faa!XAj6i-O-hEMr2X)wK7v?DF{Ibq zrx8Qy#E`6|(W;?NWohNTGJl1%o!Z!R_+d*=cP{D*o`-YrpP(tgO=jJChWoNt?nJ- zNp+%?b_r1}IQHyX162E)6CFWgQ!^b|Lyx;N)zO_d-IeUf))QM$UWP*x88A&`A~t5{ zf|j=UBs*6z+()+)XVlD!jd!fvpVv!zTTbmCE>qc)PRM=M-95@|OV~zdPzlsc)Ysz; z!oA`rh#HbDOh%O{98d5_;aOY516%Vz58O)*o4Y{S|LzFwwd{c14mzw%xPjy8+1VrE z#zSqvnkd=ShN-P>*wvRou=0g%Rw(HaCGG?(q3f)cjub@ghDZ-~xK>qr$Q-?gQ;ijv zy1PhSEe_k4-+~N(i;ApaZ~!trLz!SJTbm3H?8yvV?CY!CDoQ+}*VQIsN{n_yo}@0H zB5YfM8X%=N_|#G$MYVGz07I>y75L%#j=>`Up~Pti;0Ou)Ba{rWNxh{t@pDFa*RI-t zGyrp=g<9o!|3QCo)zlHfExY{%e5hxyouNcZ+55b1S(jAsETmSS_(5Zb`?VmjQST%% zlKKOQA99?Ln)(F3!&4LCxaf_^Zv=;?Fw5g2rs|SYgUD38se&DeGwGa*Ifw95fIPwI(O0IRhTs;vV2uW41|RwH;gTb&j*z@miGK!t@0? z>1~z32fMq91U~2_!?dh?60=SH!j~XNfS8ClGYwDZAiZ9v&C~C6_fHE`cdl|tOMw6i zy3gwqLs}bv>qZWW&LRw)@9KnFn7TXv?rJQgE2gf?=d#ETgPnA{p*Bt}oT|>gA`bNS z{l_<+G(gGQ+s^3WU-YFp2;#dL+QhZne&-O?!ojV~^iyC#gxzmq$)2Xor!8q}z8kaerokjKRqNP zPS_XQL)ii91{wjO{#oCI^}%#EWJ9vjCQWn~1o}&@HWV`0V}>G$25kp&HladdFxm2a zqXbbB^+8a+z25GQ2<*Y2u!enfxp)oo`_!u1O*elu(l5Oh6a$xk93{2ZfyW@kP0Lws z5-IVRe9%z11>1nBa8I+d?TVN!OcQ606Iu1y=l^jQAS?7FgnLwjBby)ohesJMBfbvL zY+Y11I7gox6wkszQIYsmOF~z$D(Y27O+x(!@R3?A9;?7J_R>3MKx-mWU~qG9nB8o5 z3}b07Mxv({g7T>G*X_deS{(q-nBASv7N+h*xDZURRA2FKx~)#p=L*JDm0J-~Q}QkqWyU z{SH+YkB)wC8djEcK~WfcnuxX17DU>Z`}apMzEFV+?dpG*vB}d4{%d{c)pICQuV(j0 z|LvcD@afQlX+%9fCdc)E^i1x;-eB#SWTNbuWUnw|_eb~;gUMY9TH=%DB{oC&jUmPLB_BU+`$@(8y*P!Jgg2-2rNX;O?Xl3?>Rh z&L^C5ua=!ex$rii%|!^pD?SxD#%I5Um94PwOlTgw7A=hzdKKUh)X_WJ?#NA~YQvbo z-3!QWuyE{0nuUP6{s5P{{CsgMaRE{^#H%O<(VL+&;%5Wk20l6uW}CGSX5wK(n5YSV(k}Gf6;{ja@lHw!dsU(zcZk8KMeF#hZ0A^e76g3|NQQM z-l9ql%CIHs)F^gr!ufU5_%Go>f3sYruPe@9N(}zM)adT3V4|P6h9?I&E3gX<$OdAX zYtxs&)0Dgw%ZhF0XS4loJCR^IOorF^96RK5NXY`7@1*kvNs10VAOgn-{kYu!<(DtF-+lawqGP@Z!{OsVulhwE zeQ00g4SkV_S498xeeM>G{J8^LoJZ-G2S&ZXSv8o3EiWr0bfl5= zGhSa@GeIA8Gvr%)SB=Wpu573b-z;HivsfXWSv$cUpxzBm6o=OX3E*r#6j@oVLur6?FXJsz7!x0y1*=Lew?bwhys1! z=3g@(sIS=%hKm-t!=?Bq^@|s}wV#e@rup+}bTwcFV}Me=fgbIv$UO>Dh zJP<8G3d|G3#Bm5LCkX5rRR~&b#?nl(4aX;_s*qg}+DrMfo*}_#ZungMHpW#@Y&oJ3KAGKL}NV-wI@0=iw_f|;#IJcU2^^f}S0&|oR zMr-&2BW2An?jRxbBsHl+i$OwV?9WebD~?9m4hGL0{KI>5R_PBoB8t&i7(q*$6Y=bb?}d9<-dl!G6hEHtfR;50)*dUp3f zPDs5NHJ$8pFM+!^n9KH!EleZSq4Aul6H9K$1ceOLm{@wl+5>gC7hT4>3)MrpiRNqY z0+fbaPWG0zc^p4Db6&y%p7(hNlpY8E15rEA!4Y=8%HEd1=_WWva}1E5eHitEMxt|K z2xd|$DQPo_$&f5Vw8^k_$T~$`K*h;+`4oAzQRNg)6v$<91bG?G-jt$Iuo)q_J1Rf! zk4$7n6WWj+Yqev`&1W<&BFX^V8k7|^gGlv0dvq5;!mK~a=qKDleYyKq=;)xS(MOxQ zIGOl>uOSfq@aDsZ+xL&45)}_%&E%oq^m12yJukvE2i?FcPy;Z%?FHoHtLbYjKQx*C zpZT%5YmCKZyJyT}v+oxduYsLiVC5^xXD+YKo}0wVQ^fs+S@a;BkR$efK?QOAFvGJg(}Amfz{c z(v|EHW|x!4Co?y|I+1eiQnYki<)3CxcgQo-w)bO<2nQ6X@ZdZQf$dA3IqrH}Xch`g zyQ@RjdUTFcgM@ZiCTv^IM!8}8ve=_s`fEVt6hsJh;?$FaO7Ze@AL-+t`!!!vA3as# zGBd`?ok0dv{t}KYEei%x4}Jqb9R*7#=89n~LTYP8Vv}&^yFwUyL@i%vGTKP>aEEVn z2Wq?d@i3>2eVie-bf$b$U!{H7f4$yp3SpnSQ zhErlMjUiISUSv>4>B1AR!8mFCEM!t7#B_lMeG8rkBQ)Uw*-`CT1~09f`7J# zpyWoGsSzGNXA{i!;@yXLpMOxCk_4dUvh=V>4pYs4_o3U1DcKYcpThBEK|h1*(EV$M zRyjcG9DE(kpcmBo8xLqrU*^PF!=s)^)0VrhTjaueEMBi0wkmBW(7&tR)PD5-Ie4CiF!L=F4 z%*K8Er{n8QO<%3gp5K75m#|MCT}ghNyJ(O?T44qeFTh+0P-19I2WN7)Lvnyoh9JBF zGGEC9Z$awG@~D?1joNg(b!OYrZgEA$SW*V?WvrD^3CW?9wZlE$2nQimLzmo3rT|rZ zCRY-COG~rwCzlFfmzhk(Wg?U91u&7LBbj1on4uM>^>#N70UyalruT*Qvi_PVs*d3-Rv%Lx3Z!A^3yG>?IZqHER$~zS04K2 zkhug1HRSWLXLyPrE77k=`pHb=q87cYnipdbAt@s-Ex2x8OB=ll)h^FD`^bV0(QtL=1o0Ra_35Wp)|Rw7HO5|JimKs>rl(Dp!V9TkoqUP2x~T_Th1> z%4BFoMsUmG3Wkz|H}SyH0ZXyPTrJQ3m=ubm`kFq_)U%dEISZt)1JU@Wd3;{k}Rj?y%6`9Ll48!0SmF6gl>)ty~5j|qn=OCF4^3LB^~ zIntB}p}LQ|MWKX?JJZ|J>)HcQ2Qg=X*?G6_6qhD0JvoWCS9J$4_K(T=hC&n<|C56u z2h~wcETmYUS{~}ln-6dQ^2_1!Q5D|E_g&;Hdf?K&1X$DIC@zEZBdk;Wm@FOyso8WH z^-~;4K_80F6R>Tif8Mo#LB%IL92?m#X(`1AuE)|p3LQA+b)mZlE{m~Q9^WHw-k@_e9mn=Vvd4{dH)5i+^d$~V4DOb{!WVP;@_G@DnEb5?tB*3D!o;^XAgzG0XS83G z!VoPxHqb#gwm7)4e6-|&yNJy87E+Kn3{FQS#8L@Hb6f@;q< z?#_2{Y;J7f13m2ITddvo)HE*9(wA}j8=Jp3T;pOuAQ}5gF*lx^*en*F?wQZv&g@w% z0DP+p_CouAS=+n3z9FgRhSa9FIEgdB`<|*35}%T+t9hD-H!*0G$Ks(2>%zq zkpyL3`kkGc63Kdh^#3T>;rQ!)j{>QZwcqf+m2KGC6gy4AQPczqR96bxRzq>PG&MV)H8QlVD%|x8c7cc zt^}H;^JIbLv?%-hj+S}2N!sbIm!nFx*3>mYWe}|os+_;2e{`JU)*_e_G=)}qY#|>2 zc;-zn;UkNJjP_zS?cDnW3>rNOOkYau?FMP)m#$`Oo?2++LElsrll?%rf!m|-h=!uG z?VIsYvl(H|r(GAT2fs%jydz4F5JRd-yDn`uQJgGo%y^fwUY~G>L^8)io%AVUE)-lH zsyvn_LpT^`4#5eDU1KI0FvCDp)$*LKS(xD=>$9eU$}dcY64P|d&jSw%4bRy@Lm&4> z2YSx}dnI4MgA{oAdfPoSoRA9BG~{>{5W5nt;_Cqcz@4c%EoMoGq&AKvoj1q?h{Kx) z77ci>S`D_+*%l5hJ4X+3z^ag-w;^8+4i@sTI zmq-te>R2R{RyN;_h1>JQItqwkhMog1IdcjTtmNEX2z zj4~UgYGMUxgnC`68&wcPOddJm1oe-i%xh=Tw8uu-AaVTWq&-q6n=8dxRxSU_=*y2k zeFBe6eHY?H;Gg9Rvcq@Wm9B>&yugL?CRG>qh{aO53N`|(Ohk}P2FVh(p;E;jn5CQ$ zp826m|Ak)*tj?{g&sro@YPl8CmnYnjWH_ssLIA=F=#Xm%fDF-C&XW!j_BpHLw~X*M z{w=sl+4TmdnY(PN5aVopig`wJDutOfgE^JHwL*1;)d}$4|0-!KoAX zP7h{zfmP?6%*q;t?kp>Cx#UFy?Fg7g2Y%lzUH0Qc=G%P2os^Yeq=D`Qrd0zT;`l7# z;FRGUP`H36oty8GX?41nekW~L-1D5Cgr>AjPx7nENBwK};}j3vudBc5exT-o`+3!? z($f$N_onNMDC;L5I;VoiG%P|LZ$2sfP3l}KfnbJ2URRe$^#d&v7=WwkyeXRz7c~fU z9)l9AyDM`%ktcMfIya?RQQ$E!7}l_1J%EiE#&xlJ>7I6zBL0|wg>;ew>sw%2Uu-;h z<7cN#Nq~kTJ3!q~=>93015Jv40f;-nR!E*pIWjRn!RvFLYVyniFjKY$0XNXg#%Hq* zK_Cqw$Obkca&zd#GEf%^yuLhJ-E5$`a*Ay2I-9QB^II`yp>ND3j+#7U+iB}UH3(gF z)&t*k@j!cCZqz1%UkE2+I-X+JyDukjE!N9w63<628F~`9qTa~JufX)q;ChvvJZa`& z1*;!tLjGh>&@3=L&eC!!(=ZGJ%NtcUPZu}WSLSy&He{f>=oq+Qsa8eKE%oJU*re0W+e4UVVYX4wKnf zN(ihY64D|Aq;>|+ggM{A^Lh64%sug}QD@D!gllgsewO6kb+4gEvcuE&-_^=Mk*G}& zYW}!b-{Q2){kftgI6|u-d>?W?>%oNf{rH;$R5bK79vcNk%#fQ~T+gwyJq<+LAmf}T z4FoEMJz;iYzB86o8z-{<^gS;7^Sfn#*<42$@0kfEfex z0o1yJDIb#${au+@3cAK}a%R;k3t7FsV#ClEfig03nn0kjzxqz1L{rRy$k4JxISqF; z!5sCf%_%Sj<`rfG_rCpqnS1vj%aZgy=*;v=TCH~1tF<1h_uW|`)$DFJ_gRm9jJE35 zy;U_+k308Pb@xa@we`3))83x$QFryujCR+^fF&VpA%idyG7dqQK;cke1tzcqD{M=~ zmN0Kb5CH@ZAZ!x>3a~^#n7~5(e!uU_JehgV?HQ2&a7A?I&GY3sCr{>=Uw-eT90Lid z1JfJnjv_nI0Q)da{*`9XrPfG6JySoEYu8*cXwLX2)%H+6G(!SBqO$`lHaf zzrD2&H+ckdAxKjWz5QDo{r2i$wLe(zce?%6L4S^e`1<=crWQAnC`?J@MnDH_J?uO8 zN)M|{AwJGTEy(Q4^j%G0!(dN97~YU>2mz#5@SVYQ7eZY@u&Cz&r-}YWmHX|>%X<&I z2M-_ILvE>TjbQ~r_1*}#&Nu~h)`PTINaZ0l0spzoqXyytXVs+@bw!=^L^6I?HxP$F zW_!VT+vuzXE=%ejP2k)cPF6`x8{FhGphhMtKo^s~Dd-nd0g~V4@O$ zwCXz61b1y+7PH`DnzB_bXv6rBqCq`fW=Tm@S!`{m@A+bP4H6c1%~H@En=4&|Xv|&*j);O}VHvbdq>iPqqU<|w5w zh}lzQNxhyFh;zf4$Vbz? z<5za3N3cgA8YO7Jd%3fcv*K6s+CO1lrS{1gI*|NWlND-uk!SyUs?VnqfGxK0sn=9%F(h3ytZ@!(a6b8Mj}JUwn8UNPU0a zx_J2D@wMrxK}3&nR#bAXD{FDMsFXu+$FO&hSuHq{2}qO59FRO<2?~qs|ZtnZ3CsVrALV4YB=33O$@gO z9D_}Z8VO;;ofFeeaI-uaS9XZNXme`7`tZRa(%B^!tJ6C=6FU#*ri{~X=z^AxY3!j? zR?nonGT9i@bY~k*dOAC)T^ycdAblb=JO?D!CQ9Eqnr^2a^#s>BT9BlT>nnO-a6v4% zW%xx+r<+ppBfccUL1pJmWMdokEqn>M7o7u@%6=tGH*nwJB$WDm4VByQ8$)L!OpmD- z+TO6wvsZ96+iX)kI)YK6YlFw&7?lqJIoLXkgaR9;2e*T6td^!t^htJ6tt*;-VEAcJ zbc&6U`dReYwoe);vJfi$oJI?2;(k-Moru%GFa9jN~#HAsXS29 z@Y}F*(QzSW4Tsw;%ettg4A4JX~yV` zZfZ`;Z951`e`@wgnm4b`MmqB;&<2 zWy3CxWX|!#hART&*8tzAFApciU7~V);MyXiQ=lTYw!{ru_LlG={0L^L$>W!@?i;h? zy^nK#fNr1zpngI7=eD6T>LB3`Eto4vEGFqD3RW9iYSP!ZglXBL>x1}??1~|>Qp!z_ z+oo>x1as}M#Z&xgPJU=w0KhbU+~RR$3pg6SFVIr=X32qSPg@O+4K}y_bjpQ31*keb z9NpnraR_kGDSW#W2~!jZo-J;9H+fC7WgJ^#%5c1uT<2V!xy#`Qd-S`SP#Gd!xf8$J z$SYpc!qgH`)88GNL|V$4%y}ZQaSb|W_mqZlNNeLTI)lRxsY1=pU5q@aEXZ{uJ%OJ( z_@^az9lv^@TsKEXPMb;0p?4_Q|SOr>1SyUHO9jD z+IN1Yp`COIaKM?I9B)rya}7jeTjEy(z%V7~X;LQ7&A}R1R~-hUaB?lD_+eO51!$!I zaojyH3?efwxo29fNy#n~?$jttydUedx|5_#F&KqiV> zn(8Fd6i@1AItlwjURCZ!!5{{_FAi%4Hu**W)O{QmwG2HMVESq$z}(+_$xq27k4Z*3 zy1{ibfwBN;9JIlP^Ah__T33_kWD{~y9-O@$Wnyf$+oNjNe`>YGScqAxorH!j^*v}| zG~JshW(owhzpi5z_PR{^3|i2gfx;C?OifJDK%bFpl^ypJA&;1BMg!Y7Y}Yah8pZ>j z#qbzxb{PyXy+tJ1Rc(!OMTFJOT}9N$Uqx6w74e{7Tr%Hnz0_1BrbA5_svM@LX$5M#-X-=I-zztT$G*>UgK0X4VTHMwXw1j2|(C19)^8c61zPaYPvb2{6(l-Iup; zlV%Sp(&HoC7j11mL?o8kSy1(7ntn176!q~zfs(8~n{#%SD+efxhTD5~-h6f?s-t#~ z_r`vz55y(aG#pwIFJl~MFR$g!BpF0~)X;ghPKY#9Y5VX)={kAAKb`gne7cSkTd~i@ zC0ZW8>@_44A=Jr>=bmZQa7I|fq53epg~OY|j$()4+3cF@#tdJGeBU*q#4QU);?e`K zW>7ka=rETfl686(K)^e_KR(8|(a1U@xs1Mx%glgs zl}nYUT=#*+p*}t6RW%g#UPB}?QQ5gUz_G6zQd5hiU`|j*a9i;BAcJbtz?_CWk-!-N zMzE17+D1&|b}RlWS50?e*pnqipt>hjrK~pDj+9(hGa#L5Cozs{> zGx(%)2YeaJKmic$@dx1=Ms;u+6_`fR-k}LWyaU$+VzShcWf@?Lqyq+OZ2GB54 zo`s%*u43>W^OK9QdU4(k#$z9+KrrjR#c15+$u;TUmnJPB)$ z^uv!#3y9(%brbs>6;qTdd6*Z@oInu2{ebO+Ao@~m;*5fpJh3wnsPK^cVThD-@jUT; z@f9XCen6VW1gb|0heMvUl3y%-+fEy-c^drc$N4Z%d1KKR{RFcCkH&VQpxP~dYr)Mqeaq@6X9WxoLSA6 z;jYw1V>pzk&q5R{v+CwSxfw(+x818wFHjEQB3!p=&|REZ;`8nrbobukP9=w4SL~Co z3;~ihtH!(At^j-_BTuHxoaX5EORC$?wm%V)8l;}-n(NfdkI7-lhq#Q{XeV{|L40L> z!wd>L#QQq08*0KK3vINFrMae@L%<$nFqvtNHu1qw$|f3OHlAHSeB;j97v?8#4DUa@ z_ySG*;^36A&XOmZ$0h*TbJkBc!e*&6u58*V&u^vKcN}#~s6LbLm)jmVC-*vFCV9Qz z-1%}q*Axzsg8K=qu|Asez<3FkTx7Iez6w2gTNgEY@%(!^+*DI&@(O86Z>8W8Lw2XGkO8g45>t*$2Qih78} zx{&kASa<5E@_laAG&9L4trjghi+-e?b<=d2tO}}YR%V|~Z66V&uG_djcYA{ z)a|%iD*YQ!w$rWcgZ zo?PFM&)75f*9rOIyDoQZV(SXmIu+cpA+$&j>?^!Z;S}8xMWlgKJ&91Je@|G^0+I%3 zD?Jl~1-T1h09!b{EXF7u_hN+7@o5i~!Gf2RL8>%0l^{*H@vBE;&2p&3sSTNYQq6w0 z_YKH*U+j+A{TemZsL8*Ow)M--{qO-(>bC4Kf@;iFao1_;nIjM8Q2qu2D zG5K2puXd3k?|^2O?a}_`E2C|soI3XKQ@;YM3B<_J==R!1E4BvJ+dPGj69Dgco3B^* zyG_$gI?=GCfD3*!&?p#0W5b=nO(DQ$cn2GCqs}>%cONVYymm>G#D~Dp9CnudeG2G@ zI7j)mb{K#{B2XAf01M(x?q0LXS(I$6d0g&ZqowPWNheOg#UO3%DG9jw&r8#t^b|02CuBo~z)Fbx|I(R(6 zSLTC}LcB}X(VUOVu8A0pCYFqk>t6&Zy`YzBoNae&PQ({sHBPvYnd;;~m&E)Xf`f{w zsUa#eG!%5HTW`ryHUx8&J=_ANF~1m;wWq5W7QhRH{WcUkyD!1x#>O!0`E}xrke$z4 z>9fRtTS!%@2gyKnV-NR>o))>srIOc(jwLa%J;cQ3^GYOuKsy`~WaEnq$t-FKL!-=`5_y=-QDjPF_{y+H}}o4_V=!TwTo{oep2WT)BAt zQfercpZ%=S9wv_T#Tnh$!TaO(+tbk)Vb@qFpGsP6-+O#^et%vxsgcA?N%>$2Q=M&- znJG|&xJOK1()Vjun7(BA)LF-1^2B0~FKuO1q=ZJsaXC#2?r<^zB`GgM)K;qdHT6&# zv!(um3LnE8D*wb3V(3724;ZqE!@12fJJvL>3TWqX%plNyPEmSE+SKG+Uq0V#Pe)Am zd2(n%t?W~NMI(UtS`Qy^d!8~J*(SPpBs=&IxaEz%TTPOb3!^JB`l6ITrN20cnEbE~aZQ;oxcU*bmp?PT0VFf0@2793rf?i%qc3#&i*W zhh}P$1%)Px7_B8&nz_e+sOcMQk#MkH#A-VAh2_6(k$5T@*KvoM?&i~{+s9BvZ0|>- zgsYfxn1-KZX@=Qi&WPl9eAL*LAT9OUD>XDMNJmwv!vbMd4oS@$PcN>QKE4e0nEx;P zIPcItuKmEBGuR1odOiO$)+KA9FANC~;3yY=p1PZye~(*~O5tcLuGD~ZXOK{G#Q%C5FWjMFQwW+y*Tl(l9%Cu4PNXMa; zwNI@wkatWcJDRL%h1ZSh56yiCZDIxh&`Vk5adbd$U zIBLx%*sG53Qp*;p7rr*nD&V`ILL1p*KNZN0v)t?XhXF)V6Pys_wg+$^?!6Joh4-tG zTtt{~5oq8sHkjVX7r+@Ba9^J?6R<<1sIV4u6#trW#;xqxJ{1J$7TYc z)sBP@`VP_y5#fUga_ZTqaNnvKBjVc!cB}CzA;&-ga1aPyl%d zC5Vtnj_c{Ww%cjpF6QAN3R6Ot>xBom@Dw3lr{|9QVED3v$gwrv9UmTqEFU<$Ks%h9 zGRkksVfqxJBV&GfRFb13_bX&KVM5xcO-XZu3XTz{2XM6+Z;po3I2s%18Aol5q3;eM zhipDLyZ`Xj@xA*9u{`x72eSrtEp1j2juIQ!d2f@ zomO!Q%ibUr*~Ft54jI0{^Jw890%M;t1qZ^JUI0O??@}vPJCwr0&WLB~TKQzkVMQC6 zhO^UfjrpZVJ`Z!E0myzhyF>2`qmW#+5gLDJREWEl{V(xrQ#QcbvrUY2Vq-v*#Ns6l zl~70_nR~vX>F7@e!)NMGX4%!2Nt8sM z3}(x|2i#{QL`y^<)YJ*BIW4&@L^R~mU=GuF)f}uzSBVbHXO%a(bd>;ImKXl7RhfB#Fsml6MpkCzH<1hG3UaO~yNMN5U@S`$e$hBTSt_1Ee7nE0Ve%!SPcz zsE{vLXHbz*iO2N@D>cI7tBV;1R&Mszg7PB7`-BlrSxfNQQY=LE1#lPIO?tCpUournnrpTRY{Xal z_a?Y=C3>g12}-sn`nI40r8cb(?z`v+zj2|7e=F83wvk$|n#^|zs?g~e?yOkw731Md zyww%uTa1nF1c7xCwtELm+=7^oQS#HtBo&b(lnL-@8^*FG3u;2ze;8XRyuis;m{xPQ zOQs_E`~_Hs@Qs>#H_uB;>d4{h&Y)B&QuO&{a|)epV}r|yNz$DLC_Vs=_z{_0Gn`^m z6WFlHPcbOj8*SwgCLB?;G`h93f`6Q96`z&419PYaM1Met0L;qhpVWzd-+{?7oj#mJ zqA#gC9K{_sT{jV?K4^=O#-(rDh5a@nLk$-;Z$(#|b}Q5bPd~}Ivp{^tX6gv8N1>+M zfc-~2XNa-la*J+}1zEU?IpB`YQ2-O=(kPQ9KqOPHgv*CtYTdiSuqD@Ay5S8+$eRD9 z7JN$>GiDZzVL0Pin*-tyTd<|(Iq|VdcYXN=T647&*kjywYq}gdJ7iL7u!1*k|ZFx|E5Sa0hw90xFHu0vO$2~Cu_5LxVe9{gM)vN9wcrXO8`9V z6PYd`^gTMem~TCK3@JJCakl$6w9waNTLq~HO*>5&)$_19OIICUk*wlcbDaz@4gb6Q zxm&ax@1oQ;cus=H7!M7uWQgFk_ooLxJQ>EoR<+4_q640|W z4+Th>6wNLo_7GX|Je$P@U(f~$@Kh8)=@lIlvx|JTA}o(i;t zseiRoe40uXQzleUG|A|AlH}}RO{*>Hh)-~^11xORvTCY*#Wlh8N=e<8LMOK#b38D; z83@yh%zKfkSmaO}pc0|u9$YLAQ?7<+_)xPiIz9l3asS*O?Q9NTX{8*YdA&l%GIHH# z;tR{GdViBln~uA~p&? z$uCCR`jeA_BGhN++>$0>2 z;0LKX)Sw*#p`rUaaKVim!_x*c-z05?!Ute$I%uU8%`SFIxDu^!!#u|M*W2?e9D&V? zB21)d90VtowJTH~M(n`A81Uu`WX~38YG0JsE&q%N8x76j!xprq;4mv=SnoPjOqGP`8Xzc{cxyXtHU5fUngm};+cYi(m~b)(nm_19Osz0P25 z{)t|DeGJEZQ2`I3h%9SLxFSs7$-Q%U3=ejwm#4$YOQo)05$?kyB9R=xF$QM0Y}rJ* zfgpR>DUYVFz#;v>5(11ab7jD_aMU8WZznoW_6s#dKRW$h!}% zjdOTZH!%d*kE|a}>I*f_ThAJeg#n}ogWKT_x^?z=4kqbf+KVh3-A{DIXDGPm+9nmk z6{Je%q8T3SY0)mR6gI-~LC}tnuIWcY*$fbA+sXFJr+db6w(&AQ>`r`8>EOBmOA!pm zWhCfkF*brzpxMH)q|v~X%yJFWh((GnPik$H`URkEYuaW&U^mB*zK;&adpj#$Lj)f7 zC!X^2r54X2AbVP$*Teg6zQ8;W@erTyfoq-~r|b_QfDfn@TYMQIb@nQI_@~7l*kf=8 zkR1jD`P+rcCqd;G`O5}8bt{+c$Z_Ubaj;R=G40DUlq?#|Cr=Vk^&rZNzHhbYQ*X4Ao}k>D^X&K`%0$ zXl-8Y-0Ey}+Z)~WjlrP3w%+Lu<~P^I)EPn-y9qrScnEaGV*vUTf(UOyxY^}=7 zkO6QJOH2!}w?sr*1o|R#U2*CS?TiUzFyGFhN7_YN0T_*FCaSeL>Ghj0>^*pl6S*(u zU{}PixC|$EmW0lB-IvE>y`|J7HR3+qJU}JLz38!4kr4CP4Jzd5gvNB5QFKREi-^hu zBzR5j34oj;FN^ub)drA;32sJhxfzKT#hM;!)X8lSf{$G%t5p^{W${}s#s$YO9yX0A zQDM9P)-xlogCl!_{xGnzQgCcdUpBfJYr2nkNCOn^XAoxUWl(^Gwl0pQhfq*u_zpQ& z)8^RHIcd?GqQ2Mljag#|6Ysj^-n(o`g(l^f?z($FQzkqC;%Zk6l{iy6LLG4*+cuLt zUY#|;#cnXc$NcQ_?QncTisR;58d_|hU7y8PX|qq(I|Z~Vmk(d>bbFuNc&rx!g>%^7Jatb{%SQKEdnJ*3~U{G_A@A)AuAa$TH(4Bap*<_`&E%%Wt}nq_wd=#4Ui- zSUWyfEibafLXQg2G@05$o4RWu48dqfsOd|6hb5wWdTy80v0d4#>j>7MVT8C36miwh z{$yJUo#Z1@NZkoX9S@8SHFbj9&kUoDLlcOF1rC)^Ju>hRsdrv+Ut<&9j2#U#u(o7V zSb$+QcnUrkO_2u^d%17reTc@0o=0$kAu^q7O|kyc=#>x~#-IAkH_z@}3-y$i4#_{9 zQh;UmOdy4XhG2c&nT#!G8JU{NhU$Mb&?kZ5Qnks^3#Y|pN5~}=(9e{MgV%*pFNE7< z^h_Is#Met3^xo+S{da0Gc&7%d@6=!oG}^ceZb#B#%6g_>nk_NsN>7k$v2w+WmaCc0 zvK`e{Z1?14?naWhf2IEHH9 z9P^596*QcRQMxk~K=sY}7Z37C_wpQ~#*xK#lc;etiH%f!2uZX-a`QBxyxqNsBB+8{ z%1nwL`DIao=_M&)XD@^1&0bDus_V=(#}TM*^3sdjAR;eP)2_L%tLmbrHmHA+BqIJW zm>XWMRap6p3|5bw+mshMsO?=a@bdrQE4gliy^U{&J4giUVTQ3MhqaClk2G~$%X#Ik zorB@YY2Ks?npWQqlPb5uxakHl1Mjl5Z-i(aC~&u({th-GoJ*Mm{z{n5*GtHJ!<2+( zO`^{okR!{3{3T+$1wHK6bYcWL8o5k3$u!O2PvJDaR9097g5cm7s41P;qdp>v z2E)T~#HKv9N}jr|45h|JN>!Y*9A^m~*#zeyn_6e!8w!GGbRa;$E7wWb(uzP~RYJp> zkMMNY0PlmL3w)=-R<`JPodETQWXT}Qc2?6QVK-_LGu^wL@-lY(RL~UrCP9AJjmC&f z2^4TE;8{X+0u~y5)E8R-h|7RpQEv$4hKZEMiOE{E2#528xItG7OX;b(45@bTokd;u z^4rOo!CzyxV@|$xwSKy(*}B@Sf#!4?A;AyHWy+BK9Ht@9=(tm_+AYQT`;z!;Tp~=* ziR3&C^lI1u+wCC+njgdfJP=Y-SG(3ByQB}Jg>H8Y)RV)N^Q4ZJB}}h2L~Gl@s?39+ z^;wU6E;=|C*R%3`U^yq-%UDi9;=8!fD#1(q0g#C;*{Q0>BRH8s3&Er)IC}A9ghS(z zz)ollckR*95D6PdtyGx>0^0)%W}yn&)|GEDP+WXUwLMwyt@kliIC_*l7|kGBy@ixs z>2|J&6(i1ig&9T?wr_DG3M}93?Z?OWki0|+a8Y#-1IwwypaGJW;gEveuy+`axh4H$ zD&wHa4lLyo7T&K!et1hTC4QtX+{J9K zC6sF%Ie}{z!Yo3X(ncDZ9fO0AM}nc*Pu}E=j33Q^SRoy^kFh5mBXKp1q8vVW=>@XL znVO9bXJ~+V7YWtu*|myM@-(v?>$q+~oG-K_DR!ML$Xx9Nby~%9jj-*QlpHH$3eXH^ zoWPdHu+7?)n>DRw7xqG!4n2y|tvXCcF2-&Ju{jQBafO;5!&U1ZuEA28=+8`5)ip{Q z(hHezq~&g&M&T&RP}74&d}ou<2oAl>dvP$@-aEk=zPcVBg`;OE24MDaaOSBYq*;uf zVoVaQ+M+f>;U42Xde1mbTJ#tfG`1H?Y5~LbUL4I@=Hp#}Y7Cb1dk0A~gwOmK7|}o_ z#!vVmIp@S(0gRI&>*V&q@~rzg2zNw9=Q4{-(2=HaQ9vcNA9l&p8ixYfg2)Qc5bkrB zkXG_rGZmRkr9I7=$FSF!E0|L}@%UlmC56&hq(W{0(iDjd8Iwoz#}~&8z)q=L7so6n zL=RPUM{9lpKqt`+1?WmX*)QX?da4~`W<5(rlfgkBR%5ulm|RBD=cujF_dj> zcbahnj%%22N|t-aAf8efp za|AWs@m(^OK@HFW-9TMa5Z8kEkbEr!7S;qQzQqncL?BEntLaI)B4fcA##JXv0jF|c z-D_9%HM)04Sl!&B{Ti9b0P^X?>R3&8$yU9CmLTIOAafr zv91ToVQ_UhI_mo&;?$au?Se`fZj+2kQwla`wiPttxG0>V_t5NUjEu4i`t)Ih`D93y zZ{AK8gA4Uau7q)}qlUImadwF*U-Z5-&r_mpWLF|6c^mt!he4u4coM>TNm-^ijlvZ= z>=GKqTpHH+;e+e>gX`&>|Ko^8Ghq2a&@NtuT0M8BDek%|Ak+jGdm?MN7C>9i8xPe*u~fD#!E+t*}o^=ZOPBiy>{6gOpN_+C$`*3B?29g)&;CmSwL(o!Y!$eQ>5dRtpqWq-)yKxS=f)wi0AxHp5ay8rR?_9jo=)@=G3L z5^6Qv7!G&Q@`?|nZ!Y!WXk=<*h{O&O1Grkl5t6%AJV?zpsJc0L2m8Pd&&_G}6~;G~ zQ2R{d3cZtFiJx$ccoXp2uA^R&$8fz&HQUZ61ks)gwax>lm8!gOig)yQ4J4<`&QZzF z1sx8@Enj=#R8U;1xc%ZtbBkL*dPXeqk#6u3N`x8@Mg681#z|?_IK{o1VY< z!WWGb)E-89hvDkV!a3Ys(|%#QTYA|#>JFk|nNZUzq7d}Bk0zed~Wkjl?(qXay>ITz8 zZEYUDLG7_K|YB1uJ~GV}w*#Uur#? zUq5+d$ChuM%wCCMl3$|3%fj8s&1`8dotP+~yD1dt!!~e@0)L+lDw)nE)4e04-+X0f zdW2J1f(#1$gKk&D50(dcF8am9XP|uMPtt6VsAxPS*#MCtf2a24>=6p zV6efJKiMDMZP6JUZvH*cX{0kaZLJzXcFjSf8&!m9+T799;yqlDtY?O9IVs3T0efs% z`5Feg;LyTBDG%uljt|Tf0cvw1Gy%|TN%p<+n=B)3X3J+llf_I?kv86o-4sf}m%xn4%Jt$~RjW&jw;N&Fiv{F}DfbjNp06>2AXomGSMZzZ- zBKQwovTZIbava!m4Bn8}Y4+56eMFZSedN~ZR-cUhD+S5GGj`l!RoC?i#6;;kL~Ng? z?{Gy<9TQHK4r|_B<0MKi0Q-~x(_HXUojyNmY6Cu$VBJ%zh_H!6HIpld%*H1rS`%0w zszD0g@1SX^gGdRhU&-}PH9Jd;cFE0|ZLw^l+r!j~e%tPZ)L0Of^fIOpgz;tX=y1gf z2^rxh_^Q}S<_`B9Y=T2>1f3FVgJ>t6TQvb0O+Rk|s1C-svdIwyyhC{E;4-b_>6A66 zqsGQT{IhsbQYP)K%OuZ5V5UxQ+%dN_23$Hly&LBQ4 zkMI4+98q%kKI9C^NC6!YD$zAv#2~g%BUzbFRsxgax{f9Mv4SX z_s;3g{=hh0a{b_RMH@p(BxhA;RnT^@UWduU~9nu znP!v2fj??p$lwH}@Dkl@a|2;7wl|GAb&kk32sQrkbmyqWsYyYwl--U{zJHV)NP?Tx9GcxTqd~y;{kg4 zr)MC2xswDjd!^DZhpD-iQgGf`&y*GgNX;X$Z{Ypt z(C1HdQyA4u399zBeRnWb!DURldU9DWmNkMtychxZ@=f$l6vN>uX)azA{Z3{JqFmI& zxt6z4dWkSi6l_(%nq|8^V1>HJkk4(O$)4yaBfW2&HiH zu85FEKJbsOLn`fl>H>sE^}+3azOSTidkB6g-1auZEW#>d!3pT2cSsL)eZFs<3dhq% z5e1%`pK$6xja)c7?T|+gC>$&-oMn(| zF@=)!=ln=&cM?oBX#||{RzW(O+tgF(F7w4*8oU6CjcHZB^U_K5(g|t=;9&%*F;Y77 z>4-<8}v*X?%TxNPjz^ztR(|GHO`6@KZj{&3?MwemOYqogwuII<^!714& z4(D@ceyw8>x9@%N-edS_IC&5VJAqC{M7$u51Ux#VR7TqboC@qrt(EvoVp&qNxHAZX z)4j>=>G2WRP-fQ%NB=Ii^z0jGY4^A!_q2v~3$}j^i{~y_!pC^Tr}Ht!onnDV>jdSg z?=P9wDFMgX_M9MLpTd;cNM=??*SrOH>x`+-8X6>M>MY@#zQvYk*VT`qCKPbJ>0pUN z78R!%%sWWEtq6BG-4SA}y&eV!3hmO}{liS(oE#AeX6_yGIA@Ks?ZzZQ%v*MdN`19l z7u|ua8~5nZGBE`4rJHIW%TtO>*@Pk1C^qhyCCFv4qb=x6Ctwbz#uRfkLlKEASo;&+ z(&B$f-MVBh1)lxOEBYW3QbsdEAUc>J@mE$=i@3ic_-ZyCnq|vlW>C-D%MF6% zr{aLwWm0iKS9F(&12sRzjcvQ+xA?GVd1n@q*7roqyONUN7_{xe@=g|5yW}3cVegtO z#cQfM0m5vJx7=xzKBFetZ!KA=d|Czzm^3*q;)!degc6*4B%l2bvt*Hc5DBFpfbP4F z3aGCzG=QkYkRO~wZaV&suq(eL?6J^98c*?yqYKw<9(Mwa0XtE1g_3|3F%Z(-C0Fz$ zqtB+N1%tH6%#U459vCW(v>#iuVS^oN^#j`)??%2UfNHw!P9?dEiIg)b$KXsXs7(`Z z%gcJb#sUUamThL9*+qVa`*XRDBWuJYxdbGbZSI+emWi9r^|xvyZElbnE5a#o2T~ew)`u&M8Ye8m>KXIwC)%-FE7Vj8jXVpZ)67tdSOLeuE)W(cISEaL zrA|D7zVNn|?uNRW#zPWBj_gf}+uy_SzI<({=shOIb(fB6Hw9_&%B>cx3~%SVee%eL zL{ReO9t)#4Q$HgaK(98{1n9%`bgcjVfwGZDOVL8B`q{P#CVH;gTDBQ2KE1w4?Q-=P zcIv}dyx+haY-NfzBT!E#Ul<}ByXNEx&X}hsn6}LN1j~Mx=KVMeL7!TJ^-N>a!a+c^ zaTkM^=6bSj7^$)K5A4pzy8!AP3+{~p+3WRL_&0ikdWh%-foB=>5a(3(h@t}pP#w_T z8{=PK7RxWd2a~A@Jviv@T?Pd)gBbF)F!!*CJ85cipdK~Eyd+QJX8j%bX?RFw{+ zMW)Kd23iov1$2rC&XW;)2j6v zEu#^pm(&qGm;r_TKsYeu^^P^S(9O22G{0TnVBIEb8?5a@=^mJgM9%Rc83MmA9p?lG zhr^DiVv;_SRSjk0qrLFZ=$&nlird%zF?R!bC+V}famu%4@T(@xtkyWzD1e={UzN}H>ix+mu^37r+F})O=RfAlIgxhvbm|Ampkllx2hwdTWPdua-VD^=s?xN8! z5@DKSVCuV&Xb_cK$mhvmF9HL3q;(hkcaKb5d)88A$X%-lqm}nLhtB89F#X{Kdk4InzBHyfrK?aAFJuxAPA zQn;p#!!eq`bQCQ9xY}BgDZP+U>AoKFYB_h2IOa)=^(K0-lmX^&>8@E`(bq*<*O2Y2 z=c~wa)`#tYu@x94%m*KkNE8hX)B$Zqikn$#UG5Iex?C@HZYI!SF+MN#iEeCAe`c`3 zcz{o=>QhU?ytW`JXcGbUa~YdxpR!ZQB5iKq8YpCpoC3S?Uz9Fwu^J}TVD(#ZRGar- zeR%Nja(=pdusH;$fb0{S`#VPp&f+EX2~L^tE1aEd!4h$RB?O6ufsVJ#bQ=EejBfVU zd)wQ_>$o3aqEoXjOt&XEvpI1RPx}{u>Rm(+_mOTqKSfC-dPvD!WWbyvZ6uhQ+tVfv zIsxiUwrpezHUAS3(#ejS=gP~PPvV;$VaeD8SK&fQV6h6u`vuLfDKDZx+o-(oecIS@ zGk72~MvmhJP(2r3g_LroKvDp8gC629aE3qB^kIUVz}HRH?cfvlH;2QM1MImi86`CJkFR6zo6H!6_awn3B$7P=?8iU^(2WnH4=(DJsw8dTG!(vYIe$z z!=6AA$l zmR2<8iw0bKBZs|q>NSLN>|wyQwgEq|!~O0tL%57t@h1$D4t6Dg z>4+fhH!P3{)1-?2Q$)J6m)L5FUJT#D3U*~<*i>sBWT2l$p13S(m>%tyI&chw*2DH@ zg_m=Bq#A^6*&@bcO<&6~CuR;`+BOA){kD++k2FIagv*~8l0JL-t*)zQ6s4#IXx>T5 zXb1Gru~W9l67YZBh9zq>VaIvZukjBwt_=4#Fqy1NSmAfx>mo`9)O*BaAq01P4 z)<&r5$)ck)ea-I7YT>|ogkgaHt;@y5ZWd0%{ln|5wjYT#ydZPNa?2_~A z$)kG@AKklt8~jmuiF^x>lxo(zl_2Z4c5w5L%yB^W z`07wxy(l8W0=Py4cP?qdw*XRO-^eT?sYzl>VwJQ$EeN)edkCQ7dpEV)*yl;tXwzh# zxX4(7=B*Wo-q}7GTzeNBCF4pAZrcNL1wH|bZrg(T+C@8cEzFOlGYv}p`p{2TYKEXN zQ+SHOidlw$+0%(6QUyb>CX^*Hs$KJ3+M=XMd3O6`bDty@O18K(ny(vAgPEs%=v;Aq zXq6r2H{L8&Nuq=`Fn%kR*FthUjsXJ#6#jp^Ym1MxHDr) z&yc}6D~o2F1gKlM#J3RNyaO7b#b+cVkzg9(%r!g}ONsan9#_Iv+Bl=#bkX?cJ{!jE z1yybRUA{N@f{=<=`=rHRDjmMQtI<3KTVw$GcV*VmBhb-dt1~bgv{XdG6p4)z9?Jz) z%a02U!@xn2RPfkBZ25-36SGs#>4a4$sSwZhD3)2wS7$956 z51S5my~Y(0VG&714;m8L<$44?*r-&L$I^W}fb>|chiKg!O&863rfo#tQEbPDJ8<)+ z^SJo+;u`iM?9+1XP==tjE1M(J;5AEn5vI;Ww+hPTx!ZFAYV3O{OP1dz{cjMOFuxS? zGX;x@QwGr++y49Md8|V9qf~ z;~8P;5R2dUL^HM$J0|dM4_}f88zd+Cqa(7J-?(tq=GFaCf*G4k2o0d(x@Pdtn!02a zF9x$I_Ga`3Q71HUtC#L>-AXG$X9%p4ENR)@!;z?)hr>~Fas!Th^ou&Afld91?(||$ z^opJsbjkF(a2}(>ek`h{@L^BEDA!-9k;XPs2P8Uo2AU!{nH2IlI7lY)Jov4?@N?@N zmBuqA_1Gqya+F!_>?pUxqr<(!+oLIhE_e10C&(dnd(v$!gY6yJ(TkApu%P_}Av|KF zc`mM!r^qx45D{|>OVte~KlqB(1#={!LS4(YRf*IpaJ8k1{WTl)T}f5q4sHk**p zbFE*f>6^Hm3PTo5hP5FJ&KX(*?%0JK>v>fVAxa&=$U)^(IVCwvUlPlcf9wB15t*X!#?_s*YO&reTRR^B+f_`>}1ldZG+_g;N4zg+1s4+I!+GQ2!Y%MPfs z7?|vum^yt0ELgMpn^>zq$wOaK5*$~Jc(j^Z!w6&IL69P&3;iEXF4M{nCk6^gFA3Uz zNKKz=|M3R(+?mZO(U3uX!V@Hx@v$XLADv1I`tJ0CKAq8^+tYPR&SW2D3=YwGI)6OB z-Ww_-@)`V1Z=cc&PkuBC@ykC@PVY=JW55AgH0+4^MzAFBdP~4 z-9(4Pwju8KCHO-7M?su}I)fJ+gZykx5VFm~%{!QyyH3ZMYb0DU_QH?RZHc?|ik{*U z7!?n-Lq;y08LaNGIeK;D>P*@62vhTLN*a$7X+9-Qi)03=hN1;<03 zL(S)p8a~Z6I8L3M;4v;9w~?pdV?*~Gwn>z_F9e?WofhrlozW>N8%^DGh`MPsZ4-(? zdiNa;U&(G*gzBcCrnf9>xYSyq)R4QL1guZT|F_2Jqyz)g7#^*5so3n$~7a!g~yS{gS-dcI?{0nbfx1Rf$ zfiZ8=Xv2=fNDkPnfI>SK(UH1_U?^6?nZ3^!P9x#4QnBbsGhiKTGj?(=_Qmg$V}~Ap zJnSGCDrx%vf8S3W6i*!dzMr^SJaH9IB)#y7TFWFS z$5hBwPm!F`MnXug({Q+|k=9t#k`vjHzI1%-XSBQav~Bdk9j6<8w<0XQ%GF@WA!@bh zv4+*no!&Un4>k3yre4};>U^+SES7wnlFSULmy`GmacQz5d)$)!4otA(mdM+H4*-+G zHy1p-1Jq|Ndzpf;;~dx~%t$MYvOMCb^A+LSoyf(9%4X?-MWCWiB;k`qM}rLK!w{<) z2emLFhS*Yc1L}!L+&ru(6}Hvhb&Js*+L&2mL_l}&!H_AbcUn-Alpy41ff4L<>)!R@ zlh@A?W5hA=YuJ|3{48d*PE?@v6q2%!pb1ajnLDd334p$7xtQsa+K7E5*x!Szuk4rU1wDZ}R7OT1 z7;`k--<(3Ok#9pdm`#qfNt{EtUgIBhWsqxm0G?q31rIG_d9jp2YYMSvV56}Uec;46 z8}SrgIMf;*r04yd3Jd`*fony{VwO9`AVem0j6sexbP+1Ox3A}$7Z>U#+(vN*$(%m+<|hbj96o z0Xr7q8jk2{Nqe>XTINKcsfBJO*?7^h8pVlNQ_=qET|CbDyM0 zNh6i>sYzSSAyK3!zuufQ_jM9Hv%{K)W+&)yrg!a>nuNf)c1I9@5-u4pxj-5Ui1r8O z7?|yEzO*d=fWh==ad*L^a6zM5LcKQ$2fL8BB=dG{A|Rl;xSVCMmJOqaMWWy&MB({4 z2m7|$89mMHO+F=-I5x>w-KN`!-Q@xDuDb{|Eq9|aU9;5&olmH$g+=Ku1PQlt;<*5i z!B_S%;h<{9UWLzl-h9Y!8)~}jDYx?5hBoS)Z7o^Ux&^HZf6;L!=ye|-tEk%sMYQR3 zre(Q8!JaD|;t@~Ai_6>3&$E%TFZY*ur5-2Kmp8jaMVJu7=`@w?J=f!TdRGy7dzrhO zL`9!(qSiv>Aj#x3B*kvJsP1u{kd)7$P)vT;UH1*PQA~=k6sKuom23zX@I%nUY_$}SCMkiV;JSNRh)74ydnZnVcd)z@x z)C3i(31N2DMW@?8KI(LN;L*A}(ApubOp!%GOm%cKAA7^**gF1*cC{b%hp>;7~!0+kB&sQDQfW4j2~w}jO( zJcw#xH=LyqHPtkj_1MoA@k%|R?pzbGA8p)E zMp)6~#hDxxi1fZBuEPRiGJa&CyIDYJ&R%!fD?1mB>;n>fj+7ERR5Y+snt%yz4gkUf zbC|8XuzS5^OD|USL~&Yfjzos;yz1}NS&{eWXOFKzq*Lz2<`WbK(LiB3y{20^BB@4# z7rBqS{&4}U5x`pAIyySWL>y0%keTO9;y^>DpKAq>*aRDUVa!wq-(b#DXHa&I)`Z!M zcfxxen^TBhIl9Yim&Yelh@Cj^XcJnM*+d;BV>BLbGY6i1tWlmsqut2gSYTPZ?JRL) z8-FuYgLL)UJJ_(nH@~k9U>Wg)BxFf6LK7HwiM*s?3=I?r>eYr8_Jy`=yPhf_)HI!< z{MadxLa2*>VN`vOE}{CqlF|fWkc$tzvmMEmg_yN!O4$T9+9oR=<~!K%CitSgO+U{m zXN1**r?yu|>$hqEL1va^QdyQ*(eA^B9C9m}Wa%nHuV@^FNybMcj+KUA&SkZ-T78$N z<5|=T*0xfpWfw+W@)ZW0j4AQP65wL7)812FpsLz%!8_wiJJi%0Gr1rlK41aYiR~^m zNF!@s5*3>H>=eM{hNw%&H9rqJru2idHKZu-bO+`<1Dc6w+?peRta^u$U#Bhm7H5)O zTM=sd7E>)e{lGftbaO?3Nv}!(wRkq^;0e)t-_rXy*M65Lr1Ecav)9?5TCai$vSCyL zC_&G7M9=RlSr!*6lTOfH8+0(z2jR4WpbN6xB&G%uO_6h4j6OQqeaZb8;5CFJKo8xM z!D}_Xx_hke<)J3H?Z|Y5!y%yhUo%b0z$D0)_)SUG?@~@EuPH5$viRlxJW(5#@j7Lj z1ksFfF@Kjt$P5e6Tw`o=mQL^J1PA!=?1(&_xv~^GLm6!LwikMcPL~!GjlIHYC8!!r__(0zG`XTV^FwiLD`ZwrEtU-Shn z8-<-k7(LkbV7^A*hsclxHgNBF#kS>}FAS%j4E}T2-Ej4kP2q!jH1TcUh>JbJE$AJWuqZG#mO-;}z_W1>!Lh&skg zb}U;jJ)^BB{k;)AV^KPe*LAuQ(}V{%mrzS)MEjD7h_gE{I;)K-(RGabCXV5OBj!0%xNa;X)u$DVOm|)&Bw3m*%m>R>%nj`#4G z7EqBsH1NyBvgFnv3%D7$SwkOzaaGyDTzfdSD+`I_f=fVZZlB`bX6>-6xVmqX?i4tz zAypNGEgcaKVa%xr&=f)SZowIGYxGT{gzD8A6MB%04tge$m^(=?=e!ZjCV%^s^Dedc z^%}-EHs7FE8l4L2209+;xc{lls?ZWuvHwvkk;(}z;09}ls{i1{9D(-2WN-7W)2 zeJGLH@^=6O$&b{Sl?HgbZ*T$B(;(Ueh4iBMRf4dbiEnitsa~Teb^^!tgM1gbXM4H_ zS5NHLq00suJ#Js_NeKa}WMuN(+|qEH8y7S-S*@NKTkWpW^hymiTU0l4 z-l9Y%kr4O6i4KQdMAYRxa0b$#iVk>qBsQPCc>(lUIGCJ(NMqwTJVuHNX5!uJ;-9++ zx4fSE5@RxyH~g-Y?IvY(+TFgW5Yy<)_FsxYPE<&0y|@A;k>=tE7tTmM@&_T0$FfH1 zJ%Q%w77jd4xYGit8)(3q-rYJGkEzBwm>jCLHv8PHkdFB}@o2j26?xWwy{Hd6&tUouK;* zRUwne35T18E0$nDLYAE3s@fYJp`dfu^+KF4jvW1cx-@ggAC62E(QGK1o2jS3kSWNo z=VDm7*}gTH>Ob2TaQILgY$5ZxX_rgt>Xu=uRGb*oCM*uHY+R&dYi@56OxHDt$uK$R z06>;fA-Sv`F`J+A?EVOn8~3k=XZP=)!-rP)u>qoIk%X+Ni6qoCOwdX3wuIFN zfN>g89yE04Hflq`UP_y}claVQc~iAN5`wq=^qf#TWRD2ut~=YnWCO_%M=8)!@tP7>D4 zSVOwEwlSt4%{ZwH2<1K@;`X_W&^8_z)5DQ4U=R=!QULt87{Y3PM!W6P6fy}8jdxu(tCx^=g`ra{mFLw&g-0?xL3)gWI%E6$?83{>z%q-Az`N6bd zU1u7)F?tJlM;0kLFV(8*f$1vO0yamIR#R(yA&yRSY!7h9Xcx;c1MJO=SU z#C${pve)Bqge0Xg3XLM0^|Bv&VT(K6QrO87Y}z8X47;=|J1`Z>3`K%zc80uodDTZn zDJq|0Eop>1Q3f84M_33X(E6=sVg#924#CDdI2)Y2qLJj}B1bizTfO86rB!$VNAr={ zc(GGAZ2J+muz1{O%j7U5wiRvn)ZX>U4K9@zKs`)IKLl5Z44??@%Bwb$@uUNZ!#wz4 z&BWnWeF#Dgs)jfm$Bxt{ql4_#Bb=#%ALYeJNrl4hLJ<($JT|D<1&azTc~J9OjS5~P zwZ;W@8v_zt9sp2ZnsBgLa>wMl+L4&dUWR^lKa<6i%W9_go1ECJAdWCKw?()MTNK0^ zq{x^fN5-Y^G=6n-%#%8fwri4w4eM@w3Ng^o>2ZEtvs4SzK`C~4^diip3vBjN8d^uG zDbxut$1S79j3;IOpTi>^UJ`8Qem;{sx!E1^b5qU_NyAWP`N6kHM5Gy`v+n+pPDy|O z9qF2nRnSjR5Ruf))^*O3P^&+fJ4ayoK`fQxD-nefe%HhTwW+7is43PQF1aBonbwT_ zGFFZbGoV*UL810kx2d^P$Hw6G2ut4TM7-GrIRbTqQ69b+CYeBpLe-XMkqq!Q`iY}y zq)KB0=I-Jl5fOip7}B)>!3Ld!^j?iVJfV0f@*U{ETE&G!Uw`&_UAJVqWdZ|77D3y( z2*cr43)DKCP>(GP1lzY*sdo4u??6ID@f9Gb*9!mB!8rEA&%`-k1DwgT z1Ec;c$7t~7FGIRr)&!Ev_|DN3r^Y|E8Jo0%xi&a3Lv5=Guj}fzTNCL4JKj5_11wkS zXtIjEAE#w=5es1yJIpOgjvFEORZzyk2N{uOdt1oFNe5*-Yx86ux(NivxWXz}c&!tm zrY@wRoU0OILeQrLlGm$V7!^3-e6Ly3sK#8gREH3&P*VpQ{TNK6(GEI|#y0iS%|^v6 ze^Mq;yQa~0mGqJmVXYV8L|EQ19e1#6Gy0u9OUOY1)SHE*A-_uCEbOomY(B7k4OcFn zZ(X!L_OaIfzH9ryZ2(gdwxEuZ4EPFy9_{4~)36n5%OHBA6W1JBlv8EK+)@1YM6k?c zA?#%4&G0USA-X9*@CkRQQpiK0Ng@yFL!whsJ2MZKFnx_?$X&{P;sWsw`$nUQksFF0 z5SNPbx>N3NVDM{hMl-_z^ElFr+R663d-(gy_RgKbzRyR?g8-RDz$>P?>a~WFAj?QYClj= zvwKk`MOX~kb?!>-G3xQU&9&pKi&&N*1Dq=pwC}>r%UIS>t3pB##nEGLo!N%yX+Gjr zaV?ha$rC1ks#{a82H4wCS0my-?8BB23KiOlyE+dJ2O!+pyggdsf7&V5bFgwEJ%YsXx#2Ga0_4?JNI37N-aBx=zwR(X=H>V zOp~bQ&Y%Z}=UCN-q84V_^Y_FJ!I*wHGpS9e)pwbD45ZFQ@;{C+b%R{S@BlV{l(>Ms zf}0NbOvsdEojs{ZcBM+BJe?LIR$)N^JmuxZwE{>q%|Yzl3fv{ z6mQ;Iw-T!`rse@_M8j`L@T$21?wlMWqv06Vo+6gPkj`uhVib!#eH=g)N8h8^l~(@ksvsBZEqUZ7)q zafc*t)_IIC>hjD8XTo$nG_N+WM1iRR#Uo7bsfj*T%Ts(8mz@H~yRZ~MFro%mws4^S zKA8KRT#=iBFr~z-+RLVksBU~WPortHV>Y%-Nlq}mij#)1W$$ngsWITszk7OghzzL6 zf1Tu-e`T2Dn#UQ)CXpn`!@`o%;cM`!^`!7ehqIG|5lp9|FRpw^b#X+oG4NpQI6$f) zM$$cW3&N9uG%3qs67tzx*2?D!#ddV*`D?W(HJDE_gLj zv#NFiJW}iH$)m^D`|}5{UcYwQ=^sBjd+_*b{^)UBZV2}|-X9(A0D}OYZXV8HBAqeg zGAIEZL5|;kW4=AVYJL29*0?-_4l_FzG@);JGbHT958u}TSs4?{G5V6xVoj^vPXOyd z&R6GYQXURbt#`J2_i;YlcyD~?A~x@W?xwkMfs4Tc6N~5s>HIJw39#2E?kiEmy7o^3(Gd0Gn zxXVTk)6*y-5XWhRlX)OiG?sincrItr-~nUS&D)mB5s*#>N_TNLFSmr6T-ZVVB*i%< zfwP}3%LRwA<_1Pxmb@HbDqqo$ZnpI+^WAH$h7`KrI}1&sX78BeCU^@Hn5I9HwXK@K!Lf z%vwL&JeY7Jq0yB526EnzDgjDC$-puFkq?u(j5lWf^B_4-{U>CmTW*^+eUF&8-$9R= zM$Aj7(CWiynuLL&G1~5q9DYbds0p7$jcnU(P8%6v`g*v3yZ^VJ^xd}4vWSXC?m2*L z^fC_TowC^|w^QB7d$80HWhrrBh_X0NctE?$ zD5y(PzqSI^-?@F=Srb4LpEWVk@_9O*8QG;Cs9ubTh$0hk!OSI-L;e&qmiS-T?09H{ z@0X#b`SH=m`G{g8GFffA~!MMCjvu|K7Q^;NYuT+v;LSb;{$UX)7}eytupjfHC| ziHi6l%Rs(NsAz6bg~)xT_?kbs*02V3s%QHMLCm&BOQk*o;%0tZ38W*cwb<*skD*YnHFm)7Q=(L!EVT|Hk_+MrN#TqaxP#0EVHMpHpKieQ83`J5QnZfT_9o-<0hx z6|)Tu>UH80d!yhNVRiEmBpsa3$hjCP+s&5*29(lCV3-PMZG>x6f1ityc}7X2Q>KO} zj%Oj2M8>Tcskg|ZFKOYLX5>X>{n`oxQ`C+Tc$ZmpT9H{~-Dsa5L3qnE@mcO2{KsMFz=xXzD-^dMym05!8RTfr1 zuE3y)Clx|_k#&vG=!9jmd)~sA4#Hl{MJn=W^?Y(b7U0=_W1AU!qrnUA34SJ5tP0&U z?#AAEoT*omJ%zY1-rs|7P=aB#jH8?>t@=EB%b}th6nSJ*YocSnmDThTiW9CBR1j8B z5Rwz*#^4#4h~O6RgH!J{NZ-k0RW0gW6gbz&v?fsWXvII4^}+1_#!oTBP7boJ%gqq0XRg68m18yb#yrR=xmpoN103<_mL zBCp1mQ`jGa*($e2j!_MZLn&Rs$?}852~uM+Kzmr_o5#pty0`6-*(OsP8G-hDjDMPy zpkk++#`NXk1YIN{(O_@}E&8h)6SgH1UIgj2?6&)QG;Q1w6dQ+Js0l?)1}w6cQB?Ie zH@B&u>KV)ZGca>Ri7g(k1#J$~i{iZNAPCASQ>=*FgEQXT*S)+5+qF{;WXg7U0NuHs zx-E0heHWXu);%O_K|G)_SQ`!aZo(ODzhG>HS4OYF6+jAW=qs!KCLNCdhfDbFxsU(S$wtWqu$jc-6adURIW}76@%KMKG_=@ zFjO^x&ASdx=stg28;{96UFba^s(|Iqr?G@;Cb^i<+x*ZQq`482M)wfSiL6$92=(UE zyWlm`iaH1pPFn;*GV*sP0KGO{qn%b((}VPSw^24~4kApCQ*+w7td(E2q>;MBu@TeIr`jt1(wN0seO)hABCNe3a)um3 zT=5a?xh$6h^$t#6)X#QljAnQjx#F&3*6MVP+gp<)bEIl@&PYwDsXClZUa=au1p0)0sq_YcYX|SS`2qtJ zqQ3`J^LkPm;T(bFYU4vco!pLR1s9XAxW~s63cd;@XZ-%lCwp*$IK;lp5Pp#h>c@u* zPLml(m}0|-42^Kf+nl`wyhHFDLUp*CHC{CWV7#1bH@u>mTg<6*kmb~YtDtSv^tu?% zU`|ChAkNUaB=n9>`oRKA5r4J~Ohs#)#4zM|vp$QDkq=P0L-e$YBULeTIfOs(Ot8C4%uVda|*@WI|FQA%p=fHWrrC zswsmgvWMc4G*Y+35@!5WG*P2T7c%F&Ng2VWo-#r-Ec(~2W>&Ehre5hYxy22q9-9Y& z>M1f%+Q=6#M7U+@n-XL=f6#$Quyx>(mZ9cYKeGtOXt@Zz#upw;dPb!2fmZcc&IngAzRzfukKmoC5I7D{X@zrB)Yg1Uhmg$TZVAi$3 zs|3xp^D3sg<|>`;L8Sy8V8jyyubNIbhpKB89R86&edq9`b^P$*{l~2<5JQ=VS{paJ z?QZ+#4|i`qdE@fzdVY<cecNk94uiZ`|tL>a=(f3GLUBP-Mitz!{T}|F zsh<7v2jBmJ>LaL!zfa=F<_F*VR(>q$>0VsFNXZ+yeGdM0`tacmv`A+b(55tE0IiKPAqj!Lh8{p~l-|aZ2 zbNx>Dzti{qqX^&R!Z@3so!_gTc@96nYVGDh_0{kDnuD)>_QUV_hG)LJmgX|=jh5!36x8`VEnSMcjb^*z0?+X#a7w=MdQ6$HNbmH>yt-?dz6oaHG0ez;71!-zwm@ z^uFWR>Q?;4A2+IY(Y~$rH4c(e)qgjtZqdH0_8*E(y73o(+^G6R`+m{BU$kE>+OMiT zX@UK%h94?#RO?0i_2T*KMf*<`?LVdV+p*QB;xGQVQGKRp{~5Kf>HKGk_Ma`&m3>OQH_fBqoVz&c>cI(KQ7vji}pK3`<iOWl69~bo}Mg7g9{&rFSQc?d(QU524`X4Fk z|8!CRqecD4i~2uX)c?7n{>O{@KVQ`UL{a}2i~7G*)PKJE=IqKdRZhX4t;!Mjb6NZM zRDUO{e^vFJ>4sl@b@g&q|C;J2v-*3hU&-oUTm7$D{e9JUJ)6GZ>#93h{r%NXX7vwL ze>tmvu=<^>{s*e(Z=}!rQ1wGu{p+ir%jzGl{$^JHgVk5RC%yk0s;#X4jnyB?>fcoT zm8|~F)j!DUAE`d`Rq6A-rTUSq{;kzt$m-u#{qI@*+pF$Zr}uwH^)Rb{XZ3Go_3x^F zE33Dvn_rXO|IzARR(~!9g5LcrMg3nb>e=L>eKz>0XM>4aHW;X9ABTF@S=6)6q5j_D z{a;(u-&fSXuBgAisDGfSLzqkcZd89DsgeHIoD=~!ME&a~H>wZU6~X^tQLi}x0&Y~_ zSirxjsOPKoMkb~5{%dz~}+ z9PavEuagu0F!=fR0!8>dgWs&aDM1;|-t$HMg`$4w_kXvZ->$yj>zujgz+Yb_^$&x8 z{-W0>fPc7Jt$r+nuUCK4>$|%DQ`Ikcoip(q_}5>~>YuItir4wR4}&`Y=UyjI_2KIK zs=t-hKUe)PS^LfE?`QR`>Z`CsI3D)AVfA6J^Zg&LwySnlA5}+LeO%qo>O0j>X7%0b z&t~<#s(O6=darxcdFw5B3f{kUQGNGi_1)Lio3Hn8wQsGjUiCKStLyE~dgr`7SiQO& zY@A>9uU60J^UL0Ru4dT-PA}jEa_hBQ-OjDm^Gi5Pt(~8*Zmgeo*Dg1@^Ye>~?tH$A za(;f9-;8^D8&DOkpP#Rvt#&TfH@fF*7rnL1^^J{-{>B+I*!J4#J?-9G=e%qE*8E~) zb?tI+cDZrc>#lBGoVVB3*XMY}S-ZbJ@2%^u(+Bf6@83H={UQQ6koyaF_HT9OSN(Yh zU%$F`wT^yX;*IV0pnpCethNVj>*Ce??D`2jLHVxUtzHKW``^es%Wb{`KiK;y`#~XK<_AUz-muE};sWU!3*&{qDv2)u7+*ciQXt zzTUt(iS&AppS;04+PC`a=VwmtE;Qs^Yg)Aqj$E^UYoD?J3f4VL$`P9a?oq{*UnbguljgyXAQ&9 zKJRzCmxJ!w`e1GYaPj)%dykWG>veDSF9+*%hU;InJ7??NjkArlL3g!1U&q)DuGS4P zE|6s6^y2j%`nI}y>*}JvdU1Bq*;wziFVEMnHr6jOX=iKmt987+d!fGBt6sghz&+hn zWH27g`xvFwjkOMtZ;rOz-X+f8=w1!ZyS;_i;1rfySN;B4zthE(oS{$s%lSF*7Bkzw zy6UVAF3)@ng!GO=gEeR*k&|)b>};*S*1I^{=$+5kH&(Camm8R&)w8v(O;1F14)<#J z*2e028$%21+~{5O`j_XIYgg^_^}z*D{}SD;-^ImsdVl`v*~Q!ZwBD_a&iUEke9-To z^)I^T^X_W5eb$-dASMjz#vB=~xB@Y^z$Dy&rP1m4FRlicmlv2bpw8tPP_;YQxV-3` ztzN9JUDfXji}}><9jx8ztY5Y}7xNCkZ@zJL-bYt~^cc;~*pjf_vYQpi>vn4 z{CvLAS?yecru3HF&hdqY_!dxUaJ4aSUtpciuh!Q4?W;44LT_WW-Nm9sZ`^xm zuf954?E%Tw*Do(F25T2*>ut;^CUd<9Vs_cK^%JL5GsK%?*9RD!_WY_h=yWeG*FXf< zF6LNMXT9!aZ?%8kG~(gqtG!!SgZcRt@U#!QG#_jLCC|<`x}Fx8kuJ2jb zfe-zS4*J-=SO>T?YZa>Ontv z);(LhVkZI-NT~iP?u}m!Mg19w4Jbk90(g9JHt%noU#<==I(X)~6S#cT?A87D#;uF9 zE0DO0tN9u<{u`Y^Z?M|KW-;ikU35SudJX*smADSb0@~5Kcdz z<^c;WEQ+-2SNG2zzh)mkxR{@9V6ArA^VMEwaE?cH`{(^NJoWOb+irTf?v9^+iOpc+ zqT9LZo?+)Z>jL{Ox)&gZpe5(sv!)4uir(*_!@4*5cInJHWpZa75{pdS3L~M z;+NyT^>xsJHpaHSitTQGx!T72d;P1{ehGJZ7wVROZN zaPL|_WQk^)C^UL>@A~bXM-QL8aqq#av6UV~v)aMqH}=9^+w=Gnmy;SY62O26!@c}E z8{beN{_cAI`VfSEc>f{%T=?+42N&^0!T*KV{kJ}Wb@Y_&;&(Va*0<;P&)(J(XHOo# zF@JCwpNbRMpS(VgRou9HcK^2R>$(9~rlZ??+o7Uk>q6yZZ~M)5TIr;ft||+Tw)f|A z^R#8p9lCw*aqz=!0xx>$Hs2e3coS%HYwc>4z>_y$*A2iQR@M9dy4l9w_czSW^}b)P zsur*R2VVZo3S2De|6x@fqkQ&1s;avz|5{c3Aj@B~`&e(W{;S5<#}aUA+4=lk!qIM@ zC9acSXB{kU^}he4f^=ZzwqK{T`0Uhp{b!-tqOE`>r7D(`j-ExQKFacTCF{boCl$2P z2B+?W?esj9)Yh?1UY;dxQK|1h{oL!XdHKN0YcGGq%OCaf$GrSwUj7SS{;ZdO+RH!V z<)8KPm%aRVz5Ep~F(m5GZ+M9zQT@O4^1t!&zxVR*dih&k{*IS_-^>5U%lABE&v~Dh zAM)~>y!>`AY4G8=tay3L%f6SN^73FMr6(OE3SBmyf-C%gZ10@{fD@ zGhY6jm;a`hzvSh==jE?@`5RvTS6=?NUjCMszw709JZs*b-BCtg1E@`;yU@{+nN-uDw;{*0Hu;N>rQ`Kv5{wW|J8mcLe2{~gP}R#pF_ z!~bWNhgJ1|c>Q--zJzrQbq}BaA(p#U^=)4N7|T&r-SYY>%PrV;y}rj1rjui@f1V|X z&KJD?Cd-Yg`lr19Q!H1j>gT-vZ?NoD)h~PfS6H^I>es#gn=Efu)!*{^-(?A+^xIzl zzgT`RbQ&Ny?Em{&emDB>^-p;DX)pJ^yvy>VRdwNY>gt|_iscV`{inSA(_a2LFaHut zsBZp-*Z&KaAHg_#{qL{@k^6gI|G!y+SicXt5ccm|z5FOk5YbP1y~px{RrP|`_gF$j zcI@?2mhY{kg?kpJ2i&SUUafX5mbia~C4d-0y?31@`tv!KXpE^<|0gW*y?0q+96rwy zeC=vU#VdAxB5Ts zTHcl`Q+dY``S@KY~e^HSsSgH`oK)?vc>GRq&Tsz1sSjem;e=ly%ns_N%i$NTkt z=T)VB_@b)*ykGxIEHA6-*I3T0>Oc1Dzsd5ds{U)1uU6In#1ftOdo1r&)&I%z4^`Da zVEG03QapnallFBiUk9JU@P<-hLbSFyin2hyN2@KxXJ zb!v?X|CpE0dl}|y@c*)Rm%&osVc3{Mu;36NKyY{W;O_2j!QI_GKyY_=w*bK*cyI_I zI0Oh5f&~c_*lRzuGo8L~+v#*V{dCQ}91dsi^M~Evv(IwmJS@Z#EXOMR_$~kZ`GVia zj}?E;A1nLp$0|PCoqai&BRQ6n8T`J^mzQ!igWun6@@^jFF`ni{Ug0g?=M%o*TZYhU zSVm%W#$iGxXIf@vPUd3~mSP1~^3!!+ zkHP1IE#>y?%HABv;T*$>oX)vi%#~cvt=!4|Ji?Pa&&#~QyL`lFe9aFG9Wrn~BQP3+ z&tv1uN%`qD)=#};WOn9ZA(mh{R$(nRU{khcM+ToS_mu~8B*$_xgU_qy%S*YM8@Y|U z8GQbIOg_zvyuw?&&*1a(7xG(%2o>ljEF&>G<1itUGc7YSC-bogOR)lj&-3fZjo6%R z*_l1rpF=r{<2jYHxsc1bmYcbQdwGZ_c$SxVjd%EfPx*?U&l4Z7w~!wns6JhH;TVN6 z89ZMkmQyl4vobdeuo%m*5^Jy?o3JI@vnzXZAcu1dCo*_WnJa%juY9~;E9Le4v>Wj0 z{_f;{9^pxz=VjjDT|VNc-GWb_@ALWQqaWnZpUx8>a|A|XEXHS2re;QFXYf2!NG`#0 ztioDsz@}`?j_l699L$j%%gLO{`CQ7?+{kU*&4WC~)4a&wIqa5vpHKLLpU-6K736BH!$xe*w(QKF?9ZVb#qpfV*<8rw zT+7Ye!M*(S+Wx2eeS&9siPw0C5BTXd|4+Z~6+gY^|0#$3c!2n1I7VSi#${rrWO`<0 zZWdrMmSH8b}-&tJ#KBk^Z@a}Y;z9H(*)7xVKRN=OB6IA}q~H{5S&p{P}|OkN?^0`+xL) zB=zT{W+vujeima{{?C5?|F_M7X1N~=xq|EYd0zSPdJN8gesTK=p5tZSRw) z7@XH_l6P<)kMI;P@+$A}A)oOLgY&ts{5uqd!Ph_I%b(}7AHV+KTrP{-b2Iq5X9>AH zgY&q$auWt$@9ZcCU+)ag;r{nt_nhhDgY(+p{B51vw{jN`@;HNYx8LReqwD1V=-1=x z@qhH={Bg)bFEfX^pgZK0Q z|9chqe*Ay^@6`=|zwYq~Uotqy4(0hy1b)ppOvK>)I)j{@d0B*|8Jt_!lpC-a+p-IT z^XftJNRH!F&S7v)y-ME5?cB@YUPN#{eZlQl7~Ge5Ab)xf&!^{y!MXIuH!6J2VHue* z8IQqvbQ(D`bFl!6GdPE?D%W9Swqyqe=g6wjr7~CHT&Xp^=y$0*EDcdkOPwpiTWN@EktUQIm zIr1WTB{y&z_b@m={#8EDKX{9u_fI}vKf$^2zi$7)FdzTn{&amsVhjf7#YyDU%*33` z&)}T6tXze)*@!I|oDX-C`*H|JaRP&L;d$~>uHj~W-e>uEe}ePiqi#RV-*}Cm_gg-G zd~go@-0g4qWtc!e;TV;{`ELR_InyyKzhiLjTT-sT>a54_8Jzcal6!Ihhcmc06P)wT za{EHA;ClYV;Cwf@S98Mc=XjYn8Jz0|_iSFd{XIjQLq=q9p8LPrzxmj6D!-nQIT)Pd z7M07eGHbCRgY(;Va#!}@VE(}1+;*BgmrJ;sn;4we?vs!36fg2BgLB%4@-x0+2=l~G z@5%b~_boV|{q&x!PdPr5F)gz&IF~Ibm*A)OXnp$q)mWFod2B1WBYUtvKfOom)9(+? zVJFEmxq!?0={;JXK0Y{q-6bF7ah~Px49;Ee$xrx_|1ng!z~>LnTR*)=>(ieXhl!Yy z85o?i=9P=EG%K+tgY(s9a$9y`Zw_K`t~ySh$~j!jRSeEkx66BZm?wFG!8z(}`2qjo zYkpzw7@VI*mSZv=lQIp1bJJXM0TyRDR%LKr+E{MM4(!f;49-bM%M&?+^SO*`xrIA< zfX8@-mw26b`Is;Gjv+q|%068;;TeswnUE=%p4pg(g;|OfS%dZ2lx^6Vy*Q8~IF?g5 zn~S)T8@P>oc!7*Kmme7BpT$^~Ral#i*n;iZ zjeR+Uqd0-nIgd-ZhMV~__wy)E^EY1OpM1pUe9JE*1^NlcsEow~{P-{!=#eoPmr0nK z|D*H9Dn9<>%HQYD--s>Po*!4=KL2`O4&f+H;B?O8Qm)}<{>=S6%G3Of*Z3zN@j2h} zOXs|B4DQv(l0W_537@XR?Q zu_2qY9fSK?edNLX^nXo!`u+s>{HMvmJ*_43YHs2V?qhI2>y&(vS9ymI8QjZyBZqLl z`-)Nc4TJkw$>g-m!rUy#;2u_axf<)T30pC^f7L_o&tV+HNeu2?Es&RU9k+59gZoy; z<>31sewT0X9)o*UFXjIj%K0t=zh-d1Dv_L$8JL~H_fG`(s!F@P5^J&nn=!ag)kO}z zpJI?alH(ZMqnaZxX7K$L8|Cc`?oS<-Kfmwd<8^sKzQWrK?oIt8zvdUtcVQWs!F{QC za#E&YX69mWPpY_Fj=}e5)R7xAxF6L){``K8k6(X3c_>FSxED1;p3h}m%PkDNCL6FB+p-ILa}Y;z9H(*)7jqRiay$3(Fi-LVukbb>@E^YBr~ee` z)Abydkr|Wmn3QRlnYmbi#aWJ3S%;0;k{#Hc{Wz4PIgv9spUb$GTey=4c#LOwiPw3T zkNJY{7}EJRJfkr-6EX$UGaK`;FiWu_Yp_0>vJE@47YA|#$8rj1a}if^1GjMx5Aj!? z=O4Vqzxb5@@&m&}4qQ)>7=v+{gsGW{IhmiuSe8{-n~m6l?b(feIfSD)fzvsUOSy)d z`7`(PC{Ob@UgMv9#OHj=FQa(;XH>>w0w!lVX61J*#FDJQ>a54_*_xf$lLI)MKXNi> zaUoZ5J%8eE{=ySH$IHCQ`}~`)_@1Go26~Ff==_$6nTi>igZWsLWmuWD*pSWHj$PS@ zgZTr;a~kJz30HFycW@t%@DwldD(~+6S%KAAkKeO3JFzDRa5#VDWX|G3 zuHbt9#NGUbCwPvRd6W0~H(&8RL&pmA6p_*SEfX^pGcpJBu_(*1GHbCRo3kCevJVII z2ae}7&gBxW<|gjoJ|5vIUgTBY;X^*-8-|D-=;td&;Wv!WWK7E}%*}!e$6;c#FWgy?99s| zEX_)+$p&o3w(P>*9K?|v$Elpd#azXW+|Io`%#*ypE4Taj^YGP=R7Xu8gAy#+|Q#t z&EI&9fASHZ^DV#p_{NA&*HJh|Wh^FOa;9Tee#b&A$qKB_din2|Y{k40IAm061o*_`dzm3=sv zKX5#!aW0o|H8*hw_wfi%@glGC4j=Lv-!MeNKtEqG3cq1|CSzJ=VQv;=36^Iy)@2j6 zVn_C1e-7gqPU1{1;Bv0xR_@|K9_Ly9&KtbPCw$5O7%EYqrwII-ahQlHnSt4vmql2b zl~|Jv*o##9fvID!bABS=@Cvpboa~aoi3wQDWkMRsI@jCDFF<6wjrSeT_)ku_MKP1%N>*^2`?f@3*_v$=>Xxq;ibhlltp&+`x7;$M8qfBAu7 zk_LK;#2AdrBuvdr%*p&L#Xr}nV6}VkvW);MOlWGS&I$XobA|^eK?pua6G4RE|+jM zH*p8|@d!`xBCqleAMzRBFhq(#KVLBlzhQhPV_IfmZWd$-mS;8AWfQhyNA_TU4&xY3 z;!G~!a<1c6?&3in=UM*F8@$ISe98Y9DrKOj2>hCHn20Hvf!UdtMOd1ZSd$IdjBVM4 zy*Y>@IgV2~hl{z28@Zi(d6*}8fme8&5BLvX^NUo0e!?;`V=^9-G7U2`7YndB%dsl! zurXV*1G}>yhjKJ0at7yf8P{?Pck%#_@eD8VI`8r^U+^76rVjKJp3xYa37LZFnT>f^ zn59^eHCUgYepdCTb7C8IW-kup2#)0x&gLSnN6LT^@i?J-Lur?d91>3V5`*H|JaRR4v9+z?rH}hxi=TV;KZ@k7o`H0W? zmS3g~^b?Lz8H)*+oavaA-?0!&vI48K9=~U6c4AKs;BfxP$(+T7T*3AHiM#m=Pw*Ts z^Cs`}Z@%JthE5mgDI%luTP9{IW@HZLV^Nl2W!7RtHfK9_Wgiaa4;;^FoXaI#%}w0F zeLTWbyvVD(!-ssvHw=+J(9c(l!fzO#$(WW|n41Mzg5_C_b=ici*pWThpTjtYlQ@$L zxSZ>_mAiP5$9a~&^9Jwn319L*hRP7=DFVM{942B)W?**aWf7KUCDvpEHe*|MVQ&uN zNRH!F&f#LN;zn-gULNL2Uf>np<^%r2*Zd-5pr5de%$SVFq)fxi%*6sM&T_2EI&93A z?7;5q$Dtg}iJZatT*kHB!ks+8V?4u4yw1CP%olvekeLEKg=aLzWUFF$Uu@2~#r@ zb22}Ru`H{wHb4H1vCq$sTChF4u`h>k6en;x=W!|5a5I1Aejep%{>E$klaKhEZ~0}G zz}Fp)Q5lN~n4IaDmEW-tOR@s1vmU=^Yj$E!4&ZS9$jO|=g5S)CSpovV0PwZ5te2p)?@=VV_SA% zZw}%}j^k9$;bN}hMsDX`9_C42;1%BH1OCI;{P^REKYw4tGBRT_9+NT+Gcy+pusF-H zD(kQ@Te1VYvmb|YG$(Qf=W`j?atn9z0FUtuFY!9>@-biV9Yf{}^c0@a7@G;1g6Wx! zd03dGSdleYpH10@o!N^6If7$3g|oScE4hK&xQB=ME6?)}-r`?;%76KRVR8j}io_U< z%Op(AOw7srEXJ~|!rE-a7HrRM?8_k>#R;6wd0fgh+{~Z3pGSF`zwsLX>w0w!lVX61J*#FDJQ>a54_*_xf$lLI)MKXNi>aUoZ5J%8eE{=ySH$IHCQ z`}~`)_@1G^3-lC`(fKVCGZiy32lKHg%dj$Qu_2qY9lNp*2lEGx=QPgc60YVZ?%+Ni z;VE9^Ro>x4KI0pP$P?)2D@NfrjL&3D%Ph>zf-J%Etj4-*!dC3a9_-Iy9K%VR$pu`_ zb==BbJjmlb%ino}_xOY_`5!~&4fGU&Uo#F9F(orFJM*##OS2MdvH_d1ExWKc2XQ3F zaVqC$54_urqscAV+X4r*JkGaV0l!8~5-Kf8}}p!CU-`Px&uDFie3!PmvgdahZgvnTa`> zpT$^~Ral#i*n;iZjeR+Uqd0-nIgd-ZhMV~__wy)E^EY1OpM1pUe9JEj2KoudsEow~ zOwM%7%I{c+C0T*hS&!edH9N5<2XHul0tVaL;RKJ`3G-iIR^B11rIbP;X-sj(Z#rF(dGSE{*M(4Lo z%v8+C9L&d}EW^sI#fEIocI?VN9Lyg$p3^v&OSqbwxP$w6gr|6sS9ymI`HXKEqEw)t zuNZ~jFg}wpEweB;3$g^uvl{EN30tuvd$2!;aSSJMCKqry*KsR%@gR@$EPv+>-s2O# z*9K?|v$Elpd#azXW+|Io`%#*yp zE4LjV26_t5XpGH-Ou_Wb#yl*{Qmn`ttk0%w!_Mr*fgHiHoWj{$ z#FgB@ZQR2{{FUeV2XFB&KIOmsz%bTa zj^YGP=R7Xu8gAy#+|Q#t&EI&9fASHZ^DVzDALu6>qcRo~FgepPE5BnQmShE1XFYz; z*6hTd9KhlHk&`)#3%P>p`4e~Z7oOlbUgk~S=ihwA_Y7Sj&{IT4=eJDERLsa6%*UcE z!^*71hHTDu?8-hI%pW+O(>Rw)xSE@|gZp@dr+AT9d4~`AjBgmCVxXU|7=_<3K9eym zvoJRcvINVs8tbwNTd^a1us?@!3@33W7jQY(aVvN6AdmAbf9DO};}gE*e+*SA&{G6{ z%{WZNl+3{F%*!Gy%}T7v25iQ*?84q0#E~4wshq>bT*Zyt&b>U$lf1wyyv+yvhp+iX z4S8JRH|k4c$^nVE|PSe)fpm37#dE!lzH*^fgxniDyL^SO*`xrIA+`~is zmFM{fZ}Bfa<-h#EFjWIRMPdxbWfG=lCgx;*7GqgfVQn^I3$|xB_T>c#&6mhY$ITZy4g^%=XjV_A5r=H;m6@Ov^0H&4Mh! z@~psCgZKD^FZmxs)eQ6$fnPHY6EP(- zFgx?I2urgPYq9~Gu`Ro>HwSSf$8jp>a4}bLBe!!e5A!51@CtA90srA^eo-sXPgq7~ zOvYnUreS90VgVLsIaXyIHfBq9V0ZT8P>$wA&ft75<63UvP9ESfp5Y~4=UqPL3%+B> z+JTaezxrUqhGxzf- zPxCikjwG>$Eb|O1We9!%*yXrh$UHp)me|x4KI0pPs2}L(D@NfrjL&3D%Ph>zf-J%Etj4-*!dC3a z9_-Iy9K%VR$pu`_b==BbJjmlb%ino}_xOY_`5!|y2=o+zUo#F9F(orFJM*##OS2Md zvH_d1ExWKc2XQ3FaVqC$54_urqscAV+X4r*JkGaV0l!8~5-Kf8}}p!CU-`Px&uDFihh> zPmvgdahZgvnTa`>pT$^~Ral#i*n;iZjeR+Uqd0-nIgd-ZhMV~__wy)E^EY1OpM1pU ze9JGJ1o{cbsEow~OwM%7%I{c+C0T*hS&!edH9N5<2XHul0tNnYR;-sS`T!`J+xd7z)LjLevf$D~Zd%*@3CEY5PQ$~tV! zmh8ap?8l)T&54}B`CP`e+`^qaz+*haOT5mze9RYo$B-=oJ%wj9#%4mMV0va_9u{UP zR%8vN z6LT^@i?J-Lur?d91>3V5`*H|JaRR4v9+z?rH}hxi=TV;KZ@k7o`H0W?mS46C^b?Lz z8H)*+oavaA-?0!&vI48K9=~U6c4AKs;BfxP$(+T7T*3AHiM#m=Pw*Ts^Cs`}Z@%Jt zhHf3`DI%luTP9{IW@HZLV^Nl2W!7RtHfK9_Wgiaa4;;^FoXaI#%}w0FeLTWbyvVD( z!-ssvHw@7x(9c(l!fzO#$(WW|n41Mzg5_C_b=ici*pWThpTjtYlQ@$LxSZ>_mAiP5 z$9a~&^9Jwn319L*hH4w=DFVM{942B)W?**aWf7KUCDvpEHe*|MVQ&uNNRH!F&f#LN z;zn-gULNL2Uf>np<^%r2*ZiVgpr5de%$SVFq)fxi%*6sM&T_2EI&93A?7;5q$Dtg} ziJZatT*kHB!ks+8V?4u4yw1CP%olveknICKg=aLzW=i6OK_CiwT&V>6n$@ zu@FnL0;{tgzh`T9Vowg>aQ?{2oW+G)!S(!!yZH-G@EkAmChzlazT$g^?iA=LBBS$L zCT1#TWDe$IQI=t4)?!08XFGOf9}eaZ9M5T-%OzaRP29nKJi=4F$g8}=hkV924AD8z z&sU7XZy2A+n3h?Xn*~{dJsQF0>5S)CSpovV0PwZ5te2p)?@=VV_SA%Zw}%}j^k9$;bN}hMsDX`9_C42 z;1%BH1OCI;{Gw~1pRkO~n2g7yOvB8~#R4qOa;(ZaY|NJI!0znFp&ZSLoWc2A#L_6YP7j!_wl37DMen3dnL5KFQGtFs=z zXKQw1PY&R4{>aIk#f4nK_56vu`3q0*953@G@AGfI;(Lbf8R#h@qw`xPW-4Z64(4M~ zmSJVqVna4(J9cFs4(1OW&uN^?C0xx-+`)Z3!c)A+tGvU9e8x8n(JRo;SB%1M7@x_Q zmRXpa1zCdSS&ensgss?-J=mYaIEIrrlMA?<>$sJ>c#y|=mcR1`@9_y=@;`>^9q1_n zzh)dJVoGLUcIIUfmS!c^WCJ#1TXtb@4&q3T<5bS!Vy@ywZs%Se=1E@Q72f6p{=?V& zqEDcou#C)@jK`!*!_3UZ0xZsQtjaoU%$DrH?(D~*9LtpYmURV3>Y^o+2>@<1z_TGZS+%KZ~&}tFSg3u?5?+8~btyM{xqDa~_v+ z4L9>=?&ndS=5M^lKlzBy`IcYy5A+j`Q5lN~n4IaDmEW-tOR@s1vmU=^Yj$E!4&ZS9 z$jO|=gNnYR;-sS`T!`J*`aG;;CjLevf z$D~Zd%*@3CEY5PQ$~tV!mh8ap?8l)T&54}B`CP`e+`^qaz+*haOT5mze9RYo$B;t; zJ%wj9#%4mMV0va_9u{UPR%8vN6LT^@i?J-Lur?d91>3V5`*H|JaRR4v9+z?rH}hxi=TV;K zZ@k7o`H0W?mR}AF^b?Lz8H)*+oavaA-?0!&vI48K9=~U6c4AKs;BfxP$(+T7T*3AH ziM#m=Pw*Ts^Cs`}Z@%Jth8`a1DI%luTP9{IW@HZLV^Nl2W!7RtHfK9_Wgiaa4;;^F zoXaI#%}w0FeLTWbyvVD(!-ssvHw-Z%(9c(l!fzO#$(WW|n41Mzg5_C_b=ici*pWTh zpTjtYlQ@$LxSZ>_mAiP5$9a~&^9Jwn319L*h8h{@DFVM{942B)W?**aWf7KUCDvpE zHe*|MVQ&uNNRH!F&f#LN;zn-gULNL2Uf>np<^%r2*Zks#KtEv_nK2oUNtuS3nTrKj zoaI=Rb=a6K*@4~Jk3%_{6FGzPxr}SMg*$nG$9RU9c%66om@oK_Ax8yz3eRYa&4f(B z^vuRQEX-1@$QrEArfkE`?8Si`!Lgje*<8ex+`w(z!$bU)=lKV3@h?8*zx=>3qXRuf zVhqM*5~gM*=45^rV_8;VZ8l;Hwr4l?sX;5lCA zP2T6Xr}nV6}VkvW);MOlWGS&I$XobA|^eK?pua6G4RE|+jMH*p8| z@d!`xBCqleAMzRBFvQqEKVLBlzhQhPV_IfmZWd$-mS;8AWfQhyNA_TU4&xY3;!G~! za<1c6?&3in=UM*F8@$ISe98Y9YFwbF2>hCHn20Hvf!UdtMOd1ZSd$IdjBVM4y*Y>@ zIgV2~hl{z28@Zi(d6*}8fme8&5BLvX^NaC;e!?;`V=^9-G7U2`7YndB%dsl!urXV* z1G}>yhjKJ0at7yf8P{?Pck%#_@eD8VI`8r^U+^76P6+fAp3xYa37LZFnT>f^n59^e zHCUfb*@m6jivu}=V>yMhxri&df!nx;hxjYc^AFzQUwq1c`GH|326~Fb7>vs#OwCNp z$^0zFvaG_|Y{V99&u;9?AsodCoX&Y%$~D}~pShn$d78iR8vo=YKIdD0IVsRjI7VeG zCSY==V^)60LM+J&tj>D;o~_x5Jvo5G`6DND78h~_*YhXt<}WMD2v6}MuksEb z@)_SS#FRikUoi^5VSFZIT4rHx7Gw#QXEoMk6SiVU_F#Vw;}}ljOfKMZuH#nj;z1tg zS^mx&yvHYe$^RH?YM`eG{F-r?h$)$Y*_oF`SelhslMUF6ZP|srIfx@Uj#D{@i@Ay$ zxt)7?m?wFGS9qHb_zz$6i)n#=!ZI>rG9HsM4Kp(r3$QrLu`27ZFyv&=t&%gPK?-_blpr?q8&TpBR zshE*Dn2$wShLu^14cVOS*p+=am_Kklr*STqa5Xn^2lw#^Pw^tJ@(v&J8Q(C(>_9(X zF$%w7d?sUBW?^m?WC@mMHP&Slwqi&2V1Ewd7*66$F5q&m<5uqCK_2H>{>~e`$0vNr z{}^gcpr;7@nsJzjDVc%UnU_Uanw40S4cLrr*@eA1h$A_UQ#pr=xr!UPoqKthCwYNa zc$*LS4`1_(xq*JdGBRT_9+NT+Gcy+pusF-HD(kQ@Te1VYvmb|YG$(Qf=W`j?atn9z z0FUtuFY!9>@-biV9Yf9w^c0@a7@G;1g6Wx!d03dGSdleYpH10@o!N^6If7$3g|oSc zE4hK&xQB=ME6?)}-r`?;%76KRVde*Vio_U<%Op(AOw7srEXJ~|!rE-a7HrRM?8_k> z#R;6wd0fgh+{~Z3pGSF`zwsLXn2|Y{k40IA zm061o*_`dzm3=svKX5#!aW0o|H8*hw_wfi%@glGC4j=Lv-!R0YKtEqG3cq1|CSzJ= zVQv;=36^Iy)@2j6Vn_C1e-7gqPU1{1;Bv0xR_@|K9_Ly9&KtbPCw$5O7;15#rwII- zahQlHnSt4vmql2bl~|Jv*o##9fvID!bABS=@Cvpboa~aoi3wQDWkMRsI@jCDF zF<6wjrSeT_)ku_MKP1%N>*^2`?f@3*_v$=>Xxq;ibhlltp z&+`x7;$M8qfBAu7mIZo>#2AdrBuvdr%*p&L#Xr}nV6}VkvW);MOlWGS&I$XobA|^ zeK?pua6G4RE|+jMH*p8|@d!`xBCqleAMzRBFvQA0KVLBlzhQhPV_IfmZWd$-mS;8A zWfQhyNA_TU4&xY3;!G~!a<1c6?&3in=UM*F8@$ISe98Y9YE_`82>hCHn20Hvf!Udt zMOd1ZSd$IdjBVM4y*Y>@IgV2~hl{z28@Zi(d6*}8fme8&5BLvX^NZDie!?;`V=^9- zG7U2`7YndB%dsl!urXV*1G}>yhjKJ0at7yf8P{?Pck%#_@eD8VI`8r^U+^76t_k!M zp3xYa37LZFnT>f^n59^eHCUfb*@m6jivu}=V>yMhxri&df!nx;hxjYc^AFzQUwq1c z`GH~926~Fb7>vs#OwCNp$^0zFvaG_|Y{V99&u;9?AsodCoX&Y%$~D}~pShn$d78iR z8vo=YKIdD0xh~L8I7VeGCSY==V^)60LM+J&tj>D;o~_x5Jvo5G`6DND78h~_*YhXt z<}WMD2v6}MuksEb@)_SS#D+jWUoi^5VSFZIT4rHx7Gw#QXEoMk6SiVU_F#Vw z;}}ljOfKMZuH#nj;z1tgS^mx&yvHYe$^RH?W1y!9{F-r?h$)$Y*_oF`SelhslMUF6 zZP|srIfx@Uj#D{@i@Ay$xt)7?m?wFGS9qHb_zz$6i%o%k!ZI>rG9HsM4Kp(r3$QrL zu`27ZFL4)heB(HNTvnS$w= zjd@s@rC5yv&=t z&%gPK?-}~1Ku-}Fo!>GsQ!yiRFdvJu3@fu18?rguu`By=3Tv|wTd+O5u`h>k6en;x=W!|5a5I1Aejep%{>E$klaKhEZ~5h}KtJIam9dzB z$(fE>`5g+yTGW+(RK01oGmoXlBV$Q4}ApSYX9@C48CGH>!e|K=;cXXxF5 zo+2_jzhz>kVn*g*J{DyeR%R_WWOKG-SN7px{=o5^#<^U=)!f7#+{Yt4#f!YkJABAz ze8UiX0{wi&DEx-;nT%o+9vT#$h6+WCmtuUKU|#R$@&yU^BL57xv~Lj^sE_ggZ9d>Xe9bTR1^Nlg$c)K&Ov*IO%v>zM;w;Citi#4^$qww!ejLitoX8oR z&t+W8E!@ciJjOG;#Ou7v$9%ze47oqhQ+P&WY$jw1re`+hVPTeHMb=<_Hf0-jW-kup zi2tR%I{~+;{u>3p&GRf7GZr$-R3t$kpZ?KSOv&gN{+%+J$#2G3+wp2PFll&#o~U3fYBa|lOs z60hgYoW;Aih!61zKFd{H$Je=yJNW@W=I1=lpZGhoydJMpZWdy3mSrW@U_GAC=DdU* z*qwbiki$8S*KjIt;q6?&`}qi;36JtS{=y7z#Osrt`B;RdSbRl^n&1ypA{VHqPZee2|ax8NR@^+{mrm!M*&5M|g}s@;7GQ6t7b* z7GyD&VMSJFT{hx{yqK4<8+&sAhjA>g<_(;|Ih@b?_%N4o1z+SV+{Cx}9zWz^e#vk7 zGh>_M^~uJ(JdGt;o@cWb8}I^N#J23jp6tuP9LWj1mN#-H@8sQlfRFKMKF^oAfm`@4 z-{(Po#;^GUPcqY+@jB&X0TyLxp2cdc!-j0e)@;wNyn@Lb$}zl(Q#hToIgj^p372v? zS93kz;9K0qeLTc3_zh3+4`$sGuTvftW(k&KW!7YUHf9U9VMq305(jYv$8$2L@mAi! zg`4pey8otIi`40E+06*nd{GPuu{C2!f zxmb|JScVl@opsrW7xH3W#%}D*0UXA$yqY&~2Ip`-@8iQ<#ua>#uW%FJ=6n2*hxsMH z<$5Riunjx12a`C6BRHOuIgPjS z4ld+kKFX)~9M|wQzR7pEhX?p6zvB1&l^J)$>yv}|c{0c^}Lz0co!G(AwI!pxr*!fI=68rKj6pwoX7bSe`l7R@jB&ZAr@y@R$>j-&o4K94xu2i#D8J(`%&;q7pX|)XA}qxU ztiswnmrdA`m$EZ^u^+GGC{E;cyotAQF7M%ke4Nkl1+L{rZsiW{Z%>731Zyq8P3 zl*_rA>-h%X;x6vvA%4Mcc!Ga0>-+IKWh=I07hcZ( z9Kz9@#Orx8XYnpB;zN9b&vF&l@pW$FPJY0T`8kjCC;rYXAH?gFn}t}MWm$IE7 z#_N=e1zC(`SdrCPmyLKKFXm`x~4(IbeKFnoY!58@oH}P%0#}9d! zU-Dc2%-H^TeX=nxPh&}z=h>{q2E2e5u`N5XC;M_RM{)wM<&B)lJ9#%B;A4E6&+}z& z;1<5i_j!$~#?m~KRalGlc|I>>Yqn!&_GA(Vau~;O60hgYoW;Aih!61zKFd{H z$Je=yJNW@W=I1=lpZGhoWQ^A@Hw&>i%d!${upZB6b6&y@?9M(M$l)BvYdDp+@OCcX z{d|N^awT8ltK7`(+|B*`gh%-ue_@79@%m(EJ{DmqR$vv@=DBRbmb{dm*^B*nB}Z{0 zuj5U;jdOVqALQeFhA(g}H*za?a4$dN5gy}@{EeA2$Lo}f1zC(`SdrCPmyLKKFXm`x~4(IbeKFnoY!58@oH}P%0#}9d!U-Dc2%viAF5BGQ3n3t!qB+K(` z)?x!*z>C36JtS{=y77jBRs|*`5Q9_7c}91I~NPG7|XCCtFtZ} z@j_nA%h-**Ie^1BmRIuz&fpx*=Y4#b%eaCs@)d64+kB57@-V;TxBQv0-0}KkV_u%d zk}S`&S&I#L0WV@(c4ANV%e3$R@AV1^R{DCK# zDNnpkIaz>3S(<0D8tbqjo3S<9vn#J)GKX>uui_L==WNd7y8&o}rMcX1yN z@e6*#6a0f&^Tz9xhlN>!5`2j!X=RD4z_&c-YkJl+T3$ZxMvJz{s9?xfUUcwIS&ORK-;T*?n zIF+~Xb}r!ke1uPOC12vJ+|2FV&Hem@NBJFpVTRxaU3gr}&U`GwQmnu#tj%-Tge`d~ zJF^%2@k);3L|(_6cpK;P9zMv&`3zs+T5jZ4?%-a2#3MY$ANdj3&e2*XUFu&xt{F$*r@%m(A zUY^F1EYGu9iw$@IFJfDEVo&zvV2lwa|C{>qF+;`PbF{5+j!@Jv?aIXsU|*^2Ghg_pBGhj26}@p|6O zS-gvj_z<7qvs}e>e4X34lOOP7e$M0kiN7<;>G3+{W+4`5Syo~V*5mnX&P&*V-Pwl& zIh^Bo4X5%J-p&QQpO5fKuH;L6m7BSpySbmA@F>6IFU(LhUZ3pD$097n3arA~JeN(_ zl9#eGd$Av{wAd9gK zE3!K4vJo%j#k`E&*qZ}5jAMBRl^n&1ypA{VHqPZee2|ax8NR@^+{mrm!M*&5M|g}s@;7EK6R%S) z7GyD&VMSJFT{hx{yqK4<8+&sAhjA>g<_(;|Ih@b?_%N4o1z+SV+{Cx}9zWz^e#vk7 zGh=1r^~uJ(JdGt;o@cWb8}I^N#J23jp6tuP9LWj1mN#-H@8sQlfRFKMKF^oAfm`@4 z-{(Po#;^GUPcl=vc%5>x0E@CT&tf&!VM8`!Yqn=sUcqDzX!e$QW-u|m8)IhdcP^9-KJsyv71u_;@z9lP*y_U90e z<|JOvn>mYjaSTrpm! zTr9|9EW?Vd&bn;G3wbdwV>kBZ01o3=Ud#p{!ed3hR3vOLdbEjHih9vpJ9VatW7m zIahN%-{4!^#eF=)FZc~l@DFA^J6@+eEX)!t$I7h9`fSV=Y{QQ1!6Xji2#)7uPUEe- zgA2KskMb!#$2EM7Z}J`P;Q@ZiulPNGWyUJ;`s84Kp3XCPCadxsp2wza#dhq%%h{hp zIGU4qJ#XeL-o-_Hh)?iYuHrhr&TZVu5BM=Z=W+hT-aJ?8hrPiW7MqZ{ls7%X|1BALlcCfor*uTe*XK`4Nxs7=Pq%%v?QQ zr(7(^Vl2aotj@Y@#0z;bFJm|M<^T@kSYFK=ID>OIpZD=$F5?Qm$XB?DZ}UBV$iw`S z-|}b1YQ*c4jd^(*OR_xAW-T`01-yuD*@->bmxDQy6L>9eTG4+{Jx7#4q>_Pw)?Btrf3R9u{T^mSbhsWPLVf3$|fL_FxhRaRkS6GN;_u9IPP|UJS%}41mX%n8^>{v; z^AdJoclO~x4(B*t!>PQ5w{rpS=OcWQEBO*%ga&+f&}x3U0fn7+ij*7#xOE41PSthHS>xY|r4W zv6Q$gn9QLZ!>c%j(>a^-crTZ5DVK9K*Ygd&#a-OTL;Ql@@C5&0)(r9Gh<@+4uyzTS zV`bK4^!vVzwOgQ!Y8?sFY#4w=63Gp zetyEE{EojcL&o@an4S4pgr!)4Ral$nvI$%AQg&u9_T!Zt#fiL*H}N*kX3i9^Q!W-{F_vLPR%cx{;)T4Jm$4gra{z~NEU)GboWVJq z&-?f=mvIGOa*Dn=U0jI9*S%0WaW1Y|BpU z$-W%Sk(|J5c_U}?PTtK2_!yt&^L&{bxP|ZXeIDdz{F*=TBs1CX=41gDW%PGS&eE>N zI&8>hY|ZxU$}5=6p&Y}jIEB+WoAY=tmvAYUb2ZoV4Zg))+{Z)wg5U52|6o@8-8?MJ z5-i8ctjYRp%oc3Jj_koC4&n%o=VVS}R_iej3$p~vF*?r+F4t4G@A_=a7Hq?g?7<`s z;s}oCWKQF)yn_q5n2+))KF2kDjc@WD?%@G`%CGo6e`QANF9-AUbe_R8S(WGTJT_%3 zwqqAw&i)+2(fq&tcX$4y`@3j+Nb9`6srt2KwBL)ii|(fPW-_Dm@lo2*{x8}-rkXy3 zvl*S2-=qBiqwVBL?Uj6quW~cDb2s<%6CUMv{Dm2;r|itf|6l6*Ki50){oa4}dgq_+ zXa8T_Ugmfm%;$Z4n9I0=FY*;`;@f?e1FYTybj~Xwg2wd;aac9joiu|+{=%6gvaEO*dO<9f^7q%8#bPVNc8geSYiO%j z>~Lssa&j{C(pW6zdjG0eEa+Ow@}wN6f_9y-9V}Oy(4gHuG+4f&+9N~r$6_e4ARXm<+@>XUN( z58Bs+?VwHzJijP3sMjj(HK9S>_Gs@5tr?4*&^{R&)UjyzIuG)d3=QhpKs)92AJny* zcFO(!puQ>h^~3px(}OxM@cg3CX2JZm*MtUj-=n=RG^qax?USLwdMKJHFr0sAus&kd z$4nYFHmPsm*wJwZMUTcNPaGSo-alzh+G?MDwD@h=lD8l5~U zR(*8x(CXojRd3a_P4Cvj2M0g@FO!-l$0z<7({{|rf1eUX{mYMrVd0!pWo$jX-zlcH zOg>etsqw!5OY)BK_){!|pE<=d&69^FO^W@sxE;rh8JRr1f4nz;E?|e`G2@0MraWxa-=A;wXC?PJq_mNir!u#pbeD6pnE zZ+$}CqJ+5MR4?2#W5MZg$`D@PB@V&qP|8p?_&kA~=Rc>gXjZhO#(<`u?9kHh81Y;9VRIQsM=8~PNN~J z^YmasVqBv%;ufchYZb)x38qCu)W2|DC-$#R(7$jw!~Rtd#;AYc^=9IH9}DtT2&P3t zly5~aAu-?BAYcAqT9_}aPn2(4@HjDF__>(E!L(?I@@)<#B<7ozP`}#2b5XuS!Q;ey z2h+%RAXUDZ3HjnOd~GZpG5nO=4r$oN|i7Co`_S`FI%u31)+cLhr;iRI8|KLRB_?=Mw}|H zU8=b7`y);jHzrkF_&pM*id&c}?r<7$8^lHHDV8OEPb6xG%NP#pgSf=)Z)>pqbqiv{ z{lUe-7^F|xA8t>T@5*53_f?c6h>0G4oGPws-dOBl@O(5xar;xvw?e}lDfcwO`L+$l zXudzB%2z*M{N6|EeBY$X_kEBrJf?^F+9l-67Hq#!AHp2jf}LM@td550VWuE1u`bhs zKVZLDzRQB(sDFRv3+5jVPX`w_i*m*vhyVXuK5-Q;$Pp_O)F$j-$6!n=-zC9D5PsG& z8q&(wylswH_}P>&U*}*V4@%eSmuj##)q3-fhNC*SlSU%4n*U|Rh<9OR3R zTiw&i_ryQUm%II6`Ff_4Z)=cm)<5W9ogm-hATC_q%Y!k^`jw8w!u1~wX)W*0AYY## zD9qP87}LtPG{~1JN)p6H5C7c$tou5b<%rb`o(%IPrIYWeGQsOScs?4^%GW>m;)U>B zCCt|^7}M%s(Xz4Ffhb837d=efzoS9EO18i7+$*hoKLs00;(jfye1$s)ua6*4*uR14 z({1B zu(t{JZDGD)>EsK4Z|lB;{~%v-j^LhghLn6G(#f~FK!%k0MH$mt-jm5WV-tg*uz#b{ z$#+)phQy%oM9q*^zOe&x#ws<6=Nl8mrd7XL7iEZzjgka$(Zkf+-=g4)EW-VG*uQb< z&3*Q-{!K|IU%lW158*Xz zG(@RW_ixdPVEYS#!v0MS#A;=frlL+(Om`=VsgAXRIiISv~ zuhDZkQ{Gbv^WB_IzIH*86JBm<_ODLxg)Y(Yd`3F?rUvJ2c4GB!~+8 z7u`2I)%LP3$QPbJL_=EnmIe6+1wmoH+k!Ez^--jIhLq#h-{mX3D(9ca^V#X-yD!Ms z^dG$5R)+b!K5kDZ-+`V%zGxwXxaeW(`gM9KXYBgm$#8k2`(~%AUzy+otl{<<4Qb`u zxhB}Z1VLfG=)PH)FMJ;?`k64tLqWcL;fbvwdaiH~7fxEGP2QG5{%(| j^9N%%&xG#8`c%mg+j5Hf6-X7gVO`ExpM)Qb=KH?@6_08! literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su new file mode 100644 index 0000000..b50d33d --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su @@ -0,0 +1,25 @@ +stm32f1xx_hal.c:142:19:HAL_Init 8 static +stm32f1xx_hal.c:175:19:HAL_DeInit 8 static +stm32f1xx_hal.c:200:13:HAL_MspInit 4 static +stm32f1xx_hal.c:211:13:HAL_MspDeInit 4 static +stm32f1xx_hal.c:234:26:HAL_InitTick 16 static +stm32f1xx_hal.c:293:13:HAL_IncTick 4 static +stm32f1xx_hal.c:304:17:HAL_GetTick 4 static +stm32f1xx_hal.c:313:10:HAL_GetTickPrio 4 static +stm32f1xx_hal.c:322:19:HAL_SetTickFreq 24 static +stm32f1xx_hal.c:354:21:HAL_GetTickFreq 4 static +stm32f1xx_hal.c:370:13:HAL_Delay 24 static +stm32f1xx_hal.c:396:13:HAL_SuspendTick 4 static +stm32f1xx_hal.c:412:13:HAL_ResumeTick 4 static +stm32f1xx_hal.c:422:10:HAL_GetHalVersion 4 static +stm32f1xx_hal.c:438:10:HAL_GetREVID 4 static +stm32f1xx_hal.c:454:10:HAL_GetDEVID 4 static +stm32f1xx_hal.c:463:10:HAL_GetUIDw0 4 static +stm32f1xx_hal.c:472:10:HAL_GetUIDw1 4 static +stm32f1xx_hal.c:481:10:HAL_GetUIDw2 4 static +stm32f1xx_hal.c:490:6:HAL_DBGMCU_EnableDBGSleepMode 4 static +stm32f1xx_hal.c:506:6:HAL_DBGMCU_DisableDBGSleepMode 4 static +stm32f1xx_hal.c:536:6:HAL_DBGMCU_EnableDBGStopMode 4 static +stm32f1xx_hal.c:552:6:HAL_DBGMCU_DisableDBGStopMode 4 static +stm32f1xx_hal.c:568:6:HAL_DBGMCU_EnableDBGStandbyMode 4 static +stm32f1xx_hal.c:584:6:HAL_DBGMCU_DisableDBGStandbyMode 4 static diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d new file mode 100644 index 0000000..ac8b725 --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d @@ -0,0 +1,68 @@ +Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o: \ + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o new file mode 100644 index 0000000000000000000000000000000000000000..be6f450afd9946e62750149bbef98d8ce400d24e GIT binary patch literal 715512 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�$3y&($N4pX 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 literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su new file mode 100644 index 0000000..634528a --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su @@ -0,0 +1,29 @@ +core_cm3.h:1480:22:__NVIC_SetPriorityGrouping 24 static +core_cm3.h:1499:26:__NVIC_GetPriorityGrouping 4 static +core_cm3.h:1511:22:__NVIC_EnableIRQ 16 static +core_cm3.h:1547:22:__NVIC_DisableIRQ 16 static,ignoring_inline_asm +core_cm3.h:1566:26:__NVIC_GetPendingIRQ 16 static +core_cm3.h:1585:22:__NVIC_SetPendingIRQ 16 static +core_cm3.h:1600:22:__NVIC_ClearPendingIRQ 16 static +core_cm3.h:1617:26:__NVIC_GetActive 16 static +core_cm3.h:1639:22:__NVIC_SetPriority 16 static +core_cm3.h:1661:26:__NVIC_GetPriority 16 static +core_cm3.h:1686:26:NVIC_EncodePriority 40 static +core_cm3.h:1713:22:NVIC_DecodePriority 40 static +core_cm3.h:1762:34:__NVIC_SystemReset 4 static,ignoring_inline_asm +core_cm3.h:1834:26:SysTick_Config 16 static +stm32f1xx_hal_cortex.c:143:6:HAL_NVIC_SetPriorityGrouping 16 static +stm32f1xx_hal_cortex.c:165:6:HAL_NVIC_SetPriority 32 static +stm32f1xx_hal_cortex.c:187:6:HAL_NVIC_EnableIRQ 16 static +stm32f1xx_hal_cortex.c:203:6:HAL_NVIC_DisableIRQ 16 static +stm32f1xx_hal_cortex.c:216:6:HAL_NVIC_SystemReset 8 static +stm32f1xx_hal_cortex.c:229:10:HAL_SYSTICK_Config 16 static +stm32f1xx_hal_cortex.c:344:10:HAL_NVIC_GetPriorityGrouping 8 static +stm32f1xx_hal_cortex.c:371:6:HAL_NVIC_GetPriority 24 static +stm32f1xx_hal_cortex.c:386:6:HAL_NVIC_SetPendingIRQ 16 static +stm32f1xx_hal_cortex.c:404:10:HAL_NVIC_GetPendingIRQ 16 static +stm32f1xx_hal_cortex.c:420:6:HAL_NVIC_ClearPendingIRQ 16 static +stm32f1xx_hal_cortex.c:437:10:HAL_NVIC_GetActive 16 static +stm32f1xx_hal_cortex.c:454:6:HAL_SYSTICK_CLKSourceConfig 16 static +stm32f1xx_hal_cortex.c:472:6:HAL_SYSTICK_IRQHandler 8 static +stm32f1xx_hal_cortex.c:481:13:HAL_SYSTICK_Callback 4 static diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d new file mode 100644 index 0000000..2a4d36b --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d @@ -0,0 +1,68 @@ +Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o: \ + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o new file mode 100644 index 0000000000000000000000000000000000000000..5d2c74cfd1c0be0f55b47acf7a4e140beb27abcc GIT binary patch literal 710728 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

    ?}KyJzDuvo5v@ro;4a!=n(~fn9Vw-9 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�-eYF4rf>%n}2yN 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 literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su new file mode 100644 index 0000000..5c24809 --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su @@ -0,0 +1,13 @@ +stm32f1xx_hal_dma.c:143:19:HAL_DMA_Init 24 static +stm32f1xx_hal_dma.c:220:19:HAL_DMA_DeInit 16 static +stm32f1xx_hal_dma.c:319:19:HAL_DMA_Start 32 static +stm32f1xx_hal_dma.c:362:19:HAL_DMA_Start_IT 32 static +stm32f1xx_hal_dma.c:416:19:HAL_DMA_Abort 24 static +stm32f1xx_hal_dma.c:457:19:HAL_DMA_Abort_IT 24 static +stm32f1xx_hal_dma.c:502:19:HAL_DMA_PollForTransfer 32 static +stm32f1xx_hal_dma.c:603:6:HAL_DMA_IRQHandler 24 static +stm32f1xx_hal_dma.c:693:19:HAL_DMA_RegisterCallback 32 static +stm32f1xx_hal_dma.c:744:19:HAL_DMA_UnRegisterCallback 24 static +stm32f1xx_hal_dma.c:820:22:HAL_DMA_GetState 16 static +stm32f1xx_hal_dma.c:832:10:HAL_DMA_GetError 16 static +stm32f1xx_hal_dma.c:858:13:DMA_SetConfig 24 static diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d new file mode 100644 index 0000000..1b334b4 --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d @@ -0,0 +1,68 @@ +Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o: \ + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o new file mode 100644 index 0000000000000000000000000000000000000000..07a7241775dc4e5726d5e5771673836829675a06 GIT binary patch literal 705284 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

    q0+PDLCa?7;YVyyfAU6sM zf=LXeftsG#8m4vO36Y8Ch{xm0CZ5JL-9xD4{sM1n86)RI^1OK4?ctvf_6Ns<;la_- z@c3|We0+5Kr{VE5N+CLZNp6e?A;5u(3U0DXx?1iUj1#9A>9Kk(Pw#MlNvP#+%0yAi z_R-8ReVleF;&Gev8^F989z)pEJNO{Klp7EHrE()euWRI0AY+t&7cJDhIYt_4Ms3Jh z&*oz+so{$xyA?3{@&v`Lwy10H!o70ZdN>m6dF=`QQ#*4`8JfPYX_%m+wW(Qjt?35d zL}5Ig%&q}3gJxu>^qs5au|Aiqr%bLrMRkI|4kYi%74BN~DHz9h4Ue$xiYJqq@~ai1 zdt!D8hwjv5;XKw8IfpS57RVf76S$K5q0X{gog0cPoXCc7edtNlo9#+imkdWbMJSIs z)pDb(AI>)`VxmPD%tsAlZnPnc^e#t~G;~Cf$IcBH?rtkB7+ql7d6(TZeE^G z=q!9Ox}JcGY=%BxV-3RaK0iTIHjwoZgvS=ZcgcbV3gfAcx1DD5$RT2gCMxCq;xQ;n z2rCZ~U5C~YT?>L&XM|LWDl8}*&4mUNDT%!X?=DP*{0uY}@CQ1JW)P8U?uPCv2pzjQ zK~S?ygViN$qV&<7!X@?C3W#5Typ|b1wNsuntb4+v=%iQ0ey|ec6-qhMdQyge_;sJl zy6zVU9=sgA^1znjO4_WcNA8pk+@c7Us}Y z_+Xb*tvU8{>obV3nRBI3r??q~{YEt3t~P_`lqAfx_}S{iKz{~wFDNnyUwdPrW- zW$?VwWw8EXXO}@83**ktt9_tVHl>M;saUbz&V0Z%7t4$5@p^lj9IA1l^rqr056ZXfvPN`FFxu}flBQ@Z97{00 z8rIC>aJqd+ZJ?AH2nKR3;J;9>3Ut&HJe;G`!$FaLsZz*?vV=NB;`pK)EpqLG(N%WVxOPi8Ww)S7jQwWR#1tWX!J2%1 z^9n9Mzkh%A3;*Q`n=>FaKVe?N=xT*h6q`6$7C@lvYd>68xDM`J{$XpXxQHafyYW0J ztIiX&%2@$01 zMIXy%i_16eo?sHTSDeqovuTa08zx?5s?UD#`0pl9b6xnDq+Km$+Z0;`B^;Q~u^f7RR>0|$9dLSNQ+#1sE-9LC-f_2FcJ;w&$BIW@uTM66 z=pogAf`9NH+wJYI_qTU+10ei$4@JE1?uYPg0suz#1pnb=mfhxmkywNa@W}6dg#eKI z-hb>r>HPJug6)cdi>V>uT=2?nZffxx+mUjf-RSuxA5kn`y zK5-xwvN-_nuZQ}z&N^ONJ_^u&h+fzOSPmExr$@WG>***lO0Om@{^jC3A+VJf^xVnR z2ihd8(&!>pqzRV*1k%NRs(J?&WYH^_aS(;Wby9ngbDAZh^Bt%?N!6}HKE3^tpB;cX{=h#RPXVF^03}INQS}a8Z~X4J-Hqr zHfSq@A0WOeEDSzMcXge0&?GDRtqGNY>4P2ll#3`286*##9?JU4HKE&#;t1C6QL)er z*n>?g`4Zum{}+0w6WLQcbYZ^marlKU>JR?xp+4%xmwP&ZErT>gk$j8VWRzQyu3RD| z!7rg&H`@ji9j!hX3^|krc);m}WW%R^&h)dP7E!`QGeR)MA@~8~ttw;L{A4pa_ZF6j z>&pS~SIE=+4k*NXGZgfKIo~-HKA?K*Lau?w1_TfYJ1V23@>RWRvXUw2G<$1QM{nQT zu5r4^p5Z{M={cqwZ2Yd%U-Wt(yPVL?-X7QY$U}LMEC`D z{}`ojt=eJZ{oSsN@}}q8llMP1h~0dzq-V zfu+~o&L*UwDuFIv)t7Xg@FGq?i)kh`Cp36#F;0bsvKN_93uhWTUPOx8ODggh&T;s) znO;{9v1c&eyA06(bN|`l!SjRR;r{VpFgSj8c>5Gy*OF`@V1+s6E@@ zguc;ekXwRkkTFW^YJKx9`_OH_-JG1o3ub240oCudKgK9KsbYZiuEollM}wyBl0oIG z&6}G<<3ZDs`l9=bw^4F-)d1Q+>EmaB_%{*#e}bEm9~#j>UGry~ee4d@xs?MR+6{qq?b_K$bBKTy4H;clb} zNTo~mlYJ(bo|IyG;AI$X7OSzB;l5VU@LQIZC$E5={n8X}E^zm2}CyoXNjK1;u`BE8w!6VR=&Vtn_SEht{er z@Sf<24*N5`#0R~`*iQqFB9ct75Lpi?b=)qnK7LIPX2MgKnZ?Zv(E6-E=`d2`?NFjj z-^efW3<>=BThygP|HD0Q5c3x>MiF{vV3t|mNd*Ix_88(NKWdj7NAhQD0(_4MuVRA< zCsOZ`%3NC5QTrw!xbM&-K4PR5J)!^0vuGVV{E|MA%p&>@52K*EjJ!C5L=Y1?`AJIS z%gQD)2D8D!C}{(z2cT{40@Mio)-NGRR+0GI?H!yc_n$w)@CwtcWRFPOJgh=f8z9}7 z%Zrl!uR!oFks``q#QFifz24s4hj(}HQ5)OPv6hAMp1IoO2y%Be2mPEyWy@M4IS*DdIoOfYUua6g!t z6NpRSjzJy1RdlIyQM!AaA=Yrc49%X*?JQ(Povv^JiU7J@$E?^XWYqmq+#s07#Wsq_ z(Z&@I9JSw=vtCi7R%`*NJh_=Q38Uh(0;IRC+!}|a&ImPfXf_ah|2*|=(cgIk`%Y-= zt70U$^xTwy?vZhMT-?K`Sj+gLV*kkLVyl;4TwvcUUJ$vTEC*ncn+1wJTe@R; zLCXdHXg;b-v|VA*Zg8hDyd&!;m!}#l>fw*M`V-<3y9A#sGtp=_PvhL0f@_5K3C zh~Mh*pZ50RZhy2N^VZ64eEhWE`(Fw+KHl%^7|?lxpyq$=k*GENZ#{DV-+v@4N&Y)u zxzGG?{FGn$FD}sjP(NkP6seZnif0#!fA>abs03F9sPBwiCjitt%ZP!{i2~U7_UKAdR)X2OzbQ|gK)g*_Sl}^OtE$Cx_vs` zw6w6ApN_9=?Va_G%`4>0_5$<-hakkqrL)aRVcnfgW@KP;3I=UYthX~0;>~I3+_VgQ`!zW^M49iBp5>+;& zM&S|oX;DjUBf-)dpy!W7kj^0P1k-de4l`Nw%kJzbwrA0yW-(wXpBW9zvH?Qs_Muin zM;9oL;{dmK#ak;-em@uzWZh1JVEH{6s2@lIl`S25*+R{*sNv;XS> zn;GDLR~Mv_DIjQwMJLVl)aoKdtD5DxTEr7B2{fg!;`CGL8IQyoLcu)oBt$^Bg-dNwmbbS%ZM-lS-Aoa9$>+Oe*g1h3%RarN_xD>T$QO! zqPmwqz5S7secIa4ihgEVQ*|V?>GWO{b!`^z22t#akSK?|!yjSjd=+RKD z!supBm#bT1bzFc*lz*;^9D>6B1u7Hyi=et@0=nNf3OgxD5=7&_n$rglO^-L{D$re9 zYcixkqBr5mMTiaay*kq5niQmIdV-Bbcq0@r@|g4ysgGmXA+4UGB4 zi)ak%(H(2-D%wU>Y05OkP%M}+IUx*jw7l!hq<w3)fm<7Ylj=9bBKL=R4&OMnQ-zH5H{)`1+a5FvVEkQ-qD4vn)G< zU^i&$1*50lmEQ0;0*s*nT|u0HSQt@1U$VP_?8C4~or#9U{IxD{t?3kDx9~pD0`#i1VY=UTvRP50LZ=EB{)?*J(7xlUR01BFF0miiBbKx||Dgsb zu60uUunJhFa=7OntVv&JAoKX|Wm(4O3RHLD|D58np{7i?6O9{v4pk}L=dPVzF5D#%{ z#+kWjz~iK^Zo-pdW^Dq{Z>6HGI!55XV67?Y&!v#kWzq%KiqRNwa=Ln<6X#x5t*r-{ zG-Zeyrj4=9!hNR6%I18bglMYM!N_#AIOtNR;shBqNG)@i^dQX8IwvMQA!5SmW@>3> z=c_qKPcGAQj*mBs=Y2^{OwLK^IinSvGnb&5)uDB+8X(>6WU{6hIU4npbF4oN0bQSS zJ$^vV12OX_v)z?u+d%#T9>D36b%k5@_e1xaXN$Xe_bdJwX^ovFuxL zud-2@j~#o-PfJYRYpAz>vVIT>n$Ahxf9xSxgPmTK-R<{DIaR$s_E0<$s*F)Pj~r`ylp8=H zC{)xrbg0fEdkqM&4c%7}0J3{`yC;O}$%{fK5!`L;>EMW4c^E#|OsX9Y_rIjt*?h?b zJW_~JhJZFdfo5O@xGlVaZ80eM~`Mkc?zNs!T5}di<%n)Zt1hdqkz3zQ{+*4x1M}A85q_dP^t(v!nEJEXL zlTBdTAv-0YUb^~0i1R*07=$P5d^9^=^|Ar16Yc~_R5pd}RMDpSsulp>et8<<85o%I zm@ZX9KA3A$$hS+nlh(#tf`Llc0%QZ27omtm>g{F8SVpXFDbzu_MM0#D?|5J!)z)&2 zD~FW$df$WUdYo^+XSTVv}PxWdZokSwR^vs0p9@qp6 zt{)D+pf%S`qhM6gqLndDWS9$7|w~3vLXvRcQj!$9>)Vrx-{m#{30h?mMI=U~iQYlWodyHHOh>_q-@B zD2b)A82evJbL^PVH$=7wOFv^#YG%4Nqq`GF7M^b+vU6~%SS@3Y7^$uA7fd;t>4qGA zo)Z>?0P8@=as^}m8j{p0>R?3-CjQn6$n6hLSQUU(2%b1HO{hMb6*o5PzL{~|ip%H6 zb!|`9`sA3lS4vA{ehxUu^xiSbyOzR_YUxt56HL!358Qrt+#Re5S`ygtR_IuTGJGVU zum{YSMf>U9FxzX_`#k+8MtWuQs37VUwYxXGQrLKFSozAbWgK_CvO_eP@|EIIDGpA; zX_2qqBYD`bwsC1W-Upvlp|~&Ll4d$C1!-kWg`KM+_QJ$o9Ol*hI+s@CKubX~+p6Ry zb*)v%&6YLTakoddfNC`$WUS`f%L#bkbZIy6@L6}(#7Hj_I0%`rU8t!6)a_k>k~tAy zf{aPSTQQt$Z}k;53oFW)F+21B_M%!+@BZgsJ|b53Ycav6-_S+;-*FMWwnPj{zi|mn z_x$hT*SMA46Djw9|LNWP+dY(`bfQw**-CS%4ompj-4;9O&aeTgLi8Gm2H{Xi8S=v9 z8J!V0*N%JbOR@ZvgWMEs+*_Q~c?11G``bJFPkMr0&8$%VOCM<41ht@mW~^xi(w5P= zaE+XU?dB8>z@gde__+Yp0_rE(J=Em+B}7x9CXWXwFS7Uc-R=7yp8W0g`_Bl+g?&FZ z`!NeP@!Eg(G^O{4KlJztk9*&IQ(V!_^zx-7S&)eumZ!U<9j10uPHcfm17PsWHB!`b z^yKdK`wty~+5)QFaZ(ZS6cd|N{R4gOV11+A($KqL1P}q5P#_5?ThmNl{H6oy%ElB4 ztK+lHX+`-=`A8rwK&j4{5d`P4rmme+^kXMt5f^4zM4T?eHUy9dYDqY>dI_a#M^>Hi)5~u6dCERUU*?tFH~Wbe(ep6Cw7~p5=;-u zb|n(HV!y#4epimU(MuEuN#w7N%yQ37otU0}^iX~|x004|GmQJ*ZrA{Q#Md^57rqbb zvrEwQfyx0r8_nqAkl7X`JFYB7V+jo&GF|=2nRaP5`q+Uop3K;Z5r$(#B*SBgQn6SK zbZk@1f@3U|j)mb3WCd5kp?1EWl*~D6eN|D( z;<7$3t=wowZVK>xBbeUOBEJxSTSk5*y-JRAX;}PAHpMhD%}XVA5K4~O$=d(~gXBpUG;W z!0V3d;N)S$r7krVOZd$;PM8@He+e6>bK+EGE%V6%sac{<$R9HIjELAXr{U^G1Q{Ke zO3^chIv84blMkETh62~xA!G&W4qnyvq&U=ts>nnB)JQu0c zA)jD+lO4<>@r59qWdfJ9f^IfqSS6ClU>p|ws3~s+^0nZ`l7P{t*ltT0WUZOm`WvP` za`J0<88712#0sW2(LUMo3@Rpr_^%q4r@Q9j2G$q}BV?IejetSu&xksDiZwNlweIEy zm~L?>1M{=2az_NT#7NKL$58kHZA5Rb#+o;PzUtUOS;DsbCJV>vEAccM-Xd%X$L-`Es z^9;=zl`v*OOAyKVOq6eh^&V@TsIv0nB<42YS|gKTkdxR77zL?T9n2FHM~$GsBAT!f zS;(n=mI|+uY4sFgh!K|yD8UmHxZ-CNyWNKC)%d#f5}lkbtiW;%v zU@oH2yIRzi6YO|7dn`{^(mN1fhte!X>zO{BaEJ_4fFDErfLMsbp$qd=YEvcxLTqZ6XN38DXekbRCmRyB3_|`@Me%6n55uUB?PCFMYfSDLs7k{Eh^^IiaEwT& zPY(G`2Ib{yTs32!11cdDNLXAbX;O+Ycp${Jn4=GM3Z%>kQ;xKCMOX&(C2e@g8KVeg zxK2I9dPl|ph`O=~^gv@J;64%L)2@tE0DUvO(9z9o49D-bcXVK78nF&E>NE|O$uuFD zZefZf&HCs&uYYkFe1NAllWhpIjKNE>Y+g*$rjztQLhNhhg9j_rnHtOgQMGyJ{V3 zDGCpJA!<}0;ZM3ZNEzjbq`G)=WgD)aWn@PkX_IDL=`0~>s%&1+-O6TYmGv(%uEr$Y zp&)k5AxX8;MBVI)Rv0#iF?QN8-7P2J!X$Y7j5g5vKCyNE&%B4Yhk}oehhfr^TC6$cxI# zbp$v7j-9}&76I2fHfl}oZ6u;AdFmu#3AGvbnx$hnZ5hJ}2ksSn- z%6>0tM>rfe%XwvzYh&-ODJHslO6qgdCEdLHJXsu>gNW6F)86SXk%!KYwUYIij<&vr zu4sp>@C-NMh6g7I?t*D~j0&2Jsm!=inkQkL@Z5geCwI{Gs*x5Ye%}XYwKqtKG8IS< z&s=q1Ty@_I>6!c7{>2H%b`SanKEuUAZ%_Y%M!vMu|YE$niI9(mIvTUQQN zM<(LCjjX7HK|3#EBU=`W-m8sVFAF8=rxz_OA4h-tOEyx$1omjUb4p?%;4L}e7SkWU#Ds> z+AuRinLo846E)1K1X+5vF1Jy+6K)$81{>$X)HNbqs5tor;pHZxL14}wd1RHW5C_>T zWn~VTB#k?k>k9&;56~62*SJHWEE#S2Rp~a(91`YbiRCMr6q~W4STmRUi0JRti}Tla zKfJ&F$bg>=&DZh0!EqG1uBI<+Il(aYr1+o-2k>h)eMQHcDfvv;G0(A5cQ79*Qcu*a zqVZF%DJ$jD?&p;u7^Ruzu?2z*5XE_UiE1g_tYVyTPTsK{jqC7jmX36~+XhdNBaGO8 z3XShzEZr06k+5`)=-5DyM0G`n7y_FViHHpQ<6{jio1L#}@vumxT*5e0>IN-fMi7&5 zlT21(Q-Czt=+)xXl7F)bofOWf2@`#a;=hpiLW=O5@L=q<55a+Y7&i-6lL0-x*%4IF zcc3plD;AJ0b!omSliYN}!UoMFl9Skzy*`qTo8Yu+40m0<7%lU=Web0X`KzgzGYaP5 zOUy1lJQntuW3$n#Eh8^n5L2=;oQ~-hyj~dGyl6Dsbzb+M#7N9RM8K}}Jrq?2JYkN~ zrlzU&o@Y_@hkk@qHT;^LmTKC^)Wa4mg*LDRRavS^xQDIe^|XK}(IXpkTJjR_5=_&L zb&g>YfOg_m&Dfw4mhbH`IuSx+L{VGyNF>Fx=*=osU9sh~=T`=6k$QXtmW^er(u-tM zo=2?+s#oDpP`wbPOUcabz(g3)=A~PF7NLc))(V*w7)8O)S03Nn(6u=OQPuyZvQ2wM z3e5@Q#pxH6?FWAJkg{ExTl<6k&7waTRG+Vf32kQOil zwHxF`u_pk5X+`@D>TJ^-ClNFVPQhgD~7C^oW&SZ9*Dq2K18E$-KE0JzEEq8-;|vzmF1QcAQ1qySoQl7N+HH@)fOs56!gr>m}Xp7hcq-x@I>v zN?!SM^gt&KI+;zOKEd?b1#Mj;z^NVzS#-nXCikPC$C}f1S}Vg`I-h2jll6nuq?h9x zt3|JB(i}O0zIXvMFKE-Y_e`HkA!0M1*yCfMxyf3F9WUZqU3_ms_0d9cxf^ieuMg4g zC`~)(E$pH#u^aUcdRm7V#mY!0i%N^zbCmgjGEO~>*X#yve)Jgq80iKLe-_>i<{xwZ znRK};JEa4f<#!bjkYR>@^^&EjzOEMt;sHX@Pn3iMgCgxJxk4s$6!1H_gp$hFJamhQ z@u}|og#^=@&(QdL1EK_rR5Z%;p0uGF2Kwc3tnzm1k(e&f#Yph@z9>tuiyRp|yG zB&cZz$z@kT_U;KPbf+j>?jhz3SOd#^AHm?gjrEY7CI9$XuUU!6NKi4P@;pSM zjFpo2gc3?x${<1V6-k=S_O}W^J1fhmhf#RhlP!$DVA9Mw|Nl)ZD43 zOO=)&r>o;7f?Aetf5cxL)wD(~6SvFR-@)}|m#ajuX0C4oD6C~X%9`r^{PY|lD|YDU zPZVR4Zw@Y79Yv`=`T#R!MRnO2?Ib%MOQueM%;(RhDQeOPRw%A?lzlV$B-#V!pe7 z4Kiz;-5#9c=Jp5Y*lofxzkBNB`pb{xoG(5z-{{M8Ptd$%amFeeJOYuaD*R`{fTa9xqaJ10G#hoU-4ftG z>o-CNAVh?nDq97k%Z&sKk5TjH+>P1NtOAs9TE@aw1Yx*6)^o-X()F=j-L!%wqeHu& z6z2d+QQ&cr>o^iDN~>`TsJ9_4-lQ1FUOf~o8%+=zm>mSTO)kprUIXk^cn8SNO2!(}@qgH6olNs^!9G?mbq&+|;+(^qwV9zAmWa>d3eD^HETuU1p`xJ6_ zic)fx5p|Oo+bM>nElVTqm?;a^)F*n?pDs4&lZq}Eot^A!I$?VfnoQHEt4+zk{Net6 z%}p%7&$Ibq%V?LJ8TK!%<_!Pf@#llkS`XSqZLlVHX~A+moP(ks&VjAG>#a>$MsJp2 zw(`!6DaPDS1D8mJ#+d59f$oQBXr2!0EzAcz)v272{iQ;x6J(-l1dDak-2qKI%E znp?NLqHVPU+=qzHwkDn&Hd*Einx*aWrm-QLD7Ze|qbs&%NZ}$1`|?3ulM37{;skl$ z!c1ehTf+4-b1ccJ17##Aaq=qpax3#$braid= z>E_yeTDRDTqiB|kOv&8|g^r z@Ld4K(ZC?8#Fkg|0w(-YsaF1@<6o*lXz@c1ERYY3+#6lIeOpmv&(U}KC9(7ojoIIx zoSxzUk0%>6N5p!!?Ab`MOjfYu&hkww0Jdphw7EY=iZu^bLS!ky`c3xILW@92kH$Eo zU=*11vMgz+8AgfbSgzSUSGCVDYIL-B)o+eL}^ zZ3pRn7*#Zy;(U+6c&=y2K@rxt=Fx`gM?4BFYPwIGX!^s^O}&g<7wej)JJ_ynK%%Gf znLTp<*LuqXsQEgM?#K10DR<*OCp|;PJEAkX31A!OMze$MxMwyp{H1j_Y0a&K$v1&} z4o~t>HD&rSo&~GcPy(8>d2>}gGK=O z3z&G+olTampfqMsg*u5xlqHx=uJ5GE0n$r}?1X6sE7h{h*flL34KsByFFq7TnK%V5 zIFv5)21w6ramhrOL)K`9h>;3J+``7mx zHB3)|OI)lFMqMg2$7;V530jlOy#w2(e5WT?MCI56X=_Br2Z9nuW_0f(RduuItmM@I7b|ZBco@N5G1QI2UVd`1a^nY0 zb13+YN}kXm%apj3yUyT12~lQpD^6kBE2tYynV^R0^-R>JI_91S^To=vQaY{*3fY3e zbY!|ne|xn%gd89}(MYX?CQ=0|tFucM?#%jXz9u#*rou+rT&_|Dr+!O@BUoN-^Z!eb zFn63b);vj_R?Yww?kYgNgC!T1G!ao~_<@I7 zXakLf4w6b)lHml)SYT(@gAsh7^Om{-6eS;?BV?;s0xRu+l`EpywSZ*?UX6?`u-=4M znOP}!D3*hNNOEmn)SGE>)IjdY8}m^bLEk#;`_bphhP*D0yjG`gG{wI+M*hL_4D^qB zU;XqIPZU~gszrSc$>v1~c&==CDU>Dw(UTG^uXQNmwq;3^4n7tuRfj?soJ>ov+A`o= zaMe!mH#KJdw~d7UaaL8Upa@rIaUshggxFEgg}J_)Q7x*171@P= z$x&itqB}w?!P25^Qj<~>%Zssgg&cHof+GrzyAS}#x>Z4ClbE`zN+ra<&83Yb615G; zJ7&n9qv&Mi>!&znmJ&c}yETe_K0pJUL#;pLeG#4DAT$CWq+leC^ikRZGcYAhuRNy# z^7qFlS?k`GEZ2aTP~c^FrJyzUJ;8MAw%*xmU(y?!OmdX0&AeFLy9L(mA$4P+EH7d} z4Fyhe)Nfg=n1^qW(YU-0c3#weyHSzuP0#Vovt2rgc!KG-J zq!qOW1~Q7JamUUny06T|%hhbLLLncO=F53t`}?TcFN-yDxVF7N4Gf#+$7~1gr-d;-Vw<8KRtILYeFd-4a)u>`S zy}7|3ty*n%xkR}BvPX*LzM;Ow=E$?{LypF#>a(9s|#k!OZf;m}hjWVMoeqnwo9*~2?R(=zG9nuglWd(~V|5{OaS zd-cJ19zK<>=v{Z6f@U)O9+y>7Bq8RG1EVrMOf) zLGNV@n{j60!-R#kfH+?&y8LObe#YV{isPI?I0hkDO|G}Fe)WYLlyz;%J15zK=Ln|> zk>wh3f{gfaEkD@L&RM!iGG3@T$l%X|!QuY1;ql=y{xjI`vq|&*@f2k!K;VhiV1%d8 zyP3-jYJ}G6RSBeG0RKD}*1hpDJGw6ZJKYskclCdS8be6#PLZ@bQp8vkye5O4Q}o%e zke$9-GOn@c*O@Pt@t~!|O2Qauk!0JTmU^ReqeR}v)a=@}rnl7DW_TDpXk{|60<_3^_J^zeSLrb@!j{I z?{Bx;y}j4(-~EU_)qo%>q7&^PH-Z*O4U=c2bCRPKsyV`joHJzcw0Pqt$Vh{kB;3R0 z1D!X?R<6`}pn8l7xCeB1N?#D1@h+#PTBS64pl42_X9-_D$PMGp28I-ZiT5WsR``FB zcK=%smtd#_7Av}ouZQl&UlkCTBwTY$eW;w3Z^mp ztV%H9iN48|SkK;wk=DYHhWa#*5_E>E%>p%{lF1}p!Pi5vNM+BR@RnsFy1WULh}6A3_@C(Xlwu7my-BH{8Z0jN%6Y0;d|kvbaqF&^@?e zGK+L9d~FsH*0^88ltAEN5^n4O#Ocv#kXg6Hd7zQ7S9NTO^RA8w=L^-$eq(iC3uBWB zOA0x?Z*Rm!GqG5W++i zEtnm{{-A+>HB67T_4P2SZb>o$^#fs|Cv+ZLh*FF)3Pg@pr*k0#(;IAN1DMZWLO{|N zQZl6dc)7Y@f236Y)h#U*D8G~o;LodU`%?Z^&UIO!9eRzaG<@oDxaY>_=wA++VZ0Px z>x~Fzb(vRfsl7t7A!<=B89Ss1@-M}{iuwWBzXiE~R9X+UqKQhV*iB8IS>=y53>Ma? zSX`B0&O4-{L?H1sRcb=DqEYVwQkRzutge7(gmHX^OjRqpU}k9{v)7J6UR54$R{cX; zv%mltqv}@?HWpC5O8S1U4w3V$q9Vz&QTlqXlISW(jM6&hfI9?*aMz2Tm}XcW1R0H? ze#=uXaS!{$G`&)DZNl`@MxRb0FM9AQJ^YXo`^W^aE#tNY%Fz;`d|d=phuyu~Gd#Py zzx{|_BNoMbfkO{O!%Gbhc8Fsw*dtU9akIXRvK&I)V{L(67sxUnE>WCFE*)4xv~DCq z5`w_#l(tu0mG}GX;z-|WRbMR1BC2d=Nv<%TW}w#4Xp`HD22T8}d`l8Gt$8;NxmtxSz??OZ zSRUvySaUk=)p5g^O#O)30 zVyx>CG4i)CjHi3RI_H5ugJ9NV=h}n0!;Z z9M519X}cUOJ)5UZFo8> zQ>0p2~S#M(z!?cz}Yj?JWjjr?qGGGJ`+ZNE)(HCz)4tP0`4aGy(fS5!_H{Ptw6vjHpiVn#3mT%gl^Iy=+0(#c2g zyVEe|>*evsol_j4J@P*_+Wqt4`ReID|AkEXk53GlWf<7(6nRXSR$zz0U?yG_HOK26 zYJu%(?o46)6xqj`+VOY{%2ofmhWU%enoz39(UOtZdWkM(_zLqC89^y*{2+b^ zyq>L3PA?{3vi@tXTmQ96-e?B}UpnQe6fSjZv?xrWhqeo9Cu~6jJ~H!Rjvu1;W9K z_VNg>)Z&@kKRD=BBYhoAANb9^jt`UjF4k;4W~R23NMgx-0_i)kJKG6Evqr;a&9Dlj z$$F+~kDbDHfbwMD>p~tOU2$f2Br}ou3#{<+k#bb5=EHb$aia2=q*MDyFklfv*~g;r zAkMWqBQ-B7kSwQm46F1I9G)WWLni77y7!Z9OADok_H&bIXl90Hzq>ne7g!s?6bo4> z(jQnHSSdqdH6rN2+NoKiY1y4LCO~?Y8jNL zrd`EOK#@0@S%=IE+*TpML<}gor=LH5y1%%+`|~Te%@zV*WPb`B}o*iu#&z_s5Kv60oN5H-934~4!n3gDPHPN&( z4wHO#1x2B&1*Eq?1~+v0L38Je>6mtBKZ&k^XK#fI!<|;c1kjk{LafNqD(>Z86lsYVyj=3%$#YpQW%(l#rUDj;*{)C&pTv6TQd6ieD zm(3tU8`PU-Xb*(!QXwH5)dQ}O> zZK!RwbVVu-BKJWiT!-ZK((VvoJAsbmezIevJ&U(TT^RIHtVV*{qK&@8yNQH&@$-nv{`>2mN<64YF(Yp)H+ltTPz zdtl!=3f9n)y|^#VZ`SDXm(|FlIjy(jx;`(_FZZ~dqHPVlZ{cnrLxzlo)t*L(a3_1u zK&`mYE(PT_HmCvA5A6JUDt7cDh@oDTyL39nZjTWcP^E8H5Z$d(a~Zn``w2V|sbhd- z9mWrC!kc4FWuPz|7G?xLFT7g=(kk4985`up2ou}!O6n5eQ}X9}mBX?;@`tx?Ki%Gc zc)Q0q(I@lC9BJJQZ~6Z7yZ86+?zRE%*@T|YunkHO)@uG||b1g(-ISaSV{Ar&Cb&38|mZIYmF-Ztreyf5?>#N*Mvxpdk3o`;B_|4Yu&7*LQcf?@gNR?VX&TcG)IzSdVF& zqq7ad5tq5un!>m_hd=b#F+p_Gi(ECWK{ZS(M52hsRLDNTKL@>fs1-^& z>>L4VmKKj+_GG}Y?l|CKO6p~)A%gzYOR38iO^9g6nuhr{GHNO!A&Dq70)7koCCfA(oS@BoT5)O*Jb6{=#lQwuVW&da`rVyi&EhlTjyChsAgt2DkgzJiOT z>SWL+j!v{prKodtA8x31MpZ z@9U3me){_L$DjZ9?CH zY&Rkd{IHCOGkStNI3zqHnYkvJ4Nz~_7P~3f53!f4SRwbV-?#yht;&GFbEATs)onV; zCDB-`>Bvf=ft*Q;O4Z=i?iP9#vkYvf%@1Fg;9kmDU>106w2xxDT@lARR5>}tZN1cF6w2(=H4$!g&Ps*c zhC4e_9w1YtMjHbIoxmrR+L-&=3J%ggKysCI-{l7AhRyTHeC?q3LGL}l38oFV6vkTy z_3lWuK-7-+5v>;HYsJtxW(Tg2Wdl-b3s}_98!9t|oOpvCcbaL=R}7v?9^DiTp#QGC z`vgVsC{w_2i@fBB|4lGoC5xlFKnJ1}M|CtFxe-0wD5bqTh;r#o8g3u;CJnPUsni>p z>dtfS8nC=xsH+CYS2fDrJXSLv<*W~dJ=4ub{I7f4@VUuYH+*hx>fC3G#|#yHXT>`I zGk$;72lH@2s}-iFJ?i#<>^F~j{nZI#1!}RTS#o3Hm^e#;ULZsh1QPiXaie1cjNMOl zdpgm4xnhrjjQe_&eBl5^y`ya5y6R{Ga?GXhr!M~O9E0FKyVqryH zr>o6;K}JA+xO#RnUM$u|7tB*z2i4Pa#5Q+K3^{)t4PA>{XuPD#r0hMid4p_9?>>SO zQRTWvu1PqcPqKWYz9~S;J;LDxvD^sABoB>#^~oH{2OdBY_`s%$@;Vj?)}cBT#F(D`D}YS$XDC- zspgKdsXNs1)I7ats^hf+|6~XmeG>=Nk5M=P2Epwcbflfnwq_N|Su8@UMF=wkq=(<4U*GQh-Mi1IK26q&bi6@(k9BX2QBe@Ktf@hJ zLuYn1QO+tTCQ7ex-hPAh1KXnenMVNA!54}GarEp!`BKAw|5NL~R`N02qt82Cs^K)Kb=|dx9zQKzxV3z$5;9hC`N=6{t4Zz}*b7 z4Y;2}!GKxp^XlQ_yZ0Y|M07mnEgIF_HsmyQXiw-8>7e8^C>{u;WG@G}l((qigqID_ z1qT9{cCKunWi-23EVAJ4fV^gMtEFT%pn@}*`o1s%$Sy|=9WqG<`o)4%&vCdZO^Zq<=B@iH{H1G7+jY1kRWf>bLfC=6|+e- zTc?U}7EpeQjaXJVX}P!&73hCMMsqka0B#|^{o@}{vD45349fHv6eX?=FWlzU>NUc? z1k>EJSm6bra2L3md~+7q-5=eRV0jBX4%{6$aiuL#rYJVA%8V)~7RW^lrD_c6ef@&y zh#)^^9SzbwcQI5amHB)c7N?&Er*ihiDG|ySYg8@o z_a7nFqXIc?tT@=}s*kTBTnq%oOfodso`3k@lf&|{?>Eh;W!{A`{R4BG8c+8Fl*Hvi z_Ylu-;6gMI8WecnA)g@#4K9)EkSOvB&G+DpWo1^UcrNqwjYz04Gc9Nov*a`j2JgfW z5rkDw+~T&cwY8`0U+fOdPOF z6UeY3bs|ZnbxL2sJbEKpa?|1K*=+Uf?CyFEX_;CK@t#(97DFql)R(IHzSy`q z4LMTGOO7(CXIFzXr{W}-VG75@r2_N7$XvdcAND{?<}Tla8Gs7m$NFibgIyw>?l^F~ zk1OH5e&-P#{x~o1!WGL^?nb>u?h3d}*a~k$A{W$WvW|RdhnzaZt2JuS=CF6Y->YQw zs<{c)uBVd__$KSvWSFL57xmJ-3df~2l}-DEt<3aXznrXExrh_VFukl;8xIk(g);M# zpe|rm9U`nVrR|eU{cUWnL@ouIq?7FXIqlV_-7!R@Di2d8jW(H)=<>um%$hu2;oYKZS|+5xG#Vai2(^&x?l?a zJmSX{Mu`@hz5x$HB=-99O(9Nb!YE*E0B~+0h7sMufe%LtT?YsWQAWD`sYQiueR~HL znijnIt@^<3=5-e0N{=NqqF%S%(BlE_TVHF8Ar|Li zQ8UFFR3I%tq)H-OZH^X`INeupR6Mtdc*|@*CvoN97mkWCW&$F(U>KPHmJ54w*puOm1IprIk2p z7=T)E!VQ)tV0BNhit}9Ev$&h0yl z8$P_)z1j*9V>DMHB1s9VMBaiDIXR)&CXCCWX&CKvCRr@zH)n%%akD-H1@bxpwyjko z1+l|RVBmKo6u}D^7B#)&;hc}#HE+mR9z!=V_izM^=%WW#b`gG0+ zdSa@OjvwH&$*DYiU7ws%Lrp+*g6tRC#8|?`=3+Ld&Zgg`07;0RijV4#HA+BDN%&wY z8N3|Tl^-68isx%|$3hPHZhL)qb76K$S9lYG4oeGV0_K;P$-7^oOfU`Sf>^ABnxi>p z73IErb84no9VQJtgQOQ7QA^HT|D#$t!zD88m6D$D?!tNGK(GZgLd6c|tK)mQL=` zaKY*?Y}yvYM?KsAj_#bU`ySr{a*T`sH&CctLc`KXE+emVOC4lXpaYSu=7lhtZC6x{4~Mzojjc`&KZq_(4d^n`sQ*otXf74 zk&Qp}YP@bi6I z^FD_*e`Tc5XoO28PAcHdK#?i)F%$>F2KDug)DO%v>_2n*U}n3*q)C}PS}`Nais2$JG~$`Zdrv&zCEg0vJgAWdehOHkZfWh45Ji4Z&nZw@o#Tm>551LvRwr3 ztZ(jTQ2|wL((Kx^6--s~aAiy?jbU1-!HT(S$fyX z(NFoSg?IiU3GXv#tBUvW=yLhqY&UY~vMbPG$pTXt0dqhzf=BpeF*Tc5BQi8QSJf3b#AD5=|aUnF4{z93r++5Xpp)OOLmr!jGp;vXNwYU}v z5qE>)Z+$Hh5ak}oypbb@+ycsM3R@wQ=>ZuN@Zj^()+avY>18cZt6^FITTPx0^olCL0t z(1J>t(_$px^M8aA7Gr$d+yQ2KzL`^63$k$$4}^k`YnDhzS(C}#&2G*B zryZ7g34^q3rBB(eglkK~{Qk;$o1eCX^?m`zW zkfj52R5uda@0xM?3t*n)1`_yeGjU5qTxnr+=7wcFQFqqlay=uA@{o&6Z@kfnv6Q~P zIDA=GQjn3`%gj13wmtBV`fwd}Fg zIJ$5>Uijz6VW<)Hr8bud!It=2MIIyR*Y+;L_3@=RwV>8F8}Fser4kc};M`HO2tM|yK{tyk*|y4A7u?bk4UOJ;i!ZB8%MONMI}e6NCGD__l6JQ3k1h*(P<#Seb- z?|*stjq4C*mh;kXexdnkwalE4+^XtIaMC5}8Xzz-{*uxV(8b|;h`xsFDWlZp)3?t* zpeEMxMxHZOL-)e%xQ8#GAbwZ2ojUC`v(!UMo?+50$hLQ+rFDgihUp`&ouwlX-5ya% z{+oz)oVSeDNvDbcUmI}AeUd>7s_engd?a6x({j=2(>%XezidfG z4bw|Wg{CV=)Rz11Cc<iWK}VUyv+Qs0xL13sHjI6&@ar6`B>@3XwnS zy{)Ttvk4bKeTGoYb(%dwo`({7UXT4i$_UWWmXA&V9u1H>U^|jE@($bH*1-H?WBf%p zrW2-Lm$?fP=Jd$;LlrhcH1WQFN1>(DZ=?Aer#BKi^9$`*iS47a?GoMd0^83Z$k;<~ zAaN}x!-@IrqZlu)^$3gpg+1*CLC&is+eP z8~TU%HbSVt0n3Nl-N=X1zrwM+J9MR(H518i96M8*ih487;DPn>95mFb>o%g+P*hGl zV~X{d?ncUbguV|IWixnmjE1CDgv>S>>kNbZ`%e}2Zb}pxIKSTs2(oo zI5#pKkPg1_NO>XB;D^rbgAbW>HQ%6|xOXfFi;H7QHPDG~&{TGvEuM#-x+I!Gp^0bs zHQZ>CsPpa};Ke!0?H_7>Zi;cIL4@<1RIW1V*oh@pCKV^Z;2rDB^SUcVaR-}CGv*bd z6L(C#9#gbpO)Z9~HZUPF_SFrVs&%08O++j6xKRc{!(}R(%)nz_wc!C3NP|iDldF#i zL~#!gJMV>>Z2ET?A`KiQPIj*dzjIP(0eD?O@0aDgQ=JCZpxktf4b z#EfjNch{&&@Z#Y=lz6}R^zldh4fn4Dc8IuE%n8DYuJE^!qg1EK)j;KCm^49MWxKp0 zRjDz)1NMngG=46r^0{(Tx#b$KXwN{(!v%cISykT}TA5>R@7nX~4%W`X& zrpbd&yGxnw_x~l)4;0UGs`0RbYFHNF0sLXMO7P@Q&v7)pmeN#NAg+vLlaSW zNr=E*K*-F@>@>aZKiKD&;g4izrgq1`2iiKo``OL1>e%}2%fma5w3(R%2ah^d1EHl< z9*IwgGa2p{Rn9*_^fVxi zYPV`uZFJk!flBQRS(&cuJ+j%JKpp&|5Y5~H(kB0u#MCXNGFZT3o7O+O@Q1&4IGc-j0L&2I&c~gVF0*tQL-btYZrz zae&4*hH6t3CA5zTKI+<9y42oM#6W@zEF{*wB&nUWp9`4_`wUR4dn=)ctP;jWDEqm2 zh2IzueOCxItA$1K04rDG7dBhB>a~YkD4k$>P)CgGM49VH77J79=(_Kz*%ilus9M9? z7v*^NR8XmmoFgJk*5x4IO75FU;|wYCdgL(YMP+iD^aO{RGFcB0t(LETd+^`()1s6) z9FRyoEPwApJt^?(CA6}BT5B*(sx&!_VPG340~->pVKoDFW(L{x)zwUk5*ONUuqRiU zv7Md3jTYLjVpOxQbFcDUy@C@^XS{jtzg5ug1S(dT{9_CLbv?hj-d=-kUN0929_YJU zGLq4tU>#by(j=QB8l0Nf>L!?kDXxBiN_Ep1dl4Ng2MK>62RqzHlBYI^iTw6ucm4Lm zUuNHsXqN6nIzlEtaEFT7LW=MDHO!gRA!yaar<=-RhYT?rZh&*CF5gHi>MU>6haefI zH5F-C&zESy{Dvhp-)LRSSpR&KT~zZ#qBd0D&lLGEj70Wuw4|He-A-tkksausxl4(# zI`LpqTi+->LYo%hQr`V5#Is}dBZXzc`jO&~yja1aVKM}Zo*794%l2z6l^Q3H4hO$; zvzaHG_kLJ{X;%E!HJpx62~eXln7o^sD_9yngU@X?zl9aMduTIE!;KJJoZr4c`G%nv zL%5{JtPbDi&dgKlgx6cl*ZM|jG!Tv;z;2p1S0KGO35+Nwd~C%uP>ey!eGRhF?U3Lv&caykZ({w67B1lP;tJ#l#E{A$|?^~b=*zA#& zTSd3LYPAO%#+Bg0{D>4gvQtqWiVRBoJhLc%STu19wF#-Cg=vAg-J?{tP!{pbn9BBs z@>OfiJl5*Uty{#~#5b!DZFeG0UL2iaN6cv{cP!l}i}J1>zz`eNrf~INgBq7wC19F7M746LrCiQ?k=4Z1ma;Ow= z2RSdgmLTbDPZvPtW{J*{_>Jihr%1 zf#AM)qDTaYAxhszC5+d>yIer)gX;*GWQbA`^Gl}q*7URi>IWrr=_wo09A@EHC^)?a zqYTvJp=4cORPKUO$!b6*Glq!KYA9J8VJ$Q+W|d=aCWTV7 z*MnLuxQ1zXQrF;&gMc%odUv8Y6&LZ5c+L}C*^C%e!%Cfv&8k?LUigzT{+}feDY)** z0|-!sfhA4!ZxIb@(4+$CE8TpwQyOaeP{+ z&K=DwX11Muc>Cq2)u(@d_TK{5Bh)3l#4M#( zE=+G|htqWVb4k<|D_Xuyec4mPci)gF(OY-@nkHdHFDy}ZDl1(+F9ZmLLo(&qBr1&> z=^=kq-mz+c9Xd0-v?p3eEcsMw;$(K1A(X2V03SeKc z^{&c~Qfm|1WyxV^be7FoLQA^R-e>7KdempB*eOFu&lpg~Qs;3sZw8-(*Icamq~y)j zef`88zK}0AA08h5cJt}ogVxpsjvlaMqjUt=S}P%{GEG2r=qqoT%&l;3pzX+3H3m6X zgzw!=;YF=w`A5fyASDTPz(ba?j1Zjw z$v&_N{o!yK*8Ud@H^?EgszxquV$Z%*TB4u0ah)LDb1*!S-f=#s0rY-4 zVZAn?B1AnqcwR)QSN2ITpE=znR)FR#>RqJ52tWMv_A>}6A{mAw$Q*DYS*OU8;n8vI zmkFCEmB?Pnp)O?=Tw0zfqZ3A+&?qd&DLF6U+2nI77$&3mHZx##@Tvm?eWKUJ?7vDJ z$5&fpLl9Yo-FP86bbdbk*=-gLsKs^5LGbWgzQ9uLR>>AeZkmN5<{QbSJY6$x8ANY^ zq9V*kEUt0`Jmiux!#hMFJ6=@?7B`G)McOacC(&6nSI)@e!sALbLR(^KG=8@H!YK%s zDKZ_kM)Wru(W8FLR%^O#T`nmuv)7-6BB~vb6#%L4*{r-MQmZFw#tD`exs>!_7|IFi zBHlPCOIYAhlV^*jUkgOeIKFsM{XK(ZTLSx5FK1SIQXC6!umuZm*j(Kz`*lOzBKdmiom;*P5OY z^&GDPBd<1$F}IxJWCkY|?6*q1<1bjUKrEsQ)#UinHg-&JZg1-KyItebE{<^nd4g%v zaJgoWA<8;PCm$R`8NXx878&QIKah|QT)nFAmV$tJ%aZrf9VP{fivjv5Q6a|O&u@$y zGf-t#cz8WncW7%&pD!&2LtzK9E8)+uU|r`5O{8D~>t#j*xXB?g)9LA<`5vh6L6W{& z982?aBS0IWizrEdz)sPUI@i&v%5%ihWx`v;NsMgfmMm3VYYZ(;Tl1*tKZZI+$0S`K z;^C2)u?A{K$rAF=9LCU)QXx5^b|7j-luk71D(b5ggh$QH_^+JEc*xEHawk<8dnacTA? z_l1Z!WGG&+MnmW2jVz*IdZ{vP+*fs45jms4=zCUO<#jQ+zTip4Y0EzU)~dN@kS3@X zr2tMt74ih zNZWsT+Uxc)h{h&KZE`z1>X+dJ(cmlzq97&=@Y81y1jm;P=}}>RNS!mOO6ahMp_m9n zDa*06hUo>9PoEzyAHM(gBScOv%{|RaFQD^?hCsR%4#{zfRdsJ_HS691dNzJg%6mb- zjRiJ9n+()+w+g#BVD>awoAt?77|;{nU=;$!WVS)Y5wQxyY(|VMrV||}|67MiiytM- zOyP;EblA8I=dbQ=^y9b?v|2y!MifhJUMB3<%SdrPGYEe~f1@E1C(Rz(P65IjKBA(7gA_o~`KE?C^xiz*IhMmLBq z6bmbe2S>AJ{puR}5X;|OE??a`i$Sgw%N4WFLvhAV80C3b#Cb*-AG26pnergVk(0x8 zsYMH;8NFCw0iE=4n$QB4za}-es!xQzC&4tF)L^=T^Mhg=ShNSUHoCcDSx8EI{?n>kdgD(YR_)+W2O!FSizOio$SMgh`+odNqPyc995$$Y>p+BuHf zGew*>HEo{_P*6r(-ZZ|-DWUuJV5hWxp;-!QB8TsVse~I;^zSNU^=MY;J-E526wYNsYbRhDjq&_ovi8Q)M^sKZQ+?6t_)RA`UB>-;cmfau=_31M znNW`n^fh;lxSM`xfL=3?7wC24OMx3^@x%SP5b-SovRxPB7x0=i2NJE{mKK>;5xPHg zqehKvz&Zu??odo?zFWgI9M0LD+I$UCOP;((w55Qnc-TgJKTJ~B@_(KgN98%DaBfn& zERVngSY$^q$QG9{&>jUg&`RuvhL?BemrxK~p6f9(_yBDc1C&&*c|fF1SAN*wDO=-^ zcu`p^^^{C)wBhLB@E8emi!#tiXi!*|>r%=K=NptGx}Gg>%*38A^T7er=1)su9ey5! z3ykouvpPGi5F9nW?#7(#rvv!~qe}GP?{7c+(Qe@{^Mx)D zCiD6gt%LLBAPxMNr@!R`5%2ul!G9mbV=eqSo}FBRpjyy=VeZCr@Z8_;d)8ByJA;;= zen?-Usl!N=iF&d1hIPRDdJssE&YGoBoBG$~zx@O7OD)pzo_InUW-Hhe+4pIP7$feZX}oE- zV2rluGJ;@wgJ24=F3<5W(^sx&h4p|E7suUWep7&NVS#YnDS8s?pt-(qB>FguD=nbl zPOZZ9kS>c6BO`?-_fQrk?m?vR$0yZBCg>drrs2x$1Yvx+bVR~ zC!t?=#%MCh5Hn)+M>o#f-<5G5C-S;cvk~?#6JN`(LwrtTt2{0)T06}W>X_6UrMBZr zJCC>GsP~kw8f2+x&j_8ENpdHo3_PC<&r1o_VnjW^_5EEwd5FSVU#{rdo-PjA*)m=2 z4r^0Qc;20r_~J|Y3u{gc(d*1D2&YA_YC_DZU?KQ9o|O#02g^j=RzRou%#~$ctPgEn zX!2Lo5OO8p^)xR5Fzph!reB)(AgH9*@nIPRkOrvBd(7lrpq(Wraiftf>xkNK@4A4& zEi8QDS1e*4tmUL&S6U*GA?+H( zX69k=`cpq7=}*OGAo$iZYN48uo0r8%P|3`eXG2V(DF#org7 z*#qq{5Wr?u#C;SbrK3JIbH5GVhWwZ0U#g>XZ(jT;rPPYm_Y&}TJNHmAm!)^*E7Lo54noGzC z3`;vgKXW9C*9gI-D}Z{7k#&(X zt(>XCknDA3jaXo=;MKD~tyHhIhDETJq+TRS_$$MMY2teT^-Aqvc)d!E&d)4-ne*ww z6OdBWm)XF2jS>OMPdCNZumpd=z)gdXckEf(5BlC zQLZfLgt?GGqCHeLrI%O{c!uk7z6k0YniWN#aJ~Y<8f9V2m_(gav13m`Y0#3^z+!=xD--OeSq;!fto~>9>;&~n7iC{DxXxPIQJA`}Q3*TO`_&brG?lAa z)W?n;qNIa9ef4Frhj!=-i=jrkP0MB4xGH{TCcticFvFq#=C%o@wL=lo6>1LeWyw8I z;L#427@X9vJ9MQ6?RkghMw+layYMpTZlJ8thIUEra*DJc%3Pl>^XGZyf|o9hE5UW1 zC6Sow1cH&&tvHNMNvyI2tSaD3Ki`5QF=7IkjLYhtlc5x<*QGX*=VW$SBi^}kUJ6hQ zV!>}O!CG%Eh{taCA6b)%(~+f}(JJJVm|f1%Y)YNf{R*35rh+|UU>Ep=8N-`5kXFzt zh)w$x>8Cv6xQkd5l%1HohyqTc0^z%4dHYf};(04!`b^Gx$+{*o9`-qjYk=MWqvd3? zabFbsdg>@c2FKmpg^OwxL{2TF2k)ENQg>XD>{T8T%rT#nwCF959YOOBnHOP!yIY~= zF<6D*Y+ay2U^UcRdDnVXjW+#?S7nmx^^usGE!C)>$ht^Eh9Y+7wJyM0>r0&$1O!eQ z3pe=9Pe1*}@O%Rz%(B3Q7yf3gVS;I$bkyW2L-xn1Ngz=f_SB=_5N|S4Iqf8Z#v!ov zE#P`)6_$`IJ4673A4Q{Xqja!(6hQ#>z+&%(4DBb`*1N%0gDvo{hkDrIbecQ#t4x$U zV6Yd#5-iWjAK*$Zw~I)PJTh8h*hS)246D4McacOY>P^857idNI=cx!~do$0>Ygf1n zHm=gsa&F}g^1cwOL_+A zhgul7QORdyD^uRl$AIE(3tIxjdqc7!qwGM=5jv*gFH}bAj8d@#=A5}P)qm7G^j8kE z2r3OWHaA@z!(M0|n)0eAUmKSdatWHm3JCRi$p(qg+`T?CLUeG!08GknqUMiQ$=@?V zi7N}p?Tf7hd;3$%ndmpd4p7WqiymPJEN+h-_fw7qyn?u}MR|v{CJ9GQ$`e90l(Re3 z8L?Gn4gf}CAavV;*$$&Nnpp2p`k|e61nX+2XwijA#mXVrG;oU=a)XVkd&1-##%Kc8a zD~S+s;dn`gBA%tt%pPv?FWJce{)WBPYSWN(@n$<6=>Q`A*L)mM784^tE5c&4X%~o}^VpwD<)7#|^XF!|OjokLo>N z)`1B#%oL7(++;pTu@sHu(*vN_iTSwswwH+{So%)P49ptn-+YXCM1pB}wrg_9CguFQ zAt#;Erf77DP1|C_ofezgXEG$UeXWneia>R7zF~nU;s%k;y`{vy}LQt_NxA9HcSNX0lfdt7o+eT2LwqZawJW9A_S zEN`NTC*FeDFZ3`sqtJOALGa1n8vdMKDaCy~rI=#x^_TcXp0T-Mt9UPQ*Kne_J;EYl zti2JUTW{_Vvq0yGCF1lNFXN_Mj-n>=c~V)2&;t5T(`UNMGji9q%R5l%UDl0=up}Th z!knaf*>{6)j+2S9Qa9}27eH-@$0$r*-L;nb5~86xHOsqOq%tF}t!^?q1|d?27kzd&I9Xf=JvVX5)U!YwW_t{Ik5E2>;%fJ?!RK%_D19|i&ex6LK{h%?qfA|j^Kv6ui!id~7F6pf6VmF4j%q534K zFjiz@iZEw3l4c9=;p*9Vhz`?VR1*uc+rW%~`R(&B^nv5((?Sz5>{=aDDmiN=H@Kt2 zFIgfAeh-p;Xb?F}9Jw0uD8?tC)V9PeevVh1m+`}QA0l`9D+~9hbfu;H>1Z(!b^F?j z0f%ud8rBR%q|AzB6DL-%2QJQgzxg`MQSN6@*q=FXLc8;L*>tI?P{zTtnUCU2=cKXE zKFd&9ooqLV+qzWIo`tE`92pRY3j>k~W{}Hhk8m-~uhPn(LxtJb?6@c!N<51v2A#8j zK!by@Cr262_B4Vl8iIA{^!AvrMLqi@dz9!}iyl$iRa1 zxNFx|z6#h!&&k(2Q)eB@uuLt!vCv*~NPzSTQgqaZkVkcQT85{M?mc_NZJd6dwp z2-{lsQ=@?SHdvt~#l?>PFd7{no{rCs&+wno;qd4IeWA`4%B}$sLb}=3YhH>SdJFsL z1#4EfxYBGwgr=bff;9|2Vu6UliQa&?rIDeOAe`IJ1dmK9$hqUs#X234%txB^7CH8# z+#YvJtfU#F1t{g4R!pd28qNqYS1`c+IxKgdr3@!>5+`(*@8`?Xv7<# z)QGK(KnPr3h-ew7OR@r2%hTG0%cXPI1RkHQKL-ciits5y*fS@ilLBc2yX9tL;mGo! zMZD%y1Z$pOs%JKE3r2SM@P4mD5@@zrPpATlFo4Ii=SoA4Dv-WCp*&KbDBnA?A(8Z8 zX%NXoZlDPv&vt>bZ?;$nh^S#&!u4x>6mm|Ha!UPkPx&Lh*%MRSQIr%bW*napAyzF| zpORx-B+gK@R+Wi4SMv2gH;8zMWUuF=xSjA?PDbcSRb7P615}pUlhwE`9v^7 zbtEJ1)(Ep-FRY=e{jF~{hAQws#Uy8pqZf|i%jfq%&R;^v*NAw9anK%YrzgZa zXYyt~uo3Q_a<{H*0L~Q@h>0&f%3PtirOAujy7Mcr#g*m?q*W;I*a<3r>HEOraC;sB zM5Kz`Pcr2vaEocTa@a zbvZ=eW&JOKF_+WD`J3tGYQ5Zg2&~_^SfV!2bb5dKe2@mi;(fk@1c2lHOTTg=J2Em@ zPs@m`gEXB|I4MpR{TjLCN;cTLSQ^~NBix+(Xk&qQcngHkL|(fFhW-KNQL8LrMA!Yv z=cfaHRg-*v`h*8b=H1cx9jZ=ZI-a^ZA8jbQ>2U2EFw$J8sLyfGnnO!;O`v>eIT$1i z)>SVqUEI*IsnMpk&eZlQj-0NJKyLdJF$|(tR|KqI6?W=YhT4X%=lVH>iqE7q&sokl zM=ow#t{nY6=WEnHI=x}yHZZbCRu~(anbEk{LL4BiuUkhiT>Mh|S=*iwTxa}?F1=JK z47B(xau!F7BT5P4)C7Ks@=B<}La1vQ*+|icTwKKnc9Vo>C?MWg2*bMTG}_hYxYFuv z{^QH`{SW`fDmb(QO;9h$+ybaCE~4O(0$wKHZAT+6CgZ90S?0Pxds^}%d*DI3o~}=& zn!%!o7U?E_jz@?Y!IL0p!R~_&SzJ1+#@H8u(m*hl9;?R)P%qr%<|rqEkY~xt`C7{c z2MDAq&|(y0hno+7UN9EC=XT&3m7I#4fmOQ+G=kVvmZgYelQk6PP_S^EgH(F7kAwHY z@jDg|dxaAI(~`Y-uMfw<{UapfN;~l)_EsvGb61z=v->aX?CB&5Tm{JB2g)K!zWO~ z^xE=-c)pXLkdq>yUB{JYg~EQ#i5qD@2IVC+J+M{Zw7vn-V5*y`-uAGQl3#!{oMaY? zT(@8WPMY1vureBSq>x(>mdJf1u_i~RMs3w?@87+9|7mpd>ErvapFT_L0t_w4dZ0!O zA|vM(MWju&ms{eS9T~4I*m2b8+cPjNl~7yEh9wKPUT3tqD#)CK zzaE*-j`HQN6A*nc$in${Hb-5cC^Rs%cmRtHAJ->ccoh(>TjpLu-oose{kPt1yW4D& zKLJ07^h~@-J)F&P>FHP5$^#8mO+e7dg;w&J|JRR@HrJ3){V%4ZayLY{&u_n2sZ@Cz z*aZ*1X9F9sGRC#%yp)AS8iHe|GbSI9j+E#cB)rLF1V5fohs1@rl_FrB>QJ}}k-;pn zgZeTdmA47#J@jT_bCV5uBkMn1Z|AetwpPQma|MQtdS%2?mn#aWL6yFE^XKV$X&*?; zR$;Zf&6V;JFav)1?*_>`?B~Qai6IS&uo!uI^Wo1^oOAx4M!Z;5mnqZIhKz~LuINFp zwam$Z+vAP=Tlets37Q){59*?Lk^+G*p`rYf2#lW?0&_L3PX+oFyGbB|p+!x+?`?J) z58?P`B#Ee;t58Kiv1mwfEqow}rC4TS^5s+uo(L}w5c3@2q`ZFn@!f}qlJ0haJo@mb zLK)qYu+;;##ZL|rp}4}e0>Q54Im^*GWd+Kp=We}Tk5Gc;;iWp+#(yT5hG#CidG#G_ z+Nre1UWgXg&fhrOv-EYuRuuw)EV{g(4f5YiCxE)q;~yMkr0O4F%joHjrM(Wpjx4vo zZ%2BdPDM^NZ539~v?CU^jNSI4|3tX4nTMoAr-1YG#S}I^3!;nKu(Y35_YuNK;mXd_ z5h~9ghl7fR>)Z|AsBWa)5A;R)?^|9?1rguJrA@-A`}7 z?7si@{=?Vz9}j*;q+%-3*4ANTD`W6b)j5zA-3BmP{r7`9Urt?*H{0dPZI`axABl#z zS;qXkCd7I4X}y()+vO204x&e_ZC%O%{e7O8O6Gf1Y3iI$M^E>gS_bZnS{boFoo1P? z5{igw%F3Vr5^CpE5O<4|)?jojfLJrq^c!vp-O^jD<$Bc&rZx>WO`q^ z96nJxu+;p$6*_RpjH%_?Q(k`vUa};YI+e7EmrVmTNK=XBVqq2ME&L!V=L-FYYTT(i z#Cy5?56vP8<=3McB91~Lg&{6k6ck%qgO>3u z-evRh3qS6z)Vl$GY&OJ{YShd8kl`dBsNUiy+Nun>pPZfKK3zy<>6jL!?rfcW|SLiM?E>E z875);x?p^Mq}`j;0qbqbNc^+*bqo?mvSpFWjF`j-Q}%?Y3~G=Ak%%BiA&Sq{5Wg!* z$?S6LRxGJCUuxC$;pVG~Fq62-@G`?B8iFAZ^KyDG#=iOXy_%+n#sh8E(ZiUWV+X}f znL#HvFtN-hV^>9ZzrXgz2+?Bw)i(g~@C>W@`%(Y#6JFlRsHJKKA$gT`2!t~gH1EHQ zLY1lu>)vz%GM3$uEVp?%3+`-IVP@EaEb;w?SXi;67^2s~AXHE$sf08VStMEk5qf3L z)8^=iF}d>@uMXk{oFTTr3kzewg#>`&+K7}Bk&JE8KWA(GbLgcMA66w`AZcdyAi9$& z;!WUJ?7NvU$=9=$u1a#?j9a%1@mfQ%-Bsvdv9!exgm6^`Tjp<`6D>YvvB|GdPc2+$ zkCajX>i!>3Zg`2a8GZijgv%hKeEQH^AzNxopr87A9^pK{Mo$k9`uCWBs;G>v3Yf4; zRst&?eM7-%~M8t2T{K7W~UpDKl zU7@)99a`amz^Th0OuTys0O?^nW?9finSHPR79b`gpfc?EyFDyXA~z*verRvLAndubNDT z%bCQPxG0W{hg65XIxaPW^|P?VdAm##DHOe4cwzR%41OWPW6ub^U--4cp2D;1lCrt?grM>$Y2R%Nbbo2wujtW z;waX6`+6Gr1o*R9a92~p4sRJpWU$;x1X#iT{X)Fd|F+jy28~5q0*9#38LLNJH46uf zLWenIyd*)Q;u}MQoPXJb3r%+xH(Ho*w<- z`O)FY@yXHg+0k%xbaKp?!qE|oSndrYvUJb{Lbf$oGl=sInm;$|^P3Sfp4dJGXBR0m z2wMt2IhVx@=-%nchJX6_72%fa2mTv{wA_sfVh3fAD_ziSs-_f51hNB@TJr)G!r6dN zrDq~7q8SQak&<|aqTK*1<2bkkp+QS%W!feAUTk zfqZOJG)pp`hP4J)Hrx_ z#sE*xji1oPV19KK-C8`K(4F~lmGRRosjR445d&>mf^}vo)eIU)a*cYThX;PeRep_I zVkA@IcPZ*WEPs8kPcXgSxRDZvM=j~9VH!?Ec-;DO>eiQx5TYsLCNhOs@o0f#`<22g zP%2bWPfyjq1+!wFjF;-=8AP@#EyDTk6ItdaGmy^1LH--H;Y{CPUL@jLkQ~`u=ar56 zU$G@XJ_$OP>!Y^QyPeLHR6j?je7edv^wg|4;IBSL(KA3xp6C}drW~D4&7)d@GB!o6 zmeN4SNs1viG3!TSRUqdBY5P*c##@@1Vd(P$^^v zDkW*kUiiHAn04X#yUhPlSY34Hou&0xM99FrmI&fRwK`53~+#@GdwJ>0mK+LRoX z{GeD+JRZ?F1+Nf#ShfMhIE4fbxb)3EuZ$Fj)VW`}%%ANpGym+k%5Xm_m4OQ-AYY?w z$Hg4=Io2EMZ^Ogk7#NaTfFrlU+R-7I1^4+GCqdtmT9yf5FI;jA!XXYpHx`~w#{&WZ z>Sa-gBgy2@qrFW^ne`wMT_7#D4nzv)@^ZTAdb%De$fs_|g&z(M_PdiUR!&7^wu2|K z)c&>Z|iP}e6X*Bf@qsMo26zkjq~nY$bh%jdxl|I%=!g$1}#Q;0Yc5pw4#522Z0s-wc~+_%H=KX79$$HET8wL zIQ+vgits(N|G;vcTOG*|hYqpG0*;i#a2V_xl(*P~-j;t0djh1v{%x>-neNTR#Nr-% zRU|;R078pnpFX#0kO=9?ZgDpx4f8ut(vKYY9_pBta!;X9c&8aaU89g8j4CJ1V5|A9 z5;Y6ey#nc5(j7OM=?UadDJ&Yt?1*-8?K$Omu?MS`+}&-C7CJacyco8di+%M72*_Iy zG$r%{R|m8wdKBABlB+|~sn0E53>!xR78^y#)x+1xr*E)veDh{fSZkB^g1ww8hV0k_)=ISy|vfjwX9 zvx{Tpdb-midD265=fTwUJ%_gt-81Xr?2L1j!a^Us_!u4ZN@_D~qK9B{G4bO`!CoJ4 zx!&%V^$XuVd@ES3q|G`e8(Z3eRbo0c4$R2y>3P2Vk$+GshHZ-@CtM#`Q_(~Xy?vs7 zk)Z70hWsR6lS-9wwE@x+(R_M!Gr8OIRb8N~0MY=~9vRMa1-fXV;hNi6i(Z-WU?DLp z(*boGm4>rF*xkcIT3{*!hGzx`5}GQ&`boJgi~(MBXrT65Uciq(Y4R*6%55+ob~tlC zE5i;bV$#?q^)vn9>&3|atmh_Z`a^3+3ZJ7nZGS12a|MtWM`;~ltjWI~Pi(<@7KJ0O z;KlrM&XXM*=O?cN){nH*?yGdad|U|;biPqF3}^plH8g^hE;WK?DiX;#sK&=3%n72Jg?jUze3!>}hD3?8M}{2z@>9-!dC2hOm&cs^idUhQ%r8G^bo?vc zc06P?d9D~;W+{73A@ekYVDsT3b2e{B z(@s`0&RTQd2SU(F_LiY8;lRi2Ia*)ZCtWVIY;Rft$6KPYbNIb1X8 z_QPMw2kaRzl7@#bq}7lA9*`Im*Y*m?n{5BF-Z*(^W{UU*uqrSlFRU#|PT%kO#U4W$ zS83iLF)&^Ev9ZiW+{#D+AP-cbEi|^U5X1^vB(bU)CSqWl%jL2>c^qxNxlEO>bBI%} zeBVgpg~nAXN1ndh$a~cuFGMJaSIFQSlj$6uxz_KZmw__nG82p2#r-0!9n5ao z=pP*`5h<>k!RW?W!3>9*MqEiw&l5*-_4q=3$uP|$*%^=^PcxfgDkF2De_3PZ*fq)Wfk&m~FEo z`J;ws*TyLrqq^ybLs=9JPc1Aog6ZN)tA~f1_Hq#>++hAukC*%ITRF@j+LT9~UiLY( zP+PPN{N;R~{R!Tt->V#wrXTIYV|^s{ne?h zybH({g&o4bGF>P1@&aB%_wy^rP|uV0f>;eS^SIJChNOnn2iGfcKfuT2HUNprbN19Dw1lbhY zSU21W!mO$$Q|UF|8Ol~7zzj)WSCsgXu$&2pSUl#g$b{xLlndP#`PT}=y=5_9X-Vnu zY9e=g6OSTt*E5e~!?VbVWMxoYuEmRvksxc0;H#D&9^~7@WDN5lg2}X`#mS%2<1eBv zQ&c2IAZ02^tfY{OOPYr+E>MoxiK+O~_GUbq4S)Vw!P=AMdOLl+yB-)NG)9tYtZF9K z0}YG4yczuc(}%ZT-+y?()duAiBqDT78w~_wAvRgn$$gCg`v)j=>=G@3E(Z)E(_iUq zZP`$H`g-mSat?onLA2755?rT*XgEVDFC=#J5ryroglH&RYhT_W@a?riBX_teSQ|VK$4~!=JaG?(-BbG4J}YYfCdtf0fsP#W z?bua@9@{cEV%*)*Hvebj55bmJac>*Ym$t*9a==FjZMLDKL6el3;*L<;ZE)6hGbORq z2D$)h0k|2Nd>=-=tnd@CW|l|6hpY=*2GsBqH=B$x0`ag}v+@XEF!Nu|3D6)-L(E}C z^6XN8<-bzUGfUZ}TgoD^UvpLkU3YKT-(k#=dxMBNbDb2@MSX4?pk_fkLzKh z{zxh&QphlqTbh{cn9&Zzjh(Jgh;e#8DE`(&sb9;^gPg@kqYjK9rUZW&7kAXI+vRn{dW(7{m|hYg4v+E9rU4}migB3D2b>ThS>L$vYSKZvbS9|Qh_zUrUs}KTdQ1T!OSSRl2l0kN(r}=7gkc%zPKBgGOR=12K-BJ01JvReO5G!j znbC18h>(!b{3iXIys^5>*^3NL%yC>wXtY}lsZ-$*@N9o?@lyJpVPuy))iDKU<*St znw3m(;MBH!h+dkLGtM{5jl^ur)!=1bRyNIw!%!WRta0`5@!|8^uMg03eTl-XI0#IT9#t$7e@9`2 z|Amx$9voUCQb8w^RB#pR*rlb#n2ej@+6#UdbjvdOD8+W<6cs!e)Tz z;8R{9yaBbBS`d`o`visVCAjs7GvbkN0GhJuX}#PHShle^@ta{A&D;QOa#?mX^E+I} zZVF|6UamI8Lj13#EhR)xLU^r}D1zzd0x`4Xu<0J9E8N7Sm9jCv;^{b64vIX8Y{un$ zhq5P?D9{wu09dZ2Q}L3~kxM=VpSt_Y+b>_oP@9WBh&$v!fK*s22;>qy21JeT#2g0) zG@fP!4T(#-n=^>5VoNUu1gKp#!zG+9j}{@Zw!Lzd1MfR_PwT({u9OsTKLn<-`w_4U z9Y`_OvpwNSczy+X@-y3d{@JkKWjep5xtl$P+UjyOk96?3)a%0Y%Y{P>@&eU(Y@re( zGUi$_BH=^yKJk#kbg9SE(lkTuF9s16MNq)QU%maehr7QOH+?EAQ40t+t_vt?w?VN5r`%~vPFy{OgL#p5Xkw2>L{9*O>GZKcZ5mkEJ9|!+6`1hY+ zzB%A7V281fAaQJ{SybS&)>_Q#Lit0a`PgRTa)q1(Hu*_65O)UaQGE{>0S6|jH2Bx$ z?$zh_Ur{vvZp&PqLD|jaB=3A-7{f= zU2`qmB1+I=0vq#Qi;2N}n?F80yaQ2MEc~!K&L=|wj9SCU7WkD01O3FRp#ZU%W?+;6 zd14zRR#F~h8vEuPt+`Dg9C`)<<~{NR1pEnOralq7#$r*e0ltRmbJ*!}j)b5Km}ybr zaLXL!Hx}MT?F?(a_H>b`03KAJ%Ivn@7AGd5`e-bRJT=%*cY+O`#42nuVyCOQ#39wM)kX z+G(ofdICYTnMiu|0uRTjJ3+@sfo;f4RA2VCw4MYCQ+GAYti*D0!Oq8eS5 zKT<*RgH0bmlof8d)}xVC*b2$Fr?oUdJ;-*2))baTB8dcb6{TcD*#iJz>f3npalfxN zTX`7J>jJ%lS18_cKV3lDEv|Mh-1-jm=4~aICdAAzl#54%f&CHZFWb92BWy(?vKF(> zp}5Q`XXnCv$NVgy_8`~F0^RNs^OUj}MV_2xo97gE)GfB>dI^K>Wud5)VH_QXn}9Y! zQWck((fQU0gKJPi4kPo)ljVug>3WLv=(`!Ll#F<~c>neG+h4y&AZfk@>zE6TiAE?X z>6a{ZL~F}1hl&7SAC5i9F=Q1U(vH8Q1z|MssuOxP$j7}8{A9x5Xnfli0T537oyH$S zL3#4!r%#{14t_T@iPQyKwF4SpG}*soTitQzME5DQ^zux_c{r=`#T!s@8c3t$!0LPz zolq&ej<&MGJulOl{j71&Ke8RJl$}m!mKI8wFLvYz5?A8cVfx_#=yxvY35HX!Q{j`` z3(FZqZv%yHlRsL|wTq#7#X6wb@L_%YF6*Ev6zDP)#^{em3`X8j;z6+~}7Dr`cG3K{-S} z4_|<}HyI`{DWW4?t0#&ikbWj{MDCKsg1-215iI0)gnmLUBi5r{gh()(4J3Pu;HDZ4 zu5U3`y^$_`M~VGCn}d|?D2=dke^VM+8eq1t7{W%uBFA44I?5E85vG_w_x^h%UzwH- zI`E6*8Tohc^pE?;)eromn<#e7ds>^NkcINuN31(AeCF*E zF(-<*340qY-}Bq`OYx+*(4u6UMW<461xk37@-;wI;Exw3HTU#j;@sxzr@xsZJNfVl zRoZVhbB&ioY2g*(5(L=dcqx$R8=o#SdYVAh?;1@o%~sePLY{HsxYFaqX0R|cg^bDC zBSNnPv`=bnhK_JixJ(ub8iR#zo8BIgr`Iox5riku<`!4}TTJ4#6SC+y$+hi;*T$|v zW!*~OY(4julcT5>XUR6HoO>icy&kU6&T{eM*{Ew?z zL~Bl01z0QF!F?J~9&x|f0kJ`OYfK;N825w#38vu?D-b{P)7y_9A3iWlhnk~b7S)NW zQ69IWwe)O^%4p8-R!ih5q6&(BnEF9ZXfFA21Ii!bj{nvIpbtr~G(2~k>F{Fyq6F(V zI?#MKJ{;J7^i8Sje$2fv%I11L+amaTpxdUvRU|4I_dNWUrWY*%{l=~E2+|_LaFHT(7KTupcX4jBB=MKvdk`vaMK_}slqu4HQZwBH@jD} zIj|=-%Q_!Yk9h8~`Ag75BwLMo3$r^&Gjcia0<4Nnv^K9uu?m%|3)jzx z>a=ssV1*1t891pkW9gJp{ywfm32i;cu=%#J&M;are}{%ye#pU)As)0R%^2l4`+EE7 zBNo=FFxdOHF4mNIcylg*{G&G%MZYr;kZ%)t`*41OiJy@&@*5$|^kTENPv z_mIm9Cc;JVXvh8IYZYr`i$YHb-!;2IUhZTFMbaA+K^72??*LX9BW(|nkmw?a1B~FL z!syK#g5-OUWl|R$oM%@3ADnul6>J4ffnLBRRn?N=%u8qWw%X&Q83qB_1%U$4Yg5i? zRG_A|Obi6Tqr?>FYUl^^Fh~mYmV4QL+nboNT#~-YD;tyga0@n=1T^DQ}Tf&wE6DCR>w$m7PGTF^x__D?%E4T>O%gASTHHLJe z0qbdcfeBo0Pw@*!MnqyFwhSfYuAzb5PS^8^$1jEbu<+YjJ7gdLY+?tb?72`NZ#oCI z1K`nbaRTBp9}z$09=4T(w_P|462VW;M}~f58bkby&;@~_9h>h9+o3C) zO?I+bJ~epOWKir!zN_&d0|@5;_t{Ied*P+Bg=*cUwuMVQ`F^?BBE5Hq(&PB|*j^>H?s8||NFa^ff5i>+FHaodM z`&3Q~^`a#kGJ=`=1Fj=%3dQ`;zB*m%t2M$kAERZdESnq5OClT=40o+>;by&fQ&bBE zoPlnq3WF_u#PbYk4-R%PJ|i`W3u%^OWtHfB)zYkg)xae}Gq&FMQ+& z(0o93-H)t*CZe!Vj(<$9ji{t-C>RaxHb|q;c3=2l7wBZC48zvBN_9ZOrrYWW#$C;v zF_MsH^-z_Dy{>dG$S^qV6xIw~ij$SJ!>jVV<-2~~5De-C=1-1{CR=GjWU<+7>C$uw zLoOSy)8Wdz)LmzqMaW!%)%G<36HxA!NK}R(>}&`@NtkD{^&nJI0N0%zxGFWw{QbScn$i>3INKOpFHj(|uoom~JBchqqF?b42{Q3O+RA)$v`W+`^5zt`n$01Zxol|m zFS>7Fb4J0Fr%wmDG$I=bZIQ|9twaLi^ksnBv41P^=Gh2k{53Ijx2IT&;pjVRGzF zbKekqAsq}%JQITCo^VF;TR}?)G(ehxbB!VyWN={VN34sR`iAI>cY_a~KK?lP_VLU6 zA3r|4Q=FfxHz{LL)WD686-;lFpl8wDEhVf#8qCRpzp9(bz%LLw!-!yrU-R3+!86r# z#6|94qA#?V26y%Oh4xR-sG;ZVP-Pwku-IJJZBuR1&5%ZkNl_cjC~pty=>Uw!-F9ynW_q{14ewMSLIwkLRhtjo=zhq`o} zL+m2XlQvo2tQ0KU9|@7;9R}d#d9XYwyhN#w|Jx6(pt{#Q@af=xwnL2j<#$SJlwFbc z%uT+$!)hQchWSPHO(U}q#TLs~PGiT3nVXOfe*=~Z8Y7J|(i&)}x|p4>v%MhKDGZSg zL-?!T4ajR%jGD&`Hh?8MuD(Gi>Yc*g+*DO{rY40Jm+9P9`VV;zn#vK+3zi%#iV*EA zUdM{4`S@6URK#998_>FlLpSr(7e7F8l~0hX|E@BN=m6OfpCT8NNplDGA3FBapV;6S z1aBEEJucA2&;m|iWlrob1Z8Fi^U2dJz*>|uO69E1U3^OgYA%;+w7W9wH-ipQ^HCnw zKfu1s)aHWhTI9>95icmuGp=k)bA^N{8>`Dh1wWi$ zEZ`+Kq%;jDjBFY#bD+iwXeHeyIIEHevLTR{mQvTF6=NQ)lv5}rb_g^^t5gb`SjPyn zSO56pq*jGqEI|so8pOo1h)jVCoMCrB;qKY4k>4QcBHTTaihwUvLiWV6w;+s8ShZ&& zy>P>DmpBSDm4$*?PsrX-uo8rqFIM!i*%|9fh&@ofc+KqfH7xEmPvB}NkoLy#8WF!1 z#{J*vS~2Db#9_4FQ1K6Y4V`STee%JSU3gVOtGH9ZaUsr~>6 z?9_D}l&BF^b7Ys4<^m<%SEqX&TT*6?b;L&wsxPMIlZge3v75t{b_F%^f*pe~^zZ*- zwuZRprUw3CdHWO!X{CCySc2)DDx08$6RC?2AJA9$v1iR@d{}Pah=cO%PkSEsi=!^y ztbWy7G46b``4wMb5Bw)S_5b*%{8!F45S@sS4HrLTu{Rlx=8={A59wFZsaNjDEctvR z6~x5@x7nr&hO~QFm`mU|xFd~W5ao{~-vnB>_j$-1uW~{Ss!r&n3=HA?L=MOj4M-&Ev1d~EnFnAlVe$D$e;K7KH)dA%^k!Qc%U*Nyt&<(aHB-AQA%-7N{G&yb0ElM?ntLM_C?(&}TI2J*h+|FWit;!TR zd%@)JGIXo2+1m>AaelriN)~ZS#`^T{s#H;eJrmVpG*J2H(l9$T41Y4Q=FBBum$B4W32)|sCdR-bc|<4L%` zLkvFubySCa)gZlCGKi-VyYeMZvwgJKLT|u(SZaLscrq#~>~C7#00aH5rKvO6iR>uj zpC4LGV)WRdCfruq6TkON)d`K}T1NJd>Nx*+mbqej-A%l9#~H%t~+9o5N0y|))e`5bPfX~GWhjMG1j=qXTX!3y#YjA30??@xsX5+ z)MQ9Uq)?G1lmGpyZDN28Pn6voHwj!Yx; z)A<&W4%nv6EA+>-UXIAk(7c^trntT`Zz;j-{mg%Oi9@h?`P_~f0_!C75>pdIV@1xQ zAU1*+m3HQjZejWX5k^+SruU7iBBE^6FZaID*VqZD;{S_dV7r~t>bk2I1MGYAYTA9M z>+Y0DhEiXlR6x?PAQF9MC`PrH9Cv}XBW7wFd)!G}>4?ICfH;>4f|xg{@dpv z+Yd9ea)0=|n|%8Cm-jzf5R+oKFv9Lt8- z+PP$kb79S6Wv#|9EJ%nR85O=Cq`&l~1wLhJ9$lhA`U<$21HjI6sWm?^8MTTrnk;sT zlHMcQe=odPy=X9eyZjCTm8s7GJsgF@;knrd%rRl&GJK1FfBV5nB+oQVfr@a|!XOwe zT|gm5`m#9GFN`Uf7D`HLb!9v)TYgD}_DwDB+veq^$|2cNJAkZ)>Vv18Q985K&1Zum zkyA;9$Rk27;KKSlu`s*+b5|(|h!d>YYGp%_xy}u=E`T7a)~Kk-BQWGpF`yeMmu|^d ztlDD3Jt5FVj3nv7$?1I1MKQB?@i#<>t`#KVf`jyU75MA+f#FjUNNWoz8*)%L4sPrW z%IP{CT_;AuBXhWdINpXSQd(m%-BN6(kF}DT<#gpQWQq*2pRKWuQiTXoTUeTQw@8&* z-O(0d+#U&2J$G$|z4TV1^(9+NFil(=;_-_vy~UL_li8?988g)7eq;@Mi^3du2GAF` z^&C^J9Vz@mPmz6h&n9v)i}k_*v@TXij{v>0E>;K6#)qdNR{=*lvBYLw({nnq5SG;_ zia{iuDUm=e`-GjyvFp$`wzA}FLf#tjT&#+Dq)RA=vTPO-_ z^1zliFf}@+Fl4gbxV~%`wiiAeg_1znB4(CuC27kPLu9#{!hj3Iop_E=Rd;F11LTQ< zzTtw}QN z$Qd+I-}m$hBxldB9iz5fiVl``*E{#pcUCA_FnNT@06Un(LfqabF&Zc@C_agA^#zS9 zEvW55)n%_xms+SE+2P!W=1bs#re^g0M4)Zer9@&YlAW+D%lai$J7j9*IFmoe zOjnvZ;EXA*kPm!`b(XYMsCUnx#*_oko$-4q&`}FXqYp!?Ku_>rEo6O5j}t*-dXB2=b0ZA_oUlQ{6asqgJ^=p$g?&_bPdoBm-?NgC{*SoSa=$_An|jux;EV|^CLeJ zqp*&;ea7Uy{JSNrua!BW0;Q#wf`;4joz?UQK<0ylS?%%$77Jq4zJlX> zM#xNXi;^a51R7n3rgAA`LFcwI{-Aa*R+sL%N&XT?~A$sUjOhStoo|5uM$r$4UVMyW&tuAUuxNkwW0LVqr3OFB8AeW_( zL7YaZF~iQ#tc-hLSrRJf3nR*SirwT0tVC752J_u|VKIO(5kUJPRVJ_6f;fxLq8K{i+-Mh-s%nJ(nD7PQ}VCfs#i z@|b-stN|XK>dK_t{xm$}gsc{u-RS;Q%}x9gm647`4Xlq!l(-&ZTV-pH13(d{C7xP2 zQ%hac*Bw_Fk}<=u(~TMBh_H6p05f(tlehZb`=|yZIeJEvy%FUqHo+Xqw#Rr_QhTY+xOZ||54EuI2uQQidR zkX@UW-8Iv6U_So&9#rG_3g(B}%*)8u?xT(gm`+4wr1^=6(D*4R-Ce5C>UfG*?i`SR zZ;D&5H!nbWaG5gE(z^uH@Nh?LH>=MNUw(M|;X#BaB;<%*#@N9DNmT4{%9X7@zXQ&5 z@-=Z=dR!$6b3>Bx`es1n^1lV^Xo6V5)PCB#%Jh%XtE(__FW}tXqb)F6AH$koNUf!K zOfo!+pui9|g$(p-PFMFc%{?wOd6Kp1>J%yntR4(D^3|%8qynrdw}O)YrZ^&zbyp-E zL?zg>st~MB>IU=(5#+w`ai#f%L*aauTnXp7TZbf;5vT3l4eamGql)eZMugDovc`sz zURfhdYa*^d890cARn`>PEPI2n@ZmXj&RhlWrJf09%a*Ov$&gs>=Ine!0Dd*LKXFcWz;uv$(1z5R5(13m2Rs zPq@f}G78*Z$}+*UG?E~qsjSIJaiyg&0uRCZ@+$d=ofcIfJ&Y8vBpbpkfz)_h4?v_C zX^g#jpmrZKi!d?|l|)eigi40ESKUm9;#y^iKgyhdzp>w_0Q;I%8$Q}zndPF_yci&@ ziG3JpU^L#^t88IF*?B9Evo{*g>J{Guq&Fsnp_?pC(5Y<$%-iOcpQ@rk*;>yV$`-6! zXTU|pUJOjI{1!vXD!y2c3CwrPX}Z*YXoSzN%F#x218Jo3is24{DiQR-d=N22xnubN zbKh3FIB8`A&ogy}B|5C8OTE!H^?p5_!63b3?}S>$^3;)@0i`?E-L>P|jZYzafpW1# zX?I9ew=#icFh|qQD!N%wHotOntp3)tDO0hCf=UXcj7BShWr-M+R5vGJsjofzBH!ql zIUJDTXl9{y;a2Eq&yB>UOJBF`HEO@pj6Yq&VvH`s(HFrbvR+X#!HVs{M`T00UFa32 zRI-~FTW;J=-taETor?}#xE>lLe!Dy7V1ybe!Xw|-sHA*bwCDoS*4tA zm`N~A)78eu*pQUR&VUpINr&ecrK#~al-b1I>U&%-OIo(G#~S7{kg=X26Nt`SqKuN( zeP9R2kB5$A2`=f}zB+f@cEI!&z1Y;pie(bdVMe?7_W8@##ly!Rzy7p4+kSrg@ylNx zK7Sbm^bRh&#q{3Z{Iiu6IvLp|44_d!vT+seJQ;VGh8Uv5D)k*sXv zlbLCjstH6nf#}xKuBpya2I_Nld|^ge&Nr=)S%EaTPzQ3HLX{y^+!o3blVLJ!(vAyE z>lvU|ZO&04YCc@q4%`-NXXN#Q86ziuDf= zbpVS+d=h#^=otBh=IO7xX6X1?-y|HOZJ|eeGkr-r#=X9{ynzMYBHuofr;d@a4_xAr zvsM^pW`p7+6t{h8@6d;3enq^ZLOiDT`e3itmS9>8BcLv@xAeUM>IcTez~dC>n)$pgGrAey z9Q6uk36^JI=7=)M+Wk&uiArYALJ7}yDi212>43-mLXOoNRO^G*zn((QVrBh4;548{ z{H^|9mDj5UFn=l9+F`ojNY<0E4AC4?qwx2#V;{>-^B)hWqVr}x^B^;Ma-JL6*577Y zEJ&RwdVsV-sGM7tCb!G%kwy48Bf1pM_55VJeEyskf?>?T5PH8|h4|b+b=p7^P~~x+ zY(0f>EP*t=M{L){XYCuMM-=BISqa=ckrH`WtYnUSbFGh6E;(e9Jy`?dKM?xKD3B;Z z{hW5&@Q z;to1ifu1n5fV32q`e%dkA|EUdAaS!qTxGbOq-@zO1*HVjqMJZO6BKeAUaDG>tWfDn z+KuIHEGnW(HWByrC?gbRljxV8h6z}_n_H*2D91mewU?C#*}~+K2RTFpIAEK4B1ws- z_iBk|Ve7kFk#}Vh_zmpG3VBGNxu6YqlWow~-R|wzub5wNKJ^{W~786Y)^uKL9}cf zDyyIpulCa&6?X&2o~|}?w5X-3GkrEZzP!}Qwqkbk$81Qq*a)#$E} z$NYdC=XV3c9KSo=GQMLA1&%-htQEQRl*^8mtr?qGc4H#96jaw23awfUL80^ zvBfg>3u@8;(+^PE42CTFx^N*{~pMK4QS(g|dLz!3>lm znCS{gYsPLws$L@VP%S6^zU~h8Jj}TA&A=f?XB&#QUBR{inULZ&!W>uRED)+DFQIi0%+i?j!|Jyc z&$cKQ+jvjq^_j+%&s17Gmu$TW6PFkj1y2OviwvgZB&{t5l6Tbu;P-5V=q&-YAMhvEzP0SFcj zy^zjuF1p>smA)WJN2p|9ib|(XOmGj&)X*jO(pq(B+yUeXX*E^khggH(*W4*JL^aBm z_S7&9*Q_n}qzRyyxnrejw`5;F#wLUC!St=KkLq-h#aPBG^Z9XKFN~fYS#ytQm(7Y^ zyYe8_kUZbVl%fRFa4{HIArPUC?6UK%RRHqS@7C}BG5UF#|C!hf9End^YrH5f1d=kD zqr2IBZQR6o&-yr*x?32ZRjko z7n^n&DQP2hSb^GEYEO#?73g7!QLs`!z%7!=oF)>|YZB^5?j`X(+RuHnn1v%W18S=SM!1$32nC?L_L#IVZmlCCr07y-IFBZjAcL?5| zjY56}&5lc>1wUV%U(As_{ieSFUR1?XU@(3Z<;Xn0Y)`0m04~*P^uMuITRrg9RaRzC!u%p7Idq4GO&`pheZj?ku zIsbsAJAS_0KF~`9A!yU11o2Ie=Zv`yM+|{af22jhw)=-Dsep}aqegMt7O?1AV`=JxgY)Z)K9Y5KI7C}j zqx~|zZ|*j$RL7&>Qw31(5Lq+r#*6S;01SB4@jj~GfPCw09V55FuY`d`!;mQ}!`&nB z0r3wYeqc;&OURy$qJtn5$y!tx5q=cT@_L(+hqkMM%zI8q%8(*YU( zF0~y2@Nn&IO$uOWfDD32T;HRCl@Rkb(e{AD-q;?3INGUf*U0gT2iBKJcf3o(;h?(G zH|vgTV6N*W-)qEQl!ug35HyOb9jrVkckA<`(272x6eE#fI7gek*UY?!wE~Iv($N62 zUxNuVCuHO|xcFRYWZ`q|2VyHQGvm9-$5LdP$C2a;_A|&t)-e z-?T^i;%)7W5gcdY6=SR*`K=~q_hL+d@?h7mojh5G5NH?Hm?$iY{Qi(r4I!iEXk2Ng zJLos7gP+;waPU9=$ItlxZU>T3M8F)k5iq*(gmD^_?pNn;*amJONx!~_=TtUu9znzg zO(_32@!C3`HB2G=MUF2sn)y-eT(6z-NEnZMk1KtZ;3kOmQlbE9O;?l2`Txt@yMMWH z9BHEbQ?S~zKCKzaZU9X-xn64y8jo&>=mrR&`IujDD5)*;nj(Gq@M!M%&fk8&?~90h zRiPzcpR+qUb`x2VRh5+)85!@`;>3}~p2=W-xcj4`lRJRf-5>4Mp3JA$`8vV$aGL@! zb93JbYwGc1Gf@z6# z3BoClnof{j11zwV)5F*nH-3dn`!8C*a8DCH8O+)kPNGQ}L0$v=+yr&`BB+`yu4DQ+ zF&$ReP;yB5a)ZT;~V+*qBba^02x{Xqv=;(4TS8>HM->Wz8?&g2JdpCXk_U(7D zuxWiO$fp3=aZFPvt@r1ZGE#DC25Cn9nkR32*w;V7bVK)$!4XuY1oN|pm$lbCK`UZojsNP)_F3EK_9YnHg|$TO%MUvBog6 z;0KFF7cgF?Gt7&pxA2XrTDlE87Ovg9ChvE;l#}Ocu+5#|YeCej_|)K=`}HYBbpg0Rpf^(K%f+EmwBUMgrA=HPAL)Mv zx=+T6x)5|@3KYqFMO%w$Jfaz6-`PJ-OM}Ji>EUycIU@Xex!PP8PQiY~kZE=W3ke^d z2z5N1v%fFEdNQX0j641*64CLZ=lLPQlaX!%bvjdNKR*ke;2|kx(u^DHSxCJlM6ar7 z5+_7Q{@DJjT;z;2kr-IP7RTFBvLHHf<)|}E-Sv^4=UIDSX^lMTv)g>&9Wj7he9ZxiTR>lNlEb14~)>_ zvkNNvsI+sL1Ybbi@5%_SsWP=KJ$T9eXrd*&72N$*BFt0DFEars$q7aZ?uWA%jw9k__=`P zhnP*wcZWCheFbA>#=MZy3sTwNM-Q*Wv{bhfi*g3O*us)1rI;MomuHJzu`$=194ng@ zP6h3N_8t6!{tn$ip}M4xIUJr*)aXBxTaY7|Y2-$Zn$9MVv^xtfk11=MiQ`s|C2(ga zOa-Jk?i`YQ`8}gz1iV1&jne=%fq^1$aRiElfJHyEjCr2%2%Zla`%w8AZNBe`Le0c5 zL}_3TJaZF(2SPEq~(%&H&JFx$lA59aIm~ASeXSb6TWP^@z zxrEt-!0rGJWpj(nO_oP<3R#`ji0Ud+LOmcGtExOQ2MwQI{i}AhY;#RgA9=cm-w=0t zUndO!j2-N-DEs6B={e{Ow3)C6_2U&E=Ek6+18%yS?5>X7(}ILh*%>aK4RP{wxk|7P zv`A7ly_!H(yGG7-DoX~VBEeJYdQX& zoL5_7b{7h8#2?eN}58wW5~xa^GMk)=j6Q{&M&5hapH$D@a!|cUHQ| zd{v*UQ#gdxhl9GQ9!BvvatK#;^w=f=!TX2O81ZpX6#RW@jM7c_r7?mQbAJW))B@bEgH6;LBsfwW?8J)l&#{c`v zQchI)%ak2jEO0de5Y(;S%AxNE zM>v5(YMq8VUyqXm!8Wy$n{hC}pWP^GGVvHK_i#aPdsY zYz!SPuZC$Fb!ZrGVezyDk5I$ZJxN%oat`Lo9hO+~9IJ*!)q&iv!)ihL0%eV%i`n)i z9!Fj8&|J=d*Lv*Q7mq<$NNQLeo}{Du0qMfs40|kl@r?)q6AYdUG5{>8ot4jG9_jQq>rxR zRD8qgq&dm%KQHFNUdFX%22Ux z>kG$FQ%7~c`U=>5wm2_qNw~b^#1t9|^VfA^n%a7`u{myda~b*`)139NDR+*sS2Rs9 z4OQ$F9VX6Ohl$5Y|Mcbx5Tihbtxse}eWnf;WN`8g|0a-LI4c$o&O2O~;B5$&j_1|(wtb6C*m zx1-VN+1aDhvnQj6r{m#xc=z@25##;~R0>CPKNMs(H@Mlhk%~aQqowK5QbZJagJ(6& zk&Fiu5AO~kt^qMH8QWZo<4$Cz`!hrK30**X{ev3juV*`O%WdB$y_Sm?wobt3a1N@fAQ_ zjehA=a4aLQ3i0$BT!)PE92+7iZs+h=s@CDYE_g!D=mn>f2=eh5pY#vo?P=tw(`r_) z;h6h7*tCT5u5Vfrto&9|U4qmY~ZAXRLIA*To8v|l6KOfbD&D<6R_B26G$V7Wk;^f{z9 zQj1q7m3;02F4w2_ITpm#YxD|`hN{uiWnzx> zzs4iE1I5U`+FGvS_l5?ju!qepQnEjv(67~15h!P2XIU4n7aE_BnoFJ$&d;iRK@YcH zIKV=~Un&_oKs~rn3=}~OzJ1-%qrZ>czF%K6CDnSiT)eu%CcHes|G$#P^LqF6E4XK< z^roo?W&ihdj@=aoAC)0e;D0}(U(o56pc#ADI?n_NHi z?B5Um-+_uP;_$>qMesbHgXeyA>{(w9{@Wkm^`wfEUZs)r1Qm=E8F=#BC-r~x@#8bZ zq1q7uf%^jWS?z?9dM{Be%rY!+hP_nwSX-;34Qv~<&|(`Fk3?TFr5-=$McAjvpVby! z{|YLun;WEO$LFFnm4oGdPD+iL`VAqeml;t(yLA_$2F#jz3?5e1WAL!99)rWm>Tl?b z4UhgWJ2rgQf7!8}{Z|-U@S&=tkVr+99w%QFz8BmfSgopM`ymTvS4x@%@_~vKR3{Kl zqleU3g_PInCn8jAtl;_Feq=l!Qcoen1||2ZMnJxtlTsLwMCiKH*~%lQ1Jv80znfmu zlFy(etMb!f4vzGY1Y&vfu3o?U;qBcA(e*leoU^Oee$)?9jAlV#ob_1wUAsrgO z;bums#m&_c68mNcVW7E+i}}F9VOE`3;euvIpKIB?p%oO>gJ%ycRhZqH=c{3Poy@{n zx%~P1k+boan1@NhvHM-kJ9J}!^oo*2k7yu;s&37Oo{!fh7@Rp43{0@-ICS*J0~lA{ z%L4>RuPRPO%L@hHfhu)QzN*RM&~|rk<0bsss>+>)299U9e`?WR$}ZURUL2)_KH$S5{^w7)N<7{Do~m{!&Vw_Z6kKpLQlPPsO{i~Qy}N>(i^xWE#W z7jQP_+tiCq9FhMrC?2Y7rYb8Q{pH|)ww;UshRT8OhszNTWl{)8$w&|fhw!E?+|cK` zuEe)Mv;^lpbV2;Id;j^v_jh>SSkIY12LiiU6xVElJx43d!&>ju%x^MHxocXyAt))F z41#iBxxl`LKQiVRw3w3p=IYg9a=VAg@p6rR+(G+!tFjnDWl`*CWW=-wnEn!3{0?&j z8lwd9{t9-`Lsa;6g^%kCWHHlIOl%yv@itl-ZLvgR$Xzc<^@dU4X0^c;{e#PIj|~N= zDN&E(L2qxL9GmriH{ArY?bnl_xW{w{^^X}80>4;zc@zl=rBK&=n!j&k%ZQe*K1Dr7 zPeKelEIz#c{?nWHOz7Ho*;c?RI2Z=ns{7!3>1TrJ!%WQxztB3$J6~3>GELO*^lZN# zp2`W>sU0eLHKmpADXT?)n+LX#kk@zTA1cQOG*N=+>P3EwuY&@)_FJFGJUtJ znxds|BYe-&JghLNZ=*r2IM0lZ!2>204m&0Zs*hd@owxbrT}*DCp74(Z6#D@>n}HBP zd=o6>mAXI?3XOugK8-^55TPBCphy>3x~d)NqEQ&GPEi1U-m&D>Fm*2|%+U3x3VG+G zhG|tpqaM9fGqhx8At(LU$cE<*?KE$57k<%8pUil?S86ZdSO;} zVfgfJje`hP7L%&10f_@uk*-h~)S|z!yzm7JaGth^x^tbJYQ`gBHFE=k{4xc8k(&yK zgeRpMoKQlvZ;lKF1Fb`}groXCb0o*t4@<{#w$;a!J@9~Obv>J*yWMtS%k?nmlvJ^P z+M3?VQV3{&MxL+=@vv{>y5^zSGREv-E{YvR78n*B<^F;{R!+DOwrE(YJUN8;{@m2( z=}dDK*+Ww@MJsLNg*$3h{It^>C664AD_5fiUcZNZZ78P6iRG~ z<}lQ%CDpLaLLb^9@G6?=p$o(Fk>5EY?bXL+-yq+Eo`s6YGHR1;)!g~Asjy_#Bjz^EqUO7oNwRb%!RmkBHr-%*I)X>l`?S4e@Bf7*^r z5r_CfcO#rG5LU$)3Mg&&%${_OSQp5@?Zx8Q@Y>0Pd`d($Wz3Svx^6FV_gpfzb~rJq z(A8=&eU$`k*Fbc@zHc}cN|EcFUYRA=a_9B{FcCV5tkR5i7-Sspz~sTEOgT5}sawS) z4l;Sp?e0=OZTQJq`{x1AP_7!?GA#dNxt=PoY+7{yBe+>w_BFOhMU{K)mQJI^rMoA0 z$QP}BU)v-DHDzgsnEML%MBzKrLhTkZpO82h>)#NDxNM!C|Cryst z=N6<=9ZkffJxd-yaG6McVL(0=t-sIzt-phPv45LePNOB-MxJR$2Mc6YOsN$jRJ4L= z=zbDKq?}_ypB6#_q~m6ID%g}qIV9M*M>KXP6y*1sVvM88V7-~A&0|O%(D!3K=d*!| z*+{`d^vkmZz zRh|?qWxJW$DZvExtTx6gX^;v?+P~aBaHV_6DwA^etHd4 zcRz70wF3PjbV8ue?{e4mD%*fsE+?y#eENBB6QfW&f#TFx#pzhVnOt5yV!N5dUifqR z;Z>X2^$fpM(ut7=S{Rmj7?O4*J|DvDI6UNeYVk}{AU~`C`?Vq`@%;ms*Q7!dme2N= zhI>)PK5Ygb)>dA_d{v;y8iU}#YX@5_m3T*m z_v}73yWC$C9#m`!zqraNn_R+}Ch69QT{J+Kic|hEgz;{do2xde-tvzn{6zJHB)*>q zIjo`fCG>)*=^=a3A9it#Pq^;qqVzl)>UbDm`t6EQ1 z0`%2g(hrtE$$g-{rIZ0n6}^t9*W&}~yUytf3I~J%u9IKjhgmuTPqsjjpFX0Idx83# zqV@GR%!P3W>wVm<8|)e2ZRCuois~t!9?Bf(o3zUAAqL5{CV>r5pC(b5C+)~f8 zFUTC4Ad(QT=c1N$%WzX_yt=PTAia!-N`z{|pjUTqfEnFf5U+elHS97xD+T+yVA0bd z4IvIXx)A&#SEwFoFj;POrqCRwIDtrSRK^svl?q!ha07S-SBK vHrGCORMKzzDbw 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 BjZpvq literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.su b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.su new file mode 100644 index 0000000..f6f8c99 --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.su @@ -0,0 +1,9 @@ +stm32f1xx_hal_exti.c:143:19:HAL_EXTI_SetConfigLine 32 static +stm32f1xx_hal_exti.c:238:19:HAL_EXTI_GetConfigLine 32 static +stm32f1xx_hal_exti.c:317:19:HAL_EXTI_ClearConfigLine 32 static +stm32f1xx_hal_exti.c:370:19:HAL_EXTI_RegisterCallback 32 static +stm32f1xx_hal_exti.c:395:19:HAL_EXTI_GetHandle 16 static +stm32f1xx_hal_exti.c:435:6:HAL_EXTI_IRQHandler 24 static +stm32f1xx_hal_exti.c:467:10:HAL_EXTI_GetPending 32 static +stm32f1xx_hal_exti.c:499:6:HAL_EXTI_ClearPending 24 static +stm32f1xx_hal_exti.c:523:6:HAL_EXTI_GenerateSWI 24 static diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d new file mode 100644 index 0000000..d54c9e1 --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d @@ -0,0 +1,68 @@ +Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o: \ + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o new file mode 100644 index 0000000000000000000000000000000000000000..47d33adc876af9ef62666ed63977cf87accb9cb4 GIT binary patch literal 708056 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%0A)B~K>Wt|3KM)%zw03PXnDuVE_ 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

    nGT2h8)FtpBL5D%p))KH)c)Dk4@ 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 VEzVak^wY+Te>l`H%>?4O{{|B2Q9=L! literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su new file mode 100644 index 0000000..9238093 --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su @@ -0,0 +1,14 @@ +stm32f1xx_hal_flash.c:168:19:HAL_FLASH_Program 48 static +stm32f1xx_hal_flash.c:267:19:HAL_FLASH_Program_IT 32 static +stm32f1xx_hal_flash.c:332:6:HAL_FLASH_IRQHandler 16 static +stm32f1xx_hal_flash.c:606:13:HAL_FLASH_EndOfOperationCallback 16 static +stm32f1xx_hal_flash.c:624:13:HAL_FLASH_OperationErrorCallback 16 static +stm32f1xx_hal_flash.c:657:19:HAL_FLASH_Unlock 16 static +stm32f1xx_hal_flash.c:695:19:HAL_FLASH_Lock 4 static +stm32f1xx_hal_flash.c:712:19:HAL_FLASH_OB_Unlock 4 static +stm32f1xx_hal_flash.c:732:19:HAL_FLASH_OB_Lock 4 static +stm32f1xx_hal_flash.c:745:6:HAL_FLASH_OB_Launch 8 static +stm32f1xx_hal_flash.c:774:10:HAL_FLASH_GetError 4 static +stm32f1xx_hal_flash.c:797:13:FLASH_Program_HalfWord 16 static +stm32f1xx_hal_flash.c:826:19:FLASH_WaitForLastOperation 24 static +stm32f1xx_hal_flash.c:914:13:FLASH_SetErrorCode 16 static diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d new file mode 100644 index 0000000..9ef2e81 --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d @@ -0,0 +1,68 @@ +Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o: \ + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..07dc98deb565de5b366370a4d97a4d1f5037eb89 GIT binary patch literal 711304 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

    e{I2h!tlHIfU* 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

    pb2irq#EpZg3#0dOZ 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%0A?S^c&fLFX7 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�RH_Gf^QOwVCgo|J!{NB;YcHJDiAxRc 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⪚y|(ZIyz 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 aji%Uhf{%uvD;AUl!C94Hm{RF# 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%0Dh}B&*GZ*(>twPG=t73 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 F{SWf4$>{(9 literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su new file mode 100644 index 0000000..87a538a --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su @@ -0,0 +1,3 @@ +stm32f1xx_hal_gpio_ex.c:81:6:HAL_GPIOEx_ConfigEventout 16 static +stm32f1xx_hal_gpio_ex.c:95:6:HAL_GPIOEx_EnableEventout 4 static +stm32f1xx_hal_gpio_ex.c:104:6:HAL_GPIOEx_DisableEventout 4 static diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d new file mode 100644 index 0000000..676aa2e --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d @@ -0,0 +1,68 @@ +Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o: \ + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o new file mode 100644 index 0000000000000000000000000000000000000000..511b4e42f21c20278229e860ddcdc41e8ee279fa GIT binary patch literal 708704 zcmd43cUVOe|5F3Q`0?QIH}{QMwHT zq=SgPqoUYQu!{|B-)|kr{pNnZ=ee%$&(B=$HLI^ZXZFmRHDlHf89kI?7}-C67+GuC z|G{LkZd@%l!>=67NTH785IJ~w!0&rw)dlca4+V&X0v9;}Q z0ms$0zXKd!+nxaUeQkRp;H2924}d?`wkHElsclaMoL1YO4){}Tdj{al+V(8K*|qIC zfOBix^8kOYZT|u|zqY*q@YmY*Lcm3}?Ztq<)wY)a{$AT&3b?Gcy&P~wZTkwzmB@;JVuOdO(NTwj-cZZQB{prMA5Ra3lUY9F)a3$&lf{^q~%E zzYil^7*&4(KXTA>hY6-xEZT~Z&Ft-eWMq2z0FqOTV!o(1^FP##CNk~78oKO%pgSkX z;{Tf2c2xcO&7POa*UYa!ztsrSAl1xPqo&SpIkMR+hb|LlHYcvVZJOD1)b;sI?ClFP z8;uH_-_YLnow;WI)cFcX%f95!)`7fjmQd(`v=exw01miZswRsX-dYYlya{ax40e?Rm6eBbKu%G8;u^AA)z zS6)x5HzE-g9gxuk|NZODGGtF=r4EOj>~WHw2|a0qo?Ky?ski?|j9fcn&3yWWG_a}0 zc=)$X7B)Y>{q&jsa^SPIK4lpqy-~Wo@5l$ni3ocF^vO04S@g8sR>%L0I*dQ+>stAm zF=v;b^`Fu8Up#x9{|j%>b3NYuf7APa@eax2`B76B{4=8HedMFQedW-33T)s#YJdNK z?6nhQG8W$rp3FI|T&9j&BFKgxSJ+Aae#jYq`AA--=rmX^Q+!#cFL-iBh%PshA z1@S)jg!tQ5f{d+W>IiYp7Z08u3UxIjW80Z%g5;u!aIY^29nCa@aYyms^YIWoxRs2O zk;`P_pPS?|?k~nz1hPyFUk7XzV!uZK2FB1V~hqks3Tsl$I7_%HN58H>g&K9YOvN~%f7%IYp{0Wm|?t(bE?5Q zialNfbFRUGUmAkGanSYPG1q42(uF@6bu1C)aa+f?&L!{3XDi1VN zGLHIAqCRW+50R1aRM(S~?jYfVNgZ*YRC#M7IkR{UadA_*4?e zc@EdzY(y982t62OZ;WN-h%w`3LNCTZzrIX4gs|Q<7%LW4@-m@M4JL|9jzh6;4W<^| zFw%s6HJDyG4r*W5AZD3*+Hko{=+7u_kSkFLW|WJ`6~>DYS|bEx04`A)r>655Diel$kBsLZRxmSxSciN#Jg2A`u;e0J*qf0VMP*0jIxtQ5S28kX zXEpt(GE-?KUbveb!K7eqA;^?HqO| zRO@(|)I+fuLfScdIGNPfO24Xhc@EnB>_bNz`~osxHy}giG!-(miE<5jSK}|U%hK>W zSQ;$H+sI_i?Id$dAS+{f)Q}p~kd#rJjA{E{q!&(tjA{5^q_FK2+kcS`?L;@cW$fl@ z5@U8*%dL<)Q$w0-Ck3O!Y{h7U+=9AB?z6&X;p}2PX~L8HESJ?OyNpP8*XZ@M>s|hj z-fpJlKYG)0coOUNAH4-0cpcAw>oq|*wrM{?&XZ|fqqnFokJ+F4gz{TvD`Tx^1_6Q8 zZ)%5_u{7|(Z`fNX_hniWf&gU=SQ=UlZ;VBBhe1Q6cHxF=H$gx8-xT+~P~Byxw6@DM z8nppG;~(}Bp|?{Sx810a$uB7y)9Waj=rL;n>p)o3pFe|jMNu<+WsHGop*5)#+WOjw zHUp!#?Hp)BM9pO?)z_dx+bUCNd#n1WdZ|X3u+-FYL`-tsWJKXx+JRtVR4T}Ey;KaS zqNYX-=m=9!3|S=zVhz8BATi7c6N##t!axUzsB2x>bug25{g;XUb^F%EM^Q_%2UA1R zvCP*h6`a(>NCx$-q1XTh4QPneFxCbKJrXe024^=z!I|63`q#C;CVaQ5YhaB0fI9vI z;nDIxakdl3+MfA;>wrTJkOTZE~=Yxwy@J!fr$Nk!4XV3%kA{Zwd-HK;=SUvy4W z)?O}S75z>Bl2$A?bM>Zw4O1QEHRM_y#Ri7wnoR$IVeoJ9&y2*fipG{&4^6E9V%7*M z-ifw<6BRF*I(A%fiK+WvjMq%P8eCDu)UOe_CvWgyBA)VwwIV_CMl~Yun8r0ER&hwK ztZ8zef8oN&xGr0<_H$j^cgM3^$4j8}U)Bqmpe>Id%l(HY2WC%)N@_N4Ym(zw~5htqd~FN2c>-+^J7=N&L* z_m)6a_PiHVWqq(Xa$;}mK?#vtNkg-9GY*;jEy8IQGtlZ~52@(F9H{lbyxzn&#)s{+WH3@I5W`we+6 zCma5PqDrlx=fwx zOuok3d;9S;Y9B}@na0OS-s=_Fe{_YOGwr=m$Nr`{9B~KQ`($(nvUUi&6i(Lb6vbI5 zlen!nleHlui4rW5ucsS{B12Na$=sIGGt54^ZeSMRWZh1X-%AbY={1e4O^zeK1J%^N zhoR5OcJ`&-=wk2Ny=$qx9QidTOT11`A3J?IL-fCnk)29cyO%tQr_kR1)kxfq_P1Cu zkmx=p#I=!CS4lyKo+WsY` z&aq35CyL(wdzG{xnUZLteEdM|ElTo|WB;YX)YJ~@PFg>BldqO5=-G^=w^mQ2=ka%> zJ8B=%FQVYd$sQmD#MfO-?M2&&d$ti-E^;PoE5D+4tI;ICYaCI=BALVZv5!ojf%K-U zdl7x%e6rIbiJl7=5nZ{SBrBVcg$4FVeD@Rmaus=5WACMqUx>2*G+8)+9SX)9CSH8+ z*qd@PktR7=w{hfsVKQ)@)+`4wUC~#e zW%KKk%!hQ6DbJ&4=T>BY>@P$g^E*)-Q3U2>!%``pv)FfWvi4W#84yZdB72d1K^tl} zzex7KK2KU7rjh)L-{{!}I}FUm6G-xxB$9miCp}}jQY3>~(v!!^%*o!_XC%Ra>@40y zes7scH)AAu{0o~ljQ@C&ba+LSDE!55{e~>>%O#5EBWjN}kl!I+ksW0tq94d0$%bC^ zyuXqxWIiHmyZVv*&BxSU)r9Ef_L*~40eN@Qk?xWtYJ1!wnG6SNkC{)Bd9*ai)GqWa z??&9OZxC0WMU;Xb6vGG~YJcNT@~R4or%N-k*|Z+D$7K??jy>AN*cD)O?Iijt3&mM& zAnra7qHK9j+)qDHJFpS8Px+FaZb!(YbphG`x{B!UtLZrk1u{++hwKjD*IJT%)|4n~ z?DOzVZ;~`(IH z*gs<}7)dd={DRsOUy+63jmb;*ERt;WnkZB3U)1O>+TKC$J&4`0UpZP02 zOHjPQw~x#WqqLaX5A7@Co?~R~h$B7U*=Ng_Hj+v0Nxq8g-}T5ABtP4SWV)c-f>Du6 zGFnffT)RdQHY+AC^L7&@ejITx*jJW&_VF`2ow!fx&{GO0%VR%LoM|1XJ?I>@Iahif zu}64w3rS*X#`C}ul6i*X39L}at~lA38uD^x3(-GzqPDRiwfC$itqsS?yW%2QYu%r; zdYvUoQ~URIzY|%Q*_r6K?fF3OiKKgU6}`pqan^CW$@<#Y;-9gL#ms;MCtl{#oa`)YPVGnGay&0!cI9R3@q6*IS$8wZ%$rQl1{=uEi(kp+Hv5Q*=uGWjagc-@FO;I4|{0F^z)i=~Xy{?jEKl@BO#{P@@3M5%)IdNC%v2kNz#nSpEp3OF)=*4yLeU3LA z)=~+t!|zjyJHng3$&pk3gytwacl28?w8v;Cf;;I4SG@U@49Yd<4F4LGUx)t%J1gY$ zo%}U&HMmYp-w6oBnOWEaz=iopLwp0%X(l8#F@7!J(3Pp+Ky+iKQ3AV}*?k&5-I@cHeMxwnXiJ)K&I_5V7r(Z^I;{3S+X2pKeLN$#xQsA zqj0f|hZBs&G4CG2Z9KE-dnhC@VW{D82bgGDKMyk7oS|@tiFg2Tn8~H-IhEN@V?LcZ zheAG=!K_D3k;`KIzX35DMIe~YXL6H4EMP8Gz(XN(Bm~$A#v7#`u85g(38qgn%o-@1 zVlL8|gW^4K(l z7O&QiFm>?GOt}w2c42m5l<=-hOgb<(hCyP)Z)Pq~R^ra=n2L`#m^t|h#zL6TGZ1;p z#OER4kIbLb(J33`F8D6F&GH>{A+k+AlroZ?@+YY0aUt?aE|83u=h3@m$p3l-$rJJh z?JzA;G`jhouvhPIT3VVeuM1{}6_e5K*D?@l6DHsUhg;mz3r`Q`N-+#ZF^T2ir!kf} zc>U8%s4G6=S4>H9Z3jr}9AQxZ1LjKp%TQ0eWV`AMc%82jwqwR=-^&T>a0faA;yYGj zZsj{QLs6dZe9#%;b(uyPPuHTS2%}pdDkEI?EE}x#D4B&|dd8I?j9$}epL>HczKUkj>4&c3IloIkSXjF3Ah>@8qOODEnFTa~xiYQJgX7EGMR5S1$Jt;= zgfWe;!f-4TR3F5{j87i~oy^!{PhsrAA7$*(r!w~N(-?dF=?n$UXEXNq$YJP3?0qUN zph?j(3zIQd_YeBL>NmNA5StFisN-5R@Q1fnCo&PwS0hXD?9_ZVo?S+CgZo}%X~WU) zt}7`0lW3be*nKjdBfg?d#@PJs=%5KJqVdzwuV<@U4qFY|H$c1D(hyj0!{p=HZR{L) z?cZ|)=p!Cb0zaX}3(y^yZzz{_WQ47-ztcFQjx}hx|v%-=gGB17K{AeCBlU_R9BAf^k^> z%oid@S0;*_s@3d})qjFO`bihDO<#Y3_F3?w}jeYSwNLoxg$Z0=OF%K;Xl@ahQD zk&0esfJ8;T5`ZK{r=j3wDK=^lZnk2*Ua0wbo5WuMy%`1ZDL1h}J$h>W!uxu6e^#&}*}ra@KZN=i=ERhE~1KS1hpFt@$+Q z^j!EOWcqX*2FlmRM=_EXTq?h&4&En?Po|w(IzNj7%H@spb|-i?3*bE8cm#YE^J{RL#GMpYOn_viaH$n| zj>;87q2Qx*)6~A?`WffoVh@vY3iN0u^8uXfW9riIiDiCpM{sdW^G~oB&p6>6gezg@ z4S?iLrhX_SOBtW@;N524t%mix%reU1?=cZmAyUR%_XhC+Q}G;D%9(Y4gIK{VD1*p* zX2M_)KQMD?Q@UOLQwPN8FW;5`n>*zdw8smO^IAl1ggZZ6xFV9i?FdC5 zGZdl}{xl)&Q8Z>Lc!k0X#C?kEq#mPaHXc~4;>9K?#4Cmmf|Ue?SP77%=u5ks1Bz>1 zp?65JWh#h=6%tM4$%>DspqHW;PKC5o#qcmlrYUYcg3U}twHcCGiuRkp%TYwr6qc*# zI0Yg_3J=V-cgzvN>$O_3biu$eaM&}d_Lx7!EwCe!uqT+k1?_E;#N6nbKq8Ltn zeO2M!9LBCGHjIVHb;ZDJ7%Nd+O9i;882%m9Z!0Xc#@LKF9c5Mq07j{K|h-_e; zzJrxb?A~jz;>zx;2k)ENdo&lgv-N%g@ML>61Mp(gXv*|v-F}BLA9fvW%zfD#IK}4t z*si$C!EI;#F2agGTM!9HJK3?bAripWSp~ga>^H*!f>@~mKnVMG8-fUB*HQKw#!mkV zAe_D61}l;5(#`-;Z2wRYqge~ik-2?ry*2w#j>r=!9zUj{0vwE+kPH+2iSeI zyd7k(jX)5G*+NIW*b&xc8?Y4iMrVi|WhYz%F^w%q0!U{Eo`97Mc48WMnXH*|%N({F zEhV{Z{4VI_vj>ME&I0!FM@Sa3uN)w9g6%gJ*h$u>9FnKl=%ona412l`z*+XtdJxaE z$L9gNz;Zvr(Pj2Z0V2D?USA0HVzw70zt`9=zlP}>tf2r3CG3?4Al_p0siINJ))Ro; zVcXJFa+gh|9=y-KqIz2y8*v_1%Gm*bK(B%|R02F^7qS3PSof#kJ!8|CA^7L4L|foW zwq-NK@`~+F>)9K&InETgw`_hIh*j+0CV*--iHfTq*hrd*KC*+y0{hG^ehyKY!_EF2v{f=wHPA1xh7QV4(As91S=8TSDg?<6qmmf!SCU`=-x^Or=rO*lWQ9f zVm8p9fUE*f8g6S(<&IyQIECA9sxlrs~mkZVDBtw(!mBz=JoxPXkF`UUmqW zAOBeiY&+k+B^3Pm)2D&$nzv|;=QH=3*ifg0}JI7*8qg^*4K~> z=iO-29LcYn zkRL(@m0v=0WEwvR8(r=gKQJFQGx(_1;AQbK0pMlxo$o>Y3GYe7 zr~K4#V9)uLRLOY3KcGTlC9lyT+*f=c%>{4xxRU^Hd21z%Rq-CQm#pSb$Du<$@F8>} z@{uoW4(v1Us)wY5@R5RW62fVx=Pcw>QFntd0(m&MQTRlKG*@BruW;)oeDMT4cVPlda20$`F=(`@q5`~*95$8c+RyTk{!nAzYOcn&H6{ZO8R3Jf2DcZ5KI38fl5md>a~#EWDn#Za?pFhB5Ldhe*eIULgovA% zrU2M1{ul=j9%7m|g76gE(B@-{_{0jHx45zcJZu#^(00sMeDfE;cJXp4toVzMsT96b zRMX-eAdU@#zaViCeVf6e;~ZeS#SwYng^8ERbcEPD3yvbimy})Z5m&W^>Am6)G`sB+ zhxCNPesSDTsK<)8nnEE?tZoF61o4m-FP$hxF9z>`s89ksD0+4R?}+%gA3(A=kCxA) zqGW`zR8ivq;xTayE!P?1uRQ>=#Mxg!BwLiXfazSZ6ZL$a_`C%`f!KN&LOL!k+yeCz z;x($T7m2^qZuyj`rESn@vHg93v*J&*4Lv75o&+lw#iQGxcS#&n7kXF3-lT9<>`i6Y z>*C-P5O0XDQF8fMe0T%ksdx$(X1HhKLz*gIif=4Xs1(~=0C+9Ry1>I5@r!0K_DuQU0~DSs zvuNY_Qn`={36;tow8Fkt`YnRnH_GBePJq<^jq@V+kbd{Pe197udFbza^DUyRtPwD(b zD0oSY{UG8k30?p`l4&T2ep2uzfNfGIDvbI|WBP-)L+VKrXP~t9J-{x>g(QO|J^`jf zB*#36?3PCDgoiMx{$2zhAzds4FH-UzhyeFUW;!L@EA8!!sP{>ceW1QyI!Y^gtmKLt zKU|!&4|mzQ1gZZ5fJCXf6nY1wv9Fi;7 zuA@-LrAw!q!9#|WN`00oc{u|+FZD`-v1^hCWrq)>7RO=bp)~yh+?Go{sUlJ#bzBDU zNSb~E{vJyqTL7L&iwmIeRQiK9vCk!zGXED+!wr8osZrPN|Af_No;rrqmnDY*hc zypdw+fcRD_u>cEJjpzdqqVlG>JXGZo0KMI+2+F9#RPCFB7_NG{2OvUqVjMuEY9oDW zQK}Z7A-PAjydU0Suj(cx>(MHn4&0Jd_h^DYph}1V@30CJIC?@ANK0#~stpm-RPU(l zQmFm=4?$+%<)yP(zk_m&&A<^q5~4+|;3bp&lD>&-wkvJda@cJ@!)^haL=*CH_6qIg z3)zYTkSt=W%n&)reoe*yQ|y$@Af9IHQStr^JHHEfXW46~K|IH5BSAdR&Y}v%1@>2e zU>Di*OMzWty)VJvWmdHw3Rl=hgW>2ZyPy=jVzw@oK(4WcCV=Z~6s>bN*veRRN(o!> z2dvy=-*iGp-(o#Hpvqr~PmJB_C9JM3!el)G#?od(=vJ!3(9z$Pgm`H+1qz(YA} zqES-8PRobQN9^JQkbKNupfUP{<*}FKp0a^aAUI#bH^lKp!$tW>ghXvKfU z{yGxaYj)9T=vA?U1rR^5v#A97k?kM@aOJ`%^>yR8Z-H&*j?<39ox8UcL=P_iE)+bu zI9GV^;(ob;$hL3?uOVD-ZZ73FKHLpT7`AdZFM;UGJtzjzkDJ{I{H^!&l~K{a zpKILnix#^R0kaT}|k zu%CN04#r}*4YZqz<B1jfmk zN0WQReWWD$G53mg*iX2CwZNWod!ym#8P}WkWY0N|k1+j$JMawPC8yp5y-F^-2Y9cz zW(|P7=9bbKz+3L{KoH+?d6c77alcY-Ud<)V2KJtdq6Odsx3UzHpSe(4R~`7$1OP|g z5)Mfxe)bZ0aOTzV5OLuf4TR|peEsDR*~oW!3lTT|2_0i@=DX5L>dre4foTuk`zHWT z{t!x7oEN{6HfmdV9o2=r`InPnWh*~51tPxuU>eDOd>rj~ckl=L!qHAXix%PlzSlx{M#+AJ_wa7TuGJKEen;#mpcDW5fgL9FDT%!S??KE)g0EpMuV z-aCHLbC|B;Uwi?{YCbOzy!X7<6YxIp4s_)Ek$Mdp2A965xs1S4HK+9p_NXlxhm4}v3qVbU0M)(&AChqJK!ps0R;+ zh0VvnJ0e7#1$I>E(+9j%!S8!GN)v)OrcoL2+R@i z&I-*hBZzat)yL2~FMLC@)CHlPFN|Fj`qO6fl8{Xuc~#g!#ie55RW7Vt6P65wmFvPG zI^e${91jJtL}*33=vzYdU0|g`*KqJ|3*Bihzaw;_eCn?7`&n2i6E;&#k1^yli zy(xz&7m{gURtULAzW1H#*BL<6wQOe zYvC*%_rDS5P)EKM?$TuZPH=q;VzuBwr)ckmwY2U2Abh3;`lIku6hiteJZOlwbr8ep zu+UL_Of$Q)m_8Rg7x9;2P~RXkfBXnYuFMf%WJnYaa!rDW-uMgPo|r;g`TJr| z`q0b7$+r;h1F_j|n0_dZpzNt!R4#?-3elSmZXSurlK~!!VhZ%0h}{T06-N%1$ZO28v@C<;;j&b`%av91)xeS z`xeA%(YZg|z8ACU3fTwoAnrYIAH^HA*ZCyMnn3cim`7`|gEF`oFh}JW7f3oO*HEd@ zS^1qB3NA`xHbgckGwD=tqjDBy>6?^!G{L(nKdeQ7Zb~cV1)G%(>DP2u&Y>B_LphfA z37*QEv<7%7EvrD>s_ZZU#(b53k3tZB%7BFs*{1w`2;6R0{`na^f2GT4#Ii%VTmzAv z%C&S#6QC@ll{rvZd=FN3DQ}$x7NiXM3F^VhZ#hVYC@U#V3su%j2iUD_PrL6hmxd>jAr^ z45crwRGCZD_HE@`nx5_`b11F2r!1lz^S)Af0SaZx#SH7nrVS$Ttg zBM0f-4A^v(Hs64PlQgpzfU{(xy^M>L-UX5yq#P;>ZIl{wu(C;VNdnPTYB>d%oAi=a zuFX>Cj=xmhdP|;R;BA#s=~|qx)NTMo{3Mpv z@a@vcmLU2|4g0~v4k>vNcsr#xUQh^-z7GZnl$`zoahLQc1U7>tC5^~nse1s_cS}Rp z0t=IJPeMIhI_>~t(Ne>+2x*^GN;hxzOG_vljgi*S1*KT2U??Qxq~WE&;-%2#=#T`- zo94kp$w&!#k~EmEK^%}e)3us|k{?}VIV1@qp>SAo`whG!(itkbr%3zg#O0{ef%e*| zQo$TZrb`X_BZy;CY79(gNd0!hU#29ZjaZiC>IE!Y+D!G>TxmL$aPlO+9zecyGa0-B z=|nb6AD4z+hkBtjU@1JDkX})qTqIS|0p>|*W<0P{QYmhpaHpkA+P$2SzN4M+IcW*) zFwaYo^h;lmeA6IuUD|aK3OA&d^tL6^5K7u^O8&RNyCtol#jRAjI2@*LOP|7_en&F? z1m0cgB5e`xOX+?fmPu*!8$FPe(cnFl>I4BRmk!aec`Ugs0ro@+jX+O4m8Me-^qI7| z2*ejs69<5o(#G>3R!W1N;qR4n^A^BsY1Lft-bj5$Bfu&t^gOU?Dewp+-%F#MVC;kR zVi&NFQneP2K1o5@(EBXSqO{3D)qg5p#ZeXF0-lqq&sr!rt7cG^;DX`{h#ORgzk~Wl zl@AqgH>vi{0OqQiOjD(ss)Po-0H3xO%tGpDw)n8JXK;kV)0V_G!`OTR8oCl z-l|hn`tVT&l)>~?)zM_|d{u6ZK@3)@6%YwgO-+G%sA}LB5D8P|-GWHCD!v0mB2{lK879d77lZs1msuy44#o|@hTR<;C zb>t;%CaUsj*-cWlp&aF)Dw`^>hg2qifWxZDD40H?3UGmBvT7h*{Wz*}UkLB1s!8)< zGfh=QXI<&4(*vMzOx1WFBr{bx)X7<@DjIy*sy}u^GDkIb8i={7w$x|&s$~}d3RLah z0327HvVd2p(yxT+6RPW90z0X?`w+ZSst1KoKdlO&s>2yo#8zNuRbi=cdtSAYju$Ve za;XqUxMgQvE_n&0|$I-TZp0nlTVoo~a&3K=Qc?hfNsCs%z`6?npz*UHxPTBt6va8$#Vv?Q5?{ zsN3BEwnhEtV04I&y3RUaTh+IoAQoTsWyL?Nra8 zgWUjiF6}!4)vIyIiwjbJI|3kB{liKSL)6Y`0HNyMBcQiiJ&`&xT-|R3LW)p(kA#&- z_04af5TzdV6~G?#3(6y-)xG_}+ovw4)P2ADMIx{m^$a>h!@7DNq-F0qnTC z`F8+?>Q)tyEK)E18pcklv*_nPrGD2MlBd;CH^DojZn_-coI0Nd(Rp>E1>k~uCY`Na zRBt8km(&fY;(0~wTo=5n>YqKJUaVeCS?o3SRI+(p9nb`lCF)(-Al_6Pqha%w+BOm$ zS*i|fkEm~}2j)QJuKFTvlkTZw>1^%3x=$$LEK~OhfXxT$o|ICRt54CgTcLJb5AaBR zoHEYG>Tf2($`kdS3`jm#ryYd)3w2v7u$SuhA<(N-C(?9>QP#;L6iCv*hbB|1;93G7SF@mx@uzRtl3R7mS(BV znyuw9=B|0)8pb>{1861j)D-^?;HAml1d%P81|0yrHGNZ|=c8Fb-MUpXnGzmf&HV46 z?x*QXV|SZoe*t*gHRT1s{51>W;dY0{b1NiwYTA7XUV!Eut&M@2%kcoaG$-8AJwclO zv=0c@gtvi0h~`drsE27{`#>RF^A(kSA~dn@fJJJ)D+Vu0(~Yjc?a}<;i1*v88B_ti zXw92Xu(?kY&H?P#WMx7xMq{Ckbgbqb9fQVciUJW!yr!}lK!T=AK132V-_brGNz-Tw zY#z`&q1ED`raqNu4r$Wp%Ew{N%3^>c8t*@0I$1M=ij*muVDfiVQ-(X|T&gC83O#9> zkF*A)Ym%s5eoT`|GgyXZ8Wm_WHO^fjnWbr=1<2N{rjIK}(~YX&xtiWoO3Kp|{|PK# zvzsj1fH3mO`E1K(6J-Dhl*%P2xqoWH8*ED}oLU3KP zjef=(ngUw?N;FHp0CrQ;lD6EpH1FB~E7jci0B~EAN)yr@&D{miyQ_IfJDYo&Kb?Tx z*SOOWaGAz>5PAY5tM}Jl1riJnM<(_HBTtnwGSi zc%~WVhv1)U9-n~C7aBcn17B*IP^r376GJ)eD-GWTBCj=$f zU4^46P4~tSsn&EK0^WN~tHm(=K{K&8z(-9HEtsD)Y6C<*YvgoW)IlrBpzf&krKQJ7 z+szp~XRVehLmRY7aR3{&saXJ8ruqQSmLyW#@$_G-@@hv{hT{)TY0 zPy1~Uu>D$>c2J1X#->3eR$H|gSe*8RC$M;}iB{1Btq&bMBx+an1eT=D+X&tPt&B#` zL2Vq}063!UGZ-LQyJQuDNYM_^K;)=4wgHT#YCA6hNYfts6C&x_SFeB_(*{uKKSTR~ zj$Jdg{-=RuX;%kBFI)RG5?GFQS`@Hct(+2qJngt6h&o@}eLb)O?WJY#eq5VL-(R7& zkhU!+w9_Nup-6kT4TvYTeg1~XDXsH%=$+P9QoZhs_SiXqv)UkAdQS_G&e-t6ER0Jr!#ODg|ECIxUCW>)P)ez`LQ{ zOZAr$t#}y zVCALO-wB{n`z%XA>^Ee)Lgp z&~>Ks&5gP_lqw=^3mnmz}u>8V1T5r?r(ZcKV7}gkldy_Kxe|+b-n0fjK9uAsrwF{ z$6T$e^Ca1pxIIdBxI8?J(t zDBW)+C`9XipgPe$-O|%g*sohi$$E^=LUoN;9kU-n#OeA{y)Is7egiB)cX}Q1|gGV25r=g2!}SuOQA0-BjAcX6pWq1~E(5ayCG=F4YlMa&%v;0WViq*c~8G zXQd=RU$=QaL<)2}hd}+f&b1YIg}RY{1Dw#Mkb03WglbPGb(;3TPU#N)j37?yj?+qV zMkfTp%30lb8jt5}Ku?k%a`g|Yhezt=6Sob?6vrlz;+CDzhiFD8N zxh{|nd@FT(Xbb#GS3n!h*SZY+0}AequD=sR-s)0m!F;Ea(Ppbk7q|>jSL>`f0Pl5& zsfh4FcZYudkGeEE;QFL%Fb6yb{q}y~IqK8819Q?Jq^i5K{!<1dUG!g4lDJ9#OD0Ua z>N8`&bJGibps-nAa2N{idhG`gJ@l7+@G74A{ZwH1zlD zXHk|AqyLij_OW`!TZ9y+4|@hH3Hli(=q2heM#D;y-l%}&0sRQNdvH+iOB2!&{lEn1 zCF|2SK`%ugL4)Y1-a;u{s{ZX5D5U9sivuxTub@p+hQ8?zC}ipfuZ7Jlz5hZc1xc;8X~3o)pRIvTQ4qz`W^ke7LdHFcce+~o_@pkFm_*mb|Li2 z^!KNM_(1P?0wRy}+gE`1SnoOr#3%axgW%|?zTyvH&-5O2Zt-02L+|%OADs`$m-@4_ zV5L$&7dLIVS9&?E#jo|ds0#N+e^ds^Dt!fIfYtgr-vPYW_pcA)2Yv1i*!-xUL^b$N z`i^~}_gTN2>Mst4UmgK-G~Bogo|9pJ3V^dAls*|3!%F&9HW-Fb$z-FUiwnReL)aw5 z;%Z2xCE3l8N3;HB!%v+-bT>rM1$i&S&3q8I7+QNm#M{8qzhm+-d?*KTtD&799()bw zDZB79bf%PXo8k6N#JSxN(GQrv;U)Fi4#S3qFt*bWYXufy@SzjNK*Iw{adsKn%mxTD zl->d_*x()wEW{Au3V)%7voxuO8~ euSaZPMD4~wE7#8QHDNuA-Tt}V+FuoLj}!z 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
  1. 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%0Dh#5MxXQ zes(x67#piPh$cWHs7>}s!yOr>qyy<|y&t)?@AfD-2EipxpqgTJY*W{A#rzdKICUs0 z*kc0e8@YG6ja6c&VL58S2{BkZfJHaKCoXc)&El38Lzv;-?9#icJOa3PzEAFv^MRZr zh^(k@7is>C_lJghGrfGxhZkE{$Nt9{+e1&CMe)WPkRhif6fK2rIl2s^p#qYFBvZ%Y z`h1Wst~cl4s-DPi+gdd~5HFn43P(C&@8Q#GPHYZt7h@|vtcqs8AN-e&ak0ASu7=~w zg+vtun8x|^6hvNbQwi3mb4Ca-O~uNMZ<0+haTW;%`s9?mY0{xnW53WQ@*p!FV7a}V zFQ~BTcPYjZa;K8E`oo11P*V~?qEEW5;-nMdYvg1-p-yGO zEld2jMLYowT<>2X6F>s}Y@Kfi+tMi6y{>OIKPE z<4BANlaCW~Wkuss)z7xROPhAeSavR0s>KSLFk5TK&JR>5A!5>*s22FFi`Iv>bTQbC`CbEN77m<~0C%&F2ZG=V&w4_iy)nH>j?(tP}&H!u^55 z_q?shMI1oHd*31zaSk^0+LXQV> zu=79P_Y_0GXr_30~488`RfgQ9m%hum8*?XS2Z-_DKrZApu}0be5n@wT)ELmJdjH zICs=^4K1#;B05K&y3wn9CYT=Q61>;F#w{xZ$>~MWNLJpdsb&k!6Z866y@xx&(s0&B zzo8abvqyeH0%vZ`HCPL`MOR7&z1z_BfUX%cv1Ui24=siLHbWcV5il+kP3J3Tr^HXz$Y=pdWxyLl8ERhu%q_5=b`eLUB= z)P`t$f^BehQ?Z3%FG+VxIDmSqh=aR(j8gc8Rwbi^*0ZoFm!b|2R-MsFjNmVlFg}Os zsmL4;_?9Eh_9#aayEYtVsoiup0&ak21ds5`VrouZROZoW$)Jz=5U#b!#S0Rjs+EGM zbs$@pd0^ZyJ}&Lz<3b1|{e@=!uNhaM2qKoQYUXNDD`3xew}awueJv3X^%cmx;Z8y? zGRk168x83cOr{59Ou*y8OT(S`lxKCdM6HGiKWsI5I?$0($P&c?e4z@04_Z(uLt3x|oc|9{ z!eWeX8*_Kz%`&~+%p;BlalYopMLZtDFZ2l=;t68m@~i3Skg_I|+w1*;kxqM<)T+P> zk5jNS?nKb)F!fiz30Q$}ToYpBns zt}XPb`F7%#g}Bnf=*%Hxkre+>05`c@&j_PDI~*~Tm&2=N+6h*!f{=IK-M@WByHGnL~BnHk}G z8XqGay0({bULd~+IMlCm7=%fKz4BUs^f9EEnrb(m4H_hic=I2td6m`uIu$Hxaj1n( z+J1!tg@eG}Y1p97xR!ofg#{z^*0#$lWXVaRE(q6KZ%oY95#5i-*-`V|o9Pwsh<3J< zflg7r7Aoo3x#6(&&DSukPUdtG3QjN6_YJG7VA#Eva~3FsJq*!mso(a|FaG}L`(L=) z;G|wtoco35r}Jv&cw{(LSAsiEirmnCOXAXxw)GHw4UlCoyVCaK*H1s7?$qj9o-frI z_mb$ihcBSfs%%A%aGE}WrXEtV2@`WcsohdZ0}15=94Q2yvw#Ca&m*eH|MsvU1*I2Z zLp{*2s-mepDI4Dl25Pk$;3y=9A`!mJz$CsD+Ckx*LX=;3g@?yug;sr)pGH}%UJSolH=8heG6qneAyjiU z=73yhwy%)u><59jwtTeX^JqXk1-2uTBJerXff|@!Y`ne*#dI0`=jG2rT6cQnSa;7trIE}&Nc3Q%4qPs=F1Sm7Aig0CMaxhY=K?&qxj6_$B%{AOSj@ zAg+INa^H#oL6Lnsh=#na?peb$3GOjy;Tr3KhoiMz-ecZ|OPV+38xER|c+aahAKt#d z|0K#H@d+L$<}MU}^MIrTG>N((6^B;60{Jd7-Pz?MRa{BCgiVGJmg_=PW)cVvo6;j> z@&bQS=qoNMIX^SSk-1DjVJoy*YKr9?#|n{fEULrH)*I3wQ19xHV)yO4MR(E!vx_aB4jg-tLET7o9RW} zJEFLQ&8F@1IpP!dOraiAr(kU?#`rd{d>|~l2K$R!$ham6mLX{}2giBY1_M-}jGqyn zizC4O%;&vOqD?ywGo?9}4d0ziMx|IVl#U2U;)-c+(LA3oNRv^JH~gpUrfKV21hi zVo+TPPYS!nrsd8xOw%M%fqYh}e*ZT~ejsg@8;yq*pITK8e)GZU=BJDJ;^lgH>iJ=#t6HJd2@ecQ#t2*gY52Wo#=C+7iJ%b9eesXs8 z!s#{{CD;fGu+(wietWrZ#}MNZo;1V$Pq(mSLceWN%l-hG1k-TnN{YMlI>&?N zI-`)A?4l5ziA`n_|J$4QU++x@Mx+Fc=?FRWY>Sa(O@!jz!6UxkT`mzv5$6Ol5B@Q( z$Y{NCNcxl<7-jLm#dR?^v!I}lv#>panrwEIHo$78m+J_5$DjJG$k7Dljwd&BXyx^# zMkEyJ=>^(n^fDcx(o;iXW~rD1qS%4p9Q>k?#N0{JW)GAkRRM=QGfeObVU3+m=AB?yZC( zGGokA@}T21zcC>Ct`Ke3ON-u-GfEE;+PWDq#RvLQ)i6D%Bg}Qe%Jn0Qm#K0&bl>y1 zE4~BCw1%}W$^q=D4pJE{M?{#QXe0m2f@w+{hyY3xz8PiVMZ#hKi*n(#0Sf-)52zwO z_?H%=Bg)aHVj4K#X& zr_EkIpKDR#LR$qUC4xzb7QwU4+gfP5icw;|PPWQ-6E>(_-2$!IdcKBzSqaj^?PQRP z?7+pY7SFGCS74r3t0e*q`tFwOWHitLHU^@VD{Z*Go6r=Tn%CMTScU1Set=5t(%5?$ zl|v^Ae<3G4Tue$a-y#n3>*xK|oA-a7e??|lx(^u%Y5zF$WDrZ~xtmuoa8i??ofDsK zii;hxGwfE?zB1oPE9y*f)Q2D$rZp95*eq7)hWwh9Fkfq3%i#WelwDx+%%L_m-_Mkc z)UuUA_d%by`R&bw_8D1&?wG8U2&)s1L!&f5ZCZp>c}uPk(oR(`9;OIu4T?YVVu^%- zMZ?Aj7L8i+G&$yLEtPs0kB$ewb_0oLruTkWf@xO#*3JBwiUCSXI^H^ss9|aN9Dcd^ z;s$2#E}CbUh8rQcytsLR4g(0~CvJZ?rB|&E+2+nHQm%xTNzB*!M(H&Wks!uyn>SY= zy_heOG>Iy}r`Fxzcw|yb4YJYXTsd?Y7B$8f4@9v$x6@=)UhndSX}&A}hY+8=ldg5ym26#}smg$ATsvYAMs%9bbgbZB{n7-k-h^c~i~t(l31` zSQ;Kmc;C6qFbyZZS~0aLjT`lx8lZk)#E~>2;zh#TR8*1fjTp(}N{VP+EppT{50aj}_7Qm=1i#RsT5?q>T1 z7R$C^mF-n3aJ6-@AK$gofiT>#gw>G;BgU0xCCra#vXiRkM*~XxJh#aG%D@!{1}1Zl zQnkUH$RWm5_8gQyTeI_ctmkgyBHoh7q&Ba3FB}=T>t4sni<5KghFz)Z}RUh_Tr>JP;D&vZ53fd0nRBiQZ}k%U@ad1B;}o?)z3l@5UaA zF++E!Ws-j3%DN#X75`d40l|G?p$ia06o!J*7q5bMxwKA2cH6*p1WYnSZHUE`IlVRQ zYJmDd$y~;@4Y>y86BY_iuh}RA^#dqbSC^G{pj5INkjac8Vze4c7DslpP}uBqg%Lw3 z?5c}x^c9=fHcVn$kE68!<}Y*|snvpYJ`+sCCEK`54g$}N>fKZGx|@h!WmmZ6h=DgO zu-RCyik0bwKPqzsSiq2i>w#Q>096=R8vXrS6g|_RNd?kZy3GQ%M~DZG#}W*#{m+^Y?E)|Fr)2_xn%NkAMFFOLzEc`oQ-2W=ppQ zcZCl?-VUa7Oet&G^1a4WMgUb!&6u^?W1K@MOZ^5vTLZ&P0^qO21Ha%jk-Xn4DM z#VT0{cUYlDRaUxuUWh0Nw1{X@Rr^CXiRw zn?74XoBiX;i!=JT5>Emjf$WHGD>q0M7!Jr*(iPT`n=Dd`40ed}*6S~Nv;2m~2?;t> z@iA!lg_;5B^<=0d_ztCqkK?G;~4un@7 z3@|7tfh`y)tp{dO8jF|VFxP~(0BBbFYF7lESi6|64^Kvj4m0foyL zO{z2HP%V(N1~Pm$D`;qju?!amf<|iKqjU=D=-q6>!firP zh=6t=y_!<5Oq5_gbGlKi63uzkzDPw9e)#FlC+rt?YB+){0_T#&q(2>=oW_2c5c;$d z%d&&FuO3b%Izr2+~rXYUQw>B ztqZ!W00;-QXTb6oJkFP_(9-nQ$wo&mn}sCiD#_tI+b{qc#BhlMBlLo7R7hLjYe*}BgH71iCxihI zf@L1Xd3NaGwM1NvfwR*H+e`34;24`#eTV+(aD}H_odd_Xfjq*r zY0%v4kV8lr2&w3UQz+@T?7$+Uz4Qta@`0;e_1#iHFfUs2YPut(V0|$_A0;ZpApXU* zacPFJpt*9A5ImH3XlopngrTql5rOb?SSYV^g@|Mza+F}b%xC~NIV5R1Lp{ddBmO;B z(vkRpU~Pmhf+hU{dj(DETu0|A&o4`t+8LYL6}*R>xg}a5o+7R_hL)(EdD`?JLmi`I zk~$Cx@jygb1GS@M$$Th-Z)iwrPfn;EPys0@$fa{l0;k#}1>sR|GX5(kK^~(vo4J{) zY`>>+tw+&i%g%s6kB&^MIRbKSp6{otTQmzmp5S>A1da2LLP%zYV-&Qm)1u8IZ_}%c zrAv(*r50F>ROgkaJE#UHtwrTt%#gaV6-u-uJXE=ykGF7;lXC1F!z}@!i|OuO35b_G5VC zapFpAHignpookmVt%)P>E0QgGb2?&14ZujQ@9{UiaXllng{+NW)+l{AzdJDoMIe1E zNUa&9rEp{M2u{qiUZ0RbG&YHAh=@Ar7vu!d;4BWJJSMF3vnP-S$J3=qXxJuFH%#go zI`LseCKeSozZ#|&Omctf8JFgcwx<_Rh(t&r;tG-ERV7z)U9U`a>K&kG;|HZ=7ew6n zU<0(tfUdjA*kuAUw#gK&Pqs3Fo<;|g5iln64r-MMWFUGooMbth=uG+FI#F8usA*#OOIQfYWQEbeO`DmDj` z9d1H?q3foCc>FZOr`K0dida8qx_Wuze8!6xAERPWamJo95VT5dbp@Vju&z->=?JHZ z=`t^xu{&P`qP-@Tx>D6>U&Hi;Jo2+O+#eLsz>Ej&jlAEU1$#Wu?#Gqj1(9|4G{O=m zgZ|t41z$s#omL_JVe5;pFybj$kaf>1DWJ5kDUYNsz#+jAbjUMHxTl*11Sk(;f^4tn z!}*K`xp&AM0fR;xR_u-!-~wjmqM0hP=k>ULZ6_?j3k#1MZH4;6w%w)*maF6 z>UbBowaG45@ZGgNlj|b6q5$bs&Vk}Q=tWd(G88cJc7ZeXL@}pL8QUiVl${YjH{Gss zOX$8m*vYA1XqJMSaN&DlzS%8$0D58|YclWk=JF;C6Z?T)OkIXj075lxrrSHp+gvuZ zYAP_9{JZh>5tSc|QpayPLFzK^-@zAv=tmdMA4+|CXrQmT>%L{i;$(fhm{#CkvyL}; zbz@6`A!hl*{kj724Fj`X_u_Z(nv@3;tlyT_nAZ}z{)W3$sf`U-XUg6kifGMZYnX<^ zNxN6`u0iVKlW7iZCtx5RzR}(f6V#Rbpy$Rsd73GV%XcP?gYqLRvm+R0WstN>7-~-f zCul8p!@~Es7gHz%1AAAGQNagjM;NH2I?V&3Zo2X#2ag$=(1lUW%0ea68f`W@K0Hjq z-=h9A(i;?><+_s+%J~LmjBe(uYcsXy%Y1x1va1x%Es|{nN$|Wkpuiy73}LbdeLE7m zUzr9UeC<4Pf^h4;KZo+iZ zq+|o$4}qaH<(2pKEH{6qt?2 zS{QUZJGllyyP)mDyp8AJxxYE|tj8>k2CY8*kUm9Ie~VhN^@er8`g)L0^F~C?v7$xu zQKw%skZ0(14r9D`at35{5He0xbi?kF%{*@B;dW-bivlXhjXhV%O9P#|`zoboHpNPb z+X<%6lYBPWm~Hzw2#a6(@xFyzJ-6CJPfrRZXPz2Sh9LeFGlCpsN!5oc+4K*OLa%#s3&v-gE)V+b8bKB1u{Tp!u6~8}fE*Ra-D7`K zpl@Mua5X7f3hSV`YH%X@IFG9iwF*;1gr&++W@p_cZ4Z^9ZY){U>+^t~cY^V|aBZpP zW0b>V`TRn&q3$;YqnKV^m?9E+>?I&S$IZZPgo56YU>dH>&x`jze%#)_zyE>df6+zr zVhFD`GD0tw&sQkN2p0~c!g=35+QMahnttI}Cqp=dHWL^BWiiHn_OK-5_Qjte%Jh#6 zA}yEa1DIkxAY4)6VS|w&t*9G$(m@m~Z-6aI$GGUM9=tu}Y00jvd`^~y-%ZwNU5NV2 zCKjSJ1uUP|_KrQhE_PMivrnRbj3z^YqOVYENE*xabepX?BUYJoGr#>^nfY;2uNqw) zo?{scTS*|q^F$EKgXp5WQ$r!8N!3xnJFbF~fr#`J(Q3#{&j_7GrV>D-XKDeT*D75F zR4W!$1vhuMuEpa_BhG6xUDJ6!TOPA}X1dxR*Y=+9?faX2ha^{qNhpTsbru%^_eZbl zL-eX(AyPUrmZC%tDvEBdAx|#mu8i|yb8PEE=Yisqkc|QVsT&oJkEbvy=$Gb)2>R=# zg;-YsLSc;lwBEZT9|G3 zmRZ4|bcklZfr5eV%@2qQ7}_f+;QlC5e+_xv$LSYBWE0*HWdaMFhvVt+>i|R??68fB zY@wR9J?hwvF`F>PYpAOrAH*3Ltg~L5v%Nh=sx%Z4n=_WKzj@jFuWC!B?ZaprT?~TlHajR$(`-u zN_B(6iXP{2G9F|US6WVeSc-{yX5vh`o^764{I>aM;WfUvUG8WfKwgEGukeFfeLCoZ zEZC=f`_715x25tmTdvIcKS{-euiWmq}OE46XqHY-&`KdNwsE@n#)%1Gg4W?JjDas((p-85wvF#SS1V(&I#tT*()B}+|< zIs?ws`Qc;G0}V-3rceG{n{GQqLA4+c=7R=h_88ohw_+9O83)MuB3cjzU_41A;nBq! z5{nTO_Mb^aNd-X;RI>(&3a}Q5Sf`3qKX-)4|3ujDAs5XT^}d)%O1V4-+j1$i#AD`usyr* zQ0Q);tk8z$PVRCF;U5m_%lvts_TY6><4SOyX9*&vi-BOIkB`IXl*DY^Fw=k?{o@8$ z$B+x)A1jD)RO*zICg@1@tj)Os_~^?8>@_a zy}n0N*xmKmM_pY6Atw=^^XeH<`sJ#wfbMFMj&z7lzJJ~qxb=+ z2NrwZW|CB(JlH}8d&q{DI57kp`cWDmPpyQq7L!Eup_E{zBoT z&L~w;U^1FpSN%u5Lx1Kl3!&0rV^g#BDGZ41;z3Y`ef5a)vR8CQ7!GgB#BZx7zY$jt zatGSUO00!eykaXwDCGHfxL|}P@pC87+LI|=UgrXBaS0DPNls zAquRVkB#-ij0JuUabSnK5F1Sro}ZLpgfc4Uw4DLXrReisiUcb_ZsDAKlx0Z+y7ml|f8p>4xr(K6>{EBzX!vQu1 zoX~31dUW}EHyi1kA#d26A~i?BF|c(!`8h@e4DB@{;C`>K0r$s!J_y`D!469CLzcI7 z2yjC*BTSI*zrp$Jja+XakLZ#%94lL^q&v>8;4QmEAV$r7jFUM?#DrMEXzdjmhp(1l z>rm=pL<}grws}wu)06Otu)0FR!2dSbZYxWE7ke!zA z@h}vl@UxN}wBZ2i6-L}SB+Hb)#NO*K@e93#w1%Sc^nUT-o##H78@CD#laLlpI5$67 zT#eI{)%Eo)Vjk#xvBaHT6J^|#%Mv(^_!gQpshdMo0XwL!G(jz!yT)D0fd(I+Wg_<| ziG_^_Cs|%r++efgWQeS^3!?)CP{%+z1m^bgwzbEXkbJ;aw>L*qp;X3!Ks}n=4+^N+glYP~Epu{`WN~9BCyRFVDo}og>#P0pxaq4dj;HykL|(nx>}7~lOZ~%8 zB`_Ux7k9(8T9D|KX^AX&KG9E5j z=yMCp1SWRKHPHtS@&qb*@5xJR@zg&YrWI0}BqTW{)`HH=7 zAog&R7m9doXGEUFohyw%e99sPDRIz2ucpP!!NKcnN}$^Db@@%d6|Js?6T zAhGizoZ@}ArUpd=+ku3RxYBGwG*?+kv_T3(QSNMyTN)Y44ojP1Jz<`q<))Mf-B0N9 zp(S*1BeE?iOBRX)i28qr25H+$L8+AqYM6%egXEs^xb#$iEHNMt>>c$>i|+SuX;GVH zNvmBOo;L_=C*{A9?cN0y7~;xW5J%;O7lx2z$bii9o7|~jDZ)BVy+IcZ#Lv3RQLZz1 zGgz1bo}LVT@&5fUB+Q_jyjse8Bh!e{B5ltgt*a6K1lYXTe`k_{#_7`D>kHURViHV` zWPH#LY!X#0UJIp0Y|cb6(#e$jV&Y0@ST0X%R<2=s2OgiTN=HZDKk+d%j?BsE+yJ)h zSKEojMa%ORfuoNRHF_~sUt{1FlF1Q;@*A_Xc+s2fW`s|D**a;T8R849xqkU@C-X1BPoxR}Au7?X(13PIkqT@}V`C7$l#keW@F z7aJ6^&!O~4QDx)-nxq&Cjc%O|7Y1I>RaGT1W`Ro|P<6USC?B3mCP(kV@ZGBDw*&)g zbl|qxdV9H~6Mibo;NL>(SLnI|!==61PGE?LE-093!$!D=%w5W|PdI0hIUY-K zk~vFpOJ66F?f$pGIM?7Skd~>uW2dnArEe6E)Xhc2ERnKuDI7aJF2~hC_C(-O;$!;< z*ax~F$GskLRcwwsYr{fA-Y6%ZQkHYlLR6N>vQA<{;mhKZmtez=tqKnP+^{cF!izo= zECH8?0Fy(2@Oe~*8$N0Vx+m@f9VQzbj(96&meueBQg-)1Nor^W@yCy>EhzA5I$K`6 zo=w-A)y|`R{m$hI<&b8xyR&D5G#Iw}i#-Gp5Rh;E%E>r*16e}QAzEF#f6f%1{&U}TBIF6{NRiyJy-iDL>U zYGY4rS~GHdaxmw_AbNF0-ujhor+s0Cqj(b9q+0+WwzN)-ac?PKb9lH+2;0x=Erf}~ z5mLQy3xcE?hk9xzh||SD`qj;R)Gl>zYdyv5@toCSd*TAUB?r<|b+JKNr?YFOqXQ$0 zyo|A-nOVPkZQB9T`nnOWcuS52}F3_HqVlO>1B3;imXHx!PphV|*6L81Ki+YSFL6n1K z39Z58fl>j=z7QEJO_?B=B7JQS5ujeUDK1ed1u@u?#`Cq74Xzu=Z=l7fKMw~b{=8&x zde7~^GpbP)IfFv%7S#x^Q^lDg!cN9jSywHY=K+on88ua74T%5?z`AHJ(Y0V!vKMb} z;_|}b5t5=M+)Yu@vE#o>kb(dS`>#;Px_AKR{cfvL^^09z0yRvpEl-Fy$MO^Mv`9|S zaphT|I#F}tMxTg5c}Y#vY!yVUZ-6wI3T-MeKD6C(XKMq}aFSW5irq2{IB9kt!^$|- zk%ECiSR&1n#F}J`Qjrz(y?gui-N(`OM>yU-ev)1X7<#YuK#dqg9?=czW*6fAS35FZ zOtIrr(zj<|S}HH7=^?UIT6vVrX3O6caQ!CnVbwQ~l%~G`G>?y7WY)}~M_|O2XaM0+ zBSRP;7e-hiI;rsY>~4i5eJ?NI_RZbiK}KbJe{p34c8@pB?4t&l3=RFv!Bi zZoWXtqo}Mf4Bsq6*vIur7xGvS-s+pO`P5cmun#^|>}5 zt0#>aDp1>j4y?W>=v_lQ{M`TRM@XA%NT`+{Gg7&0BHX7ppRGEq{26Tj2d}w-4Op4` z+H+pY!XC3~v@#ted6snAMAsnUO(r9_1%)~!F2t=As_RrIcWxZHt#=R-L^k~z>YJgi z_s|DOC`{hS(pFcy#k{rN)i4b&Fl^K-BbK_Kg=48U92D)#*MFRCR`!9ZD%|b%xso9; z1Ah6h2g#A`=fpLMAx)OBNtujV4|?r!P7XXoz{tOK zSRX${Kc{CwU4T@jF#+#}xRgBuKL>&F6GLFGrnTlkqh>c4M3}ayiFfubY{l@=GX@4< z&X3n;6`{_eA;q=G2+tbDG82=hGc9-`ygWcC9ZlD#Hx@4FZWqX-4=*hgj{_NGJy2Wx zWW4XbJ*I0tL*mKpXDVR^q)};)s@zgyox2 zjpUn=WEH}{e){}ndH>!GHA?h!o17~X>r5y)J9^wbb0RU;MEa3X4!84ugD-ne|}^lGEb zy^H1I`OWMa<+jzHqPoqysdgliIY;<^VKfqkxG+%=X>HA7r~+j+FTW5Tr^qNTDl#^+ zVaj{z<#&-3rMLJY_S!zB6-yH`2WauVcGto*P!YVo)SL=LvkXHBp&pE+7UBimu@#iJ zt@eIkP{LL(Ml?#6e`o)ik9`badAOGdv8|1wAmzrIMw>j{j8!ofUGO?T((Zrifb}+| zNB&X!itIkob_=s+JSRq&ekVj_q=dYZL+%N!i@@=_t~YKN{fZPa5e$C%8p9b2c6D?@meuy zX7hvm@co6vSFxQKqSwLJQ&1pjd$j*p7+V1m8f6aC<_C!Zx#t?M4k8BJAXdPI3qAi* zyuG+KV&udkV^wqm+F3Usx+leNRlgX>nE5z}>tqID0}jQ$n;D~gJzK%4JoYX(>6SV5 z3L9|u9OG1aZnap91wFq)p|^01Jy3}O*!cfEiQ;=4EA=Q$hm%UCrQC;>2}w|^3~kbn z;s{6a6`GECazSD4VzgDjgebxBPd-Xg03QsBY>leSnkD}c!1VTlP6 z1wLT*;miFe#U!u^jad?`UXt6itxDRN;fImI_9(Dx(gTh$byaHN3@wKd_K2>CoCd|4 zo(RRmfTU#j2;uQ&iMi*fUw?}(fS`J6a0pZH!2viSupu*qbAedDL3JfeM2FamJq&fK z+q%VjU_c5>^WXuX{5)IiZ?5ZxkSiKVSZomnYFHc@pqq9+Q@hn4)rt+A&t@eI<%W^9&iF9`h9B-gmo537~Bt}Mb0NNY$JgZFH@1`T6(Sz-dK zKUf0?>*r*!1TrM|d%4n4ixdd_saeG-@`g>YQP?9Q79&jbmPW9R(PR~zt5krhg?|Rdmol;f{D?!|?YaZhXJ{eZz2T0)xY8p_ zbHw?{ZgqYp?6N6_ah9e_p-g`rxj|;X+k)OeDl z`}yN43W_Gq=X%jTh}0H^C`9P!AS$wqGg20)%6j2lT6yPl|z?|Gu@oD{q5}(K261abed=Dd_zyo z3I_h_V+cJ1wB(6SF%`?v=FFU`6{x@(GtZ1lgB>R+#@jTcI1%!LY!4u09~z`b(+tMo zE^r1AH`Xq#@30zJdH~oL0w-^w&_`G*L{4ftY04f{-#X2@@cdoo0x7I8I@`{=I>qA} zU|vf^d7?T6Y9cP&lTQ0IA~k?Xmlu;4w_^67wdSF5N_PNSM>lwnp9praFgz;3=mZWN zU0*z(Z5`#ByGFr0-=V-cV`>l+5W3RQOo^4$jyik_%6-tX-E>J^cv!&`bJRXjLA*t~>5;&~c z9x`TdpP%tG=v&grG6C#`OI|@l#4+f`(sTBBKp-f6UsM@MvNx1-@BdP!R!A%tNXspp zPZ3>SJUCs?Hbcev)a}Ob!@<#EkFtf!snE@CU}ev~=lZ3hDl+wbPw_u&g(0m#11Jqv zMkfoPeqtDIM!J@F*RY;1bm_JD!qX&kGrOqfvLSMN-cio8xP<$!JCrIjA$l)D+2Bkm zP_;l~Kq|>5iK04W?hy*MD~ZF7yHl>h&Zu|TTJ#q|OE66;n*fPopjZrVI*=`KU_?F& zZYLRN4t^o1tCEweExUu%>r}(?hT1#}3mD23?yk^64s788MgHIzJ7uW`VE-ZOfblD8 zJo5wl)`4+6h>e$zm-Zp{#qLytQRZ%F9KfzLuE_H5(9h5oFtSGAu=S2;SQc)lKxpMXGV+ zJ%$6}(4f4C1F%WPZXPdU2y{(L!0MK>F5n$E|64 z0{K^poW?Ocp?zIAK|_t$ht+THVgpC(yf{d_8fKl#LlqDR$XgUNC-etb7qn-36q{?3 zwL=oB&oy2QTSo#G8%fCX`!AD^UulK)ozzWOaCIV}3#ANgR^}@j^}5ff1GeWwoM7NYk=d%4W5EOV)f$)X_w8~)$7#@ke+DR0-NN;OBjusPi%nxi4_Ivn2UO#vV?;T zk6y0+Bwa>c-PmRUdi(wDm)LS zrtgWwg=n8y8)s*ntrRBu;Kj#aJ0LO3Cj&vn+?d2B(vIcj#E)l65EXwl=En`xbuIS-Z+vo;-3_fcIu`-8ns zBD?Sw7@ip*NN6fw8*IKX7I;M^&&H_hDGg9T&kY3>^|sh+)&4*ztOqA(`a^3+3ZDZ$ZGXwyxdKSFqcjiCZt};+6I-yJMd67nc)6G^c(P;T{N#1O z`jM8}eV*>ek1HX9&NoV;;p|_phenXnrAE+v1?0T~PD6?3e^fYBJ+J+O3yC328=@M9 z`Y)c(m&bR8ME$l0hMau+Dd*oFGJN{&F;9QSt5C$|+YcI@{*1Ss4(XociqV^v65JG3 z-*cDePN=9NjVcM9%Gg6a@*CPK?Y2umULY*4GCbIPWPLcBx1(t%D;a66wQHfoSr405A7)b-f7t$)o ze-B6uifc`k23+RSRd7ji`hHJP_Atx1vWH^cATcm)`LVI& zM%>Cs0U!@lp-nWlGN(qvf)+`vYKDmz*yeJ%ELk5%n{O`j_3O0cl(647(u8E=DwRV| z-)-c*vNeYY1@Q_=eq%D7<8vdSH7HXqGr_oh+%MAF!7K*{w@6Ql77{XuNO9E+rfLZ= z)1j~uSCZ57+>%`Sz7StBO!G)~2*e!I3};-L!MmR)A3yy0-H$i}U`XzWnlD#yyzB=j zeqzZEtTg_>9+Yq7GhjBlQDOtdWKfSuW&sHYuC)wJF^Lv1=`uZVBRkRjdSP=lgC!(| zPR5zbY4#&Lset+Iqh5irwC#+3^9`vn%yDo; zAh#4I3;)V=ozQFUt|uqjici#;cdK!)oj1XR8QaMR+7K6f6SOye{Fe5A0MXUXjwr>` z>)w7C3QHy^VHsmLDZ?Kq!j*ve2SK+6nt5F58$)PAqJ*m$%J*_rNI6%bxmf}hcVCae zQFKc=KjcV-BKe)*PDuK>SnklL#6OW|PL5{xY-ESTY2&TQ12p><**%T1Flw5Eo8(5E zKxymgFYRi&Dn?`!<}XpoMK4OW7AF;ic@Y&zn-TgbDsrMB!h$Mge_lm>;-0y$k2>=kiUeghIw(N#mS%2<65FxQ&e6?Y-TFG ztQ3;VDJ?~)()s&=6I0TX?e2O!nh*c+55;*;R-4`I)&6SW_^O$tTC#rSQ(0XP{`T?x zn=kL)-}5;r#vo~-W94Wd7z+u?N?so7kk~&!0cKNlG@1?=YNo$57oM#h`%TYYExggs z@jqZYt<c*D{>U zHP(!^8b1SphL5L;02$=1?17qLj;wKpsuN^7UV>YW1)ZU?fq0K!WVo>q4_K2EX3+pQ zd-=R$o#XOlSQld!WRzeHMWFL6XcoI_ShP-wt7A^RX>+d&cbz z&G>&rwh_!~75BCQeMvqXDqnqc49ezqG@6pOP}~t}yE)GKk*55Y+Ey1peGfMylkelG z-xV$e*6{KG`Vf0z)__L-)Ga7uj6ghYR$V-u0L=W`=>!_2X^1(jNuCSUEz`W^<&O#AM4h{OI_z~7WT0&>Ob$_^3pB0xs*(5-b0mD>Wl79;oyPHO zR!vu%b6dfTx3OBW;?IwZh=pSuQMXWOeaUHzZ|_f}giw#WzFnS3+eE?{W^zMolN~df zgt)P@HByad7lYz&O_Zv(Og_kPjHK&OznlAEU{-wgNysU7rDti8O_f4-k(xHvFfDOs zP2qn`HbYlb`p4+!Jj&{!Az!FTKTPpJgl0qr)g=nODk0M!6&+|e;i)tI8d3u4jr>7Q zOLCuLE~0CqpnF;ULhHiFN`#7k`lkd3cwi!P(CbhZEQGt;3`nnzEFv%j+yezo=01pk zOcl$Sb-L2KsZ>zVK@chJfoh{rM1HiO647(+TIP(dQ+Lidlt}G>>5*hV7ndu9##a21 z>z6?JvrOh6d1ypjY4#>4q60A_KkTD{&yGu!hp`sjcc6s4!}OAfi+G5OHk~waWQ^Br zrw3S#og)Yi3Ww|sFerfeV_l37U%UzR=888T@$&=5aFX*1rey#+;x*h^dtz~|1QC$~!$Uc_3gE~e`DQqU!iDIjF7Hr|{g-Wtin1aifGs})e8rI=5&Qfl|80cvsV zpx+_JnIUy+2$PW2{3e~Ays@6<6i7xc=HM@7McOS!f0@k(+zB@F8a+x#-W30Ufe_0t zw0yeZqI!{tDYxNz!9o-h`;WgxV&mgSH+KuztpEA>%l%(AXe9gvOWfWvBsSI6%Hg|6 zq*q$hf}2tOLKAA3dg+L2K#uzJrbMt*A>c1_Y>GHN!|8B##!c03TU9OwYh1PTkWws5BARLkM@0V0!w%PJ~_P?1_h- z9|&K%wf3PR%9}O)XDgBn_ZVE3|)YWEm&!*KyfW!Th-y^xdA{fb>A0Zf5!} z90^0Bw~GfMrc1qu2B$d+hB54@sGI`s{_@Sg-QWJTxaliY#=aMVn@u4BHLVm~aXNapV|KIhy+pZR?WqQ}^l!I1d^7)VFy#SOBt_WR%9{Hvkx-wpnA@b{l!#Zgch z_8dD4qR0NAMcF>WIrRzk&pXkGwhkZqBL zNnwzQ@Y@SC7&mEf=s63R_sCNg@F#4V`b6v+D@?U^_!_3qVS@VtsX~{q)}k!pj@i$z zO^BzGhP9cSqy>&vOBOXu4~x?!6L|ab2B;s%9*emmwPO0(X>9mgWG_G(W|q0JRpcG1Mr*jz|OVC3MM$x4<-7}1i=p1~4#n~oh z&>qHbM@d`yUpsbe+z%tRmd#`2jo|x*kXJaL5^P2m_HKH0=+P<~gDg8e$cps`riGgo~sq?y3;~SDFZt?3^xJumbny-e!fN+TzwL9 z7@1EFEzhD(*E8f&-_BvIWDL~hyDv9i|MDk&fJ8Zz z-1IFo9zzSfq&PAuQ4i8A6&B=I3Ee!>px;ojd8!SB(ZIG&h}s|%fj;n~34^Th#XAH_ zI7@KKe+otB(dVB&e)=-_^{^6vC5lxtuFHyq!&GvlgP5qjuzI6IUXJVGZK3==VJ635ID1T*W83 ziLvYfhvRZ;jsMMs^7g0M(fEJ zv)8~!|F5%Tk_7%^cEA3iHfu@jiqk$>JHyS1`%84fM6@=@-(p9D89ZTzrX^r+<=7t? zGo%Tdej!wfa)ghnbX|xWd>DnZozU6uvoDA;b-aLT!r2qFy`vL}TnBWgWjR)Oq#B~1 zhi|~#oeUe86oHej@DnQ%NI#QY;yqSiv|o;;q?X=#ZDz?+N6B|n>i0&`0khdiUgX26 zVT1i!_*HM@OW)~XU(@F7Twl*OF4WNE(ugj1*QLFs0cK;1hZA|g;4m(As4`njp?*f# zBGRu+-^Tg>=6FU19zFiu;c@i?f9Ix(4fGNq2i6gC3k12sN@Mm2xad7C&Qj2du;dPr z?!Z8$Z&p}61>uD0jYjar&E|V?sJPIgNbHieqa!j^poB~*p991MPI{qJb59Q@Zfw7N z{Hv+8llLD{=>2-T(0Iw07IPu)K!7cdR}ld(mE|T~>XD*(CSLXXOA}19)$kDcj5o)X z9!Clhjey5w^bx^V0@^3F=0nG@D1;^p2JONMqT2R$tvtJWVaF{zfHt?d^50?-XPuD7 zg4g!KYh#$Lp&7-u78A=)Gdss>auU_&EEy+NgpcH@SHm?LY%X6sIgYFpu!jvo$LFIlo)|pl1j*C>nL@2RR|S&pq*##0n2Z)1IOCl0#c*r)d z_b=xQU`@1s!<*6lEh}KtI-gRHc;+(s_n?VL#v1k3c6X3wa=>zVUrBC8C+Fo#?mpPf__|y!rFR{p-{E4&@f>!zlUa8euyPe0pDN>+rS|T zFEcOB3QH|Dl?=^hUGQS6ZJ~ub_4bxDaaS|VrMJxoS6pkhMgbr-%rD20?BG|w*Oz~dhekFWJAc-^@obd&I1^J`Rqn+$V^KLi0W_zqx=F;ejm z8;L%LTrWg$=gQ$)Ktl38EMDrOgTu_O0fRGd)Z$jb$a15PLu8l%EnZ)%w;3QO&1eS* zE(jQaGRrVSeNt4grix7T1Hj|P6!~hnXJMSsSngy7Zf|173<-^eH(9OBLg;~((w~u5 zKlDnw@S>fF6ujB|5$00-!Pz2|&G6e5z}D*}Y)LTu!aUS4MDe_Z$&8enRKOaWtl=%# ztRflO6`3Beo~9R=wB@E1zi?zkY$l@3P|9SmDtc6_q73OFqTCJk=v)?|` zKeK17(i#hZgEbk>t4d}KDC4FtbNE7n{WeyuI97))dsod4;py zpzj3JgCquo2s<{ZAYJA&=&N;gT zycb?7U8n+HYF)V0lkZl`9nygJC~1y=kKF;;+}UkguITF_MLRZ31Bz z$xO*&EJh45#_nTLi=w9y7*n8q9YjMEGwxvaDAb{rjL7h2?hhD{uqhPuWBclKsjt=u z*MN+mQPcEYm1nJ_$6?7}>;lV#!N+>}x~NWE+||>uN&IZf)b+-SX6l0*!>{Gw93a%GeyrAonqXtzNh zg|>$x3cEljJ7tWv&Q+=x;ZDLC z%(r}gAsb+etQv`t1jq(&KMwvK%oDnF^tc{;`O9BF-T(NzRM5GU9<13l?PPoh9|zIl zcm5LuInY_nvs;NA2Yz&W1NXr6$Xfx)qeU|09JKU# zd3oy1>@bT02a9zuv+)$^Vl~OOUE;4Xz?6N?F(o611B{3L??3c!;E#cpzi9iV21pDR>R0>htmX)vaJ90oB#FklM4HDZy+CVH76+g z2fBl(gx0LqLVd1Q>7_6|cBgr0h`o^B24G=K9zJU^-5s<41J-SRDw}=nV_naZbsEd1tMF+hn!LK@ni| z#Rd3$9xQJQFHtV!fBJzIRQH+(J|6t{c8GDt{7#t_Wqag3bD^(pu~NvVVFr4AQ)ofI z-*WZR>F+o(dK2K`lQ7((vMr5*dAw9xvRNV5LJV;aL-?y-56FjA*qTQWrh*k3yS_#^ z>#a&&yG5&NfK5^@4%E4;ydm->^seI>DA;wdFG95Icpa;*=A&gbSP`x9WIzif4y5P) zMfinh&{*_E0Y^Hu7C;0EvLhl|OFS$ zCh!U3WUg1s*D9mWztbI!^QxfG+ZWf29kc-FGy4vAv^CqSPYjUOfOqJRM8}dg-oFBA zFnQgaF_61Y?|xi-Xdd1|^%H6}(+yf|+2&JRQBJSbBYPmHw`YKTnWg&lTHFHUy9;Im z_3xlA*$2ktLgd6YjQ%xy6n`Ou6fHSrft_ZdI$+J$@+KRKL7Ob>tEl2 zxkf5U7xbuy{yp8RpK2dzd|IiD&g*PP_|dMzF!5tOJy!6<#pMzXcEeRuio!Uj!7?Ul ztbkT6Zh|8$5hC{~;iaYM^(fMqM=KZ^H&yb5oehoADwXmn)-fXZ)xEwrz*P+yOS6J{ z2g$OmPvbm*kK_!y0}4;kZiCbb2_)euGJh^aOXw{J!sJ^Juq$EJfr<3O4e`A!MPb>p z=rQX^*$GUbC|iQ?^5vTDIXhWhp|S_67jKvizk$8JW))oR1k&CZUL$na;=%tbT`O1} z@mqF-78Z_xGuUduEvAa3+05?HT4axPRww{dHdz_GcTjpCt*vKacGVvMSy+eA!9?{+ zuyYxdmiV)SJ~8RP#!=!U2h|soBV=O1I`HPJr71!^#bEkiF#fwgn|UJcxpjg+Slv8^ z4jb)0z~T$0b*c=5a#^Hd-oHmz7Hu~;o_ax;&uvKmwk%fidh`MzdWYf!tz#j+@9#3>mg)4!`iMhW&f zCq(R@k{F#hDYAYJ5PwWI4(kg1_iQC8133NGex0|#Kd70XgfsvgY%J+2_K9b&}!l;1T7&PAuUo;=gK;UMz{i(~DihQo|?v=nb`Z zowq`lsX#t^JQ?*C4mZGVfPsEjQq_ZtWcmSKgVp|T%yh2p+mDpDs^dOWZuPF!~cBO%^o{I#hD?C2a8 zNL2FDE5#<`BA)?IeD+QfaV2;m?&S&uMRb!P9g#v|vncsD8c#NZ_J*ynSKk`($t^M@ zm_D|6Z3_F040Oq!`EL4*C{>3CAl}<#=hbEkTMim|qjN4Ralk{!WQNf=8g7ClAaEgB zVEHSPgivvFmh#oBFg=54n%tz#^lAtO!leKBu87cX!TJqk5R`u?Rj7`5*gwEU8s<6N zO;M%E%_1f+%$_4jf?h>r@eOQK+JP=rMqv?a#H530T&QxalYUxC9W%__fv6NaU8hCg zpl~5WT@rmNf~_;G-BU-Ulp+)s$m}CYBlOe74v`Pos_jcO<+N^-NYK#SooS{ZzcMU4 z!R-A^f`}*&6J)(%7O^!!G*%=ns%ImjQ5k9e=oY3Q5NTvOY#QmPZsM^QPCPV7Pte!c zDX206ilbmVo-*#bs}=+7d-H1AeV9t!Gm)&NzCx+Qq+^0!0eqVyG5R1$?gDK`%%&ER zSaBtcffoUBFB3#GZ&Mc)nhiU5p@hJ!1r39)641E5A=}$abmpbGu6Dzgp?biQFqfp})xzj-PO z@!2(j69dPUW1?hK9DEoC6%(r!Lqu%4fF2A-fLPf##+2NxGNqPH#-us>&KLLFqnd-b zqZ$Eu67>vEPE(kbazURAibPN)B_hcPxr9sWD8*9m_RnplO(3|i=D(Hc#B(!^wwk1Z zINbVDD@cb^uKSX&Sn|b&dqSbhB1t4f=(RIU=`L6oe4tRJH0e1L_VbAlup2B!TDGOX6OG(nhHfIO?7ySBn!-77JKlJ_N;Caw(`NeCRdm={;t zOlGqp<18D3vtqqNsSiBEwn@)1joOjIFZ@tR?#ruEY+?h!hFjk(Bve3lx4v0NPsYb* zA%Fo#I?=~wR1=zXgeEMjks58uQ=?Ve(#faPMdHrD*u|a*+ z0QCb)lk=b906?Ngej-eusM9GNE^c6IbW`EZWVdz2+AeG_i1N5bl_gNT2(+b>DM*$X zv1YK_!d@rFBvh3dixxaU9w|&5UJ3lKtleDP7GjWn<~(mW)9?#y_6W`^!&5Xigx*|; zwjtcs;EZLSjqmQNZ$FJ=bLj>BEUrHpl3fc*G%qngQVUObzN$oY59@a2Tw8^@_zY@HneldBbT0)uY9VR!VQ3Yo1pcdqtZ(UYB2$b{ zVM}BfHS?J}cl38}xk&?lp`Y6EGHC&(D$E@kIGyZLBSFikGeuTa+0A<#nB{zONTBE*wNUxhS2@mkA5~ z1H_p(3v#c+MT|3C6GVXbd^?5Ju$OaoV0GGww|@+sf~ss}`pYP5C1y-&0Rp4|-uNOO zifkH`=;Cd3GS)z%K{OcMBWQTO;}bz!;J-a&t?Pl}H|bEy<;agUR*f0_3lW3F5Nm48tUwwpp$JkLL&6ymSDG1Gm}5%F z0E{HZ1fYnbvHbrwgIjgW4dv{1Tw8Ek<%8!w$bl`T9bk(qSH+BPpzCO zn|fJHz|b+7DB?2jgewYR!>|Ez%%E+t`NFVxV&+x_{7~Q%<1>0jlyuf9+L>EsTS}{M zaGOdvOml`x()c8xl^P%(n|MAde8bwFu(v3xLbe}JVOH&%fpQE2vbecrcC?ra$VPb+ zt3bYON_3Zcc3?jK*#Vs6_zLD!(oD=q-}c2SjTUZ>w%qR6VGmlgV;?c{GmyO7RMOR- zfmiMw;0vHS%e_)n1F^~3t9m_v0ZM0fUglX8T9-CC!8APF7rX8H)BWck-n_rp$AnlN zAtp}ys-RcTfQ zSW|ALEB{S#oFY}P$W(|jv*%TnS#9_hL=0i)zVLCS`Go`GVxC+N7rFn3#2gr$Qs-#< zJCv`YUxHCCu*Di1^m-?9#xt#hxk6>&R2EiQ$6+(_4Z_%m=NQ_%-rh@c6U>$^`;?Ng zzsh3DcZnzBS|Mh}W>IL$o+%!Gor%M@yx{w?Qxu1fyCTugUY@br$^P|uBR z3)X4X1VS2^M@q40PNhrDy`a|pRWXf{M-6C+9nrDY1gp5x*6+vf`+DUz4KKC})>0oS}eif82alT2%(Sg*rAKzY7J1W`*5 z1Ej&J5--ZN&+c}R{Th_+8Ia#%gxGh?FSNjxNi?6Kpcw>V6k1_wJ(EokArHJriW6#T zPhLZf*%D@1r^XL^03yZ6ee6vhwfmS^6D&DZuw=-H9zkh0HBl0*D^)oDAR7e!#(twl z#w%8M_+Wcw){kCGV}P_K_F;PDw=^{L`YL;QWlhfBXgsS|<`0nGm=J~@vot}cwhb_E zo12TOiU?k7QpoPzYFz?O2^t;=*o%P)mfvDXSw$G@>4EufL`|344~_8oRf*kZq?YJK zYKq{N2ozzWh!~>Ww|s!Pdn*N=w6cNcnS$0(T^vOr4_w2z?%VVBX z(lelR*}6*?hrM+BQ!-zo@+?u>eG}EKOkm+RXb9{{6g#9q|J-f3`dibc{KfJMDn^jf zAgzLyWoS^U-980NedTEx`9{yo;foAsG^-a1w?eUdW+XOU`nv6|P*|Q8{n-X)X0$Ml z{t7OU^@^PdR%{PG0yS(0!j018Zkj0jgRynT&Ez#-OmgR@x28rM8PdOOjNeZCO zw>2th>=t3VM7(wPmcCT;G6v+6^b21Hbecdm5VAN|8^kB7YT3zepPd{(J$-s|dVVq- zojg4~xqmVqoy;S<*aJ%2m^E2*5=_%{UGpI}BxSTSAO%j+_c=zDYdj8?V(hK0vx_*f zq>XC89TDduo96-1nL|Y93N@It?gP8;$D;!->D-|rd3;Iq6w{k6`}5tWHy=L#`To=AK|pWey<5(1oLDZ58;wb)`+<>|%Z(MGtmSN5HV0{P zFE;X-&t6^(o% z_cV9h>5I!7Sl}J<^YaWlM#(;KiAT;=VZWIVijz>>_NBc=f0xB`;uUq_F})=h)1xZvAHEEBDJ(X#c#D!vDx#GGYmnwSXVY*;O>iCY?f%2vnJ&?^u zK%v9ia)LiBE+I(#4tD514TR-eM8mO$Fi2Tb1u*Elpv zk0_2!vKP3Bnv!~0>tum+b*+yTJ~?KNK4}PoLJ%~{(2%HM-~-ttkILACwoO zAVN-4a7UH8Ywa8jsqJ8Oc)Wg_U|Mt&jcANQpwss%wj_I0x)P_btdC_yW63q*z8+kkia?~&Zi+6MD6fEWVXQX#pIiM|eE;*n>Vu1g)DMymjc{;yVXg{{Oz0v7Z9)jNh zwMQYl7a+kP6}OXJklX$K&6h8q-u>w-y4UQFj{f@Qhkv_&`n2o3 zjm)^p+mq~W16z~QMwcA}vzKU^MdCv2HghFRVh7R-45DS@P}v8Swl$!7S5#DSn&)Bl&UOqsT}@>fQ6i)T&EPmL!e|M9=4}f7pyxbU37o3Pa}Kg%Fugi(N#IZDrrcSAbfC81W7a6~dRjZ-C5a`FK8TN?kPNi}vx7k>$2-$0kk*VX zj>=DB9xk&rxSoRPX$6gS(ZtDAvhA6W81Xf6rB%?68`FifDR0@-3(_x5qGT8s1Rg8& z0!;n0{bMA{6)I19j4S=RJVZ$*=+OdQBB;*?+Ho+*KxZY|Bp=IuZd$e?A*#HO;(kJ@ z=u3$GSQnW`rduKJO65!p8o(-w4#3DDDpfPJ<<=noi}D?$>&2!k?xzch!sN&>-!A z>Z0=Cbp)ppqM@cgZmB?SpPKQ?l<=)3BlA78^|AN@egJ}nLocK=oQoPRaiuRv(h&;c zm!i_yBa`F9Mm2OnzO-8%8+QPCLPAazI3m{I_ceD)4N=Upr9CxF!!>IQU1{Pk=I&wv zQtBI(re|M1#wMqD$-z++w~HLeGKiVakNbLI^#90;d<4sE*Yw|&2dReS`97p0C76bb z!N4eiuyy36UF@t#ke`0HgZGco&&%x5#Ae`9e9V&NMg1X=l*s}u(>B%gY4@41JW&Sg zsU<@>K{Imb>4?UVk+BA8baINR7G8Cg@yhaPS~@J03s8P_#2lV>L`Tw!5u+BIY8RYo zq*yWFNSJw(d~^b~zC&B#16NJi9^?Vz1Wn^NREputvN&3uvOy&+Cvxk z2&Lx0W08zP>*DodH%DUW%<&tkZYYFxvq4M28?5fcL+DWtzlmn=qyuT5rgs3QMbMr{ zaTPz(UX|g}+Rz~Y?a zgqI^BCb$3sq)mUB#m)qi^1imb76?=?qI=7c!_s9~;n=E4osNyiMZ`9|ks*I;i;dsN zUg^FPvuj#@Tq!YXlYz9v=VDPzH3y;g6cq9!Xl`5@E%?Ry;&Or1>ev1C@uFy+;)d~~ zs7U7N?*{^aOvQ=-pe&#b@}F^7u-7Y0ZMT^&=5y42*bhz=%E`bD2?iArB%4YQ?J@6c z!R4gJ+p)zLCXRZ&sX3~@mU0TW8qQP=RS9=Cac37d7q1BSlH#SqwHhkrz`cryI;~n> za)~oYlZDw7&fB}0KZ6cwWP77xG7A3(EZy<*<@$dwk@H9^h-Z5Ie!oGfHBmDz#|Z=F z(;sPVu>1Z!O1+@bjaG~Dp1s^$|+4cbRgOEAePbg&$|AIsV zYTHF|+t#t@aWe|ib#>WCxls5JEm@7k%jCYj-L6xykAfW)K)plM%`5?4s@Ec3z=}=} z5%&hhN@BkVJ{=?>l?Dr^g2zrs+8^-7r8I-Ce`jwt) zhlDm+6glLbP@6$6Ygqo!@TC`$o(@Jzx8;mfq_pHBtwo@Q>FK&v7aa+R1I#$nlC{16piX54^2|2NJ}UVF`n|UD0xtE;(Bx;G#UF6n3CEJm15ZgQB=T zKgy=)F$(!A7hnfMz$k&te5qmp*)K#*%ubTB0v?KC_QZi|h~d81wrQnLtwDliJQ23d z(Ii=@;kY-lwT{B;Ue!NcYKhV(d$8rd^35qelk@Q1Fy}|%>2OyyjXMkosXkQ+Y2HWU zP*ooO3b>}EH29GY`RS7Q0Y9FLANniQk_dA@G)_yIoIhye@)8z}|HIt7Kev?}X`=d5 zusyL3YNp#J0E(2>Yfpe6K%xZ_5CBT*`30d?(`{X=rM`N2dUn0@x8LvkGP7RifNF;$ z_D+XQp-$F$R8>}1z7rQsX-SFD%E3+Qv}`3nkI({nQl-kIl065VB?H?r>tVupSu0}% z$ItTWe5@e(t;S9FVoZQ?XBVSOX11$1v{y-%2Mb|5USzOIpKb&W^srA`6TJg=wI$p)v8Z1>DK`NQ3x6s_C=T-^Q1cD*SL zm{y=Vd-U1_)5C3Az~{}t@&gOuw{EPnQ(otz%MMbZioEUMsB7X0SmjZa=Y#GA^K-iv z%Pv)nni_a<;tah|u^mljdNHLlbOJawpcDB1KR(^Pe*gL1rx-`06=-{DL|hMMCLJ8{ zmohwr5Cv8Qu2)moXOMa9QG0j=Lo_B&DW{6I7Ujr2y2(lkw z@g^wj7tz>621oQWB03B*{EyaQF`?vB{44t*s^K%EM zQk6=qxU8+tBh9=RSJM&BB0L7dF+EZ#mql7UBs3&L8mXOXklrkk;g)NA2qoyusLJ?d zrWKdd0kWdJ89+s-+Ldj)i;own++}F6FHI`q`&Ta?zBk@fI1VS0;JB=^MMiU_Xlf1)VTQ6V9foRmZB^H93apedG_Vp zP^n;Wy|+{+u8$A&KLOn*uSG2hx-lb)#K5Ah#Wc2&`nlu%JNw7a@8CLndX(t2pS^qa z{oA|k+q=7;SMO%Oy!ix5mDwl!dbwO*7cRqo#n3FL#^Tp-SH^3(F1rG(cXEQj<>Q~a znjWez0{PrPOs(1)XDm}~KR*d(;Sp(Q(v};aT8O13BwmG86K;-@eb5Og-=AUXuFv(1 z&f4F~WaR0c-J%2EpCKK95?aPsZHhBkPXr%ORqcwir=a@%9ZV1Aa#XR0B477GK7a(8 z#^^#8zDRl{CC8&)Nk8y~7O`7U%G1({Wrnc=>RwewR85hot>-~X?j;i~;ilm3jS?}S zR1ltwZ+fqEe|9m(PWCmf0S z?ZrgMl^{re^w~V-f>Rmom*u0hnpbh;#w;IiA6a9gKRNM6j!W6U;Zt2#qM3Lopgh7%F3vMz(7F{ zO02&__fe=WX)yc!Gs+zOhjR;Z1TzLX@~TA)v++5Z-D3(I=jOPrV+pcL)8J^#ox^iM zp3o>D0YXu4oCc@~3>1NvBTytHExMXz%=4T{aDK?xhZ@po^Ls#c0vLu{S$n3OKR9Bf)>H+y#)$WnSX!!K%-?Xb`zH8C~Rjxza>3y9XrMED}qHvT; zrf1}4c9$?2_2U&E=JukZ18%ySY_AU7(}ILh*&i;Q4Z$98xk|8qXp!b>dNsk$St02= zl_rBxkt6~!HmSm;5R$YaaM($9#Lz}FBS|`swWe~gE=$^4?!PBz)s`5!Vos?(h2fba z(?WOSuE2KirR1PA(QXm(7mnDsR8L}1?fr_(MoTbuWHCTg+pq6 zG^m^EVHA&F4k^oy9@``!c>ho$Bt8xrgTF5kQo8BBL`cwZ?yg|MhgmR(PIOPo!<{ti zlV8o?2qc1UpD78y9~|Ka3h@;I z3O6hPw1c&s8d zLx;<&VVXw0+IWlp43G(??n$6R$#gJR@UNwp59_C6)v%~Kko%QcEl49!-WhtCZC>JW zRJRVHH&9zoG#_Uy{)N@xUT;=A6aZBC_hiWufERy9A#dcH&bK_kSsOyMCzj+DP^S%4 z&H>RjVG5J!^yE->6M>4^G=giEd>om^eIo`|Zp6^6aG=r9C~Xm3wdoACqo2tXh69eN zy#e6~rte5ZSZ=UnXhUF@(ve_{^*{_guj45??W#goSO#o0Avp-6$gmyfeoa^8iL9Q2 z`I%(t2F!~DAw6b(CnYX(Cv<2=e+Oz{B!V)pIDM&R7nck_(KXd$P!LLU0g4!P@Ra;f zSaA;52Ry?zC+MCzdkeG2$)GHiweEJ8t8|zQubaIKV3Br|Ag3txcVSeClzY8z@#Ei->$dE~xhC zDSF{zant$1E|^8Jxa~z@KDlw}#V?nk(_!Egioq%p=L+_pRE?MW$aacvu%vOR1f>Mj zoMbPhVd=3n?D|z9(SbWXCK=a=ZpabQ>TKD{cUE6$TY2QcpV88dRNsXcjT8^{+1deX z6fpj5a9-BudwI!;DGX-jvg^b&we@OSa5uoY3~j8LPRgaSNfCsF?#eQo*+)E~-BOs`3K#+ZU4+EGsp2ue68 z5kQU%8vS-OIzBl$JwACddUQMcoxz)_T8I0(;0Zas7aUR|&d0-i(m#yAr?sO_ z%vrsL-`w9Jc9bo9-?W5ckLVt>TB_aFUC^h246l0&>WX`*xO-i+w2H#la1?3@e*<)E z2HOLn{~2PGuh%@|q3B~k80`nmbsL$74n}BaYU=&MKaa&}M^nQxN<^%SX?UWg$C27d zO#t>tzAZ|DOR`LMo4s`lp-y1wpsRn{I0bLhhLLgVvMv`Gs7T`>Onf*x+Y z=mEkcau9P%B|`_O2ixJIYE(rWgMX7deDwFR+pXLi4&}xCyDMzM%Om{%YiT^Mw@<%@ zpN1-Nno8g^axw5|8~pXv+uz$I{2Kg$lIHSaGkbYOhYr*OOCA6D;cxgrgw6hD@SjKV zSTz489}qqJ_k;g4Q0+w=p4g}er^j>f+^-Kk>*3(P{Q(|PDnRK)8%a+r{M5+6lixn6 z|C@~;pCA;~jsOVU=P1`|CzOopiE3e%VQ@3-rLxD`TAgCM7Fuk>;*sbprqn~|%w9U3 zBAHfOw*70UxNdHc;2py~>a&{u<~M|-US>@N?bclgEHJa`A$XWq55dFCdI%14tG}W1 zZFuy5*>A(J{>y&b$$y1!3qG_a6;;BVL_p+`EY**5he!cc@QTiA6@uB7GH8K(pppgE z2}Tq{M9BhNr=N&Wv9W^ZbNi9;e8@wEoEwzft11Kea?VR(L=w^KPG>9EoDNWLhyHGQ zO@9H#E#36P5WRNM{U?MP=>3+oc>k z7dwc#@KAgI!<_~Og@I-zwEQuLWB;$ok0iO<21q`PCKeoYTZF-IqTDWgYD}5zFWc{+ z-c11M1i`1D7wN`^r@Q;|jR9OG9GlxD^~$9I(g&I-l}p#V3cy@S$+~5Q7g&Vy0?x{O zn|iT{BlBMe#Y1(?RA_V5HR2UDs-$zWU2%7Uh+m=pZSjk(d%*A`182Ho|PRCk!T)~q(Tqb za0&5mKmYLR^`|%QneDajvaNvCgfI-WRrinYrJD(+ftlJ74x@G8cfPD%W#*{i@yTvA zJeGH`Q#(}rYKk@8Q>clc?2$Iwzk}o1$TcGTX%{rIP^n$qB2?56m=>iuD`;f4!kU?# z(1zQtXRx@)G=H_Yyc!%;WS0s)s?kzzigCqrv@p$qmJ~_?Bsv_m=WY#CcdhdlMk3_) zcGXj~G&aI_EcU}ngc=(y%*8oobPOIbsleDF$xwatQs}_VneTjZ^Yn;+B(T^I(Af-x zNaCAdE|1jt#ND5i#EjT3`-s^WOf6MUQGXYGh2iQH73F6g%U%u3Gi5XdMkGyzqTo5H zVQSS?>eWlNbE|r*VS2XfqfyLDho|k4ffUm9HQP6q%D1xqP|Xzya@ze=!}P+e{KDtc z?KKV}RAWr4vj!xNR7Jr;g;1*kj0GNN4TIifgv2yijS~vAp?lqSVT;u;=#+GH$(C#_J(qhh zQiqj}mF0EKL$PIy$%DSK*imGOX)dErBK))9BauyZh}+euXmffpWc7Ed-3Wocb|VYU;7Mv^{E0w6+=e^Il1FNbpO^wlYp9D6i}p=K?q zhAk-_Z;ODeXr_nG4bMk@=ZLgdgUh}`z6U*VLj%k^Fd2+{c!&g3_q?0v(C40S>CHub zLgr&Aa#W;OQ)>?x)n;62?gUXaMs&GMV9EIoLi|n(sF{3+tVsE%?Z_0Jh);I6!s#6G zRt&Cy5_iXhO4kU2fjrz^EKEvXe0iX~se>fSF=Li&Pr3cX-F3;>+Tp}JLs!fB^t&W* zyY$ro`@Z2+D2c9fdSxD6%dXo4z(nXIvW&CVVUTgW1CvLalIPs4rfwyZILLfDx7$nk zxZx*f?Oz5wL%C{n)3B6~<$9_NGe^0d0T_YMYOkzff_mzk`j~$L5yQXo7Zj@R@VHCPYgY4aFT2lW3~&)J11Ir2Q_o{=D0nQRZu%d3)5 zOB^q3mD~ULxO?;ZFUW_uT%7N>PiHTLBJh;P{1b(u-Uo7+&2VYEyB?3`!(V<8ab?sc zGA|X(1w4wN#TdG6oz_qeOOA=xE7K@ML*HB6YJ5rfS@G5aM}4fejI!7TlRIJ}m64nY z;D})@JzC^$4QjKgc=Fwxnu<@D}VL&@!wtxQVGnxaWq?tK2JCA$L8sqheNENgt_DrrpcUGhQk7 zBuA8C8gVHBw4}3!sk_cePAs!+H&3r&hO>6;Qt~lp2^|xtAH3MopR#r}TZ3dSCd;FI z1bT0~71b5!Z}D|;L{@O-pjQva6=yMJgvJ~Ih5Q7oZSQ)9Un-GoV8rZEASBdctU~|hTf3dqX+>4U;X)_R_>EimZ7B4YuAkhTL1;vV@-~vXEr>v!IDJ)J8(rh%Qm2lkEH&f$+Zg z^g%-I!1)3}`YzB8A27c;PDv=xp*Dg_f$Ae+CFIUSAVUzJ&DK|-oN0G`FxFt`awu|z zlyX@Im~p`D2rx(KnbFexlguKr4doq?m|#>^d>lPLvG23~?riD}-AjI2HXz%+=ifmM zno=`}$^$2#^xK9Sh#z1~X}p@AAit@rVoWinaT%CZumQFlo{&Prtif)1CW z2FzD2F;Fc)$I-~lK&4L6`sR;JlyL`>K3NVqZ)$7q!n?uF^I2S0vo~5CfjEx331TTui%TUp?ai` z$-=91OXfwz2}DuYD%5q5kK8^ma0Yk=D{gTV7q@g^QYy)eaK^Mg5OkPH(0+62klvV< zs#`MIoJz_nkRw4ofLc^NM}mC+O~JkD#!lhaknZU1H3B2xiVQDlwo#okD`~{f1IU?1khaCP$Um%thr8|+nn~v2ub)ie_U_O4@$iqW(*f| zPE5`>&-~1#-E495EfgTID!3Pp6~*aXwV@QAYdIrvB$9EhQ)s!dsTnuPLkHOsHi$G> zUF!;FlLkHza_Z%}#hJT6SE5|Kdi$sKs~_)}!~VmopL8w=(U5(kfpNvac94Nm8jIs! z!U+>5Y+KEPbc#z|198XYOABvb+{{;d_=n?o2P%10trhUo! zO*kkJs#KoqM2N_;GDOL0VKNuUJ_j*5Ot)y4-w??*+mE?XbU|_V)+9yH?N8QQlSav7_N8FTe}}6`oM;f zu8eGxaBCO|rk7|U+_lm(nMO-=#D+=F7lsIt6zjKOdYnlag)D9xQ*4omKU4?8F7WLR z=V{1IApa9&+DCe_`QoyWn?iMXv-%cg>>*a#cwDgXw~UfhZMt}&QX?$R1Ef)sPr{x+ zqG;Ih9lu6A5H$o3PI0y~T0VSFw=O#Y96oElBpo9G&U3n^$lgjio@DU=_hove;J#`V zvK#f0k&PTBHnE}xv6I7qfGS`bOj%Y5K~3a9i*-U&NIilYrq9+{>&+6G^)^fK5YZ4+gDud=s%|sxpNg-|ODs?rm~s@5Vyh0UZ@~0zAh&JhFKM$? z#p`Q$*Mjk9VK3y=JUVLYf2k)+esxQK@sQ))W& z_+W{3+vSYrIumpUnSa(nO6H^L;KM}x1&kQii)}s?J)az|>HAsvao zdfqe>RKqksMiuEd&xwx23N&(%ht9<%5})Wcjuz^Zy|kPF3u@n!ua2uydbeYO`PYzO z!3KuOl3}kaw--R&Qf;(YuS8-a&M30tjDY*dYo|}Cx9{UY^(5;d^(*9kR#;_z6Y5?O zABh|$t_22zEe*Zn38qb?#E2}JpTJn?#nIBMbj7SVh5gHDBFoLwa#`>%nd&pqTPvlv&}#jx zNZv^=5e=AbFv|*D75#@uAF7L`3;J+!iewYX^Mj=>nv7BhD`>=mNG9vx5vcp^jOvQ` zm7GvgAFD^_?(5#arx%o4$Wp>ITRiN5FjK>y6v%ITy<^IYaQ+hfAPDw$iIK7Ywe5}XN^M?(sl!%b~ z9JFk74a*a6%!f;nWCJCk+6l<9-?Iz#g>4XEI2 zOyhIr7OoJjt0a?G^h-8VI!D>UQEouJWIA!!(QgC#m(307Y!S5Wc=a%|5l6| z1e{NUPe1+q;qFH;ww&m1{zxB_l)UCQe;E8{eRBfARH>CIeNswby6yMHgYg!79fICG zbnP=yN@NJ*pF_hjZ%JI?5_NSB=QG68nUPd2yQlGpBHmtu;Ot&ri)rxRA`8jc1fdeC zx)bIQ5qVM8356GGHxxOPx`E3M`#S4wux0_vOF~|V0uBEKhf;_N;N4^_J)a@Q)7iCP z>y6WimOi^9_~V^8|DfbzHgY?xL;kn9_iK5Tsyoyt6ac1sfpeYaVMx>E#fu%74g6Jt zPDn!o{+7MYJm5<=LW-&n>;|YQ zHKqs}-KeF;pPHV6N*Gswg94F5TvnbHu|P6FKCY;41JZl;`xj760)J>oGLgY`dM{yi zoUc*XbK_$zH*}#Tv581Pe`?@4#s(r^87&GdHy_J{=I(OIdxYkQ{&aiPe!quD;r`z# zFYZ6>|Lj=grfGTQKuN(I1+M<=NOFU`_oM>tbkIQ#Ulf)JMU@+H3DIz@ytV1c`M>!@ zWK27xR_g+N|GNRx0#l$Nmr9AV!mT3(Gxj|@NxYDX8TL-_uv$P9P{uXcuOM22s0fIB zLel9oa1Xx?g|NXRv-F9it<(}+hoMKPy9G8{J{Q&Uaw`2~;V3}f&Cx>?40JU)deEOX z78i4YpU}P(cNc5af!Vp_N=Mg*N-L!!6-qvEC`xt;^&-yL;(|U|Q&|}EJQ%#ZqJE5v zPzEMQ6_h_P9$?h+-|&|;i*yMqkz*aIJbn4H)_|m7etTmnon|PRCRaw7I^ECTynFNU&(fc0V^o)c3`#}aj|(jb^avb{QVeX*L1(M!tYP{_ zt-bW9LlX?_cb-949eBt^v;;Tm2A0$W?Dk!r)GJBfwnupkev7xV7-Z?h&0Si;^mQiw ztS=`}V&A}6gbWDb1&@nVZR={|Do=NK`!)#w(9t|y+$4VyR}6K)dYvc*hO^u3OwVG! zHCRifL=WM#p^Gg^aixMiknk)g`Q&Vx+=qkok)wATXugu`GV1`|7a`xLKB zo~Si`+qWd3ZU}Lg#h*=Vjz|}?#Oa<$Sf9M3e9R3nKQOJKi_p2PH8pMs6l%6wyRn=8 zsw+4+VM)xF3sePeG1SAll82fmYA*^Cr6%#5XT|x`YnxkT!PR$pIFUzJMoaIvtu*2Z zN>@DVQ8rPn&= zt0awRy+u6k)HjT|T^N0vALQ7$nhn&pU2MmJJ}6oVH6+I)0LCSM{lf4u|Behf*SdXH z(ays+DpV+UgtNb&(|?-& z&%>-*vLgl{!GxHaTi45ZymhqFvMP<`YzvgA_a~`AhNW#0B}ZIwN6|7f;jPS9Li7Y_ zv!>Hq1}?DB((z0B!mq!1e0%lO2JdbI5z)lwL$D$TS577v)w~u8oX$=6v?{wRILH#s zlsESGgjQaaKEBiw${n1(F0f$oXB(I(nVS;YF>H>_FX2S1jmXI=1ZUGyz^V>Kl$Z;EjX1z4+u8sJ8TW}bJw0$Qco;2SPJM@p*uHvp zdNFgGs+ITwmfFI%yo@B{rF14%cT_ zPvc+sYja(QrgI7ZG|FGZh?5Ex|dm zd{+3;K$EI5Bqt%37!uRTTaHlIkT^GCff+(IYy`x$B~G6p(}it+1ZTPPs}*vYGT>ng z>BZanh~W5G>eRN2ZslcaNUoJ@!tut#fNEG?B-8UnRl{hdp|W_WH1PMCw9L^j$6#fp zf({uv-sVgB(Qe?v-8C^6@?@aC)qEfy@2l-#oOA}Mr>z4RLwDTKI?vYmfUEe#T(CHE=SNMw)zX-bI-csB`U0q_*Res{%pnz`S!XJ!i5$!Y1b_TG1%*~J zLG%V5D>_9G2TW~5m|ZeI#sFbEuX*rz4cqC)V$g#XPa!s@8>x~Vgz+0w1ifk1(n4s1 zxpRpt6QdZVKxHX1o=iNdgY zJ0Ao&53&#~TR^h&$@J+qY8dA@7E@RhZH?a;?r#f*yW@z%p>;cyn+aCiP##FCRmlzW?c`&j{s0!l&uaZ$Aw{GJ63yy0BcMezj-= z$!84F@Wi%lq@OcYN_Rei?tO($dD)kn3OPSJJy*!*ckTzubRnV@mV-&@mx^}E$z&o> zVYLZgpX!p{$Fsv+{#kg3^HMa`Bhhvp8m`32zS)UPAL^&YNxH_)f~qTvg7nI$_JfR~(+3MwvtHsDJ4Z$9$?MnlB|c3pOy8mN zC}rdt^-?Z#Rgil2p^gCvH@8Ty`S#Uc@0M>qenRD7Y@8?&tmD9Xbb%Pf7IkT+V{N0Z zH%%94lkZkIeFN;&&R3WYX^m)=nDT;4DS#TOh_=fqt{;mQ?^fo>$y5jyiCu6XX)(_k zvdb)5r!yuRx{u4N__i5ig?EU*ggisW zPHX8SSWF52ABR!C4{X!!?y>{DB7A2LOjaO$s6BK~1ef&+jTx9n?|~Ur?nE{oN64icx_Y3g+BMu3wf(oA~ zn6+oyuhD_M>GRKjk#HLqw%3EBuRec#^=a_mkG~%L_aXj2`U<%-zxu<6uV@v=jZC5V z)dDTO=Ig;%2GKJHdI~zh11hq8xC2b$gnerpZB9T9f+qwDB3&X`uQKW4(3{_rAuzyN zcxqyos~1{#|DEyKmuOTwjZ9`xr5=cn>cBt-cm}&w%`1vv5M#JMz!a>4_Xa#rK@!gA zsvt@7MT0Q3pYBl_A_HU`S$BFp@DfZjMH%m6j+tGNqmyJ1zy(!Utpc}39nz^fy``(jbdQp}Pv$MWD4U)UQkhYK| zBp;ifKUaV%7P#V>o?m>Nj$wHQuP=@fQIHEFDe*G)vDt-u=Oa^lX7?*D0i0!(Oe*4< zY*u^8V1R5A#k;{Ga8I6s4Am_Xu(GPpm#NO=Rp((LQoY7}!9N}9P2>F!n8JGDa?VKke};Yee@32&q14xw zYFUbsXVPSWp>L72jV|lLH3NKhk(LB(CyM|kqluzh#H*?{AkXY#&f-+JN%J!urom_X z`b_i8K&_0cCncCZCo8ZRZsj6@OEr694VyZnl6|$;#aWWwJ$VRroy2OBC*Ct`79Ty+F|M$vxss zFPxa~86WfuCmpgs;Aww`5W9c-{@st`5$uuGj&^C&NIdBA+~vj0X;Gx!f#Ty|3_#a` zUbZlJ&Hnm!i6efyoIIz}t7;o=xcnDE<@AUOEOQ&&NpB9G!brysd4qcPzJc(?8`^q> zxRdp$h4o%H7(py!J;lN$?k+gYlr4f~3*eRuPV0I`9(=P}vPwcHeZ-daOr&a_ty#)R z!It&0W)vg=9mTy6A$k8NJ*8m8A{L-52idV@GfD8NzaL3y5z z^jFN0|H2kf=UnU8w?PlwhZ5Y+(EN0&q8R)fD12!MMfQqc;o2)LVWCjyZl5pw+Na|p9az*>HsDbm9@4_l9I`oB5{Gd z{FOs5ctBSw3Zz*#M9?t|T_P^Q4#X(#j<0~@Pdd3e9rQR6b93x)&ma1-6sujRT67hw zVUnY5qSO=y-8=_ny}bK0d-v-5w|Af+gZ;j9O>Rpr6HHf%9!RZ>hiTQ*dkUq^4vr0T zvR1Qq^XYp;Zg3u$3ouLd(gg2O_-4O^In|wF4#I83kwwY3_%JfKWZi9PpMxM1nFhHi zeVsJLr6I{V<|g8-I5py*mgn2mpH$>m$aC47%g&MEgmb3ySTzESU9$9MTYnrSMuViTD* z$oG|t7>T!ZEtR?_n19PMaHMcO7Tq?dU^o<2EzP*ob<3bTsz%&^`j;}43v>i3&PC4{ ziwa&@aS_+@wsi*1bp+88oYS2HfrMkRe`=7A-6WfESEP}h|1o6DJr+&YjGB|t(z_&z zL7Jj#am&BfFq;D)DPnpovjBb=U6q!`@rOQ3>$7Sy1AQE%2Wb&a4RS!HBJtFDW!NC4 z#e6XPKERlJxzm+|ZR)&KMU0~6iwNd@8P?~}jX z^lrW19-!RW)7bQG&jiceo#ApHpJ-{Q1-FhQQf?|z;M$fkU;hlg+RH&glK+GtN>Lju z@aFpY9O?w9mW@Xy`}~YvB8RlCT_EnjvOz(RJTp7&b}zgVwFi~lP5wcsV600OxfEz) z6v>ZQanb1%Ii{CMK5C#Kfj5`OS{&-6X*OE`%bXyWy&FNejX7J&T4`b}CrnXu)hChe|vH~96fn_a(Xfz zoje|%p|&d7j(SwXyElBb{_7HQm4DHY>2~vV+YQgPt z<>=}Xdb*;pB|M?yshq} z0z!GoRHuy(qG<;bnTBpR8=V{R;9wE=g6xV)gvIAhm2&1H+^_^r!W7&_hvW z2`Sen2#daXisaY$IT=`mr}naG`kMlBqusp)03|9l6me$d_iuRCHJ*sPAunO%85#wY#uRmSMZh!QBUU zPQv`6pe?~1LJS~RNz7v1jyyUDJ|aa>>ywOuQ}q*J>}b(IwH|oseulEO@JqUsZ$mUR z+=8@KO2%rM+NE!RdW{}r=SpNUjaGhP$ zADX>mO|U$3uJLjUPqg%r`8e`WGhW z>bBb(_|07$*(=MM*7$I(Kw%3iHbw>V6^J0z!5M}u5#(ZV$%uqUuB3AHgL`y@GJ?33 zr;ZVvy{xyks6q9M;zZy$yL} z&k-~u9@3eAxTqJRfbH;n(j$#Ks>{!|TOu}HhLtC%51z@2`EG`{OtiE!Fs=ArQo|E9rQtu$VNN6O5NyF;GnI7wYVqbYLt1EjMXxehSA3c9u zrs+rK{!=@#Bbu@ID9S*MT*s5g=(Wnv8m8`*O))p@y_OX)RfZo?kHn1unC}sK}axtrfF{?e8l;L&y7ZU`Lx2cGQC3fZo0?S7dwpO6O*S3Q>nBoGIc>dw>V_{kTR*f zppO^1a7(mDHAzRhdT#pS{R+E~$w_y!8||JxK$d5ktz_UAO6&C1V-IWPq)|+ zxPdIEw@cUnVP`hFk9s6f7$ADD3zD=+Qezrz80Q}pIFgF?nlm#{U++X7T7zc@RjpbX=l!j*qf;~YFbATMJ5fbTaAk^F zEib75n)|;T5)i`X2k(Xjv!*#EMBiEP6C?NKGR6aLLAceBpZ>n<>j}1L?&v@5mR!vciikvDJRaR5 zzOXq2Cv<=s-)s%jM&ubT^X1s#SOC*#JjZ5iUiulc#Ej-&t{>2kzBkZ)P)64r&$5^K)Q;j*sY2 zDtqu~!m`YyshPPn=6eQ_MU_*}e?y)i7u=x9jG3L&93KSPf{i4}2FDmJ?f1oKyWN06 zeDmq%^H1O3eGoes7jsf5?fs%cHvMax0@mru6V?r2*8pRT*v_(VKa% z4QZj}G(HL!i8unX*w6>|b>IP|MJTv6?lfFaavk?t%1Kse_^{h>E6fPA%po}=kZo{8 zcC=PEx{v0A{D0!^ZNZ z!f7(-K5a1BzE!~Op7$S+TL1gcKVp;k;dnLKp!S!Yj$m1AxTfW?BcT;W6HHHZMf4-> z9$PHOea;IbSWD0Yrabap59fgUGFKH~y(r=s@Qxfy*(gB`R({vL?piJm=6!G9Ukb^z zPYp;V7bX^my~?I(JA}jLcG}AyB$z&jsAZMF%+bc{@kufneD(G#pA$S!y5U|UZvoUZ zX}V=t)@IutY9&Nn4Y^E$$m%V#b){3E)t>4Ewu5x8)YpagMiNcUkHQ=?h0e4WZJvTx z>XnExP@jrq2(0jMI~zy*~f#;h4p z1lMcs*133*Z$Wa#Jy1|faM+e@CT9;YKNv*}U`M!XwIz!YVQXUv3?!l%Nd=+`9;hC2 zw}~c|^dt@-qadESr{LG&<44otB}3JNjU_Ql2AN3h;9g@EO9jDzUVq43phyvA%9EFB zIvu~%!x7AstW^=XaFM&*!5@G2Oou`ulFny#j3|b#W@QFYSZyn%1Lp1%f;NAC_2JGJ zNf#l5GsYO!6f90C$V8t;qO1km7>5}rqdLqqJ9ZEAr)p(r7uaPJ0WvyryW1-$q#y)j zG~QhyPUi|D1+q0R=JcQ3u9mlyz$D0gp^x6<%=ox-(uwf#r~^V6r|$d2X1ib_4SS_e zon3y7f9anFYH}| zlHJDW`^Wc1C#7=8L!6F?-Ym##tl@{JX-Vkv?92u%4C6KPYem zPpx3M0m7c?yd7JL?kz|nAIaF|1tChHGBvw>QrX#(s)PN#4)jiAy(U1Y@NmKfqXlo2ivX z%X3bS+bBygVQN>*rxQhb{5nB%rZrl+TPzKzEkYkgb{8cKdS@c)4pnWYi`DH`s~EUc zz-|GP5+DQ+BcNk_f8l>ykal{|?h&XqJHNdQpI~k@BL<2UdAWLOn$FbHm%1v&3bs`G z=L#ZBDqbk|cE^lQP78cnALydn6Sp&FGCyo3azyr<;$#Zujx7z+yj~$riIXmEA0Hrb zmQfffi~tg>wKX33Mxsg`Ha+~WzelL^>-V4CMRJ7XQ3bQppRLFpJPRi!FA^A$U(TRg zp7eG9Lvns{=M&trg^GQC~b(fNT|s zyT zmOJ1>CC;Q=1)Y>zVsX2;L z3;UyyXVxfmYxdMj0;E^yluq{e);Xhv+Ay+)M`teM+ApC;v;oB$9_pk=*z6#d#bODi z1W@2hjxBV`V=P57XGBv26=C-JYc1rcIt0?3=fj%FuTVASH&b1omig`PA^gznn$LIP%x>hehN-(2 z7*5QP9ycduS&o(#1Lt)W&kRpIW-q#WRs@V@A{2_B7w^FE6n-!TvtD-57ih!L1#&vN zv^mHIKtId+IidvAV|3C6A|O7yAWfTy-q>!Kz)$4b2w!A#@6~5!V4hfWcIf411LR*r z66GOn3J|>4pkzHTuiM#kh@_Ua<*)DGA|Ke>JEU*eUx(jr%01$ps6tMdr_>$ z8{I*AP3R85y4)fSu&WIQVoQ)h3K`_^=TuXio4#{^*?0q~gWXopg%;%JuyI%}=ewCm za+Z!O@CoOiKYaYOynFZKr$6t{cK11BpJiX{V)wcDj!~J80cWX*f_XCq8H|>XgL7~j z@tOGYlV00s)x*bQiV$~#u;m+xB{R5_DVNX8uUfW{D{O?WvCXU@0n1om2V@!G|A7z(|Hy;_&+4S+#%Kgxt(T`TKN|l|!K4A~vpv4Ueu3cQt z@UrlbCEfq#k0kY9OCr@dkZM#FsSe>pMyp~;&3XD*vO@=IGF;TT_c#&bUa+diQ7q360O#BVO3jKUvV3xufF>hJ{CC{mKfQyiYT zWUr!i?GnrOCSnOT{Us9O%5MtyLk$)ct7+~s)g)LQ{E(Q}UK9!@w8)jr^{9M(ds$a0 z46FPM><6stnMLGx!KSPLePKg1^dd^|@=QyIhIzJEHQmj(#}E$NQa=i3TE|55)Sv{I zBPOdbuo|SPonEi$qnSM|;zIVa5XGdq;Ki%I+kt!+?#7?pFL`l$ZRG;&Rvn( zac}7xL!dK=5z++l)5aLWHoV@$KfomPsRBw4f}8weHr4ikZ=U<&pZeC%`Qad^eZe{C z)V^pt+|aF{|J50&$=UDEw-@{8Al4{1!0PCtH(ZU21ybZ7Px#dYCB&9mp!$-%%#!mI zTKoJ2n!mt*V&5=1#_XA%(Oz_)pAj^KH&`K8htrxsRZkdU&c9nX^VmW&%6Qb!KpaMd z5MdDt2dEnc!X@Q%_I@g_XDTIU)0+Dnf%{}Cc>d?Sj4S?n*E_-Vl?AS!^%i2}2GNX$ zxM-qy_{&mDBt00!ThLBuXF6un4p=Y7!4HB5MHq1{2gBuSIV4U8bBNX9C`aOK0*)ja z?BN=>YnY8Sb3`c_<=m7pd{`#xiAlHb3AVrb!TCARwrRd-ML?onF-kgZq#Z<4~-)NFOOal8`jg zxt^OGPH3;pGdU|nG_gU)Lz+02aABx#?{w*@7pD?TbD{^jlw;({8~O^7g~|1LiDbrL z&PK`)jtZK+*SGse1wG>p%v@!72ZwjK3hc^+hz{xVqCEE9Sa?w$155G9mfdt@CvEA0 zCX!^1rw2(=0&7Zw0qG`6A$tuu7ym;?s2xCiY_s9rP`$zn24+uaPK%53f`QEydQ*r6 zn1XxUK>NU^TXapMy*7JfbJ+N%G%0a>e31#~O=7~CCu{~n;+4Ii`&v(yR$kYB3k?!; zEKlvE@(|u;5AJkb_h{cbwNCrYmGw2OgNLs3f$RA(SX#bKli!yBFL?nmwtEG++AV^uC*w zz3Hd8D1Z3*3Byj(QRnB1Q;+|298|kokk5UMeHVlamuKnQysJaXT zRs~acn)4;PyqG|sn$M6l7N{F0*91jUSs3cOJqltR-t}E#Ttn_ zrIi(lO2L4zDAyNeo8g)Edk)nH{~8ipwlS1oy%#%`RNMRm5RgkR0o0gOT|@uvxf|Vu zV2G_{N&w89)BsMr>=@uoSp8pf#0c!LBZ#j$(8H*e=TGhxSraTzn29dol@l#Zn1_?# zXoQWZUfc?lALep&e^6-#>IOP&da)Yv9=VBA_4$0g$NyNqPK)H8H@0HohJ!CMPDA$A z?F$rPLB7jibMX#1nbC-*UF#z+&mm!)Q@5c}(`aeZX5s^C{%^x)-di z35>C95%ung$voWw3yJ8XhDJ9k6~Aj5&kls6lcA_!j!7_tdz`|+P%B^1V9NOTTECclGNMUq7Ud|SeiqR%ErIgSS3g&+i2u!=%p(e zXqehcmk^Ot0u-n9g`8osruyjiq<1N_uH(m}Bz4o5qwp~199+?^0@^XO8Ij+Ke1Cb( zaK~sLa<>VSqNTOg6*o*7*c*ZtU+P&(A$V89a&bAHr_&S6)77hYKfDDyOdPvfGZ#z) zkvkZckRkPmq0e}B3Jr!uO&!2&v1o9#iZEAj%@PNJ zxJk%EPX`@v3H3pRbO-!^HabqyNXBl?wV+<+VXf38#l#HqLC}IQb}h*v-nt7E`9QEP z4x-iEkM{5nVzFzH1j)?)q4sjk710vp8Tz}VbMrP&H9VOUMcvDEx9tdOEmT{@7m6=+ zHB|Z*L*ZWWH$eFjVcjb?$cwO^6T%SLdKRD}9CIBv`=*!*9 z6b|S#l(%igs7snFLLDgrlm;$*zQsVgY(Sx12!$=)o5iIIbR~tfgHG_ET%Wp{qP=W% z5F(3}d6-^bKzjrYzzquZnds63z(;Y0NYL@YC*`M6oX2&=d&&Ye_#1+&*)v(6cneHY z&MUf?Hw;->CLfn>5(ztG?aG~m#^(?+vPnm+Y|nv11|sM~7MZT#TR)ZbWeJ5>Q)GkZ z_zTH~^It;s642fC0$S_?NtC)kZ33o++HFnm<-axAURPsvbGd?rS61Y@)P_SIkQBk( zL)UxPAglB*xjRcKgUUY*d*B=agV!o=DV;RUP(_lQHxeDREG!<}EstfVjMb!ESNU%n zP$pCnRv3CeSK&*$65_W>)JYcUlXcy3n#mWI+gs*d@PB;S-1ov75UkW*1SnxcF4&SBeIss-%UyzXk6}J}05AeV5&lri7i$lh zVE^&W|GL|M+W(pEcOVoe{f>4MF;&nV-l)l%mr$Kws zB5;$qgyp1ENt+FA_1B99tS*+LKdeGJi%s6}Z!D9Sp7J`P&# zK4>w{SSussrGr}D%0yrxh2wTUK(Eg05L30aB@|y;@T*930<#_DggJGOP&ty}Z!U^F z$&Vc3H05=%Kjj5Ysk9RAOB(LMshKC;(@DD{L$m~kK(0t&a#l*Y!V(17*F&1T9wU2M z!99?USs*jG^jn0B$r?am8u2HPrn5OyR119h*QBP>j&EOVNnNziAv_JLmOjU*e+~jO zL?^w*rUMf{f{Jfup|OJ_+Pe%1GalrvcixXE=pan7H;o~1FuyEA*oa;3pwR*97SMzV z+>#D*79F6;Xt38Qh1^!=uB7OffYuB1Su(ARZ}!k2(HJ~AU%7}BSG{r!Gi1k{n1Cfj#x#Z%G<)(_sTb7k+irv~xzirA5 zx<@GzUJ1DUhBgZ@QjBWLCG{<|we($)Hyiv3%$sdEf_SmDViCw;zL?Hv{W-$_sgBh@ ze*~M2AMfNXg=q!@7`R;W{NVJGhvcIYpF5p2xp*n(d^20asw%Hv@$0`T5(qaUCk-)U z?rNHQgxryDB5rSTwaopDu-X|?&~-0qWAnkgi`_A}?8{x?NpZwyn2iK77~_RzHc59O8; zNZ*rnpsLyS&zTzL2{_mTlj^I%*(7V@0jSH%HUAa%~%v7JhF{}!rS=nKQ}?iaUn z`2_oKjfbZW&*77>5$XqSBkS%X@xxpD52`s{*BLACD5|#;v3Hzpp?Q>UWk|!UB|136 z-OPPb>^K|&n~WKWiSau+V7)_=Ye#*dL}TCc9dn7tKN_E_7*Sca*Oi}TWi#M`6uV0( zNI|PLKJ2@twZ+?!SbRHMb+vtBwK7oOSqSc@%z2i}6I75qCUc6ZQetydBDM0KtF#_i zJJNP4m6+b|;&$iZg~>i!f%Ka6I4M!8z_v!krh749CZX z(eMqnT$4?KLZVll)dLmd>QfQ1A&-F1;$M5N>pfgUkZt5TV2l~2uS&IR5R3xkMme+Z zVZk8LgNjug+JkIQzPQ{agNfsA1GKs754Hk~$&8KV6dl9tVTG)Yr4c!AXv=bM=4Hso z*xDE}j0VCRWH(Mz%DifJbWpTV*&Xa-XSET;!fxX$dV45&BLN!aeMnZPP^D`j85jIh zcz3I5zTKjXVGCRnzT3lH&9{Pw z05-sEz@PyTQt67oSgNaDf( z?)oB%mtEZb$@f0^H6$YFRdlYy*M8jrSq zroygtZR`SG0Y+B)k>`d6;q(0pxdgAa$R|W4rhIC&;|mIYPcPR64{@qh`B0guvHxKW z#6H_YS>1jXEkj^w3pfkN!hyeB*z64gK^W-j9zO0WW&xuvAi1i%Pj)J`=y@K8dpMRW z&;0G$${sKl%H}u&Oihn^mxvI$UY}M9TD>`gwE7}u)Q|4A9jm82cyV1FlaW5N-A-+* z1;HkV<}z{S-bIt?Ihq15&kDCp%pyFX?M3V9X0@h%Is4W^->$1tJEzM=q9OrIX-wS8 zx!6`P{J~rSONKCVIT7g@?FK2!YO?NL<=196Y=(;NpuzXctc8|p3{P)?^{7%GLmW$UB zs}A(AiFQvOx0ggq-#|~C1y=MN`F)PzP^noRX|Oo?gKyWXp$u)>^(f>&Bav9YoW^yX z_M3h}VI5Z%jX3J{9Zay?9n!ycGQUDJ%eD^ghTzIBSvBgj+v8B>X~8Km&yDC$>xfoh z92R}VS@)UrPhiBRJC!<1;tF?mTfpK{wNu+8Tp#DV*pKi6$5WDoNtPCYGfy{rR5{#V zyqFkM%LePYz@4wEf*{EguG^k73C0TPzHnujFJTB}_2&CjN6yld7l~ZM#(hMtVJb&G z8B;q@-J4(;XUx&P@_N^;Dw9pV0o$i_;t7^QAU#T~CpshFX0q<8%C`$1_J6eo-S>pEP`B8$bj! zQ*D8zLVWn;4K*kb_aEz>v-L^D0n`+NI8^{Oc9#+?%OO}F#8g8c+naE%$UX-L7kpc9 zHBnq2c|cG+MWI8uK0a{$1nPaM$-9gT9<+M5zI*pW!fAxyHY7Drnh?#F9_tANdZT#~EO)mrgtV>IQ~L8-9sq?9vn%Iy zaQz_|DCQ$u&gcl%}|KpLCPk5f)3oIpHXHg=_VMgx?eVM$d+9_|q>4S*({$dY8f z<*6ljc;xL~DyuA6IeHFr4w)8_0*b!JztZP0T6%=wE_S#%MW=VcOlCL2%2&L&oS$T$ zUpNv0wV|p3%7YU)MHtp;`0W#uVc?Rr6{YJ%R#fo@eyK=GqAU&hVxj0nO|1D)q{wQ& zsBO~$`ED=Qq500s>V+dwIS;+3qD_isz|Gvm+jWE>1!6KD!X{NY7O!z&aR#HI&oCb5 z%-y|!<3S@#2n!n^eS(Z0@-}@BFZUcREwk;A><;Lvk}7WHjP4aUWEk&lze66Q>}~TL1lU>Upds7gM#+ZU zPd+vEZej(wZs@kACmt{({fEs76l>@3JuVx%EzH2{9XA-xp5+W~7M+vP?7)4UxTYjZ z)S(6IT=3lR8;`46H<}Up7;0Pxo5nqz7{Rkxm3~k7V>o}OMKOf~64;7(MN1=0n-NtD zOjU9u>w~UeEMcyreaoeGmB_<(!C^n$YG<5R%xB2&a3i7J?q4ii1-(~uq;P_H^nCEo z1JvJpm_YWFw2=UY<_sgHQBlD<=YP~f``^hn@@GS0DWb=HzrFWo{yy{Y#ln}3- z#>+&c>2npcJ3U1!-M3pD!>D#KGcxB5MId$E4<|h%OWO&ojeQ1Rf;rwdtgdYezd&8_dX#gC7^6 ze~u6!odT*|oPVi@o#~p}a`q1x3VOO=g%r@XHii}jqfy0hHuHt6a$+eLdQI|cxJtU4 z7i)N1++J)3^oa*<;ir&Eq{DTly%81(rip?oiG{7#eljJ{n8L@v2Z?L>{gd#H3rBkN$nFZQF;6~YtfJ=MnoSZpZFKI z*L*^w*iImgxHXHw+Y;O}_O*Cg&lU@Q<#MB0rW+wlX;4yI@PW7Vq4wFx(rfrcY{`d4 za#wICvl5~YAyKd@V4wt62rf7Ed=WBFT-M4gHB1lG(t9SzP=8b8=5(bfx7MM%0ptc7Q?iCWlGm=->5^fc}lp+H)Qp`Er$!Rg%ztdmeX%TbRf$J_U zxC?u|IGkWUohZzOys!5#!TlW`*kz<`f)~b(Y8q1HUfiI};r{vhcyJ$lu{t))B-a4` zTpw+}wM3dLQ!!r&lSRX=C58ORD$L1u3;Os6h1aOF%&@Ez)2M$l``~;sy<_m3zzYdq&myY)317! zQ*c!SGk{GVQuX)XsLw2b`aqIHIDBvuU9X`HE;Z3DEKh;!oBha&R^Gy;H&?rb6HJfG zoV741yX%xhmh5l0peSxov}YBp=-k7I4zgzbw8=84D)@fTK@)6|oU8AGOYMtEF&22SK0cZU?-H{&3_7S{AH?=q(BPPRWW3 z4fzXvL}|88*R_0^d)hwBhUg+%H-vbX0XZ?di{;SN3g+)rwDn9LqvQs)xX&L;?o^!W z6>~Vkp7~hw%UZ14lhmZ2<1xO>;a=90UucBLIbN*5j-j3qz#3x?|J7R3IC7Tj7a?j~C^mgDLVg6X^R&|kB@qD%1LB$XA z)(!p+-Px6Z7`7loRzJ`UWxS!UH+@@G3%YnSRc#fFk%q_`Xf#MvJ-6*mrD?D|#1l-5kf|Ry z->Yr%1wM4vI*VMo4VPUpEujFUdZm^cDo&*%4qB}d-euz8p1DuPNa0WpDF~zu!hOPs z<`$uf(>wj}!{#gnXY_Z|EV$p0xd4V;qA*aj)(S33pS6Ntf8hFk?n2cLgoe0j3rDEh z!GVgUpKMotE>g!;SYJI;7x29BEen6IEWdUo8g68(A#7{uJxopjx!O(X^M;x7*xuqS zXl;HK$T5s4${Y^2Qd=XlFT*wq1ndNGl!<*s@{kWu~oh>x4J7#G1RpCR5N<`$}W0D@~LD z<~Hw7^oEf|#W{_(TR7!MRC0C6lnm*eFqO6+F&xVQ=bR;obwEaYQ2dxooHfvK<=BcQVi9cVzBG2+1nd3QIwj5`c@UB zJjYMuElrsh>_!sAM1dC9j|`iQQGHY~6SOOXk=AWe2#`{eU)$eJ1*KAYV!W{?KQ zk5~Sm#n5RoJ;11Lrkf3dn^5#{vdaqR5j4)uIhd5!M%;*VC_sLorV@J!Y)$X8_z=M}*QFu`cP!Oe76;y#V;NrN+UOiQQt>SWid}xR4Xp5HM zp*$H;vErpRB8J9v`?zs{)a1sSxYus2;&&bvt#+%-vq|CY*V5W#mK3ES^(V3L~Hw76W_!t{Qd zDHE9d#B#%q`Q(FN0lRQDK>!DzDJ~mU@jXkLZC^~*5PF6Fa1E6|$Ewso38)c~kY_R5)kft7z0g$fBc$3uQZ<{V zD%Zvq3J-(np72jtijEEafwqDEzl+p>|m@XE>_!ezcu`00>SP9Mrl2;xCmDHjmdRKv9gPC6GC z7z91zp2K@(f5u&HK138+d;4gGTxLMYG~A7y#K=LU&_hPwuC4Qxx;z3)3%*uz+v6l&T-0~0J^@ix-Wig9cT?xw`F58ay@(uTr4T`d$%EjcwZ z>jh|nk*m@Hiy+EI1k3A@R21q*Q9$R@$V8@VzcLM1ajT`al}6}lcPf6-iXZbtXMm0J z`$M((VsU}=mq@M79Bhi{GnGOmTNSHwsEdv=1Y5ywG(9nMd}?Vvu%gZihW{5hMeH#| z4I_R=0T;P}AeV0E{lul!FZDbBmHno_vL6cY{Oxa8z%RXb1`45_e!h{TqA_d{Nrjwn zG=63Edl5SrAmO2=_(0wdnht+O){o8+LOM|&3-W4pZkY_STlitpOuw~mrK9t32=QZx zIA$hzvj0NE=$1X_QE@i$;I{fW$lr3eU%&eCPD-=p+WztPwoh#e%z))wHBTYZ(Ny6n zrLjv_^ocs9P23zopCHMfDnDH}3A56h@yzx*9_K4qTqP;8ZsuTwO@NXE+#tw9c=QYN z-3|WfpMJsr_j_@wa<-BddJUQ_f!QVkNo)AN(pzS5WC<%G^;W5SDz;P~xWg6G?SO+V z*f6Q^R_Vu(xWq4GjOt;eTa2aUPUO(i<%8dk6Y$q^%#1n2wk) z?AqR%FY0!1tyP)$w_5}6I4f4eIwebR)W{ zkIaT{Ur34xJ=-P2#9pj67hFapi{e9*Z(WjKe785iJX?0wguz~GXYaB-qr*=q7n=qr zx7sO0gRO7=xb|ExC9Kj>n|8n@E~?bX+0(DW#D6<#WP;WlcxJ2K4VGYe7)B@yC7T`s z%`e#m4X7aYH7q~Gk3CnzN2^$OvnLgA$wm)6bNKfP)x4*v5Rd3-rs1oq!#CILpm28E z@iAoR(lsTJYW|XFQcZAsKNt^cjWP z#qAT2)x6;QFc`UF3lF#~MOzOM{zWQ3(53pbT4-KMcZ}@KMUi0Y4zEcXt1ai1p9sa3 z(#+xtF06l&k49?x#jdOlRt31ZW zDVH4Xki2kvftf6lk&

    _v{OPx?4R8&YHQx+r5cl5D8KdBlcWz9?TCkhc?kjUvtSe5^}tw zD%p0f%HN>H3#G_0ivsiK^nv!)XGq=CHRHB0%?o$06hRMpJU*`o>U7gHw3Xbd@L<%moLb2~ z<2AfbzCJykJf57KK74rc_`&4yfv$=R-ie#zE~Wpg`)VbE9-&gjhvxZ`Zfmw<5C=6Vtg0!wqg(hcN`URdw!d;`S3&uQS>P<}>Ig zcDVDmJYCglY3DDsHLKw?jk@L_Z9`7eG|+gaBP`F@vczC*=Fe}|Mn238_1N&MH}vp) z_MGvi@reZ$5DMNDRk%7s%{5^0DHy{Zz*ot<2a@_!=)+E`+2r6-M4g&qZ}A!=1caUk z!KNoxGhGvcp)=E5aWqWWONEjJ6Pk#%23=0dLe4K{KA$sxxg9!tIq~?$?CSbQhRJ+E z6V&9XAzgh&UAB>D_$T2LDq6ORbK}Y5dvD$$H|vk@K0#KtQFzFF*rf{!HDo*-Xi{MM z)IwvRfdvZ|(R6L<6!EbUIo6%O4p2|E^>JJj0Ws0k1ZYK;VDRQIAZl`Ik7D#YUf#Xf zJQcnuE#1~*n(*mOjF_=fysG{|RapS$Ajx%L9l4D(3WrBa4>V*fO(2j7>ZHJj?D-k| zmHU^lh>}PTGLDpF8zAlgW1eGiTC+TH*l>q?Q7EtR{$Liy8>CUB{vB7f)`XUdKE$S`_28RBKZHA$4&A4g+xR2f+B(! zog#wmje|u5bu7%{>U7u}nq@=itbNMd^L8ebno!eh=(VeaZ$O%fx+c5LU~gX_tz+@b zQ=lHQ&1`-+(qHN9{Fi&@v5T&-NV_|*9quuQwu_(3B293sxYAjUhCVk-Ee{aE`rsSq zrkO6=gI7J*e=>>N`LjR?xy4bPFzU2%j___%6CHASAMPMNB9eIGNJG};VAIy+8SHeh z9k|9$w`v`TOhmf-%V)D~GO5OeYER{<!)ZO~gE$`dFqDN{pGE29-yd|JP6l#kSiRTU0_s8G+mn&>$&#O zXGuH^O+%<*;v&=WuRr;J;0)fqzn$Iw{?i|zL8TUf<;Gb%$F@-L8;3e+Qb93_Rpi0v z%6dO|Obc@BoZ7)Wdsu0wO^&vKOsR90%>B*3V;G$;tQ0Q3ZJVVOG) zp_t(g#yWdix2%hzKJlYu()GknQX;0s;MeN^hI(j9Yi(g$9;%9r zb&$p9d>cFhupJurxQVdSRa^vC(A2z~KeKFu%4sk?@#=l#@*o0fL(HbtHVd)}e9MnC zb7F3S0!4pxn9$%FK@*?pR`Yb$hYvih<}$sr+hchgZ?|W=Bb0d>e~CXB$9{kN>&M%- z)bPWz^$3}<-+qML@eu$}s4wvkJ2RIx|3wfHF2LA+^aXr7K92tN_{-71!Y=c#lP_TD z`r>!*zo0aP8)^9ZVu_aC^5y6YgXkF}Jq4Y>mxO~PyhhHE1uPDqV;gbjUQ`b3(z_3q zuHb5ZwLcD``3TI?Gujz5`z$F z58#`mjhWh_9GZ0JU7Cu5G(<4c#XPD|gR>cSvK(+qrC6Sv-OQFN?0Q#!fN0Y;qt_nl z5JeLeH)8HpK>m#%K)tE~Ywpcx6m9^~5}YLOA@}{cTfs>+E9C zGAsc1gQvn8z_FuvY`Glk0VmNaLz8&^ViiTnnZC}$8cXs4Q=esRie!u~TnrFU7fYUM z49s?-uQ!bzvT^IO^nQ@v<|xYgc#j-;7L>6^%qY(I@z>#Pf9T)w{HurK)05d{yl@J= zRpc8lkxj1Ff#hH>>e;yR7#j|#>A_-nWur_9eg|% zs9V4^J%0dd1k37{`$%KfYJB*JlUSSW(t$G!LdUi16CY>r6`5st05`yODpUvFDo=G` zbkapDy4RRW!1Tes`4n;}vlciHqb9IqDVl_~F0vz-J4{cRX!;C8Syc>xFuDH&wa>ZP zzl`^2=W9Qne5U&Oowwap|2%!Ud-~fnNCZp{nRH+)+?CS^BK%r~UTYERQDYq~`4%)Z zwsbL)@zcupMMxz5b`3XaXXPc}=T)Yg4fr<9CHIa)w^) z&))puoziWw1ro?hmrqu*o3T}B6^~|DwV>Cz`rB0ty5#niL5f^p<)BgkWR>#OGaa4U zT$Go~bu#dRQwrfd>)~c7N8@rGB*C2lgA{cV2)>%J8{x57N>ls5aGa@3Y8t>D z(4Fg1+KV=?ZbEeYF9U>~HTRo?}&LKU(fhJyu@S$yH&EybjGb9INShr!AW)xl9#F{}v@BF~{>+z!pr{A2O zJUD(lnM@u(dT{#{%%&NI!Q+Hs<<50f?A49YAzIYI32rqgx^377mb2V!GB znV^7(1>rr=Y-GXP=ZQ*!G`TKBf`*?p7H=ZPl4HPb<@kmAOy=n6G9BR4Q2gFIaa<=Tn2sFryaSBibULY(JJqN=NhE9g{5z^5_TTN! zp2Pq(6^Ed@U+ZGTau72HNMlViYvu~-u``jXSGx~4uEu?$#oa{&iPtA`lGOp}wK@(d zSUV{-8<09{f=Sm<*(T^30~fgD@`01p5kBVG2d4+rqbT&OH#3Pf}s)W!B-hO%svH`PM549TUa zJKcS_PZ`;8Zepm4wyVYN`5Ckh*mCed?8ayv0N*3Njxg*8O;EOlAnC}O*?7|Bh+CM3 zrM4B0o*~Ut3hjFbIu7zng39Nj(3phb0fz2A8&ry z-2S1jpmKn;0S97KP)C~UCCsz^;TlMpQwv?{*d%;647xi$h)SzeNN~a7Dr9 zu3r=lL}R1QaJ`2lPX1hyGc9GY?Of*FNf+w|HtDD->shCUVtm&?*oFGcDKp_gRL+5U zI>Oevrfu)mFV`qU%eDme(svZAzLQ(1Q_(6~ajzw~24mvZBS>Osg8jf&&}&Rpfr1uI zORouEPq$5RfuJ52*+?#*oh$C~Y4?~VUhbavPI>jDO%v9F4j;1oipCBEF<-fBBN!#v0u1&ma9lgR-o6=$)98Rsi=VZNRKXYN+WLu}EH`GTew8_Vok*QkHOEZU%EGgwr% zUtXW9EfIzG{@451>H zlPU7ar5xS8;uw;|HJ<1PUDOExwh#VN!f(%stGIOuKhgYv>LP}oqM=Qs%^niiH%%h^ z4ycP!a&O6@16~*~|?6!E)@a ziR*HS4J}pto1`h@7l{j?_mFx$VV*z}0_kH&g;2T}dek+_MLc~=^7#DaA8&7dQPU`e zCm!lCb>^d&{Dg446`6GLe1WCwr}We5rbdRTigkRYpC3$1Y?dT(IjU!3HBa^zGiD+0wCnDAijBa6SB*wmvlkG}9w{ee$YT>FimVul&Mw%u z4=U*)EXA@p{QAiKST1d+^*R@8Lblntnk526IM z&ae#*46p)qgP2UI%prQMR7hGj!tvzOy+{*rZhk$e%)~MQ`0wVDXs!7DoB%-*&3SNi z3ZH6vc^nm|iBke$C=@m0l03#8t|pPn&p0g)b#}6MoJbm!^bUZnI_}~;;&&esGMSis%WMa_pv=x|M&{weeOvedg9>hig zr`swU2px|l9B>~2rW_cLKixN%=|*j&ZRL*n*-RkpI^Dpf2Y@P}HOEvp4j$BzAv zw?9D~_;ECrc;*bq?Doyezrs1{!|n8!Hy?v7X|HNt6hYj&J(C|4QNu>1Q-N_EOq;_z zH(=hGng%iV%utNA_38_@v00&rvq7T+v39K&7|Cnla_E{&XPtYTb6fxyQ*YNrHh~oX zH>9HSa9uMV+@Bl%RSIB)q4a-syHD=w9wQG^Z7Zzcah=4m7K=3y!q&wgUF{N3jP{MT zfMK*E+VF%6VY#~#juQm;^%E1?jd?5AFx5{}LU}!JJBBiI3x5H=!|iG&|H27@fd`>$ zqjFs%lZXw^>C;hd?l$Aod(WZ&3}=h@O{p`X}MT8vn`WEFmtWtdkDS@l&*P z;EKEs3u=7qiT`J+f~JQ?>X?fj{k9C?RqcE2#5c-GO{Z&vO!?-SX)QI2`L+QMZqLj6 zostEiAjGDcvJL3JWvhN9O-pL)dy;qP1ykM9*L8=&SkP-~tTcMZ5umFK@Cw`kM8d-1 z*e==AOm|2zhq}Z1way!0Bu}B;1}#D0BK$;&I$DqhZdHgF*}4O2%RC`f>^4K4DT=0s zp`B}*^}O-<9n4Ci)F|G-@BOKzc5YQk%J!@zPgtw!9a|>piK95AZ;wj%kBW3>A07@V zjB~RM6+0&L9u=r>*VmZ_y-6-CG;;5JMyHUro_x6$IkEHz<5Bz(-q7S|f0nozSOkO^ z%9acjWmf}cv+f&Kvub;|Q27yil$Ks4iy~EsTck8Y)Kbswc(8+}!3dvBJ>xhwmMU;4 z)m9K@3S`<;WCkhD^)hlb$}$vqX=E9*mq<@WkOq=$D8)Zb=L>rn#~3WVhDrsd8*Asg z4S6jTh;UB+|6b7%7a_@*SavIuAKYBu=I1b_{ZZv|ysvJIoQ#wOz~5~;8@CDu0@jTi zfvVaJ9{*;%Rynq$X^q=A6>z5X?fR8+bh(QbriHP^!gCfyW#;%NL)6ugV#KhTBeXMqWHRrwgR~RGqt#D(630s3 zoyJ$eO~Ns1DPWz>QtG2O=fIoCk9VtY#xm+N?4|_XOgFI1Tmzdnht}zBfb_JpIVzMO znaOmdNMZf74d{}d3*{5aBygHPTOQ6L+XwOvnEw`Q<_vb1gsNPB;70Rw#rGFSiZUC; zwlwI2)9;`iMit9%uh=_KV1HUP~N5^8Rn9&^~v&K73;cVa=jXVUhg z&FF}~RBrIM#SLRTHQG?^$0o3+wgz3%2ok^6yqj=v^eSR{4e|Ixs7!^>^#f~6pS$Gd zdy}1f(a__$StI)f_}ugJypxYQg70sw?t}W*aP8lW;Hkm#EQ;HP(*U1SqNPT^8Nnb9 zAxEdqL$kr(3^2hJs0|9?^$OAzLX(g>We(anGStl>cOcwtsBH@GkHf1w+#&2vp76Oa z=dLg>2S?P({qQvamJP(={)dD<>o1zgBLydAAdIUs$PDJ!^T@Z%DU za(y0t7igHsSS~fJJqTx)wYN)}O3jT|*#ZV`w|ECwCn32QjgBfmEY;QUOgc!9=+O)J z^rNtv=eV&%8NeBl;dd0E-r_-1!-o+waGKAlW(+JX0wWnmCqzW|alO^^YYZZQ0@FLo zW_OPzs9I@u!tVDAnsYrgQaHIkE?-9HB@)9Ga^xtFR5Wy#J?i-GbC$pw5MM=e98z99 z?JRBs@)@Jrg{XoXB=C}ZflxJ4bt8}&M@VPGz9BE#rh<728E=I95*|05sZA?BwCMN} zB6)C^5dG-)9vfW*sOcvu`f0gbF{5P~%tkj#Q z7`l;pXm)t&xFuAygLUIotC_ovS+LsYmsVc~F9gu=h$iR8Z z16?$&+Rq{Hx^_S=W$^5pPH$icRwT>OSH~~L>+yr{Ld>hsQ4AMR7f9tEs}8^;{V<>aX*l?k-{B(e8JRQ)h5`bb#uZ+`+9-_pDneFm(rs2F_}g2jyBQ54fS2R2WV$u81bK z6&WUem?M9Q<9-*l8<5@uJtWS!IME)9+kp%m<>P^KEP7*eW3dE-zHtH4AZ#fs6CRG3 zWE&--xjO(l!>`dlF+xZtSB=?J623>50Ho*JUN+OkurLwqMw?kZ)|vXft;W9d`m`HP9M0RV|kM<kH_KF<-0 zi+C!)NkhRF{Mb2iV5Q%h0a^L6wHyDe#J=LlbfNleX4}|p$EE^y4KUvy*R?!VE|eYG zc1D>Zvys5Krg2BBu3GU<@=cx*Vu9&B`M@0yyX8UOpecc-Z-cT`NUtaPZwm`UDhhoV zW^3(1MIIp(Ee)9yOK(JG?%wfAGX1u&JY;D*9uE!KA?i#nP422>D(7MFs8>HCzSyt! z_tJWH3_7UgjtaP%B+1>|7;R3uB&fm^W9?YFafmG!;a%y)14L`g%#+Y+8dH z598ki)od{2{c3+b2Mt`T?E&sx>xQ0aX)v(|!CCf`G3;vy<-2^nOYa|V`Y{ztkSkFsYX zD*rD(zkYLjbo?ohN~^8Q3RN8~Ct!#*#s`8(4hP@>Rl!+}9SDbDOMiIA*657DF!y-W zzZBC?KFITx8TFPsgVP2QwB!9-`=`7?Lvx$rC^xihx?ohf>x$Zdv}80tJVQvres_+t z+)=nb7}+jRw^Y+o*YP4l)D^<^Y=R6VM?by3ee>g&e}4Jq6TEesr1XC6-$v>(`j>wh z@gwe!zWp{`(Ze+O%tdkoryR$!NdWe`ZW=as*j$%efj3yfFHMjjnwHo zLJJNek79Q$01C~fZSO<~2B6p^z-(Pbdb(!->axlLF|D&FyYmL~ne0+Pnt&_~nJNY6 zvBj=~U39Y}v2X($9gz;RyHwv`K<-F4;m~Ffis;5e8QSegp=)n*%|=m?1o9emSE|6e z*v^ua8jS?w5R!Hh*bLd|hXOgvT+VNb)_*B&g-jj7MT zesmA8Nlb~kQ6GIdKXSf4!M67N?zrl1Q91)2VAN$DT9}^1wWn}&wz=$jY&IZu)-1SF z=Ainqz|=jK(*kNVL)5qmG$1Vk zG_5oX-(jvDgx{Mk_R}BWrZ|K1%Ej`@#Ryz%d&Lfg2QCd7@C!^MIY3GZl?XJNqrD^} z3=NExn5$LskU)8g;rl59|Q-Kpl7K#l2egW7|1KRuP0ZFs1_26S$HJrJC>7{jiM+ zspEJ4a4>?jz-ss4L|rdfn)={~2|JA2K~$>=9O#3wAdkc0uQ*7*`uXL10Fl~)3BF(= zu;kN6UyY9^V<#~tyC-d0A_4_BdbU667_;hUJmgOzove5#Zhz)_fF=dzF=WhO?nY{F zDMSH3Ena^3$P_i}H=jOuovEoK zA9G!>vV!8o^mgEyBjacgujqk=Hd4xwK-Ef|d4_DNgRY2iQISUM>Srn0n9MYSZKfS@ zy@E(QM@B4uMq2GYTtnkH{+? zWPBk!yj-D0R;Y3&P7@Q}$*hT(juA`RH(ZF_1jG&YMB6ZBk7zbWc4M2M?9HUsy+Kf< z@yoOG9~3!0z%ZXSE6|nFv?XnE95Injt{|<45j*Jfm&o2YAGJ-b z$@Q}(ia)9D9irVvh(B*G*tc7@md1sXn2>ox5R{9Z3x9SiqlX6&;x+Yh2RmL)9`orc zQV1OKkjEtzm>I()2Twvd1kxoC8w6b`Iww9Ih2( z1AYz##1=0WtSG;MM;&ReRMoPX;3O`gAs0OJ`9*dA{pX-{w z{Q`EHi(-!`e%1VT2kEs&vO$)!lYT!dP7|BGKxIN!&kJ5*a9I5(|w3Zbjm$PqNMU)wfeZ1>Jj6~^)IU^w~Y3ahP#x7~WGo^G-*A#tc3cz6w zFJOA1krq&+aM2xYK_BSFpd`Tdsw7d9a1Sv=bs zoykfj3j{w|+XqghtTCGJa^knr2WTD=C@TYo!^Eg2aAa%am<;Li?2Hs*fKPZl$dWWY zhBLpmoNhzNQgYa^Coo!d#nCU+nv1f%YOHTl|m1N_k`_#>Akz=D{E z#-l7@r?4d5kzj}o0 zHzrWJ#`l||b|iTPR)M|AkuKE*w1;dJ`^Olz?K23BcCwPOxC^&cK7+p(w9PZ*+N76e z-3eJo2@Qp(3J^XEBi*QJX;R|;G03TnphVX+Aicbj(qoa*<5BO59$J(k^xaB+Xlm9T z?)~kFgQF#QVLw6QZC=+Kh}RE|#<>60fYHiT{w#<;F#a@8>^&RO&Bg5+@mZAT$WO z7c994&G>$Pwch=}yGypJb&;eH&FP52a3U}@YKp!3;eVeYhKF7@uIR~}HYn8`z zV^SFBB^E%MYOK?SY|fR$OL&}bo?g6s`{SG2_jC`c(0U!;8x%<1@~R@k8Wwb&FM<%N zdSL4<7eCNUXZ8sO0GXXRLWdA?^`**RbZ#X(%5=Nb3wjO;Y6UBQwt`Cnd_J$QkxGT@ znA&wa%9eJZ#2vm3R3GBv`C%PBLB5y74itC%0g5u*fffr35s4BIv{*D(ggC*#>6nKf z*>CQvX@!$H)DoJxhVmxM3O!)mAja_)9xd;t0I9PfuGP5(6IYSC2%wQLCJGl7vgly2*;p*oHeJe09OXP|zv* z{0L&^3CiFyYjlp?Je{uV*s4{c!hC4T2#sty_!85bpFGy?Gc#zXs$1Q>Fi|W><#0L{ zd$0l8!QG37-dzTE`%1J#7lZ`t%Ge!O$5ilX=O|QbQHu0=L)n`L#47T@3#K{XWKf>ejdgUY>S2PT}3 zb}w85vmBC$a;yvNwCc2fL_d|1sg4`itVo6UvP9&j{al+;o@l zoz=19$?Hd3!XV?kpxwJq-A0Hr{)u?IdA-X~td&)$z)}b`j147K^?COrC8Uo*=zIpYP4xn>SZLCU{F~LKcT38-XG2&Yw!TqLLq%4_{_&lvBhtjvjcoCGKKejM z>bRljylH6NAlgKtC_H-8VCRpIk>1P>xUl_ju5A zRj+5yE!Dk}RkP(A^yyQOF!>oh(x;NG*j>%-_0dpYE}bQ;MCH6%hRqrJE>s`Qi)N6( ziGTJ06_rZ23qHaw+7!EP?{uVjh*r#u1h`1dxW7Om5lHS7>Uhl_;0j9j@sE}s(6NAF zY|t~CxzPB{L(we*(8|#(MS*lQ{58^CGof;OT>}W@0Yot_n1l_3B5bP|OXgQd9(Z;Q ziI&5B;OY~jT*L7X1*SP)qG}ZXYryXc=)S2{KJ#|%g%ob+`&xug{`BI>VO|KQ z_5t3|=z1puxTpzN03ty?J@7Jz^1Tmt5dD@HFV_%#lqUz`-b1aUIs4|zMxZBPI|l`D zbZud_c`Yd7GZ7dd+sV}JM$zTY>-q6$m1_~@$%~rvNfm~fd0hu_2!K2%)Kq{6g=WQd zUq$oOfVA7FxQ5OzF^LJ$cR`q%kk!x6rbx9a-wK;38s~olGVg`3X+2w{-+&F97B^H*#Hz*DTAzVak*4sxF0I_3DY?m#A;d%E^X#EL*LyVx=1OHiGn2-C1 zdEs)?UA%CeWNpi|4LQe{P;;}V*Ja-Ug14Ca182T?XX5fHE^9fu7Yhp0!D8%b`9aj+ zM)HLRU1bfCW7pXl&M<3NS>hL4Eyj^)#Z`IsJ7~XDc?~1hjTr6#4M)nS7n1$e`2}2E zZ2M65;YR}(K^qOzt|2yF7D+M{SEQtk)6wm?m0+g`=YT1`F`PgK&Ge87C%1Wf}7iEsbXj223B&lEk~5Sm6Dk zY3C9g@s9*R`+>Zt1qOnN?3SMGc>oM|7G}R(uRq&mH9On|*@5qRf|3Uxz8gr@ivHc% z#r5%b_OZu=>i%%o`LoZzl6^k=&ibIw_dP>Bl+_dF_uz()=vM7^>h!1+UY+gsOzFPI z|DnCzgUZ;i%jIsTu;JMfyJmkc_&K>XDA*Yhvjm+M;Z{zghm4e4vlR^m;C*f zamSee>_TX&l3L5usm4mU0?zAwcX~^b3Q*b4QWy4o48ta}y`q;P?IQcl^PW3p6n*y- zZszaNyE~0JbTMNx?`;je7&q;iC@mq4@ zK>mw&(EC%QNlR8*S~27Qtwzua9=mk0K40xndKE=5MnljRN7$N#M zcM8^$n7&9;~L{IZf$zPVI!doZ97DG_nG-nRmKN zwq;#bDsq&!K;2L|AI29s4yhSXfUr=4&@&YquY0pyY-kH8VF*GI$p`ktY`*!5meo%8 z7|b}Uo*?ID_kwz9dAts7a3ONPFV7hAwmBi9h$O;%?og++H^QP@J*;b`F6JxcVK zAV6oYUfq89AhtC8)?F{05|KsbQenL#*&+yjA`}XGf-_;*CAU#}*Pi+>2p_Hx?hWndKXXN2^LA#BaouLRKB`yRS!IM=(!%#|7(MTG)fb{}f9K{mC zB{N^q0F2G0_^fzIpRAJk&?40wm^L2>x!1w?=_kVrjfjFw)w28kf>k zk2qQohNdTr!CXuZ(o1WizTy^`Ef9FiWUn0Fb_~GLqS9V}j+3yrk<^gcC|GM8gog z1KOUP3eixoX;@93L<~+i3!pLq8MQ&Q9Uu)#cqw9NF;hJyja}2!^|OQF5!BDbF>%f! zTh%)ty|a5SQKE+`HyXEGgWQ0mqYMi zGLYY6JggYe&!;>9P5vjl%>!dz9Vux87?O8K4oeY{_(hvi=c?q?NZ!BA%gN0EcTbE_ z^SN3pZJ-w*b)^sVDa(F|fKUkyhwZf^i_|_o7Te9ShBaDGhl)v0GID|Qi>{9g!19VD zFU=Bj3ns*ThsMW~Q`3f8zz~mU=v<+nh)Nj1|K=LZSxb`Vd~FavNT{xc;%YoErn2m5 zYxYBI_A3td~^B8-c!7m(vj zijEVidm#df*bY~zD`Xc?9dCPUry3b&lzF5uM*8i}@@>z}$KX<_A|RhTf(3Qk zBpiG6s6sihA#A^!*2&#HyrE%nk1V;ch-uxe1`~jFz-i{gZ@}I}C#--e{OztP!ySW!B|2^LsRe0v)28*BVYY+C{big8eh@dfhlLi< z$kwDtmKhBfSltD7cHIZT8#-^L+(60=@eMq+(iB(@2+Uk^XD5wj!Q&E|*KWohSR>(8 zhFsE4O7#wZh(GOK)W|eBs#*8YYXOoQL8&~f`@>I-DtViZyk^I7ihpmk{DV~-Yy5EZ z#m`^xM4=F;3g1`XY+lSY%{(tk7lG(a1y<)em0u+>GI$Hw({W~ z;GLWuExgms?rA6&$CJm2JA-$yZ>sPPcKxV1Mlivl zYo19HS7$&-kdzZiCoxv?lwBdyu0qKWy`?ym6(*-|%ygHtZVxGH(hATzczpyp6$Gg%W7YHaW?b|5o$ zbe=faMbDKUc)eM!Xkb!~z8d{?e2nz{Qbi+jYd`w!#P+kfays|u4SkgDx=H!;0n23q z>h<6N!PqDLfU_K;G%Z9g-=KopezRCXL5BNBN0A&I?gl(aAe_1^Cktcy;3bW8wu|S_ z@k5ez|8m}Nx;-_MVmt zS$q21V^M*6PNM4`s*Vj(>JmK2+9vToxlSd^7Ul$;P}zW;|GuN&*XT_I?%_D z7sy8e^v_KXGI$DHqHq+b;nm)I|*LQ9p0XT!7lo2XvEHc zSkrMa`Fqxj+2J#Ds6?BwX$mhJxKtye;{hECPSwq{ukg&|?s;}9-UM6)@?Vu@D(;}P zBUPA2sgqCtFBr~pfUtbB!VyCi6@(re%EWKCVhagIVtuJX8b`n02O53(@#Fi~zyI{{ zcE3M5dimz{A5aP#5NK8hHzl}AXr?4~$qj9=lW!}ed7Nbbkc70mAVVCJ4f>zEVappj zjbegah;x7RXeGG&Z4dHhV5|9T6Qx|A=W1;y1}9{NxxdeFeDHrEc>k@Jh&@z13cZe8 z?vo2qfa5IQPq+)i`crW`Fj(#e8s_D-sms>Ht6Xq8h?O$!}Ta ztPlJEkybD-T_CvZ1}1lx;iiM$+qQA#^a`oD`Vi70wgUq^Zh0b%19^9cI+n;s z-M_i}@hzx0QtGu}b_|E32LEc9UTy2^QBwW#WCH33!bDH!Jhup>xXLIHDObHtgA7bF z*eymdi@$`Jq%Wj=NW1WQvt+xZRR7hzBNZr5%3Iz(sg#RS3RhCK)hDrf?a*#avEf_K z!|gV`+CYY$I?sg9c_)Hd-R50eYA=y&h+5Q32FX$=_}9W(NfT(|{TAc`vT1#(6-`t^ zWo&Bl%rbwpWU#1)8%5oyP-c+x333{<>JUhLO_f@xRx}DaK)Ujpfz=)Gj4*mHka%i! z6|DDzklE|TAWbS??lwb+uk=C$2EZg$Po;%wD(U;Z{6kKgifSZhll1joCeamTNtNJN>cs6$U442KQRUgMfP8+{>R6CCFzRFS*ltf zO)dTCzND+dB7lGg7$YFD+|zWj7?Tz#+oWB>r**J+u6Z`#s98r9IoUjl+dA!vOrcf= z38nZuQIP{KDnHmpjYRk8-I-kn74$p-BZ6Xi8|04>ZQ??2faMFfh_@Zp4uHz_Xi^y~ zy}YM(u6Ri-hJ{WDA3eJ|*pp0QdW)bg?z+AaS3V2lTx%qfAuvxl7=!W2aO6EcJjpc0 zy;#aA$hn;|7drW~6-bf%z}tgqplkbIW=fU3fZEbCc(L>1BX4SZ}q!VOme3XFNN~M!WkF88u>v zZ3}4o7>WlW^}D=~O~nJ+ihOquXd69{X?lD2`T5-spFeyYcvV5li`EMA%Jm zgHHGP;;FVJmke_Chy=q89FV$^MUJNPvgiAHc^Go<5JzZF07(6LfB*Pu^XQoWh3xtF zPrJ82{Fz~3i%XQHyFmpW{EWe1CWaNo$?F~JfbDJWdSUz&*$ksjpk0B&)xWM`KG9ec zN*|fr{HqKCPy46&L;U7G_P|rd;HBm2MVN1>2#IFUS_bLTgiXH?6^ooJmIK(LDgbgb zu4hFQ!ix*kf{h@Ak%?qUo@4VN^p%d9tmXZGXWu zSCHM*zeR;nj=n#pQDLHD7_oy01Vh=6r+R)ZQKz$@$_6p?z%7cBc3weZe#hKk{;XknG z?b8QLRk0!u)7kPuB{WH=juE}dYJ{?*MFm2fYqd~nZz_;1XLyXOED;=@BKt$8?1+B# z(`!qc&N5aIELJDua8u(xur`8;6tZNbKd?BkW`dS$HH`>*^mVEnVA^;ujR{a*W3yPf z#n~@}5Qt(#@DF1d8T?~S?>)4;h!In-uVN?Q$&n?^4w)ChtwMr{7*K{UzkK}kd3pE# zr_Vp{hmUt3U%&tK-kw%OWedt6a(Onrjs6U&g6v(w$` z?1?EJifI8(fKSpfxS20=ClOv~1x$<>=I{_(eC94{^-XZCOw1&%eIZk5jse*&cFoNt zehl4JW16Zx+0Uu#@!99$qH?e8F~RiVfvC!{IP1k>2WfZ;Yu@gjCC8ilM_ZUZzl{O} z5?*?ojr2rQIeAxWDeme<`7<+x#+Bd~J2ZO7*+M7^tlqh7o%HY2#Tb2U|6nRP{zCdR z!cV80*~=G4ok}jhu1*t_3$F>};$Mcv{6W&5PAD#Y)mrNK?lMhSLJcHZ%+w@`h87RXoxs9`NW)G!V22`DPEUQqXdoX$AcZsoQVX4~8{ z3PDS#T3J0I2mwEk1|qv9YPYOjbb_cWQ1Ma5G+deY662=Ko5|$@1a^r&@i&uKmB8JF z+Gb1tq%tBojg{hQA;lq~4#xYXEhE4l5Ulc|TPHA%@-~;4J&MbqiDPx8J+(!fJi}Zk z&z?0q)BrWl!c^vQKp+TpAhhGM*(OcWq#DNk-Yt&7cHm;@qCx_-uSr%scm0qNk(;V| z)?~UBnTQL06jy9IK{}=NUYcxHYpGb}y^kOMf>Q-^yX3{Dxq9bzX(7zvPf7T5NwK>& zAX7>kpgn_4?;gBqZIVCUDfyuD*#Bz?;iq+Pn4Vz;M=NvIM(xqk_wr&X#mZT7Iq zzzdQ(6-a(!VB;=4NmfM{O335FG~wrkPir7$Sd>~1V8jl2Hp0YiOjJ1}f36oyEInr* ze*E#%-RBQK9x+n&o9o#%GR7G~^Zl2%?>@hMzYqAp1`K?JF|!l~hgVn)0I=yOfp#E^ zs~4`vZ5EK)P#R?_Dxa=|G}*p|l?39H*?rJPQ^hhxFI9<^7SF_AK{iDM5D9%makn(R zhH2fL8d&^eZ*Rx|X?Q|z=nXGX`%tJ|Q;Xgq`tg4M{_gHgu6+be+?rCHU1)>#CxS1w-k;>??wgy2&|NDLl~4dBw;YafU%%`!y;U z*FR_9?D|jbfnTw3-uturY@BKVOW_6G15yuItLTFs4U?lE9u9sO{I~x$V0#D=e6Q!# zTD)qQwwBZ!UAd5tga4ci>Pu~H(!{S3tY^9W_~k%G8tW1So~p!UR#hVCcLQc&L*%-? zDA%~y%LWqosDzq!(vGVR)1-MCXcYYx_FPue)_l~h4LwmJksn5(`Qjy#AMEK7(&B+9 z=~CYq4^)VcJx2NsS8(l3uI2a`(jWjA6C32p@e15FUawBFDD-=dd%e zgwXaD2CzZGVpDVaL(~#X&(hvT0AlN1YJmDd;^Wf8>$;A0^DVAUM1DkwZKxEf+*)Zi zB5$Qiuv%=#H%URzm6rSI&Fx@yJPD{KwZHfBEa#qhAJ( ze!|$*@!-*?&u{+t)B7)Y$D<#A{PG?aj}Px3eS$X<|9--~H?KdxF0WB*|A#+6`ts@Z zPj}eJh@9HYa3J!9=I$&2=-6BOSmP_8H(^4O+wuNA|Lc*N`G%e=Gx9B$F!2iKp^u^plb1JsmjR;tW zDx;~mt(Tf0M#W^dA;PUMSiq6naBD}(1BR+paZmG9kdV1hO_OxrW5Gf2l|2I_JW4xX zZGmpsJosM75VV8dK)&|?Czv+e53 z-Cb5nA634Og;TTbR$Q@r+pxT;0$^C)+!Qs)Hk>(1AJ2<*{%5oY)k^c=2&r`@YM z-1nRN^akPL8Z=}>L+jSsSO6OXy|BO&gj+fDa5HKHjNMPwjXE)pxvr6cj3;}}fg?n+ z7MjR>h$6zc)-wRq3&#w>cBR#G+({@1sFY1 zR2ubp=DV_=@Af&%*B$QXo8kJ1v>#_Ipy`4q{sPeQ2e9B!Q&^(JNsowHU=-vb8rlVlPEv?7>Ua6&M}*33 z@7{m<@Ns{TYz~ZW;%B)8q7~`b-Tm?x`*k9qHmatd}`iw3{Gf5Qg zfqftB!2*N;hSk-2Z^a0Rr|msEtA&G4IXf;weDvk4u;%Dzl)43%qclR%bbN4(-TbJ0^i$3)qbd8@eL$T zLW=Tz#w(NBQW0Hi2X%j43L7JR{ads-9_{hpInGm3F&Oh8a?In=46$u_josRhUf+ z(^_@N>0?(ki-@k$-XgiGS7R};N)~?$n_4p}N0k+n>M6~g5(bfz`UH(TR{op|nIjxs zDsoRpTxGsv5*RA$)PjbNXM*YD>OcaB)+a`n?0q!Ah#`4#c#{o^O7YlO3Aeo}T>~kf zROBaXQs%4a50XkS+YM|VO}7`*Xbwf1L~9}@U(~LJtY;f1bHHk|^G%COEmlfeK}rj{ z(ojyUSFC4%W)WzPNM`f}`2O#o?|%631?klO>(EsEFtnre2z|F%P)A;MF0M4UOt7~v z(B)$ObpP${;;C~Ncc?>s@y8eNX!d@^a(|u4@V-|+FrK(L5s$rUYmLRMOmP;JTZD`@?{qbZ8 zrYGs)5z`{e2F_SwaUSOG{+PJZ-Y8+Vts78~GSHD0N}U$c_~se$6c%JARSnWTrC5nr z!&6FM#u&9%i;f#LNRwCnbFV3_yc1H5rBQ1`q+S{nAU&g$-B{`S%w&9*=5$BjYj#Go zCwn$~#a6BMFCJl1I3L3bNziRJq6hdR(9lC?dWUEZ^>zY(%Mw@}pnjsGW1iVUeaB+T zCWV!spe2ab4?z|K^yh6r=^-=HSD4K7C6ZaKvGZwRg7Xts>@Ih$XGF=VLR%U0KCi}kwoTf!Rm!e83hFb zV(yWy5fliQNaaYRdW~j+@U1dv+DV}cLwzF>D$Gr*8O1C)&4Tkgl|(RO)#r zP4*GXJI>cY1}w%kSknd7qnnG};`z+J+YGq<)k703f3;KKB;-a=9^yvP6vSP1dAJE% z5qK!Lg&lGYXv>#m9)C!jjEf8=h9@G4Y`%&(RRCYe`EoZNfd?10afipFVG&g>tt5%D zb=)JTCM!oXD0V3lLlJ2KQ`yV;eEsPB_KNKrBXERfbXJTjit|IA{c8B$f(9Ff@0FZp zRL`ykX->rnF#{BikBbrJXp#NfkGVdle)dcPMD>D87K ztX)qhEg-*j_%tML*gw4@u_A_PH9h;$dloUlb@Sb1-3n5iNQUWU#oBndlP#15I|=F% zsaJcCD}AkmC)w`X@Zl1YU*x{#%%XT=&E}Pr|22}O@snzkc+4ay)o4Vt&UoEZris6S z*P_$z#R9G`z>*R$;nxF{%iDg>sL6(MH1rn~#wjB! zBU028%6?~Mr(nc3^`683Z7>FBLIe{(J)V+c*Z@Yr1dTihsHe-Axefe=cJ zhX>c%sb>9m_{CYHNqJsg!h`cn*(NojBDmYqvjMJLU+dM$KY_y8yiwS9Dv%Z+GDH!< zwm^eTNF`4}WuMqYyfwI=leqHl3x@g9o4WpgTh+xsGvA8}jO&sT7tX>`gAr?S}s(*yo;S?D7ElEX|@@r;n?rxWG zD^@I$^~b?~=_D7ci~e>v!CXkxmVlw0PfvmL>gR*t3i5ziQVIHdbE^?kx~h$A5fgbG~uJL5)hLQzx?v$GrC}Xct88=-TTin zes>25*2!dnEl1jrZzQZng}_J^v(Q#b43$3L?M{zhn5gK{cLN34q=NaRu{j`ysAQnD z5Pbq}6)>I%U!N3gIciH}iGe8^Vn)*DY<&V6xZXcQN`&P3@`kX@_5q`0D}#5S-og%8 zb8bb&Ctnd2pBRq^%QUu4B9GF5I?&9(VSXDP4B7)Cuk+zL-YDa`nJpTiW}|y%@wM{V z1y8GC8ctR}xnYtO{-Y4VbfpzBj>Nbzc|0*!)|c+le8K83ZQ3c*+qqz=F)KaE0+>4X zeV{@K@lQ83tra2d%LAq_v6(^`f|S&(pKHLq^eDm7a^OKvVfBgfs6{@US61jXn z1$4#6ZtkA$2AplW(y~$vh~5JSS`zTKq8o7l;b*%=GU#eUkDL7^duwq8iz|=n^~K^Q z-Gx)$ZL8^)!XP;iMQ+wB7N(B}awaYuDUCjTU4|phqNtZ-_yMq4vxJ@KC&6wbiB@{H0aToEM}K zQR9cSU?Xh5EqJe)F8M1XZT2LWGF%IUI|DVb%*g;UN&6C$@@-IGlS}=;yuki5KksIq zD@>P^u|opDP^c|InQHT?q%9wi@Nn*^=}KB$X+?C7jNziaWzBbLm>x%J4LQ>5jN_IS z%*g;6j@6i{T z>5{sGdToFFq)``*ADm%9KtB)L(j2O}6$X)P8%!l*4mL}GT~W;J;e$^6G?Nf0&9uzL;o9$7KICh0NEK^_#D7}ESoCS~Y z%VKIyT~uV#Xvv_D`Vg+Q$>kdopQ@FDsP^EYx;&n4Gar{G^Kl^rlKw(DH*36`>9{=i z+E<_mBC@WsuUHHV*z@z-LGib~mI#On6J*}-G$AE`G8pQ2LplYM=>ZuN@R;$^J10Kn z8DuR{t6{S@h-^sBg6+g^;+hQhCNXmB(*rD@6Idr+}MQ;!1F$489OW z$=U1z4~DF2=3KC}%3b6u$RD(zl76KSvwJ9EF~+ye9bINAGV@4l5jHO3aS(o?Pv{U& z5DS-Ic{t(mKosKS_Ikfy+|wRbwJPAk;}h(RQ>zB0W4+Qf+{)5b%G}lhRv;YLgxGj_ zSPnUqOplXwX>v$`&fDQ=P+#T`mDmQJnitjXni zMi}KG7nxmqjIgnkzGgstS)qe*+vy7@|G?wfT&6$@^;qAdq|t=oA}IcE#K~{ZcG8V! zn-tnLj?k`#vCPw_;^BiMOJ^;7PpOE=5&G~TFTA#wab6(52tU-Xl}n~QcWZ0&Nfk&R zLyGCqxKN@i(LWHY@2PSNIeq8As}db5t88xdOu>3`gh1oFyO;WrB#c)cySEH~;zL-EUllFe{s9D*A=yr^PbsJTjuHE5RK< zt!jr88Unf~To2LLU|sjJF>OD5`S=5>aILQ82vhBMFH?_u_yWq|DW(xW1KsQsZt5W= z%P^4_RNJkVG?q|S!0|#jI;&bBC_SQ*{BMs+Qn-2%cGLq63+vomTFfMN*yzpK$83_?Qlc%e(y9U^haVgaR?pKMe(?GIxO_lu zpIr;(O93+LOWxr8J4m- zI^V6(8qo5GQ5pxVgE$tof`=3Hw-?uX1Z+y=wpJu@y}~hpcA*k)RH_EvQ_|uAdZnHK z<>m0qjM8;g?$6La#J9`xBl79>de6twv()WFF(a=0vdTUgi(_GmG*sisIXtJncr>so z#2dj;tI0DlhZ)vmwjU||5PCgSk?r8#F&dIq5wh82yfs{*{A(T_+ShN;dPN>v`cm!E z*OpY<4oHW-wIH2n_+;pL8X3wTyXC6zNmbn4!jKP0dI_kFL5nEy6Xt=#oQcn86b2CV z5-9N~yH(VT+Z5nVKMUtAsS;+=rGq?j$FpU{2`zZUW_nTYPjLsEO>^Z_ zL>umz13jh;#kyV$Ic;E>!dQBY(Q>3rlTga`Gns>FylDOR6(}QO1lt1Fxu5x97kaNL z)L~h~-0-HLWin(%Y@E|Pi;nAxZeN$&&V=@?kG*+0bqpPnipl!~mW1AiZTv+ADp#kR zng3o@p z_x~mZ4|K~im+`RT>|1``5xiHnN^q6WE_@^Px8~gHl5VCY)>qjYwbhi*aTcX)k zXImv7ASBapI?fE(Lu)}r%bp{hGqrSUoT;Gi=eVcybDt|Ap zN-#Z6lsVjGu5P4DJ&?8>nZI0}czFgbVEyRq>X{Q|o+t1K)OV;uv@5G{pBIHcl2w?> z7{d;%DBX-w37buZOq3-~OammN*mN>e zv|Ry8b3!+AlEVIgmITvqs4GHXue>~Ht}_a`3nMDznebyKYUu}vS%3nH_&-mH7)e%y zt>rm<)BD}!k}(&)7!YOfKVx<@$CN|TN8}JC3(hUBi&>fd0{yLp=Mi3H^P&&|4l=!5 zM;~kaso#nadCNw0ZmBOdA|Xdlcho3{tA5%>w_T{Olthv?E)5I29FVXMgvsC+g@EP6 zv`xt=iK*uW%Fe)J*=qXK_W3{5(2Hup2n4n$#m8g&1UpDor&eK?d&Cm$bK$&(Y1h)4 zH3!O?kNfWq4bl@}wqkZ!v04SkYC-rE)^iv`K`E*P+Q$SRb)73+YHuk&AngS943{}W zd8FM@$XsMG0kyif5{k%%FiWX_j??_cfatqIVp%UOjs{q{7Qe9Bx)Cl#>iJR$r4vjK z>d0uF7;pW^B3G)U3f=eo>Wbq);H+Woi*hu1s#;XWtq~C>n{tqECGp>6YQ{Tw!E#vN zqI5YeaDqSjcT_Y-^MT^(w@3eFKP_sVTl0bP_b!@~0>4~Ax9X?02GgWU!@+n2!$InY z2`d+DTp--c>zciII@hAah4vflNu-j3D#BQsx3$oA6{FmJoe`Dq>J^-T+VL&Wdambd z*r}GFVui^+cHm!Ei>Ft+E3nP0)e^4$zPlwO84U{7p_MBws5$~R9tHjlV>kHs+~{4t);jL@h$|T#4}Ry?4^JHL z{ptj>ucnGHm%e~1ks$%(D8&p*!{>0H%@;Q?NO#XbhH1D_iOY+dXJ~~mgxd&+|Lqjk zq$aYO+m^E$yy9WXa^aDSZD^5-iZ4mk;DXhej?Nv& z3t;Q&j4+M_c}AEU&IFousJu*P&-o&>t+Q&m_5SpY$eU_Dk$#~x!P0Qa)rk4&JG2?5 z;rtq_fHtK;qn=X()DPTH0WKY39lkte)$88Cjy$d;m*#LHyR9-ji`&{Xs{zdw@9qXG zKo=10LOL1ZMd`|)MfOT*eTxc?XsE|rhl|Zr0(^Zd>q9`*aW^k7uvjJsE5fg;f2*x) z1Ng3$4us)`6;&8{%wSw;R>J&<>^iBMlQf{T&vOf~uZ&tcZ731QbnH=xKKdPM)2dW8KXGDc35H2{($n_SGI}T@`Q@jrS9q3CacfRN>i9g95%#n;~zp`!(7VuKt_pJuvVGqT%VP>T@lGe1! z=phXj|5-l*!F~2XK?RUelyQ%$7B7Q$xhUTU*AXzW5!D?QQ)b`Rw5tK?2PJdqsr1ks zW?^V(KfTtZ40O_nwEoH?P-i%VC^V;%_$_N~fQ}D1ASgLf z#dj7T-UHRSqwU3Py7PChKmEM^@Sk@dryu_FJq+OT?xYfGHP}Aie0bKsuLv&D5+sGG&%SFTxan1(N!T(&&q%Qem7rrR8-qI+n_gXs3VdC4MH2t-(+gjCkZ zd|vSNhtH9L7h-3LN~22o&eyhbfK>zR(3w@HJ<)nxfb#J$l&(xWeTIZKNyjxCXY_F; zo&-Ju*%94gZV=Ny9FVP~E36|oS)>-Z<`CtPHN&VINGMCBLVm;JgghGR{}?nxYZ(aQ z)c+H}RV#~Ks90|Cg}7gn%NkZ6_ba+tam%t2EF)p&9dL?_E!R*ytN zJm4nOJNsLcsE`(Tx_v^{rq}(^zaWow@3ZA$NjfYa639NvY}#=sZR>NtK&>`As* z_&v}hWTz^EoGU`{Zf8(8YFYl?F(ODF*q?L1VADY+Sh2K}>JfcQy$>dFp((aoUW zBTx^}Nw6fU!$mU5G8*UuT5VK#8qKKSHjWwtC>M_^0)|qLne&HkRN)Fk)W?q1{Fsjl?J^XmyRcTngNjaJwbYyV;~MMuK(K?0yoV+$-%cq9~rcv0oI_4>9MyNk0nzH2nW2acU|xA5Cwjcc@E74w?tfS>x2U=C{4}wqNr)O2 zK-KG&3y|I}H4i6}1$j-u^9y}k6E1MZ??4#T!BB$Y{M$0YhU}4&l)>UV1oc*t4g~E3`b27Uqh_4Jtcr z5G0Kzm?F%fb+q?$EhyCW+o2vyy#}ccltZ-;PWZ{r*;SyS2*wbc)dvOCzy}G(Yvf09 z=>+LwKWa@=o48oeCi;9fVL>&aA_Tm24B5Yt;aP^G5g-}0j(TMwuY;6iA=S!Ot(fyD zO_6FC{P6SZk07iFdl-%&gTUiteJ4+cCy!$%P53;mMEFWB^*0q<+f_U>HghccljYDP z=Pf+79T+C#)lZ3c9gOS1uuyc-n6a2i-?mUPbEW7()q*Pv;esA}V4*tvfFcg?~PQ;9rizmSfYI+bOmhq><_(nOhz9iovPyejI7vA$F@(ta@&P^Z)b zhdkyxu0%bwC6*!Mr_L{&ws4su;6-0Y=d_VS>bvalrrTBppW-uH3|jP|8uVDLj{2U> z%Ig>Py1f!CFLEjQC$*fSh!lAop%u*aD4(-K%dREDY#d*_&i#Qw*bfLQSKHeqy*r0# zRw2>!4pr<7!~%7gW^pG4&+rDDtMG<>vs=47QX{Uk*4ioat5=>o*$&h+^m+xG_-b>w z26{0->&96N#njK$LkjJ0a-$SdC{75A|8hH{2S0fL{94m9wviJuU_92wGy8#4oXp`l zgI!p;dHe+qLU!@jP)&|6rC341i=qyr(e&o_re42q{ph~Ed`jbCe}HMzAi81qAj(k4 z=NLRzRtX}qWb~I_LRK+wwXMEe3K-_1OFFmvW(p=61N2d%W>ycz_&uXz&_!A+>~;qV z=0jWKutW@n9f%@?pTy#Po$o}L1d*cz>t#kuxXB@j)6?qF`yR{h@s++>1sa!vxe?3= zu=EG)6=*5?5KX8&jVxViXKZR$5MxztX3$(~3@uqZbK~hBLmi`sl3x&JaZjLH1GS@M zIeVymZ)ixaL0+pJP^l;=*rn%A0;@VE1p!l=GX5v$Iv%qrfZSA7Qs1fk_EA&W5-*?- zpgGfOjyRv2r~B#Z_LAD|;Jk>C#`#CRBQxVML|WHr(NYGc*At6`OlkE}cbs;SsMC_O zUP3^o7`DEAA~~=E;AYSmS&96qDO?N~1!|{G)%{$x1?g#*Je*sP%q{{G;=T|OhYa-% zHfS@wx|XFCmittsHtwrXt%#gaa&$DSuJXE=zEJSC;9 z4Z+B0z$e%`lbaY@*}jf9o)5@uO;)sZ?>54jY%@ z;>GQ?ejFEqR_o`DhGMDBdxib_F0!DH4c{=6?egN8MFz8aoUYQ_qNQf9rQU<+M9^K# zb)%!JmqTtj7X}QT3H5NY0DqwsYgL3G2EqDjIwVrtZ(me9$OVi0+J}n6nK2Kd3%x!S z#3Qn4I9Ol3f=d(?a;B>nH_l>^PQ}W_NI(KvNN4Pnp{2(~aB0L2GSSry)KMJ5$zi(8 zi)Nh87lCV_iKQ-7HQLuOeIci#z;()I;KPIVM&57FZ9N`n_v1?Ng1)+E8{v+VLH}+2 zg0G>sPpgprz?3K&2Jz&6f}%A3&C)cdw3E8ThGa(m3V(Pc@MZzo$%CV;pBxMkh^c+K ze~v^G@Mbh)#qM~CEnsG@jHxnuUUBPpcES?8FcZ1GSGZr$8Ge8gwh}y}RTwnFmsk|g z6OZma2e#d&O_r}C!EtBQCR zx3$SGQt;hf-XxKt0O?fDf#Ur7B3d@3sWP2*fiv|;v8+w4+D8KvmJusA^|112=)OI; zii0nChUQ8ut!MZeSGzr{3r>My^u@j7H=VF|c?O=tjezJ%m&@+ZkjcxKAQvx^9Tn0?w0Svn%*ma9b*m+L^8yMl` zR*CO!FQ(7}2KKHVi-Zr*Rx!FsWtay<+H~cI4Q@8Hn+uDam3&HeIU0O)aCnTY(swTJ zj8q94z$+^i-=G}Q&3tuj_W69NH|pScI9Mr>Tlm`uGT?cgy;ewv8ecc*aP)I$G_6JW z+PT{)$rSWHkEwB6`Y7nt7Gwj|it<{`^TIUkK%oE-?&K@Z3o>guFZ52ge?}q)byMCC zQK7U0miP58J-`C!o%Z;Jme9EE7^-Q1ptwN{%`G7rsJ58Df=c|9RsFu1&|Go7efAA# z4viKM2XZR1$jx}P|2+8X>vw;!TlmWysY}GzynI1Z;$k&O1OM&eZ`GI!jf7D=HXdt% z)$#1)PXyJ1iVLebo`dIpbLd&Bl8xm`KcpklbY7(3L><_A!#ZGnJqV{cGoqeY(V`hG zWa6&(YXi-7mwqQSny@G5sTh zNXv(N52jd)2Un5Y@Q_y2Ej#HT!t@}m%2|LdO2?vz9dsXVXm1P{L!Aj2HPJi|BF|)v zCWWZ2YyzP})XI)MzAkoEu(VG?zwV6D_EMneE5aI*#&SK~W*u|H`jT$jx4$dfKF<18 zqopGn-?b0C&iz$(a!h_s1hG7bF0?BqEv=Ux<0Z6Ay0(A>QW&68Pl2q4%=C=VS)3$q zM9LcU$?znWP_0;04BR}w&1ahR)23_s-e=2W_Q_0F`{UZuL**0F8czciJKrJ6m0=8u zA$pw!Q^4oZtMm}PDp-h=vVwWCfaePIprYvJ8aTI@yBf}m&9SWuJq8M9LJ9|*ujXU` zI!=L*`lUG^g8q7`AQoT%(SagcBc4D@L(q=Qyez|dYn0ry9dMr_FI4pP4maWvr#p((Jv zS;&hWew~*Ho`o;0mTy|9W^Io;HkAm5AveS18+u`%mgNdMT^!QeL6PPjov%OjLo$_A z<_02lJ);(?8M$>@EDD9K7g5`-{^_AndPKsx>rJ5^z$kD5lg`1g(H>}z=>aCUA}~d3 zYFpDw{{v(gl6>JVu4L!96eFi#9%kc_NpYp+)Q6=&swXDSr0dz{i3NR|V-_ywi`(Un zmH{MVX!)F672ex=kfurOM#wgc-<(>0fL~||A#}*vg^j1RtJ&7xA@#<i>ivZ=PoBHcgqhDy5?cF9}^#&ujNmkRMK@J~%ei*lV zpdnt$lF6TICvDj&eHLflyvZQ99*vtaSgd3`BLX>JuNjX^eZs{WVu(=*HjGJ>MioO2 zl%EFO39uGPj5XNHpt{mKz|xmXG+dbg2hFyCE@Jin){jn6-E>)Y6@wS8r2~aQ>3=CdxO?Sny@{)a5(60psdh_)=Tbk3g#b* zo8-&C^f*U7*#JdaU~uHbX?IN^2fu(_k0) zfEml%SCBl=D2Ofl6jrD_=D3Tn6O_G}Jc}|=q5|Q@WDrPM7?J0#glXQK^@?>>WMb@# zY^wo!15BHf?bh8=?Dnan40#%Na}O@+Q4k-ske(l4#!cOEb+cCyNU&mQEg;OpNYL3p zMo8G{Zr7-gob&t<=Kl}H`GXrLs2AC(6{#9+`ZX=*;ihr-dQt+Unf4J`7cai zji?EdE_GTEV>n}Y-QYJr|NI-n^X-t5*rXQ)6HIT{QIkInW-D(?5rt&WJfIGtCnFW# zPU2)70$bk#u4h&e3c0dG#4`9%H0svh!@-q00QJCP?}ZG7m#YHh!4^x{Lp>~a!)Y$G z2%dNe6gDf5LF`4a1k11S2Y9Rxw~I)PR5jXbP!=G%iWN7sWh9XbfKwd9B^uHFX(mG1 z-pu6EYiGDOHm(Gx9hLN2l-Dx$!CTWGn65cCDf3+spBbJD8o(bDqLAzkP+zIfar=|} zL1MsRk~>Oh)6Q&$0@z^>TT5W2HhG(e0EE*L>csY^8Y-b(lfMku3Y ziBN#$PBOOrspU*m7jXk9Sg%EoI06>1$Hw{D!~#BL`)U-0*l3b)(xe0;)KEFU9sI*r znP~zTiGk2A3l=$yifUq_LzCQWWAyYHnp@Z8?RDHLZ zUcb~ws;cj7x0X;47ml-GUzEoIzPAp4__yp_0LQ|^T6?)SP3aDRMY{0Vkf`dcdE@A;Yx5kap124}N3dcA=>pikNGFZGBh z?>J|I)9VtE6g6WsrsW_J5)=JF^w9QuwG5Mm(hkGruh7`$K{ZTI(yBs@p5XsQ+K5|F z?C0o3ec;PFFkyz7z|nV`?Bv+nAMoh`(Cfrt+ydLn77{FdCuRor3-oV3MpQq+G(3xP zT(U_y|8A%WWfUjKrm?YKiA9=Jw@oUfQm*w;%n;BKXCIb#B5n}iOp5;p9-ZL~HU-%z zZoouY-#`Uh2uM%l7aYyKqZScNSzf064~sT@zOVYz@{q+%SrIxe}WK0@A-QHy-q zF|PnBEx`pc6F9u3vR~+7ZtbAcI3nCtCQc7>KTfaQkzg59?7jXHzsNH-_iGi*B>^m) zXKrDzNEjy|tLy7q#46BfVtG8hrp34^CnS&<5h*l9;=oc20dJ_T@{HW2T}CV0`k6Ql z18aS<8=yWs$fzY&L!6f&Vhtb}*~M71LS!>iFi!SHVyVSQgPc!Z+_si==@JgnP@SXI z?F}-b@#v~o1AP9+e^cRdxk3uzd5f*BKcxZIk5()79EBRcbWd!WK{HIx&=N(lj7*|P zS-2gOlSTW56(~Q$^Nf?~S-Cw-k#qq$%||8f>J?#EKx9Mee+&r%wwrVI9=B}xS4mb( zZ(~h@d?f}`v?^{^mItbY>XV?RSgnc~qMF$%noYik>qq0^lB(nuHUdoSkRzZE98`cZ ze8j42SxjT(bXiWpJraJ&5>s$ckOM$H$l>6~$xtMC%pKLZC6)0zy!gD(S`zvheOu|T zEVF%YM5f00l$Gy1y!>lM$*ueh^Rfm+7f$)LTViSVWu)-u60F7ooa>e*k7A_Mb2deEE;gEa3Zs)5Fm zFZZT}y2!woOD(?f$zCf)fb3EwlN32Gu2ADQB3NzaKq7);3t5h8d(A#&f|9ZFI-u=fH!~(p1{cgYe z`1<{)U*3LZT`@B6YETJ%(CS$o#Y^+HV;WZOdfGM2m)goCDX?|)`_bs}@!9zN@j3n( z9S=|L(BSEOsT>%*9@QFlUJg@S%zMj6Q&$UDiYv{AgdP?ObrxkipfJKzw=^=e3)T_C z%wP-Qu_z@n_piBpW-+_mh-|0HGJ-_ zL>M4aF>9YwEu{DgqQPli=XsH@AWswXMGuxCPB}Q)3I)aryIRcCadQ!2J0y}^3P&OjO>wfv76YMO_YbfSba#h4 z2jZ&O9CvLx;Z)@|51*-PwIVnb#xTuEUV+|0LI}}a)pdaDK^;T(>ha7i$x={aNZ~PR z!G>I0mCpFJfm5W37k$=G0xk~$CWipwYN$*oeAEmSFcGy3Xx;dHk#2xm=;D&}{bn?8zVvhS~dK4-o^&pkMoy6X=nV(0W=%pdF;?l!8rh zPDzP!*_Ldz2U_ZUIj`~{w73#-0SQK|xR!`+my!1mD9>eO4kNZ7PA@+j@T;2i^0Nm# zb+Yk}E^bk;64UYI)Wv8^Nl+*8(14NVLKS_1Q`wwwECaNd>^? zAMgI7@f(bLE9F|#U^hI$Zu4pj@!@dTQ7_!W1t}4sT$$LOqVBo2^etjtH%1U?=hp6Z zZ)=^&#i&oM7TXhhj;!5KzPL12pvhOwcaS(JOt#{ts1yXo}OMLPAS zwQU>0=f=P23rw}gK+w-4k#WSZp_CeK@@g!8KS7tEhJ}Eu%lxj$i3zK}Sd;y%iE200 zkce3b*t+Ya-_`E8(&}OFcW;0AGwbLq;jNmW;*j|aP_aDQj}UraS(8RwOomS#vek8g z_OukG=y3+=dbT-}x(8Du`lp*nJ4Oc4Lp%xEG3-UC8Ab8d>O1xYoHP)Or910B!qf{l zRV50EAX-`ScfQuL!8>vR0R_8$gYFLe^O9lQJ+}kTXrZjg9E_oE4UL#J6=W&G)?^r! zWz^DM?hy6$P%O=Os3#?%&J)# z&E{@0xSi5rvU=diiiXMYp7{?lFWvbrc2-0u^o`N$u{6H+tdyO1!ZtH6*^wGQ~^$!-N#eQ;LnlreL+|vl$I`6k}-<-=Jk30=FQs= zqw5do`|#nTG&#UhHQfqo#2_+mZcvuG&@)qXO?A(RGMF!sO(8-?w0;!sKlNvmmSJTt03>Bz=Ko3@@5%i6rb$#yt`VrFR z8WPg+3>g|!?wSbq@%1MwzAD=#o9+Q_U;`Tdxk;}*=cSD7fuQ!y>5R!Mq|+w42FY(S z8NsC|)Ug=zBL21TnuN$;)?GP`X6*HxjJ<|*W}53g^a0XVkT@J{aE6)S%lYy8tRj9`G^Dr|86k5cVMq4DZ%paQq3%^j>6&u)9}niw=ce>ojle1I0(_=+Ho9%fwhr)axA4e^FmaKCNLAW2>xScN3I;Z&m7FoCn1yCDm zGi3RfdT#m71GM_tpcKJ;kC^${WC;;`Ii2{G^)j@f?TdiG8ai#x6G{hYZ<`=Ga?|8R5 zq49wjVND`Me~rQSH;ZBhn6tr3Ip-8Qs=43Pm-C>i9}+v@X=3RrVTA~#oCWzWVRI6| z0+UL+rB3xMl~sA^u=E=Xu7?y=lO<7(1k>(GroWhvNzAd|N=`-5f1ajuMy zv5yu-htzR!L}9s}fla(KNK=XBVu2NBC;TAl;|lJFHr%N{#Cy365G^4I%QvGM$u}d( zDujRe`04ZV?)^`nf8IaY(GUFN-N#R9^er}ZIYayND?m3FH(LbZZmWhNj30C_a1q?C zcvuifaxATz>!GHA?h*LIFxi6;on3TNb>I18LzsM>P%3IudZ3(jq~%MeR~x0nT`U(* zZ)Vr1cdhOZ)otDt=b}jgC2&TpZ!LtA(MTBL!bCx&wKZrh&mvwnFTc>FQdEEgl;o~2HKzj6ENu@$s0R|Mad!dFWh>jV z>IViTZ1wP^QL^xt(P{QEfaT#{OvAP|%4dijX!GZO)RS+U5h%u@3ts03%H32Qu->Me z!#`NWrfOs?q z^`Ybad;Q}lxxAH8NDj~ts>(t`!i@@=_t~YKN{fZzZZ-kA%Kl8&(45YL@tVPxdG8=U ze19SFRct4Q=ykC56ck9>9_>FCvQj{@4@bPF&9*6S>eHQw0XK*haN0u8zZ7pTt_^3M zSY)hH)Z5FH2s)4~`E&`4q87{ic|3BrGvHVB1Xu@e|z z;u$Ma1rRwmtll6yg4G;yYq#}3Iy1~M0@)rCwkx{Fl?EGk7tSzmm}igZq{#V6yy+QA zJSNBihF1|TbCzj)io)-=Xuk(~sLp~g6CWIavjgigLpB$P?Hg2A!cnwlz1YKqr>du0 zya%SGut5**0m=ik#YX1ZXb8We`GlnkVVDMsX4q}o;!FoulQE7?jovL(+sM8Bb~Pu} zwkn#1sK_7St0t4-YA)#~E{c;E(MHZ=<5DA7b_+|Kx2qGB(hDyP! z0b;aSNnjKz&oQz(GBc39xAx4|78-CZ6=wJkKTOv^8LHJhbO;(a&mn7 z`1IuQ`N?o}a{8E2i=z{mwA?pF#OR;|tAepxE}DS z^i!k-Gqb@9QVs8bv>!mib$o-Syg@%|rQ9Fs9=>3{c#6CrT~WVsO6ZOeFZdBx+In!2 z-RViC$&1Vw{W{#@>BL(+adEPd44n4rPgq!1hJ&f*=!b`c9}G>*W73e^vQ)n6<+D&e zwkeu2&lYp9v9C@H@Iyjf#M0U$A+s{5uTT~wZ8C;#`(j%qy;J~gKsFi?0V*R;X^NC= zR8<)^X$e0vQzV~EJ&>;S+u6HuzrL|Hh(_dt5kQs6s849NV!n#7_ zH3h=M>Dq7IwIwaG>1;*$6I;?k1WH{rTmqu#t(jWUnpP~UK%MnbqDFBl%e9lp4~;)@ z>*$byJGsRax*05y|o_gr6{kY2bX?9h_XVt_&uT8K#OV14PD6+W9kMmGh_n4~V zt%;!y=zC3AaL5EgnNgncs3lRxeFCQ8JQ(*IV9wkClQ&+pW8B1}@Ic*L>)3v!po(1H z1<9|p__9xnSMB9l>)d@Hd)#CW5_vqxf1{Y2sUl33L^KQXC7bKKvQe;03bR!Sm+&&( zoU|R|?G&D-A~`zEvvt0qr)Hgk2E!hP&@(_wp6C=aryOn0%#T`u3aqhMnNew@<0NI% zYx*>t2>DYJxc)(UG%a6@^8#l8absc6`VQ-Qrni87A*AvaI(!7ILYAbilBNu|_BAR1 zwSKZLJb#yYJqp8%&UVzsXw4oCFt4Qw20{>i6WQ+F7*1tQ?N8- z@OhLCplw3e8K2z>pV~?BiKt&m#u-8;1fj{W=8+93Z-vpSUYBTqG}zjboRoCGSWrA3 z=Cy(+2t6!sf#RA11P5ID=AM^7ibLvLE?wr&c1M|ic3fq+7ZR&%T&UUj62&?$7pTgy z*-|GP9uLRBkkm>XSsK>H4rwvC&(Amw`j%9!OaOb~l2;G}aSXb#^yE7p5C}@&6?Hq3 zoDKEb+oF{D6UeNP=Iy*nIG=*Jys~b(o^6H-?di1G8XO&VB3p!9zR6$4Ta93Q^5vL*(}4qMS@| ziI&~nq11&5aYWW+viMSlSEM+GIs(6+m*y&$K5GcVOrEX?0fr*i6xjOm92h6 zF^_0MBwSxg#DNj{D7XP+pgH)3pspiMuC{ENQLj@C%NuI*ENoc&J#Y8qd5WF~z=hU>px(<82>n7lb892n=g@N&Im40M7(RnTgYp)eaNF{4VNZZGSRDP`pBIQj+kXD|)H#Dp7`nSpMH4v;fFu}7_s$o8C|@9O{t-5hF36D8qmMDB2XP`QV&$7ZgA-l?BnNQ zDbt0YRviW413sgwDOgz?RQod3X7TD@`~~$Rr#HYz)sk`nGcNTS`PHK}Nm?ae`v#~l zb+LmJMZ{;7M_Yq5T3g^e+=R;FOf*3KfY<>Cv@q?)^6B%X9qa7BcZJ^xp1k#81K>H< z^gZ3U&;$^<5hb5+|<^}9tcy5nX8VdJgHQj{Q;XmN?g3f8OR(I z6gSn84LPB(Hh7^U&)}%b91T#^PT5u=8je(H+WsL!zwOJwr~u z{*?2t4;h|*eaz{vcomA)eEmVA$G_rjkB9V7CIv~=mQ&ex7=QgnJ}NE(c_ps6%JAUx zk^A9%-VU3cm1MWI{=X6ZUyB^H_oaajitfMa`YUV-Go%Swag}FdktRjpb-#>NQutEz zB9$jL$s92JT0&vZfRU6!d?C$;{O^FOU~#RfQXpj?kd37dqrNi^d@)l*OMv-+#dyJO zk!5|qXES@SWn9@qF>mZEtX+N(EcFq$aGe`=@`w})Mq@s6`Z6r2i{z?in2xt?E|<%a z^l@1E<}w4n&S6f8`h6o!N;W=G`SbMMZf7jb&mlHJYC@{tm~7W zi?ntq#0qD&h)IeW5;BPFaMcW^DhaUMp*I9qlGF1HlU!9kbejsMd8Ctv$YX^A;qKsw zA-wP^Tkq!ias>y>esJQ)l*Hdk%@6F?`9?;3v(=3fH7{m>0!uOvh{v0*vXM1te!Vc^ z*36P%=bcnCm$A9YePD6hG9L`PfKTC?L^Eckk9ojFc|Yw68@%2mb&5Wgj98K|99w!g zY=4p@f7GN%*0vm2r@C2)-XuoYW}%`HU>8?fY&_hQlgqH_2D4T-Q{PqJs9}!OCS`GI z*hlCP^IOLMa=wrL9d4#?R82|KkN)AYKB5;UZEBg^8nYkaNd?SrAL&*rwv`r~(KlZa z?SgH<-GHP~7$*EH({;v1cQ82}R^Xu))@{SR*4zXWW^5<#X(?RrP0+~r@mpH?d0ag7 zTtUUxy)7XUC}CLyj~=L*<@Cjko0@BoB4agirEd($3K$yX*02KK$F?WGkDjHoMu&{gtOwnAIxPVbx5~l)_M9bv^j& zhj*_(zkPRyrQf3Zf&_q$v7&)sEQF%_n*{a`P<+@FO?{>VMvCdLbhdVEwmf^e@Lo4) znbo9$Cb(9bXgEiucI0>S5rr9{glH&xYfo>U zRa4jf9rkw^U*zu)V|I;m*y|9;K-*l{1teD^#tbyA_^Ofk5)_I{UwE1O@?EEKJh@fh z(dOJ%Fyn2kPOQN4<03BM7)R92NLpW>d*j>t6X_MW*dt8gL<%G_$uN@}HlMR&MyZ+` zJ7d!D>|#*-t%*{5mR$y^i;+zo8g+9&?8N5H4LQYqyCm#dWYdmNIHsnJHB3v~SyKp6 z$*|{YNdFl9oJU!WDde0t>4&)+C|w=#KXtW1FEGfw#@s2{4?IMmp7~~=-pFsr`9|(J zOs&S;Ht4=olMBt0$}KB01yNhFd0EeZ^ukCA0-?vf(h>*3kC|UNQBGId)gqCBSsF^T za-(}6s6=l+w9xr7KXm1|bFwuk&6G^%;&O$s*NQ80)elT0}^5m+*x~KajgZ+!k+5YTr4NIOIA*V9I?8XS}*x}OaUQF zwejY+@V-IPa1dn{YC6z8FSnzmSWfgAYWJuCYH{p%KS%sB!{ycxAt9mpO<S=Kp$Rqoxx}Ofq@`lA2w2g@cK_Y&0$$4- z94pqSvhT77yRF>aT$U%N)wHxL=tn>S{LS|lr>A#_UYgS?F1D+!WM|8=;ALJ`GjuqH zP;k|xEI=b-!s1H5vKDe%2y&?8vbaGI(+;I97dLALO~RsoAAGT@Ke}oQ6T2+MCzd1G z0P)!+sWYApDfJ>atVA5cznZH*jU{vWseg>ttlW^%ec?g?<{x;HalEFq!Uaf!X(|AH zoNaEP^CPVHj8}+GK-H-h1ZDMkf`T3jZk^ri@aG$VrsQ};{QL%dIFJAxo?)ERmO<$oh zSiK;JHiZP#v{LZL%?dN&!P9P!P7N=TCHsueIrms)eqVy0Ergd#xPmKEVF``;uyhR_Str=yco@B9y3-0!bWq zYnW{HWbjdK^=J$7ZZ$PG&OB^?TaI5;mOofbF zOB48&CIJ1!%AEKQ&7hBzuPyQ+Dd90$eS3j+*(Tx*J;?y`9(j%d{)Bl_pNL&!6{yyv zUc>Y`OhR8Ex91XuSClT?F+=&42|Cobur@9X_Om+^$trFa*6jA>arESNlKIHP@iABA zLQG#djSbg{RDV@X%7Ogq8WaJ@l*#)B>AUnccT9&lo=-OEqZLaQH`j$+(m*Mc*iPqC zIhH_yn1`Z0Yr1C`9d4DB)0s3pdl=as%F)t0+A&Gve%Pb+As*Cj1m7?6c}N*CBa2fv z6**L56?Q=$q8{Y-EB7=EQ;9BPTK(1a5=;wg4j7UJm?E~%nfk0VfjldQ6xkD)gy<;}7BRZ)ys z#jxyWji>#dU2yH}Y(o38NR&BMM~)Y9CA0_|4)MOft+Gn#@ilx=R zE|2ic^M7Wo>mO>fmPoG9)|0h!)SNcIM8`)&OM|{Gb~JOrYh~D30`?Xc^uV|s&CT@T zpj?w5fhY~vg$UcIroodqA=mcV7gV=|YQouTvwcp757`O`OUqNNm`624KMy;;xhCo2 zpA?aZuF(@K5=cKIhL?WyaS_H-WCoT@bCmonr2=mx8!(%V1VTQXDm3`JML+dMsq~#5 z_U~-YPBxb`V#)LC(w5QyvmwQFohU#A;Yg9#lcxwe>O7hW5> z29;$ieY4pxR+E#c{$_bFsUmx1GQAwG(VTMm?9p-jg+LuInNRDx8{vh>U}wfx>cBj% zY7s{{TNhxhYzO!0^ti`$W(ULu<*hNzr(@W2e35kLc0K5Xh<*9__51gC?-*i39nmj~ z@l9+(?$S?Q)KDw7phyw&|F z#8|p_5nbvoU{$!50j^f5{FWxngJ{?~nT)qpghvC?aPS}1>wyn>w?Ir3i!T1UGF>Le zd3<@4^^&?HNCeAwA!B7jSfSb?wYoT`9axc$y4elSZJ{Ht{@i%58OlecDsRUNJa#p? z+N^F?5N3QOSqR1sel%*R`t?nSr$mP6Cuqu>SMF|;FtU|f!!u2zv zI;~c7*c(G72HVt`vE0b0U>{eagtnez*n8V3WSFOzD?<}3Kjdi0@C+RX^W=Iv5Wg_8 z3cJ#r@r(1%Hy_@U?KN|!c-;)pNNok`a)~^S@$mRs=Yk)dOGY0F-!;ERA-2g73Z+NiLsF0g z&;hJ5W=Qo9F^*_G$UhK?olAQsNWS*~8fdh+!D(k%|G}AeQo&ZxBf9^vPAW1lz_W}f_5|8EG8bB6o$lb z@Fsi$2EaIWgntT7&701k?F4vWTO5J7%xA=jfJbEIxNMglgMws#RSI$|E#1AItKN~e z(9XQgy$F&**D}8(b2k|}@}(wBl%>St@f#vYJT$jC;H#)3Co|x0s!MD!+BLNtN{sW$_=(?k-0Cc@YhIm zVK!?uSds7wuE&O(0Fmro>kLPj7a3>F+UG^p=`1b8*5t6cPi!p*>7_gvll3jm2DXL9rkC zuEvA!AtD1@#hG1~sP@85o{9h>$JFbu@ zQmog`Ge{ncn{0dA6rrW2RdX)Ng+?GtAu-iKFGMk;*k)crZD+}Sj4bB zY)Y5b!v-I*+QSrC9tEXd=_}P}p>LP<#?%;Ot zYxyUt%PP6G`W1X_iHZ~3mDHw0;VG5FIHqsdk)5FQnqEgh4Zk*n=q9wV;w7@M(&!0}Fj)iq4B z46)5SSiq_%DU*_1zUA|y5s>4tMONIyNCFIgZ$1qE*8rIrt3h;%9(?}gFCXuI`a`OD zj31`Xgw`^ewlBVekApGu5B?JbCD6I7Ldn14N4Gby_D_%Ob$Cb_!axGOg)Gl5)S}OE zp%3ybF&tv}%pk<0P0owUTQ9Mc+?2{B>x|LbVdDGs7V0_wpJbY%57#)`4_vBOfUvL^ z+L4NE+lFF%@em0z@j&dH2wAKWWvIM4S~$DaY!1oHw4vEw^~S)SjM5?x9}aR2L-s)g z`|5LO)c`l<3!4uW$p-opq*XKBV?Eibxh6i}onx*>0gVbgt6_%xejLMaXm&)CIb3R& z=jQtL|NY^kisf^yAs-NRC#b3ix`QZ!)>PI)eXdq3r7$OUr+H|Iy^whlObFA4=ay|I z7`1|y4rqWh1Lqn=lE&c3(t=p1Hud<>7w-q}KD_^F@a6rdw?DnVd!zV0*FI7vp{Riy z7Au(ECPA-I&kNd7fi#$tg$GrgM+Sa@;21{gLi}3X42~YD_#!THw-J4zMJBlC&M$<< zf=01BXNRiCD1e36x@Jn#g6?jIG&oF(B3>rbR1w9Iry&l&5aacwDyCAApk@mzh`hwW zQuJAd#h)B^GW-9oK7DWxoUKl3Kn>H{qx_zi&vK4&d>~@w`q%?jI*y-Xuu-10$?AG7 z{?s4OkfRn@b|ep$mxPxnnejjU&y3}{(C#bxLRYPf#V{w_zU8Uua_n_w+@w_-z!J-J!&f;|}U7C-N6*5Hx z#iIc&hd6X|)6HQ+sjl(~a@`#Q2Nys@2l63oFmfN6GBfX;wdeB4vPWS3V+D95sE49%1S+o{D8FmMl))Our5AjZyeh8_X90*-+K@!0r zeNEr~6^ND)?0{pq7j9?3Ws<^>Ww~Y6)Ugv=K&iF_;pNLUJ#2OgyE0@CR4?8z?|cJ` zdY7yukhaNC9Fe^iuKi!>TCwDazOoxMsBi=taaw4^VyZZp&FndPaO{ymB5yvEBL{GQ z^$tq!qh0kZ46OPCATZpJ%-qB8crQ85MNT@e&JMb@r0yDXiH{r*)#AeOAk+lbRX2Al zEe~qT1xp8G<=_5j)`+<0#t8mkb@LD^Yc%8$nPHg&(@a(HK&d8DDDU2(G4OrQn$P*L z+=21F$9;9w<*W6tdMn0VY`4GSE9`;)#Haor|CIlovkF8qB4EP>6xsAm%A;Ln?cPKB zjihxb$77y6zLE0b0)$(2Q>{Rm(o7w6^acN;CvBVKK`n!52!N5Km_R#sIPG}*cRUn@|o{U-uhr3QUz(Bt%>GBM9 zB0I|X=Z6+=8r^rO3AdH@l=Rcg?(3x@j?%-&18bwibw>meTmqT0$ zUdW2>oWl+mAx(yKL<$AYqQc&2JlPD|8@9q;8EeERx5$uS`q<*NDb_Rc#3i`qyXiBc zjGXX5*&chOdro2OSuS>HSIa6Ha3L}~VKj~|mmmp2FQc?Qum zxk;Pp)etO)srhNRk8i>H4Wt%y@hTOxjzHNz0AeNSDg$$$PfW%$_3afo?~n zhA`l|-M4;OY!(_ta4-<@|(+ zGCM8P2>o=iLofrjYWo76Fs)-F@-Vo(QLHUR_LX7S&QKM@0M&>|4-uMSqOZ5Csvvry zNLm~wgfS|`%pcvt^aCP|Y>Q1R8`U&K(I*MmhX&~h`Wib0RR%zD6l}*+3SD>AVt^jl z`5|nn?z%|k)UdurQjcSTUIBcYBh&dHN$vt|N6a7>(N%G!V+uC|LRlsVW8S7dCiEb7 z?m}&WO$<5-?RlVaeM7dlmuQDeTVL&`E#vcmC1GBPaTJz7sueFSoeH*{F7&H2CRH1&5{?e}s6v@;*dO$-UFW_b=0P(-4 zNK7$C6UVMm^1H_{&?3#qAw9`@^ zd{`9~2&)xC7;L(L<_u4PSlL&`l-vzfBem?Z!MFn0vVQqQKt$oe4@@2T`n^_7+*nb=$b?lA~;BsQ=PtUe-}O_fwX=QxgivFW8TId z^X3Geez8-d<&iF2K^$qr)F2hIm~JUU(suNo zjP)aTs^_llk5|`9M8D*338sl_|3(t@MlQ<5l{S+}r^p^N^yGe&XQbFBJ;(HHM+(2t zQyQ#>Z!2!v&6X!ivq*rss47BkYKg6NAVStegTB z$S+ES+O*==2UwhP+}AC7uQplT5TOD_~BE2NYeYX-wEtaxHR`7Z5xfILwAH{2HZzp{36 zaa)K%7P;W$$Qifrw&5>u26Se0MHcM?p&J+CYorw7TMZ&`#xhT#cb8OL>C1#YUbHJc zu|`@^43SAAY_ibJ=Q&0=!uuedaI6Q?rnGcdoLj4i-ke~XtQq}x2m=5igT*uS4lnft zG1`-A$0!l!0%dZi#bA@&{B%hT^tmTN5cZF-A7BT|+lNF){KArB+^dFZ^U1!Tais;d zJ*c|p6}nRk)o1$*WSBV{R9AXrVJSe;rxn08uO9@hpneRix8nAZ`l%%_&sS|PK>;C_ z)`eQ5+H>@XzJTWCwy(DST!6*YSWj1uU-IFZjuCDR(>=L{y_oB`c5{^zW$v&2Mnt-b zC~7Rd7z)3?9MDByt?d=#1lq=0N)EOP)(LmAC|^Rg?xs18Gf{ICa-FCH&IihMZsWmz zp{+uxc}6y-bav7iznAmbd6Ui%ddWZ~@UIrKzNN>BOhw~i7%uafLtMW0*WKwh6Ti?; z?Rc5A0CN=P4rep1|56n}U8op(F_pN|56RnT>7A^vOm$0ibP#RNK0EHbeGGGtMM2%Njxsh9^1Vub_Y-QKa*z z7KM47zMMe1D|A-V9{`z~5tg&*H4G9wLgv)%>JbM<$O>?S>LeRP8(oF|F_kT#b6Y8W zur@8%Q+G}!J8E)r*1K-BQKGjQqLGe{hMo(ogtH~&EF7O7KUo@)bu*6nM)z2Kf`?|8Zq+q2bJAtNuWq1k>Y6${&Uz z;{#zQ;tQ>4X-8ylLAC%$NTETxYO7^wUSJ)l8fMrT`jT-EBlU&~`ohT6bd8(1%&9{6 zbW=$(3I_JIV0~UTo!~Fesif!b!2P^}9t4!En5C4PU}*(eYJ$;|&N|IeL5#0RXhC2* zFpyU;KFEo^4PRT(Vau3s*C%_Q`7C5p4^ed$Q8segmT^MX%k6&j{7juk{1Qcu9*Y`S zlar`FO_XyDjk)qM5R(m&F7O9g~S7F7r;fq7XI=8zAQkngd&wA{I}~+^TRN zA|H&}=owMcSwHz_ZhdVjt-ir+Dvp@)cYNsIU!-dcxkKPzu?8 zK!sT*s)$*DLO{p@0a@JKGVQtVCRTxb+mz@o_3XfW{F4JX$MF@+Pq&$ok(b>^CKE6n zjmS^)qd}n(Pu|Z!@@`WdR!7(ZkbiGFTd(IXKzVSPKv8H?+PDPM@Nhfqw(E~~pMH4# z?oMTc0;qhVg*yz zXz%^fKSr;vg37(ja(j=azUWx&v3?;{4zip~dOVL)G=);_?pU*Y-xX|QD-)8GG zcy(avU|^B2R;4W!U`<&_4c_rB1Q1G7{+r^6l(Lq7lIy*mSLI%{;ad$^d)AVXzDiHZclGVIH@RJtCPVX-=!XSv9-^T*p*;i4EQ0pL z6jYm@DCc~xYVW>SO#dI|-nF@{PlxoY__Nv#=9w2=$sVO(i^)(K1 z5<|CCme=#Z3KyZ4a0W=7Q|??OSf9PzfhTNmzo$cfi+hEOV7T+UEv&^7&1c9^1}+%s zQy31Th&&(*_T+oWFk8Yb?$i#$9)M^zq91$1N9{Vktnr_m%6~E#M0cvR zi)r^UQElM)OI^en9UCI2rrv0a z`f@XyLovN)DTJCC^N5q44y8@jZML8arCpzF`4YKeiPCPEs4itnj2+)l;?u}pNN)bp z6}bAX&lXvbYa22Vq(Df^i)HZ}G&5|^aWcR5ppAT?=gZ-d5Y}d*hkbgbQ}}l0L&X2c=~HNISM9ZGzgNHUwgY5XZSfZWl{g zfBKter^n}K=ci{+Pluz^^Rv^tZ%#(1^N25YkI~jCO{$y((`UM%`OtYKakJAQc}9-l z{CI-A)OZ}!#8_L6C)k~s(o$khF#iJSGwC(~m(3M2D{0;bwsCxWXiJvhlFl7UeJ2Z! zqQ(59OyI1}R^mCdY!_cXeZF7befaVIkNc;)Pj5ba{=?m;&x3&8!gRNs-CTlWc?z$K zo9%qI+3FKiA#MFKh)J?sxxqG!MbrV5vtNBfmdr6)#-^qG1Cf9r@+>4l(Wg_}C<8U0 zaiFgj+m;cnK7Z9_$4L0Jn6I|?Z|=W*-Y@Sy ze;&U0^5zp9Z{}a#zaJzxWQ5x-yd<~V;R{OXvke6BWl2+vg$))-L@6>DBiI{NL8tqH zk(dilEm}Ij>-j502F~_KScori^F4Os1Ppt>TBd=Z@9i{2 z{)^4^w0JOCgQF3@5GHN3OIkq8_2bn}MpM7>^a9oWZiad-#c$oIkX(x!2DK>Th7~-V zYJNB$$tkTW82>_WS$_u+2Ar;N&_>k=?I3UHJN;ExbR~b<_Yn@! zvd}2LoxPy0dar?-ifBE?C2ex$6<8QwGi_;{R8G9wW z1k+>~U3I3uCG8DRH`w`w<4u0A`G{9DqnjO>qh7u&!SWZF%AyR*b|aN(tCEhi5Y)3S zOF`a{eo=o9>0HP!}tb6=)<}f;&TJlZUap~I><%R2Nepm1kwUNpy)0r_@Q2UM6pkj zCc$~q6xhS`CJRKUYkn-($uZZQM+00y;08)ZkVsqOzsn#l23~o}nI0%Yybc0Addj>- zRYGt&ySTlCY$}{UFu5>dN}CfcP@~MZNa1mMfVhK>RiH=oLm(}M$LD-dHuA=D{}NYS zL@UE>CuQw#$s;A0Cf#@;s;Lm`@Iv{Oq^U|R2{snTv8;$HkBPXhM;W0oy+uFcG)%za z-CR1kMmhc&t({ipX7iL&aBs;Xz*^g6AW8B&OW?Pld|kUzyQ=}fN0vFQ6Q&tmkE#}vJMj<<%Pr1JzH-Vs5(n=XZFqT zY&z8zw>)@@$?3eSy@8kp&jx~u1+zqU^a8y@9P|$ZLm|I9+tHtNHI+_8QIX~=gMGOO zy(Y|^b(v5L?ISqaQ@V7dWW(V+FBKaty=sN1p_cszan ze(_=b>En-Fw|JQA-{I_qv|kgGtGuD*6^}s$BzT-g>>W`7DTQMh$Lq60BqzsNg0!=? zFKCN-fdrgTX@X*Vkt^|F38Vo9_X~jmUk6oCc4emBAk7)e5tTz?P%Z;8IG=*)X$7%$ zro`!0QvVry7;ZJu(k$raMrk2A3U%mv^ce=yoyJSjdkd_NC3(S7`3L*YPGA?MJf1OH zy4%*-c2nX8O4{Zd&v}7#Kx=<^nP2-Is3;Y?$=7m#s6sl5>j|Y&#gX>Jwr}%k^0+K6 znF!AnP413nZu6^Qdj12aqXngfEy+Vz^gthe1Ipj)Mr04rjFvA3&YscX8YC6SxD`(? z=C~ruf>1S?6s@3OX3HcfR`*tixB0%4kKLbCKI6S{gxOlaRo^_a_6#J#l(u953e{o&kPWB-ZS+=yNhGo1okCnphqK6{&h)$9v9ABL8aoVnEJ)5Ny zAOwgcRONWz;3$&dMJQxxq~Hw3b$wiv{m9~e_|t6H$ygXP$31NflE?OtB$Z(5uEPkb z3wX98JZ-$QL_H$;PIfc~vXppk)YaX|~WaK>5|-mU!0TH%V8J3F3O~6u!Wj zk=)6EPoWG>Ow}n^fE`?mvUS+UZ^%-B^$GL~#hgH3Z1-#lQCDq0ml%7+>;zNyIKk;+ zt9b(dY8W~sil)zzEgK%FxXG=z%+jf&a|^dQ6qeVEO(cyNxoBz5>E(u{IyoS6bb*hM zk`CuFGBr{MdA-=p;fOtR%wIy|g2d4qlnT7T>`vUv9=Y%vhj(x>1uq50L*HrJ6fjMK z);tol`1UvF78iRqI|L~uxkoLHiPMwn(G82JC8XXWx*s2(LFB$gJvxqqQrL(&{PYPS zc(^%LX~IQtJ>hC$W+kt*Cd(+j%w9g|#_EA%xqnPBa{z#qM&VSX*D6pjGg7D^mU&9d z!+}nkkox>griWf7hvzxrROrMzAyTJbg9Fz!eKm8Tv=ZG*>KPF?%#>^ytIkgBybPyr zNFc#L2?gxzlGf8LE~Xu|EEFa8DI@?=6W@zTF?k<^+@n}{wm}@^)M&!T>+!_`5!m1N z=h=(od#WOVnxDsNDly~Siy zM3P5df@qC-WeY}Mx&hnP7-2e{uQ&DS?8`u&hf5kZTP1I2MRp|C-nn2wxYrFR&9+rn z2^u`eVVi{Gs*dt9b}fVSu~5Fk1pIR5&!AZwLE*@}jGX@gOILh^=~MZBS=N9Y}f2-sxl|boJE8ahmO`mn`@d%$~XE_5gH4FfQ%4 zmyC;RuG8kPH6g`io4}&*%_wNr)kPo4IzAqv2CM55;kLWq-fq_^8Ax$XNu6&%y+dTp zBq7iBYo0YYqs|Ud{RZSqXY&~8W4t8{ENYI-n1Jpj93|i{0pf>)i8Tya;8AoCgd$l- zj02DdQcA_>Ej`tC2UWVrpvWsBdxK8ausqN(#TV?NHctx2hSg-djNz3W+z%mIh9%&jlT>UxOS095zec%9 z$pu0BxZFb{gsi&$ePmiuR1}O?&fpG&fMx@c`;zAXvOB~_n6f2B6g=er>_G=r7sGwe zebdXeBv{51&no3LX&m=PHrJ84-OB=`rlu$j*_}H7o-rpsP=1H6hS^RELy4*2#9vbX zQVmtXY@SN{P}UyeEpSZ%Z7@R}GV>+=0%kzxJM_ypF_kHGj*6zArZU-%P@Cly)FQYz zIHC$v20f6O>BYEC^i~4&2qCE_U2@ctMaIa7AIa4*S3&YKjA`y&{{ZFAE?Jj6Ygd=Z z(FE6NC=`iGqa}>kLt0rM{mjCLgMa#`pYi|w9vi&ye>rRYUv%LSy)?+HugBlBF5EzT zdwmVhsnp=yQ1A?z^tg3vv(+%U{1=hFjBDngShPN^|C0j&a`knMRBL6dRxhmykmh+k znT$6$Q)I|za>^g>{-C(!4q$rs2iwD@M__`1>Lk%?6HE`cX#u-71LqE$f(N^Cz*q!M zn6txW2WeGBtafnkH7Nre?m4`wMH9PyWgqmYHbSild93Tfsp8ecG%Iz7c+1K}J& zc%0cmf~4HAoL!+}1iWPTUrW-Y>12(pyD&pXXnWBIX66Mf({Db!y+f!wvmgQ}hbq5I zqy&@vB+QC#*73O}sp^3$(gFt@vTwfo;qH?H*{751g)8w^Z~@m!m6tX?97^X3*$3}E zQ8I+o;yhS+NY5lZJU8TVb*TH&5t|t^F)R#V-iA$vO(- zPJNu!AiY_%!p+%sAW{O({H6?HX2uc2nT%$dcSeOFjlL`8m41*IM&FoM&u`%>Q?>Nr z*sAab-!_TE)1{n!Umv@gLt6XJa>pbho@z$-bV+MWy!?5;etB)lj*OP;nq2@S4*?{{ za*k*~Y^6!YR9w9Ie7C=t?l$K6g9~Gr`guXhiPF}H*Lww|3Fcrj`5DF+q_EYEaJnik zIo{gdEwn(KpXCe_1T#-gte!6A`O#Jm@uc;NYk-;+T{9oP-hC1vb*3H<{9M0RSPP=Y zga}Er!4?gr$p5*D1Z1+P<-kWUDT<`IqOHX=?$1oJAM77LxPy7@>EUycxg-2~ymK!i)ne zfIi8fAGB`wI!k7BvU>2~2W{YV<>l9udD#p?@t?OjdfG`CUhPAX$wG^wgRg-4H!*En zy$r>ocY%5#wGqi&0WX|bgzBQE$*?!F0O_-Nh6Nik+Al8{7}2*ss4F$7zElh1%30SJ zBh8SDzM)a@qdk$vR4x@_c1x2+UtvuV0lsv%L{#> zO^jVm2Ybb}1uQ?rY+AlkyrJJ}QfX+Z0342aIUh!dW%qcqHrmOMx>cBlM$WM@Pd`o9T za0Ohh>=!3Qq@JKiV>P)NLuIf+;&!S+2BRVg1ma{;8A~A~X+_|$lkAA6jb=uYbnI$P zrLikZ)>>}AXHTjvF>-aAQeg_iX@p#h5z|6=oIwN9^tbj+Rm3!eqK2A#$b`4aWYk~r z9zHGv>1hS&O6JO0Y1z$JHDsN_A(EaA>ZW=a#p9PlgtDW@HVFvcKa}W*kAphk?@M%) zZh9!u5%iY3E7;dzy5l)^D17^HC(SyAw*7b&@-joRH4C0*Bbh#Gn%CRK_Zi*7_(2^a zQv-nLRp1O!U<`v6|L-qL`A((DE<3bX;K~3Xs9UYczfo|cU`@Va{Mxl*#g&xx)KyO% z6_dw!77nYDueUFhNZ${RaQK95I*Bp&I4KZpQycY3;KZIcfKzVTdOSSP2)p#*whPVD z<9m?nL=u%;+>7gc7LQe=Y3OiyHB8f}R~v6(@v{Z{TEo;m$x*0e4(1Auv~bNXVWzl2;&HY@kREh_(rHmrN$7hq9LlRLrIkTr;!d$TaR7VXpEQhT4P! zjfO^P6K%SWp)=HuekM~G4mhT^_EFuPVET?kgyru_hBoA6X%q>@SPz8B^E#fQ)2^!g zfn~r}yXh9X@@pc@@J{;i%z#QqsM++A z0VleqnhFX#X)Yl4L>)Y>J}MGzdG8$V3HUeBJ(F~W*(b^9D}A)?c7LgKm^+JJ!wOU| zwR1^ZeD0Y5x>}Rg#*dIG;35+0rsJJ%TpvH(P49mHAE=0r9ooLu~dO|J(_gG9at`XgkBcj#WvT)DFyMWf| z3vDZpJiaqpx{nMeIH#WGF^{rvEM z^GdPb8W8uA$>

    $_B(P`)=obdr4-3X^MHc<7^+{k6WP<8U!i!Q?{ykH7YWp(srI{ zplArgNI?+|Kd1qTSpOUXH2TeGbbNYxeti0Dbas3)JQ?17GdyRUzh>7@1?LN*rQr*1 z)@-C6s9J)H(~Z#aX60&_BN-2-UgoU^#D~eG=2{$g0y7tRL$p$LaMo+#t$LVVGaOP| zO-e~&hgzUWZoz6?@L+(I!hPrS1jzxAB?Z0c_K~D6g?A z{fR3%C=Ib#bm`Mhl$2hH0L`%$$&8VXWtKW{dkwBbCU<@tq9tx;@Hnat#D}^7t#Ya_ zIE_R=kH_<*e;8y>Q%0S5vw97`xxa%=ODOO9rX|73v68E8UHW_)43s;&CyBejMN6wF zd<|!wc1;?fV>8$u2>mY*hJ3x|84pDtBfn@iXs+AHJZ5PWa+?gA&=`=|@o3ysf5 z;U!NM=Vw*EpwU||I&v_f9K_sG$uwzVeeCw#>Y6F2R@24&`zvh1 z%Om{%YiT^Mx6i+Z_l4?jno8gc(k+0L+z^$8e7d`zV-oQfkc9uLw!K>^f+-?t<69 zMTsARkA4Au@(b`&1RC2LI^Tvz|F``%4C}w`x1IiX__p9fReUayiYg~gzAAh#xI?g7 zRm=867R;`cBn#vNl`5!CAe=@Isj&(HuG3FMC?^WK-Cjz?TUNk=zZ-H*A+H8S_o|FQ zzMNB07?ni8x)a*U@umaR>yi9sqPh=^I)8#ot zwguL(LU@nOkJUG_N#gVdP+x`oXB@-Lls<{;s|7^%^%l}Va}^i!iG|awIWn$pEwc9{Sw`kWvtg`bCjaYaK7ZBRT^*GzX-Jo@qAU)oMa5km*T z_rtXmr!*-B#AalOTU#!uqMdQVl_$RMq9r(=LC?ec?Z+>l-rnJPCp`W4vzI_zx0B+U zEwE>Eg}qpdnVR`craE`ki#G%%#gm0lzAhJtVSxKF<`~48qW=2o`~CQK2OH$&3jMfq zcC%K8F@g@G*x|!cvnSCWUk!Ql8g>^LM)y(o*H*MLq3J0mV~#wHWwi9Q#S)1_cSR-j z9Y&Fx)drjN4=%qwHZ-E9RXvOcy}f;MY}U=AqqQd_m~B5sNpO4=hWIZuKRvcQUQM_{ z{9-xgQDh{PhF$Y%l69oYh?cKDWj}^PLjK#&KfQT-|L!9*y7pbR6|kZYhJm)~{_(wZ zGr=@4(>uZ)v<}jw)$^!K8Z|sV-K~bl@&R_Lhtgh6Ri+0jG7*$L(nk9aa6B8i zYJ@-Sf<_p+wdpMaI&CM=v@~a_jLcqGGqV-ic-!?1rWe`huNIeAgQJSJQqxC$TFORo zQt=)wOmiVpLPE0Gj@t9LhN-*Odkbq35`Mc5Dq0#F;X79KVaY*_ji%<}JTrO**O*jE z?2w44K6)vX;pWVDF}`_z#6OZ;><8#=20}LR&0yJV=VSMSq7qPFAw!878caV`Pf<$W zQgzW+7|u>m9)8v_@ztSJ0U zxW=?fp!LwbZo9C>Y8doNdP+ZaO`&DE0kl6OYgp+>$-NoZH4nv>F=h{n%VI~7HKsEt zofF}x1$T#nlGw~f)(6Q0uxJ%YAdFvk-PxI`n4+cOJ6Tc2$l*z)1ZqI~SeBbZe!m;z z4rqpW3T+5-Z6V5$en6uMPdWjg!E8ZB~elg+%Xobm# zq5||sfi|vvgpVSGLRdm_P91M+K%$Q+EteA~IrnH@L)BUm3|me5*cPEy(M%7W8;Xzo z&JjtC2ABPXeEWH3g$9^6Uoslk!kF(PN?4IIAa5i(^||+3dUH{OkO>nC|BUo%D(C^D z>WnMRO(25CSS=R|EG6GTh~H@uGvn`(0xAEr&6wg2F+z7OoXinW#pnqra(B$0bd4w% zh{Wy1;>7SG%7c7{L|J9bl5Hoqp}5N~d0RV|m{jO$IiGx=WNz0=bii5zn+oO1b!M+j zmupFMdjOaS9YR)?#ySi#j(1@4YE$-`o7KcEWs(S)5GRx%_{mxO^?=7GSBVD7P~JBVbwW6}E`2gOlK1TV{f32DB4G#At2)4Ny0v9gkvK$6)fZ9O;j9S~i0 z;3zBs3pIlW?8}+uAWRVh!T`DgkYp6o!)5L1q*>yoq)|(5K=7ML&SAhdm9D4Ee#i-~ zzk?0Y2jk|`Xo;AS>DJeuRhytzh~@KaL_O&d28c8=!8`WO`G2v4FFwrzP_Iy>F2qM>mVw;FE}PFK9OKvtgvTV5F>gV7x^^T|k_1@OwSmL4s-w+7kSRD5}HIV~b_ zWcPZ$9`KFPDCQZDg$Y#9xy`wKLMDp15&I@rg5#l&?eNXFu^$G1g<+}MAiM>82t*C5 z54K`rLF~EVvW|Q$SPpkRu`^>8Fd=`3dbGkq^1v+1RU7VE_96M^M z9*!#>DB#{al!p8$s}1pbhF>a?Y~-OBhGibKr0t3!LaIFp&X{KyPdEkl!%nbUDS{H? zAHcspqx^JtX}A|Tg3@LnMAOCfVc}gdL(b->W?EgaWbDv*iO#){Uo}?k{+}3YZN&0#iv6OvH;E(h{JcGcKC?-%yC>onGO{a z)CyE32`eFc9s(JH_-yvNK_r;I&v=BP%c4l`QOaf=V8#KnDTEtPv^4(=V@H;9)N(}b zfl*oBarE-kzR&u*=czYzFBxmugKYa=d=Hgq%Dy1#51f3~?=;jv{9rR(@hLJAX=}Ld z7;U|e*QOw+(~D)TI4c1fb(i$x3|0Cb=yNG^z?4P5vU}aV0cLb_ zQd#Lmq^2$dxY|@8Jsr{~#6d?VgI{C~)gyfjO2lHn(3I$0l(|%K0#O0B3`d~8hRerc z^?`viz%w{Q6i0D!O9v*!l1vIun1=@v4~r(-Z!R73@X%^?OKzL*q|gF^64V2zMKyHf z$M@fq;Hz%z6iyE5j^17)Faoa8@DgSl)itvMM#z-nc|&{qXeu3(a8j_gJ9IU|Hg5`% ziR3#tQ_VJ1tgOe!LiOUxYCF`FC;^K(qBaO+6bz{8(6oqi$Eb*GOHIAG*zCzLpOS)h zOJf#&^a7J_QSb#so_}3Wn=j}kU|v#^I4HFGj-9iocI+@|@N|Qda5~68ZH};ha{03) z4a5Q_XcO9H1!b)pEi{)kAW6E6U>Tmf1r$%?G#jXDFfMDLFa4VRH=0GPpwL3Cs^c*{Yaj_BHD@;h;cD$?{z1x`&-@ zh_e|>Z&Pfag8&_-K(xz>2^B(ko@~UdsK4euFFS0uM{2PzbTfG0_)DMsFw~Z-EY2pv{g0KyIx5Ie~fl?5V|1nal zA_LicaaqVsp+me`eTU?i5G!pwE?D?mQbL=#**bgEwFO9{B%g#mft1g%={tUncpz#B z?qKU|XS96yj0NLbGGR2lKWn}u9U}qGbGinzyJ;mI&tZRn`!X9(a9_19*$w5>*+*&|dqawiWlHO0d&IfLCP1xe2rPU=PvED3^ zJa4lU4-pMPHP`};tQwT#wOMG=peesav-DX1F;+;&xZiJA?V>}2%8^kIg(5S|S2BnhC05njh{{1_q&) zN-O15Aay2NovTbF*3s=BE!5|KX*mNH)XXPW9@nn)?$89&18o1nJ_eJgRfK2s{embb0WId#*g$jU0RxOYHc8B;$D>W!cG_67V8wl7Atn6B3bL_-o%n!i_6#)y`_TL+;hbajVK&u!$X0e#d-6&{|n z(tOzzlw`+_Ebtn7akTU*T`>z!VH>k$VrhC>HGS+UAT4EiYX$dwOfUzWBv0%#S9MvP zywhH~8Zga{SzX}C=s!daQEx0=(1(+GBU=%Iow29nCI6C&f zKJcR;?%OSL5!9ry0+kp=RP8T7RT^3=>X%&1Dp&7(HDif0&;8HO!2CU1s372p)Jql; zEO$3+OuvU*f~mV`Q#PGbAy84x$W_~~vM}$F0*19>5mT2ak{T)NMS7swsTz)VPt8fg znN_1K(y36@&P^e1m8YMF*`3L)#aPk~OcE}1KNcB`Oxr*Ym@0@^^hDDp!%2rU-zRzu zJ%!lNN{KqTqe9Da*RVYC#;CZ&N%nz~j%-S+Eqnv2mR^$Q-;#t?E+`#f`68;^M=jY9 z4RU$Ii3U?%(a?LqVBQ7lo6XC10k2zBj4V%<5ZzcWPQdg{yXg*Cy1Q%*ul%MAQ+Eob z_@vVVnlOHD1v6gP346O18gqjA^P_O9qu?N8U<1iYwqx?LQnBfm(}`}f>!zPxSnxom z9eU!{F!`SPB`tVD0UB9O$mm8bxC#=}gqe6MMyWdx&Qb-lS@JWfmsBK}9$%a>@(063 zMv|BZ1e|%OHXKQ1hz50qE{g=C(2IN-m?y?|XPDExwYd2@{i59izK%b9{NIXagZy(p zxc}+TpYDDH-^;oE=3DwRrbIWt`rY8a>YEb?mP{=M`y=_+cT|^^z;xTc77xZ->~#o` z^DwtBJaf-cq%~b?WK@{%MH2GaIT}I5crj<2glCy#|fhy}lL$;lG6#$teX< z6{(DqmLx$?NI@|>cme^x9#9OdnSwg~Z41jwLcWOd4*vzWQb-cu<77*{m?0k2S-0T& zjq8b)KD(nAz&ml|K?lZsgW(|A0@0*z>&d|DCO2Bi1w_phM21pd&@Wa5LX{9eN< zIbWmN=f=lcxJv&L%kOms&Q1G)_KoeF@YD!;0v; z@@J4Aej5sb_cfQ=g@xrd~N}rQ1Fb&*(do>=No$u%GKD_(NOU#iPM2BoU*$AuOI zG6nucSqionAivdg)-Zje)?V7zp@|6gJI|nN7d%)aT7nzV19NIJc>6BT3zh_Q+qyg* zzr$Nu46;lPzztZ!^mQf(tuMz=ec!;ugd_^#KaY!4i0f+OWKTzW`!?tYpvHN=xJh0n zu7~J=^*Rv{3}?65i6CHi^S1_T*_iN+c|#Xll7dSGdnA`LauhFbn^hZhZ_uNR%vGw=Ui0`fel6=UmFlMIHXGT){scxN7Rb+Y4Y`Cr?(BoSyW(_CPA* zAWeZ6u^+MR+y%D-Zl<0J!Stx)YmV3 z5cZ&tA!lW`&nnt^_(p6BHLs8>a+ST=EP{m=~2tTvJEEGPB^V z#8*P}1gWnklUs&2u+Y-+YdX-czj=Cl_1uuqeF`G(iO+{vMMkZhOz@+5Efis$o9>2H zc2@|IC5$O=?C%Nv{9lpzr+P(SPpEcq$hx?K$)9atzho9msJXB?HkT`L7$pSg^fG{t z)?ePg*O=w^H+u~~S#2i{xe$I$(*VOcOtazy05(nqcGm}jE4cPOJ#a4=4lO}Wb%!j6 zz6N#%F;kmLkN7c^+QOQ=7$nB$mf=rmA6ZQi#aCcsue+fkvDgLKDeRNz$GjgLeRKSJ zxPEf=JpP4Swg)<}q#G$4|8aaJ2FbCQ&jIITn!N*7j$U}dN~Q=bKTbh~eG?tf2bX0%(Uj49ns35IeLVNB1aVkTZ-Xf56RV6FR#{CJfg0`&^LS6Nxd&?Yn4o&^%? zlG=tgX3TKUI&WxLI71Y(Cj@D;oyi~@InWfZE14`De7lgyU)F`3@I2_`&hVWo&2d;Y zF=%6~wV9EfvedjX*RK1UYlu{|x|5#TO2GnGJyBVo1ZLVqK|)f&aEF2^!{ve}?%1fQ zx1t%7QO66NQ(piz^=@%`dXS$qYf7aZw1F|_4}9(G6cbv>1koF~J9K;?*q1tku$g3b zic!FJ-15Zng0hp11)m2eO}nJ)2Zwt+g@>hfzqXC3HL45;VZp|{K@(cFgfqG?*!4lx z5}dOo3ndjrj>8e*Qo%GzZa>y>I;RCT{qWnUgSJiE-%U@@7npS9nqVfj}2)HBs}{l6kcr7hD#PYJ~?3NV?`R2m;o%mf2Y&TL`njzo5JEv6)cO3 zL%X<}T+Oyc5wh~K?O0ovAhXfZ{Q6>o;=jl-tv*c^EYFTf7fHA!fi~GzXg8jtj1sFD z8SzNXp*|%EqoxYZO?^xqPIcVIQyn+!Ff7)AegRwq{&)L`(u|HS#w_Ap%-4#<@PiYLK~HqW2o<6Sn+tuug?!#b)0WR?N(VD`5=g55Lak=0+L;fC(pN0 zW;n;8m`$_kM^MY(k^0W{t!qT_z+JE0H7mp-zQ7p-o-r;}q;~puD9#kF{%u zqos*6!TcJ2^%&~p<4-?*L0MuXZ<_r1{rv#jtQUae3ClI=S5P*Pe2x$ePi@;qDml$t zKf3poB*iWekA(MAXC`;yxbNxdZ0!M+^O5OAJNM505^B+WylK95mbDk23SD- z6EUC94)P{lAU?c|i=VHdJbh_NK9DOJrF)Pbbn>XR{FOVUh3PwV9;K{Wqh88o4u;a8 zKGrb+N#+)*GT*=X%iZ$b=X=!n#m0$ZzB&%9M;C}uY*A!pa-wb2^>FC|ZSvh7R%mfK ztET2zBibaUykJHOphha9?LvqzVzjh~toS~j2*Dyl3+^K=<~bubMO2{E8551P_=+r; zF~-fK3}%wYOT_7S+%hx*EPtXYOjsh7491v*s+AVU`L{*4`gK|IA|R9 z(CY)+r@L?KK(7c#SKyRVW;T-*NFO>4-4nrKy%J#t=Fx{eqs)V7hNjCM*9N|6{-R7= zXjM#5J*qgYiWF1vg~qV<_tEVV9d<|K&E@cG{DIW8-{1WVJpYVCf_k39X$c1A+4gI6 zU~l^D^Iv4o#)a+m;OMI_pWoaM{^#-6ga0|i|3_aT59U|D`}7s<)3}l85WiZWrPq8t z_{t!9#z0R&C%7m@77zDONu01#K%>nGs6o)97S)X|k$6{GaX|>@4`lfZuoj-m(&g%v z*4=*#m9(b5M5EfPV?2Yl^FVx42L>`gy6lE8FCcAFg z779xD@=S&aLsxTVZ>@s~rkSD~H=UzK!4Qm+>tmUkRdQS(U?h2sRABsSy1hh(mWtrp zMXaEmQyzfKRZ$}OYMupOnh=h;oY;<`j;TW@ zOa(b|7no@2S=_>{2Ip#H+z(xiXV;bA@l&IBW;+@sj{?eJBdbkdsPF2%2;!oVkqZC= z9<+2|;Q4MM+Y>*CYM@Uxr&K2eXnOK5@~P(aSL5e11P+L;3HKv?pSa=`%CHqovYHz5 zdZKzCz!TNz=3D#{rCl7@4xwFw$W$a)r1u^yZ~fo-SP# zt|O_TO}rtiYfZy07a`n*(m<*~ z4Ee$`dMMtqWyb#f;Hzi9Ir+_SFrqWb>G9LS(WkrjcW*x5J^sp;-j>hVU2kaNO?OZh z%j+`ZlplL~=Iqy-MreF=C<@2$7v9AwCPXW{l%A%eL=2#yGJmaVw2b8w_dJKWm60{Xt zfV~(_SwQ11ASSZ4;c#KaVOsm>Wbo;+v%8;?Jsf$`!TjQH%2wjP-B`^Q@G4oed!S6c zXub{e5e8Z-T%d0JLBfj}#_)SdQb z-YM*M?2zzr_4)1M!@GNr`nGp?dcT2i#v4MnLT<_m*}}%J8;r7+5uV}&6Pp;UYDycy zS_bg615sG)h|R5dchC`^|$ zlp=ve!CZv_`*ME01>@@GmgC_W$eNb7IgbZ@7oGNqnZ0ol4sRSiT$qnNfa-pzo7)7f ztIr=f1|zZnRv4AJwk?wK$(Sy3fi(S__p zZgo27aU$jB_~HIN^mP%U+iDlu8ePR|Ncf7t>S$`tZeD_}Uf$i$KD_z;`#VsO!G7Pl zR*Dsql_CUO$bd-^Uu|zst8UvgHPwR(tvR`~*@yY$Bcd}n4@?J`6$4Tx?@t?J^)6V#`POPi zQ~Gk@D=%i%N$)e2FeisbRL)nSBWQrS!B8q{9|5b%5XlZuwRxDo#XC8jFfvS@#jw^xk5;C?{351m{xZU?1UF?4KIs zV|Vv6cS@u=p8qi{%>5EgT#Xu((bBsl%|RfedvVLX)-am`ASohtERz6!7+vkev^}XN zGf+#0Q9lzkYSW|~5X*?qI|d0=s`xU z79?pOdx*JNhIZ(c1Svr@wGjTea`cu7RbNr)68_F{RSH0K?Nub=Iuo54zICO#H{l<$8^>g4B5Uxw6I&FLqO*0FTY3O#d(YYNEJ{obKA4_2& zBt%_}{1>a|=LM-{s~E8QDFyq{(?JhKu_a_WVCIya-ZfgQQgD#({+ z#t{86X)0 zJL@OHiK9gW)q3Ei`x(mE!nNsA?h(<@aCL`CWtE?8c0_7`dW{}r=gQD^xY5cl zGUG?@krW_3Oy_!~vMms=0qO>`FF~ry$2~u2msICw&MMlz*z3*s5)=s8X=ig}k)%1} z2Esk`BN~vIxho^0&6wG)N3I@(rAkH^jm+-!L$i0R36^Kh^<8cxik3byA4eWnyoPof z?@K3>y*wDTXeD^Wstx$%(eUBRV_RIteo%Sol#)&%lWXwyb-k=YfHW}oqBxM?MNSkY z3>1HSb#XZVWEW^N9TrFzV^dQ@tdPZb7hPHNQKAE|{0?v_KYSegZ=5zIpAvaE!tjgT zsX%lRehW>CQ@|dG)B`EK2NMt=qJs9~zv;Hy8@S$0kL;CYjca_kR={mb9AU9BDv+;0 zM3fGmV8{|dri)8PES$MPz|{|~#13TyaVt+9<1~9&Z*#vBRPQSb`kkYm-?KBhRztcz zj-1f`k=iaUoR27+o3J)HU>76BsbIc<1)bKkLyEciy9*}t(rSNPL(Tb}6KHazL3RU& zf|=TjIC5|T{jdLp{KdCWj}5xFA(iaKAo)~FG8jpb8lr&h@O;uElRK)-&$e4zcBjRC z@Jv?B{WBbHqNSYyOvIP-kjZ&8*`o2m4xgpU38_L4IM@r+b`qS4>K%j^WvxoX>cZz9 z>wcR3uBCcuI_XPgasy3UZug^?Ps>dGNZx;LCw9av_8vtUsORZ;@<_Z^`B}r%y)sMY zhP~Ia0H#XuLRD@IC|{7?b#`WlGb}Q6KE@7XLbwAu+y-Pj*_H%HZ_idvFny+JZz8nu^IPSX4k?8AABMOGggtx*Id1!o=fC(JJv~IL zg_2jhQ|A}?=C1t@+Px0rZiGgcsXhk3YkfQtR-T23yo3~Le;rkW=_IRAf`v7t6pA`= zt)hEJB;lA?q=Llhhd;F&t5J8;(=D0=o+Qi3?GhG1SecFPqa+Cw28izKf*ut`=w~cf z^b!uXED;XM16+9KymctWOJoBh!=lMdhibbmQik@LE;CTyDkZ@SYAs(3AuyY+$66V~ z{jIToQ#1E4kE4;t?MF*+C3#sbr_^@M{a+3V%Wt!Rx4~LjQ?<}~7kvo4Gn*j?R zZZ%Y=gYf!#j7{dL59Hk?qDoUD-Aj-atJKW4FujWuG)D}UI_esdKFrI6oa958?boRTgt| zJ#;c0=z)8+*qhmml!H11^CKM?pyO0Jl!6`{nXoLgWNK!fjMU3Q`e9K$Q3qd zAY+HN;s2jAV_eEI43cb~-k#l@V@N&CAfi%o~zrYbgy zLhB6K%5-xvhRHnKU}^63ZB+(egAuMR@vn!p$8s9a!W|+AewO6=z`hPVjq&~^UQ6l33Vj}S8*YWsiFP=oTLiLMkv^fk%kmy>9xcrvU&`7ys~gQ7Zbxf%qnW3% zU^(mN@a8i!On9x=;83B+1maqg@dlV~*jUn2cv;2`w73{E&U*^D-ShF&ol0b4llb9y zHQu1umz|DaPz+&Ar(;J#D|#lFo=D$TsGZNWd%9}p2ILzaUH}i}n<~J1M`$$h_#AiH zXgdv7e$sQuYH(Cw7CY zEC*k`|H|hC&yy0k*P2@Z^-OWq%%i<+&$AMuu7*19(>kbHLf>?B)QM#W2d?WLqlTu> zM-h&h!fe`$hDpID^@=_js82;!1Xgpnoed;uMZhh}N+uhe&0gX*5E+dCf83myYpQ1s zYT~=VO8j%vj>=mkKABmeV{(zz#-|xQg!`(wX6Hghe)3S-?tudFz)D;4n4C?(99|S%fF0pc2bTLqG_8$0 zFp%hFBpHZ`cOZDkxF&K`l9D)kjCfe)@sd@CD<31)E*ZKWq>pqgSzaRTgZqj(yN8nt z&V9&apr{h%x05q!Iv61%JlMmL)U>Hp!8b;z?Lf>gcktbxy%3Tm`sgfX$68|B%lJV!|fHM3FKH@%;_e%T`g}ZYDtFqg+6+Z^Wi5Q=2C=@ zryLN%nDnH@;2~G=kA}TcoX#%4#=mq#12#OiLGl7graNjij44!a&qcQ<*T_u^k;Cza zCn5i{(@>nQckpH5_PaPpD|(=y)Hu%|ccNk|A0@ieM8#Pc2|TmH3z6Pgen>tk*K<%T zHlA9+a03K4(^mWP7u{Qs#J}BZpgJ?o;U7uIn=X4IyZXV8ykp`50LgLa@P=77{i3$`dID(Xdi>AlBFAMuvMCxlf&#GW~YVX zp4eAlB~tXE9r;r-h>1hAo#mOdoow?S?y5mfF>G@wUJb4SL9jC4<&}^D)2xtziR1t$ zirP%AG+Lfba=1pFfH5lDfv&}ivydQc*`4#j6Ci`DH`>lIj2z-|GP=pJH& z(LUoiT}Mw9eW5_PQX*jRiWj$+;l#@`(Dt$7K3=b$n>I4F^i8e+u_7v!j<|woc8V8@ zDcvz^lW$``aSwFS?TJx2VOl+G8m8E@-xLB<%yw*EP}TLyQ=3R5N8LJ3IAryBzP4$H zUjm;h$&`^2$ScvbHAp!%qQV^ZJPwQBBf;_8k6+xkafGZ;jwNJX`qL1(D`w$cdSd;i~1@Z-C}(+W^*%|8->IC^|rolt9AK8Tq|}3s94$!epgvVv=3}bRx6OvV!rsI z0NK()20=YF&OpmVX>tOj&LStF3<6qDoj2HuIsZx^)}#=MME2aRGMjp zat1rJ(AXn)og^Fxzfe`cHKQmf2Lf)95dE=nU7+#kN%1Hlj6!J}p~UGNYNegeaCSUA zwhWc9yi6&5$XTZkjIj_mOC0Ope?2{jGvpc$y9W_t8mMJ;W8!O+5rZy~RV-y&9wX5k z0x@W5)qf)=GA7;)T~3IW)=2xz)RbxFf~smcbDElXP|B%_7@S<+A~ZG z#kq@u(!%~|gI!$bY&b0fzL}tD=S4FtV~n2Qg#XFQF1N;t*?isFNOH zvx5i~i}&+WEVc76+_fcHCXB(bFw9a$-nN{hh_)9|bG(pJPo7f3e7H6$juMQx`AV7A z?|}~btZeb7i`-B?%%z6zu(-wy?cicsKrid ziMmq(H6iIQxNH0I%cr+@``xE^KmG^}D0xxkhH^oe=}0eUuKRXZp>`U4m+7$aY2e&v zWB9{4#pXaru?a0==(!oFMP1yCpHt1L$ZB@*-=;eWYH8l&?j`BSqQ#2TKQfNGr<|M7 z-8ns4T8E_UfL7M6if%C+886@k?IL$iY8rB}`mi365^tRyPP}E_DoU0@K>(w*XkE>M zIqe6AMk}E(i`l$-e!H-{ikKL!NvL-047h@2pZfDX{ADCfrBKXKUt#PM+E|x4m%YyvThBB)iCmJ2%T#L;|_cRHUcn zp!<6mo#8QH&fSIAdLhgtn7V5<;jIi|b8~7YGP<-;C&4JvNA&YdeiWYaCYQrw=@GqM5U))HW^ADgzktyipC)wgzZ)R`8WJ&&R#WWXgVrPK0SwyCUP5NIoGyR)_#WB9-rpg) z%jdhld}W%S&^DitODgMo1wgO2vjOU6s-690@RkN|wwVIuAk0=d!IG-OQi3IV2mLGM zu)r*iQ@>meJIY{E z;S-Kj#i{tz$izNM$@)_eiCgo%rd8u;F4Mki_(Hh==H?a|fL*UJ5aWUbQ^+reKj)g_ z+|)?J*hP9^w-uBCNDm!i1{pfK2m-vv=UPEZr!^dM<6!&XvY_E2ywJ>B_jIRLe5(AO9j%~IWfzR zZ~wHP{Pe@o+n;`*wn_i~?svB0j|cxIM#Tjmi^Q~BUT)~F%=+g4Qg)fX`^;#~rjMUb z?qcquK(vZgsw@Nc31D)!iyPESn_kZFvT%MSrT^wz68Enqv*vRg(yIrsQg5<=e;7@O zB{k=HW2q1wsL60)=)nU}Ok=l4y_?SJ-DKpNtX?SAT8_Mi>0>gV%AMw1YUzN`+rh`d z=of~)%wDg-MjU-J9G!(~fpQVJiczDZ{6#$@?`iam-@zes#Zqf9@UF+-Gh_RJ`iY+F zrUJj2LS2PFwibv!trg%2tWl&Cj>vV6*ommVt3X`4#0tELSb~v%jjXtGlEVFBaCBUbS;`1iY__DbVvDU`A{v_EArX10zhA~ zR}NJb+Ni|^JZ^8U zp{w>dNaC>B0y$+xzQ?`gbPP$)AVxnE#3#-8K<5F{_qo)2z}=!`9Jsfqvx#;E{O{bm z{v22NO*v^C5@G&=1JJpB(RL{Rf&N!#peAR(zt~RqFF~VGV1V__^-`|Jbb*vNNDzKC zMuo4X7O1{tFSBGjg^oWzfeIY3o!Bl+bTNCOXS5gnjXDu^2vCKHFbCvn!x6EUXoq?( zRZYSg7Op`fXdiE|$gY3qJ|+PP`_9Gp>sWS|3R-B!Iu9kXZ4hxq`J|YICJxtNYf@OE7(9v0a|@R$$~FD>+ry0fZARHBcNroxwnL zq50{USUX_77%YP+UWu+bLM~s+adKL}5ZS|@j%3|LBgsM_1HKhYHG;>pyS_CY5@P-< zWrul4a|R&+cuo(#mS$A`3p?=K9l@HbeC?wgQ`4G;2S;WY=G2?CurV{eJZ!9d91=6a z^HNGv*n0D|&8<0T%|~KC`}2(@nD0Vvb)LSOG%`uSHeDhMqHBo;wzb%;G$M5QthmAV zR>hS$%BJTVTb8Zl{D21-GvQ*;kY?>_m4oDZLYxpv1D1bv18Rkmxi=p_-04+)FgPVS<+nww@)Kny9UQ_)yhD=9 z^iiQhGgoJ0IVcut^5W14iN%izyHPz%OWu!D38tZ`yGv3=$h;xc7XcYxua`)t3^Tc_)3pE>!iVI4fIRi(qyWJp8dr!#(ng^51jIW)_!}&Wvk*gF;1{86uGqHuqhvwtK zKhje9jzj%4KdErV?A0Pytw2Ky#58lT4?^ghA)ZrzCFT1sta1jESA0R;aAecsJ<34P z_PL%-7q{2H*p1os;T@&By(CPXG^d7WIDW~JI@WpC8<1hgoT`@H3i?<2Rt%`sE-%QE zBFE`1*mm4vo3naUGMKbh+vLJ&5*=l>A$4)_Luek2bXD^%>gfr1T6w>Q*)SxlxQ2-j zpn5cv&lODF=~N&&>D3rQ+kA$!wLsl4{3a;U+Tx_|_9%#Pxa)U`aSeHp6|GgM2_avN zGCscAkL(eQ-+?V;9nm|XEZ;HT$L=-Qr0(c5OrzK0dCG)V(OSdu+=SmR43ID#a4Qu3cZ4ZH7;@-*cotINcBzv*n@$>%G{iq($bX0P%&s3KU#esL+3V z;zxI67-DOYGR)SPIjI_)cv++mXToX$n>$EgM?N49^e}4Wfl9sdaf0OuGa)B@gQBGg z^Y|1Tjj%k`i(7&6!@_RTF0M9C2I>a7fx6X>yhm>0Bz!qv@9{rY$4g{>4I*D#9vhH7 zmHJnifw!+v7Y4a8gYN|xY6RNq^ff*e<-sHrbaFQ|@)|A82U&HV5?%A~jtcRg-ra}R zpzZ}DZ~|j+TSU=&qBBpQz}hA@MXq=$?Fz2md~zVX-F$-zw--k(*yBAMVqmzIFK94j zy#4WRb&~x*UoD(E8;|)cSG3fH{{8W`X31E%F6Jf4aYa zd~^in1iB+wXQs2))C)mgMC`kkSivv!QQ)gu9lF<^Nji1y*++DIEUm6bW#iX2R>|PW z1RJ>@dI?PiW+Wr^2yqkAbxNq>#J>Z4?nyI ze@q;^S~Isy1Cf^+7MCIVh{?}*b`H7SOjQRkTRdBd*oKv+(1?6*?#5savv{5*keV#u zg=(w# zLebsAHCX9e42661Ck7}#B24Or{n0Y?$0~;oerWN>rEWTd^fbEXnq$ZD&ogPC%#9^(ot(Wi+=Xtokcq%XTc?rP96yLdf zodOP>hVr(pICqJ6MKC30g3_vn&$lQ`7Z%(tgQ@F^-B65I*j52ccNiylIEE*s7O}W& zbPzHO{2VaA$@LUT;h++@LEdANWqJVEjl>fYbbRn>`Dv8zaa|FmGJ6gFitugrOeQbh z0y~&9kCK{XJPbUsa?0N>K&CR@2yRB)?{I^!eYlEzAE?2Na z%hp|&3vtLJslF@$plhpDos{gL<+MTdqK2Pv7J@-_l^2)%!kW1e4TDRU!Sva3&4ld{ zRVCy_ba_!2FG_pY)7p(b5-kT$l((bIs)>84W=-B-38{%Fv9!_axnFahL`b(HL)`R%u2RUzS(9PHzNBct}s zw@AbAFO&p(Z;*j1F}-mMui_@VeY-)3(64|Vx8#Y-$NWm1puU2d>&GGscD}-m=mKnq zpSEggSj0Nru$w(03!DOCu~Fd-Fe*F}?eF)0WC27_meaz=sUZ6eq@?-ArDtcwt^pzS z(03)%50VyCfwo8h;jFx2I(SapfHkD-NgEE`2(A|k7;CI1Kp2zcfp1cYe^{wPKlPI+ zYtT<^^4+4u$tWnYwoZW3s(GBze89IH9C~u@&;9)b2bHEyrFO=?)!{9azCZkTj9kV(O{Y zEyCMmBA`GGLkA@4Y~vIm0&o5`38aE6wy(A%7r;8FEKdb{CNj(2-(0hCkGysp|qw zPJp&@^J1)n#H@hij@>XWmn_?GtlY8rcW3VWCLIhWO zZ@;0C;o(o%hY`)n%Id;zPNm1k!gV z*T3s6GGW8x1Xl+~yjn*z@E{=Q*8}bveFfu+#Gf;!fAS#wF)0*2b+ztjKpLQKfUa=dwFbwGkp%UC{ge2UY;`4YMh3lP(N@Rxo;ndAKltzFedQ2&Qv*5QKg+ox?^Sw&7*Y7LKR^nX-_Zf<9hzKIl@^LK_Py9K%WeFl@mV?v7O~BN0R@WHfJaj1E{!5< zeArz}Ym2iZN%(HI>T3AJXl0dnMo~|IH(|bOy(I=rPb!BL{Q~ym(?K}o1*cl zNMh2!>Fv%V9g~r^0_ipBaZ;Q-q*l|t7*IzYQULOoyZx(J4pInU<76@{gjqAhGSzM{8>QbH1-Q9guZbsARs7m_`} zKZP5)n&w0<${6;qMje8Ui4f_%MNy-{(tGC~&5vpeC;Jcj+wh@w5EXEJvd+}?Eo#v( z=stFhtb5rm93p&wC*5z04MyY4y$kRY{$(pTmYXzLKaiff;Ab4{=d0R?$>gKyW-AU%09K<+hp}ca5WH#Vjv>a zp5w`OSShSe&Y&jd04?F_Cw&6~VZlvr2M={o4=fD%Az}30{rJm0_T~GJZ+PCP>yQjs zD-$~&K_uD|y9E!b*Ndrynbgv}8d`DDz}O)V5A;^B1LGIhFR~7}uVOkE3l?vlV46a1 zAyYTH%&6gq_ctA!k^9XYoNZ#Vx24M`u~OwblC+|Czf03PV# zGe{oN2n%>4IMq*a`cjV=a#eZtn{O8%KHtCj@b(V6!wEv9#DJ1tw2GjM)%764GmQj! z*)f;3qNVwE9)MQP{;Z4cw&d>Owyrv)X~z82a?vmHZ$T@_5kqZ_war~(!fxG&R zsOs=(p}xz`7n~{(02bSBv4FTJCR=Be`sy}Uj>O63p<%|4Hy4Y=b3b7J9+e_2ju;FP zgoX#5378th|3CH3ecKE@6e=|}7Mns%147AHoA3AVbn^}5=E4RTu7{o%+MPU7x)#$V z2p3Gh908=!(rZlw0Bw}|jx=4r1)IaQ5Kf>QDHKVP7*SqdMA@|I-5+e1c@#yjhC9K8 zaW+=2L}5FKUH^5q8yum_5Zir=qX$9?PN)d2NHEO4Wo zTad&P#@OD%eBhKvSQtdET72rl^{i6iS@^?}3MM-x-p5p9_4E3A=!pbq?CaHrQGS(A z5WX+jM;fOfE~V};hRXH;bb81;gxx@8gVmd~^)uaerH5k|a2PPh+K)Up^tig%uaMmE zYKw$ORCUVxMmxTs`w#ST{W1LeP|hk%I!==f1d-l{H4yu3kF<5eS+op+rAgo{AdLwA zk`!dW5%~~>FOYkeSUjtXRjzyQleipYtCQw&xQ9==a^Byrt>6L!u56Aoz*PIFv^jz~ zetll4arNd5((^^ks5{+lJLXO~|Khqjx)&T&mWf$+YFjM`HhE7MO{OQA3cP$`Y6a4e zfapc*$!4{t7CO7-!qTIwQckDKMxr81O=(56d^Wa%;W_5YS#l@gAi)jKU~HiH7|w9* zWd>Xc;_UkBf_2k@-nKQPDP*u*QdbZ7caSi2;4ZF@Ag;@6$FL~7ANlE{+%sS-8(ru~ zT0UsRD_^mERbTdioa0>klZkn#h#@T(uOo~d=wTD>K0j__iI%>BK06Dn=mpFe$8f#W ztd2BTocy6E(yO5;ZQAuH33nah5TGGtW1B)K}b3UyY5YWrLMu;P_WnWRScHuWwKK1Ve`O z@VGL}moNn9PR|*O^N_+xXkz?EBtMRp7Flr5Ce;qKhGm>FA9K0jc2+E@7?CQKkcT zk&fT=jpiuBgK7kApN6kw2#C~Xt}w7vh-1IJq22{bf~R`tY<>EWFHQn#>@Fo(nntib zi2a5Zw>M*6kv>%Brp#X>nTE z^1MRq1k*?ZKM|x$B#~O#&ifLguDaWW#@=|J1k2s+WmWiR&Gv&3h^Lh|dnw<8y_K(s zndnPMmi#rfMK=lx`^g{QeE4wp9-$-uCY^vDzeB-jx))`m|KI;a6r!!3IQoa5c+x!a z^(|`DhXU!AO{^2K{H%~mr6G{1ep`K&|=596_5bJ2M#BWitbOgwRk&PL^ zIg{|Q9n8TM3~}ijQC=5aMvB~iyN}r!I@KV z@XJ-`O6ds#o|&#XurV%Ra+zGs0HpZ>*Cld00GCu{$7~yh$?%uDhv}W(X^$V7no=aI zP-UL>s4@@qF)CKdKt+8>C0?%=6)JZKHd^a*wUXL zFfwt~E0`ZU$2dKAD_A5Vi*>$`5zRSNW3{t%Y79#6Dg-EhxutZ8aF1x|9W?JmY9{k7 zPc6a2*KYS($!^J@(Gi&Q&g_d6J2W{?&RukfRvv~66K-13nOv}l*(=7u@4QT3xDJ)`(0d5lq-X}*QPoA`eql|DThFn^U5CBIeMAi_!_T^g(?0Mc7{^edidOBaYE{0R zY@;?=w#P;(1i7n&229`X;*U)FE=p5T18z*(G|%yYlUvP{_lBMn)sR*xuoP@8BhaJCd=Jk01{ea8e2u(|h`BB=(3Uj%1-a`4n3;m+oHshx zDo46cZS0OKpesPCxRob#wZNG|vSzS55>aq*C5|<6#7AE2KjvMS3Y{Gq=xTYjZ)QknATyWCh{o<&O?Jvty-8gAN|D7WAwS_TGPpDtm? zqv6X1b5-PnsulaK}VV9Lf>hzE%!5ty{$TORIrBr89oMfJmw5JNaEHW_LyhLB(MEA1O4%2*lNbJyC`g)QG zOdP^H3)dSq1T~%rK?aAZ08f~12hAMMj1TYby%3}GcCbXtBxG!=9JU8N*D}x8gl&oG zj~PykWz$KMZ6_#1|Blyox=kgAMRxTIx0#gTkzZ?L`B14D1qEj_A3>E(O1aEyf0-Jt zTI%ND87>O9)6Ia6!>9t`x=9`ZPDd{2**% zg}dcFZB1VybKJpewgZ#WI8kdkz(1lHfNtNI7svsq3CLf-e3Wn2XL|u_cP01yOrBX0 zl8oLH=Ooz}_`{7+PpjWKuLYS7+H;?PaPY;JH<~;?C_1pvSbO_zXlwqa?c``i1Ei_p zzTJ$!m;Wll&IeVi5Ds>zKY3ON2Wo5TY!49|7}mkOjf)!=cM=ZPmz*4MzmbJ%%AVwi z9QdC@!CTjqOVy~5jh&IK8cH||^b&v!)JU-%;6P0~*#3k5`o;=ps}5XuX?*K*g@Wtx5a7;TXj!6mmHdls+ zR_m}KDDwo11GTR+YCY<8-byfi z9kE`dZ8Dh~-bV}SVXW}@{f{5Fckl1s-oN|!0Z#kl(b+ldPJ}EkSKvwDn?&ukK_1EN zkZGgg4nKLhh*Dg$YoD1+^2=gPEwsqB$F64Mc?5BTjf^` zP;t-m)r+N$v zpl+AX!Jl#NQ!70}w@^Fh$+kU^l20!{ng=bOdkT~qPH;CVy{Fj%nB2-RvIkQ6eF`(U z73o?vUT&`BV}&35K%#t|*0t)PkCFlhe8_dA{*&Jf9kH+%;RjQOSp@@(%et2_lNSh~ zuZ#()_OX*72srvkF9jIVIg3TxV7bE%g(S+c*y3M)H?Z!$GsqRsuAkY_Z7lLLAf@F; zznUCMkFGUvrM>%lMJp|7g!6&!V8_Qq`a#2mZ8~T!Z07;vwDTaSXwaNYgXH+;ineut zdRStTuc16E8~R3Fupv8lON&0KB-5)>)2Me7D_*XaJ1D$iAiBZdp*u7+S1YPAG(B?U zL$a`9>*11}cZilgiK{xDT!ZVk+7|TelJ81&@zcjY3s2V@CJ=|$a{5jlisDKxmvJ1? zUK5H*9dw9QF!JXuy;y;#C!^Oe>TLHfZWqvhA?ahvJjJR~VD}fgGa9WUu;aF{$0&CMglW*)kzUEu*PxOWjT(Ll-?G~QvFye^VRF`Zi(>q~#Y(HXnBJZ{fmJyPd$Zq16lRWYv`@Hh75S1!`=qH1?g%;3Sxydu1)1t^G8t68c*8gOykWY*)t zt&k1dqJVM3{!ljA(H1SeK6Ei7>S?@`MFg5y)C(q=f}={@K4VZ-Y_YA5-1ClAnyUN{t}2x^Kn zCX&D)$V{$E@7m(3qU2QqLkV5Px;k`K%IDwTOFXR9Qu?)s;}|47v+ zh{rqZ{O$KQuv?97^gi|$COpwxy1mB_rfB*1U4kpP8Y7s2&lEQf^YNZ#$hNP>YY0a} zoEfGO8ts=C(NhVg71=b;XlvyMnw$w*XLC;UE-P)tmW+tpgAMnrmTN#9{F z3}sV!K_6s_`w@~=ASszmQ|6O${9>AamtijEE!EA|WfdqMw!ya*uxB&GPk6lQvbU=ck z)G&w|sjuziC1Zh(U-P)Fp8#8tNsnM9i}V2$iHXb93n7C%q{FIJF0e0DICX?W3mM|{ zq0A*9R+B|-0bw09Tzljcaxujq=uh?%ZXWw5~4fQ2XrvtVnjN=cTAM9be6Sm_U1X_ZzZXL)-zg=1S%YRvF1Cq4+82ID=~82+DL6)W zR;yCQRBWj}uox(5CH2;lA52jdMw6dnk97CWQN7Sx0(!}wD;oIFxvoRKd z3`sD$xv5`W;p~m{s1U?LA8nGCu`tF+N~_t`+=v4%#f4Nhbq8fQYFs?$iU^H;#JwHz zXKpD%!ZlZ1EJQIgv@`Ad$%xr``NFR4u2_@)4z8vuT|K)+<&Lu^MXqsR`r#Y-@3b;l zL<#Zb);N63{q$m7hj!rAFc}y?BQoNP($sbsL{10)S~A8Rm>3eAWspW*3`f2xlPWs& z>b>%E2Bzsmxgqz&EwuuqOBbA~n6OE{pMg3=8y#`4qR!)c|AOM9MwtHqvPf&l5EN%H^+NJZ#Sw$Dhd_bC4;nHtu|9G zBT_K&p~)#P$uz$28(^L-JAcCTueCGFzwI6!h(gNPJ~+)YZ$`e7D z(N*!$DiFYoQpM{sqlXs{|6Ylk_ox757P%2-tlF|=mG|aa#iu($JJ)UqtvT?_Bc=PS z)=0UoH#=APdgkjBIYf~x(nd+&#yJ8aBJxTBZ@@HRbeW^8rePhhW;mF46d<0+jgg!@ z8=BTaJ>zx^2n=4_eHiiO#eN@fY(-lS5wb=$y^iIeg=XY&f6QJVngmmK@FcW~TLLLR zNQx_^ImY#4z>%Z~IB369C%r&RW3CA9Y;SgXW|?D&!AgQJ&fN|S{Z-hDXE(||i}TtK z-hce?qy72v;q$v6KOhAx%xoeZ*~?i z_hg)|dQWlzyuO84t)#yd(*jq(2|WZeSd*0~tGUbAcavp_lWDcs;^3;>w=0mIQsIS% z76lTS_a@&HE*emsGTmnV(4G!@v|ff_rXey651}-u?`omCrQDld=Fs=%ljJ>);#AF} z!jXm$J;qkf$X}h;OWuIK;_z0m6KG&3Qfl+@Vx_rjK?-h>_s-Ra9^qjo*l?kUmhN+X zfN~L?bfbX4UO6a#sgYQB1o4KRWptG?1{gueHK;{1Qay=#*j$+0EKp8}gPlNBYktbi)MMpt*N3J(%ZQ~?A~ zeB3WEs=L&piB0zMA+=`j?r-07j=M*AWG1Rxvuk&0-6SGCGBYy5!^7X+1u-6vEPBX( z`|X<(C_uJvsJ)I~P-B!n0v=v1macU0&O=?OZ=jBdnqxSy75W@fVFvlg1BawqQhdxE zUS<()h51wFd;3@<&#+|p%Y91JTdsNb-Vl{=I6}>J*t~W#FwelsTOswS_%3Nj+e%{7n2NjU099y7u=H>`< zh#Zav57h$G?2>v~3?fBY>?eMX{fW$?ZmBF%fUlHMIph6Y!5F#^lEMu2a>ai-mhC76tNPS%A3Fp7` zgvY09%u@@Lz@-J#W`-8?j0&7*@G>`p>*J1hSbJ{iz|5Xw&M26*?98cn zv^2BIk;v@%a*pjJ$3BI7U;5WS@z3 zhFzV?956N5?psf&F`>MdCeqa*G?weC;Yu7v(bBgO&QQOL)o$MvYFn6%-E0wJFdiPx zcr=~59L|F}cn?YL2-7BGiT!?at@KRDy1d~_Ni*g2I0V;gTwOlzGJE{&0xA<8A^i3M#pd{vs>`FJeejw4hZ<$cUkXs0l1|#-COz(6$>8FOYL|Fp)R3hvL zQI-oMJ>v(UM3EFJF>f}jZlOd2+dM3kzi5_3ckF*yCgZvHLB~7KxG%|<0aw9DfVa~P ztZ_^YOPr!2e>zOsGAF}&5jj_>AY=;u_zdKo9~#W0P^Lt~*)2?R-G$lXe99>H^dIb;;9!yU-RbO@xUW zNco8xU`T83<}mw%N$bd?CmWu159|h{IoGKWTF9i(Gx>la zi(5!}O-tk8_LQjh2q*F3h^;~k8XHtNLS}q>1*+essZxQ5Hh(2)1N(3xE9H6fIPsP7vG%6qdcUueyn zw0Rn%oh-({r0w6rGIG09uT2K=K$Nt)pblmCNXG#7oT0YKR1m_x|2X98I4``L%v&X*68JcX_kZ+TM)Y{Pn2~xm9#Thcy19ni;OxX+hll)M zqksJM-TPa~%Pcs7xn6-cn9g4!^QwDI6$&}fLG$D*64}$a2AtT|2wkA{7V76CXCa^Q za}iQX3o^zD8yC!Xclvdu#Chf+uHFH^Bz$}vJ|%o|96lrbjPUcXh=V0(0Tv%AxuI=# z(GE@(^r#>!KPYQ%f#TPQ*){F6L{6;rFW*4f^yK~@@95Y*@{jk5BJ_8sb}o+H$FKUW zX&V}kZl`jv+T8hEoWWv;02aiDrrOPSMT8ChiCZOub&rjoyIb2MB=8c&N64#-=kpuX zy#Xx@=^YAtu%G582dA5&z@Y_`(+pO3y1Oi_yr0z>lHSfE64Y_h>YSttK>idR@G~r1%aWps%BgB<8#AYxj!Iz1uS>Yo3-#C0kAQ&;j1o2MJD)KtWCM_xN^{QaK#!rosaKT#`_{9)AW3G6{a z=@K^DDW~ZO*xKwKHnE(|LF)3AX%bOiZ@KgGzhG9_(8&VpbuZ7PC6fdsXPVSSX&`sd z^h3ba)L~}Gg^6CeHsXODVA0ZBj1NP0%i$Cz`xauKWqj12LM}l1te=sl z2Nq12TikLYQbqAc!I#w29Q)qk4)%J(%&7JeEq#jinQfMoBR~OtRt!3{z^vQirvUc^ zbRm7XaTIPeaiUXFlQV%4yot-F-AK+in&}|TfkqV8V`AC~olX<$I}zbU%7zqd6|T@Y z+Iimdwlni?+LqXH6L383-a|4Ult?Yo*J$VovnMUk_EH4;q#T<6@ zAR>8n!bA0D9N?$)F7b5}Pv_Yy#vN5pgzUMbqfJ$1vj~l6hLBMD&atVO9Bz_-I z2YY3|TDGlf+A!Ds&Neo;z6)HGP1;s|-**~~{6K!iHUnov63s5-L__Em%nhw-QUY|toxl6EbExS0D zh-HbQnaT||y_C7e=f;DWeFRlU8=h=2#YpJs_1(1s1#DPLRs5vm@RCUM0JJDhcCWxC z7Bh`nS{J>>d8e-ZzJ*ofH#Z676cyS=OOG?^Uh+X}zA1SoYF?c+kO8g{xQ=wvi!(wN z+qKZmI9S0Q1H;405Kwvv!!bmMw@&+M@<^Dw;Cs_rWOGg@)ID>_*=d6{bpF45Z7262 zWrG6q1q|CJIVp<+wiDoA6RugXy2!~IO6-j_>ozQ&0ebW}LT|{adP>t@l}r}hk7bkXWk!u`vdjhp++56V zcuK?0a^=$iyP8z;I2sBmBk7&E+p^N)XaD;LaKC@xLB6LG+!o4P5U#z}K6ZWZ4pQw_ zsMcMSMJuZenz4?jr<1SlnlpiHf(h<%EoQT;P(6;+VT;6X@ax(nnUm`hIdsoj59b!7 zhr}u(fT~yNrG=?G4_nj$GN}Ssky>@hp#TvPbN9#6tUWyEkdIpEstu;e!5Qj07R=E2 zbfSoduR0>B2EJS`Qtl(Q^kCuj^Yh1*-K66FV!1KNeKiEShm>*9gCL6V8dBwa#3m>r zuZ$0LncFQOY6IWlOo=e!*N+yPZyr6{X3B4TJXoWFN?5#FKYBODQqeblB)VRjwTF}X z#(N&j30^#XX0p0uxW}0`$y|BDS6F{nPPtIlVKr`z?-MwD|HgxL-S z=gZk_xi(y5EsfYANPrJFTlc~7m7qEzKkWdt%}4>Z?>9>()~ z##{R;GM(+Ca2`Q%*nd>Hu1ASEp4gfnQw89Tp&ssd<%ShLEtw5kGmBP29=B&E<=ado zgvH7=ARK#?YtHcbR^X!Z{2o}Z(7u6QX|wH`i!!95qwjn-RYt4Kv8+On@n{vw;TF_= z^X%at7oAO;G+f}f!0L-5iPNA8rvi0@$SE@mv5azO8d{jT8-q|dLuL6m^~10OE8{5{ zm_-mvOB0dU=IS1D2XCD_l^2BBDT?CxCxRsg+W6)wMqgp5A+uwMV|LTSltZ2%ILlsI zYF8S061ZsTZ6ep;Vwi!mYwT`eY51q2L&MfFcWDDqH~3(cf&cX9In*oSQ&#jo!>2JX zHGQD|>%)#o9pN@JVMNsFpht~^^ckdgp0W*JwEOb$r>l?OTL7bfVIS(z;mSGIxWjgH zj?q0~2imrqzg%C#Ps7!Cj;4KRT?x~lH3u^faV7ePmdj5!@s0cf#aeD}-+tc-zbuy+ zeMw@Xy{-l6d8 zcfc1}w!>-$z`4eD%cfgLKf~Bj2NLzq5TAx;ss+TJN%{K0=Yt^s*Y6(HB{{+yQ7TOOCFe?` zmP5}`uU2{Z_}N^2YqrtzYTgQ!s`HDkcKzbAP498cEiL(Q$ zJIvHI;lC3ty{DiAcbc6QOCXQ-9SM2aNCP!ATMeMeQBxq}6r7lnNV{?lwk!EX4#9lS z7%h&#KW~)*ZfDQN{Qyf%5uJ$OansC01JEqw0|b%YZL_>4Tp8WtMe?*nC-YZ1bpzIx zWo}GY&e@~fgv?G$NHzW4mVg=vc~=H(F87x=i*VtWj0Wc4_SUf|q9L$setaGa4UE?D#!*>A@10WwM2W=2{dP?o&6eDI^h& z)!s(5LoBaMJ3>|$tz3bgH7%s>pbPV#57Uo7{`eJPl*s!&ef$3XpWlA>H+gGkXaKP7 zsgok!Gr7#w+Yevfeg6Em3MLwXOLvpO;Z>kMrzrFm>lKPc6dN3lbw9G8Y-!5V#w+xd z=ORso=QMv0_=#ea=UMIU+@-Lj3u~;=9o;@%>0A-<^P|7mA7ETINX>Q|T=9A$_5AJ| zAdYpB5^{%Cpa7J==5^yM<{o4Q+H7F#+91*}T#@--qiq&I&yhKC1GS z=GViyJRmz-+MPzTLDX1lA~ysT5s3H{a|o(BxA9lZ6sDBrhkCQB_j>mBL8U=~**?h1 zN%w{++Dbn?%oaRcGcMft-4R4n6P7_Rhq4UjyorMyY$V)u9<%OS>`X3$RQkFz>uVIY zGzXC8icKguWO&VBOT7ZEhCvcf9U+JYOgvl^S>5Y|fs9e{%gTM3K6*kM8@#oI3&5Zm zbj&SD$dEc(k2o%VP0o#L2?|WzDaoKT2hXzQ3QXmQfi;M=YA)Jzo3%Ki3!|k^BxRy+pPq-8HcvtDnlCIM!-<+MzR`Q;Hxkpsq{t~=0cxg>OQvT^Mq4NeDS#GXe$!`Wf z(oXIfb9Hh9kAM>L%fX#AI#s?w%K@f z;rMEux^RIh1Lq8c^zGn2a$SXq5!3?IvJ-6}Ap<9`E-pt+D=p|b;MCcGOK-8x);odq z&@TDu#@6=Xx{Wg8#ggF)FQLLi>38|wbDh9l*r%1~6J9+LgQl;tT{%&h8H$^iq#*9y zHdp|s!1VGvg0Ce8<9qfjd$Z?Tf3o!=o6_`Aya)ZL++E@&;VTLGCr&X zgZc$O1*yWZIT2zXcZ1OfyXd80hOcj?pjc1D)YtMTj?^{jx)JW-)2_huOijP(D#y;i zYtL|>D>v|Z2ak2mlBJVz=9;v}>^ozLuGrOFQavw(`O(iAypbH-XC#Cg<1Z}@ zf^&574EgeLQm&T!BE+R5BT|IoT)MtSro)y+q(aizjt<;NoDq%WX{RZ4&MdY$QCb|B zT!6s7s6kY=cw_qiIG#d5^Ww3I$5G|5f#{>1uR?B-E(ypGb&dUy!&=g$_Q1Ny=vY-R zL0M@#!6}??i`+qeXyk|FwXC&b8hRmQ|8haL>bzH6M6-iT25V$e4>PQIN=sktH3mPL zDa}H2k?KmaQs){gI7&p=*xGsS8>d^*(%5?Z3zjlDM`)3qRSnLnG|R^=LKbgNVci@c zeU+~G*7A)Mt@1D(Mxp273L+hU^#iNW`an}0Ri{DP@vLH6@d*UqgyVw+D&4Svy*W zsO~E!FC%AHm9*I_(TO!kRL<4k`HIim#b&xYoK55~r%#Fi;)!X#OH=*zTsOmZ*Sm!| zNbPI4xixJk;DcM>#oFp1_CH(i2$f;t^MCixs8h^v!gN z?9pu;V0P47ZdazSIjO0)j8lVeOS_VWMFm**Yn+`|Rkiuy{Cn3WBDWNXUJ+X`z z+vzhWIHEVhekLv)D>$I>iLNdgU4}g|nz@r^hEAJ|f;j5533}DM#`Yb&AW#p!#&*}M zb;exxao1*$OamQe%8)r*-ymp6c{1H|Z4h{`Y*es!D#L-#8BLh}2gMJNLEv!l-FLU2 zKXW+PD#pcjK$?Kylt71H-BiL)#KZfa9#EX7YO(Qn==)35T_bRIFQaD(uWCB-knBK0 zG6TEz!i#FW*s4*d)0MNCAr(#ago9?m^hUkQ5p|FcDKJe0HLwT{p^jrF)eEOBrM+-< zpR-0tbdmIbjXKHxmG!~rIv?Nss(gzydWJiMH*KuR>95>81VyJ0n5s9sOg#=1N+JqN(zzRaIT#Yddy3&hHiL4+HU$W%ch4o$xLqUIrVpIU?hQvxAci1t0I>X6S zYsXSU(@V>XEO~9lnbB_$r>*{_J{O$Io<{?fYWEX;ArkfApK*0P6=H)PIcb z(q#)0^Ymo>G2C@4rxWkDxAsQg4s-NxHg2h>u9339wJE@&^=1!qj#2w)3f=M=PmVjb z0Hk$ccVH_Frc3vZAwIw-U70qBxL-dX=0E=Q<)5Q+(GoJwuQvNP##+GY3%*Zw5B$sD z8j3K-oIbh-S_4WLr9(WDqS&zwl`GK8UIZ`$IrNS8TQCy4FcetA z2y#ZXm>*!3AKtvYGNf}K|FF+CClWXP-5ta2xGl@_m^vb68MfoqRd#KkSQ*&3w@(?u zDXjvcq&kJ60$Q&(ypXHmWXBO=6=CJv@T#=u+jH=+?#6d+x*pkR>~|dIu+#7`k26GU z0C-BP6=$>a%cYm>E*&E^6|}RHGH^r~nQ*~~iwQAdZ;s&74J6VflGjjC>{3@ zF+ncLPhV3^C`mB!$rTgWJMgp|Cb?8l2*330LzgnN%3A zfk)EKuuQrlL#u;j5L8zs9_!`VYqy0<)(%Q#&X0B|({rLk zu5yHxh@=Ua+i+w+RqK3Kq{|u_PJdY8zJK@kmv7&H^$ZkdWOU`OH}po~fN6V&Gf5Sg ze>OOxJJ(|nt{t+S?Z+@YTv?6d($X+Y>Kh-vy|~%0oi(6vmQIsh3fqz*Ag9ei#^Q~H7(uA3AYYpYG}4*^Vck8 z1-mp(bWwPK><%4XI3SZ~;v#?1G(=Eu_bk#>RiMTrav7OZyYtrpmUUpQY%0tW(&*W) z#BdU&f+L)SCJYFILm6oJ+BoyC;*I>;nm`t6@Sw>k`3;)vUP4gN&8LXpna@T-rEihO z?eMMYXE;S+)eJj%i027jz5=@e=rmguCOw%mDoovt{lHfP!?)1oMH!iNMO&(=$YSS2 z5I}px1t=|?T~UJUjZGdm9I{Gb-I2xM8Yj**Opow~IsKU*fIpBN+;$g%4tAtPOYgOZ zE8C9#!k{tFjH1=LnCMlUws`nR=1WH$nD?+d-lZ1); zPcrF%GVSgX)vK1`8<~Rxtaf+z<9x=es~M>Lqr9QX5Y&~&T}5LH(@RRuC??NGPQa_> z686T)h46%g0Z>97s*IL=h8(5@8kF#cDtrwkR0cPlOESyqaEC;wJ3-u zp{n7uk4x1)p^55dZ-S%L;aMkvldc&djco_k5uXkc zOY+SP4{d*yO-6nNUqAy6N(UEl#vWrU>BI4chI0&k_%4cVB46&v%^Q*sgG`kZgn~#@v7^jtBWh--A!-|fblp&lAI=7Y9{>UogoqlIAZD8tJHz?_<* znp854`jVe1Ivc4&Qo;d@O~$p0s>+d$D$;iUvU>sP zJ0+M_U8U)qYg+_^I^8MGBc{zwzXc0dtksSR;>ehBdU^qIoReO{mqtxX_mZH}^?!ZC zBOBPy*@kIqqVocfNLH9Yrn$0ur)Sq)O@mE`g)9K5FBI8^l1e_w&^h$n9|t<i+IbkK`MwB2^YCw1w0fYcc}|JfDFM%hwy>n`+Q@>wWh0^^}DfrnEI z6VNakx7qGMDo{h=rrJzrFr$5W_xIcF?T;V7+`fAIx7)8jiM1^t6k*Fi<61nQQ?^y5 z`EeuUIiggu4KZETlphXTrj)H5Wg-F{2#7$?B~;cPp1t7?cHWv>)}YlPKxHva!vdL7 zd#bd2$jHe7W_rk(ssphXn>Y=}T|6FM>O6lD=C9!=AxvwK{Y`G%o^ z(9+LW$skC|5SnlW(csK!vt;vg%jakYNwQs*z`$1sJ-^-|!UHOW|KI9>#~`n9z?21G zLlc~~g&D-4D7ho=Lh7T{o94Jc%MXoSThg^= z?wb}ZO<6iLCmXW{+4(vV`{3-26uFe@U@{+1pN%?gu&c|(zM4L#*RWYuZbD7HO`~yN zF?T2*KXIaiBag~52oj!oQW8GL2e#w#>!;6OR<|F1`104o!~LhXA3p!(_S0vLm(UwX z6RY|4Q-sJrR6OwlE}W#wE2|dLiEuhY2JYuYL5y$eu?6}-=p_tRXVUYV1?xrwpCKp5 zjWTNXk1tRx&p?m*L<=WqNN^azk$bz?z&#JQoo``9b9OiKXPLRS1%|ygu6p15_mIFJ zO19#&Y|ZMfEIxJvu5SxrCO5Q>C?~&LzCIZ9hGceHR}(W+oB%4_&o1GV1c@k0-i(pp z%d!y^EexhwrbC}J=cAl2Ghh4YlJ;X_g+Q{}iVmV6h)48H1*U+gZG8cE7S3vYSaWsQ)Wr2tHg}gsty-NK4S)ak;KF zLRkIi;`Imyeg-zL=2mA^p}67ZYA1g<^FwnlEwUJ0Cqo{M0c=CSsd5we7qrnDgbO8E z_GrIDZnqAz8P_#8VQ6DiF;^+|Z9wX*(?;7Ox_Wi%1n?Q(A%w1Ikj4*fk9e9U-y{># zKFeaYI;>w6`7ZW=R~971A4+zJ=sgesYD@Y{@t@wyXti4{o&5_gH9^8I&_ILrcoQ^Lb3Jw4}yzIAjn*?w@T23Eqo_YDKA&{!0fG0p2i~}P>My8m5 z4eBy|4#}R^Y!TnR|8o0@)l>XHRd}+TJWlV4Uu861Q)v!dQcWAFuhN=hktkxpnbD-fVx5Y4o(D1x8{cCG*S8DOg79Mro#%H zgENSlkg!j>07i08384%IJs*0*8;3dVgVnGl}5)0lp4#0_6_wL z@LIz248_eqz|R}L$bxz+7)JU5O<1MFSdYb1wD7u${ zb+P@3DG^^2m^^c=7I|cCqDsrw5sbeRPj;moU`^f0*kH0X8@shO zbuV#8hl<1)3pNpp)xD_Ram1}Zf9HWbEkDQlS`^I-L+4Q?j?vTU*bq6I(nT%nvyMaF}u32oLZT=z^`bKnSpaax{ObDQLezRTdFL(UbG{hcQH*w$| zcX8eegzW%zLrmUux{J&?I&m~(yK>Doxf|^VE!YKC9!t^Y0Cnef&D=ekPal7P9YYV- z*l~?LtV4k7p}$--Vgz;smCq^{5ncglKlEV6uUxM;a7nE08mC`Hm&`-WQ?HUriZ}$J z4|$s2xMnniGM4VvrFD=@vU5h|W!83SU+BX=&;37TFvC}Np^lr5E8$lRGBTACN_ zg=C@*CY2748lO3Oj|cU!1*WkV%GNL53M_pDZ6;l$n{Hb(r(55PrLCbFa{cpep z+3`~?26?e!&G#S?M;J@g9WDU&>n3-;=sNPnqc}s zQ1=ClSMDUz7l->mVFeIf3GXAqBu ztdT%3rP2dcH3tC*GwzH_odCDmk|roxn4WGe$EmQ~`_SfD}<97P#4Zq^)^{Rd(!jDeMJ=!fbdDjhzLli4MhAkQ+0NY$J9h;bXudFv93 zpRg9Hq7N{xtBLCqlVa-W%yL!L1b#7v0M1i78*%$a(Im|zyrzzbVnblbV#bHBuS)zg z7l6lESB;#UP)39wS0q!{Y*XOr!ko&=5Njvp*>*T{-PGPK2};aIb!3t}6Pb1Rl%Y=A z99)>9hlij|GUIbq9NXM3KS;0(EI+NLFzuXM{F>I-f54t_$V#PS3Q7UI~H+&wsL zu9cD!*jdi-nTL)54+gGs{*Bs@?;oGC0w?*O`EIA|gv}N7yrEj1ML^(9Ct>3-YTS;K z-o5%YKF-Joe%D?d5wf8GI2&L8q z&eWJa)%Je2hk-cUFG{OUiaV3LH$${4JnS0w>7*f|ab^bWDkU3G{X86g&@}+ zdo@`!a&ZUbgRFXD>O=RKw(kdVEkJ1%Y3<B|Aoe z?4(?g&fx+fHwYPhi7ZD^z?&WXGMMT^xv>da>8fn?4)b2uQZ+nRabqd`E4=%?C)`xgN@84@<}p*{m>i4>Q94bwBN53sd*Rpj&Q{lH$r;ZU#E&M($BL*)lQe zsA<)iHhT;lE3|>4CAjdGj4kG@(U`Us1H1D{CLv0z>b!Mg<)_Us^HhO0MQ?TxcPw^r zJ3Y4)YC>X^1v++^tZU$=0)^CRyngMGtjD(*rg&ubV#ij8GC7 z#E&Zt;4hYZ^3c+u!3RiV*XINi>49uCli6qbnLjke3r7N)X36F?Q%M?gJQ=L}L#IoSQ@%v&7)~u-gS9k;OTn;hWWMIQxpE}| zY|$FUsVA=~id2g<(j?fiJ;;v-NDovtrL)Ovxb^Q40?K1p>BsaCPg&z)n(6d_#0&S3 z9XtdJ%pWhVYS>4(3vvmdCLuk)%k2gG@4T>Rm?yFAWXL#YWXk#PvY09yOKQq$6SKP! zx`shI8A|?FD1eU2oUFR3nkG}w4D^q9`9CLxqLAf_k zt_plXxrs4`sFHXR8-dvW$D_nKj2~kKcCR*9Nbr+Xb)%{V>I1dq7zVRF8X!Z6hRM&B z9{u`iNi{k{UjP^(iGQ<4d{DkcvS!4O>@G31MJqtPjAwLcvj-zH6HqrubwJbStLHbH zZm>@Ws2kEgvs^XcYRI2v!Jj(Jknl_RHW2gj?dMyHXb*K}@&fJTykIktO#MTG{rt+4 z2%41t0P7~#LsarK*TeDYEu=^&ExkJ-zZV2G9@_Z*#Prk?vIMvL9zN1Z7?NPdgS&2^L>}Ta5)az-5VOxL zKt0R@r|G72y}MfOn6niJHWUjcH8G_wq^5$Y&^H{#V!`xO=uzmE2&dK2$v4q}=i)b` z$n?1zZ=v&>`m$1<4dpDt68Ag!Cv@7HS#n2E(H?*{Ehmxy8UWi>*J#^;%q)D?%mv_H zlLG*F8ZlI$955qIw<+8aCueLxD6!EOr@`{&Lm51hZd(_zJt#?Xw_*(cdP+0i)JbWk zW%FQ>tX|S})38k3L>nzl7RP|NF9Z-Dpn>+*0nPD5>nW=!EN3(ocBYfd-GDWzdZD4u zaLUL6Q+Gau+BW#)SluZ7@OA6^-M8J!D)Q`AM(O^77mzyFi3g{h6dXsBhemk)<>ly4 zBd1S63$%d{!;L4yRmHp>xUQNQ3ed)?BA2mKGy<}hbAg9RfQBZh)3LtircQ6ar&YSw zUivgM3n0Z7s%MNnY=b|IaGCtjQ?e~QccUv)!qTzFK=uf!5jO)Jsmbis+(?LCnhzXM zJgAn1L(Epy1_E}obB$koefx>donPO-?KO zrna4W7>_&XxDg;tGG9Trw3GyuA7zV@f$FVCyByLLURzl0j=|CPj3O#6!o`O;P&epg zk?~vz*o6D$gQ?p^Hy@so-t4!tB`k{jktS9`{1wt!p$BlyLacEfgpxffZNmw9cKiPA zKTQkQ_(-i#Ipvsx6k&M}G-@F3NC}C`8P*DkN*IsgOLn-S$mP`z##(;Bvr$1youM}J zV#qN$#Mj*$b=5sVT#rbHh@6w7Fs{Y}YrK}$Yp#6$v-yTGHVm>cw_|x5Jfl2(0?&}& z<6l?benn0cF!WzWe}DV_kEYSZFHkk|YTNniXG|xEA`+$FZ}0zxk6_+EBq-#Aii#E* zf3WLF>W;hckl!D>^Zp3g(r_-88&86fGJ2F4Ory+Xxu|xeG;h{pUS}Si!{PU`tbl*G zK}hd`R%MPNp!dJ|_vMGrU*3NB?iS@rVUtIO#P$YdLhN1ppR9E{`X7-R)T}pd-tjrl zRpE9jI8^~+xj`+h3PHPjNE{2u&|fhbe7Z$xFllgkx|g2&3y7Y?eowjGyao9hKB9Z#xlh!}%+irS75F~E9 zW5mi}>h3Fma8eW*$PI1B#3Q@I8#d(~Om^<1$8TgmsQwe)t_~C=8gRv(za*aw|717A zyO;Rj2NYQSfE?)a09+b#fb!2Go)@IUO<|>}ue8Ds$IbAd;_z5#7X9AmzkdAmCF#I{ zVC?vb!{n}n~Os(ntC&}y%5itN(vui-n`u4(sb^pp2a|=*L`BlHs>l&Z|G5m z;aFKJ!Q?3sfyNC)bC#CXWG6^ucdTmaquaH=BFkWRi8?^tP<3pJz01a~KX_oex}qc- z-{Fba=#q6BH=LzKv|b~Y4cWz}&w_PDd0mCN_5jWDG#)AC$P+K!9C;*0#gnqK%KT`n zN@x617zE34L1}sP<;R~s-Tv^$QaT#j?VEq6&jT32Qgv0n2VS!7kA4e|pw=nq?wjta zyK43Y2;IA@5}AYFLZMnrlebaOF+xzOle|gh=oUeb!35xr0 zckF)SX^+@E3b5`H86Khev-nv{NUW+=kcDQ)|!^cwR z;BYm205*`9S5MbF_#L6f2Q_fB2MVy%VH}~pJhLy&T7ntEDO-Xj^&1=p1cngPiIQ0{ z+4n&MpA%{R7QhU$<;)<$bZfnE62Go_5g9e{29aF21Qs|{dD0so245!^Pl4SlEiWG) zi5PhySz8*AUH~5Q8MM(fkkI)|IJr38su+MzGsV8fB#yr3TV-brz0#m4)lf|`@qAa_ z(4YhjLzfpTDb2u2`qrHv%iGa~X%d0c(pd6)NBlZopvICHutGdwjWhRRLWkYWC0V~I z7C;<(y6!mUetLsengY}0g?zY0vC zaIdn}-TFVw=3TFO8UY4B8nxtXheT!6*HkIqqk{)fR@pA4y3cs4CoT6hs$>KB3ck4I zt?V=zV@UWmo+du8Zg%T|^?nh-@bWr0vtViZ=KAZ~&xdy(zI*@m``g2Z+n>LjU`pxP z(Y<~+2oiQgp!SPLgLWQ+)c2cN()HvTkzEl}W|#e}G{-nbB@BLD0{iT`6s}6E-LSQE zQC~_ml;uJ?{dq1%7>qR%t3o)hHsN34ORc><_I&u!UqYfFlcSI`i%szI$oxuiw8B-z zaKMdb5NH(C_*xWB(-w-BKCL<_$4Sd8*13ieRvjU+mk2*2Jj!MCAxQ<$iO)C~;%IdBjvB^K*uv+BW2W=?TIl^D%z z1C|3Xm@ubEVzueBu}zu-qeOOu#<}AyO{(BlsAy0M4v7b( zxJmh91FUu|6PR6{#>@50CcAlE_~XezZOs|Ngkhpu%rB6snWD{qAhk;2xgXIM(FjJ^ zW>~DG3xuHYF!O_HdvrlIzh-oC29Nxm+Y&I#ac1JijvSuPOpA2LXQqWZ@Gd(u!No$e zn)q06k&`tUz)WpYanWTJ#U+x^8;U*XOO@9wJs7wQM^-!>H*;*Ru%uHi{m zn--y^&>cOp&gQk<)nw>70n%%=(ysVOxrLO$!`-*}`yrT`$$Gk-FQ%)l<=)It8m|iY zo)tI8rP+LS@n$|lO!MA_GQWa*;rBOx`S9_mbjEpv!UOR3|K+>#CnhtHd#aFw0r47g zVsVgR2slmJ35}64d_Hsg3OUUJtMkO8f9f z(7!gdA%&LohG3fO4pz6Y`eklj^uUE^>2Y-<7$au-#pGR^FY69Xi2HDMy^vd&2EYlD zZAXf(yDM+zE_L*t;K8YuT(yZ>K(t+ZDuDh_ z5p5t_laHTnXSaX;`U6M|9m=o3#+3+R=wI&fP{wW8QeJ-gEw6S(TWwtTi+Z-1A}!;jO=Yb9l9wJMDSwq{rDr!`M)h z$(Cvh=SS3vv@xh2|}? z9-Mp{$l>Oq>?%^?1bUEQxEQgW5HCZtb`k=Tms&cj^exH@-YEb?4<#GQ7OTCT zTLMP^tpVt%k;%e6WlOV61c;yX#6!9EZ7YY$%f-9WtS<@w+ehXAS(@rWoYKCM;zP=f z<@L8hwR#y>qz!46b_(Ta^ma6@FqXRU+9je&@^A-F-duJlQkqQ9ugdM>9*t#Wlh=g({$d zhQn@H5PAWbC{CNNrD-o%xj3COIlCV}u?xn?u@I0Hj|4aOfw+U4TUttwY49%|wU8Xk z5K^LM*%f{sAQmkx(8UIag%^PdCmg#}vBO1tmqFz(tZg}VLrq{!H1%K`n(HS@jWB#2 zBL7B~*@CVn)&Y(eF!i;{40e_BJO?8z_Gb<8I}1u?`7a-ic-~ zd!=-Qj^g4Nu5}=o|5rGt24i+L4<>6iYB^YfuyY(rjF}W0pU-j&(_|MV72`%r1H}q$ zE?uQzv6WyWIvy#b6LsKJjwJ1OoLKOb-HR~ioZ8s@)ORjBT80=kL8{RsD9*a+{ChM@ zeJbJ@pE-7$Pqg%SnkS_E+|M6MpCwn|@Jldq1hZCqqHE3ytiC4@(LE|B^r%$d@KeEt zA9zxN>RG@z8Hvo#9gK%4T9}Q*d009J@H`hVr(ew8xVJLb)I+C%d^P2VUYg7+w9{0m zUV1p73%xjEEM!7fXaCQiz?uF9c2{1M3JocQVe~;xKqj_>wRlkk;nu&X(V#qoh02OQ80GR&rUql2PX~+uf1>(BXPnCQ2n0XZqz+p``uP%L{`dW5=nr7{f21g{v(!S zOWdgZNvy4P(S(}+eo|wZA?BFD9Nz{REy&iGfzY9#$K$N<~v4M~Xm{?p2R+?z->S55> z3q%|S*uD6?}#pSr5x`E55WSf-Cf%@4!+J0Zj%P8ap!=8=lhRep*Flf z`NL%L;Plbi;|GuN4^ph0Bm48|V;HDxzZ<0+)Fivmm+f?N_JNL6Q%Llar_bq=uP{g8 zpxc3r%}_Bmf}^~p)ny_A9I(%*wC9ge_kwy2@GU-{p^h71ei#*NUt?1SpLb!8lw|_A zAIBiqQec{9_#8-4)014fm&vs4ug)frjn95Y0j`l|0Ab`42ESB!FzK8tFs-N$`P>M5 z$akiv;n?@DX@o}U3r`i;Q4$3|Wsez*&<&7Y3W9LqxiyXZ}hCk8+3j>;U z)=<%r(K!vK3p3Pl>$0bBh?d4u`Td89_gA>G-D@MS7Vj)a6qr6+JOQIZQIJrM#_eSF zz`E&hcp+8J9Wj-|9c*-Q)VhqNk|EOVL%iIqw;Ns4MzWH}Xw@5ab4SD!H$8^*EtG2`-Bb6x zYhn6+)1E?F!!9AB(V^H4CcGtD!Gl;}h*>`Yaa?epgz<)gCr8fTbC!;Vt zS})vLX&8EWCv130j8z@9gsQxo5p0iA$GPxPFiE`rtW` zW%Ej@&>1gv`DQ=&pw?qxP*f^d`CZ7xOUCN30?qBTy;rG&VSdh0n5fbH6Jtt0gOqxy zDW4?uf>GDG7;B3VFkzJHU&g$bT1j1Fz=worvyH)&t-vxgM_FDo;1hrgK~OW zf)A*n;POQ;tNpVrGN`0*UFnRF9TZ{uPv^Vw>Er!+4DT^U7?{iCjWgk>yv1bCEpK7` zxr4OWRWuHkZH*wrp;U;5$R2GCnvN zb!JELqw`RaoIa8BqC8gaIBN#s_A)!Qx+F@(J3tz6Wf4hzF`nxA*f?z=_QkZg+yWGI z6&1bSOc}m!uQauDSMJm+1Eg1KcPF!FPZ>JUA&phYj6l%?T()NGSJzN6T`#aej`7?% z=u%urHi*l<`H6qeKK|o_mxoZsp2PNHhKgi|(Zt5@B9W_6P-c~uIX=$q0G?BaD~qY2 zO66{Yflz?n_HnX2fFAF{j}`qE4K);%!B|^-2g2{hW4zz|-8?;~sWK7%S|xpm*LHZC zXn%I^<%;6d#Z%QHiiY*4Jy{9X>95H@YJG;REsyq4#itQ%A0t<@k z#z-q)n)+70#(CDW9?NP0OdtiwXn-wO6K}XM$(s|@Q3BKi2HK-0uOYB4H?(FvACfLm zvu%aO9*1@1^Sd8D+@8W+)Fi0B#pcWX8$#C+ zO-&y@<{+;OEBk%8`RRKUvlW*so4KD!HyfNbPIR2(&q$pX;Zbi9+||xaNJbLr<*C8# z#*hGZ(?r5z%=zeW(aRKZ5>pz%q#VeuPS>(#A8JWdjf0H|BD9iPTJ;l-i2Ek;*G;r@ zN=uUk>n)QxCv;BB)dku2nV=UnY@?;8N$XfW*s)-6OCk}cxfVJzuw>H<#xrW6lZhq6 z>M}d??}}GtHPTd?;&hN~2dF$mHi*~j=O){gmWJzS`@2(_nQJ26CgPN$W(DcFBE9rW zM=n86Atf($q_raQS$>H1^i0{PMknT_T(hT$PC2SKVIbh5qoj%6Q&Ogx@9y{ykDfew z_~dMScK-O`jk5$orDEr2pBo>;A^Bd4jgDW5dbm*t75IEt{e zrebd-)yk)pZzcK5>cLJ(1{bZsG`@N^sYW&S?)vYypJty>t~#;s=K5G5hMLBYbs1&< zFz!C*llh8gS1={-o+Q@nZD&p1DCHr6 z-%-S1EG!6b{Gg!=BMrxigwSwM{%A?zU>D6+Vawb2QXQZ}`N{Fzd*X;-9S393u&cw@ zA@R9;8gf6U-x|BEtvl<4qB5H5A)4UH4IC@TG)NrU;DDD_qjee#oe#Wu-8(%8Wk?+) zP(^3QAQC^)93>FkgZWl5L0H|d4uAgVm)q|?euXO^dm!S$7R81-88n9!nBGGQTx=I$ z?CFNj4@_FA!7g=>#!@;5O*>vzE%;^XtTba6i&Lx9VbNcuIktU>B3)nr;F;T%^K?)o zXc>EG!TK!4_{`?QxeyreIYkziS_J`6Hn`2!qyRi!3>zp`ZeL&b^S}1M8jNYwN`CCl z^^Bx{tYw<~fLCZLPaHh+G8J+jKic0_$r)f~c2g;59cAt&<~*|diB+T^;cVRdhF%$O z6raWMq|(vjcwg)}J<$!Hs$m*rgn&@`!vV;eng{i8KF{$J2w2VZTLc?m`GvRuusc0{ zXNdn!zw4u1xzW^zZfWUVDh?gLerq+jR8jd`If%6fZNrUJq(+fMVa+@4_#)RbI7 zy`bUMQy-EDu`}fh*%(+?#u0u{Lbn7PG+Y@ zf0FUoJ#8J2omYn^7;qm!Z=R17IJ2=BL8R%43cmaEQiVYwYi?~myl5$LwnsZg@+OXEQ+D2QJshHIJW{xX^=i)YNlc@Y0GFjCO6W^XU>o*gC@@V-dXL2#fCuU3o`&Bw zOsF(HE0{I1tfWg=YMxB|PHgh?jwDSD0HYq20EL*rY*g&)h@yLx!4dhf z0mP8FSQq}J6lx;nxcec+DGIl>mM_whC8!q0Xy3UrfC%*OUeM>1eSNicNz1mi8Jfy1 zAvR^t=^ij`6ld)Q)o|f>s`IJVe@5`T&0{G}xj#JH4+#R#_AG{CuZP)Ab`oC#8sCO6 zvhgG@cxvfNNK>V`Un2#oJ*S(2+!Ly6!5BD4XQ5}Ys}W<9OJJJAl%^}2Wz%I1 z*!C4q=-us?}o45E9jBiSAF{+!CTcZQLrwV$| zPA;D+4aFQUogW^H2SW5cGSuuwcXd$@&vy7eWSNPGo6mKA==>?8_ATBmD?nXBuEKKHEkxb-Jrtyiul^l_OP>^R11Bpq2v3wJ#n`P`u=AOK?_HkJEXzhZN;C6gne|N26UwcT9DQIg6{ey12bta%`D2{bNqKRw0QaJ-94Mx; z&N2zo?#(q0e}v&*z*h>1QQ`UqH_}PO2b(J;Or0P!X_=SO zBqW$VONWZ7T*n@x94)P};LcPOdq#GED=z@o~;e%3m_Lm%(Jw)aX@R6x{#C9!$n^W@ZB1DQ4Hb zk2_e^fPA{J)jhAQm12M+uXc7FX8EO2lver>BAzeqif-gb>O%>Va2Yg%dfP}&O1J(f zP<`$kJ-Xlq_tU0_4ygTp10l+;k`bn!7t^#xNx|}a=PX}ne+Ch!0yQR0j(f?t5-VCZ z-@AjIVyu2frwZ73>1IXJD6A>J;bhh8iE0p||NKud`giw=)KYi%iZoMq_d5GkZ#@51 zy&n9kUJrj&uSdVC*W+K+>&dU`HU5>8|LbOd{OhKF{Ojg_{OcBA`~X(}gQ(l#{q5V& zUl7E9`2O}U?`Sedpa6G4sLY;-53Nn1uhUW5;TwZpAxUJ8Y)|W#pXOv5R-=FWx4QQ` z{j_&r&S&7+umQLW65Ccvs61OfeKsWjqJRoYdO+zkeTIxoa0Z<(E^by9iir$2t}QT2 z?XcupU>c(6Q^~~B_0Q}=bxUYL=zjx-5`H)xdOFZSH_CqsC7j*)j7^nv7Ga%lAXoLg zaJ4)xKULypS4{#xk`b~1>sLlnrt*<)A1)-CXR~V|&Fk?&@qfgxiY~?(3^8hp0O_q_ zDnW#;&?zo~V25@=F?A4FJp-ZwG+mUSzp=SfQ<6aI+{76-9}mj)1*R9%IyalY#KSK> z|MSE2{oj@!I!iRvL${U_mGzT+#%WIDl*_<>WpbMTu9IT^8q9^&nC-Mw1?I1?ta+4O zhLh&$CUfL->CGE@9j8e#LSqPU?r=imp(NxkK;>gh;O}Y{M^)1RCbtW+Ot4D|CAVBJ@BU_lUkb~{ie(Up+OlZnmpk#>@=$HIVee`GrW-B|H2Wd-4 z@rd!(i=bU89rSI7`eC+$O-?&~u-k@FIjenG2dD>?oK$zGqM9Lt)uSi>at15iW*fy6 z+l{^2V%Z)aA;nn!aRal(53)G8`W0AaX!2V(vol<=#VRMzx)8m)OH?m)~tIX z30B`G9o<2MsV!|JGAX(Z8oq{uRImayJjStM2_mI3jFG2sE1r0n9`|SP{Qc3=3{WDc z5!izAJEl-9<(V(A=w!r-n1&O^6xE*wV`9}wpw2j!ZvNRN4tUQtuipwhfu-emviUo1 zxhvJY;UjC6T&~yf`(Rw0U89l?)m*jme72JWhQ8|W(*VW4fHI&Gtb2;DYtlIh|X4kB1gCPW5~# z2O5(4fV?57*%lspfRL#=f74?1Aq|;zKulMgGpo4WE1Vn|}w{`MqKj zwS^V8jT?P;c~I)P@VbWFbG(_OjNEa~V8Z2qJ%r8X5j-sO6qshzXht*e|F`iuE;$Zv zyaLn9$rOZNuMrw3MceJ94=lf-5A5_a?G-kQ5hGzor}rZTXaT-3IeS+!T4*vL_{h=2jk+RgI50@? z#zx|!RZ#{EpzaymKozJ-6rQLS;&ghpYvQvzAa&nem_P0gc{RU&J`9zDq=ew4oG06Q z!-1vGGAiz%y6WyR;77C^3ab^4ZmH;sr})X8!!rd?RJvx&l>l9AYhm@huF=S>fk>*W z@VidMEv!DqcNfGv8xGHLouEu+D5KFcXc58|cnV)=*G8QUsoITR@P5q!^NJ+bg&eG; zDjZF`ny&bL7Oey>oP`5a+krTGgR>9z^3mYcd)QVQIIJ3%TXnSfMX1i@PGRcy)c7~n z(HXOX4ydSH4(NK}W*7N^5tFds-~*56c_m2G$s<};4%K%o2_b!6i2zQV!pJr1w6zf! ztTJV=3gSwoxx`Pd3``sx6*^?LV! zm!#@9Vosw~@AG}$C==?@jxf+}PL|8Bo&un{b)-$Ez3ULoD(RQz2~y7uN;4W|nvFoL z$oVWGt6YjX@1;DWloF-00(%}xH0 zYUfFE=IML;VTc1AFvXmG52{2TxTg+9#^(+;@urPzq$KhXHG9+e^v_}@>J^woFY!Wt zIX1F+p14C~CMrFs_z3b$N>kQSY(u7+!HoROY7N&L{bg}YgEcX^376D4A}<3xQ|4Ew z0;)$l2QUQJO5`)bwfK07pCvBx)!>6jMxCw*(YVnsU}9cBT`X6unBpro)0Q8Ch$f5p zctMHuo3tC|7@COP0nU{0&bWC)FP5(A1+WwmF6ZWo9JLQyP(eG7<(jy{$CS8GgJQOn z_>k3|pYC@x+r49P)OQY;9#|-78&1>?>U*OYpoO;h%(>Xu}cd=8W7`6d7YsRYg%j!!>!O zS%z|j9Ry>`QUo~~1sYO7IDxnl5w=RApbeF{s{mIdvqnV-oYL2OoKc4tH}e~KlidYX zVg-_y-EKWE?qF=B5tu&RKfv7s6l;k0yM``J(WuT}AE?^paM+lyrR5{r%9=^mbmTNu z1vV(K$6Xxs4cxaxy_N_zAm1eBRW?4{L|&c}n-qSu@iF$UiG7Xm+H@_xHM~*h!uq?* zJcDl!hb?^_i|c;>@EL^1K9oG5m4`!@8hRIwh~)(TUt^Mr{`U5#tB>DXRHzHteJGhyFVBU;XpYfd zZGe3En^b-7^+`B%W}W-xp7t@u`bYMoXw^mVRdG6??8`a|Q)c}5UMI&run{JgvNi9n zlnF7+bS^xpBBr}b=~|c`XvZV-o?66IJLz4hZZVHcNHg?e!WCoWq&$@yE?3ITM*4eV zE;NH6!yGGN)vaBHJmrIc<$A0fG4m}n=MvdF*OqCQKM+(*<%+v&Z#!LLcY^ z%<(HRT1l^Fz+cFRP5GNvEVv!H8n^BN+gGmjnS`W@x}98i{|awt3b_%eH>-(^-hG^0 zef;q5%g0ahV+Bw#l%KsoOa&XaCb3;1>W%?AUT96Cp_vaaqVv! zIg0=6^?JXZZl0S^&cJCq&L*_A@rg-v%n+?9#YWV2!p4P*AN(Iuo?H}z^9(CUQN$>t zvcTtbXM(K8WK;IL;h&Mi5%G7eT4PiX^gb{s0{2pLWLISO!V5XYU=OGdBI5Ex6kdh2 zwigVqYA0c^i*Du@BD>>q`{IMRKl}#mq(kYcF4{otJcKmgK33;pf$4d?L_5@WJ{_gs zT4tl<7g+dbtHt!qg^NP_1%Bd$h+dcX^J7kPY)_Tl2_wLC|^Cad3O?7-HO>ohvXT`{`3n z$$r6%$;7Mqh7QxLSl&3^a!2l5oO}p631prl)13(`80fHSrSgymu-a$Z_Omt-)N zg=7iU=N(b1sZV+QY)d~iG)*DP%>s?TyGS9W0SrriZJaOOBXfo@GQ?ookJug6wW8NU z@3egY>1})XpuhF%YQb`GNdnizce%9rS&f#Y?PpQI9Y+@a`pQ_u2Eh+LH>_ z)11g~o1x5mohp86F;0ngm6pCpwuJ@p1_tA zupVYtofq1E{jmA?4oAs6od8lk2?$TL>;B{Ax9OblNn;q43M}T5DzkyR=Y@+T5GxC;&W(%8agG?LV8=*U*s0Gr6+K{s07v2{IWym<(ke+ z|7u0ja+iI9DP70;6iH_(?AtARx3Ic~zM}?NzXDVDP~NI!oF49!y#drGyMKBSh)LnW zUE$7ql{_o1&~UTnVDM}KJwGzna10uX3rquO&v+`_V9o3t@^%%t2W3OYWa+euH}rvq ztxz=%QdSb^4C7-B%J`B2HQJZbn~^HEueUGv{aTee*6@##8^FfUT* zlG6O|Sb8bTfIZcxwTYvk*$i8Bk$EtrU&?$HUG%XwNPdXCcSVB0frkz82!M!S6%-Cr zRGi#}3#y{91|cB0%WJZ=6Gr90;5^(5fw5!u8Z+SOu3i)NdOW(T*LI3&6V-76BvRs( zruLV1B%%osH}g_g;^-$Czn1)acRDL--nMT^8$?OBfY}dPQUG%w^`IG_2rV z+(Cg-y~UO;k?iEbgC`?Pe8_Mk%YEZ4pSWN?A%|V+mExO)Dai=icz*PN!U8TcO|KWP zW|93-cK;%XRG?#x6~JmydQ>rf2%N=A%c6rB2?L*`%6e6kN}ixv>FzEWETf)x(GbOn zTh{zDXn5MD9uGa#3c>IwOX+sb*RkaB@8+Ac$<6AyA(83#y3Df{GC+EJww z%ARr01ym}YE}tGsmR~+DvDn9YITHNi_U+&Bj<;XFe0uliuU~Ethm#Xtb8H4_H8Q*JX9l_*R@)T3%xc~O$R-y8SJQOX(derdc_4&(2y5G%>hK}SLnb4DouR;~&L#Wf3Jf~mbEFXYP_nbA$0?7KZRGHtUR zd&lKTs!XhC8v)wsq*;_c49Y$jcfy!=5S>t#c@seomklHD?y?b|&4|piLY>sog7bdGGDtDt

    tQt#k|3 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 yGPrkqEO`HgUmI|<`z>R;la& literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su new file mode 100644 index 0000000..aa05c10 --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su @@ -0,0 +1,15 @@ +stm32f1xx_hal_rcc.c:202:19:HAL_RCC_DeInit 16 static +stm32f1xx_hal_rcc.c:347:19:HAL_RCC_OscConfig 32 static +stm32f1xx_hal_rcc.c:813:19:HAL_RCC_ClockConfig 24 static +stm32f1xx_hal_rcc.c:1002:6:HAL_RCC_MCOConfig 48 static +stm32f1xx_hal_rcc.c:1039:6:HAL_RCC_EnableCSS 4 static +stm32f1xx_hal_rcc.c:1048:6:HAL_RCC_DisableCSS 4 static +stm32f1xx_hal_rcc.c:1082:10:HAL_RCC_GetSysClockFreq 48 static +stm32f1xx_hal_rcc.c:1176:10:HAL_RCC_GetHCLKFreq 4 static +stm32f1xx_hal_rcc.c:1187:10:HAL_RCC_GetPCLK1Freq 8 static +stm32f1xx_hal_rcc.c:1199:10:HAL_RCC_GetPCLK2Freq 8 static +stm32f1xx_hal_rcc.c:1212:6:HAL_RCC_GetOscConfig 16 static +stm32f1xx_hal_rcc.c:1312:6:HAL_RCC_GetClockConfig 16 static +stm32f1xx_hal_rcc.c:1347:6:HAL_RCC_NMI_IRQHandler 8 static +stm32f1xx_hal_rcc.c:1365:13:RCC_Delay 24 static,ignoring_inline_asm +stm32f1xx_hal_rcc.c:1379:13:HAL_RCC_CSSCallback 4 static diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d new file mode 100644 index 0000000..f9eb822 --- /dev/null +++ b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d @@ -0,0 +1,68 @@ +Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o: \ + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \ + ../Core/Inc/stm32f1xx_hal_conf.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \ + ../Drivers/CMSIS/Include/core_cm3.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \ + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h: + +../Core/Inc/stm32f1xx_hal_conf.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h: + +../Drivers/CMSIS/Include/core_cm3.h: + +../Drivers/CMSIS/Include/cmsis_version.h: + +../Drivers/CMSIS/Include/cmsis_compiler.h: + +../Drivers/CMSIS/Include/cmsis_gcc.h: + +../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h: + +../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h: diff --git a/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o b/stm32f103/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..4136990f1d2eb8c6e966f34b30bfd07c683b3f2a GIT binary patch literal 702840 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

    %o@wDM9 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%0DhD%yP6Cai^=$Q5D`F`mkdh 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%0Aq@!iA;1=(hbPJ6xlaVCZY}q%l*^%(Sy?` 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�x9B}u|o>H5w$LtCH#Jy%i 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�B=WMTl*Rl?MhO& z@`>agEOQpIP$y@W`O7XYm+^wY@T7PZsE_2OEpv52H+ed0TAJLfYE0Z9w>n(B%|in} z>YL(Sy&mOtZpU+VwHcU9U2R*K2Eh64b=iNuO*+8(IJd4HYxI%eOqS4&R`M`uB@dlg zznD=cDFxgYWCter?Fkp=D2&aAbST}>i%?z)REO&ZC+9z+rO6gYk}B|+lY2VYt|0;j zX_D5a%l4egdqj!d$fuz#7YA>DHx1Wx{#McL#bkT^;+ajF>RoZtcnTlUS`L9-VE1$} zhOp<6Jf_zMvQGqdH!e=G%e3zMpVmNyxyIzT-O z1+nIL7fS?`F2TouQ8}__I2YO2V@+iz*`UaBKq(aE@GLAXJ?q3pnWe0|eHxJ7zB+$H z*=KQj!{f9;Zb}dG4GzB)AuW=Nc?wPjJ>d#W zBNrB-d_BK(Gl>b?$DxS8k$2ZZkABY1hTImSKInC_IA2^{F3&8JA}pJ6%4i~ZVSf5J zj%w+1tKpu};t>haV&36C8o8##a8wD=H_niwqSR`NE2MF*$f2jle56;|AjNB|P`YxZ zuAAGRZCS$@9V2-a;Uk{blM?x3`IZH%Uum1Tk&8_J6S>3OW7C88X{>AwNRP5@Ye6{O z{nf(M9inz|5r2Lp`iy5PqtNwwG9p!Gn}sOQ7To*`uV+V>&EaR)1ghU?hh#IH#(?| zjU%yYpKRAhPpUvYDwFhHk-H91H^d?Xf9_j`M^=d6m`iGj++*dr9wWK_9Na3k%45smyun>C ztDeJb+gTqFHrPiiRHLF+N+z%i)UlfX<^IF$?fduNz5V`AGQBjAhX6VH!`VX7dua9W zpwR*G>mbc94!kZT?&(yP!5J;HGP?Mp^))qXvg~o0st;I^_JWt|g6kX1oa5pxIpiS0 zoE*6G=!2-||rm#dNU;i2`!$Ii;(L~R(n|A2%x4)soKKSGd z@S~@QbQhA3yd>S@*a6mgv2W~e)zIgOAHg0jIR>0X9Cz&qn#~H-8@OTQ>#Nc|<=1G> zb>XSH1;IBIkyR%m+)arF#)tGhI){Y^$Jc1W@MY0?D;@zfGa;UN=`ska#bfK5wILOP zcTDbayDo+Idg%i#ng^)>fYkQoAmY>y^sw#cRZ+@!hJ?VaSzvXw+?M3l^Jr<_K+qA| zg-yz_gl42_Gy6aV2-s&q%XowAesPyEeXLo3bv;`d4)%eG9V`$H3>XFpA4MB$P9I*( zjvZ-A#7b-?vu_sG)iMe!i<0p{6ix!24C8Q)IV}YC@l43OWQNX z8RdD=LOixThdVf~kE+SOK6FnN@$0Jkw0s4pdbGmerYEKWZ-9hX`_$kABN?NC`H_1NWxX!$9*fG-Ptq)ZQf@b%&A@#<)N@oo7L z(y42ZyTnY}*5f10;n;52o?cAMv%7qDrs5f_FV}NyGMYSKV%_aCOw1VjVULzRqw?I# z+3~^>(5JE+#*PbAUuF!ro3p&3hncL2(>~j7fSMV5Z;i4Ds9qpWuJQa8Szm#7T6gCt zL-c<0IYR32f|^DNGl4*6kbQjc&JAUu;AIer>@P0jj^HGGj=Hj!Z5W$B7w*mR zCiz>W*`Vi5f>iBs8{9fVk~f@Dt`$egG8FH4#oeRS*G1U&g_EH>3o zgPox$Qy(qukGj})2hcdt1b3+0p~t;&o(|CVh?Ul`R6hfJxbw8dL*8WzCmmo<esV z&mHQAY`{q{A=&y4#-6i-Pftg``sYu-8sUeXPe*~tP#3}(Jzl#!c?;8LVjse4-e(&y zaZoyxeMbS(m%bRx&65mexU>Y)=h-PUB<1+johuST9h+4x$zMs5D*tufX&`FUs-r!>1qK{rDpc41cupCJUeL_%tI<_GuN9 z3TH)9Dl~v@J#!XvQ-Q}@F5YM{vBlxn20M}YPl-83cd*A_jSj-^>M4>~b)MmiV*08{ zSH#e#7MOnyP7pA7LTCxq^0())pN>ay+RJy4kw%xCZ3=ROhInB0S;g zn<)_-yF@?@`;Fgd2qpr*yrmOXShM5S>rZ*l4?Q}2UnfmWoCl~myo?DSoXF2WhjL^1 zVjMQU7-Bob(-S>_8-lJ3IbvQfkb>W9iXLKY_HoWk4DQGR(+f+L*M4zVzk*;tcmV$0 zC1JaFiBiZkIE9#mcRB$n0$0?Hf`n%NCY)Jj;(!_2Qibb>&tE@Pc-u`Mg{`tf;x#yv zI@T*h+&mvDT}<9u0V?aT!PcTYvCuk{mbOSx5m+78=3ymYGW$Hr(o~AC|9bNI#~<%M znf64i)HfE)V88VwHwJ;#S)rEJ25VUa(<-N-HpT3A8JQ6&q*;=6cw#N4H>kojGvmiU zk4Uh9+BrVPh~bbcR163L`ia``taaf78VZWN9YRB~x5KfkF!pwM`K1oy=aJ6Okc^*9 zZ)mP6DlG13!wF1<(;E-?5O|as2AG^aT)UDc#-Zf!nTOWvbj?@wg5FOQh~#2pbh{{I z#96BrrcES_>5}oV2C4#egGU}T15XGQ2Opa~`}K3FtttYLCW1o3VKHAb)gc6^Yjf}f zV}YOg9!`TKGGq47NO^CipGN=mPos+qBP1R# z*p&davkOe0S2hd^sjYOtw6oaKI})4aW_9ps9tccDw$cn?=-^bZHkZrof_ZD`o4mfh zK$#h2r?^_9v<A+M$$JuT$07v-=M0) z#YlW0$)lQ@-72Le6`W;-ouVcXDgs?xW9k$*#wh*K#8Dn`nV~#Br-K0Is{}4P-hGM& z_k=MQa%c%-OE@8{Uc+*ahk*WLReFm?VDJZAw&mR^Qen$A+|mj#dra@5?a~c~x!72` z$AvdEEnHyYfqw0{?WeaNe);pe2RcOedolBQfc*p^aPyGaYmz9bNl$T!UEJ1(*EuxR z(8NPRqNPC-(auo81MYA(Uz`qCii)X09&l!2u+T*8Gv;F$eW`;UU0CDI9m<+>wcRk& z0DPz7$&AL^t8pFx=VkR%4&lz1l_EU9ElLUQ&X;HBU`vWbq7SF^eF2M!Ru*bC?m*^K z@U6p#80(nRyJH1aRD*Z{ij#KYk#nuRFkg?yPb}2va*8ZC7SH(X2-nW8Zc6n}RuJOW z@R`j=@(3DV3zvhH!ZY6Q2_=Guhjh{!f?Hi)*npy?r4dT?B8vX8ooE`1^YQh_?x{JV zk!aWheujD$tOdvC+0mle1A(y|q+P(r^?C7fic9_!a01Ad@|xby=U&2=&e`Rfu&{(4 zVn$1;@2PbW+asr~-!jU~a7hsS)gJu&SvAb5+0gmDwvm$Dj3xI&~Qpq zJ+x;dRyzBgtFM_B6F#&jI0snNUn)I6k__~wZI^Z60^ z6cLu)RI!6?c(>Atcv5FnO(Q*A!y^<%aUF+{Y2}T}?7c1h=3*3(&a$qQvdgY?Q%Vxk z-&QAXY2j+-m@9H-ncd z&T{~w<66+~><{8>t^ zq>HE6U9Nro`-_k8T){ph&f^_(?4bV`eY$`6{ON-(68)77@&CbkRK2^?&FpEZ&_T@u zsf6KpkVUIN?TR#s#yunZi+QliVa6sNy1>hpVaV6@9DNVIZ8!V#4+r1>`3Idm{`pcrXa@n& zTRT(%njB-dSq;$So$i=Xwq}tVBy!hXK$p$MdH_vVK2dlX%mSW^p{UK2X*1GEa z%}JLT_Xqb_fHbdU>#T(C`PPeDCOM-E)h*dW`uK2reauuB3TcAOS3-|Hd@9IaL{k9| zYW~bA#A_$HQ9v_KV$($MwUS#8tRZQ`L!R?wbbgD6$ajFc!7}D7=BUdK_cs`eZV`TE z&pv_*#v==JM$;Zp&xy=>$cVI?-K^J0n=Ar=dElAT+8}|$+n<3!?q@&0e;D;IVb3t4 z%WAp88XJjQf5d-;kwY2q!XMSGy{`-IR@UUnhaYkhhqt!yZ;oJ z!7syS!paEQ7rAEy&wM&?T95$gx!S!L#0}`3HV@64Y*cKa;(3eZ;@bTSmKWsTb%A9b zj=&%s{PijJOKk+^L*{TK>o|&2>P^R|bC?ntmMF9wUMI-%rTDWfpbmB@Q(N5sj2$s0 zoh_ve!;@x(6iKzDowmcO|G?ASHc@4@#n%1mT~=cOjxfsKg!m8vP^Rv=o{cXXvuq%T zG16E9R0r*L&W1;_D(^T|*Hx1#{UFnxetZA#%5;12@xxE}4O$76qVl1_ctUwtS|0o! zI4EGbAF0>nXGNXL0IQs&X{}8yUdIn}biirokymgNMN{qvWVnysio79A0MaHJ8ov-a z$9h$RCys*lzHmGsux&n>p|+NC2cc~>gw>Q4r8SqZb}dqualyw&7V5xUH$5j2(k2IJ zcvQT>w*sn{S73>?JtGN73-XTvA~Vi8OX~@#4#Kha#OuUR$TsIlkpj_gzzXKX8NYdI zQvkGrjzkM5NQ&XimM{Qp6|i7n|HV$F_C%Z8!bG~Ls{!d7gv>1RcpYcBG_?(cPK@4< zU0EM3!P65qHMLB}l}%uC3I3klp$Z#U=%CmT-1rzBt3SJK{N_d zH!Rr1kT-Shsp|5VC+btTkv-S1O>OgnsI{JHFcN~t+zA3tjk-VFVX2kRKlDu9`?_flEom5b9>B(k_c}FSo zYbr@b)|z`0XU;M!(e+@@VIA&Zpsx_@fa*c0DPLqt()ZqF48)S< z!Sv0s*lA8EV*qMeFMPd9s@RT_Ker(gVkU+G$ZWtL8A-e3fg|O0h7^m9*?{>4Hsv|? zEer=Z3&=CM`Wg&n7DQX>5b`SV0T?k?n} z(ZM;vAu}{c~7^rW$z>YE3CU0%-{s7``HTS|oP*XqgzOR4J zsVe!P@T&i+6NuaC1jKbHJ)lEu9{yV`fjtJ4GZIlnWx3B(P+}pDvSuhj`TAz}%t&=aYVZ+>jjufF7BAFpwDV3prA!J; zskpjhF4nbP(Egy(tG(nNC-tKERo0hs zy3o7h*J5uvH=M(Fkm@t;&moZFZ2sOyE%!ePpnu>|;J@}gN}zw}QF}iSd698spsamW z15(Wv2If_!U2zk1KjQRI+P#8TpqWX~qO?1OHH}?l@`fI3te5MY20aVid2=EWt*uA{URxg~+GJweb7@e%MLp!s zvFL#{I14kQO1aT%)ywJy!;aOgRSq4*4*birwf+PSHn|canub%gctY6{3`2B9{3?-m zXszUSNV}1WHz3W9Ro@v;UK*dyL=g=)C`867rMD^n1s!X0TGp#+eoc275e2Th#O#qq z*u+2_P)Kg6v|TT#SF4Q+lMgkLWLLtSh8&bH37K$vbR^gS(a(Z=52&f8Ow3YM`kzdG z(OtVKe9+Cl!1N3s(S*vAiG1`hK5OY)svJc|!qQDTNz3*n>PJbZN}UfWOi?uoK?68$ z5W6pzOIYJ^#)v;7H)?ZHQ*bIJ4*rbz&83xQ|2VTnqXQn)291xJmTv5A1n9KgYlbRY zo-4W;O;3rzKL+I&C;~n3cLF+7F@iBHY9g>;2E=N4$Me3cpA;r z4R&teqKEN9k5O1dooj5>$4<4qQ8a(z@~@*gIgpurzzi8U6k>&#Sf;7vxG;{PEpJex zxs~N?Bm5pU?Hm_(^PH7Vns&**V8|e6qC{pddZY)|P4&zG6PQN0@T>m^xjXqVoTkEw z{T;bG%Po)P?lj~Aw2la}3p;mItXos(N6V8H5{ZRsVfubMZgN>tsf=OWRfg*}2`&s* zhN|;fgZ^5GI(H;}a{7%cPiNPDvAZwabT!-Tpoo<^H3b134c7Wr2#`zAng>tSJZR1- zFuh9MbL_Mq86mIm7I<#BtTeS4b$6MUM90iZtn6lgRkJHmlvdkL_jD5PX)Lg4%IP$G z7^0cpDTKo8HpXo87cd(+<+CmM6p*4OYg-3azuOu5c$FPp`8o(w&Q~t_0$1Xu|BtqB zZEoYbw$x9-=+;e9iR=&nDN2(YPmy?#us{L=KuXRRlx)$q>dK^tq8w*#W`6suwf5fU z(cPe&Nyb&CaC)EaK7Ahh{Q%pPvbq?OagwTB1Qg5{QxJIkox&H{P4YxPzUW@$4Ykf# zXPpiq!7kNTC7H_tA_RyfqN`30QEDvrv>umDGL;MkGwhq!>-Pd6mP;8*D!GW z(j&MYXS;ftR5|$VB+pS?$tiQ{ibzpKuXylE1C+P7aagVFCE5)MrtT&*Lhk})gKu@` zC03(@=dNL}_=nHB1b`MLr3As<4pjE8r_}d=p=46YOHWH?(b#VFUs;)gG{;S}=}kqgottlu$XuDzHO9;h1j!Ik`s&5Ilc!xo9Cu0< z8K_qatKlV+*YOU%Sp&+Y2}&ua0n$SfQ>-wu+P6z-^5nlxe+KqUaTuC1`Y%z`j)J*L z)Fk|0$l(=GuY}TN#e^A4XgaM(BiMoAK|j|d%u%ZaBV-2m6w<0kX}g$TR(E#m1XK4Q zu;Av;mj{*ovjNIacUsZyDQJYlnSbpL;2GAe%v4Z;Qif~G4tjy9yvA)rN=TmKn-VePu1TBQofwU6fX8eo7 zx!W9l;C<^jfk$6DBPJD@U0j9mnyy{0PZh!jFh}@@9?g9e_NbAB&LjWK1N6)(;nS01 z#tkhGDkN=XxtuvmqJbtOP=oSxZr-e3@eRc$;pAqRc8KQN?Dp`D*HdI_;hauU9(0aG z7k-)Ix$p?qZ1c>s8&L)ItVSfx5lZST9WmRq0gDNyi6#(-Jxb9(7Yn2$;kj{1p?p?ogCYzIpfl z<_DPT!TGc=#=aJHDd$;cpi(X^7^jBB3WAHh1Fc0FFjsVM1M_kXisgz(nSH4orL`_G zzn!K6sPE*t^YjRVI!!;C+Q^W7D1tKr6Y6ROVn&c=G+fPHBvo^zbnf5k5~kP(y5vyJ zoiED4nmfB7T+=k<54`EwZ+I1Spr3!x;P5xR?XW+PdfXjMJ57Zxn4Lv8*e1TDbWcby zEiAs)oinh+jm=eR6;%biQY%_raNcEp>rP;`#hZ>8HB2w&W}!DHz2RBYp5E`Wf;2B` zcZJ&m9K&z`x_lP&3X@3-=8C(SYE0DLve;|>5S3_M)qC3d5)9T-?Ip_u2Art2PizhI ziPeF0m4H##GO(osDty#AE+X-EqX4c0BcLkE|98;PE+RNoQ(lHvak6h zVV}J%;inKCGB2WG{%TF+Jg$)V%)xGHsMmz9!oHnp?{BE2)_`lwpI& z(jv4`EXf4Md6MIYZ#BFEF`o-v=MI4$?9VhoEd81sH#&zv|(cd2+cAnoXk1phDgKfOZ z=iY?rS$Y9BF4P@sTVPTH4cd-9lK<6ssD|kw!fIhNr)-4ZsB*E|%uvaM4NxzJ=RDZO zk42Oz>bAyoKp%mvWwAb-uj4h+^wmv0)rlLICS$mowi(Q)H<)l415;3_izXEtZayT5 z4VMRr-L-=e=lR5(qhrW$IX3etv!P!~Kuj{=tShIgn24V-i6wAp_4R z$Pju)FcZfh8`}EO8p$(|CG#4&`w3BpHg5Bv=t#}ww>psI(&fea<`v77@+&W((%m7i#HONk-i8ck% zV^T-Y>v)ApU_8kA@$90v2LcNYWz9_ZZl~HqDB&f%48c?Tum6CXZiX|>N$>CQp^qCV zjnx-q>8iSrn_`-BeV&ozz7H>FV-HJxcrjPHYTfBodOXZ5TAC(K38j5tmYf$(6VG7RZB%niJ6Jbd@vS zXOf|LiUg+bW)1{K3nh9vdV15p=9HpfVejee0;8=-(1|AmvqQl1&b5V*Xh zCFmc+vm_n~&x(?`FXC?RDGT!6annP1R?Fe$j4bY%Nv(z@L{`d5-0OP^y>Hi5B#?dA*=*(zIL@h-^q!`Kw0JDqZ`NLWWWR&`O^ zkCi4iYY)_GRG{E>eN(ekdCRU>S1LDfNrO#V2dnC-Cz6-4EV|3{Uy@F(32F3l!j6T zw}E*y-W+@s&h+xs6UId|FHwp>(Js(eW0lV?&rhJVOQlBLslX|Ll^O*eSLHn+n&c=& z?VO7R%MHSG2L5LLEU`)C%yJ{3G5Ol8$)2nck?SVLQ$gzys#}*0eFiRA5d&f2&Z6?n zIY2BdIXXhVUpCgN0n}RAfIzFDSk@MInOh1P?B-(>dwxjt=!8F_j*M#7GBpa{lnBrMqd+pjQDz#C~)Sv2J8E|1F?rEE5s4df9r@X zC`gcus|f-@zDiJAY2RC={AXK(EZ4##5)hJRn5qKl?MAM)Cztb=l?%Sd$yVX>ek}{T zzz7xx;P?tvzo4NOwZ_SOp%~c8cij(*?1+e zX`e}?Gg+{ znXiKXxkp!Joh~dl74j77F+K_#1*vToE1J#>aVjotPZ7iuq}4-M_!~yKfMo{1E9DJ# zoZTV2J{VkXU*Z%zgz3&|wA}#eOLRI)?U~uf3?0FJeHH41Byyv(EK;FpjwW9g&I6wR zU9+o<{CbUtRl2yS1aj$=KjSIS{%zgatQ(#50TiXjtE25$LbZNrB(~eDym+5YW~n55 z;ExcU*A?DMR9b>?D&X26+X7C)+xz>w_uqcHzs6?R>+Rj#zQ6f^qF_(3sl(vOOrPBb z&omES6eiCEaUJWG3fUV1a+RKQuDSYvdBY5vhGNZqf@#ulj467kwl#t=SKsXEucR*j z1>=2m(UtA%X@s5a?!gc+ZXJ5{z{Hfx6|WwW5~)Q*c8 z0ixj}d_A22BZ5$`b57yj-s8W1fBl#!biF>_>>aO8`%m!)7N_m@`d38Ieq>r-Y|j5; z@_^w0p|M+R$MsV_2%QmSs+$lAVNc$B{PE-4``*9rKkfZ{AO8;?BL&vuKeG~pZe&KR z$1}9_mZ!bP2H~@?>-iKs9XY@ZEm7iw>E?WyxJl1XM6^@@wLw9?CL;`yxYe|WFOD8{ zXc16b9)~T0je?B{|8C=OT+`ajy#v%+DW)uFjaPk=dE93OAJk&LyE|Z*V1(S{OuBGn zWFh^H^u?xOg*&XyM6~qs*rCwC<)3*UnSMpwT0vO!m;h-OjnlxsoD|7gu{}m844lZ; z(f5z8<{*BX<5Pu?MdJ~?%9nT7AHUl$7n*4K1+vF&SJ!XfZI^FI+W7Kzd%oN6F+ToEo)se@Drv?&JQN*GMlNjZSxvIdZ7e>=@)2kkelRu3>seaY_53x2M#WL0)xEG@~+}(VGIhg_SBT*?)Nf zyC(^Rzkw4(^iatz=Fu2y(HTMzAay3uiTa~1mU7uei^74S3dgP>`F)mC-28Z(xH!So zT{A9~2c$U^@?y4lH>qNo`};#GNcKM&{`6eSZdQ(#whKrjljuKS8SI3EEa?Oy#v%LY z0{ez)vJJG6xE9<_1_>>1L1wRR+gB6xNOhcEuV8C~Cl2T$5e3uR;9w*D!+14A1`tPa zW97Z+0N|BC5lzKuG4>9qv7so)d%wQ@bobr$_T=vR?SD$m0>`b3jn^hRfeQDfp?W%< ztY6a_j^z-$z0Y*rDhW#e@ac!y&GPQ{2h9Y$+eshR_qRV=Hm}hK<_bmSDhXy{tgX(4 zN?#CwuNbXt;o3O80nya2l4aTtB6S*tQX|8)zc`-K-4b?|jjdW`4v*Z9xTm)lPUei# z9-oABIQuJs+QkN`zF6z_0^XeVZ@S=n5lhOXR3QTgucO&PN(eX>$bw~=|1>v>6L1g) zp@mAu831E6xS$}@~tytDZGS%N!*beWUQI2 zlsX0rdg?6ASi7|wW?0QD4?7i&mOf8I2sXz_1In+2N6CRtBIr-o92a2C@vlovum@`U zvihaG1eOTzbkoymyQslHYoPo+ox1u$aSwrA)TGk~QjktBNTWcI&uzCpTlMz%OS;WJB%IuT?s+LZ zdb_aSVSL;ZWGgy{7#A%Y&Sn(+t}zD2(t;B^q+%lzOx?97Jzs0n$Fhd0dmWj-vhaQ6~v@*oof+kQNocp@lq7avg{YH8L_%s_%FL-dndEiKp>fJG2WlJ$gdU!T3 z6@pB{VQrZT^vXVzJYFMR_hC=d%VZhk)Jx3~nMUxY)VFW8aKe^4Dd*ZaHo9V}*-HQ9 z4{;?I(`hVWP%Q)AC0Zn33E7nb35Lf5s7*Vrs{m>?_?*JA&J__zlID(fn9N6ocM zX8!ZJchxCPIf^XF&$W{oO0eAB^Kpp2O}(MBhtnjCqgm(7Lb0d`j%c%JfTX03Q6M9C zEum2*qZ=BfGPQ8_kQ!PEy% zevL!{^!~AP*Z~o9KSK5%xVRvD&&c?{+^&Z&`)#&oR6=$7#zrS?oxmmoni4t+JSgA2 zKEIpqqI^*Ia!XcAfT8h64;$rM77;2o2q@7 zuk*lEeJ<_GF_(ed5!fL~MbZ+^Bl!7;vTG%<4uh!BE1GCt!O%Y>I}jPvYLI$U^GZWA z%HO@pT%nyoK+Y8Gpl9?xA&zH@m6$0YOge1#NUOpUS?K*QjQN9jHZejiO<Y22Z((%Ae% zIou*+*PnV1IUzb;$o?o;TUY}?3lKN39emC&MZGJh6*UH>e@f9Oi7$mq2v7Gv=o8|% zgj0yNwXU_blnjusg7K_>SPWROdCi8 zbHk^rVxpDLqoF-mIB*M+xlwvZBZH`+SgS&ws$qJKCAvToXUyd0#Iq+vQ!fgHIa;q> zv`$}Rs;}l-H1YuXVIUd4V7$`Sr^h}PdWBkwF)WjSx*K}vqHu~@rOy{U66!#j!C`5j zMChx&K=~BuTMtHG^WZ*6zIxHhbL+YDA}MQX=1K8TO!#Zg&BI%IKCl3~qJDA{nNKE& z6Ne`W{X`1?B@hvKZHm7S55>L-S*e+ay9C0AD~}eM3qS?vXh{dRt7BFWHhp$VEn}P5 z?dRUe-)5^*?HkR!8>Bba_EqpsaIGKu!0(c9Q!` zRK93)*QSBV1ua6DfhJd60*uT^$Zjz=Rs2}Nt?cMgZSYQ&gGZFWoq`Gt%T06^+_Oz; znLvRXqzTr@<(Euu!p3dF7O5XMyo!!q&Jn1e`RkVMjXa4L9qsJOfPTc30H>qE{cx~Z zJR2&Nt{H)*Q_5I&WZll|j^9cs765Ld?sIPF%e6A;Bm+qF1WML|t*~0-4cC6waZ0 zcTdcb?#|?Zla26$|ATRW2NG$#A$3Ho397Dwy*`IOHBA=!;&7#Yg8=<2cp3n~^!9D7 z-PDzYYS*l4dNnW|EIh`2SFc8O!|o*TW9j%&WAUE ztu#eU^T#j;D*tWbw-^D%vJnw6A5AiqLX{gf@nkM7JLyw&rp(YVbOSR_Rk+rjPtFJU zzp-1IP(8`;lO4AdQy)z}K(nm8Y*gzR0!#HPl^WsXr5Q7#k?xA*E>-R}xgP*+BX!LN zf`@PD_~ZsuLqz1#pCpLB908KK9Aa6$G+zB1`(m;hkE&VHXxF;F?A{u+g>1D8^rMci%pc)&Bm{!rV8m2K5#WZ{htSpy{r@Ipko5rrv z+2(YB*brsvzpxYp*V<6lSTvW*C=#ZTn%|ODu?Cm6jmunOiC|_-c-^9q3OgoIQkkPB zD^C##K}?6}Oa8~mH8}%z`{Fb~z8!40#!!h$zFD&vjcA=`yTLTedQe;|JmR=;&ZW!w z+(_17i!^^j2_JNAG49Gu@lq?GJUH5?+=M=I@s9ucA5ij6Yu*z^N3}j+zlOL-< z8j0;Dgo6M?Pli%s+=S@{t_%sOf|k+`fapN!3`fTvrx^9zkz=wZyW9c^q-nGzH!jazg!|qS2B@&h zXNiAV9>bD|0VnYXTnX$=vR0XoWU)1Cm7~bPN0R^XTn| z58u8;QSG=6wPg+A#6t%A@$Jpc^@pQ~yN2uaWHno!HN796r?Bhf>V=KUynBsF=c={3 z>9-02N|xWpttDB!#c;nq=? zPV9~@MCjA?7|M%I_wp9ZFappvt*}_KCfA^Mm0)cS!^Flb6z)Fk%&*p~ulgCaoKYnK zV>J_jaz~I>P``tGTbd9B)q>wbSi%@uIFoCmqT>@53QQ0v1Rh`hno69@nF6Nil_4*%&VBDrTZ#)E(QiHD6R z9{$r$eAam4Gdz*o!58X?XOKv2Rx6u|t=|DHsg;GEfjduI`Out63bw!Kqx~#qORC*r zZ%+-r1mWFaH;12`fA!eiPIXp->2W}KVm|T2E+uI*Pw7A9rE3R@CyzrOmjtRr)XE9n zD-d-`5KfeE8*NEQzv1f9cxsrB!P%wj=#J7-4Jk-vm zX)layj?iuXrPzwQx?oH~bH+0yIzo2iH_{OqOO1{c`__B~!HKzfG(|;tj8oD~mHNa4 z)BJH<3=dlV2-Q#|nTU(q@~T!)sb|hntrs^#pF?wC61>2`dCn02>g~Ah8-%Z*Fu#5k z1-9_RHi-|=d2X3WL|{BGOed$GV7@8%cybMNM$yiZCsz1e`I1!~oEtTlEo1*J5U*9) zhzAQ5b3po`66ZviDnLnN_*%`3co$1@{hK1zk>Lp91f=Az&Cc0s ze6}C%E)8a$>s^BF4b52baP?0*J7ax2F>-+PBq&;}R_$cGrR;$LzlK~i*?ar$-QCk) z-hKc>`pfP6cVIR4_CCsuuD7XrqI|V_@L%5acApy#ROtHs*mB{dhT4`N^V;QT8 zPv;Bxg}z3CA}><3#mTjDMf2GPc^n}QjNyR*-wwmD`M8Juw(F>y3<2YAp;dtwsab7Z z$8wnQ+B4!cu#zlLV!y=)&<35Y(8l}@B5_kR^`V>yNdb(Rv*g zQENRSQWGI2gXFY^KSyUn)7Tr8Za^?K@VaCAvt)hL%9vfLE+LA6PTfi!s$`=0g5*RB zyI#jNeXNjrB$Y_Gx+|$f(#lXsf~u>th+Yep*G1}HC=|FZ_M7X%{}7US8TAld5Hqh* z2x7KDi86%8qc+!|6382%yw6QT=d0`ueYWjCemoCuf4hJu_v-S(y#327N;*4UJ=?k& ziYVE#Ey216I|R`iSmsUJ z8$GV4hqIP15u1l_M=Kpu#86P_ii(dqBheDP+7t(sS)u{b>naD9XPd?FMQl$f@o6OD zan_9{VL<+cDxqo5CG3l@mhR!8o)S#9Br-^fJ_F0OH3tge2Uo7Zj{Sgg<-fr)k8MXp zBO4uD*J)_Muq_RoMpf!&3*Ar+)0b99{-`=g4NzVO*HYOudqcBqcqK>W9y+EeuB6pM zIv?LE=BHS+)rYE5?m=)dMM_?^(le$OCTwcX;ybne31;6}>;LyUi~+LGL=IN$Nnmg@ z#lRFrnrMs_LWB_T%~JH@k|)c2LF3XKdudZQOcG&<8vsu$vyT=_nmkyM!f zWU_%{Bvou(Ls}7Y5ntltkb9tX(_wHu|C6&$wVPg4C$It1dRhF>^BuY`@){MagUrD} z%tfojV;cTQnLdO~OqXcuLv9TT3reG<7Raw_V7$;Y1NFKtYBwZQxnh%B)TwC!&||q} znMRtqtL-o=!v_OXNam1Hy_No@hNY*VG!C@U#KFm2TjJmnobHK(WJlUhjy`~L7B>tu zytyijlWMV0{B)J&?SoE5JPUqmPPzbn3H7XmoI@2wYU@k+FnOWvl!UD#YQ;r4ojorh zTA1U>jOO%F{V$JR96ft6><4C6q&VAjN4wb>IFb~sPQik1AWl|1 zs7ane>zcyF_);t{U5~~+V+WC(fT^GU7A8#!1xafvhB11K-`>AXy~=J+d!btGAzk{r z+na4rwfO2y0m0>|tC%ey8hsP?OABUO0wO3qmYkhKst~1>;QJ%5Orhx^*8ulBBm~yciI%pF z`>9wMMT>P3uT#Q2{X24TdO??(-7!j(p*l5OROXR{)UvQDN#4)^ZomKjlkebI8C78hH24C z_Ml-Z;_0ABNNWnJOG}IX|Jj_|`QuTyPaaf4C`V5}<;f^>pViL@=)1u$b5SLYgA;0+x>J07gs zcf&u9s)EmGK<#-`giFZh-48$gE2=9-PCX#1ss1)aFhZvgpyX5lXC)a4pMB2F=h=vy z{T7*(lt?}yHMbeN0@f!*Gd zD$G2#wqeQmeQgHT3Mb8vrIQF39&2e5jLRS)qcVpG6^?ux#MFw%Y+TC_O(YWe69RzOO-Q>)l3F-5s=K2AZ(`{D8a?WQP=n~H-nvcaCrEa#bkFnAhr>5L6`Pa=SYuQNlZGuglMSTbCBd~TD z+VkCkM;%amrYj{1w_KYN)7rSu1IafXn1V}4*WwT<<>T>tzRUw!qVX;mq4?`%Fw18e}1#iI1ZKX99H6oFpC31k>p4d|CZKKU`i+keg0Z zWX6xabD+`E2Y}-@J^49IW(e2&a{qG0oeF=t2X;Ugm~m13C`i{ypatf0$u`0?a?^Ru zvO7>8-_G<%iJl%dU(uEcwdG(cz=KJ$u_4M6grW9 zfZC@tOiu1iA*LtOB!{9F=Tc+ed{BbrNi-u^ zCuR(g?}YjI1V{;(0k+DhoH*PEN3GWmgkq~iW)?KT08i*Mp%lPbnvFp(jfPlS)h>vs zA!Shs7VKj2HQ0}qH+h=}OC5dCTCHT>DNb1p(00jLda$s#9~$c*AvqmoO{e(j8K!sU zF^P1V6$$C1=|7Y=Ja{2HcUh|+aiwV`Ju@Q6mIfnLH&Q@RXM!(kyB9Ygk91@qdv8Eg zpff%26l(dh#;et{!&PY7eJgQKcB;2bJaXlhbV1Otf>Br^#vt2qq<}R;*#sx;Wmq~HHQB6K2x&yX>*Sjg0l{-&TZ^>@q z<-NTknFRTxZiisAhKE0}ro+`%;e8^ZE%Yw1bXGcAFapVD2M!?pcAwVfB?N1lzacbX zur9$F+#j-AdgP-fwT+ z@zNM(?>}r5GFV=mfQ_(2-=N4Rwv&_dn&Hxd#cwBjF3y-gG+Uqtz9F^7jFZ%&8Fh37 z?F}bRk;VfV*S_o@9Ui!+?(?3-?+=hD~M3?alq_`hS|Tq`HJRqJj)U zeR58?{^X1P;do4K4!xc>qplGnhz#Y<#I(@c2S+@4WZ7?SVR-$}`3Igqcoc}`>GpI^ z{R=PdgATae%6zj6YNnm!3(-uNQNzmZfJAZ^$le@#s5U4D&^81Fgwj=@_^o-jvP{Ef zT2(3m5-7i!L;z_@wW{!2ynmt(JTNpD%vh5S^D{C`57U>KPNFLLlqOk{gS%JR@0d%u zSMh%3x(8D$CMFuOK^c<>@>eixWoj9oz$Vyhioj`0>+8`XOJIGV2d1J-?O|c z(#I2yCAG~*-Y@z7!JZeD941J?2gQ|AB{=S?x;j$yx)1CvWkdw7Q)|m%kS9&XcK9(*WZR8a%QKYDuEJ6__#oN8lhR`0Mj$A$8y2TfiVJ`EQJ7P>s2Q4W zm`19JE{stCb%PeZ5=_5Fd8*%PA1M3kaU!0<$`|aO_Mfu{4@l-F7@BbwQL+V|@smz^ zuF59`sN_I%^n_Dr@um5ywgWI2$q9_>3uIB7A*`0VjLDw<(t;Deph8neb}_W#{I&Ni z;XY+J=!U*5(IjoQDp5kttk-cZJV6lkIKF=S-TnJt-rip?e!0FI-@X6Ea!dld5o$Ro z6X=nN541yvm|f(_G9C)Fq~4H*1`;rD8N&q!Li$s0Xs%c;#TE4NthD_KPdtrW)D#EwhZzQP@?$Q z?Z+@CneWeD4lx6IGR2_nw$#)ono(hSO6%MO?84BQyP*Ns_*PwPSR*bLICS$R)zg+U z!47MIGupt+d5RH|o>RZHASAKEW$rcB+!r-0Z)Q_1bVgVNC~YF_EzjL^z8cnRiGPxk4)_Zg z9@RD`E5RcyZa~+qW=VvNL`%C{a7Vw+hDA$o@jW0}Td7y9td-R8_A@I7Yy@UyA2`~M zR(ex*tG9O*?esS7`(fLlP-j2l8JErO;?%YCbbO{3gRHlcrs;>bAAell{uQ+A_OCZR zhi1}M!>jG>p+vsfWh^mxVi|1n5ltFzIE2!@DzzycaJO4w6NG)kVUx1#K!sgk+=b;c z%W+#%-2~b2-G0+){Yfw#5bX>TSPNsE8}E^!Ydmf~q=xAsoSKZtAami|Kr6tt^h8!k zy5dp56X3mQr^dgiJT{gZV3+Jv)H#i)RjW?yN!AaDIZ^cY}D>v$< zcG|vCN2$=^Z$07K2DaRsKx~adOmIuki=A#OpDl$ghv~)g_ZI3b~&L=1HI^*vww@+H$l#wNfrtPus;c!oLonYkmU(dRjH z-WFf%&L zYId%OEp!c@V$f}y*$bNNR}Isras^WA{-KCwZt7#%Lk3YVnNTCDCR7g<+v4I+ihJ~v zRm0T1&E1Y$h4uG;wDatw|ta50wlJ}wVwxT2#U=G#l86LA;f#+pR00E+c67? zDr5*3u*`0u_Zy)x>nIF+dp_QI7G$PVgLGz{xb$+Xx=@6$~P>CW#4?Dnt{=dZ=m3t=!Q^JI?%k zw1%NbI_T9+eLQh8Z748WBzp>e3#Lu(wF4ce^rHgnH1v4IP&4)%jfQJmvkufMpjNF! zK*8zb*og#7?WVQMPT6@9O(#%OqH(YDYW@^cHxJzm7cIeyJK+I}=N^;~^Go?jmQ=&} zZEs}gy1&{^*P~8!n_$%h$jaWWfHt%fK0ZMcn zoA)1oltdxrUv;^l!j}5VIoc}KVQHpNuVkpGyV;&}8VM9t(+F+Y4AfX->p<}^>emU! z8z6Njv#@@>JfC%i#dQHtF$|>LgPw&0A^;j=E0Gg;xh9D!P?w+@0nZIBhO!zO`b-Lf z5@ww}8T=AeDfakB>QVav?Wc|<9J&Sg``@8DtwC&EE?sHb28|c5k)>N|E7|s-4S)pU zhOp0$T>oGw#nb_X$W!qpo`NTF zF=jY%bZxHLp$r}n-)Vg!@Uf|PZveI4+TrxKL?s%>@g8_#SYDy1^W&EppSe&anQEuE z#c=Ql3u*NywxZ^bt(NZv|qinTf!cMg$UKIP_|hTuslfl+e}@#<`*8Q-u zRyd-vv{aZ7%n-3KH+ZtQR2`)KA?lvour}7or|-YNzFS}4e7wEej(&Q#_uWtLw1E8g z&wn;i;7RX)2#MpioaGU*cVKBZ*FXJicf$$yzZbn+xpdX;W{OCL1P&Mi_@WA45>d$@ z&4*Uj)Ub(?l75MNWp%>I^mv7>7&+yWD&gdEUFIqOLoe}wHtn6BwgJ)rh>wNn7{x`Q zz_c>qIN8`?T=GJb(!Jk&!vk@H_vp;F(gZzfDmS}w9?->ZKWRD*DOKV^cK*LuTr|}2 zSIa>W9MFa{t7n?kbJ%Sgv%NlJ1TD;Snr>#f!B;{D8}qHiAR8n#;AOe|K^HT*>WV7* zc>N2aib~Yl&8yfKCNUNy7pjF_nw<`)Ga+^M1@t?>py<2s*^HtGG86JV^66%WY01w` z5JF;DdXVWTfK){kiwj~LK;_Aq;E(SnPrLw9il-SwU~Q!0goKg?RD@@Vf=488FM|Y| zu=E(ZrqIJIy|_?FWmxL&#cHcPrqNg)k%1HJXbBzWJ(Md5q_0$R308?oxnt80ZW}2= zSJ1_EADRY4Q;E}i^6Bp5{rvjohx;G5hnt6dsSdL*RdH~WUg|-rOhn2`lo>BLAi)*AX1uU|yErd^><+o~ zI0q+P7PbR)S&T6;1ZOC&LU5jKDsdzJ0mUq(9vZv>vQ^h9Ds>hJJOq6r`MktiK!tpcXDhHIEMS79#lSJMD-TBUeag+%)hF**bF`{_*|}qpux1}3FXA$VPJqEN z(tI{|>Bx0(1uWk{fwEsout1C!E$;_Dw++pCXh)|WIKlJ^8aZgRrHh_>OEI-L0%j-$3dv-c_T6x2rL zGepg1!!1hgBOI+XK&%ygkg!(PqiCxSmyP5ShXV>7@a*k?jm|C_qjOO7>1|}LOMboy zP_lkax0z6+2mcymaOyMI$-pL<4}}wU+O3ssf}ED|!`$-U?Sr9%S%8e$4xJ4OS!$7T zTQe&9cF?ps73Y;ivkAtCh~HeWw@E7{`ZkcI<`~F0M~=`r8AAyY6e;(AJw9|Y3pdjp zwi^th0krMpDxOqJ#WX(VF`9bFo27Hh<8}vXRY-tCn8$_QUh)EQqp^#DgPiwCc;xs3 zjtb?-e@omN&Lej(ko9)^N{)|R8u|vrze%HRX+w0v?TbvA>x`D2vI6-@tSQm}C)Do; zybVv&1J>k#Oo|mZN-b?AYzNNZ@%ZZaVuY-pvkQ0<;MZRKp!|`4LtTOHQ6kerm&4$| zdIul}tmz;l52(pHv<%h7MilX-j`hzyJIg9MNMQEw zz`fakrdXKV#7fqkJtMvAnaVrcU16pEjr|@7zs=)hkTY=LZ+hg#Vl+olMI1rx8G60T z^CB~Km0omLCoOhC0Fm}~;i3AJ+J+JD!8xM;p)wGr4QNqHfFT|2%u^7SKufu=x=7&O z5g#JwdZ+8a@lUvKxW_ELbeRuQr0}CKs{ya}1xo)9w^dh?-87~vK zFW09MxN#;my>PA08&!EQ@1xsaiTqNG|0 z#URZb=^_@pR(XiRB$(#Hk-iR+V}#iTZlZzb3xp4>5m&XTh5dWdQa7&;{QNer4|iNg z6$b2sP>?aTf%!uMYw^_KLSU<>@HJ8iXP!H7ryY&}a!a!4E;|Ws7ckpPgXDag)g>9 z@O_3{gCDN%#AqRvKI#XjYZ8GWOOXk+s!Wun@ECWU6ml;zJrtVH3S=+N^|<5<;drMg z)1}LDMJBpI61R949ay=qCd&hQK!F*teO9zJeT6>4v^K5~Bh3-<4Y!ac(rN%TUTLFW zVeXVjKagB#KA>J(Ct&Iy8aIYI$#b{7pdo5cn+@0X+1^OdoYd2e-6lzRc6iH)viHUQ zmxuF}{Y6X^E5TFR4sw8>TqR_M#a54uTA zH1_w8bc3Q;Hg8t1Y(tQ)Xc{BMr-_o$(&qugC>_b-Vglu=@}r{mZgEuwshBo(K9L3! z-05O|$plurH2?!5mfP*u_B5YlovU|XyxkdeIf2hO*!Cv(SuY0*FI&F zz!gg+(cd4K%}m+49asrdTQ6x4vhAf7)DX_|XXr`Nn#sw2yINS!%17dO|ShG`8P ztHJvA3f{C`IVv2a-k=e(BCvKX2}EjW0`x(ypG)EPa;MSc+iG~!rL+0b(*5Bu6LgD(e@SaIc-Ny|IODx#eRyEZMq)z~L(KM`=lgW5be`VwJU*Qm;<`yZq zU%}J&wX=}B`{65UdJ`y=9#=$;E-;-0uWbb z3_6(wZ3ovag&U*E2(}%vh{>Lot)$E^&;{3g6dwq3j7#pzR~$e?|2S44yV=H{uWDB0 zK4|0$-l~~{J!s)MSbB~|6wE1Xl7$aeAKB36$<>^MS!^q0C#bnH9efCb?$e5dkQ95i zIZuyZ-GLKsGZ8`qsJQ?+N5pn31fW2Qop5bII)ae%w1JYT60ws0YP#{9*RIVP0`ryu zSRuA%3918%dnjLN1#Eq>(nxLt%~Ej<{*Rj(+(vXsDu=uubl32yb+2J0*O(Di8OuJW zNY=Uh;`!y-OZygS8k(qIU+EA{B54yBY>e_t4Z>MK)OB|8HOx)WRGzLDmrL;=^`&Ba zBxOZqCf)ToQcf!#P>pn>AdK5lRDd2T8gBfQ9 zERJX6Kw~$myD5TT$+yc%UF7UgPo2D>Q*EO%DX}uU<;}fWr8CR-s0NMpL#5#=F6(ni zD#^cZ)^ud?df~aPm)nN-$_*5)P)|nH<@`XloC{DGubdTk>hw9XAS!z=;)h<3k={D? zXCZjdGr)ivXMrBq?se3uR9sb!z$ql$5_HN z5HbijS{@+TijPEiWUvsU(KvbRx2VC!!F!-?E$t>gXdbC9u+6UT50|i_mA8v; zvQC3*g2f=26^^Z|OM1NRhLu&tbKbyP`TPBxcJU%nnMb0tQwVn_bR(wxUc0Vw%K8046^xvuvQF1jG}>bF;l6~G9B;QuI++Bx^@yI9 zNo*d2s$9)brdx-tX~IrWeTzQa9MYh6iqmOpSHskuI05Px)KN2@X|sYwcX6&OwpT4f zl|=+2uEV7L@#uV4ghmtOnh|8IP+pFt8p#)YK9OIGfppX}&Jgtkq30W^89`}Gv*PzV z=A~hirU-2)^X1h~nJ4JltKkcaD|dkAdXPh`$Qc<|O%vZ32gqb7^5Iy1yYwh!HGVUl zO&2Qv7fFnV&La^sD0qLoIW>eGSIrrXGtobrtM!=6o6xGJSUvyX01tX@<`es+*( z`3S5aUzjl5YQQB`+k*KAkLJty6);;)8Xgy*?SLX4l_N^;Z-k~aSrtjm7Uw6ZeG~~1 ztx$BBf%7R`P?yd~AaEdnV(T*?lrfe9>9C@7TF0ok=CoS+k*?zJDB@bmo^{X`R?ZkiqN*l|S{zFY48ceNBHhXs7`{ninQn7xx z?tOQQD%$qwwed}zI6A@faPr&?D;rPd$KPPT(%Q`bF3ahF%z(~dw8-~k&biYpTppSR z6sw@lfm*^n{xJzzKfq+FD?3<9GuqZe^4-w|BU0A0&vavAG%OkskmPwYM%yr{Pqc01 z`kc;*fMP)IR!*(9@Jb!PE&cN@>F}k@KIxprmXmtP9V7O5`6kF824-v@ahC{7i!mUi z4FAs^{F^jt*NM1+PsgN5=U=q+iN+%$iVP?el|@1>Ge?5znvar)6?m$&d_W$1cia0f za51H=|Nf_+@2-FNQ}TVqjmoOb;D@K$v~;Ut+CDxGkr03C*)8x1U@|Z{%>IU(E-x6l zw`cd_A^*Gg*B`O><#V^an7p3PPT=FWqQ_kC@$k#xm-~-3YpF^QXR0tYaF=A5PK0|b z?P44;e#rbKSIHB>iNdiokqcNV%z-)#Wz*%Z)R$586uQD9`I){^eIeE;=iC}5w6ubxzAkFCBHGzI!_-}*3q;{` z7TH2lrM724?$QwF?50+JIw4*u^l6sv!Zr1^bs2qc_= zdQRdHdcW_1^$J>MK7lRaIdSPtzbr$Uj#8v%Hb>UQdNiBQk*yNRY!UK;9h(>%#Pk7G z@Jv4|ES`Z_vchLa4>Come(ug`TTK`E_Vz|CfO@B%WFOKgGXzMTB>{pNMlEK9C4c+3`|Iy+KV>;Fk_Rv~ zVMi}LB3t_5Jp;m>#@KdSi4MAtJbOs1&$p>iDmd}RY;=Bwn|6?WQ4b?Rpqc@Z)l7A7 zDo^;YIAJX!XPCnI#B_cnfK-R_UtQL^YyOOP>mT&0RtcBwp_y~Vdpk@c(&<#G2M#mxu%uxKC>uR+cT zI13TeK<^jLx*Ijj2NCWqIFlBS;>Wo1HdSonpONC46p!Y8r|CmRH~Kr3&tr*_8wwl= zfy>^RV0kj#NyF9t(b8l(VPR7AXZ6!6h<`wGX5Hne)!m^Ks}MHZoY`W@1kD5Y;FK~; ziD^(QGILm3SFkN{)FlKeA?)IOXEsQJ^pe;Eh>RNG|3bF5lC;2OCK!srO4mYK1onlp z+?lsFN^S#z$r-Ci@v!ByQUgkA>%J;RUd>g7dqY+a6j7}?ixQ%5OyVRx`JwG7jXF)3 zZV;EtC`o*oE3!Oha_HNSDBx_&V#qaewGEh|dR(Ea2BTg@I>{E4;!wcmYxQuTMx%q- zloX1mOAW29z719Z&_@WmQdaM#&}@;gQVt&L;?4Gyl)nEUop(ea^z6@}3e zcZAwQNN3x$0A`-V?!xT1&q9KMeqm|*FcGQ!pM@#UQrv~&g zzNb(wnRp3q9EHP%!?1u(UysO?X7@u`7xvw}u&a~4O(QoJrqk^$K?g41xIV=D4;*lJMI>e)Lm>&) zLkcSYt=EI8AqU8eD}Vd>8Xo37{wDVaCp}v}`FN$cd2iXxU{K&(1$PPkl}52>tBoJEq7&BOU;$1g>iP&~FqI?FeBv}~U|my*n3p^1>_e8mbT zr-Pex8jaWM7`skGlb;+supWkPv`j|5qKa0uGz$^A4(&C!d`ILuL|*V(FX{8J$3K#D z?FS@Wehk6p6Vcy4`->}ccJ}yumzQ`5LQ|Q==M@J@v!B%kwoBS<^orzu!8Yf&Qsxqx zrief3EYYTT9D;OzgG2x$5LacAf%k$)(kX5_Io@0%^6?djFxWMIvD9Fb3Cez)BijA) z=ELoG|EZ}EN6oy5*wO}fsBc*$8N-2^P3BQbK3~vs7)~>7mAiDg?n=ChS+5IgPTRhd znU8Sk92f!1O}$AL;_U*u@-w*G%`uyu%m7bXcPCk}DBOdAfJmiPNKsDU@yVZ7_SDu< zNZY#7xF<6F#&nTxT%xb!DbyW}a7L@YQUifeb(-US&PL;sNl#y2D4&-)$`-vG=O?wW0u8y8c(p(W5x0`m`Niv=U9lk@{VT1Y&YZY%;E z?1{3gD|yER9(Hp$jYBL>l7oC%pIfSRcu-A7bL5ahMe^kSH~MC@K^zB{@Wo}v24CLY z{&4s9r(HYT!H-y5k4{6|C2VBEzI1Hrm6wlMQq|YcI7@SB9QgD^%eSab$MEjm79)fU zs5N0?RkPTDOYpKa2PlUdZBD{;;&rxCCROcMuTsT@xV!+ynjobn`RH!*eBH%{@0qBa zGm4gmZ{c9TAnVH$c8^AIGI zj+He;kYVVMTt^=IYo>v<0Gh9N=*~!TDp+h<3#y&ryg+9a`?k8M2@=VQAkrffp;A*l z6pq7v3krq++kShqJs%%p_w(}nbOCt-&OR&>jLSmo9Z~!s zC_AJ3MX3@#rubaSLL_4qFz;SRt5qrmL#xtPX_6&lq?2{*Lu*!5-1)1N3w` zUvCEp`!AY^zD@c15F&%xD%CeQE9ek?0OcX+dCs6-bv+MrF55YBnZq>$(egou_w^PW z;k(;U$Vv00|K-t(qh~LWJ@DZ9v%#=`cy#@T;r??Za1K-P%1p(_CkurCZ_coX&K4lM z{$@l@`kOsrVy8YR!Sn^#Z<5Y%Kr^i@BVf9~_IVM3l1QF&G)C`T5#pR29xw7`aYxD* z4fbD`lsh_n!Ky1>LCo$ksQ{|9Pm$rHj|?9RRORXIk#!~2MjJ(1O_RDAZ}vfePB%uy zNj|iI9tTk*I?{N}JJ-EtyrGrC$dwClr;)b8KJ1!;0pP(ztw2)eJ4@jEC_#N4h_JaC zuf}7E0t&(xdBWA4f9TyiK(zolT0+da@rzQ%ZNGo}v8j=(`M!i?BG$?mv%3Oa25PJ! zDLAWM`OcNHxv#zL2V$~^&*W2~aZ||;;@2=nK>$?Ek=ifT> z2{~IvAPme6yjm?B@J%oM(n~n%ugBaa;&h#~%2;fScn#N=8pQ?I2N|LE7_T7eTae;@ zXa0LnBr1L;EL%1Wo-M{Pp%l!1#N4O2`-mlAdcOiRzTo1GEoJiU=7kAeaw4l|5=7qlGK!wp%Y z>Y^dj+bt)@$*vZ)K_(kLrNHj($x#kMBqS-RgYhpAdgHB>*&7|wH0dtj9XKyloP>4) z<7FMD8w^bv*#xs*e_I1s-9Vw#(v}x%7dJRC-{9=LJ77dha~ygT;v8eYP04xV>hK7CqgsZ{)4hUdY0@XMf+k;y>a&=SR+DjE)iph!QV*RwJFQ(!^0 zShomK9fTIxES~U4$bb1XZe-vi5;r8ab6o!f9PWUOFp8+@**;?w6gBJvxy zH5V%yo%E4>0&(mib?WJd&nk+G74w>)>4%X8?HGIB^wU9}~a|iS?b!K`I zzv^6rW3ldIn}GUMpE25~JCUAkXg3P0v*WA-k=SXpH2oJ>C`h`#zF*$GzXdD#Hw?0Q zN$V?~pt0GifI!Y%SEoE=xA;rzZ>)Ewug^?ZCo*h0PBBX|tHVdAFGgsVni@Kcmnc!b z9l>~g#=@(U)of%%QAZ;%70A|n;R?x=5Z2u@I`>n8X~g7xDIhU|lO(JZ&6_aY;8_|g z3vIfVEwoeUp9{IM*b@y1SUmBCw5+b+fjL_rpUfx5SDUI(vyJj9bw@GYRfo7Yu(OF# ziQ(>&v7F=1TmbNym;iG1O=4txLfJzTA`TQ|M=nBEZp5|T9<@nkS|hnEENf7SWz*Vg zs0Yc>p6UnqB|xH&BT{Kb$qDRObgJHYU1; zRf`P47BL!?IX%|jLFz7SWV(VuSi_Cm0E3FK#$76v4yYMH+!MeHT13my!=c?M;DrCtbcST0kkWmsOF_xGOsspImX`!eDjyLuy^Y-Pp8 zmrD(ZAkNW{IzpWzx)2ZxtzQ8}Dg7Nn8(q@Lm-P|FcdcFM46n4!8xm~9^)6oGh|!j9 z`SY+3;%o@jf$wHMx>F*O5p+wN*~KNofn}^E!`=my5}35l@-aCjL}QDfHY(> zTMS#9*)$4pK(%$@)Y>tzoFu)np>4^#P^S%=HY!!jx>vN-hqDFR!F=kWsf0ru9WPC{ zxKrqtVzPqzJqXMOd&XQDaLjma9vRgo5qWYjm`Yu=EvePA( zKos)6^mI00duSJ`&mJX05?g`vtYnm0jx58+?yMC>58Ybqrtl0bw^CfwL>saku6kkv zbBi3nR0yKO1S+cyw@ua3x9Vx;J8DC3%DxGvLHX_`msy|<;QL-iT9 zwFW>p7!S;+jkd5&&LtjVNkrimWWnw3-+Yueg+&h4L?P{%0OrvoTdSTe(QA9MhGN+YVMM~8G8ad4 z<0P1#+I$x@GkUb@^Vk<1CjFUnC;5UFMB!!48dxFA2~$m$K%fxYD2z2`-Cj|EH7X*M zlplO@j+Ao87bx_{ksTJ<9i)lakGhIVzW_wQEdGY?le$=G@0#PAxrHN6{xao=Z;JqJMF!ruVEi|MT@beGjetwC~T($x13y3bHWq zR(q7vjlot)ORj7tuO>?VH6*Q-r0KuNY`Lb-Pp< z>`l<2z z62paTI0v;tyawqJhCf}XbiW3dfRT6rh{E{?cT^8`S~OD+*sOwA;5DATP~Zr^6yV~$ zt}zHRNi_9TvLxZR-!$qaO+y=#O%qJ-;V}>X4$44pioqK^f0PYLha52+`DHQ6m-AQ+ z0Tlz`qkxWUPXY8dS2ivfc17e3XoS@w1%u724c4tN-q6<*J#-m3^a4px1!+p@{2#C< z6n*qjO1c7ex!W$ool?Objc)I*6(qVHt1Jd$%iu5`bykBX-PI}2qv_Bjxmy@}Wr*pQ zX8XZa&YVO7U&X7KzyNmf1To8HL(^w65x)XuKM<3O>?NugW&DJxO5UcULgqw)B@8P{FII?^_|oEf{99G-PDIR6efKyPv)US zhd8I^W?%2!e&H|O2RI30AK1sm2}>T+|o}>0R%ywaVW@ajPeZ`%nx%i7h5? zfWUQ7fCS5rcam0Eb#%;l7Ekg)>VLw*OriPQso`k@4LOwa=;BYYp}K3<+V+aNgcTt! zHDxrZLS=wb5^`^lVm5u--)U#1i-mI$uUo(*>}=*p~7evtblZgEZDU?32+- z6FgZW*GU+v%J3h~a0S#P6D3nMu|7w2FxTdIOOFh8q^KLzA8sBh90V|AkM$Hm>o(VZ zs+z2CG23q=pJ3?mIF^S#-$0j*Z?myF{aOf7yxr?mt=wX!e#pftzM~9}b zrI~N6;!+|3)BwUl>p689AC+57?4ph6k?2lLvKiP-^reqhlDOt#G+hy%#VS#^h}U(u zFVj5Pn@UeGw^b+p5T*z-M;f!}ys|4wI<>_KrgOqKpjr~o8^fu4jkb=YsjC=XZ@F8g zHPviE(U6(_2?JTKAZeY$q{kam6wJ;}8Ul`=#qfo%9sN}m}GFcj8N7w|kJl3B5Y>7Fis@fD(H5Tha%GkF^(A z(G#{w06F>`8tv$iLif3OZ-W(x6>S5$#pzmVyw9KE7K-uE{J@)b6k% z7S}qC;_I)WaQJ$I#q^U1+x#))G20A9de}93;uTx=b)u@6z?7Rwrq!3*a# zD@`}4^1tO5!~Xnb(p7Gd8Q`!N+DWy1Ws({I4jTwKKpwXg=P}qWM#J;UY5`*G=3RmE z5;y}c+A$4ooa9Ytz)O@D{JCujJ`T=2v(fVI`r~(RQK{jIMU{KHj?(}DSZHO1gJ;Ag z^5)YoRw!&a-glnJFkR!KzRo!`)6DT!uxJDnn5DCeJ}dhJz|7dd0euP}?{DRufoljj zD6YC)5UIEN+Z+A$c?#vNVU+@I0|kSG5;D_m8KIYrVZHoQlVcA7ivY}&PopFG22juE zj%Ah+=+m3lstTmeTuUGxYW9v=sOU&&We#a|zUf>|R8_}QAhUO34*(0FVXzhS31B2G zTnuK+HBLc;>_%~&P6xW4$>$7G8Of*Kl;~!wkTc0m-sbFpBOF;!Z$+Cm{`vZjC7kJV%!;lr4Q{CN1a}I{(?A11TtOy;O zQ4rx?^--%~x?7jbxa>(vlIxob!pR4aLZtaX+h%v8cIR12Fuf!vvb{iI*6=PH_qwlF z2n#b+e?y7QLdvbKxum6RIELd=Zeo)^BfPg3pj`J|XWa9k;mP=PV&CjGH5ZwqrITff zZ{>AaBa2YoR1ePe3H?9U(p3`&7D*8TVl&2)D>!xF^(-qQt}@0}%N1;unboGLsh4ms zy0rr4-~5XY$kFcP0sCP4bd~1wtc{`JEQM1!VrW7&#$rzz?S>8~4D#GW&FmsNpIsNz z4Fw9q zfq^!p&&f?akk#M5fj@9(PMjKI>u1zzkTyZdVkekhPJF7k4>)HadyB1>Jcb}*k#f(E z5u_N=aS!A*B?9vV3(-3Ypmj$0qW{B%&O*%&KB(}i9Z!}MgmY40Vzi$`sy}-dYZPXs|*@Du>z^H9&kL}M<^3k$M8#P_N$$h z;uNT`H*14anJ^m!Yq8U$P@KEOnAdS%=34fA=b{;lR4u6lmeA62OSUo+1vBU=!`Q*+ zJqd_Ad<8n;rORi5RE#XxW-v*#t0Jc0FdUh#QR*jPfGB?%Tqae!ORRRO7;eJ!31kB0 z9}Zuu;-V^X)GDn$1(2A90!y_GF~KpsHqf1g;9uk}RO09+%Y4CC z?D%Y#ny3Mhk(M+A^UmzrO#vtscENAGT$5e4N|f zhufPU?9Zp0kMDnA20>=t)|1SnR4DLNIcW%QMX;>U>{#)#y)TAGp>;L)h#g9z1k`ts z8$Uls+JjZF%zfw*?8SXk-&R@!ZW;;vkt2O@n2NLRPqG>xdV#N@!`-5M(ATEX&CQ&l zzN=fK zrBP|JT+nDT=`}1r&Uc!l;yyhXNMzvyL@!kRFa$>NE5!du)rZHx>Z zZjZnF?)u|Lesr=H(27=o^pX5*maM_9X70phQi1}c?itN$DI1kmDmoyO-tS66z$->Q zhGy0Sqj`p?pv#N3Wo}^!TkV9Xy6N((zCKhF8*+6R3_mNFsNn9%D7-pQGG7nkGXAaRGsef(xWI@+#moBLg%DH&i7+ zl3lssY-ezMweHa=vjDa7(T z+sME!%5-|WWyNUOds;BzZ6@Y}0W=OK)#)yw0P_S;Uje%XxXQERiwhtk1bfnvI9i$f z&)1h;z?2ipNNCMwYWOE8Vl4rT~k$l#dx=95mT ziyd@hwIrQ{I#y3~)O9z&;xsBWv5qu138v?BM`d#(94=e-#tWplLp_+1$QW*cOQO>l zDk0JeL+M&LG?hsxe3=^^e5y@J*zJ)8c_Mq8IooLzwL4Kkg5|kyFlv4rOT$y6N17e+ zpYZL>*np0ncz^`h5fb*oNDGJCpts~>wA{uLx?&Lyh5B-xm+U>|68|5|rw^zIPQFtIm56^U|+v8Gi11m3DA>ukP3G;I|e=(Anr9<%)N8TJScEaurY$ z5U5k8ijvajceV%*=-NM3t;QY*ZACh!zo}kLaoa-`Ymxwolm-W-IC+pP%T(C=)=2Ie zf%Xkn%#9H=q#(mJY$e6*lAB{`t|G;!O|Nny3|plE8o=V|Ci=Vj(KDKvBf3$;!q6{L z;yBsYw7ZWUpLlb4GfShP;WO(8z7#CRk8f{ou0ISc&+{G>Fi|Omd7pEDW`A^vOn=-Z zDlb2IGfS~x!^~{daJ^sJzu} zbwNHzWFjmG0Wt$j)=$xay_o}?|6(7R0&wr~r;l&%d;h-wwD<3Q{6Bb%R56eLeD|0v zH*RF+n8!1;^qQx=#|F_edU^^vAvBzXTE+QrJ{z_97!P&~3qO<G#8|IT_!zHU zC=(X)O|tby%^+@U@LKF7+I?0ScgQN&cn4j$O{B>9TPg zYhZskE4el!T27R(tHFU4d<>Q$5Lyd{Ddnl5bl{0&m@mfO;uRNNCp1vxJ#~;g$}S?$ zz`0cwNsPVXRgI=N2`1gcPEr}Y@>TU0-g6enl`AMgZMqPt#qej)R$*k2X49~zQMPcf z^OoMiRinEtmGhYSFi5GUr0%uj-<{tu!SpIoZZ8q&m7+>JNrI$}LGenVmhmI$MyjhC zr|p%4ypiw}%QR*yTISWu%ddf2Llezosb*WA`Sg{R%lSSN*-5#ERySX!34zcBI| zE!{7KEoVxiY!83VZS~=9hv{lL9Qg0d{xt=ZE8xGL6XOO=hZMh-u8m*W!A@dT-T1Fqh`V-4eAM5G+jF({H*^YzfBPcy~a_*lca;~$UIj5Y73B<2o{J_T=ne<1{<}XG@ zS+LiaixpHMIme^7wa~>DaNJt%ia@s*pRu-Hg4j8%Xz59iU3oaEd*9<9Wr(&Pa0ev_ zdM*S`_uRf-fgme_A7&#i)=(a7 zRMcIj(iW+$4`E>tAc4!x6d6^D7%^J5isB~GO!u4*2UFA~{S`h=J=Zpoj46GOa|E@)JIj;K3*&Rcim(&!Sr2vr_0=f9RBL!4tKM9B-$j~LSgr6LVbnE=4c0jLkYnxRUs#!EH;`9 z=4I4@;*jAebAjp`8>VsQ%9UvnJm^yobQ_|re6WrvIdWDj|C{N9y?Da{KL?ofT$yrdK_G@8^q-6-*W2PpCHOiNKWe6B-vVE@jJUEWQ(h=>G zgmks-J)hy+C*4F$e^1h=n$VO@oE39dT=s39C>*>OXdtXaIBcuZ z!R)sfAhEm$W_~ma4P!cPXn!GrE8;xTHH~9ELXmcA9zd`sKydt@iU%0{)<|YL>JONK z9t(niZQ01kiyLq>ZiC!2T%lpx8~euzZ`em{bX5=E7{F1Y$n%rY9DAc|YOL4=ToP0R zUA;2z={O=f{gHgfQ!7 z;cCo0Tps}%Bkw?E)T$u*N>eh!srv++gU?JUP8K1U#)n0^&xuK5p8V6CYaCgc|3LNP z3ZfV53oYm<97dv*=O#FhL6s6z)0RPc9KVdEAMwTYR}_H!UgrbCoxol!iq9h{x^z-h z!R1^RB+2Y6t_P$VFefY+pKegosBUjjzzSwv#enqOLTx6q@LMjmHJq2Yo(F7dvf_km z`Vu)nM_?uzmJ;ooAt}7=3E~|Q`lNI2C}Cwg4qipsbkt5%0J%?Zk_A{Jh~&zh+)@VW zL%0$wvO)=r*%f^Q>D_}Y zlAh)hJ)a{0W}Y)*xOmjjA?+!U+LIz9z>Cd82?1W@d;pwV_ZtK8eJHDn9V((ird*od zy;X%GCkf5Vc^CWf?6hqr30s6@e zlF$T`I^!<$4xEiN69MZPI^gmic4(VgryIkx{t4mugYa5o==KLaD4~T zZ=@{Rrq~y9bK?$-@pu~OJxwu%B$b0QDm8a;St|&YgdM(aNu&+bAxrKsNc1r#GgcEz z9#eY5N!uynOj-DO&LP|&^YLEgCtG7EioUq-X-9IRSKo4w3w)&O|_uIWmQun0un zF3)E3IV3s6kuHmY{qk7 zV)BBPcBN=*(pO_-L7aROvv%wSPvUak9lpkeh+-#>M;Rxsp7jb;Ji{|IG#zGa6D6Q8 zj~+76wC=E8@8}`=WW~>*g>DJcLA9l$22`)pdGv6NX6zftD0zrNuLJi~oMAet<|E9O zu~ae?g^gchl$^uEG&-}eUsE8rU^(m)DWp~*Q{b1HS}@yMI$ib<9BAmZH>*>oST=nO zgqfm)U&|DMq4*Fd47k$!NJ#6M(vb zNQ)Lli?3j|GVFcFgiTm}L!uBRO4FQ!CO}+-BCl#`ez`lwsw330cT^y~#ug(Ph(J;L zRAcT;CEeLG)HC?FSNPyADZ@c}Ck6kJ6>xbd`2$>IEj2`*4_Ave&Z-Vyfc&dqA!Zp2 zcvWwEgD(ez!~LV-^TX%(XRzNtxc&k~@}{Wh5>pTH=zQs3(Oz`B0ZM~dA#VgzeHfFM zTAF%e4PmNl8srBY-0Mq*!x5C5R?>4+7picxA6Z}QPW341+lTKi1e;=#0^-PWpba z*M)Chy*rxFyxNvoqtiH1f&8;w!0#q#38=@z@+MZ)Q%T3SggUPQ&5HeM79-356Rq5o$I5xo?aHR@4>Xf$Q(xjQg<7!zN9sX z8dh{StQ7K~w{(I`P-XD`_C|lxp)mHi1=mxPzpvLSt~W&!ng`->xbE1fcsd>7NV;BC zsOHy8S9QKHjZ!o;a3|kR&j!7OCoA8^A~Q!Ivi|mRHm?62kvjexhiBTq>2TB>x6?sym|#9DxLq4sp8}}cG$}Z#gw`l zq&qJ-DU6mrf=fmb;_Ktf&B6vI$&>fRPVSYB^y#H`p|KR|Un?J!h|FSa_LwY9hI{+* z-~JrNB`D@$o7a$yUV{i~uF{aEe%(U?qLl^(A)3g#Q$Z3St%q>6=bqf30qs^SEr}Y%olsS0}$#Tb#jt-hJxTsIpV^EgeDdM|3D0lr5 z0y@Hrm~&@pId^acId{@EP1R&APp7GNTr~3H2Je`)>|!N_Y3vku)JGGS=u{+_K1a+8 zua6KZ#D8G}jm(dpt^_`X$)hlpFK8+>;9l(qn#wipUFSPGH(`SLoKjXTWJO6Z&i&L< zWL(Tlm-@Q+Sftru`W@=RxV)@6)+=Bs1y2BN!0xQr$weiY2E2o6=qyO{*(N%vbOBD+ z`1-@!zb!v~_;@|~`2(uC|6k_b{ke@KITz)hg6k8pLD{1X0;DL-*@uG!0SY5NAOO_E zzaTUcXGUi=(jGm=%nOT+9-Jr&IPxyMn9Df>RvTQ>_LZa z(V|6Hh~DuUCPIl*&;gol*lHpo83)l!FaVhOjLA7>wnXUYh4-2A;8B&~H8x=XUEV*2 zQgyM?hlCXjMbf#*%L~*r;zp@*XU#L_)29(8($4%=8eH|Y&U%wuv?WA<$!x*0np*&i6t7!HNbba}3C*2|qW zn+>QJrBAZ(6YQKz`f`+NvBU1+i(Q75kQoaeJ4a9#X+3Gzow@lyPnC10aGh#yZj2SX zZqm&4{_GB+*gL}b ztaQ6;xV%evb-Gd(V`Y8o8M=XqdN>3>rCZGzplF;{wQ(JfI`qXd$2w`zRkkw4g|eiU zg5-T@^y{VJOVK$(ZZ`g?Wh^kQEWe)Rp_a^jgbeADdb(UUz-_Eq6cBFW@w1!FOHmQN ziv!IP;Xafcck|pK@E&ztuu?TZY3H9InpUqsbCCuDH^}iSXYWO{3X~H|MR)lTm+Qs9 zw0)psO$?&nm+@r%bj1P^E}_%wtaT249|@pt9kN2eChy}bFHSufntR7z@N^T%vzN2W z>($FDUV=8J6I}WJ9sNP_O`5PB7?m+o9qnd8nxHv@Y*kd-ZQ{_Er_-Y@p(MrfC=eepwYz4H-=N8t&Hs?+8UfYvf17 zH{$W>?tJ54%-|V^6*3r!W}zn zp0dk7#b<7oyvdQ4G)e%&QVf$_)|Vp^ob-}Erm|(~b~0**dJ>c5RXa9HHU{BGO$l#~ zD%!u_z4SZ1DV}-4iXm3xKfTGX{_SsY)_m=G(1C&Hb@ewr4~{YLJg+uVxe`FSW;_$h zrE7Wucaa(+HxCO*lvSg=)$OY{+x1^xeY`#Sc>78maNs(d=$X+DF+}0X#Gi0vmIK5# zS4HY}t7-@62xtU2sd5RGdN9Lpuf9E4@w~wF`Z!-yoy&AwA#7njn;ev~UR<6XPV6T= zI@7aqVpIr%SHeYM4ZXGGND+OBf!R@f@^xRbZqba$L`ue61Ur~#cz%ICEO#-`;T!h0 zXz~Ci>UOn}?O7NclYNj32X?0O?FLE!9K!a$2^ftmE0PjvKHwrGyz4^kGiq>iDLy(K zC5~0EYE8*E@cU|}b={gUu2)$IP|>O+5Ey;3W&jQU;x6E=8In0>k$KDKWLJP`)9D_4 z6#cSf4l3&BjV)7&KSLZtg|6D3uteuD!~)TJMdl*v zGB~~d@cz^1(WlQJzr2R_neQ3>fO8VU%mc|C<&l2 ziwweTsmyBRW?3Hy8)`LA{IwP7QDE$j>-AK+O`?OLTKoX{xtGbI3Zr3Rs9bIMhP@{% z1v!9$UZ0#<6=ViI*jOzJC;?HE^Hd!8)2Uv=^#?cV$<=iBUsq1E&|eEE@?+a2&IatB z+A1tIq0#BGRvp~+3^}NS{=E()=&Ga}4;Y_V-1j*t<_0B~!Md*@??AScE{s^K8B)kP zo03>ZKi0a}zlHk<0u0^>Q!{mjy6HW7F$niairVV6kVeShGRMha-K|xYAzECMYF3OU z?i+(m9~e$0C@{T-`sC?`<}m+97OUn;Jr7Vj$O$LKgVC_U0<4>_=trTxxk&+`LDk5W zr$~zBMY<#zo}VvmtVg^|SWr#8Y_*+TuU#L;HArZTQHsOB!rB}&wbw2Zs*)HM?=UpU&04B{}efoU) z;mz$5h3c)_>%LnaJHT&V|NO>S8~**%pX_kn`)9Ed+zM7Qd;jYDcenY4J6?6~f2OC- z-hTS6kArue*8l)?GzSDGy> z4M3++?=b6(Yfd}@PSGz=Km{e4a_mwIsjslmsKN6eAl*y>%mUpO(@8NRxQDd^)B~hL zDebOl0Xe}L8@v2yW$aY|kA^i^azwE51?MCe-uc44frm9o6=lLsJb)76YZ#=X=JsD+ zNkXY@LBKR&kpT0Y4ASZV>1LEPr1YrpD@#s*9GqXeqeyACiaCjK&t4O~0|r3CS+?B^ z#eJ*et1?k>MfaKa7jnkLbA$M&AS6<3XU^>YhvpWDQSTRCAmknu^dRbG4i>?NsQ0l$ zAe^{BXrFK9i74Ia)(Y5v`90lO37>5nTw%*-tK#H_%%ZFXYlxxv8i~Zkle!>0GIkA& z+|r%0KX6oqgg#I&7gd~8irJFO1X$vpi7L9$r^r%8@h?z=DUzwF+%>3RmNXV2c#9H z>s|hHB;MQ+k`+h;+gwX2K|8z~G^3YusjhtYToe!rxn+|XBDVDB<_FeFo zT)K2ZRwx=Fq2W5M)V{_r+{_4Y9VtIQQ~y8 zI>7oG@2@!+VpCwc9UF(*>R0HQxXt9f>_ygL3BNrv3@%`QU&A<5F9=!992Uz>RyS@$>E(vxWWMi(HD@UglA9wi+q0%s7Hvy zKy3A4QCLC@bT9}lS*jfszzAe;_893gO${%KWZd@HbfKDu9~>!#onzL3{5xv`@fjkP z8&(x@ixc|CR06^XM3k92YQsxO3@S*k2S2UF+<*h(uU6YFrCl_4<(yViGlvU=7Fhad zXZFMDUjgcY?e=mB&4CVUlt%=4GIz_Puee)!@FJUXy^~G1p+#X%W)iiDOEj>+u?egg zE?AY|NH`+NX5IvRZJjM@VfwOk^1BPsfYQ2|@Z6ofuW;5(3+79sK*4)Q7&mS8!1@j2 z2Ruc{ZaPQJiS6_2)fr{sV&WcePoAGmA3Hzs5npbMpY?lY=xRHX7~s`>4t*(k2s&i) z?-iE#y8pDWR35rZSdyz8tm0$?~k$_P{J4& zpdSZ4Zp}P*rD}mx^lwPJz>+$R)ucb`eo1&dWOEK;cELjTCYONlX(UXbXz}yeDiWm09N*Kd&?{ zr`(5Dp{0j4#Xy_~c0Eab%egU@F@y35J}sJJ)5-jHln0uHE<_`u1A~{L?r^Q5El6}o z*$CDEZ}mBNk9ObAEj;bY+9`&DdO^RzyI8Fc!KE+iA5H=KRngnq3bjG@BHzol$b2iO zn3HoexIE(_xv-|<5|UG?wg%<9x<+FGCfHlx3l_Cp(X5m8p$V2EE2@!vhn>hiiwCvc z=XcLNikG3+B|7&U`hbV^j_R$9=f&+gp4XIy`XJlSXbP)h<&2NUQr)vF?M=djuH$Gh+I28wX=%?}UVr%V@%8O?^YQJEKi+dh~?(t`-!XSZdbYvDS z^62Lb$`}eL8ANXM&*cfg^RC{Xo?lLHP{1qI@-m54%O25knsuqD<9**43F zOjH;0fFl!HwA8CMj2-xE&X=kyu}!hNIYctya8zCX)a~rvH*V8mvopW9i1}(#xEeQ2 z3Nh3i$#EzUZ`RQfmY11YuVC!~u(sVk&6&iY;uIW2!c9;x&1Bt;7chbrFuk9ZYUhjj zHM$XPU?}NOf(}$q$X*5xgUH2GScS(2ij1wb5)QVfU=|Rnr1F#O;s1#pOWUQIW>G{KVB6<~chH<>1vUO+0Nb2{Za8o3;eq_{@%HTY`!7GDYC?OL zeo17UyeTRh!}#I}yNrz_FVvA!JoR1WNoWK3?&K6l6+g7GIIxZt0PS+!vX>irrnM7~ zEU>x~-gc^-!uT`@SMvhX?RrD88+!k)GM=rD_pn4DSJw9?{zjj8eW_Z9;=mNQjQaIubqftenI5;_UOVIl>v~=rTF(PH0aoFHiU}Xl5Akh!)VH7YOxX#bgQa26x zvWLz-iA7B5#KJrEGug(tJYVYEx7XHtpMLuA@$=}P##M(zQDaeNc-HAsE>zn*AEP|B z?>0w$qN>IgZJ!U_v*fNAiy^S*%*o<-P_=&10@}=y0WRxE6X_7CYZfm^xuqJxa&t8> zXnc&wpz*g*qtU%X|C5Oo4lWdad;IGC8?=6>bcLkTWx9l&hw0iVbe{osL8*q}&H8+P za&xh{GZ?sYleX%)iVOM)D+3-etv7627pU@Ri|+$rg_hdbTF6#0s&M!5xrJC|5Jmn= zp^0OmG;P>4pe$M79T+D&l$Y{#qI5WcX;Rm5Rv3EVUPSZH!{5*zK+Uee^r4kn%{LP> zRXFYP&_);CEy5ULAaO9!TMzL8wlx8J>9XdI8X>Geyj4YJeO+@!c6ON_53QJ2qNijm z1*AFiGsp!tFXmlGRRhw^d_2qW2t)75@3^LY1y#pSHvFI*D0UDss|A{uZX&DQ)gZ-9vWLLzy3%>^)o*{hTgu z(3S*V<;|6)MFc&&2=>TAOGW5{Qq_<)a)%EpEv?qG3^tK@|v8GT}gDa#c~V@;2|0muD(dw!9kw8s`^ zBhjXlSZBtEBr*=&q;(N;LX4mfeOTcOm~J{R3hfK;>}?r#DSOApiL!m8YlpG| za#x~ueANdG+k|Z0c&rAb59bbGg31p-0HgRl$E2ajd|yGL&Pch+}bj?A9PL4~IDRa5A)5j}KUJBM4aU${ykzmsT%A!7v;i zTlU{*2$aP~OYBHK1yoy*`*kpAqzl@6jB^i5Au@4h7bh=gXYkdz)*c}zXQOftIM>M* zmH?>syKXkt$0BD7SZ2Cb2HFVDmth+o#~1pkH9 zp~*z=;#9>sC-ghjy!GL7^qrgZX;Ql%!xcw62z($C3(!-pT+r_b`Pha0uxF-v6jjDq z7W#U6xQsgEWvn;&#*6Q`OGo+f!Y6lZL|ZdC=BT!hzbL#+4t~VGV#1?+v(P|P1Db=8c@6aEr$%US3mkaOkI4gI3#HhTi@D^wJ!D@`> zSHnA3_O#`ljnxDGU${=Q*@IWMj6O`R;RxUMX10}^z{sEYmPs5*>1|;`2$nOUCs}2e zFOl5GMi{7+u~}VTT!6N*OnLA9aO1e+(n3qqSS!MaKqLdmO@M!)iz!I3y`(#3_ec)3 zT20M62@l**&!`2gxe!JB9=sl;+il3S$%vS+o6Sbu3uPwM)OixH+%xFoEuGNOX>ZU> zNWU#fyl?UuK|}-MMoLI@??8fQ$28+eNNi6uvnfFglHyJ7U6`+9vH%%ur~9w(jb3A@ ze6@~`epJzL2rLOxwL(FuP)ro-2zCb)&`@h6gP9d47&MqQAUjUfYCr+q2xL0WnCVo| zA2&1DU^do+=>=6YF69aAO%O+6f<3u{W}}6HiBii#@%QBP`f|iIih*WkI&zfyzI^rm z^V?6KUd0X;C2YrS+Q)2CJlI?xj>$y|>O+l7Z2V+8eYUu^RzUj|0Z<@8av!^!;GIlo z#D+R6$2p@-BIKh(`=2R??Jb&)h|v<%X)*VvdmO9|ikOKL8!vOkiZT=hP(t*MSf;a6 zs{zF&!{1u5Y7fC*JT&O1!w_xG+e(875slI{w&LoMq{sC8fBSs<`okA*GK}UJvU%Z% z!LaL&YzVx-q-W!8%H9N}LZj))0;wVbPi zFMhsUfE|mk_9&#Om;h=O%`RC(JC7_zW|ppKMMbJ0*kp!HALB&L+_2|XQUcWI`H~au4oUMxC%_S zH=ka<#MP7zu)M!Aw&Gw5dk#-W2J4wtKs!hxT6p3gPU(r)(Tebh=tt_o6PCtewAv48 zDYQ(X5%PkWhafla+YR^sJY9Vgo!E57Q__WFyw~7xW;rR&br1R;46rG%vLN&DygHo- ze&u&IE+uFdu%0|-Eerl3`8;0`vVwC_s4bBQJ<)CmOl_C!2`xKH#^!%{O0%7>2TcxL zgGV0u00R^?+4_ln);WBG2%r0&DKguVYv-s#E81YjK+;R(C0=~+jCYygae-ii3TE8c z;zhqTway3H24fviR9<-OlzHk>Qgm3+nyhF~mlI$B9%3++iS;Dyi>p~?m=`K`oSfJ>`tM{*OL3CgQ z`-Zy**|R(d2F1lB&xb3s=ys5UX>(T*A$lGW%eH@CPu6Q{H+_FJwl@^F8HhjqXHIeW zDKu0;J)MS)Ffm%$us{L{wk_K%V9VaTSUs&v(dFnK?#)g5Y4@Q@>2P&-pT17Ci`S!7m0HY|yEj%vbKk0BTzjoM*7sb<$&TW?Ry3xNi4 zO5Xh65v;T4>x(8p%(niP!>QEf~+R>f@rU}_vT7`(h zd19!g)g5*k8&AA3E**Ck0fk@kCaO@9n#j_81#^@CQR$pePbmk|&*@vD|E)E@?6|2n zXT$;JPcS;{J7=HK*GnvTr667$TJz+Q>NwgZojh#gQp(3;eckoV2FvfWhowjoZ+r22 zjo?JS*Nx)t4~vo3w9{miPyM+!bOOo|mAGsmXsI?r66Sgt3PHfrJ(;oelNYn|lj%!_8Q@#3Id~I5?KF^7bNB|~hb6|a z)1DoZC}s2A^&DG>|IRV3;w>!pEpAxnmb%F17k0YkgMtL>r+6tSrFU&T3K+%`;VG2;4lj)6v;&Om=vsM#ckg7%X6h*A&zzsGh zQ?0v^qfW>uuuCnrNY~l&2v)MqHB{)5)aM^zBs_uZhq&_Yr50kO<)vH{RrC6~Uk?V% znWHMeU7tD#&+1}`fcvU}Ee=g1yOMej$pJhMs)gulEI#7x`_F!acw&1TTo;k45e!@_ zY0@AH?&Ce+v=r3&enga}Ad!yo1Nf%96|Pv%EM;6p zA-8)>FZwft&~Hvn$qB0CMWhGqxdo|}kutLzk*-r|!a*Mf+FOOW-s z+fFcHOn*8yQ}scXwybTv#}X1@RR3d!nwmM#y8-CuYWxdIc2H$e#SZd&rzli(B8sL{ z)x+;FN@(_c$3q`z)p=B1+>hMtFmv*Nx&)<7VTH%0J~T^GjOzAzDX(t!lUA+3 z%0gaZQ^8CYBf?{#m+hANk}PkWVv=#CqVADRQF59Yo9(RAu{A}oqqZ)BabY#V22NyJ z^Rv(zq4N!zKJ5*R7(_?W@hA^8eKHK%Vvq!Ad7}D5KS`Ct2%fBensB63Vt;+pU|bMpd@G4%QF8G zpT^Tb*^6@Hipk8d37w<5;`wMN1dH<1t54hSzr20-`R#iKXwp7M#DKMZY*C4BW~R3^ zZKf6bcIOp|1#;McS1#RhKZ-uyhiWtB-^@aW?}9H5j|g1b12@>&GVunfwJjMH(ifP1 z2(dPv{uY^6br}9a6+m?5)+Vi1}yR_SuG7?``*o*$sPlRwm zGb0*O4`kxfN1zQ;4KMdZ+A8Bv`8bYL9pXUkc#7Wl64d@1A3$R!mD|ogc*if`Yp{i| zpej!Z$P2>`%I;fgxXYjoNPExuwvh|^g!U5O(q_#Z93gAw;327d$tv!By3I)MQ#6N# zFP3<9sOrye5KjTlBT)$>{ZP1wL3A1yv42Vg2YTXb_bz>vPL0dat|iAvKY_Xt>Hudu zVQ6H5xX|z0CDW@4Om9cY0dt_J?8ypRt6)oFINLv%a^0`V)hzPS8Dhgp` zU2V_(?>sq*RudE6qkVW1x?n*kJw&L{dIf>z?dL1B?m_w&XBiiZOMUPB>Si>BDd*eY zAO3zkn!wzOvw*T|A8+5?zWQ`~Z*>3X*MI%;r`O1yyZ!b4&xaWQ@b1H_&-Y(_|MpLx zKK$?*7t|aG|GxV8`lmm=`uOuN5AXjxy8k2Yy*?P-|MdCIpMHG*1;26shabMYS7ZA7 zpKkThr5ShHvHdU+#bT^yI=~z zNOLsd4$>V`F(|)CXg|N8p@~u-7qSXpeuc|6yO<`|Y7Jn=yuRG8%-{jrl3daSe-!ZR2EuYbP6S~*IQlT(I2m5TM zcG)tyB`J4cT)az{kYeVisNrMWvH%#?eR2JqxK7=}&EI@YKr}TXyFw%Z5z&f)9g>;y zwjc{2xOcjGxwH+%$d;gl0Su7H0@LqEm{sQn%C@sAUMToW!bk*&`O*|++q_dwC4G>I0%C)nBC@v0GjXcmAbpbwJc^%Rd2n-N z+39VDUM1W@VRDAoE&@7|H+M8__4v`|`k~u9WXf+&mAEYxDf}<$F(fAmqNqTsY!b;y zazpp(UKCS#Vo9v;$#0&&`pfOjUlmXc93&OC%7{D477gFvh6@Yd$1+)NqINCwqpm(& zU|Lz-Ub8v}u&V;~0MBXSt0~A7geVd8<9=newQ13Al+ST{$B=1`waBKgVv&sr*I2FE zA;c5225v}SR9pr_UsQng0V5-gF53NpVj6wmHr7t*z!Eotpp0Dw3cDaT_fJu&af*~! zhSG;7V6nG|_8x#qfT_7yO~4Y^e^UH`UX(mU(5w#>`kq4_I)ih~G1fBz2XDdSusqQd zw?j!8fZ~~}+4GCVDV+)-;K|@3CLf9(gh&w161XB)9%v@2A5bS5bSVT#+a?VX_aYvA zJ<0=7gt%~t)Rvr1ny<%eEVRE#IFG>pnuv}iH);70`HQIdh=(n)j0b}8%aH(1Za|e; zhk-O6tZd4d|E>!!!(u8R|1xkKMtHuD^i4XeZiCzr_r;|%28DhdP^B%vIpSNv4K;6A zZPVv0R*}QZJ&>LP4d!Bv0FP%8{$_-)Ar?_Oz)y~h^p0&QMfT`xIkZQ6)|Lrrkq0HK zh-=!vjJInO4m*CKQI#$R;n|OF<`kyrjgpvOuhxb3NQD~No;@NJsGSqti<+};&r+6O ztxZ(cp8Nxr-$$c=`01yA*n_5sx-UiCwPBSHxrb)mTTj>am+X3HX4C8ZZYzOwfSRc7 zpc`qscH<5(Jpe2QUWLQnM_Q_(MfBh$Er2+8saE0DkUR3hp7TtFYNwEgYpXx0l=(czue{-6i9ms%WGSH%S|`051lOGCSWLl&=el4@oML zgyy8rLu=BaS#B$B|EMSlD*5ii`yWS5YHQw#;gZylzIoWACbcaDsT-U=CtuJ{=N1aj z8$TMl4!;lETf;qr_A~iRn34;&>@iH1yAvh#YotwHCdUO|G&9f&?&3uz^~HD5tLBg) zU38la`UG69(Ce-KF45e&JDh&`;fLFg+v(45_6Pexz_?0YhzCkTh-WMGqrck7l3HQz zB`LrXUdCe(eY?yuIFS!D_Ffo@Wx&6NMkS(_kM)QtQT`yl-Li^cLJjw1IB!g#Z=%l;jkUVm z&RM18WOcq4``@tX;d;Xg0z6t19j((fT4A%+8U0^TA;7Sh8Vu{nQKf~=FGV^^$))iR zw~P_exK_PNI%<*BzKs}r(^+<@i#j##Hx|aac`Exq@uN>8#Oz@2a&__S4Ai$!>9|no zv~8F^(@OmGcQXOCn~8E(*PsUrOSiOlA_!9XPrwi-?{0nM_`ER!zOC|TXyo?G zWb`b#;-8nUL+uh2KPPem)3mP9;9BaIbnta|~4f^D8EQZ%zHq7|5a(oRcM zhmE7u#D^519x(jukyLb$`K_cBx8mqtFSEf_hzq2?CL$?D32&=0O^i<-_1cixLx6$6 z$qOD07?XJ!r%P;R`U1iw2u5xe_l>)97(TV1@-5)ez%y_<{tiWd_xH%Jbn!xLbxIWD?#|9OKb; z1Gx{{_q9x<&>l*NBc0I&Y9(@J=Ro$e*$ZGVb59FeB%l?>A~j`edhj9@~C4dxnH^ zlimvL^;FD3LrsB+l)Beqa}KL?xF^QP=mT0T$*e#E3KqczmnTd!p@S3l2uSFxjU727 zkUa+_r;~WIOtg)`IIDF0R63{D-#u^aLiu`O7}dh&b$Pk6R(Mgw7K-rADvVG1TZ^aV zH0C+nr@O%POa0G*1);=$HO592HFarGH|Ygru#iP8LR&&f=R%#82Q0gIrc%Ae=y)>V z+Cf~w`r_mn`gXSCq&%-sS7l?kKv_c{Yu-*c%bJmX*0>VNR-)>}q?f(Wh3b3s5)a!N zWbFl}+gX_5Y)Na?4DPQy+D6qvsmj(kEeR(29k&I$LO@AR9ayEAD|sjUX-vqlCw%*c z&u#(Q*5G~S)q=?AG9nEEk{i1KYaYfWQKBb=~A4l3Lbq4o@!PQEG@{1%Zd zZRow8b{%U^62=`Wm;~BDV-KrWE9%&XC6U7x!?mYDT?1A!3Gl9L=mCo&^W0e<=ts2l zjCMt=Lf2mpg9-B7hlm6r0|2QVP(-h0FsRR$%wao(J)zXdwE?9~Ynsvqt-95OGxEhw z5v_&_uu1o+5`^fT_&a za6b=}IHz~eJ=yfKg3U+6tBII?8R^%>O)TAc-A%)2VOkJl32vi>fWot+RuPm^BUCZ| zO$!|6(BqQ9F*1d{UeI*(eviXwOiXK3c7cm+wp=ezi5Vt!eB|=}!^cRprBBi2(Jn4RZ7gOF+H2vV(wwo%3ENWK(+%N&MgRNZWh{!tfGMCTCd3f z=F7Qywt%X<0SaO&+&gEcDx*@Qem)F4yUk=N1ECG%k7gQTzJtD%o!FSdUli7VFmh7->7qAPo|H z>DCM7d)qQYu_%kIK*vjFd8mb`HQ^g5A^~Fp980K2k!&Z*@!zm^qQyY4A-$2p)F}i- zKAbqqc}@C&rRNdGE2Xp9&^0++H2z}7`6&JvBYm4_iTf@}Nkg6+>jGYRHH)}x4{Y7- z@1RLodq*r&-y;M#M*1Dd3D!n*i98L8lWZj#K4qJwQK?~fa)AjMY(vngVZwF|MRJQ8 zN?mY4pxJVQ%ng{z;Mew3UN2~x#N^rX(D{6IYBiSl1lFrr@!^ir#eJZCugM`!+}(}<`vkY^82bx-`iq<+GtgNvX$ z?xJRDFEWyzNMQ57_b8}~{2FqawUrlTBK2TFWjS^Ojj5M-AD=WKSd}1Ukgs?hGtNmt zIR?R!*fN_cJQ$D^AT3|{CJ3Fd>d|EN$Wa^x5kRvlmt#x%2gU{z$*OT(*^+iL(qfjO z?kGmZUw_ql@vW#)C`lJt*ptY@c5%14q!(1d0}F#?R#AguX-Oi;5ZI@{7`rA9Hu04n z%$Ct9A_SBc8TE-3sHL>eHk5W@jkX`+?KO&~GY-bA&t;@}QL0cS9}!ir0F^E&j-V&DJ+orF-~8|^pGirX605{q)tPC4O5eJG`~Y>iZ37bRJcDuY%jcrfLCOF4ChXMZ;gFEMA^Ax!2Dt9ZIc-(g|Zi#z3SlFNZR+Q4ws z6g`eqXzRykGb@VyH6-v;BMVkrk{6bzPOf<-y^<5mJaP%up`RO*2$N~mM4xJ?=m&_| zZjf>_$^RXy$eq3YyhIWce4U5K|o6_td zf)K?aUssvLFX(qHKmidE&rv=%59;jA_&qGp7ntMS&4rl_y7bfN=F0Zm}pw!e1tEzCJYVclQ)0gG3;b{wU|y{=Ii>a7x4 zJzxR~7KSz4!bCNX1J?;k(j$*`#E37cc>Aw85_Z{yj$VQ3c9G-Ap6R-6IzT;O7)Ls$ zfE9|0B4cGF%dEDJ1KY zQ`C~LbjP)IDJz0WE`rwQ#dn;@#!#!$;FT8@4;<8)3csbY=O?DT(B6Ygd4p^FT(gc( z3z3GxXMprsW`?qEz0r)^M`e?$p}PqmY%Jn-z`|TI*d9eTWI9NyV2|&~M0(uB z2#m$4w3ylNhu3<1gnd5*RknlKVOOe9O~+2{phmNTxQxOaQP_pW^Pu8<{Q+=gcN@ZB5YXVQ#%;i%cQFAkwJp7OqcSWYl@zg@?L)_xj)J#iD zXo!zBIgdl?OnCSneX-&1!QJdTf%T9+$@B#m8dMR9o7oK&YNY{9qOSOLM@}-X>nFI2vRba69`4K%cB_W`P*8D~x9{J)eg7l!F>wm}7a_8c z=RZl)GDe)_mf;)tL+eT ze?|#(K5(zzvCn6{%u>p7LjgHSK+UC!uYpdE>S`sceVCvOPg&>Q2VoxuZV-l28lUF2 zCDj2{K-vpU%Noo+usK?JdHTN*w}}=*%T0D-_9n6WCebd74&g^kpB#A=iKvUsZ##N~ zAEE&-ryqk8qQ{JQI@Vm~J@Cf)`L3JnP@4KV_U4W;s;g`QLpmpUiF@Bw7uP_TCe5b| z=S6su2avGbVwN>M#@PcVq>MS&#>u^dF;!?i){YcuzB=t=GpkOVJC>oo6ZX|h7&=Z7 zK1(}B9U9q>1K%@ho75;0Tlof!?jn@nupQ3fA*eW`p0HG^sQc{fg`F}Gs1$SMT57zB`H_s^PkQDA0lm zExB&rYU3?uU2{5Ya1V|Ht*&e*rYlrL9q68F*yKV!7b6LiEv(|CD_L1Vb*-ej72F}7 z7b@*7+1%rGvI##wc`|duA}eJ8W>@MhIC&BrABqu-~Ew%ila)7RM0B4uXZo(9Z!8q$#(>88h`s+u(wce+G_+ zUzKvULzHq@-8hrdN{wxab6#RwWdfi$t!K}!uUL&*zXStaVGXdSbu0b0u=+cWPHxJc zFvO`66e@LHWvUC+tB52u_Woe&(f3h|z^w35o_D94O~rc~s4bnjb(*Zz){P4Vk0Gn* z`5D=>35P^Oid&UJ0_2WgA>u+7$Ri|CsbRy(y?g&WI{0#dQjLS~Q^Lo);ZwpVyWwYq z9}<4_C8$LbGrVhjzT$)r+>91#YdwcH+9OooE(I0!Ap^Xb8^V@0jH6_;nveHJ|L~`e|A2a54SFdws(oQXuLzuSjT}ed zJJ1sL(hRM_$66nLWHo8o{*!HyD_CWUGxiW^f2{-b`JbWW?b!?>z=Jm*zI^}g z_TJI&zdbrQesFyB;L*`|a&-LQ=oY@!BWxo?6FkNJLDmAgXo9F79$4Kiw)T7e?%1@3=9P3tuC0N(|UOf@Owl3o~^!^F})VWX6XAXPP~XfhX^N{IEuSHI+a^ zVUd%`gJU>Y3As4GMrt^M&so04AjXM7*)>Di4A<{Eo>K8m{7Y9&<4RYx$dQ%V%QNXh^?I=zME0sR zb5!m9CQ9L;R_M(Yb{-Wh%>DT4^XHFmzyI?2cDvo*|Ld#Qf4P10&FIy; zw?DqWeX~DiD?A>QCaU{^;au)0Doz24WX4u7x>5RDKVOwtL0qaeTZTm4eAy>VPs=bj z??6Ng<>~|(kY%+!>qa18Q3`NH8VhP4?!aAO^>&X&j_j#2^ckCiwPVtKAV`NqT1L#K ztQ9{iMX2q7jWhb@x`8!Dnui$vas@TnWl;NDFrH6X(NI+51jON&SD$aMf4Tj5_VMj6 zw~D|pm_=X|h}ud~n>vJjzvSgafIcaoTa8w%9s$=Jf2t#*7En1K)izi>VV!m~mW&cH z6EIDXp0bFw`TojCUsg*ft)C&c@`BcTFVsBHSF^hU23+wD<$@p-AvJ2HD$&k>0 z3u5R>@lF1>e$B0h5nbVy!U&gdG}OjuX^_TP2`rFOP3s}mn}qT;ZW~s^Zo;`P=n+dd z&qdlMh=iC#Bm{CiQj{sk`?|9~^{@g|_s2@Wg<2W)yFq)tL+blRtT+Z*6D%!wN-e#? zMfGbXGR>^QPr*=7Oz@x;R!B5qYjRL`9*1q|2)~(?N)v*3MKXN4h`%2TQ|`g1XH#J? zYy)TL^|u{81m&1%^?5tQm4&i1Az|z;N;am-D^6rDs;gNK0d9 zd2tOZipQfC6U+Lnxhyk_uN<>Hk9*YiSmdtC+*R}=uJ6k-U^_~&0Kt1PRpV9-NQSSEb@1y%H5FO3YOgpYuC75;h~1r+4cwqt@&ju8p+2DwwITzI*5@8g!qPcN6cPK5 z24M+i>mhtygGVv$+GJP?V0>KM7llij%&7*T&l1^}xnZ>#w_O9q5BEv~ zA8YC}e){DV3hsU!YVI?B$`zTd7)PnqC834Ln8>b1nm0+8&LZR2wzF&G$XtCVR#LCx z3L%h9Syvea`4Cw5l%<4Dki|?UXf;Yb2-K`F2m_^DWxYhMr-yDEpm7Tt2EQJvhD4=k z*@rQ#4k(Ue5|or#ik{oYo3;YCmfACuynITG^hwIpWL^73^q|%WBCDXZ&q&I{iIO<@ z&4{S1!VRX(rYewVl4w&e>h&ENHdj3CfV8cet@V8wE|XMXy1iA8@zY0GUi6%9iNLPA z>M!EVP@Hb;W|~T|E46QIVS0~kBx~1L9(wyg7ph0Z-~4$$_S zh(D4wmQT7Wb|0?y(X)-y!>+U6;9nYJ@F!AbVTIw?iC!es`Lr3+Ybb+*xjZj50ZAl9 z`NEi7KNCllm6`|Rm^+Xpg8>DLo6!xJIaJTww`i6tH9XwCe5ezwC%kk8A+kWqP=r9X zQiX4O-M&Zug+N|p*SG>`13jQunvJm=4Ay|O%qq>a(Q0(^XUye^sO*v|)<^$zPeFpY zo6?64V1RTp!wJ_*XdRmuYMF?OlB9r0b2pJ5485el^cIN4PeFkoI&LAs?hLVtPInT)>U=I-h@zFKV zYE-5A9t`4zY04xBQ){xc&-fGmddNu>GOr*ovKd~fYe9LGt7z#&Ry`JC6A4`XJ-EWn zNn*+dl!!MUM*ofp<-X6KfBx&o+aLchDyMNez5izyRKAhG7E%je2i*R{$R0s6>DBDy z%#QHaAG*1Mh<&zi&*p~En6e!aw;{U2Nj5SH3Og$Gz>M*&LK>-$61$ccu>Inq_jePW0sjPzj=DdA|Uu;7R{ zsPakx^!0J)XeDc!mK(;syjzU)^A;5iFYS8n5z_iwu>9;O59-9xvH%A4wW(&_qEKHH zfVwv2XK@KwND?hljFXQ_5@APVc)S8xQ zPZ3uXBhB)PVku7}_3^nBR{S`{^009M)xU1n($CnwrNm)fMI;_&AMi%|Fq&=6hJ={R zXj>={Az>y!K07iQb(v?G4`6m$5M@+!yk~&*yl3Q?^P4L(&Q4!W;UGpeCB8B|Op#D; zn-`Dtf0!t7IDz;KKE1iVL=LlC!BC03t{S3KG~fY6PkKt{L(qms4J;lIx{b#Po80~paM!;K=C-r>d-ALwUDoGg*xdOE)B(X9k(H$Z+fb60AE zwZ`e9UQT+DQVMkJ(zx6+_vl^MCu5Z0M#B=R5zDdglR_-vNe)i#G7Z$pk~_-3f%>LK zBbx|<^kT#8n47h)A=kn#dq$hq4iko9fw|a<&nAWjn)&w?aCfWCF{oT?$B}-KvviLh z&u&1d@kUaegm-<)9iX1yp`3OSc=4%KwZ*Co7XW#P`XBm@xx%LBc21OJ;Gqg!FG*RR z0%)>Xd(o-?U1321(-&xK!;$BFkdgxrHPR1BU{sK2&~kLlU{d%Mvq;j5Eb`z4V>c8p zWVBFusRaoFQiqsWj@gVT{o6KgxXl;SQ8N;X!lXh{=nM(OE$G+gU}8uVjERxH zi>uP~GZhm1Bzr*3Q<4Sv|N1$d#+s&t3+~;;l6_#J`-ES?x57j7;vj*{Y)8>u!DlKK zS7lLDQyhr#sVuMG?ePIvo-`A8y1ih8I8+!VW_u42?}S4N;DxJ3>F-L2T*;Er+*Jqd zmdTk>V=PA9=MYBQ@(Mj`@3auxpkEY=NQxNSMk}0B+Yxn9%2YE5gQY-WlK*^<@fHPw zgw*$F()Io|x`Qz`quz#>BAnG?vVepCEWeCiznP8|w(ph-VIm6Z*Kwk*x7HW^xB;dg$`9 zvl_u5MJ^H?sROFCR6h-?v^-=T1ycIG*290~Qg`PnCgc@}pjobuFqs!#nVi8PcENrz z<-B)}swR}dqIaSzVQiD24z10MW;G@+IB6V8keTtmM3_tyM1MHK{s?Ev5gG))-Y zzWa1Ly6ZjjIbT#ecHj-xuA}p+JMTDsx%^GPhWk#|>#xk*Ue;Llc7NLcv8h{s3CVOq z##4oIdsSN>6pAu;Q+Nu@61ut_*&9~HNRL(X1T2bS9j9@EL)}r-V%SYzP7zhitI5dM zhZh@`*t`05!aSt0^ZUGrT`nMEM4+-MoV6cTjv%r|^TGYbo%T1^plpq77n-dwdMTZI%RXY-k;8o4dSTGll zm8{5)^|xT|ET(i|R;q9p(`scz%;LOUAm-lXNSbev=l8Ah{5m})sSuUwDyEM7=I|d+ zS!4!c1YatB`X~_A4M;jio?0ynbXEhP0pjsX1TL*Eh%C+m3rv=?=)27-*(aZpEYR5wjVIAHRy=w>FhYOH+`K0s#51ofAH8!qZL3EgZxWEh92T*)3uCQ_i( zN@4WRZyb9|!IPrpVhdoIp?IO=&rlGm&p6FU?%`k4#}B1YTa-w1y%2g2o|Vqp3AM!` zWrSC$mtKx_rK^K*WBQhK3g2@pT#4xySUncz-n9yvNfy&`7np9RybNTNwTz4{g+B7K zl_5NKHx+7Kj#==s9OYmUJX@2#K>nG;a(N}Y%uQoF*1O-?KWFn%wN^yfU0sw(8ymVKm;`cGA+68NV#|nU3 zSO&afdFGp}#E^<%duawfK{XyPnO`90{e|ZOO@2R_JUDoG_~^kS{4+TiGX?12(fn}o zt4ZegoYm85MM+;LqB=j$U=>9y)cK*EP#;u$bL;saz7<$OAnH?;s)}Tne!IeSyAEnf zG8;b0?G1V`BVuIeI$k2cjN76^9p3ZI2nDcI9Q+*K=9Xs?v*l`WjS4(y0x>&V++23d zz4G!eFSZ8}E~3wLH{jR?`t9au9W`#i4oDw^Y!rZ^XB>^c%9`aY{bJ)hJCR^^% zN(epAE+*z7%nJDm4RLUFHDWn=E78SScBKyOeIo6Bc=;U+ zOG;X5p3!Ukb4+tCTaXW9fb=n7-S`+pYfaChH#`aO0mhQpPut?kd<={M%F#Vd0 z+Qxq}lt0CPDzcx?$nyJtF**+Na19G;Iti2BElQc>iG;W`E`-bxJQ7D4W~BH>MON`H zE~P8)37{p^Ay72zd=tG+A~<#&r%kF#SJ(2B=rFx3Y5`6WOqc%FMENmt={(*Xi?<`? z0sk}J&LU)d(cpnUWk^sOGk>k1CnNcxvEMY__4LobK z-B_L^rSxvm@9Mm;*UPb=2deA$7;AY1Zey6p1G+}l)(>CaBU{4hur5O9k(@L00E19R z1{rn*>X(JE+$WxW{tMM2#b;|D{E>*F0|q$%^+J1i5tt~I2cw7x4q0y?>KSFF8H*xR z6qPPwvad=D)1>TI-6IesOJb-E&-gJ&+pN)(ad@YM7O8XSI$MnD>nug9J3akUfHXVG zl{7;9IN76ql4cg_5<=OQB378Zcykn543U#e=09OHyUSXl`hw{HUZ4H z)&~W;SwI3{?xqlnj9G-l>J35MD(3Z(|enkf>|ZqYlnxiRiA$Ws@D%0qH%wHiH8Tak(Y$!%ss4(#_lL z3N__uGVX;Jwty6PLymKWYFv@mH2^{FSvs zIW!0(YWsrYtwLif>k+Ht2ZrrI-h=nVVVEK17a^q}i63u2p=7}8&lYXKnxRLGZ>Z4? zO^McG4(QyZ_Zr7B9qz%X83{?ZJ1yzFcQuExoD!VzmO9k4X7Pc8#0W+)vIScW4bs$R zs}^24EXmV&R2Z&?daX^;_0B=A<&?_8-zi4$Ek;UOzCsbW2P;Hvf*!0#D0Ax6BoQi- zynt#MQCI-s^RO!~*tqTFYJCYQ9|qe6dc!JnM4qb<%e35s+Jt?TOiUgOu84NoozbI> z1uq_=A+hCz&b>VI;2IQ|<_C8g1Uz(k1aX9n(iOH2&^g$a)y#p>vff8!**9k!Z20CJ z3Y~&-eN^B;2UqFukSKZ@T(L7ph127NwS4%ut>Kmmt+TbD#Zk`~LI#!<{chk=$)0)=IUvRW>Q7x%xkM){Q^<+A9F zNv#~dLD(lc;)Mo}jjF^*aI)&sM!4Or2Bh^$sO$x!46k*hr4TVy9OiRFXbkZ8HYyV1 z1X*oEILh4_S!*3?w-M`wn;0yf(_gBJt?z`g@%04NxJlEdNT}E@F0dPPW4ZCkqI)Kx z>?$P)NyhT2%rg__1D9b`L<`F)cerYOQk zW`}7wSh3S}qYKF1WRY``GOE3MmC-WPhw0Q?eNJze;DhdGR~4i<4*IzR`6hk1Uhfpm zlPO|Uf8OGPqK8|I1UJt#53$>B+*e(%=&Y}S3%CSo=Oo9XZGaQ#!nd1555hB%bmnCg zQ`FipM>J&p{5zsyqp1i_8faYxx1@)$G{~`MeI?6)q%1~u&eqp+uapouXfjeL1l3FP z;r$@7g}6grp`E69RbyCJ+kbCRW+*Vtx`*_z^*3s%p*gSC*P8^^^mz~xKvLtx!V=*l zJ(qsRla8<$ZRxsF)4Fsdw7!ot_Fq`RHkj?L49tVWJ+UUxA1h|x(%=@R59RUnrVBap zBr)?rxXAOxt}dpruY&y*r&QsQBBm-I{AjUq@`C*r*S|Ww$qiHKdR-00?FAN1vSFR) zT1~-wY5D%e)qJw;1Ab62Aya??%1I_&%C7TM!biff`Wa zg2@9;a5ckNuCCdip4Qmb{IT-}nL!qeMQ7cu^)rTq=oI<-(g@N4Yc_P1A>4L(vEELe zJy4dB4=-lVDBWQnCnhzwGXc_cLCxKEEc+T)eWEmeu+Pr=Jm-)xr|Lrk$dyvB!c1Ll%hTZX^hutBy`Qy*hN3=GO zd<(Z4{MdmT3b8}Cfo|w#&^m!MNo4cE`wo*)NXuSb#;VAJZOR}iqIp7eZ*#q9>8Y{M2uNN zBFO-X7&RtH?oeFUQ~8*?-0lQH%jPcK5`v6pP%s-O3C1;6C_JBC%~lLXe|`c@+%NKP z6Bw*+&oHehFwKLs%xWPcO?t>AkbrtXxaM_%OunH%Kv&^N{cIIa{NMU6? z-Gc}Ran~G^9QjIxH5J0w;|xP!M}HGGy3m`ii zU}P=CDQ{{Sg{h48iEe4_yS%LdY3?MfYZ{+s2yO%0J^0mQVjDnRb+0GsZkE()l?Rqv zb=H+(sjV|6TeWp8+^nq}WeF$ul<4Y_19A+({<4KZY;}E!TCKB>uaJbq>xyo~720PE zY(V>N6B!3x?g7%rXd4Gi_vR6Bf55Jr^adyLFg(L{;7&O%e|hMDPJt%;58}D3(WpjB zmuPDYbWBz|6&BdvU{mBf#IKDeh@$n)BcW|-(uMOI_@Byhro0Asu@jhQE-!ku@IzFn z6yFUV-Lt48R$zLWS+yqg4Ok>{zDX&H9ew%%d0ax_vwedtYPqG8n9f0tO(pw}XN` zi^-ZruTRZ;*j$pePf66Mg@{}|7p0sxiSEkVC}1IRNPS1BI7kn!m@BO1sojc2Vzh4B z#V-IE=>wat4#|{O(0TGu6Ne^xb-IRq2c4v;mRiO{x#Vv+M~x9x5|La4F;2Y>>~#gE zSdxw<`*NqR(OhI^4;B~vIQ@U_q@9-t1do-JhX_m*-FsB|+ zk6^0kX#yK|bVH#7-1viXUKR7+is_LNrG0Ra1z^*rML~igUk*S9VegvAFL3r0vMzF6 zHX~92j={w^)>i3sY+j(XAhD#3v{k|zKh>Tnqpq$->dcOPr019sK}ph3Kw%~*Ub8i1 zhzJqBGwI~<7Go`1C0%kEB#U!C5gEz{y(Vr`_fU(pz15qMlgvYaVARLqJWTuE!PjC$ zicOE5;3i29z#6u0^oiEBb)!#gZGo^%Lh8!B{G3Qh(yNValP#cGZD*On&r66FNvF2d zy&N~l*M-$pHA5+Q3@)K-TQT=|3}tV7qbc&RT`NKBPlR-77!f035|I;xU9=nj0&{I1 zZYSr0?8+4ZjI5KoE%U8l2RE$pB!$+STPJ5m7hQu&Y|lxw)Dxfhc=5?2w&H-tX{7Uc7P$IHwUXl&J+n)=OFKc$dz?V z0;y0W2J?2q?u)*f1J^QbYn_8UdfBBxx}pFA{3{2d7At53X$Hz(H8cZbOoT>-Bwmk_ z3m@weivrV3MHGx!crdgNgmFf2>3XvcQv3JE z2a_mkf z(1+l_gw+TkI1n%3HeR4Q`vOXg7(u?E<=|q`E^`IpWt0bkQXoRNM`R?;<`8h|pg?C! zxMwJOGg{nd?8s!Ycmiv8R3qxJYrRRx0=m`%V-;nSF)QoE637Tsz<{0A?XY%7>Rr&Ds=Bi-7#eM? zn6~zEX&EXSXGsvPXSISQVHpcv;WL!JNZ^SXAyC@ zt^9^rCQw=b-_i32HbdmfQ2!?~%cCJq!|5a<)B);;IUDCUULAzRLF`N%;XExRf$C7r zmi2-@RK+;JV27zGczFx+)4`7fKeZfOqgMFD|3pP{T1`tua>aM?bziASe#b+1RV3%G zK;&c;B-%#fJkQX_u-LNMMoD)}FBeVr`0E~P;72`}_!m21*`^{C z(7Y1;&Cw1+;62JpRfTUXwJk{d9Aen)>O4o=oy+=1>d!)ojhK>XT_31lPnOiCX$dBl zK>GQLP$vnOPRe;BLCw4Z^)j7A)9l;_r_=WkpMjNvSTc-|J(xbi$qN|SA&*L@ z?*%E3nf0n=Nn(7|_4ODI^ZypDO)b!XCJ!yfsQlOa=O9*^9~-qbW2DvSkyZwd-=W-9 z4M8$#vbZb8t0^-G;)*Y{tURD@`l%9bNFk>PGv*_3Yfy2fm_xJ?#cg{LLo(Brav?p- zI7131sJ|~G(}W9URI$N+IEg1>cruQ-%Bs!s(4HPpKP1W)5p%8qd3SacA3?SCK^D>l zi4C7TMm{Q(_Z2#ha*~Or^0yms`fU>(6HBi`-4)Cro=_)O0vlD1GakC|UzoBul*uSjG z7)`uTn#Ybi!~sgj=%Q1{&yhbQXkN!%WLeAD06_tBzzyY{&9&?(v^`A^bLJNY^}xA2 z7(sm|D_TsSog>@e=%eQ*k%<<~(8=}XI39;3-A&I2)bI)A@#UE|)x<|OO$zz2k!5~@ zeKn`7+0L90hnYp%z&u9!A{?_$j8W*C{p^j!G;l_gpDh?FXA$KC*YOkrm}vMjKJo4E zzx~?(X2;{BBiIGCn07i#bctArKHMzgSg*4gLln+Z*q&cGy~YR3X3rjeJ1RHBgmAKj zM2$&(?I{-w$0GFDOXC%yQ+BM9CnxEoJ3?ZMW}4wTCTFu}GJIaX`d=SDGVD!s4lGMQ zRkR$m18FbJR^vy$Cyn{hN^LSXozgU)x&P;-vL|_)-k~ZHuw_DsHoi!cCYx3(FkB>xUbt&XCD-=of^p zH*w~if;S-D%o9|y#Nfo}jDuj=51w?Q1=nD7c#K>k#wPkD!HU$tTiDsg0g^i>s6j`s<*Mtph zkh4{wrc7O6L9-})?uBFcy0g_Yaq zPPVJfo20{R-jZXgkN>D<(1hC`m$YV-=%iwn0p(@nxuJ^L_Cbvw(Pd}+%Fc6Xede(MpS67!Pu zt^C%mZ!TTbS~?9Glte{cDn!_Ult+jwfLO!hI@H@3t_=?NSaI9Rk)As_+ex%>gu75@C;VjMRzvQyX~t5o`Xx8JONa36E?@&BwVPgel{XC1G}0#T-MftJ@E z>i0;^7O;ejMo>?N(I5XfLhw48EAgWNvHQt_!5oG2UV?VgIB!}=L9UR^3TkCV!{s)S z@Iv*eU^iM55FX+4JPW%B$c{U*{O_`Y$tfWvn2N;YgbM^_Urk@4Ac6m->IZ@&R?kW; z)Y0$u|HB?-$e}-gm_1Z9$j=v1Ri+J3Trw(d^_y%f&9&VnF52Y)8BVZbS0f6@>f_;g zy95OU&n+lb!=a377bi;M!0So_MieGx*z+zFeU6WSdh3Ye;p)m}7^YQJEi}!p@dZY{0Bj)#~H)Hkurt?4xs|#fo=%OF` zY0(-6$fn~$ofSjsMXN^a8PcG1JJAVUTMtazb>ESiD}MRc$T^X*18f2(%`>Xud=M4L zO(=0q**zzV6&B+e;zpj#P^`~ZgGB)>GK3jE?Jb%IU8!7$>wHilzqda^o`K+U4&VYS!=QKT9_B&RPksg$qN z*)@UHg)JWl>V#4SJYihS(tZb2c5ZHj017uQxf>ER&$7g?*N{kcUH)ie52n!%5*5hJ zg~TR_5 zgpQJ%54IlFCM!0OlGU`7zRR49DjnF#O&_Sx%r0ECj^Yv%5XOp_;M=&@wYjxrZ>O>L z+qUkZ@eZ6B?Krho?m?6xFrO6fPfTLq1}&H&w=ifpjM7cX?okKhTrQ69`s6|Q-gJ&6 zPlox~s*V^6oG-{B!m~`i$pSw5GKIWyhPCTYQBQ-|cftCq_*%%naK6Jwhd;zkxJLP+ zRu%SOkr;MKbMAxcn>>o(a98l%|Cd(n*N*rp&utT`fd?PNf)**T=eMW>e9H6z9as|X z#T71e^N+hwEod>>ebrKT{OJFSeeYNp45p5>00gnx?ic3iqTwKsEilcKi?@L7X!iVk zVVY_gX{$vaWLE?2S2MRrID&7gs2D~g9z;%t5A_1rRWANzq$jDrY`5QkdHe43+xOeo z@BVL54H+mP+KqTtW1vSvY=CF)a`|vjqHvHtB`L7QcH|VQCQ?uoUO#Ubx%SVmmo=H^ zWkM8N%Ui}JXqnu3EPcs%Png@I5|XhrwDX{>A*UnC?XOXpI>JR6Bq|Jc&uJ;<;9N>U z30No#1qRPT1wPwt`u?;%Zq~pw3{cXUO=X+71UaF;tu@7V_k#ZtK#PDdFmKE0jbjcl zeQNwrNZ~nz;SrSSa*56|R8vNSSN(}5RS~hx15q~ZEw&($b3fAZ#7GO7)f8vrlBXj5 z2>C>4t1E&YmR3(pGDzKK7dcAkN7i@?Ot;@K6^?tSbmkXSA3K+r30L?aHrRUv>n~?6 z5YZwS+xcbZzB)6bXpTod(8n9Lhyx7=uNeo5DrV_em<5M8WSCMA#X~l2rG1co%U%d4 z2xbR~wg_5&-D}Cjs6ObivaU#?nd!YfMjGy2fvsI%onJEwk|@Qo<%z`Q=mP^s*#BP~ zC7-_}7dSFfwvDElb~wQwRxhq1@xn)SEi6#fm&yl%NZGU3|(km&&l_{evp4p1@Xc3w+te@q$HppoTOi0blU&M4(;m+g9(>#W6 zFw2lfdpUzw!}{VbM**30OPT6sNeQx+=a444>&4n)sAEt*L?u*bFW~B_CpFG0m$bs` z3603xLE=$?^#MB%jsrd@Ghq1wRPN9j^uGnu%3obCQQRuo2)`H>7$VtGFSS7U#FL!} zH2}?OgaxU&^J<= zgr;Qa1E`TWF3wyf5bz3+n54o?dH8F-MW48f8Hy!NQ+p%Ib=CC8{t(&v_xNHyeR%@) zv9Nq_J=kC+=_+E}#$`_CiCavM*p@e|gc5&M%+Z04;+!I1&PDFnuCvH#!GYNVZ9+CP zicRE99PZdWr)HJ2=%qO1l0LGA9kS@^5@m8QCs6AW3=~#&ml8mX^&^pt=G5JlP<{Z# zu}l-vNgVtG z;a5k7Mk!c%)87@wQx4zvc+E@vH8)?xS#zMiT-$7hx&h*MCXDLym%4cl)1<7h^pQ7f z<#EA|P~`x_z<=8UH64&9Q~3YIX<;9Z^$kcjQ$)Q0sXzU<&$lP9U)#4PAvMGFfY&9Z zFpogQzNM9tl7Y=fGjQoq4 z(^qp3n~21Nqod=4qi@mQ=x}^EzP&#_RvDREfVs20)f;B~&}AmN$LxZBa=p1coFLZs z@Yhr14{Cyb;tAeC47j@<{RiQgWVA=nv6u}g8|R%fF*p2TJwq#8)`Ep`>l7tih{^RL zYgXf`^8s5+Pt9?vV|ue1Y&=sJk}5$3JfM4*e7LEA7N#2(AZ7lCmW*%PC!$9x&ldc^wGCGU+0+e3bK8;t&lgu{4T7qz=ZhWnL?l?Drm84 zvnm5n2NfW65~nPl=Erokqr2pa;T!Z_YzfF#VEQTyHkUIH2&D4CIWo5Ce`lAh2dKP+MC0Ui_0-m=j1nU3M%rfavdURg*6t`-mT%H@fSn+F(&@(`QTnLv zsX30DQUok~=*6}kpAJ=GJEX4)EL09X90g={y1lG~J6f3m3#II?S%GPmjO0R`yajsU z57T|q1`!Kzbz)12ZV$l(lv``oozrI*KO?WB)dr6nLo>w=f6fqe|XU76UCr zE{qLCCXy$FyMX}~>(M`1+WFk26lc9L(l?P`sca~MFrj15E|(ttn)q24uGzs>g^h(? zuK!+NysUJ>=}_AX!@sK=yT5mgyYF=n`=ZYX8aAVzm$z>ENn$zOCQiFA+?yjUJ7a)C%wIcDBvpne)%PL5B%JLKKeqH?#1$lg&8~%166fD@MlvxIg zOBj!grG0CyhT(C1hQb@Z@{S=4gU31vqF*jcDhI4fqm-9ytfeCZpkr@-{cJJoN~0a1 zUdpv*Au;)WZPNHttJ=S;pCCO3PN79pPF=x3P$hamhI(3x3e;k?d)`E51=QCowo$gjm4&{;#)flZxOJ^UAVaDmJrg| zKEfo3NjE@D+_=E>vz82WvYI{~dASEuwjeyUyRT;pOwWeXOEvd0EolI{l}}rEddOS!z4Wb_jqrt(J z^F7%ZP2`Iv-`?!G9ReKt3f+Zigg6;hgG9dUIUBd1pWVLx{DJ-cEQup7*p`?9GUXwV zo7TXU`WGiq(<|MTF}RZjrq9VriTAR16-CrWvyh8j&06}KTVZ8&7T`^%@Q@#1b!feK z*-WEEuF_ODj4!TQxHpIgRV_7!V$;RdK_4_5hH}W>aL_jFbWR zsTrx_@!s1^}~_2T-u>$obZQ#mWDRJZeOK$IPZGLZvi5aAO%dy_T zUBmLQw2A1Upt5o9^9_2`_~&{B>n0ivnpwoU32XOq%{CcOa@An4e^ z!=w@6jFx2c#300E z$b`s6%pfbErK;mh_KLXm60_sxhGE)Rfx?QqRS@2KT`Ra(UJ_V&=H>WW);S*;IK7d~ z#Vpdk=`u3W{4$gMrC5u3)Va)?MiUY1*A#ohy~-x zVSND*yDLJB)20qkZyHnwzZH2vIb#z82k&u&Sm&Nn`}YrCjF%4|KZ$=mCYI_Bj)}7Z zU~pbGX3q|nBk(jnzd=8kj&kwEmypAL7p8QN9_M-T1kpo8qqIY9gVxA>XC7Z4qYT&j zx_8KmJRnY)G+fVnkdWKTVk9`fdF*A2M>rK-#UqT=6YjZ4i-mnAUnQGmJB6Q^r(FETiK3MOfKbemEZ<1y=&J zcd2+s*TkW$Hs0?>refgm3f&2LE!eCC2E_wRj3SNWY3IL6ld$8`_~(zzDAjuCj~?j@ z=p-*P9Pmgh-R8Z_%yL@t&yjB4Ri#8}+Z%)#LKb(=bu9!fOt**mM0v)=m{PKi_lkny zMP8(0*x&R)mZXhxAHuzu+)=x-GB@zy6bAtRV-S5Hu6MT{cJ z?e)~%x;s>8?5-{JPP zwc>V!DD%@@Y-wNB!hAKwet`DSFmE>3Fd2<{SESPtX-}S?r93r_bf|5@LC1t#s?^!K zKwJ0~l^n0MYLwdh!$v$mjbjBdye_{G$o?h*@qdcgNNhaS8|-0uH!x@52JKAOP2Abe z9@w{YFc5fWcrb*7#x0QcstfWBH(j>-5jvNU7Ra>p@z9DHAqEC=27L~?lQJms1yK@g z^Ae~6``hB#L}Vm~f$<_R1T!&TVjrQppv)XCJQNXF6ljA=(B#@JoYlg79aV7i9Hka& zl7$uFY_FBTy440~+u0*IAE3nzdqeCK5}u9BXao1o^KKA}h`a&x zjxNR&8t+0_AMW22CmP{bW;L=LS6F;*5Xg7--OYNl&lF}^lrjurH)gw-qf7nl+ywBc z7nXxsjwcY6c=?TG8JHz_$7_%;Ef!ZEqQC~DupM4t%M)w{BD)`>CN|b)i(c-_CCm{p zn9mopi!)u}C~jamynkmbc)4)@&%I~R`~7#grFrfTe5kqd`{k>TXqsz{;>+v)F#3N+ z|N7J0cegS|i59TI3oAMVkzfLw4!=9ey)vWkMhnqS7%8^O3o71{^ZI%~J<{U}#Rj#D zE67+>GV)}g89cQf!s@41_E?w&P-3)$%o(C7b&Hdl1XVo-HzZZYiGyv@0@R&A)yrEmB>{tOy!ouh2pmr8rpOZC29lL+ahPUC++=`- z3Ig~5e{aW`D`%IEe{f$d$T!v1^2}}v`S1Z3tuHKfRn^{Fx@0KA>s9d-=SSf%D`N$w zS)4sbeS6xC5WI`RL7+X-m|#(~FfmBNmoOveG2*ik z;2g#UsCUtogL+^{qPY6F`S|Mf?c)7kzkC+ zC+6i9qccgV@c!%qHek9Ci_#hP_AXcp=M(1AG`b80CY=~NNNhrVb$#{S2G)hJ(86+c zg0g(zWAnxNem!2%u=?uyJID*`jc=!iXt-S`MmhzWgoj1BKPN_l!|k@-oSi}jgKeYD z1qHJVn=Sf1?6TQrko#L;dPnXTtR;%Yuyrrj`aAaj68G-UZ6rs!sQwh3JrNs}?Qsww zDN4J?-XQUyFyaFPfTCu9LC6|dDyzFejqlzYXTqjXoz>md zRasg2&MxQNTT&?sO(i!2X9%xZX~6t<{Y+yzn!?rGu`0%S3ze1Dn@B^IUQ$hw4V_a7 z>_2|@JJr1{nk)JaE;pd`kN<%LGy6NaZVPE>9_;23G{2;`$(sK1haPJk|Jg@|HtxX@ zBaRO~3}C0J^xr@jQ$Sp9Xa&lKuMW-3tlIZuUK~w+c0{qgq`&U3oUZs&;kRU}+RB0T z5Twha40Omo6ZB}5JrZ4V4^BDQ~_VeE_K7RP} z)7$qyg1y`aGWzLGiG$R*z-$m7KHksn|M2C<9k3r9H6*9I_iIj7aWrI%yZ8F*QyA2+2QLqkw+dt~qeP{prLKqT&2${`&~(mAHas$y zwvDM4DttiX_rQBb2Ss6YyhpW)7d0T`=-r<0o;K0a$V7kVFKH`Q?#X9vnM+sH5B$vM z`@eAhr|&+zp@vtoF>K*NNJ<=-8i=}aML93eE}1e`8~8CWC2sM{P^L;$(Tya>n;CSi zP1=LF3CP_C4#*fVr4?mBcKqTXr)!rn)TykSy9Ao8peqcx8PavWI&jSNVCiYQ-3v@l z&vY2_m=ju4fl+-4R&X>rlv9sF4 zv3M1zan&z`eiEo$b>Z3BfacrA*C5$*afXZiE~etcQKzj>Bv~CaS#c-#U6C7m7e8D4 zm8f~ua$;3p{ojiD_hjl_<%jlEf!Vm7!#P`D-qd5JPCRyO@g8u@O3njj_ATB6ZUyE& zvMc_t-;KPUuu4;a*4?~ZjOy=o-L>woO%o1Cp#HlRw6T#vXfPvL=PFS{sTSmb#dMU^ zeO!PJ+?x88@qavn+y$%OL1;oZe5f*oBL3TU0OUd7Hw%OU5&fq@+=s{<@i)_rx#Y`B z_Ym1y6u}niV$oeNllv0*?2D$h`zZUkMBowT3)OQ{02RAt_-9 z44wZ&PP%m&+}3ufwJ= z1Cd8nKHCtM42kUSJ^0-p(3?x^SLa&>Vcg6ZJqnSDIs~Q>AN}g_h`)s);AWU>Wd+6e zmafv^gWwxz=fy;}0H=0n%W^Mw%il7hXYb zR<63UsgX7v_Mly)`W2_j3#+-!Z=}`ksn<201l4=Fu*TGz7>^j?m!wT7CC|g6+Agbk z`-q1{_0${gq=(a7qLkkA6SgV`9Zkhjmf*v+_l3N))bfqu1g-B z)@7nwn13gcZ1ob75Jeu>WJF#PJ8YfAn8@%@$2~%ii)}qIhnpvTL6n_!*ZK0Rzs?_ z+*>^&M@&&+ltT01Zn@B?p4$^j9w=Wsm-`j8tB-K?qB}?{Z`2M>E4#%U!B*gKcF#w^ zu~N!=4~`AOUDU@(hPs*{R^+Xf{SZb~ua4MY0yk|7z&a_3fX4!Y2OA0oJVu(k2nGz& z(-pZgSxO4XQpRB#Zg}q80gXk$BQqIwn0<;7mnjtxe(Mf1MJ47B{8-svL$#^3A_HN) z6NUBqtPv6HL?(rPzOij(vj;ibw-RB@@dJ3y@l(3t5l}NFTG6LKgYe|Md$C*;b-5qV znp%1G3aHJXU2pMj-L2Dr)VX`Yzl3k%4MGiA-BsToh6$6p;2ktTt_sXI<7WAvSVEM1 zW`2OE7}gk~a-^=!tu|6|v_^tLxm|=7-vCItv0a{BCM`br1!k^R&w36to0^xG?=Bx zgR@;;l{z6MbOx`>`1&Y2TU=9WVrTT=A!}X2cg4t``>?w4Fj^X)Gt;!Bo0E^nebBjw zNkNg)Z}czk-a%cV)PxML!!N1_EdITN6Z?7@!jZDOZnR{3BPm8gkh1IDuetHZ=Oj{i zg8f_4hyT`1XWN@A7No&Kip7{;{09GeDaJ1_P1EUR^w-z#{@toG;uqXV7$v`+zq&hs zl(D=Sm43f^{I3UKPb~>PpHqBHz<+}tBghCh;TgZ#cjMy`L{ykZ%8duG{{%w<@7QbL zol_SY&BXQah=J}h^mc)f*g;4#B9`MzRny8`3pYsLjLsmD236xNz`h?gSA z;}R^tV~CxoS7Tp{P1rkNfa%a#{KU^e}t;6i?k8eM}ez!ov+xw5Z zl=i{EcA@E{n>SZb4$5Nz9vYYQ)3~H4c`czP1MRZzA*X9)O&9N8fBMtv!{6>d&OZF@ zz3u@JqZtB&0D|s73Cbnh!+#BTkSo3-)z23X2C`RhS_?U9B64ovuyvOL_b;N@PnX?; zpK0+(E!%9yczYCsH;iH`phRjZBSeK+HE);{0UBYl_!ozAFa@4s#7_C~Z%?0{K6!@x zO2<#1OpeAUr}w`;I(&NBIWSZujR{ja-_;%%wU;Kuh#F4QFimAQk{&S4p@knd#XWh3 z%>N2Ej?ITJAK%FKZBDEj%(Q z&8GIB%R@HvJOOwDd+p5ybVQ2?BC@zCzhnzn-Or6e95<;8%=tryHn7K8u+u*RkFghl zC^?T94;dAAYO@7lb+fl?6-r)&kEFBP>8`155{CSLOL4Y zERHwJ6ui719emTctk|f(8KFcx*;~~_y3{JzPfY{JbrbeVLewG077t4RzFx{4VL5G_2_>Fx!4qiU|EBj8g{!MuJ5M zN79FMKw4!Tsu!0hc19}NB0@Q+V8z7Q!p)>aFHNJe81n7471Y@xY!ZVQ9r13=^=Zd^ zl@@*gYG3LunJ#orXksFrDfQVVqqbR)V!Z&FLJA3>LZ5IapzjGNYT=<}=-w-wIX`-O zJe%Poq|9*_8_k?mfSg}|U38@mq$Dpo-s|kFnHz&8-W)vs_kpKI$1K*MXZ5a5Sz+<{ zkgTPHmub}6Wg0LG+zWo{c%wo+&a7znLf1^epujXm`doLz?FybPOxZ7JNPbvH6rT>1Quu~R4#kZ6K|VX0|Kj@S$PG>Bc0VUugBG8xc*D(WVW z5v*-Z73suAYWbdKvjOP?WP`w@BQ|0Byq{3Q!*T$!-t`EnI;#i#7;+~)fXo!;d3D)( zBB#sh#$5_lR!kx!CH)pfFmq1#(!ZL!Aqh4%#pZe7^&h zAsYI=K$R>|1PZ&3KLUk4hlp+TVa0uc=~Kl2Mk+n8<4~FvwS$KapC&W6SRO2qIjYFO zN8rqsLN1Q}#_Y&SE_85*@|5ROQjpU%_R-fXXQ0$8ScCb?f39*yxy$xIq;KqGZ!`|b z4+PVoj+$1Q4BPpW$QKt)LvQdN<_dfD_Wk*nKW_d@Q-V0v0ov42VYlKYv5x+QTJIq$ zh9@#u=;8jX-{1eR``ep8z5clStOQGB)p2UCzu(<0 zXnQ0%bl-eu<@zmkE?!61dKAuI$YeY|^k)>Kv1}WjI(=GG%%QEQT|xCA(#$y*z3v zmbkQPWmfX*k4z@E-N((x^O9pVW1QRoNIycsz;j*-6`Cq?s!D5DTsMZkI}6$v0n#M% zfwJ*EVGwJz@!_zcp2vdi_jS?}^h_7-yJunxQ};B9M#dpGK9EH)_36E>(Z=byT@|bA zXQhSppbV}QV~OMi6Bb^o?xqMVEP6aPG?~b2K}pEedFMB9F{9%Pl8esgBbPgjFb|5x z0qTBv4fgqZ=`SFe@@yE_yPaK5pzMUBx>Ev`87%n4vkKuSIe?=J(^xEB$F~wQTIxj# z&s!Q;)g3rnJNIG(#XIVDbJ2Q7h4^mStH6SqTvD5wUb*Yb>fMA8rOS2IT}Jf;)6w!( zf@Kt|y4q&rXaB<<=mnx|R_WoC(mfc7IPFmXE~Klj6ShDPBT>A=9;)=VjJX(P_6Tn{pRdM&goQ41bdc(^336zew2CFTx%w`Zg_xxss+%aua3oN|zWK!L8p@r#9w&GJ5PAz(K z)Ly^~E*!H^Sk{BXnmuAzmVkO}I&SRS@DZ*^;Bjj&F%EWf|9Sf1FFzrs*Wc}z5z-BX z0UVe*%0uZ5ZAS2;2Nq4gk4z?~HA)1T0*717my5uG`ardx zu+v;wckmqN^3p_$OvK|SzD*IW?g`ZgaA&?sU`?ZFqrR@|t&t&nW*jW_`KZ4TysS^w zEJXZE77s0qp`syd^MQt=f_Ukop2pMoTL?D%<9t418I%pU1!=TNL$hb`F*?)WWOyBu zwgx(|cCh`XN};5o;oO4`)4Ovbt`^mmTr@fw%(2_1*ab1^21(XqxSn;v-|?*Lsjze! z<{tX+U{JPl{%f~W3sZL~Ye1jwZWlVqdBWniX56x^x)&0wB)hAli%-tlPv{tj!ZaqHQ*%tF&a0}S)@9dGm)JO}O+nv$Cmue1tNR%^jEHf3jHEw%HZ@vz>|urzEp zrsvh?9Loz_Qd&C!ElgwM-XZA?ju!eXt1~4nGQx<_rmoM%D#&I?>G|vTb zB622(WvN#`zy5shS8=N8F@sgF0f8p2f_z>~--bM+Hh^eqLCsc)xaj$v=i#(iKOD#p zl?@sKgK|Rl!Zt_c(yOzrQL_@3W2eB8TgjrOF&GoeV-O-YeUj}0=#ZL^;Md5V3?Ff5 zLzncUcL{Sg+6%HzH$6ZTy$t-}P3MNFH`h0E2p2u*FtFmzP(u>HWYuEdB21VBL84wYT7O$JC!Hajzd)o`8{T(n=xfl%kAyc zooCc%O0(`cESWZ9wZ6GnpIymPzeB#K-6b}oZ_>SRl5hBJSzd^nTO@)!FztmRc;Y9_ zG^Nv>2j~pIp5K94B4%bANPEh3p~L442`pTOU_Pn1y}8o`-`>XB1Ox9aO;zG^O%06$ z&>g%@+#nuu7(8^OovFU7Zk5f>g`fZO)5rTC|Gg+waOXF_XCysT7#0!X4Y(wtmi0AE zuyzX^7PZshMd2xSAH3=I8u2!>1G_idaf4~|P|(3pnF7;vS|taN_sXe~Lao*iLGVX8 z$fKbtv+cq;k#q=@sQwi>$M;a~P~OoA^5gjosbs!}jh~wiVUqaY`r<~u02zWTA1?z) zOr$OV;YGj1(*j+`j)}`_;LG(Cab>_$T%Q07;qJ5|1Ck|&zQS{FpRO+Bat^i-lZ%rC z>mjZWb{6dD&Fz)E-_sG(g=$UGmTfBO6$Vn}D<#C}SL~V~GW+`J;Zkli?n8Q=?Fx4w z_J(Z{SR-H^G14XcD?3>@bLR%RMz0C3ba1IU_$@8i}_62^FCwhWUu#&U487a7Yl zcmfAVuPN*@^L#767h=LB+YQq-y?OoaUTB9Ro5Tl*?GP|jf25Jv!vm8eH_q!)7Z3ROQ%nmV2Xt~r$eQq2Q7yITk3OK{ni zyBy9Argpy|5`bF{+DyU+l zsS+nyp46bi3Os6Bj!4DR|2t$O+m1*F=t+1qvHYA=Hjt9EyP6{ih~95Iw+S~&Q`3d& zmN1wjQq@VB3@7xsC0ggOTi$O)bH^7V3(@dzAno-~A)brvo!T= zTU1v+4xa3xs#F@SZW4n@qu~$KYjWY|H%v-wRi+mH1^_j0{FeFZ1Zo(ZZ%BHKi=zXI zhsLI_XAqR|e_yaTo?4(DWQ!;tr_BX)pN$yS0qO=uM>B2{c?RH{{s+_(e)Hi=WN<4P zz4!IfBf_CNudZl=(zhd(@As){nD&I57!PfSL`#bka`G6pfNUB_%7DLc^GeFfSW^tgQGN$=N+TBws3{xhbCV1JZx(=YBEEoiLXoN zZWlyOj1NQRPDt`FoiNZSLi+u;hxA*Q-I%l#n|6k*y0hto2d|HiRfG+tP76x4sL+Ml zLMn{Eom#!X%6W9Zbspc!*Gct)1Fu8?w2u)!oLvueuyfI4T7og6E0Jv?r*q*Z8BO5| z$F}(n#Ef1(axcg#?*j2}lk$N3jNW#%)Fz2Dd_;YHI6DKuZ0QCg^s?!~)Nr6@TK2rr zKcER8!?~^%?vG7h7_zgE}oV&_^B(b z*MDoGr0I)9prN@`g`JK0^*Oe{P?;35mfA{VJQaKDf}c0^WKwZ217*xzG<-8>N1lf* zY4Y{)F8bPZdWuTI$V(%mz9szbx*TH%m{wl6O zGTJ*O-bkBb>L+|T!hVJnP_Ca+hetJ6ElkputG3;V106JMzG}Kg^=jIGzd+0R_QU(> zPwzfYU%z|zhu3fZte6~jKv2$}F4{t>&WjO;F^F{qrhy0noDK1XQ0=aI zva(EpCyST4gZr|hzR}xd2}SPS#qIS}*JI(&x?ZSdMOWhC|~L9t=pXGCIUtbUMM_wa1!l zG`)ek4IZL6>)F^U@L)ITpZt>CVl1Z$9b~W-EdvO(2hb7@f?tWKfeBp@LLcdcn9XQr+F~_9@ZF!?ty4%zgA@q_0&ya zVx&?YJV;-o5E^>{_31jsvSSe~%-@;1tZ_Kf^+(KtZy_Dr5~YRV!$%aE{dX*ZYhTZD zl)Lx(E2Nj~tk;2y!b=`1f>Xd6V`MqLyphIP{}jg2E03C3E?P}V8YdWi_xDNCt)+8w zwnc7dV<39`Dydn!z3J0fu*#LU`+8OMa^0FM5|onx3kNGD#gXOoc;T9aXqMwTD z9r!%ueY;zd!v~fmE5`|ZlpR%%s)tq|EfTQIl!w`L-NZC_)2e7Ov6XNJTNvF2H~^o) zr2cQN8`J2aI$g0)A75a36mC+p&*j-s^Hlc}%eyhlB9ap_1YH&u78Bh0X105YRKqAB zqdjdD4-7TKPupo~KpI{iu`4@#{3-q+5@@%msnG;T4~yMB-XR++V!S(T;bwzY!0w7w zMGH#onO`9SKI77uhj5AupM)+8e4y2I2AV{{cAF?;yvGsd9Zd~Gk2W2TOR(M$w3%p^ zXU0XIai4?6dDF@33Nci$Pt!UK4L={^Q+=fdEVt16Ib)BJ41hz)E34s`W*5dzU!)D!+K!0 zqEyS$Lbg$=1v8J_I}k(~5g+z`MaJwg6CGdtU<`)LE$S+5ASNO6 z=k@jcQW9Ew>5(WpxHpz&@#S@ee}-snb54_Eq%=8EMiUTehCJUs;ya0L6nx+R@$HWg zfB)hVvYgPV+}14hI~BOI-ImT`{pEd|>muZiKDe3Dr>4|#&5ELJSkE0OY4#K0Xl)yk zdr~2fevFo;n`=;ADyw6g(A!9EO|~uvN9YWdgv$9Vl(x`3s|3Mxddwivh9~4yCt$Oa ztd^$hYDsGiCBR3ELG=eUo_hh)bIRx;PQBV4hUfI5MXM_z%`NvQ$8a?9F9jzZmgIx@ z@t7e{Qg%^6U?J;R^Ti#~gJzo)yC~a%R0s$>b_PL#4nRu$+xh%~4s{Ar#Y&Ut(giI~ zJ&N%OaKP<(mP||te<%Cmh7xcZq`SKacqs{$0l(W~CaHsAeICgU+x67vBM81Z=TBzyu44gjx#C*G) ziArf&qypA#69L>2b<$RsMN=~^x)TIHYyY7B*{%`r_8xlBm-aI1OHC0@#m9ETPwS#R zDO84P7>UIgR%00Z5n2o~2ztgVd{Pgyx=_7=J|R%!V6DzJH%^twsv6lOGMbBFwQpsG zBr|FEQ)}}Mx_$`RVPge{Vc6<+TR%>q{$0#L)Oob%x8`;DFt+rtc3yAx9N6B6XZ0qL zeL28E<;HbcUf{)a)Ce)2GAs8c$v0Mis2zsIx~^j%vqr);RYYLeOMBUCoO zS&>YU1=+A5CVi)LRn)6oHgx4VY5Di;{Z7M#ht;6mE7Oje@uBIPkstZhyGlvYM zd8v-5X@Bwi8`z_;)k9+fzM~>MHdY5@vjseNy9ZoaiS?ybMqAZ+Bkq9OEIrmmM^O0m zFgfy$4AxssgXQ$c{R=61gNl<&@_H(nP4XZSRJSnK^n-7Xo=zT%g`xkT0*<6O3nPs) zs&R? zI5$C$Dj3}R{q!*tiZ$hj-wQ%9g|P%}VdDB-`6`^m-PG=0GG zHVA)I95mcNgY>9ebEgewldxaldmQ>}aUzm}J#)k}6SqBa#4`)=THQkKTwbj%=g5e~ z9M-=wv$Rz8$~7u=x~9B zoO+WAW@$4MpSoaifV9Y*NBo9h$dA& zNf7SMC&_eCR9wJzW6LKk#uE|9NK)Gs#7H13OpmRz2%QtIKxaoCRg%+dW|ZEsT$2~% zP6Y?BbaXFr1`@kI3iUbO`MNpY(Lh7dfJPNX6(i;L1!O;Os^xN~o3mVS_k0UjEug3$ zP-{dlt-DbXuD!9(q!g77tc`0az_qL^n{GrPKe zgfnt+ZtiJaO<#fe(v#>N?>TjPFrOsXXN1Wpnwlh1l!(*|7w_{MltiWfwq(hHP(9aE zbd(Mxa>~hX^sOOn`c7Abcul)W$+cyoQ&5mw^uF~%84I-Ro*|(G5(XLMP&2q7zxXHCan+`hJxHJB>2roz z)(X^fd>$mfH$I1!3Dg%_cmz#+%Z%B}0_J$c{Z%~tokZ32&a^lTKwXeDpT#{T-3w4J z@^Y!6eRNyF&;SFZ+gjNO9{}0tYl#$VFFnE~MDpG|R(mIUAD(80DIe@=HWP?jU^Z-fQ2C`i8U?=Eb@QxK9FcHwUH z6xht2^)&c~vahJumGFSi1A(%L0-m*KNRsGYFNdM|xP>+r8-`Rs1~+$GYZ0gm)nG}D zZ_dCk!7kYKqitd8UJmcXqm*mGqZrxehojf$tnv} z7eX9j>V}8Ht-u1e;cxXH5@+@Ji_7uo-?BF1|HTvGGv7RM@;`p!QRj(A|Klfu$8E-V z{6Bu;N#}_t|Kle<={)fXo=9}?g*ug5*b3Y!>J>a2y({XKhLakPGWR61XoS+a2G`F= zOGMsKki-E<+&H3qU83h5+VLE6a97THD6gV1_{kY|KuO&=%esmh2Rrp+;3xS9`w3J8 zyOspRb9*#qR$gBZ`taLMW-7cPcw`!)lD~P&a?S4zC_@V#C^KYJvkB?^VmhNs4eso7m z7?+7hk0pVMc6d5j1)ax{f&D($soKDB$xu zKXkAZDgY03YNBk8phLy?Lk=sOeIfJh;>=ArrKtyt>QoPTyS3{lm_<7yD;5`Ubk&HR z9gvoR*Oa4k+a|)y*VR!ncewKgE0MxIU6rMwK>b-tB}E+r3#w&3Jm}0Zr*0%CcuHh+Kr=1(6#ynp*&@~0%{y1y5owl3xz*cApN0BV#l&m!aPF7pwI#f+AwoOb{b z$L5G*ZndecKCs3j)6Mi~zk*>9ZsNO^lWv(sf#+Vub+HYqiC4M^FmjtE^({y~{oC=g z$>Fof(`P3qho?`+lau>zP8ar7UY*z7b7*np&XCdS2_qNkFCh|9(AhJqiczAoF$d#c zXyjm5G4h7zLM9Y^+w@ScLJaeuvA6V@XP^H5e){gu%lFzDFp^njA_m3e2tKRAVjmhY zAlVT~x(;*temdavJ^8|q-7GI6H(xO0Fb$`PN9vIWmPJqvzi=T`hn72BRowyV1|gzL z%M%wH>2F1L2NVkSJutoaTfz$bw}%z5l}iB*K(Ad9S{{>bJ^y}nw%K6c8Mk1*fgF(Mrg z$L_{P3u{vP^ne8+9mx3?qB zU~jXjO7F(J2YI?ltqPz_bxB2cq6w(YvSD=`o|J=8znrx}vMf{Rl>O4_r`KdOK{*)b z?5M4*Ckpci`}QVLBp(%_q%QW!0nsV0ydx}af<29XLREgH&APQ|kdZCP6wD}X5x%6< z)RWvyKmq6(MDeEgci6!!~Fy4xMx+ci9l+s$Y`nMR@RXk^{+ucuhoZ@*H%$a$-d zbEs_g(DV-~rTakpE)$yuWuyQJz3RGSI{rz$1@DmFB8!_c-3Ie+_}v5R&Dv2VLeyRO zNE+iZ`Ahpwo2_g&8d=wy$3_3`o~i*UmEw2Xt3m#``YeO>qvzE)w`5diHGgePbX9{}WIo zR8fX64*qXt@kAz}qkXjn#CMs+8Qz^I$Ckf;MJ>lCD%hZq@?@<@Uh3~-~RAB0^>5G6wWVh_J^^HMm zk6CJj|9Q+{IH;%DGQ5@{x93sZ!t}yHi?!1wa?NEx5+o2#a48QWx~6)qJ<$}-G_Zez zB0~I0iv*gx8h>wdg@%$YTAGdx)4GY1 zJp9>U3df0*Tj(zy#+!RYfzK7^%@P*t=NI0{3zaw`tLg3;^1-u zok4ZQJ+fzTk_$}THBdZyv5}&I{;BZgz)NgSEGtn-ct_^}VV&7Y`g!wmoS2Aczl&bG z+kHpe9%f{_AW1QbE&&&@nX*7P+&OjZynG_oMnG7eu0d}D0B*nxGOf|4xz;!LAg1Yo z2qH5HsgHk#9=Fe%hS5C@3}XTsV-^P)_%6t)C=cfC%>|D>ycEPb0=%Lsa7Gn7oh##1 zQ({BkCmU$w5sAh>EnTNa?iZ?aCqHt+)F5)Rh?a0oOEsP1STDx0+vhL1f^dfPGKf!( zo#L4DQHjTkrXCbDo?>uJO9?Y|nacNnv~(Yj=fWaF*64|xcFhO7Slt4*=Cg=R&{S^c zWJSn^kOi>gMu6wr0FX~{9>pZqLG~{|!Z4Bq)g)OjZmvuNS(_S;h=%P`|6-C1XFZVc ze0OYRvB-I#dHmGf{a}TZ1}74Sj2B;Qg6+8IN(OpOfHbrola%zP%nl1D?bYpe2Iu^! zt8IB``_~I0U2ahix94XQ#5AB~Vz2>7&}@ILTg+?3)UT(%SzL#S@5I5 zb|cLm;+vp~v=E_}Km73a!{iEHTc7JTy; zt+Yvpk)JMFy04~1znWjE?9JKKMIMWg;AhaEX!GqIZ%F)1hG-(l>(Ss2^St-;NUa2@ z3le$~+vCyFpsJ1v3|RMM>HzgXY#tPyn7#e<`Va5!_l9K+z(F^ZCAu-ej;h?!2jUL$ z6R3Yx+;>y|E=cR`!80@)QO~iuM7RSHb#(@AmOmN@ui_;*^We`g^o|b1cA`;&;R>P! zrnze9mkF>EISNg4p;iYwwEJF)Z$yQ@|JEWU{B8siaa-OoF?+UgfU$@#YZ5vhD?yp4 zQ0M?adoHW&^~~5|j=R%A-%|uE6y$IfkA49NWW|=#K%G(=vIW`XCw7_8iFq|Aw$yAb zh7+EoNBT4P=gT)5RlUNy_NLu*q_Ut0qkO!f zfaOEWiyH?r*Dri!V4YyP6}^ROTWXt3WqbJZ{P0kcJvFpmn|AmUfQF};r>b}dpIL^Y zj__@y%;iiq#aK;x{K*0Z2CA}_s9 zrDQO@nqtoe;RdiV!sg+*%^VfFFq{8e5pFw&u8XOt86v)2-_BpcqBzb=+(gvdejsJ1 z#4}+e7veRj)|O0x`s8wyZ3xwlx%SuUVD z$38DjH2x0dmCukKo&`7X>(%AzYSgtxm3|DrFoS$98>IsV~S+u8zV>|mf zKtx%tQTpcQib0d0Ps{ap&tJd);obd5p2rnhuiLAPzeubBy$Gk*TWFE(M|^N)GkQJr z-ENTwkOzY)hDOcBR$0U^EHw&*Meb>WdpN7>`3mv(%Bdw~IH+^PJf+~Lp+G3b>O7~m zUE9pES0906?QwcEODsmimqo%vfR)S<8K9l|s<~Z{C${@A^qZCTm!+u1@P&BF^sFM9 z2l}f#=>7|`O6j9Zth4EU2oH3bL*bYPYf>E4Axc(nsqKDV;j{nK*35U8U#iIIffR;Z z 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

    (bOh=IQ`v&+dH8 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

    C~FAX0#?H+m^Av330?8#mh6PC zt|@Jk$974Z$Y_gomVkn!XWKy2W6?}pi;k4R)%Z(5P@b=$;zl)A^EohEkv265;(dJl zGA^rX#Ao?tNGH}VI-nUD11@qs7fedr9r`U zLgo`BtfM&(&CFnh%1Ajm3KudtP?1b7JW#E+By*YYKxsY~Z`FjefsJx^C21{zL4<_Z z4Hm3+j4++q7TM}F!$?iNb4r(RwuIhPB~2nWOo}TlIX5y7kx{>+;h09%IWJ6#3yP;e zX`p;ThJ|!nA07npL-LcHgj}ZZtzMYZNj1+NgAT=5kkyF%p^)mNWI0;X%*$m`Em?4y z)&x=sAYdjD%jGiBcG%lVG(*2zjHSxN;<)-~cwBMMIu>FQ6Px}fY?W---*$#tF0z$3~Ae>iQR_{c;e+$Z# zsYM!;Q40v+O)Uy7AW-~Ze4@nyh?yUeisyzxaR5?^%+s9BU_hC0p|z<1DBW`tRP6gi zyTN0PkHv63s?Ip1FItiEp~i^3H<53K1tnBZ861Q%l^&`xcGFU37{YyLD?3k$A#6rz z;KI0}yMt1tqOD%-++<2|QO|X0t<|eKlGt5wsp3M|k*!*v&x7s83bhHn3><0+sH{T? z6~~?^z2R*^+p7t2)i~x(t>?9Ye?rIG15+`~mVsJQ$w9UV#DwgLyij7$C706S)@@0r z3!r!r5PER8=B#3%Xew&C&P`THdk|7A(YH|P&kReJ%#ur5HYlr>YoiGhvDBz2umwY#-xSu+lkl4k?hFAb~s~Ne(2~4QjfG(j#!VTupF$H+Mev15v|+&$xui1l z>6P>Vr1K=qNzi3fOtpvV`zundbD|@$_xp#!#<1uJ)PssdY()dO>K#$&2+$P5`9b!Y zCKIqd(dV&$hRkL_Nj9e-s#|LFVgq8&;;+47^>4jfnd(R;?X6b=3ag5mFM~c>0k)HZ zP2Bozu?|fgV8Rw+fSjjZm>*_bX*JF zgFQ0$U`Ha-4ln6^n0`C8fko_T47n3B87}f@+mBla5ptv@H^)2WDkEKz$seHb!z~)i zd!nFIS>~UD>Bzb^iqaF%xJEQ<~rI^ z@aH93qazbo=dxHwTUxvn`PNi>0t~P%-KZRup;91?`7*GQ+f3~VF^%bMGDs{qCG~d$ za;8k}>_&~9CMBcKcY;pBYXQwX5o?WR(0$z-?Qkk>Bea3?63!J3Cqoc(yeG-)gZLoZ~4`Lg|pMc?;`}?a7k4R6Esed}=6Sj1A5v z0RoLwa-RIc=&+c*)Vfm2gn0F6}dDdm(dxu*3TFG(&NQL3%hY&k@eFWqsN25ep) zrV;MM)Il*5UvwI-PA^`1VbYdxMA}&pnxNRBPN?|AM9y;oq)bx+%G|>{^q!$@Mm8ngb|Z#$rd?h1%P~YYy0YQRGUD~=lx*N$Z2Nx&Jp_w$Tg|xh>xF+r(Xw2A+ z@NzVdO4|*(b5!RCifEuhgj_w8NwQ(mK}W=+Ayp4mMdNhtzkh+iu55`Voni(gjglNi zQyF?FU_{JxbSkN8ut(qbD1Gc%Cf?ehJYPymais;9bnmGe6dFH0An5{81nP40=xJTF zZVnVPCo>pW#0){+L>g~Q*t&wtdSoDK73o6JK~|cln3TctIHT)+3(HFuP*hFS54xt| zSDFqC~_u}Hj-gcks%!&+O4jp$4oRf)gt#uAWcVzF?GUT;J2)c(=rPA8-e zdj$=N>Zqf_02#f#b!$(yr@hRWADfj0vf-E}@@cZ_Rzp}^{;k19BF12lD(<_a%&&?N za?z?nklFyoyY0qkK@w$f(2-Jf=_}VGP*no1yj;TzlbMClG7$?$U{L^_PK-=LmKhjs z8laoOo&_MC}FRQqtnAq3mBrcn%)hS_0oqI`P?Jo4lu>YoXkvZeeEh>CId9%M#3 z?wT7B23%ot#0s=7;cXGdScXp6#|Z#phWHoo!-O#D&FNTDXf0AEHkuW)qYza!k^xqF z4aC@Ja^VP<08a!1NdTej_e=_OJcBo3tV)2RPAiD7M5+*$upkRoH$5sXduy){HV6#W zaCzZP7@LXUQ-%8fJ%;!_T>-0!U))h}S&O$>SM%DjBJQAOBX>%;74>BPkYzRr(Vhj2 zWmVKn5iO&)e*h&CS?yqN1r3c!Nt%afN>(&DJZ(oF(D6m zFc<@IRAm!q=L)zhjLH+DS~4zAASEO71kwlu#>+-Thb1757f^jfcow6#7KJBVJ<@qhNg}lWGSmSUURg47@`%S=B9FO&??a}?0m>KQ3>p^ zDWlnvib;qk!8LqAHyvLsOQJ%eV(siW{s;@QQ?e@LqsAHFvQt2qrpVmWy4@3`1b`#FzV_3$YsLN z`H2tMnM1?LTLVnVnb6cLw~mrj2xr#QnFte;unV{M&;upq9F-hVPXV&pFn_MERn^C zlrC4M*aeR7Br?%fIl`mXEgtF)qGV-psACzZ>*KfgYz?jEg#~2YAPi-quzNv2DMF6| zh{8?dfiZRs?T}H?KBUA#{LqQQC|1S|i)1m_tgM)9TZaK%yqll+<-nwyY8R^T%92W^ z4oj1BE{1uNWOO8<&J2yVwxiddJ+Q!w~05$&Bh8GNEqV+Bx!j#@C(&MK3V<))AXdshr0xfvxW*(rf@f{?=yGB3Sx z0c40SCDVynS4t++3b!0TBz$++&*aFSV{)!+siE0F**T6H%e;d0pWYn@0?P&5@{zx7Ek(Q?7k&Uj1JHl zgpLa+4Dgf2Y?xDAnblmU<8q_Y34}94VujpDAK<85LI=dVLCn^Zto;y$Zd0`aHc(!v zwqV0=D0`T;ND*A<1$Ky-Pdjj8gS&@mT2GPI9Z|#c#FpA|7VRDBOcJIHL6JxkX@*C5 z^dedT(CNE6=hB^%6V*x-Fqj^}dc*Ug?3uuPla|FMD&x2*)GYjQEk}vHqm6r+csf6c zf6%*-90!tvNJEv4Om(qHyy9zcA_ZpPk=qG6!&JiYBcE?jk zf!oIoj~YE;FBKS$UpPXT&&#GCQD0=a+L=w@EY{AUf7i1iJJK5z31VUnq+&!p8ri+O znsST_ZY;ZEJw$v#J;f&@+I(zMda{iQtB%8}DYVIkvMXphpc7J$%n@`qk!i;Xb= zMVBlN4(d}TA~q_53B-dLsWUBho)No&E7y`z zyc%)%v|oLJ$$d9vj)MjU`@Pt+nnSxHQW!eB2I*GpV>19_acJ&VsJR5qHb7Yr z8mys<<0M2BH|R`0G&z0(F4NJco@LDyR2_qMm(k14Xa$fq9BfmIZKrJvBmzW7#A8GA zjkFmw3|3OQk=ztWI-|M>{^;srsGiG3sTi_aMuNe$LCA@(Q>O(GUnitR!V#o`iN%a~ zCZYf&Z+07SY;{80S-dd2qe-0G$zbROD9S?`k;sQlu4)b0=p(i&S~p@mYO|^MOYm;{Yokug&;N0=4hb~KeLmvqT(3< z#qCBY6+z1bRMbtmO-mY%49HmseKMuV6Emmc2Hg5t5w`$8)9RT5X-XzmxI{- zkWi64JdcJ`B5ur~WhzUWmFvLycrQKk!lc8pWICcwds0kF=8GI%m>Ze7{X;ja13#n< z9nL9+{6gEB4U<;_alj7-bfcpd!L+oY+i>43>^>^$xi7hLF8jT6OF?tLL&_E4<_|6)DrjA zGNgub?Syk2Np71U9n23Mk%UDX0vI;cZ(lYcTk8MSt)&)<5{S3!!8!AV&KM2ss9^X~I+E+|mdIsFD)#C{PmHy@gI7%m$N!M|2UlSVu> z9AOyhN2oAEATR9WpYCt5fIah2p7s|Ldm#1i%3PFGg9T5t-=7x|roo|qp z;+*rKw_q8r^)NI;lUA-qQ4u|{u?%9>=zAzOM;C&WlY_&d%+04c?(WW#3Ej*~}z3!ZfGX@75 zxC=L#7bfk2&V^yP?`Ug-J+!`FR8rjZHF=V7vUt}xL<_TwFf+CK391hxT3k10X?c%I zo6EH&xpu4x-WIAClZGn-4hlgWToI>^o0MRtPrVlq2WiQGq}z7XQ=_IfkVNy1N($y3 zg|YVJ;8H5DhDaN*adot}*axn0bigJFpsFMZ+P22uhTUV`oPc;tT`1v4f%6UcJ36`j;S%wQeYc~J@JugrpRHkK5t9iXd%)_Tm*cayX` zX=F0D253)&2#j9Z=shgqR+6+%WDea^EKYU|PbHKd?yhK%fk}J5~Z}%&sZ189|f{479XO9j3uTur#R%4lGAv zh0~;6pG(ZPsZ%n=6gXJ`5}|^8iKlWQO)6_pficLyWOVFUT){6EAgi`2l+@a7n4W>6Agg3stDF%QrH$8K zgpCoL_h6W7F9snth1XsP=ILlgO%AX%L}^fGxa~*-Mh_^%ozw{{=YB++9_*wHS?Zg6 zZ%y!sY&j^nL$jT&bSBtm1d5D*oKdX_mn^DDALJ=m|4jImxCqE_5UonnyjD?SSh%8G z#{McEYfh;Q3km74lQInIc4UUI*zd2HunEHRK%9kBbAoUgFM(4NCgP+DrBU;qNruS^ z(spqj+Q8xt%xPUCN=TYBSc5mIMO6IIT!&~gs`BbVH{6>X5&b>(zqwdaFZ(aNnOB7Mj&JuQ?y`Jg2mWB?5+L0}X)NJVU4TVsJ89K_GM>UGA zfDTYCudzk6;^YjXlU(Kq#JXY#-37Y>q^pQL4LhEk42F>+n?cm0KJi6knw_P3r&ib{ zZu7{Fn5cM4Hrgu3cGANU|3jm&$}75l64B?3Fy#F5$~xB$F=rOleu22a4da$LTpn+S zxw8R9K;*C1y@l@=f*d4KSW}Y58<2z8TAwIc+J>p(MOST7*@Yr6UPK6kYA+REw`mu% z-)j7_g5@S51IXuj**&aI{0soTi!l~2WXWctFxT_ahCpg%Q%s=QR=v z0DG3KjgB<5Nsbugxaaw3B!Zj4uY_X{K5G( zko4w=RwPVHPeZabh1*m#QPEPL`+B32aAk`Se@dZfr)e)dE$FwpbjdhCU{Zj5sK}Rj z6QoY(4q4inTzANd*@=~ee(`P;b%!h|%}`#S5l=LCw$N>Y7lojrmU)k7VCI!COyDY5 zNpx6zJw+czPxNmb+!&9$H&CH2FYBjvljuo$MYRB+4dNyxlj`BD1H6p3=T^9}Z_m8>DqvKEx5pfVDuc5!$m3wE$j3fr^e<=ZyBe3ec;Mi3zfNLe=*yZbbl0r)Ou+%pgA6?NTfO*DL&{%m*nr- z;X=k8oj|pvWGZ!#2y0B6m)KsxHWMRKNo9T230XUjFQMSD=nSf)xw=tHft51 zo9%rQMrfy8UOA99g)-*5L+HEvYe1S>t8Wsiap?`uz&DU^EjF2y^ipkI9mY{I)LjBys-zGlr#vROmjy^4!U%X>LugM;wp3_WI%E^fDXyx`-Mr3>=;%`l6PP(gw*1; zF&mkryx-^w>hlD~u*16v$V${@MYyaX>o85p$I7*}=}gjSh00VThsWVDk0^hn@=qpO zK+?1?P?L!k`A=(+& z(n7w8j)V~I>bw&m0=Fqh2HZ=|A#8M7oxovKl)Wo9A;SPOb}&lp&@epbsCW zV8o}o%L|v78P}hj2cvGM$a~4b4NMOl*Z=Uo$~b)kkXm({*@X)rGZ+@He{{gavtEP|lCKRUwrv zyH74k>1fjzrP#L{+VreJEsT>E)FSqSk=kMF;3@Dm#*|Un4Ny_*0&|o2k|uCP{Y8vZ zlz}qkjH%P6w{}fBboycW@W9;E(UYc)!>9agk&_>)X-%}ZAb=NO-rb$Vm0apo#y133 zAb8=VWeg@pvpXiGqBK2F5p3}dg@!ziq!}`y$dbNWfo4=CLuo3c1u6#&6vNv5#z%xo zKplq)_*FBFWeMforZIrW!gG*~TXI=3XbYjzCg(z!>}Z(`6#?s#na$Rr4W$&-Pioy? z9~`6@PrG3Z@i>MwDiP8Rao(pSM|0V*N!iHcgfiJ0{vg$yaB(}BNu0pm6W2vi1Y|en zIJTna9@?qxO0W-_Ye3vqC}wN)h`Vlw0@vhX0enPs6!&f#N~v}eO`9qj}y^_4Geb&~dU{H}J$L?{C*&Aka4 z6SQ(ht`%m;y9{I2Mm*-Z)XzewET)Lh+6w0}!U3AT1REWilvCL|d~t zbt8tI(o2B70NP=Dlr#%>wOYDBflOw+43s$Z?kjDcm#yaliFhFPZp@H;*Tlw7Evd`M zT%n}O%*EFX@0v7r^3=R`g{s3DA>f5q#ME&&B5n%)*l{sldKjd>kPHZ?mR+>UcBjhH|G2Dt%5nV~eFN%UZ9E3N*y&b1$hbeN8kZ73PY z38DIos|9cf4Uuf#r1Ti)S$W8{2@+y#6l80ZVG;}2bgJbu^_%<4K zFl;NU&?R_jK_PjdBEo!oo)rtXza*yRF?QcTq^Rs2b9_rtFBP_>q|e`CechBOqtKtS z&-oWlaUoQCp~z^M(i~6BC}c&Lx{|;Op;ATAvE*5MO@UMxmpf=rR$iMm3cKZn$s6RL zbvngESuyoMHaV!2)mAQ#t%&PKv$Gva-!4~H+6tbCWyZ7yn&Y@u&8Y|{hs0QaHqH*o zE$p;wF6BdVs@qhqz(jbJmAX|)Cj?pXF;h7)GBg&4b*u#+8e*_949U&7(l^V|IgRpj zAC1z4T24tzD>4Jh@~MreI-%deFfAwAlhdXwqa?CAygAaYZ0PmMhKslUwxCtI0C)kl zPQeh+Scqyo$4xOsOB95-1M{5%Y8e$Lh-e8}zV)G+l#MQ71?~IcHUx<}gW-+Gba^GA zA_U#Ti;X29LBHW_QUZ^ZkyTVUro?xAjmw*qSr#-maYb76=GNsLW3oJotI=Cas;x$A z6++dDqsW>4CyBU@-*_+m^tiqNnNlE;9_UCrT2j))MeS1;SVp3(MiL&5n+`+Xq>MyF zVzv6eAz*8e60J3V*JNF;$M8@IXhaI@Xi$*JQ?Y2JL#S++J@xod1K40;V6x~Qa=}|N zr!Uvm*S+c6wKX9vG!(mutjG{XKXM6( z7RN1MCQHoFtEskaX}6ROvsY7p#8;ClW3jhI1ntKvq^^QCHcT2LtH z1&_jED_>+&CN(>$;_AQ(ATPE>JBDZYLYE#+>~cf(RKV+|j?XAv+cgyh5VZl7WQMCc zy^ZTxmdF{=lT83ROpv&K7vD-Q@?!D($=VWzuaShPDDaj~Wj1jcsrC7$0#A{XEAy)D zW8jhaMa!5cl!Xp-F0M$OL({l$5XNWFV`H*yHsXLHAuch~*oSckZU%%DbEXbMlf9Zd zop^n}y4g;<`Wkt;1WS;Crx8YLS^<5>7g9Yb8!KoSqx}Z^MJCfux=N^ExY9Rl8A(QX zprTCbK8b8+R(G71BcrmW6TBFzU=<61f+0j3io&>3M1252e#k_SPYFuWDjy!8M~}05 zJe&wo*j#v`)CU)HgX)J?8N-VMcOKKI3;nt)QU(hVc2UXQ3jhRYJKoccvf4_f@K>}P zGz6q8xYy6sfnuO)&#X)-)yiH)kytgE(_S>)1Cx?<75N0~4z(oPg0Gkozf=IInBjr5 zSd*fQ`F}SIjFk$^Bw8y`p$WLIq}dKHAzDz}fT9VN7S3*WLVBrWDYiiQvJ)E!-V@~k zWLLVm_gRdm&2hd50iNEQpLt3q*M`p(7hoV))`8gwC|ps;DY<@|4J@aX)UE-ccD{e9 z5;6pVs_k8pLl}^}(*5Cdb?m-aq5<{-d5LSD5x!gK%1yr@k9KCHGiwNzn5I3bI5 zlE0qt7jY!<22Tj-{HwiAPKHdmggB==5gjrdce>IOrg?_;eHO!I@)-oiFQ>>cXxT>8 zXUr&gwpL-cCdM2DfiSJ|01zVFnetd$&1bDZ8qz~u9~ex|z>OP**-$=lbDttXbhUemJN?U*^*{mm?*KBC~p#x3_awEJT4qmJm zzeFszE}(j+5m{q^oWxU2nhR6uki?CEau2tBW;&I@OVu?+G&W@$VbmF^?=5mN6o%Oj zJlnUUwFcn>E~t!EkW1@kZnpvn3>8a!vqW8)W)d22CJ{B@w1vS78?Oxp74a3~YG$!O`i>5l{Nsi=y;FD6h?Pijb~RbDO3K$M?E1eB{M4np4gK`MX`qvm z9__|B8r4eLF(-QA3oPa?l2E#Ucij}CQ63V(RvqGTY<{k&1cbcsOpg{PG*)6~5oNGf z^yQU>`L-KTuAwi8M>1|i1Cv!ih;a-@8XZDfB!`xS>#eA4=iWFq9j0d6uMiTc9h4Cc zoO@Mxh}c^yX>;dTF^t!asTE^X3$L2V;{a;BV+6!0`69fz_LwXTMQ~Y| z`h0sDpEB*7!oTs!M^92-DBY4{1y>^jauk@##lJ*;^8ai*cUtb=bnYtS6}#L~hPddJ zw;(j*6E9RhLQM0rgEYh%;I*hEN{-MntKvWP&P`+HYBC8+aZwkce-2QiHVECo-$Lz@ za9MhuKF5c|6((sajw2ZPaigadoWoEHs#vlXQ`8!OW`= zY%4wp)*c%L&!yTJQE1{Ouc4H2b#U&tf`SGc>uT0vAL4BH8tDp-P0)lZ7Kv8xw`@4c z1|YK}3#x^1d-?Q=cwu@{^~cZ(J|CFvY?k|b8XAe}B59Pk_0_e<==&*A!fo}|$0x9h ze&ge_?m`M{Xf?BAW|5`i<{fcCy#FrM#;qBNs^b1Sj?!INMJYy#Y~!TqNGb~Lj7e=v z=SEQ-WYi4)b(Sgqm}R&~cb9UO0Fpz>jH^4lN=G)@FufWr?VTXhnFP-P=j$hq-hJZu zewbxfHZw!W#j-$>S1h3jp9>&H<#7jKZDMos+ji5VAX!&NLId)Oiry$VX0l3%)e#Rqr`%E`RhjffoP-AE=N zo_G2=(UgfaZjHrp8h#cvJS5UEBri{| zBXvPO_L1Ix$}(4~MQvIZeGBF_=qc3qd1Dm>3tnkdkj2j_x#_)2^^kYzuvyLc!L)=V zn+umfd)02@LUIPhqMN{#w<@2iyM1kfMEPZhB}S-zo3H_MWr72i*>ItK5rgu=oZ>Kr z(ca>+S*oO9iO87dWNw0A&dTdcm&ESMwME>aLlWecGR=8iL`t%ux(i3<2Et7``o3p< zCm3%76Jr8TIdEp|!&X;-S|y7(^RAE%7b|-Sf-I8_lj5%3 zn`v_IWgIv~WgEM~xXvrm=85z%h^Il)oJ^AQaU?Y+#$zBLntnDh70U-)cx3>LBU`*?$`Pl;(>-oq@hAL>tdddFD^l`7f=;5~Ch?~}SV>h}&Nk*DAigtk;R zmg?xt%5ic{qFta)fYecQ1v6?i+ztD~E-&#M?l?;@K@E~V>bP)(MnLIMUquY_OCcN( zLSx{;Pc`c=G69RDovplo5z2?&B^1A@|J(lSJZ^UCz%^zNOItem@uZZvx$$N4|GsD$ zl|8Wr$UTJ#d<`3|iMz(h<+*-9%BUe3!e)M}55$24<&yl&qh_G`Lq#QJR~x1$Mbu4D z3eOhQB*0J+4@|-v^aTLMiK94$F}^xCiD-j~TS#=D*ybj6-zHM3xJM+=#s)0}C}V?A z0NdHDJUGs+SZb&7+ZOybIxoG!61JsV@qq@f&!nLtVtgh#v{^elO-i;bd#vv5)E=28 zx@Ityj0^*HDL{q1d{|ZxqBKbOh}^brZsT@uPDR8bFktGd#%0Z1BEN0L)XHku1Ss1V zsChRp=gJ02W14J{bu{WAd+nxCx~HI_9lLE4y^@jLI__V{p7!I*61lW3FU;wIJ{?^W zV{MpSTwPEK8fj}oq;!hPa6m4&)Dg)~9ZB>!3|yQJ0$_;(&hkifDmY2WoggjRO!4|^(CrowOM zHpK7%w^F1~9wJ{XRJ0M8E8A2?qm2+Hamt3tG$}n5SG6_fC&^#EYYa{m!KIeoIwGFB zEgdrHDs;ePgEXkU%y<;nR~AfCIt_6Z$BB!yaTk)7go_vf2?+OH;)6oynL4JRWIJk^ zU{ndZSUgIP0q~0*IO$1>s0$c^E7GKWeYHyIe#(`o-5HOHfl8|}4zj}a5R%{kWolJG z0s>e>)&4DItbAn0;|rPt2j50K{?2e2b}BE--RFT%xpeea$WxrBor+baP8v ztP>}!-G{B=tgo36AI!wl)v)+SuGd@reHbJvwakq)A;927=8?JcvrVBGf&l zbf`K@Vz(oVC1LbnC$P8!;%O@^SqQ@8cRyU;h-_%Ur5|*1nXhf?DWb-q$(if>;UzDu zbI*x$K-(;!)*oFI&s9cNP^gh&l{$(=Cu9QUOI#WF^fImLOI+%=z=#kM%Z|%&CE6X< zcOqNl!3!=!ZoMB2t#MPWCtAVi*D zlss|y@UyOM_+SIjk9ILrNoRWle(Uw(=ub$x4jiLRsL5azprg(Bo-hf7ok!A(OmjJf zSY2CGWQMtn!ky<@FJ-{c?~(5dn{^~p)n8aP*PyxTsp}@f?wASKTwB!*^^TRY-$ zJ|WbKtLh;1T8#`^iEG`+%W%w*>sIQpOOv`HBgPxi2kQHY`8z+* zhy$HQ7%%~NwzU#bmNWPSDW6}s`fFquV8lOT0PLaZQe(rj&y5x>C^Ri=!RTFrj= z0xJ&EsLxH=aY;6tEKx+dB)wD~N^|L;NlDXQRwXDT-%#?1IYnWFg-|_uN^gwMfXd0n zMG`V6I@~ZRu6elr1_4YOjI=av5s2zy%HWF-9BF%eii4}VDdDwNC2h@1FEwTt5-7g% zLt7T0&RppWY)bl8Y?u_+3Xu|li#sL?kq4+gFv)KSF=B-z6c{S3PVzFH?cUG;Glljd zlUBL|2ef(E7}*Mmx{y@|D4lk(WPL0dW=PlBa!M4=;SW1>M^9TJ)R{JIN-V4(=x4+9 zv~kIP>t?)?aIxdaF&Bmcq9w)E+)|9aD|BzYFnPHqBXR*A)f02vDx%`4&|UZ+++lcz z2~or>0y zA((hlLS9G_#qS`_aN#6QQcAE6u2JE==knK90o3Fbf@K~QLoy5w7On0XoHBP|qe%D$ z)a_IX3mi*e_tA!%>xgy0q^WkJZ61UqDTu4Xs&q82NlCW_u03Pg5M@#VcVrjYg`UrY z)c@bgJl@*2$96zBrWh*A9vIgTieNpL(K+(UOsz*GabvsO2|gkU{W_V5<~kAit~GEQ zn8qe3QJ_p;RG^($PKwrE!9nfbjqqdkVx*RR;RR^~C)-nB({@{7UAwS!0WGGhsCRSA zflkSKaOki)@T`MiHSaq!IH7#Q#lo%ngaow;T+xD?7=}jiwRv?%IBnMk+xfvS*KZek zs3@$`z84s;L~7KMhC*qzsd?QhTj6ARPFlIZGF?U}5`jUvhw#%>)l{&XLec=cZFImv zG6*{*!(gv?&txmThQ&RyL3;7r-(0Hi-!L+q4i6Y+o;cgsY=6Q)f82n5E6NorB;PLi zjl-c$N;);$+wgN-gNpB{WbJczdisjM(qX;F#UiG?+xq)kA{mykcZ_N!i^jZaYgL3n z_vZ89N;I5bi|vQDc=S(xVdi+^k257#60~L8Lhgj%1CB$f&uWPV z(lC;r3gf?Ye=M}}RVzzkAukgmXh1Ug8ZFILv`vPq*xwJ-VyfD%cCNPhnp?;0q;$_s zlnoJ(U8V$BOdu6XeKQUxtMnN*cL7aU6m8co7PzvBGh!KZGm1#zs5OGo7zvmRoAyBB z6gZCAP^iIVZ93dSBKlxSm`QDReSxpAvUTN?8c*gvh&H zVxqEOgG~KKRFA8SRF~yW({%4Lndt2RgYwXBKD^BHK%s6vygZcGDx^9>yc0so?b^?L zc=?1-ci&weTJYUvZ^e?|UB)yM?MK2W`Cr_$NhIp0ZVof0`-O1f1M(x?yJO&%a-fr@gcY@z_hcTzx(;^@7~{^{qgpv&He9nn|T4Z z0OAuk4+`(Y1OyawiFduf|HK&*pkC6~G8@YD?)G}bvlESaxE(3@L5!B*{pkISQlD*Dq{X5LzHa%?VXZFzDYF`vTJK=3_jl1u)JK9$?!1M#`b_Q!Oq~DE|&WYdx@T zDh}^=@XfNolSs^LiZs`fdc*euxEdgrL3>;m#FcQ7mzfVa|Ea0x(G++-e}yQV>vtc{ zKL5D=U-9W~KON|xj}I0@5jXIr>)~?u{R!uLU>bM=nLXUS53}!ce`AZc8R!yABNCn! zb4>9R~d|)*p^7Wxs@R zt_#*Z8sDBV?o4&K`1JPshj%DA78^L^Na|2}oytoUfOYj9 zHjK^+USHaX+P3)(|772SrRke+dU-ZEC^Ywhpu)(;YKjq;Fe;_%K#T=L(tngU-<-cG zY+Yh)SrQbMiZTb;a>Pi}EKYsIT zdf1@C`!C_x<-q?TryDA(fW6J`YGKUli>;7i=bE!1Ixq|$Z*&dWu~nKu^S_VNB`zPl z8bNp)FIzz#s>g7>Zu7~lQIg`B89T}6O=PA5HEr->+g)BGA^BsMWgkHK4q|dXU6rcJz~Xpin8rn4 zn)T`q+Xt~L9UmH~VxhtS!H0be%7BZ_^jhmh<*_YXf=B^{s~7u=D~ks=2jW}9tiWlA zQ9E(nh&)^BXZI5uoPMtEnp8rLubYGc6*~*0kq8eN>p2`$UtsFaM z6FS9>bf|Qs&4b>}nZI``ZW`QVDzZs66@Tb)yrt*&unCB~$6%6YNGECYt?_Git~R0+ zhQBEH$pmX@uIf33p6RzRMy(){OyL}~p1y(g?p&cp1J@-NSH7ingKm?4XjDO##7ZHd znTW1^R@vXa>*XW{UrbcHJcp)kYpHVMHxQpKkWv&G`a>l5QDVh?0qOE5-%hxXLC-he zd?jv}A^yOd|AymNUhqHaLvN7u8D*duu!R7yf9%0Xq1%5j=sk`$1=IhnXEOG$_p$a& z3cU8rJP?D?YXM{c{}Cgcnlbrc-89+hqi&iTa|gML0@Hcq0hR`pk-521PQ$`u|J)uK zEy0cVgd0zI==Bw+3Frubc$>sVxC5ldh&J%Gau64x3@VO?(Zip9`gH&MUyT^_PehLU z6v0jj_3M#SGRgdS8pP9I`5lP)XDs#KdC%<)vRa)V*~^rb_}~BV?)|;E`2GIF{rwO7 zpWpqj`~8FQFUEa}J2wNVj)(c7fYWQ)^A@Hls8$b_%t-mMqJoAf0D9#VOpm7yPML#y z80Kl;Q>=+qBeUy{PUe7+pzdlq=u=Q&8kCQd51V-CqGDc!(LCi)cR#kUvL93OkajM$ zV_48|5t&7(#H#xVWW4A#LY+k>sB9a?t0cvS!dFD$O|=0*dnm{*a{dOR>e?TT*g5~g zmODq(!Zb2b@35XZ=UkdPP147`I3Rxk1vH>1iIotF#55czjnjY?t{{JxSIA0cmWr}v z#r3!wglW5bHBmLP0xN4)vwCeJRd3|+g4-yTk$e%)tKyjX?MGk&L>KJGFLjy=)KfSL z-8Z)tz~7*zK?XcNq$Y5i(agPyxJs$irPeXE^=4z1n0Vie|98A9%a{rJeYn0r z*f+F+<1Pm4LUjvV6n5Nkg=&u~`t3k`K3#^0V83YA87sBgwy2w>j$pG#J9(^$eyqp1$f{bU{-0%^E5olrZ!y6sG9 zhNx?3+mZ27`NXJ`$8UX(*;y>wwXci9i!u3}Qir+RkG%~Qxn_it0rgsEt$d#*zXyAw z1A~w7(A8pY%c_nH)+qQG<Lh2g3DBk%MaeNVMV51UI6G&7>HFa$CAVDY z-neqW4YyZzT9}L#Ui99vIE}hU{ElgI!}(wrEsKyOavdVZu%g0_F}eqC zs+o<)lig~JWPo%DvHxxj3prI56;FFRQ)OxHlTins@5f2M4j!jYKMlpOC_D<>U)CqQ zUeNjhqax}N^_66A@d94^{o99!Pw#&B`QaY%{6}x!|NGm&{)_^+?@{>{x{se9-afqh zeq?Q&w&W-P58mUyJpa-Dv(veS<%raf2tl ze4pwS#e5JwxR-C5wNKQg1F_MCoAyY@BwCtUy8=uxy_tZb;j2wssq!AxWQcXTd;7=x z+njFiK+ zx8V+fZBq_iFcM~L^~rO~Yg4L$p8U7zgBgh@teu~O`alZ*dE`0Aejgc)6uU0Ii`jqq zUoGzOo8OEelu$qt&wc@8`1$!PEKnp%Xg`mA%caR(JlFNb36j{aX{loP015&ZS|M>O? zpCw&~qKcumFvLLhTCl2witc96HU%H!K>!n4ImknH_NQorRQag}H5HFh9|}qYJWcGI3$>LsnlR?;rb+IG(*(YsWMO~lKpD1&MG0ro^MaiwKER6 zL`CgqrsPm~z>jsL*Q5*DCBBD5hctQVyIPpOOqUEr4;zjPtakTQP<{fUrMDB))ew~h$Xo|vCmq0A+)W4A3Mi1cA$g^b{WJpVP@wVoPYqSGdYkM z^FS>TGBckc1O@(ATBrg!yWO^lpe#%XdmMXk(Cw}ZvgxuRAwp4)AM+{P=N#DT4jgU$ ztx+2)p~3(fdzCy5ba691L%k`o|A3a9tIH1$_n$tzeQ(my6=YAnmfLS}4czam%Sayc z0k)C{?$FN5L5hoAqTM|`uqM!Q8%#mk3gCA|sT;Spwkd)#7?N z%I(ed64@GA%=zpM%D`^U*VJIZ-AyAjbJ@hFAX*xsxNe0XpI_`;!@xRJHg{&{Gyh$r z_U5FLjCoS^9W;z6ti8U>ED7Nhyo2O_jKy_sIEE*8rxRyZrWn5S$A(x@U|P!Z|M zFbJ06d2RawN*a6*81X=qrN~bRX#_wKijRVG4AZYT;$BQ=^Zy^B2)M%{;wM}?@P$O; zwd!#UinNH3aMr7=P0H|Ifxa>b#Q5{a_fT%WzxU97Sgy`5ykY`R7HJxsnUO@>e%KsR zROVJ)CCdBVu;~g@*Tdm+!TwjI}OFD3j8+SGZJ9OGndmj{E(~m;0qD z2amPKOF(QL0!gz_6#P+Fa#5u$!UnLLXKBZU?bB|31YOV!An6xetDD22ow%pPik3}RR2bZ!OXY%P-r-Dg(*iY$e9#dT`Z8ohZ3%k^=&MWqf{?Cw-*-@^ zOEj%A{I4vnGlzrX6$lgAcf>^MUCCEsBB2S}GDV~NM&KPOMNOV!rY3<&8dZGf+f;}m zUp58r8tb!Mcp7jvHcuOAYs{!YPT7(1c$@>C3ls{$xu)SCC*1ImrA!D|Q{d<5tkQ@uu65FLBcJWe*1Zw&?KO5E%TZV;=A8$w- zDsgOrl!K;T(5`XU4lD;lJG+iY;KSri zvOyp`%E6A>ransVu%&XBD=igk5!~Wjy3+mynz2VYx!oe*U-ThEQ6prCfe!k=H6CQw zJhNBR5`3Gay8#z|@_4ST^Ca z-i~WP>db8{t+T?kTAf-U)>O!9_tku{Eh9oaR$=9%MIX;LFT0*U{OAg6y3@tn$tlU0 zPIb8BxMUZ^w36BG4H0z_WvjQ4InTB>)scG(XNG0c)~`cg!6bi$H^ff1C9tvYg4xUFano#2r?;L%t>IJnyx;-O1o$rm>0 zutEbf$O^p%qF7F?;!S*rpT@={J=njl+WFNnXe`38icPh+esG-=SoZ+Q;JwCj9#9$$ zcQC}CT%*RPh9H|uT7`K}Mtc z0RvFqX08PF&0A{WT)JYDo{JYCQ)erL^3KmMh{{W9+)!08lG2iRBbC(^oF0%C7+r0u zOvUX~#2Y?6$jH5fYzKYdB~n3Ny`iC8Bu%(L=@EOZTp=49WTDRuJ+p{UC~M(CwJbly zmf)NR$acg)RqEzN7rV*9u5NehTVy4--Fb%f?O$DO$EHZ3yCf^$!McN4qBkm8;TI#R zQRGX>x<(bC;mz0Ft2-39fDyYT{YKCexa{yS3%NgvAq4k#2Gt<)1NnuS7JpUSg|=4z z?ar@kL5uD*Vi0=s2=MI9db-^P<#4BZ=jx-SSr&o{m+ZtH*?#2Ipt9k3cZqqsT!Aod zFP95W_;z)5ONn2z_js2lwIJMlca8iDuV757h|G}KaGyG(POe>NrU+0ot3dIfvUUEi z$Ha85YN$3OPQG+_jhn=mBloGu@W+gOSVjtAUDn>GuVl`2oMa)TU+S|m-;*VGYv|P9Q3tU9ON#M7NNQ)dCtlPt15=pNZ-S-xQ|K z+jZ%k7!B%W3rx$v@yOQ@is^3m7N+jpz!=RON7U1b@CuxDHapXN5aKddxGg8LoQBos zU*!eRSu%g=x;~4#zZ1l8)vd3kzaEM+pm3bO#^zg}9(c zZh9;*NbBsW$htr{97x0H#W!Q;}?ctxG@UEo>c|(IddAkLbj#V z3`#{12OP+!w?;Og*r5KM_2V4>r@ZA6H9)8@0oTQn?hb#*&cHr$0iKuE$ZbIX5O_)NV z5pF_H-Azb7vQ{#^znic|4M>4rs9*zy$rLJVXIm)r^fHw#&tU}2L|!}%Z{5w-pYDIY zNADDI95>;y)Hc8}~d$ zD&g~mEX>o*4AR|e)No}|l2WY&5mQ(#`sw->J4u@BMTOS=<=may<)WqCQ}*TJ;pXFq z?Zd~PgiuZ_>E04K*Qx_Y{|GIv279FWW&jAE@Q=^;CBl(9{%e z&@MoJzf_b79j-ZY^qww5TH>vQ>C7 z5$|CvlKV+DL8I=SMUptXh63|?Dst$*{k>but&6OXz?aB?`L9neH};pi4O0k3Z$(F= zy6#<2%9nne^QC7ee%xa`^*@f>)@OZU!pA*|-yXf`F%*X=R8KnW_M2xXHqXZ8PO_?n zTNGx;Bm#7B#Xtw`MGu{5%b%c{2DdkklMR79b z4K2JjXrs8s)@Cpjv@&0pU)VATXh7DC|4zTDniK!39v z@I**jUT-)9%Wc0(55`*}J;#4~zKqYwNUp-0HHGzX;h9b+%{(zRrBl?J+r_K}k;x!+ zrgkZE%s!I~RB34{u~%3V^JFsm#rt2FuGnqe$EMhgmU@eD7;88l^fxasy>#FNJqXWxzll}BL>_X> z?}F?ZQEMV=kBFdLu&TJ7G|7-P$tHq@^cQo2^8r#OO(pO&Oxg&?D^vog8&`0N&MhKa z6akO;NAW`T18T|wgE1Rga@Q6QfPHq?>o0a$AsvwNHw-*w3dhAqo&fM;cf&qyW{JZu zKo?i0J=&+WZXE79fA!^8vdVfWhD9*r&f(TFv3HA0nrPS(Oje{tE zB0ods8Zt6YNt3pFkfXSg9MY0V|Ma-bR!#%^DbVN({8ulDhcRvI6 zH5(ChE8bQg;Gu6*%p(N>^K?zgQ|mYE;9sGm9n}>VrneqMkO9)X;klOlc^=8GWnQqt zVjhG&2RT(F%a!9Gi;PFTKI7t}Sq4|U<&f8in$f6FAT6^!<5-e{=kV}`?l+#voJ?CD zj{Awz(7?pMVwrOuCIlHjR<0f3&GcrAoR6tqJD6qugB7eV+Q$~oo;z4 ziAtPLveORK9Mfz_>*MOK=K|4y)LBz%8X2e*16}iKXQ8uQL$b*3HSlO7{c(b|v{n>v=+ahsyNSFClFSlcxp zzlj8O?p|l!wE65b0v3y2OKOLdgPo8r*4k7SoJQZv8|DOUn>svtgC_=QVr}S%p+xhY zDkX@8`%a2r9Y+ugKc@N>XD^fiMYGcBr;((=C0n$vRvUG@ZXKW=ld*2k0jdMk4Wf4h z1ZhFg?6k<>DW+9EkB(D84(I@h&#|LZ3fw*~C>0SM*Xt&N$TOB?L|~d7m_FPwu(REI zU|)04Vv}o&TdbxcOhD+BD$Kd;TvRjdX5v81%IXRf9EADZ?Yj8TvY~-u3oLI`0L^L* z{KZox{D|xynNE=yR-(lzGNN%BhrJ{BY#J-7)Q=8Mv`fNCWJq*>94_aN-&4U^PD z(xR(GETbJlw;V=w;&S+`Z@QWy&T@t6Nt$>+G2sPfnl1AJ)63nA3v*MufjdAwP*tjc zNa?Y%Lh-%j?oIHPa_o5o?s!!~l_n?*&|se($s(yRwz?9YSc-x60z`*;w|cROjBfun zGMp`_uIWMk*!V#C6G5f)-@CnyJsa*FRxpb-h-!)vFQX}YqV&%w*nz_8%NtZk_mRTC z+diYI$Kx-jI&ipy-%XCis+`G5gQ~E@1PC320Qvs4ggR&EJ2-N)jtExI9M)YAi83m7 zh@kgFofSI>C7QcI`~JoJpy3XtC@d)#fV|n4nYJzGf^jbDB~kNg%P1!gk9mP~Hpugb zJq;&A2!u!*!6XmNCh<3W4nTH?hzckr^l7`4APtLzzBf)5K{wbs+fh2W{XXhq#NV;Fdu&BZ zQ>1SN^SWD(3uo)-yaDN(gqb|6%OEFFU^aZVcOln3=T3fd)i&4(E9D29VNNm2#pn=&At!ksSydXWQdvdBxz#M#wY2R zW8W1UWRRbv#>c108fua1{8HLNd6N|R)$c2?J*nmarrc#oXUZGxnvJUvne$6G6cyqY z6D~TFz?w^A1`w6$MVN4LbVR#{gt(VrNx-6?4p#JXkRBt%k;0Viqf~%MqYGxsb?v2T zXA~HL)@P_?XIuP!HQ&HBV7>!0ISAR!u?SuWm;V5Tvl6ael*Gzm9@jHUaSFE>9V>;k zWF$Z#LsF1$i7^XHDXSsF)a$X*~PzGlqiPNa6g4Pfx7D74U~8BF60k9toCmtv1XQb8m5G?-P+;=AmCuBzh{!hTXt3t4O$iU6o@T;J z_xLp++cx0Lf&V3!4X4zoK;2;JC=^4MlonYg;eqVI^;JzYAaIv|tm6KJe_wXM& zN1ojS_-Fu%hWmGD;wVsjLFpa_1Yicm8IfWn?!%UPP*Q)Yc&&f5>1_AP_( z!-KlHsNS(uq>DnLum?KjV63fG!*)Ya6heLf@x$+tY45>4#>{hru0#RS!cd>GMu}+T z2iyH+@ow?ak}J&4kzAo%OM4z0D^C`v`u|ZDd_L}f$LMM|J!W*JA04&m=eO%Cq*g_~ zEYyK7B^!Y0C%Dv!V(Lzph(v@qc~GqhX3C`CtW7DLIYZ@$(Lso$b|Cvg0Q|QWTpP%p zbGsS~>3ZOy!eo~2AH(o3_}J+`M}daGCWCs10@ISWEcIkacz0IZwO$pi*j~i>f@MUO zRkOh6%XK&&DL42<1*R_w=?YRGvq$g|iAU)|bqh8QRLcq#9p7}LH#zEmgPHs=zDd5Gz7W$nx3^vZfX}E;vB6$8MnWoW7n6;P!4?uWH7q z1>Mb{UZ(ffhv1 zp)T9oGthVY04n6J&JYq|UrD|hui#Xk!B6G8;W++o(Z4Z~lWVLnkcq#XE{FP0hPjin;~Ws!cd@>iZ{18Dd`3ZHx{8oPu0Z(z5RYdsg8EHCy&7Bp#7V8*_wKv zq+Qu`s*3+?IzwqAapFM-A5pa^z1-P3Ns_evMcGm|CALJ}p=fBTIGLos3JD!GtqNa4 z-rDToSHRBRDA0uwOUHF&K+>U|;6!84#pA8tEeV17klqDho4OT_en>v(_!JJhCJ%8v23+ z)D7IWR#*uyLXcfSIG5N3x|GN_R637K=5#zN9(L}B#G5*jx#^g5MZ)G#^BXX7$W+xl zW*zV?TQhCAGCc>t;zhx=wi8t;Q0h{qYhgLA2Uj;h>YP&N&;x|0`-PEDIlS*)Z(ep* zhznd{dI-f}N@v?UoElGJ$5=TB%Cjvv4Z16MT#mDxpxqRlSxxoWGA2&t)#97`7) zZY}(5csjLp>&+`s+zf3|&gkE~WWQ&@#qq|jY_(IJ}U38Y`st1SuRz|DJJnET<7r{N_(kyyLM=5@_$H9<=iZS12hwOmyfpwNFZMrGGgt3>vg?H~9WoFUJcY>e}!D)hn|u zzpKe?VWqng(%r&>iz}Y5jC;uxNLbDJsBLPx1E*CZ+c09&siybs9DI#Axw$XyGt*C^ zcI@W$V!1#$OXwX!bU2|;14%xt!bom7+W>>;r!a!3j2si4;@EHATqsUG!$jlfp*uBx zstukr$m;bg)Pl{6y6E;{L%3rYDM= zuPMBb3$)#RS5jPKkqiY!$VLHbO~FcC;xHak=kO_$$JYc~Y0o6wUC zX+zrYvV%dVTADhDI)mV5B<^{WbqQ-thfKq6)fXfJS<)39OLGRiVwRE)w#X2ToWuvj z91e&j+Bd=$>u}01;oQe(A&W|Cjmh;H12}yJf%NUS*i%=85 z*GOjR#yu~sP#>7$U`}!z%t>9i0k`G@*`Zh~sFvVWym4{3GKJh=EOvl20%1YVV%{}# zw=i{2qR}O(%a~2JeynksV8-v1NW=h>Mxlu=u3@Nw7TiyCUW6a`0q@iv zOgq^$cF@Xdwq$0nKIlcl4O}5cs9x1FYUw>Mu@~YP^EtY1rrg2Z9Ux7;b}(r~E++r^ z2{*wxIGb)}Mvt!X_$_6R(d&wAnGqlNVa;DCCb>3!C!&vK-*P=%!VO(e!N_jw)WpdO zrcZF|({K*E3e>2LDMd^-toP=9n2uBjs2e;;32e|W{_qR?5Vu1Pnhpyry=}4?9r4lf zR*Ad;M6>2#!J>80(A51HtSLDfY&;NOgQ+46A0&*f@GP^DR5YJ1YMSS81xFSK=rY8t z-A$J?{1Q|lFPku1XoNCPr$2RIw3m!bk9B|fb~sF)MA;B~s*T%CP)J<1Jz zT^Y+jC5<**1)8+o^~q#0_9}v$A}b>3lcgX+kRVK!w1VLN( zW|yam@U$=(VHQ>DbC^U&QQh%sq1_w}-^+o-!thcNRod0!1~Lxg(@UL2TViqz>zVxH za0r;p$ZeFm#1tpDvQv~aN1=Xj;n5WiCNl99R(-6#yEgUZbQr*5ng+ck=M6|}?~FaP z(}lCgZ;3m**XRxd5C5tA_%CbHh1rrafXr*735*uf&qQj(E_c-d`U&J3XI;N0G0kib zX8X~I`NUOM(XxSKUoK35n@qGZORK=)3I_p**%9#>$?Msfzf#e`1a|kwP6DlYrh+mf zhipag^=f&Ms|$t;B)UG$BP1w0Sgob)E7lWQ&*5{K(ucqVcA$%<($J;Jtu|^?EtwEY zC`tL8^Vk+j>g;$}LRT)< zSPD$vBw2y(YFAD9*mSvkx+g*z)|VQc4BvIV$al}60=dBSbe_5`GYD+2w>@{z0#Mf~ zt2xR^*rA%)+>K>~Kwwo1D2ffc37UD>+G^Z&glZrl9dUJxNXI{pp}jn*Exk8dJeI0V6s)b!%bjp3bSUT=2NL$fvhn)wJ<_^FJd6&-UZzPv75D zWh69<*rl7DyGP-gQr2&=FVBE52fm_!(ymx+=5u;AGINlr*c{=xzAeEG+qr6faIOnX zFX*1oM&9lLb<6gzKkwds|3}s^Tb?1I8J!9=^`X-kfa^xZc+@i5)&xCBCA8fJ={-DER9&(;@Ugkn6lM{a;}->y;#l0iKsxX@#64lPv^i5@E~JF^XzMWpp#yqPc*?5 zpN~tJd`c)fFwmXfrs~=13pQP-V#o?y%*^tCb5v$XHyIuH7^2n!g+YOQqLaFm3Lg|w(S)yj;XdL#={*+GDbcfSR|m_wur6Q zFz_ta-;AGbu-QGBYj*VgSEKJo|MX8IgmH-mM>z2FhAwtMzC~#}fDJIB*R+MmUWgZD zB!GEx*w&&04*`};29kQ~>D2+19l-4}y}LcMT?8tf!D-W85(04Hbm*)G5jHf4LO@j8 z?WWhr7pLUjGi-(S5~7W!C^k@;CC|T9nWdDF$@PfR1QdT5CwxvL`)AQz+$ot*&cJ?v zPYKZFetWxKBQg!4PT^WiDNsu3Zh@=@!yl-i<;T&}Q>61q^e92~Ii;-nODh(cC>Uo1 zQzJa#Qs7Zs(1GFFF~|v+BV~PsKch<$VFea$0G8pC-O1@F_1w^uaCJQCQP(EM;;lV~EJswK#XmWH4+#{h11)>Qgraj; zgs`>g>PO0h7>?Y~s3qt{vA0&^-vQ|rq#Kf5Sxi7Xh}0zc1~ZPrgGX6t+wgD@m0{Mx zDUM54S|n$1n~3_#q$^<;w~A}5DvLhs2^ZPU{VHhs5>PQ4wWpY0cqb2sP#k5YPElTOPH(f zw}-uWrFrr^M~o5N-fq{|*nGf5rKvd~R)LAYS@h%#f{WwkDmEG4j@m{CxPSqu?><)y zWXzI?Qq`WDI$v4H46ugH@?C-Oo%=%r~wCAxeC+`Rap_`7r{Q;s6w(R8jsvVH*;OB?${P; zxu&HNb7frXdN@XKhU0@6L23HH4uBt@>wMCD%Z8q0GJ`y@Cv!=7uFjqqToWiu(E=%M zYiozXLz)xQ;)E(HT6*@Z7nZcWnXYl5n52oz8+iATes%IA!-5^RXz4|5QY(5lAXva{ zBG@&-Hrh)|W{ARP7I=MGSxkFdY1+7`VsiTdU@*YeKbbdkQyGQoMO#M`q#OEB96AtKTs(3a zWvp2cV`ge)x58TkeBnQk9`65Q4mer^$XFb+UYHR*le{u_&*Ob*lrDSOuEAL|ThS|v zge&QNtlC9w*7Yw&s{X1i3QX%@WR|pR2YPb3ytpjoAwf2F@5A zH*AvdlHKjwGwZX62%tiPdBNh*lL!_#g5XF`3R#+AOZXG0*x4&PHx*p><{5NAXPYPr zWQ{swPA^@bAFT=xrFFb7utQd8o9HI8N6*d)d4?}#`|EVl=W2VH`07){)I(L0A(=O6 z)j1+7>1>iu4+u)SxY|7f?MEo;{PkLCGsnjh#Zf?kVV(j$?Un25K(a6t{$a30`RwP^ zVMHU;1NI*b2rp^9{vC<*P4uebUo}j8~Jn;f)FHChbn@zS2YB36NjiV%xZ|O*; z(n)Re>;x)VOb3OttDUqkSF0%kpA}y@>I0V7*Yoq`6p7NUiwOa?k-DT=8$Uq)9o5r- z)89$5Qj@J%wiUAMw^-1aQ{Q14VSx196$`h6!q(6oC$}yW8vo;G(;M2zd=&W^hS*mmzw2>-d@sU<<#S-G1p zmf73x(KlCas^=ilfc&isWMqZ2gJDA>(aD|<-&pXC2i#q{Aj49jpcxwxE=@nOhzoXf*Sgf;)PSO|}8C48d2$QfQ4|J%bbS}gnIHB8u z#^MZ@UoS~1Lk<}f2`kXIpf>M|?CzD$m-%%iLn#nA=_oy2w4Z6TiR@GZRvY#kFxQkj zV6O=~kBKP7j^q{WN_)O}{-pIv(GUM*&C-1nzUmz(Rd z;y{lsWnt_nm8Q0;VQC@asA1(AF7pO41PX0e7vm>@7Qntk)GlY~HFYe$}nFD9qh-YGXl z=PolXghLU;JvwBy^oDe$(?L_IDf0S*HAR~CE(ju1ti1<**-I0oI}Tj_cZ(^XGZ$09}f70%@(JoP0@k?xjnO-l%)n zLsq&Dj;q^6$viRcb)XWT5XVxfYKb-o6XdyZJerDEVeu zRn-sVb$Yz*w&Ug@`MMrJG>^y_l(fE@&)3lF5zV*TYOsrL7N+x)&{(%QCE0MM*~k|( z&%O#u-W0-bG09-_DK~))%4%0%aD%%In2-r7Q78TIzHI^N%M)%4 z@y!R_H)TZ!yAgasO|TOa6*o0N_3ye2QgSMxJdR-p9UcozkKxg#GdZ*#6A@T6nCfQY zq}AAkiJJwr1t1$}`$NZbBs~x6HYYWLF8$I@F@8%~K2l8&8st8IHTvZ*!S?rW_^)`V zsn=OE(rzGkOBj83hLckbKn7t`}THKrwUvH9*Xh$cyA z(@h40uI~lrO9M#^?p2Rz!4LGnP_NFR%tMclxlmJd?e?C)R1XC5AGz18LoR5H`+k#Sz+mym8oM=L??9j5m=wNLPdZ(VFI z;7uZdp3<)ilG2fk6zYW2Q@|6etL0B?(!>zab1qShXnA!7%C(W%3>oX%VtPWU&egc@ zf^40do-kfGA>?5pue=44kt3fLhdwFXJk(l5MNa`dR|)vVMt1i(M{Twxtk-GD3Xk zE^kz3REdQf5Syp6?OC_Ou**ib!wU>@WpO&&jOVuq`veP2R9ZBi+@%8me{J;~1qpuK zwRCKbin53J(_=~GcEBY!3oO(lw%|n-5Mqy`H_bXYBdCa(^k8p7*^&KY%F@*>s_v;4 zc67Q~?djfZ)nTG5_@029?{gxc?#DnkhO%A2u!(V#W`wL9NwfBiTUWXVr-kX@a1mP} zmYR~}b)0~@A+fpUGmKr6H2_pu@C%_7x&?tY1c>a@&~ih4YXw~vOVkF164NSupN|g1 zY&eFplM9xJ8mK2iypGE6t!rrA|GHG-AStl)2lh0>Hj}`LmWwYw8?IBRNIiUdxGCrt z+jg*r`b!73$OYD&z!EayC&)ySp3=ul^!)ugpSU5bd<-2K8|gbbp~pk~wc*MJDhZn> zQ?X6uhs!N=m#l7B1zLV+3aXH|*r8TaZSFSXr#7F?-we)Yf$3p}azv?!L#cnK$)MT{ zWM$PE>BC}w(RpX$JEkPXD96d;AhIu!=qoXSl%H<%tZgUV+EpOwzS9ve6v!ACHS7wB zacjG}npFy7t(=p{jG`L>AW|+J7668N=rf4|DxWMTklOTtn0?dOa4ZqW#hh=ie)!?t z$I11_5APm6e#*styaV!29_sR>n(n}CPhT^4YUk2^A3-~PXF^Fw! zd11jp#S+2JiCx>0!#?Ndwq@OvoG6qIhy1~7u`hhp_;{??%+In_PnV3Wdo`c!AUe@r z$c2!azMv2)4g1~v)MMKsb@!Jf?SURbU?scY7~3Hw8puV8T%OC86 z`}uWG573bw%s5atG4vQo&1MB^_z9agVwU3yqO%kCO)_B)d8-OKGhJhGU1Dd0dSHOD z^}XTh*kqU~$ck?9w6Oq*EGL++8V6%;$-U=yL1J{w4$Vb?XjEA=>~98!SrR(8`^#0I zPNnhR`kRyS)zx?CNp!?zj`){~bw?FA5b{#{nFtg4v&TlWB7e4J2tzKfu>}nlzAI=U zmnDNW8N&bZh^`#o0qTaBQi%E2>tRi_czxrCzh2pWsBG=C3kZsSCnYc)K%+Mxrd!uAF1M#M_7ObiAvnQ5eP&eaQ z%`_+ea&u4ZYL)a|0jke-@qAEwQDEwBlnf(?YCN2U#G$*94qQVq&G#LNa;N$cZoEwH zQ5tt>UflnoG%I!~uI3|~DAyxfCe2jP1C-b*^_;DCmn_rMl=~>qwmxMZoN>?Kl*;aY zYMf`9fYe7rOCXb8AkaSIW0m^ocA?_N&`*Np%CHX5rn1m>`L>`lN)H~-&rzouzPXUp z745fuc>D1A=l#jc&u>3H+<*Fc@%jDxQ2|rT23zx5G9zuD$v%xFd~ z`24n6kA5S`E;94QX~S!01gLg4RZ-V_Pn`p#&YVvxks}GM7Sf5T^jGWiZIpxJ zZ;hLz3ko#wA^0O&_*f4H&(%PzOEPadRy+Sp+|-^U+Dq$J%CT3HG&oC z<^tNOEu8V7D0rob9Jmht2Qe+v_rL$Ry?=lI{R4IpvQ$jR$X&wgR~IX=F_2*B(8TLl z0c!S;foF4rk9hm=@af&}K0n;=_ss780mR_p^QRABh1{#iYwxwZoDg7vXv>jtVs?b8 zC6(f@z2x%|uDOS~V)N3~CN9<$&% zu2I6)tg(wwDnRO{YN7hxvSn%W^~qM3Q9O-hmKdxUO+ z;-%e^J7@sBV8z^~t-nYHl%dvIgfk5_wKdeHgi+zV%F7Yn%Ty8Y@ZKRkiJq!4xS6PN zPsfqPXvGoXP{6U$^gOS|dND4c?cQVns^9Fp(-+Ovqde-; zc7}1lVf4Wn(zjtNt(NeJ!gpCEOMf?a*dRJI6e31{SU~w(Xh5D; z@`gb}L1nu~B|vdMrF5RO9t{0kKT`IJq{Al3Hm=ZlqLZU>zC7$`YilF3uL~?LC;RG0 ztL_fh+S97|&k$HPn6g9#-lUFBqo7@AZi4QPRUh%m#U4imhNyQG)m zX9BA*{hHzTePqCIeltUQ-f-*$_m?xuS3d>1vRtbqGZptMVgVWyB`Y!qN6I#tB}1>e>DoU-&f4a_Fa4d->g+#yiP$pJ zsD7XTZz$TJ32SP=8($4?hQSOZboPbu8FPEL!M|G7&NY2ZW)j?`!`X@AxXX%chb;;! z%hmxGl!~(HTU%W+E1DQX@LdgB1F9=$Iwxqx2Nt@(9I4`XSh~&wl|BaH`ch~SR16YM z5E4Y$W-&;#bzJBLFHQt+GF^eIDNGl{Q&frRMGlP0_K7aM>#i;az4Su=@i;No4kKSS{V99b^2K0vZ z0^jQv!%1YZ;JOv|d%yzKra`FLb1Tic)3dq2bd6geWj#W4`|Fv2ng*S`m(UMvU&6m1 zT=Lc%dR%BY0EUVf=+_K`)>Mx+A=vi2`JFZ*Du;Fx#GlPs{j>)2(q|R_$)(3a(x;o* zW!ckU6S@omCywq_0_p30KTEgVld>WsZL+kfzweuOoIO}XUfQCmtoK| z1C+l?J25+Qs;57_F+-W#?r#s0Nb)2dC@91gN*Fd2b5u!g57u~Xb$NO5JlXq=o=LD_ zLu~>obPdBDe2S4uZ~Wrfv+@1}Zcar~(bNwfH&Mkj;F5_#bHu8`O-09lK#we zbb;r~8{`Ut)*u7@svR!pE`z-+9Eqt7LuVT;tu2`;OCX)tbo{K8IMse(B{X=nchhxZ zFijdj)0gvV-9GlxM(A(ot$W)k+Q4{}CO8}dK=lmM2bileltT*coWhS6WGq44>ULC# ztorIUWRZnB0GM@sg(Q@(o`-&rO(f`fnuq9y4M=k(^`fKCG!MCxHan-aP&}jVJwjM6 zYnG%<248luTy!-A4M>j%X5b=PryLH29b4r-t1}Y3vOu)JXQbe5{F|%k7)>W z>hf$0)aRy|vY-Vf4{cI-r^{tqdgR`zwqg$4JGI^Je08=O+Icc6AEs-Vl8AHMb}bVn zRvzwG@!ckdCqPA4h6X1MQk)oX!WD+QT$Oi?2X%ZnxLQl+aQD(FSyM zf44kG+?_%eZSOMy`v?4S%sj0-k({CTi{u;OM>ZjBqTqoZLXchGK<+!z!RdL= z!@L1$pe5g#W!lshE7v0ZrZKtD70a;%Y1(|p_~Gb*Z3^)jSD5lEQ>@!h%~0lcy=;tg zyQXw9$A7q&9pV44L1XCmiJ$QK938RgOssox4RWysrf&h7z}FnW5-r3Y2Aux~%C9LA9zgM!KRN%T^e}{D9f4Cqk)=l83;n)zuEh z%>8D1gTE0K)Vca(&zL)^pR9t=&O-7x=U4bV+PZrCmm|qwO&c-h#V;5PpNKJi9)}bb{Bs!J!$k=mHU6 z7eK`Q8uNa(ELDf$lXv36>V(qj_!PN-ff$+;lj(Xj)f6nj!Wu0>Za_Yf7>k9(n3&xs z7{eW&?C)lb%R~&=d=<#5qM=Dqz?FIbAo9rgjmAxdyCko81(prM z2P#=Su2_P6XN}-r_3}lFEgMLA!or;*#)HyT1?mRw)TYwF;9hQeloxH7%->ISXJiGW z&RKnYGHLY3zRz?f22Fup0!lhr%ipqJZoo&M*CnrPz8a}zLyEeF9{m2(etZA_enz75cW>YCH}~J)zx(q&-K_ha z64XA>E1GBrExb{Wonh24-$$#$-9%7K;*=XL65g)K&7O6qq(WNx&lS5oT zwJ$5p+QU%wWN>N=Oj9d_Bv0HbhnL9SC|0>hfil~x^yiO+-VP=M+%Y(|r;O~gZUAMEdjf-QbR!db>OJ&pK*9?nR? zr_ePebbk`XE`E+<1*>|BQ}{iKzB~6~zHJxKW-oV!eMiRDWPpbUHG8C~LGOEL0S=w% z=#`okt7zpg80&{)FggH5E~WGPADui^=2tXEo)d{1HWl?tkofJ(ilbUV&|q4D0Xfh_ zcJ8o9Mh4jsn9FunVAVl8kpstwM49I;mTelWP)D7My=MV~W^ z4Yoa$S<`cE{pLzmQ51bk7!K?y?&=DatTt-BN7fnWB1>jE@p#W>3zn-G) zY!ku9`{^xG8%(i4R^Pz)V|403BVxHwZwLmOup%XJaiON0L#y=yRijWg%08EOAcNu- zMHEmkxn84Xr(E}?U?w?FQjz@@_=qs{Mg|KPn%wZ>hTdrT+JX8$dejHuedUSo<*Y8@ zU`y5#)TG(X5bQ%9(|Lz3Ogq^rsg#JGwaGa)akYLl5zZ1PQTvDTQN=S*BjrrWY-+G} z1mhDYB=)Dq>9!Dkh`5sCe(y2iq5XpVSgTUH)s$PVdjxq6GF$h$P)806ZoUN%&oF%r zJsFl@NYB79A0yue55^nQbwaNW|AqZdeDd;@k}GmjaGm>f`|$CnySIP5zx_$Rd}L82 z@hjBQ(jCc>kAPM+ILR_5#Li=E*2QvzfPJKuGL28yfIS5EC1XYtrhC^8DEy=85dx;6 z+9mL0a$7raM*{06ZW|gh;0KV>0jQ;==jp%(k+li`w&o^Y&|F~(==M@rbWKz?LJdU{ zfw^XCSRpcICJ=38+`tmDdT+Qimjp~-&QoA@n^>`F`^v-cn^V$-mwBQQ_Zerk{P5}R zM-jH&%A|Q66?1Rtu)h_i?umj`kN55f4|GcJGfoiEqwP-6!3SHflb`&D3hq4B*TJwi zLJG2sVmb50X+d0M<{9-|GY(9OV4S6w0@Gt^{o|YIEYc4!z!nRqN^9w|NExD1j!oiOV%}_3Oxs+_nnhD5OFc|fX=5EUygQ{h~K8Ld2w2^QqZO#IXD-#xs2zj*ha;^XY&hacblUhEZZ%<5s+ z&fleeARd67ghPW3F-J%aKy|>VN?-}u5qDZN>hNrIE`NDL&_<^6JVidj4oE8!283() zZj@x*Z0KQN+Sb51lf&lK0kFv^DJx*8w3>r0s)INC?KU}r!Tk*Wfu!Aslt_bchB3ufiWPvFvn;y3Y~Z^Em!TkEh<`iwIe{fE1b42qYXrBEWVvF?l`*2g6ZOi za&sj-Xi-ZLl+Ut=R0-fL-D1Jawtp@EaweR})-{n_WAy>uiDyNww>6#j6Q z07H9raXq^Q_H$pZ>d@^M%%_`aD|fHYZWlLaqf!fmBnh=R02moRRWJC0anH;SpT;5Z zlZ2c1XK$b2tam+EOszG zHF;M{0#^T4O8gXFfgb3^HXL5n2M!9c-OA}{PZmK}W*EM(__Cg~%E+P+$LD-GyL+co zIVYMpxRHbAH4|rEal)+}DO&x?QlJuG~|j$_Ce~n3nDzG{((=5B+us3`f$=4980+le#WwE?~HJZvB|#?(-fpxugGvtv$yYhqAlGk)p?o!HjE7k0-$*gW8GNOXH`TBELVwO^CqLH6w6i6Y>Ww zodu@T#xH>86T81<`FPy|>y&tuO9EbdzoeQ}ZhIzRSnO!gKC1>p%fC-|P|eg57lS;0 z^eN|mVQzJUdaMAcvwa0~Ok$O&64lhxFc2vLEoGoHvk)>LzLLW^YKst&u;S}(H}k9o z-q2)g>8jmU&z*!9)aHCgU9_K!($bB1@!1M>Re^wz7FDij=k!sUGfSZ$N|x>C6Z48C zhPy+HTztE66^6jc?7@nWPqTTIZGDIkC01Mh34J|~*#&#to!wP{bxB-*SoDG3#e73` zmw9@-Y2O?Al7ehoCmzCh^7{eBoqpvbNC|e=sODRjgBl!YO{h2-@?~ZXHQ_K9}?S~Kd@1FyT_I_r~6e!;G@{n;q-5^@2OYxMP5PLa0VMOhap%t-N2GkRr;h)I8sWDYF5cQQ1419BO3%7_c0gPu*-WUq7 zV8n)s#_`V}8CPFHD%|hRt{DG{hmW2ku~d`~ptAV!>H(>TzD!foWJ-h7NEVOpXSfxp z611_{Y539E4TD|u)N<%m@A=s1rTvc4^WfX=HqY0@b(*jA;<3}h&+d2d*|dafhhx)_ zbfJ3?ZMdeOv{JniI822J^W7AV3>-b)pp5h2B;m;rh3ig^pSvTYM^IMp5Hnth!74CK zQ6ylXZUnJ3r3}#(UO~=N1(c`*F3j1ef64UCMXfPX-_q0vgM<_>0mX_B?QHrN2&hl1 z0zI*rX+QM$B#HH1kX~lIcI)1PM`BAcfXera1xrH1!ym(2s_mkW5@L0yI>)SI3iXCJ zSw07;z2`TxH>MJHGk+hdhq*d+dCu~<7~w0JZaoJ)qS0*42K&_c;Z#!u;=j-*0r7PM zg?Lr766d6*A{ica%2mRX{nZorpF;zIc*7|wKOwKee0oMkV&JmVi3vUkSy{U-)S5f^ z>Nrr(CZ`q^gsBGv~xrrmRxH! zQ$z*n2|`pQTWsNOou}+VZHT`0L3>c;Ko;b1$wtuwo@R-7Ok_{$$Q`LdezVKx=1pQ- zzqxL<%$prl95iY|{=uuj$Y3lyX*{qdXB7jV4j^>Iz@oJ7MS4z{{+H7mrs~$@`KB9! zYb@MDIcYU{Cr>%ufYdp1aSF{jvpK3F6sQp^zY+&FoG3W2!^-Rq(6JQXEuX^rEXu~X z4Es-r#=jo@7q3X#;TgaUG63-!b8th7Ice&tzz7t^IcoZ2SH>J+=PI&-AdOcW&TT|p zjb#f{cSws+pd*p_=;)gk4SzF20n$Req#lr{r(d|&7Fv&VpE*bsx~_n|9tr@WdcINlu+sZ^=RJh=lj=n{!WGH7) zmJE;v;k!f#GE9V_E?94_F5#0`G+mAydHxHiJVd61yNfU-P-wJqd4e%aA%+egZK_R- z#Q1DEy&32iT4#BKJR3B5I;ecc!i}}=P!}z(r)tM9cPck^{qcu;?O%8??e`lfG`ftD ze;kkM5ZLLCC`&jbSVONOCmeN}>cR90Y=Py|5wSB)cW-nIYvHyjFPrDhVcCi*^TyyZi=s`*){+Xw{|hgoUmOh*pK0b7u;HBI25_p}(R1x}@1gQh@f$ zeKj$l_;Q9m=LO3fM(z+0Bn6k${0x~JpH$)?u7+`A2Qzc z`lLagd{!xP?t#KS&(gWLI3p#4_GF~z>}*PCyR>-+cTR!T*|%jJT&w`8GmS6uiyECw zom3=y^WUt-?17*-P7;s$u5a~3VEPP&yh2<=z2 zGzn$vNR0dTU%%CV^KYM>FR-n4FLAU?YdU$3_H={vXb6dhfpLc$Zf}-wUbR}cCRid# z;{N6B5?tgBFcxdz29*vGt+26i!PWx!nJQcJP+LfNP3_u8`BfONW?f2CJ;ViD;082_ z-7VRLYJNznA$!fXXNzzi=5IaDP>9frV*^u2ig_11qk1vx>*?whKApH)aj&}1NLB(Fe3pTf#^dSB77fdar9mt2kN8|)8r9W zpyEcGietL(YO^mfn+gcc@*3(Ls|)h2A8$q1jJq7Y9sPjmrGDJj=ST^P3pg-%Bl;mp z+6K(qO4*E%6BhZ>J`hvX>%3xaT0x1B=z3sVCa6y@W*nMN1k6?jKYMWwfw7%2J>{-g z?z)=?poQj~L4Qo7>@y#v2bc9hjvYuf6D@_iCX0t35@7qlsx+M;O_Ehy<%~k9gsfV($3VUW^T9?7A3|?Mom?)F2c}u>c z1!pi&tAg!a!G`&{%*V2V^eRi!cX;(^Iqg7g-klT9@*fO02rA^xZ_o?Hp%zd+5{r4g zt_4Y4M-%K~K=q-C5_$GSBTKdwEV&b3eaLf{37&dz9zE1VB_pwf?+tMJ8}Sjsh$og! z`iQETp*(7*o=43Ns&iV|A>p*~Bd`t!(hr`>K$X-f$E|as&Um2L!iaV{)p>GTrWc%w zmbQD^y`EVIOZZ5Mg51e>jHRa>&K<&U^Fk-7gE(7yTTy+Lv-UvpV3MX+r}ts4;Y|HDT(H9>E+8bzt4(Zip9`gH&MU$uTyX1p-Zsm722 zHzvCQsa6`r+?wcbM%uaVuYOH{bY3n(q8Syo+&bYq{yn$YNP z;2Q2+A<3r|g(c;8R!T89Aqsk+YXKV3)&XAOE{6+yY)3vcl8b{mQgBbpp!#gjF+=A28qKn!^R3k@dK?W z+uiw@JaAJk%|MIe#+VtHNHVRX|HNpVtc|arjW%?)G6A9wZGjRSvfBzT>J-v72JR_f zSHeqW4_(&F5w2Icu!R}gb(P0~v=62a0kG~J%dXbZAV3w59Rqf~vj>D(3QP~-a6S3r z31SD^rpEI5!_V)2&qTrB|KaT?te>%y;Z{{t``ydvSu6@({8sDa%j}L(vMOY7CZ;b2 z*-lbYEj|SWt^~GR<;MK+T&^BWiwMTV1VgP}X=$iD5cGsGK?n2W_Fo+oFSy`w#L+7E zMGhS|$lH;&6ry6ftp>!}9ECDZ$3i!09>ma^rO-*YNyv1djl6JI_aoI3LI zzRhj9R0w0Yg@!gTi6M(FRG(Dn67|)4H)PxIK;$xHQ!^gP8pciP2J=o328r~#-SUlf zK26gB?=H=Lv;^nsraWs5>OE9z53nZZA0m05#n&Fss8%Z_cFr%A4FdQBsckhMF2)_` zqDiSpOLJD(d_N!OUsTrHZPM4%_1F9(IY8_~d^~+eeQhGJvIXiZoOYrsY$1~d$8|up zd$_e{m0@Ubwzp?U9zod*mLZzt|5cu#DIF{9Y$A+~$@rR>id55tUBhC4q zBRn^2lJL8Bm)10{3Bj2r&mCO7Q8x()8V^Gv22g+~xSROdHbr%IJO1j)`;Q-fKPo5< zK_oT;Hwt8Sw+VZp3jUQmV|_7PfH=^}w+4)Rg=IP5f^n!zo}_1#08d?;H#kWk8`88M z3TAYmK8si)N3d~Kl{$eo(bw#Ysv_ReNYGC#_mOI2jd3udk=}oVmr(~ z;2>DbYX?hA1!LA&rsf3xLfs3td>(--z9t+jppm8QX>?e|!w|hI36{fVg1HKUTnzaZ zO^;1OVoCZ&H!EODs3*kt|)ej#>S{AEnY!AxFb#n7SF5uBe4BKD^>J=pJJr`mf-_k{J6g%(q?J5& zV*PwZog}0Oru}_Xb{Onnj>6b{NQcr5y$I!{K=pIo;N<*Av^3e`NK)Y*b8=4y+ciYM zAWg2@blIL$d5@^f8~HR2@E_f7`dribTOqjTlilk1Q=2rE$>OB(6h5N090I$*?&)F- zVb3FZ3_i~Au9M$bQX|H;q&$B#3YwPZxbZ~m!ZeDyZ!9(?kU36}=G$qUW%Esjst!=k zLLII7-PIBSrAzQJU{p@*8O}vE_E=NdNj50598d~HIXnwXOV2uSQD!OYZl4CEx34eX zQ1)4z-!di>&XLzcoQQq5dyo5>@K)VqCh>KxPj;&~A2+23`38qyYL^zXws{Ip20h^l zOkXZ6Liu`r?Pd}awogM5fg|s(g&zH!oejAyM19cfY;n1`xn5paCPi2_F%!$|uA9Tpt_f7fWve%FWD+gS znvq-tVFk%;_eBrvpUktb+{&Z!D@XB@sXq|OUqFs~T%7OBs-44t>7_z#oBeN54RCZ+ z8(T+W)jrv-kDgS4dQ>Lqz1nykpl*mo2L3#>{sO5p-zYDj`3CFPv^3>O=oQgHh&5*a zuw>kJ(kom{*EylMZgXiwVn{WL;7T4@A%0^nsU#)_}+jKW)$0I+clzRNO>8wd6Jo3u`rH+w}sKmVJ4)&^cd=Z zh3Z}-sX|xs_!?P>QS?xW-dhm__l&<9{qmP!8IDRPh$ecL-LyxCzx@pz4#6j1fS-JY zNOvLm$V<{ajvZi~7aL=LtA;*L{0R1N$uZz8;<#%^;L;(>wN5;MdIL9%e0^2%r~Dcn zxGp?Zw;=e2BC_g4gu5xx!1$QHN0+eh;P@I%7``kzZ#5@?W+uclFI)yek$G%gvo@sq z@s7zoZr7#oUM~&MqIr-C;1NqEr+%P^Ax|%+QpTA@^8%}@<+dcZo<~db27->zE^JbM zOK3)_HnR^@fPf7PTE<&s_lvuX>0_z;o7HS>IM_c->|lZD!+>Fs@KLm}=JeskT&2|m zG*a>=?H41p5T)@XY%&&xAyshidNO(8L@j4g8&2y?jOUD@l#Nsaht0O^2#U8_C$p{g z<$)mipuPizu^W(Ygs^pSxz9T5&?t==2{QsZ@PS5P3`W|7)IV}YC@l43OWQMM2T)}r z%${<{(5{v0?O(_BQEb`QhwiB&eqB|cmapJck5(Am)CHz#;~?cH7qzCNp)JiVLT{r5 z90@~{i!ZP}i_;HI$E6k!ax|86J5&})J$AVvT7F8d;L8FZDbs@=eRKSJygnIUeOG>j zbm|)9E-}-#_4o*LIJO&h=T{T+>@LI3R6K(6-V#e4Hd$cr+%5yJg zrwdC!pQ?2jJ1$UtnK9sQ&hmyHX0j$u`)s!bYG&-cHOe9syq-OOMb_8goi^P$$`HNZ ze2$Phyr8C0!b~8L8DxVG-npSnb`w+38c%`Ltw@P0j4(v$V6h`~HvR4c9>7aj2^0!E{(ScO$ zaU0w^LXtO}QLYuglF3;Q8vP1bFXzCv?w2Lajt1R2Hvvz+9E(l$vDq1l>h{sn{-}#> zcL0qOO>l?09eUgg=ji}#QmnLwrTQ7*!=0xs9`Y_*IOza;8p~iRmSOfJV0xog#vEG{ zBc16Fz7v^F9QhT@17t%_06YU@#ns}(w?u~SxxCi6CTD7Dj>LVr&)T<*17HiOp9MyW z{Avi#rK!h}{48-qq2N3%nin?m%aoDyWY}~F?>J3o)K7)cccXAKQ+)1GKV%C|f(gks zcQE!`9DVv~^oxJ_^otRG_-;4+m<)9xoYCX8%agY-4HNqiR`WjFfQf_Bq3k;fkiPWA zU~ZmdsNSU|kUq~&nK7S^Pu;m9A=I&1)sp;`B)Jl>))lpf`)CYt01oOKRtZ<;oXlv!octcD{r!JiW5V#$+w|ZOe&leNvY5Py7kOi z$V~+vZ@GA*#l#keUmNU1=07Fo7~R1he?2-1zpJm1#H#ZQUlh|sJu$2M@r%yOM18E>Q}Z z2B#2{@J=TnMc|6MQIOEg--I*EOdK#nTdHvV@cHYf3U9ks;IEI zqYWo86;5wF;B}~>4OM0sU~>9!Swl~@3*_*bht}(K&DZsUdJzR8x!4%pt_m4()~bbR z6A5FwWIU{aszBY~kq6C(C*BbUADcb<^>eAMDguxufy} zNLDQ%n)`b6=a28-J|HuoRLy}(6B|ty|9)M)BNUo}OH?=6Ur};(aP^)`&KkV$T13zq$X@$A^2C82S7YCO(1QJ~Y4q zy<%_?6Gj>olNrP>%Rl1>$c+f3L6p-AShHjpEJr1LI~Ymd^l(WQXMc;T4p$@bfh3P= zYIduXmQ-+-6?Tf6K&S|GwZhaXaEwvdd`<@e%-0EAkEU@DgL@)C>TC-W zP6+GQu-xOi301vCBQW>_F5B|%9I3G78g6L?m_4R<(RS$;pSjpty2ph#G%Z|UvReJx zal21%Km7cscMmLP(C@{}=K=N;guu;XX0J)2q$WMZC3bOJA71CsR6`RF35k|InuvCW z3LbEWv-#q5xKdP14f2396N7~&VxKV|!{|#L^k}jLVvVk%Yr(^Ey)P?8c#bVf3GOeK7nfj5ibSG;Q~JJw#Y8I$wHkLI^C|e&;X{md%<0{+ zf-0&(ya2^XJMqZ5)?S!z#$&h`C>hoiS#T_#@#zV!UEJK3>YuD2#I4~on~&rPG`4Cr1c4Ib$Mh3VGsBj>RGTB z9G_<=i)If5#&VE$0Uy`r#mgx!`BT6NAY007dOu%!30pd6mutep5_*(N8Gf8J%bwkC zA+f$L2hhTx{i^gXc*ZSq^67=t4``pF;2Egh_3G8AZ7$4dMM270;1Z&i9KEJmR^8C@)UN(0`7^615$4f21ILWJkuiBD@z(dGXf0?Y60@&`0tG8 zfXZM$s-ahOABO_DXql|7f!b<}R8`1Bq%4{0XG9MOM1KO&zZ!csLTcCZcaRyq++ z>Wr#sq=y@Lgu*DU;}9~fym6Vmx24})i~`aY(v?zn*_CceNn*I(>_|NyD{LgFc&cjO zNN#v=+qQ{T-B+f=JMnE5tqS)L1ow)Hmf%>$-5O%G0?xe#uy!+esp2fh(I+0F#3;H` zG1bT|Ma1Y$obOP|a^2oduPCr=M)V>mWK;#uA+Xa4GFK3>Ve@AxwURELVt2Xr&2O$g z!gB@tkd%dY%&~+1WAy3%;q#{tx=8d_GQ|G}>rwUYPB*isr9uZa$Dp~$^ws5|hW)C) zClXM*B2A)k&ya1*gIx|YHu2B}UbhTGzOLtJJQ&-4_NO0?zW>t?I(hu}*T1$c_0{O# z^xZDH&p*8V-TV7Jr(^HwwsGqJd+y@#)}21#+$mSMjZ1dg#=W5cSTxm7P1Q5pr<@Ne zVl{PHY1%R7dz?Ge3#iK z8{A_7(!7$bvl6kDcj6@cAim$&IwAAK<4A4|&d$(fKVNBHsaO43;rxF-Ki?xWBmMQ zCajE*jmSMChKN9b^jz&;po3e`J8d4CH`%DzLdEkI%f-s^;_{08yDqTI!wDFKqrZGL zij0(O1m;8La3t$EiBsxL$ES0c5*d~#WEfs2$nvH5vn-$vb|_O@-2aRnDb9dI1zHbJ zniWzc%|v$Ej;sCyPjlNumDLtI_p5hVjRiQuD1RH`Lj*vXx@R>TUpHpiKn`Q1u>`1o zwA(ow9?7b_<5aDxCR6%Brak@c{;$e(dxfA#{06OrN>TYxVLYKcEG-Xy4;&P*+>g}j z^0T5&!#-;So?q@+nggs3Pk@5Rxl^d_~)-|3V>G7k!axz zNim$+5(a>+0u~JHzu2kNo@jGhm`E3OH6V?_4v(=~afU4rd1Ef_hG~r6k6l?GEp3zZ zgl$bNlW}De*j$3YXLqQ=#uYl^VNFz|Ndw7QRB=33QFEH?&u%~(jPpH>yen?cLyCmG zBzf>C?MI9@M&1xD#~PGs!xHZoP-|1FhPZi#6A6P|-9T$a9A}aqJIEmV3Q{*L*$lzr z5ZcNJTWQ4=ovU?6S}E5xx4_Uhub|s48nuhf>UMpkzv93B7sQRGpDyo@U8a4sQ&!G4CivzM_(3WUaY3 zapo+u62;sDhjqAvk(Ve!aBNhrG;NijfWASn1F8q1rhJhpN#A>y@gbHh52o)bawn8A z05z=_wvW@CWZmXY``BGNxS3$xy0)XDcL<{1Lhall;_yDFdX14AkXCb z8#wT8DhvBaiS!ffZ%Xj5`89re!xKidBvOZ(MvbeA@S7v8Zgn!&Wp@{H)9B!w;E)-b zHQW~{Ne))-(KsQ?xjA3&K^$#{Itm1z2rvj;MM@%9xl&k>91P*d?-1$3uxis6N+k&93YR0rphqOr7ffh1la#>h6dTwE?eP+= z(Frw?P58FXA3r?Ye|Xs3^Dm5&iTwChg^7fe2hZGWZr3QI)Y76C`-f4GBAAg`Qq}lb zLd-rC;%7R23Z?uCV*rhejm-~5JCRq{dM zRsU5d5VzCP!RaYI{`PBPQ@+X`{wpnkJqDCB5>Z8ExzAKkVj)hlW-=YcF39#B6bRgS zuGor}mPtGUt6!A9xh_uS1U#=pTC2!2u#KGL8(CwJ&Qx zs@cN8yvnpIZi4PdoE}QMH}DEHGYMLhcE`4iGwXyDyO#sV5` zuUL3^2(Hbi{V2aCxc23S9&4-WXBXVRd2hkD4JV_{NV0_$lO zW=55Aqt~jJ)eD9lt68fYI*1+k*QXo(2^?&4B}6oI2VYu9h)}i!!w_8&ze?mCS}VC7 z(r%>U4M?+N)py2|7eX3J4bgCeLS&ppdYkfJ(6J_`Wxbl_*OZkJQQ)dfNGhZeHZc$f z6p~viZPyFx)oSCyPJbZN}UfWOi?uoK?68$5WBCJ zOIYJ^#)v;7H)?ZHvwJQ@82*en=F&>Df125%(Gd@-PD<=^J2%nNjlGQkowj?;P-V-b zLpP)88Peyr1fl_H!t9)xF3b5MvPDUYIREtNBqs;l%!q+@0l? z$8vWXasgUL1lg6HJ1W+#sq>@d$qI=s-6=4Q-;SGHmQ*TZSa+4-x=oABaAl}EpEl^P zg{X5!(kG|ixbk#%?H9ZI!cEt+?H-C)sZ&!B(8*w}Z-oH41g$ypRLz6toC4FU)IG;e z`;ieU3vYpEhRaG*i&1x%c}aB4ti;N0_E$B#5=CjX?Q~Bk@t&PN*Y}1GLp0Mng;1E? z#+YsX0%jwpe6b_b0#ejuZR^15xSgSoSJ}~(uY)kGL_fahUgQn6&RFEl@jLv(4eJhe^4$Qe1#Mg7ESyA_0jQx)^Erv& zjA&^h$t+=g#4}YHUCk8HGj`+`-VV{!Bm6L2D(xZo5}P3^B?WPvkH`IxI$o{GD8Sk0 zBFjf|5nW2G`BI0i5!mFUhe{aQsLdtcDM%p<*=_az(e|y)ZCuxu`Y9OQx+yA=9RlFX zlN(Qwc#yC_5&}R<&KHy{(YET!q=%v$XKrSG`>eJ0-sjQXpqxo2Rgu}f54umEv(J7% zmLvAn!-fEs`I!mIu|d8)WrG4Ak#}cc)YS!&;!XJC8U~4-|D#g9;;1uxa*yAJvj^)Em|EkfVjlK6bHPJF>m|TgQ}EJBxM! zxhRcxc7&F&z%22N)s^O{J@nMh&e-+@%jn>KPygz;Djz37%Lx~JDb-1aXlIK^{lQQU z#10OXWYx_b6Kk+$pil6E7cQD{H#m~^b3`?}gMh?T;!GK<7w=Ayc9C)1saa&8UM;GI zmrP#8JNRZzD7PjkwVVb>4@p9?GQ{fGE|tks{5sK(utL~WwWDFK3N?wm6nc0C z)GJ|hS+Zcp0+vo|(g<;2xYy4;33JwJAqbhnJ*BkjQ9>7s%j&LfonRUs3>MP-`C_l~ ze>On*>CP*k7;4=N&U zZMj@HOR9kuBS?eHFYDLKmwZEkBwXAK6NYHL&2Nt`Dtd}sEnL$n+Jnwf=)!MPJr^Cp zo~;kOx)DuK2Q?vaiBMW+8Hm~D4cJTwO>}`c>`BW0xwu5xf;#nQSID7~VXrS=blKc8 zOy5?SB92T-3R{Fy8?=a0^Bb&El(5wfqcKSD5T{<ZOI?)X-SLaDh9pT9gTM#qc&TZ`YvMuE>-@q(}s9m6YF3QvuX>^4xiOgh5@V zAD2R8=sx6G%)o@XT8WsEq!|}(<}Qk=xluZgZw(1o>?1>Rs^-=gYu z)djpVD_UQ0{>tLkoxuvln}HZLOfM#~Fq)Im@a$>N=y!QRnm2`A5w?K9FdTrcm<7GU zbkah&A~w^EiQZe5d(A(@C0cj&p0>RNleJQN$uofoC$8-aTf=-|bs*g&VBED#Z0UfC z9(B%(M7*6TUVRj)blCOrxrmnT+yvKO-NVLX4Mue`o61OPe`+D@iy${BEr0!&$?{VE z){gr{KoVlT#r(>EBqb zBueI$Lm|5N_2D43l1O<2bQXRMWREha6p=LM+8FL0b@hv_U&>l=ux&IN%07F7@L&4s z(feV7R4})j(uK?*VB56y_^fZ4VP?3M6vR$e@cUPBT#7PeJ8) zwgeLg?U0&}#xQ!|07)5;Q&v!O&R0cJ2DXcfHX7~ymV6WpjToCMhXnV7mN)N5Bu(=^ zgJ%$qtNK^X$c_Cl6nNfrxhAO6y*?ifru|=k6?Hr7Jz*>X8X_$&Ujd~jr;N}AV#AM2 z0M=r@7_aayq|0Fe*jr+Dfl^Hjnz9(@>2JUSA@az7{-_Qu%gl; zsu#pvd0PL)%O>Lr$=)|iHZ=Q6y37b=)F7&~h-?(~XG}l#vSfZyP)T|7Om0S!?jvC) z#TcQW6e#Q8==Mv$(8DX$GhwvHvNwQw9FKa$#=oZN%8v&PZvHCyWHLRB*lM#XJ5bM( z%xJ-cyCyOEMP4&EB9=A+9nS2Y#FJns<>~Z#@!Lc;P&P)z6g3~*te`Zv0r0OuUvvx; zP&4McQIZt`8+Y2e0~ObrcS!S7#7($hKZTzS{-w~AM~f)Np@JJyR|W`_;c4-LQq+9( zp-YS^RpH29vvww0aGNi z9N>qWIx=DlUoR|7A2l9+#s4>(CzwntqrmUwbOPgZROoQVw9eG`P4(%6AwVQeHB-`c zTA<~O>QU7%#E>Ibp)fp5##T>HC^bLgC*qm$By3xdtY$p3cc=2`W}&f2+8HKz=4NWX zB%&-KPMOn3qA#bC%shxoCGHbvdum=5R@h_!6ihx2v3 zLYcn$Qco@TXr^#AZ{xN(h0B_roPjAR)K!y847V7PB!(-3#D29!5a;>iBIPta9a+1T z4^C(KgMxV^M?lrKB;WPL3~d6(xU`+%6MnN#-)M?A`Spp8)GtL$7dKpvy?%sSa1b(MC9y^+B0n+%! z%XF2qH@ELTfEkgt&KF2CK-O{%GEQx(O~Le7)Y0oYUSkoM4|0AyyXftJ!752U`>A%2 zN_d4RL&((r*MA^PH^W)xr1y8k&?meOTu8%dAj9fZ=KSaCCl*2gP zvo(p!w5C(<(&Nh%SAug%sO^KY-&JL6pz8Jed|V8(9dL||N@MK3u`>e$n75&04( zJk+UDd-u{LdEy31foUzPfX#w@X%M-NAS&WuQQz?)|Hv&r)3!O!V0y_$; zQzo^LJW%NgtGJxt8$qDz9=}vuilUat0+Rwmh8{Ey9|^s?Dq2&KYSP&hSmK0?ziANa zg2?6^iLvo7ifSV?Fyns_WU)|WMll6$Z|Mp8$LK7XN20UhBp!>nJ$lNLytn-5F*>X5 zaCb&l_speM!?fSLRq9H_^&O?&xBDvcOxhMhv%}(`b<2!|cGL5OTbH9n3HgHjPM9T}Nws*@0BWl2Q+0f`22(q|giNIXm@1~Q zk2qt|dM*iy1pu!Zsq58t!hTX1QW{1T{0zdQ$>xxwaHbchUN9~$^A<%yiqm*g-`8hX z=O-}QrBNll_=mOBAW$QQCEf3hA( zshbo}4XsD$Ze3pJGjL;&sc>ggdDa{t6_y?yDc>&|d({AHuWUl#RWK|I#a-u?fd<%o zjAqY|sUDs1C$y2#%vzR4sSl+L)usj$2c^aClbYwh((0rE6frh+fI?k-Mqd+ljQD!A zC~)Dq2J8EYfxzL(5_trS-#X+K3?wMV)dYbdUni*TwBuH({~2mfor&s9u1q-#fHC{<0$KeEV&)7tWsFgpqm)TGg zB#HrvOME4V&*_qnCWQk&!oOSduHunhU=Q9Ny->gMP5;H&Uvgv`@{15K0g4qn#`Q|1 zG^eFu`%ozoTuQU4)Ha*16gJ_RR65h;p4;#m7OLj}p=z&izTx>1x~aYhpFo;CKY7s= zte!yHLa$gcMWrwpwSe=?L1euO{?8-2D(`gRxUYz(NRP=;Kopd=xm?n9W`t9DX*Y%xm}*@Jw9>^vA=TFjQDv;^T)Ahbcg1)PL84-fb6zx(uX17z6g z?cCnIzx{xwV9$Wm;qYXo&u)ijS_f|mlUIVYj{QnS?2Q1qNzaRE=I#TYfzosoYwZ(E zi-u!N)kD3lk&L+-+gypJKevw1a*w6pCam;y%BVN?%XOu1b#FSIS1jBA^2 zOjQ&zW)$%vJFE_?sn{QwNr154DJ8E9h&YpHN@r^WqXaEx2=d23KeaYg8NRr1#8D>H zYdHUqC>70G_P+dTZ}(vTU~m5j5o>z~`+GNE3hMX26#>2Fao8f+D8!hE?=}g?Ev;lJq`i@}2GUy@rYvcV zcYTq0+-HRx)JYH8129bpLhf=VUpO?jkp7MG#b#keIIPY@TBl^#S=u8FYa$XzFo5xnt1sI zs>f}XH*el;7H@vIQ3yeOYjgCSktmmc-Q5^h`T_-1!Lwl{kAWoh4QF9sJ+Ba>Wcm{r zj;{3kLizQ=ddBN*Z~c}=Y9mrvDW&vodLMthyMOTN86Dvyt}sA6Pu`Ik>v`IJQ}$Fy z4ltqGDp9OO(z zNotNy3LX$)MAYkoQ)KQ8jxV$f+VHcPe%ozScQpn;JEyONOK67I1DB&jMN<+zF|C}g z7FZ8pFI8|1RSBk*gx6HPt`w)h+bNDgrC00kix3Ba^t=K)>_D@0^J%%%#ckUg7nzR7 zuu9??I8oSr9y<#cW#I}JS(;uycdEHUV2L)x1l$ONr8+4mP~6r867O%9+3eu`W|bU< zsWvY4BrCuIch~im?P}6ON{H4;YN5Gh3tN{+h-FW8*Jn&HJ){^ee6Y~)pjc?*^Ox|2 zaY-3X0c>HXN-OqX-T?L_h442>g2)~!#l<`u6D>MZ2m++RWIEA*)Y-A-NL~~H3{^U| zxKu#$`>dw8#ql<2ae`^MR$L|zXme=f#cJ{HQpGm+cZW2P?0z!(>9v;KtsGa{WUxjS z(SO7<*a-()(g{S4Lypk}^$pWx8)!3eD|n`h{0S<1b^E@WpeO3%^lAxT8zOPQ7fC2s z-UbI7YU{GYbN@ zF4o?g=maL*7e?xtpRsyH|2MWn;`T1fb*m*Pwq2{- z;SnZ`-}H7O$edZ)h0GIpmT_p!yvTJ1t}b%+tJZi$FRFl zi!R`K`Knw_Tf7v%Z^d&u^Facn2N?q>8Vd}Z_?Ne|dXqnULt1b4y~Q-z6=w^XaZEaTK>Gl=`g; zV=29aiAluBH7eFjmMR^C4Lx;{W-M&&h8a~eJ_dVV!NU5<;fW%}E(1AhK>L-5DB1Hx z1pnz;;{vQT{&j%`_C#&B2>PwO1y%^}bgjvFS-ew4CA+yBwr(J@Y~K2>znJ8J|0@x? zIW)ZmRW79tRfPmYElob@Q=T@wsUq=h7G(MaS~ zjOAldltR`QzL@8ik|l{~pMpaK?TEX!G)0TmDPZQa)hD31?a-nVBOje+sM!kQf9m!y z*hNzazIp;|I>9NhH>a54uzq*SJsBuuko_@U)eM|z0QCb`A{bR`ujThP%R3<58>ksa zB4g#2ae6Qm4+hR*rbv&;-hp^H_I3FF+rO-zYDDm}aBt zg$!<-84?Lfy*s6=d?^M=56?c|LXk-{tgTalU)hIJ#%q-8-tTF7SuBH+dTBYL&0o7RAx3b7f&z)B;Dg zSzLgnq=C^OBM&X1(IulB8m%(Aq0uj+8=9MDm~i0cYZ?X2JqE)^8UEeN$`uXBnF zd|A&16enh5Els-8P9+qUuDe?}N0grp9o5Z3d=L!wNR4*p4<})O3dmI*R zSp6q7j!l+u^+A$fp-=#$f9xD~KqTCcP`w8sE~wr!GWjoG*VC8(Hv2Owr8<3MV~|iM zsL6n?gpLLes&_AthVxm<77h`(ePFcM7C%({1Y$Alqajl@1ZK0Ga)&AU?1uw1sjPXA zJK^Ny%=3IqUGE-%UrIHHK%-ssH?rO(g&f^eR?9KEkig?Y`b0~A{K#)JaJ%?v>7E&s z?wNtPXDDZ5A+fP$CAc=>9=9l|UtY2L2!MFx^*|=!IrD2)5BHzmKFn_4KTPlMemZ`K za{o8)Mt48`gm^&{>?QPbEJ|s7estwVOzwg@YeX(arg*3 zJ_>pwuI*mgXndY7HDA~E6`0FJ?nvyArXp<#=MnP!W7V}1Scie%1=H66|G?2dq&N^2 z)M}7M)ACA3Guq$1%u=D9K@>Q&pnK={q>v>g5=SgVpck6Gsx$Kkzs}ic68&*#KmrCQOjlTj5zZ>kg!6Uz`3}jWPJebwBzBl zT*F1j!aI+5VbkfaN^BYLPbKpUvM8=e* ze7fUWa3$l>X}6Vv5qCfiYKVnW#U)lt_X>upRNZ& zCDV~>SDnIPf(d~%F?W2rDJHJ+d9*Z+q0StNxzQ4nW(HM5xmHbL;`0=8N1+Q;R>n%M zPrQ0UTDuQl=*B;UQb%4_Sj^P(tgy3C7GR4uXy??}!> z1m|2|CikQAj}#ZeIFTZL2}}f0o09J%La}d3R=Uj7U4Y;tlm{zf#b8v2Wx)Wq>tl8h zHhXp|En`UR{&T;`-)6g0;f+?_ohhj#y3}S%ly&I|=vt!WT)!HbY)pv9GxfIt8gWVf7~Du1kyRX+i`~fyp&vOV zpy}vvKOC$t4~8nGYfhl)lsc9jS@-jL;I|5j1%OD@ea?-1x%J2pECd@PV;9FK=*S1L zK1&M(eDO7;!sm*?(m2Wbka#NUHz>)n933`Qj{@S$6~8ZI{z@p|`jOLmyu`!PRo)q6xQ#DIRnt zz!o8&f@~20poi{C*%|4+49R&Iq6Sb^QO*ea#|t)5f=aDp7V}kQGvga+(ZX%55Kg^} zIHMOHvY%|2#u__MTY&TgA{o$8=?n~-I$kc15u1;c2R1#Zt_)iOuX|ekxXP3?lHtRw z<*dsLTWKAkBrsjyd7Ue3O{gX)d`=}U!}^_WpaU{3;Bm;AF4t7UmT&-uaTgC zjYtC!nBK1KwL89&Qtg&i?RCrhAtrbA(#tM2@+_kYSC=pg80Nl8EP zW9v#D#C${p*iKW$w0H~)pz^;>{Z>&Lc|u8uSdS*TN@2T4lyP!URbsF#mt10qcu zOLy|-;|+ss_snsVOY-blXchceY`E!du;WT=K~$g_8-|!x)3X|;Ig`XRVhXG+m#e4S z3k{pauC~fb2=&J6yxI+xS>6NjKf6~% z#Bt+XN>}i?v8=%cW&VazJ_>cLhP99k#6OOd9AM@auv;cMg>Dk27n5=%3q&U?30Lm8 z6$LW&uPKjJAkD?A z)C-8px_ga}Hqo7zKj2MBsCX<%b!CkseD+~?+9)TU`wEOhKho_Ds zUV1F(QCw4Z(Ea^;N zv>8p}O4FiiZn3;Pg%(d!u0D#Tz6;M?7ubCws15;@ZaEfe;^ZTyGj2Iup)?Rss%Hp>X;o8y{k@k>u15g)Qlgv=o_E5tl>E)-g zt97@~_}i$6Wry&eZ35Z+Ok)XBGdvgI16tMg^v@?G$NX@6^G=BYwivnoPebTxf^Ema zMJeD$jH{o&!at+$r7{E6VB;{wqZM_do^Qdx>(i!FFPmJ=D;6jBV&l=5_JJ772<8P&v;qPaxvcPLoP!cPpPI5g) z?gjX>3^O_%xSLu4T)%q`j5vrh&m_w6jR z7U^ObArOs)J=Z%n0G0@thI}wk2Y+#~;JRC1q91qt)MQ3<<3uY7nWSd@CY*|xk(7Q^okVE+5vO*E= z!@>M&z52SJNy`~c5^z?t5GXN%yn^-})Z5a6D5)0m7Sa;Nu)>*M8yy{=u~A@xz#w<~ z5stRENa;ktiKXbmsI@wZ<6Mk)DeU8K({OToBGak7G@V~Kdn|3$FPG!< z*GAr43v&TCuJju%b75_4+QQm!tt||xDqib_7y1XlmkknWHy_{suN!3V{@61;&2ogg zBPdwGP3l`{CLU()+O#)Dwm|5%{8FIewjr34$ehUxiH}g+_>FvoL!FNlcx$nOki^_Q znzAB1$0=E+N_%30Y5h1arUxy4glQ;>OvKGic~?8A(lh7i){7s*otmvSs4GCE~R@8}VSFV-8q9OyXP!GX+;rn1{2DGupl~%*KQc2Nkc3=g(2lIL5n-GG;8ji`jTyzR)<-X zO-sN%WSGjq_Wp71{O5))$7j0{?$QwEn_zoGGgmx9{gW@oMBh$|93VXjh8F8pI~i}N zdtkz^pchSc-n@Hv|NNIXA0Uwaa`*lnM2(%Dj|!vft*en}U#$`RFMssx*%x2`0tp1a z!>>bdXIh%efUju#ySrTr#=h`dx*QspTbL)*Q0jK*x zPQ%=P*FY4VqX79*%$ucae2^?;IpD~cW)0I5bjvN)$hgEk5C)pT1aJ+*nM7QP2movQ zEV0M`s*vF=t$pQ31XD_rF$_7!mDK7P)TnHo( z^R#$FC6mM#EGJ6X^*Zk9V@1@XZbYKhT}36tM0ixN>jRj&I-BUVV0m9; z?u9{t`(l4{U-&$z8dM5-1C;UHEOfrhexc7c{Nu;- z;Py9{h~!>gU5K?+cT{wCygb;r8;T^^s^uKvR-%L9OUj@$3G(3O%h95X&SjW}Cp!go zuvQF4sHzF(r$}2{;1a}R9Vf^t1<3E|js!*For{W4cNzbIg<$tETFTo>p<`5sPZs%x=A||E)~4>5B*Bt2 z0GU>9A8nQ_dAbdnu$r!Au`vjLU^wP6&{(j6n=N|=@bh25@r!0jVAx68H{s1fonRzG z^P`{_cZ^^SAW#9g63!8>KZY@o#RiU1RIzmrWkoDRe1VTc?SV2(N2#=yO`AP#FsYp{ zzN$`Og=mpfBhlh$i|vcDMg{9&bMRrhYL#S6qZp~uhv9o`a`F$Z0 zZ#3ONy{?SSF^B&7q=ttNcq1OHV;-99W}C zgOj_qq`@UP{U#2Q9ce!~`T*)#L>O3jb5|H=)e@oj>1xZ{2cL?37W}C-=>qhn)Uy+E zPE{1Et#9SSSQH@n&v68t|h!2UrFR;=+U@m;vk9>u=La4!lg;2 zAX!Z%Fvf`Sn};`PR5|Qy8RJA5s#C*F zWgSUqEtd)@jSEfS?)&dQ-aOoWzeBg!b9nepCQGK0efR18hllsKn}GLhK+i{r#jvmB z@-_Nl)pi1Mp9IPW*QKDA@`hs`3c41kxYi80XkOf{2oL94=R(4(s|B+~BkIYhr`!Mh zy^>><>*#(_X?$&Wsct_(WS#{*6fqC!o(Dn*6>?~X8<*0wI0g;_OJvB+ zkp6@-fn*7Q#7E_gg)Tpx(5G~AHAU-yFe%Zv3Y+!n?2E6_L6%+ocK(m9VV@*dLqpjp z!-yTXfDG(FF80DA>(l9M(k0brm^Q5x4;ro_o(`&n^roP@w5;g=pS>yT$-mm0vYz~_ zy(#O-zuKF!p8Tu5DeK9<+MBYTRNj>J1l|;COWtL)UzYR-MtV_yoob7U86J0?N zWD|r*r0u~jfSJ0uIoHGjzYzJb0_ruTlit3KBQ%^K% zn!n8ujMOP4C^;9vSxHX9gU^Ne9E>R0Z%|oDh2#@abDyz$KGl^MYM2Trf?6S%PWdY%wX%^*6WrkCWH( zmNq4;^Q%{=s*4E3FpSr%WcxV1keaE!8um?g48gZTN0|Qw|1Rk<=dB0?^EyqX+-NL; zg?twvtnl&F6;*HVenv&ra_=B+@5mHp5nG$^Wckd>=eKQ$5SG60LAutvjj0ZojQ#5FqV6Sw0Mt?^ z`^O}E>peTP0%zMmvgkb*}OW& zPG6jwal`aqcb}}}BiXeDHgy*L9e_s=?J%{Y?TJSnPkngDIwhp zDM2NlUfLS?3ivI3IEuRCWH{CClA@aZs^ggfOVk_sCYDwkc|8&Q!JB`#<4@Tsd(T!vG z3F$Qo3-$cJn!)9QYA2{MeB3a85+`OCs3y3%KHo*Jmo32AC7uQfXVGSx0|{NYpa^*& zIgSRL3CKxvk#sy0OiN_v%lZfU;qqpJL^^%1IY0U?fyR|S02061$W6z==YBcon;IiIcx&`HG@ z9W>i^yfEfni24>%d;DT@wLt#a8LhlC1nkg2*=xZP$WDJ1Lk1EbdL3}T0u>7Ka_yOQ z?xPu$-2Tv1XJh@AIBKRu6_<9m1$2BlI178`mO)MdVpj6MS2+n3_<^_(_dUw3qjNWZ zW#JSOJv?V8qA$Z7yt_O2WXNd_g=V=J;cb92De&r4$>rpSRzgqaNwCK^`*hTmmh^N_ zF-`_|r-n65ucj2}9v3_~g;~pv*>T?w7DdKcbo}ihUhCogTLg8o5`U0NQZ9>iE;dIK zun)5edD(pp8o??zPU~pS*5I(;chR~8%Zq4EuujStAjgFH_yj}=lmWiV=$ts*g+#5_ z4#cmkLS~jU!30m(Ghr0KS(=T(FO7#-S=BCxnIYv-2@&k#@*9XBt!VPL43-A^q_tbg zy;GdB8X$DZReG?o_&qGv!9sF5$~FhdFugO+NvzYnNGKo8_@RvOkcI5rWvhPVm8P9^ zF$Zi*laZ+#C7@_C!56i|iyM$9IWjvN)za zoge?&3St{nn8Nz)f-+$xbLXrU!a9UV+%$Vd-ekgUkM(a;<9cMECgVo7gKaiG)-JDr zCIv>imuYd1sHUHi+=1F4>fH>?s+}jTw-mSVa;s&a?=z2gcR+B0rJV~GVnm-vX$!jx zJe`$|7J6Xv*+BwGe|t=8^A?gdE#458FnE^`sZU=B94z|b0@R1s9v-dy&ED@2GL8Q= zp8Y%jMfn&7$m&5>^3^4Vf9$8UJ>mWK)-5lMY4-lZW+8{=#R z(N5%OYESSyT$kqKDjiu=-;>Jb6;t9$@O*N;Wb&4NRMZ6X2tOebL87*pF%LS5>AA`1 z^!ajQ`IoN$$|-+5-CT|nUG75=F-c5%O%Pe;y)l|$v33s9fUa$U+~nY*bzJ2IvL%aN zY;h&Ho!u}WQDPwx^Zt7+U~v=;R|d(iQwlB-ljM#aY8iC8G0_8L5eXlBbs=nY4A7fo zZjIuT!)j^`kcPJyTd#E|uZb%l&f^sCPbGW>Tte|MG>e)mzo)p?Z($KxU!FsvIv%|Q zy3c!-zpFHXYFLR5C?t1* z>dk>ewL>w0h7eE?%20vgZ>_tvWg0fis?rFMK>5vN0;meBT}9mD!!v#0o{_l_#+rPX zpOImDm{Ud3ELZdu*_{?ynuCW|+26623a{etRqGx?t*B~T1cEXr5$vxJ*2>Z{Jb_KH z_Y^_Q5G+}kq$P}#`p=+0oWK`30N%5`E6T?cjx9ChqwJSr|KQJyP7V{4;Dg~xr4pQW zRYRR9dfx|*mN6m{*CTX;GHG(QBcACp>ftAzWu}-`OHM6vf@$41o1c++ik!BpHyIhY z-G^iVD?Pq>s`dsC7k9VpXApSi1g>L%p6>Eqe-m-YS)5j+!a(-7g6L_6=9L3X&#+r& z)Q;jJex^a7cl+6=>GtA*!3kcs*sIck?j_^`Uv5- zOZI9i&0_@uA*=35uexe}orTwJ6brT4C9;-M&U;SWEo!Zs2#{a_lUCb}p_0n`t)@s(ow4cb%vR{uabR*w_&3{k!i z_k@2g9z3F%n__6rS!Br;bjD9Q`MElu6rfT9&Dj&qp(U5*yFv$0FtQUk*DsgfLJ$IP z1}&QG=wEtp;xCxcG>}7#thjvbBTKk184kLUFDo=jpRHPyP%`Uv+>1yMWIc{=-n@Ny z|I3?)o6BEr?#K7@vMY?1t>j9976?Jy0A4v(+{Y6@jwrZ{O_n)C6o}9zk-(?k&vB+fiAG) zK{h|6uXje?l-Y!zR-7iX+S5;*CUg5UOq1pT_KGqQkwuNfA0D;K#nGEDL<2MCJ5G z7i~Dr-jU@BlNZr=F-OZVQ#X5nQnqE1e}EFl2eu!>nPjm)J2}M+%>+BF1 zq+>{)x}%ze94azpf~oC&StLxAYng^FZP4o2;s>e_ zhOlWxi`jO2f9D4_3J*XUr7bqkwiV{4+k_L3&dX|I@Kdyw`f;;(jF)XeG zm)rxEwUK$n+FHpBZ+~XvfX%?X>;os;ah2Yb!|Lr_#dUg{@P62KDAd)Dc*fL$ph@BW)k?@xm1fCw{8VJ)0-?z~5Z zuJO3}kQ%0kaA`6jgU*F>1FHb{(hFH7?TSYMPeAmdof`k5^4J(7N$1A-3V+n7t!D=i zaq+ByPRuHFks791n&k{d_?E21w{)j&x=!dDeUu6t{>BTgt>Md6sk#vrsug-RAuK^J zcD|j8i#bd$R=n?U0A&N*xzpui=vEzR6)R=4CYv@dH(XVq18Ojwk7%kv^CDIhWYDPz zfBfnWD1L(~PN()yvyoeLtwqz?a40d9s~5ZYs07Te{yQ%;V&jF^Qe*m3XyrKD${bGlxzk~~Nq zSONafRqtVqH`Gs$u$6?m#NtKNQoQk)dO@>%i-kl8L)eje;XP#_l!_ma1VQ1895bdZiKJ7%F#g%05gmW4}%X_UUjHtSEGwC$?ZVJ)=eyg^5gz zY(gGZy#bHymcTr+ z$i8S;?>>FJc?WgAAeSn8hF^d#CVFWI>c)P`C$sfAEZ*QsuP$)_Y=(|94UpdLx$0hx zFkiuDC`&SZ&?xsfxR8dBuC)9prhN?4DIy>*UVt{?&*Pq@C^m0{REgVn3rJ0nt+AIw za7Iw0$X;1cC92pA?Z73{USqG{pDu5 z8g-J}1gjQ+rkgFS!N^X;_{a<#@eFbWMwQ13qK8v;p!o+iiH`>mAg1qc-+%m38ikC1 z)$M`{Tj?v8Xsc3(rJF*dlB1#?W;p3QvS`g>ghdFOftqWe4h#>YeqC_90n%_uhOZXq zv#zwbRR;ha!@$}-=~*-&5}=7?1#yBb*JM#msAj-(Lyw`nhDJVKzjwJ%R1^D~lVLGiryt-Pr(XZkes*+k-U#8iYH-j^GE|*}+7S zVhAJcc=DRbsUR!}ok&^*$MbCADLRsIw*91}%Z%bCgL*EwUo@dnQr5s0jPL!m(N-P2 zFluRQHy5*nOr2U3z0-vjC1*7}Pq5Ni(1+U}jHH-3pip@#xx`EGBq_!mCr+*{G&_vJ z1JXO~Pb5Az?d}br_FEXvcuRDmaT@Q57e?ikiaI}jk?EN$Rnn=pMq3OAPq2~Je{yqj zVu^9ZjVJK!jt9&u`2PLPhj%R3@(IP?V2MwTZWdwTz2EgTr1x+C*5kH4>wW!oaYrA) zLj2YsrdpXud`a;mMxZ*4bpg`z3KDCc1Z)pV{x(b3@UAeaBol=)4;e!du_J_21EH0ZxubFIIGX>W5Lc)i`WiWfXN?sMEQVV48R7W!()gYegd}PfJA!Aq(8<(!z!^{xLl)!=Ij+e6d1=^`&X;7PWc~tNd~lK?~Jq!kS0KSEJDXDE-D3Pm5IPf2?ZI$xaEZ9Cd4yX$ub@c^|+ry+7yYShHqI+@^x|;?xyi}hNdvWEWNleNM%?W zK6Oj4w!l?V&Bp4844h%dmB?Ynq1-_reI>pTDhRs7q}s9R52B3>p-b4}x(`hQV$ysa zOSQj#ES73N$5IssH`$erBko2v0rGg}a6{jb;llscM-rBe^eH$$wzKb>xowyh*a{8} zH)ARAW4MT{MKP(n=n(>t5Q<(4Uf92Fk{3Ys3x)K!1SeY-PzAOu=9n0PGZI%3I8WP1 z(ujXRu}W!#CU1c3)pd?)K23fB+2^DwhYnpXepK!XWkz{jJ@gx>qSK~@E#9paV@;n;q@izq`3*E z$)vLkUJ{`>#ZJi1Zy*hq?5f!z+EpoOri<8wnWAQ^;T|PV;)ts>LF^S{kdQ-bBZ_N{ z;kJ=o;&8yA1DU;@u+ce0b94!cF};n-bt%p_0ZP%Y88#D!^pIbJ4I<=O2-qpWCYVo! z3wGMgRhl5@W&AMr{F52A&3ihS1;~W$u-TxIr8X&FYef}?u-EiD73Y;qvkAtGNZ(ws zw?!*8`ZkcQ=9tJhM~%=qv)ZLdP^H}c^?2XeEW%8;_--(X2GG#SO+2ZWiW&dFlfib< z2yIFy%H!t_)UJ>Lhcb^Fy`2;V;!a~%0|&Y8ljz9t1p*byng5o&HJnFcFNpPK^HPD2 zT^9NV#J@?iZdpTg!tIO9nCpU;ow9=XNv$c$04LJ#2fPhW%LCD5k3xzyH%eDpZ=eHL z@OXTEd@(}R&)Eec3GmlW{6YOA{|$2mhDVD`PhAd&gWO!G{)(Osa`J$itisAr-FzZO zi_9&=n^?Dq<_#kpIQ46!$D+g91_g>Sw}`gq*{6fVpc!Bkz#E4ai)XwW!4`Zj)qyO) zWsugZEKUdceSO*ARj9P*s#i?dv#v0w@m zD`MpD;R-{A?a<&+R#n(bx#IkKN{RK)J=Y5(xi-gl;J4X?{=p0 zm+hhOQvb$rkEGuguSU)yXy9*pDHtx%iU?ZeIe?VAs5fOPfqJf-9szp4~@3SOpgU#(81aN|sBc@bKj5mj|CGNNK$ z5J)N6+N2>$LquA8kc3}p{bf=H1A*;hav?_z)kR$;5`!{x^YMO8jr@@Sb-%!UXxNzGfZ}ymsc|! z{tFOom}QNT`!XlQ>sV%Sp4e4GMf*2#A2S}5xM~9&Re4|-Gh4`-rKr{g&RC|BztVR3 zS1(b(`hI~|UI(;+H->Wo)5J_zar1M44FuvE78N4Rm`E z3Mp-7qkgJKUs;P1P>ZUGpDbVS3%}Z+!1ozy4Su+}m!O4G`sg2=?nwn^aI$nMdV{G; z;W3~ijHMBAFDgA0md^@gFV6kA6bs>Wr)blq+X_V{xdCB~cQNXecr{trVbL*b`&gBW>^m~VuIG>KLNsQJno{SphSLi$1E!tw$0+A0Cl_^_%m)hVUj(FDgE znxb&pe7J7U_KO6~MLpfwZJLBvhqsz2J74U6xj$dpzsQLKKajQ^?107|>=LTN0+s1l zVe}hX4_fQfHPRGw^(;i?X;NmUE2P-Oy5XcOo&Eho{XjV`>(|Sdh7jZ{TE-~xX{uyg z>GMEgRF35GVglo;>Z79fZgE!)saQ63K9L0z(&^>=iUq8WzSDZ<8=Iq(GC~Ze2>Xr| zE3%luc~K*bUasEG7m|*2sQ{cWdeABm+NWv~xMQUx`nv=3naSFD-dO}Nfwb#dq@*W7 zfv#^rm)LizVCL#A8d(DBq1q42kA&b;U1=R@A{CXJydF)i*JS>IpGN6B2I#?wID3h# z&S29t24sbljs&WYR{$Gj|xSV5x^*MReGQ%!WGC?+Ojda zY}nHP<>|m}3Rl)_ZL1tthOHi~!UA2>6t1Ex!3%1W96%kK84Lnux%GXd)Kq-^XbNt? zSX8f{hceAQmeXtAEX|Q+KBUf^yNjE9P{Z`mPSxOjdx>b;t{N2%(rEAqc@fyVmJA|Y zXaV#=Zl6o(_OyNuwD`6go^|PBeq8DI5kYo-jPSTI2;`=>?*gNSFiqLyG@8Qje`k|^rSI4GcvY56vQ*qd z{Ns9tuo2yo$syx|el>hYOA$aobb}|>aIMmZ1 zztE|+S(%ntx!p2yua{MNhx0C|FBD?bwHks(5iM&lH*>jsSq zr0-&~4&DQEYw0)fN%Kf`fo*jiKU~9#tBfv=WStJz1dB-^*kwIBM(-=9fiTYcBvu_D zaRiihRsPqW#Kv@`30TPpP@l=|loeXi4%@+Nfi(^7O;R(URXDY-Zt3xc4NL2a=dyuc ztK)aEg`%JmFwx^>tbA=^-Wi$2@}(qMLq z(`kEG!!(>U0k#?RQ8Sroy@W^i@?3Xp5v@X%WdtLL#!D-C0;=lJ@rfNo4gb>PNdG)8<6AbOu^hL#0J3wna z$SGEoj7+Mgi*JkrWI7b(aBRQbdXlOdzn;#fmumkPMU00oBat#Fd4Ie?K}4f+)xrCJMJ4a7%S<$^3&S^Tqrclr0wx zj~lsSI3Yfbt)-pkuv{scuFQI<0|6X+^ICT&t#2>$=`8!=e{Gl6>-$4Ir znDPrBK+_?Bp?w#HVze9uxQ|xQcA|`ecP2yxNbCB?tB*JLAOHB*Pk+6+{r=|mhd++* z-hTS&=Jw&^AAh>L|9G=`OC$2b{TujV?*I7l0S#Hchky2uZNpy+~dXTV1JmHiG8G9Vk|AefRHl%KM(M4(yZMk;toC?lO~`4s%1~KM0;eBfrO&7 zNa$r2NKoDLS@N)gPL-Yy=wt8hdjAC}ru6kc{Pgqv%@2P{v9I`{swy-2;kl5OVO3tI zgqaY3>e){a6To6%3Yh&3Kf1bL=H8C|77zK~y}$kl+?VFOxtP3~&rT5Iw`9az@9FT% z;g`ElwQ8wL5Lc>jH4sZOOeex4mbM9wSPtm?rBoTg3^@?#7OdJEDOktikwhbb|O{WFJALCrE1=hll(!y^+8{bjQ zODjkk>#9a8qn)EOOvA;xz!XkrQ7t5O+B;j6wj<6Acd%`JRuRiqB|97D4?#cFdRasZ z63llQRw|fNJA(k4AW#{|@k4|cnOP-wrZ9lFq$mW49MT$P=17xxoK%YaL$eMqOy5Fibf1_)so zy_k`f{N3LkZr#6zX8*X-Vmf1CQS^iQX%)mj zAO*8-3)Jc!&`7Fnu57VoNV)aJ)pC1sN?E1EEGU+lIV`;^KuaPU*47HbUY>8Q21$^< zC~yFoQ3L$H(5>gt#LqoVJvsytxb~KKu~h#DpEac8BA(`9U9}P z9;@OP`by%4ydG$x>IBXyPYKaCCUugL{IGVEPMs!9KaiBmEJ=Ks8?roSa_Hzs5^y$V zGvu1M8Ukjh9#`0^A*ffGPVxn%JQRre+C3bo(P(crC5Pha(nbDicm=>8q3BMvDG0fY zYmE^y;a6vC>hG8VtTxgKG&zJmW9{2p#lVLOR@7QR-Vu5ap`2~g1C$MC#Sr^u3UZMv znHwuYusdIf+S~Rg0~_yV3%>6Lc3(rC4_Ml0UHj(20DK| zq)?i}59M9hb@#%yLHahEnajKN{#PIk=94CiLx{mF=Gv<-^&wuO+XDH{AoriDCATcy z=c^ab@k3SfH=T%~&k%$jddOY=lik8!P;sCU%*V^g>obP+x!$CKzkl{SK9JS;K~v+g zxJ0O5JUeMQ5PqN@pm;K#gXccq_N-?;YYv`%xPv<3I(fi6PvkP}%-8x_j>&bCH6&l= zjX$P!foYm?wrMX=k5(;l0&9)yL%jRQ0hfMa*@t5oBq4gpK;?hy^$=<(0kY!C-+sP9 zgn5sDQ~E=Yo^79Eyi(r0U)hf#pdgkC;S%~+7RBOPV?c5l`vV#-KZan7iRka1{l$$r zTSt6;$O}9K$iXT;FF8rN{j4vr-4e1fDw6mDH0QTc=MtHwia+UW(WZPHg7o_aivUF+ zt;#F|?*)@&P~3EKyuL!_<4Z7Mh->^}nZYI#wEZ|ow)@rXhr74`silxa&ANy{X@fh| zQ5HqUaG++Bd9;$xH?$o_xXfDRAzf~}lB{A5io%=I_U~ljgC)fn?>R6AmM`@td5AZc zu$7-7+-{E5>=Xug(z*x9gGJ>Y0t8el?Lx|Of{ai3wDPC6jzU7~%Hp2b@N2V0x>tsw zk*6?sG}0NZ|4I!6Mb&AJyPo=JgwaaG9ABXyY$d(^W3KEDqVG@LY1Y2A(qdI9nkfTM!L+HjPAi$m^ySkGxCg`xc!|5Di zbCR6o%l_Olts{bJGMb}?6grZp@W0Wwqc!q4xP@O`bs+fS{_cnSH$QE|a0fqOZ#@PL zZ5Hs6iTX0IsaM`UW=mDyLlZqLq;cTO6IYI+IvvCNcN@$QA)s~%7ppD{1YAIttt9{j z+z2@d(}~yFN|jWFuimAK8*z03iZww=P0G>T?)iF%P2Vd~xnvYqn!crjfr6~AP7t+s zc>#%V^(;k>|R6?j|S)B=fRMH1v1_wHU?N^X+g$A|k*Zy$Q=at!2&9fSUI_x>HP^rL5AeEkcH-y&D% z_`?r(tD6rusM~&byEz~41N(V>XMBU?^L&`^BjeJ*N6x>Oy2= z6)yTjtE5(;k#y z`U2pav@;yg%qzW+61 zv)`Cj08`qhsPNH8g^x>g<>~E&Ngmf|(rT8}^?1Dt26VbME>8BL4fH&SqR^4%YtgwL zHRBgTFU(xE0Jl16E9%3cDH#9}OtcClbH0lNjzXn1PC7`OTU&Bvxiu9o`}k%?R@-^}g~bQ!3*hNj@6dKEiY>gK-ph7Tq@ z4I?@>F15z|bYy;wH?QvBKiq6qKfk%ZIljMnqp$A*Y>vKj;S+kcoIseEJ9xEQIN^{vE3plOIwfv zDX{)LW!y}~vT}e69<&CZ9mtz*!LikSuw>)s_+58#>Mn3;OHT}8(XLd}!N+P_>^7#R zRpp69{Gb(PsJO-8`sfLZK2m@~sEkowIxpAfD1+T2I;1NhV3;uGcqU{Bx3EDWj2nig z9WmS~xozKd#?CRCuL!6G{5JC@E06|@&MXEge2Nn&yvr@HepFgnA|fWtEG%zmN+tyx z=P7OwESX9N)bP#Dh)bS+krt1N0u~M{jCvRJ9M;nfU7{MIDKnle7stt=7PUhrJ3VE< zwmzd&$)QQf9E|^hpf}#yF(56Ieg(RN;H65E5GF8R)?xaAkx65l5Z3E&YXGYsP${*t z<;C8`4;+|(;NrXoV8oTyIP4~*ZQXX0X3X#2XF`7Wa-iWA;^q)}$L-Unm7Ypg#V_D_ zvY!0XEy!e`e$Z0Iohup*grZ1k>(y+G_!M|hE!QoTi4QBVc{~x3NGvV|K9?7UDK^KP za79REA|nmsZ)~L77`F|}AMI&H$v#(#RSA}dJ6mx-MqKFwNQ%7@;r1ejR^!l1=U8<_ z{|!86R@%^kb#23)(6K_WZOFMM=%&wYWaKw|Ypzx_2I(XD1k%`j+SJn@zN%<0R;+7+ zra$xqv|*srz1um_1i4(X2dlaVm*5#LT5u|BfCSBHV z63k}|d_^@Nx7h`RJ5z=PMGDExQ7l6xR7P+^Xyy10CS z@YeX7>BZ~Ue#IrUp%L>%s)b4-UOS+dqa#>e#P7P);8d(r|8QZ_@)cYTGOX<+dI8e9 zXsMiL?TN)s<4VhaagBzgtDA?#{rfwJl7GV_o42&Tk_j5fRwV>-<+=vtS-8hvR(}({ zGk-lWTbk}+9~YMh2B`;L<0g5PjVqW zt4l;+&Q`}K^NGpTW-8Qb!xvl+l;B+rh~EZvHZ>{<++8}BOWaus06misK&igTj7&}_ zM`%GLfy$JQt#tc5tx4uuBfBg-YcPpr*V-$X2ib1rbVsf-G|u23h#B-1 z-9Dm228YsD^xop8Th#vD?f3707@--sl)CcX{oT(_Hq5^6M@r>djDo>o=Z!Z-b0>>@ zLuaRq0CnvKCK1?&v&EF={NThUMAxutlcCrmN27A5$NoD=!$pnERxk)}xJerjP?6TS z&7{%+H7AHi0(e7(cCbvJK@^9~3lR;=Z7Qt{ zi|h0L&a*#t+#Yn_MxJBWXw;Lfytw#snE{c+IU3SNh?$vBk5p*IsuC)Hhtx*bbn+!cCfEX$ z5tzKs>M=Pd#Ki_lZ8Xj;U!Pn}FHU->LDXTp+$^S@=F5c?JEx6)aDkRXDmd&d_t^O@ z$Jz0*%$!6COR+IPTEiS<2k*b(Ev7AGHj4rRP;Fnhw02CaCP}Zn5L)tA=+g#E8;vUF z-7Bs&hN}hM!FuXpsYE~=124_CxK-(wVX}hyZ;+S`@r<=H5SVdf5gFAjF?mWbSV|Kb z^~YABu^y&XGMchcKdt@&s?(*AKs55c@^Us1d*~Oc&mJ{GGFyT4tmKqhjI6@P_No=d z2>rCcrictIQ7P_ep^aD$mpzGr3M+_CfLQQRZF5R(K+FU+kcr95W4)Ms>+~$CJD&E{ zneLHbnz4>(c6s2Q6}=XMl~K$%_(ZUz3|o{iQDhIULNFZ`P+6{tHr18BRZsIG%$?S; z1kCt|p4?v30GJz;HwhgcC&gaui0yT>;lW~8vpp_(Zqj0s?#P4czs z*;2hWCo341tr12P{3&a3G>s++rl&UF1 zeOyYw8yr2!j--9g7=irq80Fh}u10{0i8wi~BLy(t#9nR~up;UPG}3BOg2C3+ChJ}p zztGo{JajoY^a5#61#3#>{2%cr6l3&JD!Kx3x!W&8OsQZ`MtAo&N)p|S)fNL4KqjZ| z7DzE~TLU_udZ4PUVQ{mu~yPb*`L524Cf?n8E;Y@dP=`<%O2dbRvEQ+I}D> z72ClI^N3tZ7qF|L7P7R1&y4XSVDeP$=QI~|@>0%;XASC4)4(iU;0 zsmt0Fq2tbzXc^Lz=v!F5TJcp`peJwTq$|4#LBt?}!U40ubcQ&k zLo0pf{Js#P5?eR(p-qKF-^-J^FV!K=sa1rmakpQ@OZP#KC5$rFza6BE`kl99QdO5IvogwT*P%Bsgzfl*vi77O4@J*kqxJ5gKu znHhkf$TJTGm5s4qmS!rC5q<@eF7x1&o3>vtnTBNsuK~(-40!VP$2a#*x2DU@D=Tml zA?QZ9bU&Xs^YnHnA10WF8%c?n#vw`KQR$crhz8TQJ7L*{*_wqHin0p`Tz^dFDZqJ> z9_QzaWLo@iKwwS&F2G^ElrwNuH?<}qG>gbs9ES}_p)c=HynZok9)xy&T z8gVGs(bb;5%{S28l zPtpY02btRV&!=p+4IKw*RX^qrUbaV<24PNUf^oO6J8zgRuDt?0Gp*r zn*}q`D!MM}Ts5vVcL{1K3(mQ@wAE~$CQ>96h(%_ynVo5iaW!#JKMX`(emlIkig@MM8nC*i0n(|@?a6;O*zl1$UY>ih&2uj)#V3~}Vs z{l|wn%0fK+xakkqk2MYg7`n%5illX0Yd=*@(YIJ}Q=!5df!Tm%SC|Y1V(Lys?}QRp z#djAbV69lH%wwdW(pf+2$s zdVfdC3Nh2Ue<-$Y--C0iFF>0i5Qy{ zM7evQMd8#fnR6Rk-!j5D=U1QOoE-z2v6kk(v5rfL1<(Qr53SeKWqwq?Vqq6yyJw<1 zGs$jXchQ$IT1n%YOVD&fcvh>H4C9D=T@U**%agsSj0AIEb&?O^iZFMi35zZ(yP>4h zTAW}yCwv3CCGos5omzybxYm(0a~0F;t#+%drdll+8nQ+(VIs>lG_7;E^!URrji4T+ zDd6Z?Drj-)digxIfu@Bg0v=0Ep>(xL)9m4*F>~$Q62)>sffi1b65{*1xM&|&S^(Py zqc64cn{{7LeXa@`K#rgbwfno8ARsl#diUT4#K~1bIA8@(UJLxLpjZXKT|v5|x|13y zGGfdLny}}Tz>FWdaX;V6K|bfJ^^4}#reb0N)Rqc875WRW3FNrBWjfK(JuI_RaZxO= z&VfbeQ0gpQ9PYXhllKF-0?xAhVka-iKu0lrwI!*xM2iMQGd(5|$N%wT%mj!f4Dj%w z&JqC$ruSW*AO+&&@^Wp_%}BRl@IC7b6?c6T4M(X@;IC5<8~!Ji&x{KQ6gE&d@H`Zf zS+a%cj&6VPHL_2{P#3sLKgJ_lQSlUTVmRqu{ zg3np8G+5VCMthaIr6h!6jAM(~HHBrW+8tiR;$Fv5eDw_s4&SV?nSK(H?R*S<%#fid z54*xhykf(#&Qz5Xm}(QNkAWB1^9}~Lc;UPjr5Pqw{%`Tcus?s1Y?W(N2H5X~by8Qp zGsz5qfDI%ZAYDJ@c?>p}qv3hwwE#1A_pU&B3tRvf?{M3%(M6E~Z&6;z=Y|q|9D;df zqs9Hr$G30Lso|PUm3z96(*OWOXjO$nWW*Kf<})rb(zR0UE`*{&LuRn%<-oX z(FiCgOXm=MR*naNo3TL!+#ulQ%DB=yg}h-^Z}OKzk+)9b5g^Atz5Qs5rbbb#f*Eac z1*a58h{Pano9Ty7AAel_I(`5BouV^v4+#gwUH1#3^j3d!tABl+!gy;`rGVQ+At0fJ z%yd&`=w)YEFaN24Ay~7qMIuu!% zLtCA%J9iUZ)$tVQ?48sDz#?WCVg+LYm`RHegBfd$Q_-NfQQT+Hf$nGaIfGV4_Ng}| zzKNT4BWJRkjOvttUHrd51Q{?riK+DSP%f|{RJU?Z)#aydEs6wL^&6PBWuO9`WZS{r z-2u|>3p#0*Vdx6YrS2Z1HHW}*_HvUVRz!}?DTs8h`l!_~{aUxox$H$sQs|qj#VH0* zC2nNp2}Vqbxw}fKJG`aUBep6Pvb{iK)`%_}_qy*}oQ@MLtW^CCB{d5zx4P$=ma5?x zjZ3wOP5+Ga-dcfj+jm`Y&y$8H$INzxaTh?M@l653x^o z=|0ca7&^{UI+YWKCRB4QaME};b~_yMM51PO5uMMjo0_-2tZ({U;o2!);<*FZ->MBp zaa#`(GI*JJ4-$>5v_L8c`3fz9d8gn-T)Yg^SJHs9f&m5Tz#tp4=j2O0klo+DMLck4 zO`IBH`)Ay0kdUAhu@g)$Cp}f(2ZA$Dy~TD*5kpY1$hqgoNK%aKxJT-ml7M-Eg%}+T z&^j}GG5+yJXJKZC98|>Ajwg!=YVks@ERRcPh_am>aZ1|YY03kI-Qogk0bSlRh6NTo zwbbqnL^8DL%toD%%Mk-Yi;<0IK*-sAI{Nk)x|d>L&e$HM#oua}HY7=XjTQkC^-6bA z&Pep#Z2QX4q zT@uXeye|taJKDNwCL&c^Duu<3w!~jl25WqF2!mcSj01e#lY&@A0`#(hq7z<*d=^B- zer3pDnrK%?Ou^weGFzj}PoMzN{xYOY8hRJl?b0yZgy|C~1S&opu~x<3PC{V4T(e@& zryI6ZIbIb-dv~6G_n$vM^q&5kfeW#uLvt}2QJB$XhL)pD#SSPVwQrT!gO)F%#V%8u zTh*wusn?x!E8HcqT@-t{nUbOhr4(J6a%H`5){3*=s9GE!BMQtI6eueH^AqYPzkl;# zv%GnG^B%WQTBS9n0Fts$VX4rtz?wGDgM|=Ze@{OC^$?4SLlKo=Luc#w_dK@h}s=4i=<1R9t#`L%cFXno8E`J+aK(oPq!c6|G)}@ zth}u!nM=;q5@q2%Inv7Ev~#ziUkd~$Xt zxaO+WF#lnkg1FME3R|S+a-_Kf^l!+VtYag}y;wpufibzf&?Ay~cEG4viD&#vNS3bh zef>t1pY_x!L18~iQqzRx?=Ta1Q~&jF!A=D@!SX{)CyrR7xYDe&SgvR^h4dPhALp3n zq`1!r1~OU105J+xe;5Iy`W5PblRw}AfRENRTLW}rASP>V> z%M+MSEcmm>C*%BjtiO8Tpu`{|U~;Pfo-4nX!cycaLx0)L@!PjIA3yS=led6gv;w4$ zOTMvTf8M1<|E>>2#g)MA_ z3DI@a^;dm;m?qFVFsdsHqr8|O!)TD{SQ7;vO_lm{sJ=mO@Fb6>R#d|>8W_!xrd-gR zg1C5?VHN&9*hBpL;1EQTv7`K7mF8eV7;GTTf<*-)6k{|QNLVrzdh=G?vryn*IKZry z-M)tDG1gQ52<_(e1RYIhE?_XxaDlu=Q3X7>r~nPd4O0n-WLIrC!wk-^wmmv$7N9mh z+7Yr7}sda*2A>MCX33pr++j@6*%V{DKh8t!2Epsh(7s^k;zmvSD~t? zxvl8Q228IK9tQF0RaaU{+Z)%@BVh))y*RH3rBD@q15z}8-e|HTYagu{Da^+eHT3){8mE)LKSt1and)UkWw zqi(wa6{l07Np)noNiaR17?s_P2)Jzd8!u4e4*g(CCS$Y(A&JgoXoN^R45Moi&{P(o z@NI4k@TE2*VRu9p^a(1jRY;a`)b2tB36|HsA*lIrEFDjc5ovWKe`QmHNBK5j}kwQ<>)Lg$y zKr+bm&_8LQ{T%gUqrJxe_HGxSJm`tVg(qlrAzJ4b`V>U`>kM_46K;aA*UXw;POd4% z=OS3H_7$P3B~yeDU0?c(Ax8|ixY(PZip4jPTMu{k?>yC*cz?N>WGWK0knG(c+UbyR z==p+HDUu2bk(mNKUr6VkU8g2Z`;pXv2wjC#by~I(OmA@^h^Qc;#EDdGd?v&;Hi($R zpZvc;w-`#c4Kb%9R3)fOa{p0na@EO{np8hD`gNxp z=oohh6bYrD>E~`&X(yNW>T&G>{?ozv_6lWdM? zW?3{eeOCRzmqNt&@y+e+&4+>2dES8mCOW0C?sHDi?2oQc>5o{V_VSb0vy=-q%)&+u z*ZXDt8xDF;KUlLMCjkDXcH-?r#T3^&$IH|HbNmDA`et+U>%$GKE~p2&>FpGZ0F?nI ztLGTN(X0W^{{oN90J!t?)5kXty?@_*-uw4H{y%t%QZY~eeE*apH-5;(rcdg zo*G2Y=;`E2y&V?Nk1Jp3?LMC-TM5)-|`;A66OVN8$)98Pv?6PL

    }5p4Q>@aM?Pyt# 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 "stm32f103.list" + @echo 'Finished building: $@' + @echo ' ' + +stm32f103.bin: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS) + arm-none-eabi-objcopy -O binary $(EXECUTABLES) "stm32f103.bin" + @echo 'Finished building: $@' + @echo ' ' + +# Other Targets +clean: + -$(RM) $(SIZE_OUTPUT)$(OBJDUMP_LIST)$(EXECUTABLES)$(OBJS)$(S_DEPS)$(S_UPPER_DEPS)$(C_DEPS)$(OBJCOPY_BIN) stm32f103.elf + -@echo ' ' + +secondary-outputs: $(SIZE_OUTPUT) $(OBJDUMP_LIST) $(OBJCOPY_BIN) + +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 fail-specified-linker-script-missing warn-no-linker-script-specified + +-include ../makefile.targets diff --git a/stm32f103/Debug/objects.list b/stm32f103/Debug/objects.list new file mode 100644 index 0000000..ed9dee4 --- /dev/null +++ b/stm32f103/Debug/objects.list @@ -0,0 +1,20 @@ +"./Core/Src/main.o" +"./Core/Src/stm32f1xx_hal_msp.o" +"./Core/Src/stm32f1xx_it.o" +"./Core/Src/syscalls.o" +"./Core/Src/sysmem.o" +"./Core/Src/system_stm32f1xx.o" +"./Core/Startup/startup_stm32f103c8tx.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o" +"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o" diff --git a/stm32f103/Debug/objects.mk b/stm32f103/Debug/objects.mk new file mode 100644 index 0000000..e12976d --- /dev/null +++ b/stm32f103/Debug/objects.mk @@ -0,0 +1,9 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (9-2020-q2-update) +################################################################################ + +USER_OBJS := + +LIBS := + diff --git a/stm32f103/Debug/sources.mk b/stm32f103/Debug/sources.mk new file mode 100644 index 0000000..0b21f01 --- /dev/null +++ b/stm32f103/Debug/sources.mk @@ -0,0 +1,26 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (9-2020-q2-update) +################################################################################ + +ELF_SRCS := +OBJ_SRCS := +S_SRCS := +C_SRCS := +S_UPPER_SRCS := +O_SRCS := +SIZE_OUTPUT := +OBJDUMP_LIST := +EXECUTABLES := +OBJS := +S_DEPS := +S_UPPER_DEPS := +C_DEPS := +OBJCOPY_BIN := + +# Every subdirectory with source files must be described here +SUBDIRS := \ +Core/Src \ +Core/Startup \ +Drivers/STM32F1xx_HAL_Driver/Src \ + diff --git a/stm32f103/Debug/stm32f103.bin b/stm32f103/Debug/stm32f103.bin new file mode 100755 index 0000000000000000000000000000000000000000..4057adea29976f15d6851ae3bc7d6c61030f5500 GIT binary patch literal 3676 zcmdT`|8EoL8GrB2jvd>HO&mHC12Q=TQE#j?(I{XLu8l6l4uUnR){<>KCv2QuwxwjS zG}eT>c3+@X$Hpe6L_!xP0+~h)vZf(zQZ>of?1w>q=w+&wPSvUlq_e|8yw7uY z`POZJz#_fQbI<#He?IT?zU(lItr3`af@j_m*6*?Yi1lYI_Nl)~@ZNX$AK`x$>v`z@ zzpPKCv+DDOns+ud;qDbjx^B2K;kR7}uH0uuP85eiw*rjCNI2BYyxs{R6Mb9g5v+ah zEsKwR+AB`5E6i}sGef8`L#{2%6erHT#jbc}BSJ?z+Z2(R(Y+Agz}nlCBg&X^S82;~ zVkvuQuGnQ}nHV3y*8ndT28mO`uO2oBNt-k`J`iLkaTVC81;v8GizS7LrUKc)IJ67d z_y*qcapvKoWM_?)6Hncei?@o`zlTU#Gvm2%I%R}}^Vv0^1yH79s?DIAz>k6NxA-xk zq?A-IXb<=<@ZA>QB@~o`%F3-|_2y7F3-O8Kb#~>%Z&`U^hB4dETFACSkAq%|rN>$J zf|;pYGx){6$!q|$0E+DSGW{yWAsYH1{ZAQe*i>9;Q|(h$`(li<{Gqn+`oDfz*^Z86 z{wr;D>LjW|m06ZyEO4Nyrzy=uUjNH;w-39zZb#lo&QJQ%zFsDBdRTFFUP_vi_38(8 zX6$`bue$4~0s2oEISdTY|IcDswSX6ICaO{eLqb>)V$AT&2l4Bz)vNhB6C>yhE3+7C zIPqQdXGCeqw5ctb=*T+x(A?i?Q~yQ`eotQXXv#%-8LD&YIwhphO|>9lId_{cFQzGKv_j*t2Ht53?S@C3TctICW;u)zu*Jcg&m+hYrpUYS~%J z@ehRicT**`Em6pgCBS>KkmJC+lPakGL^u_ZH#^=Idsa}n__f*MX>O7egSro$;NpEs za1-^WUOiWLXIT4~;>vh%?y2Wacgi6hb#eMWqSmWDbyl|biWA?rDq=-HOtICgU#X8| zN7WnZNRDjs@`d@}_BC=uu2)}xUc~D7N^5V`1?(;&!L~?!#0=3m@%Y~gY7}+h1ST=# z2gRS@1PVp~)d^I7ZOI9S+8ENUR>bicy6-osKnh7#0S$~hO`~8QEA2gn~vPsRdRoy z?pv1AfQ7PM8y>Y8tn@n7V3NPmvs9V&n(S1DNsnnM(lyYtL(^dKt#Qoa-!PjM8#Xtk56w~vT9TwUu9{lWofOx1;`=` z?T&?wt1OI8Z&)yHorN!D+oEU^*_tc<^KNd($1{u6y_o}uVR7|>7G!?^`6SbZx`i4Sou8>quyXCD u_vS@;sCy;N3odtq$J^-h2b!9Lp%8jt{c+eJ{*xT@Hes>NbBs1QtbYTb2obCR literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/stm32f103.elf b/stm32f103/Debug/stm32f103.elf new file mode 100755 index 0000000000000000000000000000000000000000..02f95d241d15257de2106e0ba26d4bbee3a26994 GIT binary patch literal 765760 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 literal 0 HcmV?d00001 diff --git a/stm32f103/Debug/stm32f103.list b/stm32f103/Debug/stm32f103.list new file mode 100644 index 0000000..ec410f8 --- /dev/null +++ b/stm32f103/Debug/stm32f103.list @@ -0,0 +1,2606 @@ + +stm32f103.elf: file format elf32-littlearm + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .isr_vector 0000010c 08000000 08000000 00010000 2**0 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 1 .text 00000d1c 0800010c 0800010c 0001010c 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rodata 00000020 08000e28 08000e28 00010e28 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 3 .ARM.extab 00000000 08000e48 08000e48 0002000c 2**0 + CONTENTS + 4 .ARM 00000000 08000e48 08000e48 0002000c 2**0 + CONTENTS + 5 .preinit_array 00000000 08000e48 08000e48 0002000c 2**0 + CONTENTS, ALLOC, LOAD, DATA + 6 .init_array 00000004 08000e48 08000e48 00010e48 2**2 + CONTENTS, ALLOC, LOAD, DATA + 7 .fini_array 00000004 08000e4c 08000e4c 00010e4c 2**2 + CONTENTS, ALLOC, LOAD, DATA + 8 .data 0000000c 20000000 08000e50 00020000 2**2 + CONTENTS, ALLOC, LOAD, DATA + 9 .bss 00000020 2000000c 08000e5c 0002000c 2**2 + ALLOC + 10 ._user_heap_stack 00000604 2000002c 08000e5c 0002002c 2**0 + ALLOC + 11 .ARM.attributes 00000029 00000000 00000000 0002000c 2**0 + CONTENTS, READONLY + 12 .debug_info 00002816 00000000 00000000 00020035 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 13 .debug_abbrev 00000c75 00000000 00000000 0002284b 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 14 .debug_aranges 00000378 00000000 00000000 000234c0 2**3 + CONTENTS, READONLY, DEBUGGING, OCTETS + 15 .debug_ranges 00000300 00000000 00000000 00023838 2**3 + CONTENTS, READONLY, DEBUGGING, OCTETS + 16 .debug_macro 000156ee 00000000 00000000 00023b38 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 17 .debug_line 00003d01 00000000 00000000 00039226 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 18 .debug_str 0007b704 00000000 00000000 0003cf27 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 19 .comment 00000053 00000000 00000000 000b862b 2**0 + CONTENTS, READONLY + 20 .debug_frame 00000be8 00000000 00000000 000b8680 2**2 + CONTENTS, READONLY, DEBUGGING, OCTETS + +Disassembly of section .text: + +0800010c <__do_global_dtors_aux>: + 800010c: b510 push {r4, lr} + 800010e: 4c05 ldr r4, [pc, #20] ; (8000124 <__do_global_dtors_aux+0x18>) + 8000110: 7823 ldrb r3, [r4, #0] + 8000112: b933 cbnz r3, 8000122 <__do_global_dtors_aux+0x16> + 8000114: 4b04 ldr r3, [pc, #16] ; (8000128 <__do_global_dtors_aux+0x1c>) + 8000116: b113 cbz r3, 800011e <__do_global_dtors_aux+0x12> + 8000118: 4804 ldr r0, [pc, #16] ; (800012c <__do_global_dtors_aux+0x20>) + 800011a: f3af 8000 nop.w + 800011e: 2301 movs r3, #1 + 8000120: 7023 strb r3, [r4, #0] + 8000122: bd10 pop {r4, pc} + 8000124: 2000000c .word 0x2000000c + 8000128: 00000000 .word 0x00000000 + 800012c: 08000e10 .word 0x08000e10 + +08000130 : + 8000130: b508 push {r3, lr} + 8000132: 4b03 ldr r3, [pc, #12] ; (8000140 ) + 8000134: b11b cbz r3, 800013e + 8000136: 4903 ldr r1, [pc, #12] ; (8000144 ) + 8000138: 4803 ldr r0, [pc, #12] ; (8000148 ) + 800013a: f3af 8000 nop.w + 800013e: bd08 pop {r3, pc} + 8000140: 00000000 .word 0x00000000 + 8000144: 20000010 .word 0x20000010 + 8000148: 08000e10 .word 0x08000e10 + +0800014c

    : +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + 800014c: b580 push {r7, lr} + 800014e: af00 add r7, sp, #0 + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + 8000150: f000 f904 bl 800035c + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + 8000154: f000 f803 bl 800015e + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + 8000158: f000 f846 bl 80001e8 + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + 800015c: e7fe b.n 800015c + +0800015e : +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + 800015e: b580 push {r7, lr} + 8000160: b090 sub sp, #64 ; 0x40 + 8000162: af00 add r7, sp, #0 + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + 8000164: f107 0318 add.w r3, r7, #24 + 8000168: 2228 movs r2, #40 ; 0x28 + 800016a: 2100 movs r1, #0 + 800016c: 4618 mov r0, r3 + 800016e: f000 fe47 bl 8000e00 + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 8000172: 1d3b adds r3, r7, #4 + 8000174: 2200 movs r2, #0 + 8000176: 601a str r2, [r3, #0] + 8000178: 605a str r2, [r3, #4] + 800017a: 609a str r2, [r3, #8] + 800017c: 60da str r2, [r3, #12] + 800017e: 611a str r2, [r3, #16] + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + 8000180: 2301 movs r3, #1 + 8000182: 61bb str r3, [r7, #24] + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + 8000184: f44f 3380 mov.w r3, #65536 ; 0x10000 + 8000188: 61fb str r3, [r7, #28] + RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; + 800018a: 2300 movs r3, #0 + 800018c: 623b str r3, [r7, #32] + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + 800018e: 2301 movs r3, #1 + 8000190: 62bb str r3, [r7, #40] ; 0x28 + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + 8000192: 2302 movs r3, #2 + 8000194: 637b str r3, [r7, #52] ; 0x34 + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + 8000196: f44f 3380 mov.w r3, #65536 ; 0x10000 + 800019a: 63bb str r3, [r7, #56] ; 0x38 + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; + 800019c: f44f 13e0 mov.w r3, #1835008 ; 0x1c0000 + 80001a0: 63fb str r3, [r7, #60] ; 0x3c + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 80001a2: f107 0318 add.w r3, r7, #24 + 80001a6: 4618 mov r0, r3 + 80001a8: f000 fa1e bl 80005e8 + 80001ac: 4603 mov r3, r0 + 80001ae: 2b00 cmp r3, #0 + 80001b0: d001 beq.n 80001b6 + { + Error_Handler(); + 80001b2: f000 f847 bl 8000244 + } + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + 80001b6: 230f movs r3, #15 + 80001b8: 607b str r3, [r7, #4] + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + 80001ba: 2302 movs r3, #2 + 80001bc: 60bb str r3, [r7, #8] + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + 80001be: 2300 movs r3, #0 + 80001c0: 60fb str r3, [r7, #12] + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + 80001c2: f44f 6380 mov.w r3, #1024 ; 0x400 + 80001c6: 613b str r3, [r7, #16] + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 80001c8: 2300 movs r3, #0 + 80001ca: 617b str r3, [r7, #20] + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) + 80001cc: 1d3b adds r3, r7, #4 + 80001ce: 2102 movs r1, #2 + 80001d0: 4618 mov r0, r3 + 80001d2: f000 fc89 bl 8000ae8 + 80001d6: 4603 mov r3, r0 + 80001d8: 2b00 cmp r3, #0 + 80001da: d001 beq.n 80001e0 + { + Error_Handler(); + 80001dc: f000 f832 bl 8000244 + } +} + 80001e0: bf00 nop + 80001e2: 3740 adds r7, #64 ; 0x40 + 80001e4: 46bd mov sp, r7 + 80001e6: bd80 pop {r7, pc} + +080001e8 : + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + 80001e8: b480 push {r7} + 80001ea: b085 sub sp, #20 + 80001ec: af00 add r7, sp, #0 + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + 80001ee: 4b14 ldr r3, [pc, #80] ; (8000240 ) + 80001f0: 699b ldr r3, [r3, #24] + 80001f2: 4a13 ldr r2, [pc, #76] ; (8000240 ) + 80001f4: f043 0310 orr.w r3, r3, #16 + 80001f8: 6193 str r3, [r2, #24] + 80001fa: 4b11 ldr r3, [pc, #68] ; (8000240 ) + 80001fc: 699b ldr r3, [r3, #24] + 80001fe: f003 0310 and.w r3, r3, #16 + 8000202: 60fb str r3, [r7, #12] + 8000204: 68fb ldr r3, [r7, #12] + __HAL_RCC_GPIOD_CLK_ENABLE(); + 8000206: 4b0e ldr r3, [pc, #56] ; (8000240 ) + 8000208: 699b ldr r3, [r3, #24] + 800020a: 4a0d ldr r2, [pc, #52] ; (8000240 ) + 800020c: f043 0320 orr.w r3, r3, #32 + 8000210: 6193 str r3, [r2, #24] + 8000212: 4b0b ldr r3, [pc, #44] ; (8000240 ) + 8000214: 699b ldr r3, [r3, #24] + 8000216: f003 0320 and.w r3, r3, #32 + 800021a: 60bb str r3, [r7, #8] + 800021c: 68bb ldr r3, [r7, #8] + __HAL_RCC_GPIOA_CLK_ENABLE(); + 800021e: 4b08 ldr r3, [pc, #32] ; (8000240 ) + 8000220: 699b ldr r3, [r3, #24] + 8000222: 4a07 ldr r2, [pc, #28] ; (8000240 ) + 8000224: f043 0304 orr.w r3, r3, #4 + 8000228: 6193 str r3, [r2, #24] + 800022a: 4b05 ldr r3, [pc, #20] ; (8000240 ) + 800022c: 699b ldr r3, [r3, #24] + 800022e: f003 0304 and.w r3, r3, #4 + 8000232: 607b str r3, [r7, #4] + 8000234: 687b ldr r3, [r7, #4] + +} + 8000236: bf00 nop + 8000238: 3714 adds r7, #20 + 800023a: 46bd mov sp, r7 + 800023c: bc80 pop {r7} + 800023e: 4770 bx lr + 8000240: 40021000 .word 0x40021000 + +08000244 : +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + 8000244: b480 push {r7} + 8000246: 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"); + 8000248: b672 cpsid i +} + 800024a: 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) + 800024c: e7fe b.n 800024c + ... + +08000250 : +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + 8000250: b480 push {r7} + 8000252: b085 sub sp, #20 + 8000254: af00 add r7, sp, #0 + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_AFIO_CLK_ENABLE(); + 8000256: 4b15 ldr r3, [pc, #84] ; (80002ac ) + 8000258: 699b ldr r3, [r3, #24] + 800025a: 4a14 ldr r2, [pc, #80] ; (80002ac ) + 800025c: f043 0301 orr.w r3, r3, #1 + 8000260: 6193 str r3, [r2, #24] + 8000262: 4b12 ldr r3, [pc, #72] ; (80002ac ) + 8000264: 699b ldr r3, [r3, #24] + 8000266: f003 0301 and.w r3, r3, #1 + 800026a: 60bb str r3, [r7, #8] + 800026c: 68bb ldr r3, [r7, #8] + __HAL_RCC_PWR_CLK_ENABLE(); + 800026e: 4b0f ldr r3, [pc, #60] ; (80002ac ) + 8000270: 69db ldr r3, [r3, #28] + 8000272: 4a0e ldr r2, [pc, #56] ; (80002ac ) + 8000274: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8000278: 61d3 str r3, [r2, #28] + 800027a: 4b0c ldr r3, [pc, #48] ; (80002ac ) + 800027c: 69db ldr r3, [r3, #28] + 800027e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8000282: 607b str r3, [r7, #4] + 8000284: 687b ldr r3, [r7, #4] + + /* System interrupt init*/ + + /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled + */ + __HAL_AFIO_REMAP_SWJ_NOJTAG(); + 8000286: 4b0a ldr r3, [pc, #40] ; (80002b0 ) + 8000288: 685b ldr r3, [r3, #4] + 800028a: 60fb str r3, [r7, #12] + 800028c: 68fb ldr r3, [r7, #12] + 800028e: f023 63e0 bic.w r3, r3, #117440512 ; 0x7000000 + 8000292: 60fb str r3, [r7, #12] + 8000294: 68fb ldr r3, [r7, #12] + 8000296: f043 7300 orr.w r3, r3, #33554432 ; 0x2000000 + 800029a: 60fb str r3, [r7, #12] + 800029c: 4a04 ldr r2, [pc, #16] ; (80002b0 ) + 800029e: 68fb ldr r3, [r7, #12] + 80002a0: 6053 str r3, [r2, #4] + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + 80002a2: bf00 nop + 80002a4: 3714 adds r7, #20 + 80002a6: 46bd mov sp, r7 + 80002a8: bc80 pop {r7} + 80002aa: 4770 bx lr + 80002ac: 40021000 .word 0x40021000 + 80002b0: 40010000 .word 0x40010000 + +080002b4 : +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + 80002b4: b480 push {r7} + 80002b6: 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) + 80002b8: e7fe b.n 80002b8 + +080002ba : + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + 80002ba: b480 push {r7} + 80002bc: af00 add r7, sp, #0 + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + 80002be: e7fe b.n 80002be + +080002c0 : + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + 80002c0: b480 push {r7} + 80002c2: af00 add r7, sp, #0 + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + 80002c4: e7fe b.n 80002c4 + +080002c6 : + +/** + * @brief This function handles Prefetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + 80002c6: b480 push {r7} + 80002c8: af00 add r7, sp, #0 + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + 80002ca: e7fe b.n 80002ca + +080002cc : + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + 80002cc: b480 push {r7} + 80002ce: af00 add r7, sp, #0 + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + 80002d0: e7fe b.n 80002d0 + +080002d2 : + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + 80002d2: b480 push {r7} + 80002d4: af00 add r7, sp, #0 + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + 80002d6: bf00 nop + 80002d8: 46bd mov sp, r7 + 80002da: bc80 pop {r7} + 80002dc: 4770 bx lr + +080002de : + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + 80002de: b480 push {r7} + 80002e0: af00 add r7, sp, #0 + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + 80002e2: bf00 nop + 80002e4: 46bd mov sp, r7 + 80002e6: bc80 pop {r7} + 80002e8: 4770 bx lr + +080002ea : + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + 80002ea: b480 push {r7} + 80002ec: af00 add r7, sp, #0 + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + 80002ee: bf00 nop + 80002f0: 46bd mov sp, r7 + 80002f2: bc80 pop {r7} + 80002f4: 4770 bx lr + +080002f6 : + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + 80002f6: b580 push {r7, lr} + 80002f8: af00 add r7, sp, #0 + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + 80002fa: f000 f875 bl 80003e8 + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + 80002fe: bf00 nop + 8000300: bd80 pop {r7, pc} + +08000302 : + * @note This function should be used only after reset. + * @param None + * @retval None + */ +void SystemInit (void) +{ + 8000302: b480 push {r7} + 8000304: af00 add r7, sp, #0 + + /* Configure the Vector Table location -------------------------------------*/ +#if defined(USER_VECT_TAB_ADDRESS) + SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ +#endif /* USER_VECT_TAB_ADDRESS */ +} + 8000306: bf00 nop + 8000308: 46bd mov sp, r7 + 800030a: bc80 pop {r7} + 800030c: 4770 bx lr + ... + +08000310 : + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + 8000310: 480c ldr r0, [pc, #48] ; (8000344 ) + ldr r1, =_edata + 8000312: 490d ldr r1, [pc, #52] ; (8000348 ) + ldr r2, =_sidata + 8000314: 4a0d ldr r2, [pc, #52] ; (800034c ) + movs r3, #0 + 8000316: 2300 movs r3, #0 + b LoopCopyDataInit + 8000318: e002 b.n 8000320 + +0800031a : + +CopyDataInit: + ldr r4, [r2, r3] + 800031a: 58d4 ldr r4, [r2, r3] + str r4, [r0, r3] + 800031c: 50c4 str r4, [r0, r3] + adds r3, r3, #4 + 800031e: 3304 adds r3, #4 + +08000320 : + +LoopCopyDataInit: + adds r4, r0, r3 + 8000320: 18c4 adds r4, r0, r3 + cmp r4, r1 + 8000322: 428c cmp r4, r1 + bcc CopyDataInit + 8000324: d3f9 bcc.n 800031a + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + 8000326: 4a0a ldr r2, [pc, #40] ; (8000350 ) + ldr r4, =_ebss + 8000328: 4c0a ldr r4, [pc, #40] ; (8000354 ) + movs r3, #0 + 800032a: 2300 movs r3, #0 + b LoopFillZerobss + 800032c: e001 b.n 8000332 + +0800032e : + +FillZerobss: + str r3, [r2] + 800032e: 6013 str r3, [r2, #0] + adds r2, r2, #4 + 8000330: 3204 adds r2, #4 + +08000332 : + +LoopFillZerobss: + cmp r2, r4 + 8000332: 42a2 cmp r2, r4 + bcc FillZerobss + 8000334: d3fb bcc.n 800032e + +/* Call the clock system intitialization function.*/ + bl SystemInit + 8000336: f7ff ffe4 bl 8000302 +/* Call static constructors */ + bl __libc_init_array + 800033a: f000 fd3d bl 8000db8 <__libc_init_array> +/* Call the application's entry point.*/ + bl main + 800033e: f7ff ff05 bl 800014c
    + bx lr + 8000342: 4770 bx lr + ldr r0, =_sdata + 8000344: 20000000 .word 0x20000000 + ldr r1, =_edata + 8000348: 2000000c .word 0x2000000c + ldr r2, =_sidata + 800034c: 08000e50 .word 0x08000e50 + ldr r2, =_sbss + 8000350: 2000000c .word 0x2000000c + ldr r4, =_ebss + 8000354: 2000002c .word 0x2000002c + +08000358 : + * @retval : None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + 8000358: e7fe b.n 8000358 + ... + +0800035c : + * need to ensure that the SysTick time base is always set to 1 millisecond + * to have correct HAL operation. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_Init(void) +{ + 800035c: b580 push {r7, lr} + 800035e: af00 add r7, sp, #0 + defined(STM32F102x6) || defined(STM32F102xB) || \ + defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) || \ + defined(STM32F105xC) || defined(STM32F107xC) + + /* Prefetch buffer is not available on value line devices */ + __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); + 8000360: 4b08 ldr r3, [pc, #32] ; (8000384 ) + 8000362: 681b ldr r3, [r3, #0] + 8000364: 4a07 ldr r2, [pc, #28] ; (8000384 ) + 8000366: f043 0310 orr.w r3, r3, #16 + 800036a: 6013 str r3, [r2, #0] +#endif +#endif /* PREFETCH_ENABLE */ + + /* Set Interrupt Group Priority */ + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); + 800036c: 2003 movs r0, #3 + 800036e: f000 f907 bl 8000580 + + /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ + HAL_InitTick(TICK_INT_PRIORITY); + 8000372: 200f movs r0, #15 + 8000374: f000 f808 bl 8000388 + + /* Init the low level hardware */ + HAL_MspInit(); + 8000378: f7ff ff6a bl 8000250 + + /* Return function status */ + return HAL_OK; + 800037c: 2300 movs r3, #0 +} + 800037e: 4618 mov r0, r3 + 8000380: bd80 pop {r7, pc} + 8000382: bf00 nop + 8000384: 40022000 .word 0x40022000 + +08000388 : + * implementation in user file. + * @param TickPriority Tick interrupt priority. + * @retval HAL status + */ +__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) +{ + 8000388: b580 push {r7, lr} + 800038a: b082 sub sp, #8 + 800038c: af00 add r7, sp, #0 + 800038e: 6078 str r0, [r7, #4] + /* Configure the SysTick to have interrupt in 1ms time basis*/ + if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) + 8000390: 4b12 ldr r3, [pc, #72] ; (80003dc ) + 8000392: 681a ldr r2, [r3, #0] + 8000394: 4b12 ldr r3, [pc, #72] ; (80003e0 ) + 8000396: 781b ldrb r3, [r3, #0] + 8000398: 4619 mov r1, r3 + 800039a: f44f 737a mov.w r3, #1000 ; 0x3e8 + 800039e: fbb3 f3f1 udiv r3, r3, r1 + 80003a2: fbb2 f3f3 udiv r3, r2, r3 + 80003a6: 4618 mov r0, r3 + 80003a8: f000 f911 bl 80005ce + 80003ac: 4603 mov r3, r0 + 80003ae: 2b00 cmp r3, #0 + 80003b0: d001 beq.n 80003b6 + { + return HAL_ERROR; + 80003b2: 2301 movs r3, #1 + 80003b4: e00e b.n 80003d4 + } + + /* Configure the SysTick IRQ priority */ + if (TickPriority < (1UL << __NVIC_PRIO_BITS)) + 80003b6: 687b ldr r3, [r7, #4] + 80003b8: 2b0f cmp r3, #15 + 80003ba: d80a bhi.n 80003d2 + { + HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); + 80003bc: 2200 movs r2, #0 + 80003be: 6879 ldr r1, [r7, #4] + 80003c0: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff + 80003c4: f000 f8e7 bl 8000596 + uwTickPrio = TickPriority; + 80003c8: 4a06 ldr r2, [pc, #24] ; (80003e4 ) + 80003ca: 687b ldr r3, [r7, #4] + 80003cc: 6013 str r3, [r2, #0] + { + return HAL_ERROR; + } + + /* Return function status */ + return HAL_OK; + 80003ce: 2300 movs r3, #0 + 80003d0: e000 b.n 80003d4 + return HAL_ERROR; + 80003d2: 2301 movs r3, #1 +} + 80003d4: 4618 mov r0, r3 + 80003d6: 3708 adds r7, #8 + 80003d8: 46bd mov sp, r7 + 80003da: bd80 pop {r7, pc} + 80003dc: 20000000 .word 0x20000000 + 80003e0: 20000008 .word 0x20000008 + 80003e4: 20000004 .word 0x20000004 + +080003e8 : + * @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) +{ + 80003e8: b480 push {r7} + 80003ea: af00 add r7, sp, #0 + uwTick += uwTickFreq; + 80003ec: 4b05 ldr r3, [pc, #20] ; (8000404 ) + 80003ee: 781b ldrb r3, [r3, #0] + 80003f0: 461a mov r2, r3 + 80003f2: 4b05 ldr r3, [pc, #20] ; (8000408 ) + 80003f4: 681b ldr r3, [r3, #0] + 80003f6: 4413 add r3, r2 + 80003f8: 4a03 ldr r2, [pc, #12] ; (8000408 ) + 80003fa: 6013 str r3, [r2, #0] +} + 80003fc: bf00 nop + 80003fe: 46bd mov sp, r7 + 8000400: bc80 pop {r7} + 8000402: 4770 bx lr + 8000404: 20000008 .word 0x20000008 + 8000408: 20000028 .word 0x20000028 + +0800040c : + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval tick value + */ +__weak uint32_t HAL_GetTick(void) +{ + 800040c: b480 push {r7} + 800040e: af00 add r7, sp, #0 + return uwTick; + 8000410: 4b02 ldr r3, [pc, #8] ; (800041c ) + 8000412: 681b ldr r3, [r3, #0] +} + 8000414: 4618 mov r0, r3 + 8000416: 46bd mov sp, r7 + 8000418: bc80 pop {r7} + 800041a: 4770 bx lr + 800041c: 20000028 .word 0x20000028 + +08000420 <__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) +{ + 8000420: b480 push {r7} + 8000422: b085 sub sp, #20 + 8000424: af00 add r7, sp, #0 + 8000426: 6078 str r0, [r7, #4] + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 8000428: 687b ldr r3, [r7, #4] + 800042a: f003 0307 and.w r3, r3, #7 + 800042e: 60fb str r3, [r7, #12] + + reg_value = SCB->AIRCR; /* read old register configuration */ + 8000430: 4b0c ldr r3, [pc, #48] ; (8000464 <__NVIC_SetPriorityGrouping+0x44>) + 8000432: 68db ldr r3, [r3, #12] + 8000434: 60bb str r3, [r7, #8] + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + 8000436: 68ba ldr r2, [r7, #8] + 8000438: f64f 03ff movw r3, #63743 ; 0xf8ff + 800043c: 4013 ands r3, r2 + 800043e: 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 */ + 8000440: 68fb ldr r3, [r7, #12] + 8000442: 021a lsls r2, r3, #8 + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + 8000444: 68bb ldr r3, [r7, #8] + 8000446: 4313 orrs r3, r2 + reg_value = (reg_value | + 8000448: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 + 800044c: f443 3300 orr.w r3, r3, #131072 ; 0x20000 + 8000450: 60bb str r3, [r7, #8] + SCB->AIRCR = reg_value; + 8000452: 4a04 ldr r2, [pc, #16] ; (8000464 <__NVIC_SetPriorityGrouping+0x44>) + 8000454: 68bb ldr r3, [r7, #8] + 8000456: 60d3 str r3, [r2, #12] +} + 8000458: bf00 nop + 800045a: 3714 adds r7, #20 + 800045c: 46bd mov sp, r7 + 800045e: bc80 pop {r7} + 8000460: 4770 bx lr + 8000462: bf00 nop + 8000464: e000ed00 .word 0xe000ed00 + +08000468 <__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) +{ + 8000468: b480 push {r7} + 800046a: af00 add r7, sp, #0 + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); + 800046c: 4b04 ldr r3, [pc, #16] ; (8000480 <__NVIC_GetPriorityGrouping+0x18>) + 800046e: 68db ldr r3, [r3, #12] + 8000470: 0a1b lsrs r3, r3, #8 + 8000472: f003 0307 and.w r3, r3, #7 +} + 8000476: 4618 mov r0, r3 + 8000478: 46bd mov sp, r7 + 800047a: bc80 pop {r7} + 800047c: 4770 bx lr + 800047e: bf00 nop + 8000480: e000ed00 .word 0xe000ed00 + +08000484 <__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) +{ + 8000484: b480 push {r7} + 8000486: b083 sub sp, #12 + 8000488: af00 add r7, sp, #0 + 800048a: 4603 mov r3, r0 + 800048c: 6039 str r1, [r7, #0] + 800048e: 71fb strb r3, [r7, #7] + if ((int32_t)(IRQn) >= 0) + 8000490: f997 3007 ldrsb.w r3, [r7, #7] + 8000494: 2b00 cmp r3, #0 + 8000496: db0a blt.n 80004ae <__NVIC_SetPriority+0x2a> + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 8000498: 683b ldr r3, [r7, #0] + 800049a: b2da uxtb r2, r3 + 800049c: 490c ldr r1, [pc, #48] ; (80004d0 <__NVIC_SetPriority+0x4c>) + 800049e: f997 3007 ldrsb.w r3, [r7, #7] + 80004a2: 0112 lsls r2, r2, #4 + 80004a4: b2d2 uxtb r2, r2 + 80004a6: 440b add r3, r1 + 80004a8: 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); + } +} + 80004ac: e00a b.n 80004c4 <__NVIC_SetPriority+0x40> + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 80004ae: 683b ldr r3, [r7, #0] + 80004b0: b2da uxtb r2, r3 + 80004b2: 4908 ldr r1, [pc, #32] ; (80004d4 <__NVIC_SetPriority+0x50>) + 80004b4: 79fb ldrb r3, [r7, #7] + 80004b6: f003 030f and.w r3, r3, #15 + 80004ba: 3b04 subs r3, #4 + 80004bc: 0112 lsls r2, r2, #4 + 80004be: b2d2 uxtb r2, r2 + 80004c0: 440b add r3, r1 + 80004c2: 761a strb r2, [r3, #24] +} + 80004c4: bf00 nop + 80004c6: 370c adds r7, #12 + 80004c8: 46bd mov sp, r7 + 80004ca: bc80 pop {r7} + 80004cc: 4770 bx lr + 80004ce: bf00 nop + 80004d0: e000e100 .word 0xe000e100 + 80004d4: e000ed00 .word 0xe000ed00 + +080004d8 : + \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) +{ + 80004d8: b480 push {r7} + 80004da: b089 sub sp, #36 ; 0x24 + 80004dc: af00 add r7, sp, #0 + 80004de: 60f8 str r0, [r7, #12] + 80004e0: 60b9 str r1, [r7, #8] + 80004e2: 607a str r2, [r7, #4] + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 80004e4: 68fb ldr r3, [r7, #12] + 80004e6: f003 0307 and.w r3, r3, #7 + 80004ea: 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); + 80004ec: 69fb ldr r3, [r7, #28] + 80004ee: f1c3 0307 rsb r3, r3, #7 + 80004f2: 2b04 cmp r3, #4 + 80004f4: bf28 it cs + 80004f6: 2304 movcs r3, #4 + 80004f8: 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)); + 80004fa: 69fb ldr r3, [r7, #28] + 80004fc: 3304 adds r3, #4 + 80004fe: 2b06 cmp r3, #6 + 8000500: d902 bls.n 8000508 + 8000502: 69fb ldr r3, [r7, #28] + 8000504: 3b03 subs r3, #3 + 8000506: e000 b.n 800050a + 8000508: 2300 movs r3, #0 + 800050a: 617b str r3, [r7, #20] + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 800050c: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8000510: 69bb ldr r3, [r7, #24] + 8000512: fa02 f303 lsl.w r3, r2, r3 + 8000516: 43da mvns r2, r3 + 8000518: 68bb ldr r3, [r7, #8] + 800051a: 401a ands r2, r3 + 800051c: 697b ldr r3, [r7, #20] + 800051e: 409a lsls r2, r3 + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + 8000520: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff + 8000524: 697b ldr r3, [r7, #20] + 8000526: fa01 f303 lsl.w r3, r1, r3 + 800052a: 43d9 mvns r1, r3 + 800052c: 687b ldr r3, [r7, #4] + 800052e: 400b ands r3, r1 + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 8000530: 4313 orrs r3, r2 + ); +} + 8000532: 4618 mov r0, r3 + 8000534: 3724 adds r7, #36 ; 0x24 + 8000536: 46bd mov sp, r7 + 8000538: bc80 pop {r7} + 800053a: 4770 bx lr + +0800053c : + \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) +{ + 800053c: b580 push {r7, lr} + 800053e: b082 sub sp, #8 + 8000540: af00 add r7, sp, #0 + 8000542: 6078 str r0, [r7, #4] + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + 8000544: 687b ldr r3, [r7, #4] + 8000546: 3b01 subs r3, #1 + 8000548: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 + 800054c: d301 bcc.n 8000552 + { + return (1UL); /* Reload value impossible */ + 800054e: 2301 movs r3, #1 + 8000550: e00f b.n 8000572 + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + 8000552: 4a0a ldr r2, [pc, #40] ; (800057c ) + 8000554: 687b ldr r3, [r7, #4] + 8000556: 3b01 subs r3, #1 + 8000558: 6053 str r3, [r2, #4] + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + 800055a: 210f movs r1, #15 + 800055c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff + 8000560: f7ff ff90 bl 8000484 <__NVIC_SetPriority> + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + 8000564: 4b05 ldr r3, [pc, #20] ; (800057c ) + 8000566: 2200 movs r2, #0 + 8000568: 609a str r2, [r3, #8] + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + 800056a: 4b04 ldr r3, [pc, #16] ; (800057c ) + 800056c: 2207 movs r2, #7 + 800056e: 601a str r2, [r3, #0] + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ + 8000570: 2300 movs r3, #0 +} + 8000572: 4618 mov r0, r3 + 8000574: 3708 adds r7, #8 + 8000576: 46bd mov sp, r7 + 8000578: bd80 pop {r7, pc} + 800057a: bf00 nop + 800057c: e000e010 .word 0xe000e010 + +08000580 : + * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible. + * The pending IRQ priority will be managed only by the subpriority. + * @retval None + */ +void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + 8000580: b580 push {r7, lr} + 8000582: b082 sub sp, #8 + 8000584: af00 add r7, sp, #0 + 8000586: 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); + 8000588: 6878 ldr r0, [r7, #4] + 800058a: f7ff ff49 bl 8000420 <__NVIC_SetPriorityGrouping> +} + 800058e: bf00 nop + 8000590: 3708 adds r7, #8 + 8000592: 46bd mov sp, r7 + 8000594: bd80 pop {r7, pc} + +08000596 : + * This parameter can be a value between 0 and 15 + * A lower priority value indicates a higher priority. + * @retval None + */ +void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) +{ + 8000596: b580 push {r7, lr} + 8000598: b086 sub sp, #24 + 800059a: af00 add r7, sp, #0 + 800059c: 4603 mov r3, r0 + 800059e: 60b9 str r1, [r7, #8] + 80005a0: 607a str r2, [r7, #4] + 80005a2: 73fb strb r3, [r7, #15] + uint32_t prioritygroup = 0x00U; + 80005a4: 2300 movs r3, #0 + 80005a6: 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(); + 80005a8: f7ff ff5e bl 8000468 <__NVIC_GetPriorityGrouping> + 80005ac: 6178 str r0, [r7, #20] + + NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); + 80005ae: 687a ldr r2, [r7, #4] + 80005b0: 68b9 ldr r1, [r7, #8] + 80005b2: 6978 ldr r0, [r7, #20] + 80005b4: f7ff ff90 bl 80004d8 + 80005b8: 4602 mov r2, r0 + 80005ba: f997 300f ldrsb.w r3, [r7, #15] + 80005be: 4611 mov r1, r2 + 80005c0: 4618 mov r0, r3 + 80005c2: f7ff ff5f bl 8000484 <__NVIC_SetPriority> +} + 80005c6: bf00 nop + 80005c8: 3718 adds r7, #24 + 80005ca: 46bd mov sp, r7 + 80005cc: bd80 pop {r7, pc} + +080005ce : + * @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) +{ + 80005ce: b580 push {r7, lr} + 80005d0: b082 sub sp, #8 + 80005d2: af00 add r7, sp, #0 + 80005d4: 6078 str r0, [r7, #4] + return SysTick_Config(TicksNumb); + 80005d6: 6878 ldr r0, [r7, #4] + 80005d8: f7ff ffb0 bl 800053c + 80005dc: 4603 mov r3, r0 +} + 80005de: 4618 mov r0, r3 + 80005e0: 3708 adds r7, #8 + 80005e2: 46bd mov sp, r7 + 80005e4: bd80 pop {r7, pc} + ... + +080005e8 : + * 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) +{ + 80005e8: b580 push {r7, lr} + 80005ea: b086 sub sp, #24 + 80005ec: af00 add r7, sp, #0 + 80005ee: 6078 str r0, [r7, #4] + uint32_t tickstart; + uint32_t pll_config; + + /* Check Null pointer */ + if (RCC_OscInitStruct == NULL) + 80005f0: 687b ldr r3, [r7, #4] + 80005f2: 2b00 cmp r3, #0 + 80005f4: d101 bne.n 80005fa + { + return HAL_ERROR; + 80005f6: 2301 movs r3, #1 + 80005f8: e26c b.n 8000ad4 + + /* Check the parameters */ + assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); + + /*------------------------------- HSE Configuration ------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) + 80005fa: 687b ldr r3, [r7, #4] + 80005fc: 681b ldr r3, [r3, #0] + 80005fe: f003 0301 and.w r3, r3, #1 + 8000602: 2b00 cmp r3, #0 + 8000604: f000 8087 beq.w 8000716 + { + /* 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) + 8000608: 4b92 ldr r3, [pc, #584] ; (8000854 ) + 800060a: 685b ldr r3, [r3, #4] + 800060c: f003 030c and.w r3, r3, #12 + 8000610: 2b04 cmp r3, #4 + 8000612: d00c beq.n 800062e + || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE))) + 8000614: 4b8f ldr r3, [pc, #572] ; (8000854 ) + 8000616: 685b ldr r3, [r3, #4] + 8000618: f003 030c and.w r3, r3, #12 + 800061c: 2b08 cmp r3, #8 + 800061e: d112 bne.n 8000646 + 8000620: 4b8c ldr r3, [pc, #560] ; (8000854 ) + 8000622: 685b ldr r3, [r3, #4] + 8000624: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8000628: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 800062c: d10b bne.n 8000646 + { + if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 800062e: 4b89 ldr r3, [pc, #548] ; (8000854 ) + 8000630: 681b ldr r3, [r3, #0] + 8000632: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8000636: 2b00 cmp r3, #0 + 8000638: d06c beq.n 8000714 + 800063a: 687b ldr r3, [r7, #4] + 800063c: 685b ldr r3, [r3, #4] + 800063e: 2b00 cmp r3, #0 + 8000640: d168 bne.n 8000714 + { + return HAL_ERROR; + 8000642: 2301 movs r3, #1 + 8000644: e246 b.n 8000ad4 + } + } + else + { + /* Set the new HSE configuration ---------------------------------------*/ + __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); + 8000646: 687b ldr r3, [r7, #4] + 8000648: 685b ldr r3, [r3, #4] + 800064a: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 800064e: d106 bne.n 800065e + 8000650: 4b80 ldr r3, [pc, #512] ; (8000854 ) + 8000652: 681b ldr r3, [r3, #0] + 8000654: 4a7f ldr r2, [pc, #508] ; (8000854 ) + 8000656: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 800065a: 6013 str r3, [r2, #0] + 800065c: e02e b.n 80006bc + 800065e: 687b ldr r3, [r7, #4] + 8000660: 685b ldr r3, [r3, #4] + 8000662: 2b00 cmp r3, #0 + 8000664: d10c bne.n 8000680 + 8000666: 4b7b ldr r3, [pc, #492] ; (8000854 ) + 8000668: 681b ldr r3, [r3, #0] + 800066a: 4a7a ldr r2, [pc, #488] ; (8000854 ) + 800066c: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 8000670: 6013 str r3, [r2, #0] + 8000672: 4b78 ldr r3, [pc, #480] ; (8000854 ) + 8000674: 681b ldr r3, [r3, #0] + 8000676: 4a77 ldr r2, [pc, #476] ; (8000854 ) + 8000678: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 800067c: 6013 str r3, [r2, #0] + 800067e: e01d b.n 80006bc + 8000680: 687b ldr r3, [r7, #4] + 8000682: 685b ldr r3, [r3, #4] + 8000684: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 + 8000688: d10c bne.n 80006a4 + 800068a: 4b72 ldr r3, [pc, #456] ; (8000854 ) + 800068c: 681b ldr r3, [r3, #0] + 800068e: 4a71 ldr r2, [pc, #452] ; (8000854 ) + 8000690: f443 2380 orr.w r3, r3, #262144 ; 0x40000 + 8000694: 6013 str r3, [r2, #0] + 8000696: 4b6f ldr r3, [pc, #444] ; (8000854 ) + 8000698: 681b ldr r3, [r3, #0] + 800069a: 4a6e ldr r2, [pc, #440] ; (8000854 ) + 800069c: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 80006a0: 6013 str r3, [r2, #0] + 80006a2: e00b b.n 80006bc + 80006a4: 4b6b ldr r3, [pc, #428] ; (8000854 ) + 80006a6: 681b ldr r3, [r3, #0] + 80006a8: 4a6a ldr r2, [pc, #424] ; (8000854 ) + 80006aa: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 80006ae: 6013 str r3, [r2, #0] + 80006b0: 4b68 ldr r3, [pc, #416] ; (8000854 ) + 80006b2: 681b ldr r3, [r3, #0] + 80006b4: 4a67 ldr r2, [pc, #412] ; (8000854 ) + 80006b6: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 80006ba: 6013 str r3, [r2, #0] + + + /* Check the HSE State */ + if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF) + 80006bc: 687b ldr r3, [r7, #4] + 80006be: 685b ldr r3, [r3, #4] + 80006c0: 2b00 cmp r3, #0 + 80006c2: d013 beq.n 80006ec + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80006c4: f7ff fea2 bl 800040c + 80006c8: 6138 str r0, [r7, #16] + + /* Wait till HSE is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 80006ca: e008 b.n 80006de + { + if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) + 80006cc: f7ff fe9e bl 800040c + 80006d0: 4602 mov r2, r0 + 80006d2: 693b ldr r3, [r7, #16] + 80006d4: 1ad3 subs r3, r2, r3 + 80006d6: 2b64 cmp r3, #100 ; 0x64 + 80006d8: d901 bls.n 80006de + { + return HAL_TIMEOUT; + 80006da: 2303 movs r3, #3 + 80006dc: e1fa b.n 8000ad4 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 80006de: 4b5d ldr r3, [pc, #372] ; (8000854 ) + 80006e0: 681b ldr r3, [r3, #0] + 80006e2: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80006e6: 2b00 cmp r3, #0 + 80006e8: d0f0 beq.n 80006cc + 80006ea: e014 b.n 8000716 + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80006ec: f7ff fe8e bl 800040c + 80006f0: 6138 str r0, [r7, #16] + + /* Wait till HSE is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) + 80006f2: e008 b.n 8000706 + { + if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) + 80006f4: f7ff fe8a bl 800040c + 80006f8: 4602 mov r2, r0 + 80006fa: 693b ldr r3, [r7, #16] + 80006fc: 1ad3 subs r3, r2, r3 + 80006fe: 2b64 cmp r3, #100 ; 0x64 + 8000700: d901 bls.n 8000706 + { + return HAL_TIMEOUT; + 8000702: 2303 movs r3, #3 + 8000704: e1e6 b.n 8000ad4 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) + 8000706: 4b53 ldr r3, [pc, #332] ; (8000854 ) + 8000708: 681b ldr r3, [r3, #0] + 800070a: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 800070e: 2b00 cmp r3, #0 + 8000710: d1f0 bne.n 80006f4 + 8000712: e000 b.n 8000716 + if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 8000714: bf00 nop + } + } + } + } + /*----------------------------- HSI Configuration --------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) + 8000716: 687b ldr r3, [r7, #4] + 8000718: 681b ldr r3, [r3, #0] + 800071a: f003 0302 and.w r3, r3, #2 + 800071e: 2b00 cmp r3, #0 + 8000720: d063 beq.n 80007ea + /* 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) + 8000722: 4b4c ldr r3, [pc, #304] ; (8000854 ) + 8000724: 685b ldr r3, [r3, #4] + 8000726: f003 030c and.w r3, r3, #12 + 800072a: 2b00 cmp r3, #0 + 800072c: d00b beq.n 8000746 + || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI_DIV2))) + 800072e: 4b49 ldr r3, [pc, #292] ; (8000854 ) + 8000730: 685b ldr r3, [r3, #4] + 8000732: f003 030c and.w r3, r3, #12 + 8000736: 2b08 cmp r3, #8 + 8000738: d11c bne.n 8000774 + 800073a: 4b46 ldr r3, [pc, #280] ; (8000854 ) + 800073c: 685b ldr r3, [r3, #4] + 800073e: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8000742: 2b00 cmp r3, #0 + 8000744: d116 bne.n 8000774 + { + /* 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)) + 8000746: 4b43 ldr r3, [pc, #268] ; (8000854 ) + 8000748: 681b ldr r3, [r3, #0] + 800074a: f003 0302 and.w r3, r3, #2 + 800074e: 2b00 cmp r3, #0 + 8000750: d005 beq.n 800075e + 8000752: 687b ldr r3, [r7, #4] + 8000754: 691b ldr r3, [r3, #16] + 8000756: 2b01 cmp r3, #1 + 8000758: d001 beq.n 800075e + { + return HAL_ERROR; + 800075a: 2301 movs r3, #1 + 800075c: e1ba b.n 8000ad4 + } + /* Otherwise, just the calibration is allowed */ + else + { + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 800075e: 4b3d ldr r3, [pc, #244] ; (8000854 ) + 8000760: 681b ldr r3, [r3, #0] + 8000762: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 8000766: 687b ldr r3, [r7, #4] + 8000768: 695b ldr r3, [r3, #20] + 800076a: 00db lsls r3, r3, #3 + 800076c: 4939 ldr r1, [pc, #228] ; (8000854 ) + 800076e: 4313 orrs r3, r2 + 8000770: 600b str r3, [r1, #0] + if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) + 8000772: e03a b.n 80007ea + } + } + else + { + /* Check the HSI State */ + if (RCC_OscInitStruct->HSIState != RCC_HSI_OFF) + 8000774: 687b ldr r3, [r7, #4] + 8000776: 691b ldr r3, [r3, #16] + 8000778: 2b00 cmp r3, #0 + 800077a: d020 beq.n 80007be + { + /* Enable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_ENABLE(); + 800077c: 4b36 ldr r3, [pc, #216] ; (8000858 ) + 800077e: 2201 movs r2, #1 + 8000780: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000782: f7ff fe43 bl 800040c + 8000786: 6138 str r0, [r7, #16] + + /* Wait till HSI is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 8000788: e008 b.n 800079c + { + if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + 800078a: f7ff fe3f bl 800040c + 800078e: 4602 mov r2, r0 + 8000790: 693b ldr r3, [r7, #16] + 8000792: 1ad3 subs r3, r2, r3 + 8000794: 2b02 cmp r3, #2 + 8000796: d901 bls.n 800079c + { + return HAL_TIMEOUT; + 8000798: 2303 movs r3, #3 + 800079a: e19b b.n 8000ad4 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 800079c: 4b2d ldr r3, [pc, #180] ; (8000854 ) + 800079e: 681b ldr r3, [r3, #0] + 80007a0: f003 0302 and.w r3, r3, #2 + 80007a4: 2b00 cmp r3, #0 + 80007a6: d0f0 beq.n 800078a + } + } + + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 80007a8: 4b2a ldr r3, [pc, #168] ; (8000854 ) + 80007aa: 681b ldr r3, [r3, #0] + 80007ac: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 80007b0: 687b ldr r3, [r7, #4] + 80007b2: 695b ldr r3, [r3, #20] + 80007b4: 00db lsls r3, r3, #3 + 80007b6: 4927 ldr r1, [pc, #156] ; (8000854 ) + 80007b8: 4313 orrs r3, r2 + 80007ba: 600b str r3, [r1, #0] + 80007bc: e015 b.n 80007ea + } + else + { + /* Disable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_DISABLE(); + 80007be: 4b26 ldr r3, [pc, #152] ; (8000858 ) + 80007c0: 2200 movs r2, #0 + 80007c2: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80007c4: f7ff fe22 bl 800040c + 80007c8: 6138 str r0, [r7, #16] + + /* Wait till HSI is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) + 80007ca: e008 b.n 80007de + { + if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + 80007cc: f7ff fe1e bl 800040c + 80007d0: 4602 mov r2, r0 + 80007d2: 693b ldr r3, [r7, #16] + 80007d4: 1ad3 subs r3, r2, r3 + 80007d6: 2b02 cmp r3, #2 + 80007d8: d901 bls.n 80007de + { + return HAL_TIMEOUT; + 80007da: 2303 movs r3, #3 + 80007dc: e17a b.n 8000ad4 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) + 80007de: 4b1d ldr r3, [pc, #116] ; (8000854 ) + 80007e0: 681b ldr r3, [r3, #0] + 80007e2: f003 0302 and.w r3, r3, #2 + 80007e6: 2b00 cmp r3, #0 + 80007e8: d1f0 bne.n 80007cc + } + } + } + } + /*------------------------------ LSI Configuration -------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) + 80007ea: 687b ldr r3, [r7, #4] + 80007ec: 681b ldr r3, [r3, #0] + 80007ee: f003 0308 and.w r3, r3, #8 + 80007f2: 2b00 cmp r3, #0 + 80007f4: d03a beq.n 800086c + { + /* Check the parameters */ + assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); + + /* Check the LSI State */ + if (RCC_OscInitStruct->LSIState != RCC_LSI_OFF) + 80007f6: 687b ldr r3, [r7, #4] + 80007f8: 699b ldr r3, [r3, #24] + 80007fa: 2b00 cmp r3, #0 + 80007fc: d019 beq.n 8000832 + { + /* Enable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_ENABLE(); + 80007fe: 4b17 ldr r3, [pc, #92] ; (800085c ) + 8000800: 2201 movs r2, #1 + 8000802: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000804: f7ff fe02 bl 800040c + 8000808: 6138 str r0, [r7, #16] + + /* Wait till LSI is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) + 800080a: e008 b.n 800081e + { + if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) + 800080c: f7ff fdfe bl 800040c + 8000810: 4602 mov r2, r0 + 8000812: 693b ldr r3, [r7, #16] + 8000814: 1ad3 subs r3, r2, r3 + 8000816: 2b02 cmp r3, #2 + 8000818: d901 bls.n 800081e + { + return HAL_TIMEOUT; + 800081a: 2303 movs r3, #3 + 800081c: e15a b.n 8000ad4 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) + 800081e: 4b0d ldr r3, [pc, #52] ; (8000854 ) + 8000820: 6a5b ldr r3, [r3, #36] ; 0x24 + 8000822: f003 0302 and.w r3, r3, #2 + 8000826: 2b00 cmp r3, #0 + 8000828: d0f0 beq.n 800080c + } + } + /* To have a fully stabilized clock in the specified range, a software delay of 1ms + should be added.*/ + RCC_Delay(1); + 800082a: 2001 movs r0, #1 + 800082c: f000 faa6 bl 8000d7c + 8000830: e01c b.n 800086c + } + else + { + /* Disable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_DISABLE(); + 8000832: 4b0a ldr r3, [pc, #40] ; (800085c ) + 8000834: 2200 movs r2, #0 + 8000836: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000838: f7ff fde8 bl 800040c + 800083c: 6138 str r0, [r7, #16] + + /* Wait till LSI is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) + 800083e: e00f b.n 8000860 + { + if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) + 8000840: f7ff fde4 bl 800040c + 8000844: 4602 mov r2, r0 + 8000846: 693b ldr r3, [r7, #16] + 8000848: 1ad3 subs r3, r2, r3 + 800084a: 2b02 cmp r3, #2 + 800084c: d908 bls.n 8000860 + { + return HAL_TIMEOUT; + 800084e: 2303 movs r3, #3 + 8000850: e140 b.n 8000ad4 + 8000852: bf00 nop + 8000854: 40021000 .word 0x40021000 + 8000858: 42420000 .word 0x42420000 + 800085c: 42420480 .word 0x42420480 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) + 8000860: 4b9e ldr r3, [pc, #632] ; (8000adc ) + 8000862: 6a5b ldr r3, [r3, #36] ; 0x24 + 8000864: f003 0302 and.w r3, r3, #2 + 8000868: 2b00 cmp r3, #0 + 800086a: d1e9 bne.n 8000840 + } + } + } + } + /*------------------------------ LSE Configuration -------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) + 800086c: 687b ldr r3, [r7, #4] + 800086e: 681b ldr r3, [r3, #0] + 8000870: f003 0304 and.w r3, r3, #4 + 8000874: 2b00 cmp r3, #0 + 8000876: f000 80a6 beq.w 80009c6 + { + FlagStatus pwrclkchanged = RESET; + 800087a: 2300 movs r3, #0 + 800087c: 75fb strb r3, [r7, #23] + /* Check the parameters */ + assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); + + /* Update LSE configuration in Backup Domain control register */ + /* Requires to enable write access to Backup Domain of necessary */ + if (__HAL_RCC_PWR_IS_CLK_DISABLED()) + 800087e: 4b97 ldr r3, [pc, #604] ; (8000adc ) + 8000880: 69db ldr r3, [r3, #28] + 8000882: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8000886: 2b00 cmp r3, #0 + 8000888: d10d bne.n 80008a6 + { + __HAL_RCC_PWR_CLK_ENABLE(); + 800088a: 4b94 ldr r3, [pc, #592] ; (8000adc ) + 800088c: 69db ldr r3, [r3, #28] + 800088e: 4a93 ldr r2, [pc, #588] ; (8000adc ) + 8000890: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8000894: 61d3 str r3, [r2, #28] + 8000896: 4b91 ldr r3, [pc, #580] ; (8000adc ) + 8000898: 69db ldr r3, [r3, #28] + 800089a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 800089e: 60bb str r3, [r7, #8] + 80008a0: 68bb ldr r3, [r7, #8] + pwrclkchanged = SET; + 80008a2: 2301 movs r3, #1 + 80008a4: 75fb strb r3, [r7, #23] + } + + if (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 80008a6: 4b8e ldr r3, [pc, #568] ; (8000ae0 ) + 80008a8: 681b ldr r3, [r3, #0] + 80008aa: f403 7380 and.w r3, r3, #256 ; 0x100 + 80008ae: 2b00 cmp r3, #0 + 80008b0: d118 bne.n 80008e4 + { + /* Enable write access to Backup domain */ + SET_BIT(PWR->CR, PWR_CR_DBP); + 80008b2: 4b8b ldr r3, [pc, #556] ; (8000ae0 ) + 80008b4: 681b ldr r3, [r3, #0] + 80008b6: 4a8a ldr r2, [pc, #552] ; (8000ae0 ) + 80008b8: f443 7380 orr.w r3, r3, #256 ; 0x100 + 80008bc: 6013 str r3, [r2, #0] + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + 80008be: f7ff fda5 bl 800040c + 80008c2: 6138 str r0, [r7, #16] + + while (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 80008c4: e008 b.n 80008d8 + { + if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + 80008c6: f7ff fda1 bl 800040c + 80008ca: 4602 mov r2, r0 + 80008cc: 693b ldr r3, [r7, #16] + 80008ce: 1ad3 subs r3, r2, r3 + 80008d0: 2b64 cmp r3, #100 ; 0x64 + 80008d2: d901 bls.n 80008d8 + { + return HAL_TIMEOUT; + 80008d4: 2303 movs r3, #3 + 80008d6: e0fd b.n 8000ad4 + while (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 80008d8: 4b81 ldr r3, [pc, #516] ; (8000ae0 ) + 80008da: 681b ldr r3, [r3, #0] + 80008dc: f403 7380 and.w r3, r3, #256 ; 0x100 + 80008e0: 2b00 cmp r3, #0 + 80008e2: d0f0 beq.n 80008c6 + } + } + } + + /* Set the new LSE configuration -----------------------------------------*/ + __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); + 80008e4: 687b ldr r3, [r7, #4] + 80008e6: 68db ldr r3, [r3, #12] + 80008e8: 2b01 cmp r3, #1 + 80008ea: d106 bne.n 80008fa + 80008ec: 4b7b ldr r3, [pc, #492] ; (8000adc ) + 80008ee: 6a1b ldr r3, [r3, #32] + 80008f0: 4a7a ldr r2, [pc, #488] ; (8000adc ) + 80008f2: f043 0301 orr.w r3, r3, #1 + 80008f6: 6213 str r3, [r2, #32] + 80008f8: e02d b.n 8000956 + 80008fa: 687b ldr r3, [r7, #4] + 80008fc: 68db ldr r3, [r3, #12] + 80008fe: 2b00 cmp r3, #0 + 8000900: d10c bne.n 800091c + 8000902: 4b76 ldr r3, [pc, #472] ; (8000adc ) + 8000904: 6a1b ldr r3, [r3, #32] + 8000906: 4a75 ldr r2, [pc, #468] ; (8000adc ) + 8000908: f023 0301 bic.w r3, r3, #1 + 800090c: 6213 str r3, [r2, #32] + 800090e: 4b73 ldr r3, [pc, #460] ; (8000adc ) + 8000910: 6a1b ldr r3, [r3, #32] + 8000912: 4a72 ldr r2, [pc, #456] ; (8000adc ) + 8000914: f023 0304 bic.w r3, r3, #4 + 8000918: 6213 str r3, [r2, #32] + 800091a: e01c b.n 8000956 + 800091c: 687b ldr r3, [r7, #4] + 800091e: 68db ldr r3, [r3, #12] + 8000920: 2b05 cmp r3, #5 + 8000922: d10c bne.n 800093e + 8000924: 4b6d ldr r3, [pc, #436] ; (8000adc ) + 8000926: 6a1b ldr r3, [r3, #32] + 8000928: 4a6c ldr r2, [pc, #432] ; (8000adc ) + 800092a: f043 0304 orr.w r3, r3, #4 + 800092e: 6213 str r3, [r2, #32] + 8000930: 4b6a ldr r3, [pc, #424] ; (8000adc ) + 8000932: 6a1b ldr r3, [r3, #32] + 8000934: 4a69 ldr r2, [pc, #420] ; (8000adc ) + 8000936: f043 0301 orr.w r3, r3, #1 + 800093a: 6213 str r3, [r2, #32] + 800093c: e00b b.n 8000956 + 800093e: 4b67 ldr r3, [pc, #412] ; (8000adc ) + 8000940: 6a1b ldr r3, [r3, #32] + 8000942: 4a66 ldr r2, [pc, #408] ; (8000adc ) + 8000944: f023 0301 bic.w r3, r3, #1 + 8000948: 6213 str r3, [r2, #32] + 800094a: 4b64 ldr r3, [pc, #400] ; (8000adc ) + 800094c: 6a1b ldr r3, [r3, #32] + 800094e: 4a63 ldr r2, [pc, #396] ; (8000adc ) + 8000950: f023 0304 bic.w r3, r3, #4 + 8000954: 6213 str r3, [r2, #32] + /* Check the LSE State */ + if (RCC_OscInitStruct->LSEState != RCC_LSE_OFF) + 8000956: 687b ldr r3, [r7, #4] + 8000958: 68db ldr r3, [r3, #12] + 800095a: 2b00 cmp r3, #0 + 800095c: d015 beq.n 800098a + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800095e: f7ff fd55 bl 800040c + 8000962: 6138 str r0, [r7, #16] + + /* Wait till LSE is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + 8000964: e00a b.n 800097c + { + if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + 8000966: f7ff fd51 bl 800040c + 800096a: 4602 mov r2, r0 + 800096c: 693b ldr r3, [r7, #16] + 800096e: 1ad3 subs r3, r2, r3 + 8000970: f241 3288 movw r2, #5000 ; 0x1388 + 8000974: 4293 cmp r3, r2 + 8000976: d901 bls.n 800097c + { + return HAL_TIMEOUT; + 8000978: 2303 movs r3, #3 + 800097a: e0ab b.n 8000ad4 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + 800097c: 4b57 ldr r3, [pc, #348] ; (8000adc ) + 800097e: 6a1b ldr r3, [r3, #32] + 8000980: f003 0302 and.w r3, r3, #2 + 8000984: 2b00 cmp r3, #0 + 8000986: d0ee beq.n 8000966 + 8000988: e014 b.n 80009b4 + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800098a: f7ff fd3f bl 800040c + 800098e: 6138 str r0, [r7, #16] + + /* Wait till LSE is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) + 8000990: e00a b.n 80009a8 + { + if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + 8000992: f7ff fd3b bl 800040c + 8000996: 4602 mov r2, r0 + 8000998: 693b ldr r3, [r7, #16] + 800099a: 1ad3 subs r3, r2, r3 + 800099c: f241 3288 movw r2, #5000 ; 0x1388 + 80009a0: 4293 cmp r3, r2 + 80009a2: d901 bls.n 80009a8 + { + return HAL_TIMEOUT; + 80009a4: 2303 movs r3, #3 + 80009a6: e095 b.n 8000ad4 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) + 80009a8: 4b4c ldr r3, [pc, #304] ; (8000adc ) + 80009aa: 6a1b ldr r3, [r3, #32] + 80009ac: f003 0302 and.w r3, r3, #2 + 80009b0: 2b00 cmp r3, #0 + 80009b2: d1ee bne.n 8000992 + } + } + } + + /* Require to disable power clock if necessary */ + if (pwrclkchanged == SET) + 80009b4: 7dfb ldrb r3, [r7, #23] + 80009b6: 2b01 cmp r3, #1 + 80009b8: d105 bne.n 80009c6 + { + __HAL_RCC_PWR_CLK_DISABLE(); + 80009ba: 4b48 ldr r3, [pc, #288] ; (8000adc ) + 80009bc: 69db ldr r3, [r3, #28] + 80009be: 4a47 ldr r2, [pc, #284] ; (8000adc ) + 80009c0: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 + 80009c4: 61d3 str r3, [r2, #28] + +#endif /* RCC_CR_PLL2ON */ + /*-------------------------------- PLL Configuration -----------------------*/ + /* Check the parameters */ + assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); + if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) + 80009c6: 687b ldr r3, [r7, #4] + 80009c8: 69db ldr r3, [r3, #28] + 80009ca: 2b00 cmp r3, #0 + 80009cc: f000 8081 beq.w 8000ad2 + { + /* Check if the PLL is used as system clock or not */ + if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) + 80009d0: 4b42 ldr r3, [pc, #264] ; (8000adc ) + 80009d2: 685b ldr r3, [r3, #4] + 80009d4: f003 030c and.w r3, r3, #12 + 80009d8: 2b08 cmp r3, #8 + 80009da: d061 beq.n 8000aa0 + { + if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) + 80009dc: 687b ldr r3, [r7, #4] + 80009de: 69db ldr r3, [r3, #28] + 80009e0: 2b02 cmp r3, #2 + 80009e2: d146 bne.n 8000a72 + /* Check the parameters */ + assert_param(IS_RCC_PLLSOURCE(RCC_OscInitStruct->PLL.PLLSource)); + assert_param(IS_RCC_PLL_MUL(RCC_OscInitStruct->PLL.PLLMUL)); + + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 80009e4: 4b3f ldr r3, [pc, #252] ; (8000ae4 ) + 80009e6: 2200 movs r2, #0 + 80009e8: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80009ea: f7ff fd0f bl 800040c + 80009ee: 6138 str r0, [r7, #16] + + /* Wait till PLL is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 80009f0: e008 b.n 8000a04 + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 80009f2: f7ff fd0b bl 800040c + 80009f6: 4602 mov r2, r0 + 80009f8: 693b ldr r3, [r7, #16] + 80009fa: 1ad3 subs r3, r2, r3 + 80009fc: 2b02 cmp r3, #2 + 80009fe: d901 bls.n 8000a04 + { + return HAL_TIMEOUT; + 8000a00: 2303 movs r3, #3 + 8000a02: e067 b.n 8000ad4 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8000a04: 4b35 ldr r3, [pc, #212] ; (8000adc ) + 8000a06: 681b ldr r3, [r3, #0] + 8000a08: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8000a0c: 2b00 cmp r3, #0 + 8000a0e: d1f0 bne.n 80009f2 + } + } + + /* Configure the HSE prediv factor --------------------------------*/ + /* It can be written only when the PLL is disabled. Not used in PLL source is different than HSE */ + if (RCC_OscInitStruct->PLL.PLLSource == RCC_PLLSOURCE_HSE) + 8000a10: 687b ldr r3, [r7, #4] + 8000a12: 6a1b ldr r3, [r3, #32] + 8000a14: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 8000a18: d108 bne.n 8000a2c + /* Set PREDIV1 source */ + SET_BIT(RCC->CFGR2, RCC_OscInitStruct->Prediv1Source); +#endif /* RCC_CFGR2_PREDIV1SRC */ + + /* Set PREDIV1 Value */ + __HAL_RCC_HSE_PREDIV_CONFIG(RCC_OscInitStruct->HSEPredivValue); + 8000a1a: 4b30 ldr r3, [pc, #192] ; (8000adc ) + 8000a1c: 685b ldr r3, [r3, #4] + 8000a1e: f423 3200 bic.w r2, r3, #131072 ; 0x20000 + 8000a22: 687b ldr r3, [r7, #4] + 8000a24: 689b ldr r3, [r3, #8] + 8000a26: 492d ldr r1, [pc, #180] ; (8000adc ) + 8000a28: 4313 orrs r3, r2 + 8000a2a: 604b str r3, [r1, #4] + } + + /* Configure the main PLL clock source and multiplication factors. */ + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + 8000a2c: 4b2b ldr r3, [pc, #172] ; (8000adc ) + 8000a2e: 685b ldr r3, [r3, #4] + 8000a30: f423 1274 bic.w r2, r3, #3997696 ; 0x3d0000 + 8000a34: 687b ldr r3, [r7, #4] + 8000a36: 6a19 ldr r1, [r3, #32] + 8000a38: 687b ldr r3, [r7, #4] + 8000a3a: 6a5b ldr r3, [r3, #36] ; 0x24 + 8000a3c: 430b orrs r3, r1 + 8000a3e: 4927 ldr r1, [pc, #156] ; (8000adc ) + 8000a40: 4313 orrs r3, r2 + 8000a42: 604b str r3, [r1, #4] + RCC_OscInitStruct->PLL.PLLMUL); + /* Enable the main PLL. */ + __HAL_RCC_PLL_ENABLE(); + 8000a44: 4b27 ldr r3, [pc, #156] ; (8000ae4 ) + 8000a46: 2201 movs r2, #1 + 8000a48: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000a4a: f7ff fcdf bl 800040c + 8000a4e: 6138 str r0, [r7, #16] + + /* Wait till PLL is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 8000a50: e008 b.n 8000a64 + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 8000a52: f7ff fcdb bl 800040c + 8000a56: 4602 mov r2, r0 + 8000a58: 693b ldr r3, [r7, #16] + 8000a5a: 1ad3 subs r3, r2, r3 + 8000a5c: 2b02 cmp r3, #2 + 8000a5e: d901 bls.n 8000a64 + { + return HAL_TIMEOUT; + 8000a60: 2303 movs r3, #3 + 8000a62: e037 b.n 8000ad4 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 8000a64: 4b1d ldr r3, [pc, #116] ; (8000adc ) + 8000a66: 681b ldr r3, [r3, #0] + 8000a68: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8000a6c: 2b00 cmp r3, #0 + 8000a6e: d0f0 beq.n 8000a52 + 8000a70: e02f b.n 8000ad2 + } + } + else + { + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 8000a72: 4b1c ldr r3, [pc, #112] ; (8000ae4 ) + 8000a74: 2200 movs r2, #0 + 8000a76: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000a78: f7ff fcc8 bl 800040c + 8000a7c: 6138 str r0, [r7, #16] + + /* Wait till PLL is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8000a7e: e008 b.n 8000a92 + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 8000a80: f7ff fcc4 bl 800040c + 8000a84: 4602 mov r2, r0 + 8000a86: 693b ldr r3, [r7, #16] + 8000a88: 1ad3 subs r3, r2, r3 + 8000a8a: 2b02 cmp r3, #2 + 8000a8c: d901 bls.n 8000a92 + { + return HAL_TIMEOUT; + 8000a8e: 2303 movs r3, #3 + 8000a90: e020 b.n 8000ad4 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8000a92: 4b12 ldr r3, [pc, #72] ; (8000adc ) + 8000a94: 681b ldr r3, [r3, #0] + 8000a96: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8000a9a: 2b00 cmp r3, #0 + 8000a9c: d1f0 bne.n 8000a80 + 8000a9e: e018 b.n 8000ad2 + } + } + else + { + /* Check if there is a request to disable the PLL used as System clock source */ + if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) + 8000aa0: 687b ldr r3, [r7, #4] + 8000aa2: 69db ldr r3, [r3, #28] + 8000aa4: 2b01 cmp r3, #1 + 8000aa6: d101 bne.n 8000aac + { + return HAL_ERROR; + 8000aa8: 2301 movs r3, #1 + 8000aaa: e013 b.n 8000ad4 + } + else + { + /* Do not return HAL_ERROR if request repeats the current configuration */ + pll_config = RCC->CFGR; + 8000aac: 4b0b ldr r3, [pc, #44] ; (8000adc ) + 8000aae: 685b ldr r3, [r3, #4] + 8000ab0: 60fb str r3, [r7, #12] + if ((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 8000ab2: 68fb ldr r3, [r7, #12] + 8000ab4: f403 3280 and.w r2, r3, #65536 ; 0x10000 + 8000ab8: 687b ldr r3, [r7, #4] + 8000aba: 6a1b ldr r3, [r3, #32] + 8000abc: 429a cmp r2, r3 + 8000abe: d106 bne.n 8000ace + (READ_BIT(pll_config, RCC_CFGR_PLLMULL) != RCC_OscInitStruct->PLL.PLLMUL)) + 8000ac0: 68fb ldr r3, [r7, #12] + 8000ac2: f403 1270 and.w r2, r3, #3932160 ; 0x3c0000 + 8000ac6: 687b ldr r3, [r7, #4] + 8000ac8: 6a5b ldr r3, [r3, #36] ; 0x24 + if ((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 8000aca: 429a cmp r2, r3 + 8000acc: d001 beq.n 8000ad2 + { + return HAL_ERROR; + 8000ace: 2301 movs r3, #1 + 8000ad0: e000 b.n 8000ad4 + } + } + } + } + + return HAL_OK; + 8000ad2: 2300 movs r3, #0 +} + 8000ad4: 4618 mov r0, r3 + 8000ad6: 3718 adds r7, #24 + 8000ad8: 46bd mov sp, r7 + 8000ada: bd80 pop {r7, pc} + 8000adc: 40021000 .word 0x40021000 + 8000ae0: 40007000 .word 0x40007000 + 8000ae4: 42420060 .word 0x42420060 + +08000ae8 : + * 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) +{ + 8000ae8: b580 push {r7, lr} + 8000aea: b084 sub sp, #16 + 8000aec: af00 add r7, sp, #0 + 8000aee: 6078 str r0, [r7, #4] + 8000af0: 6039 str r1, [r7, #0] + uint32_t tickstart; + + /* Check Null pointer */ + if (RCC_ClkInitStruct == NULL) + 8000af2: 687b ldr r3, [r7, #4] + 8000af4: 2b00 cmp r3, #0 + 8000af6: d101 bne.n 8000afc + { + return HAL_ERROR; + 8000af8: 2301 movs r3, #1 + 8000afa: e0d0 b.n 8000c9e + must be correctly programmed according to the frequency of the CPU clock + (HCLK) of the device. */ + +#if defined(FLASH_ACR_LATENCY) + /* Increasing the number of wait states because of higher CPU frequency */ + if (FLatency > __HAL_FLASH_GET_LATENCY()) + 8000afc: 4b6a ldr r3, [pc, #424] ; (8000ca8 ) + 8000afe: 681b ldr r3, [r3, #0] + 8000b00: f003 0307 and.w r3, r3, #7 + 8000b04: 683a ldr r2, [r7, #0] + 8000b06: 429a cmp r2, r3 + 8000b08: d910 bls.n 8000b2c + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 8000b0a: 4b67 ldr r3, [pc, #412] ; (8000ca8 ) + 8000b0c: 681b ldr r3, [r3, #0] + 8000b0e: f023 0207 bic.w r2, r3, #7 + 8000b12: 4965 ldr r1, [pc, #404] ; (8000ca8 ) + 8000b14: 683b ldr r3, [r7, #0] + 8000b16: 4313 orrs r3, r2 + 8000b18: 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) + 8000b1a: 4b63 ldr r3, [pc, #396] ; (8000ca8 ) + 8000b1c: 681b ldr r3, [r3, #0] + 8000b1e: f003 0307 and.w r3, r3, #7 + 8000b22: 683a ldr r2, [r7, #0] + 8000b24: 429a cmp r2, r3 + 8000b26: d001 beq.n 8000b2c + { + return HAL_ERROR; + 8000b28: 2301 movs r3, #1 + 8000b2a: e0b8 b.n 8000c9e + } +} + +#endif /* FLASH_ACR_LATENCY */ +/*-------------------------- HCLK Configuration --------------------------*/ +if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + 8000b2c: 687b ldr r3, [r7, #4] + 8000b2e: 681b ldr r3, [r3, #0] + 8000b30: f003 0302 and.w r3, r3, #2 + 8000b34: 2b00 cmp r3, #0 + 8000b36: d020 beq.n 8000b7a + { + /* Set the highest APBx dividers in order to ensure that we do not go through + a non-spec phase whatever we decrease or increase HCLK. */ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 8000b38: 687b ldr r3, [r7, #4] + 8000b3a: 681b ldr r3, [r3, #0] + 8000b3c: f003 0304 and.w r3, r3, #4 + 8000b40: 2b00 cmp r3, #0 + 8000b42: d005 beq.n 8000b50 + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); + 8000b44: 4b59 ldr r3, [pc, #356] ; (8000cac ) + 8000b46: 685b ldr r3, [r3, #4] + 8000b48: 4a58 ldr r2, [pc, #352] ; (8000cac ) + 8000b4a: f443 63e0 orr.w r3, r3, #1792 ; 0x700 + 8000b4e: 6053 str r3, [r2, #4] + } + + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 8000b50: 687b ldr r3, [r7, #4] + 8000b52: 681b ldr r3, [r3, #0] + 8000b54: f003 0308 and.w r3, r3, #8 + 8000b58: 2b00 cmp r3, #0 + 8000b5a: d005 beq.n 8000b68 + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); + 8000b5c: 4b53 ldr r3, [pc, #332] ; (8000cac ) + 8000b5e: 685b ldr r3, [r3, #4] + 8000b60: 4a52 ldr r2, [pc, #328] ; (8000cac ) + 8000b62: f443 5360 orr.w r3, r3, #14336 ; 0x3800 + 8000b66: 6053 str r3, [r2, #4] + } + + /* Set the new HCLK clock divider */ + assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); + 8000b68: 4b50 ldr r3, [pc, #320] ; (8000cac ) + 8000b6a: 685b ldr r3, [r3, #4] + 8000b6c: f023 02f0 bic.w r2, r3, #240 ; 0xf0 + 8000b70: 687b ldr r3, [r7, #4] + 8000b72: 689b ldr r3, [r3, #8] + 8000b74: 494d ldr r1, [pc, #308] ; (8000cac ) + 8000b76: 4313 orrs r3, r2 + 8000b78: 604b str r3, [r1, #4] + } + + /*------------------------- SYSCLK Configuration ---------------------------*/ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) + 8000b7a: 687b ldr r3, [r7, #4] + 8000b7c: 681b ldr r3, [r3, #0] + 8000b7e: f003 0301 and.w r3, r3, #1 + 8000b82: 2b00 cmp r3, #0 + 8000b84: d040 beq.n 8000c08 + { + assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); + + /* HSE is selected as System Clock Source */ + if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + 8000b86: 687b ldr r3, [r7, #4] + 8000b88: 685b ldr r3, [r3, #4] + 8000b8a: 2b01 cmp r3, #1 + 8000b8c: d107 bne.n 8000b9e + { + /* Check the HSE ready flag */ + if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 8000b8e: 4b47 ldr r3, [pc, #284] ; (8000cac ) + 8000b90: 681b ldr r3, [r3, #0] + 8000b92: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8000b96: 2b00 cmp r3, #0 + 8000b98: d115 bne.n 8000bc6 + { + return HAL_ERROR; + 8000b9a: 2301 movs r3, #1 + 8000b9c: e07f b.n 8000c9e + } + } + /* PLL is selected as System Clock Source */ + else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + 8000b9e: 687b ldr r3, [r7, #4] + 8000ba0: 685b ldr r3, [r3, #4] + 8000ba2: 2b02 cmp r3, #2 + 8000ba4: d107 bne.n 8000bb6 + { + /* Check the PLL ready flag */ + if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 8000ba6: 4b41 ldr r3, [pc, #260] ; (8000cac ) + 8000ba8: 681b ldr r3, [r3, #0] + 8000baa: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8000bae: 2b00 cmp r3, #0 + 8000bb0: d109 bne.n 8000bc6 + { + return HAL_ERROR; + 8000bb2: 2301 movs r3, #1 + 8000bb4: e073 b.n 8000c9e + } + /* HSI is selected as System Clock Source */ + else + { + /* Check the HSI ready flag */ + if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 8000bb6: 4b3d ldr r3, [pc, #244] ; (8000cac ) + 8000bb8: 681b ldr r3, [r3, #0] + 8000bba: f003 0302 and.w r3, r3, #2 + 8000bbe: 2b00 cmp r3, #0 + 8000bc0: d101 bne.n 8000bc6 + { + return HAL_ERROR; + 8000bc2: 2301 movs r3, #1 + 8000bc4: e06b b.n 8000c9e + } + } + __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); + 8000bc6: 4b39 ldr r3, [pc, #228] ; (8000cac ) + 8000bc8: 685b ldr r3, [r3, #4] + 8000bca: f023 0203 bic.w r2, r3, #3 + 8000bce: 687b ldr r3, [r7, #4] + 8000bd0: 685b ldr r3, [r3, #4] + 8000bd2: 4936 ldr r1, [pc, #216] ; (8000cac ) + 8000bd4: 4313 orrs r3, r2 + 8000bd6: 604b str r3, [r1, #4] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000bd8: f7ff fc18 bl 800040c + 8000bdc: 60f8 str r0, [r7, #12] + + while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + 8000bde: e00a b.n 8000bf6 + { + if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + 8000be0: f7ff fc14 bl 800040c + 8000be4: 4602 mov r2, r0 + 8000be6: 68fb ldr r3, [r7, #12] + 8000be8: 1ad3 subs r3, r2, r3 + 8000bea: f241 3288 movw r2, #5000 ; 0x1388 + 8000bee: 4293 cmp r3, r2 + 8000bf0: d901 bls.n 8000bf6 + { + return HAL_TIMEOUT; + 8000bf2: 2303 movs r3, #3 + 8000bf4: e053 b.n 8000c9e + while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + 8000bf6: 4b2d ldr r3, [pc, #180] ; (8000cac ) + 8000bf8: 685b ldr r3, [r3, #4] + 8000bfa: f003 020c and.w r2, r3, #12 + 8000bfe: 687b ldr r3, [r7, #4] + 8000c00: 685b ldr r3, [r3, #4] + 8000c02: 009b lsls r3, r3, #2 + 8000c04: 429a cmp r2, r3 + 8000c06: d1eb bne.n 8000be0 + } + } + +#if defined(FLASH_ACR_LATENCY) + /* Decreasing the number of wait states because of lower CPU frequency */ + if (FLatency < __HAL_FLASH_GET_LATENCY()) + 8000c08: 4b27 ldr r3, [pc, #156] ; (8000ca8 ) + 8000c0a: 681b ldr r3, [r3, #0] + 8000c0c: f003 0307 and.w r3, r3, #7 + 8000c10: 683a ldr r2, [r7, #0] + 8000c12: 429a cmp r2, r3 + 8000c14: d210 bcs.n 8000c38 + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 8000c16: 4b24 ldr r3, [pc, #144] ; (8000ca8 ) + 8000c18: 681b ldr r3, [r3, #0] + 8000c1a: f023 0207 bic.w r2, r3, #7 + 8000c1e: 4922 ldr r1, [pc, #136] ; (8000ca8 ) + 8000c20: 683b ldr r3, [r7, #0] + 8000c22: 4313 orrs r3, r2 + 8000c24: 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) + 8000c26: 4b20 ldr r3, [pc, #128] ; (8000ca8 ) + 8000c28: 681b ldr r3, [r3, #0] + 8000c2a: f003 0307 and.w r3, r3, #7 + 8000c2e: 683a ldr r2, [r7, #0] + 8000c30: 429a cmp r2, r3 + 8000c32: d001 beq.n 8000c38 + { + return HAL_ERROR; + 8000c34: 2301 movs r3, #1 + 8000c36: e032 b.n 8000c9e + } +} +#endif /* FLASH_ACR_LATENCY */ + +/*-------------------------- PCLK1 Configuration ---------------------------*/ +if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 8000c38: 687b ldr r3, [r7, #4] + 8000c3a: 681b ldr r3, [r3, #0] + 8000c3c: f003 0304 and.w r3, r3, #4 + 8000c40: 2b00 cmp r3, #0 + 8000c42: d008 beq.n 8000c56 + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); + 8000c44: 4b19 ldr r3, [pc, #100] ; (8000cac ) + 8000c46: 685b ldr r3, [r3, #4] + 8000c48: f423 62e0 bic.w r2, r3, #1792 ; 0x700 + 8000c4c: 687b ldr r3, [r7, #4] + 8000c4e: 68db ldr r3, [r3, #12] + 8000c50: 4916 ldr r1, [pc, #88] ; (8000cac ) + 8000c52: 4313 orrs r3, r2 + 8000c54: 604b str r3, [r1, #4] + } + + /*-------------------------- PCLK2 Configuration ---------------------------*/ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 8000c56: 687b ldr r3, [r7, #4] + 8000c58: 681b ldr r3, [r3, #0] + 8000c5a: f003 0308 and.w r3, r3, #8 + 8000c5e: 2b00 cmp r3, #0 + 8000c60: d009 beq.n 8000c76 + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3)); + 8000c62: 4b12 ldr r3, [pc, #72] ; (8000cac ) + 8000c64: 685b ldr r3, [r3, #4] + 8000c66: f423 5260 bic.w r2, r3, #14336 ; 0x3800 + 8000c6a: 687b ldr r3, [r7, #4] + 8000c6c: 691b ldr r3, [r3, #16] + 8000c6e: 00db lsls r3, r3, #3 + 8000c70: 490e ldr r1, [pc, #56] ; (8000cac ) + 8000c72: 4313 orrs r3, r2 + 8000c74: 604b str r3, [r1, #4] + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos]; + 8000c76: f000 f821 bl 8000cbc + 8000c7a: 4602 mov r2, r0 + 8000c7c: 4b0b ldr r3, [pc, #44] ; (8000cac ) + 8000c7e: 685b ldr r3, [r3, #4] + 8000c80: 091b lsrs r3, r3, #4 + 8000c82: f003 030f and.w r3, r3, #15 + 8000c86: 490a ldr r1, [pc, #40] ; (8000cb0 ) + 8000c88: 5ccb ldrb r3, [r1, r3] + 8000c8a: fa22 f303 lsr.w r3, r2, r3 + 8000c8e: 4a09 ldr r2, [pc, #36] ; (8000cb4 ) + 8000c90: 6013 str r3, [r2, #0] + + /* Configure the source of time base considering new system clocks settings*/ + HAL_InitTick(uwTickPrio); + 8000c92: 4b09 ldr r3, [pc, #36] ; (8000cb8 ) + 8000c94: 681b ldr r3, [r3, #0] + 8000c96: 4618 mov r0, r3 + 8000c98: f7ff fb76 bl 8000388 + + return HAL_OK; + 8000c9c: 2300 movs r3, #0 +} + 8000c9e: 4618 mov r0, r3 + 8000ca0: 3710 adds r7, #16 + 8000ca2: 46bd mov sp, r7 + 8000ca4: bd80 pop {r7, pc} + 8000ca6: bf00 nop + 8000ca8: 40022000 .word 0x40022000 + 8000cac: 40021000 .word 0x40021000 + 8000cb0: 08000e38 .word 0x08000e38 + 8000cb4: 20000000 .word 0x20000000 + 8000cb8: 20000004 .word 0x20000004 + +08000cbc : + * right SYSCLK value. Otherwise, any configuration based on this function will be incorrect. + * + * @retval SYSCLK frequency + */ +uint32_t HAL_RCC_GetSysClockFreq(void) +{ + 8000cbc: b490 push {r4, r7} + 8000cbe: b08a sub sp, #40 ; 0x28 + 8000cc0: af00 add r7, sp, #0 +#if defined(RCC_CFGR2_PREDIV1SRC) + const uint8_t aPLLMULFactorTable[14] = {0, 0, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 13}; + const uint8_t aPredivFactorTable[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; +#else + const uint8_t aPLLMULFactorTable[16] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16}; + 8000cc2: 4b2a ldr r3, [pc, #168] ; (8000d6c ) + 8000cc4: 1d3c adds r4, r7, #4 + 8000cc6: cb0f ldmia r3, {r0, r1, r2, r3} + 8000cc8: e884 000f stmia.w r4, {r0, r1, r2, r3} +#if defined(RCC_CFGR2_PREDIV1) + const uint8_t aPredivFactorTable[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; +#else + const uint8_t aPredivFactorTable[2] = {1, 2}; + 8000ccc: f240 2301 movw r3, #513 ; 0x201 + 8000cd0: 803b strh r3, [r7, #0] +#endif /*RCC_CFGR2_PREDIV1*/ + +#endif + uint32_t tmpreg = 0U, prediv = 0U, pllclk = 0U, pllmul = 0U; + 8000cd2: 2300 movs r3, #0 + 8000cd4: 61fb str r3, [r7, #28] + 8000cd6: 2300 movs r3, #0 + 8000cd8: 61bb str r3, [r7, #24] + 8000cda: 2300 movs r3, #0 + 8000cdc: 627b str r3, [r7, #36] ; 0x24 + 8000cde: 2300 movs r3, #0 + 8000ce0: 617b str r3, [r7, #20] + uint32_t sysclockfreq = 0U; + 8000ce2: 2300 movs r3, #0 + 8000ce4: 623b str r3, [r7, #32] +#if defined(RCC_CFGR2_PREDIV1SRC) + uint32_t prediv2 = 0U, pll2mul = 0U; +#endif /*RCC_CFGR2_PREDIV1SRC*/ + + tmpreg = RCC->CFGR; + 8000ce6: 4b22 ldr r3, [pc, #136] ; (8000d70 ) + 8000ce8: 685b ldr r3, [r3, #4] + 8000cea: 61fb str r3, [r7, #28] + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (tmpreg & RCC_CFGR_SWS) + 8000cec: 69fb ldr r3, [r7, #28] + 8000cee: f003 030c and.w r3, r3, #12 + 8000cf2: 2b04 cmp r3, #4 + 8000cf4: d002 beq.n 8000cfc + 8000cf6: 2b08 cmp r3, #8 + 8000cf8: d003 beq.n 8000d02 + 8000cfa: e02d b.n 8000d58 + { + case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock */ + { + sysclockfreq = HSE_VALUE; + 8000cfc: 4b1d ldr r3, [pc, #116] ; (8000d74 ) + 8000cfe: 623b str r3, [r7, #32] + break; + 8000d00: e02d b.n 8000d5e + } + case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock */ + { + pllmul = aPLLMULFactorTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMULL) >> RCC_CFGR_PLLMULL_Pos]; + 8000d02: 69fb ldr r3, [r7, #28] + 8000d04: 0c9b lsrs r3, r3, #18 + 8000d06: f003 030f and.w r3, r3, #15 + 8000d0a: f107 0228 add.w r2, r7, #40 ; 0x28 + 8000d0e: 4413 add r3, r2 + 8000d10: f813 3c24 ldrb.w r3, [r3, #-36] + 8000d14: 617b str r3, [r7, #20] + if ((tmpreg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI_DIV2) + 8000d16: 69fb ldr r3, [r7, #28] + 8000d18: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8000d1c: 2b00 cmp r3, #0 + 8000d1e: d013 beq.n 8000d48 + { +#if defined(RCC_CFGR2_PREDIV1) + prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR2 & RCC_CFGR2_PREDIV1) >> RCC_CFGR2_PREDIV1_Pos]; +#else + prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR & RCC_CFGR_PLLXTPRE) >> RCC_CFGR_PLLXTPRE_Pos]; + 8000d20: 4b13 ldr r3, [pc, #76] ; (8000d70 ) + 8000d22: 685b ldr r3, [r3, #4] + 8000d24: 0c5b lsrs r3, r3, #17 + 8000d26: f003 0301 and.w r3, r3, #1 + 8000d2a: f107 0228 add.w r2, r7, #40 ; 0x28 + 8000d2e: 4413 add r3, r2 + 8000d30: f813 3c28 ldrb.w r3, [r3, #-40] + 8000d34: 61bb str r3, [r7, #24] + { + pllclk = pllclk / 2; + } +#else + /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV1 * PLLMUL */ + pllclk = (uint32_t)((HSE_VALUE * pllmul) / prediv); + 8000d36: 697b ldr r3, [r7, #20] + 8000d38: 4a0e ldr r2, [pc, #56] ; (8000d74 ) + 8000d3a: fb02 f203 mul.w r2, r2, r3 + 8000d3e: 69bb ldr r3, [r7, #24] + 8000d40: fbb2 f3f3 udiv r3, r2, r3 + 8000d44: 627b str r3, [r7, #36] ; 0x24 + 8000d46: e004 b.n 8000d52 +#endif /*RCC_CFGR2_PREDIV1SRC*/ + } + else + { + /* HSI used as PLL clock source : PLLCLK = HSI/2 * PLLMUL */ + pllclk = (uint32_t)((HSI_VALUE >> 1) * pllmul); + 8000d48: 697b ldr r3, [r7, #20] + 8000d4a: 4a0b ldr r2, [pc, #44] ; (8000d78 ) + 8000d4c: fb02 f303 mul.w r3, r2, r3 + 8000d50: 627b str r3, [r7, #36] ; 0x24 + } + sysclockfreq = pllclk; + 8000d52: 6a7b ldr r3, [r7, #36] ; 0x24 + 8000d54: 623b str r3, [r7, #32] + break; + 8000d56: e002 b.n 8000d5e + } + case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ + default: /* HSI used as system clock */ + { + sysclockfreq = HSI_VALUE; + 8000d58: 4b06 ldr r3, [pc, #24] ; (8000d74 ) + 8000d5a: 623b str r3, [r7, #32] + break; + 8000d5c: bf00 nop + } + } + return sysclockfreq; + 8000d5e: 6a3b ldr r3, [r7, #32] +} + 8000d60: 4618 mov r0, r3 + 8000d62: 3728 adds r7, #40 ; 0x28 + 8000d64: 46bd mov sp, r7 + 8000d66: bc90 pop {r4, r7} + 8000d68: 4770 bx lr + 8000d6a: bf00 nop + 8000d6c: 08000e28 .word 0x08000e28 + 8000d70: 40021000 .word 0x40021000 + 8000d74: 007a1200 .word 0x007a1200 + 8000d78: 003d0900 .word 0x003d0900 + +08000d7c : + * @brief This function provides delay (in milliseconds) based on CPU cycles method. + * @param mdelay: specifies the delay time length, in milliseconds. + * @retval None + */ +static void RCC_Delay(uint32_t mdelay) +{ + 8000d7c: b480 push {r7} + 8000d7e: b085 sub sp, #20 + 8000d80: af00 add r7, sp, #0 + 8000d82: 6078 str r0, [r7, #4] + __IO uint32_t Delay = mdelay * (SystemCoreClock / 8U / 1000U); + 8000d84: 4b0a ldr r3, [pc, #40] ; (8000db0 ) + 8000d86: 681b ldr r3, [r3, #0] + 8000d88: 4a0a ldr r2, [pc, #40] ; (8000db4 ) + 8000d8a: fba2 2303 umull r2, r3, r2, r3 + 8000d8e: 0a5b lsrs r3, r3, #9 + 8000d90: 687a ldr r2, [r7, #4] + 8000d92: fb02 f303 mul.w r3, r2, r3 + 8000d96: 60fb str r3, [r7, #12] + do + { + __NOP(); + 8000d98: bf00 nop + } + while (Delay --); + 8000d9a: 68fb ldr r3, [r7, #12] + 8000d9c: 1e5a subs r2, r3, #1 + 8000d9e: 60fa str r2, [r7, #12] + 8000da0: 2b00 cmp r3, #0 + 8000da2: d1f9 bne.n 8000d98 +} + 8000da4: bf00 nop + 8000da6: bf00 nop + 8000da8: 3714 adds r7, #20 + 8000daa: 46bd mov sp, r7 + 8000dac: bc80 pop {r7} + 8000dae: 4770 bx lr + 8000db0: 20000000 .word 0x20000000 + 8000db4: 10624dd3 .word 0x10624dd3 + +08000db8 <__libc_init_array>: + 8000db8: b570 push {r4, r5, r6, lr} + 8000dba: 2600 movs r6, #0 + 8000dbc: 4d0c ldr r5, [pc, #48] ; (8000df0 <__libc_init_array+0x38>) + 8000dbe: 4c0d ldr r4, [pc, #52] ; (8000df4 <__libc_init_array+0x3c>) + 8000dc0: 1b64 subs r4, r4, r5 + 8000dc2: 10a4 asrs r4, r4, #2 + 8000dc4: 42a6 cmp r6, r4 + 8000dc6: d109 bne.n 8000ddc <__libc_init_array+0x24> + 8000dc8: f000 f822 bl 8000e10 <_init> + 8000dcc: 2600 movs r6, #0 + 8000dce: 4d0a ldr r5, [pc, #40] ; (8000df8 <__libc_init_array+0x40>) + 8000dd0: 4c0a ldr r4, [pc, #40] ; (8000dfc <__libc_init_array+0x44>) + 8000dd2: 1b64 subs r4, r4, r5 + 8000dd4: 10a4 asrs r4, r4, #2 + 8000dd6: 42a6 cmp r6, r4 + 8000dd8: d105 bne.n 8000de6 <__libc_init_array+0x2e> + 8000dda: bd70 pop {r4, r5, r6, pc} + 8000ddc: f855 3b04 ldr.w r3, [r5], #4 + 8000de0: 4798 blx r3 + 8000de2: 3601 adds r6, #1 + 8000de4: e7ee b.n 8000dc4 <__libc_init_array+0xc> + 8000de6: f855 3b04 ldr.w r3, [r5], #4 + 8000dea: 4798 blx r3 + 8000dec: 3601 adds r6, #1 + 8000dee: e7f2 b.n 8000dd6 <__libc_init_array+0x1e> + 8000df0: 08000e48 .word 0x08000e48 + 8000df4: 08000e48 .word 0x08000e48 + 8000df8: 08000e48 .word 0x08000e48 + 8000dfc: 08000e4c .word 0x08000e4c + +08000e00 : + 8000e00: 4603 mov r3, r0 + 8000e02: 4402 add r2, r0 + 8000e04: 4293 cmp r3, r2 + 8000e06: d100 bne.n 8000e0a + 8000e08: 4770 bx lr + 8000e0a: f803 1b01 strb.w r1, [r3], #1 + 8000e0e: e7f9 b.n 8000e04 + +08000e10 <_init>: + 8000e10: b5f8 push {r3, r4, r5, r6, r7, lr} + 8000e12: bf00 nop + 8000e14: bcf8 pop {r3, r4, r5, r6, r7} + 8000e16: bc08 pop {r3} + 8000e18: 469e mov lr, r3 + 8000e1a: 4770 bx lr + +08000e1c <_fini>: + 8000e1c: b5f8 push {r3, r4, r5, r6, r7, lr} + 8000e1e: bf00 nop + 8000e20: bcf8 pop {r3, r4, r5, r6, r7} + 8000e22: bc08 pop {r3} + 8000e24: 469e mov lr, r3 + 8000e26: 4770 bx lr diff --git a/stm32f103/Debug/stm32f103.map b/stm32f103/Debug/stm32f103.map new file mode 100644 index 0000000..5d780da --- /dev/null +++ b/stm32f103/Debug/stm32f103.map @@ -0,0 +1,2353 @@ +Archive member included to satisfy reference by file (symbol) + +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-errno.o) + ./Core/Src/syscalls.o (__errno) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-exit.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (exit) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-impure.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-exit.o) (_global_impure_ptr) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-init.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (__libc_init_array) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-memset.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (memset) + +Allocating common symbols +Common symbol size file + +uwTick 0x4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o +pFlash 0x20 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + +Discarded input sections + + .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + .data 0x0000000000000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + .text 0x0000000000000000 0x7c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.extab 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.exidx 0x0000000000000000 0x10 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.attributes + 0x0000000000000000 0x1b /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/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 + .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/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_hal_msp.o + .text 0x0000000000000000 0x0 ./Core/Src/stm32f1xx_hal_msp.o + .data 0x0000000000000000 0x0 ./Core/Src/stm32f1xx_hal_msp.o + .bss 0x0000000000000000 0x0 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0xa9c ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x20f ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x2e ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x8e ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x51 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x103 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x6a ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1df ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0xc3 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0xd23 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0xe09e ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x6d ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x3468 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x174 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x5c ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x5be ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x289 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1cb ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x114 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1b2 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x27 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x136 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1bc ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x3c ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x57 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x88 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x241 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x141 ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x83 ./Core/Src/stm32f1xx_hal_msp.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .group 0x0000000000000000 0xc ./Core/Src/stm32f1xx_it.o + .text 0x0000000000000000 0x0 ./Core/Src/stm32f1xx_it.o + .data 0x0000000000000000 0x0 ./Core/Src/stm32f1xx_it.o + .bss 0x0000000000000000 0x0 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0xa9c ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x20f ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x2e ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x8e ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x51 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x103 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x6a ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x1df ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0xc3 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0xd23 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0xe09e ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x6d ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x3468 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x174 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x5c ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x5be ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x289 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x1cb ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x114 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x1b2 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x27 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x136 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x1bc ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x3c ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x57 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x88 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x241 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x141 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x83 ./Core/Src/stm32f1xx_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 0xc ./Core/Src/syscalls.o + .text._getpid 0x0000000000000000 0xe ./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 0x16 ./Core/Src/syscalls.o + .text._fstat 0x0000000000000000 0x1e ./Core/Src/syscalls.o + .text._isatty 0x0000000000000000 0x14 ./Core/Src/syscalls.o + .text._lseek 0x0000000000000000 0x18 ./Core/Src/syscalls.o + .text._open 0x0000000000000000 0x1a ./Core/Src/syscalls.o + .text._wait 0x0000000000000000 0x1e ./Core/Src/syscalls.o + .text._unlink 0x0000000000000000 0x1e ./Core/Src/syscalls.o + .text._times 0x0000000000000000 0x16 ./Core/Src/syscalls.o + .text._stat 0x0000000000000000 0x1e ./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 0xfa8 ./Core/Src/syscalls.o + .debug_abbrev 0x0000000000000000 0x286 ./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 0xa9c ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x4c ./Core/Src/syscalls.o + .debug_macro 0x0000000000000000 0x18 ./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 0x339 ./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 0x40 ./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 0x83e ./Core/Src/syscalls.o + .debug_str 0x0000000000000000 0x8e8d ./Core/Src/syscalls.o + .comment 0x0000000000000000 0x54 ./Core/Src/syscalls.o + .debug_frame 0x0000000000000000 0x2ac ./Core/Src/syscalls.o + .ARM.attributes + 0x0000000000000000 0x2d ./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 0xa25 ./Core/Src/sysmem.o + .debug_abbrev 0x0000000000000000 0x1bf ./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 0xa9c ./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 0x18 ./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 0x534 ./Core/Src/sysmem.o + .debug_str 0x0000000000000000 0x6260 ./Core/Src/sysmem.o + .comment 0x0000000000000000 0x54 ./Core/Src/sysmem.o + .debug_frame 0x0000000000000000 0x34 ./Core/Src/sysmem.o + .ARM.attributes + 0x0000000000000000 0x2d ./Core/Src/sysmem.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .group 0x0000000000000000 0xc ./Core/Src/system_stm32f1xx.o + .text 0x0000000000000000 0x0 ./Core/Src/system_stm32f1xx.o + .data 0x0000000000000000 0x0 ./Core/Src/system_stm32f1xx.o + .bss 0x0000000000000000 0x0 ./Core/Src/system_stm32f1xx.o + .rodata.APBPrescTable + 0x0000000000000000 0x8 ./Core/Src/system_stm32f1xx.o + .text.SystemCoreClockUpdate + 0x0000000000000000 0xe4 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0xa9c ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x2e ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x8e ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x51 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x103 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x6a ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x1df ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x1c ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x22 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0xc3 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0xd23 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0xe09e ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x6d ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x20f ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x3468 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x174 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x5c ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x5be ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x289 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x1cb ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x114 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x1b2 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x27 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x136 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x1bc ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x34 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x3c ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x57 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x88 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x241 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x141 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x83 ./Core/Src/system_stm32f1xx.o + .text 0x0000000000000000 0x14 ./Core/Startup/startup_stm32f103c8tx.o + .data 0x0000000000000000 0x0 ./Core/Startup/startup_stm32f103c8tx.o + .bss 0x0000000000000000 0x0 ./Core/Startup/startup_stm32f103c8tx.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_DeInit + 0x0000000000000000 0x30 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_MspInit + 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_MspDeInit + 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_GetTickPrio + 0x0000000000000000 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_SetTickFreq + 0x0000000000000000 0x50 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_GetTickFreq + 0x0000000000000000 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_Delay + 0x0000000000000000 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_SuspendTick + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_ResumeTick + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_GetHalVersion + 0x0000000000000000 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_GetREVID + 0x0000000000000000 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_GetDEVID + 0x0000000000000000 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_GetUIDw0 + 0x0000000000000000 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_GetUIDw1 + 0x0000000000000000 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_GetUIDw2 + 0x0000000000000000 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_DBGMCU_EnableDBGSleepMode + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_DBGMCU_DisableDBGSleepMode + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_DBGMCU_EnableDBGStopMode + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_DBGMCU_DisableDBGStopMode + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_DBGMCU_EnableDBGStandbyMode + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .text.HAL_DBGMCU_DisableDBGStandbyMode + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_EnableIRQ + 0x0000000000000000 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_DisableIRQ + 0x0000000000000000 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_GetPendingIRQ + 0x0000000000000000 0x40 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_SetPendingIRQ + 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_ClearPendingIRQ + 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_GetActive + 0x0000000000000000 0x40 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_GetPriority + 0x0000000000000000 0x4c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.NVIC_DecodePriority + 0x0000000000000000 0x6c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_SystemReset + 0x0000000000000000 0x2c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_NVIC_EnableIRQ + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_NVIC_DisableIRQ + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_NVIC_SystemReset + 0x0000000000000000 0x8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_NVIC_GetPriorityGrouping + 0x0000000000000000 0xe ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_NVIC_GetPriority + 0x0000000000000000 0x2c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_NVIC_SetPendingIRQ + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_NVIC_GetPendingIRQ + 0x0000000000000000 0x1e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_NVIC_ClearPendingIRQ + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_NVIC_GetActive + 0x0000000000000000 0x1e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_SYSTICK_CLKSourceConfig + 0x0000000000000000 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_SYSTICK_IRQHandler + 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_SYSTICK_Callback + 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_Init + 0x0000000000000000 0xb4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_DeInit + 0x0000000000000000 0xb8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_Start + 0x0000000000000000 0x84 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_Start_IT + 0x0000000000000000 0xbe ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_Abort + 0x0000000000000000 0x74 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_Abort_IT + 0x0000000000000000 0xec ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_PollForTransfer + 0x0000000000000000 0x30c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_IRQHandler + 0x0000000000000000 0x20c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_RegisterCallback + 0x0000000000000000 0x90 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_UnRegisterCallback + 0x0000000000000000 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_GetState + 0x0000000000000000 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_GetError + 0x0000000000000000 0x16 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.DMA_SetConfig + 0x0000000000000000 0x5a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_info 0x0000000000000000 0x81e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_abbrev 0x0000000000000000 0x228 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_aranges + 0x0000000000000000 0x80 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_ranges 0x0000000000000000 0x70 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x184 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_line 0x0000000000000000 0xd67 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_str 0x0000000000000000 0x7b02f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .comment 0x0000000000000000 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_frame 0x0000000000000000 0x208 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .ARM.attributes + 0x0000000000000000 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .text.HAL_EXTI_SetConfigLine + 0x0000000000000000 0x14c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .text.HAL_EXTI_GetConfigLine + 0x0000000000000000 0xf0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .text.HAL_EXTI_ClearConfigLine + 0x0000000000000000 0xc0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .text.HAL_EXTI_RegisterCallback + 0x0000000000000000 0x32 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .text.HAL_EXTI_GetHandle + 0x0000000000000000 0x26 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .text.HAL_EXTI_IRQHandler + 0x0000000000000000 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .text.HAL_EXTI_GetPending + 0x0000000000000000 0x40 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .text.HAL_EXTI_ClearPending + 0x0000000000000000 0x30 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .text.HAL_EXTI_GenerateSWI + 0x0000000000000000 0x2c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_info 0x0000000000000000 0x62f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_abbrev 0x0000000000000000 0x1e2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_aranges + 0x0000000000000000 0x60 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_ranges 0x0000000000000000 0x50 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x184 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_line 0x0000000000000000 0x937 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_str 0x0000000000000000 0x7ae14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .comment 0x0000000000000000 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_frame 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .ARM.attributes + 0x0000000000000000 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.HAL_FLASH_Program + 0x0000000000000000 0xe0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.HAL_FLASH_Program_IT + 0x0000000000000000 0x90 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.HAL_FLASH_IRQHandler + 0x0000000000000000 0x1c8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.HAL_FLASH_EndOfOperationCallback + 0x0000000000000000 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.HAL_FLASH_OperationErrorCallback + 0x0000000000000000 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.HAL_FLASH_Unlock + 0x0000000000000000 0x4c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.HAL_FLASH_Lock + 0x0000000000000000 0x20 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.HAL_FLASH_OB_Unlock + 0x0000000000000000 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.HAL_FLASH_OB_Lock + 0x0000000000000000 0x20 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.HAL_FLASH_OB_Launch + 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.HAL_FLASH_GetError + 0x0000000000000000 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.FLASH_Program_HalfWord + 0x0000000000000000 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.FLASH_WaitForLastOperation + 0x0000000000000000 0x8c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .text.FLASH_SetErrorCode + 0x0000000000000000 0xa0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_info 0x0000000000000000 0x5f3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_abbrev 0x0000000000000000 0x23e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_aranges + 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_ranges 0x0000000000000000 0x78 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x184 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_line 0x0000000000000000 0x9ec ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_str 0x0000000000000000 0x7af2a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .comment 0x0000000000000000 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_frame 0x0000000000000000 0x20c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .ARM.attributes + 0x0000000000000000 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + COMMON 0x0000000000000000 0x20 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.HAL_FLASHEx_Erase + 0x0000000000000000 0xd8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.HAL_FLASHEx_Erase_IT + 0x0000000000000000 0x84 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBErase + 0x0000000000000000 0x84 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBProgram + 0x0000000000000000 0xf8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBGetConfig + 0x0000000000000000 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBGetUserData + 0x0000000000000000 0x40 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.FLASH_MassErase + 0x0000000000000000 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.FLASH_OB_EnableWRP + 0x0000000000000000 0x144 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.FLASH_OB_DisableWRP + 0x0000000000000000 0x140 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.FLASH_OB_RDP_LevelConfig + 0x0000000000000000 0xa0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.FLASH_OB_UserConfig + 0x0000000000000000 0x70 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.FLASH_OB_ProgramData + 0x0000000000000000 0x68 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.FLASH_OB_GetWRP + 0x0000000000000000 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.FLASH_OB_GetRDP + 0x0000000000000000 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.FLASH_OB_GetUser + 0x0000000000000000 0x20 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .text.FLASH_PageErase + 0x0000000000000000 0x40 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_info 0x0000000000000000 0x8a2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_abbrev 0x0000000000000000 0x249 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_aranges + 0x0000000000000000 0x98 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_ranges 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x196 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_line 0x0000000000000000 0xadb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_str 0x0000000000000000 0x7b0ee ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .comment 0x0000000000000000 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_frame 0x0000000000000000 0x258 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .ARM.attributes + 0x0000000000000000 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .text.HAL_GPIO_Init + 0x0000000000000000 0x308 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .text.HAL_GPIO_DeInit + 0x0000000000000000 0x178 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .text.HAL_GPIO_ReadPin + 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .text.HAL_GPIO_WritePin + 0x0000000000000000 0x30 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .text.HAL_GPIO_TogglePin + 0x0000000000000000 0x32 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .text.HAL_GPIO_LockPin + 0x0000000000000000 0x4e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .text.HAL_GPIO_EXTI_IRQHandler + 0x0000000000000000 0x30 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .text.HAL_GPIO_EXTI_Callback + 0x0000000000000000 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_info 0x0000000000000000 0x701 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_abbrev 0x0000000000000000 0x1e8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_aranges + 0x0000000000000000 0x58 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_ranges 0x0000000000000000 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1ef ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_line 0x0000000000000000 0x9a6 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_str 0x0000000000000000 0x7b018 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .comment 0x0000000000000000 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_frame 0x0000000000000000 0x14c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .ARM.attributes + 0x0000000000000000 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .text.HAL_GPIOEx_ConfigEventout + 0x0000000000000000 0x2c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .text.HAL_GPIOEx_EnableEventout + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .text.HAL_GPIOEx_DisableEventout + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_info 0x0000000000000000 0x248 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_abbrev 0x0000000000000000 0x112 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_aranges + 0x0000000000000000 0x30 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_ranges 0x0000000000000000 0x20 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x184 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_line 0x0000000000000000 0x6a5 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_str 0x0000000000000000 0x7ac95 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .comment 0x0000000000000000 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_frame 0x0000000000000000 0x78 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .ARM.attributes + 0x0000000000000000 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.PWR_OverloadWfe + 0x0000000000000000 0x10 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_DeInit + 0x0000000000000000 0x28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_EnableBkUpAccess + 0x0000000000000000 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_DisableBkUpAccess + 0x0000000000000000 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_ConfigPVD + 0x0000000000000000 0xbc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_EnablePVD + 0x0000000000000000 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_DisablePVD + 0x0000000000000000 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_EnableWakeUpPin + 0x0000000000000000 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_DisableWakeUpPin + 0x0000000000000000 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_EnterSLEEPMode + 0x0000000000000000 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_EnterSTOPMode + 0x0000000000000000 0x64 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_EnterSTANDBYMode + 0x0000000000000000 0x30 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_EnableSleepOnExit + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_DisableSleepOnExit + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_EnableSEVOnPend + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_DisableSEVOnPend + 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_PVD_IRQHandler + 0x0000000000000000 0x24 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .text.HAL_PWR_PVDCallback + 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_info 0x0000000000000000 0x730 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_abbrev 0x0000000000000000 0x213 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_aranges + 0x0000000000000000 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_ranges 0x0000000000000000 0x98 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1e4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_line 0x0000000000000000 0x891 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_str 0x0000000000000000 0x7b1b7 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .comment 0x0000000000000000 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_frame 0x0000000000000000 0x270 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .ARM.attributes + 0x0000000000000000 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.HAL_RCC_DeInit + 0x0000000000000000 0x134 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.HAL_RCC_MCOConfig + 0x0000000000000000 0x70 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.HAL_RCC_EnableCSS + 0x0000000000000000 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.HAL_RCC_DisableCSS + 0x0000000000000000 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.HAL_RCC_GetHCLKFreq + 0x0000000000000000 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.HAL_RCC_GetPCLK1Freq + 0x0000000000000000 0x28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.HAL_RCC_GetPCLK2Freq + 0x0000000000000000 0x28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.HAL_RCC_GetOscConfig + 0x0000000000000000 0x104 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.HAL_RCC_GetClockConfig + 0x0000000000000000 0x60 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.HAL_RCC_NMI_IRQHandler + 0x0000000000000000 0x28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.HAL_RCC_CSSCallback + 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .text.HAL_RCCEx_PeriphCLKConfig + 0x0000000000000000 0x16c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .text.HAL_RCCEx_GetPeriphCLKConfig + 0x0000000000000000 0x60 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .rodata 0x0000000000000000 0x10 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .text.HAL_RCCEx_GetPeriphCLKFreq + 0x0000000000000000 0x188 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_info 0x0000000000000000 0x480 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_abbrev 0x0000000000000000 0x193 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_aranges + 0x0000000000000000 0x30 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_ranges 0x0000000000000000 0x20 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x184 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_line 0x0000000000000000 0x85b ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_str 0x0000000000000000 0x7adde ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .comment 0x0000000000000000 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_frame 0x0000000000000000 0x84 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .ARM.attributes + 0x0000000000000000 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_info 0x0000000000000000 0x178 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_abbrev 0x0000000000000000 0x9a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_aranges + 0x0000000000000000 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x185 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_line 0x0000000000000000 0x659 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_str 0x0000000000000000 0x7abf5 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .comment 0x0000000000000000 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .ARM.attributes + 0x0000000000000000 0x33 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .group 0x0000000000000000 0xc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .text 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .data 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .bss 0x0000000000000000 0x0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_info 0x0000000000000000 0x178 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_abbrev 0x0000000000000000 0x9a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_aranges + 0x0000000000000000 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x184 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x20f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0xc3 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0xd23 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0xe09e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x3468 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x5be ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x289 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x114 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x1b2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x27 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x136 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x1bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x88 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x141 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x83 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_line 0x0000000000000000 0x65c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_str 0x0000000000000000 0x7abf8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .comment 0x0000000000000000 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .ARM.attributes + 0x0000000000000000 0x33 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-errno.o) + .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-errno.o) + .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-errno.o) + .text.__errno 0x0000000000000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-errno.o) + .debug_frame 0x0000000000000000 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-errno.o) + .ARM.attributes + 0x0000000000000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-errno.o) + .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-exit.o) + .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-exit.o) + .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-exit.o) + .text.exit 0x0000000000000000 0x28 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-exit.o) + .debug_frame 0x0000000000000000 0x28 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-exit.o) + .ARM.attributes + 0x0000000000000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-exit.o) + .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-impure.o) + .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-impure.o) + .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-impure.o) + .data._impure_ptr + 0x0000000000000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-impure.o) + .data.impure_data + 0x0000000000000000 0x60 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-impure.o) + .rodata._global_impure_ptr + 0x0000000000000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-impure.o) + .ARM.attributes + 0x0000000000000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-impure.o) + .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-init.o) + .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-init.o) + .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-init.o) + .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-memset.o) + .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-memset.o) + .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-memset.o) + .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o + .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o + .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o + .eh_frame 0x0000000000000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o + .ARM.attributes + 0x0000000000000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o + .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + +Memory Configuration + +Name Origin Length Attributes +RAM 0x0000000020000000 0x0000000000005000 xrw +FLASH 0x0000000008000000 0x0000000000010000 xr +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o +LOAD ./Core/Src/main.o +LOAD ./Core/Src/stm32f1xx_hal_msp.o +LOAD ./Core/Src/stm32f1xx_it.o +LOAD ./Core/Src/syscalls.o +LOAD ./Core/Src/sysmem.o +LOAD ./Core/Src/system_stm32f1xx.o +LOAD ./Core/Startup/startup_stm32f103c8tx.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o +LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libm.a +END GROUP +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/libgcc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +END GROUP +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/libgcc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libnosys.a +END GROUP +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/libgcc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libnosys.a +END GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + 0x0000000020005000 _estack = (ORIGIN (RAM) + LENGTH (RAM)) + 0x0000000000000200 _Min_Heap_Size = 0x200 + 0x0000000000000400 _Min_Stack_Size = 0x400 + +.isr_vector 0x0000000008000000 0x10c + 0x0000000008000000 . = ALIGN (0x4) + *(.isr_vector) + .isr_vector 0x0000000008000000 0x10c ./Core/Startup/startup_stm32f103c8tx.o + 0x0000000008000000 g_pfnVectors + 0x000000000800010c . = ALIGN (0x4) + +.text 0x000000000800010c 0xd1c + 0x000000000800010c . = ALIGN (0x4) + *(.text) + .text 0x000000000800010c 0x40 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + *(.text*) + .text.main 0x000000000800014c 0x12 ./Core/Src/main.o + 0x000000000800014c main + .text.SystemClock_Config + 0x000000000800015e 0x8a ./Core/Src/main.o + 0x000000000800015e SystemClock_Config + .text.MX_GPIO_Init + 0x00000000080001e8 0x5c ./Core/Src/main.o + .text.Error_Handler + 0x0000000008000244 0xa ./Core/Src/main.o + 0x0000000008000244 Error_Handler + *fill* 0x000000000800024e 0x2 + .text.HAL_MspInit + 0x0000000008000250 0x64 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000008000250 HAL_MspInit + .text.NMI_Handler + 0x00000000080002b4 0x6 ./Core/Src/stm32f1xx_it.o + 0x00000000080002b4 NMI_Handler + .text.HardFault_Handler + 0x00000000080002ba 0x6 ./Core/Src/stm32f1xx_it.o + 0x00000000080002ba HardFault_Handler + .text.MemManage_Handler + 0x00000000080002c0 0x6 ./Core/Src/stm32f1xx_it.o + 0x00000000080002c0 MemManage_Handler + .text.BusFault_Handler + 0x00000000080002c6 0x6 ./Core/Src/stm32f1xx_it.o + 0x00000000080002c6 BusFault_Handler + .text.UsageFault_Handler + 0x00000000080002cc 0x6 ./Core/Src/stm32f1xx_it.o + 0x00000000080002cc UsageFault_Handler + .text.SVC_Handler + 0x00000000080002d2 0xc ./Core/Src/stm32f1xx_it.o + 0x00000000080002d2 SVC_Handler + .text.DebugMon_Handler + 0x00000000080002de 0xc ./Core/Src/stm32f1xx_it.o + 0x00000000080002de DebugMon_Handler + .text.PendSV_Handler + 0x00000000080002ea 0xc ./Core/Src/stm32f1xx_it.o + 0x00000000080002ea PendSV_Handler + .text.SysTick_Handler + 0x00000000080002f6 0xc ./Core/Src/stm32f1xx_it.o + 0x00000000080002f6 SysTick_Handler + .text.SystemInit + 0x0000000008000302 0xc ./Core/Src/system_stm32f1xx.o + 0x0000000008000302 SystemInit + *fill* 0x000000000800030e 0x2 + .text.Reset_Handler + 0x0000000008000310 0x48 ./Core/Startup/startup_stm32f103c8tx.o + 0x0000000008000310 Reset_Handler + .text.Default_Handler + 0x0000000008000358 0x2 ./Core/Startup/startup_stm32f103c8tx.o + 0x0000000008000358 USBWakeUp_IRQHandler + 0x0000000008000358 EXTI2_IRQHandler + 0x0000000008000358 TIM1_CC_IRQHandler + 0x0000000008000358 PVD_IRQHandler + 0x0000000008000358 EXTI3_IRQHandler + 0x0000000008000358 EXTI0_IRQHandler + 0x0000000008000358 I2C2_EV_IRQHandler + 0x0000000008000358 ADC1_2_IRQHandler + 0x0000000008000358 SPI1_IRQHandler + 0x0000000008000358 TAMPER_IRQHandler + 0x0000000008000358 DMA1_Channel4_IRQHandler + 0x0000000008000358 USART3_IRQHandler + 0x0000000008000358 RTC_IRQHandler + 0x0000000008000358 DMA1_Channel7_IRQHandler + 0x0000000008000358 CAN1_RX1_IRQHandler + 0x0000000008000358 TIM4_IRQHandler + 0x0000000008000358 I2C1_EV_IRQHandler + 0x0000000008000358 DMA1_Channel6_IRQHandler + 0x0000000008000358 TIM3_IRQHandler + 0x0000000008000358 RCC_IRQHandler + 0x0000000008000358 TIM1_TRG_COM_IRQHandler + 0x0000000008000358 DMA1_Channel1_IRQHandler + 0x0000000008000358 Default_Handler + 0x0000000008000358 EXTI15_10_IRQHandler + 0x0000000008000358 EXTI9_5_IRQHandler + 0x0000000008000358 SPI2_IRQHandler + 0x0000000008000358 DMA1_Channel5_IRQHandler + 0x0000000008000358 EXTI4_IRQHandler + 0x0000000008000358 USB_LP_CAN1_RX0_IRQHandler + 0x0000000008000358 USB_HP_CAN1_TX_IRQHandler + 0x0000000008000358 DMA1_Channel3_IRQHandler + 0x0000000008000358 TIM1_UP_IRQHandler + 0x0000000008000358 WWDG_IRQHandler + 0x0000000008000358 TIM2_IRQHandler + 0x0000000008000358 TIM1_BRK_IRQHandler + 0x0000000008000358 EXTI1_IRQHandler + 0x0000000008000358 USART2_IRQHandler + 0x0000000008000358 I2C2_ER_IRQHandler + 0x0000000008000358 DMA1_Channel2_IRQHandler + 0x0000000008000358 CAN1_SCE_IRQHandler + 0x0000000008000358 FLASH_IRQHandler + 0x0000000008000358 USART1_IRQHandler + 0x0000000008000358 I2C1_ER_IRQHandler + 0x0000000008000358 RTC_Alarm_IRQHandler + *fill* 0x000000000800035a 0x2 + .text.HAL_Init + 0x000000000800035c 0x2c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x000000000800035c HAL_Init + .text.HAL_InitTick + 0x0000000008000388 0x60 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008000388 HAL_InitTick + .text.HAL_IncTick + 0x00000000080003e8 0x24 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x00000000080003e8 HAL_IncTick + .text.HAL_GetTick + 0x000000000800040c 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x000000000800040c HAL_GetTick + .text.__NVIC_SetPriorityGrouping + 0x0000000008000420 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_GetPriorityGrouping + 0x0000000008000468 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_SetPriority + 0x0000000008000484 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.NVIC_EncodePriority + 0x00000000080004d8 0x64 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.SysTick_Config + 0x000000000800053c 0x44 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_NVIC_SetPriorityGrouping + 0x0000000008000580 0x16 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008000580 HAL_NVIC_SetPriorityGrouping + .text.HAL_NVIC_SetPriority + 0x0000000008000596 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008000596 HAL_NVIC_SetPriority + .text.HAL_SYSTICK_Config + 0x00000000080005ce 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x00000000080005ce HAL_SYSTICK_Config + *fill* 0x00000000080005e6 0x2 + .text.HAL_RCC_OscConfig + 0x00000000080005e8 0x500 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x00000000080005e8 HAL_RCC_OscConfig + .text.HAL_RCC_ClockConfig + 0x0000000008000ae8 0x1d4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008000ae8 HAL_RCC_ClockConfig + .text.HAL_RCC_GetSysClockFreq + 0x0000000008000cbc 0xc0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008000cbc HAL_RCC_GetSysClockFreq + .text.RCC_Delay + 0x0000000008000d7c 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.__libc_init_array + 0x0000000008000db8 0x48 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-init.o) + 0x0000000008000db8 __libc_init_array + .text.memset 0x0000000008000e00 0x10 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-memset.o) + 0x0000000008000e00 memset + *(.glue_7) + .glue_7 0x0000000008000e10 0x0 linker stubs + *(.glue_7t) + .glue_7t 0x0000000008000e10 0x0 linker stubs + *(.eh_frame) + .eh_frame 0x0000000008000e10 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + *(.init) + .init 0x0000000008000e10 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + 0x0000000008000e10 _init + .init 0x0000000008000e14 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + *(.fini) + .fini 0x0000000008000e1c 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + 0x0000000008000e1c _fini + .fini 0x0000000008000e20 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + 0x0000000008000e28 . = ALIGN (0x4) + 0x0000000008000e28 _etext = . + +.vfp11_veneer 0x0000000008000e28 0x0 + .vfp11_veneer 0x0000000008000e28 0x0 linker stubs + +.v4_bx 0x0000000008000e28 0x0 + .v4_bx 0x0000000008000e28 0x0 linker stubs + +.iplt 0x0000000008000e28 0x0 + .iplt 0x0000000008000e28 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + +.rodata 0x0000000008000e28 0x20 + 0x0000000008000e28 . = ALIGN (0x4) + *(.rodata) + .rodata 0x0000000008000e28 0x10 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + *(.rodata*) + .rodata.AHBPrescTable + 0x0000000008000e38 0x10 ./Core/Src/system_stm32f1xx.o + 0x0000000008000e38 AHBPrescTable + 0x0000000008000e48 . = ALIGN (0x4) + +.rel.dyn 0x0000000008000e48 0x0 + .rel.iplt 0x0000000008000e48 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + +.ARM.extab 0x0000000008000e48 0x0 + 0x0000000008000e48 . = ALIGN (0x4) + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x0000000008000e48 . = ALIGN (0x4) + +.ARM 0x0000000008000e48 0x0 + 0x0000000008000e48 . = ALIGN (0x4) + 0x0000000008000e48 __exidx_start = . + *(.ARM.exidx*) + 0x0000000008000e48 __exidx_end = . + 0x0000000008000e48 . = ALIGN (0x4) + +.preinit_array 0x0000000008000e48 0x0 + 0x0000000008000e48 . = ALIGN (0x4) + 0x0000000008000e48 PROVIDE (__preinit_array_start = .) + *(.preinit_array*) + 0x0000000008000e48 PROVIDE (__preinit_array_end = .) + 0x0000000008000e48 . = ALIGN (0x4) + +.init_array 0x0000000008000e48 0x4 + 0x0000000008000e48 . = ALIGN (0x4) + 0x0000000008000e48 PROVIDE (__init_array_start = .) + *(SORT_BY_NAME(.init_array.*)) + *(.init_array*) + .init_array 0x0000000008000e48 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + 0x0000000008000e4c PROVIDE (__init_array_end = .) + 0x0000000008000e4c . = ALIGN (0x4) + +.fini_array 0x0000000008000e4c 0x4 + 0x0000000008000e4c . = ALIGN (0x4) + [!provide] PROVIDE (__fini_array_start = .) + *(SORT_BY_NAME(.fini_array.*)) + *(.fini_array*) + .fini_array 0x0000000008000e4c 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + [!provide] PROVIDE (__fini_array_end = .) + 0x0000000008000e50 . = ALIGN (0x4) + 0x0000000008000e50 _sidata = LOADADDR (.data) + +.data 0x0000000020000000 0xc load address 0x0000000008000e50 + 0x0000000020000000 . = ALIGN (0x4) + 0x0000000020000000 _sdata = . + *(.data) + *(.data*) + .data.SystemCoreClock + 0x0000000020000000 0x4 ./Core/Src/system_stm32f1xx.o + 0x0000000020000000 SystemCoreClock + .data.uwTickPrio + 0x0000000020000004 0x4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000020000004 uwTickPrio + .data.uwTickFreq + 0x0000000020000008 0x1 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000020000008 uwTickFreq + *(.RamFunc) + *(.RamFunc*) + 0x000000002000000c . = ALIGN (0x4) + *fill* 0x0000000020000009 0x3 + 0x000000002000000c _edata = . + +.igot.plt 0x000000002000000c 0x0 load address 0x0000000008000e5c + .igot.plt 0x000000002000000c 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + 0x000000002000000c . = ALIGN (0x4) + +.bss 0x000000002000000c 0x20 load address 0x0000000008000e5c + 0x000000002000000c _sbss = . + 0x000000002000000c __bss_start__ = _sbss + *(.bss) + .bss 0x000000002000000c 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + *(.bss*) + *(COMMON) + COMMON 0x0000000020000028 0x4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000020000028 uwTick + 0x000000002000002c . = ALIGN (0x4) + 0x000000002000002c _ebss = . + 0x000000002000002c __bss_end__ = _ebss + +._user_heap_stack + 0x000000002000002c 0x604 load address 0x0000000008000e5c + 0x0000000020000030 . = ALIGN (0x8) + *fill* 0x000000002000002c 0x4 + [!provide] PROVIDE (end = .) + 0x0000000020000030 PROVIDE (_end = .) + 0x0000000020000230 . = (. + _Min_Heap_Size) + *fill* 0x0000000020000030 0x200 + 0x0000000020000630 . = (. + _Min_Stack_Size) + *fill* 0x0000000020000230 0x400 + 0x0000000020000630 . = ALIGN (0x8) + +/DISCARD/ + libc.a(*) + libm.a(*) + libgcc.a(*) + +.ARM.attributes + 0x0000000000000000 0x29 + *(.ARM.attributes) + .ARM.attributes + 0x0000000000000000 0x1d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + .ARM.attributes + 0x000000000000001d 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + .ARM.attributes + 0x000000000000004a 0x2d ./Core/Src/main.o + .ARM.attributes + 0x0000000000000077 0x2d ./Core/Src/stm32f1xx_hal_msp.o + .ARM.attributes + 0x00000000000000a4 0x2d ./Core/Src/stm32f1xx_it.o + .ARM.attributes + 0x00000000000000d1 0x2d ./Core/Src/system_stm32f1xx.o + .ARM.attributes + 0x00000000000000fe 0x21 ./Core/Startup/startup_stm32f103c8tx.o + .ARM.attributes + 0x000000000000011f 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .ARM.attributes + 0x000000000000014c 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .ARM.attributes + 0x0000000000000179 0x2d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .ARM.attributes + 0x00000000000001a6 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-init.o) + .ARM.attributes + 0x00000000000001d3 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-memset.o) + .ARM.attributes + 0x0000000000000200 0x1d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o +OUTPUT(stm32f103.elf elf32-littlearm) +LOAD linker stubs +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libm.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/libgcc.a + +.debug_info 0x0000000000000000 0x2816 + .debug_info 0x0000000000000000 0x444 ./Core/Src/main.o + .debug_info 0x0000000000000444 0x2fc ./Core/Src/stm32f1xx_hal_msp.o + .debug_info 0x0000000000000740 0x222 ./Core/Src/stm32f1xx_it.o + .debug_info 0x0000000000000962 0x2be ./Core/Src/system_stm32f1xx.o + .debug_info 0x0000000000000c20 0x22 ./Core/Startup/startup_stm32f103c8tx.o + .debug_info 0x0000000000000c42 0x76a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_info 0x00000000000013ac 0xbdc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_info 0x0000000000001f88 0x88e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + +.debug_abbrev 0x0000000000000000 0xc75 + .debug_abbrev 0x0000000000000000 0x1b3 ./Core/Src/main.o + .debug_abbrev 0x00000000000001b3 0x11d ./Core/Src/stm32f1xx_hal_msp.o + .debug_abbrev 0x00000000000002d0 0xd2 ./Core/Src/stm32f1xx_it.o + .debug_abbrev 0x00000000000003a2 0x14e ./Core/Src/system_stm32f1xx.o + .debug_abbrev 0x00000000000004f0 0x12 ./Core/Startup/startup_stm32f103c8tx.o + .debug_abbrev 0x0000000000000502 0x1ed ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_abbrev 0x00000000000006ef 0x313 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_abbrev 0x0000000000000a02 0x273 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + +.debug_aranges 0x0000000000000000 0x378 + .debug_aranges + 0x0000000000000000 0x38 ./Core/Src/main.o + .debug_aranges + 0x0000000000000038 0x20 ./Core/Src/stm32f1xx_hal_msp.o + .debug_aranges + 0x0000000000000058 0x60 ./Core/Src/stm32f1xx_it.o + .debug_aranges + 0x00000000000000b8 0x28 ./Core/Src/system_stm32f1xx.o + .debug_aranges + 0x00000000000000e0 0x28 ./Core/Startup/startup_stm32f103c8tx.o + .debug_aranges + 0x0000000000000108 0xe0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_aranges + 0x00000000000001e8 0x100 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_aranges + 0x00000000000002e8 0x90 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + +.debug_ranges 0x0000000000000000 0x300 + .debug_ranges 0x0000000000000000 0x28 ./Core/Src/main.o + .debug_ranges 0x0000000000000028 0x10 ./Core/Src/stm32f1xx_hal_msp.o + .debug_ranges 0x0000000000000038 0x50 ./Core/Src/stm32f1xx_it.o + .debug_ranges 0x0000000000000088 0x18 ./Core/Src/system_stm32f1xx.o + .debug_ranges 0x00000000000000a0 0x20 ./Core/Startup/startup_stm32f103c8tx.o + .debug_ranges 0x00000000000000c0 0xd0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_ranges 0x0000000000000190 0xf0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_ranges 0x0000000000000280 0x80 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + +.debug_macro 0x0000000000000000 0x156ee + .debug_macro 0x0000000000000000 0x18e ./Core/Src/main.o + .debug_macro 0x000000000000018e 0xa9c ./Core/Src/main.o + .debug_macro 0x0000000000000c2a 0x20f ./Core/Src/main.o + .debug_macro 0x0000000000000e39 0x2e ./Core/Src/main.o + .debug_macro 0x0000000000000e67 0x22 ./Core/Src/main.o + .debug_macro 0x0000000000000e89 0x22 ./Core/Src/main.o + .debug_macro 0x0000000000000eab 0x8e ./Core/Src/main.o + .debug_macro 0x0000000000000f39 0x51 ./Core/Src/main.o + .debug_macro 0x0000000000000f8a 0x103 ./Core/Src/main.o + .debug_macro 0x000000000000108d 0x6a ./Core/Src/main.o + .debug_macro 0x00000000000010f7 0x1df ./Core/Src/main.o + .debug_macro 0x00000000000012d6 0x1c ./Core/Src/main.o + .debug_macro 0x00000000000012f2 0x22 ./Core/Src/main.o + .debug_macro 0x0000000000001314 0xc3 ./Core/Src/main.o + .debug_macro 0x00000000000013d7 0xd23 ./Core/Src/main.o + .debug_macro 0x00000000000020fa 0xe09e ./Core/Src/main.o + .debug_macro 0x0000000000010198 0x6d ./Core/Src/main.o + .debug_macro 0x0000000000010205 0x3468 ./Core/Src/main.o + .debug_macro 0x000000000001366d 0x174 ./Core/Src/main.o + .debug_macro 0x00000000000137e1 0x5c ./Core/Src/main.o + .debug_macro 0x000000000001383d 0x5be ./Core/Src/main.o + .debug_macro 0x0000000000013dfb 0x289 ./Core/Src/main.o + .debug_macro 0x0000000000014084 0x1cb ./Core/Src/main.o + .debug_macro 0x000000000001424f 0x114 ./Core/Src/main.o + .debug_macro 0x0000000000014363 0x1b2 ./Core/Src/main.o + .debug_macro 0x0000000000014515 0x27 ./Core/Src/main.o + .debug_macro 0x000000000001453c 0x136 ./Core/Src/main.o + .debug_macro 0x0000000000014672 0x1bc ./Core/Src/main.o + .debug_macro 0x000000000001482e 0x34 ./Core/Src/main.o + .debug_macro 0x0000000000014862 0x3c ./Core/Src/main.o + .debug_macro 0x000000000001489e 0x57 ./Core/Src/main.o + .debug_macro 0x00000000000148f5 0x88 ./Core/Src/main.o + .debug_macro 0x000000000001497d 0x241 ./Core/Src/main.o + .debug_macro 0x0000000000014bbe 0x141 ./Core/Src/main.o + .debug_macro 0x0000000000014cff 0x83 ./Core/Src/main.o + .debug_macro 0x0000000000014d82 0x18e ./Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000014f10 0x198 ./Core/Src/stm32f1xx_it.o + .debug_macro 0x00000000000150a8 0x184 ./Core/Src/system_stm32f1xx.o + .debug_macro 0x000000000001522c 0x1a8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x00000000000153d4 0x184 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000015558 0x196 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + +.debug_line 0x0000000000000000 0x3d01 + .debug_line 0x0000000000000000 0x6ea ./Core/Src/main.o + .debug_line 0x00000000000006ea 0x665 ./Core/Src/stm32f1xx_hal_msp.o + .debug_line 0x0000000000000d4f 0x726 ./Core/Src/stm32f1xx_it.o + .debug_line 0x0000000000001475 0x6e2 ./Core/Src/system_stm32f1xx.o + .debug_line 0x0000000000001b57 0x87 ./Core/Startup/startup_stm32f103c8tx.o + .debug_line 0x0000000000001bde 0x90f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_line 0x00000000000024ed 0xaf7 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_line 0x0000000000002fe4 0xd1d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + +.debug_str 0x0000000000000000 0x7b704 + .debug_str 0x0000000000000000 0x7aa69 ./Core/Src/main.o + 0x7ad97 (size before relaxing) + .debug_str 0x000000000007aa69 0x5a ./Core/Src/stm32f1xx_hal_msp.o + 0x7ac67 (size before relaxing) + .debug_str 0x000000000007aac3 0xbd ./Core/Src/stm32f1xx_it.o + 0x7ac84 (size before relaxing) + .debug_str 0x000000000007ab80 0x52 ./Core/Src/system_stm32f1xx.o + 0x7ac54 (size before relaxing) + .debug_str 0x000000000007abd2 0x36 ./Core/Startup/startup_stm32f103c8tx.o + 0x74 (size before relaxing) + .debug_str 0x000000000007ac08 0x56f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x7b2e5 (size before relaxing) + .debug_str 0x000000000007b177 0x300 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x7b2ed (size before relaxing) + .debug_str 0x000000000007b477 0x28d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x7b051 (size before relaxing) + +.comment 0x0000000000000000 0x53 + .comment 0x0000000000000000 0x53 ./Core/Src/main.o + 0x54 (size before relaxing) + .comment 0x0000000000000053 0x54 ./Core/Src/stm32f1xx_hal_msp.o + .comment 0x0000000000000053 0x54 ./Core/Src/stm32f1xx_it.o + .comment 0x0000000000000053 0x54 ./Core/Src/system_stm32f1xx.o + .comment 0x0000000000000053 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .comment 0x0000000000000053 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .comment 0x0000000000000053 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + +.debug_frame 0x0000000000000000 0xbe8 + .debug_frame 0x0000000000000000 0x90 ./Core/Src/main.o + .debug_frame 0x0000000000000090 0x38 ./Core/Src/stm32f1xx_hal_msp.o + .debug_frame 0x00000000000000c8 0x104 ./Core/Src/stm32f1xx_it.o + .debug_frame 0x00000000000001cc 0x58 ./Core/Src/system_stm32f1xx.o + .debug_frame 0x0000000000000224 0x334 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_frame 0x0000000000000558 0x428 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_frame 0x0000000000000980 0x21c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_frame 0x0000000000000b9c 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-init.o) + .debug_frame 0x0000000000000bc8 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.macos64_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(lib_a-memset.o) diff --git a/stm32f103/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h b/stm32f103/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h new file mode 100644 index 0000000..99d0ecc --- /dev/null +++ b/stm32f103/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h @@ -0,0 +1,10242 @@ +/** + ****************************************************************************** + * @file stm32f103xb.h + * @author MCD Application Team + * @brief CMSIS Cortex-M3 Device Peripheral Access Layer Header File. + * This file contains all the peripheral register's definitions, bits + * definitions and memory mapping for STM32F1xx devices. + * + * This file contains: + * - Data structures and the address mapping for all peripherals + * - Peripheral's registers declarations and bits definition + * - Macros to access peripherals registers hardware + * + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f103xb + * @{ + */ + +#ifndef __STM32F103xB_H +#define __STM32F103xB_H + +#ifdef __cplusplus + extern "C" { +#endif + +/** @addtogroup Configuration_section_for_CMSIS + * @{ + */ +/** + * @brief Configuration of the Cortex-M3 Processor and Core Peripherals + */ +#define __CM3_REV 0x0200U /*!< Core Revision r2p0 */ + #define __MPU_PRESENT 0U /*!< Other STM32 devices does not provide an MPU */ +#define __NVIC_PRIO_BITS 4U /*!< STM32 uses 4 Bits for the Priority Levels */ +#define __Vendor_SysTickConfig 0U /*!< Set to 1 if different SysTick Config is used */ + +/** + * @} + */ + +/** @addtogroup Peripheral_interrupt_number_definition + * @{ + */ + +/** + * @brief STM32F10x Interrupt Number Definition, according to the selected device + * in @ref Library_configuration_section + */ + + /*!< Interrupt Number Definition */ +typedef enum +{ +/****** Cortex-M3 Processor Exceptions Numbers ***************************************************/ + NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13, /*!< 3 Cortex-M3 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */ + BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */ + UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */ + SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */ + SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */ + +/****** STM32 specific Interrupt Numbers *********************************************************/ + WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */ + PVD_IRQn = 1, /*!< PVD through EXTI Line detection Interrupt */ + TAMPER_IRQn = 2, /*!< Tamper Interrupt */ + RTC_IRQn = 3, /*!< RTC global Interrupt */ + FLASH_IRQn = 4, /*!< FLASH global Interrupt */ + RCC_IRQn = 5, /*!< RCC global Interrupt */ + EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt */ + EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt */ + EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt */ + EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt */ + EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt */ + DMA1_Channel1_IRQn = 11, /*!< DMA1 Channel 1 global Interrupt */ + DMA1_Channel2_IRQn = 12, /*!< DMA1 Channel 2 global Interrupt */ + DMA1_Channel3_IRQn = 13, /*!< DMA1 Channel 3 global Interrupt */ + DMA1_Channel4_IRQn = 14, /*!< DMA1 Channel 4 global Interrupt */ + DMA1_Channel5_IRQn = 15, /*!< DMA1 Channel 5 global Interrupt */ + DMA1_Channel6_IRQn = 16, /*!< DMA1 Channel 6 global Interrupt */ + DMA1_Channel7_IRQn = 17, /*!< DMA1 Channel 7 global Interrupt */ + ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ + USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ + USB_LP_CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */ + CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ + CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */ + EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ + TIM1_BRK_IRQn = 24, /*!< TIM1 Break Interrupt */ + TIM1_UP_IRQn = 25, /*!< TIM1 Update Interrupt */ + TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt */ + TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ + TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ + TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ + TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ + I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ + I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ + I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ + I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ + SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ + SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ + USART1_IRQn = 37, /*!< USART1 global Interrupt */ + USART2_IRQn = 38, /*!< USART2 global Interrupt */ + USART3_IRQn = 39, /*!< USART3 global Interrupt */ + EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ + RTC_Alarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ + USBWakeUp_IRQn = 42, /*!< USB Device WakeUp from suspend through EXTI Line Interrupt */ +} IRQn_Type; + +/** + * @} + */ + +#include "core_cm3.h" +#include "system_stm32f1xx.h" +#include + +/** @addtogroup Peripheral_registers_structures + * @{ + */ + +/** + * @brief Analog to Digital Converter + */ + +typedef struct +{ + __IO uint32_t SR; + __IO uint32_t CR1; + __IO uint32_t CR2; + __IO uint32_t SMPR1; + __IO uint32_t SMPR2; + __IO uint32_t JOFR1; + __IO uint32_t JOFR2; + __IO uint32_t JOFR3; + __IO uint32_t JOFR4; + __IO uint32_t HTR; + __IO uint32_t LTR; + __IO uint32_t SQR1; + __IO uint32_t SQR2; + __IO uint32_t SQR3; + __IO uint32_t JSQR; + __IO uint32_t JDR1; + __IO uint32_t JDR2; + __IO uint32_t JDR3; + __IO uint32_t JDR4; + __IO uint32_t DR; +} ADC_TypeDef; + +typedef struct +{ + __IO uint32_t SR; /*!< ADC status register, used for ADC multimode (bits common to several ADC instances). Address offset: ADC1 base address */ + __IO uint32_t CR1; /*!< ADC control register 1, used for ADC multimode (bits common to several ADC instances). Address offset: ADC1 base address + 0x04 */ + __IO uint32_t CR2; /*!< ADC control register 2, used for ADC multimode (bits common to several ADC instances). Address offset: ADC1 base address + 0x08 */ + uint32_t RESERVED[16]; + __IO uint32_t DR; /*!< ADC data register, used for ADC multimode (bits common to several ADC instances). Address offset: ADC1 base address + 0x4C */ +} ADC_Common_TypeDef; + +/** + * @brief Backup Registers + */ + +typedef struct +{ + uint32_t RESERVED0; + __IO uint32_t DR1; + __IO uint32_t DR2; + __IO uint32_t DR3; + __IO uint32_t DR4; + __IO uint32_t DR5; + __IO uint32_t DR6; + __IO uint32_t DR7; + __IO uint32_t DR8; + __IO uint32_t DR9; + __IO uint32_t DR10; + __IO uint32_t RTCCR; + __IO uint32_t CR; + __IO uint32_t CSR; +} BKP_TypeDef; + +/** + * @brief Controller Area Network TxMailBox + */ + +typedef struct +{ + __IO uint32_t TIR; + __IO uint32_t TDTR; + __IO uint32_t TDLR; + __IO uint32_t TDHR; +} CAN_TxMailBox_TypeDef; + +/** + * @brief Controller Area Network FIFOMailBox + */ + +typedef struct +{ + __IO uint32_t RIR; + __IO uint32_t RDTR; + __IO uint32_t RDLR; + __IO uint32_t RDHR; +} CAN_FIFOMailBox_TypeDef; + +/** + * @brief Controller Area Network FilterRegister + */ + +typedef struct +{ + __IO uint32_t FR1; + __IO uint32_t FR2; +} CAN_FilterRegister_TypeDef; + +/** + * @brief Controller Area Network + */ + +typedef struct +{ + __IO uint32_t MCR; + __IO uint32_t MSR; + __IO uint32_t TSR; + __IO uint32_t RF0R; + __IO uint32_t RF1R; + __IO uint32_t IER; + __IO uint32_t ESR; + __IO uint32_t BTR; + uint32_t RESERVED0[88]; + CAN_TxMailBox_TypeDef sTxMailBox[3]; + CAN_FIFOMailBox_TypeDef sFIFOMailBox[2]; + uint32_t RESERVED1[12]; + __IO uint32_t FMR; + __IO uint32_t FM1R; + uint32_t RESERVED2; + __IO uint32_t FS1R; + uint32_t RESERVED3; + __IO uint32_t FFA1R; + uint32_t RESERVED4; + __IO uint32_t FA1R; + uint32_t RESERVED5[8]; + CAN_FilterRegister_TypeDef sFilterRegister[14]; +} CAN_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, Address offset: 0x05 */ + uint16_t RESERVED1; /*!< Reserved, Address offset: 0x06 */ + __IO uint32_t CR; /*!< CRC Control register, Address offset: 0x08 */ +} CRC_TypeDef; + + +/** + * @brief Debug MCU + */ + +typedef struct +{ + __IO uint32_t IDCODE; + __IO uint32_t CR; +}DBGMCU_TypeDef; + +/** + * @brief DMA Controller + */ + +typedef struct +{ + __IO uint32_t CCR; + __IO uint32_t CNDTR; + __IO uint32_t CPAR; + __IO uint32_t CMAR; +} DMA_Channel_TypeDef; + +typedef struct +{ + __IO uint32_t ISR; + __IO uint32_t IFCR; +} DMA_TypeDef; + + + +/** + * @brief External Interrupt/Event Controller + */ + +typedef struct +{ + __IO uint32_t IMR; + __IO uint32_t EMR; + __IO uint32_t RTSR; + __IO uint32_t FTSR; + __IO uint32_t SWIER; + __IO uint32_t PR; +} EXTI_TypeDef; + +/** + * @brief FLASH Registers + */ + +typedef struct +{ + __IO uint32_t ACR; + __IO uint32_t KEYR; + __IO uint32_t OPTKEYR; + __IO uint32_t SR; + __IO uint32_t CR; + __IO uint32_t AR; + __IO uint32_t RESERVED; + __IO uint32_t OBR; + __IO uint32_t WRPR; +} FLASH_TypeDef; + +/** + * @brief Option Bytes Registers + */ + +typedef struct +{ + __IO uint16_t RDP; + __IO uint16_t USER; + __IO uint16_t Data0; + __IO uint16_t Data1; + __IO uint16_t WRP0; + __IO uint16_t WRP1; + __IO uint16_t WRP2; + __IO uint16_t WRP3; +} OB_TypeDef; + +/** + * @brief General Purpose I/O + */ + +typedef struct +{ + __IO uint32_t CRL; + __IO uint32_t CRH; + __IO uint32_t IDR; + __IO uint32_t ODR; + __IO uint32_t BSRR; + __IO uint32_t BRR; + __IO uint32_t LCKR; +} GPIO_TypeDef; + +/** + * @brief Alternate Function I/O + */ + +typedef struct +{ + __IO uint32_t EVCR; + __IO uint32_t MAPR; + __IO uint32_t EXTICR[4]; + uint32_t RESERVED0; + __IO uint32_t MAPR2; +} AFIO_TypeDef; +/** + * @brief Inter Integrated Circuit Interface + */ + +typedef struct +{ + __IO uint32_t CR1; + __IO uint32_t CR2; + __IO uint32_t OAR1; + __IO uint32_t OAR2; + __IO uint32_t DR; + __IO uint32_t SR1; + __IO uint32_t SR2; + __IO uint32_t CCR; + __IO uint32_t TRISE; +} I2C_TypeDef; + +/** + * @brief Independent WATCHDOG + */ + +typedef struct +{ + __IO uint32_t KR; /*!< Key register, Address offset: 0x00 */ + __IO uint32_t PR; /*!< Prescaler register, Address offset: 0x04 */ + __IO uint32_t RLR; /*!< Reload register, Address offset: 0x08 */ + __IO uint32_t SR; /*!< Status register, Address offset: 0x0C */ +} IWDG_TypeDef; + +/** + * @brief Power Control + */ + +typedef struct +{ + __IO uint32_t CR; + __IO uint32_t CSR; +} PWR_TypeDef; + +/** + * @brief Reset and Clock Control + */ + +typedef struct +{ + __IO uint32_t CR; + __IO uint32_t CFGR; + __IO uint32_t CIR; + __IO uint32_t APB2RSTR; + __IO uint32_t APB1RSTR; + __IO uint32_t AHBENR; + __IO uint32_t APB2ENR; + __IO uint32_t APB1ENR; + __IO uint32_t BDCR; + __IO uint32_t CSR; + + +} RCC_TypeDef; + +/** + * @brief Real-Time Clock + */ + +typedef struct +{ + __IO uint32_t CRH; + __IO uint32_t CRL; + __IO uint32_t PRLH; + __IO uint32_t PRLL; + __IO uint32_t DIVH; + __IO uint32_t DIVL; + __IO uint32_t CNTH; + __IO uint32_t CNTL; + __IO uint32_t ALRH; + __IO uint32_t ALRL; +} RTC_TypeDef; + +/** + * @brief Serial Peripheral Interface + */ + +typedef struct +{ + __IO uint32_t CR1; + __IO uint32_t CR2; + __IO uint32_t SR; + __IO uint32_t DR; + __IO uint32_t CRCPR; + __IO uint32_t RXCRCR; + __IO uint32_t TXCRCR; + __IO uint32_t I2SCFGR; +} SPI_TypeDef; + +/** + * @brief TIM Timers + */ +typedef struct +{ + __IO uint32_t CR1; /*!< TIM control register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< TIM control register 2, Address offset: 0x04 */ + __IO uint32_t SMCR; /*!< TIM slave Mode Control register, Address offset: 0x08 */ + __IO uint32_t DIER; /*!< TIM DMA/interrupt enable register, Address offset: 0x0C */ + __IO uint32_t SR; /*!< TIM status register, Address offset: 0x10 */ + __IO uint32_t EGR; /*!< TIM event generation register, Address offset: 0x14 */ + __IO uint32_t CCMR1; /*!< TIM capture/compare mode register 1, Address offset: 0x18 */ + __IO uint32_t CCMR2; /*!< TIM capture/compare mode register 2, Address offset: 0x1C */ + __IO uint32_t CCER; /*!< TIM capture/compare enable register, Address offset: 0x20 */ + __IO uint32_t CNT; /*!< TIM counter register, Address offset: 0x24 */ + __IO uint32_t PSC; /*!< TIM prescaler register, Address offset: 0x28 */ + __IO uint32_t ARR; /*!< TIM auto-reload register, Address offset: 0x2C */ + __IO uint32_t RCR; /*!< TIM repetition counter register, Address offset: 0x30 */ + __IO uint32_t CCR1; /*!< TIM capture/compare register 1, Address offset: 0x34 */ + __IO uint32_t CCR2; /*!< TIM capture/compare register 2, Address offset: 0x38 */ + __IO uint32_t CCR3; /*!< TIM capture/compare register 3, Address offset: 0x3C */ + __IO uint32_t CCR4; /*!< TIM capture/compare register 4, Address offset: 0x40 */ + __IO uint32_t BDTR; /*!< TIM break and dead-time register, Address offset: 0x44 */ + __IO uint32_t DCR; /*!< TIM DMA control register, Address offset: 0x48 */ + __IO uint32_t DMAR; /*!< TIM DMA address for full transfer register, Address offset: 0x4C */ + __IO uint32_t OR; /*!< TIM option register, Address offset: 0x50 */ +}TIM_TypeDef; + + +/** + * @brief Universal Synchronous Asynchronous Receiver Transmitter + */ + +typedef struct +{ + __IO uint32_t SR; /*!< USART Status register, Address offset: 0x00 */ + __IO uint32_t DR; /*!< USART Data register, Address offset: 0x04 */ + __IO uint32_t BRR; /*!< USART Baud rate register, Address offset: 0x08 */ + __IO uint32_t CR1; /*!< USART Control register 1, Address offset: 0x0C */ + __IO uint32_t CR2; /*!< USART Control register 2, Address offset: 0x10 */ + __IO uint32_t CR3; /*!< USART Control register 3, Address offset: 0x14 */ + __IO uint32_t GTPR; /*!< USART Guard time and prescaler register, Address offset: 0x18 */ +} USART_TypeDef; + +/** + * @brief Universal Serial Bus Full Speed Device + */ + +typedef struct +{ + __IO uint16_t EP0R; /*!< USB Endpoint 0 register, Address offset: 0x00 */ + __IO uint16_t RESERVED0; /*!< Reserved */ + __IO uint16_t EP1R; /*!< USB Endpoint 1 register, Address offset: 0x04 */ + __IO uint16_t RESERVED1; /*!< Reserved */ + __IO uint16_t EP2R; /*!< USB Endpoint 2 register, Address offset: 0x08 */ + __IO uint16_t RESERVED2; /*!< Reserved */ + __IO uint16_t EP3R; /*!< USB Endpoint 3 register, Address offset: 0x0C */ + __IO uint16_t RESERVED3; /*!< Reserved */ + __IO uint16_t EP4R; /*!< USB Endpoint 4 register, Address offset: 0x10 */ + __IO uint16_t RESERVED4; /*!< Reserved */ + __IO uint16_t EP5R; /*!< USB Endpoint 5 register, Address offset: 0x14 */ + __IO uint16_t RESERVED5; /*!< Reserved */ + __IO uint16_t EP6R; /*!< USB Endpoint 6 register, Address offset: 0x18 */ + __IO uint16_t RESERVED6; /*!< Reserved */ + __IO uint16_t EP7R; /*!< USB Endpoint 7 register, Address offset: 0x1C */ + __IO uint16_t RESERVED7[17]; /*!< Reserved */ + __IO uint16_t CNTR; /*!< Control register, Address offset: 0x40 */ + __IO uint16_t RESERVED8; /*!< Reserved */ + __IO uint16_t ISTR; /*!< Interrupt status register, Address offset: 0x44 */ + __IO uint16_t RESERVED9; /*!< Reserved */ + __IO uint16_t FNR; /*!< Frame number register, Address offset: 0x48 */ + __IO uint16_t RESERVEDA; /*!< Reserved */ + __IO uint16_t DADDR; /*!< Device address register, Address offset: 0x4C */ + __IO uint16_t RESERVEDB; /*!< Reserved */ + __IO uint16_t BTABLE; /*!< Buffer Table address register, Address offset: 0x50 */ + __IO uint16_t RESERVEDC; /*!< Reserved */ +} USB_TypeDef; + + +/** + * @brief Window WATCHDOG + */ + +typedef struct +{ + __IO uint32_t CR; /*!< WWDG Control register, Address offset: 0x00 */ + __IO uint32_t CFR; /*!< WWDG Configuration register, Address offset: 0x04 */ + __IO uint32_t SR; /*!< WWDG Status register, Address offset: 0x08 */ +} WWDG_TypeDef; + +/** + * @} + */ + +/** @addtogroup Peripheral_memory_map + * @{ + */ + + +#define FLASH_BASE 0x08000000UL /*!< FLASH base address in the alias region */ +#define FLASH_BANK1_END 0x0801FFFFUL /*!< FLASH END address of bank1 */ +#define SRAM_BASE 0x20000000UL /*!< SRAM base address in the alias region */ +#define PERIPH_BASE 0x40000000UL /*!< Peripheral base address in the alias region */ + +#define SRAM_BB_BASE 0x22000000UL /*!< SRAM base address in the bit-band region */ +#define PERIPH_BB_BASE 0x42000000UL /*!< Peripheral base address in the bit-band region */ + + +/*!< Peripheral memory map */ +#define APB1PERIPH_BASE PERIPH_BASE +#define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000UL) +#define AHBPERIPH_BASE (PERIPH_BASE + 0x00020000UL) + +#define TIM2_BASE (APB1PERIPH_BASE + 0x00000000UL) +#define TIM3_BASE (APB1PERIPH_BASE + 0x00000400UL) +#define TIM4_BASE (APB1PERIPH_BASE + 0x00000800UL) +#define RTC_BASE (APB1PERIPH_BASE + 0x00002800UL) +#define WWDG_BASE (APB1PERIPH_BASE + 0x00002C00UL) +#define IWDG_BASE (APB1PERIPH_BASE + 0x00003000UL) +#define SPI2_BASE (APB1PERIPH_BASE + 0x00003800UL) +#define USART2_BASE (APB1PERIPH_BASE + 0x00004400UL) +#define USART3_BASE (APB1PERIPH_BASE + 0x00004800UL) +#define I2C1_BASE (APB1PERIPH_BASE + 0x00005400UL) +#define I2C2_BASE (APB1PERIPH_BASE + 0x00005800UL) +#define CAN1_BASE (APB1PERIPH_BASE + 0x00006400UL) +#define BKP_BASE (APB1PERIPH_BASE + 0x00006C00UL) +#define PWR_BASE (APB1PERIPH_BASE + 0x00007000UL) +#define AFIO_BASE (APB2PERIPH_BASE + 0x00000000UL) +#define EXTI_BASE (APB2PERIPH_BASE + 0x00000400UL) +#define GPIOA_BASE (APB2PERIPH_BASE + 0x00000800UL) +#define GPIOB_BASE (APB2PERIPH_BASE + 0x00000C00UL) +#define GPIOC_BASE (APB2PERIPH_BASE + 0x00001000UL) +#define GPIOD_BASE (APB2PERIPH_BASE + 0x00001400UL) +#define GPIOE_BASE (APB2PERIPH_BASE + 0x00001800UL) +#define ADC1_BASE (APB2PERIPH_BASE + 0x00002400UL) +#define ADC2_BASE (APB2PERIPH_BASE + 0x00002800UL) +#define TIM1_BASE (APB2PERIPH_BASE + 0x00002C00UL) +#define SPI1_BASE (APB2PERIPH_BASE + 0x00003000UL) +#define USART1_BASE (APB2PERIPH_BASE + 0x00003800UL) + + +#define DMA1_BASE (AHBPERIPH_BASE + 0x00000000UL) +#define DMA1_Channel1_BASE (AHBPERIPH_BASE + 0x00000008UL) +#define DMA1_Channel2_BASE (AHBPERIPH_BASE + 0x0000001CUL) +#define DMA1_Channel3_BASE (AHBPERIPH_BASE + 0x00000030UL) +#define DMA1_Channel4_BASE (AHBPERIPH_BASE + 0x00000044UL) +#define DMA1_Channel5_BASE (AHBPERIPH_BASE + 0x00000058UL) +#define DMA1_Channel6_BASE (AHBPERIPH_BASE + 0x0000006CUL) +#define DMA1_Channel7_BASE (AHBPERIPH_BASE + 0x00000080UL) +#define RCC_BASE (AHBPERIPH_BASE + 0x00001000UL) +#define CRC_BASE (AHBPERIPH_BASE + 0x00003000UL) + +#define FLASH_R_BASE (AHBPERIPH_BASE + 0x00002000UL) /*!< Flash registers base address */ +#define FLASHSIZE_BASE 0x1FFFF7E0UL /*!< FLASH Size register base address */ +#define UID_BASE 0x1FFFF7E8UL /*!< Unique device ID register base address */ +#define OB_BASE 0x1FFFF800UL /*!< Flash Option Bytes base address */ + + + +#define DBGMCU_BASE 0xE0042000UL /*!< Debug MCU registers base address */ + +/* USB device FS */ +#define USB_BASE (APB1PERIPH_BASE + 0x00005C00UL) /*!< USB_IP Peripheral Registers base address */ +#define USB_PMAADDR (APB1PERIPH_BASE + 0x00006000UL) /*!< USB_IP Packet Memory Area base address */ + + +/** + * @} + */ + +/** @addtogroup Peripheral_declaration + * @{ + */ + +#define TIM2 ((TIM_TypeDef *)TIM2_BASE) +#define TIM3 ((TIM_TypeDef *)TIM3_BASE) +#define TIM4 ((TIM_TypeDef *)TIM4_BASE) +#define RTC ((RTC_TypeDef *)RTC_BASE) +#define WWDG ((WWDG_TypeDef *)WWDG_BASE) +#define IWDG ((IWDG_TypeDef *)IWDG_BASE) +#define SPI2 ((SPI_TypeDef *)SPI2_BASE) +#define USART2 ((USART_TypeDef *)USART2_BASE) +#define USART3 ((USART_TypeDef *)USART3_BASE) +#define I2C1 ((I2C_TypeDef *)I2C1_BASE) +#define I2C2 ((I2C_TypeDef *)I2C2_BASE) +#define USB ((USB_TypeDef *)USB_BASE) +#define CAN1 ((CAN_TypeDef *)CAN1_BASE) +#define BKP ((BKP_TypeDef *)BKP_BASE) +#define PWR ((PWR_TypeDef *)PWR_BASE) +#define AFIO ((AFIO_TypeDef *)AFIO_BASE) +#define EXTI ((EXTI_TypeDef *)EXTI_BASE) +#define GPIOA ((GPIO_TypeDef *)GPIOA_BASE) +#define GPIOB ((GPIO_TypeDef *)GPIOB_BASE) +#define GPIOC ((GPIO_TypeDef *)GPIOC_BASE) +#define GPIOD ((GPIO_TypeDef *)GPIOD_BASE) +#define GPIOE ((GPIO_TypeDef *)GPIOE_BASE) +#define ADC1 ((ADC_TypeDef *)ADC1_BASE) +#define ADC2 ((ADC_TypeDef *)ADC2_BASE) +#define ADC12_COMMON ((ADC_Common_TypeDef *)ADC1_BASE) +#define TIM1 ((TIM_TypeDef *)TIM1_BASE) +#define SPI1 ((SPI_TypeDef *)SPI1_BASE) +#define USART1 ((USART_TypeDef *)USART1_BASE) +#define DMA1 ((DMA_TypeDef *)DMA1_BASE) +#define DMA1_Channel1 ((DMA_Channel_TypeDef *)DMA1_Channel1_BASE) +#define DMA1_Channel2 ((DMA_Channel_TypeDef *)DMA1_Channel2_BASE) +#define DMA1_Channel3 ((DMA_Channel_TypeDef *)DMA1_Channel3_BASE) +#define DMA1_Channel4 ((DMA_Channel_TypeDef *)DMA1_Channel4_BASE) +#define DMA1_Channel5 ((DMA_Channel_TypeDef *)DMA1_Channel5_BASE) +#define DMA1_Channel6 ((DMA_Channel_TypeDef *)DMA1_Channel6_BASE) +#define DMA1_Channel7 ((DMA_Channel_TypeDef *)DMA1_Channel7_BASE) +#define RCC ((RCC_TypeDef *)RCC_BASE) +#define CRC ((CRC_TypeDef *)CRC_BASE) +#define FLASH ((FLASH_TypeDef *)FLASH_R_BASE) +#define OB ((OB_TypeDef *)OB_BASE) +#define DBGMCU ((DBGMCU_TypeDef *)DBGMCU_BASE) + + +/** + * @} + */ + +/** @addtogroup Exported_constants + * @{ + */ + + /** @addtogroup Hardware_Constant_Definition + * @{ + */ +#define LSI_STARTUP_TIME 85U /*!< LSI Maximum startup time in us */ + /** + * @} + */ + + /** @addtogroup Peripheral_Registers_Bits_Definition + * @{ + */ + +/******************************************************************************/ +/* Peripheral Registers_Bits_Definition */ +/******************************************************************************/ + +/******************************************************************************/ +/* */ +/* CRC calculation unit (CRC) */ +/* */ +/******************************************************************************/ + +/******************* Bit definition for CRC_DR register *********************/ +#define CRC_DR_DR_Pos (0U) +#define CRC_DR_DR_Msk (0xFFFFFFFFUL << CRC_DR_DR_Pos) /*!< 0xFFFFFFFF */ +#define CRC_DR_DR CRC_DR_DR_Msk /*!< Data register bits */ + +/******************* Bit definition for CRC_IDR register ********************/ +#define CRC_IDR_IDR_Pos (0U) +#define CRC_IDR_IDR_Msk (0xFFUL << CRC_IDR_IDR_Pos) /*!< 0x000000FF */ +#define CRC_IDR_IDR CRC_IDR_IDR_Msk /*!< General-purpose 8-bit data register bits */ + +/******************** Bit definition for CRC_CR register ********************/ +#define CRC_CR_RESET_Pos (0U) +#define CRC_CR_RESET_Msk (0x1UL << CRC_CR_RESET_Pos) /*!< 0x00000001 */ +#define CRC_CR_RESET CRC_CR_RESET_Msk /*!< RESET bit */ + +/******************************************************************************/ +/* */ +/* Power Control */ +/* */ +/******************************************************************************/ + +/******************** Bit definition for PWR_CR register ********************/ +#define PWR_CR_LPDS_Pos (0U) +#define PWR_CR_LPDS_Msk (0x1UL << PWR_CR_LPDS_Pos) /*!< 0x00000001 */ +#define PWR_CR_LPDS PWR_CR_LPDS_Msk /*!< Low-Power Deepsleep */ +#define PWR_CR_PDDS_Pos (1U) +#define PWR_CR_PDDS_Msk (0x1UL << PWR_CR_PDDS_Pos) /*!< 0x00000002 */ +#define PWR_CR_PDDS PWR_CR_PDDS_Msk /*!< Power Down Deepsleep */ +#define PWR_CR_CWUF_Pos (2U) +#define PWR_CR_CWUF_Msk (0x1UL << PWR_CR_CWUF_Pos) /*!< 0x00000004 */ +#define PWR_CR_CWUF PWR_CR_CWUF_Msk /*!< Clear Wakeup Flag */ +#define PWR_CR_CSBF_Pos (3U) +#define PWR_CR_CSBF_Msk (0x1UL << PWR_CR_CSBF_Pos) /*!< 0x00000008 */ +#define PWR_CR_CSBF PWR_CR_CSBF_Msk /*!< Clear Standby Flag */ +#define PWR_CR_PVDE_Pos (4U) +#define PWR_CR_PVDE_Msk (0x1UL << PWR_CR_PVDE_Pos) /*!< 0x00000010 */ +#define PWR_CR_PVDE PWR_CR_PVDE_Msk /*!< Power Voltage Detector Enable */ + +#define PWR_CR_PLS_Pos (5U) +#define PWR_CR_PLS_Msk (0x7UL << PWR_CR_PLS_Pos) /*!< 0x000000E0 */ +#define PWR_CR_PLS PWR_CR_PLS_Msk /*!< PLS[2:0] bits (PVD Level Selection) */ +#define PWR_CR_PLS_0 (0x1UL << PWR_CR_PLS_Pos) /*!< 0x00000020 */ +#define PWR_CR_PLS_1 (0x2UL << PWR_CR_PLS_Pos) /*!< 0x00000040 */ +#define PWR_CR_PLS_2 (0x4UL << PWR_CR_PLS_Pos) /*!< 0x00000080 */ + +/*!< PVD level configuration */ +#define PWR_CR_PLS_LEV0 0x00000000U /*!< PVD level 2.2V */ +#define PWR_CR_PLS_LEV1 0x00000020U /*!< PVD level 2.3V */ +#define PWR_CR_PLS_LEV2 0x00000040U /*!< PVD level 2.4V */ +#define PWR_CR_PLS_LEV3 0x00000060U /*!< PVD level 2.5V */ +#define PWR_CR_PLS_LEV4 0x00000080U /*!< PVD level 2.6V */ +#define PWR_CR_PLS_LEV5 0x000000A0U /*!< PVD level 2.7V */ +#define PWR_CR_PLS_LEV6 0x000000C0U /*!< PVD level 2.8V */ +#define PWR_CR_PLS_LEV7 0x000000E0U /*!< PVD level 2.9V */ + +/* Legacy defines */ +#define PWR_CR_PLS_2V2 PWR_CR_PLS_LEV0 +#define PWR_CR_PLS_2V3 PWR_CR_PLS_LEV1 +#define PWR_CR_PLS_2V4 PWR_CR_PLS_LEV2 +#define PWR_CR_PLS_2V5 PWR_CR_PLS_LEV3 +#define PWR_CR_PLS_2V6 PWR_CR_PLS_LEV4 +#define PWR_CR_PLS_2V7 PWR_CR_PLS_LEV5 +#define PWR_CR_PLS_2V8 PWR_CR_PLS_LEV6 +#define PWR_CR_PLS_2V9 PWR_CR_PLS_LEV7 + +#define PWR_CR_DBP_Pos (8U) +#define PWR_CR_DBP_Msk (0x1UL << PWR_CR_DBP_Pos) /*!< 0x00000100 */ +#define PWR_CR_DBP PWR_CR_DBP_Msk /*!< Disable Backup Domain write protection */ + + +/******************* Bit definition for PWR_CSR register ********************/ +#define PWR_CSR_WUF_Pos (0U) +#define PWR_CSR_WUF_Msk (0x1UL << PWR_CSR_WUF_Pos) /*!< 0x00000001 */ +#define PWR_CSR_WUF PWR_CSR_WUF_Msk /*!< Wakeup Flag */ +#define PWR_CSR_SBF_Pos (1U) +#define PWR_CSR_SBF_Msk (0x1UL << PWR_CSR_SBF_Pos) /*!< 0x00000002 */ +#define PWR_CSR_SBF PWR_CSR_SBF_Msk /*!< Standby Flag */ +#define PWR_CSR_PVDO_Pos (2U) +#define PWR_CSR_PVDO_Msk (0x1UL << PWR_CSR_PVDO_Pos) /*!< 0x00000004 */ +#define PWR_CSR_PVDO PWR_CSR_PVDO_Msk /*!< PVD Output */ +#define PWR_CSR_EWUP_Pos (8U) +#define PWR_CSR_EWUP_Msk (0x1UL << PWR_CSR_EWUP_Pos) /*!< 0x00000100 */ +#define PWR_CSR_EWUP PWR_CSR_EWUP_Msk /*!< Enable WKUP pin */ + +/******************************************************************************/ +/* */ +/* Backup registers */ +/* */ +/******************************************************************************/ + +/******************* Bit definition for BKP_DR1 register ********************/ +#define BKP_DR1_D_Pos (0U) +#define BKP_DR1_D_Msk (0xFFFFUL << BKP_DR1_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR1_D BKP_DR1_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR2 register ********************/ +#define BKP_DR2_D_Pos (0U) +#define BKP_DR2_D_Msk (0xFFFFUL << BKP_DR2_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR2_D BKP_DR2_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR3 register ********************/ +#define BKP_DR3_D_Pos (0U) +#define BKP_DR3_D_Msk (0xFFFFUL << BKP_DR3_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR3_D BKP_DR3_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR4 register ********************/ +#define BKP_DR4_D_Pos (0U) +#define BKP_DR4_D_Msk (0xFFFFUL << BKP_DR4_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR4_D BKP_DR4_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR5 register ********************/ +#define BKP_DR5_D_Pos (0U) +#define BKP_DR5_D_Msk (0xFFFFUL << BKP_DR5_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR5_D BKP_DR5_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR6 register ********************/ +#define BKP_DR6_D_Pos (0U) +#define BKP_DR6_D_Msk (0xFFFFUL << BKP_DR6_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR6_D BKP_DR6_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR7 register ********************/ +#define BKP_DR7_D_Pos (0U) +#define BKP_DR7_D_Msk (0xFFFFUL << BKP_DR7_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR7_D BKP_DR7_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR8 register ********************/ +#define BKP_DR8_D_Pos (0U) +#define BKP_DR8_D_Msk (0xFFFFUL << BKP_DR8_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR8_D BKP_DR8_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR9 register ********************/ +#define BKP_DR9_D_Pos (0U) +#define BKP_DR9_D_Msk (0xFFFFUL << BKP_DR9_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR9_D BKP_DR9_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR10 register *******************/ +#define BKP_DR10_D_Pos (0U) +#define BKP_DR10_D_Msk (0xFFFFUL << BKP_DR10_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR10_D BKP_DR10_D_Msk /*!< Backup data */ + +#define RTC_BKP_NUMBER 10 + +/****************** Bit definition for BKP_RTCCR register *******************/ +#define BKP_RTCCR_CAL_Pos (0U) +#define BKP_RTCCR_CAL_Msk (0x7FUL << BKP_RTCCR_CAL_Pos) /*!< 0x0000007F */ +#define BKP_RTCCR_CAL BKP_RTCCR_CAL_Msk /*!< Calibration value */ +#define BKP_RTCCR_CCO_Pos (7U) +#define BKP_RTCCR_CCO_Msk (0x1UL << BKP_RTCCR_CCO_Pos) /*!< 0x00000080 */ +#define BKP_RTCCR_CCO BKP_RTCCR_CCO_Msk /*!< Calibration Clock Output */ +#define BKP_RTCCR_ASOE_Pos (8U) +#define BKP_RTCCR_ASOE_Msk (0x1UL << BKP_RTCCR_ASOE_Pos) /*!< 0x00000100 */ +#define BKP_RTCCR_ASOE BKP_RTCCR_ASOE_Msk /*!< Alarm or Second Output Enable */ +#define BKP_RTCCR_ASOS_Pos (9U) +#define BKP_RTCCR_ASOS_Msk (0x1UL << BKP_RTCCR_ASOS_Pos) /*!< 0x00000200 */ +#define BKP_RTCCR_ASOS BKP_RTCCR_ASOS_Msk /*!< Alarm or Second Output Selection */ + +/******************** Bit definition for BKP_CR register ********************/ +#define BKP_CR_TPE_Pos (0U) +#define BKP_CR_TPE_Msk (0x1UL << BKP_CR_TPE_Pos) /*!< 0x00000001 */ +#define BKP_CR_TPE BKP_CR_TPE_Msk /*!< TAMPER pin enable */ +#define BKP_CR_TPAL_Pos (1U) +#define BKP_CR_TPAL_Msk (0x1UL << BKP_CR_TPAL_Pos) /*!< 0x00000002 */ +#define BKP_CR_TPAL BKP_CR_TPAL_Msk /*!< TAMPER pin active level */ + +/******************* Bit definition for BKP_CSR register ********************/ +#define BKP_CSR_CTE_Pos (0U) +#define BKP_CSR_CTE_Msk (0x1UL << BKP_CSR_CTE_Pos) /*!< 0x00000001 */ +#define BKP_CSR_CTE BKP_CSR_CTE_Msk /*!< Clear Tamper event */ +#define BKP_CSR_CTI_Pos (1U) +#define BKP_CSR_CTI_Msk (0x1UL << BKP_CSR_CTI_Pos) /*!< 0x00000002 */ +#define BKP_CSR_CTI BKP_CSR_CTI_Msk /*!< Clear Tamper Interrupt */ +#define BKP_CSR_TPIE_Pos (2U) +#define BKP_CSR_TPIE_Msk (0x1UL << BKP_CSR_TPIE_Pos) /*!< 0x00000004 */ +#define BKP_CSR_TPIE BKP_CSR_TPIE_Msk /*!< TAMPER Pin interrupt enable */ +#define BKP_CSR_TEF_Pos (8U) +#define BKP_CSR_TEF_Msk (0x1UL << BKP_CSR_TEF_Pos) /*!< 0x00000100 */ +#define BKP_CSR_TEF BKP_CSR_TEF_Msk /*!< Tamper Event Flag */ +#define BKP_CSR_TIF_Pos (9U) +#define BKP_CSR_TIF_Msk (0x1UL << BKP_CSR_TIF_Pos) /*!< 0x00000200 */ +#define BKP_CSR_TIF BKP_CSR_TIF_Msk /*!< Tamper Interrupt Flag */ + +/******************************************************************************/ +/* */ +/* Reset and Clock Control */ +/* */ +/******************************************************************************/ + +/******************** Bit definition for RCC_CR register ********************/ +#define RCC_CR_HSION_Pos (0U) +#define RCC_CR_HSION_Msk (0x1UL << RCC_CR_HSION_Pos) /*!< 0x00000001 */ +#define RCC_CR_HSION RCC_CR_HSION_Msk /*!< Internal High Speed clock enable */ +#define RCC_CR_HSIRDY_Pos (1U) +#define RCC_CR_HSIRDY_Msk (0x1UL << RCC_CR_HSIRDY_Pos) /*!< 0x00000002 */ +#define RCC_CR_HSIRDY RCC_CR_HSIRDY_Msk /*!< Internal High Speed clock ready flag */ +#define RCC_CR_HSITRIM_Pos (3U) +#define RCC_CR_HSITRIM_Msk (0x1FUL << RCC_CR_HSITRIM_Pos) /*!< 0x000000F8 */ +#define RCC_CR_HSITRIM RCC_CR_HSITRIM_Msk /*!< Internal High Speed clock trimming */ +#define RCC_CR_HSICAL_Pos (8U) +#define RCC_CR_HSICAL_Msk (0xFFUL << RCC_CR_HSICAL_Pos) /*!< 0x0000FF00 */ +#define RCC_CR_HSICAL RCC_CR_HSICAL_Msk /*!< Internal High Speed clock Calibration */ +#define RCC_CR_HSEON_Pos (16U) +#define RCC_CR_HSEON_Msk (0x1UL << RCC_CR_HSEON_Pos) /*!< 0x00010000 */ +#define RCC_CR_HSEON RCC_CR_HSEON_Msk /*!< External High Speed clock enable */ +#define RCC_CR_HSERDY_Pos (17U) +#define RCC_CR_HSERDY_Msk (0x1UL << RCC_CR_HSERDY_Pos) /*!< 0x00020000 */ +#define RCC_CR_HSERDY RCC_CR_HSERDY_Msk /*!< External High Speed clock ready flag */ +#define RCC_CR_HSEBYP_Pos (18U) +#define RCC_CR_HSEBYP_Msk (0x1UL << RCC_CR_HSEBYP_Pos) /*!< 0x00040000 */ +#define RCC_CR_HSEBYP RCC_CR_HSEBYP_Msk /*!< External High Speed clock Bypass */ +#define RCC_CR_CSSON_Pos (19U) +#define RCC_CR_CSSON_Msk (0x1UL << RCC_CR_CSSON_Pos) /*!< 0x00080000 */ +#define RCC_CR_CSSON RCC_CR_CSSON_Msk /*!< Clock Security System enable */ +#define RCC_CR_PLLON_Pos (24U) +#define RCC_CR_PLLON_Msk (0x1UL << RCC_CR_PLLON_Pos) /*!< 0x01000000 */ +#define RCC_CR_PLLON RCC_CR_PLLON_Msk /*!< PLL enable */ +#define RCC_CR_PLLRDY_Pos (25U) +#define RCC_CR_PLLRDY_Msk (0x1UL << RCC_CR_PLLRDY_Pos) /*!< 0x02000000 */ +#define RCC_CR_PLLRDY RCC_CR_PLLRDY_Msk /*!< PLL clock ready flag */ + + +/******************* Bit definition for RCC_CFGR register *******************/ +/*!< SW configuration */ +#define RCC_CFGR_SW_Pos (0U) +#define RCC_CFGR_SW_Msk (0x3UL << RCC_CFGR_SW_Pos) /*!< 0x00000003 */ +#define RCC_CFGR_SW RCC_CFGR_SW_Msk /*!< SW[1:0] bits (System clock Switch) */ +#define RCC_CFGR_SW_0 (0x1UL << RCC_CFGR_SW_Pos) /*!< 0x00000001 */ +#define RCC_CFGR_SW_1 (0x2UL << RCC_CFGR_SW_Pos) /*!< 0x00000002 */ + +#define RCC_CFGR_SW_HSI 0x00000000U /*!< HSI selected as system clock */ +#define RCC_CFGR_SW_HSE 0x00000001U /*!< HSE selected as system clock */ +#define RCC_CFGR_SW_PLL 0x00000002U /*!< PLL selected as system clock */ + +/*!< SWS configuration */ +#define RCC_CFGR_SWS_Pos (2U) +#define RCC_CFGR_SWS_Msk (0x3UL << RCC_CFGR_SWS_Pos) /*!< 0x0000000C */ +#define RCC_CFGR_SWS RCC_CFGR_SWS_Msk /*!< SWS[1:0] bits (System Clock Switch Status) */ +#define RCC_CFGR_SWS_0 (0x1UL << RCC_CFGR_SWS_Pos) /*!< 0x00000004 */ +#define RCC_CFGR_SWS_1 (0x2UL << RCC_CFGR_SWS_Pos) /*!< 0x00000008 */ + +#define RCC_CFGR_SWS_HSI 0x00000000U /*!< HSI oscillator used as system clock */ +#define RCC_CFGR_SWS_HSE 0x00000004U /*!< HSE oscillator used as system clock */ +#define RCC_CFGR_SWS_PLL 0x00000008U /*!< PLL used as system clock */ + +/*!< HPRE configuration */ +#define RCC_CFGR_HPRE_Pos (4U) +#define RCC_CFGR_HPRE_Msk (0xFUL << RCC_CFGR_HPRE_Pos) /*!< 0x000000F0 */ +#define RCC_CFGR_HPRE RCC_CFGR_HPRE_Msk /*!< HPRE[3:0] bits (AHB prescaler) */ +#define RCC_CFGR_HPRE_0 (0x1UL << RCC_CFGR_HPRE_Pos) /*!< 0x00000010 */ +#define RCC_CFGR_HPRE_1 (0x2UL << RCC_CFGR_HPRE_Pos) /*!< 0x00000020 */ +#define RCC_CFGR_HPRE_2 (0x4UL << RCC_CFGR_HPRE_Pos) /*!< 0x00000040 */ +#define RCC_CFGR_HPRE_3 (0x8UL << RCC_CFGR_HPRE_Pos) /*!< 0x00000080 */ + +#define RCC_CFGR_HPRE_DIV1 0x00000000U /*!< SYSCLK not divided */ +#define RCC_CFGR_HPRE_DIV2 0x00000080U /*!< SYSCLK divided by 2 */ +#define RCC_CFGR_HPRE_DIV4 0x00000090U /*!< SYSCLK divided by 4 */ +#define RCC_CFGR_HPRE_DIV8 0x000000A0U /*!< SYSCLK divided by 8 */ +#define RCC_CFGR_HPRE_DIV16 0x000000B0U /*!< SYSCLK divided by 16 */ +#define RCC_CFGR_HPRE_DIV64 0x000000C0U /*!< SYSCLK divided by 64 */ +#define RCC_CFGR_HPRE_DIV128 0x000000D0U /*!< SYSCLK divided by 128 */ +#define RCC_CFGR_HPRE_DIV256 0x000000E0U /*!< SYSCLK divided by 256 */ +#define RCC_CFGR_HPRE_DIV512 0x000000F0U /*!< SYSCLK divided by 512 */ + +/*!< PPRE1 configuration */ +#define RCC_CFGR_PPRE1_Pos (8U) +#define RCC_CFGR_PPRE1_Msk (0x7UL << RCC_CFGR_PPRE1_Pos) /*!< 0x00000700 */ +#define RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_Msk /*!< PRE1[2:0] bits (APB1 prescaler) */ +#define RCC_CFGR_PPRE1_0 (0x1UL << RCC_CFGR_PPRE1_Pos) /*!< 0x00000100 */ +#define RCC_CFGR_PPRE1_1 (0x2UL << RCC_CFGR_PPRE1_Pos) /*!< 0x00000200 */ +#define RCC_CFGR_PPRE1_2 (0x4UL << RCC_CFGR_PPRE1_Pos) /*!< 0x00000400 */ + +#define RCC_CFGR_PPRE1_DIV1 0x00000000U /*!< HCLK not divided */ +#define RCC_CFGR_PPRE1_DIV2 0x00000400U /*!< HCLK divided by 2 */ +#define RCC_CFGR_PPRE1_DIV4 0x00000500U /*!< HCLK divided by 4 */ +#define RCC_CFGR_PPRE1_DIV8 0x00000600U /*!< HCLK divided by 8 */ +#define RCC_CFGR_PPRE1_DIV16 0x00000700U /*!< HCLK divided by 16 */ + +/*!< PPRE2 configuration */ +#define RCC_CFGR_PPRE2_Pos (11U) +#define RCC_CFGR_PPRE2_Msk (0x7UL << RCC_CFGR_PPRE2_Pos) /*!< 0x00003800 */ +#define RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_Msk /*!< PRE2[2:0] bits (APB2 prescaler) */ +#define RCC_CFGR_PPRE2_0 (0x1UL << RCC_CFGR_PPRE2_Pos) /*!< 0x00000800 */ +#define RCC_CFGR_PPRE2_1 (0x2UL << RCC_CFGR_PPRE2_Pos) /*!< 0x00001000 */ +#define RCC_CFGR_PPRE2_2 (0x4UL << RCC_CFGR_PPRE2_Pos) /*!< 0x00002000 */ + +#define RCC_CFGR_PPRE2_DIV1 0x00000000U /*!< HCLK not divided */ +#define RCC_CFGR_PPRE2_DIV2 0x00002000U /*!< HCLK divided by 2 */ +#define RCC_CFGR_PPRE2_DIV4 0x00002800U /*!< HCLK divided by 4 */ +#define RCC_CFGR_PPRE2_DIV8 0x00003000U /*!< HCLK divided by 8 */ +#define RCC_CFGR_PPRE2_DIV16 0x00003800U /*!< HCLK divided by 16 */ + +/*!< ADCPPRE configuration */ +#define RCC_CFGR_ADCPRE_Pos (14U) +#define RCC_CFGR_ADCPRE_Msk (0x3UL << RCC_CFGR_ADCPRE_Pos) /*!< 0x0000C000 */ +#define RCC_CFGR_ADCPRE RCC_CFGR_ADCPRE_Msk /*!< ADCPRE[1:0] bits (ADC prescaler) */ +#define RCC_CFGR_ADCPRE_0 (0x1UL << RCC_CFGR_ADCPRE_Pos) /*!< 0x00004000 */ +#define RCC_CFGR_ADCPRE_1 (0x2UL << RCC_CFGR_ADCPRE_Pos) /*!< 0x00008000 */ + +#define RCC_CFGR_ADCPRE_DIV2 0x00000000U /*!< PCLK2 divided by 2 */ +#define RCC_CFGR_ADCPRE_DIV4 0x00004000U /*!< PCLK2 divided by 4 */ +#define RCC_CFGR_ADCPRE_DIV6 0x00008000U /*!< PCLK2 divided by 6 */ +#define RCC_CFGR_ADCPRE_DIV8 0x0000C000U /*!< PCLK2 divided by 8 */ + +#define RCC_CFGR_PLLSRC_Pos (16U) +#define RCC_CFGR_PLLSRC_Msk (0x1UL << RCC_CFGR_PLLSRC_Pos) /*!< 0x00010000 */ +#define RCC_CFGR_PLLSRC RCC_CFGR_PLLSRC_Msk /*!< PLL entry clock source */ + +#define RCC_CFGR_PLLXTPRE_Pos (17U) +#define RCC_CFGR_PLLXTPRE_Msk (0x1UL << RCC_CFGR_PLLXTPRE_Pos) /*!< 0x00020000 */ +#define RCC_CFGR_PLLXTPRE RCC_CFGR_PLLXTPRE_Msk /*!< HSE divider for PLL entry */ + +/*!< PLLMUL configuration */ +#define RCC_CFGR_PLLMULL_Pos (18U) +#define RCC_CFGR_PLLMULL_Msk (0xFUL << RCC_CFGR_PLLMULL_Pos) /*!< 0x003C0000 */ +#define RCC_CFGR_PLLMULL RCC_CFGR_PLLMULL_Msk /*!< PLLMUL[3:0] bits (PLL multiplication factor) */ +#define RCC_CFGR_PLLMULL_0 (0x1UL << RCC_CFGR_PLLMULL_Pos) /*!< 0x00040000 */ +#define RCC_CFGR_PLLMULL_1 (0x2UL << RCC_CFGR_PLLMULL_Pos) /*!< 0x00080000 */ +#define RCC_CFGR_PLLMULL_2 (0x4UL << RCC_CFGR_PLLMULL_Pos) /*!< 0x00100000 */ +#define RCC_CFGR_PLLMULL_3 (0x8UL << RCC_CFGR_PLLMULL_Pos) /*!< 0x00200000 */ + +#define RCC_CFGR_PLLXTPRE_HSE 0x00000000U /*!< HSE clock not divided for PLL entry */ +#define RCC_CFGR_PLLXTPRE_HSE_DIV2 0x00020000U /*!< HSE clock divided by 2 for PLL entry */ + +#define RCC_CFGR_PLLMULL2 0x00000000U /*!< PLL input clock*2 */ +#define RCC_CFGR_PLLMULL3_Pos (18U) +#define RCC_CFGR_PLLMULL3_Msk (0x1UL << RCC_CFGR_PLLMULL3_Pos) /*!< 0x00040000 */ +#define RCC_CFGR_PLLMULL3 RCC_CFGR_PLLMULL3_Msk /*!< PLL input clock*3 */ +#define RCC_CFGR_PLLMULL4_Pos (19U) +#define RCC_CFGR_PLLMULL4_Msk (0x1UL << RCC_CFGR_PLLMULL4_Pos) /*!< 0x00080000 */ +#define RCC_CFGR_PLLMULL4 RCC_CFGR_PLLMULL4_Msk /*!< PLL input clock*4 */ +#define RCC_CFGR_PLLMULL5_Pos (18U) +#define RCC_CFGR_PLLMULL5_Msk (0x3UL << RCC_CFGR_PLLMULL5_Pos) /*!< 0x000C0000 */ +#define RCC_CFGR_PLLMULL5 RCC_CFGR_PLLMULL5_Msk /*!< PLL input clock*5 */ +#define RCC_CFGR_PLLMULL6_Pos (20U) +#define RCC_CFGR_PLLMULL6_Msk (0x1UL << RCC_CFGR_PLLMULL6_Pos) /*!< 0x00100000 */ +#define RCC_CFGR_PLLMULL6 RCC_CFGR_PLLMULL6_Msk /*!< PLL input clock*6 */ +#define RCC_CFGR_PLLMULL7_Pos (18U) +#define RCC_CFGR_PLLMULL7_Msk (0x5UL << RCC_CFGR_PLLMULL7_Pos) /*!< 0x00140000 */ +#define RCC_CFGR_PLLMULL7 RCC_CFGR_PLLMULL7_Msk /*!< PLL input clock*7 */ +#define RCC_CFGR_PLLMULL8_Pos (19U) +#define RCC_CFGR_PLLMULL8_Msk (0x3UL << RCC_CFGR_PLLMULL8_Pos) /*!< 0x00180000 */ +#define RCC_CFGR_PLLMULL8 RCC_CFGR_PLLMULL8_Msk /*!< PLL input clock*8 */ +#define RCC_CFGR_PLLMULL9_Pos (18U) +#define RCC_CFGR_PLLMULL9_Msk (0x7UL << RCC_CFGR_PLLMULL9_Pos) /*!< 0x001C0000 */ +#define RCC_CFGR_PLLMULL9 RCC_CFGR_PLLMULL9_Msk /*!< PLL input clock*9 */ +#define RCC_CFGR_PLLMULL10_Pos (21U) +#define RCC_CFGR_PLLMULL10_Msk (0x1UL << RCC_CFGR_PLLMULL10_Pos) /*!< 0x00200000 */ +#define RCC_CFGR_PLLMULL10 RCC_CFGR_PLLMULL10_Msk /*!< PLL input clock10 */ +#define RCC_CFGR_PLLMULL11_Pos (18U) +#define RCC_CFGR_PLLMULL11_Msk (0x9UL << RCC_CFGR_PLLMULL11_Pos) /*!< 0x00240000 */ +#define RCC_CFGR_PLLMULL11 RCC_CFGR_PLLMULL11_Msk /*!< PLL input clock*11 */ +#define RCC_CFGR_PLLMULL12_Pos (19U) +#define RCC_CFGR_PLLMULL12_Msk (0x5UL << RCC_CFGR_PLLMULL12_Pos) /*!< 0x00280000 */ +#define RCC_CFGR_PLLMULL12 RCC_CFGR_PLLMULL12_Msk /*!< PLL input clock*12 */ +#define RCC_CFGR_PLLMULL13_Pos (18U) +#define RCC_CFGR_PLLMULL13_Msk (0xBUL << RCC_CFGR_PLLMULL13_Pos) /*!< 0x002C0000 */ +#define RCC_CFGR_PLLMULL13 RCC_CFGR_PLLMULL13_Msk /*!< PLL input clock*13 */ +#define RCC_CFGR_PLLMULL14_Pos (20U) +#define RCC_CFGR_PLLMULL14_Msk (0x3UL << RCC_CFGR_PLLMULL14_Pos) /*!< 0x00300000 */ +#define RCC_CFGR_PLLMULL14 RCC_CFGR_PLLMULL14_Msk /*!< PLL input clock*14 */ +#define RCC_CFGR_PLLMULL15_Pos (18U) +#define RCC_CFGR_PLLMULL15_Msk (0xDUL << RCC_CFGR_PLLMULL15_Pos) /*!< 0x00340000 */ +#define RCC_CFGR_PLLMULL15 RCC_CFGR_PLLMULL15_Msk /*!< PLL input clock*15 */ +#define RCC_CFGR_PLLMULL16_Pos (19U) +#define RCC_CFGR_PLLMULL16_Msk (0x7UL << RCC_CFGR_PLLMULL16_Pos) /*!< 0x00380000 */ +#define RCC_CFGR_PLLMULL16 RCC_CFGR_PLLMULL16_Msk /*!< PLL input clock*16 */ +#define RCC_CFGR_USBPRE_Pos (22U) +#define RCC_CFGR_USBPRE_Msk (0x1UL << RCC_CFGR_USBPRE_Pos) /*!< 0x00400000 */ +#define RCC_CFGR_USBPRE RCC_CFGR_USBPRE_Msk /*!< USB Device prescaler */ + +/*!< MCO configuration */ +#define RCC_CFGR_MCO_Pos (24U) +#define RCC_CFGR_MCO_Msk (0x7UL << RCC_CFGR_MCO_Pos) /*!< 0x07000000 */ +#define RCC_CFGR_MCO RCC_CFGR_MCO_Msk /*!< MCO[2:0] bits (Microcontroller Clock Output) */ +#define RCC_CFGR_MCO_0 (0x1UL << RCC_CFGR_MCO_Pos) /*!< 0x01000000 */ +#define RCC_CFGR_MCO_1 (0x2UL << RCC_CFGR_MCO_Pos) /*!< 0x02000000 */ +#define RCC_CFGR_MCO_2 (0x4UL << RCC_CFGR_MCO_Pos) /*!< 0x04000000 */ + +#define RCC_CFGR_MCO_NOCLOCK 0x00000000U /*!< No clock */ +#define RCC_CFGR_MCO_SYSCLK 0x04000000U /*!< System clock selected as MCO source */ +#define RCC_CFGR_MCO_HSI 0x05000000U /*!< HSI clock selected as MCO source */ +#define RCC_CFGR_MCO_HSE 0x06000000U /*!< HSE clock selected as MCO source */ +#define RCC_CFGR_MCO_PLLCLK_DIV2 0x07000000U /*!< PLL clock divided by 2 selected as MCO source */ + + /* Reference defines */ + #define RCC_CFGR_MCOSEL RCC_CFGR_MCO + #define RCC_CFGR_MCOSEL_0 RCC_CFGR_MCO_0 + #define RCC_CFGR_MCOSEL_1 RCC_CFGR_MCO_1 + #define RCC_CFGR_MCOSEL_2 RCC_CFGR_MCO_2 + #define RCC_CFGR_MCOSEL_NOCLOCK RCC_CFGR_MCO_NOCLOCK + #define RCC_CFGR_MCOSEL_SYSCLK RCC_CFGR_MCO_SYSCLK + #define RCC_CFGR_MCOSEL_HSI RCC_CFGR_MCO_HSI + #define RCC_CFGR_MCOSEL_HSE RCC_CFGR_MCO_HSE + #define RCC_CFGR_MCOSEL_PLL_DIV2 RCC_CFGR_MCO_PLLCLK_DIV2 + +/*!<****************** Bit definition for RCC_CIR register ********************/ +#define RCC_CIR_LSIRDYF_Pos (0U) +#define RCC_CIR_LSIRDYF_Msk (0x1UL << RCC_CIR_LSIRDYF_Pos) /*!< 0x00000001 */ +#define RCC_CIR_LSIRDYF RCC_CIR_LSIRDYF_Msk /*!< LSI Ready Interrupt flag */ +#define RCC_CIR_LSERDYF_Pos (1U) +#define RCC_CIR_LSERDYF_Msk (0x1UL << RCC_CIR_LSERDYF_Pos) /*!< 0x00000002 */ +#define RCC_CIR_LSERDYF RCC_CIR_LSERDYF_Msk /*!< LSE Ready Interrupt flag */ +#define RCC_CIR_HSIRDYF_Pos (2U) +#define RCC_CIR_HSIRDYF_Msk (0x1UL << RCC_CIR_HSIRDYF_Pos) /*!< 0x00000004 */ +#define RCC_CIR_HSIRDYF RCC_CIR_HSIRDYF_Msk /*!< HSI Ready Interrupt flag */ +#define RCC_CIR_HSERDYF_Pos (3U) +#define RCC_CIR_HSERDYF_Msk (0x1UL << RCC_CIR_HSERDYF_Pos) /*!< 0x00000008 */ +#define RCC_CIR_HSERDYF RCC_CIR_HSERDYF_Msk /*!< HSE Ready Interrupt flag */ +#define RCC_CIR_PLLRDYF_Pos (4U) +#define RCC_CIR_PLLRDYF_Msk (0x1UL << RCC_CIR_PLLRDYF_Pos) /*!< 0x00000010 */ +#define RCC_CIR_PLLRDYF RCC_CIR_PLLRDYF_Msk /*!< PLL Ready Interrupt flag */ +#define RCC_CIR_CSSF_Pos (7U) +#define RCC_CIR_CSSF_Msk (0x1UL << RCC_CIR_CSSF_Pos) /*!< 0x00000080 */ +#define RCC_CIR_CSSF RCC_CIR_CSSF_Msk /*!< Clock Security System Interrupt flag */ +#define RCC_CIR_LSIRDYIE_Pos (8U) +#define RCC_CIR_LSIRDYIE_Msk (0x1UL << RCC_CIR_LSIRDYIE_Pos) /*!< 0x00000100 */ +#define RCC_CIR_LSIRDYIE RCC_CIR_LSIRDYIE_Msk /*!< LSI Ready Interrupt Enable */ +#define RCC_CIR_LSERDYIE_Pos (9U) +#define RCC_CIR_LSERDYIE_Msk (0x1UL << RCC_CIR_LSERDYIE_Pos) /*!< 0x00000200 */ +#define RCC_CIR_LSERDYIE RCC_CIR_LSERDYIE_Msk /*!< LSE Ready Interrupt Enable */ +#define RCC_CIR_HSIRDYIE_Pos (10U) +#define RCC_CIR_HSIRDYIE_Msk (0x1UL << RCC_CIR_HSIRDYIE_Pos) /*!< 0x00000400 */ +#define RCC_CIR_HSIRDYIE RCC_CIR_HSIRDYIE_Msk /*!< HSI Ready Interrupt Enable */ +#define RCC_CIR_HSERDYIE_Pos (11U) +#define RCC_CIR_HSERDYIE_Msk (0x1UL << RCC_CIR_HSERDYIE_Pos) /*!< 0x00000800 */ +#define RCC_CIR_HSERDYIE RCC_CIR_HSERDYIE_Msk /*!< HSE Ready Interrupt Enable */ +#define RCC_CIR_PLLRDYIE_Pos (12U) +#define RCC_CIR_PLLRDYIE_Msk (0x1UL << RCC_CIR_PLLRDYIE_Pos) /*!< 0x00001000 */ +#define RCC_CIR_PLLRDYIE RCC_CIR_PLLRDYIE_Msk /*!< PLL Ready Interrupt Enable */ +#define RCC_CIR_LSIRDYC_Pos (16U) +#define RCC_CIR_LSIRDYC_Msk (0x1UL << RCC_CIR_LSIRDYC_Pos) /*!< 0x00010000 */ +#define RCC_CIR_LSIRDYC RCC_CIR_LSIRDYC_Msk /*!< LSI Ready Interrupt Clear */ +#define RCC_CIR_LSERDYC_Pos (17U) +#define RCC_CIR_LSERDYC_Msk (0x1UL << RCC_CIR_LSERDYC_Pos) /*!< 0x00020000 */ +#define RCC_CIR_LSERDYC RCC_CIR_LSERDYC_Msk /*!< LSE Ready Interrupt Clear */ +#define RCC_CIR_HSIRDYC_Pos (18U) +#define RCC_CIR_HSIRDYC_Msk (0x1UL << RCC_CIR_HSIRDYC_Pos) /*!< 0x00040000 */ +#define RCC_CIR_HSIRDYC RCC_CIR_HSIRDYC_Msk /*!< HSI Ready Interrupt Clear */ +#define RCC_CIR_HSERDYC_Pos (19U) +#define RCC_CIR_HSERDYC_Msk (0x1UL << RCC_CIR_HSERDYC_Pos) /*!< 0x00080000 */ +#define RCC_CIR_HSERDYC RCC_CIR_HSERDYC_Msk /*!< HSE Ready Interrupt Clear */ +#define RCC_CIR_PLLRDYC_Pos (20U) +#define RCC_CIR_PLLRDYC_Msk (0x1UL << RCC_CIR_PLLRDYC_Pos) /*!< 0x00100000 */ +#define RCC_CIR_PLLRDYC RCC_CIR_PLLRDYC_Msk /*!< PLL Ready Interrupt Clear */ +#define RCC_CIR_CSSC_Pos (23U) +#define RCC_CIR_CSSC_Msk (0x1UL << RCC_CIR_CSSC_Pos) /*!< 0x00800000 */ +#define RCC_CIR_CSSC RCC_CIR_CSSC_Msk /*!< Clock Security System Interrupt Clear */ + + +/***************** Bit definition for RCC_APB2RSTR register *****************/ +#define RCC_APB2RSTR_AFIORST_Pos (0U) +#define RCC_APB2RSTR_AFIORST_Msk (0x1UL << RCC_APB2RSTR_AFIORST_Pos) /*!< 0x00000001 */ +#define RCC_APB2RSTR_AFIORST RCC_APB2RSTR_AFIORST_Msk /*!< Alternate Function I/O reset */ +#define RCC_APB2RSTR_IOPARST_Pos (2U) +#define RCC_APB2RSTR_IOPARST_Msk (0x1UL << RCC_APB2RSTR_IOPARST_Pos) /*!< 0x00000004 */ +#define RCC_APB2RSTR_IOPARST RCC_APB2RSTR_IOPARST_Msk /*!< I/O port A reset */ +#define RCC_APB2RSTR_IOPBRST_Pos (3U) +#define RCC_APB2RSTR_IOPBRST_Msk (0x1UL << RCC_APB2RSTR_IOPBRST_Pos) /*!< 0x00000008 */ +#define RCC_APB2RSTR_IOPBRST RCC_APB2RSTR_IOPBRST_Msk /*!< I/O port B reset */ +#define RCC_APB2RSTR_IOPCRST_Pos (4U) +#define RCC_APB2RSTR_IOPCRST_Msk (0x1UL << RCC_APB2RSTR_IOPCRST_Pos) /*!< 0x00000010 */ +#define RCC_APB2RSTR_IOPCRST RCC_APB2RSTR_IOPCRST_Msk /*!< I/O port C reset */ +#define RCC_APB2RSTR_IOPDRST_Pos (5U) +#define RCC_APB2RSTR_IOPDRST_Msk (0x1UL << RCC_APB2RSTR_IOPDRST_Pos) /*!< 0x00000020 */ +#define RCC_APB2RSTR_IOPDRST RCC_APB2RSTR_IOPDRST_Msk /*!< I/O port D reset */ +#define RCC_APB2RSTR_ADC1RST_Pos (9U) +#define RCC_APB2RSTR_ADC1RST_Msk (0x1UL << RCC_APB2RSTR_ADC1RST_Pos) /*!< 0x00000200 */ +#define RCC_APB2RSTR_ADC1RST RCC_APB2RSTR_ADC1RST_Msk /*!< ADC 1 interface reset */ + +#define RCC_APB2RSTR_ADC2RST_Pos (10U) +#define RCC_APB2RSTR_ADC2RST_Msk (0x1UL << RCC_APB2RSTR_ADC2RST_Pos) /*!< 0x00000400 */ +#define RCC_APB2RSTR_ADC2RST RCC_APB2RSTR_ADC2RST_Msk /*!< ADC 2 interface reset */ + +#define RCC_APB2RSTR_TIM1RST_Pos (11U) +#define RCC_APB2RSTR_TIM1RST_Msk (0x1UL << RCC_APB2RSTR_TIM1RST_Pos) /*!< 0x00000800 */ +#define RCC_APB2RSTR_TIM1RST RCC_APB2RSTR_TIM1RST_Msk /*!< TIM1 Timer reset */ +#define RCC_APB2RSTR_SPI1RST_Pos (12U) +#define RCC_APB2RSTR_SPI1RST_Msk (0x1UL << RCC_APB2RSTR_SPI1RST_Pos) /*!< 0x00001000 */ +#define RCC_APB2RSTR_SPI1RST RCC_APB2RSTR_SPI1RST_Msk /*!< SPI 1 reset */ +#define RCC_APB2RSTR_USART1RST_Pos (14U) +#define RCC_APB2RSTR_USART1RST_Msk (0x1UL << RCC_APB2RSTR_USART1RST_Pos) /*!< 0x00004000 */ +#define RCC_APB2RSTR_USART1RST RCC_APB2RSTR_USART1RST_Msk /*!< USART1 reset */ + + +#define RCC_APB2RSTR_IOPERST_Pos (6U) +#define RCC_APB2RSTR_IOPERST_Msk (0x1UL << RCC_APB2RSTR_IOPERST_Pos) /*!< 0x00000040 */ +#define RCC_APB2RSTR_IOPERST RCC_APB2RSTR_IOPERST_Msk /*!< I/O port E reset */ + + + + +/***************** Bit definition for RCC_APB1RSTR register *****************/ +#define RCC_APB1RSTR_TIM2RST_Pos (0U) +#define RCC_APB1RSTR_TIM2RST_Msk (0x1UL << RCC_APB1RSTR_TIM2RST_Pos) /*!< 0x00000001 */ +#define RCC_APB1RSTR_TIM2RST RCC_APB1RSTR_TIM2RST_Msk /*!< Timer 2 reset */ +#define RCC_APB1RSTR_TIM3RST_Pos (1U) +#define RCC_APB1RSTR_TIM3RST_Msk (0x1UL << RCC_APB1RSTR_TIM3RST_Pos) /*!< 0x00000002 */ +#define RCC_APB1RSTR_TIM3RST RCC_APB1RSTR_TIM3RST_Msk /*!< Timer 3 reset */ +#define RCC_APB1RSTR_WWDGRST_Pos (11U) +#define RCC_APB1RSTR_WWDGRST_Msk (0x1UL << RCC_APB1RSTR_WWDGRST_Pos) /*!< 0x00000800 */ +#define RCC_APB1RSTR_WWDGRST RCC_APB1RSTR_WWDGRST_Msk /*!< Window Watchdog reset */ +#define RCC_APB1RSTR_USART2RST_Pos (17U) +#define RCC_APB1RSTR_USART2RST_Msk (0x1UL << RCC_APB1RSTR_USART2RST_Pos) /*!< 0x00020000 */ +#define RCC_APB1RSTR_USART2RST RCC_APB1RSTR_USART2RST_Msk /*!< USART 2 reset */ +#define RCC_APB1RSTR_I2C1RST_Pos (21U) +#define RCC_APB1RSTR_I2C1RST_Msk (0x1UL << RCC_APB1RSTR_I2C1RST_Pos) /*!< 0x00200000 */ +#define RCC_APB1RSTR_I2C1RST RCC_APB1RSTR_I2C1RST_Msk /*!< I2C 1 reset */ + +#define RCC_APB1RSTR_CAN1RST_Pos (25U) +#define RCC_APB1RSTR_CAN1RST_Msk (0x1UL << RCC_APB1RSTR_CAN1RST_Pos) /*!< 0x02000000 */ +#define RCC_APB1RSTR_CAN1RST RCC_APB1RSTR_CAN1RST_Msk /*!< CAN1 reset */ + +#define RCC_APB1RSTR_BKPRST_Pos (27U) +#define RCC_APB1RSTR_BKPRST_Msk (0x1UL << RCC_APB1RSTR_BKPRST_Pos) /*!< 0x08000000 */ +#define RCC_APB1RSTR_BKPRST RCC_APB1RSTR_BKPRST_Msk /*!< Backup interface reset */ +#define RCC_APB1RSTR_PWRRST_Pos (28U) +#define RCC_APB1RSTR_PWRRST_Msk (0x1UL << RCC_APB1RSTR_PWRRST_Pos) /*!< 0x10000000 */ +#define RCC_APB1RSTR_PWRRST RCC_APB1RSTR_PWRRST_Msk /*!< Power interface reset */ + +#define RCC_APB1RSTR_TIM4RST_Pos (2U) +#define RCC_APB1RSTR_TIM4RST_Msk (0x1UL << RCC_APB1RSTR_TIM4RST_Pos) /*!< 0x00000004 */ +#define RCC_APB1RSTR_TIM4RST RCC_APB1RSTR_TIM4RST_Msk /*!< Timer 4 reset */ +#define RCC_APB1RSTR_SPI2RST_Pos (14U) +#define RCC_APB1RSTR_SPI2RST_Msk (0x1UL << RCC_APB1RSTR_SPI2RST_Pos) /*!< 0x00004000 */ +#define RCC_APB1RSTR_SPI2RST RCC_APB1RSTR_SPI2RST_Msk /*!< SPI 2 reset */ +#define RCC_APB1RSTR_USART3RST_Pos (18U) +#define RCC_APB1RSTR_USART3RST_Msk (0x1UL << RCC_APB1RSTR_USART3RST_Pos) /*!< 0x00040000 */ +#define RCC_APB1RSTR_USART3RST RCC_APB1RSTR_USART3RST_Msk /*!< USART 3 reset */ +#define RCC_APB1RSTR_I2C2RST_Pos (22U) +#define RCC_APB1RSTR_I2C2RST_Msk (0x1UL << RCC_APB1RSTR_I2C2RST_Pos) /*!< 0x00400000 */ +#define RCC_APB1RSTR_I2C2RST RCC_APB1RSTR_I2C2RST_Msk /*!< I2C 2 reset */ + +#define RCC_APB1RSTR_USBRST_Pos (23U) +#define RCC_APB1RSTR_USBRST_Msk (0x1UL << RCC_APB1RSTR_USBRST_Pos) /*!< 0x00800000 */ +#define RCC_APB1RSTR_USBRST RCC_APB1RSTR_USBRST_Msk /*!< USB Device reset */ + + + + + + +/****************** Bit definition for RCC_AHBENR register ******************/ +#define RCC_AHBENR_DMA1EN_Pos (0U) +#define RCC_AHBENR_DMA1EN_Msk (0x1UL << RCC_AHBENR_DMA1EN_Pos) /*!< 0x00000001 */ +#define RCC_AHBENR_DMA1EN RCC_AHBENR_DMA1EN_Msk /*!< DMA1 clock enable */ +#define RCC_AHBENR_SRAMEN_Pos (2U) +#define RCC_AHBENR_SRAMEN_Msk (0x1UL << RCC_AHBENR_SRAMEN_Pos) /*!< 0x00000004 */ +#define RCC_AHBENR_SRAMEN RCC_AHBENR_SRAMEN_Msk /*!< SRAM interface clock enable */ +#define RCC_AHBENR_FLITFEN_Pos (4U) +#define RCC_AHBENR_FLITFEN_Msk (0x1UL << RCC_AHBENR_FLITFEN_Pos) /*!< 0x00000010 */ +#define RCC_AHBENR_FLITFEN RCC_AHBENR_FLITFEN_Msk /*!< FLITF clock enable */ +#define RCC_AHBENR_CRCEN_Pos (6U) +#define RCC_AHBENR_CRCEN_Msk (0x1UL << RCC_AHBENR_CRCEN_Pos) /*!< 0x00000040 */ +#define RCC_AHBENR_CRCEN RCC_AHBENR_CRCEN_Msk /*!< CRC clock enable */ + + + + +/****************** Bit definition for RCC_APB2ENR register *****************/ +#define RCC_APB2ENR_AFIOEN_Pos (0U) +#define RCC_APB2ENR_AFIOEN_Msk (0x1UL << RCC_APB2ENR_AFIOEN_Pos) /*!< 0x00000001 */ +#define RCC_APB2ENR_AFIOEN RCC_APB2ENR_AFIOEN_Msk /*!< Alternate Function I/O clock enable */ +#define RCC_APB2ENR_IOPAEN_Pos (2U) +#define RCC_APB2ENR_IOPAEN_Msk (0x1UL << RCC_APB2ENR_IOPAEN_Pos) /*!< 0x00000004 */ +#define RCC_APB2ENR_IOPAEN RCC_APB2ENR_IOPAEN_Msk /*!< I/O port A clock enable */ +#define RCC_APB2ENR_IOPBEN_Pos (3U) +#define RCC_APB2ENR_IOPBEN_Msk (0x1UL << RCC_APB2ENR_IOPBEN_Pos) /*!< 0x00000008 */ +#define RCC_APB2ENR_IOPBEN RCC_APB2ENR_IOPBEN_Msk /*!< I/O port B clock enable */ +#define RCC_APB2ENR_IOPCEN_Pos (4U) +#define RCC_APB2ENR_IOPCEN_Msk (0x1UL << RCC_APB2ENR_IOPCEN_Pos) /*!< 0x00000010 */ +#define RCC_APB2ENR_IOPCEN RCC_APB2ENR_IOPCEN_Msk /*!< I/O port C clock enable */ +#define RCC_APB2ENR_IOPDEN_Pos (5U) +#define RCC_APB2ENR_IOPDEN_Msk (0x1UL << RCC_APB2ENR_IOPDEN_Pos) /*!< 0x00000020 */ +#define RCC_APB2ENR_IOPDEN RCC_APB2ENR_IOPDEN_Msk /*!< I/O port D clock enable */ +#define RCC_APB2ENR_ADC1EN_Pos (9U) +#define RCC_APB2ENR_ADC1EN_Msk (0x1UL << RCC_APB2ENR_ADC1EN_Pos) /*!< 0x00000200 */ +#define RCC_APB2ENR_ADC1EN RCC_APB2ENR_ADC1EN_Msk /*!< ADC 1 interface clock enable */ + +#define RCC_APB2ENR_ADC2EN_Pos (10U) +#define RCC_APB2ENR_ADC2EN_Msk (0x1UL << RCC_APB2ENR_ADC2EN_Pos) /*!< 0x00000400 */ +#define RCC_APB2ENR_ADC2EN RCC_APB2ENR_ADC2EN_Msk /*!< ADC 2 interface clock enable */ + +#define RCC_APB2ENR_TIM1EN_Pos (11U) +#define RCC_APB2ENR_TIM1EN_Msk (0x1UL << RCC_APB2ENR_TIM1EN_Pos) /*!< 0x00000800 */ +#define RCC_APB2ENR_TIM1EN RCC_APB2ENR_TIM1EN_Msk /*!< TIM1 Timer clock enable */ +#define RCC_APB2ENR_SPI1EN_Pos (12U) +#define RCC_APB2ENR_SPI1EN_Msk (0x1UL << RCC_APB2ENR_SPI1EN_Pos) /*!< 0x00001000 */ +#define RCC_APB2ENR_SPI1EN RCC_APB2ENR_SPI1EN_Msk /*!< SPI 1 clock enable */ +#define RCC_APB2ENR_USART1EN_Pos (14U) +#define RCC_APB2ENR_USART1EN_Msk (0x1UL << RCC_APB2ENR_USART1EN_Pos) /*!< 0x00004000 */ +#define RCC_APB2ENR_USART1EN RCC_APB2ENR_USART1EN_Msk /*!< USART1 clock enable */ + + +#define RCC_APB2ENR_IOPEEN_Pos (6U) +#define RCC_APB2ENR_IOPEEN_Msk (0x1UL << RCC_APB2ENR_IOPEEN_Pos) /*!< 0x00000040 */ +#define RCC_APB2ENR_IOPEEN RCC_APB2ENR_IOPEEN_Msk /*!< I/O port E clock enable */ + + + + +/***************** Bit definition for RCC_APB1ENR register ******************/ +#define RCC_APB1ENR_TIM2EN_Pos (0U) +#define RCC_APB1ENR_TIM2EN_Msk (0x1UL << RCC_APB1ENR_TIM2EN_Pos) /*!< 0x00000001 */ +#define RCC_APB1ENR_TIM2EN RCC_APB1ENR_TIM2EN_Msk /*!< Timer 2 clock enabled*/ +#define RCC_APB1ENR_TIM3EN_Pos (1U) +#define RCC_APB1ENR_TIM3EN_Msk (0x1UL << RCC_APB1ENR_TIM3EN_Pos) /*!< 0x00000002 */ +#define RCC_APB1ENR_TIM3EN RCC_APB1ENR_TIM3EN_Msk /*!< Timer 3 clock enable */ +#define RCC_APB1ENR_WWDGEN_Pos (11U) +#define RCC_APB1ENR_WWDGEN_Msk (0x1UL << RCC_APB1ENR_WWDGEN_Pos) /*!< 0x00000800 */ +#define RCC_APB1ENR_WWDGEN RCC_APB1ENR_WWDGEN_Msk /*!< Window Watchdog clock enable */ +#define RCC_APB1ENR_USART2EN_Pos (17U) +#define RCC_APB1ENR_USART2EN_Msk (0x1UL << RCC_APB1ENR_USART2EN_Pos) /*!< 0x00020000 */ +#define RCC_APB1ENR_USART2EN RCC_APB1ENR_USART2EN_Msk /*!< USART 2 clock enable */ +#define RCC_APB1ENR_I2C1EN_Pos (21U) +#define RCC_APB1ENR_I2C1EN_Msk (0x1UL << RCC_APB1ENR_I2C1EN_Pos) /*!< 0x00200000 */ +#define RCC_APB1ENR_I2C1EN RCC_APB1ENR_I2C1EN_Msk /*!< I2C 1 clock enable */ + +#define RCC_APB1ENR_CAN1EN_Pos (25U) +#define RCC_APB1ENR_CAN1EN_Msk (0x1UL << RCC_APB1ENR_CAN1EN_Pos) /*!< 0x02000000 */ +#define RCC_APB1ENR_CAN1EN RCC_APB1ENR_CAN1EN_Msk /*!< CAN1 clock enable */ + +#define RCC_APB1ENR_BKPEN_Pos (27U) +#define RCC_APB1ENR_BKPEN_Msk (0x1UL << RCC_APB1ENR_BKPEN_Pos) /*!< 0x08000000 */ +#define RCC_APB1ENR_BKPEN RCC_APB1ENR_BKPEN_Msk /*!< Backup interface clock enable */ +#define RCC_APB1ENR_PWREN_Pos (28U) +#define RCC_APB1ENR_PWREN_Msk (0x1UL << RCC_APB1ENR_PWREN_Pos) /*!< 0x10000000 */ +#define RCC_APB1ENR_PWREN RCC_APB1ENR_PWREN_Msk /*!< Power interface clock enable */ + +#define RCC_APB1ENR_TIM4EN_Pos (2U) +#define RCC_APB1ENR_TIM4EN_Msk (0x1UL << RCC_APB1ENR_TIM4EN_Pos) /*!< 0x00000004 */ +#define RCC_APB1ENR_TIM4EN RCC_APB1ENR_TIM4EN_Msk /*!< Timer 4 clock enable */ +#define RCC_APB1ENR_SPI2EN_Pos (14U) +#define RCC_APB1ENR_SPI2EN_Msk (0x1UL << RCC_APB1ENR_SPI2EN_Pos) /*!< 0x00004000 */ +#define RCC_APB1ENR_SPI2EN RCC_APB1ENR_SPI2EN_Msk /*!< SPI 2 clock enable */ +#define RCC_APB1ENR_USART3EN_Pos (18U) +#define RCC_APB1ENR_USART3EN_Msk (0x1UL << RCC_APB1ENR_USART3EN_Pos) /*!< 0x00040000 */ +#define RCC_APB1ENR_USART3EN RCC_APB1ENR_USART3EN_Msk /*!< USART 3 clock enable */ +#define RCC_APB1ENR_I2C2EN_Pos (22U) +#define RCC_APB1ENR_I2C2EN_Msk (0x1UL << RCC_APB1ENR_I2C2EN_Pos) /*!< 0x00400000 */ +#define RCC_APB1ENR_I2C2EN RCC_APB1ENR_I2C2EN_Msk /*!< I2C 2 clock enable */ + +#define RCC_APB1ENR_USBEN_Pos (23U) +#define RCC_APB1ENR_USBEN_Msk (0x1UL << RCC_APB1ENR_USBEN_Pos) /*!< 0x00800000 */ +#define RCC_APB1ENR_USBEN RCC_APB1ENR_USBEN_Msk /*!< USB Device clock enable */ + + + + + + +/******************* Bit definition for RCC_BDCR register *******************/ +#define RCC_BDCR_LSEON_Pos (0U) +#define RCC_BDCR_LSEON_Msk (0x1UL << RCC_BDCR_LSEON_Pos) /*!< 0x00000001 */ +#define RCC_BDCR_LSEON RCC_BDCR_LSEON_Msk /*!< External Low Speed oscillator enable */ +#define RCC_BDCR_LSERDY_Pos (1U) +#define RCC_BDCR_LSERDY_Msk (0x1UL << RCC_BDCR_LSERDY_Pos) /*!< 0x00000002 */ +#define RCC_BDCR_LSERDY RCC_BDCR_LSERDY_Msk /*!< External Low Speed oscillator Ready */ +#define RCC_BDCR_LSEBYP_Pos (2U) +#define RCC_BDCR_LSEBYP_Msk (0x1UL << RCC_BDCR_LSEBYP_Pos) /*!< 0x00000004 */ +#define RCC_BDCR_LSEBYP RCC_BDCR_LSEBYP_Msk /*!< External Low Speed oscillator Bypass */ + +#define RCC_BDCR_RTCSEL_Pos (8U) +#define RCC_BDCR_RTCSEL_Msk (0x3UL << RCC_BDCR_RTCSEL_Pos) /*!< 0x00000300 */ +#define RCC_BDCR_RTCSEL RCC_BDCR_RTCSEL_Msk /*!< RTCSEL[1:0] bits (RTC clock source selection) */ +#define RCC_BDCR_RTCSEL_0 (0x1UL << RCC_BDCR_RTCSEL_Pos) /*!< 0x00000100 */ +#define RCC_BDCR_RTCSEL_1 (0x2UL << RCC_BDCR_RTCSEL_Pos) /*!< 0x00000200 */ + +/*!< RTC congiguration */ +#define RCC_BDCR_RTCSEL_NOCLOCK 0x00000000U /*!< No clock */ +#define RCC_BDCR_RTCSEL_LSE 0x00000100U /*!< LSE oscillator clock used as RTC clock */ +#define RCC_BDCR_RTCSEL_LSI 0x00000200U /*!< LSI oscillator clock used as RTC clock */ +#define RCC_BDCR_RTCSEL_HSE 0x00000300U /*!< HSE oscillator clock divided by 128 used as RTC clock */ + +#define RCC_BDCR_RTCEN_Pos (15U) +#define RCC_BDCR_RTCEN_Msk (0x1UL << RCC_BDCR_RTCEN_Pos) /*!< 0x00008000 */ +#define RCC_BDCR_RTCEN RCC_BDCR_RTCEN_Msk /*!< RTC clock enable */ +#define RCC_BDCR_BDRST_Pos (16U) +#define RCC_BDCR_BDRST_Msk (0x1UL << RCC_BDCR_BDRST_Pos) /*!< 0x00010000 */ +#define RCC_BDCR_BDRST RCC_BDCR_BDRST_Msk /*!< Backup domain software reset */ + +/******************* Bit definition for RCC_CSR register ********************/ +#define RCC_CSR_LSION_Pos (0U) +#define RCC_CSR_LSION_Msk (0x1UL << RCC_CSR_LSION_Pos) /*!< 0x00000001 */ +#define RCC_CSR_LSION RCC_CSR_LSION_Msk /*!< Internal Low Speed oscillator enable */ +#define RCC_CSR_LSIRDY_Pos (1U) +#define RCC_CSR_LSIRDY_Msk (0x1UL << RCC_CSR_LSIRDY_Pos) /*!< 0x00000002 */ +#define RCC_CSR_LSIRDY RCC_CSR_LSIRDY_Msk /*!< Internal Low Speed oscillator Ready */ +#define RCC_CSR_RMVF_Pos (24U) +#define RCC_CSR_RMVF_Msk (0x1UL << RCC_CSR_RMVF_Pos) /*!< 0x01000000 */ +#define RCC_CSR_RMVF RCC_CSR_RMVF_Msk /*!< Remove reset flag */ +#define RCC_CSR_PINRSTF_Pos (26U) +#define RCC_CSR_PINRSTF_Msk (0x1UL << RCC_CSR_PINRSTF_Pos) /*!< 0x04000000 */ +#define RCC_CSR_PINRSTF RCC_CSR_PINRSTF_Msk /*!< PIN reset flag */ +#define RCC_CSR_PORRSTF_Pos (27U) +#define RCC_CSR_PORRSTF_Msk (0x1UL << RCC_CSR_PORRSTF_Pos) /*!< 0x08000000 */ +#define RCC_CSR_PORRSTF RCC_CSR_PORRSTF_Msk /*!< POR/PDR reset flag */ +#define RCC_CSR_SFTRSTF_Pos (28U) +#define RCC_CSR_SFTRSTF_Msk (0x1UL << RCC_CSR_SFTRSTF_Pos) /*!< 0x10000000 */ +#define RCC_CSR_SFTRSTF RCC_CSR_SFTRSTF_Msk /*!< Software Reset flag */ +#define RCC_CSR_IWDGRSTF_Pos (29U) +#define RCC_CSR_IWDGRSTF_Msk (0x1UL << RCC_CSR_IWDGRSTF_Pos) /*!< 0x20000000 */ +#define RCC_CSR_IWDGRSTF RCC_CSR_IWDGRSTF_Msk /*!< Independent Watchdog reset flag */ +#define RCC_CSR_WWDGRSTF_Pos (30U) +#define RCC_CSR_WWDGRSTF_Msk (0x1UL << RCC_CSR_WWDGRSTF_Pos) /*!< 0x40000000 */ +#define RCC_CSR_WWDGRSTF RCC_CSR_WWDGRSTF_Msk /*!< Window watchdog reset flag */ +#define RCC_CSR_LPWRRSTF_Pos (31U) +#define RCC_CSR_LPWRRSTF_Msk (0x1UL << RCC_CSR_LPWRRSTF_Pos) /*!< 0x80000000 */ +#define RCC_CSR_LPWRRSTF RCC_CSR_LPWRRSTF_Msk /*!< Low-Power reset flag */ + + + +/******************************************************************************/ +/* */ +/* General Purpose and Alternate Function I/O */ +/* */ +/******************************************************************************/ + +/******************* Bit definition for GPIO_CRL register *******************/ +#define GPIO_CRL_MODE_Pos (0U) +#define GPIO_CRL_MODE_Msk (0x33333333UL << GPIO_CRL_MODE_Pos) /*!< 0x33333333 */ +#define GPIO_CRL_MODE GPIO_CRL_MODE_Msk /*!< Port x mode bits */ + +#define GPIO_CRL_MODE0_Pos (0U) +#define GPIO_CRL_MODE0_Msk (0x3UL << GPIO_CRL_MODE0_Pos) /*!< 0x00000003 */ +#define GPIO_CRL_MODE0 GPIO_CRL_MODE0_Msk /*!< MODE0[1:0] bits (Port x mode bits, pin 0) */ +#define GPIO_CRL_MODE0_0 (0x1UL << GPIO_CRL_MODE0_Pos) /*!< 0x00000001 */ +#define GPIO_CRL_MODE0_1 (0x2UL << GPIO_CRL_MODE0_Pos) /*!< 0x00000002 */ + +#define GPIO_CRL_MODE1_Pos (4U) +#define GPIO_CRL_MODE1_Msk (0x3UL << GPIO_CRL_MODE1_Pos) /*!< 0x00000030 */ +#define GPIO_CRL_MODE1 GPIO_CRL_MODE1_Msk /*!< MODE1[1:0] bits (Port x mode bits, pin 1) */ +#define GPIO_CRL_MODE1_0 (0x1UL << GPIO_CRL_MODE1_Pos) /*!< 0x00000010 */ +#define GPIO_CRL_MODE1_1 (0x2UL << GPIO_CRL_MODE1_Pos) /*!< 0x00000020 */ + +#define GPIO_CRL_MODE2_Pos (8U) +#define GPIO_CRL_MODE2_Msk (0x3UL << GPIO_CRL_MODE2_Pos) /*!< 0x00000300 */ +#define GPIO_CRL_MODE2 GPIO_CRL_MODE2_Msk /*!< MODE2[1:0] bits (Port x mode bits, pin 2) */ +#define GPIO_CRL_MODE2_0 (0x1UL << GPIO_CRL_MODE2_Pos) /*!< 0x00000100 */ +#define GPIO_CRL_MODE2_1 (0x2UL << GPIO_CRL_MODE2_Pos) /*!< 0x00000200 */ + +#define GPIO_CRL_MODE3_Pos (12U) +#define GPIO_CRL_MODE3_Msk (0x3UL << GPIO_CRL_MODE3_Pos) /*!< 0x00003000 */ +#define GPIO_CRL_MODE3 GPIO_CRL_MODE3_Msk /*!< MODE3[1:0] bits (Port x mode bits, pin 3) */ +#define GPIO_CRL_MODE3_0 (0x1UL << GPIO_CRL_MODE3_Pos) /*!< 0x00001000 */ +#define GPIO_CRL_MODE3_1 (0x2UL << GPIO_CRL_MODE3_Pos) /*!< 0x00002000 */ + +#define GPIO_CRL_MODE4_Pos (16U) +#define GPIO_CRL_MODE4_Msk (0x3UL << GPIO_CRL_MODE4_Pos) /*!< 0x00030000 */ +#define GPIO_CRL_MODE4 GPIO_CRL_MODE4_Msk /*!< MODE4[1:0] bits (Port x mode bits, pin 4) */ +#define GPIO_CRL_MODE4_0 (0x1UL << GPIO_CRL_MODE4_Pos) /*!< 0x00010000 */ +#define GPIO_CRL_MODE4_1 (0x2UL << GPIO_CRL_MODE4_Pos) /*!< 0x00020000 */ + +#define GPIO_CRL_MODE5_Pos (20U) +#define GPIO_CRL_MODE5_Msk (0x3UL << GPIO_CRL_MODE5_Pos) /*!< 0x00300000 */ +#define GPIO_CRL_MODE5 GPIO_CRL_MODE5_Msk /*!< MODE5[1:0] bits (Port x mode bits, pin 5) */ +#define GPIO_CRL_MODE5_0 (0x1UL << GPIO_CRL_MODE5_Pos) /*!< 0x00100000 */ +#define GPIO_CRL_MODE5_1 (0x2UL << GPIO_CRL_MODE5_Pos) /*!< 0x00200000 */ + +#define GPIO_CRL_MODE6_Pos (24U) +#define GPIO_CRL_MODE6_Msk (0x3UL << GPIO_CRL_MODE6_Pos) /*!< 0x03000000 */ +#define GPIO_CRL_MODE6 GPIO_CRL_MODE6_Msk /*!< MODE6[1:0] bits (Port x mode bits, pin 6) */ +#define GPIO_CRL_MODE6_0 (0x1UL << GPIO_CRL_MODE6_Pos) /*!< 0x01000000 */ +#define GPIO_CRL_MODE6_1 (0x2UL << GPIO_CRL_MODE6_Pos) /*!< 0x02000000 */ + +#define GPIO_CRL_MODE7_Pos (28U) +#define GPIO_CRL_MODE7_Msk (0x3UL << GPIO_CRL_MODE7_Pos) /*!< 0x30000000 */ +#define GPIO_CRL_MODE7 GPIO_CRL_MODE7_Msk /*!< MODE7[1:0] bits (Port x mode bits, pin 7) */ +#define GPIO_CRL_MODE7_0 (0x1UL << GPIO_CRL_MODE7_Pos) /*!< 0x10000000 */ +#define GPIO_CRL_MODE7_1 (0x2UL << GPIO_CRL_MODE7_Pos) /*!< 0x20000000 */ + +#define GPIO_CRL_CNF_Pos (2U) +#define GPIO_CRL_CNF_Msk (0x33333333UL << GPIO_CRL_CNF_Pos) /*!< 0xCCCCCCCC */ +#define GPIO_CRL_CNF GPIO_CRL_CNF_Msk /*!< Port x configuration bits */ + +#define GPIO_CRL_CNF0_Pos (2U) +#define GPIO_CRL_CNF0_Msk (0x3UL << GPIO_CRL_CNF0_Pos) /*!< 0x0000000C */ +#define GPIO_CRL_CNF0 GPIO_CRL_CNF0_Msk /*!< CNF0[1:0] bits (Port x configuration bits, pin 0) */ +#define GPIO_CRL_CNF0_0 (0x1UL << GPIO_CRL_CNF0_Pos) /*!< 0x00000004 */ +#define GPIO_CRL_CNF0_1 (0x2UL << GPIO_CRL_CNF0_Pos) /*!< 0x00000008 */ + +#define GPIO_CRL_CNF1_Pos (6U) +#define GPIO_CRL_CNF1_Msk (0x3UL << GPIO_CRL_CNF1_Pos) /*!< 0x000000C0 */ +#define GPIO_CRL_CNF1 GPIO_CRL_CNF1_Msk /*!< CNF1[1:0] bits (Port x configuration bits, pin 1) */ +#define GPIO_CRL_CNF1_0 (0x1UL << GPIO_CRL_CNF1_Pos) /*!< 0x00000040 */ +#define GPIO_CRL_CNF1_1 (0x2UL << GPIO_CRL_CNF1_Pos) /*!< 0x00000080 */ + +#define GPIO_CRL_CNF2_Pos (10U) +#define GPIO_CRL_CNF2_Msk (0x3UL << GPIO_CRL_CNF2_Pos) /*!< 0x00000C00 */ +#define GPIO_CRL_CNF2 GPIO_CRL_CNF2_Msk /*!< CNF2[1:0] bits (Port x configuration bits, pin 2) */ +#define GPIO_CRL_CNF2_0 (0x1UL << GPIO_CRL_CNF2_Pos) /*!< 0x00000400 */ +#define GPIO_CRL_CNF2_1 (0x2UL << GPIO_CRL_CNF2_Pos) /*!< 0x00000800 */ + +#define GPIO_CRL_CNF3_Pos (14U) +#define GPIO_CRL_CNF3_Msk (0x3UL << GPIO_CRL_CNF3_Pos) /*!< 0x0000C000 */ +#define GPIO_CRL_CNF3 GPIO_CRL_CNF3_Msk /*!< CNF3[1:0] bits (Port x configuration bits, pin 3) */ +#define GPIO_CRL_CNF3_0 (0x1UL << GPIO_CRL_CNF3_Pos) /*!< 0x00004000 */ +#define GPIO_CRL_CNF3_1 (0x2UL << GPIO_CRL_CNF3_Pos) /*!< 0x00008000 */ + +#define GPIO_CRL_CNF4_Pos (18U) +#define GPIO_CRL_CNF4_Msk (0x3UL << GPIO_CRL_CNF4_Pos) /*!< 0x000C0000 */ +#define GPIO_CRL_CNF4 GPIO_CRL_CNF4_Msk /*!< CNF4[1:0] bits (Port x configuration bits, pin 4) */ +#define GPIO_CRL_CNF4_0 (0x1UL << GPIO_CRL_CNF4_Pos) /*!< 0x00040000 */ +#define GPIO_CRL_CNF4_1 (0x2UL << GPIO_CRL_CNF4_Pos) /*!< 0x00080000 */ + +#define GPIO_CRL_CNF5_Pos (22U) +#define GPIO_CRL_CNF5_Msk (0x3UL << GPIO_CRL_CNF5_Pos) /*!< 0x00C00000 */ +#define GPIO_CRL_CNF5 GPIO_CRL_CNF5_Msk /*!< CNF5[1:0] bits (Port x configuration bits, pin 5) */ +#define GPIO_CRL_CNF5_0 (0x1UL << GPIO_CRL_CNF5_Pos) /*!< 0x00400000 */ +#define GPIO_CRL_CNF5_1 (0x2UL << GPIO_CRL_CNF5_Pos) /*!< 0x00800000 */ + +#define GPIO_CRL_CNF6_Pos (26U) +#define GPIO_CRL_CNF6_Msk (0x3UL << GPIO_CRL_CNF6_Pos) /*!< 0x0C000000 */ +#define GPIO_CRL_CNF6 GPIO_CRL_CNF6_Msk /*!< CNF6[1:0] bits (Port x configuration bits, pin 6) */ +#define GPIO_CRL_CNF6_0 (0x1UL << GPIO_CRL_CNF6_Pos) /*!< 0x04000000 */ +#define GPIO_CRL_CNF6_1 (0x2UL << GPIO_CRL_CNF6_Pos) /*!< 0x08000000 */ + +#define GPIO_CRL_CNF7_Pos (30U) +#define GPIO_CRL_CNF7_Msk (0x3UL << GPIO_CRL_CNF7_Pos) /*!< 0xC0000000 */ +#define GPIO_CRL_CNF7 GPIO_CRL_CNF7_Msk /*!< CNF7[1:0] bits (Port x configuration bits, pin 7) */ +#define GPIO_CRL_CNF7_0 (0x1UL << GPIO_CRL_CNF7_Pos) /*!< 0x40000000 */ +#define GPIO_CRL_CNF7_1 (0x2UL << GPIO_CRL_CNF7_Pos) /*!< 0x80000000 */ + +/******************* Bit definition for GPIO_CRH register *******************/ +#define GPIO_CRH_MODE_Pos (0U) +#define GPIO_CRH_MODE_Msk (0x33333333UL << GPIO_CRH_MODE_Pos) /*!< 0x33333333 */ +#define GPIO_CRH_MODE GPIO_CRH_MODE_Msk /*!< Port x mode bits */ + +#define GPIO_CRH_MODE8_Pos (0U) +#define GPIO_CRH_MODE8_Msk (0x3UL << GPIO_CRH_MODE8_Pos) /*!< 0x00000003 */ +#define GPIO_CRH_MODE8 GPIO_CRH_MODE8_Msk /*!< MODE8[1:0] bits (Port x mode bits, pin 8) */ +#define GPIO_CRH_MODE8_0 (0x1UL << GPIO_CRH_MODE8_Pos) /*!< 0x00000001 */ +#define GPIO_CRH_MODE8_1 (0x2UL << GPIO_CRH_MODE8_Pos) /*!< 0x00000002 */ + +#define GPIO_CRH_MODE9_Pos (4U) +#define GPIO_CRH_MODE9_Msk (0x3UL << GPIO_CRH_MODE9_Pos) /*!< 0x00000030 */ +#define GPIO_CRH_MODE9 GPIO_CRH_MODE9_Msk /*!< MODE9[1:0] bits (Port x mode bits, pin 9) */ +#define GPIO_CRH_MODE9_0 (0x1UL << GPIO_CRH_MODE9_Pos) /*!< 0x00000010 */ +#define GPIO_CRH_MODE9_1 (0x2UL << GPIO_CRH_MODE9_Pos) /*!< 0x00000020 */ + +#define GPIO_CRH_MODE10_Pos (8U) +#define GPIO_CRH_MODE10_Msk (0x3UL << GPIO_CRH_MODE10_Pos) /*!< 0x00000300 */ +#define GPIO_CRH_MODE10 GPIO_CRH_MODE10_Msk /*!< MODE10[1:0] bits (Port x mode bits, pin 10) */ +#define GPIO_CRH_MODE10_0 (0x1UL << GPIO_CRH_MODE10_Pos) /*!< 0x00000100 */ +#define GPIO_CRH_MODE10_1 (0x2UL << GPIO_CRH_MODE10_Pos) /*!< 0x00000200 */ + +#define GPIO_CRH_MODE11_Pos (12U) +#define GPIO_CRH_MODE11_Msk (0x3UL << GPIO_CRH_MODE11_Pos) /*!< 0x00003000 */ +#define GPIO_CRH_MODE11 GPIO_CRH_MODE11_Msk /*!< MODE11[1:0] bits (Port x mode bits, pin 11) */ +#define GPIO_CRH_MODE11_0 (0x1UL << GPIO_CRH_MODE11_Pos) /*!< 0x00001000 */ +#define GPIO_CRH_MODE11_1 (0x2UL << GPIO_CRH_MODE11_Pos) /*!< 0x00002000 */ + +#define GPIO_CRH_MODE12_Pos (16U) +#define GPIO_CRH_MODE12_Msk (0x3UL << GPIO_CRH_MODE12_Pos) /*!< 0x00030000 */ +#define GPIO_CRH_MODE12 GPIO_CRH_MODE12_Msk /*!< MODE12[1:0] bits (Port x mode bits, pin 12) */ +#define GPIO_CRH_MODE12_0 (0x1UL << GPIO_CRH_MODE12_Pos) /*!< 0x00010000 */ +#define GPIO_CRH_MODE12_1 (0x2UL << GPIO_CRH_MODE12_Pos) /*!< 0x00020000 */ + +#define GPIO_CRH_MODE13_Pos (20U) +#define GPIO_CRH_MODE13_Msk (0x3UL << GPIO_CRH_MODE13_Pos) /*!< 0x00300000 */ +#define GPIO_CRH_MODE13 GPIO_CRH_MODE13_Msk /*!< MODE13[1:0] bits (Port x mode bits, pin 13) */ +#define GPIO_CRH_MODE13_0 (0x1UL << GPIO_CRH_MODE13_Pos) /*!< 0x00100000 */ +#define GPIO_CRH_MODE13_1 (0x2UL << GPIO_CRH_MODE13_Pos) /*!< 0x00200000 */ + +#define GPIO_CRH_MODE14_Pos (24U) +#define GPIO_CRH_MODE14_Msk (0x3UL << GPIO_CRH_MODE14_Pos) /*!< 0x03000000 */ +#define GPIO_CRH_MODE14 GPIO_CRH_MODE14_Msk /*!< MODE14[1:0] bits (Port x mode bits, pin 14) */ +#define GPIO_CRH_MODE14_0 (0x1UL << GPIO_CRH_MODE14_Pos) /*!< 0x01000000 */ +#define GPIO_CRH_MODE14_1 (0x2UL << GPIO_CRH_MODE14_Pos) /*!< 0x02000000 */ + +#define GPIO_CRH_MODE15_Pos (28U) +#define GPIO_CRH_MODE15_Msk (0x3UL << GPIO_CRH_MODE15_Pos) /*!< 0x30000000 */ +#define GPIO_CRH_MODE15 GPIO_CRH_MODE15_Msk /*!< MODE15[1:0] bits (Port x mode bits, pin 15) */ +#define GPIO_CRH_MODE15_0 (0x1UL << GPIO_CRH_MODE15_Pos) /*!< 0x10000000 */ +#define GPIO_CRH_MODE15_1 (0x2UL << GPIO_CRH_MODE15_Pos) /*!< 0x20000000 */ + +#define GPIO_CRH_CNF_Pos (2U) +#define GPIO_CRH_CNF_Msk (0x33333333UL << GPIO_CRH_CNF_Pos) /*!< 0xCCCCCCCC */ +#define GPIO_CRH_CNF GPIO_CRH_CNF_Msk /*!< Port x configuration bits */ + +#define GPIO_CRH_CNF8_Pos (2U) +#define GPIO_CRH_CNF8_Msk (0x3UL << GPIO_CRH_CNF8_Pos) /*!< 0x0000000C */ +#define GPIO_CRH_CNF8 GPIO_CRH_CNF8_Msk /*!< CNF8[1:0] bits (Port x configuration bits, pin 8) */ +#define GPIO_CRH_CNF8_0 (0x1UL << GPIO_CRH_CNF8_Pos) /*!< 0x00000004 */ +#define GPIO_CRH_CNF8_1 (0x2UL << GPIO_CRH_CNF8_Pos) /*!< 0x00000008 */ + +#define GPIO_CRH_CNF9_Pos (6U) +#define GPIO_CRH_CNF9_Msk (0x3UL << GPIO_CRH_CNF9_Pos) /*!< 0x000000C0 */ +#define GPIO_CRH_CNF9 GPIO_CRH_CNF9_Msk /*!< CNF9[1:0] bits (Port x configuration bits, pin 9) */ +#define GPIO_CRH_CNF9_0 (0x1UL << GPIO_CRH_CNF9_Pos) /*!< 0x00000040 */ +#define GPIO_CRH_CNF9_1 (0x2UL << GPIO_CRH_CNF9_Pos) /*!< 0x00000080 */ + +#define GPIO_CRH_CNF10_Pos (10U) +#define GPIO_CRH_CNF10_Msk (0x3UL << GPIO_CRH_CNF10_Pos) /*!< 0x00000C00 */ +#define GPIO_CRH_CNF10 GPIO_CRH_CNF10_Msk /*!< CNF10[1:0] bits (Port x configuration bits, pin 10) */ +#define GPIO_CRH_CNF10_0 (0x1UL << GPIO_CRH_CNF10_Pos) /*!< 0x00000400 */ +#define GPIO_CRH_CNF10_1 (0x2UL << GPIO_CRH_CNF10_Pos) /*!< 0x00000800 */ + +#define GPIO_CRH_CNF11_Pos (14U) +#define GPIO_CRH_CNF11_Msk (0x3UL << GPIO_CRH_CNF11_Pos) /*!< 0x0000C000 */ +#define GPIO_CRH_CNF11 GPIO_CRH_CNF11_Msk /*!< CNF11[1:0] bits (Port x configuration bits, pin 11) */ +#define GPIO_CRH_CNF11_0 (0x1UL << GPIO_CRH_CNF11_Pos) /*!< 0x00004000 */ +#define GPIO_CRH_CNF11_1 (0x2UL << GPIO_CRH_CNF11_Pos) /*!< 0x00008000 */ + +#define GPIO_CRH_CNF12_Pos (18U) +#define GPIO_CRH_CNF12_Msk (0x3UL << GPIO_CRH_CNF12_Pos) /*!< 0x000C0000 */ +#define GPIO_CRH_CNF12 GPIO_CRH_CNF12_Msk /*!< CNF12[1:0] bits (Port x configuration bits, pin 12) */ +#define GPIO_CRH_CNF12_0 (0x1UL << GPIO_CRH_CNF12_Pos) /*!< 0x00040000 */ +#define GPIO_CRH_CNF12_1 (0x2UL << GPIO_CRH_CNF12_Pos) /*!< 0x00080000 */ + +#define GPIO_CRH_CNF13_Pos (22U) +#define GPIO_CRH_CNF13_Msk (0x3UL << GPIO_CRH_CNF13_Pos) /*!< 0x00C00000 */ +#define GPIO_CRH_CNF13 GPIO_CRH_CNF13_Msk /*!< CNF13[1:0] bits (Port x configuration bits, pin 13) */ +#define GPIO_CRH_CNF13_0 (0x1UL << GPIO_CRH_CNF13_Pos) /*!< 0x00400000 */ +#define GPIO_CRH_CNF13_1 (0x2UL << GPIO_CRH_CNF13_Pos) /*!< 0x00800000 */ + +#define GPIO_CRH_CNF14_Pos (26U) +#define GPIO_CRH_CNF14_Msk (0x3UL << GPIO_CRH_CNF14_Pos) /*!< 0x0C000000 */ +#define GPIO_CRH_CNF14 GPIO_CRH_CNF14_Msk /*!< CNF14[1:0] bits (Port x configuration bits, pin 14) */ +#define GPIO_CRH_CNF14_0 (0x1UL << GPIO_CRH_CNF14_Pos) /*!< 0x04000000 */ +#define GPIO_CRH_CNF14_1 (0x2UL << GPIO_CRH_CNF14_Pos) /*!< 0x08000000 */ + +#define GPIO_CRH_CNF15_Pos (30U) +#define GPIO_CRH_CNF15_Msk (0x3UL << GPIO_CRH_CNF15_Pos) /*!< 0xC0000000 */ +#define GPIO_CRH_CNF15 GPIO_CRH_CNF15_Msk /*!< CNF15[1:0] bits (Port x configuration bits, pin 15) */ +#define GPIO_CRH_CNF15_0 (0x1UL << GPIO_CRH_CNF15_Pos) /*!< 0x40000000 */ +#define GPIO_CRH_CNF15_1 (0x2UL << GPIO_CRH_CNF15_Pos) /*!< 0x80000000 */ + +/*!<****************** Bit definition for GPIO_IDR register *******************/ +#define GPIO_IDR_IDR0_Pos (0U) +#define GPIO_IDR_IDR0_Msk (0x1UL << GPIO_IDR_IDR0_Pos) /*!< 0x00000001 */ +#define GPIO_IDR_IDR0 GPIO_IDR_IDR0_Msk /*!< Port input data, bit 0 */ +#define GPIO_IDR_IDR1_Pos (1U) +#define GPIO_IDR_IDR1_Msk (0x1UL << GPIO_IDR_IDR1_Pos) /*!< 0x00000002 */ +#define GPIO_IDR_IDR1 GPIO_IDR_IDR1_Msk /*!< Port input data, bit 1 */ +#define GPIO_IDR_IDR2_Pos (2U) +#define GPIO_IDR_IDR2_Msk (0x1UL << GPIO_IDR_IDR2_Pos) /*!< 0x00000004 */ +#define GPIO_IDR_IDR2 GPIO_IDR_IDR2_Msk /*!< Port input data, bit 2 */ +#define GPIO_IDR_IDR3_Pos (3U) +#define GPIO_IDR_IDR3_Msk (0x1UL << GPIO_IDR_IDR3_Pos) /*!< 0x00000008 */ +#define GPIO_IDR_IDR3 GPIO_IDR_IDR3_Msk /*!< Port input data, bit 3 */ +#define GPIO_IDR_IDR4_Pos (4U) +#define GPIO_IDR_IDR4_Msk (0x1UL << GPIO_IDR_IDR4_Pos) /*!< 0x00000010 */ +#define GPIO_IDR_IDR4 GPIO_IDR_IDR4_Msk /*!< Port input data, bit 4 */ +#define GPIO_IDR_IDR5_Pos (5U) +#define GPIO_IDR_IDR5_Msk (0x1UL << GPIO_IDR_IDR5_Pos) /*!< 0x00000020 */ +#define GPIO_IDR_IDR5 GPIO_IDR_IDR5_Msk /*!< Port input data, bit 5 */ +#define GPIO_IDR_IDR6_Pos (6U) +#define GPIO_IDR_IDR6_Msk (0x1UL << GPIO_IDR_IDR6_Pos) /*!< 0x00000040 */ +#define GPIO_IDR_IDR6 GPIO_IDR_IDR6_Msk /*!< Port input data, bit 6 */ +#define GPIO_IDR_IDR7_Pos (7U) +#define GPIO_IDR_IDR7_Msk (0x1UL << GPIO_IDR_IDR7_Pos) /*!< 0x00000080 */ +#define GPIO_IDR_IDR7 GPIO_IDR_IDR7_Msk /*!< Port input data, bit 7 */ +#define GPIO_IDR_IDR8_Pos (8U) +#define GPIO_IDR_IDR8_Msk (0x1UL << GPIO_IDR_IDR8_Pos) /*!< 0x00000100 */ +#define GPIO_IDR_IDR8 GPIO_IDR_IDR8_Msk /*!< Port input data, bit 8 */ +#define GPIO_IDR_IDR9_Pos (9U) +#define GPIO_IDR_IDR9_Msk (0x1UL << GPIO_IDR_IDR9_Pos) /*!< 0x00000200 */ +#define GPIO_IDR_IDR9 GPIO_IDR_IDR9_Msk /*!< Port input data, bit 9 */ +#define GPIO_IDR_IDR10_Pos (10U) +#define GPIO_IDR_IDR10_Msk (0x1UL << GPIO_IDR_IDR10_Pos) /*!< 0x00000400 */ +#define GPIO_IDR_IDR10 GPIO_IDR_IDR10_Msk /*!< Port input data, bit 10 */ +#define GPIO_IDR_IDR11_Pos (11U) +#define GPIO_IDR_IDR11_Msk (0x1UL << GPIO_IDR_IDR11_Pos) /*!< 0x00000800 */ +#define GPIO_IDR_IDR11 GPIO_IDR_IDR11_Msk /*!< Port input data, bit 11 */ +#define GPIO_IDR_IDR12_Pos (12U) +#define GPIO_IDR_IDR12_Msk (0x1UL << GPIO_IDR_IDR12_Pos) /*!< 0x00001000 */ +#define GPIO_IDR_IDR12 GPIO_IDR_IDR12_Msk /*!< Port input data, bit 12 */ +#define GPIO_IDR_IDR13_Pos (13U) +#define GPIO_IDR_IDR13_Msk (0x1UL << GPIO_IDR_IDR13_Pos) /*!< 0x00002000 */ +#define GPIO_IDR_IDR13 GPIO_IDR_IDR13_Msk /*!< Port input data, bit 13 */ +#define GPIO_IDR_IDR14_Pos (14U) +#define GPIO_IDR_IDR14_Msk (0x1UL << GPIO_IDR_IDR14_Pos) /*!< 0x00004000 */ +#define GPIO_IDR_IDR14 GPIO_IDR_IDR14_Msk /*!< Port input data, bit 14 */ +#define GPIO_IDR_IDR15_Pos (15U) +#define GPIO_IDR_IDR15_Msk (0x1UL << GPIO_IDR_IDR15_Pos) /*!< 0x00008000 */ +#define GPIO_IDR_IDR15 GPIO_IDR_IDR15_Msk /*!< Port input data, bit 15 */ + +/******************* Bit definition for GPIO_ODR register *******************/ +#define GPIO_ODR_ODR0_Pos (0U) +#define GPIO_ODR_ODR0_Msk (0x1UL << GPIO_ODR_ODR0_Pos) /*!< 0x00000001 */ +#define GPIO_ODR_ODR0 GPIO_ODR_ODR0_Msk /*!< Port output data, bit 0 */ +#define GPIO_ODR_ODR1_Pos (1U) +#define GPIO_ODR_ODR1_Msk (0x1UL << GPIO_ODR_ODR1_Pos) /*!< 0x00000002 */ +#define GPIO_ODR_ODR1 GPIO_ODR_ODR1_Msk /*!< Port output data, bit 1 */ +#define GPIO_ODR_ODR2_Pos (2U) +#define GPIO_ODR_ODR2_Msk (0x1UL << GPIO_ODR_ODR2_Pos) /*!< 0x00000004 */ +#define GPIO_ODR_ODR2 GPIO_ODR_ODR2_Msk /*!< Port output data, bit 2 */ +#define GPIO_ODR_ODR3_Pos (3U) +#define GPIO_ODR_ODR3_Msk (0x1UL << GPIO_ODR_ODR3_Pos) /*!< 0x00000008 */ +#define GPIO_ODR_ODR3 GPIO_ODR_ODR3_Msk /*!< Port output data, bit 3 */ +#define GPIO_ODR_ODR4_Pos (4U) +#define GPIO_ODR_ODR4_Msk (0x1UL << GPIO_ODR_ODR4_Pos) /*!< 0x00000010 */ +#define GPIO_ODR_ODR4 GPIO_ODR_ODR4_Msk /*!< Port output data, bit 4 */ +#define GPIO_ODR_ODR5_Pos (5U) +#define GPIO_ODR_ODR5_Msk (0x1UL << GPIO_ODR_ODR5_Pos) /*!< 0x00000020 */ +#define GPIO_ODR_ODR5 GPIO_ODR_ODR5_Msk /*!< Port output data, bit 5 */ +#define GPIO_ODR_ODR6_Pos (6U) +#define GPIO_ODR_ODR6_Msk (0x1UL << GPIO_ODR_ODR6_Pos) /*!< 0x00000040 */ +#define GPIO_ODR_ODR6 GPIO_ODR_ODR6_Msk /*!< Port output data, bit 6 */ +#define GPIO_ODR_ODR7_Pos (7U) +#define GPIO_ODR_ODR7_Msk (0x1UL << GPIO_ODR_ODR7_Pos) /*!< 0x00000080 */ +#define GPIO_ODR_ODR7 GPIO_ODR_ODR7_Msk /*!< Port output data, bit 7 */ +#define GPIO_ODR_ODR8_Pos (8U) +#define GPIO_ODR_ODR8_Msk (0x1UL << GPIO_ODR_ODR8_Pos) /*!< 0x00000100 */ +#define GPIO_ODR_ODR8 GPIO_ODR_ODR8_Msk /*!< Port output data, bit 8 */ +#define GPIO_ODR_ODR9_Pos (9U) +#define GPIO_ODR_ODR9_Msk (0x1UL << GPIO_ODR_ODR9_Pos) /*!< 0x00000200 */ +#define GPIO_ODR_ODR9 GPIO_ODR_ODR9_Msk /*!< Port output data, bit 9 */ +#define GPIO_ODR_ODR10_Pos (10U) +#define GPIO_ODR_ODR10_Msk (0x1UL << GPIO_ODR_ODR10_Pos) /*!< 0x00000400 */ +#define GPIO_ODR_ODR10 GPIO_ODR_ODR10_Msk /*!< Port output data, bit 10 */ +#define GPIO_ODR_ODR11_Pos (11U) +#define GPIO_ODR_ODR11_Msk (0x1UL << GPIO_ODR_ODR11_Pos) /*!< 0x00000800 */ +#define GPIO_ODR_ODR11 GPIO_ODR_ODR11_Msk /*!< Port output data, bit 11 */ +#define GPIO_ODR_ODR12_Pos (12U) +#define GPIO_ODR_ODR12_Msk (0x1UL << GPIO_ODR_ODR12_Pos) /*!< 0x00001000 */ +#define GPIO_ODR_ODR12 GPIO_ODR_ODR12_Msk /*!< Port output data, bit 12 */ +#define GPIO_ODR_ODR13_Pos (13U) +#define GPIO_ODR_ODR13_Msk (0x1UL << GPIO_ODR_ODR13_Pos) /*!< 0x00002000 */ +#define GPIO_ODR_ODR13 GPIO_ODR_ODR13_Msk /*!< Port output data, bit 13 */ +#define GPIO_ODR_ODR14_Pos (14U) +#define GPIO_ODR_ODR14_Msk (0x1UL << GPIO_ODR_ODR14_Pos) /*!< 0x00004000 */ +#define GPIO_ODR_ODR14 GPIO_ODR_ODR14_Msk /*!< Port output data, bit 14 */ +#define GPIO_ODR_ODR15_Pos (15U) +#define GPIO_ODR_ODR15_Msk (0x1UL << GPIO_ODR_ODR15_Pos) /*!< 0x00008000 */ +#define GPIO_ODR_ODR15 GPIO_ODR_ODR15_Msk /*!< Port output data, bit 15 */ + +/****************** Bit definition for GPIO_BSRR register *******************/ +#define GPIO_BSRR_BS0_Pos (0U) +#define GPIO_BSRR_BS0_Msk (0x1UL << GPIO_BSRR_BS0_Pos) /*!< 0x00000001 */ +#define GPIO_BSRR_BS0 GPIO_BSRR_BS0_Msk /*!< Port x Set bit 0 */ +#define GPIO_BSRR_BS1_Pos (1U) +#define GPIO_BSRR_BS1_Msk (0x1UL << GPIO_BSRR_BS1_Pos) /*!< 0x00000002 */ +#define GPIO_BSRR_BS1 GPIO_BSRR_BS1_Msk /*!< Port x Set bit 1 */ +#define GPIO_BSRR_BS2_Pos (2U) +#define GPIO_BSRR_BS2_Msk (0x1UL << GPIO_BSRR_BS2_Pos) /*!< 0x00000004 */ +#define GPIO_BSRR_BS2 GPIO_BSRR_BS2_Msk /*!< Port x Set bit 2 */ +#define GPIO_BSRR_BS3_Pos (3U) +#define GPIO_BSRR_BS3_Msk (0x1UL << GPIO_BSRR_BS3_Pos) /*!< 0x00000008 */ +#define GPIO_BSRR_BS3 GPIO_BSRR_BS3_Msk /*!< Port x Set bit 3 */ +#define GPIO_BSRR_BS4_Pos (4U) +#define GPIO_BSRR_BS4_Msk (0x1UL << GPIO_BSRR_BS4_Pos) /*!< 0x00000010 */ +#define GPIO_BSRR_BS4 GPIO_BSRR_BS4_Msk /*!< Port x Set bit 4 */ +#define GPIO_BSRR_BS5_Pos (5U) +#define GPIO_BSRR_BS5_Msk (0x1UL << GPIO_BSRR_BS5_Pos) /*!< 0x00000020 */ +#define GPIO_BSRR_BS5 GPIO_BSRR_BS5_Msk /*!< Port x Set bit 5 */ +#define GPIO_BSRR_BS6_Pos (6U) +#define GPIO_BSRR_BS6_Msk (0x1UL << GPIO_BSRR_BS6_Pos) /*!< 0x00000040 */ +#define GPIO_BSRR_BS6 GPIO_BSRR_BS6_Msk /*!< Port x Set bit 6 */ +#define GPIO_BSRR_BS7_Pos (7U) +#define GPIO_BSRR_BS7_Msk (0x1UL << GPIO_BSRR_BS7_Pos) /*!< 0x00000080 */ +#define GPIO_BSRR_BS7 GPIO_BSRR_BS7_Msk /*!< Port x Set bit 7 */ +#define GPIO_BSRR_BS8_Pos (8U) +#define GPIO_BSRR_BS8_Msk (0x1UL << GPIO_BSRR_BS8_Pos) /*!< 0x00000100 */ +#define GPIO_BSRR_BS8 GPIO_BSRR_BS8_Msk /*!< Port x Set bit 8 */ +#define GPIO_BSRR_BS9_Pos (9U) +#define GPIO_BSRR_BS9_Msk (0x1UL << GPIO_BSRR_BS9_Pos) /*!< 0x00000200 */ +#define GPIO_BSRR_BS9 GPIO_BSRR_BS9_Msk /*!< Port x Set bit 9 */ +#define GPIO_BSRR_BS10_Pos (10U) +#define GPIO_BSRR_BS10_Msk (0x1UL << GPIO_BSRR_BS10_Pos) /*!< 0x00000400 */ +#define GPIO_BSRR_BS10 GPIO_BSRR_BS10_Msk /*!< Port x Set bit 10 */ +#define GPIO_BSRR_BS11_Pos (11U) +#define GPIO_BSRR_BS11_Msk (0x1UL << GPIO_BSRR_BS11_Pos) /*!< 0x00000800 */ +#define GPIO_BSRR_BS11 GPIO_BSRR_BS11_Msk /*!< Port x Set bit 11 */ +#define GPIO_BSRR_BS12_Pos (12U) +#define GPIO_BSRR_BS12_Msk (0x1UL << GPIO_BSRR_BS12_Pos) /*!< 0x00001000 */ +#define GPIO_BSRR_BS12 GPIO_BSRR_BS12_Msk /*!< Port x Set bit 12 */ +#define GPIO_BSRR_BS13_Pos (13U) +#define GPIO_BSRR_BS13_Msk (0x1UL << GPIO_BSRR_BS13_Pos) /*!< 0x00002000 */ +#define GPIO_BSRR_BS13 GPIO_BSRR_BS13_Msk /*!< Port x Set bit 13 */ +#define GPIO_BSRR_BS14_Pos (14U) +#define GPIO_BSRR_BS14_Msk (0x1UL << GPIO_BSRR_BS14_Pos) /*!< 0x00004000 */ +#define GPIO_BSRR_BS14 GPIO_BSRR_BS14_Msk /*!< Port x Set bit 14 */ +#define GPIO_BSRR_BS15_Pos (15U) +#define GPIO_BSRR_BS15_Msk (0x1UL << GPIO_BSRR_BS15_Pos) /*!< 0x00008000 */ +#define GPIO_BSRR_BS15 GPIO_BSRR_BS15_Msk /*!< Port x Set bit 15 */ + +#define GPIO_BSRR_BR0_Pos (16U) +#define GPIO_BSRR_BR0_Msk (0x1UL << GPIO_BSRR_BR0_Pos) /*!< 0x00010000 */ +#define GPIO_BSRR_BR0 GPIO_BSRR_BR0_Msk /*!< Port x Reset bit 0 */ +#define GPIO_BSRR_BR1_Pos (17U) +#define GPIO_BSRR_BR1_Msk (0x1UL << GPIO_BSRR_BR1_Pos) /*!< 0x00020000 */ +#define GPIO_BSRR_BR1 GPIO_BSRR_BR1_Msk /*!< Port x Reset bit 1 */ +#define GPIO_BSRR_BR2_Pos (18U) +#define GPIO_BSRR_BR2_Msk (0x1UL << GPIO_BSRR_BR2_Pos) /*!< 0x00040000 */ +#define GPIO_BSRR_BR2 GPIO_BSRR_BR2_Msk /*!< Port x Reset bit 2 */ +#define GPIO_BSRR_BR3_Pos (19U) +#define GPIO_BSRR_BR3_Msk (0x1UL << GPIO_BSRR_BR3_Pos) /*!< 0x00080000 */ +#define GPIO_BSRR_BR3 GPIO_BSRR_BR3_Msk /*!< Port x Reset bit 3 */ +#define GPIO_BSRR_BR4_Pos (20U) +#define GPIO_BSRR_BR4_Msk (0x1UL << GPIO_BSRR_BR4_Pos) /*!< 0x00100000 */ +#define GPIO_BSRR_BR4 GPIO_BSRR_BR4_Msk /*!< Port x Reset bit 4 */ +#define GPIO_BSRR_BR5_Pos (21U) +#define GPIO_BSRR_BR5_Msk (0x1UL << GPIO_BSRR_BR5_Pos) /*!< 0x00200000 */ +#define GPIO_BSRR_BR5 GPIO_BSRR_BR5_Msk /*!< Port x Reset bit 5 */ +#define GPIO_BSRR_BR6_Pos (22U) +#define GPIO_BSRR_BR6_Msk (0x1UL << GPIO_BSRR_BR6_Pos) /*!< 0x00400000 */ +#define GPIO_BSRR_BR6 GPIO_BSRR_BR6_Msk /*!< Port x Reset bit 6 */ +#define GPIO_BSRR_BR7_Pos (23U) +#define GPIO_BSRR_BR7_Msk (0x1UL << GPIO_BSRR_BR7_Pos) /*!< 0x00800000 */ +#define GPIO_BSRR_BR7 GPIO_BSRR_BR7_Msk /*!< Port x Reset bit 7 */ +#define GPIO_BSRR_BR8_Pos (24U) +#define GPIO_BSRR_BR8_Msk (0x1UL << GPIO_BSRR_BR8_Pos) /*!< 0x01000000 */ +#define GPIO_BSRR_BR8 GPIO_BSRR_BR8_Msk /*!< Port x Reset bit 8 */ +#define GPIO_BSRR_BR9_Pos (25U) +#define GPIO_BSRR_BR9_Msk (0x1UL << GPIO_BSRR_BR9_Pos) /*!< 0x02000000 */ +#define GPIO_BSRR_BR9 GPIO_BSRR_BR9_Msk /*!< Port x Reset bit 9 */ +#define GPIO_BSRR_BR10_Pos (26U) +#define GPIO_BSRR_BR10_Msk (0x1UL << GPIO_BSRR_BR10_Pos) /*!< 0x04000000 */ +#define GPIO_BSRR_BR10 GPIO_BSRR_BR10_Msk /*!< Port x Reset bit 10 */ +#define GPIO_BSRR_BR11_Pos (27U) +#define GPIO_BSRR_BR11_Msk (0x1UL << GPIO_BSRR_BR11_Pos) /*!< 0x08000000 */ +#define GPIO_BSRR_BR11 GPIO_BSRR_BR11_Msk /*!< Port x Reset bit 11 */ +#define GPIO_BSRR_BR12_Pos (28U) +#define GPIO_BSRR_BR12_Msk (0x1UL << GPIO_BSRR_BR12_Pos) /*!< 0x10000000 */ +#define GPIO_BSRR_BR12 GPIO_BSRR_BR12_Msk /*!< Port x Reset bit 12 */ +#define GPIO_BSRR_BR13_Pos (29U) +#define GPIO_BSRR_BR13_Msk (0x1UL << GPIO_BSRR_BR13_Pos) /*!< 0x20000000 */ +#define GPIO_BSRR_BR13 GPIO_BSRR_BR13_Msk /*!< Port x Reset bit 13 */ +#define GPIO_BSRR_BR14_Pos (30U) +#define GPIO_BSRR_BR14_Msk (0x1UL << GPIO_BSRR_BR14_Pos) /*!< 0x40000000 */ +#define GPIO_BSRR_BR14 GPIO_BSRR_BR14_Msk /*!< Port x Reset bit 14 */ +#define GPIO_BSRR_BR15_Pos (31U) +#define GPIO_BSRR_BR15_Msk (0x1UL << GPIO_BSRR_BR15_Pos) /*!< 0x80000000 */ +#define GPIO_BSRR_BR15 GPIO_BSRR_BR15_Msk /*!< Port x Reset bit 15 */ + +/******************* Bit definition for GPIO_BRR register *******************/ +#define GPIO_BRR_BR0_Pos (0U) +#define GPIO_BRR_BR0_Msk (0x1UL << GPIO_BRR_BR0_Pos) /*!< 0x00000001 */ +#define GPIO_BRR_BR0 GPIO_BRR_BR0_Msk /*!< Port x Reset bit 0 */ +#define GPIO_BRR_BR1_Pos (1U) +#define GPIO_BRR_BR1_Msk (0x1UL << GPIO_BRR_BR1_Pos) /*!< 0x00000002 */ +#define GPIO_BRR_BR1 GPIO_BRR_BR1_Msk /*!< Port x Reset bit 1 */ +#define GPIO_BRR_BR2_Pos (2U) +#define GPIO_BRR_BR2_Msk (0x1UL << GPIO_BRR_BR2_Pos) /*!< 0x00000004 */ +#define GPIO_BRR_BR2 GPIO_BRR_BR2_Msk /*!< Port x Reset bit 2 */ +#define GPIO_BRR_BR3_Pos (3U) +#define GPIO_BRR_BR3_Msk (0x1UL << GPIO_BRR_BR3_Pos) /*!< 0x00000008 */ +#define GPIO_BRR_BR3 GPIO_BRR_BR3_Msk /*!< Port x Reset bit 3 */ +#define GPIO_BRR_BR4_Pos (4U) +#define GPIO_BRR_BR4_Msk (0x1UL << GPIO_BRR_BR4_Pos) /*!< 0x00000010 */ +#define GPIO_BRR_BR4 GPIO_BRR_BR4_Msk /*!< Port x Reset bit 4 */ +#define GPIO_BRR_BR5_Pos (5U) +#define GPIO_BRR_BR5_Msk (0x1UL << GPIO_BRR_BR5_Pos) /*!< 0x00000020 */ +#define GPIO_BRR_BR5 GPIO_BRR_BR5_Msk /*!< Port x Reset bit 5 */ +#define GPIO_BRR_BR6_Pos (6U) +#define GPIO_BRR_BR6_Msk (0x1UL << GPIO_BRR_BR6_Pos) /*!< 0x00000040 */ +#define GPIO_BRR_BR6 GPIO_BRR_BR6_Msk /*!< Port x Reset bit 6 */ +#define GPIO_BRR_BR7_Pos (7U) +#define GPIO_BRR_BR7_Msk (0x1UL << GPIO_BRR_BR7_Pos) /*!< 0x00000080 */ +#define GPIO_BRR_BR7 GPIO_BRR_BR7_Msk /*!< Port x Reset bit 7 */ +#define GPIO_BRR_BR8_Pos (8U) +#define GPIO_BRR_BR8_Msk (0x1UL << GPIO_BRR_BR8_Pos) /*!< 0x00000100 */ +#define GPIO_BRR_BR8 GPIO_BRR_BR8_Msk /*!< Port x Reset bit 8 */ +#define GPIO_BRR_BR9_Pos (9U) +#define GPIO_BRR_BR9_Msk (0x1UL << GPIO_BRR_BR9_Pos) /*!< 0x00000200 */ +#define GPIO_BRR_BR9 GPIO_BRR_BR9_Msk /*!< Port x Reset bit 9 */ +#define GPIO_BRR_BR10_Pos (10U) +#define GPIO_BRR_BR10_Msk (0x1UL << GPIO_BRR_BR10_Pos) /*!< 0x00000400 */ +#define GPIO_BRR_BR10 GPIO_BRR_BR10_Msk /*!< Port x Reset bit 10 */ +#define GPIO_BRR_BR11_Pos (11U) +#define GPIO_BRR_BR11_Msk (0x1UL << GPIO_BRR_BR11_Pos) /*!< 0x00000800 */ +#define GPIO_BRR_BR11 GPIO_BRR_BR11_Msk /*!< Port x Reset bit 11 */ +#define GPIO_BRR_BR12_Pos (12U) +#define GPIO_BRR_BR12_Msk (0x1UL << GPIO_BRR_BR12_Pos) /*!< 0x00001000 */ +#define GPIO_BRR_BR12 GPIO_BRR_BR12_Msk /*!< Port x Reset bit 12 */ +#define GPIO_BRR_BR13_Pos (13U) +#define GPIO_BRR_BR13_Msk (0x1UL << GPIO_BRR_BR13_Pos) /*!< 0x00002000 */ +#define GPIO_BRR_BR13 GPIO_BRR_BR13_Msk /*!< Port x Reset bit 13 */ +#define GPIO_BRR_BR14_Pos (14U) +#define GPIO_BRR_BR14_Msk (0x1UL << GPIO_BRR_BR14_Pos) /*!< 0x00004000 */ +#define GPIO_BRR_BR14 GPIO_BRR_BR14_Msk /*!< Port x Reset bit 14 */ +#define GPIO_BRR_BR15_Pos (15U) +#define GPIO_BRR_BR15_Msk (0x1UL << GPIO_BRR_BR15_Pos) /*!< 0x00008000 */ +#define GPIO_BRR_BR15 GPIO_BRR_BR15_Msk /*!< Port x Reset bit 15 */ + +/****************** Bit definition for GPIO_LCKR register *******************/ +#define GPIO_LCKR_LCK0_Pos (0U) +#define GPIO_LCKR_LCK0_Msk (0x1UL << GPIO_LCKR_LCK0_Pos) /*!< 0x00000001 */ +#define GPIO_LCKR_LCK0 GPIO_LCKR_LCK0_Msk /*!< Port x Lock bit 0 */ +#define GPIO_LCKR_LCK1_Pos (1U) +#define GPIO_LCKR_LCK1_Msk (0x1UL << GPIO_LCKR_LCK1_Pos) /*!< 0x00000002 */ +#define GPIO_LCKR_LCK1 GPIO_LCKR_LCK1_Msk /*!< Port x Lock bit 1 */ +#define GPIO_LCKR_LCK2_Pos (2U) +#define GPIO_LCKR_LCK2_Msk (0x1UL << GPIO_LCKR_LCK2_Pos) /*!< 0x00000004 */ +#define GPIO_LCKR_LCK2 GPIO_LCKR_LCK2_Msk /*!< Port x Lock bit 2 */ +#define GPIO_LCKR_LCK3_Pos (3U) +#define GPIO_LCKR_LCK3_Msk (0x1UL << GPIO_LCKR_LCK3_Pos) /*!< 0x00000008 */ +#define GPIO_LCKR_LCK3 GPIO_LCKR_LCK3_Msk /*!< Port x Lock bit 3 */ +#define GPIO_LCKR_LCK4_Pos (4U) +#define GPIO_LCKR_LCK4_Msk (0x1UL << GPIO_LCKR_LCK4_Pos) /*!< 0x00000010 */ +#define GPIO_LCKR_LCK4 GPIO_LCKR_LCK4_Msk /*!< Port x Lock bit 4 */ +#define GPIO_LCKR_LCK5_Pos (5U) +#define GPIO_LCKR_LCK5_Msk (0x1UL << GPIO_LCKR_LCK5_Pos) /*!< 0x00000020 */ +#define GPIO_LCKR_LCK5 GPIO_LCKR_LCK5_Msk /*!< Port x Lock bit 5 */ +#define GPIO_LCKR_LCK6_Pos (6U) +#define GPIO_LCKR_LCK6_Msk (0x1UL << GPIO_LCKR_LCK6_Pos) /*!< 0x00000040 */ +#define GPIO_LCKR_LCK6 GPIO_LCKR_LCK6_Msk /*!< Port x Lock bit 6 */ +#define GPIO_LCKR_LCK7_Pos (7U) +#define GPIO_LCKR_LCK7_Msk (0x1UL << GPIO_LCKR_LCK7_Pos) /*!< 0x00000080 */ +#define GPIO_LCKR_LCK7 GPIO_LCKR_LCK7_Msk /*!< Port x Lock bit 7 */ +#define GPIO_LCKR_LCK8_Pos (8U) +#define GPIO_LCKR_LCK8_Msk (0x1UL << GPIO_LCKR_LCK8_Pos) /*!< 0x00000100 */ +#define GPIO_LCKR_LCK8 GPIO_LCKR_LCK8_Msk /*!< Port x Lock bit 8 */ +#define GPIO_LCKR_LCK9_Pos (9U) +#define GPIO_LCKR_LCK9_Msk (0x1UL << GPIO_LCKR_LCK9_Pos) /*!< 0x00000200 */ +#define GPIO_LCKR_LCK9 GPIO_LCKR_LCK9_Msk /*!< Port x Lock bit 9 */ +#define GPIO_LCKR_LCK10_Pos (10U) +#define GPIO_LCKR_LCK10_Msk (0x1UL << GPIO_LCKR_LCK10_Pos) /*!< 0x00000400 */ +#define GPIO_LCKR_LCK10 GPIO_LCKR_LCK10_Msk /*!< Port x Lock bit 10 */ +#define GPIO_LCKR_LCK11_Pos (11U) +#define GPIO_LCKR_LCK11_Msk (0x1UL << GPIO_LCKR_LCK11_Pos) /*!< 0x00000800 */ +#define GPIO_LCKR_LCK11 GPIO_LCKR_LCK11_Msk /*!< Port x Lock bit 11 */ +#define GPIO_LCKR_LCK12_Pos (12U) +#define GPIO_LCKR_LCK12_Msk (0x1UL << GPIO_LCKR_LCK12_Pos) /*!< 0x00001000 */ +#define GPIO_LCKR_LCK12 GPIO_LCKR_LCK12_Msk /*!< Port x Lock bit 12 */ +#define GPIO_LCKR_LCK13_Pos (13U) +#define GPIO_LCKR_LCK13_Msk (0x1UL << GPIO_LCKR_LCK13_Pos) /*!< 0x00002000 */ +#define GPIO_LCKR_LCK13 GPIO_LCKR_LCK13_Msk /*!< Port x Lock bit 13 */ +#define GPIO_LCKR_LCK14_Pos (14U) +#define GPIO_LCKR_LCK14_Msk (0x1UL << GPIO_LCKR_LCK14_Pos) /*!< 0x00004000 */ +#define GPIO_LCKR_LCK14 GPIO_LCKR_LCK14_Msk /*!< Port x Lock bit 14 */ +#define GPIO_LCKR_LCK15_Pos (15U) +#define GPIO_LCKR_LCK15_Msk (0x1UL << GPIO_LCKR_LCK15_Pos) /*!< 0x00008000 */ +#define GPIO_LCKR_LCK15 GPIO_LCKR_LCK15_Msk /*!< Port x Lock bit 15 */ +#define GPIO_LCKR_LCKK_Pos (16U) +#define GPIO_LCKR_LCKK_Msk (0x1UL << GPIO_LCKR_LCKK_Pos) /*!< 0x00010000 */ +#define GPIO_LCKR_LCKK GPIO_LCKR_LCKK_Msk /*!< Lock key */ + +/*----------------------------------------------------------------------------*/ + +/****************** Bit definition for AFIO_EVCR register *******************/ +#define AFIO_EVCR_PIN_Pos (0U) +#define AFIO_EVCR_PIN_Msk (0xFUL << AFIO_EVCR_PIN_Pos) /*!< 0x0000000F */ +#define AFIO_EVCR_PIN AFIO_EVCR_PIN_Msk /*!< PIN[3:0] bits (Pin selection) */ +#define AFIO_EVCR_PIN_0 (0x1UL << AFIO_EVCR_PIN_Pos) /*!< 0x00000001 */ +#define AFIO_EVCR_PIN_1 (0x2UL << AFIO_EVCR_PIN_Pos) /*!< 0x00000002 */ +#define AFIO_EVCR_PIN_2 (0x4UL << AFIO_EVCR_PIN_Pos) /*!< 0x00000004 */ +#define AFIO_EVCR_PIN_3 (0x8UL << AFIO_EVCR_PIN_Pos) /*!< 0x00000008 */ + +/*!< PIN configuration */ +#define AFIO_EVCR_PIN_PX0 0x00000000U /*!< Pin 0 selected */ +#define AFIO_EVCR_PIN_PX1_Pos (0U) +#define AFIO_EVCR_PIN_PX1_Msk (0x1UL << AFIO_EVCR_PIN_PX1_Pos) /*!< 0x00000001 */ +#define AFIO_EVCR_PIN_PX1 AFIO_EVCR_PIN_PX1_Msk /*!< Pin 1 selected */ +#define AFIO_EVCR_PIN_PX2_Pos (1U) +#define AFIO_EVCR_PIN_PX2_Msk (0x1UL << AFIO_EVCR_PIN_PX2_Pos) /*!< 0x00000002 */ +#define AFIO_EVCR_PIN_PX2 AFIO_EVCR_PIN_PX2_Msk /*!< Pin 2 selected */ +#define AFIO_EVCR_PIN_PX3_Pos (0U) +#define AFIO_EVCR_PIN_PX3_Msk (0x3UL << AFIO_EVCR_PIN_PX3_Pos) /*!< 0x00000003 */ +#define AFIO_EVCR_PIN_PX3 AFIO_EVCR_PIN_PX3_Msk /*!< Pin 3 selected */ +#define AFIO_EVCR_PIN_PX4_Pos (2U) +#define AFIO_EVCR_PIN_PX4_Msk (0x1UL << AFIO_EVCR_PIN_PX4_Pos) /*!< 0x00000004 */ +#define AFIO_EVCR_PIN_PX4 AFIO_EVCR_PIN_PX4_Msk /*!< Pin 4 selected */ +#define AFIO_EVCR_PIN_PX5_Pos (0U) +#define AFIO_EVCR_PIN_PX5_Msk (0x5UL << AFIO_EVCR_PIN_PX5_Pos) /*!< 0x00000005 */ +#define AFIO_EVCR_PIN_PX5 AFIO_EVCR_PIN_PX5_Msk /*!< Pin 5 selected */ +#define AFIO_EVCR_PIN_PX6_Pos (1U) +#define AFIO_EVCR_PIN_PX6_Msk (0x3UL << AFIO_EVCR_PIN_PX6_Pos) /*!< 0x00000006 */ +#define AFIO_EVCR_PIN_PX6 AFIO_EVCR_PIN_PX6_Msk /*!< Pin 6 selected */ +#define AFIO_EVCR_PIN_PX7_Pos (0U) +#define AFIO_EVCR_PIN_PX7_Msk (0x7UL << AFIO_EVCR_PIN_PX7_Pos) /*!< 0x00000007 */ +#define AFIO_EVCR_PIN_PX7 AFIO_EVCR_PIN_PX7_Msk /*!< Pin 7 selected */ +#define AFIO_EVCR_PIN_PX8_Pos (3U) +#define AFIO_EVCR_PIN_PX8_Msk (0x1UL << AFIO_EVCR_PIN_PX8_Pos) /*!< 0x00000008 */ +#define AFIO_EVCR_PIN_PX8 AFIO_EVCR_PIN_PX8_Msk /*!< Pin 8 selected */ +#define AFIO_EVCR_PIN_PX9_Pos (0U) +#define AFIO_EVCR_PIN_PX9_Msk (0x9UL << AFIO_EVCR_PIN_PX9_Pos) /*!< 0x00000009 */ +#define AFIO_EVCR_PIN_PX9 AFIO_EVCR_PIN_PX9_Msk /*!< Pin 9 selected */ +#define AFIO_EVCR_PIN_PX10_Pos (1U) +#define AFIO_EVCR_PIN_PX10_Msk (0x5UL << AFIO_EVCR_PIN_PX10_Pos) /*!< 0x0000000A */ +#define AFIO_EVCR_PIN_PX10 AFIO_EVCR_PIN_PX10_Msk /*!< Pin 10 selected */ +#define AFIO_EVCR_PIN_PX11_Pos (0U) +#define AFIO_EVCR_PIN_PX11_Msk (0xBUL << AFIO_EVCR_PIN_PX11_Pos) /*!< 0x0000000B */ +#define AFIO_EVCR_PIN_PX11 AFIO_EVCR_PIN_PX11_Msk /*!< Pin 11 selected */ +#define AFIO_EVCR_PIN_PX12_Pos (2U) +#define AFIO_EVCR_PIN_PX12_Msk (0x3UL << AFIO_EVCR_PIN_PX12_Pos) /*!< 0x0000000C */ +#define AFIO_EVCR_PIN_PX12 AFIO_EVCR_PIN_PX12_Msk /*!< Pin 12 selected */ +#define AFIO_EVCR_PIN_PX13_Pos (0U) +#define AFIO_EVCR_PIN_PX13_Msk (0xDUL << AFIO_EVCR_PIN_PX13_Pos) /*!< 0x0000000D */ +#define AFIO_EVCR_PIN_PX13 AFIO_EVCR_PIN_PX13_Msk /*!< Pin 13 selected */ +#define AFIO_EVCR_PIN_PX14_Pos (1U) +#define AFIO_EVCR_PIN_PX14_Msk (0x7UL << AFIO_EVCR_PIN_PX14_Pos) /*!< 0x0000000E */ +#define AFIO_EVCR_PIN_PX14 AFIO_EVCR_PIN_PX14_Msk /*!< Pin 14 selected */ +#define AFIO_EVCR_PIN_PX15_Pos (0U) +#define AFIO_EVCR_PIN_PX15_Msk (0xFUL << AFIO_EVCR_PIN_PX15_Pos) /*!< 0x0000000F */ +#define AFIO_EVCR_PIN_PX15 AFIO_EVCR_PIN_PX15_Msk /*!< Pin 15 selected */ + +#define AFIO_EVCR_PORT_Pos (4U) +#define AFIO_EVCR_PORT_Msk (0x7UL << AFIO_EVCR_PORT_Pos) /*!< 0x00000070 */ +#define AFIO_EVCR_PORT AFIO_EVCR_PORT_Msk /*!< PORT[2:0] bits (Port selection) */ +#define AFIO_EVCR_PORT_0 (0x1UL << AFIO_EVCR_PORT_Pos) /*!< 0x00000010 */ +#define AFIO_EVCR_PORT_1 (0x2UL << AFIO_EVCR_PORT_Pos) /*!< 0x00000020 */ +#define AFIO_EVCR_PORT_2 (0x4UL << AFIO_EVCR_PORT_Pos) /*!< 0x00000040 */ + +/*!< PORT configuration */ +#define AFIO_EVCR_PORT_PA 0x00000000 /*!< Port A selected */ +#define AFIO_EVCR_PORT_PB_Pos (4U) +#define AFIO_EVCR_PORT_PB_Msk (0x1UL << AFIO_EVCR_PORT_PB_Pos) /*!< 0x00000010 */ +#define AFIO_EVCR_PORT_PB AFIO_EVCR_PORT_PB_Msk /*!< Port B selected */ +#define AFIO_EVCR_PORT_PC_Pos (5U) +#define AFIO_EVCR_PORT_PC_Msk (0x1UL << AFIO_EVCR_PORT_PC_Pos) /*!< 0x00000020 */ +#define AFIO_EVCR_PORT_PC AFIO_EVCR_PORT_PC_Msk /*!< Port C selected */ +#define AFIO_EVCR_PORT_PD_Pos (4U) +#define AFIO_EVCR_PORT_PD_Msk (0x3UL << AFIO_EVCR_PORT_PD_Pos) /*!< 0x00000030 */ +#define AFIO_EVCR_PORT_PD AFIO_EVCR_PORT_PD_Msk /*!< Port D selected */ +#define AFIO_EVCR_PORT_PE_Pos (6U) +#define AFIO_EVCR_PORT_PE_Msk (0x1UL << AFIO_EVCR_PORT_PE_Pos) /*!< 0x00000040 */ +#define AFIO_EVCR_PORT_PE AFIO_EVCR_PORT_PE_Msk /*!< Port E selected */ + +#define AFIO_EVCR_EVOE_Pos (7U) +#define AFIO_EVCR_EVOE_Msk (0x1UL << AFIO_EVCR_EVOE_Pos) /*!< 0x00000080 */ +#define AFIO_EVCR_EVOE AFIO_EVCR_EVOE_Msk /*!< Event Output Enable */ + +/****************** Bit definition for AFIO_MAPR register *******************/ +#define AFIO_MAPR_SPI1_REMAP_Pos (0U) +#define AFIO_MAPR_SPI1_REMAP_Msk (0x1UL << AFIO_MAPR_SPI1_REMAP_Pos) /*!< 0x00000001 */ +#define AFIO_MAPR_SPI1_REMAP AFIO_MAPR_SPI1_REMAP_Msk /*!< SPI1 remapping */ +#define AFIO_MAPR_I2C1_REMAP_Pos (1U) +#define AFIO_MAPR_I2C1_REMAP_Msk (0x1UL << AFIO_MAPR_I2C1_REMAP_Pos) /*!< 0x00000002 */ +#define AFIO_MAPR_I2C1_REMAP AFIO_MAPR_I2C1_REMAP_Msk /*!< I2C1 remapping */ +#define AFIO_MAPR_USART1_REMAP_Pos (2U) +#define AFIO_MAPR_USART1_REMAP_Msk (0x1UL << AFIO_MAPR_USART1_REMAP_Pos) /*!< 0x00000004 */ +#define AFIO_MAPR_USART1_REMAP AFIO_MAPR_USART1_REMAP_Msk /*!< USART1 remapping */ +#define AFIO_MAPR_USART2_REMAP_Pos (3U) +#define AFIO_MAPR_USART2_REMAP_Msk (0x1UL << AFIO_MAPR_USART2_REMAP_Pos) /*!< 0x00000008 */ +#define AFIO_MAPR_USART2_REMAP AFIO_MAPR_USART2_REMAP_Msk /*!< USART2 remapping */ + +#define AFIO_MAPR_USART3_REMAP_Pos (4U) +#define AFIO_MAPR_USART3_REMAP_Msk (0x3UL << AFIO_MAPR_USART3_REMAP_Pos) /*!< 0x00000030 */ +#define AFIO_MAPR_USART3_REMAP AFIO_MAPR_USART3_REMAP_Msk /*!< USART3_REMAP[1:0] bits (USART3 remapping) */ +#define AFIO_MAPR_USART3_REMAP_0 (0x1UL << AFIO_MAPR_USART3_REMAP_Pos) /*!< 0x00000010 */ +#define AFIO_MAPR_USART3_REMAP_1 (0x2UL << AFIO_MAPR_USART3_REMAP_Pos) /*!< 0x00000020 */ + +/* USART3_REMAP configuration */ +#define AFIO_MAPR_USART3_REMAP_NOREMAP 0x00000000U /*!< No remap (TX/PB10, RX/PB11, CK/PB12, CTS/PB13, RTS/PB14) */ +#define AFIO_MAPR_USART3_REMAP_PARTIALREMAP_Pos (4U) +#define AFIO_MAPR_USART3_REMAP_PARTIALREMAP_Msk (0x1UL << AFIO_MAPR_USART3_REMAP_PARTIALREMAP_Pos) /*!< 0x00000010 */ +#define AFIO_MAPR_USART3_REMAP_PARTIALREMAP AFIO_MAPR_USART3_REMAP_PARTIALREMAP_Msk /*!< Partial remap (TX/PC10, RX/PC11, CK/PC12, CTS/PB13, RTS/PB14) */ +#define AFIO_MAPR_USART3_REMAP_FULLREMAP_Pos (4U) +#define AFIO_MAPR_USART3_REMAP_FULLREMAP_Msk (0x3UL << AFIO_MAPR_USART3_REMAP_FULLREMAP_Pos) /*!< 0x00000030 */ +#define AFIO_MAPR_USART3_REMAP_FULLREMAP AFIO_MAPR_USART3_REMAP_FULLREMAP_Msk /*!< Full remap (TX/PD8, RX/PD9, CK/PD10, CTS/PD11, RTS/PD12) */ + +#define AFIO_MAPR_TIM1_REMAP_Pos (6U) +#define AFIO_MAPR_TIM1_REMAP_Msk (0x3UL << AFIO_MAPR_TIM1_REMAP_Pos) /*!< 0x000000C0 */ +#define AFIO_MAPR_TIM1_REMAP AFIO_MAPR_TIM1_REMAP_Msk /*!< TIM1_REMAP[1:0] bits (TIM1 remapping) */ +#define AFIO_MAPR_TIM1_REMAP_0 (0x1UL << AFIO_MAPR_TIM1_REMAP_Pos) /*!< 0x00000040 */ +#define AFIO_MAPR_TIM1_REMAP_1 (0x2UL << AFIO_MAPR_TIM1_REMAP_Pos) /*!< 0x00000080 */ + +/*!< TIM1_REMAP configuration */ +#define AFIO_MAPR_TIM1_REMAP_NOREMAP 0x00000000U /*!< No remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PB12, CH1N/PB13, CH2N/PB14, CH3N/PB15) */ +#define AFIO_MAPR_TIM1_REMAP_PARTIALREMAP_Pos (6U) +#define AFIO_MAPR_TIM1_REMAP_PARTIALREMAP_Msk (0x1UL << AFIO_MAPR_TIM1_REMAP_PARTIALREMAP_Pos) /*!< 0x00000040 */ +#define AFIO_MAPR_TIM1_REMAP_PARTIALREMAP AFIO_MAPR_TIM1_REMAP_PARTIALREMAP_Msk /*!< Partial remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PA6, CH1N/PA7, CH2N/PB0, CH3N/PB1) */ +#define AFIO_MAPR_TIM1_REMAP_FULLREMAP_Pos (6U) +#define AFIO_MAPR_TIM1_REMAP_FULLREMAP_Msk (0x3UL << AFIO_MAPR_TIM1_REMAP_FULLREMAP_Pos) /*!< 0x000000C0 */ +#define AFIO_MAPR_TIM1_REMAP_FULLREMAP AFIO_MAPR_TIM1_REMAP_FULLREMAP_Msk /*!< Full remap (ETR/PE7, CH1/PE9, CH2/PE11, CH3/PE13, CH4/PE14, BKIN/PE15, CH1N/PE8, CH2N/PE10, CH3N/PE12) */ + +#define AFIO_MAPR_TIM2_REMAP_Pos (8U) +#define AFIO_MAPR_TIM2_REMAP_Msk (0x3UL << AFIO_MAPR_TIM2_REMAP_Pos) /*!< 0x00000300 */ +#define AFIO_MAPR_TIM2_REMAP AFIO_MAPR_TIM2_REMAP_Msk /*!< TIM2_REMAP[1:0] bits (TIM2 remapping) */ +#define AFIO_MAPR_TIM2_REMAP_0 (0x1UL << AFIO_MAPR_TIM2_REMAP_Pos) /*!< 0x00000100 */ +#define AFIO_MAPR_TIM2_REMAP_1 (0x2UL << AFIO_MAPR_TIM2_REMAP_Pos) /*!< 0x00000200 */ + +/*!< TIM2_REMAP configuration */ +#define AFIO_MAPR_TIM2_REMAP_NOREMAP 0x00000000U /*!< No remap (CH1/ETR/PA0, CH2/PA1, CH3/PA2, CH4/PA3) */ +#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1_Pos (8U) +#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1_Msk (0x1UL << AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1_Pos) /*!< 0x00000100 */ +#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1 AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1_Msk /*!< Partial remap (CH1/ETR/PA15, CH2/PB3, CH3/PA2, CH4/PA3) */ +#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2_Pos (9U) +#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2_Msk (0x1UL << AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2_Pos) /*!< 0x00000200 */ +#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2 AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2_Msk /*!< Partial remap (CH1/ETR/PA0, CH2/PA1, CH3/PB10, CH4/PB11) */ +#define AFIO_MAPR_TIM2_REMAP_FULLREMAP_Pos (8U) +#define AFIO_MAPR_TIM2_REMAP_FULLREMAP_Msk (0x3UL << AFIO_MAPR_TIM2_REMAP_FULLREMAP_Pos) /*!< 0x00000300 */ +#define AFIO_MAPR_TIM2_REMAP_FULLREMAP AFIO_MAPR_TIM2_REMAP_FULLREMAP_Msk /*!< Full remap (CH1/ETR/PA15, CH2/PB3, CH3/PB10, CH4/PB11) */ + +#define AFIO_MAPR_TIM3_REMAP_Pos (10U) +#define AFIO_MAPR_TIM3_REMAP_Msk (0x3UL << AFIO_MAPR_TIM3_REMAP_Pos) /*!< 0x00000C00 */ +#define AFIO_MAPR_TIM3_REMAP AFIO_MAPR_TIM3_REMAP_Msk /*!< TIM3_REMAP[1:0] bits (TIM3 remapping) */ +#define AFIO_MAPR_TIM3_REMAP_0 (0x1UL << AFIO_MAPR_TIM3_REMAP_Pos) /*!< 0x00000400 */ +#define AFIO_MAPR_TIM3_REMAP_1 (0x2UL << AFIO_MAPR_TIM3_REMAP_Pos) /*!< 0x00000800 */ + +/*!< TIM3_REMAP configuration */ +#define AFIO_MAPR_TIM3_REMAP_NOREMAP 0x00000000U /*!< No remap (CH1/PA6, CH2/PA7, CH3/PB0, CH4/PB1) */ +#define AFIO_MAPR_TIM3_REMAP_PARTIALREMAP_Pos (11U) +#define AFIO_MAPR_TIM3_REMAP_PARTIALREMAP_Msk (0x1UL << AFIO_MAPR_TIM3_REMAP_PARTIALREMAP_Pos) /*!< 0x00000800 */ +#define AFIO_MAPR_TIM3_REMAP_PARTIALREMAP AFIO_MAPR_TIM3_REMAP_PARTIALREMAP_Msk /*!< Partial remap (CH1/PB4, CH2/PB5, CH3/PB0, CH4/PB1) */ +#define AFIO_MAPR_TIM3_REMAP_FULLREMAP_Pos (10U) +#define AFIO_MAPR_TIM3_REMAP_FULLREMAP_Msk (0x3UL << AFIO_MAPR_TIM3_REMAP_FULLREMAP_Pos) /*!< 0x00000C00 */ +#define AFIO_MAPR_TIM3_REMAP_FULLREMAP AFIO_MAPR_TIM3_REMAP_FULLREMAP_Msk /*!< Full remap (CH1/PC6, CH2/PC7, CH3/PC8, CH4/PC9) */ + +#define AFIO_MAPR_TIM4_REMAP_Pos (12U) +#define AFIO_MAPR_TIM4_REMAP_Msk (0x1UL << AFIO_MAPR_TIM4_REMAP_Pos) /*!< 0x00001000 */ +#define AFIO_MAPR_TIM4_REMAP AFIO_MAPR_TIM4_REMAP_Msk /*!< TIM4_REMAP bit (TIM4 remapping) */ + +#define AFIO_MAPR_CAN_REMAP_Pos (13U) +#define AFIO_MAPR_CAN_REMAP_Msk (0x3UL << AFIO_MAPR_CAN_REMAP_Pos) /*!< 0x00006000 */ +#define AFIO_MAPR_CAN_REMAP AFIO_MAPR_CAN_REMAP_Msk /*!< CAN_REMAP[1:0] bits (CAN Alternate function remapping) */ +#define AFIO_MAPR_CAN_REMAP_0 (0x1UL << AFIO_MAPR_CAN_REMAP_Pos) /*!< 0x00002000 */ +#define AFIO_MAPR_CAN_REMAP_1 (0x2UL << AFIO_MAPR_CAN_REMAP_Pos) /*!< 0x00004000 */ + +/*!< CAN_REMAP configuration */ +#define AFIO_MAPR_CAN_REMAP_REMAP1 0x00000000U /*!< CANRX mapped to PA11, CANTX mapped to PA12 */ +#define AFIO_MAPR_CAN_REMAP_REMAP2_Pos (14U) +#define AFIO_MAPR_CAN_REMAP_REMAP2_Msk (0x1UL << AFIO_MAPR_CAN_REMAP_REMAP2_Pos) /*!< 0x00004000 */ +#define AFIO_MAPR_CAN_REMAP_REMAP2 AFIO_MAPR_CAN_REMAP_REMAP2_Msk /*!< CANRX mapped to PB8, CANTX mapped to PB9 */ +#define AFIO_MAPR_CAN_REMAP_REMAP3_Pos (13U) +#define AFIO_MAPR_CAN_REMAP_REMAP3_Msk (0x3UL << AFIO_MAPR_CAN_REMAP_REMAP3_Pos) /*!< 0x00006000 */ +#define AFIO_MAPR_CAN_REMAP_REMAP3 AFIO_MAPR_CAN_REMAP_REMAP3_Msk /*!< CANRX mapped to PD0, CANTX mapped to PD1 */ + +#define AFIO_MAPR_PD01_REMAP_Pos (15U) +#define AFIO_MAPR_PD01_REMAP_Msk (0x1UL << AFIO_MAPR_PD01_REMAP_Pos) /*!< 0x00008000 */ +#define AFIO_MAPR_PD01_REMAP AFIO_MAPR_PD01_REMAP_Msk /*!< Port D0/Port D1 mapping on OSC_IN/OSC_OUT */ + +/*!< SWJ_CFG configuration */ +#define AFIO_MAPR_SWJ_CFG_Pos (24U) +#define AFIO_MAPR_SWJ_CFG_Msk (0x7UL << AFIO_MAPR_SWJ_CFG_Pos) /*!< 0x07000000 */ +#define AFIO_MAPR_SWJ_CFG AFIO_MAPR_SWJ_CFG_Msk /*!< SWJ_CFG[2:0] bits (Serial Wire JTAG configuration) */ +#define AFIO_MAPR_SWJ_CFG_0 (0x1UL << AFIO_MAPR_SWJ_CFG_Pos) /*!< 0x01000000 */ +#define AFIO_MAPR_SWJ_CFG_1 (0x2UL << AFIO_MAPR_SWJ_CFG_Pos) /*!< 0x02000000 */ +#define AFIO_MAPR_SWJ_CFG_2 (0x4UL << AFIO_MAPR_SWJ_CFG_Pos) /*!< 0x04000000 */ + +#define AFIO_MAPR_SWJ_CFG_RESET 0x00000000U /*!< Full SWJ (JTAG-DP + SW-DP) : Reset State */ +#define AFIO_MAPR_SWJ_CFG_NOJNTRST_Pos (24U) +#define AFIO_MAPR_SWJ_CFG_NOJNTRST_Msk (0x1UL << AFIO_MAPR_SWJ_CFG_NOJNTRST_Pos) /*!< 0x01000000 */ +#define AFIO_MAPR_SWJ_CFG_NOJNTRST AFIO_MAPR_SWJ_CFG_NOJNTRST_Msk /*!< Full SWJ (JTAG-DP + SW-DP) but without JNTRST */ +#define AFIO_MAPR_SWJ_CFG_JTAGDISABLE_Pos (25U) +#define AFIO_MAPR_SWJ_CFG_JTAGDISABLE_Msk (0x1UL << AFIO_MAPR_SWJ_CFG_JTAGDISABLE_Pos) /*!< 0x02000000 */ +#define AFIO_MAPR_SWJ_CFG_JTAGDISABLE AFIO_MAPR_SWJ_CFG_JTAGDISABLE_Msk /*!< JTAG-DP Disabled and SW-DP Enabled */ +#define AFIO_MAPR_SWJ_CFG_DISABLE_Pos (26U) +#define AFIO_MAPR_SWJ_CFG_DISABLE_Msk (0x1UL << AFIO_MAPR_SWJ_CFG_DISABLE_Pos) /*!< 0x04000000 */ +#define AFIO_MAPR_SWJ_CFG_DISABLE AFIO_MAPR_SWJ_CFG_DISABLE_Msk /*!< JTAG-DP Disabled and SW-DP Disabled */ + + +/***************** Bit definition for AFIO_EXTICR1 register *****************/ +#define AFIO_EXTICR1_EXTI0_Pos (0U) +#define AFIO_EXTICR1_EXTI0_Msk (0xFUL << AFIO_EXTICR1_EXTI0_Pos) /*!< 0x0000000F */ +#define AFIO_EXTICR1_EXTI0 AFIO_EXTICR1_EXTI0_Msk /*!< EXTI 0 configuration */ +#define AFIO_EXTICR1_EXTI1_Pos (4U) +#define AFIO_EXTICR1_EXTI1_Msk (0xFUL << AFIO_EXTICR1_EXTI1_Pos) /*!< 0x000000F0 */ +#define AFIO_EXTICR1_EXTI1 AFIO_EXTICR1_EXTI1_Msk /*!< EXTI 1 configuration */ +#define AFIO_EXTICR1_EXTI2_Pos (8U) +#define AFIO_EXTICR1_EXTI2_Msk (0xFUL << AFIO_EXTICR1_EXTI2_Pos) /*!< 0x00000F00 */ +#define AFIO_EXTICR1_EXTI2 AFIO_EXTICR1_EXTI2_Msk /*!< EXTI 2 configuration */ +#define AFIO_EXTICR1_EXTI3_Pos (12U) +#define AFIO_EXTICR1_EXTI3_Msk (0xFUL << AFIO_EXTICR1_EXTI3_Pos) /*!< 0x0000F000 */ +#define AFIO_EXTICR1_EXTI3 AFIO_EXTICR1_EXTI3_Msk /*!< EXTI 3 configuration */ + +/*!< EXTI0 configuration */ +#define AFIO_EXTICR1_EXTI0_PA 0x00000000U /*!< PA[0] pin */ +#define AFIO_EXTICR1_EXTI0_PB_Pos (0U) +#define AFIO_EXTICR1_EXTI0_PB_Msk (0x1UL << AFIO_EXTICR1_EXTI0_PB_Pos) /*!< 0x00000001 */ +#define AFIO_EXTICR1_EXTI0_PB AFIO_EXTICR1_EXTI0_PB_Msk /*!< PB[0] pin */ +#define AFIO_EXTICR1_EXTI0_PC_Pos (1U) +#define AFIO_EXTICR1_EXTI0_PC_Msk (0x1UL << AFIO_EXTICR1_EXTI0_PC_Pos) /*!< 0x00000002 */ +#define AFIO_EXTICR1_EXTI0_PC AFIO_EXTICR1_EXTI0_PC_Msk /*!< PC[0] pin */ +#define AFIO_EXTICR1_EXTI0_PD_Pos (0U) +#define AFIO_EXTICR1_EXTI0_PD_Msk (0x3UL << AFIO_EXTICR1_EXTI0_PD_Pos) /*!< 0x00000003 */ +#define AFIO_EXTICR1_EXTI0_PD AFIO_EXTICR1_EXTI0_PD_Msk /*!< PD[0] pin */ +#define AFIO_EXTICR1_EXTI0_PE_Pos (2U) +#define AFIO_EXTICR1_EXTI0_PE_Msk (0x1UL << AFIO_EXTICR1_EXTI0_PE_Pos) /*!< 0x00000004 */ +#define AFIO_EXTICR1_EXTI0_PE AFIO_EXTICR1_EXTI0_PE_Msk /*!< PE[0] pin */ +#define AFIO_EXTICR1_EXTI0_PF_Pos (0U) +#define AFIO_EXTICR1_EXTI0_PF_Msk (0x5UL << AFIO_EXTICR1_EXTI0_PF_Pos) /*!< 0x00000005 */ +#define AFIO_EXTICR1_EXTI0_PF AFIO_EXTICR1_EXTI0_PF_Msk /*!< PF[0] pin */ +#define AFIO_EXTICR1_EXTI0_PG_Pos (1U) +#define AFIO_EXTICR1_EXTI0_PG_Msk (0x3UL << AFIO_EXTICR1_EXTI0_PG_Pos) /*!< 0x00000006 */ +#define AFIO_EXTICR1_EXTI0_PG AFIO_EXTICR1_EXTI0_PG_Msk /*!< PG[0] pin */ + +/*!< EXTI1 configuration */ +#define AFIO_EXTICR1_EXTI1_PA 0x00000000U /*!< PA[1] pin */ +#define AFIO_EXTICR1_EXTI1_PB_Pos (4U) +#define AFIO_EXTICR1_EXTI1_PB_Msk (0x1UL << AFIO_EXTICR1_EXTI1_PB_Pos) /*!< 0x00000010 */ +#define AFIO_EXTICR1_EXTI1_PB AFIO_EXTICR1_EXTI1_PB_Msk /*!< PB[1] pin */ +#define AFIO_EXTICR1_EXTI1_PC_Pos (5U) +#define AFIO_EXTICR1_EXTI1_PC_Msk (0x1UL << AFIO_EXTICR1_EXTI1_PC_Pos) /*!< 0x00000020 */ +#define AFIO_EXTICR1_EXTI1_PC AFIO_EXTICR1_EXTI1_PC_Msk /*!< PC[1] pin */ +#define AFIO_EXTICR1_EXTI1_PD_Pos (4U) +#define AFIO_EXTICR1_EXTI1_PD_Msk (0x3UL << AFIO_EXTICR1_EXTI1_PD_Pos) /*!< 0x00000030 */ +#define AFIO_EXTICR1_EXTI1_PD AFIO_EXTICR1_EXTI1_PD_Msk /*!< PD[1] pin */ +#define AFIO_EXTICR1_EXTI1_PE_Pos (6U) +#define AFIO_EXTICR1_EXTI1_PE_Msk (0x1UL << AFIO_EXTICR1_EXTI1_PE_Pos) /*!< 0x00000040 */ +#define AFIO_EXTICR1_EXTI1_PE AFIO_EXTICR1_EXTI1_PE_Msk /*!< PE[1] pin */ +#define AFIO_EXTICR1_EXTI1_PF_Pos (4U) +#define AFIO_EXTICR1_EXTI1_PF_Msk (0x5UL << AFIO_EXTICR1_EXTI1_PF_Pos) /*!< 0x00000050 */ +#define AFIO_EXTICR1_EXTI1_PF AFIO_EXTICR1_EXTI1_PF_Msk /*!< PF[1] pin */ +#define AFIO_EXTICR1_EXTI1_PG_Pos (5U) +#define AFIO_EXTICR1_EXTI1_PG_Msk (0x3UL << AFIO_EXTICR1_EXTI1_PG_Pos) /*!< 0x00000060 */ +#define AFIO_EXTICR1_EXTI1_PG AFIO_EXTICR1_EXTI1_PG_Msk /*!< PG[1] pin */ + +/*!< EXTI2 configuration */ +#define AFIO_EXTICR1_EXTI2_PA 0x00000000U /*!< PA[2] pin */ +#define AFIO_EXTICR1_EXTI2_PB_Pos (8U) +#define AFIO_EXTICR1_EXTI2_PB_Msk (0x1UL << AFIO_EXTICR1_EXTI2_PB_Pos) /*!< 0x00000100 */ +#define AFIO_EXTICR1_EXTI2_PB AFIO_EXTICR1_EXTI2_PB_Msk /*!< PB[2] pin */ +#define AFIO_EXTICR1_EXTI2_PC_Pos (9U) +#define AFIO_EXTICR1_EXTI2_PC_Msk (0x1UL << AFIO_EXTICR1_EXTI2_PC_Pos) /*!< 0x00000200 */ +#define AFIO_EXTICR1_EXTI2_PC AFIO_EXTICR1_EXTI2_PC_Msk /*!< PC[2] pin */ +#define AFIO_EXTICR1_EXTI2_PD_Pos (8U) +#define AFIO_EXTICR1_EXTI2_PD_Msk (0x3UL << AFIO_EXTICR1_EXTI2_PD_Pos) /*!< 0x00000300 */ +#define AFIO_EXTICR1_EXTI2_PD AFIO_EXTICR1_EXTI2_PD_Msk /*!< PD[2] pin */ +#define AFIO_EXTICR1_EXTI2_PE_Pos (10U) +#define AFIO_EXTICR1_EXTI2_PE_Msk (0x1UL << AFIO_EXTICR1_EXTI2_PE_Pos) /*!< 0x00000400 */ +#define AFIO_EXTICR1_EXTI2_PE AFIO_EXTICR1_EXTI2_PE_Msk /*!< PE[2] pin */ +#define AFIO_EXTICR1_EXTI2_PF_Pos (8U) +#define AFIO_EXTICR1_EXTI2_PF_Msk (0x5UL << AFIO_EXTICR1_EXTI2_PF_Pos) /*!< 0x00000500 */ +#define AFIO_EXTICR1_EXTI2_PF AFIO_EXTICR1_EXTI2_PF_Msk /*!< PF[2] pin */ +#define AFIO_EXTICR1_EXTI2_PG_Pos (9U) +#define AFIO_EXTICR1_EXTI2_PG_Msk (0x3UL << AFIO_EXTICR1_EXTI2_PG_Pos) /*!< 0x00000600 */ +#define AFIO_EXTICR1_EXTI2_PG AFIO_EXTICR1_EXTI2_PG_Msk /*!< PG[2] pin */ + +/*!< EXTI3 configuration */ +#define AFIO_EXTICR1_EXTI3_PA 0x00000000U /*!< PA[3] pin */ +#define AFIO_EXTICR1_EXTI3_PB_Pos (12U) +#define AFIO_EXTICR1_EXTI3_PB_Msk (0x1UL << AFIO_EXTICR1_EXTI3_PB_Pos) /*!< 0x00001000 */ +#define AFIO_EXTICR1_EXTI3_PB AFIO_EXTICR1_EXTI3_PB_Msk /*!< PB[3] pin */ +#define AFIO_EXTICR1_EXTI3_PC_Pos (13U) +#define AFIO_EXTICR1_EXTI3_PC_Msk (0x1UL << AFIO_EXTICR1_EXTI3_PC_Pos) /*!< 0x00002000 */ +#define AFIO_EXTICR1_EXTI3_PC AFIO_EXTICR1_EXTI3_PC_Msk /*!< PC[3] pin */ +#define AFIO_EXTICR1_EXTI3_PD_Pos (12U) +#define AFIO_EXTICR1_EXTI3_PD_Msk (0x3UL << AFIO_EXTICR1_EXTI3_PD_Pos) /*!< 0x00003000 */ +#define AFIO_EXTICR1_EXTI3_PD AFIO_EXTICR1_EXTI3_PD_Msk /*!< PD[3] pin */ +#define AFIO_EXTICR1_EXTI3_PE_Pos (14U) +#define AFIO_EXTICR1_EXTI3_PE_Msk (0x1UL << AFIO_EXTICR1_EXTI3_PE_Pos) /*!< 0x00004000 */ +#define AFIO_EXTICR1_EXTI3_PE AFIO_EXTICR1_EXTI3_PE_Msk /*!< PE[3] pin */ +#define AFIO_EXTICR1_EXTI3_PF_Pos (12U) +#define AFIO_EXTICR1_EXTI3_PF_Msk (0x5UL << AFIO_EXTICR1_EXTI3_PF_Pos) /*!< 0x00005000 */ +#define AFIO_EXTICR1_EXTI3_PF AFIO_EXTICR1_EXTI3_PF_Msk /*!< PF[3] pin */ +#define AFIO_EXTICR1_EXTI3_PG_Pos (13U) +#define AFIO_EXTICR1_EXTI3_PG_Msk (0x3UL << AFIO_EXTICR1_EXTI3_PG_Pos) /*!< 0x00006000 */ +#define AFIO_EXTICR1_EXTI3_PG AFIO_EXTICR1_EXTI3_PG_Msk /*!< PG[3] pin */ + +/***************** Bit definition for AFIO_EXTICR2 register *****************/ +#define AFIO_EXTICR2_EXTI4_Pos (0U) +#define AFIO_EXTICR2_EXTI4_Msk (0xFUL << AFIO_EXTICR2_EXTI4_Pos) /*!< 0x0000000F */ +#define AFIO_EXTICR2_EXTI4 AFIO_EXTICR2_EXTI4_Msk /*!< EXTI 4 configuration */ +#define AFIO_EXTICR2_EXTI5_Pos (4U) +#define AFIO_EXTICR2_EXTI5_Msk (0xFUL << AFIO_EXTICR2_EXTI5_Pos) /*!< 0x000000F0 */ +#define AFIO_EXTICR2_EXTI5 AFIO_EXTICR2_EXTI5_Msk /*!< EXTI 5 configuration */ +#define AFIO_EXTICR2_EXTI6_Pos (8U) +#define AFIO_EXTICR2_EXTI6_Msk (0xFUL << AFIO_EXTICR2_EXTI6_Pos) /*!< 0x00000F00 */ +#define AFIO_EXTICR2_EXTI6 AFIO_EXTICR2_EXTI6_Msk /*!< EXTI 6 configuration */ +#define AFIO_EXTICR2_EXTI7_Pos (12U) +#define AFIO_EXTICR2_EXTI7_Msk (0xFUL << AFIO_EXTICR2_EXTI7_Pos) /*!< 0x0000F000 */ +#define AFIO_EXTICR2_EXTI7 AFIO_EXTICR2_EXTI7_Msk /*!< EXTI 7 configuration */ + +/*!< EXTI4 configuration */ +#define AFIO_EXTICR2_EXTI4_PA 0x00000000U /*!< PA[4] pin */ +#define AFIO_EXTICR2_EXTI4_PB_Pos (0U) +#define AFIO_EXTICR2_EXTI4_PB_Msk (0x1UL << AFIO_EXTICR2_EXTI4_PB_Pos) /*!< 0x00000001 */ +#define AFIO_EXTICR2_EXTI4_PB AFIO_EXTICR2_EXTI4_PB_Msk /*!< PB[4] pin */ +#define AFIO_EXTICR2_EXTI4_PC_Pos (1U) +#define AFIO_EXTICR2_EXTI4_PC_Msk (0x1UL << AFIO_EXTICR2_EXTI4_PC_Pos) /*!< 0x00000002 */ +#define AFIO_EXTICR2_EXTI4_PC AFIO_EXTICR2_EXTI4_PC_Msk /*!< PC[4] pin */ +#define AFIO_EXTICR2_EXTI4_PD_Pos (0U) +#define AFIO_EXTICR2_EXTI4_PD_Msk (0x3UL << AFIO_EXTICR2_EXTI4_PD_Pos) /*!< 0x00000003 */ +#define AFIO_EXTICR2_EXTI4_PD AFIO_EXTICR2_EXTI4_PD_Msk /*!< PD[4] pin */ +#define AFIO_EXTICR2_EXTI4_PE_Pos (2U) +#define AFIO_EXTICR2_EXTI4_PE_Msk (0x1UL << AFIO_EXTICR2_EXTI4_PE_Pos) /*!< 0x00000004 */ +#define AFIO_EXTICR2_EXTI4_PE AFIO_EXTICR2_EXTI4_PE_Msk /*!< PE[4] pin */ +#define AFIO_EXTICR2_EXTI4_PF_Pos (0U) +#define AFIO_EXTICR2_EXTI4_PF_Msk (0x5UL << AFIO_EXTICR2_EXTI4_PF_Pos) /*!< 0x00000005 */ +#define AFIO_EXTICR2_EXTI4_PF AFIO_EXTICR2_EXTI4_PF_Msk /*!< PF[4] pin */ +#define AFIO_EXTICR2_EXTI4_PG_Pos (1U) +#define AFIO_EXTICR2_EXTI4_PG_Msk (0x3UL << AFIO_EXTICR2_EXTI4_PG_Pos) /*!< 0x00000006 */ +#define AFIO_EXTICR2_EXTI4_PG AFIO_EXTICR2_EXTI4_PG_Msk /*!< PG[4] pin */ + +/* EXTI5 configuration */ +#define AFIO_EXTICR2_EXTI5_PA 0x00000000U /*!< PA[5] pin */ +#define AFIO_EXTICR2_EXTI5_PB_Pos (4U) +#define AFIO_EXTICR2_EXTI5_PB_Msk (0x1UL << AFIO_EXTICR2_EXTI5_PB_Pos) /*!< 0x00000010 */ +#define AFIO_EXTICR2_EXTI5_PB AFIO_EXTICR2_EXTI5_PB_Msk /*!< PB[5] pin */ +#define AFIO_EXTICR2_EXTI5_PC_Pos (5U) +#define AFIO_EXTICR2_EXTI5_PC_Msk (0x1UL << AFIO_EXTICR2_EXTI5_PC_Pos) /*!< 0x00000020 */ +#define AFIO_EXTICR2_EXTI5_PC AFIO_EXTICR2_EXTI5_PC_Msk /*!< PC[5] pin */ +#define AFIO_EXTICR2_EXTI5_PD_Pos (4U) +#define AFIO_EXTICR2_EXTI5_PD_Msk (0x3UL << AFIO_EXTICR2_EXTI5_PD_Pos) /*!< 0x00000030 */ +#define AFIO_EXTICR2_EXTI5_PD AFIO_EXTICR2_EXTI5_PD_Msk /*!< PD[5] pin */ +#define AFIO_EXTICR2_EXTI5_PE_Pos (6U) +#define AFIO_EXTICR2_EXTI5_PE_Msk (0x1UL << AFIO_EXTICR2_EXTI5_PE_Pos) /*!< 0x00000040 */ +#define AFIO_EXTICR2_EXTI5_PE AFIO_EXTICR2_EXTI5_PE_Msk /*!< PE[5] pin */ +#define AFIO_EXTICR2_EXTI5_PF_Pos (4U) +#define AFIO_EXTICR2_EXTI5_PF_Msk (0x5UL << AFIO_EXTICR2_EXTI5_PF_Pos) /*!< 0x00000050 */ +#define AFIO_EXTICR2_EXTI5_PF AFIO_EXTICR2_EXTI5_PF_Msk /*!< PF[5] pin */ +#define AFIO_EXTICR2_EXTI5_PG_Pos (5U) +#define AFIO_EXTICR2_EXTI5_PG_Msk (0x3UL << AFIO_EXTICR2_EXTI5_PG_Pos) /*!< 0x00000060 */ +#define AFIO_EXTICR2_EXTI5_PG AFIO_EXTICR2_EXTI5_PG_Msk /*!< PG[5] pin */ + +/*!< EXTI6 configuration */ +#define AFIO_EXTICR2_EXTI6_PA 0x00000000U /*!< PA[6] pin */ +#define AFIO_EXTICR2_EXTI6_PB_Pos (8U) +#define AFIO_EXTICR2_EXTI6_PB_Msk (0x1UL << AFIO_EXTICR2_EXTI6_PB_Pos) /*!< 0x00000100 */ +#define AFIO_EXTICR2_EXTI6_PB AFIO_EXTICR2_EXTI6_PB_Msk /*!< PB[6] pin */ +#define AFIO_EXTICR2_EXTI6_PC_Pos (9U) +#define AFIO_EXTICR2_EXTI6_PC_Msk (0x1UL << AFIO_EXTICR2_EXTI6_PC_Pos) /*!< 0x00000200 */ +#define AFIO_EXTICR2_EXTI6_PC AFIO_EXTICR2_EXTI6_PC_Msk /*!< PC[6] pin */ +#define AFIO_EXTICR2_EXTI6_PD_Pos (8U) +#define AFIO_EXTICR2_EXTI6_PD_Msk (0x3UL << AFIO_EXTICR2_EXTI6_PD_Pos) /*!< 0x00000300 */ +#define AFIO_EXTICR2_EXTI6_PD AFIO_EXTICR2_EXTI6_PD_Msk /*!< PD[6] pin */ +#define AFIO_EXTICR2_EXTI6_PE_Pos (10U) +#define AFIO_EXTICR2_EXTI6_PE_Msk (0x1UL << AFIO_EXTICR2_EXTI6_PE_Pos) /*!< 0x00000400 */ +#define AFIO_EXTICR2_EXTI6_PE AFIO_EXTICR2_EXTI6_PE_Msk /*!< PE[6] pin */ +#define AFIO_EXTICR2_EXTI6_PF_Pos (8U) +#define AFIO_EXTICR2_EXTI6_PF_Msk (0x5UL << AFIO_EXTICR2_EXTI6_PF_Pos) /*!< 0x00000500 */ +#define AFIO_EXTICR2_EXTI6_PF AFIO_EXTICR2_EXTI6_PF_Msk /*!< PF[6] pin */ +#define AFIO_EXTICR2_EXTI6_PG_Pos (9U) +#define AFIO_EXTICR2_EXTI6_PG_Msk (0x3UL << AFIO_EXTICR2_EXTI6_PG_Pos) /*!< 0x00000600 */ +#define AFIO_EXTICR2_EXTI6_PG AFIO_EXTICR2_EXTI6_PG_Msk /*!< PG[6] pin */ + +/*!< EXTI7 configuration */ +#define AFIO_EXTICR2_EXTI7_PA 0x00000000U /*!< PA[7] pin */ +#define AFIO_EXTICR2_EXTI7_PB_Pos (12U) +#define AFIO_EXTICR2_EXTI7_PB_Msk (0x1UL << AFIO_EXTICR2_EXTI7_PB_Pos) /*!< 0x00001000 */ +#define AFIO_EXTICR2_EXTI7_PB AFIO_EXTICR2_EXTI7_PB_Msk /*!< PB[7] pin */ +#define AFIO_EXTICR2_EXTI7_PC_Pos (13U) +#define AFIO_EXTICR2_EXTI7_PC_Msk (0x1UL << AFIO_EXTICR2_EXTI7_PC_Pos) /*!< 0x00002000 */ +#define AFIO_EXTICR2_EXTI7_PC AFIO_EXTICR2_EXTI7_PC_Msk /*!< PC[7] pin */ +#define AFIO_EXTICR2_EXTI7_PD_Pos (12U) +#define AFIO_EXTICR2_EXTI7_PD_Msk (0x3UL << AFIO_EXTICR2_EXTI7_PD_Pos) /*!< 0x00003000 */ +#define AFIO_EXTICR2_EXTI7_PD AFIO_EXTICR2_EXTI7_PD_Msk /*!< PD[7] pin */ +#define AFIO_EXTICR2_EXTI7_PE_Pos (14U) +#define AFIO_EXTICR2_EXTI7_PE_Msk (0x1UL << AFIO_EXTICR2_EXTI7_PE_Pos) /*!< 0x00004000 */ +#define AFIO_EXTICR2_EXTI7_PE AFIO_EXTICR2_EXTI7_PE_Msk /*!< PE[7] pin */ +#define AFIO_EXTICR2_EXTI7_PF_Pos (12U) +#define AFIO_EXTICR2_EXTI7_PF_Msk (0x5UL << AFIO_EXTICR2_EXTI7_PF_Pos) /*!< 0x00005000 */ +#define AFIO_EXTICR2_EXTI7_PF AFIO_EXTICR2_EXTI7_PF_Msk /*!< PF[7] pin */ +#define AFIO_EXTICR2_EXTI7_PG_Pos (13U) +#define AFIO_EXTICR2_EXTI7_PG_Msk (0x3UL << AFIO_EXTICR2_EXTI7_PG_Pos) /*!< 0x00006000 */ +#define AFIO_EXTICR2_EXTI7_PG AFIO_EXTICR2_EXTI7_PG_Msk /*!< PG[7] pin */ + +/***************** Bit definition for AFIO_EXTICR3 register *****************/ +#define AFIO_EXTICR3_EXTI8_Pos (0U) +#define AFIO_EXTICR3_EXTI8_Msk (0xFUL << AFIO_EXTICR3_EXTI8_Pos) /*!< 0x0000000F */ +#define AFIO_EXTICR3_EXTI8 AFIO_EXTICR3_EXTI8_Msk /*!< EXTI 8 configuration */ +#define AFIO_EXTICR3_EXTI9_Pos (4U) +#define AFIO_EXTICR3_EXTI9_Msk (0xFUL << AFIO_EXTICR3_EXTI9_Pos) /*!< 0x000000F0 */ +#define AFIO_EXTICR3_EXTI9 AFIO_EXTICR3_EXTI9_Msk /*!< EXTI 9 configuration */ +#define AFIO_EXTICR3_EXTI10_Pos (8U) +#define AFIO_EXTICR3_EXTI10_Msk (0xFUL << AFIO_EXTICR3_EXTI10_Pos) /*!< 0x00000F00 */ +#define AFIO_EXTICR3_EXTI10 AFIO_EXTICR3_EXTI10_Msk /*!< EXTI 10 configuration */ +#define AFIO_EXTICR3_EXTI11_Pos (12U) +#define AFIO_EXTICR3_EXTI11_Msk (0xFUL << AFIO_EXTICR3_EXTI11_Pos) /*!< 0x0000F000 */ +#define AFIO_EXTICR3_EXTI11 AFIO_EXTICR3_EXTI11_Msk /*!< EXTI 11 configuration */ + +/*!< EXTI8 configuration */ +#define AFIO_EXTICR3_EXTI8_PA 0x00000000U /*!< PA[8] pin */ +#define AFIO_EXTICR3_EXTI8_PB_Pos (0U) +#define AFIO_EXTICR3_EXTI8_PB_Msk (0x1UL << AFIO_EXTICR3_EXTI8_PB_Pos) /*!< 0x00000001 */ +#define AFIO_EXTICR3_EXTI8_PB AFIO_EXTICR3_EXTI8_PB_Msk /*!< PB[8] pin */ +#define AFIO_EXTICR3_EXTI8_PC_Pos (1U) +#define AFIO_EXTICR3_EXTI8_PC_Msk (0x1UL << AFIO_EXTICR3_EXTI8_PC_Pos) /*!< 0x00000002 */ +#define AFIO_EXTICR3_EXTI8_PC AFIO_EXTICR3_EXTI8_PC_Msk /*!< PC[8] pin */ +#define AFIO_EXTICR3_EXTI8_PD_Pos (0U) +#define AFIO_EXTICR3_EXTI8_PD_Msk (0x3UL << AFIO_EXTICR3_EXTI8_PD_Pos) /*!< 0x00000003 */ +#define AFIO_EXTICR3_EXTI8_PD AFIO_EXTICR3_EXTI8_PD_Msk /*!< PD[8] pin */ +#define AFIO_EXTICR3_EXTI8_PE_Pos (2U) +#define AFIO_EXTICR3_EXTI8_PE_Msk (0x1UL << AFIO_EXTICR3_EXTI8_PE_Pos) /*!< 0x00000004 */ +#define AFIO_EXTICR3_EXTI8_PE AFIO_EXTICR3_EXTI8_PE_Msk /*!< PE[8] pin */ +#define AFIO_EXTICR3_EXTI8_PF_Pos (0U) +#define AFIO_EXTICR3_EXTI8_PF_Msk (0x5UL << AFIO_EXTICR3_EXTI8_PF_Pos) /*!< 0x00000005 */ +#define AFIO_EXTICR3_EXTI8_PF AFIO_EXTICR3_EXTI8_PF_Msk /*!< PF[8] pin */ +#define AFIO_EXTICR3_EXTI8_PG_Pos (1U) +#define AFIO_EXTICR3_EXTI8_PG_Msk (0x3UL << AFIO_EXTICR3_EXTI8_PG_Pos) /*!< 0x00000006 */ +#define AFIO_EXTICR3_EXTI8_PG AFIO_EXTICR3_EXTI8_PG_Msk /*!< PG[8] pin */ + +/*!< EXTI9 configuration */ +#define AFIO_EXTICR3_EXTI9_PA 0x00000000U /*!< PA[9] pin */ +#define AFIO_EXTICR3_EXTI9_PB_Pos (4U) +#define AFIO_EXTICR3_EXTI9_PB_Msk (0x1UL << AFIO_EXTICR3_EXTI9_PB_Pos) /*!< 0x00000010 */ +#define AFIO_EXTICR3_EXTI9_PB AFIO_EXTICR3_EXTI9_PB_Msk /*!< PB[9] pin */ +#define AFIO_EXTICR3_EXTI9_PC_Pos (5U) +#define AFIO_EXTICR3_EXTI9_PC_Msk (0x1UL << AFIO_EXTICR3_EXTI9_PC_Pos) /*!< 0x00000020 */ +#define AFIO_EXTICR3_EXTI9_PC AFIO_EXTICR3_EXTI9_PC_Msk /*!< PC[9] pin */ +#define AFIO_EXTICR3_EXTI9_PD_Pos (4U) +#define AFIO_EXTICR3_EXTI9_PD_Msk (0x3UL << AFIO_EXTICR3_EXTI9_PD_Pos) /*!< 0x00000030 */ +#define AFIO_EXTICR3_EXTI9_PD AFIO_EXTICR3_EXTI9_PD_Msk /*!< PD[9] pin */ +#define AFIO_EXTICR3_EXTI9_PE_Pos (6U) +#define AFIO_EXTICR3_EXTI9_PE_Msk (0x1UL << AFIO_EXTICR3_EXTI9_PE_Pos) /*!< 0x00000040 */ +#define AFIO_EXTICR3_EXTI9_PE AFIO_EXTICR3_EXTI9_PE_Msk /*!< PE[9] pin */ +#define AFIO_EXTICR3_EXTI9_PF_Pos (4U) +#define AFIO_EXTICR3_EXTI9_PF_Msk (0x5UL << AFIO_EXTICR3_EXTI9_PF_Pos) /*!< 0x00000050 */ +#define AFIO_EXTICR3_EXTI9_PF AFIO_EXTICR3_EXTI9_PF_Msk /*!< PF[9] pin */ +#define AFIO_EXTICR3_EXTI9_PG_Pos (5U) +#define AFIO_EXTICR3_EXTI9_PG_Msk (0x3UL << AFIO_EXTICR3_EXTI9_PG_Pos) /*!< 0x00000060 */ +#define AFIO_EXTICR3_EXTI9_PG AFIO_EXTICR3_EXTI9_PG_Msk /*!< PG[9] pin */ + +/*!< EXTI10 configuration */ +#define AFIO_EXTICR3_EXTI10_PA 0x00000000U /*!< PA[10] pin */ +#define AFIO_EXTICR3_EXTI10_PB_Pos (8U) +#define AFIO_EXTICR3_EXTI10_PB_Msk (0x1UL << AFIO_EXTICR3_EXTI10_PB_Pos) /*!< 0x00000100 */ +#define AFIO_EXTICR3_EXTI10_PB AFIO_EXTICR3_EXTI10_PB_Msk /*!< PB[10] pin */ +#define AFIO_EXTICR3_EXTI10_PC_Pos (9U) +#define AFIO_EXTICR3_EXTI10_PC_Msk (0x1UL << AFIO_EXTICR3_EXTI10_PC_Pos) /*!< 0x00000200 */ +#define AFIO_EXTICR3_EXTI10_PC AFIO_EXTICR3_EXTI10_PC_Msk /*!< PC[10] pin */ +#define AFIO_EXTICR3_EXTI10_PD_Pos (8U) +#define AFIO_EXTICR3_EXTI10_PD_Msk (0x3UL << AFIO_EXTICR3_EXTI10_PD_Pos) /*!< 0x00000300 */ +#define AFIO_EXTICR3_EXTI10_PD AFIO_EXTICR3_EXTI10_PD_Msk /*!< PD[10] pin */ +#define AFIO_EXTICR3_EXTI10_PE_Pos (10U) +#define AFIO_EXTICR3_EXTI10_PE_Msk (0x1UL << AFIO_EXTICR3_EXTI10_PE_Pos) /*!< 0x00000400 */ +#define AFIO_EXTICR3_EXTI10_PE AFIO_EXTICR3_EXTI10_PE_Msk /*!< PE[10] pin */ +#define AFIO_EXTICR3_EXTI10_PF_Pos (8U) +#define AFIO_EXTICR3_EXTI10_PF_Msk (0x5UL << AFIO_EXTICR3_EXTI10_PF_Pos) /*!< 0x00000500 */ +#define AFIO_EXTICR3_EXTI10_PF AFIO_EXTICR3_EXTI10_PF_Msk /*!< PF[10] pin */ +#define AFIO_EXTICR3_EXTI10_PG_Pos (9U) +#define AFIO_EXTICR3_EXTI10_PG_Msk (0x3UL << AFIO_EXTICR3_EXTI10_PG_Pos) /*!< 0x00000600 */ +#define AFIO_EXTICR3_EXTI10_PG AFIO_EXTICR3_EXTI10_PG_Msk /*!< PG[10] pin */ + +/*!< EXTI11 configuration */ +#define AFIO_EXTICR3_EXTI11_PA 0x00000000U /*!< PA[11] pin */ +#define AFIO_EXTICR3_EXTI11_PB_Pos (12U) +#define AFIO_EXTICR3_EXTI11_PB_Msk (0x1UL << AFIO_EXTICR3_EXTI11_PB_Pos) /*!< 0x00001000 */ +#define AFIO_EXTICR3_EXTI11_PB AFIO_EXTICR3_EXTI11_PB_Msk /*!< PB[11] pin */ +#define AFIO_EXTICR3_EXTI11_PC_Pos (13U) +#define AFIO_EXTICR3_EXTI11_PC_Msk (0x1UL << AFIO_EXTICR3_EXTI11_PC_Pos) /*!< 0x00002000 */ +#define AFIO_EXTICR3_EXTI11_PC AFIO_EXTICR3_EXTI11_PC_Msk /*!< PC[11] pin */ +#define AFIO_EXTICR3_EXTI11_PD_Pos (12U) +#define AFIO_EXTICR3_EXTI11_PD_Msk (0x3UL << AFIO_EXTICR3_EXTI11_PD_Pos) /*!< 0x00003000 */ +#define AFIO_EXTICR3_EXTI11_PD AFIO_EXTICR3_EXTI11_PD_Msk /*!< PD[11] pin */ +#define AFIO_EXTICR3_EXTI11_PE_Pos (14U) +#define AFIO_EXTICR3_EXTI11_PE_Msk (0x1UL << AFIO_EXTICR3_EXTI11_PE_Pos) /*!< 0x00004000 */ +#define AFIO_EXTICR3_EXTI11_PE AFIO_EXTICR3_EXTI11_PE_Msk /*!< PE[11] pin */ +#define AFIO_EXTICR3_EXTI11_PF_Pos (12U) +#define AFIO_EXTICR3_EXTI11_PF_Msk (0x5UL << AFIO_EXTICR3_EXTI11_PF_Pos) /*!< 0x00005000 */ +#define AFIO_EXTICR3_EXTI11_PF AFIO_EXTICR3_EXTI11_PF_Msk /*!< PF[11] pin */ +#define AFIO_EXTICR3_EXTI11_PG_Pos (13U) +#define AFIO_EXTICR3_EXTI11_PG_Msk (0x3UL << AFIO_EXTICR3_EXTI11_PG_Pos) /*!< 0x00006000 */ +#define AFIO_EXTICR3_EXTI11_PG AFIO_EXTICR3_EXTI11_PG_Msk /*!< PG[11] pin */ + +/***************** Bit definition for AFIO_EXTICR4 register *****************/ +#define AFIO_EXTICR4_EXTI12_Pos (0U) +#define AFIO_EXTICR4_EXTI12_Msk (0xFUL << AFIO_EXTICR4_EXTI12_Pos) /*!< 0x0000000F */ +#define AFIO_EXTICR4_EXTI12 AFIO_EXTICR4_EXTI12_Msk /*!< EXTI 12 configuration */ +#define AFIO_EXTICR4_EXTI13_Pos (4U) +#define AFIO_EXTICR4_EXTI13_Msk (0xFUL << AFIO_EXTICR4_EXTI13_Pos) /*!< 0x000000F0 */ +#define AFIO_EXTICR4_EXTI13 AFIO_EXTICR4_EXTI13_Msk /*!< EXTI 13 configuration */ +#define AFIO_EXTICR4_EXTI14_Pos (8U) +#define AFIO_EXTICR4_EXTI14_Msk (0xFUL << AFIO_EXTICR4_EXTI14_Pos) /*!< 0x00000F00 */ +#define AFIO_EXTICR4_EXTI14 AFIO_EXTICR4_EXTI14_Msk /*!< EXTI 14 configuration */ +#define AFIO_EXTICR4_EXTI15_Pos (12U) +#define AFIO_EXTICR4_EXTI15_Msk (0xFUL << AFIO_EXTICR4_EXTI15_Pos) /*!< 0x0000F000 */ +#define AFIO_EXTICR4_EXTI15 AFIO_EXTICR4_EXTI15_Msk /*!< EXTI 15 configuration */ + +/* EXTI12 configuration */ +#define AFIO_EXTICR4_EXTI12_PA 0x00000000U /*!< PA[12] pin */ +#define AFIO_EXTICR4_EXTI12_PB_Pos (0U) +#define AFIO_EXTICR4_EXTI12_PB_Msk (0x1UL << AFIO_EXTICR4_EXTI12_PB_Pos) /*!< 0x00000001 */ +#define AFIO_EXTICR4_EXTI12_PB AFIO_EXTICR4_EXTI12_PB_Msk /*!< PB[12] pin */ +#define AFIO_EXTICR4_EXTI12_PC_Pos (1U) +#define AFIO_EXTICR4_EXTI12_PC_Msk (0x1UL << AFIO_EXTICR4_EXTI12_PC_Pos) /*!< 0x00000002 */ +#define AFIO_EXTICR4_EXTI12_PC AFIO_EXTICR4_EXTI12_PC_Msk /*!< PC[12] pin */ +#define AFIO_EXTICR4_EXTI12_PD_Pos (0U) +#define AFIO_EXTICR4_EXTI12_PD_Msk (0x3UL << AFIO_EXTICR4_EXTI12_PD_Pos) /*!< 0x00000003 */ +#define AFIO_EXTICR4_EXTI12_PD AFIO_EXTICR4_EXTI12_PD_Msk /*!< PD[12] pin */ +#define AFIO_EXTICR4_EXTI12_PE_Pos (2U) +#define AFIO_EXTICR4_EXTI12_PE_Msk (0x1UL << AFIO_EXTICR4_EXTI12_PE_Pos) /*!< 0x00000004 */ +#define AFIO_EXTICR4_EXTI12_PE AFIO_EXTICR4_EXTI12_PE_Msk /*!< PE[12] pin */ +#define AFIO_EXTICR4_EXTI12_PF_Pos (0U) +#define AFIO_EXTICR4_EXTI12_PF_Msk (0x5UL << AFIO_EXTICR4_EXTI12_PF_Pos) /*!< 0x00000005 */ +#define AFIO_EXTICR4_EXTI12_PF AFIO_EXTICR4_EXTI12_PF_Msk /*!< PF[12] pin */ +#define AFIO_EXTICR4_EXTI12_PG_Pos (1U) +#define AFIO_EXTICR4_EXTI12_PG_Msk (0x3UL << AFIO_EXTICR4_EXTI12_PG_Pos) /*!< 0x00000006 */ +#define AFIO_EXTICR4_EXTI12_PG AFIO_EXTICR4_EXTI12_PG_Msk /*!< PG[12] pin */ + +/* EXTI13 configuration */ +#define AFIO_EXTICR4_EXTI13_PA 0x00000000U /*!< PA[13] pin */ +#define AFIO_EXTICR4_EXTI13_PB_Pos (4U) +#define AFIO_EXTICR4_EXTI13_PB_Msk (0x1UL << AFIO_EXTICR4_EXTI13_PB_Pos) /*!< 0x00000010 */ +#define AFIO_EXTICR4_EXTI13_PB AFIO_EXTICR4_EXTI13_PB_Msk /*!< PB[13] pin */ +#define AFIO_EXTICR4_EXTI13_PC_Pos (5U) +#define AFIO_EXTICR4_EXTI13_PC_Msk (0x1UL << AFIO_EXTICR4_EXTI13_PC_Pos) /*!< 0x00000020 */ +#define AFIO_EXTICR4_EXTI13_PC AFIO_EXTICR4_EXTI13_PC_Msk /*!< PC[13] pin */ +#define AFIO_EXTICR4_EXTI13_PD_Pos (4U) +#define AFIO_EXTICR4_EXTI13_PD_Msk (0x3UL << AFIO_EXTICR4_EXTI13_PD_Pos) /*!< 0x00000030 */ +#define AFIO_EXTICR4_EXTI13_PD AFIO_EXTICR4_EXTI13_PD_Msk /*!< PD[13] pin */ +#define AFIO_EXTICR4_EXTI13_PE_Pos (6U) +#define AFIO_EXTICR4_EXTI13_PE_Msk (0x1UL << AFIO_EXTICR4_EXTI13_PE_Pos) /*!< 0x00000040 */ +#define AFIO_EXTICR4_EXTI13_PE AFIO_EXTICR4_EXTI13_PE_Msk /*!< PE[13] pin */ +#define AFIO_EXTICR4_EXTI13_PF_Pos (4U) +#define AFIO_EXTICR4_EXTI13_PF_Msk (0x5UL << AFIO_EXTICR4_EXTI13_PF_Pos) /*!< 0x00000050 */ +#define AFIO_EXTICR4_EXTI13_PF AFIO_EXTICR4_EXTI13_PF_Msk /*!< PF[13] pin */ +#define AFIO_EXTICR4_EXTI13_PG_Pos (5U) +#define AFIO_EXTICR4_EXTI13_PG_Msk (0x3UL << AFIO_EXTICR4_EXTI13_PG_Pos) /*!< 0x00000060 */ +#define AFIO_EXTICR4_EXTI13_PG AFIO_EXTICR4_EXTI13_PG_Msk /*!< PG[13] pin */ + +/*!< EXTI14 configuration */ +#define AFIO_EXTICR4_EXTI14_PA 0x00000000U /*!< PA[14] pin */ +#define AFIO_EXTICR4_EXTI14_PB_Pos (8U) +#define AFIO_EXTICR4_EXTI14_PB_Msk (0x1UL << AFIO_EXTICR4_EXTI14_PB_Pos) /*!< 0x00000100 */ +#define AFIO_EXTICR4_EXTI14_PB AFIO_EXTICR4_EXTI14_PB_Msk /*!< PB[14] pin */ +#define AFIO_EXTICR4_EXTI14_PC_Pos (9U) +#define AFIO_EXTICR4_EXTI14_PC_Msk (0x1UL << AFIO_EXTICR4_EXTI14_PC_Pos) /*!< 0x00000200 */ +#define AFIO_EXTICR4_EXTI14_PC AFIO_EXTICR4_EXTI14_PC_Msk /*!< PC[14] pin */ +#define AFIO_EXTICR4_EXTI14_PD_Pos (8U) +#define AFIO_EXTICR4_EXTI14_PD_Msk (0x3UL << AFIO_EXTICR4_EXTI14_PD_Pos) /*!< 0x00000300 */ +#define AFIO_EXTICR4_EXTI14_PD AFIO_EXTICR4_EXTI14_PD_Msk /*!< PD[14] pin */ +#define AFIO_EXTICR4_EXTI14_PE_Pos (10U) +#define AFIO_EXTICR4_EXTI14_PE_Msk (0x1UL << AFIO_EXTICR4_EXTI14_PE_Pos) /*!< 0x00000400 */ +#define AFIO_EXTICR4_EXTI14_PE AFIO_EXTICR4_EXTI14_PE_Msk /*!< PE[14] pin */ +#define AFIO_EXTICR4_EXTI14_PF_Pos (8U) +#define AFIO_EXTICR4_EXTI14_PF_Msk (0x5UL << AFIO_EXTICR4_EXTI14_PF_Pos) /*!< 0x00000500 */ +#define AFIO_EXTICR4_EXTI14_PF AFIO_EXTICR4_EXTI14_PF_Msk /*!< PF[14] pin */ +#define AFIO_EXTICR4_EXTI14_PG_Pos (9U) +#define AFIO_EXTICR4_EXTI14_PG_Msk (0x3UL << AFIO_EXTICR4_EXTI14_PG_Pos) /*!< 0x00000600 */ +#define AFIO_EXTICR4_EXTI14_PG AFIO_EXTICR4_EXTI14_PG_Msk /*!< PG[14] pin */ + +/*!< EXTI15 configuration */ +#define AFIO_EXTICR4_EXTI15_PA 0x00000000U /*!< PA[15] pin */ +#define AFIO_EXTICR4_EXTI15_PB_Pos (12U) +#define AFIO_EXTICR4_EXTI15_PB_Msk (0x1UL << AFIO_EXTICR4_EXTI15_PB_Pos) /*!< 0x00001000 */ +#define AFIO_EXTICR4_EXTI15_PB AFIO_EXTICR4_EXTI15_PB_Msk /*!< PB[15] pin */ +#define AFIO_EXTICR4_EXTI15_PC_Pos (13U) +#define AFIO_EXTICR4_EXTI15_PC_Msk (0x1UL << AFIO_EXTICR4_EXTI15_PC_Pos) /*!< 0x00002000 */ +#define AFIO_EXTICR4_EXTI15_PC AFIO_EXTICR4_EXTI15_PC_Msk /*!< PC[15] pin */ +#define AFIO_EXTICR4_EXTI15_PD_Pos (12U) +#define AFIO_EXTICR4_EXTI15_PD_Msk (0x3UL << AFIO_EXTICR4_EXTI15_PD_Pos) /*!< 0x00003000 */ +#define AFIO_EXTICR4_EXTI15_PD AFIO_EXTICR4_EXTI15_PD_Msk /*!< PD[15] pin */ +#define AFIO_EXTICR4_EXTI15_PE_Pos (14U) +#define AFIO_EXTICR4_EXTI15_PE_Msk (0x1UL << AFIO_EXTICR4_EXTI15_PE_Pos) /*!< 0x00004000 */ +#define AFIO_EXTICR4_EXTI15_PE AFIO_EXTICR4_EXTI15_PE_Msk /*!< PE[15] pin */ +#define AFIO_EXTICR4_EXTI15_PF_Pos (12U) +#define AFIO_EXTICR4_EXTI15_PF_Msk (0x5UL << AFIO_EXTICR4_EXTI15_PF_Pos) /*!< 0x00005000 */ +#define AFIO_EXTICR4_EXTI15_PF AFIO_EXTICR4_EXTI15_PF_Msk /*!< PF[15] pin */ +#define AFIO_EXTICR4_EXTI15_PG_Pos (13U) +#define AFIO_EXTICR4_EXTI15_PG_Msk (0x3UL << AFIO_EXTICR4_EXTI15_PG_Pos) /*!< 0x00006000 */ +#define AFIO_EXTICR4_EXTI15_PG AFIO_EXTICR4_EXTI15_PG_Msk /*!< PG[15] pin */ + +/****************** Bit definition for AFIO_MAPR2 register ******************/ + + + +/******************************************************************************/ +/* */ +/* External Interrupt/Event Controller */ +/* */ +/******************************************************************************/ + +/******************* Bit definition for EXTI_IMR register *******************/ +#define EXTI_IMR_MR0_Pos (0U) +#define EXTI_IMR_MR0_Msk (0x1UL << EXTI_IMR_MR0_Pos) /*!< 0x00000001 */ +#define EXTI_IMR_MR0 EXTI_IMR_MR0_Msk /*!< Interrupt Mask on line 0 */ +#define EXTI_IMR_MR1_Pos (1U) +#define EXTI_IMR_MR1_Msk (0x1UL << EXTI_IMR_MR1_Pos) /*!< 0x00000002 */ +#define EXTI_IMR_MR1 EXTI_IMR_MR1_Msk /*!< Interrupt Mask on line 1 */ +#define EXTI_IMR_MR2_Pos (2U) +#define EXTI_IMR_MR2_Msk (0x1UL << EXTI_IMR_MR2_Pos) /*!< 0x00000004 */ +#define EXTI_IMR_MR2 EXTI_IMR_MR2_Msk /*!< Interrupt Mask on line 2 */ +#define EXTI_IMR_MR3_Pos (3U) +#define EXTI_IMR_MR3_Msk (0x1UL << EXTI_IMR_MR3_Pos) /*!< 0x00000008 */ +#define EXTI_IMR_MR3 EXTI_IMR_MR3_Msk /*!< Interrupt Mask on line 3 */ +#define EXTI_IMR_MR4_Pos (4U) +#define EXTI_IMR_MR4_Msk (0x1UL << EXTI_IMR_MR4_Pos) /*!< 0x00000010 */ +#define EXTI_IMR_MR4 EXTI_IMR_MR4_Msk /*!< Interrupt Mask on line 4 */ +#define EXTI_IMR_MR5_Pos (5U) +#define EXTI_IMR_MR5_Msk (0x1UL << EXTI_IMR_MR5_Pos) /*!< 0x00000020 */ +#define EXTI_IMR_MR5 EXTI_IMR_MR5_Msk /*!< Interrupt Mask on line 5 */ +#define EXTI_IMR_MR6_Pos (6U) +#define EXTI_IMR_MR6_Msk (0x1UL << EXTI_IMR_MR6_Pos) /*!< 0x00000040 */ +#define EXTI_IMR_MR6 EXTI_IMR_MR6_Msk /*!< Interrupt Mask on line 6 */ +#define EXTI_IMR_MR7_Pos (7U) +#define EXTI_IMR_MR7_Msk (0x1UL << EXTI_IMR_MR7_Pos) /*!< 0x00000080 */ +#define EXTI_IMR_MR7 EXTI_IMR_MR7_Msk /*!< Interrupt Mask on line 7 */ +#define EXTI_IMR_MR8_Pos (8U) +#define EXTI_IMR_MR8_Msk (0x1UL << EXTI_IMR_MR8_Pos) /*!< 0x00000100 */ +#define EXTI_IMR_MR8 EXTI_IMR_MR8_Msk /*!< Interrupt Mask on line 8 */ +#define EXTI_IMR_MR9_Pos (9U) +#define EXTI_IMR_MR9_Msk (0x1UL << EXTI_IMR_MR9_Pos) /*!< 0x00000200 */ +#define EXTI_IMR_MR9 EXTI_IMR_MR9_Msk /*!< Interrupt Mask on line 9 */ +#define EXTI_IMR_MR10_Pos (10U) +#define EXTI_IMR_MR10_Msk (0x1UL << EXTI_IMR_MR10_Pos) /*!< 0x00000400 */ +#define EXTI_IMR_MR10 EXTI_IMR_MR10_Msk /*!< Interrupt Mask on line 10 */ +#define EXTI_IMR_MR11_Pos (11U) +#define EXTI_IMR_MR11_Msk (0x1UL << EXTI_IMR_MR11_Pos) /*!< 0x00000800 */ +#define EXTI_IMR_MR11 EXTI_IMR_MR11_Msk /*!< Interrupt Mask on line 11 */ +#define EXTI_IMR_MR12_Pos (12U) +#define EXTI_IMR_MR12_Msk (0x1UL << EXTI_IMR_MR12_Pos) /*!< 0x00001000 */ +#define EXTI_IMR_MR12 EXTI_IMR_MR12_Msk /*!< Interrupt Mask on line 12 */ +#define EXTI_IMR_MR13_Pos (13U) +#define EXTI_IMR_MR13_Msk (0x1UL << EXTI_IMR_MR13_Pos) /*!< 0x00002000 */ +#define EXTI_IMR_MR13 EXTI_IMR_MR13_Msk /*!< Interrupt Mask on line 13 */ +#define EXTI_IMR_MR14_Pos (14U) +#define EXTI_IMR_MR14_Msk (0x1UL << EXTI_IMR_MR14_Pos) /*!< 0x00004000 */ +#define EXTI_IMR_MR14 EXTI_IMR_MR14_Msk /*!< Interrupt Mask on line 14 */ +#define EXTI_IMR_MR15_Pos (15U) +#define EXTI_IMR_MR15_Msk (0x1UL << EXTI_IMR_MR15_Pos) /*!< 0x00008000 */ +#define EXTI_IMR_MR15 EXTI_IMR_MR15_Msk /*!< Interrupt Mask on line 15 */ +#define EXTI_IMR_MR16_Pos (16U) +#define EXTI_IMR_MR16_Msk (0x1UL << EXTI_IMR_MR16_Pos) /*!< 0x00010000 */ +#define EXTI_IMR_MR16 EXTI_IMR_MR16_Msk /*!< Interrupt Mask on line 16 */ +#define EXTI_IMR_MR17_Pos (17U) +#define EXTI_IMR_MR17_Msk (0x1UL << EXTI_IMR_MR17_Pos) /*!< 0x00020000 */ +#define EXTI_IMR_MR17 EXTI_IMR_MR17_Msk /*!< Interrupt Mask on line 17 */ +#define EXTI_IMR_MR18_Pos (18U) +#define EXTI_IMR_MR18_Msk (0x1UL << EXTI_IMR_MR18_Pos) /*!< 0x00040000 */ +#define EXTI_IMR_MR18 EXTI_IMR_MR18_Msk /*!< Interrupt Mask on line 18 */ + +/* References Defines */ +#define EXTI_IMR_IM0 EXTI_IMR_MR0 +#define EXTI_IMR_IM1 EXTI_IMR_MR1 +#define EXTI_IMR_IM2 EXTI_IMR_MR2 +#define EXTI_IMR_IM3 EXTI_IMR_MR3 +#define EXTI_IMR_IM4 EXTI_IMR_MR4 +#define EXTI_IMR_IM5 EXTI_IMR_MR5 +#define EXTI_IMR_IM6 EXTI_IMR_MR6 +#define EXTI_IMR_IM7 EXTI_IMR_MR7 +#define EXTI_IMR_IM8 EXTI_IMR_MR8 +#define EXTI_IMR_IM9 EXTI_IMR_MR9 +#define EXTI_IMR_IM10 EXTI_IMR_MR10 +#define EXTI_IMR_IM11 EXTI_IMR_MR11 +#define EXTI_IMR_IM12 EXTI_IMR_MR12 +#define EXTI_IMR_IM13 EXTI_IMR_MR13 +#define EXTI_IMR_IM14 EXTI_IMR_MR14 +#define EXTI_IMR_IM15 EXTI_IMR_MR15 +#define EXTI_IMR_IM16 EXTI_IMR_MR16 +#define EXTI_IMR_IM17 EXTI_IMR_MR17 +#define EXTI_IMR_IM18 EXTI_IMR_MR18 +#define EXTI_IMR_IM 0x0007FFFFU /*!< Interrupt Mask All */ + +/******************* Bit definition for EXTI_EMR register *******************/ +#define EXTI_EMR_MR0_Pos (0U) +#define EXTI_EMR_MR0_Msk (0x1UL << EXTI_EMR_MR0_Pos) /*!< 0x00000001 */ +#define EXTI_EMR_MR0 EXTI_EMR_MR0_Msk /*!< Event Mask on line 0 */ +#define EXTI_EMR_MR1_Pos (1U) +#define EXTI_EMR_MR1_Msk (0x1UL << EXTI_EMR_MR1_Pos) /*!< 0x00000002 */ +#define EXTI_EMR_MR1 EXTI_EMR_MR1_Msk /*!< Event Mask on line 1 */ +#define EXTI_EMR_MR2_Pos (2U) +#define EXTI_EMR_MR2_Msk (0x1UL << EXTI_EMR_MR2_Pos) /*!< 0x00000004 */ +#define EXTI_EMR_MR2 EXTI_EMR_MR2_Msk /*!< Event Mask on line 2 */ +#define EXTI_EMR_MR3_Pos (3U) +#define EXTI_EMR_MR3_Msk (0x1UL << EXTI_EMR_MR3_Pos) /*!< 0x00000008 */ +#define EXTI_EMR_MR3 EXTI_EMR_MR3_Msk /*!< Event Mask on line 3 */ +#define EXTI_EMR_MR4_Pos (4U) +#define EXTI_EMR_MR4_Msk (0x1UL << EXTI_EMR_MR4_Pos) /*!< 0x00000010 */ +#define EXTI_EMR_MR4 EXTI_EMR_MR4_Msk /*!< Event Mask on line 4 */ +#define EXTI_EMR_MR5_Pos (5U) +#define EXTI_EMR_MR5_Msk (0x1UL << EXTI_EMR_MR5_Pos) /*!< 0x00000020 */ +#define EXTI_EMR_MR5 EXTI_EMR_MR5_Msk /*!< Event Mask on line 5 */ +#define EXTI_EMR_MR6_Pos (6U) +#define EXTI_EMR_MR6_Msk (0x1UL << EXTI_EMR_MR6_Pos) /*!< 0x00000040 */ +#define EXTI_EMR_MR6 EXTI_EMR_MR6_Msk /*!< Event Mask on line 6 */ +#define EXTI_EMR_MR7_Pos (7U) +#define EXTI_EMR_MR7_Msk (0x1UL << EXTI_EMR_MR7_Pos) /*!< 0x00000080 */ +#define EXTI_EMR_MR7 EXTI_EMR_MR7_Msk /*!< Event Mask on line 7 */ +#define EXTI_EMR_MR8_Pos (8U) +#define EXTI_EMR_MR8_Msk (0x1UL << EXTI_EMR_MR8_Pos) /*!< 0x00000100 */ +#define EXTI_EMR_MR8 EXTI_EMR_MR8_Msk /*!< Event Mask on line 8 */ +#define EXTI_EMR_MR9_Pos (9U) +#define EXTI_EMR_MR9_Msk (0x1UL << EXTI_EMR_MR9_Pos) /*!< 0x00000200 */ +#define EXTI_EMR_MR9 EXTI_EMR_MR9_Msk /*!< Event Mask on line 9 */ +#define EXTI_EMR_MR10_Pos (10U) +#define EXTI_EMR_MR10_Msk (0x1UL << EXTI_EMR_MR10_Pos) /*!< 0x00000400 */ +#define EXTI_EMR_MR10 EXTI_EMR_MR10_Msk /*!< Event Mask on line 10 */ +#define EXTI_EMR_MR11_Pos (11U) +#define EXTI_EMR_MR11_Msk (0x1UL << EXTI_EMR_MR11_Pos) /*!< 0x00000800 */ +#define EXTI_EMR_MR11 EXTI_EMR_MR11_Msk /*!< Event Mask on line 11 */ +#define EXTI_EMR_MR12_Pos (12U) +#define EXTI_EMR_MR12_Msk (0x1UL << EXTI_EMR_MR12_Pos) /*!< 0x00001000 */ +#define EXTI_EMR_MR12 EXTI_EMR_MR12_Msk /*!< Event Mask on line 12 */ +#define EXTI_EMR_MR13_Pos (13U) +#define EXTI_EMR_MR13_Msk (0x1UL << EXTI_EMR_MR13_Pos) /*!< 0x00002000 */ +#define EXTI_EMR_MR13 EXTI_EMR_MR13_Msk /*!< Event Mask on line 13 */ +#define EXTI_EMR_MR14_Pos (14U) +#define EXTI_EMR_MR14_Msk (0x1UL << EXTI_EMR_MR14_Pos) /*!< 0x00004000 */ +#define EXTI_EMR_MR14 EXTI_EMR_MR14_Msk /*!< Event Mask on line 14 */ +#define EXTI_EMR_MR15_Pos (15U) +#define EXTI_EMR_MR15_Msk (0x1UL << EXTI_EMR_MR15_Pos) /*!< 0x00008000 */ +#define EXTI_EMR_MR15 EXTI_EMR_MR15_Msk /*!< Event Mask on line 15 */ +#define EXTI_EMR_MR16_Pos (16U) +#define EXTI_EMR_MR16_Msk (0x1UL << EXTI_EMR_MR16_Pos) /*!< 0x00010000 */ +#define EXTI_EMR_MR16 EXTI_EMR_MR16_Msk /*!< Event Mask on line 16 */ +#define EXTI_EMR_MR17_Pos (17U) +#define EXTI_EMR_MR17_Msk (0x1UL << EXTI_EMR_MR17_Pos) /*!< 0x00020000 */ +#define EXTI_EMR_MR17 EXTI_EMR_MR17_Msk /*!< Event Mask on line 17 */ +#define EXTI_EMR_MR18_Pos (18U) +#define EXTI_EMR_MR18_Msk (0x1UL << EXTI_EMR_MR18_Pos) /*!< 0x00040000 */ +#define EXTI_EMR_MR18 EXTI_EMR_MR18_Msk /*!< Event Mask on line 18 */ + +/* References Defines */ +#define EXTI_EMR_EM0 EXTI_EMR_MR0 +#define EXTI_EMR_EM1 EXTI_EMR_MR1 +#define EXTI_EMR_EM2 EXTI_EMR_MR2 +#define EXTI_EMR_EM3 EXTI_EMR_MR3 +#define EXTI_EMR_EM4 EXTI_EMR_MR4 +#define EXTI_EMR_EM5 EXTI_EMR_MR5 +#define EXTI_EMR_EM6 EXTI_EMR_MR6 +#define EXTI_EMR_EM7 EXTI_EMR_MR7 +#define EXTI_EMR_EM8 EXTI_EMR_MR8 +#define EXTI_EMR_EM9 EXTI_EMR_MR9 +#define EXTI_EMR_EM10 EXTI_EMR_MR10 +#define EXTI_EMR_EM11 EXTI_EMR_MR11 +#define EXTI_EMR_EM12 EXTI_EMR_MR12 +#define EXTI_EMR_EM13 EXTI_EMR_MR13 +#define EXTI_EMR_EM14 EXTI_EMR_MR14 +#define EXTI_EMR_EM15 EXTI_EMR_MR15 +#define EXTI_EMR_EM16 EXTI_EMR_MR16 +#define EXTI_EMR_EM17 EXTI_EMR_MR17 +#define EXTI_EMR_EM18 EXTI_EMR_MR18 + +/****************** Bit definition for EXTI_RTSR register *******************/ +#define EXTI_RTSR_TR0_Pos (0U) +#define EXTI_RTSR_TR0_Msk (0x1UL << EXTI_RTSR_TR0_Pos) /*!< 0x00000001 */ +#define EXTI_RTSR_TR0 EXTI_RTSR_TR0_Msk /*!< Rising trigger event configuration bit of line 0 */ +#define EXTI_RTSR_TR1_Pos (1U) +#define EXTI_RTSR_TR1_Msk (0x1UL << EXTI_RTSR_TR1_Pos) /*!< 0x00000002 */ +#define EXTI_RTSR_TR1 EXTI_RTSR_TR1_Msk /*!< Rising trigger event configuration bit of line 1 */ +#define EXTI_RTSR_TR2_Pos (2U) +#define EXTI_RTSR_TR2_Msk (0x1UL << EXTI_RTSR_TR2_Pos) /*!< 0x00000004 */ +#define EXTI_RTSR_TR2 EXTI_RTSR_TR2_Msk /*!< Rising trigger event configuration bit of line 2 */ +#define EXTI_RTSR_TR3_Pos (3U) +#define EXTI_RTSR_TR3_Msk (0x1UL << EXTI_RTSR_TR3_Pos) /*!< 0x00000008 */ +#define EXTI_RTSR_TR3 EXTI_RTSR_TR3_Msk /*!< Rising trigger event configuration bit of line 3 */ +#define EXTI_RTSR_TR4_Pos (4U) +#define EXTI_RTSR_TR4_Msk (0x1UL << EXTI_RTSR_TR4_Pos) /*!< 0x00000010 */ +#define EXTI_RTSR_TR4 EXTI_RTSR_TR4_Msk /*!< Rising trigger event configuration bit of line 4 */ +#define EXTI_RTSR_TR5_Pos (5U) +#define EXTI_RTSR_TR5_Msk (0x1UL << EXTI_RTSR_TR5_Pos) /*!< 0x00000020 */ +#define EXTI_RTSR_TR5 EXTI_RTSR_TR5_Msk /*!< Rising trigger event configuration bit of line 5 */ +#define EXTI_RTSR_TR6_Pos (6U) +#define EXTI_RTSR_TR6_Msk (0x1UL << EXTI_RTSR_TR6_Pos) /*!< 0x00000040 */ +#define EXTI_RTSR_TR6 EXTI_RTSR_TR6_Msk /*!< Rising trigger event configuration bit of line 6 */ +#define EXTI_RTSR_TR7_Pos (7U) +#define EXTI_RTSR_TR7_Msk (0x1UL << EXTI_RTSR_TR7_Pos) /*!< 0x00000080 */ +#define EXTI_RTSR_TR7 EXTI_RTSR_TR7_Msk /*!< Rising trigger event configuration bit of line 7 */ +#define EXTI_RTSR_TR8_Pos (8U) +#define EXTI_RTSR_TR8_Msk (0x1UL << EXTI_RTSR_TR8_Pos) /*!< 0x00000100 */ +#define EXTI_RTSR_TR8 EXTI_RTSR_TR8_Msk /*!< Rising trigger event configuration bit of line 8 */ +#define EXTI_RTSR_TR9_Pos (9U) +#define EXTI_RTSR_TR9_Msk (0x1UL << EXTI_RTSR_TR9_Pos) /*!< 0x00000200 */ +#define EXTI_RTSR_TR9 EXTI_RTSR_TR9_Msk /*!< Rising trigger event configuration bit of line 9 */ +#define EXTI_RTSR_TR10_Pos (10U) +#define EXTI_RTSR_TR10_Msk (0x1UL << EXTI_RTSR_TR10_Pos) /*!< 0x00000400 */ +#define EXTI_RTSR_TR10 EXTI_RTSR_TR10_Msk /*!< Rising trigger event configuration bit of line 10 */ +#define EXTI_RTSR_TR11_Pos (11U) +#define EXTI_RTSR_TR11_Msk (0x1UL << EXTI_RTSR_TR11_Pos) /*!< 0x00000800 */ +#define EXTI_RTSR_TR11 EXTI_RTSR_TR11_Msk /*!< Rising trigger event configuration bit of line 11 */ +#define EXTI_RTSR_TR12_Pos (12U) +#define EXTI_RTSR_TR12_Msk (0x1UL << EXTI_RTSR_TR12_Pos) /*!< 0x00001000 */ +#define EXTI_RTSR_TR12 EXTI_RTSR_TR12_Msk /*!< Rising trigger event configuration bit of line 12 */ +#define EXTI_RTSR_TR13_Pos (13U) +#define EXTI_RTSR_TR13_Msk (0x1UL << EXTI_RTSR_TR13_Pos) /*!< 0x00002000 */ +#define EXTI_RTSR_TR13 EXTI_RTSR_TR13_Msk /*!< Rising trigger event configuration bit of line 13 */ +#define EXTI_RTSR_TR14_Pos (14U) +#define EXTI_RTSR_TR14_Msk (0x1UL << EXTI_RTSR_TR14_Pos) /*!< 0x00004000 */ +#define EXTI_RTSR_TR14 EXTI_RTSR_TR14_Msk /*!< Rising trigger event configuration bit of line 14 */ +#define EXTI_RTSR_TR15_Pos (15U) +#define EXTI_RTSR_TR15_Msk (0x1UL << EXTI_RTSR_TR15_Pos) /*!< 0x00008000 */ +#define EXTI_RTSR_TR15 EXTI_RTSR_TR15_Msk /*!< Rising trigger event configuration bit of line 15 */ +#define EXTI_RTSR_TR16_Pos (16U) +#define EXTI_RTSR_TR16_Msk (0x1UL << EXTI_RTSR_TR16_Pos) /*!< 0x00010000 */ +#define EXTI_RTSR_TR16 EXTI_RTSR_TR16_Msk /*!< Rising trigger event configuration bit of line 16 */ +#define EXTI_RTSR_TR17_Pos (17U) +#define EXTI_RTSR_TR17_Msk (0x1UL << EXTI_RTSR_TR17_Pos) /*!< 0x00020000 */ +#define EXTI_RTSR_TR17 EXTI_RTSR_TR17_Msk /*!< Rising trigger event configuration bit of line 17 */ +#define EXTI_RTSR_TR18_Pos (18U) +#define EXTI_RTSR_TR18_Msk (0x1UL << EXTI_RTSR_TR18_Pos) /*!< 0x00040000 */ +#define EXTI_RTSR_TR18 EXTI_RTSR_TR18_Msk /*!< Rising trigger event configuration bit of line 18 */ + +/* References Defines */ +#define EXTI_RTSR_RT0 EXTI_RTSR_TR0 +#define EXTI_RTSR_RT1 EXTI_RTSR_TR1 +#define EXTI_RTSR_RT2 EXTI_RTSR_TR2 +#define EXTI_RTSR_RT3 EXTI_RTSR_TR3 +#define EXTI_RTSR_RT4 EXTI_RTSR_TR4 +#define EXTI_RTSR_RT5 EXTI_RTSR_TR5 +#define EXTI_RTSR_RT6 EXTI_RTSR_TR6 +#define EXTI_RTSR_RT7 EXTI_RTSR_TR7 +#define EXTI_RTSR_RT8 EXTI_RTSR_TR8 +#define EXTI_RTSR_RT9 EXTI_RTSR_TR9 +#define EXTI_RTSR_RT10 EXTI_RTSR_TR10 +#define EXTI_RTSR_RT11 EXTI_RTSR_TR11 +#define EXTI_RTSR_RT12 EXTI_RTSR_TR12 +#define EXTI_RTSR_RT13 EXTI_RTSR_TR13 +#define EXTI_RTSR_RT14 EXTI_RTSR_TR14 +#define EXTI_RTSR_RT15 EXTI_RTSR_TR15 +#define EXTI_RTSR_RT16 EXTI_RTSR_TR16 +#define EXTI_RTSR_RT17 EXTI_RTSR_TR17 +#define EXTI_RTSR_RT18 EXTI_RTSR_TR18 + +/****************** Bit definition for EXTI_FTSR register *******************/ +#define EXTI_FTSR_TR0_Pos (0U) +#define EXTI_FTSR_TR0_Msk (0x1UL << EXTI_FTSR_TR0_Pos) /*!< 0x00000001 */ +#define EXTI_FTSR_TR0 EXTI_FTSR_TR0_Msk /*!< Falling trigger event configuration bit of line 0 */ +#define EXTI_FTSR_TR1_Pos (1U) +#define EXTI_FTSR_TR1_Msk (0x1UL << EXTI_FTSR_TR1_Pos) /*!< 0x00000002 */ +#define EXTI_FTSR_TR1 EXTI_FTSR_TR1_Msk /*!< Falling trigger event configuration bit of line 1 */ +#define EXTI_FTSR_TR2_Pos (2U) +#define EXTI_FTSR_TR2_Msk (0x1UL << EXTI_FTSR_TR2_Pos) /*!< 0x00000004 */ +#define EXTI_FTSR_TR2 EXTI_FTSR_TR2_Msk /*!< Falling trigger event configuration bit of line 2 */ +#define EXTI_FTSR_TR3_Pos (3U) +#define EXTI_FTSR_TR3_Msk (0x1UL << EXTI_FTSR_TR3_Pos) /*!< 0x00000008 */ +#define EXTI_FTSR_TR3 EXTI_FTSR_TR3_Msk /*!< Falling trigger event configuration bit of line 3 */ +#define EXTI_FTSR_TR4_Pos (4U) +#define EXTI_FTSR_TR4_Msk (0x1UL << EXTI_FTSR_TR4_Pos) /*!< 0x00000010 */ +#define EXTI_FTSR_TR4 EXTI_FTSR_TR4_Msk /*!< Falling trigger event configuration bit of line 4 */ +#define EXTI_FTSR_TR5_Pos (5U) +#define EXTI_FTSR_TR5_Msk (0x1UL << EXTI_FTSR_TR5_Pos) /*!< 0x00000020 */ +#define EXTI_FTSR_TR5 EXTI_FTSR_TR5_Msk /*!< Falling trigger event configuration bit of line 5 */ +#define EXTI_FTSR_TR6_Pos (6U) +#define EXTI_FTSR_TR6_Msk (0x1UL << EXTI_FTSR_TR6_Pos) /*!< 0x00000040 */ +#define EXTI_FTSR_TR6 EXTI_FTSR_TR6_Msk /*!< Falling trigger event configuration bit of line 6 */ +#define EXTI_FTSR_TR7_Pos (7U) +#define EXTI_FTSR_TR7_Msk (0x1UL << EXTI_FTSR_TR7_Pos) /*!< 0x00000080 */ +#define EXTI_FTSR_TR7 EXTI_FTSR_TR7_Msk /*!< Falling trigger event configuration bit of line 7 */ +#define EXTI_FTSR_TR8_Pos (8U) +#define EXTI_FTSR_TR8_Msk (0x1UL << EXTI_FTSR_TR8_Pos) /*!< 0x00000100 */ +#define EXTI_FTSR_TR8 EXTI_FTSR_TR8_Msk /*!< Falling trigger event configuration bit of line 8 */ +#define EXTI_FTSR_TR9_Pos (9U) +#define EXTI_FTSR_TR9_Msk (0x1UL << EXTI_FTSR_TR9_Pos) /*!< 0x00000200 */ +#define EXTI_FTSR_TR9 EXTI_FTSR_TR9_Msk /*!< Falling trigger event configuration bit of line 9 */ +#define EXTI_FTSR_TR10_Pos (10U) +#define EXTI_FTSR_TR10_Msk (0x1UL << EXTI_FTSR_TR10_Pos) /*!< 0x00000400 */ +#define EXTI_FTSR_TR10 EXTI_FTSR_TR10_Msk /*!< Falling trigger event configuration bit of line 10 */ +#define EXTI_FTSR_TR11_Pos (11U) +#define EXTI_FTSR_TR11_Msk (0x1UL << EXTI_FTSR_TR11_Pos) /*!< 0x00000800 */ +#define EXTI_FTSR_TR11 EXTI_FTSR_TR11_Msk /*!< Falling trigger event configuration bit of line 11 */ +#define EXTI_FTSR_TR12_Pos (12U) +#define EXTI_FTSR_TR12_Msk (0x1UL << EXTI_FTSR_TR12_Pos) /*!< 0x00001000 */ +#define EXTI_FTSR_TR12 EXTI_FTSR_TR12_Msk /*!< Falling trigger event configuration bit of line 12 */ +#define EXTI_FTSR_TR13_Pos (13U) +#define EXTI_FTSR_TR13_Msk (0x1UL << EXTI_FTSR_TR13_Pos) /*!< 0x00002000 */ +#define EXTI_FTSR_TR13 EXTI_FTSR_TR13_Msk /*!< Falling trigger event configuration bit of line 13 */ +#define EXTI_FTSR_TR14_Pos (14U) +#define EXTI_FTSR_TR14_Msk (0x1UL << EXTI_FTSR_TR14_Pos) /*!< 0x00004000 */ +#define EXTI_FTSR_TR14 EXTI_FTSR_TR14_Msk /*!< Falling trigger event configuration bit of line 14 */ +#define EXTI_FTSR_TR15_Pos (15U) +#define EXTI_FTSR_TR15_Msk (0x1UL << EXTI_FTSR_TR15_Pos) /*!< 0x00008000 */ +#define EXTI_FTSR_TR15 EXTI_FTSR_TR15_Msk /*!< Falling trigger event configuration bit of line 15 */ +#define EXTI_FTSR_TR16_Pos (16U) +#define EXTI_FTSR_TR16_Msk (0x1UL << EXTI_FTSR_TR16_Pos) /*!< 0x00010000 */ +#define EXTI_FTSR_TR16 EXTI_FTSR_TR16_Msk /*!< Falling trigger event configuration bit of line 16 */ +#define EXTI_FTSR_TR17_Pos (17U) +#define EXTI_FTSR_TR17_Msk (0x1UL << EXTI_FTSR_TR17_Pos) /*!< 0x00020000 */ +#define EXTI_FTSR_TR17 EXTI_FTSR_TR17_Msk /*!< Falling trigger event configuration bit of line 17 */ +#define EXTI_FTSR_TR18_Pos (18U) +#define EXTI_FTSR_TR18_Msk (0x1UL << EXTI_FTSR_TR18_Pos) /*!< 0x00040000 */ +#define EXTI_FTSR_TR18 EXTI_FTSR_TR18_Msk /*!< Falling trigger event configuration bit of line 18 */ + +/* References Defines */ +#define EXTI_FTSR_FT0 EXTI_FTSR_TR0 +#define EXTI_FTSR_FT1 EXTI_FTSR_TR1 +#define EXTI_FTSR_FT2 EXTI_FTSR_TR2 +#define EXTI_FTSR_FT3 EXTI_FTSR_TR3 +#define EXTI_FTSR_FT4 EXTI_FTSR_TR4 +#define EXTI_FTSR_FT5 EXTI_FTSR_TR5 +#define EXTI_FTSR_FT6 EXTI_FTSR_TR6 +#define EXTI_FTSR_FT7 EXTI_FTSR_TR7 +#define EXTI_FTSR_FT8 EXTI_FTSR_TR8 +#define EXTI_FTSR_FT9 EXTI_FTSR_TR9 +#define EXTI_FTSR_FT10 EXTI_FTSR_TR10 +#define EXTI_FTSR_FT11 EXTI_FTSR_TR11 +#define EXTI_FTSR_FT12 EXTI_FTSR_TR12 +#define EXTI_FTSR_FT13 EXTI_FTSR_TR13 +#define EXTI_FTSR_FT14 EXTI_FTSR_TR14 +#define EXTI_FTSR_FT15 EXTI_FTSR_TR15 +#define EXTI_FTSR_FT16 EXTI_FTSR_TR16 +#define EXTI_FTSR_FT17 EXTI_FTSR_TR17 +#define EXTI_FTSR_FT18 EXTI_FTSR_TR18 + +/****************** Bit definition for EXTI_SWIER register ******************/ +#define EXTI_SWIER_SWIER0_Pos (0U) +#define EXTI_SWIER_SWIER0_Msk (0x1UL << EXTI_SWIER_SWIER0_Pos) /*!< 0x00000001 */ +#define EXTI_SWIER_SWIER0 EXTI_SWIER_SWIER0_Msk /*!< Software Interrupt on line 0 */ +#define EXTI_SWIER_SWIER1_Pos (1U) +#define EXTI_SWIER_SWIER1_Msk (0x1UL << EXTI_SWIER_SWIER1_Pos) /*!< 0x00000002 */ +#define EXTI_SWIER_SWIER1 EXTI_SWIER_SWIER1_Msk /*!< Software Interrupt on line 1 */ +#define EXTI_SWIER_SWIER2_Pos (2U) +#define EXTI_SWIER_SWIER2_Msk (0x1UL << EXTI_SWIER_SWIER2_Pos) /*!< 0x00000004 */ +#define EXTI_SWIER_SWIER2 EXTI_SWIER_SWIER2_Msk /*!< Software Interrupt on line 2 */ +#define EXTI_SWIER_SWIER3_Pos (3U) +#define EXTI_SWIER_SWIER3_Msk (0x1UL << EXTI_SWIER_SWIER3_Pos) /*!< 0x00000008 */ +#define EXTI_SWIER_SWIER3 EXTI_SWIER_SWIER3_Msk /*!< Software Interrupt on line 3 */ +#define EXTI_SWIER_SWIER4_Pos (4U) +#define EXTI_SWIER_SWIER4_Msk (0x1UL << EXTI_SWIER_SWIER4_Pos) /*!< 0x00000010 */ +#define EXTI_SWIER_SWIER4 EXTI_SWIER_SWIER4_Msk /*!< Software Interrupt on line 4 */ +#define EXTI_SWIER_SWIER5_Pos (5U) +#define EXTI_SWIER_SWIER5_Msk (0x1UL << EXTI_SWIER_SWIER5_Pos) /*!< 0x00000020 */ +#define EXTI_SWIER_SWIER5 EXTI_SWIER_SWIER5_Msk /*!< Software Interrupt on line 5 */ +#define EXTI_SWIER_SWIER6_Pos (6U) +#define EXTI_SWIER_SWIER6_Msk (0x1UL << EXTI_SWIER_SWIER6_Pos) /*!< 0x00000040 */ +#define EXTI_SWIER_SWIER6 EXTI_SWIER_SWIER6_Msk /*!< Software Interrupt on line 6 */ +#define EXTI_SWIER_SWIER7_Pos (7U) +#define EXTI_SWIER_SWIER7_Msk (0x1UL << EXTI_SWIER_SWIER7_Pos) /*!< 0x00000080 */ +#define EXTI_SWIER_SWIER7 EXTI_SWIER_SWIER7_Msk /*!< Software Interrupt on line 7 */ +#define EXTI_SWIER_SWIER8_Pos (8U) +#define EXTI_SWIER_SWIER8_Msk (0x1UL << EXTI_SWIER_SWIER8_Pos) /*!< 0x00000100 */ +#define EXTI_SWIER_SWIER8 EXTI_SWIER_SWIER8_Msk /*!< Software Interrupt on line 8 */ +#define EXTI_SWIER_SWIER9_Pos (9U) +#define EXTI_SWIER_SWIER9_Msk (0x1UL << EXTI_SWIER_SWIER9_Pos) /*!< 0x00000200 */ +#define EXTI_SWIER_SWIER9 EXTI_SWIER_SWIER9_Msk /*!< Software Interrupt on line 9 */ +#define EXTI_SWIER_SWIER10_Pos (10U) +#define EXTI_SWIER_SWIER10_Msk (0x1UL << EXTI_SWIER_SWIER10_Pos) /*!< 0x00000400 */ +#define EXTI_SWIER_SWIER10 EXTI_SWIER_SWIER10_Msk /*!< Software Interrupt on line 10 */ +#define EXTI_SWIER_SWIER11_Pos (11U) +#define EXTI_SWIER_SWIER11_Msk (0x1UL << EXTI_SWIER_SWIER11_Pos) /*!< 0x00000800 */ +#define EXTI_SWIER_SWIER11 EXTI_SWIER_SWIER11_Msk /*!< Software Interrupt on line 11 */ +#define EXTI_SWIER_SWIER12_Pos (12U) +#define EXTI_SWIER_SWIER12_Msk (0x1UL << EXTI_SWIER_SWIER12_Pos) /*!< 0x00001000 */ +#define EXTI_SWIER_SWIER12 EXTI_SWIER_SWIER12_Msk /*!< Software Interrupt on line 12 */ +#define EXTI_SWIER_SWIER13_Pos (13U) +#define EXTI_SWIER_SWIER13_Msk (0x1UL << EXTI_SWIER_SWIER13_Pos) /*!< 0x00002000 */ +#define EXTI_SWIER_SWIER13 EXTI_SWIER_SWIER13_Msk /*!< Software Interrupt on line 13 */ +#define EXTI_SWIER_SWIER14_Pos (14U) +#define EXTI_SWIER_SWIER14_Msk (0x1UL << EXTI_SWIER_SWIER14_Pos) /*!< 0x00004000 */ +#define EXTI_SWIER_SWIER14 EXTI_SWIER_SWIER14_Msk /*!< Software Interrupt on line 14 */ +#define EXTI_SWIER_SWIER15_Pos (15U) +#define EXTI_SWIER_SWIER15_Msk (0x1UL << EXTI_SWIER_SWIER15_Pos) /*!< 0x00008000 */ +#define EXTI_SWIER_SWIER15 EXTI_SWIER_SWIER15_Msk /*!< Software Interrupt on line 15 */ +#define EXTI_SWIER_SWIER16_Pos (16U) +#define EXTI_SWIER_SWIER16_Msk (0x1UL << EXTI_SWIER_SWIER16_Pos) /*!< 0x00010000 */ +#define EXTI_SWIER_SWIER16 EXTI_SWIER_SWIER16_Msk /*!< Software Interrupt on line 16 */ +#define EXTI_SWIER_SWIER17_Pos (17U) +#define EXTI_SWIER_SWIER17_Msk (0x1UL << EXTI_SWIER_SWIER17_Pos) /*!< 0x00020000 */ +#define EXTI_SWIER_SWIER17 EXTI_SWIER_SWIER17_Msk /*!< Software Interrupt on line 17 */ +#define EXTI_SWIER_SWIER18_Pos (18U) +#define EXTI_SWIER_SWIER18_Msk (0x1UL << EXTI_SWIER_SWIER18_Pos) /*!< 0x00040000 */ +#define EXTI_SWIER_SWIER18 EXTI_SWIER_SWIER18_Msk /*!< Software Interrupt on line 18 */ + +/* References Defines */ +#define EXTI_SWIER_SWI0 EXTI_SWIER_SWIER0 +#define EXTI_SWIER_SWI1 EXTI_SWIER_SWIER1 +#define EXTI_SWIER_SWI2 EXTI_SWIER_SWIER2 +#define EXTI_SWIER_SWI3 EXTI_SWIER_SWIER3 +#define EXTI_SWIER_SWI4 EXTI_SWIER_SWIER4 +#define EXTI_SWIER_SWI5 EXTI_SWIER_SWIER5 +#define EXTI_SWIER_SWI6 EXTI_SWIER_SWIER6 +#define EXTI_SWIER_SWI7 EXTI_SWIER_SWIER7 +#define EXTI_SWIER_SWI8 EXTI_SWIER_SWIER8 +#define EXTI_SWIER_SWI9 EXTI_SWIER_SWIER9 +#define EXTI_SWIER_SWI10 EXTI_SWIER_SWIER10 +#define EXTI_SWIER_SWI11 EXTI_SWIER_SWIER11 +#define EXTI_SWIER_SWI12 EXTI_SWIER_SWIER12 +#define EXTI_SWIER_SWI13 EXTI_SWIER_SWIER13 +#define EXTI_SWIER_SWI14 EXTI_SWIER_SWIER14 +#define EXTI_SWIER_SWI15 EXTI_SWIER_SWIER15 +#define EXTI_SWIER_SWI16 EXTI_SWIER_SWIER16 +#define EXTI_SWIER_SWI17 EXTI_SWIER_SWIER17 +#define EXTI_SWIER_SWI18 EXTI_SWIER_SWIER18 + +/******************* Bit definition for EXTI_PR register ********************/ +#define EXTI_PR_PR0_Pos (0U) +#define EXTI_PR_PR0_Msk (0x1UL << EXTI_PR_PR0_Pos) /*!< 0x00000001 */ +#define EXTI_PR_PR0 EXTI_PR_PR0_Msk /*!< Pending bit for line 0 */ +#define EXTI_PR_PR1_Pos (1U) +#define EXTI_PR_PR1_Msk (0x1UL << EXTI_PR_PR1_Pos) /*!< 0x00000002 */ +#define EXTI_PR_PR1 EXTI_PR_PR1_Msk /*!< Pending bit for line 1 */ +#define EXTI_PR_PR2_Pos (2U) +#define EXTI_PR_PR2_Msk (0x1UL << EXTI_PR_PR2_Pos) /*!< 0x00000004 */ +#define EXTI_PR_PR2 EXTI_PR_PR2_Msk /*!< Pending bit for line 2 */ +#define EXTI_PR_PR3_Pos (3U) +#define EXTI_PR_PR3_Msk (0x1UL << EXTI_PR_PR3_Pos) /*!< 0x00000008 */ +#define EXTI_PR_PR3 EXTI_PR_PR3_Msk /*!< Pending bit for line 3 */ +#define EXTI_PR_PR4_Pos (4U) +#define EXTI_PR_PR4_Msk (0x1UL << EXTI_PR_PR4_Pos) /*!< 0x00000010 */ +#define EXTI_PR_PR4 EXTI_PR_PR4_Msk /*!< Pending bit for line 4 */ +#define EXTI_PR_PR5_Pos (5U) +#define EXTI_PR_PR5_Msk (0x1UL << EXTI_PR_PR5_Pos) /*!< 0x00000020 */ +#define EXTI_PR_PR5 EXTI_PR_PR5_Msk /*!< Pending bit for line 5 */ +#define EXTI_PR_PR6_Pos (6U) +#define EXTI_PR_PR6_Msk (0x1UL << EXTI_PR_PR6_Pos) /*!< 0x00000040 */ +#define EXTI_PR_PR6 EXTI_PR_PR6_Msk /*!< Pending bit for line 6 */ +#define EXTI_PR_PR7_Pos (7U) +#define EXTI_PR_PR7_Msk (0x1UL << EXTI_PR_PR7_Pos) /*!< 0x00000080 */ +#define EXTI_PR_PR7 EXTI_PR_PR7_Msk /*!< Pending bit for line 7 */ +#define EXTI_PR_PR8_Pos (8U) +#define EXTI_PR_PR8_Msk (0x1UL << EXTI_PR_PR8_Pos) /*!< 0x00000100 */ +#define EXTI_PR_PR8 EXTI_PR_PR8_Msk /*!< Pending bit for line 8 */ +#define EXTI_PR_PR9_Pos (9U) +#define EXTI_PR_PR9_Msk (0x1UL << EXTI_PR_PR9_Pos) /*!< 0x00000200 */ +#define EXTI_PR_PR9 EXTI_PR_PR9_Msk /*!< Pending bit for line 9 */ +#define EXTI_PR_PR10_Pos (10U) +#define EXTI_PR_PR10_Msk (0x1UL << EXTI_PR_PR10_Pos) /*!< 0x00000400 */ +#define EXTI_PR_PR10 EXTI_PR_PR10_Msk /*!< Pending bit for line 10 */ +#define EXTI_PR_PR11_Pos (11U) +#define EXTI_PR_PR11_Msk (0x1UL << EXTI_PR_PR11_Pos) /*!< 0x00000800 */ +#define EXTI_PR_PR11 EXTI_PR_PR11_Msk /*!< Pending bit for line 11 */ +#define EXTI_PR_PR12_Pos (12U) +#define EXTI_PR_PR12_Msk (0x1UL << EXTI_PR_PR12_Pos) /*!< 0x00001000 */ +#define EXTI_PR_PR12 EXTI_PR_PR12_Msk /*!< Pending bit for line 12 */ +#define EXTI_PR_PR13_Pos (13U) +#define EXTI_PR_PR13_Msk (0x1UL << EXTI_PR_PR13_Pos) /*!< 0x00002000 */ +#define EXTI_PR_PR13 EXTI_PR_PR13_Msk /*!< Pending bit for line 13 */ +#define EXTI_PR_PR14_Pos (14U) +#define EXTI_PR_PR14_Msk (0x1UL << EXTI_PR_PR14_Pos) /*!< 0x00004000 */ +#define EXTI_PR_PR14 EXTI_PR_PR14_Msk /*!< Pending bit for line 14 */ +#define EXTI_PR_PR15_Pos (15U) +#define EXTI_PR_PR15_Msk (0x1UL << EXTI_PR_PR15_Pos) /*!< 0x00008000 */ +#define EXTI_PR_PR15 EXTI_PR_PR15_Msk /*!< Pending bit for line 15 */ +#define EXTI_PR_PR16_Pos (16U) +#define EXTI_PR_PR16_Msk (0x1UL << EXTI_PR_PR16_Pos) /*!< 0x00010000 */ +#define EXTI_PR_PR16 EXTI_PR_PR16_Msk /*!< Pending bit for line 16 */ +#define EXTI_PR_PR17_Pos (17U) +#define EXTI_PR_PR17_Msk (0x1UL << EXTI_PR_PR17_Pos) /*!< 0x00020000 */ +#define EXTI_PR_PR17 EXTI_PR_PR17_Msk /*!< Pending bit for line 17 */ +#define EXTI_PR_PR18_Pos (18U) +#define EXTI_PR_PR18_Msk (0x1UL << EXTI_PR_PR18_Pos) /*!< 0x00040000 */ +#define EXTI_PR_PR18 EXTI_PR_PR18_Msk /*!< Pending bit for line 18 */ + +/* References Defines */ +#define EXTI_PR_PIF0 EXTI_PR_PR0 +#define EXTI_PR_PIF1 EXTI_PR_PR1 +#define EXTI_PR_PIF2 EXTI_PR_PR2 +#define EXTI_PR_PIF3 EXTI_PR_PR3 +#define EXTI_PR_PIF4 EXTI_PR_PR4 +#define EXTI_PR_PIF5 EXTI_PR_PR5 +#define EXTI_PR_PIF6 EXTI_PR_PR6 +#define EXTI_PR_PIF7 EXTI_PR_PR7 +#define EXTI_PR_PIF8 EXTI_PR_PR8 +#define EXTI_PR_PIF9 EXTI_PR_PR9 +#define EXTI_PR_PIF10 EXTI_PR_PR10 +#define EXTI_PR_PIF11 EXTI_PR_PR11 +#define EXTI_PR_PIF12 EXTI_PR_PR12 +#define EXTI_PR_PIF13 EXTI_PR_PR13 +#define EXTI_PR_PIF14 EXTI_PR_PR14 +#define EXTI_PR_PIF15 EXTI_PR_PR15 +#define EXTI_PR_PIF16 EXTI_PR_PR16 +#define EXTI_PR_PIF17 EXTI_PR_PR17 +#define EXTI_PR_PIF18 EXTI_PR_PR18 + +/******************************************************************************/ +/* */ +/* DMA Controller */ +/* */ +/******************************************************************************/ + +/******************* Bit definition for DMA_ISR register ********************/ +#define DMA_ISR_GIF1_Pos (0U) +#define DMA_ISR_GIF1_Msk (0x1UL << DMA_ISR_GIF1_Pos) /*!< 0x00000001 */ +#define DMA_ISR_GIF1 DMA_ISR_GIF1_Msk /*!< Channel 1 Global interrupt flag */ +#define DMA_ISR_TCIF1_Pos (1U) +#define DMA_ISR_TCIF1_Msk (0x1UL << DMA_ISR_TCIF1_Pos) /*!< 0x00000002 */ +#define DMA_ISR_TCIF1 DMA_ISR_TCIF1_Msk /*!< Channel 1 Transfer Complete flag */ +#define DMA_ISR_HTIF1_Pos (2U) +#define DMA_ISR_HTIF1_Msk (0x1UL << DMA_ISR_HTIF1_Pos) /*!< 0x00000004 */ +#define DMA_ISR_HTIF1 DMA_ISR_HTIF1_Msk /*!< Channel 1 Half Transfer flag */ +#define DMA_ISR_TEIF1_Pos (3U) +#define DMA_ISR_TEIF1_Msk (0x1UL << DMA_ISR_TEIF1_Pos) /*!< 0x00000008 */ +#define DMA_ISR_TEIF1 DMA_ISR_TEIF1_Msk /*!< Channel 1 Transfer Error flag */ +#define DMA_ISR_GIF2_Pos (4U) +#define DMA_ISR_GIF2_Msk (0x1UL << DMA_ISR_GIF2_Pos) /*!< 0x00000010 */ +#define DMA_ISR_GIF2 DMA_ISR_GIF2_Msk /*!< Channel 2 Global interrupt flag */ +#define DMA_ISR_TCIF2_Pos (5U) +#define DMA_ISR_TCIF2_Msk (0x1UL << DMA_ISR_TCIF2_Pos) /*!< 0x00000020 */ +#define DMA_ISR_TCIF2 DMA_ISR_TCIF2_Msk /*!< Channel 2 Transfer Complete flag */ +#define DMA_ISR_HTIF2_Pos (6U) +#define DMA_ISR_HTIF2_Msk (0x1UL << DMA_ISR_HTIF2_Pos) /*!< 0x00000040 */ +#define DMA_ISR_HTIF2 DMA_ISR_HTIF2_Msk /*!< Channel 2 Half Transfer flag */ +#define DMA_ISR_TEIF2_Pos (7U) +#define DMA_ISR_TEIF2_Msk (0x1UL << DMA_ISR_TEIF2_Pos) /*!< 0x00000080 */ +#define DMA_ISR_TEIF2 DMA_ISR_TEIF2_Msk /*!< Channel 2 Transfer Error flag */ +#define DMA_ISR_GIF3_Pos (8U) +#define DMA_ISR_GIF3_Msk (0x1UL << DMA_ISR_GIF3_Pos) /*!< 0x00000100 */ +#define DMA_ISR_GIF3 DMA_ISR_GIF3_Msk /*!< Channel 3 Global interrupt flag */ +#define DMA_ISR_TCIF3_Pos (9U) +#define DMA_ISR_TCIF3_Msk (0x1UL << DMA_ISR_TCIF3_Pos) /*!< 0x00000200 */ +#define DMA_ISR_TCIF3 DMA_ISR_TCIF3_Msk /*!< Channel 3 Transfer Complete flag */ +#define DMA_ISR_HTIF3_Pos (10U) +#define DMA_ISR_HTIF3_Msk (0x1UL << DMA_ISR_HTIF3_Pos) /*!< 0x00000400 */ +#define DMA_ISR_HTIF3 DMA_ISR_HTIF3_Msk /*!< Channel 3 Half Transfer flag */ +#define DMA_ISR_TEIF3_Pos (11U) +#define DMA_ISR_TEIF3_Msk (0x1UL << DMA_ISR_TEIF3_Pos) /*!< 0x00000800 */ +#define DMA_ISR_TEIF3 DMA_ISR_TEIF3_Msk /*!< Channel 3 Transfer Error flag */ +#define DMA_ISR_GIF4_Pos (12U) +#define DMA_ISR_GIF4_Msk (0x1UL << DMA_ISR_GIF4_Pos) /*!< 0x00001000 */ +#define DMA_ISR_GIF4 DMA_ISR_GIF4_Msk /*!< Channel 4 Global interrupt flag */ +#define DMA_ISR_TCIF4_Pos (13U) +#define DMA_ISR_TCIF4_Msk (0x1UL << DMA_ISR_TCIF4_Pos) /*!< 0x00002000 */ +#define DMA_ISR_TCIF4 DMA_ISR_TCIF4_Msk /*!< Channel 4 Transfer Complete flag */ +#define DMA_ISR_HTIF4_Pos (14U) +#define DMA_ISR_HTIF4_Msk (0x1UL << DMA_ISR_HTIF4_Pos) /*!< 0x00004000 */ +#define DMA_ISR_HTIF4 DMA_ISR_HTIF4_Msk /*!< Channel 4 Half Transfer flag */ +#define DMA_ISR_TEIF4_Pos (15U) +#define DMA_ISR_TEIF4_Msk (0x1UL << DMA_ISR_TEIF4_Pos) /*!< 0x00008000 */ +#define DMA_ISR_TEIF4 DMA_ISR_TEIF4_Msk /*!< Channel 4 Transfer Error flag */ +#define DMA_ISR_GIF5_Pos (16U) +#define DMA_ISR_GIF5_Msk (0x1UL << DMA_ISR_GIF5_Pos) /*!< 0x00010000 */ +#define DMA_ISR_GIF5 DMA_ISR_GIF5_Msk /*!< Channel 5 Global interrupt flag */ +#define DMA_ISR_TCIF5_Pos (17U) +#define DMA_ISR_TCIF5_Msk (0x1UL << DMA_ISR_TCIF5_Pos) /*!< 0x00020000 */ +#define DMA_ISR_TCIF5 DMA_ISR_TCIF5_Msk /*!< Channel 5 Transfer Complete flag */ +#define DMA_ISR_HTIF5_Pos (18U) +#define DMA_ISR_HTIF5_Msk (0x1UL << DMA_ISR_HTIF5_Pos) /*!< 0x00040000 */ +#define DMA_ISR_HTIF5 DMA_ISR_HTIF5_Msk /*!< Channel 5 Half Transfer flag */ +#define DMA_ISR_TEIF5_Pos (19U) +#define DMA_ISR_TEIF5_Msk (0x1UL << DMA_ISR_TEIF5_Pos) /*!< 0x00080000 */ +#define DMA_ISR_TEIF5 DMA_ISR_TEIF5_Msk /*!< Channel 5 Transfer Error flag */ +#define DMA_ISR_GIF6_Pos (20U) +#define DMA_ISR_GIF6_Msk (0x1UL << DMA_ISR_GIF6_Pos) /*!< 0x00100000 */ +#define DMA_ISR_GIF6 DMA_ISR_GIF6_Msk /*!< Channel 6 Global interrupt flag */ +#define DMA_ISR_TCIF6_Pos (21U) +#define DMA_ISR_TCIF6_Msk (0x1UL << DMA_ISR_TCIF6_Pos) /*!< 0x00200000 */ +#define DMA_ISR_TCIF6 DMA_ISR_TCIF6_Msk /*!< Channel 6 Transfer Complete flag */ +#define DMA_ISR_HTIF6_Pos (22U) +#define DMA_ISR_HTIF6_Msk (0x1UL << DMA_ISR_HTIF6_Pos) /*!< 0x00400000 */ +#define DMA_ISR_HTIF6 DMA_ISR_HTIF6_Msk /*!< Channel 6 Half Transfer flag */ +#define DMA_ISR_TEIF6_Pos (23U) +#define DMA_ISR_TEIF6_Msk (0x1UL << DMA_ISR_TEIF6_Pos) /*!< 0x00800000 */ +#define DMA_ISR_TEIF6 DMA_ISR_TEIF6_Msk /*!< Channel 6 Transfer Error flag */ +#define DMA_ISR_GIF7_Pos (24U) +#define DMA_ISR_GIF7_Msk (0x1UL << DMA_ISR_GIF7_Pos) /*!< 0x01000000 */ +#define DMA_ISR_GIF7 DMA_ISR_GIF7_Msk /*!< Channel 7 Global interrupt flag */ +#define DMA_ISR_TCIF7_Pos (25U) +#define DMA_ISR_TCIF7_Msk (0x1UL << DMA_ISR_TCIF7_Pos) /*!< 0x02000000 */ +#define DMA_ISR_TCIF7 DMA_ISR_TCIF7_Msk /*!< Channel 7 Transfer Complete flag */ +#define DMA_ISR_HTIF7_Pos (26U) +#define DMA_ISR_HTIF7_Msk (0x1UL << DMA_ISR_HTIF7_Pos) /*!< 0x04000000 */ +#define DMA_ISR_HTIF7 DMA_ISR_HTIF7_Msk /*!< Channel 7 Half Transfer flag */ +#define DMA_ISR_TEIF7_Pos (27U) +#define DMA_ISR_TEIF7_Msk (0x1UL << DMA_ISR_TEIF7_Pos) /*!< 0x08000000 */ +#define DMA_ISR_TEIF7 DMA_ISR_TEIF7_Msk /*!< Channel 7 Transfer Error flag */ + +/******************* Bit definition for DMA_IFCR register *******************/ +#define DMA_IFCR_CGIF1_Pos (0U) +#define DMA_IFCR_CGIF1_Msk (0x1UL << DMA_IFCR_CGIF1_Pos) /*!< 0x00000001 */ +#define DMA_IFCR_CGIF1 DMA_IFCR_CGIF1_Msk /*!< Channel 1 Global interrupt clear */ +#define DMA_IFCR_CTCIF1_Pos (1U) +#define DMA_IFCR_CTCIF1_Msk (0x1UL << DMA_IFCR_CTCIF1_Pos) /*!< 0x00000002 */ +#define DMA_IFCR_CTCIF1 DMA_IFCR_CTCIF1_Msk /*!< Channel 1 Transfer Complete clear */ +#define DMA_IFCR_CHTIF1_Pos (2U) +#define DMA_IFCR_CHTIF1_Msk (0x1UL << DMA_IFCR_CHTIF1_Pos) /*!< 0x00000004 */ +#define DMA_IFCR_CHTIF1 DMA_IFCR_CHTIF1_Msk /*!< Channel 1 Half Transfer clear */ +#define DMA_IFCR_CTEIF1_Pos (3U) +#define DMA_IFCR_CTEIF1_Msk (0x1UL << DMA_IFCR_CTEIF1_Pos) /*!< 0x00000008 */ +#define DMA_IFCR_CTEIF1 DMA_IFCR_CTEIF1_Msk /*!< Channel 1 Transfer Error clear */ +#define DMA_IFCR_CGIF2_Pos (4U) +#define DMA_IFCR_CGIF2_Msk (0x1UL << DMA_IFCR_CGIF2_Pos) /*!< 0x00000010 */ +#define DMA_IFCR_CGIF2 DMA_IFCR_CGIF2_Msk /*!< Channel 2 Global interrupt clear */ +#define DMA_IFCR_CTCIF2_Pos (5U) +#define DMA_IFCR_CTCIF2_Msk (0x1UL << DMA_IFCR_CTCIF2_Pos) /*!< 0x00000020 */ +#define DMA_IFCR_CTCIF2 DMA_IFCR_CTCIF2_Msk /*!< Channel 2 Transfer Complete clear */ +#define DMA_IFCR_CHTIF2_Pos (6U) +#define DMA_IFCR_CHTIF2_Msk (0x1UL << DMA_IFCR_CHTIF2_Pos) /*!< 0x00000040 */ +#define DMA_IFCR_CHTIF2 DMA_IFCR_CHTIF2_Msk /*!< Channel 2 Half Transfer clear */ +#define DMA_IFCR_CTEIF2_Pos (7U) +#define DMA_IFCR_CTEIF2_Msk (0x1UL << DMA_IFCR_CTEIF2_Pos) /*!< 0x00000080 */ +#define DMA_IFCR_CTEIF2 DMA_IFCR_CTEIF2_Msk /*!< Channel 2 Transfer Error clear */ +#define DMA_IFCR_CGIF3_Pos (8U) +#define DMA_IFCR_CGIF3_Msk (0x1UL << DMA_IFCR_CGIF3_Pos) /*!< 0x00000100 */ +#define DMA_IFCR_CGIF3 DMA_IFCR_CGIF3_Msk /*!< Channel 3 Global interrupt clear */ +#define DMA_IFCR_CTCIF3_Pos (9U) +#define DMA_IFCR_CTCIF3_Msk (0x1UL << DMA_IFCR_CTCIF3_Pos) /*!< 0x00000200 */ +#define DMA_IFCR_CTCIF3 DMA_IFCR_CTCIF3_Msk /*!< Channel 3 Transfer Complete clear */ +#define DMA_IFCR_CHTIF3_Pos (10U) +#define DMA_IFCR_CHTIF3_Msk (0x1UL << DMA_IFCR_CHTIF3_Pos) /*!< 0x00000400 */ +#define DMA_IFCR_CHTIF3 DMA_IFCR_CHTIF3_Msk /*!< Channel 3 Half Transfer clear */ +#define DMA_IFCR_CTEIF3_Pos (11U) +#define DMA_IFCR_CTEIF3_Msk (0x1UL << DMA_IFCR_CTEIF3_Pos) /*!< 0x00000800 */ +#define DMA_IFCR_CTEIF3 DMA_IFCR_CTEIF3_Msk /*!< Channel 3 Transfer Error clear */ +#define DMA_IFCR_CGIF4_Pos (12U) +#define DMA_IFCR_CGIF4_Msk (0x1UL << DMA_IFCR_CGIF4_Pos) /*!< 0x00001000 */ +#define DMA_IFCR_CGIF4 DMA_IFCR_CGIF4_Msk /*!< Channel 4 Global interrupt clear */ +#define DMA_IFCR_CTCIF4_Pos (13U) +#define DMA_IFCR_CTCIF4_Msk (0x1UL << DMA_IFCR_CTCIF4_Pos) /*!< 0x00002000 */ +#define DMA_IFCR_CTCIF4 DMA_IFCR_CTCIF4_Msk /*!< Channel 4 Transfer Complete clear */ +#define DMA_IFCR_CHTIF4_Pos (14U) +#define DMA_IFCR_CHTIF4_Msk (0x1UL << DMA_IFCR_CHTIF4_Pos) /*!< 0x00004000 */ +#define DMA_IFCR_CHTIF4 DMA_IFCR_CHTIF4_Msk /*!< Channel 4 Half Transfer clear */ +#define DMA_IFCR_CTEIF4_Pos (15U) +#define DMA_IFCR_CTEIF4_Msk (0x1UL << DMA_IFCR_CTEIF4_Pos) /*!< 0x00008000 */ +#define DMA_IFCR_CTEIF4 DMA_IFCR_CTEIF4_Msk /*!< Channel 4 Transfer Error clear */ +#define DMA_IFCR_CGIF5_Pos (16U) +#define DMA_IFCR_CGIF5_Msk (0x1UL << DMA_IFCR_CGIF5_Pos) /*!< 0x00010000 */ +#define DMA_IFCR_CGIF5 DMA_IFCR_CGIF5_Msk /*!< Channel 5 Global interrupt clear */ +#define DMA_IFCR_CTCIF5_Pos (17U) +#define DMA_IFCR_CTCIF5_Msk (0x1UL << DMA_IFCR_CTCIF5_Pos) /*!< 0x00020000 */ +#define DMA_IFCR_CTCIF5 DMA_IFCR_CTCIF5_Msk /*!< Channel 5 Transfer Complete clear */ +#define DMA_IFCR_CHTIF5_Pos (18U) +#define DMA_IFCR_CHTIF5_Msk (0x1UL << DMA_IFCR_CHTIF5_Pos) /*!< 0x00040000 */ +#define DMA_IFCR_CHTIF5 DMA_IFCR_CHTIF5_Msk /*!< Channel 5 Half Transfer clear */ +#define DMA_IFCR_CTEIF5_Pos (19U) +#define DMA_IFCR_CTEIF5_Msk (0x1UL << DMA_IFCR_CTEIF5_Pos) /*!< 0x00080000 */ +#define DMA_IFCR_CTEIF5 DMA_IFCR_CTEIF5_Msk /*!< Channel 5 Transfer Error clear */ +#define DMA_IFCR_CGIF6_Pos (20U) +#define DMA_IFCR_CGIF6_Msk (0x1UL << DMA_IFCR_CGIF6_Pos) /*!< 0x00100000 */ +#define DMA_IFCR_CGIF6 DMA_IFCR_CGIF6_Msk /*!< Channel 6 Global interrupt clear */ +#define DMA_IFCR_CTCIF6_Pos (21U) +#define DMA_IFCR_CTCIF6_Msk (0x1UL << DMA_IFCR_CTCIF6_Pos) /*!< 0x00200000 */ +#define DMA_IFCR_CTCIF6 DMA_IFCR_CTCIF6_Msk /*!< Channel 6 Transfer Complete clear */ +#define DMA_IFCR_CHTIF6_Pos (22U) +#define DMA_IFCR_CHTIF6_Msk (0x1UL << DMA_IFCR_CHTIF6_Pos) /*!< 0x00400000 */ +#define DMA_IFCR_CHTIF6 DMA_IFCR_CHTIF6_Msk /*!< Channel 6 Half Transfer clear */ +#define DMA_IFCR_CTEIF6_Pos (23U) +#define DMA_IFCR_CTEIF6_Msk (0x1UL << DMA_IFCR_CTEIF6_Pos) /*!< 0x00800000 */ +#define DMA_IFCR_CTEIF6 DMA_IFCR_CTEIF6_Msk /*!< Channel 6 Transfer Error clear */ +#define DMA_IFCR_CGIF7_Pos (24U) +#define DMA_IFCR_CGIF7_Msk (0x1UL << DMA_IFCR_CGIF7_Pos) /*!< 0x01000000 */ +#define DMA_IFCR_CGIF7 DMA_IFCR_CGIF7_Msk /*!< Channel 7 Global interrupt clear */ +#define DMA_IFCR_CTCIF7_Pos (25U) +#define DMA_IFCR_CTCIF7_Msk (0x1UL << DMA_IFCR_CTCIF7_Pos) /*!< 0x02000000 */ +#define DMA_IFCR_CTCIF7 DMA_IFCR_CTCIF7_Msk /*!< Channel 7 Transfer Complete clear */ +#define DMA_IFCR_CHTIF7_Pos (26U) +#define DMA_IFCR_CHTIF7_Msk (0x1UL << DMA_IFCR_CHTIF7_Pos) /*!< 0x04000000 */ +#define DMA_IFCR_CHTIF7 DMA_IFCR_CHTIF7_Msk /*!< Channel 7 Half Transfer clear */ +#define DMA_IFCR_CTEIF7_Pos (27U) +#define DMA_IFCR_CTEIF7_Msk (0x1UL << DMA_IFCR_CTEIF7_Pos) /*!< 0x08000000 */ +#define DMA_IFCR_CTEIF7 DMA_IFCR_CTEIF7_Msk /*!< Channel 7 Transfer Error clear */ + +/******************* Bit definition for DMA_CCR register *******************/ +#define DMA_CCR_EN_Pos (0U) +#define DMA_CCR_EN_Msk (0x1UL << DMA_CCR_EN_Pos) /*!< 0x00000001 */ +#define DMA_CCR_EN DMA_CCR_EN_Msk /*!< Channel enable */ +#define DMA_CCR_TCIE_Pos (1U) +#define DMA_CCR_TCIE_Msk (0x1UL << DMA_CCR_TCIE_Pos) /*!< 0x00000002 */ +#define DMA_CCR_TCIE DMA_CCR_TCIE_Msk /*!< Transfer complete interrupt enable */ +#define DMA_CCR_HTIE_Pos (2U) +#define DMA_CCR_HTIE_Msk (0x1UL << DMA_CCR_HTIE_Pos) /*!< 0x00000004 */ +#define DMA_CCR_HTIE DMA_CCR_HTIE_Msk /*!< Half Transfer interrupt enable */ +#define DMA_CCR_TEIE_Pos (3U) +#define DMA_CCR_TEIE_Msk (0x1UL << DMA_CCR_TEIE_Pos) /*!< 0x00000008 */ +#define DMA_CCR_TEIE DMA_CCR_TEIE_Msk /*!< Transfer error interrupt enable */ +#define DMA_CCR_DIR_Pos (4U) +#define DMA_CCR_DIR_Msk (0x1UL << DMA_CCR_DIR_Pos) /*!< 0x00000010 */ +#define DMA_CCR_DIR DMA_CCR_DIR_Msk /*!< Data transfer direction */ +#define DMA_CCR_CIRC_Pos (5U) +#define DMA_CCR_CIRC_Msk (0x1UL << DMA_CCR_CIRC_Pos) /*!< 0x00000020 */ +#define DMA_CCR_CIRC DMA_CCR_CIRC_Msk /*!< Circular mode */ +#define DMA_CCR_PINC_Pos (6U) +#define DMA_CCR_PINC_Msk (0x1UL << DMA_CCR_PINC_Pos) /*!< 0x00000040 */ +#define DMA_CCR_PINC DMA_CCR_PINC_Msk /*!< Peripheral increment mode */ +#define DMA_CCR_MINC_Pos (7U) +#define DMA_CCR_MINC_Msk (0x1UL << DMA_CCR_MINC_Pos) /*!< 0x00000080 */ +#define DMA_CCR_MINC DMA_CCR_MINC_Msk /*!< Memory increment mode */ + +#define DMA_CCR_PSIZE_Pos (8U) +#define DMA_CCR_PSIZE_Msk (0x3UL << DMA_CCR_PSIZE_Pos) /*!< 0x00000300 */ +#define DMA_CCR_PSIZE DMA_CCR_PSIZE_Msk /*!< PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CCR_PSIZE_0 (0x1UL << DMA_CCR_PSIZE_Pos) /*!< 0x00000100 */ +#define DMA_CCR_PSIZE_1 (0x2UL << DMA_CCR_PSIZE_Pos) /*!< 0x00000200 */ + +#define DMA_CCR_MSIZE_Pos (10U) +#define DMA_CCR_MSIZE_Msk (0x3UL << DMA_CCR_MSIZE_Pos) /*!< 0x00000C00 */ +#define DMA_CCR_MSIZE DMA_CCR_MSIZE_Msk /*!< MSIZE[1:0] bits (Memory size) */ +#define DMA_CCR_MSIZE_0 (0x1UL << DMA_CCR_MSIZE_Pos) /*!< 0x00000400 */ +#define DMA_CCR_MSIZE_1 (0x2UL << DMA_CCR_MSIZE_Pos) /*!< 0x00000800 */ + +#define DMA_CCR_PL_Pos (12U) +#define DMA_CCR_PL_Msk (0x3UL << DMA_CCR_PL_Pos) /*!< 0x00003000 */ +#define DMA_CCR_PL DMA_CCR_PL_Msk /*!< PL[1:0] bits(Channel Priority level) */ +#define DMA_CCR_PL_0 (0x1UL << DMA_CCR_PL_Pos) /*!< 0x00001000 */ +#define DMA_CCR_PL_1 (0x2UL << DMA_CCR_PL_Pos) /*!< 0x00002000 */ + +#define DMA_CCR_MEM2MEM_Pos (14U) +#define DMA_CCR_MEM2MEM_Msk (0x1UL << DMA_CCR_MEM2MEM_Pos) /*!< 0x00004000 */ +#define DMA_CCR_MEM2MEM DMA_CCR_MEM2MEM_Msk /*!< Memory to memory mode */ + +/****************** Bit definition for DMA_CNDTR register ******************/ +#define DMA_CNDTR_NDT_Pos (0U) +#define DMA_CNDTR_NDT_Msk (0xFFFFUL << DMA_CNDTR_NDT_Pos) /*!< 0x0000FFFF */ +#define DMA_CNDTR_NDT DMA_CNDTR_NDT_Msk /*!< Number of data to Transfer */ + +/****************** Bit definition for DMA_CPAR register *******************/ +#define DMA_CPAR_PA_Pos (0U) +#define DMA_CPAR_PA_Msk (0xFFFFFFFFUL << DMA_CPAR_PA_Pos) /*!< 0xFFFFFFFF */ +#define DMA_CPAR_PA DMA_CPAR_PA_Msk /*!< Peripheral Address */ + +/****************** Bit definition for DMA_CMAR register *******************/ +#define DMA_CMAR_MA_Pos (0U) +#define DMA_CMAR_MA_Msk (0xFFFFFFFFUL << DMA_CMAR_MA_Pos) /*!< 0xFFFFFFFF */ +#define DMA_CMAR_MA DMA_CMAR_MA_Msk /*!< Memory Address */ + +/******************************************************************************/ +/* */ +/* Analog to Digital Converter (ADC) */ +/* */ +/******************************************************************************/ + +/* + * @brief Specific device feature definitions (not present on all devices in the STM32F1 family) + */ +#define ADC_MULTIMODE_SUPPORT /*!< ADC feature available only on specific devices: multimode available on devices with several ADC instances */ + +/******************** Bit definition for ADC_SR register ********************/ +#define ADC_SR_AWD_Pos (0U) +#define ADC_SR_AWD_Msk (0x1UL << ADC_SR_AWD_Pos) /*!< 0x00000001 */ +#define ADC_SR_AWD ADC_SR_AWD_Msk /*!< ADC analog watchdog 1 flag */ +#define ADC_SR_EOS_Pos (1U) +#define ADC_SR_EOS_Msk (0x1UL << ADC_SR_EOS_Pos) /*!< 0x00000002 */ +#define ADC_SR_EOS ADC_SR_EOS_Msk /*!< ADC group regular end of sequence conversions flag */ +#define ADC_SR_JEOS_Pos (2U) +#define ADC_SR_JEOS_Msk (0x1UL << ADC_SR_JEOS_Pos) /*!< 0x00000004 */ +#define ADC_SR_JEOS ADC_SR_JEOS_Msk /*!< ADC group injected end of sequence conversions flag */ +#define ADC_SR_JSTRT_Pos (3U) +#define ADC_SR_JSTRT_Msk (0x1UL << ADC_SR_JSTRT_Pos) /*!< 0x00000008 */ +#define ADC_SR_JSTRT ADC_SR_JSTRT_Msk /*!< ADC group injected conversion start flag */ +#define ADC_SR_STRT_Pos (4U) +#define ADC_SR_STRT_Msk (0x1UL << ADC_SR_STRT_Pos) /*!< 0x00000010 */ +#define ADC_SR_STRT ADC_SR_STRT_Msk /*!< ADC group regular conversion start flag */ + +/* Legacy defines */ +#define ADC_SR_EOC (ADC_SR_EOS) +#define ADC_SR_JEOC (ADC_SR_JEOS) + +/******************* Bit definition for ADC_CR1 register ********************/ +#define ADC_CR1_AWDCH_Pos (0U) +#define ADC_CR1_AWDCH_Msk (0x1FUL << ADC_CR1_AWDCH_Pos) /*!< 0x0000001F */ +#define ADC_CR1_AWDCH ADC_CR1_AWDCH_Msk /*!< ADC analog watchdog 1 monitored channel selection */ +#define ADC_CR1_AWDCH_0 (0x01UL << ADC_CR1_AWDCH_Pos) /*!< 0x00000001 */ +#define ADC_CR1_AWDCH_1 (0x02UL << ADC_CR1_AWDCH_Pos) /*!< 0x00000002 */ +#define ADC_CR1_AWDCH_2 (0x04UL << ADC_CR1_AWDCH_Pos) /*!< 0x00000004 */ +#define ADC_CR1_AWDCH_3 (0x08UL << ADC_CR1_AWDCH_Pos) /*!< 0x00000008 */ +#define ADC_CR1_AWDCH_4 (0x10UL << ADC_CR1_AWDCH_Pos) /*!< 0x00000010 */ + +#define ADC_CR1_EOSIE_Pos (5U) +#define ADC_CR1_EOSIE_Msk (0x1UL << ADC_CR1_EOSIE_Pos) /*!< 0x00000020 */ +#define ADC_CR1_EOSIE ADC_CR1_EOSIE_Msk /*!< ADC group regular end of sequence conversions interrupt */ +#define ADC_CR1_AWDIE_Pos (6U) +#define ADC_CR1_AWDIE_Msk (0x1UL << ADC_CR1_AWDIE_Pos) /*!< 0x00000040 */ +#define ADC_CR1_AWDIE ADC_CR1_AWDIE_Msk /*!< ADC analog watchdog 1 interrupt */ +#define ADC_CR1_JEOSIE_Pos (7U) +#define ADC_CR1_JEOSIE_Msk (0x1UL << ADC_CR1_JEOSIE_Pos) /*!< 0x00000080 */ +#define ADC_CR1_JEOSIE ADC_CR1_JEOSIE_Msk /*!< ADC group injected end of sequence conversions interrupt */ +#define ADC_CR1_SCAN_Pos (8U) +#define ADC_CR1_SCAN_Msk (0x1UL << ADC_CR1_SCAN_Pos) /*!< 0x00000100 */ +#define ADC_CR1_SCAN ADC_CR1_SCAN_Msk /*!< ADC scan mode */ +#define ADC_CR1_AWDSGL_Pos (9U) +#define ADC_CR1_AWDSGL_Msk (0x1UL << ADC_CR1_AWDSGL_Pos) /*!< 0x00000200 */ +#define ADC_CR1_AWDSGL ADC_CR1_AWDSGL_Msk /*!< ADC analog watchdog 1 monitoring a single channel or all channels */ +#define ADC_CR1_JAUTO_Pos (10U) +#define ADC_CR1_JAUTO_Msk (0x1UL << ADC_CR1_JAUTO_Pos) /*!< 0x00000400 */ +#define ADC_CR1_JAUTO ADC_CR1_JAUTO_Msk /*!< ADC group injected automatic trigger mode */ +#define ADC_CR1_DISCEN_Pos (11U) +#define ADC_CR1_DISCEN_Msk (0x1UL << ADC_CR1_DISCEN_Pos) /*!< 0x00000800 */ +#define ADC_CR1_DISCEN ADC_CR1_DISCEN_Msk /*!< ADC group regular sequencer discontinuous mode */ +#define ADC_CR1_JDISCEN_Pos (12U) +#define ADC_CR1_JDISCEN_Msk (0x1UL << ADC_CR1_JDISCEN_Pos) /*!< 0x00001000 */ +#define ADC_CR1_JDISCEN ADC_CR1_JDISCEN_Msk /*!< ADC group injected sequencer discontinuous mode */ + +#define ADC_CR1_DISCNUM_Pos (13U) +#define ADC_CR1_DISCNUM_Msk (0x7UL << ADC_CR1_DISCNUM_Pos) /*!< 0x0000E000 */ +#define ADC_CR1_DISCNUM ADC_CR1_DISCNUM_Msk /*!< ADC group regular sequencer discontinuous number of ranks */ +#define ADC_CR1_DISCNUM_0 (0x1UL << ADC_CR1_DISCNUM_Pos) /*!< 0x00002000 */ +#define ADC_CR1_DISCNUM_1 (0x2UL << ADC_CR1_DISCNUM_Pos) /*!< 0x00004000 */ +#define ADC_CR1_DISCNUM_2 (0x4UL << ADC_CR1_DISCNUM_Pos) /*!< 0x00008000 */ + +#define ADC_CR1_DUALMOD_Pos (16U) +#define ADC_CR1_DUALMOD_Msk (0xFUL << ADC_CR1_DUALMOD_Pos) /*!< 0x000F0000 */ +#define ADC_CR1_DUALMOD ADC_CR1_DUALMOD_Msk /*!< ADC multimode mode selection */ +#define ADC_CR1_DUALMOD_0 (0x1UL << ADC_CR1_DUALMOD_Pos) /*!< 0x00010000 */ +#define ADC_CR1_DUALMOD_1 (0x2UL << ADC_CR1_DUALMOD_Pos) /*!< 0x00020000 */ +#define ADC_CR1_DUALMOD_2 (0x4UL << ADC_CR1_DUALMOD_Pos) /*!< 0x00040000 */ +#define ADC_CR1_DUALMOD_3 (0x8UL << ADC_CR1_DUALMOD_Pos) /*!< 0x00080000 */ + +#define ADC_CR1_JAWDEN_Pos (22U) +#define ADC_CR1_JAWDEN_Msk (0x1UL << ADC_CR1_JAWDEN_Pos) /*!< 0x00400000 */ +#define ADC_CR1_JAWDEN ADC_CR1_JAWDEN_Msk /*!< ADC analog watchdog 1 enable on scope ADC group injected */ +#define ADC_CR1_AWDEN_Pos (23U) +#define ADC_CR1_AWDEN_Msk (0x1UL << ADC_CR1_AWDEN_Pos) /*!< 0x00800000 */ +#define ADC_CR1_AWDEN ADC_CR1_AWDEN_Msk /*!< ADC analog watchdog 1 enable on scope ADC group regular */ + +/* Legacy defines */ +#define ADC_CR1_EOCIE (ADC_CR1_EOSIE) +#define ADC_CR1_JEOCIE (ADC_CR1_JEOSIE) + +/******************* Bit definition for ADC_CR2 register ********************/ +#define ADC_CR2_ADON_Pos (0U) +#define ADC_CR2_ADON_Msk (0x1UL << ADC_CR2_ADON_Pos) /*!< 0x00000001 */ +#define ADC_CR2_ADON ADC_CR2_ADON_Msk /*!< ADC enable */ +#define ADC_CR2_CONT_Pos (1U) +#define ADC_CR2_CONT_Msk (0x1UL << ADC_CR2_CONT_Pos) /*!< 0x00000002 */ +#define ADC_CR2_CONT ADC_CR2_CONT_Msk /*!< ADC group regular continuous conversion mode */ +#define ADC_CR2_CAL_Pos (2U) +#define ADC_CR2_CAL_Msk (0x1UL << ADC_CR2_CAL_Pos) /*!< 0x00000004 */ +#define ADC_CR2_CAL ADC_CR2_CAL_Msk /*!< ADC calibration start */ +#define ADC_CR2_RSTCAL_Pos (3U) +#define ADC_CR2_RSTCAL_Msk (0x1UL << ADC_CR2_RSTCAL_Pos) /*!< 0x00000008 */ +#define ADC_CR2_RSTCAL ADC_CR2_RSTCAL_Msk /*!< ADC calibration reset */ +#define ADC_CR2_DMA_Pos (8U) +#define ADC_CR2_DMA_Msk (0x1UL << ADC_CR2_DMA_Pos) /*!< 0x00000100 */ +#define ADC_CR2_DMA ADC_CR2_DMA_Msk /*!< ADC DMA transfer enable */ +#define ADC_CR2_ALIGN_Pos (11U) +#define ADC_CR2_ALIGN_Msk (0x1UL << ADC_CR2_ALIGN_Pos) /*!< 0x00000800 */ +#define ADC_CR2_ALIGN ADC_CR2_ALIGN_Msk /*!< ADC data alignement */ + +#define ADC_CR2_JEXTSEL_Pos (12U) +#define ADC_CR2_JEXTSEL_Msk (0x7UL << ADC_CR2_JEXTSEL_Pos) /*!< 0x00007000 */ +#define ADC_CR2_JEXTSEL ADC_CR2_JEXTSEL_Msk /*!< ADC group injected external trigger source */ +#define ADC_CR2_JEXTSEL_0 (0x1UL << ADC_CR2_JEXTSEL_Pos) /*!< 0x00001000 */ +#define ADC_CR2_JEXTSEL_1 (0x2UL << ADC_CR2_JEXTSEL_Pos) /*!< 0x00002000 */ +#define ADC_CR2_JEXTSEL_2 (0x4UL << ADC_CR2_JEXTSEL_Pos) /*!< 0x00004000 */ + +#define ADC_CR2_JEXTTRIG_Pos (15U) +#define ADC_CR2_JEXTTRIG_Msk (0x1UL << ADC_CR2_JEXTTRIG_Pos) /*!< 0x00008000 */ +#define ADC_CR2_JEXTTRIG ADC_CR2_JEXTTRIG_Msk /*!< ADC group injected external trigger enable */ + +#define ADC_CR2_EXTSEL_Pos (17U) +#define ADC_CR2_EXTSEL_Msk (0x7UL << ADC_CR2_EXTSEL_Pos) /*!< 0x000E0000 */ +#define ADC_CR2_EXTSEL ADC_CR2_EXTSEL_Msk /*!< ADC group regular external trigger source */ +#define ADC_CR2_EXTSEL_0 (0x1UL << ADC_CR2_EXTSEL_Pos) /*!< 0x00020000 */ +#define ADC_CR2_EXTSEL_1 (0x2UL << ADC_CR2_EXTSEL_Pos) /*!< 0x00040000 */ +#define ADC_CR2_EXTSEL_2 (0x4UL << ADC_CR2_EXTSEL_Pos) /*!< 0x00080000 */ + +#define ADC_CR2_EXTTRIG_Pos (20U) +#define ADC_CR2_EXTTRIG_Msk (0x1UL << ADC_CR2_EXTTRIG_Pos) /*!< 0x00100000 */ +#define ADC_CR2_EXTTRIG ADC_CR2_EXTTRIG_Msk /*!< ADC group regular external trigger enable */ +#define ADC_CR2_JSWSTART_Pos (21U) +#define ADC_CR2_JSWSTART_Msk (0x1UL << ADC_CR2_JSWSTART_Pos) /*!< 0x00200000 */ +#define ADC_CR2_JSWSTART ADC_CR2_JSWSTART_Msk /*!< ADC group injected conversion start */ +#define ADC_CR2_SWSTART_Pos (22U) +#define ADC_CR2_SWSTART_Msk (0x1UL << ADC_CR2_SWSTART_Pos) /*!< 0x00400000 */ +#define ADC_CR2_SWSTART ADC_CR2_SWSTART_Msk /*!< ADC group regular conversion start */ +#define ADC_CR2_TSVREFE_Pos (23U) +#define ADC_CR2_TSVREFE_Msk (0x1UL << ADC_CR2_TSVREFE_Pos) /*!< 0x00800000 */ +#define ADC_CR2_TSVREFE ADC_CR2_TSVREFE_Msk /*!< ADC internal path to VrefInt and temperature sensor enable */ + +/****************** Bit definition for ADC_SMPR1 register *******************/ +#define ADC_SMPR1_SMP10_Pos (0U) +#define ADC_SMPR1_SMP10_Msk (0x7UL << ADC_SMPR1_SMP10_Pos) /*!< 0x00000007 */ +#define ADC_SMPR1_SMP10 ADC_SMPR1_SMP10_Msk /*!< ADC channel 10 sampling time selection */ +#define ADC_SMPR1_SMP10_0 (0x1UL << ADC_SMPR1_SMP10_Pos) /*!< 0x00000001 */ +#define ADC_SMPR1_SMP10_1 (0x2UL << ADC_SMPR1_SMP10_Pos) /*!< 0x00000002 */ +#define ADC_SMPR1_SMP10_2 (0x4UL << ADC_SMPR1_SMP10_Pos) /*!< 0x00000004 */ + +#define ADC_SMPR1_SMP11_Pos (3U) +#define ADC_SMPR1_SMP11_Msk (0x7UL << ADC_SMPR1_SMP11_Pos) /*!< 0x00000038 */ +#define ADC_SMPR1_SMP11 ADC_SMPR1_SMP11_Msk /*!< ADC channel 11 sampling time selection */ +#define ADC_SMPR1_SMP11_0 (0x1UL << ADC_SMPR1_SMP11_Pos) /*!< 0x00000008 */ +#define ADC_SMPR1_SMP11_1 (0x2UL << ADC_SMPR1_SMP11_Pos) /*!< 0x00000010 */ +#define ADC_SMPR1_SMP11_2 (0x4UL << ADC_SMPR1_SMP11_Pos) /*!< 0x00000020 */ + +#define ADC_SMPR1_SMP12_Pos (6U) +#define ADC_SMPR1_SMP12_Msk (0x7UL << ADC_SMPR1_SMP12_Pos) /*!< 0x000001C0 */ +#define ADC_SMPR1_SMP12 ADC_SMPR1_SMP12_Msk /*!< ADC channel 12 sampling time selection */ +#define ADC_SMPR1_SMP12_0 (0x1UL << ADC_SMPR1_SMP12_Pos) /*!< 0x00000040 */ +#define ADC_SMPR1_SMP12_1 (0x2UL << ADC_SMPR1_SMP12_Pos) /*!< 0x00000080 */ +#define ADC_SMPR1_SMP12_2 (0x4UL << ADC_SMPR1_SMP12_Pos) /*!< 0x00000100 */ + +#define ADC_SMPR1_SMP13_Pos (9U) +#define ADC_SMPR1_SMP13_Msk (0x7UL << ADC_SMPR1_SMP13_Pos) /*!< 0x00000E00 */ +#define ADC_SMPR1_SMP13 ADC_SMPR1_SMP13_Msk /*!< ADC channel 13 sampling time selection */ +#define ADC_SMPR1_SMP13_0 (0x1UL << ADC_SMPR1_SMP13_Pos) /*!< 0x00000200 */ +#define ADC_SMPR1_SMP13_1 (0x2UL << ADC_SMPR1_SMP13_Pos) /*!< 0x00000400 */ +#define ADC_SMPR1_SMP13_2 (0x4UL << ADC_SMPR1_SMP13_Pos) /*!< 0x00000800 */ + +#define ADC_SMPR1_SMP14_Pos (12U) +#define ADC_SMPR1_SMP14_Msk (0x7UL << ADC_SMPR1_SMP14_Pos) /*!< 0x00007000 */ +#define ADC_SMPR1_SMP14 ADC_SMPR1_SMP14_Msk /*!< ADC channel 14 sampling time selection */ +#define ADC_SMPR1_SMP14_0 (0x1UL << ADC_SMPR1_SMP14_Pos) /*!< 0x00001000 */ +#define ADC_SMPR1_SMP14_1 (0x2UL << ADC_SMPR1_SMP14_Pos) /*!< 0x00002000 */ +#define ADC_SMPR1_SMP14_2 (0x4UL << ADC_SMPR1_SMP14_Pos) /*!< 0x00004000 */ + +#define ADC_SMPR1_SMP15_Pos (15U) +#define ADC_SMPR1_SMP15_Msk (0x7UL << ADC_SMPR1_SMP15_Pos) /*!< 0x00038000 */ +#define ADC_SMPR1_SMP15 ADC_SMPR1_SMP15_Msk /*!< ADC channel 15 sampling time selection */ +#define ADC_SMPR1_SMP15_0 (0x1UL << ADC_SMPR1_SMP15_Pos) /*!< 0x00008000 */ +#define ADC_SMPR1_SMP15_1 (0x2UL << ADC_SMPR1_SMP15_Pos) /*!< 0x00010000 */ +#define ADC_SMPR1_SMP15_2 (0x4UL << ADC_SMPR1_SMP15_Pos) /*!< 0x00020000 */ + +#define ADC_SMPR1_SMP16_Pos (18U) +#define ADC_SMPR1_SMP16_Msk (0x7UL << ADC_SMPR1_SMP16_Pos) /*!< 0x001C0000 */ +#define ADC_SMPR1_SMP16 ADC_SMPR1_SMP16_Msk /*!< ADC channel 16 sampling time selection */ +#define ADC_SMPR1_SMP16_0 (0x1UL << ADC_SMPR1_SMP16_Pos) /*!< 0x00040000 */ +#define ADC_SMPR1_SMP16_1 (0x2UL << ADC_SMPR1_SMP16_Pos) /*!< 0x00080000 */ +#define ADC_SMPR1_SMP16_2 (0x4UL << ADC_SMPR1_SMP16_Pos) /*!< 0x00100000 */ + +#define ADC_SMPR1_SMP17_Pos (21U) +#define ADC_SMPR1_SMP17_Msk (0x7UL << ADC_SMPR1_SMP17_Pos) /*!< 0x00E00000 */ +#define ADC_SMPR1_SMP17 ADC_SMPR1_SMP17_Msk /*!< ADC channel 17 sampling time selection */ +#define ADC_SMPR1_SMP17_0 (0x1UL << ADC_SMPR1_SMP17_Pos) /*!< 0x00200000 */ +#define ADC_SMPR1_SMP17_1 (0x2UL << ADC_SMPR1_SMP17_Pos) /*!< 0x00400000 */ +#define ADC_SMPR1_SMP17_2 (0x4UL << ADC_SMPR1_SMP17_Pos) /*!< 0x00800000 */ + +/****************** Bit definition for ADC_SMPR2 register *******************/ +#define ADC_SMPR2_SMP0_Pos (0U) +#define ADC_SMPR2_SMP0_Msk (0x7UL << ADC_SMPR2_SMP0_Pos) /*!< 0x00000007 */ +#define ADC_SMPR2_SMP0 ADC_SMPR2_SMP0_Msk /*!< ADC channel 0 sampling time selection */ +#define ADC_SMPR2_SMP0_0 (0x1UL << ADC_SMPR2_SMP0_Pos) /*!< 0x00000001 */ +#define ADC_SMPR2_SMP0_1 (0x2UL << ADC_SMPR2_SMP0_Pos) /*!< 0x00000002 */ +#define ADC_SMPR2_SMP0_2 (0x4UL << ADC_SMPR2_SMP0_Pos) /*!< 0x00000004 */ + +#define ADC_SMPR2_SMP1_Pos (3U) +#define ADC_SMPR2_SMP1_Msk (0x7UL << ADC_SMPR2_SMP1_Pos) /*!< 0x00000038 */ +#define ADC_SMPR2_SMP1 ADC_SMPR2_SMP1_Msk /*!< ADC channel 1 sampling time selection */ +#define ADC_SMPR2_SMP1_0 (0x1UL << ADC_SMPR2_SMP1_Pos) /*!< 0x00000008 */ +#define ADC_SMPR2_SMP1_1 (0x2UL << ADC_SMPR2_SMP1_Pos) /*!< 0x00000010 */ +#define ADC_SMPR2_SMP1_2 (0x4UL << ADC_SMPR2_SMP1_Pos) /*!< 0x00000020 */ + +#define ADC_SMPR2_SMP2_Pos (6U) +#define ADC_SMPR2_SMP2_Msk (0x7UL << ADC_SMPR2_SMP2_Pos) /*!< 0x000001C0 */ +#define ADC_SMPR2_SMP2 ADC_SMPR2_SMP2_Msk /*!< ADC channel 2 sampling time selection */ +#define ADC_SMPR2_SMP2_0 (0x1UL << ADC_SMPR2_SMP2_Pos) /*!< 0x00000040 */ +#define ADC_SMPR2_SMP2_1 (0x2UL << ADC_SMPR2_SMP2_Pos) /*!< 0x00000080 */ +#define ADC_SMPR2_SMP2_2 (0x4UL << ADC_SMPR2_SMP2_Pos) /*!< 0x00000100 */ + +#define ADC_SMPR2_SMP3_Pos (9U) +#define ADC_SMPR2_SMP3_Msk (0x7UL << ADC_SMPR2_SMP3_Pos) /*!< 0x00000E00 */ +#define ADC_SMPR2_SMP3 ADC_SMPR2_SMP3_Msk /*!< ADC channel 3 sampling time selection */ +#define ADC_SMPR2_SMP3_0 (0x1UL << ADC_SMPR2_SMP3_Pos) /*!< 0x00000200 */ +#define ADC_SMPR2_SMP3_1 (0x2UL << ADC_SMPR2_SMP3_Pos) /*!< 0x00000400 */ +#define ADC_SMPR2_SMP3_2 (0x4UL << ADC_SMPR2_SMP3_Pos) /*!< 0x00000800 */ + +#define ADC_SMPR2_SMP4_Pos (12U) +#define ADC_SMPR2_SMP4_Msk (0x7UL << ADC_SMPR2_SMP4_Pos) /*!< 0x00007000 */ +#define ADC_SMPR2_SMP4 ADC_SMPR2_SMP4_Msk /*!< ADC channel 4 sampling time selection */ +#define ADC_SMPR2_SMP4_0 (0x1UL << ADC_SMPR2_SMP4_Pos) /*!< 0x00001000 */ +#define ADC_SMPR2_SMP4_1 (0x2UL << ADC_SMPR2_SMP4_Pos) /*!< 0x00002000 */ +#define ADC_SMPR2_SMP4_2 (0x4UL << ADC_SMPR2_SMP4_Pos) /*!< 0x00004000 */ + +#define ADC_SMPR2_SMP5_Pos (15U) +#define ADC_SMPR2_SMP5_Msk (0x7UL << ADC_SMPR2_SMP5_Pos) /*!< 0x00038000 */ +#define ADC_SMPR2_SMP5 ADC_SMPR2_SMP5_Msk /*!< ADC channel 5 sampling time selection */ +#define ADC_SMPR2_SMP5_0 (0x1UL << ADC_SMPR2_SMP5_Pos) /*!< 0x00008000 */ +#define ADC_SMPR2_SMP5_1 (0x2UL << ADC_SMPR2_SMP5_Pos) /*!< 0x00010000 */ +#define ADC_SMPR2_SMP5_2 (0x4UL << ADC_SMPR2_SMP5_Pos) /*!< 0x00020000 */ + +#define ADC_SMPR2_SMP6_Pos (18U) +#define ADC_SMPR2_SMP6_Msk (0x7UL << ADC_SMPR2_SMP6_Pos) /*!< 0x001C0000 */ +#define ADC_SMPR2_SMP6 ADC_SMPR2_SMP6_Msk /*!< ADC channel 6 sampling time selection */ +#define ADC_SMPR2_SMP6_0 (0x1UL << ADC_SMPR2_SMP6_Pos) /*!< 0x00040000 */ +#define ADC_SMPR2_SMP6_1 (0x2UL << ADC_SMPR2_SMP6_Pos) /*!< 0x00080000 */ +#define ADC_SMPR2_SMP6_2 (0x4UL << ADC_SMPR2_SMP6_Pos) /*!< 0x00100000 */ + +#define ADC_SMPR2_SMP7_Pos (21U) +#define ADC_SMPR2_SMP7_Msk (0x7UL << ADC_SMPR2_SMP7_Pos) /*!< 0x00E00000 */ +#define ADC_SMPR2_SMP7 ADC_SMPR2_SMP7_Msk /*!< ADC channel 7 sampling time selection */ +#define ADC_SMPR2_SMP7_0 (0x1UL << ADC_SMPR2_SMP7_Pos) /*!< 0x00200000 */ +#define ADC_SMPR2_SMP7_1 (0x2UL << ADC_SMPR2_SMP7_Pos) /*!< 0x00400000 */ +#define ADC_SMPR2_SMP7_2 (0x4UL << ADC_SMPR2_SMP7_Pos) /*!< 0x00800000 */ + +#define ADC_SMPR2_SMP8_Pos (24U) +#define ADC_SMPR2_SMP8_Msk (0x7UL << ADC_SMPR2_SMP8_Pos) /*!< 0x07000000 */ +#define ADC_SMPR2_SMP8 ADC_SMPR2_SMP8_Msk /*!< ADC channel 8 sampling time selection */ +#define ADC_SMPR2_SMP8_0 (0x1UL << ADC_SMPR2_SMP8_Pos) /*!< 0x01000000 */ +#define ADC_SMPR2_SMP8_1 (0x2UL << ADC_SMPR2_SMP8_Pos) /*!< 0x02000000 */ +#define ADC_SMPR2_SMP8_2 (0x4UL << ADC_SMPR2_SMP8_Pos) /*!< 0x04000000 */ + +#define ADC_SMPR2_SMP9_Pos (27U) +#define ADC_SMPR2_SMP9_Msk (0x7UL << ADC_SMPR2_SMP9_Pos) /*!< 0x38000000 */ +#define ADC_SMPR2_SMP9 ADC_SMPR2_SMP9_Msk /*!< ADC channel 9 sampling time selection */ +#define ADC_SMPR2_SMP9_0 (0x1UL << ADC_SMPR2_SMP9_Pos) /*!< 0x08000000 */ +#define ADC_SMPR2_SMP9_1 (0x2UL << ADC_SMPR2_SMP9_Pos) /*!< 0x10000000 */ +#define ADC_SMPR2_SMP9_2 (0x4UL << ADC_SMPR2_SMP9_Pos) /*!< 0x20000000 */ + +/****************** Bit definition for ADC_JOFR1 register *******************/ +#define ADC_JOFR1_JOFFSET1_Pos (0U) +#define ADC_JOFR1_JOFFSET1_Msk (0xFFFUL << ADC_JOFR1_JOFFSET1_Pos) /*!< 0x00000FFF */ +#define ADC_JOFR1_JOFFSET1 ADC_JOFR1_JOFFSET1_Msk /*!< ADC group injected sequencer rank 1 offset value */ + +/****************** Bit definition for ADC_JOFR2 register *******************/ +#define ADC_JOFR2_JOFFSET2_Pos (0U) +#define ADC_JOFR2_JOFFSET2_Msk (0xFFFUL << ADC_JOFR2_JOFFSET2_Pos) /*!< 0x00000FFF */ +#define ADC_JOFR2_JOFFSET2 ADC_JOFR2_JOFFSET2_Msk /*!< ADC group injected sequencer rank 2 offset value */ + +/****************** Bit definition for ADC_JOFR3 register *******************/ +#define ADC_JOFR3_JOFFSET3_Pos (0U) +#define ADC_JOFR3_JOFFSET3_Msk (0xFFFUL << ADC_JOFR3_JOFFSET3_Pos) /*!< 0x00000FFF */ +#define ADC_JOFR3_JOFFSET3 ADC_JOFR3_JOFFSET3_Msk /*!< ADC group injected sequencer rank 3 offset value */ + +/****************** Bit definition for ADC_JOFR4 register *******************/ +#define ADC_JOFR4_JOFFSET4_Pos (0U) +#define ADC_JOFR4_JOFFSET4_Msk (0xFFFUL << ADC_JOFR4_JOFFSET4_Pos) /*!< 0x00000FFF */ +#define ADC_JOFR4_JOFFSET4 ADC_JOFR4_JOFFSET4_Msk /*!< ADC group injected sequencer rank 4 offset value */ + +/******************* Bit definition for ADC_HTR register ********************/ +#define ADC_HTR_HT_Pos (0U) +#define ADC_HTR_HT_Msk (0xFFFUL << ADC_HTR_HT_Pos) /*!< 0x00000FFF */ +#define ADC_HTR_HT ADC_HTR_HT_Msk /*!< ADC analog watchdog 1 threshold high */ + +/******************* Bit definition for ADC_LTR register ********************/ +#define ADC_LTR_LT_Pos (0U) +#define ADC_LTR_LT_Msk (0xFFFUL << ADC_LTR_LT_Pos) /*!< 0x00000FFF */ +#define ADC_LTR_LT ADC_LTR_LT_Msk /*!< ADC analog watchdog 1 threshold low */ + +/******************* Bit definition for ADC_SQR1 register *******************/ +#define ADC_SQR1_SQ13_Pos (0U) +#define ADC_SQR1_SQ13_Msk (0x1FUL << ADC_SQR1_SQ13_Pos) /*!< 0x0000001F */ +#define ADC_SQR1_SQ13 ADC_SQR1_SQ13_Msk /*!< ADC group regular sequencer rank 13 */ +#define ADC_SQR1_SQ13_0 (0x01UL << ADC_SQR1_SQ13_Pos) /*!< 0x00000001 */ +#define ADC_SQR1_SQ13_1 (0x02UL << ADC_SQR1_SQ13_Pos) /*!< 0x00000002 */ +#define ADC_SQR1_SQ13_2 (0x04UL << ADC_SQR1_SQ13_Pos) /*!< 0x00000004 */ +#define ADC_SQR1_SQ13_3 (0x08UL << ADC_SQR1_SQ13_Pos) /*!< 0x00000008 */ +#define ADC_SQR1_SQ13_4 (0x10UL << ADC_SQR1_SQ13_Pos) /*!< 0x00000010 */ + +#define ADC_SQR1_SQ14_Pos (5U) +#define ADC_SQR1_SQ14_Msk (0x1FUL << ADC_SQR1_SQ14_Pos) /*!< 0x000003E0 */ +#define ADC_SQR1_SQ14 ADC_SQR1_SQ14_Msk /*!< ADC group regular sequencer rank 14 */ +#define ADC_SQR1_SQ14_0 (0x01UL << ADC_SQR1_SQ14_Pos) /*!< 0x00000020 */ +#define ADC_SQR1_SQ14_1 (0x02UL << ADC_SQR1_SQ14_Pos) /*!< 0x00000040 */ +#define ADC_SQR1_SQ14_2 (0x04UL << ADC_SQR1_SQ14_Pos) /*!< 0x00000080 */ +#define ADC_SQR1_SQ14_3 (0x08UL << ADC_SQR1_SQ14_Pos) /*!< 0x00000100 */ +#define ADC_SQR1_SQ14_4 (0x10UL << ADC_SQR1_SQ14_Pos) /*!< 0x00000200 */ + +#define ADC_SQR1_SQ15_Pos (10U) +#define ADC_SQR1_SQ15_Msk (0x1FUL << ADC_SQR1_SQ15_Pos) /*!< 0x00007C00 */ +#define ADC_SQR1_SQ15 ADC_SQR1_SQ15_Msk /*!< ADC group regular sequencer rank 15 */ +#define ADC_SQR1_SQ15_0 (0x01UL << ADC_SQR1_SQ15_Pos) /*!< 0x00000400 */ +#define ADC_SQR1_SQ15_1 (0x02UL << ADC_SQR1_SQ15_Pos) /*!< 0x00000800 */ +#define ADC_SQR1_SQ15_2 (0x04UL << ADC_SQR1_SQ15_Pos) /*!< 0x00001000 */ +#define ADC_SQR1_SQ15_3 (0x08UL << ADC_SQR1_SQ15_Pos) /*!< 0x00002000 */ +#define ADC_SQR1_SQ15_4 (0x10UL << ADC_SQR1_SQ15_Pos) /*!< 0x00004000 */ + +#define ADC_SQR1_SQ16_Pos (15U) +#define ADC_SQR1_SQ16_Msk (0x1FUL << ADC_SQR1_SQ16_Pos) /*!< 0x000F8000 */ +#define ADC_SQR1_SQ16 ADC_SQR1_SQ16_Msk /*!< ADC group regular sequencer rank 16 */ +#define ADC_SQR1_SQ16_0 (0x01UL << ADC_SQR1_SQ16_Pos) /*!< 0x00008000 */ +#define ADC_SQR1_SQ16_1 (0x02UL << ADC_SQR1_SQ16_Pos) /*!< 0x00010000 */ +#define ADC_SQR1_SQ16_2 (0x04UL << ADC_SQR1_SQ16_Pos) /*!< 0x00020000 */ +#define ADC_SQR1_SQ16_3 (0x08UL << ADC_SQR1_SQ16_Pos) /*!< 0x00040000 */ +#define ADC_SQR1_SQ16_4 (0x10UL << ADC_SQR1_SQ16_Pos) /*!< 0x00080000 */ + +#define ADC_SQR1_L_Pos (20U) +#define ADC_SQR1_L_Msk (0xFUL << ADC_SQR1_L_Pos) /*!< 0x00F00000 */ +#define ADC_SQR1_L ADC_SQR1_L_Msk /*!< ADC group regular sequencer scan length */ +#define ADC_SQR1_L_0 (0x1UL << ADC_SQR1_L_Pos) /*!< 0x00100000 */ +#define ADC_SQR1_L_1 (0x2UL << ADC_SQR1_L_Pos) /*!< 0x00200000 */ +#define ADC_SQR1_L_2 (0x4UL << ADC_SQR1_L_Pos) /*!< 0x00400000 */ +#define ADC_SQR1_L_3 (0x8UL << ADC_SQR1_L_Pos) /*!< 0x00800000 */ + +/******************* Bit definition for ADC_SQR2 register *******************/ +#define ADC_SQR2_SQ7_Pos (0U) +#define ADC_SQR2_SQ7_Msk (0x1FUL << ADC_SQR2_SQ7_Pos) /*!< 0x0000001F */ +#define ADC_SQR2_SQ7 ADC_SQR2_SQ7_Msk /*!< ADC group regular sequencer rank 7 */ +#define ADC_SQR2_SQ7_0 (0x01UL << ADC_SQR2_SQ7_Pos) /*!< 0x00000001 */ +#define ADC_SQR2_SQ7_1 (0x02UL << ADC_SQR2_SQ7_Pos) /*!< 0x00000002 */ +#define ADC_SQR2_SQ7_2 (0x04UL << ADC_SQR2_SQ7_Pos) /*!< 0x00000004 */ +#define ADC_SQR2_SQ7_3 (0x08UL << ADC_SQR2_SQ7_Pos) /*!< 0x00000008 */ +#define ADC_SQR2_SQ7_4 (0x10UL << ADC_SQR2_SQ7_Pos) /*!< 0x00000010 */ + +#define ADC_SQR2_SQ8_Pos (5U) +#define ADC_SQR2_SQ8_Msk (0x1FUL << ADC_SQR2_SQ8_Pos) /*!< 0x000003E0 */ +#define ADC_SQR2_SQ8 ADC_SQR2_SQ8_Msk /*!< ADC group regular sequencer rank 8 */ +#define ADC_SQR2_SQ8_0 (0x01UL << ADC_SQR2_SQ8_Pos) /*!< 0x00000020 */ +#define ADC_SQR2_SQ8_1 (0x02UL << ADC_SQR2_SQ8_Pos) /*!< 0x00000040 */ +#define ADC_SQR2_SQ8_2 (0x04UL << ADC_SQR2_SQ8_Pos) /*!< 0x00000080 */ +#define ADC_SQR2_SQ8_3 (0x08UL << ADC_SQR2_SQ8_Pos) /*!< 0x00000100 */ +#define ADC_SQR2_SQ8_4 (0x10UL << ADC_SQR2_SQ8_Pos) /*!< 0x00000200 */ + +#define ADC_SQR2_SQ9_Pos (10U) +#define ADC_SQR2_SQ9_Msk (0x1FUL << ADC_SQR2_SQ9_Pos) /*!< 0x00007C00 */ +#define ADC_SQR2_SQ9 ADC_SQR2_SQ9_Msk /*!< ADC group regular sequencer rank 9 */ +#define ADC_SQR2_SQ9_0 (0x01UL << ADC_SQR2_SQ9_Pos) /*!< 0x00000400 */ +#define ADC_SQR2_SQ9_1 (0x02UL << ADC_SQR2_SQ9_Pos) /*!< 0x00000800 */ +#define ADC_SQR2_SQ9_2 (0x04UL << ADC_SQR2_SQ9_Pos) /*!< 0x00001000 */ +#define ADC_SQR2_SQ9_3 (0x08UL << ADC_SQR2_SQ9_Pos) /*!< 0x00002000 */ +#define ADC_SQR2_SQ9_4 (0x10UL << ADC_SQR2_SQ9_Pos) /*!< 0x00004000 */ + +#define ADC_SQR2_SQ10_Pos (15U) +#define ADC_SQR2_SQ10_Msk (0x1FUL << ADC_SQR2_SQ10_Pos) /*!< 0x000F8000 */ +#define ADC_SQR2_SQ10 ADC_SQR2_SQ10_Msk /*!< ADC group regular sequencer rank 10 */ +#define ADC_SQR2_SQ10_0 (0x01UL << ADC_SQR2_SQ10_Pos) /*!< 0x00008000 */ +#define ADC_SQR2_SQ10_1 (0x02UL << ADC_SQR2_SQ10_Pos) /*!< 0x00010000 */ +#define ADC_SQR2_SQ10_2 (0x04UL << ADC_SQR2_SQ10_Pos) /*!< 0x00020000 */ +#define ADC_SQR2_SQ10_3 (0x08UL << ADC_SQR2_SQ10_Pos) /*!< 0x00040000 */ +#define ADC_SQR2_SQ10_4 (0x10UL << ADC_SQR2_SQ10_Pos) /*!< 0x00080000 */ + +#define ADC_SQR2_SQ11_Pos (20U) +#define ADC_SQR2_SQ11_Msk (0x1FUL << ADC_SQR2_SQ11_Pos) /*!< 0x01F00000 */ +#define ADC_SQR2_SQ11 ADC_SQR2_SQ11_Msk /*!< ADC group regular sequencer rank 1 */ +#define ADC_SQR2_SQ11_0 (0x01UL << ADC_SQR2_SQ11_Pos) /*!< 0x00100000 */ +#define ADC_SQR2_SQ11_1 (0x02UL << ADC_SQR2_SQ11_Pos) /*!< 0x00200000 */ +#define ADC_SQR2_SQ11_2 (0x04UL << ADC_SQR2_SQ11_Pos) /*!< 0x00400000 */ +#define ADC_SQR2_SQ11_3 (0x08UL << ADC_SQR2_SQ11_Pos) /*!< 0x00800000 */ +#define ADC_SQR2_SQ11_4 (0x10UL << ADC_SQR2_SQ11_Pos) /*!< 0x01000000 */ + +#define ADC_SQR2_SQ12_Pos (25U) +#define ADC_SQR2_SQ12_Msk (0x1FUL << ADC_SQR2_SQ12_Pos) /*!< 0x3E000000 */ +#define ADC_SQR2_SQ12 ADC_SQR2_SQ12_Msk /*!< ADC group regular sequencer rank 12 */ +#define ADC_SQR2_SQ12_0 (0x01UL << ADC_SQR2_SQ12_Pos) /*!< 0x02000000 */ +#define ADC_SQR2_SQ12_1 (0x02UL << ADC_SQR2_SQ12_Pos) /*!< 0x04000000 */ +#define ADC_SQR2_SQ12_2 (0x04UL << ADC_SQR2_SQ12_Pos) /*!< 0x08000000 */ +#define ADC_SQR2_SQ12_3 (0x08UL << ADC_SQR2_SQ12_Pos) /*!< 0x10000000 */ +#define ADC_SQR2_SQ12_4 (0x10UL << ADC_SQR2_SQ12_Pos) /*!< 0x20000000 */ + +/******************* Bit definition for ADC_SQR3 register *******************/ +#define ADC_SQR3_SQ1_Pos (0U) +#define ADC_SQR3_SQ1_Msk (0x1FUL << ADC_SQR3_SQ1_Pos) /*!< 0x0000001F */ +#define ADC_SQR3_SQ1 ADC_SQR3_SQ1_Msk /*!< ADC group regular sequencer rank 1 */ +#define ADC_SQR3_SQ1_0 (0x01UL << ADC_SQR3_SQ1_Pos) /*!< 0x00000001 */ +#define ADC_SQR3_SQ1_1 (0x02UL << ADC_SQR3_SQ1_Pos) /*!< 0x00000002 */ +#define ADC_SQR3_SQ1_2 (0x04UL << ADC_SQR3_SQ1_Pos) /*!< 0x00000004 */ +#define ADC_SQR3_SQ1_3 (0x08UL << ADC_SQR3_SQ1_Pos) /*!< 0x00000008 */ +#define ADC_SQR3_SQ1_4 (0x10UL << ADC_SQR3_SQ1_Pos) /*!< 0x00000010 */ + +#define ADC_SQR3_SQ2_Pos (5U) +#define ADC_SQR3_SQ2_Msk (0x1FUL << ADC_SQR3_SQ2_Pos) /*!< 0x000003E0 */ +#define ADC_SQR3_SQ2 ADC_SQR3_SQ2_Msk /*!< ADC group regular sequencer rank 2 */ +#define ADC_SQR3_SQ2_0 (0x01UL << ADC_SQR3_SQ2_Pos) /*!< 0x00000020 */ +#define ADC_SQR3_SQ2_1 (0x02UL << ADC_SQR3_SQ2_Pos) /*!< 0x00000040 */ +#define ADC_SQR3_SQ2_2 (0x04UL << ADC_SQR3_SQ2_Pos) /*!< 0x00000080 */ +#define ADC_SQR3_SQ2_3 (0x08UL << ADC_SQR3_SQ2_Pos) /*!< 0x00000100 */ +#define ADC_SQR3_SQ2_4 (0x10UL << ADC_SQR3_SQ2_Pos) /*!< 0x00000200 */ + +#define ADC_SQR3_SQ3_Pos (10U) +#define ADC_SQR3_SQ3_Msk (0x1FUL << ADC_SQR3_SQ3_Pos) /*!< 0x00007C00 */ +#define ADC_SQR3_SQ3 ADC_SQR3_SQ3_Msk /*!< ADC group regular sequencer rank 3 */ +#define ADC_SQR3_SQ3_0 (0x01UL << ADC_SQR3_SQ3_Pos) /*!< 0x00000400 */ +#define ADC_SQR3_SQ3_1 (0x02UL << ADC_SQR3_SQ3_Pos) /*!< 0x00000800 */ +#define ADC_SQR3_SQ3_2 (0x04UL << ADC_SQR3_SQ3_Pos) /*!< 0x00001000 */ +#define ADC_SQR3_SQ3_3 (0x08UL << ADC_SQR3_SQ3_Pos) /*!< 0x00002000 */ +#define ADC_SQR3_SQ3_4 (0x10UL << ADC_SQR3_SQ3_Pos) /*!< 0x00004000 */ + +#define ADC_SQR3_SQ4_Pos (15U) +#define ADC_SQR3_SQ4_Msk (0x1FUL << ADC_SQR3_SQ4_Pos) /*!< 0x000F8000 */ +#define ADC_SQR3_SQ4 ADC_SQR3_SQ4_Msk /*!< ADC group regular sequencer rank 4 */ +#define ADC_SQR3_SQ4_0 (0x01UL << ADC_SQR3_SQ4_Pos) /*!< 0x00008000 */ +#define ADC_SQR3_SQ4_1 (0x02UL << ADC_SQR3_SQ4_Pos) /*!< 0x00010000 */ +#define ADC_SQR3_SQ4_2 (0x04UL << ADC_SQR3_SQ4_Pos) /*!< 0x00020000 */ +#define ADC_SQR3_SQ4_3 (0x08UL << ADC_SQR3_SQ4_Pos) /*!< 0x00040000 */ +#define ADC_SQR3_SQ4_4 (0x10UL << ADC_SQR3_SQ4_Pos) /*!< 0x00080000 */ + +#define ADC_SQR3_SQ5_Pos (20U) +#define ADC_SQR3_SQ5_Msk (0x1FUL << ADC_SQR3_SQ5_Pos) /*!< 0x01F00000 */ +#define ADC_SQR3_SQ5 ADC_SQR3_SQ5_Msk /*!< ADC group regular sequencer rank 5 */ +#define ADC_SQR3_SQ5_0 (0x01UL << ADC_SQR3_SQ5_Pos) /*!< 0x00100000 */ +#define ADC_SQR3_SQ5_1 (0x02UL << ADC_SQR3_SQ5_Pos) /*!< 0x00200000 */ +#define ADC_SQR3_SQ5_2 (0x04UL << ADC_SQR3_SQ5_Pos) /*!< 0x00400000 */ +#define ADC_SQR3_SQ5_3 (0x08UL << ADC_SQR3_SQ5_Pos) /*!< 0x00800000 */ +#define ADC_SQR3_SQ5_4 (0x10UL << ADC_SQR3_SQ5_Pos) /*!< 0x01000000 */ + +#define ADC_SQR3_SQ6_Pos (25U) +#define ADC_SQR3_SQ6_Msk (0x1FUL << ADC_SQR3_SQ6_Pos) /*!< 0x3E000000 */ +#define ADC_SQR3_SQ6 ADC_SQR3_SQ6_Msk /*!< ADC group regular sequencer rank 6 */ +#define ADC_SQR3_SQ6_0 (0x01UL << ADC_SQR3_SQ6_Pos) /*!< 0x02000000 */ +#define ADC_SQR3_SQ6_1 (0x02UL << ADC_SQR3_SQ6_Pos) /*!< 0x04000000 */ +#define ADC_SQR3_SQ6_2 (0x04UL << ADC_SQR3_SQ6_Pos) /*!< 0x08000000 */ +#define ADC_SQR3_SQ6_3 (0x08UL << ADC_SQR3_SQ6_Pos) /*!< 0x10000000 */ +#define ADC_SQR3_SQ6_4 (0x10UL << ADC_SQR3_SQ6_Pos) /*!< 0x20000000 */ + +/******************* Bit definition for ADC_JSQR register *******************/ +#define ADC_JSQR_JSQ1_Pos (0U) +#define ADC_JSQR_JSQ1_Msk (0x1FUL << ADC_JSQR_JSQ1_Pos) /*!< 0x0000001F */ +#define ADC_JSQR_JSQ1 ADC_JSQR_JSQ1_Msk /*!< ADC group injected sequencer rank 1 */ +#define ADC_JSQR_JSQ1_0 (0x01UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000001 */ +#define ADC_JSQR_JSQ1_1 (0x02UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000002 */ +#define ADC_JSQR_JSQ1_2 (0x04UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000004 */ +#define ADC_JSQR_JSQ1_3 (0x08UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000008 */ +#define ADC_JSQR_JSQ1_4 (0x10UL << ADC_JSQR_JSQ1_Pos) /*!< 0x00000010 */ + +#define ADC_JSQR_JSQ2_Pos (5U) +#define ADC_JSQR_JSQ2_Msk (0x1FUL << ADC_JSQR_JSQ2_Pos) /*!< 0x000003E0 */ +#define ADC_JSQR_JSQ2 ADC_JSQR_JSQ2_Msk /*!< ADC group injected sequencer rank 2 */ +#define ADC_JSQR_JSQ2_0 (0x01UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00000020 */ +#define ADC_JSQR_JSQ2_1 (0x02UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00000040 */ +#define ADC_JSQR_JSQ2_2 (0x04UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00000080 */ +#define ADC_JSQR_JSQ2_3 (0x08UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00000100 */ +#define ADC_JSQR_JSQ2_4 (0x10UL << ADC_JSQR_JSQ2_Pos) /*!< 0x00000200 */ + +#define ADC_JSQR_JSQ3_Pos (10U) +#define ADC_JSQR_JSQ3_Msk (0x1FUL << ADC_JSQR_JSQ3_Pos) /*!< 0x00007C00 */ +#define ADC_JSQR_JSQ3 ADC_JSQR_JSQ3_Msk /*!< ADC group injected sequencer rank 3 */ +#define ADC_JSQR_JSQ3_0 (0x01UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00000400 */ +#define ADC_JSQR_JSQ3_1 (0x02UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00000800 */ +#define ADC_JSQR_JSQ3_2 (0x04UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00001000 */ +#define ADC_JSQR_JSQ3_3 (0x08UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00002000 */ +#define ADC_JSQR_JSQ3_4 (0x10UL << ADC_JSQR_JSQ3_Pos) /*!< 0x00004000 */ + +#define ADC_JSQR_JSQ4_Pos (15U) +#define ADC_JSQR_JSQ4_Msk (0x1FUL << ADC_JSQR_JSQ4_Pos) /*!< 0x000F8000 */ +#define ADC_JSQR_JSQ4 ADC_JSQR_JSQ4_Msk /*!< ADC group injected sequencer rank 4 */ +#define ADC_JSQR_JSQ4_0 (0x01UL << ADC_JSQR_JSQ4_Pos) /*!< 0x00008000 */ +#define ADC_JSQR_JSQ4_1 (0x02UL << ADC_JSQR_JSQ4_Pos) /*!< 0x00010000 */ +#define ADC_JSQR_JSQ4_2 (0x04UL << ADC_JSQR_JSQ4_Pos) /*!< 0x00020000 */ +#define ADC_JSQR_JSQ4_3 (0x08UL << ADC_JSQR_JSQ4_Pos) /*!< 0x00040000 */ +#define ADC_JSQR_JSQ4_4 (0x10UL << ADC_JSQR_JSQ4_Pos) /*!< 0x00080000 */ + +#define ADC_JSQR_JL_Pos (20U) +#define ADC_JSQR_JL_Msk (0x3UL << ADC_JSQR_JL_Pos) /*!< 0x00300000 */ +#define ADC_JSQR_JL ADC_JSQR_JL_Msk /*!< ADC group injected sequencer scan length */ +#define ADC_JSQR_JL_0 (0x1UL << ADC_JSQR_JL_Pos) /*!< 0x00100000 */ +#define ADC_JSQR_JL_1 (0x2UL << ADC_JSQR_JL_Pos) /*!< 0x00200000 */ + +/******************* Bit definition for ADC_JDR1 register *******************/ +#define ADC_JDR1_JDATA_Pos (0U) +#define ADC_JDR1_JDATA_Msk (0xFFFFUL << ADC_JDR1_JDATA_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR1_JDATA ADC_JDR1_JDATA_Msk /*!< ADC group injected sequencer rank 1 conversion data */ + +/******************* Bit definition for ADC_JDR2 register *******************/ +#define ADC_JDR2_JDATA_Pos (0U) +#define ADC_JDR2_JDATA_Msk (0xFFFFUL << ADC_JDR2_JDATA_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR2_JDATA ADC_JDR2_JDATA_Msk /*!< ADC group injected sequencer rank 2 conversion data */ + +/******************* Bit definition for ADC_JDR3 register *******************/ +#define ADC_JDR3_JDATA_Pos (0U) +#define ADC_JDR3_JDATA_Msk (0xFFFFUL << ADC_JDR3_JDATA_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR3_JDATA ADC_JDR3_JDATA_Msk /*!< ADC group injected sequencer rank 3 conversion data */ + +/******************* Bit definition for ADC_JDR4 register *******************/ +#define ADC_JDR4_JDATA_Pos (0U) +#define ADC_JDR4_JDATA_Msk (0xFFFFUL << ADC_JDR4_JDATA_Pos) /*!< 0x0000FFFF */ +#define ADC_JDR4_JDATA ADC_JDR4_JDATA_Msk /*!< ADC group injected sequencer rank 4 conversion data */ + +/******************** Bit definition for ADC_DR register ********************/ +#define ADC_DR_DATA_Pos (0U) +#define ADC_DR_DATA_Msk (0xFFFFUL << ADC_DR_DATA_Pos) /*!< 0x0000FFFF */ +#define ADC_DR_DATA ADC_DR_DATA_Msk /*!< ADC group regular conversion data */ +#define ADC_DR_ADC2DATA_Pos (16U) +#define ADC_DR_ADC2DATA_Msk (0xFFFFUL << ADC_DR_ADC2DATA_Pos) /*!< 0xFFFF0000 */ +#define ADC_DR_ADC2DATA ADC_DR_ADC2DATA_Msk /*!< ADC group regular conversion data for ADC slave, in multimode */ + + +/*****************************************************************************/ +/* */ +/* Timers (TIM) */ +/* */ +/*****************************************************************************/ +/******************* Bit definition for TIM_CR1 register *******************/ +#define TIM_CR1_CEN_Pos (0U) +#define TIM_CR1_CEN_Msk (0x1UL << TIM_CR1_CEN_Pos) /*!< 0x00000001 */ +#define TIM_CR1_CEN TIM_CR1_CEN_Msk /*!
    © Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

    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�uN=AO~%20*`Y+kbF7 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

  2. + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f1xx + * @{ + */ + +#ifndef __STM32F1XX_H +#define __STM32F1XX_H + +#ifdef __cplusplus + extern "C" { +#endif /* __cplusplus */ + +/** @addtogroup Library_configuration_section + * @{ + */ + +/** + * @brief STM32 Family + */ +#if !defined (STM32F1) +#define STM32F1 +#endif /* STM32F1 */ + +/* Uncomment the line below according to the target STM32L device used in your + application + */ + +#if !defined (STM32F100xB) && !defined (STM32F100xE) && !defined (STM32F101x6) && \ + !defined (STM32F101xB) && !defined (STM32F101xE) && !defined (STM32F101xG) && !defined (STM32F102x6) && !defined (STM32F102xB) && !defined (STM32F103x6) && \ + !defined (STM32F103xB) && !defined (STM32F103xE) && !defined (STM32F103xG) && !defined (STM32F105xC) && !defined (STM32F107xC) + /* #define STM32F100xB */ /*!< STM32F100C4, STM32F100R4, STM32F100C6, STM32F100R6, STM32F100C8, STM32F100R8, STM32F100V8, STM32F100CB, STM32F100RB and STM32F100VB */ + /* #define STM32F100xE */ /*!< STM32F100RC, STM32F100VC, STM32F100ZC, STM32F100RD, STM32F100VD, STM32F100ZD, STM32F100RE, STM32F100VE and STM32F100ZE */ + /* #define STM32F101x6 */ /*!< STM32F101C4, STM32F101R4, STM32F101T4, STM32F101C6, STM32F101R6 and STM32F101T6 Devices */ + /* #define STM32F101xB */ /*!< STM32F101C8, STM32F101R8, STM32F101T8, STM32F101V8, STM32F101CB, STM32F101RB, STM32F101TB and STM32F101VB */ + /* #define STM32F101xE */ /*!< STM32F101RC, STM32F101VC, STM32F101ZC, STM32F101RD, STM32F101VD, STM32F101ZD, STM32F101RE, STM32F101VE and STM32F101ZE */ + /* #define STM32F101xG */ /*!< STM32F101RF, STM32F101VF, STM32F101ZF, STM32F101RG, STM32F101VG and STM32F101ZG */ + /* #define STM32F102x6 */ /*!< STM32F102C4, STM32F102R4, STM32F102C6 and STM32F102R6 */ + /* #define STM32F102xB */ /*!< STM32F102C8, STM32F102R8, STM32F102CB and STM32F102RB */ + /* #define STM32F103x6 */ /*!< STM32F103C4, STM32F103R4, STM32F103T4, STM32F103C6, STM32F103R6 and STM32F103T6 */ + /* #define STM32F103xB */ /*!< STM32F103C8, STM32F103R8, STM32F103T8, STM32F103V8, STM32F103CB, STM32F103RB, STM32F103TB and STM32F103VB */ + /* #define STM32F103xE */ /*!< STM32F103RC, STM32F103VC, STM32F103ZC, STM32F103RD, STM32F103VD, STM32F103ZD, STM32F103RE, STM32F103VE and STM32F103ZE */ + /* #define STM32F103xG */ /*!< STM32F103RF, STM32F103VF, STM32F103ZF, STM32F103RG, STM32F103VG and STM32F103ZG */ + /* #define STM32F105xC */ /*!< STM32F105R8, STM32F105V8, STM32F105RB, STM32F105VB, STM32F105RC and STM32F105VC */ + /* #define STM32F107xC */ /*!< STM32F107RB, STM32F107VB, STM32F107RC and STM32F107VC */ +#endif + +/* Tip: To avoid modifying this file each time you need to switch between these + devices, you can define the device in your toolchain compiler preprocessor. + */ + +#if !defined (USE_HAL_DRIVER) +/** + * @brief Comment the line below if you will not use the peripherals drivers. + In this case, these drivers will not be included and the application code will + be based on direct access to peripherals registers + */ + /*#define USE_HAL_DRIVER */ +#endif /* USE_HAL_DRIVER */ + +/** + * @brief CMSIS Device version number V4.3.3 + */ +#define __STM32F1_CMSIS_VERSION_MAIN (0x04) /*!< [31:24] main version */ +#define __STM32F1_CMSIS_VERSION_SUB1 (0x03) /*!< [23:16] sub1 version */ +#define __STM32F1_CMSIS_VERSION_SUB2 (0x03) /*!< [15:8] sub2 version */ +#define __STM32F1_CMSIS_VERSION_RC (0x00) /*!< [7:0] release candidate */ +#define __STM32F1_CMSIS_VERSION ((__STM32F1_CMSIS_VERSION_MAIN << 24)\ + |(__STM32F1_CMSIS_VERSION_SUB1 << 16)\ + |(__STM32F1_CMSIS_VERSION_SUB2 << 8 )\ + |(__STM32F1_CMSIS_VERSION_RC)) + +/** + * @} + */ + +/** @addtogroup Device_Included + * @{ + */ + +#if defined(STM32F100xB) + #include "stm32f100xb.h" +#elif defined(STM32F100xE) + #include "stm32f100xe.h" +#elif defined(STM32F101x6) + #include "stm32f101x6.h" +#elif defined(STM32F101xB) + #include "stm32f101xb.h" +#elif defined(STM32F101xE) + #include "stm32f101xe.h" +#elif defined(STM32F101xG) + #include "stm32f101xg.h" +#elif defined(STM32F102x6) + #include "stm32f102x6.h" +#elif defined(STM32F102xB) + #include "stm32f102xb.h" +#elif defined(STM32F103x6) + #include "stm32f103x6.h" +#elif defined(STM32F103xB) + #include "stm32f103xb.h" +#elif defined(STM32F103xE) + #include "stm32f103xe.h" +#elif defined(STM32F103xG) + #include "stm32f103xg.h" +#elif defined(STM32F105xC) + #include "stm32f105xc.h" +#elif defined(STM32F107xC) + #include "stm32f107xc.h" +#else + #error "Please select first the target STM32F1xx device used in your application (in stm32f1xx.h file)" +#endif + +/** + * @} + */ + +/** @addtogroup Exported_types + * @{ + */ +typedef enum +{ + RESET = 0, + SET = !RESET +} FlagStatus, ITStatus; + +typedef enum +{ + DISABLE = 0, + ENABLE = !DISABLE +} FunctionalState; +#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE)) + +typedef enum +{ + SUCCESS = 0U, + ERROR = !SUCCESS +} ErrorStatus; + +/** + * @} + */ + + +/** @addtogroup Exported_macros + * @{ + */ +#define SET_BIT(REG, BIT) ((REG) |= (BIT)) + +#define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT)) + +#define READ_BIT(REG, BIT) ((REG) & (BIT)) + +#define CLEAR_REG(REG) ((REG) = (0x0)) + +#define WRITE_REG(REG, VAL) ((REG) = (VAL)) + +#define READ_REG(REG) ((REG)) + +#define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK))) + +#define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL))) + +/* Use of CMSIS compiler intrinsics for register exclusive access */ +/* Atomic 32-bit register access macro to set one or several bits */ +#define ATOMIC_SET_BIT(REG, BIT) \ + do { \ + uint32_t val; \ + do { \ + val = __LDREXW((__IO uint32_t *)&(REG)) | (BIT); \ + } while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \ + } while(0) + +/* Atomic 32-bit register access macro to clear one or several bits */ +#define ATOMIC_CLEAR_BIT(REG, BIT) \ + do { \ + uint32_t val; \ + do { \ + val = __LDREXW((__IO uint32_t *)&(REG)) & ~(BIT); \ + } while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \ + } while(0) + +/* Atomic 32-bit register access macro to clear and set one or several bits */ +#define ATOMIC_MODIFY_REG(REG, CLEARMSK, SETMASK) \ + do { \ + uint32_t val; \ + do { \ + val = (__LDREXW((__IO uint32_t *)&(REG)) & ~(CLEARMSK)) | (SETMASK); \ + } while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \ + } while(0) + +/* Atomic 16-bit register access macro to set one or several bits */ +#define ATOMIC_SETH_BIT(REG, BIT) \ + do { \ + uint16_t val; \ + do { \ + val = __LDREXH((__IO uint16_t *)&(REG)) | (BIT); \ + } while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \ + } while(0) + +/* Atomic 16-bit register access macro to clear one or several bits */ +#define ATOMIC_CLEARH_BIT(REG, BIT) \ + do { \ + uint16_t val; \ + do { \ + val = __LDREXH((__IO uint16_t *)&(REG)) & ~(BIT); \ + } while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \ + } while(0) + +/* Atomic 16-bit register access macro to clear and set one or several bits */ +#define ATOMIC_MODIFYH_REG(REG, CLEARMSK, SETMASK) \ + do { \ + uint16_t val; \ + do { \ + val = (__LDREXH((__IO uint16_t *)&(REG)) & ~(CLEARMSK)) | (SETMASK); \ + } while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \ + } while(0) + + +/** + * @} + */ + +#if defined (USE_HAL_DRIVER) + #include "stm32f1xx_hal.h" +#endif /* USE_HAL_DRIVER */ + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __STM32F1xx_H */ +/** + * @} + */ + +/** + * @} + */ + + + + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h b/stm32f103/Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h new file mode 100644 index 0000000..8e33366 --- /dev/null +++ b/stm32f103/Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h @@ -0,0 +1,98 @@ +/** + ****************************************************************************** + * @file system_stm32f10x.h + * @author MCD Application Team + * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Header File. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f10x_system + * @{ + */ + +/** + * @brief Define to prevent recursive inclusion + */ +#ifndef __SYSTEM_STM32F10X_H +#define __SYSTEM_STM32F10X_H + +#ifdef __cplusplus + extern "C" { +#endif + +/** @addtogroup STM32F10x_System_Includes + * @{ + */ + +/** + * @} + */ + + +/** @addtogroup STM32F10x_System_Exported_types + * @{ + */ + +extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ +extern const uint8_t AHBPrescTable[16U]; /*!< AHB prescalers table values */ +extern const uint8_t APBPrescTable[8U]; /*!< APB prescalers table values */ + +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Exported_Constants + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Exported_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Exported_Functions + * @{ + */ + +extern void SystemInit(void); +extern void SystemCoreClockUpdate(void); +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /*__SYSTEM_STM32F10X_H */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/CMSIS/Include/cmsis_armcc.h b/stm32f103/Drivers/CMSIS/Include/cmsis_armcc.h new file mode 100644 index 0000000..7d751fb --- /dev/null +++ b/stm32f103/Drivers/CMSIS/Include/cmsis_armcc.h @@ -0,0 +1,865 @@ +/**************************************************************************//** + * @file cmsis_armcc.h + * @brief CMSIS compiler ARMCC (Arm Compiler 5) 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_ARMCC_H +#define __CMSIS_ARMCC_H + + +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 400677) + #error "Please use Arm Compiler Toolchain V4.0.677 or later!" +#endif + +/* CMSIS compiler control architecture macros */ +#if ((defined (__TARGET_ARCH_6_M ) && (__TARGET_ARCH_6_M == 1)) || \ + (defined (__TARGET_ARCH_6S_M ) && (__TARGET_ARCH_6S_M == 1)) ) + #define __ARM_ARCH_6M__ 1 +#endif + +#if (defined (__TARGET_ARCH_7_M ) && (__TARGET_ARCH_7_M == 1)) + #define __ARM_ARCH_7M__ 1 +#endif + +#if (defined (__TARGET_ARCH_7E_M) && (__TARGET_ARCH_7E_M == 1)) + #define __ARM_ARCH_7EM__ 1 +#endif + + /* __ARM_ARCH_8M_BASE__ not applicable */ + /* __ARM_ARCH_8M_MAIN__ not applicable */ + + +/* 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 static __forceinline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __declspec(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 __packed struct +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION __packed union +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #define __UNALIGNED_UINT32(x) (*((__packed uint32_t *)(x))) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #define __UNALIGNED_UINT16_WRITE(addr, val) ((*((__packed uint16_t *)(addr))) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #define __UNALIGNED_UINT16_READ(addr) (*((const __packed uint16_t *)(addr))) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #define __UNALIGNED_UINT32_WRITE(addr, val) ((*((__packed uint32_t *)(addr))) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #define __UNALIGNED_UINT32_READ(addr) (*((const __packed uint32_t *)(addr))) +#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(); */ + + +/** + \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(); */ + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_INLINE uint32_t __get_CONTROL(void) +{ + register uint32_t __regControl __ASM("control"); + return(__regControl); +} + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + register uint32_t __regControl __ASM("control"); + __regControl = control; +} + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_INLINE uint32_t __get_IPSR(void) +{ + register uint32_t __regIPSR __ASM("ipsr"); + return(__regIPSR); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_INLINE uint32_t __get_APSR(void) +{ + register uint32_t __regAPSR __ASM("apsr"); + return(__regAPSR); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_INLINE uint32_t __get_xPSR(void) +{ + register uint32_t __regXPSR __ASM("xpsr"); + return(__regXPSR); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + return(__regProcessStackPointer); +} + + +/** + \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_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + __regProcessStackPointer = topOfProcStack; +} + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + return(__regMainStackPointer); +} + + +/** + \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_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + __regMainStackPointer = topOfMainStack; +} + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + register uint32_t __regPriMask __ASM("primask"); + return(__regPriMask); +} + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + register uint32_t __regPriMask __ASM("primask"); + __regPriMask = (priMask); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 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 + + +/** + \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 + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + register uint32_t __regBasePri __ASM("basepri"); + return(__regBasePri); +} + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_INLINE void __set_BASEPRI(uint32_t basePri) +{ + register uint32_t __regBasePri __ASM("basepri"); + __regBasePri = (basePri & 0xFFU); +} + + +/** + \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_INLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + register uint32_t __regBasePriMax __ASM("basepri_max"); + __regBasePriMax = (basePri & 0xFFU); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + return(__regFaultMask); +} + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + __regFaultMask = (faultMask & (uint32_t)1U); +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +__STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + register uint32_t __regfpscr __ASM("fpscr"); + return(__regfpscr); +#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_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + register uint32_t __regfpscr __ASM("fpscr"); + __regfpscr = (fpscr); +#else + (void)fpscr; +#endif +} + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __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 __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 __wfe + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __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() do {\ + __schedule_barrier();\ + __isb(0xF);\ + __schedule_barrier();\ + } while (0U) + +/** + \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() do {\ + __schedule_barrier();\ + __dsb(0xF);\ + __schedule_barrier();\ + } while (0U) + +/** + \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() do {\ + __schedule_barrier();\ + __dmb(0xF);\ + __schedule_barrier();\ + } while (0U) + + +/** + \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 __rev + + +/** + \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 + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) +{ + rev16 r0, r0 + bx lr +} +#endif + + +/** + \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 + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int16_t __REVSH(int16_t value) +{ + revsh r0, r0 + bx lr +} +#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 + */ +#define __ROR __ror + + +/** + \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) __breakpoint(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 + */ +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + #define __RBIT __rbit +#else +__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + 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 */ + 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/stm32f103/Drivers/CMSIS/Include/cmsis_armclang.h b/stm32f103/Drivers/CMSIS/Include/cmsis_armclang.h new file mode 100644 index 0000000..d8031b0 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/cmsis_compiler.h b/stm32f103/Drivers/CMSIS/Include/cmsis_compiler.h new file mode 100644 index 0000000..79a2cac --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/cmsis_gcc.h b/stm32f103/Drivers/CMSIS/Include/cmsis_gcc.h new file mode 100644 index 0000000..1bd41a4 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/cmsis_iccarm.h b/stm32f103/Drivers/CMSIS/Include/cmsis_iccarm.h new file mode 100644 index 0000000..3c90a2c --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/cmsis_version.h b/stm32f103/Drivers/CMSIS/Include/cmsis_version.h new file mode 100644 index 0000000..ae3f2e3 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_armv8mbl.h b/stm32f103/Drivers/CMSIS/Include/core_armv8mbl.h new file mode 100644 index 0000000..ec76ab2 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_armv8mml.h b/stm32f103/Drivers/CMSIS/Include/core_armv8mml.h new file mode 100644 index 0000000..2d0f106 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_cm0.h b/stm32f103/Drivers/CMSIS/Include/core_cm0.h new file mode 100644 index 0000000..6f82227 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_cm0plus.h b/stm32f103/Drivers/CMSIS/Include/core_cm0plus.h new file mode 100644 index 0000000..b9377e8 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_cm1.h b/stm32f103/Drivers/CMSIS/Include/core_cm1.h new file mode 100644 index 0000000..fd1c407 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_cm23.h b/stm32f103/Drivers/CMSIS/Include/core_cm23.h new file mode 100644 index 0000000..8202a8d --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_cm3.h b/stm32f103/Drivers/CMSIS/Include/core_cm3.h new file mode 100644 index 0000000..b0dfbd3 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_cm33.h b/stm32f103/Drivers/CMSIS/Include/core_cm33.h new file mode 100644 index 0000000..02f82e2 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_cm4.h b/stm32f103/Drivers/CMSIS/Include/core_cm4.h new file mode 100644 index 0000000..308b868 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_cm7.h b/stm32f103/Drivers/CMSIS/Include/core_cm7.h new file mode 100644 index 0000000..ada6c2a --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_sc000.h b/stm32f103/Drivers/CMSIS/Include/core_sc000.h new file mode 100644 index 0000000..9086c64 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/core_sc300.h b/stm32f103/Drivers/CMSIS/Include/core_sc300.h new file mode 100644 index 0000000..665822d --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/mpu_armv7.h b/stm32f103/Drivers/CMSIS/Include/mpu_armv7.h new file mode 100644 index 0000000..7d4b600 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/mpu_armv8.h b/stm32f103/Drivers/CMSIS/Include/mpu_armv8.h new file mode 100644 index 0000000..99ee9f9 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/CMSIS/Include/tz_context.h b/stm32f103/Drivers/CMSIS/Include/tz_context.h new file mode 100644 index 0000000..d4c1474 --- /dev/null +++ b/stm32f103/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/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h new file mode 100644 index 0000000..412525a --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h @@ -0,0 +1,3783 @@ +/** + ****************************************************************************** + * @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) 2019 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* 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 +/** + * @} + */ + +/** @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 */ +/** + * @} + */ + +/** @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 +/** + * @} + */ + +/** @defgroup HAL_CORTEX_Aliased_Defines HAL CORTEX Aliased Defines maintained for legacy purpose + * @{ + */ +#define __HAL_CORTEX_SYSTICKCLK_CONFIG HAL_SYSTICK_CLKSourceConfig +/** + * @} + */ + +/** @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) +#define DAC_CHIPCONNECT_DISABLE DAC_CHIPCONNECT_EXTERNAL +#define DAC_CHIPCONNECT_ENABLE DAC_CHIPCONNECT_INTERNAL +#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 */ + +/** + * @} + */ + +/** @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) +#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 */ + +/** + * @} + */ + +/** @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 */ +/** + * @} + */ + + +/** @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) +#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*/ + +#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 +/** + * @} + */ + +/** @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 events that can be selected to configure the + * set/reset crossbar of a timer output + */ +#define HRTIM_OUTPUTSET_TIMEV_1 (HRTIM_SET1R_TIMEVNT1) +#define HRTIM_OUTPUTSET_TIMEV_2 (HRTIM_SET1R_TIMEVNT2) +#define HRTIM_OUTPUTSET_TIMEV_3 (HRTIM_SET1R_TIMEVNT3) +#define HRTIM_OUTPUTSET_TIMEV_4 (HRTIM_SET1R_TIMEVNT4) +#define HRTIM_OUTPUTSET_TIMEV_5 (HRTIM_SET1R_TIMEVNT5) +#define HRTIM_OUTPUTSET_TIMEV_6 (HRTIM_SET1R_TIMEVNT6) +#define HRTIM_OUTPUTSET_TIMEV_7 (HRTIM_SET1R_TIMEVNT7) +#define HRTIM_OUTPUTSET_TIMEV_8 (HRTIM_SET1R_TIMEVNT8) +#define HRTIM_OUTPUTSET_TIMEV_9 (HRTIM_SET1R_TIMEVNT9) + +#define HRTIM_OUTPUTRESET_TIMEV_1 (HRTIM_RST1R_TIMEVNT1) +#define HRTIM_OUTPUTRESET_TIMEV_2 (HRTIM_RST1R_TIMEVNT2) +#define HRTIM_OUTPUTRESET_TIMEV_3 (HRTIM_RST1R_TIMEVNT3) +#define HRTIM_OUTPUTRESET_TIMEV_4 (HRTIM_RST1R_TIMEVNT4) +#define HRTIM_OUTPUTRESET_TIMEV_5 (HRTIM_RST1R_TIMEVNT5) +#define HRTIM_OUTPUTRESET_TIMEV_6 (HRTIM_RST1R_TIMEVNT6) +#define HRTIM_OUTPUTRESET_TIMEV_7 (HRTIM_RST1R_TIMEVNT7) +#define HRTIM_OUTPUTRESET_TIMEV_8 (HRTIM_RST1R_TIMEVNT8) +#define HRTIM_OUTPUTRESET_TIMEV_9 (HRTIM_RST1R_TIMEVNT9) + +/** @brief Constants defining the event filtering applied to external events + * by a timer + */ +#define HRTIM_TIMEVENTFILTER_NONE (0x00000000U) +#define HRTIM_TIMEVENTFILTER_BLANKINGCMP1 (HRTIM_EEFR1_EE1FLTR_0) +#define HRTIM_TIMEVENTFILTER_BLANKINGCMP2 (HRTIM_EEFR1_EE1FLTR_1) +#define HRTIM_TIMEVENTFILTER_BLANKINGCMP3 (HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) +#define HRTIM_TIMEVENTFILTER_BLANKINGCMP4 (HRTIM_EEFR1_EE1FLTR_2) +#define HRTIM_TIMEVENTFILTER_BLANKINGFLTR1 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) +#define HRTIM_TIMEVENTFILTER_BLANKINGFLTR2 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) +#define HRTIM_TIMEVENTFILTER_BLANKINGFLTR3 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) +#define HRTIM_TIMEVENTFILTER_BLANKINGFLTR4 (HRTIM_EEFR1_EE1FLTR_3) +#define HRTIM_TIMEVENTFILTER_BLANKINGFLTR5 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0) +#define HRTIM_TIMEVENTFILTER_BLANKINGFLTR6 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1) +#define HRTIM_TIMEVENTFILTER_BLANKINGFLTR7 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) +#define HRTIM_TIMEVENTFILTER_BLANKINGFLTR8 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2) +#define HRTIM_TIMEVENTFILTER_WINDOWINGCMP2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) +#define HRTIM_TIMEVENTFILTER_WINDOWINGCMP3 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) +#define HRTIM_TIMEVENTFILTER_WINDOWINGTIM (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_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_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) +#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 + + +/** + * @} + */ + +/** @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(STM32H7) +#define RTC_TAMPCR_TAMPXE RTC_TAMPER_X +#define RTC_TAMPCR_TAMPXIE RTC_TAMPER_X_INTERRUPT + +#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_TAMPALL +#endif /* STM32H7 */ + +/** + * @} + */ + + +/** @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 + +/** + * @} + */ + +/** @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 */ + +/** + * @} + */ + +/** @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 */ + +/** @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_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 + + /** + * @} + */ + +/** @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 +#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 +#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(STM32L4) || defined(STM32WB) || defined(STM32G0) || defined(STM32G4) || defined(STM32L5) || defined(STM32WL) +#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 +#define RCC_LPTIM1CLKSOURCE_PCLK RCC_LPTIM1CLKSOURCE_PCLK1 +#define RCC_LPTIM2CLKSOURCE_PCLK RCC_LPTIM2CLKSOURCE_PCLK1 + +#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 + +/** + * @} + */ + +/** @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) +#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 */ + +#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 + +/** + * @} + */ + +/** @defgroup HAL_SD_Aliased_Macros HAL SD 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(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 + +/** + * @} + */ + +/** @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 +/** + * @} + */ + +/** @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_PPP_Aliased_Macros HAL PPP Aliased Macros maintained for legacy purpose + * @{ + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32_HAL_LEGACY */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h new file mode 100644 index 0000000..6228edb --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h @@ -0,0 +1,358 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal.h + * @author MCD Application Team + * @brief This file contains all the functions prototypes for the HAL + * module driver. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_H +#define __STM32F1xx_HAL_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_conf.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @addtogroup HAL + * @{ + */ + +/* 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; +/** + * @} + */ +/* Exported types ------------------------------------------------------------*/ +extern __IO uint32_t uwTick; +extern uint32_t uwTickPrio; +extern HAL_TickFreqTypeDef uwTickFreq; + +/** + * @} + */ +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup HAL_Exported_Macros HAL Exported Macros + * @{ + */ + +/** @defgroup DBGMCU_Freeze_Unfreeze Freeze Unfreeze Peripherals in Debug mode + * @brief Freeze/Unfreeze Peripherals in Debug mode + * Note: On devices STM32F10xx8 and STM32F10xxB, + * STM32F101xC/D/E and STM32F103xC/D/E, + * STM32F101xF/G and STM32F103xF/G + * STM32F10xx4 and STM32F10xx6 + * Debug registers DBGMCU_IDCODE and DBGMCU_CR are accessible only in + * debug mode (not accessible by the user software in normal mode). + * Refer to errata sheet of these devices for more details. + * @{ + */ + +/* Peripherals on APB1 */ +/** + * @brief TIM2 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM2() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM2_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM2() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM2_STOP) + +/** + * @brief TIM3 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM3() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM3_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM3() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM3_STOP) + +#if defined (DBGMCU_CR_DBG_TIM4_STOP) +/** + * @brief TIM4 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM4() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM4_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM4() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM4_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM5_STOP) +/** + * @brief TIM5 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM5() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM5_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM5() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM5_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM6_STOP) +/** + * @brief TIM6 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM6() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM6_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM6() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM6_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM7_STOP) +/** + * @brief TIM7 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM7() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM7_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM7() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM7_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM12_STOP) +/** + * @brief TIM12 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM12() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM12_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM12() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM12_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM13_STOP) +/** + * @brief TIM13 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM13() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM13_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM13() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM13_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM14_STOP) +/** + * @brief TIM14 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM14() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM14_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM14() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM14_STOP) +#endif + +/** + * @brief WWDG Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_WWDG() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_WWDG_STOP) +#define __HAL_DBGMCU_UNFREEZE_WWDG() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_WWDG_STOP) + +/** + * @brief IWDG Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_IWDG() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_IWDG_STOP) +#define __HAL_DBGMCU_UNFREEZE_IWDG() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_IWDG_STOP) + +/** + * @brief I2C1 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_I2C1_SMBUS_TIMEOUT) +#define __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_I2C1_SMBUS_TIMEOUT) + +#if defined (DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT) +/** + * @brief I2C2 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_I2C2_TIMEOUT() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT) +#define __HAL_DBGMCU_UNFREEZE_I2C2_TIMEOUT() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT) +#endif + +#if defined (DBGMCU_CR_DBG_CAN1_STOP) +/** + * @brief CAN1 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_CAN1() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_CAN1_STOP) +#define __HAL_DBGMCU_UNFREEZE_CAN1() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_CAN1_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_CAN2_STOP) +/** + * @brief CAN2 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_CAN2() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_CAN2_STOP) +#define __HAL_DBGMCU_UNFREEZE_CAN2() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_CAN2_STOP) +#endif + +/* Peripherals on APB2 */ +#if defined (DBGMCU_CR_DBG_TIM1_STOP) +/** + * @brief TIM1 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM1() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM1_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM1() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM1_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM8_STOP) +/** + * @brief TIM8 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM8() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM8_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM8() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM8_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM9_STOP) +/** + * @brief TIM9 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM9() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM9_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM9() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM9_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM10_STOP) +/** + * @brief TIM10 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM10() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM10_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM10() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM10_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM11_STOP) +/** + * @brief TIM11 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM11() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM11_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM11() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM11_STOP) +#endif + + +#if defined (DBGMCU_CR_DBG_TIM15_STOP) +/** + * @brief TIM15 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM15() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM15_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM15() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM15_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM16_STOP) +/** + * @brief TIM16 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM16() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM16_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM16() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM16_STOP) +#endif + +#if defined (DBGMCU_CR_DBG_TIM17_STOP) +/** + * @brief TIM17 Peripherals Debug mode + */ +#define __HAL_DBGMCU_FREEZE_TIM17() SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM17_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM17() CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM17_STOP) +#endif + +/** + * @} + */ + +/** @defgroup HAL_Private_Macros HAL Private Macros + * @{ + */ +#define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ) || \ + ((FREQ) == HAL_TICK_FREQ_100HZ) || \ + ((FREQ) == HAL_TICK_FREQ_1KHZ)) +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup HAL_Exported_Functions + * @{ + */ +/** @addtogroup HAL_Exported_Functions_Group1 + * @{ + */ +/* Initialization and 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); +/** + * @} + */ + +/** @addtogroup HAL_Exported_Functions_Group2 + * @{ + */ +/* Peripheral Control functions ************************************************/ +void HAL_IncTick(void); +void HAL_Delay(uint32_t Delay); +uint32_t HAL_GetTick(void); +uint32_t HAL_GetTickPrio(void); +HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq); +HAL_TickFreqTypeDef HAL_GetTickFreq(void); +void HAL_SuspendTick(void); +void HAL_ResumeTick(void); +uint32_t HAL_GetHalVersion(void); +uint32_t HAL_GetREVID(void); +uint32_t HAL_GetDEVID(void); +uint32_t HAL_GetUIDw0(void); +uint32_t HAL_GetUIDw1(void); +uint32_t HAL_GetUIDw2(void); +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); +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/** @defgroup HAL_Private_Variables HAL Private Variables + * @{ + */ +/** + * @} + */ +/* Private constants ---------------------------------------------------------*/ +/** @defgroup HAL_Private_Constants HAL Private Constants + * @{ + */ +/** + * @} + */ +/* Private macros ------------------------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_HAL_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h new file mode 100644 index 0000000..ce96197 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h @@ -0,0 +1,410 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_cortex.h + * @author MCD Application Team + * @brief Header file of CORTEX HAL module. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_CORTEX_H +#define __STM32F1xx_HAL_CORTEX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_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 == 1) +/** @defgroup CORTEX_MPU_HFNMI_PRIVDEF_Control MPU HFNMI and PRIVILEGED Access control + * @{ + */ +#define MPU_HFNMI_PRIVDEF_NONE 0x00000000U +#define MPU_HARDFAULT_NMI MPU_CTRL_HFNMIENA_Msk +#define MPU_PRIVILEGED_DEFAULT MPU_CTRL_PRIVDEFENA_Msk +#define MPU_HFNMI_PRIVDEF (MPU_CTRL_HFNMIENA_Msk | MPU_CTRL_PRIVDEFENA_Msk) + +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Enable CORTEX MPU Region Enable + * @{ + */ +#define MPU_REGION_ENABLE ((uint8_t)0x01) +#define MPU_REGION_DISABLE ((uint8_t)0x00) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Instruction_Access CORTEX MPU Instruction Access + * @{ + */ +#define MPU_INSTRUCTION_ACCESS_ENABLE ((uint8_t)0x00) +#define MPU_INSTRUCTION_ACCESS_DISABLE ((uint8_t)0x01) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Access_Shareable CORTEX MPU Instruction Access Shareable + * @{ + */ +#define MPU_ACCESS_SHAREABLE ((uint8_t)0x01) +#define MPU_ACCESS_NOT_SHAREABLE ((uint8_t)0x00) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Access_Cacheable CORTEX MPU Instruction Access Cacheable + * @{ + */ +#define MPU_ACCESS_CACHEABLE ((uint8_t)0x01) +#define MPU_ACCESS_NOT_CACHEABLE ((uint8_t)0x00) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Access_Bufferable CORTEX MPU Instruction Access Bufferable + * @{ + */ +#define MPU_ACCESS_BUFFERABLE ((uint8_t)0x01) +#define MPU_ACCESS_NOT_BUFFERABLE ((uint8_t)0x00) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_TEX_Levels MPU TEX Levels + * @{ + */ +#define MPU_TEX_LEVEL0 ((uint8_t)0x00) +#define MPU_TEX_LEVEL1 ((uint8_t)0x01) +#define MPU_TEX_LEVEL2 ((uint8_t)0x02) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Size CORTEX MPU Region Size + * @{ + */ +#define MPU_REGION_SIZE_32B ((uint8_t)0x04) +#define MPU_REGION_SIZE_64B ((uint8_t)0x05) +#define MPU_REGION_SIZE_128B ((uint8_t)0x06) +#define MPU_REGION_SIZE_256B ((uint8_t)0x07) +#define MPU_REGION_SIZE_512B ((uint8_t)0x08) +#define MPU_REGION_SIZE_1KB ((uint8_t)0x09) +#define MPU_REGION_SIZE_2KB ((uint8_t)0x0A) +#define MPU_REGION_SIZE_4KB ((uint8_t)0x0B) +#define MPU_REGION_SIZE_8KB ((uint8_t)0x0C) +#define MPU_REGION_SIZE_16KB ((uint8_t)0x0D) +#define MPU_REGION_SIZE_32KB ((uint8_t)0x0E) +#define MPU_REGION_SIZE_64KB ((uint8_t)0x0F) +#define MPU_REGION_SIZE_128KB ((uint8_t)0x10) +#define MPU_REGION_SIZE_256KB ((uint8_t)0x11) +#define MPU_REGION_SIZE_512KB ((uint8_t)0x12) +#define MPU_REGION_SIZE_1MB ((uint8_t)0x13) +#define MPU_REGION_SIZE_2MB ((uint8_t)0x14) +#define MPU_REGION_SIZE_4MB ((uint8_t)0x15) +#define MPU_REGION_SIZE_8MB ((uint8_t)0x16) +#define MPU_REGION_SIZE_16MB ((uint8_t)0x17) +#define MPU_REGION_SIZE_32MB ((uint8_t)0x18) +#define MPU_REGION_SIZE_64MB ((uint8_t)0x19) +#define MPU_REGION_SIZE_128MB ((uint8_t)0x1A) +#define MPU_REGION_SIZE_256MB ((uint8_t)0x1B) +#define MPU_REGION_SIZE_512MB ((uint8_t)0x1C) +#define MPU_REGION_SIZE_1GB ((uint8_t)0x1D) +#define MPU_REGION_SIZE_2GB ((uint8_t)0x1E) +#define MPU_REGION_SIZE_4GB ((uint8_t)0x1F) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Permission_Attributes CORTEX MPU Region Permission Attributes + * @{ + */ +#define MPU_REGION_NO_ACCESS ((uint8_t)0x00) +#define MPU_REGION_PRIV_RW ((uint8_t)0x01) +#define MPU_REGION_PRIV_RW_URO ((uint8_t)0x02) +#define MPU_REGION_FULL_ACCESS ((uint8_t)0x03) +#define MPU_REGION_PRIV_RO ((uint8_t)0x05) +#define MPU_REGION_PRIV_RO_URO ((uint8_t)0x06) +/** + * @} + */ + +/** @defgroup CORTEX_MPU_Region_Number CORTEX MPU Region Number + * @{ + */ +#define MPU_REGION_NUMBER0 ((uint8_t)0x00) +#define MPU_REGION_NUMBER1 ((uint8_t)0x01) +#define MPU_REGION_NUMBER2 ((uint8_t)0x02) +#define MPU_REGION_NUMBER3 ((uint8_t)0x03) +#define MPU_REGION_NUMBER4 ((uint8_t)0x04) +#define MPU_REGION_NUMBER5 ((uint8_t)0x05) +#define MPU_REGION_NUMBER6 ((uint8_t)0x06) +#define MPU_REGION_NUMBER7 ((uint8_t)0x07) +/** + * @} + */ +#endif /* __MPU_PRESENT */ + +/** + * @} + */ + + +/* Exported Macros -----------------------------------------------------------*/ + +/* 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 ***********************************************/ +uint32_t HAL_NVIC_GetPriorityGrouping(void); +void HAL_NVIC_GetPriority(IRQn_Type IRQn, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority); +uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn); +void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn); +void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn); +uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn); +void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource); +void HAL_SYSTICK_IRQHandler(void); +void HAL_SYSTICK_Callback(void); + +#if (__MPU_PRESENT == 1U) +void HAL_MPU_Enable(uint32_t MPU_Control); +void HAL_MPU_Disable(void); +void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init); +#endif /* __MPU_PRESENT */ +/** + * @} + */ + +/** + * @} + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +/** @defgroup CORTEX_Private_Macros CORTEX Private Macros + * @{ + */ +#define IS_NVIC_PRIORITY_GROUP(GROUP) (((GROUP) == NVIC_PRIORITYGROUP_0) || \ + ((GROUP) == NVIC_PRIORITYGROUP_1) || \ + ((GROUP) == NVIC_PRIORITYGROUP_2) || \ + ((GROUP) == NVIC_PRIORITYGROUP_3) || \ + ((GROUP) == NVIC_PRIORITYGROUP_4)) + +#define IS_NVIC_PREEMPTION_PRIORITY(PRIORITY) ((PRIORITY) < 0x10U) + +#define IS_NVIC_SUB_PRIORITY(PRIORITY) ((PRIORITY) < 0x10U) + +#define IS_NVIC_DEVICE_IRQ(IRQ) ((IRQ) >= (IRQn_Type)0x00U) + +#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)0x00FF) +#endif /* __MPU_PRESENT */ + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_HAL_CORTEX_H */ + + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h new file mode 100644 index 0000000..6ff1109 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h @@ -0,0 +1,210 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_def.h + * @author MCD Application Team + * @brief This file contains HAL common defines, enumeration, macros and + * structures definitions. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_DEF +#define __STM32F1xx_HAL_DEF + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx.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 = 0x03U +} HAL_StatusTypeDef; + +/** + * @brief HAL Lock structures definition + */ +typedef enum +{ + HAL_UNLOCKED = 0x00U, + HAL_LOCKED = 0x01U +} HAL_LockTypeDef; + +/* Exported macro ------------------------------------------------------------*/ +#define HAL_MAX_DELAY 0xFFFFFFFFU + +#define HAL_IS_BIT_SET(REG, BIT) (((REG) & (BIT)) != 0U) +#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) + +#define UNUSED(X) (void)X /* To avoid gcc/g++ warnings */ + +/** @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) +/* Reserved for future use */ +#error "USE_RTOS should be 0 in the current HAL release" +#else +#define __HAL_LOCK(__HANDLE__) \ + do{ \ + if((__HANDLE__)->Lock == HAL_LOCKED) \ + { \ + return HAL_BUSY; \ + } \ + else \ + { \ + (__HANDLE__)->Lock = HAL_LOCKED; \ + } \ + }while (0U) + +#define __HAL_UNLOCK(__HANDLE__) \ + do{ \ + (__HANDLE__)->Lock = HAL_UNLOCKED; \ + }while (0U) +#endif /* USE_RTOS */ + +#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) /* ARM Compiler V6 */ +#ifndef __weak +#define __weak __attribute__((weak)) +#endif +#ifndef __packed +#define __packed __attribute__((packed)) +#endif +#elif defined ( __GNUC__ ) && !defined (__CC_ARM) /* GNU Compiler */ +#ifndef __weak +#define __weak __attribute__((weak)) +#endif /* __weak */ +#ifndef __packed +#define __packed __attribute__((__packed__)) +#endif /* __packed */ +#endif /* __GNUC__ */ + + +/* Macro to get variable aligned on 4-bytes, for __ICCARM__ the directive "#pragma data_alignment=4" must be used instead */ +#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) /* ARM Compiler V6 */ +#ifndef __ALIGN_BEGIN +#define __ALIGN_BEGIN +#endif +#ifndef __ALIGN_END +#define __ALIGN_END __attribute__ ((aligned (4))) +#endif +#elif defined ( __GNUC__ ) && !defined (__CC_ARM) /* GNU Compiler */ +#ifndef __ALIGN_END +#define __ALIGN_END __attribute__ ((aligned (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 __RAM_FUNC definition + */ +#if defined ( __CC_ARM ) || (defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)) +/* ARM Compiler V4/V5 and V6 + -------------------------- + RAM functions are defined using the toolchain options. + Functions that are executed in RAM should reside in a separate source module. + Using the 'Options for File' dialog you can simply change the 'Code / Const' + area of a module to a memory space in physical RAM. + Available memory areas are declared in the 'Target' tab of the 'Options for Target' + dialog. +*/ +#define __RAM_FUNC + +#elif defined ( __ICCARM__ ) +/* ICCARM Compiler + --------------- + RAM functions are defined using a specific toolchain keyword "__ramfunc". +*/ +#define __RAM_FUNC __ramfunc + +#elif defined ( __GNUC__ ) +/* GNU Compiler + ------------ + RAM functions are defined using a specific toolchain attribute + "__attribute__((section(".RamFunc")))". +*/ +#define __RAM_FUNC __attribute__((section(".RamFunc"))) + +#endif + +/** + * @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 /* ___STM32F1xx_HAL_DEF */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h new file mode 100644 index 0000000..7b2304d --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h @@ -0,0 +1,457 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_dma.h + * @author MCD Application Team + * @brief Header file of DMA HAL module. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_DMA_H +#define __STM32F1xx_HAL_DMA_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_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 = 0x03U /*!< DMA timeout state */ +}HAL_DMA_StateTypeDef; + +/** + * @brief HAL DMA Error Code structure definition + */ +typedef enum +{ + HAL_DMA_FULL_TRANSFER = 0x00U, /*!< Full transfer */ + HAL_DMA_HALF_TRANSFER = 0x01U /*!< Half Transfer */ +}HAL_DMA_LevelCompleteTypeDef; + +/** + * @brief HAL DMA Callback ID structure definition + */ +typedef enum +{ + HAL_DMA_XFER_CPLT_CB_ID = 0x00U, /*!< Full transfer */ + HAL_DMA_XFER_HALFCPLT_CB_ID = 0x01U, /*!< Half transfer */ + HAL_DMA_XFER_ERROR_CB_ID = 0x02U, /*!< Error */ + HAL_DMA_XFER_ABORT_CB_ID = 0x03U, /*!< Abort */ + HAL_DMA_XFER_ALL_CB_ID = 0x04U /*!< All */ + +}HAL_DMA_CallbackIDTypeDef; + +/** + * @brief DMA handle Structure definition + */ +typedef struct __DMA_HandleTypeDef +{ + DMA_Channel_TypeDef *Instance; /*!< Register base address */ + + DMA_InitTypeDef Init; /*!< DMA communication parameters */ + + HAL_LockTypeDef Lock; /*!< DMA locking object */ + + 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 ongoing 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 macros -----------------------------------------------------------*/ +/** @defgroup DMA_Exported_Macros DMA Exported Macros + * @{ + */ + +/** @brief Reset DMA handle state. + * @param __HANDLE__: DMA handle + * @retval None + */ +#define __HAL_DMA_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DMA_STATE_RESET) + +/** + * @brief Enable the specified DMA Channel. + * @param __HANDLE__: DMA handle + * @retval None + */ +#define __HAL_DMA_ENABLE(__HANDLE__) (SET_BIT((__HANDLE__)->Instance->CCR, DMA_CCR_EN)) + +/** + * @brief Disable the specified DMA Channel. + * @param __HANDLE__: DMA handle + * @retval None + */ +#define __HAL_DMA_DISABLE(__HANDLE__) (CLEAR_BIT((__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__) (SET_BIT((__HANDLE__)->Instance->CCR, (__INTERRUPT__))) + +/** + * @brief Disable the specified DMA Channel interrupts. + * @param __HANDLE__: DMA handle + * @param __INTERRUPT__: specifies the DMA interrupt sources to be enabled or disabled. + * This parameter can be any combination of the following values: + * @arg DMA_IT_TC: Transfer complete interrupt mask + * @arg DMA_IT_HT: Half transfer complete interrupt mask + * @arg DMA_IT_TE: Transfer error interrupt mask + * @retval None + */ +#define __HAL_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__) (CLEAR_BIT((__HANDLE__)->Instance->CCR , (__INTERRUPT__))) + +/** + * @brief Check whether the specified DMA Channel interrupt is enabled or not. + * @param __HANDLE__: DMA handle + * @param __INTERRUPT__: specifies the DMA interrupt source to check. + * This parameter can be one of the following values: + * @arg DMA_IT_TC: Transfer complete interrupt mask + * @arg DMA_IT_HT: Half transfer complete interrupt mask + * @arg DMA_IT_TE: Transfer error interrupt mask + * @retval The state of DMA_IT (SET or RESET). + */ +#define __HAL_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->CCR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) + +/** + * @brief Return the number of remaining data units in the current DMA Channel transfer. + * @param __HANDLE__: DMA handle + * @retval The number of remaining data units in the current DMA Channel transfer. + */ +#define __HAL_DMA_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNDTR) + +/** + * @} + */ + +/* Include DMA HAL Extension module */ +#include "stm32f1xx_hal_dma_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup DMA_Exported_Functions + * @{ + */ + +/** @addtogroup DMA_Exported_Functions_Group1 + * @{ + */ +/* Initialization and de-initialization functions *****************************/ +HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMA_DeInit (DMA_HandleTypeDef *hdma); +/** + * @} + */ + +/** @addtogroup DMA_Exported_Functions_Group2 + * @{ + */ +/* IO operation functions *****************************************************/ +HAL_StatusTypeDef HAL_DMA_Start (DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength); +HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength); +HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, 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 and Error functions ***************************************/ +HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma); +uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma); +/** + * @} + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup DMA_Private_Macros DMA Private Macros + * @{ + */ + +#define IS_DMA_DIRECTION(DIRECTION) (((DIRECTION) == DMA_PERIPH_TO_MEMORY ) || \ + ((DIRECTION) == DMA_MEMORY_TO_PERIPH) || \ + ((DIRECTION) == DMA_MEMORY_TO_MEMORY)) + +#define IS_DMA_BUFFER_SIZE(SIZE) (((SIZE) >= 0x1U) && ((SIZE) < 0x10000U)) + +#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)) + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_HAL_DMA_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h new file mode 100644 index 0000000..d861f50 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h @@ -0,0 +1,277 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_DMA_EX_H +#define __STM32F1xx_HAL_DMA_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @defgroup DMAEx DMAEx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup DMAEx_Exported_Macros DMA Extended Exported Macros + * @{ + */ +/* Interrupt & Flag management */ +#if defined (STM32F100xE) || defined (STM32F101xE) || defined (STM32F101xG) || defined (STM32F103xE) || \ + defined (STM32F103xG) || defined (STM32F105xC) || defined (STM32F107xC) +/** @defgroup DMAEx_High_density_XL_density_Product_devices DMAEx High density and XL 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 :\ + ((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 +/** @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 Return 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 Return 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 + * @arg DMA_FLAG_GLx: Global interrupt 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 Clear the DMA Channel pending flags. + * @param __HANDLE__: DMA handle + * @param __FLAG__: specifies the flag to clear. + * This parameter can be any combination of the following values: + * @arg DMA_FLAG_TCx: Transfer complete flag + * @arg DMA_FLAG_HTx: Half transfer complete flag + * @arg DMA_FLAG_TEx: Transfer error flag + * @arg DMA_FLAG_GLx: Global interrupt flag + * Where x can be 1_7 to select the DMA Channel flag. + * @retval None + */ +#define __HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__) (DMA1->IFCR = (__FLAG__)) + +/** + * @} + */ + +#endif + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || */ + /* STM32F103xG || STM32F105xC || STM32F107xC */ + +#endif /* __STM32F1xx_HAL_DMA_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h new file mode 100644 index 0000000..e42e8c0 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h @@ -0,0 +1,320 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_exti.h + * @author MCD Application Team + * @brief Header file of EXTI HAL module. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32F1xx_HAL_EXTI_H +#define STM32F1xx_HAL_EXTI_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_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 | 0x00u) /*!< External interrupt line 0 */ +#define EXTI_LINE_1 (EXTI_GPIO | 0x01u) /*!< External interrupt line 1 */ +#define EXTI_LINE_2 (EXTI_GPIO | 0x02u) /*!< External interrupt line 2 */ +#define EXTI_LINE_3 (EXTI_GPIO | 0x03u) /*!< External interrupt line 3 */ +#define EXTI_LINE_4 (EXTI_GPIO | 0x04u) /*!< External interrupt line 4 */ +#define EXTI_LINE_5 (EXTI_GPIO | 0x05u) /*!< External interrupt line 5 */ +#define EXTI_LINE_6 (EXTI_GPIO | 0x06u) /*!< External interrupt line 6 */ +#define EXTI_LINE_7 (EXTI_GPIO | 0x07u) /*!< External interrupt line 7 */ +#define EXTI_LINE_8 (EXTI_GPIO | 0x08u) /*!< External interrupt line 8 */ +#define EXTI_LINE_9 (EXTI_GPIO | 0x09u) /*!< External interrupt line 9 */ +#define EXTI_LINE_10 (EXTI_GPIO | 0x0Au) /*!< External interrupt line 10 */ +#define EXTI_LINE_11 (EXTI_GPIO | 0x0Bu) /*!< External interrupt line 11 */ +#define EXTI_LINE_12 (EXTI_GPIO | 0x0Cu) /*!< External interrupt line 12 */ +#define EXTI_LINE_13 (EXTI_GPIO | 0x0Du) /*!< External interrupt line 13 */ +#define EXTI_LINE_14 (EXTI_GPIO | 0x0Eu) /*!< External interrupt line 14 */ +#define EXTI_LINE_15 (EXTI_GPIO | 0x0Fu) /*!< External interrupt line 15 */ +#define EXTI_LINE_16 (EXTI_CONFIG | 0x10u) /*!< External interrupt line 16 Connected to the PVD Output */ +#define EXTI_LINE_17 (EXTI_CONFIG | 0x11u) /*!< External interrupt line 17 Connected to the RTC Alarm event */ +#if defined(EXTI_IMR_IM18) +#define EXTI_LINE_18 (EXTI_CONFIG | 0x12u) /*!< External interrupt line 18 Connected to the USB Wakeup from suspend event */ +#endif /* EXTI_IMR_IM18 */ +#if defined(EXTI_IMR_IM19) +#define EXTI_LINE_19 (EXTI_CONFIG | 0x13u) /*!< External interrupt line 19 Connected to the Ethernet Wakeup event */ +#endif /* EXTI_IMR_IM19 */ + +/** + * @} + */ + +/** @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 */ +#if defined (GPIOF) +#define EXTI_GPIOF 0x00000005u +#endif /* GPIOF */ +#if defined (GPIOG) +#define EXTI_GPIOG 0x00000006u +#endif /* GPIOG */ +/** + * @} + */ + +/** + * @} + */ + +/* 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_CONFIG (0x02uL << EXTI_PROPERTY_SHIFT) +#define EXTI_GPIO ((0x04uL << EXTI_PROPERTY_SHIFT) | EXTI_CONFIG) +#define EXTI_PROPERTY_MASK (EXTI_CONFIG | EXTI_GPIO) + +/** + * @brief EXTI bit usage + */ +#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_IMR_IM19) +#define EXTI_LINE_NB 20UL +#elif defined(EXTI_IMR_IM18) +#define EXTI_LINE_NB 19UL +#else /* EXTI_IMR_IM17 */ +#define EXTI_LINE_NB 18UL +#endif /* EXTI_IMR_IM19 */ +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup EXTI_Private_Macros EXTI Private Macros + * @{ + */ +#define IS_EXTI_LINE(__EXTI_LINE__) ((((__EXTI_LINE__) & ~(EXTI_PROPERTY_MASK | EXTI_PIN_MASK)) == 0x00u) && \ + ((((__EXTI_LINE__) & EXTI_PROPERTY_MASK) == EXTI_CONFIG) || \ + (((__EXTI_LINE__) & EXTI_PROPERTY_MASK) == EXTI_GPIO)) && \ + (((__EXTI_LINE__) & EXTI_PIN_MASK) < EXTI_LINE_NB)) + +#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 (GPIOG) +#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)) +#elif defined (GPIOF) +#define IS_EXTI_GPIO_PORT(__PORT__) (((__PORT__) == EXTI_GPIOA) || \ + ((__PORT__) == EXTI_GPIOB) || \ + ((__PORT__) == EXTI_GPIOC) || \ + ((__PORT__) == EXTI_GPIOD) || \ + ((__PORT__) == EXTI_GPIOE) || \ + ((__PORT__) == EXTI_GPIOF)) +#elif defined (GPIOE) +#define IS_EXTI_GPIO_PORT(__PORT__) (((__PORT__) == EXTI_GPIOA) || \ + ((__PORT__) == EXTI_GPIOB) || \ + ((__PORT__) == EXTI_GPIOC) || \ + ((__PORT__) == EXTI_GPIOD) || \ + ((__PORT__) == EXTI_GPIOE)) +#else +#define IS_EXTI_GPIO_PORT(__PORT__) (((__PORT__) == EXTI_GPIOA) || \ + ((__PORT__) == EXTI_GPIOB) || \ + ((__PORT__) == EXTI_GPIOC) || \ + ((__PORT__) == EXTI_GPIOD)) +#endif /* GPIOG */ + +#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 /* STM32F1xx_HAL_EXTI_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h new file mode 100644 index 0000000..8cd21b1 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h @@ -0,0 +1,328 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_flash.h + * @author MCD Application Team + * @brief Header file of Flash HAL module. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_FLASH_H +#define __STM32F1xx_HAL_FLASH_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_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)) + +#if defined(FLASH_ACR_LATENCY) +#define IS_FLASH_LATENCY(__LATENCY__) (((__LATENCY__) == FLASH_LATENCY_0) || \ + ((__LATENCY__) == FLASH_LATENCY_1) || \ + ((__LATENCY__) == FLASH_LATENCY_2)) + +#else +#define IS_FLASH_LATENCY(__LATENCY__) ((__LATENCY__) == FLASH_LATENCY_0) +#endif /* FLASH_ACR_LATENCY */ +/** + * @} + */ + +/* 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 */ +#define HAL_FLASH_ERROR_OPTV 0x04U /*!< Option validity error */ + +/** + * @} + */ + +/** @defgroup FLASH_Type_Program FLASH Type Program + * @{ + */ +#define FLASH_TYPEPROGRAM_HALFWORD 0x01U /*!ACR |= FLASH_ACR_HLFCYA) + +/** + * @brief Disable the FLASH half cycle access. + * @note half cycle access can only be used with a low-frequency clock of less than + 8 MHz that can be obtained with the use of HSI or HSE but not of PLL. + * @retval None + */ +#define __HAL_FLASH_HALF_CYCLE_ACCESS_DISABLE() (FLASH->ACR &= (~FLASH_ACR_HLFCYA)) + +/** + * @} + */ + +#if defined(FLASH_ACR_LATENCY) +/** @defgroup FLASH_EM_Latency FLASH Latency + * @brief macros to handle FLASH Latency + * @{ + */ + +/** + * @brief Set the FLASH Latency. + * @param __LATENCY__ FLASH Latency + * The value of this parameter depend on device used within the same series + * @retval None + */ +#define __HAL_FLASH_SET_LATENCY(__LATENCY__) (FLASH->ACR = (FLASH->ACR&(~FLASH_ACR_LATENCY)) | (__LATENCY__)) + + +/** + * @brief Get the FLASH Latency. + * @retval FLASH Latency + * The value of this parameter depend on device used within the same series + */ +#define __HAL_FLASH_GET_LATENCY() (READ_BIT((FLASH->ACR), FLASH_ACR_LATENCY)) + +/** + * @} + */ + +#endif /* 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)) + +/** + * @} + */ + +/** + * @} + */ + +/* Include FLASH HAL Extended module */ +#include "stm32f1xx_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); +void 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); +#if defined(FLASH_BANK2_END) +HAL_StatusTypeDef FLASH_WaitForLastOperationBank2(uint32_t Timeout); +#endif /* FLASH_BANK2_END */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_HAL_FLASH_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h new file mode 100644 index 0000000..1dcaeed --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h @@ -0,0 +1,786 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_FLASH_EX_H +#define __STM32F1xx_HAL_FLASH_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @addtogroup FLASHEx + * @{ + */ + +/** @addtogroup FLASHEx_Private_Constants + * @{ + */ + +#define FLASH_SIZE_DATA_REGISTER 0x1FFFF7E0U +#define OBR_REG_INDEX 1U +#define SR_FLAG_MASK ((uint32_t)(FLASH_SR_BSY | FLASH_SR_PGERR | FLASH_SR_WRPRTERR | FLASH_SR_EOP)) + +/** + * @} + */ + +/** @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_RDP_LEVEL(LEVEL) (((LEVEL) == OB_RDP_LEVEL_0) || ((LEVEL) == OB_RDP_LEVEL_1)) + +#define IS_OB_DATA_ADDRESS(ADDRESS) (((ADDRESS) == OB_DATA_ADDRESS_DATA0) || ((ADDRESS) == OB_DATA_ADDRESS_DATA1)) + +#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)) + +#if defined(FLASH_BANK2_END) +#define IS_OB_BOOT1(BOOT1) (((BOOT1) == OB_BOOT1_RESET) || ((BOOT1) == OB_BOOT1_SET)) +#endif /* FLASH_BANK2_END */ + +/* Low Density */ +#if (defined(STM32F101x6) || defined(STM32F102x6) || defined(STM32F103x6)) +#define IS_FLASH_NB_PAGES(ADDRESS,NBPAGES) (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x20U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)- 1 <= 0x08007FFFU) : \ + ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)- 1 <= 0x08003FFFU)) +#endif /* STM32F101x6 || STM32F102x6 || STM32F103x6 */ + +/* Medium Density */ +#if (defined(STM32F100xB) || defined(STM32F101xB) || defined(STM32F102xB) || defined(STM32F103xB)) +#define IS_FLASH_NB_PAGES(ADDRESS,NBPAGES) (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x80U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x0801FFFFU) : \ + (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x40U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x0800FFFFU) : \ + (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x20U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x08007FFFU) : \ + ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x08003FFFU)))) +#endif /* STM32F100xB || STM32F101xB || STM32F102xB || STM32F103xB*/ + +/* High Density */ +#if (defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F103xE)) +#define IS_FLASH_NB_PAGES(ADDRESS,NBPAGES) (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x200U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x0807FFFFU) : \ + (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x180U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x0805FFFFU) : \ + ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x0803FFFFU))) +#endif /* STM32F100xE || STM32F101xE || STM32F103xE */ + +/* XL Density */ +#if defined(FLASH_BANK2_END) +#define IS_FLASH_NB_PAGES(ADDRESS,NBPAGES) (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x400U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x080FFFFFU) : \ + ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x080BFFFFU)) +#endif /* FLASH_BANK2_END */ + +/* Connectivity Line */ +#if (defined(STM32F105xC) || defined(STM32F107xC)) +#define IS_FLASH_NB_PAGES(ADDRESS,NBPAGES) (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x100U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x0803FFFFU) : \ + (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x80U) ? ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x0801FFFFU) : \ + ((ADDRESS)+((NBPAGES)*FLASH_PAGE_SIZE)-1 <= 0x0800FFFFU))) +#endif /* STM32F105xC || STM32F107xC */ + +#define IS_OB_WRP(PAGE) (((PAGE) != 0x0000000U)) + +#if defined(FLASH_BANK2_END) +#define IS_FLASH_BANK(BANK) (((BANK) == FLASH_BANK_1) || \ + ((BANK) == FLASH_BANK_2) || \ + ((BANK) == FLASH_BANK_BOTH)) +#else +#define IS_FLASH_BANK(BANK) (((BANK) == FLASH_BANK_1)) +#endif /* FLASH_BANK2_END */ + +/* Low Density */ +#if (defined(STM32F101x6) || defined(STM32F102x6) || defined(STM32F103x6)) +#define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (((ADDRESS) >= FLASH_BASE) && (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x20U) ? \ + ((ADDRESS) <= FLASH_BANK1_END) : ((ADDRESS) <= 0x08003FFFU))) + +#endif /* STM32F101x6 || STM32F102x6 || STM32F103x6 */ + +/* Medium Density */ +#if (defined(STM32F100xB) || defined(STM32F101xB) || defined(STM32F102xB) || defined(STM32F103xB)) +#define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (((ADDRESS) >= FLASH_BASE) && (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x80U) ? \ + ((ADDRESS) <= FLASH_BANK1_END) : (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x40U) ? \ + ((ADDRESS) <= 0x0800FFFF) : (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x20U) ? \ + ((ADDRESS) <= 0x08007FFF) : ((ADDRESS) <= 0x08003FFFU))))) + +#endif /* STM32F100xB || STM32F101xB || STM32F102xB || STM32F103xB*/ + +/* High Density */ +#if (defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F103xE)) +#define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (((ADDRESS) >= FLASH_BASE) && (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x200U) ? \ + ((ADDRESS) <= FLASH_BANK1_END) : (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x180U) ? \ + ((ADDRESS) <= 0x0805FFFFU) : ((ADDRESS) <= 0x0803FFFFU)))) + +#endif /* STM32F100xE || STM32F101xE || STM32F103xE */ + +/* XL Density */ +#if defined(FLASH_BANK2_END) +#define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (((ADDRESS) >= FLASH_BASE) && (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x400U) ? \ + ((ADDRESS) <= FLASH_BANK2_END) : ((ADDRESS) <= 0x080BFFFFU))) + +#endif /* FLASH_BANK2_END */ + +/* Connectivity Line */ +#if (defined(STM32F105xC) || defined(STM32F107xC)) +#define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (((ADDRESS) >= FLASH_BASE) && (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x100U) ? \ + ((ADDRESS) <= FLASH_BANK1_END) : (((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0x80U) ? \ + ((ADDRESS) <= 0x0801FFFFU) : ((ADDRESS) <= 0x0800FFFFU)))) + +#endif /* STM32F105xC || STM32F107xC */ + +/** + * @} + */ + +/* 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 Banks; /*!< Select banks to erase when Mass erase is enabled. + This parameter must be a value of @ref FLASHEx_Banks */ + + uint32_t PageAddress; /*!< PageAdress: Initial FLASH page address to erase when mass erase is disabled + This parameter must be a number between Min_Data = 0x08000000 and Max_Data = FLASH_BANKx_END + (x = 1 or 2 depending on devices)*/ + + 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 */ + + uint32_t Banks; /*!< Select banks for WRP activation/deactivation of all sectors. + This parameter must be a value of @ref FLASHEx_Banks */ + + uint8_t RDPLevel; /*!< RDPLevel: Set the read protection level.. + This parameter can be a value of @ref FLASHEx_OB_Read_Protection */ + +#if defined(FLASH_BANK2_END) + uint8_t USERConfig; /*!< USERConfig: Program the FLASH User Option Byte: + IWDG / STOP / STDBY / BOOT1 + 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 */ +#else + uint8_t USERConfig; /*!< USERConfig: Program the FLASH User Option Byte: + IWDG / STOP / STDBY + This parameter can be a combination of @ref FLASHEx_OB_IWatchdog, @ref FLASHEx_OB_nRST_STOP, + @ref FLASHEx_OB_nRST_STDBY */ +#endif /* FLASH_BANK2_END */ + + 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 = 0xFF */ +} FLASH_OBProgramInitTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup FLASHEx_Exported_Constants FLASHEx Exported Constants + * @{ + */ + +/** @defgroup FLASHEx_Constants FLASH Constants + * @{ + */ + +/** @defgroup FLASHEx_Page_Size Page Size + * @{ + */ +#if (defined(STM32F101x6) || defined(STM32F102x6) || defined(STM32F103x6) || defined(STM32F100xB) || defined(STM32F101xB) || defined(STM32F102xB) || defined(STM32F103xB)) +#define FLASH_PAGE_SIZE 0x400U +#endif /* STM32F101x6 || STM32F102x6 || STM32F103x6 */ + /* STM32F100xB || STM32F101xB || STM32F102xB || STM32F103xB */ + +#if (defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG) || defined(STM32F103xG) || defined(STM32F105xC) || defined(STM32F107xC)) +#define FLASH_PAGE_SIZE 0x800U +#endif /* STM32F100xB || STM32F101xB || STM32F102xB || STM32F103xB */ + /* STM32F101xG || STM32F103xG */ + /* STM32F105xC || STM32F107xC */ + +/** + * @} + */ + +/** @defgroup FLASHEx_Type_Erase Type Erase + * @{ + */ +#define FLASH_TYPEERASE_PAGES 0x00U /*!CR, ((__INTERRUPT__) & 0x0000FFFFU)); \ + /* Enable Bank2 IT */ \ + SET_BIT(FLASH->CR2, ((__INTERRUPT__) >> 16U)); \ + } while(0U) + +/** + * @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_BANK1 End of FLASH Operation Interrupt on bank1 + * @arg @ref FLASH_IT_ERR_BANK1 Error Interrupt on bank1 + * @arg @ref FLASH_IT_EOP_BANK2 End of FLASH Operation Interrupt on bank2 + * @arg @ref FLASH_IT_ERR_BANK2 Error Interrupt on bank2 + * @retval none + */ +#define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) do { \ + /* Disable Bank1 IT */ \ + CLEAR_BIT(FLASH->CR, ((__INTERRUPT__) & 0x0000FFFFU)); \ + /* Disable Bank2 IT */ \ + CLEAR_BIT(FLASH->CR2, ((__INTERRUPT__) >> 16U)); \ + } while(0U) + +/** + * @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_EOP_BANK1 FLASH End of Operation flag on bank1 + * @arg @ref FLASH_FLAG_WRPERR_BANK1 FLASH Write protected error flag on bank1 + * @arg @ref FLASH_FLAG_PGERR_BANK1 FLASH Programming error flag on bank1 + * @arg @ref FLASH_FLAG_BSY_BANK1 FLASH Busy flag on bank1 + * @arg @ref FLASH_FLAG_EOP_BANK2 FLASH End of Operation flag on bank2 + * @arg @ref FLASH_FLAG_WRPERR_BANK2 FLASH Write protected error flag on bank2 + * @arg @ref FLASH_FLAG_PGERR_BANK2 FLASH Programming error flag on bank2 + * @arg @ref FLASH_FLAG_BSY_BANK2 FLASH Busy flag on bank2 + * @arg @ref FLASH_FLAG_OPTVERR Loaded OB and its complement do not match + * @retval The new state of __FLAG__ (SET or RESET). + */ +#define __HAL_FLASH_GET_FLAG(__FLAG__) (((__FLAG__) == FLASH_FLAG_OPTVERR) ? \ + (FLASH->OBR & FLASH_OBR_OPTERR) : \ + ((((__FLAG__) & SR_FLAG_MASK) != RESET)? \ + (FLASH->SR & ((__FLAG__) & SR_FLAG_MASK)) : \ + (FLASH->SR2 & ((__FLAG__) >> 16U)))) + +/** + * @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_BANK1 FLASH End of Operation flag on bank1 + * @arg @ref FLASH_FLAG_WRPERR_BANK1 FLASH Write protected error flag on bank1 + * @arg @ref FLASH_FLAG_PGERR_BANK1 FLASH Programming error flag on bank1 + * @arg @ref FLASH_FLAG_BSY_BANK1 FLASH Busy flag on bank1 + * @arg @ref FLASH_FLAG_EOP_BANK2 FLASH End of Operation flag on bank2 + * @arg @ref FLASH_FLAG_WRPERR_BANK2 FLASH Write protected error flag on bank2 + * @arg @ref FLASH_FLAG_PGERR_BANK2 FLASH Programming error flag on bank2 + * @arg @ref FLASH_FLAG_BSY_BANK2 FLASH Busy flag on bank2 + * @arg @ref FLASH_FLAG_OPTVERR Loaded OB and its complement do not match + * @retval none + */ +#define __HAL_FLASH_CLEAR_FLAG(__FLAG__) do { \ + /* Clear FLASH_FLAG_OPTVERR flag */ \ + if ((__FLAG__) == FLASH_FLAG_OPTVERR) \ + { \ + CLEAR_BIT(FLASH->OBR, FLASH_OBR_OPTERR); \ + } \ + else { \ + /* Clear Flag in Bank1 */ \ + if (((__FLAG__) & SR_FLAG_MASK) != RESET) \ + { \ + FLASH->SR = ((__FLAG__) & SR_FLAG_MASK); \ + } \ + /* Clear Flag in Bank2 */ \ + if (((__FLAG__) >> 16U) != RESET) \ + { \ + FLASH->SR2 = ((__FLAG__) >> 16U); \ + } \ + } \ + } while(0U) +#else +/** + * @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__) (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__) (FLASH->CR &= ~(__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_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 + * @arg @ref FLASH_FLAG_BSY FLASH Busy flag + * @arg @ref FLASH_FLAG_OPTVERR Loaded OB and its complement do not match + * @retval The new state of __FLAG__ (SET or RESET). + */ +#define __HAL_FLASH_GET_FLAG(__FLAG__) (((__FLAG__) == FLASH_FLAG_OPTVERR) ? \ + (FLASH->OBR & FLASH_OBR_OPTERR) : \ + (FLASH->SR & (__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 + * @arg @ref FLASH_FLAG_OPTVERR Loaded OB and its complement do not match + * @retval none + */ +#define __HAL_FLASH_CLEAR_FLAG(__FLAG__) do { \ + /* Clear FLASH_FLAG_OPTVERR flag */ \ + if ((__FLAG__) == FLASH_FLAG_OPTVERR) \ + { \ + CLEAR_BIT(FLASH->OBR, FLASH_OBR_OPTERR); \ + } \ + else { \ + /* Clear Flag in Bank1 */ \ + FLASH->SR = (__FLAG__); \ + } \ + } while(0U) + +#endif + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup FLASHEx_Exported_Functions + * @{ + */ + +/** @addtogroup FLASHEx_Exported_Functions_Group1 + * @{ + */ +/* IO operation functions *****************************************************/ +HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError); +HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit); + +/** + * @} + */ + +/** @addtogroup FLASHEx_Exported_Functions_Group2 + * @{ + */ +/* Peripheral Control functions ***********************************************/ +HAL_StatusTypeDef HAL_FLASHEx_OBErase(void); +HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit); +void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit); +uint32_t HAL_FLASHEx_OBGetUserData(uint32_t DATAAdress); +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_HAL_FLASH_EX_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h new file mode 100644 index 0000000..2973944 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h @@ -0,0 +1,308 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_gpio.h + * @author MCD Application Team + * @brief Header file of GPIO HAL module. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32F1xx_HAL_GPIO_H +#define STM32F1xx_HAL_GPIO_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @addtogroup GPIO + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup GPIO_Exported_Types GPIO Exported Types + * @{ + */ + +/** + * @brief GPIO Init structure definition + */ +typedef struct +{ + uint32_t Pin; /*!< Specifies the GPIO pins to be configured. + This parameter can be any value of @ref GPIO_pins_define */ + + uint32_t Mode; /*!< Specifies the operating mode for the selected pins. + This parameter can be a value of @ref GPIO_mode_define */ + + uint32_t Pull; /*!< Specifies the Pull-up or Pull-Down activation for the selected pins. + This parameter can be a value of @ref GPIO_pull_define */ + + uint32_t Speed; /*!< Specifies the speed for the selected pins. + This parameter can be a value of @ref GPIO_speed_define */ +} GPIO_InitTypeDef; + +/** + * @brief GPIO Bit SET and Bit RESET enumeration + */ +typedef enum +{ + GPIO_PIN_RESET = 0u, + GPIO_PIN_SET +} GPIO_PinState; +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup GPIO_Exported_Constants GPIO Exported Constants + * @{ + */ + +/** @defgroup GPIO_pins_define GPIO pins define + * @{ + */ +#define GPIO_PIN_0 ((uint16_t)0x0001) /* Pin 0 selected */ +#define GPIO_PIN_1 ((uint16_t)0x0002) /* Pin 1 selected */ +#define GPIO_PIN_2 ((uint16_t)0x0004) /* Pin 2 selected */ +#define GPIO_PIN_3 ((uint16_t)0x0008) /* Pin 3 selected */ +#define GPIO_PIN_4 ((uint16_t)0x0010) /* Pin 4 selected */ +#define GPIO_PIN_5 ((uint16_t)0x0020) /* Pin 5 selected */ +#define GPIO_PIN_6 ((uint16_t)0x0040) /* Pin 6 selected */ +#define GPIO_PIN_7 ((uint16_t)0x0080) /* Pin 7 selected */ +#define GPIO_PIN_8 ((uint16_t)0x0100) /* Pin 8 selected */ +#define GPIO_PIN_9 ((uint16_t)0x0200) /* Pin 9 selected */ +#define GPIO_PIN_10 ((uint16_t)0x0400) /* Pin 10 selected */ +#define GPIO_PIN_11 ((uint16_t)0x0800) /* Pin 11 selected */ +#define GPIO_PIN_12 ((uint16_t)0x1000) /* Pin 12 selected */ +#define GPIO_PIN_13 ((uint16_t)0x2000) /* Pin 13 selected */ +#define GPIO_PIN_14 ((uint16_t)0x4000) /* Pin 14 selected */ +#define GPIO_PIN_15 ((uint16_t)0x8000) /* Pin 15 selected */ +#define GPIO_PIN_All ((uint16_t)0xFFFF) /* All pins selected */ + +#define GPIO_PIN_MASK 0x0000FFFFu /* PIN mask for assert test */ +/** + * @} + */ + +/** @defgroup GPIO_mode_define GPIO mode define + * @brief GPIO Configuration Mode + * Elements values convention: 0xX0yz00YZ + * - X : GPIO mode or EXTI Mode + * - y : External IT or Event trigger detection + * - z : IO configuration on External IT or Event + * - Y : Output type (Push Pull or Open Drain) + * - Z : IO Direction mode (Input, Output, Alternate or Analog) + * @{ + */ +#define GPIO_MODE_INPUT 0x00000000u /*!< Input Floating Mode */ +#define GPIO_MODE_OUTPUT_PP 0x00000001u /*!< Output Push Pull Mode */ +#define GPIO_MODE_OUTPUT_OD 0x00000011u /*!< Output Open Drain Mode */ +#define GPIO_MODE_AF_PP 0x00000002u /*!< Alternate Function Push Pull Mode */ +#define GPIO_MODE_AF_OD 0x00000012u /*!< Alternate Function Open Drain Mode */ +#define GPIO_MODE_AF_INPUT GPIO_MODE_INPUT /*!< Alternate Function Input Mode */ + +#define GPIO_MODE_ANALOG 0x00000003u /*!< Analog Mode */ + +#define GPIO_MODE_IT_RISING 0x10110000u /*!< External Interrupt Mode with Rising edge trigger detection */ +#define GPIO_MODE_IT_FALLING 0x10210000u /*!< External Interrupt Mode with Falling edge trigger detection */ +#define GPIO_MODE_IT_RISING_FALLING 0x10310000u /*!< External Interrupt Mode with Rising/Falling edge trigger detection */ + +#define GPIO_MODE_EVT_RISING 0x10120000u /*!< External Event Mode with Rising edge trigger detection */ +#define GPIO_MODE_EVT_FALLING 0x10220000u /*!< External Event Mode with Falling edge trigger detection */ +#define GPIO_MODE_EVT_RISING_FALLING 0x10320000u /*!< External Event Mode with Rising/Falling edge trigger detection */ + +/** + * @} + */ + +/** @defgroup GPIO_speed_define GPIO speed define + * @brief GPIO Output Maximum frequency + * @{ + */ +#define GPIO_SPEED_FREQ_LOW (GPIO_CRL_MODE0_1) /*!< Low speed */ +#define GPIO_SPEED_FREQ_MEDIUM (GPIO_CRL_MODE0_0) /*!< Medium speed */ +#define GPIO_SPEED_FREQ_HIGH (GPIO_CRL_MODE0) /*!< High speed */ + +/** + * @} + */ + +/** @defgroup GPIO_pull_define GPIO pull define + * @brief GPIO Pull-Up or Pull-Down Activation + * @{ + */ +#define GPIO_NOPULL 0x00000000u /*!< No Pull-up or Pull-down activation */ +#define GPIO_PULLUP 0x00000001u /*!< Pull-up activation */ +#define GPIO_PULLDOWN 0x00000002u /*!< Pull-down activation */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup GPIO_Exported_Macros GPIO Exported Macros + * @{ + */ + +/** + * @brief Checks whether the specified EXTI line flag is set or not. + * @param __EXTI_LINE__: specifies the EXTI line flag to check. + * This parameter can be GPIO_PIN_x where x can be(0..15) + * @retval The new state of __EXTI_LINE__ (SET or RESET). + */ +#define __HAL_GPIO_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__)) + +/** + * @brief Clears 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 Checks 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 Clears 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 Generates 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__)) +/** + * @} + */ + +/* Include GPIO HAL Extension module */ +#include "stm32f1xx_hal_gpio_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup GPIO_Exported_Functions + * @{ + */ + +/** @addtogroup GPIO_Exported_Functions_Group1 + * @{ + */ +/* 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 *****************************************************/ +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); + +/** + * @} + */ + +/** + * @} + */ +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/** @defgroup GPIO_Private_Constants GPIO Private Constants + * @{ + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup GPIO_Private_Macros GPIO Private Macros + * @{ + */ +#define IS_GPIO_PIN_ACTION(ACTION) (((ACTION) == GPIO_PIN_RESET) || ((ACTION) == GPIO_PIN_SET)) +#define IS_GPIO_PIN(PIN) (((((uint32_t)PIN) & GPIO_PIN_MASK ) != 0x00u) && ((((uint32_t)PIN) & ~GPIO_PIN_MASK) == 0x00u)) +#define IS_GPIO_MODE(MODE) (((MODE) == GPIO_MODE_INPUT) ||\ + ((MODE) == GPIO_MODE_OUTPUT_PP) ||\ + ((MODE) == GPIO_MODE_OUTPUT_OD) ||\ + ((MODE) == GPIO_MODE_AF_PP) ||\ + ((MODE) == GPIO_MODE_AF_OD) ||\ + ((MODE) == GPIO_MODE_IT_RISING) ||\ + ((MODE) == GPIO_MODE_IT_FALLING) ||\ + ((MODE) == GPIO_MODE_IT_RISING_FALLING) ||\ + ((MODE) == GPIO_MODE_EVT_RISING) ||\ + ((MODE) == GPIO_MODE_EVT_FALLING) ||\ + ((MODE) == GPIO_MODE_EVT_RISING_FALLING) ||\ + ((MODE) == GPIO_MODE_ANALOG)) +#define IS_GPIO_SPEED(SPEED) (((SPEED) == GPIO_SPEED_FREQ_LOW) || \ + ((SPEED) == GPIO_SPEED_FREQ_MEDIUM) || ((SPEED) == GPIO_SPEED_FREQ_HIGH)) +#define IS_GPIO_PULL(PULL) (((PULL) == GPIO_NOPULL) || ((PULL) == GPIO_PULLUP) || \ + ((PULL) == GPIO_PULLDOWN)) +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ +/** @defgroup GPIO_Private_Functions GPIO Private Functions + * @{ + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32F1xx_HAL_GPIO_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h new file mode 100644 index 0000000..56bcb85 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h @@ -0,0 +1,894 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_gpio_ex.h + * @author MCD Application Team + * @brief Header file of GPIO HAL Extension module. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32F1xx_HAL_GPIO_EX_H +#define STM32F1xx_HAL_GPIO_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @defgroup GPIOEx GPIOEx + * @{ + */ +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup GPIOEx_Exported_Constants GPIOEx Exported Constants + * @{ + */ + +/** @defgroup GPIOEx_EVENTOUT EVENTOUT Cortex Configuration + * @brief This section propose definition to use the Cortex EVENTOUT signal. + * @{ + */ + +/** @defgroup GPIOEx_EVENTOUT_PIN EVENTOUT Pin + * @{ + */ + +#define AFIO_EVENTOUT_PIN_0 AFIO_EVCR_PIN_PX0 /*!< EVENTOUT on pin 0 */ +#define AFIO_EVENTOUT_PIN_1 AFIO_EVCR_PIN_PX1 /*!< EVENTOUT on pin 1 */ +#define AFIO_EVENTOUT_PIN_2 AFIO_EVCR_PIN_PX2 /*!< EVENTOUT on pin 2 */ +#define AFIO_EVENTOUT_PIN_3 AFIO_EVCR_PIN_PX3 /*!< EVENTOUT on pin 3 */ +#define AFIO_EVENTOUT_PIN_4 AFIO_EVCR_PIN_PX4 /*!< EVENTOUT on pin 4 */ +#define AFIO_EVENTOUT_PIN_5 AFIO_EVCR_PIN_PX5 /*!< EVENTOUT on pin 5 */ +#define AFIO_EVENTOUT_PIN_6 AFIO_EVCR_PIN_PX6 /*!< EVENTOUT on pin 6 */ +#define AFIO_EVENTOUT_PIN_7 AFIO_EVCR_PIN_PX7 /*!< EVENTOUT on pin 7 */ +#define AFIO_EVENTOUT_PIN_8 AFIO_EVCR_PIN_PX8 /*!< EVENTOUT on pin 8 */ +#define AFIO_EVENTOUT_PIN_9 AFIO_EVCR_PIN_PX9 /*!< EVENTOUT on pin 9 */ +#define AFIO_EVENTOUT_PIN_10 AFIO_EVCR_PIN_PX10 /*!< EVENTOUT on pin 10 */ +#define AFIO_EVENTOUT_PIN_11 AFIO_EVCR_PIN_PX11 /*!< EVENTOUT on pin 11 */ +#define AFIO_EVENTOUT_PIN_12 AFIO_EVCR_PIN_PX12 /*!< EVENTOUT on pin 12 */ +#define AFIO_EVENTOUT_PIN_13 AFIO_EVCR_PIN_PX13 /*!< EVENTOUT on pin 13 */ +#define AFIO_EVENTOUT_PIN_14 AFIO_EVCR_PIN_PX14 /*!< EVENTOUT on pin 14 */ +#define AFIO_EVENTOUT_PIN_15 AFIO_EVCR_PIN_PX15 /*!< EVENTOUT on pin 15 */ + +#define IS_AFIO_EVENTOUT_PIN(__PIN__) (((__PIN__) == AFIO_EVENTOUT_PIN_0) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_1) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_2) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_3) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_4) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_5) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_6) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_7) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_8) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_9) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_10) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_11) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_12) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_13) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_14) || \ + ((__PIN__) == AFIO_EVENTOUT_PIN_15)) +/** + * @} + */ + +/** @defgroup GPIOEx_EVENTOUT_PORT EVENTOUT Port + * @{ + */ + +#define AFIO_EVENTOUT_PORT_A AFIO_EVCR_PORT_PA /*!< EVENTOUT on port A */ +#define AFIO_EVENTOUT_PORT_B AFIO_EVCR_PORT_PB /*!< EVENTOUT on port B */ +#define AFIO_EVENTOUT_PORT_C AFIO_EVCR_PORT_PC /*!< EVENTOUT on port C */ +#define AFIO_EVENTOUT_PORT_D AFIO_EVCR_PORT_PD /*!< EVENTOUT on port D */ +#define AFIO_EVENTOUT_PORT_E AFIO_EVCR_PORT_PE /*!< EVENTOUT on port E */ + +#define IS_AFIO_EVENTOUT_PORT(__PORT__) (((__PORT__) == AFIO_EVENTOUT_PORT_A) || \ + ((__PORT__) == AFIO_EVENTOUT_PORT_B) || \ + ((__PORT__) == AFIO_EVENTOUT_PORT_C) || \ + ((__PORT__) == AFIO_EVENTOUT_PORT_D) || \ + ((__PORT__) == AFIO_EVENTOUT_PORT_E)) +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup GPIOEx_AFIO_AF_REMAPPING Alternate Function Remapping + * @brief This section propose definition to remap the alternate function to some other port/pins. + * @{ + */ + +/** + * @brief Enable the remapping of SPI1 alternate function NSS, SCK, MISO and MOSI. + * @note ENABLE: Remap (NSS/PA15, SCK/PB3, MISO/PB4, MOSI/PB5) + * @retval None + */ +#define __HAL_AFIO_REMAP_SPI1_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_SPI1_REMAP) + +/** + * @brief Disable the remapping of SPI1 alternate function NSS, SCK, MISO and MOSI. + * @note DISABLE: No remap (NSS/PA4, SCK/PA5, MISO/PA6, MOSI/PA7) + * @retval None + */ +#define __HAL_AFIO_REMAP_SPI1_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_SPI1_REMAP) + +/** + * @brief Enable the remapping of I2C1 alternate function SCL and SDA. + * @note ENABLE: Remap (SCL/PB8, SDA/PB9) + * @retval None + */ +#define __HAL_AFIO_REMAP_I2C1_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_I2C1_REMAP) + +/** + * @brief Disable the remapping of I2C1 alternate function SCL and SDA. + * @note DISABLE: No remap (SCL/PB6, SDA/PB7) + * @retval None + */ +#define __HAL_AFIO_REMAP_I2C1_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_I2C1_REMAP) + +/** + * @brief Enable the remapping of USART1 alternate function TX and RX. + * @note ENABLE: Remap (TX/PB6, RX/PB7) + * @retval None + */ +#define __HAL_AFIO_REMAP_USART1_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_USART1_REMAP) + +/** + * @brief Disable the remapping of USART1 alternate function TX and RX. + * @note DISABLE: No remap (TX/PA9, RX/PA10) + * @retval None + */ +#define __HAL_AFIO_REMAP_USART1_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_USART1_REMAP) + +/** + * @brief Enable the remapping of USART2 alternate function CTS, RTS, CK, TX and RX. + * @note ENABLE: Remap (CTS/PD3, RTS/PD4, TX/PD5, RX/PD6, CK/PD7) + * @retval None + */ +#define __HAL_AFIO_REMAP_USART2_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_USART2_REMAP) + +/** + * @brief Disable the remapping of USART2 alternate function CTS, RTS, CK, TX and RX. + * @note DISABLE: No remap (CTS/PA0, RTS/PA1, TX/PA2, RX/PA3, CK/PA4) + * @retval None + */ +#define __HAL_AFIO_REMAP_USART2_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_USART2_REMAP) + +/** + * @brief Enable the remapping of USART3 alternate function CTS, RTS, CK, TX and RX. + * @note ENABLE: Full remap (TX/PD8, RX/PD9, CK/PD10, CTS/PD11, RTS/PD12) + * @retval None + */ +#define __HAL_AFIO_REMAP_USART3_ENABLE() AFIO_REMAP_PARTIAL(AFIO_MAPR_USART3_REMAP_FULLREMAP, AFIO_MAPR_USART3_REMAP_FULLREMAP) + +/** + * @brief Enable the remapping of USART3 alternate function CTS, RTS, CK, TX and RX. + * @note PARTIAL: Partial remap (TX/PC10, RX/PC11, CK/PC12, CTS/PB13, RTS/PB14) + * @retval None + */ +#define __HAL_AFIO_REMAP_USART3_PARTIAL() AFIO_REMAP_PARTIAL(AFIO_MAPR_USART3_REMAP_PARTIALREMAP, AFIO_MAPR_USART3_REMAP_FULLREMAP) + +/** + * @brief Disable the remapping of USART3 alternate function CTS, RTS, CK, TX and RX. + * @note DISABLE: No remap (TX/PB10, RX/PB11, CK/PB12, CTS/PB13, RTS/PB14) + * @retval None + */ +#define __HAL_AFIO_REMAP_USART3_DISABLE() AFIO_REMAP_PARTIAL(AFIO_MAPR_USART3_REMAP_NOREMAP, AFIO_MAPR_USART3_REMAP_FULLREMAP) + +/** + * @brief Enable the remapping of TIM1 alternate function channels 1 to 4, 1N to 3N, external trigger (ETR) and Break input (BKIN) + * @note ENABLE: Full remap (ETR/PE7, CH1/PE9, CH2/PE11, CH3/PE13, CH4/PE14, BKIN/PE15, CH1N/PE8, CH2N/PE10, CH3N/PE12) + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM1_ENABLE() AFIO_REMAP_PARTIAL(AFIO_MAPR_TIM1_REMAP_FULLREMAP, AFIO_MAPR_TIM1_REMAP_FULLREMAP) + +/** + * @brief Enable the remapping of TIM1 alternate function channels 1 to 4, 1N to 3N, external trigger (ETR) and Break input (BKIN) + * @note PARTIAL: Partial remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PA6, CH1N/PA7, CH2N/PB0, CH3N/PB1) + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM1_PARTIAL() AFIO_REMAP_PARTIAL(AFIO_MAPR_TIM1_REMAP_PARTIALREMAP, AFIO_MAPR_TIM1_REMAP_FULLREMAP) + +/** + * @brief Disable the remapping of TIM1 alternate function channels 1 to 4, 1N to 3N, external trigger (ETR) and Break input (BKIN) + * @note DISABLE: No remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PB12, CH1N/PB13, CH2N/PB14, CH3N/PB15) + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM1_DISABLE() AFIO_REMAP_PARTIAL(AFIO_MAPR_TIM1_REMAP_NOREMAP, AFIO_MAPR_TIM1_REMAP_FULLREMAP) + +/** + * @brief Enable the remapping of TIM2 alternate function channels 1 to 4 and external trigger (ETR) + * @note ENABLE: Full remap (CH1/ETR/PA15, CH2/PB3, CH3/PB10, CH4/PB11) + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM2_ENABLE() AFIO_REMAP_PARTIAL(AFIO_MAPR_TIM2_REMAP_FULLREMAP, AFIO_MAPR_TIM2_REMAP_FULLREMAP) + +/** + * @brief Enable the remapping of TIM2 alternate function channels 1 to 4 and external trigger (ETR) + * @note PARTIAL_2: Partial remap (CH1/ETR/PA0, CH2/PA1, CH3/PB10, CH4/PB11) + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM2_PARTIAL_2() AFIO_REMAP_PARTIAL(AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2, AFIO_MAPR_TIM2_REMAP_FULLREMAP) + +/** + * @brief Enable the remapping of TIM2 alternate function channels 1 to 4 and external trigger (ETR) + * @note PARTIAL_1: Partial remap (CH1/ETR/PA15, CH2/PB3, CH3/PA2, CH4/PA3) + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM2_PARTIAL_1() AFIO_REMAP_PARTIAL(AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1, AFIO_MAPR_TIM2_REMAP_FULLREMAP) + +/** + * @brief Disable the remapping of TIM2 alternate function channels 1 to 4 and external trigger (ETR) + * @note DISABLE: No remap (CH1/ETR/PA0, CH2/PA1, CH3/PA2, CH4/PA3) + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM2_DISABLE() AFIO_REMAP_PARTIAL(AFIO_MAPR_TIM2_REMAP_NOREMAP, AFIO_MAPR_TIM2_REMAP_FULLREMAP) + +/** + * @brief Enable the remapping of TIM3 alternate function channels 1 to 4 + * @note ENABLE: Full remap (CH1/PC6, CH2/PC7, CH3/PC8, CH4/PC9) + * @note TIM3_ETR on PE0 is not re-mapped. + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM3_ENABLE() AFIO_REMAP_PARTIAL(AFIO_MAPR_TIM3_REMAP_FULLREMAP, AFIO_MAPR_TIM3_REMAP_FULLREMAP) + +/** + * @brief Enable the remapping of TIM3 alternate function channels 1 to 4 + * @note PARTIAL: Partial remap (CH1/PB4, CH2/PB5, CH3/PB0, CH4/PB1) + * @note TIM3_ETR on PE0 is not re-mapped. + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM3_PARTIAL() AFIO_REMAP_PARTIAL(AFIO_MAPR_TIM3_REMAP_PARTIALREMAP, AFIO_MAPR_TIM3_REMAP_FULLREMAP) + +/** + * @brief Disable the remapping of TIM3 alternate function channels 1 to 4 + * @note DISABLE: No remap (CH1/PA6, CH2/PA7, CH3/PB0, CH4/PB1) + * @note TIM3_ETR on PE0 is not re-mapped. + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM3_DISABLE() AFIO_REMAP_PARTIAL(AFIO_MAPR_TIM3_REMAP_NOREMAP, AFIO_MAPR_TIM3_REMAP_FULLREMAP) + +/** + * @brief Enable the remapping of TIM4 alternate function channels 1 to 4. + * @note ENABLE: Full remap (TIM4_CH1/PD12, TIM4_CH2/PD13, TIM4_CH3/PD14, TIM4_CH4/PD15) + * @note TIM4_ETR on PE0 is not re-mapped. + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM4_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_TIM4_REMAP) + +/** + * @brief Disable the remapping of TIM4 alternate function channels 1 to 4. + * @note DISABLE: No remap (TIM4_CH1/PB6, TIM4_CH2/PB7, TIM4_CH3/PB8, TIM4_CH4/PB9) + * @note TIM4_ETR on PE0 is not re-mapped. + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM4_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_TIM4_REMAP) + +#if defined(AFIO_MAPR_CAN_REMAP_REMAP1) + +/** + * @brief Enable or disable the remapping of CAN alternate function CAN_RX and CAN_TX in devices with a single CAN interface. + * @note CASE 1: CAN_RX mapped to PA11, CAN_TX mapped to PA12 + * @retval None + */ +#define __HAL_AFIO_REMAP_CAN1_1() AFIO_REMAP_PARTIAL(AFIO_MAPR_CAN_REMAP_REMAP1, AFIO_MAPR_CAN_REMAP) + +/** + * @brief Enable or disable the remapping of CAN alternate function CAN_RX and CAN_TX in devices with a single CAN interface. + * @note CASE 2: CAN_RX mapped to PB8, CAN_TX mapped to PB9 (not available on 36-pin package) + * @retval None + */ +#define __HAL_AFIO_REMAP_CAN1_2() AFIO_REMAP_PARTIAL(AFIO_MAPR_CAN_REMAP_REMAP2, AFIO_MAPR_CAN_REMAP) + +/** + * @brief Enable or disable the remapping of CAN alternate function CAN_RX and CAN_TX in devices with a single CAN interface. + * @note CASE 3: CAN_RX mapped to PD0, CAN_TX mapped to PD1 + * @retval None + */ +#define __HAL_AFIO_REMAP_CAN1_3() AFIO_REMAP_PARTIAL(AFIO_MAPR_CAN_REMAP_REMAP3, AFIO_MAPR_CAN_REMAP) + +#endif + +/** + * @brief Enable the remapping of PD0 and PD1. When the HSE oscillator is not used + * (application running on internal 8 MHz RC) PD0 and PD1 can be mapped on OSC_IN and + * OSC_OUT. This is available only on 36, 48 and 64 pins packages (PD0 and PD1 are available + * on 100-pin and 144-pin packages, no need for remapping). + * @note ENABLE: PD0 remapped on OSC_IN, PD1 remapped on OSC_OUT. + * @retval None + */ +#define __HAL_AFIO_REMAP_PD01_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_PD01_REMAP) + +/** + * @brief Disable the remapping of PD0 and PD1. When the HSE oscillator is not used + * (application running on internal 8 MHz RC) PD0 and PD1 can be mapped on OSC_IN and + * OSC_OUT. This is available only on 36, 48 and 64 pins packages (PD0 and PD1 are available + * on 100-pin and 144-pin packages, no need for remapping). + * @note DISABLE: No remapping of PD0 and PD1 + * @retval None + */ +#define __HAL_AFIO_REMAP_PD01_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_PD01_REMAP) + +#if defined(AFIO_MAPR_TIM5CH4_IREMAP) +/** + * @brief Enable the remapping of TIM5CH4. + * @note ENABLE: LSI internal clock is connected to TIM5_CH4 input for calibration purpose. + * @note This function is available only in high density value line devices. + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM5CH4_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_TIM5CH4_IREMAP) + +/** + * @brief Disable the remapping of TIM5CH4. + * @note DISABLE: TIM5_CH4 is connected to PA3 + * @note This function is available only in high density value line devices. + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM5CH4_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_TIM5CH4_IREMAP) +#endif + +#if defined(AFIO_MAPR_ETH_REMAP) +/** + * @brief Enable the remapping of Ethernet MAC connections with the PHY. + * @note ENABLE: Remap (RX_DV-CRS_DV/PD8, RXD0/PD9, RXD1/PD10, RXD2/PD11, RXD3/PD12) + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_REMAP_ETH_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_ETH_REMAP) + +/** + * @brief Disable the remapping of Ethernet MAC connections with the PHY. + * @note DISABLE: No remap (RX_DV-CRS_DV/PA7, RXD0/PC4, RXD1/PC5, RXD2/PB0, RXD3/PB1) + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_REMAP_ETH_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_ETH_REMAP) +#endif + +#if defined(AFIO_MAPR_CAN2_REMAP) + +/** + * @brief Enable the remapping of CAN2 alternate function CAN2_RX and CAN2_TX. + * @note ENABLE: Remap (CAN2_RX/PB5, CAN2_TX/PB6) + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_REMAP_CAN2_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_CAN2_REMAP) + +/** + * @brief Disable the remapping of CAN2 alternate function CAN2_RX and CAN2_TX. + * @note DISABLE: No remap (CAN2_RX/PB12, CAN2_TX/PB13) + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_REMAP_CAN2_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_CAN2_REMAP) +#endif + +#if defined(AFIO_MAPR_MII_RMII_SEL) +/** + * @brief Configures the Ethernet MAC internally for use with an external MII or RMII PHY. + * @note ETH_RMII: Configure Ethernet MAC for connection with an RMII PHY + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_ETH_RMII() AFIO_REMAP_ENABLE(AFIO_MAPR_MII_RMII_SEL) + +/** + * @brief Configures the Ethernet MAC internally for use with an external MII or RMII PHY. + * @note ETH_MII: Configure Ethernet MAC for connection with an MII PHY + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_ETH_MII() AFIO_REMAP_DISABLE(AFIO_MAPR_MII_RMII_SEL) +#endif + +/** + * @brief Enable the remapping of ADC1_ETRGINJ (ADC 1 External trigger injected conversion). + * @note ENABLE: ADC1 External Event injected conversion is connected to TIM8 Channel4. + * @retval None + */ +#define __HAL_AFIO_REMAP_ADC1_ETRGINJ_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_ADC1_ETRGINJ_REMAP) + +/** + * @brief Disable the remapping of ADC1_ETRGINJ (ADC 1 External trigger injected conversion). + * @note DISABLE: ADC1 External trigger injected conversion is connected to EXTI15 + * @retval None + */ +#define __HAL_AFIO_REMAP_ADC1_ETRGINJ_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_ADC1_ETRGINJ_REMAP) + +/** + * @brief Enable the remapping of ADC1_ETRGREG (ADC 1 External trigger regular conversion). + * @note ENABLE: ADC1 External Event regular conversion is connected to TIM8 TRG0. + * @retval None + */ +#define __HAL_AFIO_REMAP_ADC1_ETRGREG_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_ADC1_ETRGREG_REMAP) + +/** + * @brief Disable the remapping of ADC1_ETRGREG (ADC 1 External trigger regular conversion). + * @note DISABLE: ADC1 External trigger regular conversion is connected to EXTI11 + * @retval None + */ +#define __HAL_AFIO_REMAP_ADC1_ETRGREG_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_ADC1_ETRGREG_REMAP) + +#if defined(AFIO_MAPR_ADC2_ETRGINJ_REMAP) + +/** + * @brief Enable the remapping of ADC2_ETRGREG (ADC 2 External trigger injected conversion). + * @note ENABLE: ADC2 External Event injected conversion is connected to TIM8 Channel4. + * @retval None + */ +#define __HAL_AFIO_REMAP_ADC2_ETRGINJ_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_ADC2_ETRGINJ_REMAP) + +/** + * @brief Disable the remapping of ADC2_ETRGREG (ADC 2 External trigger injected conversion). + * @note DISABLE: ADC2 External trigger injected conversion is connected to EXTI15 + * @retval None + */ +#define __HAL_AFIO_REMAP_ADC2_ETRGINJ_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_ADC2_ETRGINJ_REMAP) +#endif + +#if defined (AFIO_MAPR_ADC2_ETRGREG_REMAP) + +/** + * @brief Enable the remapping of ADC2_ETRGREG (ADC 2 External trigger regular conversion). + * @note ENABLE: ADC2 External Event regular conversion is connected to TIM8 TRG0. + * @retval None + */ +#define __HAL_AFIO_REMAP_ADC2_ETRGREG_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_ADC2_ETRGREG_REMAP) + +/** + * @brief Disable the remapping of ADC2_ETRGREG (ADC 2 External trigger regular conversion). + * @note DISABLE: ADC2 External trigger regular conversion is connected to EXTI11 + * @retval None + */ +#define __HAL_AFIO_REMAP_ADC2_ETRGREG_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_ADC2_ETRGREG_REMAP) +#endif + +/** + * @brief Enable the Serial wire JTAG configuration + * @note ENABLE: Full SWJ (JTAG-DP + SW-DP): Reset State + * @retval None + */ +#define __HAL_AFIO_REMAP_SWJ_ENABLE() AFIO_DBGAFR_CONFIG(AFIO_MAPR_SWJ_CFG_RESET) + +/** + * @brief Enable the Serial wire JTAG configuration + * @note NONJTRST: Full SWJ (JTAG-DP + SW-DP) but without NJTRST + * @retval None + */ +#define __HAL_AFIO_REMAP_SWJ_NONJTRST() AFIO_DBGAFR_CONFIG(AFIO_MAPR_SWJ_CFG_NOJNTRST) + +/** + * @brief Enable the Serial wire JTAG configuration + * @note NOJTAG: JTAG-DP Disabled and SW-DP Enabled + * @retval None + */ + +#define __HAL_AFIO_REMAP_SWJ_NOJTAG() AFIO_DBGAFR_CONFIG(AFIO_MAPR_SWJ_CFG_JTAGDISABLE) + +/** + * @brief Disable the Serial wire JTAG configuration + * @note DISABLE: JTAG-DP Disabled and SW-DP Disabled + * @retval None + */ +#define __HAL_AFIO_REMAP_SWJ_DISABLE() AFIO_DBGAFR_CONFIG(AFIO_MAPR_SWJ_CFG_DISABLE) + +#if defined(AFIO_MAPR_SPI3_REMAP) + +/** + * @brief Enable the remapping of SPI3 alternate functions SPI3_NSS/I2S3_WS, SPI3_SCK/I2S3_CK, SPI3_MISO, SPI3_MOSI/I2S3_SD. + * @note ENABLE: Remap (SPI3_NSS-I2S3_WS/PA4, SPI3_SCK-I2S3_CK/PC10, SPI3_MISO/PC11, SPI3_MOSI-I2S3_SD/PC12) + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_REMAP_SPI3_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_SPI3_REMAP) + +/** + * @brief Disable the remapping of SPI3 alternate functions SPI3_NSS/I2S3_WS, SPI3_SCK/I2S3_CK, SPI3_MISO, SPI3_MOSI/I2S3_SD. + * @note DISABLE: No remap (SPI3_NSS-I2S3_WS/PA15, SPI3_SCK-I2S3_CK/PB3, SPI3_MISO/PB4, SPI3_MOSI-I2S3_SD/PB5). + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_REMAP_SPI3_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_SPI3_REMAP) +#endif + +#if defined(AFIO_MAPR_TIM2ITR1_IREMAP) + +/** + * @brief Control of TIM2_ITR1 internal mapping. + * @note TO_USB: Connect USB OTG SOF (Start of Frame) output to TIM2_ITR1 for calibration purposes. + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_TIM2ITR1_TO_USB() AFIO_REMAP_ENABLE(AFIO_MAPR_TIM2ITR1_IREMAP) + +/** + * @brief Control of TIM2_ITR1 internal mapping. + * @note TO_ETH: Connect TIM2_ITR1 internally to the Ethernet PTP output for calibration purposes. + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_TIM2ITR1_TO_ETH() AFIO_REMAP_DISABLE(AFIO_MAPR_TIM2ITR1_IREMAP) +#endif + +#if defined(AFIO_MAPR_PTP_PPS_REMAP) + +/** + * @brief Enable the remapping of ADC2_ETRGREG (ADC 2 External trigger regular conversion). + * @note ENABLE: PTP_PPS is output on PB5 pin. + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_ETH_PTP_PPS_ENABLE() AFIO_REMAP_ENABLE(AFIO_MAPR_PTP_PPS_REMAP) + +/** + * @brief Disable the remapping of ADC2_ETRGREG (ADC 2 External trigger regular conversion). + * @note DISABLE: PTP_PPS not output on PB5 pin. + * @note This bit is available only in connectivity line devices and is reserved otherwise. + * @retval None + */ +#define __HAL_AFIO_ETH_PTP_PPS_DISABLE() AFIO_REMAP_DISABLE(AFIO_MAPR_PTP_PPS_REMAP) +#endif + +#if defined(AFIO_MAPR2_TIM9_REMAP) + +/** + * @brief Enable the remapping of TIM9_CH1 and TIM9_CH2. + * @note ENABLE: Remap (TIM9_CH1 on PE5 and TIM9_CH2 on PE6). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM9_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM9_REMAP) + +/** + * @brief Disable the remapping of TIM9_CH1 and TIM9_CH2. + * @note DISABLE: No remap (TIM9_CH1 on PA2 and TIM9_CH2 on PA3). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM9_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM9_REMAP) +#endif + +#if defined(AFIO_MAPR2_TIM10_REMAP) + +/** + * @brief Enable the remapping of TIM10_CH1. + * @note ENABLE: Remap (TIM10_CH1 on PF6). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM10_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM10_REMAP) + +/** + * @brief Disable the remapping of TIM10_CH1. + * @note DISABLE: No remap (TIM10_CH1 on PB8). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM10_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM10_REMAP) +#endif + +#if defined(AFIO_MAPR2_TIM11_REMAP) +/** + * @brief Enable the remapping of TIM11_CH1. + * @note ENABLE: Remap (TIM11_CH1 on PF7). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM11_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM11_REMAP) + +/** + * @brief Disable the remapping of TIM11_CH1. + * @note DISABLE: No remap (TIM11_CH1 on PB9). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM11_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM11_REMAP) +#endif + +#if defined(AFIO_MAPR2_TIM13_REMAP) + +/** + * @brief Enable the remapping of TIM13_CH1. + * @note ENABLE: Remap STM32F100:(TIM13_CH1 on PF8). Others:(TIM13_CH1 on PB0). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM13_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM13_REMAP) + +/** + * @brief Disable the remapping of TIM13_CH1. + * @note DISABLE: No remap STM32F100:(TIM13_CH1 on PA6). Others:(TIM13_CH1 on PC8). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM13_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM13_REMAP) +#endif + +#if defined(AFIO_MAPR2_TIM14_REMAP) + +/** + * @brief Enable the remapping of TIM14_CH1. + * @note ENABLE: Remap STM32F100:(TIM14_CH1 on PB1). Others:(TIM14_CH1 on PF9). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM14_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM14_REMAP) + +/** + * @brief Disable the remapping of TIM14_CH1. + * @note DISABLE: No remap STM32F100:(TIM14_CH1 on PC9). Others:(TIM14_CH1 on PA7). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM14_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM14_REMAP) +#endif + +#if defined(AFIO_MAPR2_FSMC_NADV_REMAP) + +/** + * @brief Controls the use of the optional FSMC_NADV signal. + * @note DISCONNECTED: The NADV signal is not connected. The I/O pin can be used by another peripheral. + * @retval None + */ +#define __HAL_AFIO_FSMCNADV_DISCONNECTED() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_FSMC_NADV_REMAP) + +/** + * @brief Controls the use of the optional FSMC_NADV signal. + * @note CONNECTED: The NADV signal is connected to the output (default). + * @retval None + */ +#define __HAL_AFIO_FSMCNADV_CONNECTED() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_FSMC_NADV_REMAP) +#endif + +#if defined(AFIO_MAPR2_TIM15_REMAP) + +/** + * @brief Enable the remapping of TIM15_CH1 and TIM15_CH2. + * @note ENABLE: Remap (TIM15_CH1 on PB14 and TIM15_CH2 on PB15). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM15_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM15_REMAP) + +/** + * @brief Disable the remapping of TIM15_CH1 and TIM15_CH2. + * @note DISABLE: No remap (TIM15_CH1 on PA2 and TIM15_CH2 on PA3). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM15_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM15_REMAP) +#endif + +#if defined(AFIO_MAPR2_TIM16_REMAP) + +/** + * @brief Enable the remapping of TIM16_CH1. + * @note ENABLE: Remap (TIM16_CH1 on PA6). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM16_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM16_REMAP) + +/** + * @brief Disable the remapping of TIM16_CH1. + * @note DISABLE: No remap (TIM16_CH1 on PB8). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM16_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM16_REMAP) +#endif + +#if defined(AFIO_MAPR2_TIM17_REMAP) + +/** + * @brief Enable the remapping of TIM17_CH1. + * @note ENABLE: Remap (TIM17_CH1 on PA7). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM17_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM17_REMAP) + +/** + * @brief Disable the remapping of TIM17_CH1. + * @note DISABLE: No remap (TIM17_CH1 on PB9). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM17_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM17_REMAP) +#endif + +#if defined(AFIO_MAPR2_CEC_REMAP) + +/** + * @brief Enable the remapping of CEC. + * @note ENABLE: Remap (CEC on PB10). + * @retval None + */ +#define __HAL_AFIO_REMAP_CEC_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_CEC_REMAP) + +/** + * @brief Disable the remapping of CEC. + * @note DISABLE: No remap (CEC on PB8). + * @retval None + */ +#define __HAL_AFIO_REMAP_CEC_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_CEC_REMAP) +#endif + +#if defined(AFIO_MAPR2_TIM1_DMA_REMAP) + +/** + * @brief Controls the mapping of the TIM1_CH1 TIM1_CH2 DMA requests onto the DMA1 channels. + * @note ENABLE: Remap (TIM1_CH1 DMA request/DMA1 Channel6, TIM1_CH2 DMA request/DMA1 Channel6) + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM1DMA_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM1_DMA_REMAP) + +/** + * @brief Controls the mapping of the TIM1_CH1 TIM1_CH2 DMA requests onto the DMA1 channels. + * @note DISABLE: No remap (TIM1_CH1 DMA request/DMA1 Channel2, TIM1_CH2 DMA request/DMA1 Channel3). + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM1DMA_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM1_DMA_REMAP) +#endif + +#if defined(AFIO_MAPR2_TIM67_DAC_DMA_REMAP) + +/** + * @brief Controls the mapping of the TIM6_DAC1 and TIM7_DAC2 DMA requests onto the DMA1 channels. + * @note ENABLE: Remap (TIM6_DAC1 DMA request/DMA1 Channel3, TIM7_DAC2 DMA request/DMA1 Channel4) + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM67DACDMA_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM67_DAC_DMA_REMAP) + +/** + * @brief Controls the mapping of the TIM6_DAC1 and TIM7_DAC2 DMA requests onto the DMA1 channels. + * @note DISABLE: No remap (TIM6_DAC1 DMA request/DMA2 Channel3, TIM7_DAC2 DMA request/DMA2 Channel4) + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM67DACDMA_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM67_DAC_DMA_REMAP) +#endif + +#if defined(AFIO_MAPR2_TIM12_REMAP) + +/** + * @brief Enable the remapping of TIM12_CH1 and TIM12_CH2. + * @note ENABLE: Remap (TIM12_CH1 on PB12 and TIM12_CH2 on PB13). + * @note This bit is available only in high density value line devices. + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM12_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM12_REMAP) + +/** + * @brief Disable the remapping of TIM12_CH1 and TIM12_CH2. + * @note DISABLE: No remap (TIM12_CH1 on PC4 and TIM12_CH2 on PC5). + * @note This bit is available only in high density value line devices. + * @retval None + */ +#define __HAL_AFIO_REMAP_TIM12_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_TIM12_REMAP) +#endif + +#if defined(AFIO_MAPR2_MISC_REMAP) + +/** + * @brief Miscellaneous features remapping. + * This bit is set and cleared by software. It controls miscellaneous features. + * The DMA2 channel 5 interrupt position in the vector table. + * The timer selection for DAC trigger 3 (TSEL[2:0] = 011, for more details refer to the DAC_CR register). + * @note ENABLE: DMA2 channel 5 interrupt is mapped separately at position 60 and TIM15 TRGO event is + * selected as DAC Trigger 3, TIM15 triggers TIM1/3. + * @note This bit is available only in high density value line devices. + * @retval None + */ +#define __HAL_AFIO_REMAP_MISC_ENABLE() SET_BIT(AFIO->MAPR2, AFIO_MAPR2_MISC_REMAP) + +/** + * @brief Miscellaneous features remapping. + * This bit is set and cleared by software. It controls miscellaneous features. + * The DMA2 channel 5 interrupt position in the vector table. + * The timer selection for DAC trigger 3 (TSEL[2:0] = 011, for more details refer to the DAC_CR register). + * @note DISABLE: DMA2 channel 5 interrupt is mapped with DMA2 channel 4 at position 59, TIM5 TRGO + * event is selected as DAC Trigger 3, TIM5 triggers TIM1/3. + * @note This bit is available only in high density value line devices. + * @retval None + */ +#define __HAL_AFIO_REMAP_MISC_DISABLE() CLEAR_BIT(AFIO->MAPR2, AFIO_MAPR2_MISC_REMAP) +#endif + +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup GPIOEx_Private_Macros GPIOEx Private Macros + * @{ + */ +#if defined(STM32F101x6) || defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6) +#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0uL :\ + ((__GPIOx__) == (GPIOB))? 1uL :\ + ((__GPIOx__) == (GPIOC))? 2uL :3uL) +#elif defined(STM32F100xB) || defined(STM32F101xB) || defined(STM32F103xB) || defined(STM32F105xC) || defined(STM32F107xC) +#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0uL :\ + ((__GPIOx__) == (GPIOB))? 1uL :\ + ((__GPIOx__) == (GPIOC))? 2uL :\ + ((__GPIOx__) == (GPIOD))? 3uL :4uL) +#elif defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) +#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0uL :\ + ((__GPIOx__) == (GPIOB))? 1uL :\ + ((__GPIOx__) == (GPIOC))? 2uL :\ + ((__GPIOx__) == (GPIOD))? 3uL :\ + ((__GPIOx__) == (GPIOE))? 4uL :\ + ((__GPIOx__) == (GPIOF))? 5uL :6uL) +#endif + +#define AFIO_REMAP_ENABLE(REMAP_PIN) do{ uint32_t tmpreg = AFIO->MAPR; \ + tmpreg |= AFIO_MAPR_SWJ_CFG; \ + tmpreg |= REMAP_PIN; \ + AFIO->MAPR = tmpreg; \ + }while(0u) + +#define AFIO_REMAP_DISABLE(REMAP_PIN) do{ uint32_t tmpreg = AFIO->MAPR; \ + tmpreg |= AFIO_MAPR_SWJ_CFG; \ + tmpreg &= ~REMAP_PIN; \ + AFIO->MAPR = tmpreg; \ + }while(0u) + +#define AFIO_REMAP_PARTIAL(REMAP_PIN, REMAP_PIN_MASK) do{ uint32_t tmpreg = AFIO->MAPR; \ + tmpreg &= ~REMAP_PIN_MASK; \ + tmpreg |= AFIO_MAPR_SWJ_CFG; \ + tmpreg |= REMAP_PIN; \ + AFIO->MAPR = tmpreg; \ + }while(0u) + +#define AFIO_DBGAFR_CONFIG(DBGAFR_SWJCFG) do{ uint32_t tmpreg = AFIO->MAPR; \ + tmpreg &= ~AFIO_MAPR_SWJ_CFG_Msk; \ + tmpreg |= DBGAFR_SWJCFG; \ + AFIO->MAPR = tmpreg; \ + }while(0u) + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup GPIOEx_Exported_Functions + * @{ + */ + +/** @addtogroup GPIOEx_Exported_Functions_Group1 + * @{ + */ +void HAL_GPIOEx_ConfigEventout(uint32_t GPIO_PortSource, uint32_t GPIO_PinSource); +void HAL_GPIOEx_EnableEventout(void); +void HAL_GPIOEx_DisableEventout(void); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32F1xx_HAL_GPIO_EX_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h new file mode 100644 index 0000000..2b1b4ed --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h @@ -0,0 +1,388 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_pwr.h + * @author MCD Application Team + * @brief Header file of PWR HAL module. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_PWR_H +#define __STM32F1xx_HAL_PWR_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @addtogroup PWR + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup PWR_Exported_Types PWR Exported Types + * @{ + */ + +/** + * @brief PWR PVD configuration structure definition + */ +typedef struct +{ + uint32_t PVDLevel; /*!< PVDLevel: Specifies the PVD detection level. + This parameter can be a value of @ref PWR_PVD_detection_level */ + + uint32_t Mode; /*!< Mode: Specifies the operating mode for the selected pins. + This parameter can be a value of @ref PWR_PVD_Mode */ +}PWR_PVDTypeDef; + + +/** + * @} + */ + + +/* Internal constants --------------------------------------------------------*/ + +/** @addtogroup PWR_Private_Constants + * @{ + */ + +#define PWR_EXTI_LINE_PVD ((uint32_t)0x00010000) /*!< External interrupt line 16 Connected to the PVD EXTI Line */ + +/** + * @} + */ + + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup PWR_Exported_Constants PWR Exported Constants + * @{ + */ + +/** @defgroup PWR_PVD_detection_level PWR PVD detection level + * @{ + */ +#define PWR_PVDLEVEL_0 PWR_CR_PLS_2V2 +#define PWR_PVDLEVEL_1 PWR_CR_PLS_2V3 +#define PWR_PVDLEVEL_2 PWR_CR_PLS_2V4 +#define PWR_PVDLEVEL_3 PWR_CR_PLS_2V5 +#define PWR_PVDLEVEL_4 PWR_CR_PLS_2V6 +#define PWR_PVDLEVEL_5 PWR_CR_PLS_2V7 +#define PWR_PVDLEVEL_6 PWR_CR_PLS_2V8 +#define PWR_PVDLEVEL_7 PWR_CR_PLS_2V9 + +/** + * @} + */ + +/** @defgroup PWR_PVD_Mode PWR 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 */ + +/** + * @} + */ + + +/** @defgroup PWR_WakeUp_Pins PWR WakeUp Pins + * @{ + */ + +#define PWR_WAKEUP_PIN1 PWR_CSR_EWUP + +/** + * @} + */ + +/** @defgroup PWR_Regulator_state_in_SLEEP_STOP_mode PWR Regulator state in SLEEP/STOP mode + * @{ + */ +#define PWR_MAINREGULATOR_ON 0x00000000U +#define PWR_LOWPOWERREGULATOR_ON PWR_CR_LPDS + +/** + * @} + */ + +/** @defgroup PWR_SLEEP_mode_entry PWR SLEEP mode entry + * @{ + */ +#define PWR_SLEEPENTRY_WFI ((uint8_t)0x01) +#define PWR_SLEEPENTRY_WFE ((uint8_t)0x02) + +/** + * @} + */ + +/** @defgroup PWR_STOP_mode_entry PWR STOP mode entry + * @{ + */ +#define PWR_STOPENTRY_WFI ((uint8_t)0x01) +#define PWR_STOPENTRY_WFE ((uint8_t)0x02) + +/** + * @} + */ + +/** @defgroup PWR_Flag PWR Flag + * @{ + */ +#define PWR_FLAG_WU PWR_CSR_WUF +#define PWR_FLAG_SB PWR_CSR_SBF +#define PWR_FLAG_PVDO PWR_CSR_PVDO + + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup PWR_Exported_Macros PWR Exported Macros + * @{ + */ + +/** @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 + * 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. + * @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__) SET_BIT(PWR->CR, ((__FLAG__) << 2)) + +/** + * @brief Enable interrupt on PVD Exti Line 16. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, PWR_EXTI_LINE_PVD) + +/** + * @brief Disable interrupt on PVD Exti Line 16. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, PWR_EXTI_LINE_PVD) + +/** + * @brief Enable event on PVD Exti Line 16. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, PWR_EXTI_LINE_PVD) + +/** + * @brief Disable event on PVD Exti Line 16. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, PWR_EXTI_LINE_PVD) + + +/** + * @brief PVD EXTI line configuration: set falling edge trigger. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, 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 PVD EXTI line configuration: set rising edge trigger. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, PWR_EXTI_LINE_PVD) + +/** + * @brief Disable the PVD Extended Interrupt Rising Trigger. + * This parameter can be: + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, PWR_EXTI_LINE_PVD) + +/** + * @brief PVD EXTI line configuration: set rising & falling edge 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 Disable the PVD Extended Interrupt Rising & Falling Trigger. + * This parameter can be: + * @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 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)) + +/** + * @brief Generate a Software interrupt on selected EXTI line. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, PWR_EXTI_LINE_PVD) +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/** @defgroup PWR_Private_Macros PWR Private Macros + * @{ + */ +#define IS_PWR_PVD_LEVEL(LEVEL) (((LEVEL) == PWR_PVDLEVEL_0) || ((LEVEL) == PWR_PVDLEVEL_1)|| \ + ((LEVEL) == PWR_PVDLEVEL_2) || ((LEVEL) == PWR_PVDLEVEL_3)|| \ + ((LEVEL) == PWR_PVDLEVEL_4) || ((LEVEL) == PWR_PVDLEVEL_5)|| \ + ((LEVEL) == PWR_PVDLEVEL_6) || ((LEVEL) == PWR_PVDLEVEL_7)) + + +#define IS_PWR_PVD_MODE(MODE) (((MODE) == PWR_PVD_MODE_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)) + +#define IS_PWR_WAKEUP_PIN(PIN) (((PIN) == PWR_WAKEUP_PIN1)) + +#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)) + +/** + * @} + */ + + + +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup PWR_Exported_Functions PWR Exported Functions + * @{ + */ + +/** @addtogroup PWR_Exported_Functions_Group1 Initialization and de-initialization functions + * @{ + */ + +/* Initialization and de-initialization functions *******************************/ +void HAL_PWR_DeInit(void); +void HAL_PWR_EnableBkUpAccess(void); +void HAL_PWR_DisableBkUpAccess(void); + +/** + * @} + */ + +/** @addtogroup PWR_Exported_Functions_Group2 Peripheral Control functions + * @{ + */ + +/* Peripheral Control functions ************************************************/ +void HAL_PWR_ConfigPVD(PWR_PVDTypeDef *sConfigPVD); +/* #define HAL_PWR_ConfigPVD 12*/ +void HAL_PWR_EnablePVD(void); +void HAL_PWR_DisablePVD(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); + + + +void HAL_PWR_PVD_IRQHandler(void); +void HAL_PWR_PVDCallback(void); +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + + +#endif /* __STM32F1xx_HAL_PWR_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h new file mode 100644 index 0000000..f0097cb --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h @@ -0,0 +1,1378 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_rcc.h + * @author MCD Application Team + * @brief Header file of RCC HAL module. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_RCC_H +#define __STM32F1xx_HAL_RCC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @addtogroup RCC + * @{ + */ + +/* 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 RCCEx_PLL_Multiplication_Factor */ +} RCC_PLLInitTypeDef; + +/** + * @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 + * @{ + */ + +#define RCC_PLLSOURCE_HSI_DIV2 0x00000000U /*!< HSI clock divided by 2 selected as PLL entry clock source */ +#define RCC_PLLSOURCE_HSE RCC_CFGR_PLLSRC /*!< 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 0x00000000U /*!< 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_DIV128 RCC_BDCR_RTCSEL_HSE /*!< HSE oscillator clock divided by 128 used as RTC clock */ +/** + * @} + */ + + +/** @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_MCOx_Clock_Prescaler MCO Clock Prescaler + * @{ + */ +#define RCC_MCODIV_1 0x00000000U + +/** + * @} + */ + +/** @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 + * @{ + */ +/* Flags in the CR register */ +#define RCC_FLAG_HSIRDY ((uint8_t)((CR_REG_INDEX << 5U) | RCC_CR_HSIRDY_Pos)) /*!< Internal High Speed clock ready flag */ +#define RCC_FLAG_HSERDY ((uint8_t)((CR_REG_INDEX << 5U) | RCC_CR_HSERDY_Pos)) /*!< External High Speed clock ready flag */ +#define RCC_FLAG_PLLRDY ((uint8_t)((CR_REG_INDEX << 5U) | RCC_CR_PLLRDY_Pos)) /*!< PLL clock ready flag */ + +/* Flags in the CSR register */ +#define RCC_FLAG_LSIRDY ((uint8_t)((CSR_REG_INDEX << 5U) | RCC_CSR_LSIRDY_Pos)) /*!< Internal Low Speed oscillator Ready */ +#define RCC_FLAG_PINRST ((uint8_t)((CSR_REG_INDEX << 5U) | RCC_CSR_PINRSTF_Pos)) /*!< PIN reset flag */ +#define RCC_FLAG_PORRST ((uint8_t)((CSR_REG_INDEX << 5U) | RCC_CSR_PORRSTF_Pos)) /*!< POR/PDR reset flag */ +#define RCC_FLAG_SFTRST ((uint8_t)((CSR_REG_INDEX << 5U) | RCC_CSR_SFTRSTF_Pos)) /*!< Software Reset flag */ +#define RCC_FLAG_IWDGRST ((uint8_t)((CSR_REG_INDEX << 5U) | RCC_CSR_IWDGRSTF_Pos)) /*!< Independent Watchdog reset flag */ +#define RCC_FLAG_WWDGRST ((uint8_t)((CSR_REG_INDEX << 5U) | RCC_CSR_WWDGRSTF_Pos)) /*!< Window watchdog reset flag */ +#define RCC_FLAG_LPWRRST ((uint8_t)((CSR_REG_INDEX << 5U) | RCC_CSR_LPWRRSTF_Pos)) /*!< Low-Power reset flag */ + +/* Flags in the BDCR register */ +#define RCC_FLAG_LSERDY ((uint8_t)((BDCR_REG_INDEX << 5U) | RCC_BDCR_LSERDY_Pos)) /*!< External Low Speed oscillator Ready */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/** @defgroup RCC_Exported_Macros RCC Exported Macros + * @{ + */ + +/** @defgroup RCC_Peripheral_Clock_Enable_Disable Peripheral Clock Enable Disable + * @brief Enable or disable the AHB1 peripheral clock. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ +#define __HAL_RCC_DMA1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->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_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_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_CRC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_CRCEN)) + +/** + * @} + */ + +/** @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_DMA1_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA1EN)) != RESET) +#define __HAL_RCC_DMA1_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA1EN)) == RESET) +#define __HAL_RCC_SRAM_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_SRAMEN)) != RESET) +#define __HAL_RCC_SRAM_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_SRAMEN)) == RESET) +#define __HAL_RCC_FLITF_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_FLITFEN)) != RESET) +#define __HAL_RCC_FLITF_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_FLITFEN)) == RESET) +#define __HAL_RCC_CRC_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_CRCEN)) != RESET) +#define __HAL_RCC_CRC_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_CRCEN)) == RESET) + +/** + * @} + */ + +/** @defgroup RCC_APB1_Clock_Enable_Disable 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_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_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_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_BKP_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_BKPEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_BKPEN);\ + 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_TIM2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM2EN)) +#define __HAL_RCC_TIM3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM3EN)) +#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_I2C1_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_I2C1EN)) + +#define __HAL_RCC_BKP_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_BKPEN)) +#define __HAL_RCC_PWR_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_PWREN)) + +/** + * @} + */ + +/** @defgroup RCC_APB1_Peripheral_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_TIM2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM2EN)) == RESET) +#define __HAL_RCC_TIM3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM3EN)) != RESET) +#define __HAL_RCC_TIM3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM3EN)) == RESET) +#define __HAL_RCC_WWDG_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_WWDGEN)) != RESET) +#define __HAL_RCC_WWDG_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_WWDGEN)) == RESET) +#define __HAL_RCC_USART2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART2EN)) != RESET) +#define __HAL_RCC_USART2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART2EN)) == RESET) +#define __HAL_RCC_I2C1_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C1EN)) != RESET) +#define __HAL_RCC_I2C1_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C1EN)) == RESET) +#define __HAL_RCC_BKP_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_BKPEN)) != RESET) +#define __HAL_RCC_BKP_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_BKPEN)) == RESET) +#define __HAL_RCC_PWR_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_PWREN)) != RESET) +#define __HAL_RCC_PWR_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_PWREN)) == RESET) + +/** + * @} + */ + +/** @defgroup RCC_APB2_Clock_Enable_Disable 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_AFIO_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_AFIOEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_AFIOEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_GPIOA_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPAEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPAEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_GPIOB_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPBEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPBEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_GPIOC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPCEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPCEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_GPIOD_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPDEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPDEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#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_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_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_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_AFIO_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_AFIOEN)) +#define __HAL_RCC_GPIOA_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_IOPAEN)) +#define __HAL_RCC_GPIOB_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_IOPBEN)) +#define __HAL_RCC_GPIOC_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_IOPCEN)) +#define __HAL_RCC_GPIOD_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_IOPDEN)) +#define __HAL_RCC_ADC1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_ADC1EN)) + +#define __HAL_RCC_TIM1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM1EN)) +#define __HAL_RCC_SPI1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SPI1EN)) +#define __HAL_RCC_USART1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_USART1EN)) + +/** + * @} + */ + +/** @defgroup RCC_APB2_Peripheral_Clock_Enable_Disable_Status 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. + * @{ + */ + +#define __HAL_RCC_AFIO_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_AFIOEN)) != RESET) +#define __HAL_RCC_AFIO_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_AFIOEN)) == RESET) +#define __HAL_RCC_GPIOA_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPAEN)) != RESET) +#define __HAL_RCC_GPIOA_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPAEN)) == RESET) +#define __HAL_RCC_GPIOB_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPBEN)) != RESET) +#define __HAL_RCC_GPIOB_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPBEN)) == RESET) +#define __HAL_RCC_GPIOC_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPCEN)) != RESET) +#define __HAL_RCC_GPIOC_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPCEN)) == RESET) +#define __HAL_RCC_GPIOD_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPDEN)) != RESET) +#define __HAL_RCC_GPIOD_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPDEN)) == RESET) +#define __HAL_RCC_ADC1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_ADC1EN)) != RESET) +#define __HAL_RCC_ADC1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_ADC1EN)) == RESET) +#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) +#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) +#define __HAL_RCC_USART1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_USART1EN)) != RESET) +#define __HAL_RCC_USART1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_USART1EN)) == RESET) + +/** + * @} + */ + +/** @defgroup RCC_APB1_Force_Release_Reset APB1 Force Release Reset + * @brief Force or release APB1 peripheral reset. + * @{ + */ +#define __HAL_RCC_APB1_FORCE_RESET() (RCC->APB2RSTR = 0xFFFFFFFFU) +#define __HAL_RCC_TIM2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM2RST)) +#define __HAL_RCC_TIM3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM3RST)) +#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_I2C1_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C1RST)) + +#define __HAL_RCC_BKP_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_BKPRST)) +#define __HAL_RCC_PWR_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_PWRRST)) + +#define __HAL_RCC_APB1_RELEASE_RESET() (RCC->APB1RSTR = 0x00) +#define __HAL_RCC_TIM2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM2RST)) +#define __HAL_RCC_TIM3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM3RST)) +#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_I2C1_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_I2C1RST)) + +#define __HAL_RCC_BKP_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_BKPRST)) +#define __HAL_RCC_PWR_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_PWRRST)) + +/** + * @} + */ + +/** @defgroup RCC_APB2_Force_Release_Reset APB2 Force Release Reset + * @brief Force or release APB2 peripheral reset. + * @{ + */ +#define __HAL_RCC_APB2_FORCE_RESET() (RCC->APB2RSTR = 0xFFFFFFFFU) +#define __HAL_RCC_AFIO_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_AFIORST)) +#define __HAL_RCC_GPIOA_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPARST)) +#define __HAL_RCC_GPIOB_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPBRST)) +#define __HAL_RCC_GPIOC_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPCRST)) +#define __HAL_RCC_GPIOD_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPDRST)) +#define __HAL_RCC_ADC1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_ADC1RST)) + +#define __HAL_RCC_TIM1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM1RST)) +#define __HAL_RCC_SPI1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SPI1RST)) +#define __HAL_RCC_USART1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_USART1RST)) + +#define __HAL_RCC_APB2_RELEASE_RESET() (RCC->APB2RSTR = 0x00) +#define __HAL_RCC_AFIO_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_AFIORST)) +#define __HAL_RCC_GPIOA_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_IOPARST)) +#define __HAL_RCC_GPIOB_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_IOPBRST)) +#define __HAL_RCC_GPIOC_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_IOPCRST)) +#define __HAL_RCC_GPIOD_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_IOPDRST)) +#define __HAL_RCC_ADC1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_ADC1RST)) + +#define __HAL_RCC_TIM1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM1RST)) +#define __HAL_RCC_SPI1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SPI1RST)) +#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. + * @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_) << RCC_CR_HSITRIM_Pos)) + +/** + * @} + */ + +/** @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_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 Macro to configure the main PLL clock source and multiplication factors. + * @note This function must be used only when the main 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_DIV2 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 output clock + * This parameter can be one of the following values: + * @arg @ref RCC_PLL_MUL4 PLLVCO = PLL clock entry x 4 + * @arg @ref RCC_PLL_MUL6 PLLVCO = PLL clock entry x 6 + @if STM32F105xC + * @arg @ref RCC_PLL_MUL6_5 PLLVCO = PLL clock entry x 6.5 + @elseif STM32F107xC + * @arg @ref RCC_PLL_MUL6_5 PLLVCO = PLL clock entry x 6.5 + @else + * @arg @ref RCC_PLL_MUL2 PLLVCO = PLL clock entry x 2 + * @arg @ref RCC_PLL_MUL3 PLLVCO = PLL clock entry x 3 + * @arg @ref RCC_PLL_MUL10 PLLVCO = PLL clock entry x 10 + * @arg @ref RCC_PLL_MUL11 PLLVCO = PLL clock entry x 11 + * @arg @ref RCC_PLL_MUL12 PLLVCO = PLL clock entry x 12 + * @arg @ref RCC_PLL_MUL13 PLLVCO = PLL clock entry x 13 + * @arg @ref RCC_PLL_MUL14 PLLVCO = PLL clock entry x 14 + * @arg @ref RCC_PLL_MUL15 PLLVCO = PLL clock entry x 15 + * @arg @ref RCC_PLL_MUL16 PLLVCO = PLL clock entry x 16 + @endif + * @arg @ref RCC_PLL_MUL8 PLLVCO = PLL clock entry x 8 + * @arg @ref RCC_PLL_MUL9 PLLVCO = PLL clock entry x 9 + * + */ +#define __HAL_RCC_PLL_CONFIG(__RCC_PLLSOURCE__, __PLLMUL__)\ + MODIFY_REG(RCC->CFGR, (RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL),((__RCC_PLLSOURCE__) | (__PLLMUL__) )) + +/** @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_DIV2 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_MCO_3) +/** @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 (SYSCLK) 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_PLLCLK PLL clock divided by 2 selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_PLL2CLK PLL2 clock selected by 2 selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_PLL3CLK_DIV2 PLL3 clock divided by 2 selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_EXT_HSE XT1 external 3-25 MHz oscillator clock selected (for Ethernet) as MCO clock + * @arg @ref RCC_MCO1SOURCE_PLL3CLK PLL3 clock selected (for Ethernet) 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 + */ +#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 (SYSCLK) 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_PLLCLK PLL clock 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 + +#define __HAL_RCC_MCO1_CONFIG(__MCOCLKSOURCE__, __MCODIV__) \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_MCO, (__MCOCLKSOURCE__)) + + +/** + * @} + */ + +/** @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 can't 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_DIV128 HSE divided by 128 selected as RTC clock + * @note If the LSE or LSI is used as RTC clock source, the RTC continues to + * work in STOP and STANDBY modes, and can be used as wakeup source. + * However, when the HSE clock is used as RTC clock source, the RTC + * cannot be used in STOP and STANDBY modes. + * @note The maximum input clock frequency for RTC is 1MHz (when using HSE as + * RTC clock source). + */ +#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_DIV128 HSE divided by 128 selected as RTC clock + */ +#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 + @if STM32F105xx + * @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt. + * @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt. + @elsif STM32F107xx + * @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt. + * @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt. + @endif + */ +#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 + @if STM32F105xx + * @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt. + * @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt. + @elsif STM32F107xx + * @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt. + * @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt. + @endif + */ +#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. + @if STM32F105xx + * @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt. + * @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt. + @elsif STM32F107xx + * @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt. + * @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt. + @endif + * @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. + @if STM32F105xx + * @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt. + * @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt. + @elsif STM32F107xx + * @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt. + * @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt. + @endif + * @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_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. + @if STM32F105xx + * @arg @ref RCC_FLAG_PLL2RDY Main PLL2 clock ready. + * @arg @ref RCC_FLAG_PLLI2SRDY Main PLLI2S clock ready. + @elsif STM32F107xx + * @arg @ref RCC_FLAG_PLL2RDY Main PLL2 clock ready. + * @arg @ref RCC_FLAG_PLLI2SRDY Main PLLI2S clock ready. + @endif + * @arg @ref RCC_FLAG_LSERDY LSE oscillator clock ready. + * @arg @ref RCC_FLAG_LSIRDY LSI oscillator clock ready. + * @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. + * @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 : \ + RCC->CSR)) & (1U << ((__FLAG__) & RCC_FLAG_MASK))) + +/** + * @} + */ + +/** + * @} + */ + +/* Include RCC HAL Extension module */ +#include "stm32f1xx_hal_rcc_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup RCC_Exported_Functions + * @{ + */ + +/** @addtogroup RCC_Exported_Functions_Group1 + * @{ + */ + +/* Initialization and de-initialization functions ******************************/ +HAL_StatusTypeDef HAL_RCC_DeInit(void); +HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct); +HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency); + +/** + * @} + */ + +/** @addtogroup RCC_Exported_Functions_Group2 + * @{ + */ + +/* Peripheral Control functions ************************************************/ +void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv); +void HAL_RCC_EnableCSS(void); +void HAL_RCC_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); + +/* CSS NMI IRQ handler */ +void HAL_RCC_NMI_IRQHandler(void); + +/* User Callbacks in non blocking mode (IT mode) */ +void HAL_RCC_CSSCallback(void); + +/** + * @} + */ + +/** + * @} + */ + +/** @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 5000 /* 5 s */ +#define HSE_TIMEOUT_VALUE HSE_STARTUP_TIMEOUT +#define HSI_TIMEOUT_VALUE 2U /* 2 ms (minimum Tick + 1) */ +#define LSI_TIMEOUT_VALUE 2U /* 2 ms (minimum Tick + 1) */ +#define PLL_TIMEOUT_VALUE 2U /* 2 ms (minimum Tick + 1) */ + +/** + * @} + */ + +/** @defgroup RCC_Register_Offset Register offsets + * @{ + */ +#define RCC_OFFSET (RCC_BASE - PERIPH_BASE) +#define RCC_CR_OFFSET 0x00U +#define RCC_CFGR_OFFSET 0x04U +#define RCC_CIR_OFFSET 0x08U +#define RCC_BDCR_OFFSET 0x20U +#define RCC_CSR_OFFSET 0x24U + +/** + * @} + */ + +/** @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 RCC_CR_HSION_Pos +#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 RCC_CR_HSEON_Pos +#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 RCC_CR_CSSON_Pos +#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 RCC_CR_PLLON_Pos +#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 RCC_CSR_LSION_Pos +#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 RCC_CSR_RMVF_Pos +#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 RCC_BDCR_LSEON_Pos +#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 RCC_BDCR_LSEBYP_Pos +#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 RCC_BDCR_RTCEN_Pos +#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 RCC_BDCR_BDRST_Pos +#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)1) +#define BDCR_REG_INDEX ((uint8_t)2) +#define CSR_REG_INDEX ((uint8_t)3) + +#define RCC_FLAG_MASK ((uint8_t)0x1F) + +/** + * @} + */ + +/** @addtogroup RCC_Private_Macros + * @{ + */ +/** @defgroup RCC_Alias_For_Legacy Alias define maintained for legacy + * @{ + */ +#define __HAL_RCC_SYSCFG_CLK_DISABLE __HAL_RCC_AFIO_CLK_DISABLE +#define __HAL_RCC_SYSCFG_CLK_ENABLE __HAL_RCC_AFIO_CLK_ENABLE +#define __HAL_RCC_SYSCFG_FORCE_RESET __HAL_RCC_AFIO_FORCE_RESET +#define __HAL_RCC_SYSCFG_RELEASE_RESET __HAL_RCC_AFIO_RELEASE_RESET +/** + * @} + */ + +#define IS_RCC_PLLSOURCE(__SOURCE__) (((__SOURCE__) == RCC_PLLSOURCE_HSI_DIV2) || \ + ((__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)) + +#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_MCODIV(__DIV__) (((__DIV__) == RCC_MCODIV_1)) +#define IS_RCC_RTCCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_RTCCLKSOURCE_NO_CLK) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_LSI) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV128)) + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_HAL_RCC_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h new file mode 100644 index 0000000..d0d0830 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h @@ -0,0 +1,1908 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_RCC_EX_H +#define __STM32F1xx_HAL_RCC_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @addtogroup RCCEx + * @{ + */ + +/** @addtogroup RCCEx_Private_Constants + * @{ + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) + +/* Alias word address of PLLI2SON bit */ +#define PLLI2SON_BITNUMBER RCC_CR_PLL3ON_Pos +#define RCC_CR_PLLI2SON_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CR_OFFSET_BB * 32U) + (PLLI2SON_BITNUMBER * 4U))) +/* Alias word address of PLL2ON bit */ +#define PLL2ON_BITNUMBER RCC_CR_PLL2ON_Pos +#define RCC_CR_PLL2ON_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CR_OFFSET_BB * 32U) + (PLL2ON_BITNUMBER * 4U))) + +#define PLLI2S_TIMEOUT_VALUE 100U /* 100 ms */ +#define PLL2_TIMEOUT_VALUE 100U /* 100 ms */ + +#endif /* STM32F105xC || STM32F107xC */ + + +#define CR_REG_INDEX ((uint8_t)1) + +/** + * @} + */ + +/** @addtogroup RCCEx_Private_Macros + * @{ + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +#define IS_RCC_PREDIV1_SOURCE(__SOURCE__) (((__SOURCE__) == RCC_PREDIV1_SOURCE_HSE) || \ + ((__SOURCE__) == RCC_PREDIV1_SOURCE_PLL2)) +#endif /* STM32F105xC || STM32F107xC */ + +#if defined(STM32F105xC) || defined(STM32F107xC) || defined(STM32F100xB)\ + || defined(STM32F100xE) +#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)) + +#else +#define IS_RCC_HSE_PREDIV(__DIV__) (((__DIV__) == RCC_HSE_PREDIV_DIV1) || ((__DIV__) == RCC_HSE_PREDIV_DIV2)) +#endif /* STM32F105xC || STM32F107xC || STM32F100xB || STM32F100xE */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +#define IS_RCC_PLL_MUL(__MUL__) (((__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_MUL6_5)) + +#define IS_RCC_MCO1SOURCE(__SOURCE__) (((__SOURCE__) == RCC_MCO1SOURCE_SYSCLK) || ((__SOURCE__) == RCC_MCO1SOURCE_HSI) \ + || ((__SOURCE__) == RCC_MCO1SOURCE_HSE) || ((__SOURCE__) == RCC_MCO1SOURCE_PLLCLK) \ + || ((__SOURCE__) == RCC_MCO1SOURCE_PLL2CLK) || ((__SOURCE__) == RCC_MCO1SOURCE_PLL3CLK) \ + || ((__SOURCE__) == RCC_MCO1SOURCE_PLL3CLK_DIV2) || ((__SOURCE__) == RCC_MCO1SOURCE_EXT_HSE) \ + || ((__SOURCE__) == RCC_MCO1SOURCE_NOCLOCK)) + +#else +#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_MCO1SOURCE(__SOURCE__) (((__SOURCE__) == RCC_MCO1SOURCE_SYSCLK) || ((__SOURCE__) == RCC_MCO1SOURCE_HSI) \ + || ((__SOURCE__) == RCC_MCO1SOURCE_HSE) || ((__SOURCE__) == RCC_MCO1SOURCE_PLLCLK) \ + || ((__SOURCE__) == RCC_MCO1SOURCE_NOCLOCK)) + +#endif /* STM32F105xC || STM32F107xC*/ + +#define IS_RCC_ADCPLLCLK_DIV(__ADCCLK__) (((__ADCCLK__) == RCC_ADCPCLK2_DIV2) || ((__ADCCLK__) == RCC_ADCPCLK2_DIV4) || \ + ((__ADCCLK__) == RCC_ADCPCLK2_DIV6) || ((__ADCCLK__) == RCC_ADCPCLK2_DIV8)) + +#if defined(STM32F105xC) || defined(STM32F107xC) +#define IS_RCC_I2S2CLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_I2S2CLKSOURCE_SYSCLK) || ((__SOURCE__) == RCC_I2S2CLKSOURCE_PLLI2S_VCO)) + +#define IS_RCC_I2S3CLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_I2S3CLKSOURCE_SYSCLK) || ((__SOURCE__) == RCC_I2S3CLKSOURCE_PLLI2S_VCO)) + +#define IS_RCC_USBPLLCLK_DIV(__USBCLK__) (((__USBCLK__) == RCC_USBCLKSOURCE_PLL_DIV2) || ((__USBCLK__) == RCC_USBCLKSOURCE_PLL_DIV3)) + +#define IS_RCC_PLLI2S_MUL(__MUL__) (((__MUL__) == RCC_PLLI2S_MUL8) || ((__MUL__) == RCC_PLLI2S_MUL9) || \ + ((__MUL__) == RCC_PLLI2S_MUL10) || ((__MUL__) == RCC_PLLI2S_MUL11) || \ + ((__MUL__) == RCC_PLLI2S_MUL12) || ((__MUL__) == RCC_PLLI2S_MUL13) || \ + ((__MUL__) == RCC_PLLI2S_MUL14) || ((__MUL__) == RCC_PLLI2S_MUL16) || \ + ((__MUL__) == RCC_PLLI2S_MUL20)) + +#define IS_RCC_HSE_PREDIV2(__DIV__) (((__DIV__) == RCC_HSE_PREDIV2_DIV1) || ((__DIV__) == RCC_HSE_PREDIV2_DIV2) || \ + ((__DIV__) == RCC_HSE_PREDIV2_DIV3) || ((__DIV__) == RCC_HSE_PREDIV2_DIV4) || \ + ((__DIV__) == RCC_HSE_PREDIV2_DIV5) || ((__DIV__) == RCC_HSE_PREDIV2_DIV6) || \ + ((__DIV__) == RCC_HSE_PREDIV2_DIV7) || ((__DIV__) == RCC_HSE_PREDIV2_DIV8) || \ + ((__DIV__) == RCC_HSE_PREDIV2_DIV9) || ((__DIV__) == RCC_HSE_PREDIV2_DIV10) || \ + ((__DIV__) == RCC_HSE_PREDIV2_DIV11) || ((__DIV__) == RCC_HSE_PREDIV2_DIV12) || \ + ((__DIV__) == RCC_HSE_PREDIV2_DIV13) || ((__DIV__) == RCC_HSE_PREDIV2_DIV14) || \ + ((__DIV__) == RCC_HSE_PREDIV2_DIV15) || ((__DIV__) == RCC_HSE_PREDIV2_DIV16)) + +#define IS_RCC_PLL2(__PLL__) (((__PLL__) == RCC_PLL2_NONE) || ((__PLL__) == RCC_PLL2_OFF) || \ + ((__PLL__) == RCC_PLL2_ON)) + +#define IS_RCC_PLL2_MUL(__MUL__) (((__MUL__) == RCC_PLL2_MUL8) || ((__MUL__) == RCC_PLL2_MUL9) || \ + ((__MUL__) == RCC_PLL2_MUL10) || ((__MUL__) == RCC_PLL2_MUL11) || \ + ((__MUL__) == RCC_PLL2_MUL12) || ((__MUL__) == RCC_PLL2_MUL13) || \ + ((__MUL__) == RCC_PLL2_MUL14) || ((__MUL__) == RCC_PLL2_MUL16) || \ + ((__MUL__) == RCC_PLL2_MUL20)) + +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC) == RCC_PERIPHCLK_ADC) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S2) == RCC_PERIPHCLK_I2S2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S3) == RCC_PERIPHCLK_I2S3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB)) + +#elif defined(STM32F103xE) || defined(STM32F103xG) + +#define IS_RCC_I2S2CLKSOURCE(__SOURCE__) ((__SOURCE__) == RCC_I2S2CLKSOURCE_SYSCLK) + +#define IS_RCC_I2S3CLKSOURCE(__SOURCE__) ((__SOURCE__) == RCC_I2S3CLKSOURCE_SYSCLK) + +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC) == RCC_PERIPHCLK_ADC) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S2) == RCC_PERIPHCLK_I2S2) || \ + (((__SELECTION__) & RCC_PERIPHCLK_I2S3) == RCC_PERIPHCLK_I2S3) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB)) + + +#elif defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) + +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC) == RCC_PERIPHCLK_ADC) || \ + (((__SELECTION__) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB)) + +#else + +#define IS_RCC_PERIPHCLOCK(__SELECTION__) \ + ((((__SELECTION__) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) || \ + (((__SELECTION__) & RCC_PERIPHCLK_ADC) == RCC_PERIPHCLK_ADC)) + +#endif /* STM32F105xC || STM32F107xC */ + +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) + +#define IS_RCC_USBPLLCLK_DIV(__USBCLK__) (((__USBCLK__) == RCC_USBCLKSOURCE_PLL) || ((__USBCLK__) == RCC_USBCLKSOURCE_PLL_DIV1_5)) + +#endif /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG */ + +/** + * @} + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup RCCEx_Exported_Types RCCEx Exported Types + * @{ + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +/** + * @brief RCC PLL2 configuration structure definition + */ +typedef struct +{ + uint32_t PLL2State; /*!< The new state of the PLL2. + This parameter can be a value of @ref RCCEx_PLL2_Config */ + + uint32_t PLL2MUL; /*!< PLL2MUL: Multiplication factor for PLL2 VCO input clock + This parameter must be a value of @ref RCCEx_PLL2_Multiplication_Factor*/ + +#if defined(STM32F105xC) || defined(STM32F107xC) + uint32_t HSEPrediv2Value; /*!< The Prediv2 factor value. + This parameter can be a value of @ref RCCEx_Prediv2_Factor */ + +#endif /* STM32F105xC || STM32F107xC */ +} RCC_PLL2InitTypeDef; + +#endif /* STM32F105xC || STM32F107xC */ + +/** + * @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 */ + +#if defined(STM32F105xC) || defined(STM32F107xC) + uint32_t Prediv1Source; /*!< The Prediv1 source value. + This parameter can be a value of @ref RCCEx_Prediv1_Source */ +#endif /* STM32F105xC || STM32F107xC */ + + uint32_t HSEState; /*!< The new state of the HSE. + This parameter can be a value of @ref RCC_HSE_Config */ + + uint32_t HSEPredivValue; /*!< The Prediv1 factor value (named PREDIV1 or PLLXTPRE in RM) + This parameter can be a value of @ref RCCEx_Prediv1_Factor */ + + 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 = 0x1F */ + + 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 */ + +#if defined(STM32F105xC) || defined(STM32F107xC) + RCC_PLL2InitTypeDef PLL2; /*!< PLL2 structure parameters */ +#endif /* STM32F105xC || STM32F107xC */ +} RCC_OscInitTypeDef; + +#if defined(STM32F105xC) || defined(STM32F107xC) +/** + * @brief RCC PLLI2S configuration structure definition + */ +typedef struct +{ + uint32_t PLLI2SMUL; /*!< PLLI2SMUL: Multiplication factor for PLLI2S VCO input clock + This parameter must be a value of @ref RCCEx_PLLI2S_Multiplication_Factor*/ + +#if defined(STM32F105xC) || defined(STM32F107xC) + uint32_t HSEPrediv2Value; /*!< The Prediv2 factor value. + This parameter can be a value of @ref RCCEx_Prediv2_Factor */ + +#endif /* STM32F105xC || STM32F107xC */ +} RCC_PLLI2SInitTypeDef; +#endif /* STM32F105xC || STM32F107xC */ + +/** + * @brief RCC extended clocks structure definition + */ +typedef struct +{ + uint32_t PeriphClockSelection; /*!< The Extended Clock to be configured. + This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */ + + uint32_t RTCClockSelection; /*!< specifies the RTC clock source. + This parameter can be a value of @ref RCC_RTC_Clock_Source */ + + uint32_t AdcClockSelection; /*!< ADC clock source + This parameter can be a value of @ref RCCEx_ADC_Prescaler */ + +#if defined(STM32F103xE) || defined(STM32F103xG) || defined(STM32F105xC)\ + || defined(STM32F107xC) + uint32_t I2s2ClockSelection; /*!< I2S2 clock source + This parameter can be a value of @ref RCCEx_I2S2_Clock_Source */ + + uint32_t I2s3ClockSelection; /*!< I2S3 clock source + This parameter can be a value of @ref RCCEx_I2S3_Clock_Source */ + +#if defined(STM32F105xC) || defined(STM32F107xC) + RCC_PLLI2SInitTypeDef PLLI2S; /*!< PLL I2S structure parameters + This parameter will be used only when PLLI2S is selected as Clock Source I2S2 or I2S3 */ + +#endif /* STM32F105xC || STM32F107xC */ +#endif /* STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ + +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG)\ + || defined(STM32F105xC) || defined(STM32F107xC) + uint32_t UsbClockSelection; /*!< USB clock source + This parameter can be a value of @ref RCCEx_USB_Prescaler */ + +#endif /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ +} RCC_PeriphCLKInitTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup RCCEx_Exported_Constants RCCEx Exported Constants + * @{ + */ + +/** @defgroup RCCEx_Periph_Clock_Selection Periph Clock Selection + * @{ + */ +#define RCC_PERIPHCLK_RTC 0x00000001U +#define RCC_PERIPHCLK_ADC 0x00000002U +#if defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE)\ + || defined(STM32F103xG) || defined(STM32F105xC) || defined(STM32F107xC) +#define RCC_PERIPHCLK_I2S2 0x00000004U +#define RCC_PERIPHCLK_I2S3 0x00000008U +#endif /* STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG)\ + || defined(STM32F105xC) || defined(STM32F107xC) +#define RCC_PERIPHCLK_USB 0x00000010U +#endif /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ + +/** + * @} + */ + +/** @defgroup RCCEx_ADC_Prescaler ADC Prescaler + * @{ + */ +#define RCC_ADCPCLK2_DIV2 RCC_CFGR_ADCPRE_DIV2 +#define RCC_ADCPCLK2_DIV4 RCC_CFGR_ADCPRE_DIV4 +#define RCC_ADCPCLK2_DIV6 RCC_CFGR_ADCPRE_DIV6 +#define RCC_ADCPCLK2_DIV8 RCC_CFGR_ADCPRE_DIV8 + +/** + * @} + */ + +#if defined(STM32F103xE) || defined(STM32F103xG) || defined(STM32F105xC)\ + || defined(STM32F107xC) +/** @defgroup RCCEx_I2S2_Clock_Source I2S2 Clock Source + * @{ + */ +#define RCC_I2S2CLKSOURCE_SYSCLK 0x00000000U +#if defined(STM32F105xC) || defined(STM32F107xC) +#define RCC_I2S2CLKSOURCE_PLLI2S_VCO RCC_CFGR2_I2S2SRC +#endif /* STM32F105xC || STM32F107xC */ + +/** + * @} + */ + +/** @defgroup RCCEx_I2S3_Clock_Source I2S3 Clock Source + * @{ + */ +#define RCC_I2S3CLKSOURCE_SYSCLK 0x00000000U +#if defined(STM32F105xC) || defined(STM32F107xC) +#define RCC_I2S3CLKSOURCE_PLLI2S_VCO RCC_CFGR2_I2S3SRC +#endif /* STM32F105xC || STM32F107xC */ + +/** + * @} + */ + +#endif /* STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ + +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) + +/** @defgroup RCCEx_USB_Prescaler USB Prescaler + * @{ + */ +#define RCC_USBCLKSOURCE_PLL RCC_CFGR_USBPRE +#define RCC_USBCLKSOURCE_PLL_DIV1_5 0x00000000U + +/** + * @} + */ + +#endif /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG */ + + +#if defined(STM32F105xC) || defined(STM32F107xC) +/** @defgroup RCCEx_USB_Prescaler USB Prescaler + * @{ + */ +#define RCC_USBCLKSOURCE_PLL_DIV2 RCC_CFGR_OTGFSPRE +#define RCC_USBCLKSOURCE_PLL_DIV3 0x00000000U + +/** + * @} + */ + +/** @defgroup RCCEx_PLLI2S_Multiplication_Factor PLLI2S Multiplication Factor + * @{ + */ + +#define RCC_PLLI2S_MUL8 RCC_CFGR2_PLL3MUL8 /*!< PLLI2S input clock * 8 */ +#define RCC_PLLI2S_MUL9 RCC_CFGR2_PLL3MUL9 /*!< PLLI2S input clock * 9 */ +#define RCC_PLLI2S_MUL10 RCC_CFGR2_PLL3MUL10 /*!< PLLI2S input clock * 10 */ +#define RCC_PLLI2S_MUL11 RCC_CFGR2_PLL3MUL11 /*!< PLLI2S input clock * 11 */ +#define RCC_PLLI2S_MUL12 RCC_CFGR2_PLL3MUL12 /*!< PLLI2S input clock * 12 */ +#define RCC_PLLI2S_MUL13 RCC_CFGR2_PLL3MUL13 /*!< PLLI2S input clock * 13 */ +#define RCC_PLLI2S_MUL14 RCC_CFGR2_PLL3MUL14 /*!< PLLI2S input clock * 14 */ +#define RCC_PLLI2S_MUL16 RCC_CFGR2_PLL3MUL16 /*!< PLLI2S input clock * 16 */ +#define RCC_PLLI2S_MUL20 RCC_CFGR2_PLL3MUL20 /*!< PLLI2S input clock * 20 */ + +/** + * @} + */ +#endif /* STM32F105xC || STM32F107xC */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +/** @defgroup RCCEx_Prediv1_Source Prediv1 Source + * @{ + */ + +#define RCC_PREDIV1_SOURCE_HSE RCC_CFGR2_PREDIV1SRC_HSE +#define RCC_PREDIV1_SOURCE_PLL2 RCC_CFGR2_PREDIV1SRC_PLL2 + +/** + * @} + */ +#endif /* STM32F105xC || STM32F107xC */ + +/** @defgroup RCCEx_Prediv1_Factor HSE Prediv1 Factor + * @{ + */ + +#define RCC_HSE_PREDIV_DIV1 0x00000000U + +#if defined(STM32F105xC) || defined(STM32F107xC) || defined(STM32F100xB)\ + || defined(STM32F100xE) +#define RCC_HSE_PREDIV_DIV2 RCC_CFGR2_PREDIV1_DIV2 +#define RCC_HSE_PREDIV_DIV3 RCC_CFGR2_PREDIV1_DIV3 +#define RCC_HSE_PREDIV_DIV4 RCC_CFGR2_PREDIV1_DIV4 +#define RCC_HSE_PREDIV_DIV5 RCC_CFGR2_PREDIV1_DIV5 +#define RCC_HSE_PREDIV_DIV6 RCC_CFGR2_PREDIV1_DIV6 +#define RCC_HSE_PREDIV_DIV7 RCC_CFGR2_PREDIV1_DIV7 +#define RCC_HSE_PREDIV_DIV8 RCC_CFGR2_PREDIV1_DIV8 +#define RCC_HSE_PREDIV_DIV9 RCC_CFGR2_PREDIV1_DIV9 +#define RCC_HSE_PREDIV_DIV10 RCC_CFGR2_PREDIV1_DIV10 +#define RCC_HSE_PREDIV_DIV11 RCC_CFGR2_PREDIV1_DIV11 +#define RCC_HSE_PREDIV_DIV12 RCC_CFGR2_PREDIV1_DIV12 +#define RCC_HSE_PREDIV_DIV13 RCC_CFGR2_PREDIV1_DIV13 +#define RCC_HSE_PREDIV_DIV14 RCC_CFGR2_PREDIV1_DIV14 +#define RCC_HSE_PREDIV_DIV15 RCC_CFGR2_PREDIV1_DIV15 +#define RCC_HSE_PREDIV_DIV16 RCC_CFGR2_PREDIV1_DIV16 +#else +#define RCC_HSE_PREDIV_DIV2 RCC_CFGR_PLLXTPRE +#endif /* STM32F105xC || STM32F107xC || STM32F100xB || STM32F100xE */ + +/** + * @} + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +/** @defgroup RCCEx_Prediv2_Factor HSE Prediv2 Factor + * @{ + */ + +#define RCC_HSE_PREDIV2_DIV1 RCC_CFGR2_PREDIV2_DIV1 /*!< PREDIV2 input clock not divided */ +#define RCC_HSE_PREDIV2_DIV2 RCC_CFGR2_PREDIV2_DIV2 /*!< PREDIV2 input clock divided by 2 */ +#define RCC_HSE_PREDIV2_DIV3 RCC_CFGR2_PREDIV2_DIV3 /*!< PREDIV2 input clock divided by 3 */ +#define RCC_HSE_PREDIV2_DIV4 RCC_CFGR2_PREDIV2_DIV4 /*!< PREDIV2 input clock divided by 4 */ +#define RCC_HSE_PREDIV2_DIV5 RCC_CFGR2_PREDIV2_DIV5 /*!< PREDIV2 input clock divided by 5 */ +#define RCC_HSE_PREDIV2_DIV6 RCC_CFGR2_PREDIV2_DIV6 /*!< PREDIV2 input clock divided by 6 */ +#define RCC_HSE_PREDIV2_DIV7 RCC_CFGR2_PREDIV2_DIV7 /*!< PREDIV2 input clock divided by 7 */ +#define RCC_HSE_PREDIV2_DIV8 RCC_CFGR2_PREDIV2_DIV8 /*!< PREDIV2 input clock divided by 8 */ +#define RCC_HSE_PREDIV2_DIV9 RCC_CFGR2_PREDIV2_DIV9 /*!< PREDIV2 input clock divided by 9 */ +#define RCC_HSE_PREDIV2_DIV10 RCC_CFGR2_PREDIV2_DIV10 /*!< PREDIV2 input clock divided by 10 */ +#define RCC_HSE_PREDIV2_DIV11 RCC_CFGR2_PREDIV2_DIV11 /*!< PREDIV2 input clock divided by 11 */ +#define RCC_HSE_PREDIV2_DIV12 RCC_CFGR2_PREDIV2_DIV12 /*!< PREDIV2 input clock divided by 12 */ +#define RCC_HSE_PREDIV2_DIV13 RCC_CFGR2_PREDIV2_DIV13 /*!< PREDIV2 input clock divided by 13 */ +#define RCC_HSE_PREDIV2_DIV14 RCC_CFGR2_PREDIV2_DIV14 /*!< PREDIV2 input clock divided by 14 */ +#define RCC_HSE_PREDIV2_DIV15 RCC_CFGR2_PREDIV2_DIV15 /*!< PREDIV2 input clock divided by 15 */ +#define RCC_HSE_PREDIV2_DIV16 RCC_CFGR2_PREDIV2_DIV16 /*!< PREDIV2 input clock divided by 16 */ + +/** + * @} + */ + +/** @defgroup RCCEx_PLL2_Config PLL Config + * @{ + */ +#define RCC_PLL2_NONE 0x00000000U +#define RCC_PLL2_OFF 0x00000001U +#define RCC_PLL2_ON 0x00000002U + +/** + * @} + */ + +/** @defgroup RCCEx_PLL2_Multiplication_Factor PLL2 Multiplication Factor + * @{ + */ + +#define RCC_PLL2_MUL8 RCC_CFGR2_PLL2MUL8 /*!< PLL2 input clock * 8 */ +#define RCC_PLL2_MUL9 RCC_CFGR2_PLL2MUL9 /*!< PLL2 input clock * 9 */ +#define RCC_PLL2_MUL10 RCC_CFGR2_PLL2MUL10 /*!< PLL2 input clock * 10 */ +#define RCC_PLL2_MUL11 RCC_CFGR2_PLL2MUL11 /*!< PLL2 input clock * 11 */ +#define RCC_PLL2_MUL12 RCC_CFGR2_PLL2MUL12 /*!< PLL2 input clock * 12 */ +#define RCC_PLL2_MUL13 RCC_CFGR2_PLL2MUL13 /*!< PLL2 input clock * 13 */ +#define RCC_PLL2_MUL14 RCC_CFGR2_PLL2MUL14 /*!< PLL2 input clock * 14 */ +#define RCC_PLL2_MUL16 RCC_CFGR2_PLL2MUL16 /*!< PLL2 input clock * 16 */ +#define RCC_PLL2_MUL20 RCC_CFGR2_PLL2MUL20 /*!< PLL2 input clock * 20 */ + +/** + * @} + */ + +#endif /* STM32F105xC || STM32F107xC */ + +/** @defgroup RCCEx_PLL_Multiplication_Factor PLL Multiplication Factor + * @{ + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +#else +#define RCC_PLL_MUL2 RCC_CFGR_PLLMULL2 +#define RCC_PLL_MUL3 RCC_CFGR_PLLMULL3 +#endif /* STM32F105xC || STM32F107xC */ +#define RCC_PLL_MUL4 RCC_CFGR_PLLMULL4 +#define RCC_PLL_MUL5 RCC_CFGR_PLLMULL5 +#define RCC_PLL_MUL6 RCC_CFGR_PLLMULL6 +#define RCC_PLL_MUL7 RCC_CFGR_PLLMULL7 +#define RCC_PLL_MUL8 RCC_CFGR_PLLMULL8 +#define RCC_PLL_MUL9 RCC_CFGR_PLLMULL9 +#if defined(STM32F105xC) || defined(STM32F107xC) +#define RCC_PLL_MUL6_5 RCC_CFGR_PLLMULL6_5 +#else +#define RCC_PLL_MUL10 RCC_CFGR_PLLMULL10 +#define RCC_PLL_MUL11 RCC_CFGR_PLLMULL11 +#define RCC_PLL_MUL12 RCC_CFGR_PLLMULL12 +#define RCC_PLL_MUL13 RCC_CFGR_PLLMULL13 +#define RCC_PLL_MUL14 RCC_CFGR_PLLMULL14 +#define RCC_PLL_MUL15 RCC_CFGR_PLLMULL15 +#define RCC_PLL_MUL16 RCC_CFGR_PLLMULL16 +#endif /* STM32F105xC || STM32F107xC */ + +/** + * @} + */ + +/** @defgroup RCCEx_MCO1_Clock_Source MCO1 Clock Source + * @{ + */ +#define RCC_MCO1SOURCE_NOCLOCK ((uint32_t)RCC_CFGR_MCO_NOCLOCK) +#define RCC_MCO1SOURCE_SYSCLK ((uint32_t)RCC_CFGR_MCO_SYSCLK) +#define RCC_MCO1SOURCE_HSI ((uint32_t)RCC_CFGR_MCO_HSI) +#define RCC_MCO1SOURCE_HSE ((uint32_t)RCC_CFGR_MCO_HSE) +#define RCC_MCO1SOURCE_PLLCLK ((uint32_t)RCC_CFGR_MCO_PLLCLK_DIV2) +#if defined(STM32F105xC) || defined(STM32F107xC) +#define RCC_MCO1SOURCE_PLL2CLK ((uint32_t)RCC_CFGR_MCO_PLL2CLK) +#define RCC_MCO1SOURCE_PLL3CLK_DIV2 ((uint32_t)RCC_CFGR_MCO_PLL3CLK_DIV2) +#define RCC_MCO1SOURCE_EXT_HSE ((uint32_t)RCC_CFGR_MCO_EXT_HSE) +#define RCC_MCO1SOURCE_PLL3CLK ((uint32_t)RCC_CFGR_MCO_PLL3CLK) +#endif /* STM32F105xC || STM32F107xC*/ +/** + * @} + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +/** @defgroup RCCEx_Interrupt RCCEx Interrupt + * @{ + */ +#define RCC_IT_PLL2RDY ((uint8_t)RCC_CIR_PLL2RDYF) +#define RCC_IT_PLLI2SRDY ((uint8_t)RCC_CIR_PLL3RDYF) +/** + * @} + */ + +/** @defgroup RCCEx_Flag RCCEx Flag + * Elements values convention: 0XXYYYYYb + * - YYYYY : Flag position in the register + * - XX : Register index + * - 01: CR register + * @{ + */ +/* Flags in the CR register */ +#define RCC_FLAG_PLL2RDY ((uint8_t)((CR_REG_INDEX << 5U) | RCC_CR_PLL2RDY_Pos)) +#define RCC_FLAG_PLLI2SRDY ((uint8_t)((CR_REG_INDEX << 5U) | RCC_CR_PLL3RDY_Pos)) +/** + * @} + */ +#endif /* STM32F105xC || STM32F107xC*/ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup RCCEx_Exported_Macros RCCEx Exported Macros + * @{ + */ + +/** @defgroup RCCEx_Peripheral_Clock_Enable_Disable Peripheral Clock Enable Disable + * @brief Enable or disable the AHB1 peripheral clock. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#if defined(STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG)\ + || defined(STM32F103xG) || defined(STM32F105xC) || defined (STM32F107xC)\ + || defined (STM32F100xE) +#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_DMA2_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_DMA2EN)) +#endif /* STM32F101xE || STM32F103xE || STM32F101xG || STM32F103xG || STM32F105xC || STM32F107xC || STM32F100xE */ + +#if defined(STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG)\ + || defined(STM32F103xG) || defined (STM32F100xE) +#define __HAL_RCC_FSMC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_FSMCEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_FSMCEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_FSMC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_FSMCEN)) +#endif /* STM32F101xE || STM32F103xE || STM32F101xG || STM32F103xG || STM32F100xE */ + +#if defined(STM32F103xE) || defined(STM32F103xG) +#define __HAL_RCC_SDIO_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_SDIOEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_SDIOEN);\ + UNUSED(tmpreg); \ + } while(0U) + + +#define __HAL_RCC_SDIO_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_SDIOEN)) +#endif /* STM32F103xE || STM32F103xG */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +#define __HAL_RCC_USB_OTG_FS_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_OTGFSEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_OTGFSEN);\ + UNUSED(tmpreg); \ + } while(0U) + + +#define __HAL_RCC_USB_OTG_FS_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_OTGFSEN)) +#endif /* STM32F105xC || STM32F107xC*/ + +#if defined(STM32F107xC) +#define __HAL_RCC_ETHMAC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_ETHMACEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_ETHMACEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_ETHMACTX_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_ETHMACTXEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_ETHMACTXEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_ETHMACRX_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_ETHMACRXEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_ETHMACRXEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_ETHMAC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_ETHMACEN)) +#define __HAL_RCC_ETHMACTX_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_ETHMACTXEN)) +#define __HAL_RCC_ETHMACRX_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_ETHMACRXEN)) + +/** + * @brief Enable ETHERNET clock. + */ +#define __HAL_RCC_ETH_CLK_ENABLE() do { \ + __HAL_RCC_ETHMAC_CLK_ENABLE(); \ + __HAL_RCC_ETHMACTX_CLK_ENABLE(); \ + __HAL_RCC_ETHMACRX_CLK_ENABLE(); \ + } while(0U) +/** + * @brief Disable ETHERNET clock. + */ +#define __HAL_RCC_ETH_CLK_DISABLE() do { \ + __HAL_RCC_ETHMACTX_CLK_DISABLE(); \ + __HAL_RCC_ETHMACRX_CLK_DISABLE(); \ + __HAL_RCC_ETHMAC_CLK_DISABLE(); \ + } while(0U) + +#endif /* STM32F107xC*/ + +/** + * @} + */ + +/** @defgroup RCCEx_AHB1_Peripheral_Clock_Enable_Disable_Status AHB1 Peripheral Clock Enable Disable Status + * @brief Get the enable or disable status of the AHB1 peripheral clock. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#if defined(STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG)\ + || defined(STM32F103xG) || defined(STM32F105xC) || defined (STM32F107xC)\ + || defined (STM32F100xE) +#define __HAL_RCC_DMA2_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA2EN)) != RESET) +#define __HAL_RCC_DMA2_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA2EN)) == RESET) +#endif /* STM32F101xE || STM32F103xE || STM32F101xG || STM32F103xG || STM32F105xC || STM32F107xC || STM32F100xE */ +#if defined(STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG)\ + || defined(STM32F103xG) || defined (STM32F100xE) +#define __HAL_RCC_FSMC_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_FSMCEN)) != RESET) +#define __HAL_RCC_FSMC_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_FSMCEN)) == RESET) +#endif /* STM32F101xE || STM32F103xE || STM32F101xG || STM32F103xG || STM32F100xE */ +#if defined(STM32F103xE) || defined(STM32F103xG) +#define __HAL_RCC_SDIO_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_SDIOEN)) != RESET) +#define __HAL_RCC_SDIO_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_SDIOEN)) == RESET) +#endif /* STM32F103xE || STM32F103xG */ +#if defined(STM32F105xC) || defined(STM32F107xC) +#define __HAL_RCC_USB_OTG_FS_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_OTGFSEN)) != RESET) +#define __HAL_RCC_USB_OTG_FS_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_OTGFSEN)) == RESET) +#endif /* STM32F105xC || STM32F107xC*/ +#if defined(STM32F107xC) +#define __HAL_RCC_ETHMAC_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_ETHMACEN)) != RESET) +#define __HAL_RCC_ETHMAC_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_ETHMACEN)) == RESET) +#define __HAL_RCC_ETHMACTX_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_ETHMACTXEN)) != RESET) +#define __HAL_RCC_ETHMACTX_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_ETHMACTXEN)) == RESET) +#define __HAL_RCC_ETHMACRX_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_ETHMACRXEN)) != RESET) +#define __HAL_RCC_ETHMACRX_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_ETHMACRXEN)) == RESET) +#endif /* STM32F107xC*/ + +/** + * @} + */ + +/** @defgroup RCCEx_APB1_Clock_Enable_Disable 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(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE)\ + || defined(STM32F103xG) || defined(STM32F105xC) ||defined(STM32F107xC) +#define __HAL_RCC_CAN1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_CAN1EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_CAN1EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_CAN1_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_CAN1EN)) +#endif /* STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ + +#if defined(STM32F100xB) || defined(STM32F100xE) || defined(STM32F101xB)\ + || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F102xB)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG)\ + || defined(STM32F105xC) || defined(STM32F107xC) +#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_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_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_TIM4_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM4EN)) +#define __HAL_RCC_SPI2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI2EN)) +#define __HAL_RCC_USART3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USART3EN)) +#define __HAL_RCC_I2C2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_I2C2EN)) +#endif /* STM32F100xB || STM32F101xB || STM32F101xE || (...) || STM32F105xC || STM32F107xC */ + +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) +#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 /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG */ + +#if defined(STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG)\ + || defined(STM32F103xG) || defined(STM32F105xC) || defined(STM32F107xC) +#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_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_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_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_DAC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_DACEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_DACEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_TIM5_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM5EN)) +#define __HAL_RCC_TIM6_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM6EN)) +#define __HAL_RCC_TIM7_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM7EN)) +#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_DAC_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_DACEN)) +#endif /* STM32F101xE || STM32F103xE || STM32F101xG || (...) || STM32F105xC || STM32F107xC */ + +#if defined(STM32F100xB) || defined (STM32F100xE) +#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_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_DAC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_DACEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_DACEN);\ + 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_TIM6_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM6EN)) +#define __HAL_RCC_TIM7_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM7EN)) +#define __HAL_RCC_DAC_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_DACEN)) +#define __HAL_RCC_CEC_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_CECEN)) +#endif /* STM32F100xB || STM32F100xE */ + +#ifdef STM32F100xE +#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_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_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_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)) +#endif /* STM32F100xE */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +#define __HAL_RCC_CAN2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_CAN2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_CAN2EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_CAN2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_CAN2EN)) +#endif /* STM32F105xC || STM32F107xC */ + +#if defined(STM32F101xG) || defined(STM32F103xG) +#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_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)) +#endif /* STM32F101xG || STM32F103xG*/ + +/** + * @} + */ + +/** @defgroup RCCEx_APB1_Peripheral_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. + * @{ + */ + +#if defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE)\ + || defined(STM32F103xG) || defined(STM32F105xC) ||defined(STM32F107xC) +#define __HAL_RCC_CAN1_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_CAN1EN)) != RESET) +#define __HAL_RCC_CAN1_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_CAN1EN)) == RESET) +#endif /* STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ +#if defined(STM32F100xB) || defined(STM32F100xE) || defined(STM32F101xB)\ + || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F102xB)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG)\ + || defined(STM32F105xC) || defined(STM32F107xC) +#define __HAL_RCC_TIM4_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM4EN)) != RESET) +#define __HAL_RCC_TIM4_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM4EN)) == RESET) +#define __HAL_RCC_SPI2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI2EN)) != RESET) +#define __HAL_RCC_SPI2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI2EN)) == RESET) +#define __HAL_RCC_USART3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART3EN)) != RESET) +#define __HAL_RCC_USART3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART3EN)) == RESET) +#define __HAL_RCC_I2C2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C2EN)) != RESET) +#define __HAL_RCC_I2C2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C2EN)) == RESET) +#endif /* STM32F100xB || STM32F101xB || STM32F101xE || (...) || STM32F105xC || STM32F107xC */ +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) +#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 /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG */ +#if defined(STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG)\ + || defined(STM32F103xG) || defined(STM32F105xC) || defined(STM32F107xC) +#define __HAL_RCC_TIM5_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM5EN)) != RESET) +#define __HAL_RCC_TIM5_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM5EN)) == RESET) +#define __HAL_RCC_TIM6_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM6EN)) != RESET) +#define __HAL_RCC_TIM6_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM6EN)) == RESET) +#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) +#define __HAL_RCC_SPI3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) != RESET) +#define __HAL_RCC_SPI3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) == RESET) +#define __HAL_RCC_UART4_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART4EN)) != RESET) +#define __HAL_RCC_UART4_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART4EN)) == RESET) +#define __HAL_RCC_UART5_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART5EN)) != RESET) +#define __HAL_RCC_UART5_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART5EN)) == RESET) +#define __HAL_RCC_DAC_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DACEN)) != RESET) +#define __HAL_RCC_DAC_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DACEN)) == RESET) +#endif /* STM32F101xE || STM32F103xE || STM32F101xG || (...) || STM32F105xC || STM32F107xC */ +#if defined(STM32F100xB) || defined (STM32F100xE) +#define __HAL_RCC_TIM6_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM6EN)) != RESET) +#define __HAL_RCC_TIM6_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM6EN)) == RESET) +#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) +#define __HAL_RCC_DAC_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DACEN)) != RESET) +#define __HAL_RCC_DAC_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DACEN)) == RESET) +#define __HAL_RCC_CEC_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_CECEN)) != RESET) +#define __HAL_RCC_CEC_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_CECEN)) == RESET) +#endif /* STM32F100xB || STM32F100xE */ +#ifdef STM32F100xE +#define __HAL_RCC_TIM5_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM5EN)) != RESET) +#define __HAL_RCC_TIM5_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM5EN)) == RESET) +#define __HAL_RCC_TIM12_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM12EN)) != RESET) +#define __HAL_RCC_TIM12_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM12EN)) == RESET) +#define __HAL_RCC_TIM13_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM13EN)) != RESET) +#define __HAL_RCC_TIM13_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM13EN)) == RESET) +#define __HAL_RCC_TIM14_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM14EN)) != RESET) +#define __HAL_RCC_TIM14_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM14EN)) == RESET) +#define __HAL_RCC_SPI3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) != RESET) +#define __HAL_RCC_SPI3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) == RESET) +#define __HAL_RCC_UART4_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART4EN)) != RESET) +#define __HAL_RCC_UART4_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART4EN)) == RESET) +#define __HAL_RCC_UART5_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART5EN)) != RESET) +#define __HAL_RCC_UART5_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART5EN)) == RESET) +#define __HAL_RCC_CAN2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_CAN2EN)) != RESET) +#define __HAL_RCC_CAN2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_CAN2EN)) == RESET) +#endif /* STM32F100xE */ +#if defined(STM32F105xC) || defined(STM32F107xC) +#define __HAL_RCC_TIM12_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM12EN)) != RESET) +#define __HAL_RCC_TIM12_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM12EN)) == RESET) +#endif /* STM32F105xC || STM32F107xC */ +#if defined(STM32F101xG) || defined(STM32F103xG) +#define __HAL_RCC_TIM13_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM13EN)) != RESET) +#define __HAL_RCC_TIM13_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM13EN)) == RESET) +#define __HAL_RCC_TIM14_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM14EN)) != RESET) +#define __HAL_RCC_TIM14_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM14EN)) == RESET) +#endif /* STM32F101xG || STM32F103xG*/ + +/** + * @} + */ + +/** @defgroup RCCEx_APB2_Clock_Enable_Disable 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(STM32F101xG) || defined(STM32F103x6) || defined(STM32F103xB)\ + || defined(STM32F105xC) || defined(STM32F107xC) || defined(STM32F103xE)\ + || defined(STM32F103xG) +#define __HAL_RCC_ADC2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_ADC2EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_ADC2EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_ADC2_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_ADC2EN)) +#endif /* STM32F101xG || STM32F103x6 || STM32F103xB || STM32F105xC || STM32F107xC || STM32F103xE || STM32F103xG */ + +#if defined(STM32F100xB) || defined(STM32F100xE) +#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_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)) +#endif /* STM32F100xB || STM32F100xE */ + +#if defined(STM32F100xE) || defined(STM32F101xB) || defined(STM32F101xE)\ + || defined(STM32F101xG) || defined(STM32F100xB) || defined(STM32F103xB)\ + || defined(STM32F103xE) || defined(STM32F103xG) || defined(STM32F105xC)\ + || defined(STM32F107xC) +#define __HAL_RCC_GPIOE_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPEEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPEEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_GPIOE_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_IOPEEN)) +#endif /* STM32F101x6 || STM32F101xB || STM32F101xE || (...) || STM32F105xC || STM32F107xC */ + +#if defined(STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG)\ + || defined(STM32F103xG) +#define __HAL_RCC_GPIOF_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPFEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPFEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_GPIOG_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPGEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPGEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_GPIOF_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_IOPFEN)) +#define __HAL_RCC_GPIOG_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_IOPGEN)) +#endif /* STM32F101xE || STM32F103xE || STM32F101xG || STM32F103xG*/ + +#if defined(STM32F103xE) || defined(STM32F103xG) +#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_ADC3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_ADC3EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_ADC3EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_TIM8_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM8EN)) +#define __HAL_RCC_ADC3_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_ADC3EN)) +#endif /* STM32F103xE || STM32F103xG */ + +#if defined(STM32F100xE) +#define __HAL_RCC_GPIOF_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPFEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPFEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_GPIOG_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPGEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPGEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_GPIOF_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_IOPFEN)) +#define __HAL_RCC_GPIOG_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_IOPGEN)) +#endif /* STM32F100xE */ + +#if defined(STM32F101xG) || defined(STM32F103xG) +#define __HAL_RCC_TIM9_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM9EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM9EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_TIM10_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM10EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM10EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_TIM11_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM11EN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM11EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_TIM9_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM9EN)) +#define __HAL_RCC_TIM10_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM10EN)) +#define __HAL_RCC_TIM11_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM11EN)) +#endif /* STM32F101xG || STM32F103xG */ + +/** + * @} + */ + +/** @defgroup RCCEx_APB2_Peripheral_Clock_Enable_Disable_Status 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(STM32F101xG) || defined(STM32F103x6) || defined(STM32F103xB)\ + || defined(STM32F105xC) || defined(STM32F107xC) || defined(STM32F103xE)\ + || defined(STM32F103xG) +#define __HAL_RCC_ADC2_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_ADC2EN)) != RESET) +#define __HAL_RCC_ADC2_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_ADC2EN)) == RESET) +#endif /* STM32F101xG || STM32F103x6 || STM32F103xB || STM32F105xC || STM32F107xC || STM32F103xE || STM32F103xG */ +#if defined(STM32F100xB) || defined(STM32F100xE) +#define __HAL_RCC_TIM15_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM15EN)) != RESET) +#define __HAL_RCC_TIM15_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM15EN)) == RESET) +#define __HAL_RCC_TIM16_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM16EN)) != RESET) +#define __HAL_RCC_TIM16_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM16EN)) == RESET) +#define __HAL_RCC_TIM17_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM17EN)) != RESET) +#define __HAL_RCC_TIM17_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM17EN)) == RESET) +#endif /* STM32F100xB || STM32F100xE */ +#if defined(STM32F100xE) || defined(STM32F101xB) || defined(STM32F101xE)\ + || defined(STM32F101xG) || defined(STM32F100xB) || defined(STM32F103xB)\ + || defined(STM32F103xE) || defined(STM32F103xG) || defined(STM32F105xC)\ + || defined(STM32F107xC) +#define __HAL_RCC_GPIOE_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPEEN)) != RESET) +#define __HAL_RCC_GPIOE_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPEEN)) == RESET) +#endif /* STM32F101x6 || STM32F101xB || STM32F101xE || (...) || STM32F105xC || STM32F107xC */ +#if defined(STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG)\ + || defined(STM32F103xG) +#define __HAL_RCC_GPIOF_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPFEN)) != RESET) +#define __HAL_RCC_GPIOF_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPFEN)) == RESET) +#define __HAL_RCC_GPIOG_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPGEN)) != RESET) +#define __HAL_RCC_GPIOG_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPGEN)) == RESET) +#endif /* STM32F101xE || STM32F103xE || STM32F101xG || STM32F103xG*/ +#if defined(STM32F103xE) || defined(STM32F103xG) +#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) +#define __HAL_RCC_ADC3_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_ADC3EN)) != RESET) +#define __HAL_RCC_ADC3_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_ADC3EN)) == RESET) +#endif /* STM32F103xE || STM32F103xG */ +#if defined(STM32F100xE) +#define __HAL_RCC_GPIOF_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPFEN)) != RESET) +#define __HAL_RCC_GPIOF_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPFEN)) == RESET) +#define __HAL_RCC_GPIOG_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPGEN)) != RESET) +#define __HAL_RCC_GPIOG_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_IOPGEN)) == RESET) +#endif /* STM32F100xE */ +#if defined(STM32F101xG) || defined(STM32F103xG) +#define __HAL_RCC_TIM9_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM9EN)) != RESET) +#define __HAL_RCC_TIM9_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM9EN)) == RESET) +#define __HAL_RCC_TIM10_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM10EN)) != RESET) +#define __HAL_RCC_TIM10_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM10EN)) == RESET) +#define __HAL_RCC_TIM11_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM11EN)) != RESET) +#define __HAL_RCC_TIM11_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM11EN)) == RESET) +#endif /* STM32F101xG || STM32F103xG */ + +/** + * @} + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +/** @defgroup RCCEx_Peripheral_Clock_Force_Release Peripheral Clock Force Release + * @brief Force or release AHB peripheral reset. + * @{ + */ +#define __HAL_RCC_AHB_FORCE_RESET() (RCC->AHBRSTR = 0xFFFFFFFFU) +#define __HAL_RCC_USB_OTG_FS_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_OTGFSRST)) +#if defined(STM32F107xC) +#define __HAL_RCC_ETHMAC_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_ETHMACRST)) +#endif /* STM32F107xC */ + +#define __HAL_RCC_AHB_RELEASE_RESET() (RCC->AHBRSTR = 0x00) +#define __HAL_RCC_USB_OTG_FS_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_OTGFSRST)) +#if defined(STM32F107xC) +#define __HAL_RCC_ETHMAC_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_ETHMACRST)) +#endif /* STM32F107xC */ + +/** + * @} + */ +#endif /* STM32F105xC || STM32F107xC */ + +/** @defgroup RCCEx_APB1_Force_Release_Reset APB1 Force Release Reset + * @brief Force or release APB1 peripheral reset. + * @{ + */ + +#if defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE)\ + || defined(STM32F103xG) || defined(STM32F105xC) ||defined(STM32F107xC) +#define __HAL_RCC_CAN1_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_CAN1RST)) + +#define __HAL_RCC_CAN1_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_CAN1RST)) +#endif /* STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ + +#if defined(STM32F100xB) || defined(STM32F100xE) || defined(STM32F101xB)\ + || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F102xB)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG)\ + || defined(STM32F105xC) || defined(STM32F107xC) +#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_USART3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USART3RST)) +#define __HAL_RCC_I2C2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C2RST)) + +#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_USART3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USART3RST)) +#define __HAL_RCC_I2C2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_I2C2RST)) +#endif /* STM32F100xB || STM32F101xB || STM32F101xE || (...) || STM32F105xC || STM32F107xC */ + +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) +#define __HAL_RCC_USB_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USBRST)) +#define __HAL_RCC_USB_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USBRST)) +#endif /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG */ + +#if defined(STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG)\ + || defined(STM32F103xG) || defined(STM32F105xC) || defined(STM32F107xC) +#define __HAL_RCC_TIM5_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM5RST)) +#define __HAL_RCC_TIM6_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM6RST)) +#define __HAL_RCC_TIM7_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM7RST)) +#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_DAC_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_DACRST)) + +#define __HAL_RCC_TIM5_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM5RST)) +#define __HAL_RCC_TIM6_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM6RST)) +#define __HAL_RCC_TIM7_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM7RST)) +#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_DAC_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_DACRST)) +#endif /* STM32F101xE || STM32F103xE || STM32F101xG || (...) || STM32F105xC || STM32F107xC */ + +#if defined(STM32F100xB) || defined (STM32F100xE) +#define __HAL_RCC_TIM6_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM6RST)) +#define __HAL_RCC_TIM7_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM7RST)) +#define __HAL_RCC_DAC_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_DACRST)) +#define __HAL_RCC_CEC_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_CECRST)) + +#define __HAL_RCC_TIM6_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM6RST)) +#define __HAL_RCC_TIM7_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM7RST)) +#define __HAL_RCC_DAC_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_DACRST)) +#define __HAL_RCC_CEC_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_CECRST)) +#endif /* STM32F100xB || STM32F100xE */ + +#if defined (STM32F100xE) +#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_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_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_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)) +#endif /* STM32F100xE */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +#define __HAL_RCC_CAN2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_CAN2RST)) + +#define __HAL_RCC_CAN2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_CAN2RST)) +#endif /* STM32F105xC || STM32F107xC */ + +#if defined(STM32F101xG) || defined(STM32F103xG) +#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_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)) +#endif /* STM32F101xG || STM32F103xG */ + +/** + * @} + */ + +/** @defgroup RCCEx_APB2_Force_Release_Reset APB2 Force Release Reset + * @brief Force or release APB2 peripheral reset. + * @{ + */ + +#if defined(STM32F101xG) || defined(STM32F103x6) || defined(STM32F103xB)\ + || defined(STM32F105xC) || defined(STM32F107xC) || defined(STM32F103xE)\ + || defined(STM32F103xG) +#define __HAL_RCC_ADC2_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_ADC2RST)) + +#define __HAL_RCC_ADC2_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_ADC2RST)) +#endif /* STM32F101xG || STM32F103x6 || STM32F103xB || STM32F105xC || STM32F107xC || STM32F103xE || STM32F103xG */ + +#if defined(STM32F100xB) || defined(STM32F100xE) +#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_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)) +#endif /* STM32F100xB || STM32F100xE */ + +#if defined(STM32F100xE) || defined(STM32F101xB) || defined(STM32F101xE)\ + || defined(STM32F101xG) || defined(STM32F100xB) || defined(STM32F103xB)\ + || defined(STM32F103xE) || defined(STM32F103xG) || defined(STM32F105xC)\ + || defined(STM32F107xC) +#define __HAL_RCC_GPIOE_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPERST)) + +#define __HAL_RCC_GPIOE_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_IOPERST)) +#endif /* STM32F101x6 || STM32F101xB || STM32F101xE || (...) || STM32F105xC || STM32F107xC */ + +#if defined(STM32F101xE) || defined(STM32F103xE) || defined(STM32F101xG)\ + || defined(STM32F103xG) +#define __HAL_RCC_GPIOF_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPFRST)) +#define __HAL_RCC_GPIOG_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPGRST)) + +#define __HAL_RCC_GPIOF_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_IOPFRST)) +#define __HAL_RCC_GPIOG_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_IOPGRST)) +#endif /* STM32F101xE || STM32F103xE || STM32F101xG || STM32F103xG*/ + +#if defined(STM32F103xE) || defined(STM32F103xG) +#define __HAL_RCC_TIM8_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM8RST)) +#define __HAL_RCC_ADC3_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_ADC3RST)) + +#define __HAL_RCC_TIM8_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM8RST)) +#define __HAL_RCC_ADC3_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_ADC3RST)) +#endif /* STM32F103xE || STM32F103xG */ + +#if defined(STM32F100xE) +#define __HAL_RCC_GPIOF_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPFRST)) +#define __HAL_RCC_GPIOG_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPGRST)) + +#define __HAL_RCC_GPIOF_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_IOPFRST)) +#define __HAL_RCC_GPIOG_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_IOPGRST)) +#endif /* STM32F100xE */ + +#if defined(STM32F101xG) || defined(STM32F103xG) +#define __HAL_RCC_TIM9_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM9RST)) +#define __HAL_RCC_TIM10_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM10RST)) +#define __HAL_RCC_TIM11_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM11RST)) + +#define __HAL_RCC_TIM9_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM9RST)) +#define __HAL_RCC_TIM10_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM10RST)) +#define __HAL_RCC_TIM11_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM11RST)) +#endif /* STM32F101xG || STM32F103xG*/ + +/** + * @} + */ + +/** @defgroup RCCEx_HSE_Configuration HSE Configuration + * @{ + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) || defined(STM32F100xB)\ + || defined(STM32F100xE) +/** + * @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_PREDIV1, (uint32_t)(__HSE_PREDIV_VALUE__)) +#else +/** + * @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_DIV2. + */ +#define __HAL_RCC_HSE_PREDIV_CONFIG(__HSE_PREDIV_VALUE__) \ + MODIFY_REG(RCC->CFGR,RCC_CFGR_PLLXTPRE, (uint32_t)(__HSE_PREDIV_VALUE__)) + +#endif /* STM32F105xC || STM32F107xC */ + +#if defined(STM32F105xC) || defined(STM32F107xC) || defined(STM32F100xB)\ + || defined(STM32F100xE) +/** + * @brief Macro to get prediv1 factor for PLL. + */ +#define __HAL_RCC_HSE_GET_PREDIV() READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1) + +#else +/** + * @brief Macro to get prediv1 factor for PLL. + */ +#define __HAL_RCC_HSE_GET_PREDIV() READ_BIT(RCC->CFGR, RCC_CFGR_PLLXTPRE) + +#endif /* STM32F105xC || STM32F107xC || STM32F100xB || STM32F100xE */ + +/** + * @} + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +/** @defgroup RCCEx_PLLI2S_Configuration PLLI2S Configuration + * @{ + */ + +/** @brief Macros to enable the main PLLI2S. + * @note After enabling the main PLLI2S, the application software should wait on + * PLLI2SRDY flag to be set indicating that PLLI2S clock is stable and can + * be used as system clock source. + * @note The main PLLI2S is disabled by hardware when entering STOP and STANDBY modes. + */ +#define __HAL_RCC_PLLI2S_ENABLE() (*(__IO uint32_t *) RCC_CR_PLLI2SON_BB = ENABLE) + +/** @brief Macros to disable the main PLLI2S. + * @note The main PLLI2S is disabled by hardware when entering STOP and STANDBY modes. + */ +#define __HAL_RCC_PLLI2S_DISABLE() (*(__IO uint32_t *) RCC_CR_PLLI2SON_BB = DISABLE) + +/** @brief macros to configure the main PLLI2S multiplication factor. + * @note This function must be used only when the main PLLI2S is disabled. + * + * @param __PLLI2SMUL__ specifies the multiplication factor for PLLI2S VCO output clock + * This parameter can be one of the following values: + * @arg @ref RCC_PLLI2S_MUL8 PLLI2SVCO = PLLI2S clock entry x 8 + * @arg @ref RCC_PLLI2S_MUL9 PLLI2SVCO = PLLI2S clock entry x 9 + * @arg @ref RCC_PLLI2S_MUL10 PLLI2SVCO = PLLI2S clock entry x 10 + * @arg @ref RCC_PLLI2S_MUL11 PLLI2SVCO = PLLI2S clock entry x 11 + * @arg @ref RCC_PLLI2S_MUL12 PLLI2SVCO = PLLI2S clock entry x 12 + * @arg @ref RCC_PLLI2S_MUL13 PLLI2SVCO = PLLI2S clock entry x 13 + * @arg @ref RCC_PLLI2S_MUL14 PLLI2SVCO = PLLI2S clock entry x 14 + * @arg @ref RCC_PLLI2S_MUL16 PLLI2SVCO = PLLI2S clock entry x 16 + * @arg @ref RCC_PLLI2S_MUL20 PLLI2SVCO = PLLI2S clock entry x 20 + * + */ +#define __HAL_RCC_PLLI2S_CONFIG(__PLLI2SMUL__)\ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PLL3MUL,(__PLLI2SMUL__)) + +/** + * @} + */ + +#endif /* STM32F105xC || STM32F107xC */ + +/** @defgroup RCCEx_Peripheral_Configuration Peripheral Configuration + * @brief Macros to configure clock source of different peripherals. + * @{ + */ + +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) +/** @brief Macro to configure the USB clock. + * @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 (USBCLK). + * @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 /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG */ + +#if defined(STM32F105xC) || defined(STM32F107xC) + +/** @brief Macro to configure the USB OTSclock. + * @param __USBCLKSOURCE__ specifies the USB clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_USBCLKSOURCE_PLL_DIV2 PLL clock divided by 2 selected as USB OTG FS clock + * @arg @ref RCC_USBCLKSOURCE_PLL_DIV3 PLL clock divided by 3 selected as USB OTG FS clock + */ +#define __HAL_RCC_USB_CONFIG(__USBCLKSOURCE__) \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_OTGFSPRE, (uint32_t)(__USBCLKSOURCE__)) + +/** @brief Macro to get the USB clock (USBCLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_USBCLKSOURCE_PLL_DIV2 PLL clock divided by 2 selected as USB OTG FS clock + * @arg @ref RCC_USBCLKSOURCE_PLL_DIV3 PLL clock divided by 3 selected as USB OTG FS clock + */ +#define __HAL_RCC_GET_USB_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_OTGFSPRE))) + +#endif /* STM32F105xC || STM32F107xC */ + +/** @brief Macro to configure the ADCx clock (x=1 to 3 depending on devices). + * @param __ADCCLKSOURCE__ specifies the ADC clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_ADCPCLK2_DIV2 PCLK2 clock divided by 2 selected as ADC clock + * @arg @ref RCC_ADCPCLK2_DIV4 PCLK2 clock divided by 4 selected as ADC clock + * @arg @ref RCC_ADCPCLK2_DIV6 PCLK2 clock divided by 6 selected as ADC clock + * @arg @ref RCC_ADCPCLK2_DIV8 PCLK2 clock divided by 8 selected as ADC clock + */ +#define __HAL_RCC_ADC_CONFIG(__ADCCLKSOURCE__) \ + MODIFY_REG(RCC->CFGR, RCC_CFGR_ADCPRE, (uint32_t)(__ADCCLKSOURCE__)) + +/** @brief Macro to get the ADC clock (ADCxCLK, x=1 to 3 depending on devices). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_ADCPCLK2_DIV2 PCLK2 clock divided by 2 selected as ADC clock + * @arg @ref RCC_ADCPCLK2_DIV4 PCLK2 clock divided by 4 selected as ADC clock + * @arg @ref RCC_ADCPCLK2_DIV6 PCLK2 clock divided by 6 selected as ADC clock + * @arg @ref RCC_ADCPCLK2_DIV8 PCLK2 clock divided by 8 selected as ADC clock + */ +#define __HAL_RCC_GET_ADC_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_ADCPRE))) + +/** + * @} + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) + +/** @addtogroup RCCEx_HSE_Configuration + * @{ + */ + +/** + * @brief Macro to configure the PLL2 & PLLI2S Predivision factor. + * @note Predivision factor can not be changed if PLL2 is used indirectly as system clock + * In this case, you have to select another source of the system clock, disable the PLL2 and PLLI2S and + * then change the PREDIV2 factor. + * @param __HSE_PREDIV2_VALUE__ specifies the PREDIV2 value applied to PLL2 & PLLI2S. + * This parameter must be a number between RCC_HSE_PREDIV2_DIV1 and RCC_HSE_PREDIV2_DIV16. + */ +#define __HAL_RCC_HSE_PREDIV2_CONFIG(__HSE_PREDIV2_VALUE__) \ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PREDIV2, (uint32_t)(__HSE_PREDIV2_VALUE__)) + +/** + * @brief Macro to get prediv2 factor for PLL2 & PLL3. + */ +#define __HAL_RCC_HSE_GET_PREDIV2() READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV2) + +/** + * @} + */ + +/** @addtogroup RCCEx_PLLI2S_Configuration + * @{ + */ + +/** @brief Macros to enable the main PLL2. + * @note After enabling the main PLL2, the application software should wait on + * PLL2RDY flag to be set indicating that PLL2 clock is stable and can + * be used as system clock source. + * @note The main PLL2 is disabled by hardware when entering STOP and STANDBY modes. + */ +#define __HAL_RCC_PLL2_ENABLE() (*(__IO uint32_t *) RCC_CR_PLL2ON_BB = ENABLE) + +/** @brief Macros to disable the main PLL2. + * @note The main PLL2 can not be disabled if it is used indirectly as system clock source + * @note The main PLL2 is disabled by hardware when entering STOP and STANDBY modes. + */ +#define __HAL_RCC_PLL2_DISABLE() (*(__IO uint32_t *) RCC_CR_PLL2ON_BB = DISABLE) + +/** @brief macros to configure the main PLL2 multiplication factor. + * @note This function must be used only when the main PLL2 is disabled. + * + * @param __PLL2MUL__ specifies the multiplication factor for PLL2 VCO output clock + * This parameter can be one of the following values: + * @arg @ref RCC_PLL2_MUL8 PLL2VCO = PLL2 clock entry x 8 + * @arg @ref RCC_PLL2_MUL9 PLL2VCO = PLL2 clock entry x 9 + * @arg @ref RCC_PLL2_MUL10 PLL2VCO = PLL2 clock entry x 10 + * @arg @ref RCC_PLL2_MUL11 PLL2VCO = PLL2 clock entry x 11 + * @arg @ref RCC_PLL2_MUL12 PLL2VCO = PLL2 clock entry x 12 + * @arg @ref RCC_PLL2_MUL13 PLL2VCO = PLL2 clock entry x 13 + * @arg @ref RCC_PLL2_MUL14 PLL2VCO = PLL2 clock entry x 14 + * @arg @ref RCC_PLL2_MUL16 PLL2VCO = PLL2 clock entry x 16 + * @arg @ref RCC_PLL2_MUL20 PLL2VCO = PLL2 clock entry x 20 + * + */ +#define __HAL_RCC_PLL2_CONFIG(__PLL2MUL__)\ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PLL2MUL,(__PLL2MUL__)) + +/** + * @} + */ + +/** @defgroup RCCEx_I2S_Configuration I2S Configuration + * @brief Macros to configure clock source of I2S peripherals. + * @{ + */ + +/** @brief Macro to configure the I2S2 clock. + * @param __I2S2CLKSOURCE__ specifies the I2S2 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2S2CLKSOURCE_SYSCLK system clock selected as I2S3 clock entry + * @arg @ref RCC_I2S2CLKSOURCE_PLLI2S_VCO PLLI2S VCO clock selected as I2S3 clock entry + */ +#define __HAL_RCC_I2S2_CONFIG(__I2S2CLKSOURCE__) \ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_I2S2SRC, (uint32_t)(__I2S2CLKSOURCE__)) + +/** @brief Macro to get the I2S2 clock (I2S2CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_I2S2CLKSOURCE_SYSCLK system clock selected as I2S3 clock entry + * @arg @ref RCC_I2S2CLKSOURCE_PLLI2S_VCO PLLI2S VCO clock selected as I2S3 clock entry + */ +#define __HAL_RCC_GET_I2S2_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_I2S2SRC))) + +/** @brief Macro to configure the I2S3 clock. + * @param __I2S2CLKSOURCE__ specifies the I2S3 clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_I2S3CLKSOURCE_SYSCLK system clock selected as I2S3 clock entry + * @arg @ref RCC_I2S3CLKSOURCE_PLLI2S_VCO PLLI2S VCO clock selected as I2S3 clock entry + */ +#define __HAL_RCC_I2S3_CONFIG(__I2S2CLKSOURCE__) \ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_I2S3SRC, (uint32_t)(__I2S2CLKSOURCE__)) + +/** @brief Macro to get the I2S3 clock (I2S3CLK). + * @retval The clock source can be one of the following values: + * @arg @ref RCC_I2S3CLKSOURCE_SYSCLK system clock selected as I2S3 clock entry + * @arg @ref RCC_I2S3CLKSOURCE_PLLI2S_VCO PLLI2S VCO clock selected as I2S3 clock entry + */ +#define __HAL_RCC_GET_I2S3_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_I2S3SRC))) + +/** + * @} + */ + +#endif /* STM32F105xC || STM32F107xC */ +/** + * @} + */ + +/* 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); + +/** + * @} + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +/** @addtogroup RCCEx_Exported_Functions_Group2 + * @{ + */ +HAL_StatusTypeDef HAL_RCCEx_EnablePLLI2S(RCC_PLLI2SInitTypeDef *PLLI2SInit); +HAL_StatusTypeDef HAL_RCCEx_DisablePLLI2S(void); + +/** + * @} + */ + +/** @addtogroup RCCEx_Exported_Functions_Group3 + * @{ + */ +HAL_StatusTypeDef HAL_RCCEx_EnablePLL2(RCC_PLL2InitTypeDef *PLL2Init); +HAL_StatusTypeDef HAL_RCCEx_DisablePLL2(void); + +/** + * @} + */ +#endif /* STM32F105xC || STM32F107xC */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_HAL_RCC_EX_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h new file mode 100644 index 0000000..999f62e --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h @@ -0,0 +1,2129 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_tim.h + * @author MCD Application Team + * @brief Header file of TIM HAL module. + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32F1xx_HAL_TIM_H +#define STM32F1xx_HAL_TIM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_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 + */ +typedef struct +{ + uint32_t MasterOutputTrigger; /*!< Trigger output (TRGO) selection + This parameter can be a value of @ref TIM_Master_Mode_Selection */ + uint32_t MasterSlaveMode; /*!< Master/slave mode selection + This parameter can be a value of @ref TIM_Master_Slave_Mode + @note When the Master/slave mode is enabled, the effect of + an event on the trigger input (TRGI) is delayed to allow a + perfect synchronization between the current timer and its + slaves (through TRGO). It is not mandatory in case of timer + synchronization mode. */ +} TIM_MasterConfigTypeDef; + +/** + * @brief TIM Slave configuration Structure definition + */ +typedef struct +{ + uint32_t SlaveMode; /*!< Slave mode selection + This parameter can be a value of @ref TIM_Slave_Mode */ + uint32_t InputTrigger; /*!< Input Trigger source + This parameter can be a value of @ref TIM_Trigger_Selection */ + uint32_t TriggerPolarity; /*!< Input Trigger polarity + This parameter can be a value of @ref TIM_Trigger_Polarity */ + uint32_t TriggerPrescaler; /*!< Input trigger prescaler + This parameter can be a value of @ref TIM_Trigger_Prescaler */ + uint32_t TriggerFilter; /*!< Input trigger filter + This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ + +} TIM_SlaveConfigTypeDef; + +/** + * @brief TIM Break input(s) and Dead time configuration Structure definition + * @note 2 break inputs can be configured (BKIN and BKIN2) with configurable + * filter and polarity. + */ +typedef struct +{ + uint32_t OffStateRunMode; /*!< TIM off state in run mode, This parameter can be a value of @ref TIM_OSSR_Off_State_Selection_for_Run_mode_state */ + + uint32_t OffStateIDLEMode; /*!< TIM off state in IDLE mode, This parameter can be a value of @ref TIM_OSSI_Off_State_Selection_for_Idle_mode_state */ + + uint32_t LockLevel; /*!< TIM Lock level, This parameter can be a value of @ref TIM_Lock_level */ + + uint32_t DeadTime; /*!< TIM dead Time, This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF */ + + uint32_t BreakState; /*!< TIM Break State, This parameter can be a value of @ref TIM_Break_Input_enable_disable */ + + uint32_t BreakPolarity; /*!< TIM Break input polarity, This parameter can be a value of @ref TIM_Break_Polarity */ + + uint32_t BreakFilter; /*!< Specifies the break input filter.This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */ + + uint32_t AutomaticOutput; /*!< TIM Automatic Output Enable state, This parameter can be a value of @ref TIM_AOE_Bit_Set_Reset */ + +} TIM_BreakDeadTimeConfigTypeDef; + +/** + * @brief HAL State structures definition + */ +typedef enum +{ + HAL_TIM_STATE_RESET = 0x00U, /*!< Peripheral not yet initialized or disabled */ + HAL_TIM_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */ + HAL_TIM_STATE_BUSY = 0x02U, /*!< An internal process is ongoing */ + HAL_TIM_STATE_TIMEOUT = 0x03U, /*!< Timeout state */ + HAL_TIM_STATE_ERROR = 0x04U /*!< Reception process is ongoing */ +} HAL_TIM_StateTypeDef; + +/** + * @brief TIM Channel States definition + */ +typedef enum +{ + HAL_TIM_CHANNEL_STATE_RESET = 0x00U, /*!< TIM Channel initial state */ + HAL_TIM_CHANNEL_STATE_READY = 0x01U, /*!< TIM Channel ready for use */ + HAL_TIM_CHANNEL_STATE_BUSY = 0x02U, /*!< An internal process is ongoing on the TIM channel */ +} HAL_TIM_ChannelStateTypeDef; + +/** + * @brief DMA Burst States definition + */ +typedef enum +{ + HAL_DMA_BURST_STATE_RESET = 0x00U, /*!< DMA Burst initial state */ + HAL_DMA_BURST_STATE_READY = 0x01U, /*!< DMA Burst ready for use */ + HAL_DMA_BURST_STATE_BUSY = 0x02U, /*!< Ongoing DMA Burst */ +} HAL_TIM_DMABurstStateTypeDef; + +/** + * @brief HAL Active channel structures definition + */ +typedef enum +{ + HAL_TIM_ACTIVE_CHANNEL_1 = 0x01U, /*!< The active channel is 1 */ + HAL_TIM_ACTIVE_CHANNEL_2 = 0x02U, /*!< The active channel is 2 */ + HAL_TIM_ACTIVE_CHANNEL_3 = 0x04U, /*!< The active channel is 3 */ + HAL_TIM_ACTIVE_CHANNEL_4 = 0x08U, /*!< The active channel is 4 */ + HAL_TIM_ACTIVE_CHANNEL_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[4]; /*!< 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 */ +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +} TIM_HandleTypeDef; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) +/** + * @brief HAL TIM Callback ID enumeration definition + */ +typedef enum +{ + HAL_TIM_BASE_MSPINIT_CB_ID = 0x00U /*!< TIM Base MspInit Callback ID */ + , HAL_TIM_BASE_MSPDEINIT_CB_ID = 0x01U /*!< TIM Base MspDeInit Callback ID */ + , HAL_TIM_IC_MSPINIT_CB_ID = 0x02U /*!< TIM IC MspInit Callback ID */ + , HAL_TIM_IC_MSPDEINIT_CB_ID = 0x03U /*!< TIM IC MspDeInit Callback ID */ + , HAL_TIM_OC_MSPINIT_CB_ID = 0x04U /*!< TIM OC MspInit Callback ID */ + , HAL_TIM_OC_MSPDEINIT_CB_ID = 0x05U /*!< TIM OC MspDeInit Callback ID */ + , HAL_TIM_PWM_MSPINIT_CB_ID = 0x06U /*!< TIM PWM MspInit Callback ID */ + , HAL_TIM_PWM_MSPDEINIT_CB_ID = 0x07U /*!< TIM PWM MspDeInit Callback ID */ + , HAL_TIM_ONE_PULSE_MSPINIT_CB_ID = 0x08U /*!< TIM One Pulse MspInit Callback ID */ + , HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID = 0x09U /*!< TIM One Pulse MspDeInit Callback ID */ + , HAL_TIM_ENCODER_MSPINIT_CB_ID = 0x0AU /*!< TIM Encoder MspInit Callback ID */ + , HAL_TIM_ENCODER_MSPDEINIT_CB_ID = 0x0BU /*!< TIM Encoder MspDeInit Callback ID */ + , HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID = 0x0CU /*!< TIM Hall Sensor MspDeInit Callback ID */ + , HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID = 0x0DU /*!< TIM Hall Sensor MspDeInit Callback ID */ + , HAL_TIM_PERIOD_ELAPSED_CB_ID = 0x0EU /*!< TIM Period Elapsed Callback ID */ + , HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID = 0x0FU /*!< TIM Period Elapsed half complete Callback ID */ + , HAL_TIM_TRIGGER_CB_ID = 0x10U /*!< TIM Trigger Callback ID */ + , HAL_TIM_TRIGGER_HALF_CB_ID = 0x11U /*!< TIM Trigger half complete Callback ID */ + + , HAL_TIM_IC_CAPTURE_CB_ID = 0x12U /*!< TIM Input Capture Callback ID */ + , HAL_TIM_IC_CAPTURE_HALF_CB_ID = 0x13U /*!< TIM Input Capture half complete Callback ID */ + , HAL_TIM_OC_DELAY_ELAPSED_CB_ID = 0x14U /*!< TIM Output Compare Delay Elapsed Callback ID */ + , HAL_TIM_PWM_PULSE_FINISHED_CB_ID = 0x15U /*!< TIM PWM Pulse Finished Callback ID */ + , HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID = 0x16U /*!< TIM PWM Pulse Finished half complete Callback ID */ + , HAL_TIM_ERROR_CB_ID = 0x17U /*!< TIM Error Callback ID */ + , HAL_TIM_COMMUTATION_CB_ID = 0x18U /*!< TIM Commutation Callback ID */ + , HAL_TIM_COMMUTATION_HALF_CB_ID = 0x19U /*!< TIM Commutation half complete Callback ID */ + , HAL_TIM_BREAK_CB_ID = 0x1AU /*!< TIM Break Callback ID */ +} HAL_TIM_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 */ +/** + * @} + */ + +/** @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 +/** + * @} + */ + +/** @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 */ +/** + * @} + */ + +/** @defgroup TIM_Input_Channel_Polarity TIM Input Channel polarity + * @{ + */ +#define TIM_INPUTCHANNELPOLARITY_RISING 0x00000000U /*!< Polarity for TIx source */ +#define TIM_INPUTCHANNELPOLARITY_FALLING TIM_CCER_CC1P /*!< Polarity for TIx source */ +#define TIM_INPUTCHANNELPOLARITY_BOTHEDGE (TIM_CCER_CC1P | TIM_CCER_CC1NP) /*!< Polarity for TIx source */ +/** + * @} + */ + +/** @defgroup TIM_ETR_Polarity TIM ETR Polarity + * @{ + */ +#define TIM_ETRPOLARITY_INVERTED TIM_SMCR_ETP /*!< Polarity for ETR source */ +#define TIM_ETRPOLARITY_NONINVERTED 0x00000000U /*!< Polarity for ETR source */ +/** + * @} + */ + +/** @defgroup TIM_ETR_Prescaler TIM ETR Prescaler + * @{ + */ +#define TIM_ETRPRESCALER_DIV1 0x00000000U /*!< No prescaler is used */ +#define TIM_ETRPRESCALER_DIV2 TIM_SMCR_ETPS_0 /*!< ETR input source is divided by 2 */ +#define TIM_ETRPRESCALER_DIV4 TIM_SMCR_ETPS_1 /*!< ETR input source is divided by 4 */ +#define TIM_ETRPRESCALER_DIV8 TIM_SMCR_ETPS /*!< ETR input source is divided by 8 */ +/** + * @} + */ + +/** @defgroup TIM_Counter_Mode TIM Counter Mode + * @{ + */ +#define TIM_COUNTERMODE_UP 0x00000000U /*!< Counter used as up-counter */ +#define TIM_COUNTERMODE_DOWN TIM_CR1_DIR /*!< Counter used as down-counter */ +#define TIM_COUNTERMODE_CENTERALIGNED1 TIM_CR1_CMS_0 /*!< Center-aligned mode 1 */ +#define TIM_COUNTERMODE_CENTERALIGNED2 TIM_CR1_CMS_1 /*!< Center-aligned mode 2 */ +#define TIM_COUNTERMODE_CENTERALIGNED3 TIM_CR1_CMS /*!< Center-aligned mode 3 */ +/** + * @} + */ + +/** @defgroup TIM_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_Flag_definition TIM Flag Definition + * @{ + */ +#define TIM_FLAG_UPDATE TIM_SR_UIF /*!< Update interrupt flag */ +#define TIM_FLAG_CC1 TIM_SR_CC1IF /*!< Capture/Compare 1 interrupt flag */ +#define TIM_FLAG_CC2 TIM_SR_CC2IF /*!< Capture/Compare 2 interrupt flag */ +#define TIM_FLAG_CC3 TIM_SR_CC3IF /*!< Capture/Compare 3 interrupt flag */ +#define TIM_FLAG_CC4 TIM_SR_CC4IF /*!< Capture/Compare 4 interrupt flag */ +#define TIM_FLAG_COM TIM_SR_COMIF /*!< Commutation interrupt flag */ +#define TIM_FLAG_TRIGGER TIM_SR_TIF /*!< Trigger interrupt flag */ +#define TIM_FLAG_BREAK TIM_SR_BIF /*!< Break interrupt flag */ +#define TIM_FLAG_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 */ +#define TIM_CHANNEL_ALL 0x0000003CU /*!< Global Capture/compare channel identifier */ +/** + * @} + */ + +/** @defgroup TIM_Clock_Source TIM Clock Source + * @{ + */ +#define TIM_CLOCKSOURCE_ETRMODE2 TIM_SMCR_ETPS_1 /*!< External clock source mode 2 */ +#define TIM_CLOCKSOURCE_INTERNAL TIM_SMCR_ETPS_0 /*!< Internal clock source */ +#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) */ +#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_ETRMODE1 TIM_TS_ETRF /*!< External clock source mode 1 (ETRF) */ +/** + * @} + */ + +/** @defgroup TIM_Clock_Polarity TIM Clock Polarity + * @{ + */ +#define TIM_CLOCKPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED /*!< Polarity for ETRx clock sources */ +#define TIM_CLOCKPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED /*!< Polarity for ETRx clock sources */ +#define TIM_CLOCKPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING /*!< Polarity for TIx clock sources */ +#define TIM_CLOCKPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING /*!< Polarity for TIx clock sources */ +#define TIM_CLOCKPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE /*!< Polarity for TIx clock sources */ +/** + * @} + */ + +/** @defgroup TIM_Clock_Prescaler TIM Clock Prescaler + * @{ + */ +#define TIM_CLOCKPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1 /*!< No prescaler is used */ +#define TIM_CLOCKPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2 /*!< Prescaler for External ETR Clock: Capture performed once every 2 events. */ +#define TIM_CLOCKPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4 /*!< Prescaler for External ETR Clock: Capture performed once every 4 events. */ +#define TIM_CLOCKPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8 /*!< Prescaler for External ETR Clock: Capture performed once every 8 events. */ +/** + * @} + */ + +/** @defgroup TIM_ClearInput_Polarity TIM Clear Input Polarity + * @{ + */ +#define TIM_CLEARINPUTPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED /*!< Polarity for ETRx pin */ +#define TIM_CLEARINPUTPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED /*!< Polarity for ETRx pin */ +/** + * @} + */ + +/** @defgroup TIM_ClearInput_Prescaler TIM Clear Input Prescaler + * @{ + */ +#define TIM_CLEARINPUTPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1 /*!< No prescaler is used */ +#define TIM_CLEARINPUTPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2 /*!< Prescaler for External ETR pin: Capture performed once every 2 events. */ +#define TIM_CLEARINPUTPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4 /*!< Prescaler for External ETR pin: Capture performed once every 4 events. */ +#define TIM_CLEARINPUTPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8 /*!< Prescaler for External ETR pin: Capture performed once every 8 events. */ +/** + * @} + */ + +/** @defgroup TIM_OSSR_Off_State_Selection_for_Run_mode_state TIM OSSR OffState Selection for Run mode state + * @{ + */ +#define TIM_OSSR_ENABLE TIM_BDTR_OSSR /*!< When inactive, OC/OCN outputs are enabled (still controlled by the timer) */ +#define TIM_OSSR_DISABLE 0x00000000U /*!< When inactive, OC/OCN outputs are disabled (not controlled any longer by the timer) */ +/** + * @} + */ + +/** @defgroup TIM_OSSI_Off_State_Selection_for_Idle_mode_state TIM OSSI OffState Selection for Idle mode state + * @{ + */ +#define TIM_OSSI_ENABLE TIM_BDTR_OSSI /*!< When inactive, OC/OCN outputs are enabled (still controlled by the timer) */ +#define TIM_OSSI_DISABLE 0x00000000U /*!< When inactive, OC/OCN outputs are disabled (not controlled any longer by the timer) */ +/** + * @} + */ +/** @defgroup TIM_Lock_level TIM Lock level + * @{ + */ +#define TIM_LOCKLEVEL_OFF 0x00000000U /*!< LOCK OFF */ +#define TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0 /*!< LOCK Level 1 */ +#define TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1 /*!< LOCK Level 2 */ +#define TIM_LOCKLEVEL_3 TIM_BDTR_LOCK /*!< LOCK Level 3 */ +/** + * @} + */ + +/** @defgroup TIM_Break_Input_enable_disable TIM Break Input Enable + * @{ + */ +#define TIM_BREAK_ENABLE TIM_BDTR_BKE /*!< Break input BRK is enabled */ +#define TIM_BREAK_DISABLE 0x00000000U /*!< Break input BRK is disabled */ +/** + * @} + */ + +/** @defgroup TIM_Break_Polarity TIM Break Input Polarity + * @{ + */ +#define TIM_BREAKPOLARITY_LOW 0x00000000U /*!< Break input BRK is active low */ +#define TIM_BREAKPOLARITY_HIGH TIM_BDTR_BKP /*!< Break input BRK is active high */ +/** + * @} + */ + +/** @defgroup TIM_AOE_Bit_Set_Reset TIM Automatic Output Enable + * @{ + */ +#define TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U /*!< MOE can be set only by software */ +#define TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE /*!< MOE can be set by software or automatically at the next update event (if none of the break inputs BRK and BRK2 is active) */ +/** + * @} + */ + +/** @defgroup TIM_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) */ +/** + * @} + */ + +/** @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 */ +/** + * @} + */ + +/** @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 */ +/** + * @} + */ + +/** @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__)->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__)->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_COM: Commutation interrupt flag + * @arg TIM_FLAG_TRIGGER: Trigger interrupt flag + * @arg TIM_FLAG_BREAK: Break interrupt flag + * @arg TIM_FLAG_CC1OF: Capture/Compare 1 overcapture flag + * @arg TIM_FLAG_CC2OF: Capture/Compare 2 overcapture flag + * @arg TIM_FLAG_CC3OF: Capture/Compare 3 overcapture flag + * @arg TIM_FLAG_CC4OF: Capture/Compare 4 overcapture flag + * @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_COM: Commutation interrupt flag + * @arg TIM_FLAG_TRIGGER: Trigger interrupt flag + * @arg TIM_FLAG_BREAK: Break interrupt flag + * @arg TIM_FLAG_CC1OF: Capture/Compare 1 overcapture flag + * @arg TIM_FLAG_CC2OF: Capture/Compare 2 overcapture flag + * @arg TIM_FLAG_CC3OF: Capture/Compare 3 overcapture flag + * @arg TIM_FLAG_CC4OF: Capture/Compare 4 overcapture flag + * @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__)) + +/** + * @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. + * @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 + * @param __COMPARE__ specifies the Capture Compare register new value. + * @retval None + */ +#define __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1 = (__COMPARE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2 = (__COMPARE__)) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3 = (__COMPARE__)) :\ + ((__HANDLE__)->Instance->CCR4 = (__COMPARE__))) + +/** + * @brief Get the TIM Capture Compare Register value on runtime. + * @param __HANDLE__ TIM handle. + * @param __CHANNEL__ TIM Channel associated with the capture compare register + * This parameter can be one of the following values: + * @arg TIM_CHANNEL_1: get capture/compare 1 register value + * @arg TIM_CHANNEL_2: get capture/compare 2 register value + * @arg TIM_CHANNEL_3: get capture/compare 3 register value + * @arg TIM_CHANNEL_4: get capture/compare 4 register value + * @retval 16-bit or 32-bit value of the capture/compare register (TIMx_CCRy) + */ +#define __HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3) :\ + ((__HANDLE__)->Instance->CCR4)) + +/** + * @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 + * @retval None + */ +#define __HAL_TIM_ENABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3PE) :\ + ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4PE)) + +/** + * @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 + * @retval None + */ +#define __HAL_TIM_DISABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2PE) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3PE) :\ + ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4PE)) + +/** + * @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 + * @note When fast mode is enabled an active edge on the trigger input acts + * like a compare match on CCx output. Delay to sample the trigger + * input and to activate CCx output is reduced to 3 clock cycles. + * @note Fast mode acts only if the channel is configured in PWM1 or PWM2 mode. + * @retval None + */ +#define __HAL_TIM_ENABLE_OCxFAST(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3FE) :\ + ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4FE)) + +/** + * @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 + * @note When fast mode is disabled CCx output behaves normally depending + * on counter and CCRx values even when the trigger is ON. The minimum + * delay to activate CCx output when an active edge occurs on the + * trigger input is 5 clock cycles. + * @retval None + */ +#define __HAL_TIM_DISABLE_OCxFAST(__HANDLE__, __CHANNEL__) \ + (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE) :\ + ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE) :\ + ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE)) + +/** + * @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) + +/** + * @} + */ +/* 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 + * @{ + */ +#define IS_TIM_CLEARINPUT_SOURCE(__MODE__) (((__MODE__) == TIM_CLEARINPUTSOURCE_NONE) || \ + ((__MODE__) == TIM_CLEARINPUTSOURCE_ETR)) + +#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)) + +#define IS_TIM_EVENT_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFFFF00U) == 0x00000000U) && ((__SOURCE__) != 0x00000000U)) + +#define IS_TIM_COUNTER_MODE(__MODE__) (((__MODE__) == TIM_COUNTERMODE_UP) || \ + ((__MODE__) == TIM_COUNTERMODE_DOWN) || \ + ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED1) || \ + ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED2) || \ + ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED3)) + +#define IS_TIM_CLOCKDIVISION_DIV(__DIV__) (((__DIV__) == TIM_CLOCKDIVISION_DIV1) || \ + ((__DIV__) == TIM_CLOCKDIVISION_DIV2) || \ + ((__DIV__) == TIM_CLOCKDIVISION_DIV4)) + +#define IS_TIM_AUTORELOAD_PRELOAD(PRELOAD) (((PRELOAD) == TIM_AUTORELOAD_PRELOAD_DISABLE) || \ + ((PRELOAD) == TIM_AUTORELOAD_PRELOAD_ENABLE)) + +#define IS_TIM_FAST_STATE(__STATE__) (((__STATE__) == TIM_OCFAST_DISABLE) || \ + ((__STATE__) == TIM_OCFAST_ENABLE)) + +#define IS_TIM_OC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCPOLARITY_HIGH) || \ + ((__POLARITY__) == TIM_OCPOLARITY_LOW)) + +#define IS_TIM_OCN_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCNPOLARITY_HIGH) || \ + ((__POLARITY__) == TIM_OCNPOLARITY_LOW)) + +#define IS_TIM_OCIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCIDLESTATE_SET) || \ + ((__STATE__) == TIM_OCIDLESTATE_RESET)) + +#define IS_TIM_OCNIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCNIDLESTATE_SET) || \ + ((__STATE__) == TIM_OCNIDLESTATE_RESET)) + +#define IS_TIM_ENCODERINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_RISING) || \ + ((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_FALLING)) + +#define IS_TIM_IC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ICPOLARITY_RISING) || \ + ((__POLARITY__) == TIM_ICPOLARITY_FALLING) || \ + ((__POLARITY__) == TIM_ICPOLARITY_BOTHEDGE)) + +#define IS_TIM_IC_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_ICSELECTION_DIRECTTI) || \ + ((__SELECTION__) == TIM_ICSELECTION_INDIRECTTI) || \ + ((__SELECTION__) == TIM_ICSELECTION_TRC)) + +#define IS_TIM_IC_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_ICPSC_DIV1) || \ + ((__PRESCALER__) == TIM_ICPSC_DIV2) || \ + ((__PRESCALER__) == TIM_ICPSC_DIV4) || \ + ((__PRESCALER__) == TIM_ICPSC_DIV8)) + +#define IS_TIM_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)) + +#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)) + +#define IS_TIM_OPM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \ + ((__CHANNEL__) == TIM_CHANNEL_2)) + +#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_ETRMODE2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \ + ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1)) + +#define IS_TIM_CLOCKPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLOCKPOLARITY_INVERTED) || \ + ((__POLARITY__) == TIM_CLOCKPOLARITY_NONINVERTED) || \ + ((__POLARITY__) == TIM_CLOCKPOLARITY_RISING) || \ + ((__POLARITY__) == TIM_CLOCKPOLARITY_FALLING) || \ + ((__POLARITY__) == TIM_CLOCKPOLARITY_BOTHEDGE)) + +#define IS_TIM_CLOCKPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV1) || \ + ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV2) || \ + ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV4) || \ + ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV8)) + +#define IS_TIM_CLOCKFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU) + +#define IS_TIM_CLEARINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLEARINPUTPOLARITY_INVERTED) || \ + ((__POLARITY__) == TIM_CLEARINPUTPOLARITY_NONINVERTED)) + +#define IS_TIM_CLEARINPUT_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV1) || \ + ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV2) || \ + ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV4) || \ + ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV8)) + +#define IS_TIM_CLEARINPUT_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU) + +#define IS_TIM_OSSR_STATE(__STATE__) (((__STATE__) == TIM_OSSR_ENABLE) || \ + ((__STATE__) == TIM_OSSR_DISABLE)) + +#define IS_TIM_OSSI_STATE(__STATE__) (((__STATE__) == TIM_OSSI_ENABLE) || \ + ((__STATE__) == TIM_OSSI_DISABLE)) + +#define IS_TIM_LOCK_LEVEL(__LEVEL__) (((__LEVEL__) == TIM_LOCKLEVEL_OFF) || \ + ((__LEVEL__) == TIM_LOCKLEVEL_1) || \ + ((__LEVEL__) == TIM_LOCKLEVEL_2) || \ + ((__LEVEL__) == TIM_LOCKLEVEL_3)) + +#define IS_TIM_BREAK_FILTER(__BRKFILTER__) ((__BRKFILTER__) <= 0xFUL) + + +#define IS_TIM_BREAK_STATE(__STATE__) (((__STATE__) == TIM_BREAK_ENABLE) || \ + ((__STATE__) == TIM_BREAK_DISABLE)) + +#define IS_TIM_BREAK_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAKPOLARITY_LOW) || \ + ((__POLARITY__) == TIM_BREAKPOLARITY_HIGH)) + +#define IS_TIM_AUTOMATIC_OUTPUT_STATE(__STATE__) (((__STATE__) == TIM_AUTOMATICOUTPUT_ENABLE) || \ + ((__STATE__) == TIM_AUTOMATICOUTPUT_DISABLE)) + +#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)) + +#define IS_TIM_MSM_STATE(__STATE__) (((__STATE__) == TIM_MASTERSLAVEMODE_ENABLE) || \ + ((__STATE__) == TIM_MASTERSLAVEMODE_DISABLE)) + +#define IS_TIM_SLAVE_MODE(__MODE__) (((__MODE__) == TIM_SLAVEMODE_DISABLE) || \ + ((__MODE__) == TIM_SLAVEMODE_RESET) || \ + ((__MODE__) == TIM_SLAVEMODE_GATED) || \ + ((__MODE__) == TIM_SLAVEMODE_TRIGGER) || \ + ((__MODE__) == TIM_SLAVEMODE_EXTERNAL1)) + +#define IS_TIM_PWM_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_PWM1) || \ + ((__MODE__) == TIM_OCMODE_PWM2)) + +#define IS_TIM_OC_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_TIMING) || \ + ((__MODE__) == TIM_OCMODE_ACTIVE) || \ + ((__MODE__) == TIM_OCMODE_INACTIVE) || \ + ((__MODE__) == TIM_OCMODE_TOGGLE) || \ + ((__MODE__) == TIM_OCMODE_FORCED_ACTIVE) || \ + ((__MODE__) == TIM_OCMODE_FORCED_INACTIVE)) + +#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) + +#define IS_TIM_SLAVEMODE_TRIGGER_ENABLED(__TRIGGER__) ((__TRIGGER__) == TIM_SLAVEMODE_TRIGGER) + +#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)) :\ + ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC4P))) + +#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) + +#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 "stm32f1xx_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, 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, 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, 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, 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, TIM_OC_InitTypeDef *sConfig, uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfig, uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, 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, TIM_ClearInputConfigTypeDef *sClearInputConfig, + uint32_t Channel); +HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, TIM_ClockConfigTypeDef *sClockSourceConfig); +HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection); +HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, TIM_SlaveConfigTypeDef *sSlaveConfig); +HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, TIM_SlaveConfigTypeDef *sSlaveConfig); +HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, + uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength); +HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, + uint32_t BurstRequestSrc, 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(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(TIM_HandleTypeDef *htim); +HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(TIM_HandleTypeDef *htim); +HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(TIM_HandleTypeDef *htim); +HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(TIM_HandleTypeDef *htim); +HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(TIM_HandleTypeDef *htim); +HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(TIM_HandleTypeDef *htim); + +/* Peripheral Channel state functions ************************************************/ +HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(TIM_HandleTypeDef *htim); +HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(TIM_HandleTypeDef *htim, uint32_t Channel); +HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(TIM_HandleTypeDef *htim); +/** + * @} + */ + +/** + * @} + */ +/* End of exported functions -------------------------------------------------*/ + +/* Private functions----------------------------------------------------------*/ +/** @defgroup TIM_Private_Functions TIM Private Functions + * @{ + */ +void TIM_Base_SetConfig(TIM_TypeDef *TIMx, 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, 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 /* STM32F1xx_HAL_TIM_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h new file mode 100644 index 0000000..6f1b5e5 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h @@ -0,0 +1,262 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32F1xx_HAL_TIM_EX_H +#define STM32F1xx_HAL_TIM_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal_def.h" + +/** @addtogroup STM32F1xx_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 + * @{ + */ +/** + * @} + */ + +/** + * @} + */ +/* 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 + * @{ + */ + +/** + * @} + */ +/* 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, 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, 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, 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, + TIM_MasterConfigTypeDef *sMasterConfig); +HAL_StatusTypeDef HAL_TIMEx_ConfigBreakDeadTime(TIM_HandleTypeDef *htim, + TIM_BreakDeadTimeConfigTypeDef *sBreakDeadTimeConfig); +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); +/** + * @} + */ + +/** @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(TIM_HandleTypeDef *htim); +HAL_TIM_ChannelStateTypeDef HAL_TIMEx_GetChannelNState(TIM_HandleTypeDef *htim, uint32_t ChannelN); +/** + * @} + */ + +/** + * @} + */ +/* End of exported functions -------------------------------------------------*/ + +/* Private functions----------------------------------------------------------*/ +/** @addtogroup TIMEx_Private_Functions TIMEx Private Functions + * @{ + */ +void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma); +void TIMEx_DMACommutationHalfCplt(DMA_HandleTypeDef *hdma); +/** + * @} + */ +/* End of private functions --------------------------------------------------*/ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + + +#endif /* STM32F1xx_HAL_TIM_EX_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c new file mode 100644 index 0000000..f4824ab --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c @@ -0,0 +1,606 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal.c + * @author MCD Application Team + * @brief HAL module driver. + * This is the common part of the HAL initialization + * + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The common HAL driver contains a set of generic and common APIs that can be + used by the PPP peripheral drivers and the user to start using the HAL. + [..] + The HAL contains two APIs' categories: + (+) Common HAL APIs + (+) Services HAL APIs + + @endverbatim + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @defgroup HAL HAL + * @brief HAL module driver. + * @{ + */ + +#ifdef HAL_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ + +/** @defgroup HAL_Private_Constants HAL Private Constants + * @{ + */ +/** + * @brief STM32F1xx HAL Driver version number V1.1.8 + */ +#define __STM32F1xx_HAL_VERSION_MAIN (0x01U) /*!< [31:24] main version */ +#define __STM32F1xx_HAL_VERSION_SUB1 (0x01U) /*!< [23:16] sub1 version */ +#define __STM32F1xx_HAL_VERSION_SUB2 (0x08U) /*!< [15:8] sub2 version */ +#define __STM32F1xx_HAL_VERSION_RC (0x00U) /*!< [7:0] release candidate */ +#define __STM32F1xx_HAL_VERSION ((__STM32F1xx_HAL_VERSION_MAIN << 24)\ + |(__STM32F1xx_HAL_VERSION_SUB1 << 16)\ + |(__STM32F1xx_HAL_VERSION_SUB2 << 8 )\ + |(__STM32F1xx_HAL_VERSION_RC)) + +#define IDCODE_DEVID_MASK 0x00000FFFU + +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/** @defgroup HAL_Private_Variables HAL Private 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 is used to initialize the HAL Library; it must be the first + * instruction to be executed in the main program (before to call any other + * HAL function), it performs the following: + * Configure the Flash prefetch. + * Configures the SysTick to generate an interrupt each 1 millisecond, + * which is clocked by the HSI (at this stage, the clock is not yet + * configured and thus the system is running from the internal HSI at 16 MHz). + * Set NVIC Group Priority to 4. + * Calls the HAL_MspInit() callback function defined in user file + * "stm32f1xx_hal_msp.c" to do the global low level hardware initialization + * + * @note SysTick is used as time base for the HAL_Delay() function, the application + * need to ensure that the SysTick time base is always set to 1 millisecond + * to have correct HAL operation. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_Init(void) +{ + /* Configure Flash prefetch */ +#if (PREFETCH_ENABLE != 0) +#if defined(STM32F101x6) || defined(STM32F101xB) || defined(STM32F101xE) || defined(STM32F101xG) || \ + defined(STM32F102x6) || defined(STM32F102xB) || \ + defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) || \ + defined(STM32F105xC) || defined(STM32F107xC) + + /* Prefetch buffer is not available on value line devices */ + __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); +#endif +#endif /* PREFETCH_ENABLE */ + + /* Set Interrupt Group Priority */ + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); + + /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ + 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. + * of time base. + * @note This function is optional. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DeInit(void) +{ + /* Reset of all peripherals */ + __HAL_RCC_APB1_FORCE_RESET(); + __HAL_RCC_APB1_RELEASE_RESET(); + + __HAL_RCC_APB2_FORCE_RESET(); + __HAL_RCC_APB2_RELEASE_RESET(); + +#if defined(STM32F105xC) || defined(STM32F107xC) + __HAL_RCC_AHB_FORCE_RESET(); + __HAL_RCC_AHB_RELEASE_RESET(); +#endif + + /* De-Init the low level hardware */ + HAL_MspDeInit(); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Initialize the MSP. + * @retval None + */ +__weak void HAL_MspInit(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitializes the MSP. + * @retval None + */ +__weak void HAL_MspDeInit(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_MspDeInit could be implemented in the user file + */ +} + +/** + * @brief This function configures the source of the time base. + * The time source is configured to have 1ms time base with a dedicated + * Tick interrupt priority. + * @note This function is called automatically at the beginning of program after + * reset by HAL_Init() or at any time when clock is reconfigured by HAL_RCC_ClockConfig(). + * @note In the default implementation, SysTick timer is the source of time base. + * It is used to generate interrupts at regular time intervals. + * Care must be taken if HAL_Delay() is called from a peripheral ISR process, + * The SysTick interrupt must have higher priority (numerically lower) + * than the peripheral interrupt. Otherwise the caller ISR process will be blocked. + * The function is declared as __weak to be overwritten in case of other + * implementation in user file. + * @param TickPriority Tick interrupt priority. + * @retval HAL status + */ +__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) +{ + /* 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 Provides a tick value in millisecond. + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval tick value + */ +__weak uint32_t HAL_GetTick(void) +{ + return uwTick; +} + +/** + * @brief This function returns a tick priority. + * @retval tick priority + */ +uint32_t HAL_GetTickPrio(void) +{ + return uwTickPrio; +} + +/** + * @brief Set new tick Freq. + * @retval status + */ +HAL_StatusTypeDef HAL_SetTickFreq(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 period in Hz + */ +HAL_TickFreqTypeDef HAL_GetTickFreq(void) +{ + return uwTickFreq; +} + +/** + * @brief This function provides minimum delay (in milliseconds) based + * on variable incremented. + * @note In the default implementation , SysTick timer is the source of time base. + * It is used to generate interrupts at regular time intervals where uwTick + * is incremented. + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @param Delay specifies the delay time length, in milliseconds. + * @retval None + */ +__weak void HAL_Delay(uint32_t Delay) +{ + uint32_t tickstart = HAL_GetTick(); + uint32_t wait = Delay; + + /* Add a freq to guarantee minimum wait */ + if (wait < HAL_MAX_DELAY) + { + wait += (uint32_t)(uwTickFreq); + } + + while ((HAL_GetTick() - tickstart) < wait) + { + } +} + +/** + * @brief 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 SysTick interrupt will be disabled and so Tick increment + * is suspended. + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval None + */ +__weak void HAL_SuspendTick(void) +{ + /* Disable SysTick Interrupt */ + CLEAR_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk); +} + +/** + * @brief Resume Tick increment. + * @note In the default implementation , SysTick timer is the source of time base. It is + * used to generate interrupts at regular time intervals. Once HAL_ResumeTick() + * is called, the SysTick interrupt will be enabled and so Tick increment + * is resumed. + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval None + */ +__weak void HAL_ResumeTick(void) +{ + /* Enable SysTick Interrupt */ + SET_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk); +} + +/** + * @brief Returns the HAL revision + * @retval version 0xXYZR (8bits for each decimal, R for RC) + */ +uint32_t HAL_GetHalVersion(void) +{ + return __STM32F1xx_HAL_VERSION; +} + +/** + * @brief Returns the device revision identifier. + * Note: On devices STM32F10xx8 and STM32F10xxB, + * STM32F101xC/D/E and STM32F103xC/D/E, + * STM32F101xF/G and STM32F103xF/G + * STM32F10xx4 and STM32F10xx6 + * Debug registers DBGMCU_IDCODE and DBGMCU_CR are accessible only in + * debug mode (not accessible by the user software in normal mode). + * Refer to errata sheet of these devices for more details. + * @retval Device revision identifier + */ +uint32_t HAL_GetREVID(void) +{ + return ((DBGMCU->IDCODE) >> DBGMCU_IDCODE_REV_ID_Pos); +} + +/** + * @brief Returns the device identifier. + * Note: On devices STM32F10xx8 and STM32F10xxB, + * STM32F101xC/D/E and STM32F103xC/D/E, + * STM32F101xF/G and STM32F103xF/G + * STM32F10xx4 and STM32F10xx6 + * Debug registers DBGMCU_IDCODE and DBGMCU_CR are accessible only in + * debug mode (not accessible by the user software in normal mode). + * Refer to errata sheet of these devices for more details. + * @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 + * Note: On devices STM32F10xx8 and STM32F10xxB, + * STM32F101xC/D/E and STM32F103xC/D/E, + * STM32F101xF/G and STM32F103xF/G + * STM32F10xx4 and STM32F10xx6 + * Debug registers DBGMCU_IDCODE and DBGMCU_CR are accessible only in + * debug mode (not accessible by the user software in normal mode). + * Refer to errata sheet of these devices for more details. + * @retval None + */ +void HAL_DBGMCU_DisableDBGSleepMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); +} + +/** + * @brief Enable the Debug Module during STOP mode + * Note: On devices STM32F10xx8 and STM32F10xxB, + * STM32F101xC/D/E and STM32F103xC/D/E, + * STM32F101xF/G and STM32F103xF/G + * STM32F10xx4 and STM32F10xx6 + * Debug registers DBGMCU_IDCODE and DBGMCU_CR are accessible only in + * debug mode (not accessible by the user software in normal mode). + * Refer to errata sheet of these devices for more details. + * Note: On all STM32F1 devices: + * If the system tick timer interrupt is enabled during the Stop mode + * debug (DBG_STOP bit set in the DBGMCU_CR register ), it will wakeup + * the system from Stop mode. + * Workaround: To debug the Stop mode, disable the system tick timer + * interrupt. + * Refer to errata sheet of these devices for more details. + * Note: On all STM32F1 devices: + * If the system tick timer interrupt is enabled during the Stop mode + * debug (DBG_STOP bit set in the DBGMCU_CR register ), it will wakeup + * the system from Stop mode. + * Workaround: To debug the Stop mode, disable the system tick timer + * interrupt. + * Refer to errata sheet of these devices for more details. + * @retval None + */ +void HAL_DBGMCU_EnableDBGStopMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Disable the Debug Module during STOP mode + * Note: On devices STM32F10xx8 and STM32F10xxB, + * STM32F101xC/D/E and STM32F103xC/D/E, + * STM32F101xF/G and STM32F103xF/G + * STM32F10xx4 and STM32F10xx6 + * Debug registers DBGMCU_IDCODE and DBGMCU_CR are accessible only in + * debug mode (not accessible by the user software in normal mode). + * Refer to errata sheet of these devices for more details. + * @retval None + */ +void HAL_DBGMCU_DisableDBGStopMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Enable the Debug Module during STANDBY mode + * Note: On devices STM32F10xx8 and STM32F10xxB, + * STM32F101xC/D/E and STM32F103xC/D/E, + * STM32F101xF/G and STM32F103xF/G + * STM32F10xx4 and STM32F10xx6 + * Debug registers DBGMCU_IDCODE and DBGMCU_CR are accessible only in + * debug mode (not accessible by the user software in normal mode). + * Refer to errata sheet of these devices for more details. + * @retval None + */ +void HAL_DBGMCU_EnableDBGStandbyMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @brief Disable the Debug Module during STANDBY mode + * Note: On devices STM32F10xx8 and STM32F10xxB, + * STM32F101xC/D/E and STM32F103xC/D/E, + * STM32F101xF/G and STM32F103xF/G + * STM32F10xx4 and STM32F10xx6 + * Debug registers DBGMCU_IDCODE and DBGMCU_CR are accessible only in + * debug mode (not accessible by the user software in normal mode). + * Refer to errata sheet of these devices for more details. + * @retval None + */ +void HAL_DBGMCU_DisableDBGStandbyMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c new file mode 100644 index 0000000..a89150a --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c @@ -0,0 +1,505 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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-M3 exceptions are managed by CMSIS functions. + + (#) Configure the NVIC Priority Grouping using HAL_NVIC_SetPriorityGrouping() + function according to the following table. + (#) Configure the priority of the selected IRQ Channels using HAL_NVIC_SetPriority(). + (#) Enable the selected IRQ Channels using HAL_NVIC_EnableIRQ(). + (#) please refer to programming manual for details in how to configure priority. + + -@- When the NVIC_PRIORITYGROUP_0 is selected, IRQ preemption 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 preemption priority + (+@) Lowest sub priority + (+@) Lowest hardware priority (IRQ number) + + [..] + *** How to configure Systick using CORTEX HAL driver *** + ======================================================== + [..] + Setup SysTick Timer for time base. + + (+) The HAL_SYSTICK_Config()function calls the SysTick_Config() function which + is a CMSIS function that: + (++) Configures the SysTick Reload register with value passed as function parameter. + (++) Configures the SysTick IRQ priority to the lowest value 0x0F. + (++) Resets the SysTick Counter register. + (++) Configures the SysTick Counter clock source to be Core Clock Source (HCLK). + (++) Enables the SysTick Interrupt. + (++) Starts the SysTick Counter. + + (+) You can change the SysTick Clock source to be HCLK_Div8 by calling the macro + __HAL_CORTEX_SYSTICKCLK_CONFIG(SYSTICK_CLKSOURCE_HCLK_DIV8) just after the + HAL_SYSTICK_Config() function call. The __HAL_CORTEX_SYSTICKCLK_CONFIG() macro is defined + inside the stm32f1xx_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) 2017 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @defgroup CORTEX CORTEX + * @brief CORTEX HAL module driver + * @{ + */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +/* 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 (preemption 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 preemption priority + * 4 bits for subpriority + * @arg NVIC_PRIORITYGROUP_1: 1 bits for preemption priority + * 3 bits for subpriority + * @arg NVIC_PRIORITYGROUP_2: 2 bits for preemption priority + * 2 bits for subpriority + * @arg NVIC_PRIORITYGROUP_3: 3 bits for preemption priority + * 1 bits for subpriority + * @arg NVIC_PRIORITYGROUP_4: 4 bits for preemption priority + * 0 bits for subpriority + * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible. + * The pending IRQ priority will be managed only by the subpriority. + * @retval None + */ +void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + /* 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 (stm32f10xx.h)) + * @param PreemptPriority: The preemption priority for the IRQn channel. + * This parameter can be a value between 0 and 15 + * A lower priority value indicates a higher priority + * @param SubPriority: the subpriority level for the IRQ channel. + * This parameter can be a value between 0 and 15 + * A lower priority value indicates a higher priority. + * @retval None + */ +void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t prioritygroup = 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 (stm32f10xxx.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 (stm32f10xxx.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 + * @retval None + */ +void HAL_MPU_Disable(void) +{ + /* Make sure outstanding transfers are done */ + __DMB(); + + /* Disable fault exceptions */ + SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; + + /* Disable the MPU and clear the control register*/ + MPU->CTRL = 0U; +} + +/** + * @brief Enable 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; + + /* Ensure MPU setting take effects */ + __DSB(); + __ISB(); +} + +/** + * @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)); + + /* Set the Region number */ + MPU->RNR = MPU_Init->Number; + + if ((MPU_Init->Enable) != RESET) + { + /* Check the parameters */ + 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)); + + 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); + } + else + { + MPU->RBAR = 0x00U; + MPU->RASR = 0x00U; + } +} +#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 (stm32f10xxx.h)) + * @param PriorityGroup: the priority grouping bits length. + * This parameter can be one of the following values: + * @arg NVIC_PRIORITYGROUP_0: 0 bits for preemption priority + * 4 bits for subpriority + * @arg NVIC_PRIORITYGROUP_1: 1 bits for preemption priority + * 3 bits for subpriority + * @arg NVIC_PRIORITYGROUP_2: 2 bits for preemption priority + * 2 bits for subpriority + * @arg NVIC_PRIORITYGROUP_3: 3 bits for preemption priority + * 1 bits for subpriority + * @arg NVIC_PRIORITYGROUP_4: 4 bits for preemption 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 (stm32f10xxx.h)) + * @retval None + */ +void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + /* Check the parameters */ + assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + + /* Set interrupt pending */ + NVIC_SetPendingIRQ(IRQn); +} + +/** + * @brief 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 (stm32f10xxx.h)) + * @retval status: - 0 Interrupt status is not pending. + * - 1 Interrupt status is pending. + */ +uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + /* Check the parameters */ + assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + + /* Return 1 if pending else 0 */ + return NVIC_GetPendingIRQ(IRQn); +} + +/** + * @brief 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 (stm32f10xxx.h)) + * @retval None + */ +void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + /* Check the parameters */ + assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + + /* Clear pending interrupt */ + NVIC_ClearPendingIRQ(IRQn); +} + +/** + * @brief 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 (stm32f10xxx.h)) + * @retval status: - 0 Interrupt status is not pending. + * - 1 Interrupt status is pending. + */ +uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn) +{ + /* Check the parameters */ + assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + + /* Return 1 if active else 0 */ + 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 */ +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c new file mode 100644 index 0000000..c9bc061 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c @@ -0,0 +1,899 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 the Reference manual for connection between peripherals + and DMA requests. + + (#) For a given Channel, program the required configuration through the following parameters: + Channel request, Transfer Direction, Source and Destination data formats, + Circular or Normal mode, Channel Priority level, Source and Destination Increment mode + using HAL_DMA_Init() function. + + (#) Use HAL_DMA_GetState() function to return the DMA state and HAL_DMA_GetError() in case of error + detection. + + (#) Use HAL_DMA_Abort() function to abort the current transfer + + -@- In Memory-to-Memory transfer mode, Circular mode is not allowed. + *** Polling mode IO operation *** + ================================= + [..] + (+) Use HAL_DMA_Start() to start DMA transfer after the configuration of Source + address and destination address and the Length of data to be transferred + (+) Use HAL_DMA_PollForTransfer() to poll for the end of current transfer, in this + case a fixed Timeout can be configured by User depending from his application. + + *** Interrupt mode IO operation *** + =================================== + [..] + (+) Configure the DMA interrupt priority using HAL_NVIC_SetPriority() + (+) Enable the DMA IRQ handler using HAL_NVIC_EnableIRQ() + (+) Use HAL_DMA_Start_IT() to start DMA transfer after the configuration of + Source address and destination address and the Length of data to be transferred. + In this case the DMA interrupt is configured + (+) Use HAL_DMA_IRQHandler() called under DMA_IRQHandler() Interrupt subroutine + (+) At the end of data transfer HAL_DMA_IRQHandler() function is executed and user can + add his own function 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. + + (+) __HAL_DMA_ENABLE: Enable the specified DMA Channel. + (+) __HAL_DMA_DISABLE: Disable the specified DMA Channel. + (+) __HAL_DMA_GET_FLAG: Get the DMA Channel pending flags. + (+) __HAL_DMA_CLEAR_FLAG: Clear the DMA Channel pending flags. + (+) __HAL_DMA_ENABLE_IT: Enable the specified DMA Channel interrupts. + (+) __HAL_DMA_DISABLE_IT: Disable the specified DMA Channel interrupts. + (+) __HAL_DMA_GET_IT_SOURCE: Check whether the specified DMA Channel interrupt has occurred or not. + + [..] + (@) You can refer to the DMA HAL driver header file for more useful macros + + @endverbatim + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_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); +/** + * @} + */ + +/* 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(hdma == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + assert_param(IS_DMA_DIRECTION(hdma->Init.Direction)); + assert_param(IS_DMA_PERIPHERAL_INC_STATE(hdma->Init.PeriphInc)); + assert_param(IS_DMA_MEMORY_INC_STATE(hdma->Init.MemInc)); + assert_param(IS_DMA_PERIPHERAL_DATA_SIZE(hdma->Init.PeriphDataAlignment)); + assert_param(IS_DMA_MEMORY_DATA_SIZE(hdma->Init.MemDataAlignment)); + assert_param(IS_DMA_MODE(hdma->Init.Mode)); + assert_param(IS_DMA_PRIORITY(hdma->Init.Priority)); + +#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)) << 2; + hdma->DmaBaseAddress = DMA1; + } + else + { + /* DMA2 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Channel2 - (uint32_t)DMA2_Channel1)) << 2; + hdma->DmaBaseAddress = DMA2; + } +#else + /* DMA1 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2; + hdma->DmaBaseAddress = DMA1; +#endif /* DMA2 */ + + /* Change DMA peripheral state */ + hdma->State = HAL_DMA_STATE_BUSY; + + /* Get the CR register value */ + tmp = hdma->Instance->CCR; + + /* Clear PL, MSIZE, PSIZE, MINC, PINC, CIRC and 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; + + /* 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(hdma == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + + /* Disable the selected DMA Channelx */ + __HAL_DMA_DISABLE(hdma); + + /* 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; + +#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)) << 2; + hdma->DmaBaseAddress = DMA1; + } + else + { + /* DMA2 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Channel2 - (uint32_t)DMA2_Channel1)) << 2; + hdma->DmaBaseAddress = DMA2; + } +#else + /* DMA1 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2; + hdma->DmaBaseAddress = DMA1; +#endif /* DMA2 */ + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex)); + + /* Clean all 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 Input and Output operation functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Configure the source, destination address and data length and Start DMA transfer + (+) Configure the source, destination address and data length and + Start DMA transfer with interrupt + (+) Abort DMA transfer + (+) Poll for transfer complete + (+) Handle DMA interrupt request + +@endverbatim + * @{ + */ + +/** + * @brief Start the DMA Transfer. + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param SrcAddress: The source memory Buffer address + * @param DstAddress: The destination memory Buffer address + * @param DataLength: The length of data to be transferred from source to destination + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_DMA_BUFFER_SIZE(DataLength)); + + /* Process locked */ + __HAL_LOCK(hdma); + + if(HAL_DMA_STATE_READY == hdma->State) + { + /* Change DMA peripheral state */ + hdma->State = HAL_DMA_STATE_BUSY; + hdma->ErrorCode = HAL_DMA_ERROR_NONE; + + /* Disable the peripheral */ + __HAL_DMA_DISABLE(hdma); + + /* Configure the source, destination address and the data length & clear flags*/ + DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); + + /* Enable the Peripheral */ + __HAL_DMA_ENABLE(hdma); + } + else + { + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + status = HAL_BUSY; + } + return status; +} + +/** + * @brief Start the DMA Transfer with interrupt enabled. + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param SrcAddress: The source memory Buffer address + * @param DstAddress: The destination memory Buffer address + * @param DataLength: The length of data to be transferred from source to destination + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_DMA_BUFFER_SIZE(DataLength)); + + /* Process locked */ + __HAL_LOCK(hdma); + + if(HAL_DMA_STATE_READY == hdma->State) + { + /* Change DMA peripheral state */ + hdma->State = HAL_DMA_STATE_BUSY; + hdma->ErrorCode = HAL_DMA_ERROR_NONE; + + /* Disable the peripheral */ + __HAL_DMA_DISABLE(hdma); + + /* Configure the source, destination address and the data length & clear flags*/ + DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); + + /* Enable the transfer complete interrupt */ + /* Enable the transfer Error interrupt */ + if(NULL != hdma->XferHalfCpltCallback) + { + /* Enable the Half transfer complete interrupt as well */ + __HAL_DMA_ENABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + } + else + { + __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT); + __HAL_DMA_ENABLE_IT(hdma, (DMA_IT_TC | DMA_IT_TE)); + } + /* Enable the Peripheral */ + __HAL_DMA_ENABLE(hdma); + } + else + { + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + /* Remain BUSY */ + status = HAL_BUSY; + } + return status; +} + +/** + * @brief Abort the DMA Transfer. + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma) +{ + HAL_StatusTypeDef status = HAL_OK; + + if(hdma->State != HAL_DMA_STATE_BUSY) + { + /* no transfer ongoing */ + hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + return HAL_ERROR; + } + else + + { + /* Disable DMA IT */ + __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + + /* Disable the channel */ + __HAL_DMA_DISABLE(hdma); + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << hdma->ChannelIndex); + } + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + return status; +} + +/** + * @brief Aborts the DMA Transfer in Interrupt mode. + * @param hdma : pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) +{ + HAL_StatusTypeDef status = HAL_OK; + + if(HAL_DMA_STATE_BUSY != hdma->State) + { + /* no transfer ongoing */ + hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + + status = HAL_ERROR; + } + else + { + /* Disable DMA IT */ + __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + + /* Disable the channel */ + __HAL_DMA_DISABLE(hdma); + + /* Clear all flags */ + __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_GI_FLAG_INDEX(hdma)); + + /* 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(CompleteLevel == HAL_DMA_FULL_TRANSFER) + { + /* Transfer Complete flag */ + temp = __HAL_DMA_GET_TC_FLAG_INDEX(hdma); + } + else + { + /* Half Transfer Complete flag */ + temp = __HAL_DMA_GET_HT_FLAG_INDEX(hdma); + } + + /* Get tick */ + tickstart = HAL_GetTick(); + + while(__HAL_DMA_GET_FLAG(hdma, temp) == RESET) + { + if((__HAL_DMA_GET_FLAG(hdma, __HAL_DMA_GET_TE_FLAG_INDEX(hdma)) != RESET)) + { + /* When a DMA transfer error occurs */ + /* A hardware clear of its EN bits is performed */ + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << hdma->ChannelIndex); + + /* Update error code */ + SET_BIT(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 */ + SET_BIT(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(CompleteLevel == HAL_DMA_FULL_TRANSFER) + { + /* Clear the transfer complete flag */ + __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_TC_FLAG_INDEX(hdma)); + + /* 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 */ + __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_HT_FLAG_INDEX(hdma)); + } + + /* Process unlocked */ + __HAL_UNLOCK(hdma); + + return HAL_OK; +} + +/** + * @brief Handles 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 (((flag_it & (DMA_FLAG_HT1 << hdma->ChannelIndex)) != RESET) && ((source_it & DMA_IT_HT) != RESET)) + { + /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */ + if((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U) + { + /* Disable the half transfer interrupt */ + __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT); + } + /* Clear the half transfer complete flag */ + __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_HT_FLAG_INDEX(hdma)); + + /* DMA peripheral state is not updated in Half Transfer */ + /* but in Transfer Complete case */ + + if(hdma->XferHalfCpltCallback != NULL) + { + /* Half transfer callback */ + hdma->XferHalfCpltCallback(hdma); + } + } + + /* Transfer Complete Interrupt management ***********************************/ + else if (((flag_it & (DMA_FLAG_TC1 << hdma->ChannelIndex)) != RESET) && ((source_it & DMA_IT_TC) != RESET)) + { + if((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U) + { + /* Disable the transfer complete and error interrupt */ + __HAL_DMA_DISABLE_IT(hdma, DMA_IT_TE | DMA_IT_TC); + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + } + /* Clear the transfer complete flag */ + __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_TC_FLAG_INDEX(hdma)); + + /* 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 */ + /* Disable ALL DMA IT */ + __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << 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); + } + } + return; +} + +/** + * @brief Register callbacks + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param CallbackID: User Callback identifer + * a HAL_DMA_CallbackIDTypeDef ENUM as parameter. + * @param pCallback: pointer to private callbacsk function which has pointer to + * a DMA_HandleTypeDef structure as parameter. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void (* pCallback)( DMA_HandleTypeDef * _hdma)) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hdma); + + if(HAL_DMA_STATE_READY == hdma->State) + { + switch (CallbackID) + { + case HAL_DMA_XFER_CPLT_CB_ID: + hdma->XferCpltCallback = pCallback; + break; + + case HAL_DMA_XFER_HALFCPLT_CB_ID: + hdma->XferHalfCpltCallback = pCallback; + break; + + case HAL_DMA_XFER_ERROR_CB_ID: + hdma->XferErrorCallback = pCallback; + break; + + case HAL_DMA_XFER_ABORT_CB_ID: + hdma->XferAbortCallback = pCallback; + break; + + default: + status = HAL_ERROR; + break; + } + } + else + { + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hdma); + + return status; +} + +/** + * @brief UnRegister callbacks + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param CallbackID: User Callback identifer + * a HAL_DMA_CallbackIDTypeDef ENUM as parameter. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hdma); + + if(HAL_DMA_STATE_READY == hdma->State) + { + switch (CallbackID) + { + case HAL_DMA_XFER_CPLT_CB_ID: + hdma->XferCpltCallback = NULL; + break; + + case HAL_DMA_XFER_HALFCPLT_CB_ID: + hdma->XferHalfCpltCallback = NULL; + break; + + case HAL_DMA_XFER_ERROR_CB_ID: + hdma->XferErrorCallback = NULL; + break; + + case HAL_DMA_XFER_ABORT_CB_ID: + hdma->XferAbortCallback = NULL; + break; + + case HAL_DMA_XFER_ALL_CB_ID: + hdma->XferCpltCallback = NULL; + hdma->XferHalfCpltCallback = NULL; + hdma->XferErrorCallback = NULL; + hdma->XferAbortCallback = NULL; + break; + + default: + status = HAL_ERROR; + break; + } + } + else + { + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hdma); + + return status; +} + +/** + * @} + */ + +/** @defgroup DMA_Exported_Functions_Group3 Peripheral State and Errors functions + * @brief Peripheral State and Errors functions + * +@verbatim + =============================================================================== + ##### Peripheral State and Errors functions ##### + =============================================================================== + [..] + This subsection provides functions allowing to + (+) Check the DMA state + (+) Get error code + +@endverbatim + * @{ + */ + +/** + * @brief Return the DMA hande state. + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval HAL state + */ +HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma) +{ + /* Return DMA handle state */ + return hdma->State; +} + +/** + * @brief Return the DMA error code. + * @param hdma : pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval DMA Error Code + */ +uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma) +{ + return hdma->ErrorCode; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup DMA_Private_Functions + * @{ + */ + +/** + * @brief Sets the DMA Transfer parameter. + * @param hdma: pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param SrcAddress: The source memory Buffer address + * @param DstAddress: The destination memory Buffer address + * @param DataLength: The length of data to be transferred from source to destination + * @retval HAL status + */ +static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength) +{ + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << hdma->ChannelIndex); + + /* Configure DMA Channel data length */ + hdma->Instance->CNDTR = DataLength; + + /* Memory to Peripheral */ + if((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH) + { + /* Configure DMA Channel destination address */ + hdma->Instance->CPAR = DstAddress; + + /* Configure DMA Channel source address */ + hdma->Instance->CMAR = SrcAddress; + } + /* Peripheral to Memory */ + else + { + /* Configure DMA Channel source address */ + hdma->Instance->CPAR = SrcAddress; + + /* Configure DMA Channel destination address */ + hdma->Instance->CMAR = DstAddress; + } +} + +/** + * @} + */ + +#endif /* HAL_DMA_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c new file mode 100644 index 0000000..60030e8 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c @@ -0,0 +1,555 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 + * + @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_GetConfigLine(). + (++) 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_GetPending(). + + (#) Generate software interrupt using HAL_EXTI_GenerateSWI(). + + @endverbatim + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_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 + * @{ + */ + +/** + * @} + */ + +/* 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) +{ + uint32_t regval; + uint32_t linepos; + uint32_t maskline; + + /* 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 mask */ + 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 */ + /* Mask or set line */ + if ((pExtiConfig->Trigger & EXTI_TRIGGER_RISING) != 0x00u) + { + EXTI->RTSR |= maskline; + } + else + { + EXTI->RTSR &= ~maskline; + } + + /* Configure falling trigger */ + /* Mask or set line */ + if ((pExtiConfig->Trigger & EXTI_TRIGGER_FALLING) != 0x00u) + { + EXTI->FTSR |= maskline; + } + else + { + EXTI->FTSR &= ~maskline; + } + + + /* 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 = AFIO->EXTICR[linepos >> 2u]; + regval &= ~(AFIO_EXTICR1_EXTI0 << (AFIO_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + regval |= (pExtiConfig->GPIOSel << (AFIO_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + AFIO->EXTICR[linepos >> 2u] = regval; + } + } + + /* Configure interrupt mode : read current mode */ + /* Mask or set line */ + if ((pExtiConfig->Mode & EXTI_MODE_INTERRUPT) != 0x00u) + { + EXTI->IMR |= maskline; + } + else + { + EXTI->IMR &= ~maskline; + } + + /* Configure event mode : read current mode */ + /* Mask or set line */ + if ((pExtiConfig->Mode & EXTI_MODE_EVENT) != 0x00u) + { + EXTI->EMR |= maskline; + } + else + { + EXTI->EMR &= ~maskline; + } + + 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) +{ + uint32_t regval; + uint32_t linepos; + uint32_t maskline; + + /* 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 mask */ + linepos = (pExtiConfig->Line & EXTI_PIN_MASK); + maskline = (1uL << linepos); + + /* 1] Get core mode : interrupt */ + + /* Check if selected line is enable */ + if ((EXTI->IMR & maskline) != 0x00u) + { + pExtiConfig->Mode = EXTI_MODE_INTERRUPT; + } + else + { + pExtiConfig->Mode = EXTI_MODE_NONE; + } + + /* Get event mode */ + /* Check if selected line is enable */ + if ((EXTI->EMR & 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) + { + /* Check if configuration of selected line is enable */ + if ((EXTI->RTSR & maskline) != 0x00u) + { + pExtiConfig->Trigger = EXTI_TRIGGER_RISING; + } + + /* Get falling configuration */ + /* Check if configuration of selected line is enable */ + if ((EXTI->FTSR & 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 = AFIO->EXTICR[linepos >> 2u]; + pExtiConfig->GPIOSel = ((regval << (AFIO_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >> 24); + } + } + + 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) +{ + uint32_t regval; + uint32_t linepos; + uint32_t maskline; + + /* Check null pointer */ + if (hexti == NULL) + { + return HAL_ERROR; + } + + /* Check the parameter */ + assert_param(IS_EXTI_LINE(hexti->Line)); + + /* compute line mask */ + linepos = (hexti->Line & EXTI_PIN_MASK); + maskline = (1uL << linepos); + + /* 1] Clear interrupt mode */ + EXTI->IMR = (EXTI->IMR & ~maskline); + + /* 2] Clear event mode */ + EXTI->EMR = (EXTI->EMR & ~maskline); + + /* 3] Clear triggers in case of configurable lines */ + if ((hexti->Line & EXTI_CONFIG) != 0x00u) + { + EXTI->RTSR = (EXTI->RTSR & ~maskline); + EXTI->FTSR = (EXTI->FTSR & ~maskline); + + /* Get Gpio port selection for gpio lines */ + if ((hexti->Line & EXTI_GPIO) == EXTI_GPIO) + { + assert_param(IS_EXTI_GPIO_PIN(linepos)); + + regval = AFIO->EXTICR[linepos >> 2u]; + regval &= ~(AFIO_EXTICR1_EXTI0 << (AFIO_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + AFIO->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) +{ + uint32_t regval; + uint32_t maskline; + + /* Compute line mask */ + maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + + /* Get pending bit */ + regval = (EXTI->PR & 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) +{ + uint32_t regval; + uint32_t maskline; + uint32_t linepos; + + /* Check parameters */ + assert_param(IS_EXTI_LINE(hexti->Line)); + assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); + assert_param(IS_EXTI_PENDING_EDGE(Edge)); + + /* Prevent unused argument compilation warning */ + UNUSED(Edge); + + /* Compute line mask */ + linepos = (hexti->Line & EXTI_PIN_MASK); + maskline = (1uL << linepos); + + /* return 1 if bit is set else 0 */ + regval = ((EXTI->PR & 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) +{ + uint32_t maskline; + + /* Check parameters */ + assert_param(IS_EXTI_LINE(hexti->Line)); + assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); + assert_param(IS_EXTI_PENDING_EDGE(Edge)); + + /* Prevent unused argument compilation warning */ + UNUSED(Edge); + + /* Compute line mask */ + maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + + /* Clear Pending bit */ + EXTI->PR = maskline; +} + +/** + * @brief Generate a software interrupt for a dedicated line. + * @param hexti Exti handle. + * @retval None. + */ +void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti) +{ + uint32_t maskline; + + /* Check parameters */ + assert_param(IS_EXTI_LINE(hexti->Line)); + assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); + + /* Compute line mask */ + maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); + + /* Generate Software interrupt */ + EXTI->SWIER = maskline; +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_EXTI_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c new file mode 100644 index 0000000..50abf92 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c @@ -0,0 +1,967 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 STM32F1xx 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 component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_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 programmation (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: Specifies the address to be programmed. + * @param Data: Specifies 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 = 0; + uint8_t nbiterations = 0; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Check the parameters */ + assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); + assert_param(IS_FLASH_PROGRAM_ADDRESS(Address)); + +#if defined(FLASH_BANK2_END) + if(Address <= FLASH_BANK1_END) + { +#endif /* FLASH_BANK2_END */ + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); +#if defined(FLASH_BANK2_END) + } + else + { + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperationBank2(FLASH_TIMEOUT_VALUE); + } +#endif /* FLASH_BANK2_END */ + + 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))); + +#if defined(FLASH_BANK2_END) + if(Address <= FLASH_BANK1_END) + { +#endif /* FLASH_BANK2_END */ + /* 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); +#if defined(FLASH_BANK2_END) + } + else + { + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperationBank2(FLASH_TIMEOUT_VALUE); + + /* If the program operation is completed, disable the PG Bit */ + CLEAR_BIT(FLASH->CR2, FLASH_CR2_PG); + } +#endif /* FLASH_BANK2_END */ + /* In case of error, stop programation 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: Specifies the address to be programmed. + * @param Data: Specifies 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)); + +#if defined(FLASH_BANK2_END) + /* If procedure already ongoing, reject the next one */ + if (pFlash.ProcedureOnGoing != FLASH_PROC_NONE) + { + return HAL_ERROR; + } + + if(Address <= FLASH_BANK1_END) + { + /* Enable End of FLASH Operation and Error source interrupts */ + __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP_BANK1 | FLASH_IT_ERR_BANK1); + + }else + { + /* Enable End of FLASH Operation and Error source interrupts */ + __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP_BANK2 | FLASH_IT_ERR_BANK2); + } +#else + /* Enable End of FLASH Operation and Error source interrupts */ + __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR); +#endif /* FLASH_BANK2_END */ + + 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 defined(FLASH_BANK2_END) + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR_BANK1) || __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR_BANK1) || \ + (__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR_BANK2) || __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR_BANK2))) +#else + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) +#endif /* FLASH_BANK2_END */ + { + /* 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 defined(FLASH_BANK2_END) + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP_BANK1)) + { + /* Clear FLASH End of Operation pending bit */ + __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP_BANK1); +#else + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP)) + { + /* Clear FLASH End of Operation pending bit */ + __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); +#endif /* FLASH_BANK2_END */ + + /* 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); + +#if defined(FLASH_BANK2_END) + /* Stop Mass Erase procedure if no pending mass erase on other bank */ + if (HAL_IS_BIT_CLR(FLASH->CR2, FLASH_CR2_MER)) + { +#endif /* FLASH_BANK2_END */ + /* MassErase ended. Return the selected bank */ + /* FLASH EOP interrupt user callback */ + HAL_FLASH_EndOfOperationCallback(0U); + + /* Stop Mass Erase procedure*/ + pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + } +#if defined(FLASH_BANK2_END) + } +#endif /* FLASH_BANK2_END */ + 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 defined(FLASH_BANK2_END) + /* Check FLASH End of Operation flag */ + if(__HAL_FLASH_GET_FLAG( FLASH_FLAG_EOP_BANK2)) + { + /* Clear FLASH End of Operation pending bit */ + __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP_BANK2); + + /* 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) + { + /* Indicate user which page address has been erased*/ + HAL_FLASH_EndOfOperationCallback(pFlash.Address); + + /* Increment page address to next page */ + pFlash.Address += FLASH_PAGE_SIZE; + addresstmp = pFlash.Address; + + /* Operation is completed, disable the PER Bit */ + CLEAR_BIT(FLASH->CR2, FLASH_CR2_PER); + + FLASH_PageErase(addresstmp); + } + else + { + /*No more pages to Erase*/ + + /*Reset Address and stop Erase pages procedure*/ + pFlash.Address = 0xFFFFFFFFU; + pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + + /* FLASH EOP interrupt user callback */ + HAL_FLASH_EndOfOperationCallback(pFlash.Address); + } + } + else if(pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE) + { + /* Operation is completed, disable the MER Bit */ + CLEAR_BIT(FLASH->CR2, FLASH_CR2_MER); + + if (HAL_IS_BIT_CLR(FLASH->CR, FLASH_CR_MER)) + { + /* MassErase ended. Return the selected bank*/ + /* FLASH EOP interrupt user callback */ + HAL_FLASH_EndOfOperationCallback(0U); + + 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->CR2, FLASH_CR2_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; + } + } + } + } +#endif + + if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE) + { +#if defined(FLASH_BANK2_END) + /* Operation is completed, disable the PG, PER and MER Bits for both bank */ + CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_PER | FLASH_CR_MER)); + CLEAR_BIT(FLASH->CR2, (FLASH_CR2_PG | FLASH_CR2_PER | FLASH_CR2_MER)); + + /* Disable End of FLASH Operation and Error source interrupts for both banks */ + __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP_BANK1 | FLASH_IT_ERR_BANK1 | FLASH_IT_EOP_BANK2 | FLASH_IT_ERR_BANK2); +#else + /* 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); +#endif /* FLASH_BANK2_END */ + + /* 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; + } + } +#if defined(FLASH_BANK2_END) + if(READ_BIT(FLASH->CR2, FLASH_CR2_LOCK) != RESET) + { + /* Authorize the FLASH BANK2 Registers access */ + WRITE_REG(FLASH->KEYR2, FLASH_KEY1); + WRITE_REG(FLASH->KEYR2, FLASH_KEY2); + + /* Verify Flash BANK2 is unlocked */ + if(READ_BIT(FLASH->CR2, FLASH_CR2_LOCK) != RESET) + { + status = HAL_ERROR; + } + } +#endif /* FLASH_BANK2_END */ + + 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); + +#if defined(FLASH_BANK2_END) + /* Set the LOCK Bit to lock the FLASH BANK2 Registers access */ + SET_BIT(FLASH->CR2, FLASH_CR2_LOCK); + +#endif /* FLASH_BANK2_END */ + 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 None + */ +void HAL_FLASH_OB_Launch(void) +{ + /* Initiates a system reset request to launch the option byte loading */ + HAL_NVIC_SystemReset(); +} + +/** + * @} + */ + +/** @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; + +#if defined(FLASH_BANK2_END) + if(Address <= FLASH_BANK1_END) + { +#endif /* FLASH_BANK2_END */ + /* Proceed to program the new data */ + SET_BIT(FLASH->CR, FLASH_CR_PG); +#if defined(FLASH_BANK2_END) + } + else + { + /* Proceed to program the new data */ + SET_BIT(FLASH->CR2, FLASH_CR2_PG); + } +#endif /* FLASH_BANK2_END */ + + /* 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_OPTVERR) || + __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; +} + +#if defined(FLASH_BANK2_END) +/** + * @brief Wait for a FLASH BANK2 operation to complete. + * @param Timeout maximum flash operation timeout + * @retval HAL_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef FLASH_WaitForLastOperationBank2(uint32_t Timeout) +{ + /* Wait for the FLASH BANK2 operation to complete by polling on BUSY flag to be reset. + Even if the FLASH BANK2 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_BANK2)) + { + 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_BANK2)) + { + /* Clear FLASH End of Operation pending bit */ + __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP_BANK2); + } + + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR_BANK2) || __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR_BANK2)) + { + /*Save the error code*/ + FLASH_SetErrorCode(); + return HAL_ERROR; + } + + /* If there is an error flag set */ + return HAL_OK; + +} +#endif /* FLASH_BANK2_END */ + +/** + * @brief Set the specific FLASH error flag. + * @retval None + */ +static void FLASH_SetErrorCode(void) +{ + uint32_t flags = 0U; + +#if defined(FLASH_BANK2_END) + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) || __HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR_BANK2)) +#else + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR)) +#endif /* FLASH_BANK2_END */ + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP; +#if defined(FLASH_BANK2_END) + flags |= FLASH_FLAG_WRPERR | FLASH_FLAG_WRPERR_BANK2; +#else + flags |= FLASH_FLAG_WRPERR; +#endif /* FLASH_BANK2_END */ + } +#if defined(FLASH_BANK2_END) + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR) || __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR_BANK2)) +#else + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) +#endif /* FLASH_BANK2_END */ + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_PROG; +#if defined(FLASH_BANK2_END) + flags |= FLASH_FLAG_PGERR | FLASH_FLAG_PGERR_BANK2; +#else + flags |= FLASH_FLAG_PGERR; +#endif /* FLASH_BANK2_END */ + } + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_OPTV; + __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPTVERR); + } + + /* Clear FLASH error pending bits */ + __HAL_FLASH_CLEAR_FLAG(flags); +} +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_FLASH_MODULE_ENABLED */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c new file mode 100644 index 0000000..ebd6f8b --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c @@ -0,0 +1,1127 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 STM32F1xxx 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 component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_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 FLASH_OBR_IWDG_SW_Pos +#define FLASH_POSITION_OB_USERDATA0_BIT FLASH_OBR_DATA0_Pos +#define FLASH_POSITION_OB_USERDATA1_BIT FLASH_OBR_DATA1_Pos +/** + * @} + */ + +/* 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(uint32_t Banks); +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: + (+) @ref HAL_FLASHEx_Erase: return only when erase has been done + (+) @ref HAL_FLASHEx_Erase_IT: end of erase is done when @ref HAL_FLASH_EndOfOperationCallback + is called with parameter 0xFFFFFFFF + + [..] Any operation of erase should follow these steps: + (#) Call the @ref HAL_FLASH_Unlock() function to enable the flash control register and + program memory access. + (#) Call the desired function to erase page. + (#) Call the @ref 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) + { +#if defined(FLASH_BANK2_END) + if (pEraseInit->Banks == FLASH_BANK_BOTH) + { + /* Mass Erase requested for Bank1 and Bank2 */ + /* Wait for last operation to be completed */ + if ((FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) && \ + (FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK)) + { + /*Mass erase to be done*/ + FLASH_MassErase(FLASH_BANK_BOTH); + + /* Wait for last operation to be completed */ + if ((FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) && \ + (FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK)) + { + status = HAL_OK; + } + + /* If the erase operation is completed, disable the MER Bit */ + CLEAR_BIT(FLASH->CR, FLASH_CR_MER); + CLEAR_BIT(FLASH->CR2, FLASH_CR2_MER); + } + } + else if (pEraseInit->Banks == FLASH_BANK_2) + { + /* Mass Erase requested for Bank2 */ + /* Wait for last operation to be completed */ + if (FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) + { + /*Mass erase to be done*/ + FLASH_MassErase(FLASH_BANK_2); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE); + + /* If the erase operation is completed, disable the MER Bit */ + CLEAR_BIT(FLASH->CR2, FLASH_CR2_MER); + } + } + else +#endif /* FLASH_BANK2_END */ + { + /* 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(FLASH_BANK_1); + + /* 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)); + +#if defined(FLASH_BANK2_END) + /* Page Erase requested on address located on bank2 */ + if(pEraseInit->PageAddress > FLASH_BANK1_END) + { + /* Wait for last operation to be completed */ + if (FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) + { + /*Initialization of PageError variable*/ + *PageError = 0xFFFFFFFFU; + + /* Erase by page by page to be done*/ + for(address = pEraseInit->PageAddress; + address < (pEraseInit->PageAddress + (pEraseInit->NbPages)*FLASH_PAGE_SIZE); + address += FLASH_PAGE_SIZE) + { + FLASH_PageErase(address); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE); + + /* If the erase operation is completed, disable the PER Bit */ + CLEAR_BIT(FLASH->CR2, FLASH_CR2_PER); + + if (status != HAL_OK) + { + /* In case of error, stop erase procedure and return the faulty address */ + *PageError = address; + break; + } + } + } + } + else +#endif /* FLASH_BANK2_END */ + { + /* 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 defined(FLASH_BANK2_END) + /* Enable End of FLASH Operation and Error source interrupts */ + __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP_BANK2 | FLASH_IT_ERR_BANK2); + +#endif + if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) + { + /*Mass erase to be done*/ + pFlash.ProcedureOnGoing = FLASH_PROC_MASSERASE; + FLASH_MassErase(pEraseInit->Banks); + } + 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 = 0; + + 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 + * @param Banks Banks to be erased + * This parameter can be one of the following values: + * @arg @ref FLASH_BANK_1 Bank1 to be erased + @if STM32F101xG + * @arg @ref FLASH_BANK_2 Bank2 to be erased + * @arg @ref FLASH_BANK_BOTH Bank1 and Bank2 to be erased + @endif + @if STM32F103xG + * @arg @ref FLASH_BANK_2 Bank2 to be erased + * @arg @ref FLASH_BANK_BOTH Bank1 and Bank2 to be erased + @endif + * + * @retval None + */ +static void FLASH_MassErase(uint32_t Banks) +{ + /* Check the parameters */ + assert_param(IS_FLASH_BANK(Banks)); + + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + +#if defined(FLASH_BANK2_END) + if(Banks == FLASH_BANK_BOTH) + { + /* bank1 & bank2 will be erased*/ + SET_BIT(FLASH->CR, FLASH_CR_MER); + SET_BIT(FLASH->CR2, FLASH_CR2_MER); + SET_BIT(FLASH->CR, FLASH_CR_STRT); + SET_BIT(FLASH->CR2, FLASH_CR2_STRT); + } + else if(Banks == FLASH_BANK_2) + { + /*Only bank2 will be erased*/ + SET_BIT(FLASH->CR2, FLASH_CR2_MER); + SET_BIT(FLASH->CR2, FLASH_CR2_STRT); + } + else + { +#endif /* FLASH_BANK2_END */ +#if !defined(FLASH_BANK2_END) + /* Prevent unused argument(s) compilation warning */ + UNUSED(Banks); +#endif /* FLASH_BANK2_END */ + /* Only bank1 will be erased*/ + SET_BIT(FLASH->CR, FLASH_CR_MER); + SET_BIT(FLASH->CR, FLASH_CR_STRT); +#if defined(FLASH_BANK2_END) + } +#endif /* FLASH_BANK2_END */ +} + +/** + * @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 = 0xFFFF; +#if defined(FLASH_WRP1_WRP1) + uint16_t WRP1_Data = 0xFFFF; +#endif /* FLASH_WRP1_WRP1 */ +#if defined(FLASH_WRP2_WRP2) + uint16_t WRP2_Data = 0xFFFF; +#endif /* FLASH_WRP2_WRP2 */ +#if defined(FLASH_WRP3_WRP3) + uint16_t WRP3_Data = 0xFFFF; +#endif /* FLASH_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); +#elif defined(OB_WRP_PAGES0TO31MASK) + WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO31MASK); +#endif /* OB_WRP_PAGES0TO31MASK */ + +#if defined(OB_WRP_PAGES16TO31MASK) + WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES16TO31MASK) >> 8U); +#elif defined(OB_WRP_PAGES32TO63MASK) + WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO63MASK) >> 8U); +#endif /* OB_WRP_PAGES32TO63MASK */ + +#if defined(OB_WRP_PAGES64TO95MASK) + WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES64TO95MASK) >> 16U); +#endif /* OB_WRP_PAGES64TO95MASK */ +#if defined(OB_WRP_PAGES32TO47MASK) + WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO47MASK) >> 16U); +#endif /* OB_WRP_PAGES32TO47MASK */ + +#if defined(OB_WRP_PAGES96TO127MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES96TO127MASK) >> 24U); +#elif defined(OB_WRP_PAGES48TO255MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO255MASK) >> 24U); +#elif defined(OB_WRP_PAGES48TO511MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO511MASK) >> 24U); +#elif defined(OB_WRP_PAGES48TO127MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO127MASK) >> 24U); +#endif /* OB_WRP_PAGES96TO127MASK */ + + /* 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(FLASH_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 /* FLASH_WRP0_WRP0 */ + +#if defined(FLASH_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 /* FLASH_WRP1_WRP1 */ + +#if defined(FLASH_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 /* FLASH_WRP2_WRP2 */ + +#if defined(FLASH_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 /* FLASH_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 = 0xFFFF; +#if defined(FLASH_WRP1_WRP1) + uint16_t WRP1_Data = 0xFFFF; +#endif /* FLASH_WRP1_WRP1 */ +#if defined(FLASH_WRP2_WRP2) + uint16_t WRP2_Data = 0xFFFF; +#endif /* FLASH_WRP2_WRP2 */ +#if defined(FLASH_WRP3_WRP3) + uint16_t WRP3_Data = 0xFFFF; +#endif /* FLASH_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); +#elif defined(OB_WRP_PAGES0TO31MASK) + WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO31MASK); +#endif /* OB_WRP_PAGES0TO31MASK */ + +#if defined(OB_WRP_PAGES16TO31MASK) + WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES16TO31MASK) >> 8U); +#elif defined(OB_WRP_PAGES32TO63MASK) + WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO63MASK) >> 8U); +#endif /* OB_WRP_PAGES32TO63MASK */ + +#if defined(OB_WRP_PAGES64TO95MASK) + WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES64TO95MASK) >> 16U); +#endif /* OB_WRP_PAGES64TO95MASK */ +#if defined(OB_WRP_PAGES32TO47MASK) + WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO47MASK) >> 16U); +#endif /* OB_WRP_PAGES32TO47MASK */ + +#if defined(OB_WRP_PAGES96TO127MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES96TO127MASK) >> 24U); +#elif defined(OB_WRP_PAGES48TO255MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO255MASK) >> 24U); +#elif defined(OB_WRP_PAGES48TO511MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO511MASK) >> 24U); +#elif defined(OB_WRP_PAGES48TO127MASK) + WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO127MASK) >> 24U); +#endif /* OB_WRP_PAGES96TO127MASK */ + + + /* 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(FLASH_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 /* FLASH_WRP0_WRP0 */ + +#if defined(FLASH_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 /* FLASH_WRP1_WRP1 */ + +#if defined(FLASH_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 /* FLASH_WRP2_WRP2 */ + +#if defined(FLASH_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 /* FLASH_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 + * @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 FLASH_OBR_IWDG_SW(Bit2), + * FLASH_OBR_nRST_STOP(Bit3),FLASH_OBR_nRST_STDBY(Bit4). + * And BFBF2(Bit5) for STM32F101xG and STM32F103xG . + * @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))); +#if defined(FLASH_BANK2_END) + assert_param(IS_OB_BOOT1((UserConfig&OB_BOOT1_SET))); +#endif /* FLASH_BANK2_END */ + + /* 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_BANK2_END) + OB->USER = (UserConfig | 0xF0U); +#else + OB->USER = (UserConfig | 0x88U); +#endif /* FLASH_BANK2_END */ + + /* 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 + */ +static uint32_t FLASH_OB_GetRDP(void) +{ + uint32_t readstatus = OB_RDP_LEVEL_0; + uint32_t tmp_reg = 0U; + + /* Read RDP level bits */ + tmp_reg = READ_BIT(FLASH->OBR, FLASH_OBR_RDPRT); + + if (tmp_reg == FLASH_OBR_RDPRT) + { + readstatus = OB_RDP_LEVEL_1; + } + else + { + readstatus = OB_RDP_LEVEL_0; + } + + return readstatus; +} + +/** + * @brief Return the FLASH User Option Byte value. + * @retval The FLASH User Option Bytes values: FLASH_OBR_IWDG_SW(Bit2), + * FLASH_OBR_nRST_STOP(Bit3),FLASH_OBR_nRST_STDBY(Bit4). + * And FLASH_OBR_BFB2(Bit5) for STM32F101xG and STM32F103xG . + */ +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; + +#if defined(FLASH_BANK2_END) + if(PageAddress > FLASH_BANK1_END) + { + /* Proceed to erase the page */ + SET_BIT(FLASH->CR2, FLASH_CR2_PER); + WRITE_REG(FLASH->AR2, PageAddress); + SET_BIT(FLASH->CR2, FLASH_CR2_STRT); + } + else + { +#endif /* FLASH_BANK2_END */ + /* Proceed to erase the page */ + SET_BIT(FLASH->CR, FLASH_CR_PER); + WRITE_REG(FLASH->AR, PageAddress); + SET_BIT(FLASH->CR, FLASH_CR_STRT); +#if defined(FLASH_BANK2_END) + } +#endif /* FLASH_BANK2_END */ +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_FLASH_MODULE_ENABLED */ +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c new file mode 100644 index 0000000..cd3563a --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c @@ -0,0 +1,587 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 + * + @verbatim + ============================================================================== + ##### GPIO Peripheral features ##### + ============================================================================== + [..] + Subject to the specific hardware characteristics of each I/O port listed in the datasheet, each + port bit of the General Purpose IO (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. + + [..] + 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 20 edge detectors in connectivity + line devices, or 19 edge detectors in other devices for generating event/interrupt requests. + Each input line can be independently configured to select the type (event or interrupt) and + the corresponding trigger event (rising or falling or both). Each line can also masked + independently. A pending register maintains the status line of the interrupt requests + + ##### How to use this driver ##### + ============================================================================== + [..] + (#) Enable the GPIO APB2 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 + (++) Analog mode is required when a pin is to be used as ADC channel + or DAC output. + (++) In case of external interrupt/event selection the "Mode" member from + GPIO_InitTypeDef structure select the type (interrupt or event) and + the corresponding trigger event (rising or falling or both). + + (#) In case of external interrupt/event mode selection, configure NVIC IRQ priority + mapped to the EXTI line using HAL_NVIC_SetPriority() and enable it using + HAL_NVIC_EnableIRQ(). + + (#) To get the level of a pin configured in input mode use HAL_GPIO_ReadPin(). + + (#) To set/reset the level of a pin configured in output mode use + HAL_GPIO_WritePin()/HAL_GPIO_TogglePin(). + + (#) To lock pin configuration until next reset use HAL_GPIO_LockPin(). + + (#) During and just after reset, the alternate functions are not + active and the GPIO pins are configured in input floating mode (except JTAG + pins). + + (#) The LSE oscillator pins OSC32_IN and OSC32_OUT can be used as general purpose + (PC14 and PC15, respectively) when the LSE oscillator is off. The LSE has + priority over the GPIO function. + + (#) The HSE oscillator pins OSC_IN/OSC_OUT can be used as + general purpose PD0 and PD1, respectively, when the HSE oscillator is off. + The HSE has priority over the GPIO function. + + @endverbatim + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @defgroup GPIO GPIO + * @brief GPIO HAL module driver + * @{ + */ + +#ifdef HAL_GPIO_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @addtogroup GPIO_Private_Constants GPIO Private Constants + * @{ + */ +#define GPIO_MODE 0x00000003u +#define EXTI_MODE 0x10000000u +#define GPIO_MODE_IT 0x00010000u +#define GPIO_MODE_EVT 0x00020000u +#define RISING_EDGE 0x00100000u +#define FALLING_EDGE 0x00200000u +#define GPIO_OUTPUT_TYPE 0x00000010u + +#define GPIO_NUMBER 16u + +/* Definitions for bit manipulation of CRL and CRH register */ +#define GPIO_CR_MODE_INPUT 0x00000000u /*!< 00: Input mode (reset state) */ +#define GPIO_CR_CNF_ANALOG 0x00000000u /*!< 00: Analog mode */ +#define GPIO_CR_CNF_INPUT_FLOATING 0x00000004u /*!< 01: Floating input (reset state) */ +#define GPIO_CR_CNF_INPUT_PU_PD 0x00000008u /*!< 10: Input with pull-up / pull-down */ +#define GPIO_CR_CNF_GP_OUTPUT_PP 0x00000000u /*!< 00: General purpose output push-pull */ +#define GPIO_CR_CNF_GP_OUTPUT_OD 0x00000004u /*!< 01: General purpose output Open-drain */ +#define GPIO_CR_CNF_AF_OUTPUT_PP 0x00000008u /*!< 10: Alternate function output Push-pull */ +#define GPIO_CR_CNF_AF_OUTPUT_OD 0x0000000Cu /*!< 11: Alternate function output Open-drain */ + +/** + * @} + */ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ +/** @defgroup GPIO_Exported_Functions GPIO Exported Functions + * @{ + */ + +/** @defgroup GPIO_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 initialize and de-initialize the GPIOs + to be ready for use. + +@endverbatim + * @{ + */ + + +/** + * @brief Initializes the GPIOx peripheral according to the specified parameters in the GPIO_Init. + * @param GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral + * @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 ioposition; + uint32_t iocurrent; + uint32_t temp; + uint32_t config = 0x00u; + __IO uint32_t *configregister; /* Store the address of CRL or CRH register based on pin number */ + uint32_t registeroffset; /* offset used during computation of CNF and MODE bits placement inside CRL or CRH register */ + + /* 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 the IO position */ + ioposition = (0x01uL << position); + + /* Get the current IO position */ + iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition; + + if (iocurrent == ioposition) + { + /* Check the Alternate function parameters */ + assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); + + /* Based on the required mode, filling config variable with MODEy[1:0] and CNFy[3:2] corresponding bits */ + switch (GPIO_Init->Mode) + { + /* If we are configuring the pin in OUTPUT push-pull mode */ + case GPIO_MODE_OUTPUT_PP: + /* Check the GPIO speed parameter */ + assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_PP; + break; + + /* If we are configuring the pin in OUTPUT open-drain mode */ + case GPIO_MODE_OUTPUT_OD: + /* Check the GPIO speed parameter */ + assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_OD; + break; + + /* If we are configuring the pin in ALTERNATE FUNCTION push-pull mode */ + case GPIO_MODE_AF_PP: + /* Check the GPIO speed parameter */ + assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_PP; + break; + + /* If we are configuring the pin in ALTERNATE FUNCTION open-drain mode */ + case GPIO_MODE_AF_OD: + /* Check the GPIO speed parameter */ + assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_OD; + break; + + /* If we are configuring the pin in INPUT (also applicable to EVENT and IT mode) */ + case GPIO_MODE_INPUT: + case GPIO_MODE_IT_RISING: + case GPIO_MODE_IT_FALLING: + case GPIO_MODE_IT_RISING_FALLING: + case GPIO_MODE_EVT_RISING: + case GPIO_MODE_EVT_FALLING: + case GPIO_MODE_EVT_RISING_FALLING: + /* Check the GPIO pull parameter */ + assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); + if (GPIO_Init->Pull == GPIO_NOPULL) + { + config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_FLOATING; + } + else if (GPIO_Init->Pull == GPIO_PULLUP) + { + config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_PU_PD; + + /* Set the corresponding ODR bit */ + GPIOx->BSRR = ioposition; + } + else /* GPIO_PULLDOWN */ + { + config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_PU_PD; + + /* Reset the corresponding ODR bit */ + GPIOx->BRR = ioposition; + } + break; + + /* If we are configuring the pin in INPUT analog mode */ + case GPIO_MODE_ANALOG: + config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_ANALOG; + break; + + /* Parameters are checked with assert_param */ + default: + break; + } + + /* Check if the current bit belongs to first half or last half of the pin count number + in order to address CRH or CRL register*/ + configregister = (iocurrent < GPIO_PIN_8) ? &GPIOx->CRL : &GPIOx->CRH; + registeroffset = (iocurrent < GPIO_PIN_8) ? (position << 2u) : ((position - 8u) << 2u); + + /* Apply the new configuration of the pin to the register */ + MODIFY_REG((*configregister), ((GPIO_CRL_MODE0 | GPIO_CRL_CNF0) << registeroffset), (config << registeroffset)); + + /*--------------------- EXTI Mode Configuration ------------------------*/ + /* Configure the External Interrupt or event for the current IO */ + if ((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE) + { + /* Enable AFIO Clock */ + __HAL_RCC_AFIO_CLK_ENABLE(); + temp = AFIO->EXTICR[position >> 2u]; + CLEAR_BIT(temp, (0x0Fu) << (4u * (position & 0x03u))); + SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4u * (position & 0x03u))); + AFIO->EXTICR[position >> 2u] = temp; + + + /* Configure the interrupt mask */ + if ((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT) + { + SET_BIT(EXTI->IMR, iocurrent); + } + else + { + CLEAR_BIT(EXTI->IMR, iocurrent); + } + + /* Configure the event mask */ + if ((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT) + { + SET_BIT(EXTI->EMR, iocurrent); + } + else + { + CLEAR_BIT(EXTI->EMR, iocurrent); + } + + /* Enable or disable the rising trigger */ + if ((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE) + { + SET_BIT(EXTI->RTSR, iocurrent); + } + else + { + CLEAR_BIT(EXTI->RTSR, iocurrent); + } + + /* Enable or disable the falling trigger */ + if ((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE) + { + SET_BIT(EXTI->FTSR, iocurrent); + } + else + { + CLEAR_BIT(EXTI->FTSR, iocurrent); + } + } + } + + position++; + } +} + +/** + * @brief De-initializes the GPIOx peripheral registers to their default reset values. + * @param GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral + * @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; + __IO uint32_t *configregister; /* Store the address of CRL or CRH register based on pin number */ + uint32_t registeroffset; + + /* Check the parameters */ + assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); + assert_param(IS_GPIO_PIN(GPIO_Pin)); + + /* Configure the port pins */ + while ((GPIO_Pin >> position) != 0u) + { + /* Get current io position */ + iocurrent = (GPIO_Pin) & (1uL << position); + + if (iocurrent) + { + /*------------------------- EXTI Mode Configuration --------------------*/ + /* Clear the External Interrupt or Event for the current IO */ + + tmp = AFIO->EXTICR[position >> 2u]; + tmp &= 0x0FuL << (4u * (position & 0x03u)); + if (tmp == (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u)))) + { + tmp = 0x0FuL << (4u * (position & 0x03u)); + CLEAR_BIT(AFIO->EXTICR[position >> 2u], tmp); + + /* Clear EXTI line configuration */ + CLEAR_BIT(EXTI->IMR, (uint32_t)iocurrent); + CLEAR_BIT(EXTI->EMR, (uint32_t)iocurrent); + + /* Clear Rising Falling edge configuration */ + CLEAR_BIT(EXTI->RTSR, (uint32_t)iocurrent); + CLEAR_BIT(EXTI->FTSR, (uint32_t)iocurrent); + } + /*------------------------- GPIO Mode Configuration --------------------*/ + /* Check if the current bit belongs to first half or last half of the pin count number + in order to address CRH or CRL register */ + configregister = (iocurrent < GPIO_PIN_8) ? &GPIOx->CRL : &GPIOx->CRH; + registeroffset = (iocurrent < GPIO_PIN_8) ? (position << 2u) : ((position - 8u) << 2u); + + /* CRL/CRH default value is floating input(0x04) shifted to correct position */ + MODIFY_REG(*configregister, ((GPIO_CRL_MODE0 | GPIO_CRL_CNF0) << registeroffset), GPIO_CRL_CNF0_0 << registeroffset); + + /* ODR default value is 0 */ + CLEAR_BIT(GPIOx->ODR, iocurrent); + } + + position++; + } +} + +/** + * @} + */ + +/** @defgroup GPIO_Exported_Functions_Group2 IO operation functions + * @brief GPIO Read and Write + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to manage the GPIOs. + +@endverbatim + * @{ + */ + +/** + * @brief Reads the specified input port pin. + * @param GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral + * @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 Sets or clears the selected data port bit. + * + * @note This function uses GPIOx_BSRR register to allow atomic read/modify + * accesses. In this way, there is no risk of an IRQ occurring between + * the read and the modify access. + * + * @param GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral + * @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 = GPIO_Pin; + } + else + { + GPIOx->BSRR = (uint32_t)GPIO_Pin << 16u; + } +} + +/** + * @brief Toggles the specified GPIO pin + * @param GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral + * @param GPIO_Pin: Specifies the pins 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 Ouput 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 Locks GPIO Pins configuration registers. +* @note The locking mechanism allows the IO configuration to be frozen. When the LOCK sequence +* has been applied on a port bit, it is no longer possible to modify the value of the port bit until +* the next reset. +* @param GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral +* @param GPIO_Pin: specifies the port bit 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 */ + SET_BIT(tmp, GPIO_Pin); + /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */ + GPIOx->LCKR = tmp; + /* Reset LCKx bit(s): LCKK='0' + LCK[15-0] */ + GPIOx->LCKR = GPIO_Pin; + /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */ + GPIOx->LCKR = tmp; + /* Read LCKK register. This read is mandatory to complete key lock sequence */ + tmp = GPIOx->LCKR; + + /* read again in order to confirm lock is active */ + if ((uint32_t)(GPIOx->LCKR & GPIO_LCKR_LCKK)) + { + return HAL_OK; + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief This function handles EXTI interrupt request. + * @param GPIO_Pin: Specifies the pins connected 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 callbacks. + * @param GPIO_Pin: Specifies the pins connected 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 */ +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c new file mode 100644 index 0000000..c2d810c --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c @@ -0,0 +1,127 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_gpio_ex.c + * @author MCD Application Team + * @brief GPIO Extension HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the General Purpose Input/Output (GPIO) extension peripheral. + * + Extended features functions + * + @verbatim + ============================================================================== + ##### GPIO Peripheral extension features ##### + ============================================================================== + [..] GPIO module on STM32F1 family, manage also the AFIO register: + (+) Possibility to use the EVENTOUT Cortex feature + + ##### How to use this driver ##### + ============================================================================== + [..] This driver provides functions to use EVENTOUT Cortex feature + (#) Configure EVENTOUT Cortex feature using the function HAL_GPIOEx_ConfigEventout() + (#) Activate EVENTOUT Cortex feature using the HAL_GPIOEx_EnableEventout() + (#) Deactivate EVENTOUT Cortex feature using the HAL_GPIOEx_DisableEventout() + + @endverbatim + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @defgroup GPIOEx GPIOEx + * @brief GPIO HAL module driver + * @{ + */ + +#ifdef HAL_GPIO_MODULE_ENABLED + +/** @defgroup GPIOEx_Exported_Functions GPIOEx Exported Functions + * @{ + */ + +/** @defgroup GPIOEx_Exported_Functions_Group1 Extended features functions + * @brief Extended features functions + * +@verbatim + ============================================================================== + ##### Extended features functions ##### + ============================================================================== + [..] This section provides functions allowing to: + (+) Configure EVENTOUT Cortex feature using the function HAL_GPIOEx_ConfigEventout() + (+) Activate EVENTOUT Cortex feature using the HAL_GPIOEx_EnableEventout() + (+) Deactivate EVENTOUT Cortex feature using the HAL_GPIOEx_DisableEventout() + +@endverbatim + * @{ + */ + +/** + * @brief Configures the port and pin on which the EVENTOUT Cortex signal will be connected. + * @param GPIO_PortSource Select the port used to output the Cortex EVENTOUT signal. + * This parameter can be a value of @ref GPIOEx_EVENTOUT_PORT. + * @param GPIO_PinSource Select the pin used to output the Cortex EVENTOUT signal. + * This parameter can be a value of @ref GPIOEx_EVENTOUT_PIN. + * @retval None + */ +void HAL_GPIOEx_ConfigEventout(uint32_t GPIO_PortSource, uint32_t GPIO_PinSource) +{ + /* Verify the parameters */ + assert_param(IS_AFIO_EVENTOUT_PORT(GPIO_PortSource)); + assert_param(IS_AFIO_EVENTOUT_PIN(GPIO_PinSource)); + + /* Apply the new configuration */ + MODIFY_REG(AFIO->EVCR, (AFIO_EVCR_PORT) | (AFIO_EVCR_PIN), (GPIO_PortSource) | (GPIO_PinSource)); +} + +/** + * @brief Enables the Event Output. + * @retval None + */ +void HAL_GPIOEx_EnableEventout(void) +{ + SET_BIT(AFIO->EVCR, AFIO_EVCR_EVOE); +} + +/** + * @brief Disables the Event Output. + * @retval None + */ +void HAL_GPIOEx_DisableEventout(void) +{ + CLEAR_BIT(AFIO->EVCR, AFIO_EVCR_EVOE); +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_GPIO_MODULE_ENABLED */ + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c new file mode 100644 index 0000000..c757976 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c @@ -0,0 +1,621 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +/** @defgroup PWR PWR + * @brief PWR HAL module driver + * @{ + */ + +#ifdef HAL_PWR_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ + +/** @defgroup PWR_Private_Constants PWR Private Constants + * @{ + */ + +/** @defgroup PWR_PVD_Mode_Mask PWR PVD Mode Mask + * @{ + */ +#define PVD_MODE_IT 0x00010000U +#define PVD_MODE_EVT 0x00020000U +#define PVD_RISING_EDGE 0x00000001U +#define PVD_FALLING_EDGE 0x00000002U +/** + * @} + */ + + +/** @defgroup PWR_register_alias_address PWR Register alias address + * @{ + */ +/* ------------- PWR registers bit address in the alias region ---------------*/ +#define PWR_OFFSET (PWR_BASE - PERIPH_BASE) +#define PWR_CR_OFFSET 0x00U +#define PWR_CSR_OFFSET 0x04U +#define PWR_CR_OFFSET_BB (PWR_OFFSET + PWR_CR_OFFSET) +#define PWR_CSR_OFFSET_BB (PWR_OFFSET + PWR_CSR_OFFSET) +/** + * @} + */ + +/** @defgroup PWR_CR_register_alias PWR CR Register alias address + * @{ + */ +/* --- CR Register ---*/ +/* Alias word address of LPSDSR bit */ +#define LPSDSR_BIT_NUMBER PWR_CR_LPDS_Pos +#define CR_LPSDSR_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32U) + (LPSDSR_BIT_NUMBER * 4U))) + +/* Alias word address of DBP bit */ +#define DBP_BIT_NUMBER PWR_CR_DBP_Pos +#define CR_DBP_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32U) + (DBP_BIT_NUMBER * 4U))) + +/* Alias word address of PVDE bit */ +#define PVDE_BIT_NUMBER PWR_CR_PVDE_Pos +#define CR_PVDE_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32U) + (PVDE_BIT_NUMBER * 4U))) + +/** + * @} + */ + +/** @defgroup PWR_CSR_register_alias PWR CSR Register alias address + * @{ + */ + +/* --- CSR Register ---*/ +/* Alias word address of EWUP1 bit */ +#define CSR_EWUP_BB(VAL) ((uint32_t)(PERIPH_BB_BASE + (PWR_CSR_OFFSET_BB * 32U) + (POSITION_VAL(VAL) * 4U))) +/** + * @} + */ + +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup PWR_Private_Functions PWR Private Functions + * brief WFE cortex command overloaded for HAL_PWR_EnterSTOPMode usage only (see Workaround section) + * @{ + */ +static void PWR_OverloadWfe(void); + +/* Private functions ---------------------------------------------------------*/ +__NOINLINE +static void PWR_OverloadWfe(void) +{ + __asm volatile( "wfe" ); + __asm volatile( "nop" ); +} + +/** + * @} + */ + + +/** @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) 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 ). + * @note If the HSE divided by 128 is used as the RTC clock, the + * Backup Domain Access should be kept enabled. + * @retval None + */ +void HAL_PWR_EnableBkUpAccess(void) +{ + /* Enable access to RTC and backup registers */ + *(__IO uint32_t *) CR_DBP_BB = (uint32_t)ENABLE; +} + +/** + * @brief Disables access to the backup domain (RTC registers, RTC + * backup data registers). + * @note If the HSE divided by 128 is used as the RTC clock, the + * Backup Domain Access should be kept enabled. + * @retval None + */ +void HAL_PWR_DisableBkUpAccess(void) +{ + /* Disable access to RTC and backup registers */ + *(__IO uint32_t *) CR_DBP_BB = (uint32_t)DISABLE; +} + +/** + * @} + */ + +/** @defgroup PWR_Exported_Functions_Group2 Peripheral Control functions + * @brief Low Power modes configuration functions + * +@verbatim + =============================================================================== + ##### Peripheral Control functions ##### + =============================================================================== + + *** PVD configuration *** + ========================= + [..] + (+) The PVD is used to monitor the VDD power supply by comparing it to a + threshold selected by the PVD Level (PLS[2:0] bits in 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_PVD_EXTI_ENABLE_IT() macro. + (+) The PVD is stopped in Standby mode. + + *** WakeUp pin configuration *** + ================================ + [..] + (+) WakeUp pin is used to wake up the system from Standby mode. This pin is + forced in input pull-down configuration and is active on rising edges. + (+) There is one WakeUp pin: + WakeUp Pin 1 on PA.00. + + [..] + + *** Low Power modes configuration *** + ===================================== + [..] + The device features 3 low-power modes: + (+) Sleep mode: CPU clock off, all peripherals including Cortex-M3 core peripherals like + NVIC, SysTick, etc. are kept running + (+) Stop mode: All clocks are stopped + (+) Standby mode: 1.8V domain powered off + + + *** 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: + (++) WFI entry mode, Any peripheral interrupt acknowledged by the nested vectored interrupt + controller (NVIC) can wake up the device from Sleep mode. + (++) WFE entry mode, Any wakeup event can wake up the device from Sleep mode. + (+++) Any peripheral interrupt w/o NVIC configuration & SEVONPEND bit set in the Cortex (HAL_PWR_EnableSEVOnPend) + (+++) Any EXTI Line (Internal or External) configured in Event mode + + *** Stop mode *** + ================= + [..] + The Stop mode is based on the Cortex-M3 deepsleep mode combined with peripheral + clock gating. The voltage regulator can be configured either in normal or low-power mode. + In Stop mode, all clocks in the 1.8 V domain are stopped, the PLL, the HSI and the HSE RC + oscillators are disabled. SRAM and register contents are preserved. + In Stop mode, all I/O pins keep the same state as in Run mode. + + (+) Entry: + The Stop mode is entered using the HAL_PWR_EnterSTOPMode(PWR_REGULATOR_VALUE, PWR_SLEEPENTRY_WFx ) + function with: + (++) PWR_REGULATOR_VALUE= PWR_MAINREGULATOR_ON: Main regulator ON. + (++) PWR_REGULATOR_VALUE= PWR_LOWPOWERREGULATOR_ON: Low Power regulator ON. + (++) PWR_SLEEPENTRY_WFx= PWR_SLEEPENTRY_WFI: enter STOP mode with WFI instruction + (++) PWR_SLEEPENTRY_WFx= PWR_SLEEPENTRY_WFE: enter STOP mode with WFE instruction + (+) Exit: + (++) WFI entry mode, Any EXTI Line (Internal or External) configured in Interrupt mode with NVIC configured + (++) WFE entry mode, Any EXTI Line (Internal or External) configured in Event mode. + + *** Standby mode *** + ==================== + [..] + The Standby mode allows to achieve the lowest power consumption. It is based on the + Cortex-M3 deepsleep mode, with the voltage regulator disabled. The 1.8 V 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 registers in the Backup domain + and Standby circuitry + + (+) Entry: + (++) The Standby mode is entered using the HAL_PWR_EnterSTANDBYMode() function. + (+) Exit: + (++) WKUP pin rising edge, RTC alarm event rising edge, external Reset in + NRSTpin, IWDG Reset + + *** Auto-wakeup (AWU) from low-power mode *** + ============================================= + [..] + + (+) The MCU can be woken up from low-power mode by an RTC Alarm 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. + + *** PWR Workarounds linked to Silicon Limitation *** + ==================================================== + [..] + Below the list of all silicon limitations known on STM32F1xx prouct. + + (#)Workarounds Implemented inside PWR HAL Driver + (##)Debugging Stop mode with WFE entry - overloaded the WFE by an internal function + +@endverbatim + * @{ + */ + +/** + * @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_FALLING_EDGE(); + __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE(); + + /* Configure interrupt mode */ + if((sConfigPVD->Mode & PVD_MODE_IT) == PVD_MODE_IT) + { + __HAL_PWR_PVD_EXTI_ENABLE_IT(); + } + + /* Configure event mode */ + if((sConfigPVD->Mode & PVD_MODE_EVT) == PVD_MODE_EVT) + { + __HAL_PWR_PVD_EXTI_ENABLE_EVENT(); + } + + /* Configure the edge */ + if((sConfigPVD->Mode & PVD_RISING_EDGE) == PVD_RISING_EDGE) + { + __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE(); + } + + if((sConfigPVD->Mode & PVD_FALLING_EDGE) == PVD_FALLING_EDGE) + { + __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE(); + } +} + +/** + * @brief Enables the Power Voltage Detector(PVD). + * @retval None + */ +void HAL_PWR_EnablePVD(void) +{ + /* Enable the power voltage detector */ + *(__IO uint32_t *) CR_PVDE_BB = (uint32_t)ENABLE; +} + +/** + * @brief Disables the Power Voltage Detector(PVD). + * @retval None + */ +void HAL_PWR_DisablePVD(void) +{ + /* Disable the power voltage detector */ + *(__IO uint32_t *) CR_PVDE_BB = (uint32_t)DISABLE; +} + +/** + * @brief Enables the WakeUp PINx functionality. + * @param WakeUpPinx: Specifies the Power Wake-Up pin to enable. + * This parameter can be one of the following values: + * @arg PWR_WAKEUP_PIN1 + * @retval None + */ +void HAL_PWR_EnableWakeUpPin(uint32_t WakeUpPinx) +{ + /* Check the parameter */ + assert_param(IS_PWR_WAKEUP_PIN(WakeUpPinx)); + /* Enable the EWUPx pin */ + *(__IO uint32_t *) CSR_EWUP_BB(WakeUpPinx) = (uint32_t)ENABLE; +} + +/** + * @brief Disables the WakeUp PINx functionality. + * @param WakeUpPinx: Specifies the Power Wake-Up pin to disable. + * This parameter can be one of the following values: + * @arg PWR_WAKEUP_PIN1 + * @retval None + */ +void HAL_PWR_DisableWakeUpPin(uint32_t WakeUpPinx) +{ + /* Check the parameter */ + assert_param(IS_PWR_WAKEUP_PIN(WakeUpPinx)); + /* Disable the EWUPx pin */ + *(__IO uint32_t *) CSR_EWUP_BB(WakeUpPinx) = (uint32_t)DISABLE; +} + +/** + * @brief Enters Sleep mode. + * @note In Sleep mode, all I/O pins keep the same state as in Run mode. + * @param Regulator: Regulator state as no effect in SLEEP mode - allows to support portability from legacy 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 */ + /* No check on Regulator because parameter not used in SLEEP mode */ + /* Prevent unused argument(s) compilation warning */ + UNUSED(Regulator); + + assert_param(IS_PWR_SLEEP_ENTRY(SLEEPEntry)); + + /* Clear SLEEPDEEP bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + + /* Select SLEEP mode entry -------------------------------------------------*/ + if(SLEEPEntry == PWR_SLEEPENTRY_WFI) + { + /* Request Wait For Interrupt */ + __WFI(); + } + else + { + /* Request Wait For Event */ + __SEV(); + __WFE(); + __WFE(); + } +} + +/** + * @brief 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 using an interrupt or a wakeup event, + * 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) +{ + /* Check the parameters */ + assert_param(IS_PWR_REGULATOR(Regulator)); + assert_param(IS_PWR_STOP_ENTRY(STOPEntry)); + + /* Clear PDDS bit in PWR register to specify entering in STOP mode when CPU enter in Deepsleep */ + CLEAR_BIT(PWR->CR, PWR_CR_PDDS); + + /* Select the voltage regulator mode by setting LPDS bit in PWR register according to Regulator parameter value */ + MODIFY_REG(PWR->CR, PWR_CR_LPDS, Regulator); + + /* Set SLEEPDEEP bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + + /* Select Stop mode entry --------------------------------------------------*/ + if(STOPEntry == PWR_STOPENTRY_WFI) + { + /* Request Wait For Interrupt */ + __WFI(); + } + else + { + /* Request Wait For Event */ + __SEV(); + PWR_OverloadWfe(); /* WFE redefine locally */ + PWR_OverloadWfe(); /* WFE redefine locally */ + } + /* Reset SLEEPDEEP bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((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) + * - TAMPER pin if configured for tamper or calibration out. + * - WKUP pin (PA0) if enabled. + * @retval None + */ +void HAL_PWR_EnterSTANDBYMode(void) +{ + /* Select Standby mode */ + SET_BIT(PWR->CR, PWR_CR_PDDS); + + /* Set SLEEPDEEP bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); + + /* This option is used to ensure that store operations are completed */ +#if defined ( __CC_ARM) + __force_stores(); +#endif + /* Request Wait For Interrupt */ + __WFI(); +} + + +/** + * @brief 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 M3 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 M3 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)); +} + + + +/** + * @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 /* HAL_PWR_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c new file mode 100644 index 0000000..95b5568 --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c @@ -0,0 +1,1403 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 (I2S, RTC, ADC, USB OTG 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 component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_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 + * @{ + */ +/** + * @} + */ +/* 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 + * @{ + */ +/** + * @} + */ + +/* Private function prototypes -----------------------------------------------*/ +static void RCC_Delay(uint32_t mdelay); + +/* 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. + (#) LSI (low-speed internal), ~40 KHz low consumption RC used as IWDG and/or RTC + clock source. + + (#) HSE (high-speed external), 4 to 24 MHz (STM32F100xx) or 4 to 16 MHz (STM32F101x/STM32F102x/STM32F103x) or 3 to 25 MHz (STM32F105x/STM32F107x) 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 for STM32F10xxx or up to 24 MHz for STM32F100xx) + (++) The second output is used to generate the clock for the USB OTG FS (48 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-M3 NMI + (Non-Maskable Interrupt) exception vector. + + (#) MCO1 (microcontroller clock output), used to output SYSCLK, HSI, + HSE or PLL clock (divided by 2) on PA8 pin + PLL2CLK, PLL3CLK/2, PLL3CLK and XTI for STM32F105x/STM32F107x + + [..] 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 + "@ref HAL_RCC_GetSysClockFreq()" function to retrieve the frequencies of these clocks. + + -@- All the peripheral clocks are derived from the System clock (SYSCLK) except: + (+@) RTC: RTC clock can be derived either from the LSI, LSE or HSE clock + divided by 128. + (+@) USB OTG FS and RTC: USB OTG FS require a frequency equal to 48 MHz + to work correctly. This clock is derived of the main PLL through PLL Multiplier. + (+@) I2S interface on STM32F105x/STM32F107x can be derived from PLL3CLK + (+@) IWDG clock which is always the LSI clock. + + (#) For STM32F10xxx, the maximum frequency of the SYSCLK and HCLK/PCLK2 is 72 MHz, PCLK1 36 MHz. + For STM32F100xx, the maximum frequency of the SYSCLK and HCLK/PCLK1/PCLK2 is 24 MHz. + Depending on the SYSCLK frequency, the flash latency should be adapted accordingly. + @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, PLL, PLL2 and PLL3 are OFF + * - AHB, APB1 and APB2 prescaler set to 1. + * - CSS and MCO1 OFF + * - All interrupts disabled + * - All flags are cleared + * @note This function does not modify the configuration of the + * - Peripheral clocks + * - LSI, LSE and RTC clocks + * @retval HAL_StatusTypeDef + */ +HAL_StatusTypeDef HAL_RCC_DeInit(void) +{ + uint32_t tickstart; + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Set HSION bit */ + SET_BIT(RCC->CR, RCC_CR_HSION); + + /* 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 bits to the reset value */ + MODIFY_REG(RCC->CR, RCC_CR_HSITRIM, (0x10U << RCC_CR_HSITRIM_Pos)); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Reset CFGR register */ + CLEAR_REG(RCC->CFGR); + + /* Wait till clock switch is ready */ + while (READ_BIT(RCC->CFGR, RCC_CFGR_SWS) != RESET) + { + if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HSI_VALUE; + + /* Adapt Systick interrupt period */ + if (HAL_InitTick(uwTickPrio) != HAL_OK) + { + return HAL_ERROR; + } + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Second step is to clear PLLON bit */ + CLEAR_BIT(RCC->CR, RCC_CR_PLLON); + + /* Wait till PLL is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != RESET) + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Ensure to reset PLLSRC and PLLMUL bits */ + CLEAR_REG(RCC->CFGR); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Reset HSEON & CSSON bits */ + CLEAR_BIT(RCC->CR, RCC_CR_HSEON | RCC_CR_CSSON); + + /* Wait till HSE is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_HSERDY) != RESET) + { + if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Reset HSEBYP bit */ + CLEAR_BIT(RCC->CR, RCC_CR_HSEBYP); + +#if defined(RCC_PLL2_SUPPORT) + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Clear PLL2ON bit */ + CLEAR_BIT(RCC->CR, RCC_CR_PLL2ON); + + /* Wait till PLL2 is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_PLL2RDY) != RESET) + { + if ((HAL_GetTick() - tickstart) > PLL2_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } +#endif /* RCC_PLL2_SUPPORT */ + +#if defined(RCC_PLLI2S_SUPPORT) + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Clear PLL3ON bit */ + CLEAR_BIT(RCC->CR, RCC_CR_PLL3ON); + + /* Wait till PLL3 is disabled */ + while (READ_BIT(RCC->CR, RCC_CR_PLL3RDY) != RESET) + { + if ((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } +#endif /* RCC_PLLI2S_SUPPORT */ + +#if defined(RCC_CFGR2_PREDIV1) + /* Reset CFGR2 register */ + CLEAR_REG(RCC->CFGR2); +#endif /* RCC_CFGR2_PREDIV1 */ + + /* Reset all CSR flags */ + SET_BIT(RCC->CSR, RCC_CSR_RMVF); + + /* Disable all interrupts */ + CLEAR_REG(RCC->CIR); + + 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 The PLL is not disabled when USB OTG FS clock is enabled (specific to devices with USB FS) + * @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; + + /* 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); + + + /* 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_DIV2))) + { + /* 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; + } + } + /* To have a fully stabilized clock in the specified range, a software delay of 1ms + should be added.*/ + RCC_Delay(1); + } + 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(); + } + } + +#if defined(RCC_CR_PLL2ON) + /*-------------------------------- PLL2 Configuration -----------------------*/ + /* Check the parameters */ + assert_param(IS_RCC_PLL2(RCC_OscInitStruct->PLL2.PLL2State)); + if ((RCC_OscInitStruct->PLL2.PLL2State) != RCC_PLL2_NONE) + { + /* This bit can not be cleared if the PLL2 clock is used indirectly as system + clock (i.e. it is used as PLL clock entry that is used as system clock). */ + if ((__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE) && \ + (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && \ + ((READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC)) == RCC_CFGR2_PREDIV1SRC_PLL2)) + { + return HAL_ERROR; + } + else + { + if ((RCC_OscInitStruct->PLL2.PLL2State) == RCC_PLL2_ON) + { + /* Check the parameters */ + assert_param(IS_RCC_PLL2_MUL(RCC_OscInitStruct->PLL2.PLL2MUL)); + assert_param(IS_RCC_HSE_PREDIV2(RCC_OscInitStruct->PLL2.HSEPrediv2Value)); + + /* Prediv2 can be written only when the PLLI2S is disabled. */ + /* Return an error only if new value is different from the programmed value */ + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLL3ON) && \ + (__HAL_RCC_HSE_GET_PREDIV2() != RCC_OscInitStruct->PLL2.HSEPrediv2Value)) + { + return HAL_ERROR; + } + + /* Disable the main PLL2. */ + __HAL_RCC_PLL2_DISABLE(); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till PLL2 is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLL2RDY) != RESET) + { + if ((HAL_GetTick() - tickstart) > PLL2_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Configure the HSE prediv2 factor --------------------------------*/ + __HAL_RCC_HSE_PREDIV2_CONFIG(RCC_OscInitStruct->PLL2.HSEPrediv2Value); + + /* Configure the main PLL2 multiplication factors. */ + __HAL_RCC_PLL2_CONFIG(RCC_OscInitStruct->PLL2.PLL2MUL); + + /* Enable the main PLL2. */ + __HAL_RCC_PLL2_ENABLE(); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till PLL2 is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLL2RDY) == RESET) + { + if ((HAL_GetTick() - tickstart) > PLL2_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Set PREDIV1 source to HSE */ + CLEAR_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC); + + /* Disable the main PLL2. */ + __HAL_RCC_PLL2_DISABLE(); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till PLL2 is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLL2RDY) != RESET) + { + if ((HAL_GetTick() - tickstart) > PLL2_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } + } + +#endif /* RCC_CR_PLL2ON */ + /*-------------------------------- PLL Configuration -----------------------*/ + /* Check the parameters */ + assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); + if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) + { + /* 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)); + + /* 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; + } + } + + /* Configure the HSE prediv factor --------------------------------*/ + /* It can be written only when the PLL is disabled. Not used in PLL source is different than HSE */ + if (RCC_OscInitStruct->PLL.PLLSource == RCC_PLLSOURCE_HSE) + { + /* Check the parameter */ + assert_param(IS_RCC_HSE_PREDIV(RCC_OscInitStruct->HSEPredivValue)); +#if defined(RCC_CFGR2_PREDIV1SRC) + assert_param(IS_RCC_PREDIV1_SOURCE(RCC_OscInitStruct->Prediv1Source)); + + /* Set PREDIV1 source */ + SET_BIT(RCC->CFGR2, RCC_OscInitStruct->Prediv1Source); +#endif /* RCC_CFGR2_PREDIV1SRC */ + + /* Set PREDIV1 Value */ + __HAL_RCC_HSE_PREDIV_CONFIG(RCC_OscInitStruct->HSEPredivValue); + } + + /* Configure the main PLL clock source and multiplication factors. */ + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + RCC_OscInitStruct->PLL.PLLMUL); + /* 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 ((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + (READ_BIT(pll_config, RCC_CFGR_PLLMULL) != RCC_OscInitStruct->PLL.PLLMUL)) + { + 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; + + /* 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. */ + +#if defined(FLASH_ACR_LATENCY) + /* 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; + } +} + +#endif /* FLASH_ACR_LATENCY */ +/*-------------------------- HCLK Configuration --------------------------*/ +if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + { + /* Set the highest APBx dividers in order to ensure that we do not go through + a non-spec phase whatever we decrease or increase HCLK. */ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); + } + + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); + } + + /* Set the new HCLK clock divider */ + 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; + } + } + } + +#if defined(FLASH_ACR_LATENCY) + /* 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; + } +} +#endif /* FLASH_ACR_LATENCY */ + +/*-------------------------- 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) << 3)); + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos]; + + /* 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 + * @{ + */ + +/** + * @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 + @if STM32F105xC + * @arg @ref RCC_MCO1SOURCE_PLLCLK PLL clock divided by 2 selected as MCO source + * @arg @ref RCC_MCO1SOURCE_PLL2CLK PLL2 clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_PLL3CLK_DIV2 PLL3 clock divided by 2 selected as MCO source + * @arg @ref RCC_MCO1SOURCE_EXT_HSE XT1 external 3-25 MHz oscillator clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_PLL3CLK PLL3 clock selected as MCO source + @endif + @if STM32F107xC + * @arg @ref RCC_MCO1SOURCE_PLLCLK PLL clock divided by 2 selected as MCO source + * @arg @ref RCC_MCO1SOURCE_PLL2CLK PLL2 clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_PLL3CLK_DIV2 PLL3 clock divided by 2 selected as MCO source + * @arg @ref RCC_MCO1SOURCE_EXT_HSE XT1 external 3-25 MHz oscillator clock selected as MCO source + * @arg @ref RCC_MCO1SOURCE_PLL3CLK PLL3 clock selected as MCO source + @endif + * @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 + */ +void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv) +{ + GPIO_InitTypeDef gpio = {0U}; + + /* 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); + UNUSED(RCC_MCODiv); + + /* 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; + + /* 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-M3 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 stm32f1xx_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 stm32f1xx_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) +{ +#if defined(RCC_CFGR2_PREDIV1SRC) + const uint8_t aPLLMULFactorTable[14] = {0, 0, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 13}; + const uint8_t aPredivFactorTable[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; +#else + const uint8_t aPLLMULFactorTable[16] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16}; +#if defined(RCC_CFGR2_PREDIV1) + const uint8_t aPredivFactorTable[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; +#else + const uint8_t aPredivFactorTable[2] = {1, 2}; +#endif /*RCC_CFGR2_PREDIV1*/ + +#endif + uint32_t tmpreg = 0U, prediv = 0U, pllclk = 0U, pllmul = 0U; + uint32_t sysclockfreq = 0U; +#if defined(RCC_CFGR2_PREDIV1SRC) + uint32_t prediv2 = 0U, pll2mul = 0U; +#endif /*RCC_CFGR2_PREDIV1SRC*/ + + 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_PLLMULL) >> RCC_CFGR_PLLMULL_Pos]; + if ((tmpreg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI_DIV2) + { +#if defined(RCC_CFGR2_PREDIV1) + prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR2 & RCC_CFGR2_PREDIV1) >> RCC_CFGR2_PREDIV1_Pos]; +#else + prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR & RCC_CFGR_PLLXTPRE) >> RCC_CFGR_PLLXTPRE_Pos]; +#endif /*RCC_CFGR2_PREDIV1*/ +#if defined(RCC_CFGR2_PREDIV1SRC) + + if (HAL_IS_BIT_SET(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC)) + { + /* PLL2 selected as Prediv1 source */ + /* PLLCLK = PLL2CLK / PREDIV1 * PLLMUL with PLL2CLK = HSE/PREDIV2 * PLL2MUL */ + prediv2 = ((RCC->CFGR2 & RCC_CFGR2_PREDIV2) >> RCC_CFGR2_PREDIV2_Pos) + 1; + pll2mul = ((RCC->CFGR2 & RCC_CFGR2_PLL2MUL) >> RCC_CFGR2_PLL2MUL_Pos) + 2; + pllclk = (uint32_t)(((uint64_t)HSE_VALUE * (uint64_t)pll2mul * (uint64_t)pllmul) / ((uint64_t)prediv2 * (uint64_t)prediv)); + } + else + { + /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV1 * PLLMUL */ + pllclk = (uint32_t)((HSE_VALUE * pllmul) / prediv); + } + + /* If PLLMUL was set to 13 means that it was to cover the case PLLMUL 6.5 (avoid using float) */ + /* In this case need to divide pllclk by 2 */ + if (pllmul == aPLLMULFactorTable[(uint32_t)(RCC_CFGR_PLLMULL6_5) >> RCC_CFGR_PLLMULL_Pos]) + { + pllclk = pllclk / 2; + } +#else + /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV1 * PLLMUL */ + pllclk = (uint32_t)((HSE_VALUE * pllmul) / prediv); +#endif /*RCC_CFGR2_PREDIV1SRC*/ + } + else + { + /* HSI used as PLL clock source : PLLCLK = HSI/2 * PLLMUL */ + pllclk = (uint32_t)((HSI_VALUE >> 1) * pllmul); + } + 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_Pos]); +} + +/** + * @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_Pos]); +} + +/** + * @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; + +#if defined(RCC_CFGR2_PREDIV1SRC) + /* Get the Prediv1 source --------------------------------------------------*/ + RCC_OscInitStruct->Prediv1Source = READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC); +#endif /* RCC_CFGR2_PREDIV1SRC */ + + /* 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; + } + RCC_OscInitStruct->HSEPredivValue = __HAL_RCC_HSE_GET_PREDIV(); + + /* 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_PLLMULL); +#if defined(RCC_CR_PLL2ON) + /* Get the PLL2 configuration -----------------------------------------------*/ + if ((RCC->CR & RCC_CR_PLL2ON) == RCC_CR_PLL2ON) + { + RCC_OscInitStruct->PLL2.PLL2State = RCC_PLL2_ON; + } + else + { + RCC_OscInitStruct->PLL2.PLL2State = RCC_PLL2_OFF; + } + RCC_OscInitStruct->PLL2.HSEPrediv2Value = __HAL_RCC_HSE_GET_PREDIV2(); + RCC_OscInitStruct->PLL2.PLL2MUL = (uint32_t)(RCC->CFGR2 & RCC_CFGR2_PLL2MUL); +#endif /* RCC_CR_PLL2ON */ +} + +/** + * @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) >> 3); + +#if defined(FLASH_ACR_LATENCY) + /* Get the Flash Wait State (Latency) configuration ------------------------*/ + *pFLatency = (uint32_t)(FLASH->ACR & FLASH_ACR_LATENCY); +#else + /* For VALUE lines devices, only LATENCY_0 can be set*/ + *pFLatency = (uint32_t)FLASH_LATENCY_0; +#endif +} + +/** + * @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 This function provides delay (in milliseconds) based on CPU cycles method. + * @param mdelay: specifies the delay time length, in milliseconds. + * @retval None + */ +static void RCC_Delay(uint32_t mdelay) +{ + __IO uint32_t Delay = mdelay * (SystemCoreClock / 8U / 1000U); + do + { + __NOP(); + } + while (Delay --); +} + +/** + * @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 */ +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c new file mode 100644 index 0000000..e6e1b4d --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c @@ -0,0 +1,863 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_HAL_Driver + * @{ + */ + +#ifdef HAL_RCC_MODULE_ENABLED + +/** @defgroup RCCEx RCCEx + * @brief RCC Extension HAL module driver. + * @{ + */ + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup RCCEx_Private_Constants RCCEx Private Constants + * @{ + */ +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/** @defgroup RCCEx_Private_Macros RCCEx Private Macros + * @{ + */ +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/** @defgroup RCCEx_Exported_Functions RCCEx Exported Functions + * @{ + */ + +/** @defgroup RCCEx_Exported_Functions_Group1 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(RTC clock). + * + * @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. + * + * @note In case of STM32F105xC or STM32F107xC devices, PLLI2S will be enabled if requested on + * one of 2 I2S interfaces. When PLLI2S is enabled, you need to call HAL_RCCEx_DisablePLLI2S to + * manually disable it. + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) +{ + uint32_t tickstart = 0U, temp_reg = 0U; +#if defined(STM32F105xC) || defined(STM32F107xC) + uint32_t pllactive = 0U; +#endif /* STM32F105xC || STM32F107xC */ + + /* Check the parameters */ + assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); + + /*------------------------------- RTC/LCD Configuration ------------------------*/ + if ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC)) + { + FlagStatus pwrclkchanged = RESET; + + /* check for RTC Parameters used to output RTCCLK */ + assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); + + /* 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(); + } + } + + /*------------------------------ ADC clock Configuration ------------------*/ + if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC) == RCC_PERIPHCLK_ADC) + { + /* Check the parameters */ + assert_param(IS_RCC_ADCPLLCLK_DIV(PeriphClkInit->AdcClockSelection)); + + /* Configure the ADC clock source */ + __HAL_RCC_ADC_CONFIG(PeriphClkInit->AdcClockSelection); + } + +#if defined(STM32F105xC) || defined(STM32F107xC) + /*------------------------------ I2S2 Configuration ------------------------*/ + if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S2) == RCC_PERIPHCLK_I2S2) + { + /* Check the parameters */ + assert_param(IS_RCC_I2S2CLKSOURCE(PeriphClkInit->I2s2ClockSelection)); + + /* Configure the I2S2 clock source */ + __HAL_RCC_I2S2_CONFIG(PeriphClkInit->I2s2ClockSelection); + } + + /*------------------------------ I2S3 Configuration ------------------------*/ + if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S3) == RCC_PERIPHCLK_I2S3) + { + /* Check the parameters */ + assert_param(IS_RCC_I2S3CLKSOURCE(PeriphClkInit->I2s3ClockSelection)); + + /* Configure the I2S3 clock source */ + __HAL_RCC_I2S3_CONFIG(PeriphClkInit->I2s3ClockSelection); + } + + /*------------------------------ PLL I2S Configuration ----------------------*/ + /* Check that PLLI2S need to be enabled */ + if (HAL_IS_BIT_SET(RCC->CFGR2, RCC_CFGR2_I2S2SRC) || HAL_IS_BIT_SET(RCC->CFGR2, RCC_CFGR2_I2S3SRC)) + { + /* Update flag to indicate that PLL I2S should be active */ + pllactive = 1; + } + + /* Check if PLL I2S need to be enabled */ + if (pllactive == 1) + { + /* Enable PLL I2S only if not active */ + if (HAL_IS_BIT_CLR(RCC->CR, RCC_CR_PLL3ON)) + { + /* Check the parameters */ + assert_param(IS_RCC_PLLI2S_MUL(PeriphClkInit->PLLI2S.PLLI2SMUL)); + assert_param(IS_RCC_HSE_PREDIV2(PeriphClkInit->PLLI2S.HSEPrediv2Value)); + + /* Prediv2 can be written only when the PLL2 is disabled. */ + /* Return an error only if new value is different from the programmed value */ + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLL2ON) && \ + (__HAL_RCC_HSE_GET_PREDIV2() != PeriphClkInit->PLLI2S.HSEPrediv2Value)) + { + return HAL_ERROR; + } + + /* Configure the HSE prediv2 factor --------------------------------*/ + __HAL_RCC_HSE_PREDIV2_CONFIG(PeriphClkInit->PLLI2S.HSEPrediv2Value); + + /* Configure the main PLLI2S multiplication factors. */ + __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SMUL); + + /* Enable the main PLLI2S. */ + __HAL_RCC_PLLI2S_ENABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLLI2S is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) + { + if ((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Return an error only if user wants to change the PLLI2SMUL whereas PLLI2S is active */ + if (READ_BIT(RCC->CFGR2, RCC_CFGR2_PLL3MUL) != PeriphClkInit->PLLI2S.PLLI2SMUL) + { + return HAL_ERROR; + } + } + } +#endif /* STM32F105xC || STM32F107xC */ + +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG)\ + || defined(STM32F105xC) || defined(STM32F107xC) + /*------------------------------ USB clock Configuration ------------------*/ + if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB) + { + /* Check the parameters */ + assert_param(IS_RCC_USBPLLCLK_DIV(PeriphClkInit->UsbClockSelection)); + + /* Configure the USB clock source */ + __HAL_RCC_USB_CONFIG(PeriphClkInit->UsbClockSelection); + } +#endif /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ + + return HAL_OK; +} + +/** + * @brief Get the PeriphClkInit 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(RTC, I2S, ADC clocks). + * @retval None + */ +void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) +{ + uint32_t srcclk = 0U; + + /* Set all possible values for the extended clock type parameter------------*/ + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_RTC; + + /* Get the RTC configuration -----------------------------------------------*/ + srcclk = __HAL_RCC_GET_RTC_SOURCE(); + /* Source clock is LSE or LSI*/ + PeriphClkInit->RTCClockSelection = srcclk; + + /* Get the ADC clock configuration -----------------------------------------*/ + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_ADC; + PeriphClkInit->AdcClockSelection = __HAL_RCC_GET_ADC_SOURCE(); + +#if defined(STM32F105xC) || defined(STM32F107xC) + /* Get the I2S2 clock configuration -----------------------------------------*/ + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_I2S2; + PeriphClkInit->I2s2ClockSelection = __HAL_RCC_GET_I2S2_SOURCE(); + + /* Get the I2S3 clock configuration -----------------------------------------*/ + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_I2S3; + PeriphClkInit->I2s3ClockSelection = __HAL_RCC_GET_I2S3_SOURCE(); + +#endif /* STM32F105xC || STM32F107xC */ + +#if defined(STM32F103xE) || defined(STM32F103xG) + /* Get the I2S2 clock configuration -----------------------------------------*/ + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_I2S2; + PeriphClkInit->I2s2ClockSelection = RCC_I2S2CLKSOURCE_SYSCLK; + + /* Get the I2S3 clock configuration -----------------------------------------*/ + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_I2S3; + PeriphClkInit->I2s3ClockSelection = RCC_I2S3CLKSOURCE_SYSCLK; + +#endif /* STM32F103xE || STM32F103xG */ + +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG)\ + || defined(STM32F105xC) || defined(STM32F107xC) + /* Get the USB clock configuration -----------------------------------------*/ + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_USB; + PeriphClkInit->UsbClockSelection = __HAL_RCC_GET_USB_SOURCE(); +#endif /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ +} + +/** + * @brief Returns the peripheral clock frequency + * @note Returns 0 if peripheral clock is unknown + * @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_ADC ADC peripheral clock + @if STM32F103xE + * @arg @ref RCC_PERIPHCLK_I2S2 I2S2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + @endif + @if STM32F103xG + * @arg @ref RCC_PERIPHCLK_I2S2 I2S2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S2 I2S2 peripheral clock + @endif + @if STM32F105xC + * @arg @ref RCC_PERIPHCLK_I2S2 I2S2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S2 I2S2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S2 I2S2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock + @endif + @if STM32F107xC + * @arg @ref RCC_PERIPHCLK_I2S2 I2S2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S2 I2S2 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S3 I2S3 peripheral clock + * @arg @ref RCC_PERIPHCLK_I2S2 I2S2 peripheral clock + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock + @endif + @if STM32F102xx + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock + @endif + @if STM32F103xx + * @arg @ref RCC_PERIPHCLK_USB USB peripheral clock + @endif + * @retval Frequency in Hz (0: means that no available frequency for the peripheral) + */ +uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint32_t PeriphClk) +{ +#if defined(STM32F105xC) || defined(STM32F107xC) + const uint8_t aPLLMULFactorTable[14] = {0, 0, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 13}; + const uint8_t aPredivFactorTable[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + + uint32_t prediv1 = 0U, pllclk = 0U, pllmul = 0U; + uint32_t pll2mul = 0U, pll3mul = 0U, prediv2 = 0U; +#endif /* STM32F105xC || STM32F107xC */ +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6) || \ + defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) + const uint8_t aPLLMULFactorTable[16] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16}; + const uint8_t aPredivFactorTable[2] = {1, 2}; + + uint32_t prediv1 = 0U, pllclk = 0U, pllmul = 0U; +#endif /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG */ + uint32_t temp_reg = 0U, frequency = 0U; + + /* Check the parameters */ + assert_param(IS_RCC_PERIPHCLOCK(PeriphClk)); + + switch (PeriphClk) + { +#if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\ + || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG)\ + || defined(STM32F105xC) || defined(STM32F107xC) + case RCC_PERIPHCLK_USB: + { + /* Get RCC configuration ------------------------------------------------------*/ + temp_reg = RCC->CFGR; + + /* Check if PLL is enabled */ + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLLON)) + { + pllmul = aPLLMULFactorTable[(uint32_t)(temp_reg & RCC_CFGR_PLLMULL) >> RCC_CFGR_PLLMULL_Pos]; + if ((temp_reg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI_DIV2) + { +#if defined(STM32F105xC) || defined(STM32F107xC) || defined(STM32F100xB)\ + || defined(STM32F100xE) + prediv1 = aPredivFactorTable[(uint32_t)(RCC->CFGR2 & RCC_CFGR2_PREDIV1) >> RCC_CFGR2_PREDIV1_Pos]; +#else + prediv1 = aPredivFactorTable[(uint32_t)(RCC->CFGR & RCC_CFGR_PLLXTPRE) >> RCC_CFGR_PLLXTPRE_Pos]; +#endif /* STM32F105xC || STM32F107xC || STM32F100xB || STM32F100xE */ + +#if defined(STM32F105xC) || defined(STM32F107xC) + if (HAL_IS_BIT_SET(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC)) + { + /* PLL2 selected as Prediv1 source */ + /* PLLCLK = PLL2CLK / PREDIV1 * PLLMUL with PLL2CLK = HSE/PREDIV2 * PLL2MUL */ + prediv2 = ((RCC->CFGR2 & RCC_CFGR2_PREDIV2) >> RCC_CFGR2_PREDIV2_Pos) + 1; + pll2mul = ((RCC->CFGR2 & RCC_CFGR2_PLL2MUL) >> RCC_CFGR2_PLL2MUL_Pos) + 2; + pllclk = (uint32_t)((((HSE_VALUE / prediv2) * pll2mul) / prediv1) * pllmul); + } + else + { + /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV1 * PLLMUL */ + pllclk = (uint32_t)((HSE_VALUE / prediv1) * pllmul); + } + + /* If PLLMUL was set to 13 means that it was to cover the case PLLMUL 6.5 (avoid using float) */ + /* In this case need to divide pllclk by 2 */ + if (pllmul == aPLLMULFactorTable[(uint32_t)(RCC_CFGR_PLLMULL6_5) >> RCC_CFGR_PLLMULL_Pos]) + { + pllclk = pllclk / 2; + } +#else + if ((temp_reg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI_DIV2) + { + /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV1 * PLLMUL */ + pllclk = (uint32_t)((HSE_VALUE / prediv1) * pllmul); + } +#endif /* STM32F105xC || STM32F107xC */ + } + else + { + /* HSI used as PLL clock source : PLLCLK = HSI/2 * PLLMUL */ + pllclk = (uint32_t)((HSI_VALUE >> 1) * pllmul); + } + + /* Calcul of the USB frequency*/ +#if defined(STM32F105xC) || defined(STM32F107xC) + /* USBCLK = PLLVCO = (2 x PLLCLK) / USB prescaler */ + if (__HAL_RCC_GET_USB_SOURCE() == RCC_USBCLKSOURCE_PLL_DIV2) + { + /* Prescaler of 2 selected for USB */ + frequency = pllclk; + } + else + { + /* Prescaler of 3 selected for USB */ + frequency = (2 * pllclk) / 3; + } +#else + /* USBCLK = PLLCLK / USB prescaler */ + if (__HAL_RCC_GET_USB_SOURCE() == RCC_USBCLKSOURCE_PLL) + { + /* No prescaler selected for USB */ + frequency = pllclk; + } + else + { + /* Prescaler of 1.5 selected for USB */ + frequency = (pllclk * 2) / 3; + } +#endif + } + break; + } +#endif /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ +#if defined(STM32F103xE) || defined(STM32F103xG) || defined(STM32F105xC) || defined(STM32F107xC) + case RCC_PERIPHCLK_I2S2: + { +#if defined(STM32F103xE) || defined(STM32F103xG) + /* SYSCLK used as source clock for I2S2 */ + frequency = HAL_RCC_GetSysClockFreq(); +#else + if (__HAL_RCC_GET_I2S2_SOURCE() == RCC_I2S2CLKSOURCE_SYSCLK) + { + /* SYSCLK used as source clock for I2S2 */ + frequency = HAL_RCC_GetSysClockFreq(); + } + else + { + /* Check if PLLI2S is enabled */ + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLL3ON)) + { + /* PLLI2SVCO = 2 * PLLI2SCLK = 2 * (HSE/PREDIV2 * PLL3MUL) */ + prediv2 = ((RCC->CFGR2 & RCC_CFGR2_PREDIV2) >> RCC_CFGR2_PREDIV2_Pos) + 1; + pll3mul = ((RCC->CFGR2 & RCC_CFGR2_PLL3MUL) >> RCC_CFGR2_PLL3MUL_Pos) + 2; + frequency = (uint32_t)(2 * ((HSE_VALUE / prediv2) * pll3mul)); + } + } +#endif /* STM32F103xE || STM32F103xG */ + break; + } + case RCC_PERIPHCLK_I2S3: + { +#if defined(STM32F103xE) || defined(STM32F103xG) + /* SYSCLK used as source clock for I2S3 */ + frequency = HAL_RCC_GetSysClockFreq(); +#else + if (__HAL_RCC_GET_I2S3_SOURCE() == RCC_I2S3CLKSOURCE_SYSCLK) + { + /* SYSCLK used as source clock for I2S3 */ + frequency = HAL_RCC_GetSysClockFreq(); + } + else + { + /* Check if PLLI2S is enabled */ + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLL3ON)) + { + /* PLLI2SVCO = 2 * PLLI2SCLK = 2 * (HSE/PREDIV2 * PLL3MUL) */ + prediv2 = ((RCC->CFGR2 & RCC_CFGR2_PREDIV2) >> RCC_CFGR2_PREDIV2_Pos) + 1; + pll3mul = ((RCC->CFGR2 & RCC_CFGR2_PLL3MUL) >> RCC_CFGR2_PLL3MUL_Pos) + 2; + frequency = (uint32_t)(2 * ((HSE_VALUE / prediv2) * pll3mul)); + } + } +#endif /* STM32F103xE || STM32F103xG */ + break; + } +#endif /* STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */ + case RCC_PERIPHCLK_RTC: + { + /* Get RCC BDCR configuration ------------------------------------------------------*/ + temp_reg = RCC->BDCR; + + /* Check if LSE is ready if RTC clock selection is LSE */ + if (((temp_reg & RCC_BDCR_RTCSEL) == RCC_RTCCLKSOURCE_LSE) && (HAL_IS_BIT_SET(temp_reg, RCC_BDCR_LSERDY))) + { + frequency = LSE_VALUE; + } + /* Check if LSI is ready if RTC clock selection is LSI */ + else if (((temp_reg & RCC_BDCR_RTCSEL) == RCC_RTCCLKSOURCE_LSI) && (HAL_IS_BIT_SET(RCC->CSR, RCC_CSR_LSIRDY))) + { + frequency = LSI_VALUE; + } + else if (((temp_reg & RCC_BDCR_RTCSEL) == RCC_RTCCLKSOURCE_HSE_DIV128) && (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSERDY))) + { + frequency = HSE_VALUE / 128U; + } + /* Clock not enabled for RTC*/ + else + { + /* nothing to do: frequency already initialized to 0U */ + } + break; + } + case RCC_PERIPHCLK_ADC: + { + frequency = HAL_RCC_GetPCLK2Freq() / (((__HAL_RCC_GET_ADC_SOURCE() >> RCC_CFGR_ADCPRE_Pos) + 1) * 2); + break; + } + default: + { + break; + } + } + return (frequency); +} + +/** + * @} + */ + +#if defined(STM32F105xC) || defined(STM32F107xC) +/** @defgroup RCCEx_Exported_Functions_Group2 PLLI2S Management function + * @brief PLLI2S Management functions + * +@verbatim + =============================================================================== + ##### Extended PLLI2S Management functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to control the PLLI2S + activation or deactivation +@endverbatim + * @{ + */ + +/** + * @brief Enable PLLI2S + * @param PLLI2SInit pointer to an RCC_PLLI2SInitTypeDef structure that + * contains the configuration information for the PLLI2S + * @note The PLLI2S configuration not modified if used by I2S2 or I2S3 Interface. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCCEx_EnablePLLI2S(RCC_PLLI2SInitTypeDef *PLLI2SInit) +{ + uint32_t tickstart = 0U; + + /* Check that PLL I2S has not been already enabled by I2S2 or I2S3*/ + if (HAL_IS_BIT_CLR(RCC->CFGR2, RCC_CFGR2_I2S2SRC) && HAL_IS_BIT_CLR(RCC->CFGR2, RCC_CFGR2_I2S3SRC)) + { + /* Check the parameters */ + assert_param(IS_RCC_PLLI2S_MUL(PLLI2SInit->PLLI2SMUL)); + assert_param(IS_RCC_HSE_PREDIV2(PLLI2SInit->HSEPrediv2Value)); + + /* Prediv2 can be written only when the PLL2 is disabled. */ + /* Return an error only if new value is different from the programmed value */ + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLL2ON) && \ + (__HAL_RCC_HSE_GET_PREDIV2() != PLLI2SInit->HSEPrediv2Value)) + { + return HAL_ERROR; + } + + /* Disable the main PLLI2S. */ + __HAL_RCC_PLLI2S_DISABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLLI2S is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) + { + if ((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Configure the HSE prediv2 factor --------------------------------*/ + __HAL_RCC_HSE_PREDIV2_CONFIG(PLLI2SInit->HSEPrediv2Value); + + + /* Configure the main PLLI2S multiplication factors. */ + __HAL_RCC_PLLI2S_CONFIG(PLLI2SInit->PLLI2SMUL); + + /* Enable the main PLLI2S. */ + __HAL_RCC_PLLI2S_ENABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLLI2S is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) + { + if ((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* PLLI2S cannot be modified as already used by I2S2 or I2S3 */ + return HAL_ERROR; + } + + return HAL_OK; +} + +/** + * @brief Disable PLLI2S + * @note PLLI2S is not disabled if used by I2S2 or I2S3 Interface. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCCEx_DisablePLLI2S(void) +{ + uint32_t tickstart = 0U; + + /* Disable PLL I2S as not requested by I2S2 or I2S3*/ + if (HAL_IS_BIT_CLR(RCC->CFGR2, RCC_CFGR2_I2S2SRC) && HAL_IS_BIT_CLR(RCC->CFGR2, RCC_CFGR2_I2S3SRC)) + { + /* Disable the main PLLI2S. */ + __HAL_RCC_PLLI2S_DISABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLLI2S is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) + { + if ((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* PLLI2S is currently used by I2S2 or I2S3. Cannot be disabled.*/ + return HAL_ERROR; + } + + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup RCCEx_Exported_Functions_Group3 PLL2 Management function + * @brief PLL2 Management functions + * +@verbatim + =============================================================================== + ##### Extended PLL2 Management functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to control the PLL2 + activation or deactivation +@endverbatim + * @{ + */ + +/** + * @brief Enable PLL2 + * @param PLL2Init pointer to an RCC_PLL2InitTypeDef structure that + * contains the configuration information for the PLL2 + * @note The PLL2 configuration not modified if used indirectly as system clock. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCCEx_EnablePLL2(RCC_PLL2InitTypeDef *PLL2Init) +{ + uint32_t tickstart = 0U; + + /* This bit can not be cleared if the PLL2 clock is used indirectly as system + clock (i.e. it is used as PLL clock entry that is used as system clock). */ + if ((__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE) && \ + (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && \ + ((READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC)) == RCC_CFGR2_PREDIV1SRC_PLL2)) + { + return HAL_ERROR; + } + else + { + /* Check the parameters */ + assert_param(IS_RCC_PLL2_MUL(PLL2Init->PLL2MUL)); + assert_param(IS_RCC_HSE_PREDIV2(PLL2Init->HSEPrediv2Value)); + + /* Prediv2 can be written only when the PLLI2S is disabled. */ + /* Return an error only if new value is different from the programmed value */ + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_PLL3ON) && \ + (__HAL_RCC_HSE_GET_PREDIV2() != PLL2Init->HSEPrediv2Value)) + { + return HAL_ERROR; + } + + /* Disable the main PLL2. */ + __HAL_RCC_PLL2_DISABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLL2 is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLL2RDY) != RESET) + { + if ((HAL_GetTick() - tickstart) > PLL2_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Configure the HSE prediv2 factor --------------------------------*/ + __HAL_RCC_HSE_PREDIV2_CONFIG(PLL2Init->HSEPrediv2Value); + + /* Configure the main PLL2 multiplication factors. */ + __HAL_RCC_PLL2_CONFIG(PLL2Init->PLL2MUL); + + /* Enable the main PLL2. */ + __HAL_RCC_PLL2_ENABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLL2 is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLL2RDY) == RESET) + { + if ((HAL_GetTick() - tickstart) > PLL2_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + + return HAL_OK; +} + +/** + * @brief Disable PLL2 + * @note PLL2 is not disabled if used indirectly as system clock. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCCEx_DisablePLL2(void) +{ + uint32_t tickstart = 0U; + + /* This bit can not be cleared if the PLL2 clock is used indirectly as system + clock (i.e. it is used as PLL clock entry that is used as system clock). */ + if ((__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE) && \ + (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && \ + ((READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC)) == RCC_CFGR2_PREDIV1SRC_PLL2)) + { + return HAL_ERROR; + } + else + { + /* Disable the main PLL2. */ + __HAL_RCC_PLL2_DISABLE(); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLL2 is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLL2RDY) != RESET) + { + if ((HAL_GetTick() - tickstart) > PLL2_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + + return HAL_OK; +} + +/** + * @} + */ +#endif /* STM32F105xC || STM32F107xC */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_RCC_MODULE_ENABLED */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c new file mode 100644 index 0000000..b32c0bd --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c @@ -0,0 +1,7483 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 + @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 @ref HAL_TIM_RegisterCallback() to register a callback. + @ref HAL_TIM_RegisterCallback() takes as parameters the HAL peripheral handle, + the Callback ID and a pointer to the user callback function. + + [..] + Use function @ref HAL_TIM_UnRegisterCallback() to reset a callback to the default + weak function. + @ref 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. + + [..] +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 @ref HAL_TIM_TriggerCallback(), @ref 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 @ref 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 + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_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, TIM_OC_InitTypeDef *OC_Config); +static void TIM_OC3_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config); +static void TIM_OC4_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config); +static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter); +static void TIM_TI2_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + uint32_t TIM_ICFilter); +static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter); +static void TIM_TI3_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + uint32_t TIM_ICFilter); +static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, + uint32_t TIM_ICFilter); +static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerSource); +static void TIM_DMAPeriodElapsedCplt(DMA_HandleTypeDef *hdma); +static void TIM_DMAPeriodElapsedHalfCplt(DMA_HandleTypeDef *hdma); +static void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma); +static void TIM_DMATriggerCplt(DMA_HandleTypeDef *hdma); +static void TIM_DMATriggerHalfCplt(DMA_HandleTypeDef *hdma); +static HAL_StatusTypeDef TIM_SlaveTimer_SetConfig(TIM_HandleTypeDef *htim, + 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_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, 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_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 + * @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 + * @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) +{ + 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); + + 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: + break; + } + + /* 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 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) +{ + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + break; + } + + /* 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 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, uint32_t *pData, uint16_t Length) +{ + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(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: + break; + } + + /* 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 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) +{ + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + break; + } + + default: + break; + } + + /* 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; +} + +/** + * @} + */ + +/** @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_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 + * @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 + * @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) +{ + 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); + + 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: + break; + } + + /* 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 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) +{ + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + break; + } + + /* 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 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, uint32_t *pData, uint16_t Length) +{ + uint32_t tmpsmcr; + + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(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: + break; + } + + /* 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 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) +{ + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 DMA request */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4); + (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]); + break; + } + + default: + break; + } + + /* 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; +} + +/** + * @} + */ + +/** @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_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_INSTANCE(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_INSTANCE(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) +{ + 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_INSTANCE(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: + break; + } + /* 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 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) +{ + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + switch (Channel) + { + case TIM_CHANNEL_1: + { + /* Disable the TIM Capture/Compare 1 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1); + break; + } + + case TIM_CHANNEL_2: + { + /* Disable the TIM Capture/Compare 2 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2); + break; + } + + case TIM_CHANNEL_3: + { + /* Disable the TIM Capture/Compare 3 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3); + break; + } + + case TIM_CHANNEL_4: + { + /* Disable the TIM Capture/Compare 4 interrupt */ + __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4); + break; + } + + default: + break; + } + + /* 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 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) +{ + 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_INSTANCE(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); + + /* 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); + } + + 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: + break; + } + + /* Return function status */ + return HAL_OK; +} + +/** + * @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) +{ + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(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: + break; + } + + /* 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; +} +/** + * @} + */ + +/** @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_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, 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)); + + 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 |= 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 Peripheral */ + __HAL_TIM_ENABLE(htim); + + /* Enable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); + 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 Peripheral */ + __HAL_TIM_ENABLE(htim); + + /* Enable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE); + break; + } + + case TIM_CHANNEL_ALL: + { + /* 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 Peripheral */ + __HAL_TIM_ENABLE(htim); + + /* 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 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); + break; + } + + default: + 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) +{ + /* Capture compare 1 event */ + if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET) + { + if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET) + { + { + __HAL_TIM_CLEAR_IT(htim, TIM_IT_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 (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET) + { + if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET) + { + __HAL_TIM_CLEAR_IT(htim, TIM_IT_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 (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET) + { + if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET) + { + __HAL_TIM_CLEAR_IT(htim, TIM_IT_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 (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET) + { + if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET) + { + __HAL_TIM_CLEAR_IT(htim, TIM_IT_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 (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET) + { + if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET) + { + __HAL_TIM_CLEAR_IT(htim, TIM_IT_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 (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET) + { + if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) + { + __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK); +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->BreakCallback(htim); +#else + HAL_TIMEx_BreakCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + } + /* TIM Trigger detection event */ + if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET) + { + if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET) + { + __HAL_TIM_CLEAR_IT(htim, TIM_IT_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 (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET) + { + if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET) + { + __HAL_TIM_CLEAR_IT(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 + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, + TIM_OC_InitTypeDef *sConfig, + uint32_t Channel) +{ + /* 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; + } + + default: + break; + } + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @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, TIM_IC_InitTypeDef *sConfig, uint32_t Channel) +{ + /* 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 + { + /* 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); + } + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @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 + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, + TIM_OC_InitTypeDef *sConfig, + uint32_t Channel) +{ + /* 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; + } + + default: + break; + } + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @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) +{ + 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: + break; + } + + 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: + break; + } + + htim->State = HAL_TIM_STATE_READY; + + __HAL_UNLOCK(htim); + + return HAL_OK; + } + 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 + * @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, uint32_t *BurstBuffer, uint32_t BurstLength) +{ + return HAL_TIM_DMABurst_MultiWriteStart(htim, BurstBaseAddress, BurstRequestSrc, BurstBuffer, BurstLength, + ((BurstLength) >> 8U) + 1U); +} + +/** + * @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 + * @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, uint32_t *BurstBuffer, + uint32_t BurstLength, uint32_t DataLength) +{ + /* 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: + break; + } + + /* 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 HAL_OK; +} + +/** + * @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) +{ + /* 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: + break; + } + + /* 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 HAL_OK; +} + +/** + * @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 + * @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) +{ + return HAL_TIM_DMABurst_MultiReadStart(htim, BurstBaseAddress, BurstRequestSrc, BurstBuffer, BurstLength, + ((BurstLength) >> 8U) + 1U); +} + +/** + * @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 + * @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) +{ + /* 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: + break; + } + + /* 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 HAL_OK; +} + +/** + * @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) +{ + /* 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: + break; + } + + /* 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 HAL_OK; +} + +/** + * @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 + * @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 + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, + TIM_ClearInputConfigTypeDef *sClearInputConfig, + uint32_t Channel) +{ + /* 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 */ + CLEAR_BIT(htim->Instance->SMCR, (TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP)); + break; + } + + case TIM_CLEARINPUTSOURCE_ETR: + { + /* Check the parameters */ + assert_param(IS_TIM_CLEARINPUT_POLARITY(sClearInputConfig->ClearInputPolarity)); + assert_param(IS_TIM_CLEARINPUT_PRESCALER(sClearInputConfig->ClearInputPrescaler)); + assert_param(IS_TIM_CLEARINPUT_FILTER(sClearInputConfig->ClearInputFilter)); + + /* When OCRef clear feature is used with ETR source, ETR prescaler must be off */ + if (sClearInputConfig->ClearInputPrescaler != TIM_CLEARINPUTPRESCALER_DIV1) + { + htim->State = HAL_TIM_STATE_READY; + __HAL_UNLOCK(htim); + return HAL_ERROR; + } + + TIM_ETR_SetConfig(htim->Instance, + sClearInputConfig->ClearInputPrescaler, + sClearInputConfig->ClearInputPolarity, + sClearInputConfig->ClearInputFilter); + break; + } + + default: + break; + } + + 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; + } + default: + break; + } + + htim->State = HAL_TIM_STATE_READY; + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @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, TIM_ClockConfigTypeDef *sClockSourceConfig) +{ + 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: + break; + } + htim->State = HAL_TIM_STATE_READY; + + __HAL_UNLOCK(htim); + + return HAL_OK; +} + +/** + * @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, 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, + 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(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 + * @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; + } + /* Process locked */ + __HAL_LOCK(htim); + + 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; + + 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; + } + + /* Release Lock */ + __HAL_UNLOCK(htim); + + 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 + * @retval status + */ +HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(htim); + + 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; + + 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; + } + + /* Release Lock */ + __HAL_UNLOCK(htim); + + 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(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(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(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(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(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(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(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(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(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, 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; +} + +/** + * @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, TIM_OC_InitTypeDef *OC_Config) +{ + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Disable the Channel 1: Reset the CC1E Bit */ + TIMx->CCER &= ~TIM_CCER_CC1E; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + /* 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, TIM_OC_InitTypeDef *OC_Config) +{ + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Disable the Channel 2: Reset the CC2E Bit */ + TIMx->CCER &= ~TIM_CCER_CC2E; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR1; + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR1_OC2M; + tmpccmrx &= ~TIM_CCMR1_CC2S; + + /* Select the Output Compare Mode */ + tmpccmrx |= (OC_Config->OCMode << 8U); + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC2P; + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 4U); + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_2)) + { + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC2NP; + /* Set the Output N Polarity */ + tmpccer |= (OC_Config->OCNPolarity << 4U); + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC2NE; + + } + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + { + /* Check parameters */ + assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare and Output Compare N IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS2; + tmpcr2 &= ~TIM_CR2_OIS2N; + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 2U); + /* Set the Output N Idle state */ + tmpcr2 |= (OC_Config->OCNIdleState << 2U); + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmrx; + + /* Set the Capture Compare Register value */ + TIMx->CCR2 = OC_Config->Pulse; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** + * @brief Timer Output Compare 3 configuration + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC3_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config) +{ + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Disable the Channel 3: Reset the CC2E Bit */ + TIMx->CCER &= ~TIM_CCER_CC3E; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + + /* Get the TIMx CCMR2 register value */ + tmpccmrx = TIMx->CCMR2; + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR2_OC3M; + tmpccmrx &= ~TIM_CCMR2_CC3S; + /* Select the Output Compare Mode */ + tmpccmrx |= OC_Config->OCMode; + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC3P; + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 8U); + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_3)) + { + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC3NP; + /* Set the Output N Polarity */ + tmpccer |= (OC_Config->OCNPolarity << 8U); + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC3NE; + } + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + { + /* Check parameters */ + assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare and Output Compare N IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS3; + tmpcr2 &= ~TIM_CR2_OIS3N; + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 4U); + /* Set the Output N Idle state */ + tmpcr2 |= (OC_Config->OCNIdleState << 4U); + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmrx; + + /* Set the Capture Compare Register value */ + TIMx->CCR3 = OC_Config->Pulse; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** + * @brief Timer Output Compare 4 configuration + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC4_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config) +{ + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Disable the Channel 4: Reset the CC4E Bit */ + TIMx->CCER &= ~TIM_CCER_CC4E; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + + /* Get the TIMx CCMR2 register value */ + tmpccmrx = TIMx->CCMR2; + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR2_OC4M; + tmpccmrx &= ~TIM_CCMR2_CC4S; + + /* Select the Output Compare Mode */ + tmpccmrx |= (OC_Config->OCMode << 8U); + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC4P; + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 12U); + + if (IS_TIM_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); + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmrx; + + /* Set the Capture Compare Register value */ + TIMx->CCR4 = OC_Config->Pulse; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** + * @brief Slave Timer configuration function + * @param htim TIM handle + * @param sSlaveConfig Slave timer configuration + * @retval None + */ +static HAL_StatusTypeDef TIM_SlaveTimer_SetConfig(TIM_HandleTypeDef *htim, + TIM_SlaveConfigTypeDef *sSlaveConfig) +{ + 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: + break; + } + return HAL_OK; +} + +/** + * @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 */ + TIMx->CCER &= ~TIM_CCER_CC1E; + tmpccmr1 = TIMx->CCMR1; + tmpccer = TIMx->CCER; + + /* 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 */ + TIMx->CCER &= ~TIM_CCER_CC2E; + tmpccmr1 = TIMx->CCMR1; + tmpccer = TIMx->CCER; + + /* 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 */ + TIMx->CCER &= ~TIM_CCER_CC2E; + tmpccmr1 = TIMx->CCMR1; + tmpccer = TIMx->CCER; + + /* 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 + * @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 */ + TIMx->CCER &= ~TIM_CCER_CC3E; + tmpccmr2 = TIMx->CCMR2; + tmpccer = TIMx->CCER; + + /* 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); + tmpccer |= ((TIM_ICPolarity << 8U) & TIM_CCER_CC3P); + + /* 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 + * @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 */ + TIMx->CCER &= ~TIM_CCER_CC4E; + tmpccmr2 = TIMx->CCMR2; + tmpccer = TIMx->CCER; + + /* 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); + tmpccer |= ((TIM_ICPolarity << 12U) & TIM_CCER_CC4P); + + /* 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 + * @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; +} +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + +/** + * @} + */ + +#endif /* HAL_TIM_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c new file mode 100644 index 0000000..f15cbbb --- /dev/null +++ b/stm32f103/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c @@ -0,0 +1,2335 @@ +/** + ****************************************************************************** + * @file stm32f1xx_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 + * + Timer remapping capabilities configuration + @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 + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/** @addtogroup STM32F1xx_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, 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_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) +{ + 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: + break; + } + + /* 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 HAL_OK; +} + +/** + * @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) +{ + 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: + break; + } + + /* 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_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE)) == (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 HAL_OK; +} + +/** + * @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, uint32_t *pData, uint16_t Length) +{ + 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: + 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 HAL_OK; +} + +/** + * @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) +{ + /* 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: + break; + } + + /* 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; +} + +/** + * @} + */ + +/** @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. + (+) Start the Complementary Input Capture measurement. + (+) Stop the Complementary Input Capture. + (+) Start the Complementary Input Capture and enable interrupts. + (+) Stop the Complementary Input Capture and disable interrupts. + (+) Start the Complementary Input Capture and enable DMA transfers. + (+) Stop the Complementary Input Capture and disable DMA transfers. + (+) 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 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) +{ + 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: + break; + } + + /* 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 HAL_OK; +} + +/** + * @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) +{ + 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: + break; + } + + /* 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_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE)) == (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 HAL_OK; +} + +/** + * @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, uint32_t *pData, uint16_t Length) +{ + 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: + 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 HAL_OK; +} + +/** + * @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) +{ + /* 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: + break; + } + + /* 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; +} + +/** + * @} + */ + +/** @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. + +@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, + 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; + + /* 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, + TIM_BreakDeadTimeConfigTypeDef *sBreakDeadTimeConfig) +{ + /* Keep this variable initialized to 0 as it is used to configure BDTR register */ + uint32_t tmpbdtr = 0U; + + /* Check the parameters */ + assert_param(IS_TIM_BREAK_INSTANCE(htim->Instance)); + assert_param(IS_TIM_OSSR_STATE(sBreakDeadTimeConfig->OffStateRunMode)); + assert_param(IS_TIM_OSSI_STATE(sBreakDeadTimeConfig->OffStateIDLEMode)); + assert_param(IS_TIM_LOCK_LEVEL(sBreakDeadTimeConfig->LockLevel)); + assert_param(IS_TIM_DEADTIME(sBreakDeadTimeConfig->DeadTime)); + assert_param(IS_TIM_BREAK_STATE(sBreakDeadTimeConfig->BreakState)); + assert_param(IS_TIM_BREAK_POLARITY(sBreakDeadTimeConfig->BreakPolarity)); + assert_param(IS_TIM_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); + + + /* 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. + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_t Remap) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(htim); + UNUSED(Remap); + + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup TIMEx_Exported_Functions_Group6 Extended Callbacks functions + * @brief Extended Callbacks functions + * +@verbatim + ============================================================================== + ##### Extended Callbacks functions ##### + ============================================================================== + [..] + This section provides Extended TIM callback functions: + (+) Timer Commutation callback + (+) Timer Break callback + +@endverbatim + * @{ + */ + +/** + * @brief Hall commutation changed 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 Hall commutation changed 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 Hall 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 + */ +} +/** + * @} + */ + +/** @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(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(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 TIMEx Private Functions + * @{ + */ + +/** + * @brief TIM DMA Commutation callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + /* Change the htim state */ + htim->State = HAL_TIM_STATE_READY; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->CommutationCallback(htim); +#else + HAL_TIMEx_CommutCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +} + +/** + * @brief TIM DMA Commutation half complete callback. + * @param hdma pointer to DMA handle. + * @retval None + */ +void TIMEx_DMACommutationHalfCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + /* Change the htim state */ + htim->State = HAL_TIM_STATE_READY; + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->CommutationHalfCpltCallback(htim); +#else + HAL_TIMEx_CommutHalfCpltCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ +} + + +/** + * @brief TIM DMA Delay Pulse complete callback (complementary channel). + * @param hdma pointer to DMA handle. + * @retval None + */ +static void TIM_DMADelayPulseNCplt(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + if (hdma == htim->hdma[TIM_DMA_ID_CC1]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + } + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC4]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; + + if (hdma->Init.Mode == DMA_NORMAL) + { + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY); + } + } + else + { + /* nothing to do */ + } + +#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) + htim->PWM_PulseFinishedCallback(htim); +#else + HAL_TIM_PWM_PulseFinishedCallback(htim); +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +} + +/** + * @brief TIM DMA error callback (complementary channel) + * @param hdma pointer to DMA handle. + * @retval None + */ +static void TIM_DMAErrorCCxN(DMA_HandleTypeDef *hdma) +{ + TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; + + if (hdma == htim->hdma[TIM_DMA_ID_CC1]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY); + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC2]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY); + } + else if (hdma == htim->hdma[TIM_DMA_ID_CC3]) + { + htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; + TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY); + } + else + { + /* 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 & 0x1FU); /* 0x1FU = 31 bits max shift */ + + /* Reset the CCxNE Bit */ + TIMx->CCER &= ~tmp; + + /* Set or reset the CCxNE Bit */ + TIMx->CCER |= (uint32_t)(ChannelNState << (Channel & 0x1FU)); /* 0x1FU = 31 bits max shift */ +} +/** + * @} + */ + +#endif /* HAL_TIM_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/stm32f103/STM32F103C8TX_FLASH.ld b/stm32f103/STM32F103C8TX_FLASH.ld new file mode 100644 index 0000000..672d5aa --- /dev/null +++ b/stm32f103/STM32F103C8TX_FLASH.ld @@ -0,0 +1,186 @@ +/* +****************************************************************************** +** +** @file : LinkerScript.ld +** +** @author : Auto-generated by STM32CubeIDE +** +** @brief : Linker script for STM32F103C8Tx Device from STM32F1 series +** 64Kbytes FLASH +** 20Kbytes 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) 2022 STMicroelectronics. +** All rights reserved.

    +** +** This software component is licensed by ST under BSD 3-Clause license, +** the "License"; You may not use this file except in compliance with the +** License. You may obtain a copy of the License at: +** opensource.org/licenses/BSD-3-Clause +** +****************************************************************************** +*/ + +/* 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 = 20K + 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) } +} diff --git a/stm32f103/stm32f103.ioc b/stm32f103/stm32f103.ioc new file mode 100644 index 0000000..da56389 --- /dev/null +++ b/stm32f103/stm32f103.ioc @@ -0,0 +1,100 @@ +#MicroXplorer Configuration settings - do not modify +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32F1 +Mcu.IP0=NVIC +Mcu.IP1=RCC +Mcu.IP2=SYS +Mcu.IPNb=3 +Mcu.Name=STM32F103C(8-B)Tx +Mcu.Package=LQFP48 +Mcu.Pin0=PC14-OSC32_IN +Mcu.Pin1=PC15-OSC32_OUT +Mcu.Pin2=PD0-OSC_IN +Mcu.Pin3=PD1-OSC_OUT +Mcu.Pin4=PA13 +Mcu.Pin5=PA14 +Mcu.Pin6=VP_SYS_VS_Systick +Mcu.PinsNb=7 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32F103C8Tx +MxCube.Version=6.3.0 +MxDb.Version=DB.6.0.30 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +PA13.Mode=Serial_Wire +PA13.Signal=SYS_JTMS-SWDIO +PA14.Mode=Serial_Wire +PA14.Signal=SYS_JTCK-SWCLK +PC14-OSC32_IN.Mode=LSE-External-Oscillator +PC14-OSC32_IN.Signal=RCC_OSC32_IN +PC15-OSC32_OUT.Mode=LSE-External-Oscillator +PC15-OSC32_OUT.Signal=RCC_OSC32_OUT +PD0-OSC_IN.Mode=HSE-External-Oscillator +PD0-OSC_IN.Signal=RCC_OSC_IN +PD1-OSC_OUT.Mode=HSE-External-Oscillator +PD1-OSC_OUT.Signal=RCC_OSC_OUT +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=STM32F103C8Tx +ProjectManager.FirmwarePackage=STM32Cube FW_F1 V1.8.4 +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=stm32f103.ioc +ProjectManager.ProjectName=stm32f103 +ProjectManager.RegisterCallBack= +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false +RCC.ADCFreqValue=36000000 +RCC.AHBFreq_Value=72000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV2 +RCC.APB1Freq_Value=36000000 +RCC.APB1TimFreq_Value=72000000 +RCC.APB2Freq_Value=72000000 +RCC.APB2TimFreq_Value=72000000 +RCC.FCLKCortexFreq_Value=72000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=72000000 +RCC.IPParameters=ADCFreqValue,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,PLLSourceVirtual,SYSCLKFreq_VALUE,SYSCLKSource,TimSysFreq_Value,USBFreq_Value,VCOOutput2Freq_Value +RCC.MCOFreq_Value=72000000 +RCC.PLLCLKFreq_Value=72000000 +RCC.PLLMCOFreq_Value=36000000 +RCC.PLLMUL=RCC_PLL_MUL9 +RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE +RCC.SYSCLKFreq_VALUE=72000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.TimSysFreq_Value=72000000 +RCC.USBFreq_Value=72000000 +RCC.VCOOutput2Freq_Value=8000000 +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +board=custom +isbadioc=false

    fvg}|isauG( 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