From ff4edffc46f533402bff1ddb8e071ba15f388c54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=A0=E9=97=BB=E9=A3=8E?= <53944749+wuwenfengmi1998@users.noreply.github.com> Date: Thu, 11 Mar 2021 18:37:42 +0800 Subject: [PATCH] =?UTF-8?q?103ze=E4=B8=8B=E7=9A=84=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=20=E4=B8=BB=E8=A6=81=E4=B8=BA=E5=86=85?= =?UTF-8?q?=E6=A0=B8=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 无闻风 <53944749+wuwenfengmi1998@users.noreply.github.com> --- 103ze/.cproject | 332 + 103ze/.mxproject | 25 + 103ze/.project | 32 + 103ze/.settings/language.settings.xml | 52 + 103ze/.settings/stm32cubeide.project.prefs | 4 + 103ze/103ze_code.ioc | 99 + 103ze/Core/Inc/main.h | 71 + 103ze/Core/Inc/stm32f1xx_hal_conf.h | 391 + 103ze/Core/Inc/stm32f1xx_it.h | 69 + 103ze/Core/Src/main.c | 190 + 103ze/Core/Src/stm32f1xx_hal_msp.c | 88 + 103ze/Core/Src/stm32f1xx_it.c | 205 + 103ze/Core/Src/syscalls.c | 156 + 103ze/Core/Src/sysmem.c | 80 + 103ze/Core/Src/system_stm32f1xx.c | 408 + 103ze/Core/Startup/startup_stm32f103zetx.s | 468 + 103ze/Debug/103ze_code.bin | Bin 0 -> 3844 bytes 103ze/Debug/103ze_code.elf | Bin 0 -> 831160 bytes 103ze/Debug/103ze_code.list | 2580 ++++ 103ze/Debug/103ze_code.map | 2370 ++++ 103ze/Debug/Core/Src/main.d | 69 + 103ze/Debug/Core/Src/main.o | Bin 0 -> 775960 bytes 103ze/Debug/Core/Src/main.su | 4 + 103ze/Debug/Core/Src/stm32f1xx_hal_msp.d | 69 + 103ze/Debug/Core/Src/stm32f1xx_hal_msp.o | Bin 0 -> 773936 bytes 103ze/Debug/Core/Src/stm32f1xx_hal_msp.su | 1 + 103ze/Debug/Core/Src/stm32f1xx_it.d | 72 + 103ze/Debug/Core/Src/stm32f1xx_it.o | Bin 0 -> 775616 bytes 103ze/Debug/Core/Src/stm32f1xx_it.su | 9 + 103ze/Debug/Core/Src/subdir.mk | 45 + 103ze/Debug/Core/Src/syscalls.d | 1 + 103ze/Debug/Core/Src/syscalls.o | Bin 0 -> 81376 bytes 103ze/Debug/Core/Src/syscalls.su | 18 + 103ze/Debug/Core/Src/sysmem.d | 1 + 103ze/Debug/Core/Src/sysmem.o | Bin 0 -> 51292 bytes 103ze/Debug/Core/Src/sysmem.su | 1 + 103ze/Debug/Core/Src/system_stm32f1xx.d | 67 + 103ze/Debug/Core/Src/system_stm32f1xx.o | Bin 0 -> 774808 bytes 103ze/Debug/Core/Src/system_stm32f1xx.su | 2 + .../Core/Startup/startup_stm32f103zetx.d | 2 + .../Core/Startup/startup_stm32f103zetx.o | Bin 0 -> 6176 bytes 103ze/Debug/Core/Startup/subdir.mk | 20 + .../STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d | 68 + .../STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o | Bin 0 -> 786484 bytes .../STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su | 25 + .../Src/stm32f1xx_hal_cortex.d | 68 + .../Src/stm32f1xx_hal_cortex.o | Bin 0 -> 790240 bytes .../Src/stm32f1xx_hal_cortex.su | 29 + .../Src/stm32f1xx_hal_dma.d | 68 + .../Src/stm32f1xx_hal_dma.o | Bin 0 -> 788452 bytes .../Src/stm32f1xx_hal_dma.su | 13 + .../Src/stm32f1xx_hal_exti.d | 68 + .../Src/stm32f1xx_hal_exti.o | Bin 0 -> 779568 bytes .../Src/stm32f1xx_hal_exti.su | 9 + .../Src/stm32f1xx_hal_flash.d | 68 + .../Src/stm32f1xx_hal_flash.o | Bin 0 -> 782320 bytes .../Src/stm32f1xx_hal_flash.su | 14 + .../Src/stm32f1xx_hal_flash_ex.d | 68 + .../Src/stm32f1xx_hal_flash_ex.o | Bin 0 -> 785568 bytes .../Src/stm32f1xx_hal_flash_ex.su | 16 + .../Src/stm32f1xx_hal_gpio.d | 68 + .../Src/stm32f1xx_hal_gpio.o | Bin 0 -> 781072 bytes .../Src/stm32f1xx_hal_gpio.su | 8 + .../Src/stm32f1xx_hal_gpio_ex.d | 68 + .../Src/stm32f1xx_hal_gpio_ex.o | Bin 0 -> 774320 bytes .../Src/stm32f1xx_hal_gpio_ex.su | 3 + .../Src/stm32f1xx_hal_pwr.d | 68 + .../Src/stm32f1xx_hal_pwr.o | Bin 0 -> 782968 bytes .../Src/stm32f1xx_hal_pwr.su | 18 + .../Src/stm32f1xx_hal_rcc.d | 68 + .../Src/stm32f1xx_hal_rcc.o | Bin 0 -> 786672 bytes .../Src/stm32f1xx_hal_rcc.su | 15 + .../Src/stm32f1xx_hal_rcc_ex.d | 68 + .../Src/stm32f1xx_hal_rcc_ex.o | Bin 0 -> 777524 bytes .../Src/stm32f1xx_hal_rcc_ex.su | 3 + .../Src/stm32f1xx_hal_tim.d | 68 + .../Src/stm32f1xx_hal_tim.o | Bin 0 -> 772452 bytes .../Src/stm32f1xx_hal_tim.su | 0 .../Src/stm32f1xx_hal_tim_ex.d | 68 + .../Src/stm32f1xx_hal_tim_ex.o | Bin 0 -> 772460 bytes .../Src/stm32f1xx_hal_tim_ex.su | 0 .../STM32F1xx_HAL_Driver/Src/subdir.mk | 80 + 103ze/Debug/makefile | 101 + 103ze/Debug/objects.list | 20 + 103ze/Debug/objects.mk | 9 + 103ze/Debug/sources.mk | 26 + .../Device/ST/STM32F1xx/Include/stm32f103xe.h | 11761 ++++++++++++++++ .../Device/ST/STM32F1xx/Include/stm32f1xx.h | 220 + .../ST/STM32F1xx/Include/system_stm32f1xx.h | 98 + 103ze/Drivers/CMSIS/Include/cmsis_armcc.h | 865 ++ 103ze/Drivers/CMSIS/Include/cmsis_armclang.h | 1869 +++ 103ze/Drivers/CMSIS/Include/cmsis_compiler.h | 266 + 103ze/Drivers/CMSIS/Include/cmsis_gcc.h | 2085 +++ 103ze/Drivers/CMSIS/Include/cmsis_iccarm.h | 935 ++ 103ze/Drivers/CMSIS/Include/cmsis_version.h | 39 + 103ze/Drivers/CMSIS/Include/core_armv8mbl.h | 1918 +++ 103ze/Drivers/CMSIS/Include/core_armv8mml.h | 2927 ++++ 103ze/Drivers/CMSIS/Include/core_cm0.h | 949 ++ 103ze/Drivers/CMSIS/Include/core_cm0plus.h | 1083 ++ 103ze/Drivers/CMSIS/Include/core_cm1.h | 976 ++ 103ze/Drivers/CMSIS/Include/core_cm23.h | 1993 +++ 103ze/Drivers/CMSIS/Include/core_cm3.h | 1941 +++ 103ze/Drivers/CMSIS/Include/core_cm33.h | 3002 ++++ 103ze/Drivers/CMSIS/Include/core_cm4.h | 2129 +++ 103ze/Drivers/CMSIS/Include/core_cm7.h | 2671 ++++ 103ze/Drivers/CMSIS/Include/core_sc000.h | 1022 ++ 103ze/Drivers/CMSIS/Include/core_sc300.h | 1915 +++ 103ze/Drivers/CMSIS/Include/mpu_armv7.h | 270 + 103ze/Drivers/CMSIS/Include/mpu_armv8.h | 333 + 103ze/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 | 2123 +++ .../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 | 559 + .../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 | 7421 ++++++++++ .../Src/stm32f1xx_hal_tim_ex.c | 2296 +++ 103ze/STM32F103ZETX_FLASH.ld | 177 + 140 files changed, 82959 insertions(+) create mode 100644 103ze/.cproject create mode 100644 103ze/.mxproject create mode 100644 103ze/.project create mode 100644 103ze/.settings/language.settings.xml create mode 100644 103ze/.settings/stm32cubeide.project.prefs create mode 100644 103ze/103ze_code.ioc create mode 100644 103ze/Core/Inc/main.h create mode 100644 103ze/Core/Inc/stm32f1xx_hal_conf.h create mode 100644 103ze/Core/Inc/stm32f1xx_it.h create mode 100644 103ze/Core/Src/main.c create mode 100644 103ze/Core/Src/stm32f1xx_hal_msp.c create mode 100644 103ze/Core/Src/stm32f1xx_it.c create mode 100644 103ze/Core/Src/syscalls.c create mode 100644 103ze/Core/Src/sysmem.c create mode 100644 103ze/Core/Src/system_stm32f1xx.c create mode 100644 103ze/Core/Startup/startup_stm32f103zetx.s create mode 100644 103ze/Debug/103ze_code.bin create mode 100644 103ze/Debug/103ze_code.elf create mode 100644 103ze/Debug/103ze_code.list create mode 100644 103ze/Debug/103ze_code.map create mode 100644 103ze/Debug/Core/Src/main.d create mode 100644 103ze/Debug/Core/Src/main.o create mode 100644 103ze/Debug/Core/Src/main.su create mode 100644 103ze/Debug/Core/Src/stm32f1xx_hal_msp.d create mode 100644 103ze/Debug/Core/Src/stm32f1xx_hal_msp.o create mode 100644 103ze/Debug/Core/Src/stm32f1xx_hal_msp.su create mode 100644 103ze/Debug/Core/Src/stm32f1xx_it.d create mode 100644 103ze/Debug/Core/Src/stm32f1xx_it.o create mode 100644 103ze/Debug/Core/Src/stm32f1xx_it.su create mode 100644 103ze/Debug/Core/Src/subdir.mk create mode 100644 103ze/Debug/Core/Src/syscalls.d create mode 100644 103ze/Debug/Core/Src/syscalls.o create mode 100644 103ze/Debug/Core/Src/syscalls.su create mode 100644 103ze/Debug/Core/Src/sysmem.d create mode 100644 103ze/Debug/Core/Src/sysmem.o create mode 100644 103ze/Debug/Core/Src/sysmem.su create mode 100644 103ze/Debug/Core/Src/system_stm32f1xx.d create mode 100644 103ze/Debug/Core/Src/system_stm32f1xx.o create mode 100644 103ze/Debug/Core/Src/system_stm32f1xx.su create mode 100644 103ze/Debug/Core/Startup/startup_stm32f103zetx.d create mode 100644 103ze/Debug/Core/Startup/startup_stm32f103zetx.o create mode 100644 103ze/Debug/Core/Startup/subdir.mk create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.su create mode 100644 103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk create mode 100644 103ze/Debug/makefile create mode 100644 103ze/Debug/objects.list create mode 100644 103ze/Debug/objects.mk create mode 100644 103ze/Debug/sources.mk create mode 100644 103ze/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h create mode 100644 103ze/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h create mode 100644 103ze/Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h create mode 100644 103ze/Drivers/CMSIS/Include/cmsis_armcc.h create mode 100644 103ze/Drivers/CMSIS/Include/cmsis_armclang.h create mode 100644 103ze/Drivers/CMSIS/Include/cmsis_compiler.h create mode 100644 103ze/Drivers/CMSIS/Include/cmsis_gcc.h create mode 100644 103ze/Drivers/CMSIS/Include/cmsis_iccarm.h create mode 100644 103ze/Drivers/CMSIS/Include/cmsis_version.h create mode 100644 103ze/Drivers/CMSIS/Include/core_armv8mbl.h create mode 100644 103ze/Drivers/CMSIS/Include/core_armv8mml.h create mode 100644 103ze/Drivers/CMSIS/Include/core_cm0.h create mode 100644 103ze/Drivers/CMSIS/Include/core_cm0plus.h create mode 100644 103ze/Drivers/CMSIS/Include/core_cm1.h create mode 100644 103ze/Drivers/CMSIS/Include/core_cm23.h create mode 100644 103ze/Drivers/CMSIS/Include/core_cm3.h create mode 100644 103ze/Drivers/CMSIS/Include/core_cm33.h create mode 100644 103ze/Drivers/CMSIS/Include/core_cm4.h create mode 100644 103ze/Drivers/CMSIS/Include/core_cm7.h create mode 100644 103ze/Drivers/CMSIS/Include/core_sc000.h create mode 100644 103ze/Drivers/CMSIS/Include/core_sc300.h create mode 100644 103ze/Drivers/CMSIS/Include/mpu_armv7.h create mode 100644 103ze/Drivers/CMSIS/Include/mpu_armv8.h create mode 100644 103ze/Drivers/CMSIS/Include/tz_context.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c create mode 100644 103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c create mode 100644 103ze/STM32F103ZETX_FLASH.ld diff --git a/103ze/.cproject b/103ze/.cproject new file mode 100644 index 0000000..358324e --- /dev/null +++ b/103ze/.cproject @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/103ze/.mxproject b/103ze/.mxproject new file mode 100644 index 0000000..4e93c5c --- /dev/null +++ b/103ze/.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/stm32f103xe.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/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h; + +[PreviousUsedCubeIDEFiles] +SourceFiles=Core\Src\main.c;Core\Src\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;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;Core\Src/system_stm32f1xx.c;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/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;STM32F103xE;USE_HAL_DRIVER;USE_HAL_DRIVER; + +[PreviousGenFiles] +AdvancedFolderStructure=true +HeaderFileListSize=3 +HeaderFiles#0=C:/Users/13370/Desktop/smartbooks/103ze/Core/Inc/stm32f1xx_it.h +HeaderFiles#1=C:/Users/13370/Desktop/smartbooks/103ze/Core/Inc/stm32f1xx_hal_conf.h +HeaderFiles#2=C:/Users/13370/Desktop/smartbooks/103ze/Core/Inc/main.h +HeaderFolderListSize=1 +HeaderPath#0=C:/Users/13370/Desktop/smartbooks/103ze/Core/Inc +HeaderFiles=; +SourceFileListSize=3 +SourceFiles#0=C:/Users/13370/Desktop/smartbooks/103ze/Core/Src/stm32f1xx_it.c +SourceFiles#1=C:/Users/13370/Desktop/smartbooks/103ze/Core/Src/stm32f1xx_hal_msp.c +SourceFiles#2=C:/Users/13370/Desktop/smartbooks/103ze/Core/Src/main.c +SourceFolderListSize=1 +SourcePath#0=C:/Users/13370/Desktop/smartbooks/103ze/Core/Src +SourceFiles=; + diff --git a/103ze/.project b/103ze/.project new file mode 100644 index 0000000..d217c9a --- /dev/null +++ b/103ze/.project @@ -0,0 +1,32 @@ + + + 103ze_code + + + + + + 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/103ze/.settings/language.settings.xml b/103ze/.settings/language.settings.xml new file mode 100644 index 0000000..b3ae9f6 --- /dev/null +++ b/103ze/.settings/language.settings.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/103ze/.settings/stm32cubeide.project.prefs b/103ze/.settings/stm32cubeide.project.prefs new file mode 100644 index 0000000..224180f --- /dev/null +++ b/103ze/.settings/stm32cubeide.project.prefs @@ -0,0 +1,4 @@ +66BE74F758C12D739921AEA421D593D3=1 +8DF89ED150041C4CBC7CB9A9CAA90856=CC76C33494A966CD096CE20D27AFD561 +DC22A860405A8BF2F2C095E5B6529F12=CC76C33494A966CD096CE20D27AFD561 +eclipse.preferences.version=1 diff --git a/103ze/103ze_code.ioc b/103ze/103ze_code.ioc new file mode 100644 index 0000000..133df77 --- /dev/null +++ b/103ze/103ze_code.ioc @@ -0,0 +1,99 @@ +#MicroXplorer Configuration settings - do not modify +Mcu.Family=STM32F1 +RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE +ProjectManager.MainLocation=Core/Src +RCC.MCOFreq_Value=72000000 +ProjectManager.ProjectFileName=103ze_code.ioc +ProjectManager.KeepUserCode=true +Mcu.UserName=STM32F103ZETx +Mcu.PinsNb=5 +ProjectManager.NoMain=false +RCC.PLLCLKFreq_Value=72000000 +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false +RCC.ADCFreqValue=36000000 +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +RCC.APB1CLKDivider=RCC_HCLK_DIV2 +PinOutPanel.RotationAngle=0 +RCC.FamilyName=M +RCC.I2S3Freq_Value=72000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +ProjectManager.StackSize=0x400 +PA13.Signal=SYS_JTMS-SWDIO +RCC.FCLKCortexFreq_Value=72000000 +Mcu.IP2=SYS +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false +RCC.SDIOHCLKDiv2FreqValue=36000000 +Mcu.IP0=NVIC +Mcu.IP1=RCC +Mcu.UserConstants= +ProjectManager.TargetToolchain=STM32CubeIDE +Mcu.ThirdPartyNb=0 +RCC.SDIOFreq_Value=72000000 +RCC.HCLKFreq_Value=72000000 +Mcu.IPNb=3 +ProjectManager.PreviousToolchain= +RCC.APB2TimFreq_Value=72000000 +ProjectManager.RegisterCallBack= +OSC_IN.Signal=RCC_OSC_IN +RCC.USBFreq_Value=72000000 +OSC_OUT.Mode=HSE-External-Oscillator +OSC_OUT.Signal=RCC_OSC_OUT +RCC.AHBFreq_Value=72000000 +Mcu.Pin0=OSC_IN +Mcu.Pin1=OSC_OUT +Mcu.Pin2=PA13 +Mcu.Pin3=PA14 +Mcu.Pin4=VP_SYS_VS_Systick +ProjectManager.ProjectBuild=false +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false +board=custom +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true +ProjectManager.LastFirmware=true +RCC.PLLMUL=RCC_PLL_MUL9 +RCC.VCOOutput2Freq_Value=8000000 +ProjectManager.FirmwarePackage=STM32Cube FW_F1 V1.8.3 +MxDb.Version=DB.6.0.20 +RCC.APB2Freq_Value=72000000 +ProjectManager.BackupPrevious=false +MxCube.Version=6.2.0 +PA14.Mode=Serial_Wire +File.Version=6 +VP_SYS_VS_Systick.Mode=SysTick +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false +PA13.Mode=Serial_Wire +ProjectManager.FreePins=false +RCC.IPParameters=ADCFreqValue,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,FCLKCortexFreq_Value,FSMCFreq_Value,FamilyName,HCLKFreq_Value,I2S2Freq_Value,I2S3Freq_Value,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,PLLSourceVirtual,SDIOFreq_Value,SDIOHCLKDiv2FreqValue,SYSCLKFreq_VALUE,SYSCLKSource,TimSysFreq_Value,USBFreq_Value,VCOOutput2Freq_Value +ProjectManager.AskForMigrate=true +Mcu.Name=STM32F103Z(C-D-E)Tx +ProjectManager.HalAssertFull=false +ProjectManager.ProjectName=103ze_code +ProjectManager.UnderRoot=true +RCC.PLLMCOFreq_Value=36000000 +RCC.FSMCFreq_Value=72000000 +ProjectManager.CoupleFile=false +RCC.SYSCLKFreq_VALUE=72000000 +Mcu.Package=LQFP144 +RCC.TimSysFreq_Value=72000000 +RCC.I2S2Freq_Value=72000000 +NVIC.ForceEnableDMAVector=true +KeepUserPlacement=false +OSC_IN.Mode=HSE-External-Oscillator +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false +ProjectManager.CompilerOptimize=6 +ProjectManager.ToolChainLocation= +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +PA14.Signal=SYS_JTCK-SWCLK +ProjectManager.HeapSize=0x200 +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +ProjectManager.ComputerToolchain=false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +RCC.APB1TimFreq_Value=72000000 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +RCC.APB1Freq_Value=36000000 +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DeviceId=STM32F103ZETx +ProjectManager.LibraryCopy=1 +isbadioc=false diff --git a/103ze/Core/Inc/main.h b/103ze/Core/Inc/main.h new file mode 100644 index 0000000..13d1cee --- /dev/null +++ b/103ze/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) 2021 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/103ze/Core/Inc/stm32f1xx_hal_conf.h b/103ze/Core/Inc/stm32f1xx_hal_conf.h new file mode 100644 index 0000000..452125b --- /dev/null +++ b/103ze/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 0U /*!< 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/103ze/Core/Inc/stm32f1xx_it.h b/103ze/Core/Inc/stm32f1xx_it.h new file mode 100644 index 0000000..d121077 --- /dev/null +++ b/103ze/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) 2021 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/103ze/Core/Src/main.c b/103ze/Core/Src/main.c new file mode 100644 index 0000000..7fee498 --- /dev/null +++ b/103ze/Core/Src/main.c @@ -0,0 +1,190 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2021 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_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/103ze/Core/Src/stm32f1xx_hal_msp.c b/103ze/Core/Src/stm32f1xx_hal_msp.c new file mode 100644 index 0000000..add2195 --- /dev/null +++ b/103ze/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) 2021 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/103ze/Core/Src/stm32f1xx_it.c b/103ze/Core/Src/stm32f1xx_it.c new file mode 100644 index 0000000..cf204ca --- /dev/null +++ b/103ze/Core/Src/stm32f1xx_it.c @@ -0,0 +1,205 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f1xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2021 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/103ze/Core/Src/syscalls.c b/103ze/Core/Src/syscalls.c new file mode 100644 index 0000000..bc0dd6c --- /dev/null +++ b/103ze/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/103ze/Core/Src/sysmem.c b/103ze/Core/Src/sysmem.c new file mode 100644 index 0000000..d7cc52c --- /dev/null +++ b/103ze/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/103ze/Core/Src/system_stm32f1xx.c b/103ze/Core/Src/system_stm32f1xx.c new file mode 100644 index 0000000..bc96aae --- /dev/null +++ b/103ze/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/103ze/Core/Startup/startup_stm32f103zetx.s b/103ze/Core/Startup/startup_stm32f103zetx.s new file mode 100644 index 0000000..11d37f3 --- /dev/null +++ b/103ze/Core/Startup/startup_stm32f103zetx.s @@ -0,0 +1,468 @@ +/** + *************** (C) COPYRIGHT 2017 STMicroelectronics ************************ + * @file startup_stm32f103xe.s + * @author MCD Application Team + * @brief STM32F103xE 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 + * - Configure external SRAM mounted on STM3210E-EVAL board + * to be used as data memory (optional, to be enabled by user) + * - 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, 0xF1E0F85F +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval : None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + +/* Copy the data segment initializers from flash to SRAM */ + movs r1, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r3, =_sidata + ldr r3, [r3, r1] + str r3, [r0, r1] + adds r1, r1, #4 + +LoopCopyDataInit: + ldr r0, =_sdata + ldr r3, =_edata + adds r2, r0, r1 + cmp r2, r3 + bcc CopyDataInit + ldr r2, =_sbss + b LoopFillZerobss +/* Zero fill the bss segment. */ +FillZerobss: + movs r3, #0 + str r3, [r2], #4 + +LoopFillZerobss: + ldr r3, = _ebss + cmp r2, r3 + 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 TIM8_BRK_IRQHandler + .word TIM8_UP_IRQHandler + .word TIM8_TRG_COM_IRQHandler + .word TIM8_CC_IRQHandler + .word ADC3_IRQHandler + .word FSMC_IRQHandler + .word SDIO_IRQHandler + .word TIM5_IRQHandler + .word SPI3_IRQHandler + .word UART4_IRQHandler + .word UART5_IRQHandler + .word TIM6_IRQHandler + .word TIM7_IRQHandler + .word DMA2_Channel1_IRQHandler + .word DMA2_Channel2_IRQHandler + .word DMA2_Channel3_IRQHandler + .word DMA2_Channel4_5_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word BootRAM /* @0x1E0. This is for boot in RAM mode for + STM32F10x High 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 + + .weak TIM8_BRK_IRQHandler + .thumb_set TIM8_BRK_IRQHandler,Default_Handler + + .weak TIM8_UP_IRQHandler + .thumb_set TIM8_UP_IRQHandler,Default_Handler + + .weak TIM8_TRG_COM_IRQHandler + .thumb_set TIM8_TRG_COM_IRQHandler,Default_Handler + + .weak TIM8_CC_IRQHandler + .thumb_set TIM8_CC_IRQHandler,Default_Handler + + .weak ADC3_IRQHandler + .thumb_set ADC3_IRQHandler,Default_Handler + + .weak FSMC_IRQHandler + .thumb_set FSMC_IRQHandler,Default_Handler + + .weak SDIO_IRQHandler + .thumb_set SDIO_IRQHandler,Default_Handler + + .weak TIM5_IRQHandler + .thumb_set TIM5_IRQHandler,Default_Handler + + .weak SPI3_IRQHandler + .thumb_set SPI3_IRQHandler,Default_Handler + + .weak UART4_IRQHandler + .thumb_set UART4_IRQHandler,Default_Handler + + .weak UART5_IRQHandler + .thumb_set UART5_IRQHandler,Default_Handler + + .weak TIM6_IRQHandler + .thumb_set TIM6_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_IRQHandler,Default_Handler + + .weak DMA2_Channel1_IRQHandler + .thumb_set DMA2_Channel1_IRQHandler,Default_Handler + + .weak DMA2_Channel2_IRQHandler + .thumb_set DMA2_Channel2_IRQHandler,Default_Handler + + .weak DMA2_Channel3_IRQHandler + .thumb_set DMA2_Channel3_IRQHandler,Default_Handler + + .weak DMA2_Channel4_5_IRQHandler + .thumb_set DMA2_Channel4_5_IRQHandler,Default_Handler + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/103ze/Debug/103ze_code.bin b/103ze/Debug/103ze_code.bin new file mode 100644 index 0000000000000000000000000000000000000000..ff76bdfeb6195ee06c519ad7017dcc4059a75b39 GIT binary patch literal 3844 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 X!(oE-jXVqfg+qOt=js0&#$o&mVHEa> literal 0 HcmV?d00001 diff --git a/103ze/Debug/103ze_code.elf b/103ze/Debug/103ze_code.elf new file mode 100644 index 0000000000000000000000000000000000000000..0f6460ed506c9f0add0b60a1214599a691c08862 GIT binary patch literal 831160 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�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 G<7_nz}=snSOmf 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
nO6jd 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

4m?o}s>Kb&{*OicFy4 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 literal 0 HcmV?d00001 diff --git a/103ze/Debug/103ze_code.list b/103ze/Debug/103ze_code.list new file mode 100644 index 0000000..768067b --- /dev/null +++ b/103ze/Debug/103ze_code.list @@ -0,0 +1,2580 @@ + +103ze_code.elf: file format elf32-littlearm + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .isr_vector 000001e4 08000000 08000000 00010000 2**0 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 1 .text 00000cec 080001e4 080001e4 000101e4 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rodata 00000020 08000ed0 08000ed0 00010ed0 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 3 .ARM.extab 00000000 08000ef0 08000ef0 0002000c 2**0 + CONTENTS + 4 .ARM 00000000 08000ef0 08000ef0 0002000c 2**0 + CONTENTS + 5 .preinit_array 00000000 08000ef0 08000ef0 0002000c 2**0 + CONTENTS, ALLOC, LOAD, DATA + 6 .init_array 00000004 08000ef0 08000ef0 00010ef0 2**2 + CONTENTS, ALLOC, LOAD, DATA + 7 .fini_array 00000004 08000ef4 08000ef4 00010ef4 2**2 + CONTENTS, ALLOC, LOAD, DATA + 8 .data 0000000c 20000000 08000ef8 00020000 2**2 + CONTENTS, ALLOC, LOAD, DATA + 9 .bss 00000020 2000000c 08000f04 0002000c 2**2 + ALLOC + 10 ._user_heap_stack 00000604 2000002c 08000f04 0002002c 2**0 + ALLOC + 11 .ARM.attributes 00000029 00000000 00000000 0002000c 2**0 + CONTENTS, READONLY + 12 .debug_info 000028a8 00000000 00000000 00020035 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 13 .debug_abbrev 00000c6a 00000000 00000000 000228dd 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 14 .debug_aranges 00000378 00000000 00000000 00023548 2**3 + CONTENTS, READONLY, DEBUGGING, OCTETS + 15 .debug_ranges 00000300 00000000 00000000 000238c0 2**3 + CONTENTS, READONLY, DEBUGGING, OCTETS + 16 .debug_macro 00017679 00000000 00000000 00023bc0 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 17 .debug_line 00003bac 00000000 00000000 0003b239 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 18 .debug_str 0008957f 00000000 00000000 0003ede5 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 19 .comment 00000053 00000000 00000000 000c8364 2**0 + CONTENTS, READONLY + 20 .debug_frame 00000be8 00000000 00000000 000c83b8 2**2 + CONTENTS, READONLY, DEBUGGING, OCTETS + +Disassembly of section .text: + +080001e4 <__do_global_dtors_aux>: + 80001e4: b510 push {r4, lr} + 80001e6: 4c05 ldr r4, [pc, #20] ; (80001fc <__do_global_dtors_aux+0x18>) + 80001e8: 7823 ldrb r3, [r4, #0] + 80001ea: b933 cbnz r3, 80001fa <__do_global_dtors_aux+0x16> + 80001ec: 4b04 ldr r3, [pc, #16] ; (8000200 <__do_global_dtors_aux+0x1c>) + 80001ee: b113 cbz r3, 80001f6 <__do_global_dtors_aux+0x12> + 80001f0: 4804 ldr r0, [pc, #16] ; (8000204 <__do_global_dtors_aux+0x20>) + 80001f2: f3af 8000 nop.w + 80001f6: 2301 movs r3, #1 + 80001f8: 7023 strb r3, [r4, #0] + 80001fa: bd10 pop {r4, pc} + 80001fc: 2000000c .word 0x2000000c + 8000200: 00000000 .word 0x00000000 + 8000204: 08000eb8 .word 0x08000eb8 + +08000208 : + 8000208: b508 push {r3, lr} + 800020a: 4b03 ldr r3, [pc, #12] ; (8000218 ) + 800020c: b11b cbz r3, 8000216 + 800020e: 4903 ldr r1, [pc, #12] ; (800021c ) + 8000210: 4803 ldr r0, [pc, #12] ; (8000220 ) + 8000212: f3af 8000 nop.w + 8000216: bd08 pop {r3, pc} + 8000218: 00000000 .word 0x00000000 + 800021c: 20000010 .word 0x20000010 + 8000220: 08000eb8 .word 0x08000eb8 + +08000224

: +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + 8000224: b580 push {r7, lr} + 8000226: af00 add r7, sp, #0 + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + 8000228: f000 f8ec bl 8000404 + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + 800022c: f000 f803 bl 8000236 + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + 8000230: f000 f846 bl 80002c0 + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + 8000234: e7fe b.n 8000234 + +08000236 : +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + 8000236: b580 push {r7, lr} + 8000238: b090 sub sp, #64 ; 0x40 + 800023a: af00 add r7, sp, #0 + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + 800023c: f107 0318 add.w r3, r7, #24 + 8000240: 2228 movs r2, #40 ; 0x28 + 8000242: 2100 movs r1, #0 + 8000244: 4618 mov r0, r3 + 8000246: f000 fe2f bl 8000ea8 + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 800024a: 1d3b adds r3, r7, #4 + 800024c: 2200 movs r2, #0 + 800024e: 601a str r2, [r3, #0] + 8000250: 605a str r2, [r3, #4] + 8000252: 609a str r2, [r3, #8] + 8000254: 60da str r2, [r3, #12] + 8000256: 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; + 8000258: 2301 movs r3, #1 + 800025a: 61bb str r3, [r7, #24] + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + 800025c: f44f 3380 mov.w r3, #65536 ; 0x10000 + 8000260: 61fb str r3, [r7, #28] + RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; + 8000262: 2300 movs r3, #0 + 8000264: 623b str r3, [r7, #32] + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + 8000266: 2301 movs r3, #1 + 8000268: 62bb str r3, [r7, #40] ; 0x28 + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + 800026a: 2302 movs r3, #2 + 800026c: 637b str r3, [r7, #52] ; 0x34 + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + 800026e: f44f 3380 mov.w r3, #65536 ; 0x10000 + 8000272: 63bb str r3, [r7, #56] ; 0x38 + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; + 8000274: f44f 13e0 mov.w r3, #1835008 ; 0x1c0000 + 8000278: 63fb str r3, [r7, #60] ; 0x3c + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 800027a: f107 0318 add.w r3, r7, #24 + 800027e: 4618 mov r0, r3 + 8000280: f000 fa06 bl 8000690 + 8000284: 4603 mov r3, r0 + 8000286: 2b00 cmp r3, #0 + 8000288: d001 beq.n 800028e + { + Error_Handler(); + 800028a: f000 f82f bl 80002ec + } + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + 800028e: 230f movs r3, #15 + 8000290: 607b str r3, [r7, #4] + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + 8000292: 2302 movs r3, #2 + 8000294: 60bb str r3, [r7, #8] + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + 8000296: 2300 movs r3, #0 + 8000298: 60fb str r3, [r7, #12] + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + 800029a: f44f 6380 mov.w r3, #1024 ; 0x400 + 800029e: 613b str r3, [r7, #16] + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 80002a0: 2300 movs r3, #0 + 80002a2: 617b str r3, [r7, #20] + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) + 80002a4: 1d3b adds r3, r7, #4 + 80002a6: 2102 movs r1, #2 + 80002a8: 4618 mov r0, r3 + 80002aa: f000 fc71 bl 8000b90 + 80002ae: 4603 mov r3, r0 + 80002b0: 2b00 cmp r3, #0 + 80002b2: d001 beq.n 80002b8 + { + Error_Handler(); + 80002b4: f000 f81a bl 80002ec + } +} + 80002b8: bf00 nop + 80002ba: 3740 adds r7, #64 ; 0x40 + 80002bc: 46bd mov sp, r7 + 80002be: bd80 pop {r7, pc} + +080002c0 : + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + 80002c0: b480 push {r7} + 80002c2: b083 sub sp, #12 + 80002c4: af00 add r7, sp, #0 + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOA_CLK_ENABLE(); + 80002c6: 4b08 ldr r3, [pc, #32] ; (80002e8 ) + 80002c8: 699b ldr r3, [r3, #24] + 80002ca: 4a07 ldr r2, [pc, #28] ; (80002e8 ) + 80002cc: f043 0304 orr.w r3, r3, #4 + 80002d0: 6193 str r3, [r2, #24] + 80002d2: 4b05 ldr r3, [pc, #20] ; (80002e8 ) + 80002d4: 699b ldr r3, [r3, #24] + 80002d6: f003 0304 and.w r3, r3, #4 + 80002da: 607b str r3, [r7, #4] + 80002dc: 687b ldr r3, [r7, #4] + +} + 80002de: bf00 nop + 80002e0: 370c adds r7, #12 + 80002e2: 46bd mov sp, r7 + 80002e4: bc80 pop {r7} + 80002e6: 4770 bx lr + 80002e8: 40021000 .word 0x40021000 + +080002ec : +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + 80002ec: b480 push {r7} + 80002ee: 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"); + 80002f0: b672 cpsid i +} + 80002f2: 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) + 80002f4: e7fe b.n 80002f4 + ... + +080002f8 : +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + 80002f8: b480 push {r7} + 80002fa: b085 sub sp, #20 + 80002fc: af00 add r7, sp, #0 + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_AFIO_CLK_ENABLE(); + 80002fe: 4b15 ldr r3, [pc, #84] ; (8000354 ) + 8000300: 699b ldr r3, [r3, #24] + 8000302: 4a14 ldr r2, [pc, #80] ; (8000354 ) + 8000304: f043 0301 orr.w r3, r3, #1 + 8000308: 6193 str r3, [r2, #24] + 800030a: 4b12 ldr r3, [pc, #72] ; (8000354 ) + 800030c: 699b ldr r3, [r3, #24] + 800030e: f003 0301 and.w r3, r3, #1 + 8000312: 60bb str r3, [r7, #8] + 8000314: 68bb ldr r3, [r7, #8] + __HAL_RCC_PWR_CLK_ENABLE(); + 8000316: 4b0f ldr r3, [pc, #60] ; (8000354 ) + 8000318: 69db ldr r3, [r3, #28] + 800031a: 4a0e ldr r2, [pc, #56] ; (8000354 ) + 800031c: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8000320: 61d3 str r3, [r2, #28] + 8000322: 4b0c ldr r3, [pc, #48] ; (8000354 ) + 8000324: 69db ldr r3, [r3, #28] + 8000326: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 800032a: 607b str r3, [r7, #4] + 800032c: 687b ldr r3, [r7, #4] + + /* System interrupt init*/ + + /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled + */ + __HAL_AFIO_REMAP_SWJ_NOJTAG(); + 800032e: 4b0a ldr r3, [pc, #40] ; (8000358 ) + 8000330: 685b ldr r3, [r3, #4] + 8000332: 60fb str r3, [r7, #12] + 8000334: 68fb ldr r3, [r7, #12] + 8000336: f023 63e0 bic.w r3, r3, #117440512 ; 0x7000000 + 800033a: 60fb str r3, [r7, #12] + 800033c: 68fb ldr r3, [r7, #12] + 800033e: f043 7300 orr.w r3, r3, #33554432 ; 0x2000000 + 8000342: 60fb str r3, [r7, #12] + 8000344: 4a04 ldr r2, [pc, #16] ; (8000358 ) + 8000346: 68fb ldr r3, [r7, #12] + 8000348: 6053 str r3, [r2, #4] + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + 800034a: bf00 nop + 800034c: 3714 adds r7, #20 + 800034e: 46bd mov sp, r7 + 8000350: bc80 pop {r7} + 8000352: 4770 bx lr + 8000354: 40021000 .word 0x40021000 + 8000358: 40010000 .word 0x40010000 + +0800035c : +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + 800035c: b480 push {r7} + 800035e: 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) + 8000360: e7fe b.n 8000360 + +08000362 : + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + 8000362: b480 push {r7} + 8000364: af00 add r7, sp, #0 + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + 8000366: e7fe b.n 8000366 + +08000368 : + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + 8000368: b480 push {r7} + 800036a: af00 add r7, sp, #0 + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + 800036c: e7fe b.n 800036c + +0800036e : + +/** + * @brief This function handles Prefetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + 800036e: b480 push {r7} + 8000370: af00 add r7, sp, #0 + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + 8000372: e7fe b.n 8000372 + +08000374 : + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + 8000374: b480 push {r7} + 8000376: af00 add r7, sp, #0 + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + 8000378: e7fe b.n 8000378 + +0800037a : + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + 800037a: b480 push {r7} + 800037c: af00 add r7, sp, #0 + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + 800037e: bf00 nop + 8000380: 46bd mov sp, r7 + 8000382: bc80 pop {r7} + 8000384: 4770 bx lr + +08000386 : + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + 8000386: b480 push {r7} + 8000388: af00 add r7, sp, #0 + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + 800038a: bf00 nop + 800038c: 46bd mov sp, r7 + 800038e: bc80 pop {r7} + 8000390: 4770 bx lr + +08000392 : + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + 8000392: b480 push {r7} + 8000394: af00 add r7, sp, #0 + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + 8000396: bf00 nop + 8000398: 46bd mov sp, r7 + 800039a: bc80 pop {r7} + 800039c: 4770 bx lr + +0800039e : + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + 800039e: b580 push {r7, lr} + 80003a0: af00 add r7, sp, #0 + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + 80003a2: f000 f875 bl 8000490 + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + 80003a6: bf00 nop + 80003a8: bd80 pop {r7, pc} + +080003aa : + * @note This function should be used only after reset. + * @param None + * @retval None + */ +void SystemInit (void) +{ + 80003aa: b480 push {r7} + 80003ac: 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 */ +} + 80003ae: bf00 nop + 80003b0: 46bd mov sp, r7 + 80003b2: bc80 pop {r7} + 80003b4: 4770 bx lr + ... + +080003b8 : + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + +/* Copy the data segment initializers from flash to SRAM */ + movs r1, #0 + 80003b8: 2100 movs r1, #0 + b LoopCopyDataInit + 80003ba: e003 b.n 80003c4 + +080003bc : + +CopyDataInit: + ldr r3, =_sidata + 80003bc: 4b0b ldr r3, [pc, #44] ; (80003ec ) + ldr r3, [r3, r1] + 80003be: 585b ldr r3, [r3, r1] + str r3, [r0, r1] + 80003c0: 5043 str r3, [r0, r1] + adds r1, r1, #4 + 80003c2: 3104 adds r1, #4 + +080003c4 : + +LoopCopyDataInit: + ldr r0, =_sdata + 80003c4: 480a ldr r0, [pc, #40] ; (80003f0 ) + ldr r3, =_edata + 80003c6: 4b0b ldr r3, [pc, #44] ; (80003f4 ) + adds r2, r0, r1 + 80003c8: 1842 adds r2, r0, r1 + cmp r2, r3 + 80003ca: 429a cmp r2, r3 + bcc CopyDataInit + 80003cc: d3f6 bcc.n 80003bc + ldr r2, =_sbss + 80003ce: 4a0a ldr r2, [pc, #40] ; (80003f8 ) + b LoopFillZerobss + 80003d0: e002 b.n 80003d8 + +080003d2 : +/* Zero fill the bss segment. */ +FillZerobss: + movs r3, #0 + 80003d2: 2300 movs r3, #0 + str r3, [r2], #4 + 80003d4: f842 3b04 str.w r3, [r2], #4 + +080003d8 : + +LoopFillZerobss: + ldr r3, = _ebss + 80003d8: 4b08 ldr r3, [pc, #32] ; (80003fc ) + cmp r2, r3 + 80003da: 429a cmp r2, r3 + bcc FillZerobss + 80003dc: d3f9 bcc.n 80003d2 + +/* Call the clock system intitialization function.*/ + bl SystemInit + 80003de: f7ff ffe4 bl 80003aa +/* Call static constructors */ + bl __libc_init_array + 80003e2: f000 fd3d bl 8000e60 <__libc_init_array> +/* Call the application's entry point.*/ + bl main + 80003e6: f7ff ff1d bl 8000224
+ bx lr + 80003ea: 4770 bx lr + ldr r3, =_sidata + 80003ec: 08000ef8 .word 0x08000ef8 + ldr r0, =_sdata + 80003f0: 20000000 .word 0x20000000 + ldr r3, =_edata + 80003f4: 2000000c .word 0x2000000c + ldr r2, =_sbss + 80003f8: 2000000c .word 0x2000000c + ldr r3, = _ebss + 80003fc: 2000002c .word 0x2000002c + +08000400 : + * @retval : None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + 8000400: e7fe b.n 8000400 + ... + +08000404 : + * 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) +{ + 8000404: b580 push {r7, lr} + 8000406: 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(); + 8000408: 4b08 ldr r3, [pc, #32] ; (800042c ) + 800040a: 681b ldr r3, [r3, #0] + 800040c: 4a07 ldr r2, [pc, #28] ; (800042c ) + 800040e: f043 0310 orr.w r3, r3, #16 + 8000412: 6013 str r3, [r2, #0] +#endif +#endif /* PREFETCH_ENABLE */ + + /* Set Interrupt Group Priority */ + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); + 8000414: 2003 movs r0, #3 + 8000416: f000 f907 bl 8000628 + + /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ + HAL_InitTick(TICK_INT_PRIORITY); + 800041a: 2000 movs r0, #0 + 800041c: f000 f808 bl 8000430 + + /* Init the low level hardware */ + HAL_MspInit(); + 8000420: f7ff ff6a bl 80002f8 + + /* Return function status */ + return HAL_OK; + 8000424: 2300 movs r3, #0 +} + 8000426: 4618 mov r0, r3 + 8000428: bd80 pop {r7, pc} + 800042a: bf00 nop + 800042c: 40022000 .word 0x40022000 + +08000430 : + * implementation in user file. + * @param TickPriority Tick interrupt priority. + * @retval HAL status + */ +__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) +{ + 8000430: b580 push {r7, lr} + 8000432: b082 sub sp, #8 + 8000434: af00 add r7, sp, #0 + 8000436: 6078 str r0, [r7, #4] + /* Configure the SysTick to have interrupt in 1ms time basis*/ + if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) + 8000438: 4b12 ldr r3, [pc, #72] ; (8000484 ) + 800043a: 681a ldr r2, [r3, #0] + 800043c: 4b12 ldr r3, [pc, #72] ; (8000488 ) + 800043e: 781b ldrb r3, [r3, #0] + 8000440: 4619 mov r1, r3 + 8000442: f44f 737a mov.w r3, #1000 ; 0x3e8 + 8000446: fbb3 f3f1 udiv r3, r3, r1 + 800044a: fbb2 f3f3 udiv r3, r2, r3 + 800044e: 4618 mov r0, r3 + 8000450: f000 f911 bl 8000676 + 8000454: 4603 mov r3, r0 + 8000456: 2b00 cmp r3, #0 + 8000458: d001 beq.n 800045e + { + return HAL_ERROR; + 800045a: 2301 movs r3, #1 + 800045c: e00e b.n 800047c + } + + /* Configure the SysTick IRQ priority */ + if (TickPriority < (1UL << __NVIC_PRIO_BITS)) + 800045e: 687b ldr r3, [r7, #4] + 8000460: 2b0f cmp r3, #15 + 8000462: d80a bhi.n 800047a + { + HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); + 8000464: 2200 movs r2, #0 + 8000466: 6879 ldr r1, [r7, #4] + 8000468: f04f 30ff mov.w r0, #4294967295 + 800046c: f000 f8e7 bl 800063e + uwTickPrio = TickPriority; + 8000470: 4a06 ldr r2, [pc, #24] ; (800048c ) + 8000472: 687b ldr r3, [r7, #4] + 8000474: 6013 str r3, [r2, #0] + { + return HAL_ERROR; + } + + /* Return function status */ + return HAL_OK; + 8000476: 2300 movs r3, #0 + 8000478: e000 b.n 800047c + return HAL_ERROR; + 800047a: 2301 movs r3, #1 +} + 800047c: 4618 mov r0, r3 + 800047e: 3708 adds r7, #8 + 8000480: 46bd mov sp, r7 + 8000482: bd80 pop {r7, pc} + 8000484: 20000000 .word 0x20000000 + 8000488: 20000008 .word 0x20000008 + 800048c: 20000004 .word 0x20000004 + +08000490 : + * @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) +{ + 8000490: b480 push {r7} + 8000492: af00 add r7, sp, #0 + uwTick += uwTickFreq; + 8000494: 4b05 ldr r3, [pc, #20] ; (80004ac ) + 8000496: 781b ldrb r3, [r3, #0] + 8000498: 461a mov r2, r3 + 800049a: 4b05 ldr r3, [pc, #20] ; (80004b0 ) + 800049c: 681b ldr r3, [r3, #0] + 800049e: 4413 add r3, r2 + 80004a0: 4a03 ldr r2, [pc, #12] ; (80004b0 ) + 80004a2: 6013 str r3, [r2, #0] +} + 80004a4: bf00 nop + 80004a6: 46bd mov sp, r7 + 80004a8: bc80 pop {r7} + 80004aa: 4770 bx lr + 80004ac: 20000008 .word 0x20000008 + 80004b0: 20000028 .word 0x20000028 + +080004b4 : + * @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) +{ + 80004b4: b480 push {r7} + 80004b6: af00 add r7, sp, #0 + return uwTick; + 80004b8: 4b02 ldr r3, [pc, #8] ; (80004c4 ) + 80004ba: 681b ldr r3, [r3, #0] +} + 80004bc: 4618 mov r0, r3 + 80004be: 46bd mov sp, r7 + 80004c0: bc80 pop {r7} + 80004c2: 4770 bx lr + 80004c4: 20000028 .word 0x20000028 + +080004c8 <__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) +{ + 80004c8: b480 push {r7} + 80004ca: b085 sub sp, #20 + 80004cc: af00 add r7, sp, #0 + 80004ce: 6078 str r0, [r7, #4] + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 80004d0: 687b ldr r3, [r7, #4] + 80004d2: f003 0307 and.w r3, r3, #7 + 80004d6: 60fb str r3, [r7, #12] + + reg_value = SCB->AIRCR; /* read old register configuration */ + 80004d8: 4b0c ldr r3, [pc, #48] ; (800050c <__NVIC_SetPriorityGrouping+0x44>) + 80004da: 68db ldr r3, [r3, #12] + 80004dc: 60bb str r3, [r7, #8] + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + 80004de: 68ba ldr r2, [r7, #8] + 80004e0: f64f 03ff movw r3, #63743 ; 0xf8ff + 80004e4: 4013 ands r3, r2 + 80004e6: 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 */ + 80004e8: 68fb ldr r3, [r7, #12] + 80004ea: 021a lsls r2, r3, #8 + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + 80004ec: 68bb ldr r3, [r7, #8] + 80004ee: 4313 orrs r3, r2 + reg_value = (reg_value | + 80004f0: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 + 80004f4: f443 3300 orr.w r3, r3, #131072 ; 0x20000 + 80004f8: 60bb str r3, [r7, #8] + SCB->AIRCR = reg_value; + 80004fa: 4a04 ldr r2, [pc, #16] ; (800050c <__NVIC_SetPriorityGrouping+0x44>) + 80004fc: 68bb ldr r3, [r7, #8] + 80004fe: 60d3 str r3, [r2, #12] +} + 8000500: bf00 nop + 8000502: 3714 adds r7, #20 + 8000504: 46bd mov sp, r7 + 8000506: bc80 pop {r7} + 8000508: 4770 bx lr + 800050a: bf00 nop + 800050c: e000ed00 .word 0xe000ed00 + +08000510 <__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) +{ + 8000510: b480 push {r7} + 8000512: af00 add r7, sp, #0 + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); + 8000514: 4b04 ldr r3, [pc, #16] ; (8000528 <__NVIC_GetPriorityGrouping+0x18>) + 8000516: 68db ldr r3, [r3, #12] + 8000518: 0a1b lsrs r3, r3, #8 + 800051a: f003 0307 and.w r3, r3, #7 +} + 800051e: 4618 mov r0, r3 + 8000520: 46bd mov sp, r7 + 8000522: bc80 pop {r7} + 8000524: 4770 bx lr + 8000526: bf00 nop + 8000528: e000ed00 .word 0xe000ed00 + +0800052c <__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) +{ + 800052c: b480 push {r7} + 800052e: b083 sub sp, #12 + 8000530: af00 add r7, sp, #0 + 8000532: 4603 mov r3, r0 + 8000534: 6039 str r1, [r7, #0] + 8000536: 71fb strb r3, [r7, #7] + if ((int32_t)(IRQn) >= 0) + 8000538: f997 3007 ldrsb.w r3, [r7, #7] + 800053c: 2b00 cmp r3, #0 + 800053e: db0a blt.n 8000556 <__NVIC_SetPriority+0x2a> + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 8000540: 683b ldr r3, [r7, #0] + 8000542: b2da uxtb r2, r3 + 8000544: 490c ldr r1, [pc, #48] ; (8000578 <__NVIC_SetPriority+0x4c>) + 8000546: f997 3007 ldrsb.w r3, [r7, #7] + 800054a: 0112 lsls r2, r2, #4 + 800054c: b2d2 uxtb r2, r2 + 800054e: 440b add r3, r1 + 8000550: 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); + } +} + 8000554: e00a b.n 800056c <__NVIC_SetPriority+0x40> + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 8000556: 683b ldr r3, [r7, #0] + 8000558: b2da uxtb r2, r3 + 800055a: 4908 ldr r1, [pc, #32] ; (800057c <__NVIC_SetPriority+0x50>) + 800055c: 79fb ldrb r3, [r7, #7] + 800055e: f003 030f and.w r3, r3, #15 + 8000562: 3b04 subs r3, #4 + 8000564: 0112 lsls r2, r2, #4 + 8000566: b2d2 uxtb r2, r2 + 8000568: 440b add r3, r1 + 800056a: 761a strb r2, [r3, #24] +} + 800056c: bf00 nop + 800056e: 370c adds r7, #12 + 8000570: 46bd mov sp, r7 + 8000572: bc80 pop {r7} + 8000574: 4770 bx lr + 8000576: bf00 nop + 8000578: e000e100 .word 0xe000e100 + 800057c: e000ed00 .word 0xe000ed00 + +08000580 : + \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) +{ + 8000580: b480 push {r7} + 8000582: b089 sub sp, #36 ; 0x24 + 8000584: af00 add r7, sp, #0 + 8000586: 60f8 str r0, [r7, #12] + 8000588: 60b9 str r1, [r7, #8] + 800058a: 607a str r2, [r7, #4] + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 800058c: 68fb ldr r3, [r7, #12] + 800058e: f003 0307 and.w r3, r3, #7 + 8000592: 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); + 8000594: 69fb ldr r3, [r7, #28] + 8000596: f1c3 0307 rsb r3, r3, #7 + 800059a: 2b04 cmp r3, #4 + 800059c: bf28 it cs + 800059e: 2304 movcs r3, #4 + 80005a0: 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)); + 80005a2: 69fb ldr r3, [r7, #28] + 80005a4: 3304 adds r3, #4 + 80005a6: 2b06 cmp r3, #6 + 80005a8: d902 bls.n 80005b0 + 80005aa: 69fb ldr r3, [r7, #28] + 80005ac: 3b03 subs r3, #3 + 80005ae: e000 b.n 80005b2 + 80005b0: 2300 movs r3, #0 + 80005b2: 617b str r3, [r7, #20] + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 80005b4: f04f 32ff mov.w r2, #4294967295 + 80005b8: 69bb ldr r3, [r7, #24] + 80005ba: fa02 f303 lsl.w r3, r2, r3 + 80005be: 43da mvns r2, r3 + 80005c0: 68bb ldr r3, [r7, #8] + 80005c2: 401a ands r2, r3 + 80005c4: 697b ldr r3, [r7, #20] + 80005c6: 409a lsls r2, r3 + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + 80005c8: f04f 31ff mov.w r1, #4294967295 + 80005cc: 697b ldr r3, [r7, #20] + 80005ce: fa01 f303 lsl.w r3, r1, r3 + 80005d2: 43d9 mvns r1, r3 + 80005d4: 687b ldr r3, [r7, #4] + 80005d6: 400b ands r3, r1 + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 80005d8: 4313 orrs r3, r2 + ); +} + 80005da: 4618 mov r0, r3 + 80005dc: 3724 adds r7, #36 ; 0x24 + 80005de: 46bd mov sp, r7 + 80005e0: bc80 pop {r7} + 80005e2: 4770 bx lr + +080005e4 : + \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) +{ + 80005e4: b580 push {r7, lr} + 80005e6: b082 sub sp, #8 + 80005e8: af00 add r7, sp, #0 + 80005ea: 6078 str r0, [r7, #4] + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + 80005ec: 687b ldr r3, [r7, #4] + 80005ee: 3b01 subs r3, #1 + 80005f0: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 + 80005f4: d301 bcc.n 80005fa + { + return (1UL); /* Reload value impossible */ + 80005f6: 2301 movs r3, #1 + 80005f8: e00f b.n 800061a + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + 80005fa: 4a0a ldr r2, [pc, #40] ; (8000624 ) + 80005fc: 687b ldr r3, [r7, #4] + 80005fe: 3b01 subs r3, #1 + 8000600: 6053 str r3, [r2, #4] + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + 8000602: 210f movs r1, #15 + 8000604: f04f 30ff mov.w r0, #4294967295 + 8000608: f7ff ff90 bl 800052c <__NVIC_SetPriority> + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + 800060c: 4b05 ldr r3, [pc, #20] ; (8000624 ) + 800060e: 2200 movs r2, #0 + 8000610: 609a str r2, [r3, #8] + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + 8000612: 4b04 ldr r3, [pc, #16] ; (8000624 ) + 8000614: 2207 movs r2, #7 + 8000616: 601a str r2, [r3, #0] + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ + 8000618: 2300 movs r3, #0 +} + 800061a: 4618 mov r0, r3 + 800061c: 3708 adds r7, #8 + 800061e: 46bd mov sp, r7 + 8000620: bd80 pop {r7, pc} + 8000622: bf00 nop + 8000624: e000e010 .word 0xe000e010 + +08000628 : + * @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) +{ + 8000628: b580 push {r7, lr} + 800062a: b082 sub sp, #8 + 800062c: af00 add r7, sp, #0 + 800062e: 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); + 8000630: 6878 ldr r0, [r7, #4] + 8000632: f7ff ff49 bl 80004c8 <__NVIC_SetPriorityGrouping> +} + 8000636: bf00 nop + 8000638: 3708 adds r7, #8 + 800063a: 46bd mov sp, r7 + 800063c: bd80 pop {r7, pc} + +0800063e : + * 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) +{ + 800063e: b580 push {r7, lr} + 8000640: b086 sub sp, #24 + 8000642: af00 add r7, sp, #0 + 8000644: 4603 mov r3, r0 + 8000646: 60b9 str r1, [r7, #8] + 8000648: 607a str r2, [r7, #4] + 800064a: 73fb strb r3, [r7, #15] + uint32_t prioritygroup = 0x00U; + 800064c: 2300 movs r3, #0 + 800064e: 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(); + 8000650: f7ff ff5e bl 8000510 <__NVIC_GetPriorityGrouping> + 8000654: 6178 str r0, [r7, #20] + + NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); + 8000656: 687a ldr r2, [r7, #4] + 8000658: 68b9 ldr r1, [r7, #8] + 800065a: 6978 ldr r0, [r7, #20] + 800065c: f7ff ff90 bl 8000580 + 8000660: 4602 mov r2, r0 + 8000662: f997 300f ldrsb.w r3, [r7, #15] + 8000666: 4611 mov r1, r2 + 8000668: 4618 mov r0, r3 + 800066a: f7ff ff5f bl 800052c <__NVIC_SetPriority> +} + 800066e: bf00 nop + 8000670: 3718 adds r7, #24 + 8000672: 46bd mov sp, r7 + 8000674: bd80 pop {r7, pc} + +08000676 : + * @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) +{ + 8000676: b580 push {r7, lr} + 8000678: b082 sub sp, #8 + 800067a: af00 add r7, sp, #0 + 800067c: 6078 str r0, [r7, #4] + return SysTick_Config(TicksNumb); + 800067e: 6878 ldr r0, [r7, #4] + 8000680: f7ff ffb0 bl 80005e4 + 8000684: 4603 mov r3, r0 +} + 8000686: 4618 mov r0, r3 + 8000688: 3708 adds r7, #8 + 800068a: 46bd mov sp, r7 + 800068c: bd80 pop {r7, pc} + ... + +08000690 : + * 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) +{ + 8000690: b580 push {r7, lr} + 8000692: b086 sub sp, #24 + 8000694: af00 add r7, sp, #0 + 8000696: 6078 str r0, [r7, #4] + uint32_t tickstart; + uint32_t pll_config; + + /* Check Null pointer */ + if (RCC_OscInitStruct == NULL) + 8000698: 687b ldr r3, [r7, #4] + 800069a: 2b00 cmp r3, #0 + 800069c: d101 bne.n 80006a2 + { + return HAL_ERROR; + 800069e: 2301 movs r3, #1 + 80006a0: e26c b.n 8000b7c + + /* Check the parameters */ + assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); + + /*------------------------------- HSE Configuration ------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) + 80006a2: 687b ldr r3, [r7, #4] + 80006a4: 681b ldr r3, [r3, #0] + 80006a6: f003 0301 and.w r3, r3, #1 + 80006aa: 2b00 cmp r3, #0 + 80006ac: f000 8087 beq.w 80007be + { + /* 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) + 80006b0: 4b92 ldr r3, [pc, #584] ; (80008fc ) + 80006b2: 685b ldr r3, [r3, #4] + 80006b4: f003 030c and.w r3, r3, #12 + 80006b8: 2b04 cmp r3, #4 + 80006ba: d00c beq.n 80006d6 + || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE))) + 80006bc: 4b8f ldr r3, [pc, #572] ; (80008fc ) + 80006be: 685b ldr r3, [r3, #4] + 80006c0: f003 030c and.w r3, r3, #12 + 80006c4: 2b08 cmp r3, #8 + 80006c6: d112 bne.n 80006ee + 80006c8: 4b8c ldr r3, [pc, #560] ; (80008fc ) + 80006ca: 685b ldr r3, [r3, #4] + 80006cc: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 80006d0: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 80006d4: d10b bne.n 80006ee + { + if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 80006d6: 4b89 ldr r3, [pc, #548] ; (80008fc ) + 80006d8: 681b ldr r3, [r3, #0] + 80006da: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80006de: 2b00 cmp r3, #0 + 80006e0: d06c beq.n 80007bc + 80006e2: 687b ldr r3, [r7, #4] + 80006e4: 685b ldr r3, [r3, #4] + 80006e6: 2b00 cmp r3, #0 + 80006e8: d168 bne.n 80007bc + { + return HAL_ERROR; + 80006ea: 2301 movs r3, #1 + 80006ec: e246 b.n 8000b7c + } + } + else + { + /* Set the new HSE configuration ---------------------------------------*/ + __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); + 80006ee: 687b ldr r3, [r7, #4] + 80006f0: 685b ldr r3, [r3, #4] + 80006f2: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 80006f6: d106 bne.n 8000706 + 80006f8: 4b80 ldr r3, [pc, #512] ; (80008fc ) + 80006fa: 681b ldr r3, [r3, #0] + 80006fc: 4a7f ldr r2, [pc, #508] ; (80008fc ) + 80006fe: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 8000702: 6013 str r3, [r2, #0] + 8000704: e02e b.n 8000764 + 8000706: 687b ldr r3, [r7, #4] + 8000708: 685b ldr r3, [r3, #4] + 800070a: 2b00 cmp r3, #0 + 800070c: d10c bne.n 8000728 + 800070e: 4b7b ldr r3, [pc, #492] ; (80008fc ) + 8000710: 681b ldr r3, [r3, #0] + 8000712: 4a7a ldr r2, [pc, #488] ; (80008fc ) + 8000714: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 8000718: 6013 str r3, [r2, #0] + 800071a: 4b78 ldr r3, [pc, #480] ; (80008fc ) + 800071c: 681b ldr r3, [r3, #0] + 800071e: 4a77 ldr r2, [pc, #476] ; (80008fc ) + 8000720: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 8000724: 6013 str r3, [r2, #0] + 8000726: e01d b.n 8000764 + 8000728: 687b ldr r3, [r7, #4] + 800072a: 685b ldr r3, [r3, #4] + 800072c: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 + 8000730: d10c bne.n 800074c + 8000732: 4b72 ldr r3, [pc, #456] ; (80008fc ) + 8000734: 681b ldr r3, [r3, #0] + 8000736: 4a71 ldr r2, [pc, #452] ; (80008fc ) + 8000738: f443 2380 orr.w r3, r3, #262144 ; 0x40000 + 800073c: 6013 str r3, [r2, #0] + 800073e: 4b6f ldr r3, [pc, #444] ; (80008fc ) + 8000740: 681b ldr r3, [r3, #0] + 8000742: 4a6e ldr r2, [pc, #440] ; (80008fc ) + 8000744: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 8000748: 6013 str r3, [r2, #0] + 800074a: e00b b.n 8000764 + 800074c: 4b6b ldr r3, [pc, #428] ; (80008fc ) + 800074e: 681b ldr r3, [r3, #0] + 8000750: 4a6a ldr r2, [pc, #424] ; (80008fc ) + 8000752: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 8000756: 6013 str r3, [r2, #0] + 8000758: 4b68 ldr r3, [pc, #416] ; (80008fc ) + 800075a: 681b ldr r3, [r3, #0] + 800075c: 4a67 ldr r2, [pc, #412] ; (80008fc ) + 800075e: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 8000762: 6013 str r3, [r2, #0] + + + /* Check the HSE State */ + if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF) + 8000764: 687b ldr r3, [r7, #4] + 8000766: 685b ldr r3, [r3, #4] + 8000768: 2b00 cmp r3, #0 + 800076a: d013 beq.n 8000794 + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800076c: f7ff fea2 bl 80004b4 + 8000770: 6138 str r0, [r7, #16] + + /* Wait till HSE is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 8000772: e008 b.n 8000786 + { + if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) + 8000774: f7ff fe9e bl 80004b4 + 8000778: 4602 mov r2, r0 + 800077a: 693b ldr r3, [r7, #16] + 800077c: 1ad3 subs r3, r2, r3 + 800077e: 2b64 cmp r3, #100 ; 0x64 + 8000780: d901 bls.n 8000786 + { + return HAL_TIMEOUT; + 8000782: 2303 movs r3, #3 + 8000784: e1fa b.n 8000b7c + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 8000786: 4b5d ldr r3, [pc, #372] ; (80008fc ) + 8000788: 681b ldr r3, [r3, #0] + 800078a: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 800078e: 2b00 cmp r3, #0 + 8000790: d0f0 beq.n 8000774 + 8000792: e014 b.n 80007be + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000794: f7ff fe8e bl 80004b4 + 8000798: 6138 str r0, [r7, #16] + + /* Wait till HSE is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) + 800079a: e008 b.n 80007ae + { + if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) + 800079c: f7ff fe8a bl 80004b4 + 80007a0: 4602 mov r2, r0 + 80007a2: 693b ldr r3, [r7, #16] + 80007a4: 1ad3 subs r3, r2, r3 + 80007a6: 2b64 cmp r3, #100 ; 0x64 + 80007a8: d901 bls.n 80007ae + { + return HAL_TIMEOUT; + 80007aa: 2303 movs r3, #3 + 80007ac: e1e6 b.n 8000b7c + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) + 80007ae: 4b53 ldr r3, [pc, #332] ; (80008fc ) + 80007b0: 681b ldr r3, [r3, #0] + 80007b2: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80007b6: 2b00 cmp r3, #0 + 80007b8: d1f0 bne.n 800079c + 80007ba: e000 b.n 80007be + if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 80007bc: bf00 nop + } + } + } + } + /*----------------------------- HSI Configuration --------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) + 80007be: 687b ldr r3, [r7, #4] + 80007c0: 681b ldr r3, [r3, #0] + 80007c2: f003 0302 and.w r3, r3, #2 + 80007c6: 2b00 cmp r3, #0 + 80007c8: d063 beq.n 8000892 + /* 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) + 80007ca: 4b4c ldr r3, [pc, #304] ; (80008fc ) + 80007cc: 685b ldr r3, [r3, #4] + 80007ce: f003 030c and.w r3, r3, #12 + 80007d2: 2b00 cmp r3, #0 + 80007d4: d00b beq.n 80007ee + || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI_DIV2))) + 80007d6: 4b49 ldr r3, [pc, #292] ; (80008fc ) + 80007d8: 685b ldr r3, [r3, #4] + 80007da: f003 030c and.w r3, r3, #12 + 80007de: 2b08 cmp r3, #8 + 80007e0: d11c bne.n 800081c + 80007e2: 4b46 ldr r3, [pc, #280] ; (80008fc ) + 80007e4: 685b ldr r3, [r3, #4] + 80007e6: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 80007ea: 2b00 cmp r3, #0 + 80007ec: d116 bne.n 800081c + { + /* 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)) + 80007ee: 4b43 ldr r3, [pc, #268] ; (80008fc ) + 80007f0: 681b ldr r3, [r3, #0] + 80007f2: f003 0302 and.w r3, r3, #2 + 80007f6: 2b00 cmp r3, #0 + 80007f8: d005 beq.n 8000806 + 80007fa: 687b ldr r3, [r7, #4] + 80007fc: 691b ldr r3, [r3, #16] + 80007fe: 2b01 cmp r3, #1 + 8000800: d001 beq.n 8000806 + { + return HAL_ERROR; + 8000802: 2301 movs r3, #1 + 8000804: e1ba b.n 8000b7c + } + /* Otherwise, just the calibration is allowed */ + else + { + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 8000806: 4b3d ldr r3, [pc, #244] ; (80008fc ) + 8000808: 681b ldr r3, [r3, #0] + 800080a: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 800080e: 687b ldr r3, [r7, #4] + 8000810: 695b ldr r3, [r3, #20] + 8000812: 00db lsls r3, r3, #3 + 8000814: 4939 ldr r1, [pc, #228] ; (80008fc ) + 8000816: 4313 orrs r3, r2 + 8000818: 600b str r3, [r1, #0] + if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) + 800081a: e03a b.n 8000892 + } + } + else + { + /* Check the HSI State */ + if (RCC_OscInitStruct->HSIState != RCC_HSI_OFF) + 800081c: 687b ldr r3, [r7, #4] + 800081e: 691b ldr r3, [r3, #16] + 8000820: 2b00 cmp r3, #0 + 8000822: d020 beq.n 8000866 + { + /* Enable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_ENABLE(); + 8000824: 4b36 ldr r3, [pc, #216] ; (8000900 ) + 8000826: 2201 movs r2, #1 + 8000828: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800082a: f7ff fe43 bl 80004b4 + 800082e: 6138 str r0, [r7, #16] + + /* Wait till HSI is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 8000830: e008 b.n 8000844 + { + if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + 8000832: f7ff fe3f bl 80004b4 + 8000836: 4602 mov r2, r0 + 8000838: 693b ldr r3, [r7, #16] + 800083a: 1ad3 subs r3, r2, r3 + 800083c: 2b02 cmp r3, #2 + 800083e: d901 bls.n 8000844 + { + return HAL_TIMEOUT; + 8000840: 2303 movs r3, #3 + 8000842: e19b b.n 8000b7c + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 8000844: 4b2d ldr r3, [pc, #180] ; (80008fc ) + 8000846: 681b ldr r3, [r3, #0] + 8000848: f003 0302 and.w r3, r3, #2 + 800084c: 2b00 cmp r3, #0 + 800084e: d0f0 beq.n 8000832 + } + } + + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 8000850: 4b2a ldr r3, [pc, #168] ; (80008fc ) + 8000852: 681b ldr r3, [r3, #0] + 8000854: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 8000858: 687b ldr r3, [r7, #4] + 800085a: 695b ldr r3, [r3, #20] + 800085c: 00db lsls r3, r3, #3 + 800085e: 4927 ldr r1, [pc, #156] ; (80008fc ) + 8000860: 4313 orrs r3, r2 + 8000862: 600b str r3, [r1, #0] + 8000864: e015 b.n 8000892 + } + else + { + /* Disable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_DISABLE(); + 8000866: 4b26 ldr r3, [pc, #152] ; (8000900 ) + 8000868: 2200 movs r2, #0 + 800086a: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800086c: f7ff fe22 bl 80004b4 + 8000870: 6138 str r0, [r7, #16] + + /* Wait till HSI is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) + 8000872: e008 b.n 8000886 + { + if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) + 8000874: f7ff fe1e bl 80004b4 + 8000878: 4602 mov r2, r0 + 800087a: 693b ldr r3, [r7, #16] + 800087c: 1ad3 subs r3, r2, r3 + 800087e: 2b02 cmp r3, #2 + 8000880: d901 bls.n 8000886 + { + return HAL_TIMEOUT; + 8000882: 2303 movs r3, #3 + 8000884: e17a b.n 8000b7c + while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) + 8000886: 4b1d ldr r3, [pc, #116] ; (80008fc ) + 8000888: 681b ldr r3, [r3, #0] + 800088a: f003 0302 and.w r3, r3, #2 + 800088e: 2b00 cmp r3, #0 + 8000890: d1f0 bne.n 8000874 + } + } + } + } + /*------------------------------ LSI Configuration -------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) + 8000892: 687b ldr r3, [r7, #4] + 8000894: 681b ldr r3, [r3, #0] + 8000896: f003 0308 and.w r3, r3, #8 + 800089a: 2b00 cmp r3, #0 + 800089c: d03a beq.n 8000914 + { + /* Check the parameters */ + assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); + + /* Check the LSI State */ + if (RCC_OscInitStruct->LSIState != RCC_LSI_OFF) + 800089e: 687b ldr r3, [r7, #4] + 80008a0: 699b ldr r3, [r3, #24] + 80008a2: 2b00 cmp r3, #0 + 80008a4: d019 beq.n 80008da + { + /* Enable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_ENABLE(); + 80008a6: 4b17 ldr r3, [pc, #92] ; (8000904 ) + 80008a8: 2201 movs r2, #1 + 80008aa: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80008ac: f7ff fe02 bl 80004b4 + 80008b0: 6138 str r0, [r7, #16] + + /* Wait till LSI is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) + 80008b2: e008 b.n 80008c6 + { + if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) + 80008b4: f7ff fdfe bl 80004b4 + 80008b8: 4602 mov r2, r0 + 80008ba: 693b ldr r3, [r7, #16] + 80008bc: 1ad3 subs r3, r2, r3 + 80008be: 2b02 cmp r3, #2 + 80008c0: d901 bls.n 80008c6 + { + return HAL_TIMEOUT; + 80008c2: 2303 movs r3, #3 + 80008c4: e15a b.n 8000b7c + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) + 80008c6: 4b0d ldr r3, [pc, #52] ; (80008fc ) + 80008c8: 6a5b ldr r3, [r3, #36] ; 0x24 + 80008ca: f003 0302 and.w r3, r3, #2 + 80008ce: 2b00 cmp r3, #0 + 80008d0: d0f0 beq.n 80008b4 + } + } + /* To have a fully stabilized clock in the specified range, a software delay of 1ms + should be added.*/ + RCC_Delay(1); + 80008d2: 2001 movs r0, #1 + 80008d4: f000 faa6 bl 8000e24 + 80008d8: e01c b.n 8000914 + } + else + { + /* Disable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_DISABLE(); + 80008da: 4b0a ldr r3, [pc, #40] ; (8000904 ) + 80008dc: 2200 movs r2, #0 + 80008de: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80008e0: f7ff fde8 bl 80004b4 + 80008e4: 6138 str r0, [r7, #16] + + /* Wait till LSI is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) + 80008e6: e00f b.n 8000908 + { + if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) + 80008e8: f7ff fde4 bl 80004b4 + 80008ec: 4602 mov r2, r0 + 80008ee: 693b ldr r3, [r7, #16] + 80008f0: 1ad3 subs r3, r2, r3 + 80008f2: 2b02 cmp r3, #2 + 80008f4: d908 bls.n 8000908 + { + return HAL_TIMEOUT; + 80008f6: 2303 movs r3, #3 + 80008f8: e140 b.n 8000b7c + 80008fa: bf00 nop + 80008fc: 40021000 .word 0x40021000 + 8000900: 42420000 .word 0x42420000 + 8000904: 42420480 .word 0x42420480 + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) + 8000908: 4b9e ldr r3, [pc, #632] ; (8000b84 ) + 800090a: 6a5b ldr r3, [r3, #36] ; 0x24 + 800090c: f003 0302 and.w r3, r3, #2 + 8000910: 2b00 cmp r3, #0 + 8000912: d1e9 bne.n 80008e8 + } + } + } + } + /*------------------------------ LSE Configuration -------------------------*/ + if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) + 8000914: 687b ldr r3, [r7, #4] + 8000916: 681b ldr r3, [r3, #0] + 8000918: f003 0304 and.w r3, r3, #4 + 800091c: 2b00 cmp r3, #0 + 800091e: f000 80a6 beq.w 8000a6e + { + FlagStatus pwrclkchanged = RESET; + 8000922: 2300 movs r3, #0 + 8000924: 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()) + 8000926: 4b97 ldr r3, [pc, #604] ; (8000b84 ) + 8000928: 69db ldr r3, [r3, #28] + 800092a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 800092e: 2b00 cmp r3, #0 + 8000930: d10d bne.n 800094e + { + __HAL_RCC_PWR_CLK_ENABLE(); + 8000932: 4b94 ldr r3, [pc, #592] ; (8000b84 ) + 8000934: 69db ldr r3, [r3, #28] + 8000936: 4a93 ldr r2, [pc, #588] ; (8000b84 ) + 8000938: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 800093c: 61d3 str r3, [r2, #28] + 800093e: 4b91 ldr r3, [pc, #580] ; (8000b84 ) + 8000940: 69db ldr r3, [r3, #28] + 8000942: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8000946: 60bb str r3, [r7, #8] + 8000948: 68bb ldr r3, [r7, #8] + pwrclkchanged = SET; + 800094a: 2301 movs r3, #1 + 800094c: 75fb strb r3, [r7, #23] + } + + if (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 800094e: 4b8e ldr r3, [pc, #568] ; (8000b88 ) + 8000950: 681b ldr r3, [r3, #0] + 8000952: f403 7380 and.w r3, r3, #256 ; 0x100 + 8000956: 2b00 cmp r3, #0 + 8000958: d118 bne.n 800098c + { + /* Enable write access to Backup domain */ + SET_BIT(PWR->CR, PWR_CR_DBP); + 800095a: 4b8b ldr r3, [pc, #556] ; (8000b88 ) + 800095c: 681b ldr r3, [r3, #0] + 800095e: 4a8a ldr r2, [pc, #552] ; (8000b88 ) + 8000960: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8000964: 6013 str r3, [r2, #0] + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + 8000966: f7ff fda5 bl 80004b4 + 800096a: 6138 str r0, [r7, #16] + + while (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 800096c: e008 b.n 8000980 + { + if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + 800096e: f7ff fda1 bl 80004b4 + 8000972: 4602 mov r2, r0 + 8000974: 693b ldr r3, [r7, #16] + 8000976: 1ad3 subs r3, r2, r3 + 8000978: 2b64 cmp r3, #100 ; 0x64 + 800097a: d901 bls.n 8000980 + { + return HAL_TIMEOUT; + 800097c: 2303 movs r3, #3 + 800097e: e0fd b.n 8000b7c + while (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 8000980: 4b81 ldr r3, [pc, #516] ; (8000b88 ) + 8000982: 681b ldr r3, [r3, #0] + 8000984: f403 7380 and.w r3, r3, #256 ; 0x100 + 8000988: 2b00 cmp r3, #0 + 800098a: d0f0 beq.n 800096e + } + } + } + + /* Set the new LSE configuration -----------------------------------------*/ + __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); + 800098c: 687b ldr r3, [r7, #4] + 800098e: 68db ldr r3, [r3, #12] + 8000990: 2b01 cmp r3, #1 + 8000992: d106 bne.n 80009a2 + 8000994: 4b7b ldr r3, [pc, #492] ; (8000b84 ) + 8000996: 6a1b ldr r3, [r3, #32] + 8000998: 4a7a ldr r2, [pc, #488] ; (8000b84 ) + 800099a: f043 0301 orr.w r3, r3, #1 + 800099e: 6213 str r3, [r2, #32] + 80009a0: e02d b.n 80009fe + 80009a2: 687b ldr r3, [r7, #4] + 80009a4: 68db ldr r3, [r3, #12] + 80009a6: 2b00 cmp r3, #0 + 80009a8: d10c bne.n 80009c4 + 80009aa: 4b76 ldr r3, [pc, #472] ; (8000b84 ) + 80009ac: 6a1b ldr r3, [r3, #32] + 80009ae: 4a75 ldr r2, [pc, #468] ; (8000b84 ) + 80009b0: f023 0301 bic.w r3, r3, #1 + 80009b4: 6213 str r3, [r2, #32] + 80009b6: 4b73 ldr r3, [pc, #460] ; (8000b84 ) + 80009b8: 6a1b ldr r3, [r3, #32] + 80009ba: 4a72 ldr r2, [pc, #456] ; (8000b84 ) + 80009bc: f023 0304 bic.w r3, r3, #4 + 80009c0: 6213 str r3, [r2, #32] + 80009c2: e01c b.n 80009fe + 80009c4: 687b ldr r3, [r7, #4] + 80009c6: 68db ldr r3, [r3, #12] + 80009c8: 2b05 cmp r3, #5 + 80009ca: d10c bne.n 80009e6 + 80009cc: 4b6d ldr r3, [pc, #436] ; (8000b84 ) + 80009ce: 6a1b ldr r3, [r3, #32] + 80009d0: 4a6c ldr r2, [pc, #432] ; (8000b84 ) + 80009d2: f043 0304 orr.w r3, r3, #4 + 80009d6: 6213 str r3, [r2, #32] + 80009d8: 4b6a ldr r3, [pc, #424] ; (8000b84 ) + 80009da: 6a1b ldr r3, [r3, #32] + 80009dc: 4a69 ldr r2, [pc, #420] ; (8000b84 ) + 80009de: f043 0301 orr.w r3, r3, #1 + 80009e2: 6213 str r3, [r2, #32] + 80009e4: e00b b.n 80009fe + 80009e6: 4b67 ldr r3, [pc, #412] ; (8000b84 ) + 80009e8: 6a1b ldr r3, [r3, #32] + 80009ea: 4a66 ldr r2, [pc, #408] ; (8000b84 ) + 80009ec: f023 0301 bic.w r3, r3, #1 + 80009f0: 6213 str r3, [r2, #32] + 80009f2: 4b64 ldr r3, [pc, #400] ; (8000b84 ) + 80009f4: 6a1b ldr r3, [r3, #32] + 80009f6: 4a63 ldr r2, [pc, #396] ; (8000b84 ) + 80009f8: f023 0304 bic.w r3, r3, #4 + 80009fc: 6213 str r3, [r2, #32] + /* Check the LSE State */ + if (RCC_OscInitStruct->LSEState != RCC_LSE_OFF) + 80009fe: 687b ldr r3, [r7, #4] + 8000a00: 68db ldr r3, [r3, #12] + 8000a02: 2b00 cmp r3, #0 + 8000a04: d015 beq.n 8000a32 + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000a06: f7ff fd55 bl 80004b4 + 8000a0a: 6138 str r0, [r7, #16] + + /* Wait till LSE is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + 8000a0c: e00a b.n 8000a24 + { + if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + 8000a0e: f7ff fd51 bl 80004b4 + 8000a12: 4602 mov r2, r0 + 8000a14: 693b ldr r3, [r7, #16] + 8000a16: 1ad3 subs r3, r2, r3 + 8000a18: f241 3288 movw r2, #5000 ; 0x1388 + 8000a1c: 4293 cmp r3, r2 + 8000a1e: d901 bls.n 8000a24 + { + return HAL_TIMEOUT; + 8000a20: 2303 movs r3, #3 + 8000a22: e0ab b.n 8000b7c + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + 8000a24: 4b57 ldr r3, [pc, #348] ; (8000b84 ) + 8000a26: 6a1b ldr r3, [r3, #32] + 8000a28: f003 0302 and.w r3, r3, #2 + 8000a2c: 2b00 cmp r3, #0 + 8000a2e: d0ee beq.n 8000a0e + 8000a30: e014 b.n 8000a5c + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000a32: f7ff fd3f bl 80004b4 + 8000a36: 6138 str r0, [r7, #16] + + /* Wait till LSE is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) + 8000a38: e00a b.n 8000a50 + { + if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + 8000a3a: f7ff fd3b bl 80004b4 + 8000a3e: 4602 mov r2, r0 + 8000a40: 693b ldr r3, [r7, #16] + 8000a42: 1ad3 subs r3, r2, r3 + 8000a44: f241 3288 movw r2, #5000 ; 0x1388 + 8000a48: 4293 cmp r3, r2 + 8000a4a: d901 bls.n 8000a50 + { + return HAL_TIMEOUT; + 8000a4c: 2303 movs r3, #3 + 8000a4e: e095 b.n 8000b7c + while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) + 8000a50: 4b4c ldr r3, [pc, #304] ; (8000b84 ) + 8000a52: 6a1b ldr r3, [r3, #32] + 8000a54: f003 0302 and.w r3, r3, #2 + 8000a58: 2b00 cmp r3, #0 + 8000a5a: d1ee bne.n 8000a3a + } + } + } + + /* Require to disable power clock if necessary */ + if (pwrclkchanged == SET) + 8000a5c: 7dfb ldrb r3, [r7, #23] + 8000a5e: 2b01 cmp r3, #1 + 8000a60: d105 bne.n 8000a6e + { + __HAL_RCC_PWR_CLK_DISABLE(); + 8000a62: 4b48 ldr r3, [pc, #288] ; (8000b84 ) + 8000a64: 69db ldr r3, [r3, #28] + 8000a66: 4a47 ldr r2, [pc, #284] ; (8000b84 ) + 8000a68: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 + 8000a6c: 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) + 8000a6e: 687b ldr r3, [r7, #4] + 8000a70: 69db ldr r3, [r3, #28] + 8000a72: 2b00 cmp r3, #0 + 8000a74: f000 8081 beq.w 8000b7a + { + /* Check if the PLL is used as system clock or not */ + if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) + 8000a78: 4b42 ldr r3, [pc, #264] ; (8000b84 ) + 8000a7a: 685b ldr r3, [r3, #4] + 8000a7c: f003 030c and.w r3, r3, #12 + 8000a80: 2b08 cmp r3, #8 + 8000a82: d061 beq.n 8000b48 + { + if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) + 8000a84: 687b ldr r3, [r7, #4] + 8000a86: 69db ldr r3, [r3, #28] + 8000a88: 2b02 cmp r3, #2 + 8000a8a: d146 bne.n 8000b1a + /* 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(); + 8000a8c: 4b3f ldr r3, [pc, #252] ; (8000b8c ) + 8000a8e: 2200 movs r2, #0 + 8000a90: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000a92: f7ff fd0f bl 80004b4 + 8000a96: 6138 str r0, [r7, #16] + + /* Wait till PLL is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8000a98: e008 b.n 8000aac + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 8000a9a: f7ff fd0b bl 80004b4 + 8000a9e: 4602 mov r2, r0 + 8000aa0: 693b ldr r3, [r7, #16] + 8000aa2: 1ad3 subs r3, r2, r3 + 8000aa4: 2b02 cmp r3, #2 + 8000aa6: d901 bls.n 8000aac + { + return HAL_TIMEOUT; + 8000aa8: 2303 movs r3, #3 + 8000aaa: e067 b.n 8000b7c + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8000aac: 4b35 ldr r3, [pc, #212] ; (8000b84 ) + 8000aae: 681b ldr r3, [r3, #0] + 8000ab0: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8000ab4: 2b00 cmp r3, #0 + 8000ab6: d1f0 bne.n 8000a9a + } + } + + /* 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) + 8000ab8: 687b ldr r3, [r7, #4] + 8000aba: 6a1b ldr r3, [r3, #32] + 8000abc: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 8000ac0: d108 bne.n 8000ad4 + /* 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); + 8000ac2: 4b30 ldr r3, [pc, #192] ; (8000b84 ) + 8000ac4: 685b ldr r3, [r3, #4] + 8000ac6: f423 3200 bic.w r2, r3, #131072 ; 0x20000 + 8000aca: 687b ldr r3, [r7, #4] + 8000acc: 689b ldr r3, [r3, #8] + 8000ace: 492d ldr r1, [pc, #180] ; (8000b84 ) + 8000ad0: 4313 orrs r3, r2 + 8000ad2: 604b str r3, [r1, #4] + } + + /* Configure the main PLL clock source and multiplication factors. */ + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + 8000ad4: 4b2b ldr r3, [pc, #172] ; (8000b84 ) + 8000ad6: 685b ldr r3, [r3, #4] + 8000ad8: f423 1274 bic.w r2, r3, #3997696 ; 0x3d0000 + 8000adc: 687b ldr r3, [r7, #4] + 8000ade: 6a19 ldr r1, [r3, #32] + 8000ae0: 687b ldr r3, [r7, #4] + 8000ae2: 6a5b ldr r3, [r3, #36] ; 0x24 + 8000ae4: 430b orrs r3, r1 + 8000ae6: 4927 ldr r1, [pc, #156] ; (8000b84 ) + 8000ae8: 4313 orrs r3, r2 + 8000aea: 604b str r3, [r1, #4] + RCC_OscInitStruct->PLL.PLLMUL); + /* Enable the main PLL. */ + __HAL_RCC_PLL_ENABLE(); + 8000aec: 4b27 ldr r3, [pc, #156] ; (8000b8c ) + 8000aee: 2201 movs r2, #1 + 8000af0: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000af2: f7ff fcdf bl 80004b4 + 8000af6: 6138 str r0, [r7, #16] + + /* Wait till PLL is ready */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 8000af8: e008 b.n 8000b0c + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 8000afa: f7ff fcdb bl 80004b4 + 8000afe: 4602 mov r2, r0 + 8000b00: 693b ldr r3, [r7, #16] + 8000b02: 1ad3 subs r3, r2, r3 + 8000b04: 2b02 cmp r3, #2 + 8000b06: d901 bls.n 8000b0c + { + return HAL_TIMEOUT; + 8000b08: 2303 movs r3, #3 + 8000b0a: e037 b.n 8000b7c + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 8000b0c: 4b1d ldr r3, [pc, #116] ; (8000b84 ) + 8000b0e: 681b ldr r3, [r3, #0] + 8000b10: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8000b14: 2b00 cmp r3, #0 + 8000b16: d0f0 beq.n 8000afa + 8000b18: e02f b.n 8000b7a + } + } + else + { + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 8000b1a: 4b1c ldr r3, [pc, #112] ; (8000b8c ) + 8000b1c: 2200 movs r2, #0 + 8000b1e: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000b20: f7ff fcc8 bl 80004b4 + 8000b24: 6138 str r0, [r7, #16] + + /* Wait till PLL is disabled */ + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8000b26: e008 b.n 8000b3a + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + 8000b28: f7ff fcc4 bl 80004b4 + 8000b2c: 4602 mov r2, r0 + 8000b2e: 693b ldr r3, [r7, #16] + 8000b30: 1ad3 subs r3, r2, r3 + 8000b32: 2b02 cmp r3, #2 + 8000b34: d901 bls.n 8000b3a + { + return HAL_TIMEOUT; + 8000b36: 2303 movs r3, #3 + 8000b38: e020 b.n 8000b7c + while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8000b3a: 4b12 ldr r3, [pc, #72] ; (8000b84 ) + 8000b3c: 681b ldr r3, [r3, #0] + 8000b3e: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8000b42: 2b00 cmp r3, #0 + 8000b44: d1f0 bne.n 8000b28 + 8000b46: e018 b.n 8000b7a + } + } + else + { + /* Check if there is a request to disable the PLL used as System clock source */ + if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) + 8000b48: 687b ldr r3, [r7, #4] + 8000b4a: 69db ldr r3, [r3, #28] + 8000b4c: 2b01 cmp r3, #1 + 8000b4e: d101 bne.n 8000b54 + { + return HAL_ERROR; + 8000b50: 2301 movs r3, #1 + 8000b52: e013 b.n 8000b7c + } + else + { + /* Do not return HAL_ERROR if request repeats the current configuration */ + pll_config = RCC->CFGR; + 8000b54: 4b0b ldr r3, [pc, #44] ; (8000b84 ) + 8000b56: 685b ldr r3, [r3, #4] + 8000b58: 60fb str r3, [r7, #12] + if ((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 8000b5a: 68fb ldr r3, [r7, #12] + 8000b5c: f403 3280 and.w r2, r3, #65536 ; 0x10000 + 8000b60: 687b ldr r3, [r7, #4] + 8000b62: 6a1b ldr r3, [r3, #32] + 8000b64: 429a cmp r2, r3 + 8000b66: d106 bne.n 8000b76 + (READ_BIT(pll_config, RCC_CFGR_PLLMULL) != RCC_OscInitStruct->PLL.PLLMUL)) + 8000b68: 68fb ldr r3, [r7, #12] + 8000b6a: f403 1270 and.w r2, r3, #3932160 ; 0x3c0000 + 8000b6e: 687b ldr r3, [r7, #4] + 8000b70: 6a5b ldr r3, [r3, #36] ; 0x24 + if ((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 8000b72: 429a cmp r2, r3 + 8000b74: d001 beq.n 8000b7a + { + return HAL_ERROR; + 8000b76: 2301 movs r3, #1 + 8000b78: e000 b.n 8000b7c + } + } + } + } + + return HAL_OK; + 8000b7a: 2300 movs r3, #0 +} + 8000b7c: 4618 mov r0, r3 + 8000b7e: 3718 adds r7, #24 + 8000b80: 46bd mov sp, r7 + 8000b82: bd80 pop {r7, pc} + 8000b84: 40021000 .word 0x40021000 + 8000b88: 40007000 .word 0x40007000 + 8000b8c: 42420060 .word 0x42420060 + +08000b90 : + * 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) +{ + 8000b90: b580 push {r7, lr} + 8000b92: b084 sub sp, #16 + 8000b94: af00 add r7, sp, #0 + 8000b96: 6078 str r0, [r7, #4] + 8000b98: 6039 str r1, [r7, #0] + uint32_t tickstart; + + /* Check Null pointer */ + if (RCC_ClkInitStruct == NULL) + 8000b9a: 687b ldr r3, [r7, #4] + 8000b9c: 2b00 cmp r3, #0 + 8000b9e: d101 bne.n 8000ba4 + { + return HAL_ERROR; + 8000ba0: 2301 movs r3, #1 + 8000ba2: e0d0 b.n 8000d46 + 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()) + 8000ba4: 4b6a ldr r3, [pc, #424] ; (8000d50 ) + 8000ba6: 681b ldr r3, [r3, #0] + 8000ba8: f003 0307 and.w r3, r3, #7 + 8000bac: 683a ldr r2, [r7, #0] + 8000bae: 429a cmp r2, r3 + 8000bb0: d910 bls.n 8000bd4 + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 8000bb2: 4b67 ldr r3, [pc, #412] ; (8000d50 ) + 8000bb4: 681b ldr r3, [r3, #0] + 8000bb6: f023 0207 bic.w r2, r3, #7 + 8000bba: 4965 ldr r1, [pc, #404] ; (8000d50 ) + 8000bbc: 683b ldr r3, [r7, #0] + 8000bbe: 4313 orrs r3, r2 + 8000bc0: 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) + 8000bc2: 4b63 ldr r3, [pc, #396] ; (8000d50 ) + 8000bc4: 681b ldr r3, [r3, #0] + 8000bc6: f003 0307 and.w r3, r3, #7 + 8000bca: 683a ldr r2, [r7, #0] + 8000bcc: 429a cmp r2, r3 + 8000bce: d001 beq.n 8000bd4 + { + return HAL_ERROR; + 8000bd0: 2301 movs r3, #1 + 8000bd2: e0b8 b.n 8000d46 + } +} + +#endif /* FLASH_ACR_LATENCY */ +/*-------------------------- HCLK Configuration --------------------------*/ +if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + 8000bd4: 687b ldr r3, [r7, #4] + 8000bd6: 681b ldr r3, [r3, #0] + 8000bd8: f003 0302 and.w r3, r3, #2 + 8000bdc: 2b00 cmp r3, #0 + 8000bde: d020 beq.n 8000c22 + { + /* 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) + 8000be0: 687b ldr r3, [r7, #4] + 8000be2: 681b ldr r3, [r3, #0] + 8000be4: f003 0304 and.w r3, r3, #4 + 8000be8: 2b00 cmp r3, #0 + 8000bea: d005 beq.n 8000bf8 + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); + 8000bec: 4b59 ldr r3, [pc, #356] ; (8000d54 ) + 8000bee: 685b ldr r3, [r3, #4] + 8000bf0: 4a58 ldr r2, [pc, #352] ; (8000d54 ) + 8000bf2: f443 63e0 orr.w r3, r3, #1792 ; 0x700 + 8000bf6: 6053 str r3, [r2, #4] + } + + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 8000bf8: 687b ldr r3, [r7, #4] + 8000bfa: 681b ldr r3, [r3, #0] + 8000bfc: f003 0308 and.w r3, r3, #8 + 8000c00: 2b00 cmp r3, #0 + 8000c02: d005 beq.n 8000c10 + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); + 8000c04: 4b53 ldr r3, [pc, #332] ; (8000d54 ) + 8000c06: 685b ldr r3, [r3, #4] + 8000c08: 4a52 ldr r2, [pc, #328] ; (8000d54 ) + 8000c0a: f443 5360 orr.w r3, r3, #14336 ; 0x3800 + 8000c0e: 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); + 8000c10: 4b50 ldr r3, [pc, #320] ; (8000d54 ) + 8000c12: 685b ldr r3, [r3, #4] + 8000c14: f023 02f0 bic.w r2, r3, #240 ; 0xf0 + 8000c18: 687b ldr r3, [r7, #4] + 8000c1a: 689b ldr r3, [r3, #8] + 8000c1c: 494d ldr r1, [pc, #308] ; (8000d54 ) + 8000c1e: 4313 orrs r3, r2 + 8000c20: 604b str r3, [r1, #4] + } + + /*------------------------- SYSCLK Configuration ---------------------------*/ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) + 8000c22: 687b ldr r3, [r7, #4] + 8000c24: 681b ldr r3, [r3, #0] + 8000c26: f003 0301 and.w r3, r3, #1 + 8000c2a: 2b00 cmp r3, #0 + 8000c2c: d040 beq.n 8000cb0 + { + assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); + + /* HSE is selected as System Clock Source */ + if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + 8000c2e: 687b ldr r3, [r7, #4] + 8000c30: 685b ldr r3, [r3, #4] + 8000c32: 2b01 cmp r3, #1 + 8000c34: d107 bne.n 8000c46 + { + /* Check the HSE ready flag */ + if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 8000c36: 4b47 ldr r3, [pc, #284] ; (8000d54 ) + 8000c38: 681b ldr r3, [r3, #0] + 8000c3a: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8000c3e: 2b00 cmp r3, #0 + 8000c40: d115 bne.n 8000c6e + { + return HAL_ERROR; + 8000c42: 2301 movs r3, #1 + 8000c44: e07f b.n 8000d46 + } + } + /* PLL is selected as System Clock Source */ + else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + 8000c46: 687b ldr r3, [r7, #4] + 8000c48: 685b ldr r3, [r3, #4] + 8000c4a: 2b02 cmp r3, #2 + 8000c4c: d107 bne.n 8000c5e + { + /* Check the PLL ready flag */ + if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 8000c4e: 4b41 ldr r3, [pc, #260] ; (8000d54 ) + 8000c50: 681b ldr r3, [r3, #0] + 8000c52: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8000c56: 2b00 cmp r3, #0 + 8000c58: d109 bne.n 8000c6e + { + return HAL_ERROR; + 8000c5a: 2301 movs r3, #1 + 8000c5c: e073 b.n 8000d46 + } + /* HSI is selected as System Clock Source */ + else + { + /* Check the HSI ready flag */ + if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 8000c5e: 4b3d ldr r3, [pc, #244] ; (8000d54 ) + 8000c60: 681b ldr r3, [r3, #0] + 8000c62: f003 0302 and.w r3, r3, #2 + 8000c66: 2b00 cmp r3, #0 + 8000c68: d101 bne.n 8000c6e + { + return HAL_ERROR; + 8000c6a: 2301 movs r3, #1 + 8000c6c: e06b b.n 8000d46 + } + } + __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); + 8000c6e: 4b39 ldr r3, [pc, #228] ; (8000d54 ) + 8000c70: 685b ldr r3, [r3, #4] + 8000c72: f023 0203 bic.w r2, r3, #3 + 8000c76: 687b ldr r3, [r7, #4] + 8000c78: 685b ldr r3, [r3, #4] + 8000c7a: 4936 ldr r1, [pc, #216] ; (8000d54 ) + 8000c7c: 4313 orrs r3, r2 + 8000c7e: 604b str r3, [r1, #4] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8000c80: f7ff fc18 bl 80004b4 + 8000c84: 60f8 str r0, [r7, #12] + + while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + 8000c86: e00a b.n 8000c9e + { + if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + 8000c88: f7ff fc14 bl 80004b4 + 8000c8c: 4602 mov r2, r0 + 8000c8e: 68fb ldr r3, [r7, #12] + 8000c90: 1ad3 subs r3, r2, r3 + 8000c92: f241 3288 movw r2, #5000 ; 0x1388 + 8000c96: 4293 cmp r3, r2 + 8000c98: d901 bls.n 8000c9e + { + return HAL_TIMEOUT; + 8000c9a: 2303 movs r3, #3 + 8000c9c: e053 b.n 8000d46 + while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + 8000c9e: 4b2d ldr r3, [pc, #180] ; (8000d54 ) + 8000ca0: 685b ldr r3, [r3, #4] + 8000ca2: f003 020c and.w r2, r3, #12 + 8000ca6: 687b ldr r3, [r7, #4] + 8000ca8: 685b ldr r3, [r3, #4] + 8000caa: 009b lsls r3, r3, #2 + 8000cac: 429a cmp r2, r3 + 8000cae: d1eb bne.n 8000c88 + } + } + +#if defined(FLASH_ACR_LATENCY) + /* Decreasing the number of wait states because of lower CPU frequency */ + if (FLatency < __HAL_FLASH_GET_LATENCY()) + 8000cb0: 4b27 ldr r3, [pc, #156] ; (8000d50 ) + 8000cb2: 681b ldr r3, [r3, #0] + 8000cb4: f003 0307 and.w r3, r3, #7 + 8000cb8: 683a ldr r2, [r7, #0] + 8000cba: 429a cmp r2, r3 + 8000cbc: d210 bcs.n 8000ce0 + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 8000cbe: 4b24 ldr r3, [pc, #144] ; (8000d50 ) + 8000cc0: 681b ldr r3, [r3, #0] + 8000cc2: f023 0207 bic.w r2, r3, #7 + 8000cc6: 4922 ldr r1, [pc, #136] ; (8000d50 ) + 8000cc8: 683b ldr r3, [r7, #0] + 8000cca: 4313 orrs r3, r2 + 8000ccc: 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) + 8000cce: 4b20 ldr r3, [pc, #128] ; (8000d50 ) + 8000cd0: 681b ldr r3, [r3, #0] + 8000cd2: f003 0307 and.w r3, r3, #7 + 8000cd6: 683a ldr r2, [r7, #0] + 8000cd8: 429a cmp r2, r3 + 8000cda: d001 beq.n 8000ce0 + { + return HAL_ERROR; + 8000cdc: 2301 movs r3, #1 + 8000cde: e032 b.n 8000d46 + } +} +#endif /* FLASH_ACR_LATENCY */ + +/*-------------------------- PCLK1 Configuration ---------------------------*/ +if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 8000ce0: 687b ldr r3, [r7, #4] + 8000ce2: 681b ldr r3, [r3, #0] + 8000ce4: f003 0304 and.w r3, r3, #4 + 8000ce8: 2b00 cmp r3, #0 + 8000cea: d008 beq.n 8000cfe + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); + 8000cec: 4b19 ldr r3, [pc, #100] ; (8000d54 ) + 8000cee: 685b ldr r3, [r3, #4] + 8000cf0: f423 62e0 bic.w r2, r3, #1792 ; 0x700 + 8000cf4: 687b ldr r3, [r7, #4] + 8000cf6: 68db ldr r3, [r3, #12] + 8000cf8: 4916 ldr r1, [pc, #88] ; (8000d54 ) + 8000cfa: 4313 orrs r3, r2 + 8000cfc: 604b str r3, [r1, #4] + } + + /*-------------------------- PCLK2 Configuration ---------------------------*/ + if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 8000cfe: 687b ldr r3, [r7, #4] + 8000d00: 681b ldr r3, [r3, #0] + 8000d02: f003 0308 and.w r3, r3, #8 + 8000d06: 2b00 cmp r3, #0 + 8000d08: d009 beq.n 8000d1e + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3)); + 8000d0a: 4b12 ldr r3, [pc, #72] ; (8000d54 ) + 8000d0c: 685b ldr r3, [r3, #4] + 8000d0e: f423 5260 bic.w r2, r3, #14336 ; 0x3800 + 8000d12: 687b ldr r3, [r7, #4] + 8000d14: 691b ldr r3, [r3, #16] + 8000d16: 00db lsls r3, r3, #3 + 8000d18: 490e ldr r1, [pc, #56] ; (8000d54 ) + 8000d1a: 4313 orrs r3, r2 + 8000d1c: 604b str r3, [r1, #4] + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos]; + 8000d1e: f000 f821 bl 8000d64 + 8000d22: 4602 mov r2, r0 + 8000d24: 4b0b ldr r3, [pc, #44] ; (8000d54 ) + 8000d26: 685b ldr r3, [r3, #4] + 8000d28: 091b lsrs r3, r3, #4 + 8000d2a: f003 030f and.w r3, r3, #15 + 8000d2e: 490a ldr r1, [pc, #40] ; (8000d58 ) + 8000d30: 5ccb ldrb r3, [r1, r3] + 8000d32: fa22 f303 lsr.w r3, r2, r3 + 8000d36: 4a09 ldr r2, [pc, #36] ; (8000d5c ) + 8000d38: 6013 str r3, [r2, #0] + + /* Configure the source of time base considering new system clocks settings*/ + HAL_InitTick(uwTickPrio); + 8000d3a: 4b09 ldr r3, [pc, #36] ; (8000d60 ) + 8000d3c: 681b ldr r3, [r3, #0] + 8000d3e: 4618 mov r0, r3 + 8000d40: f7ff fb76 bl 8000430 + + return HAL_OK; + 8000d44: 2300 movs r3, #0 +} + 8000d46: 4618 mov r0, r3 + 8000d48: 3710 adds r7, #16 + 8000d4a: 46bd mov sp, r7 + 8000d4c: bd80 pop {r7, pc} + 8000d4e: bf00 nop + 8000d50: 40022000 .word 0x40022000 + 8000d54: 40021000 .word 0x40021000 + 8000d58: 08000ee0 .word 0x08000ee0 + 8000d5c: 20000000 .word 0x20000000 + 8000d60: 20000004 .word 0x20000004 + +08000d64 : + * right SYSCLK value. Otherwise, any configuration based on this function will be incorrect. + * + * @retval SYSCLK frequency + */ +uint32_t HAL_RCC_GetSysClockFreq(void) +{ + 8000d64: b490 push {r4, r7} + 8000d66: b08a sub sp, #40 ; 0x28 + 8000d68: 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}; + 8000d6a: 4b2a ldr r3, [pc, #168] ; (8000e14 ) + 8000d6c: 1d3c adds r4, r7, #4 + 8000d6e: cb0f ldmia r3, {r0, r1, r2, r3} + 8000d70: 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}; + 8000d74: f240 2301 movw r3, #513 ; 0x201 + 8000d78: 803b strh r3, [r7, #0] +#endif /*RCC_CFGR2_PREDIV1*/ + +#endif + uint32_t tmpreg = 0U, prediv = 0U, pllclk = 0U, pllmul = 0U; + 8000d7a: 2300 movs r3, #0 + 8000d7c: 61fb str r3, [r7, #28] + 8000d7e: 2300 movs r3, #0 + 8000d80: 61bb str r3, [r7, #24] + 8000d82: 2300 movs r3, #0 + 8000d84: 627b str r3, [r7, #36] ; 0x24 + 8000d86: 2300 movs r3, #0 + 8000d88: 617b str r3, [r7, #20] + uint32_t sysclockfreq = 0U; + 8000d8a: 2300 movs r3, #0 + 8000d8c: 623b str r3, [r7, #32] +#if defined(RCC_CFGR2_PREDIV1SRC) + uint32_t prediv2 = 0U, pll2mul = 0U; +#endif /*RCC_CFGR2_PREDIV1SRC*/ + + tmpreg = RCC->CFGR; + 8000d8e: 4b22 ldr r3, [pc, #136] ; (8000e18 ) + 8000d90: 685b ldr r3, [r3, #4] + 8000d92: 61fb str r3, [r7, #28] + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (tmpreg & RCC_CFGR_SWS) + 8000d94: 69fb ldr r3, [r7, #28] + 8000d96: f003 030c and.w r3, r3, #12 + 8000d9a: 2b04 cmp r3, #4 + 8000d9c: d002 beq.n 8000da4 + 8000d9e: 2b08 cmp r3, #8 + 8000da0: d003 beq.n 8000daa + 8000da2: e02d b.n 8000e00 + { + case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock */ + { + sysclockfreq = HSE_VALUE; + 8000da4: 4b1d ldr r3, [pc, #116] ; (8000e1c ) + 8000da6: 623b str r3, [r7, #32] + break; + 8000da8: e02d b.n 8000e06 + } + case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock */ + { + pllmul = aPLLMULFactorTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMULL) >> RCC_CFGR_PLLMULL_Pos]; + 8000daa: 69fb ldr r3, [r7, #28] + 8000dac: 0c9b lsrs r3, r3, #18 + 8000dae: f003 030f and.w r3, r3, #15 + 8000db2: f107 0228 add.w r2, r7, #40 ; 0x28 + 8000db6: 4413 add r3, r2 + 8000db8: f813 3c24 ldrb.w r3, [r3, #-36] + 8000dbc: 617b str r3, [r7, #20] + if ((tmpreg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI_DIV2) + 8000dbe: 69fb ldr r3, [r7, #28] + 8000dc0: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8000dc4: 2b00 cmp r3, #0 + 8000dc6: d013 beq.n 8000df0 + { +#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]; + 8000dc8: 4b13 ldr r3, [pc, #76] ; (8000e18 ) + 8000dca: 685b ldr r3, [r3, #4] + 8000dcc: 0c5b lsrs r3, r3, #17 + 8000dce: f003 0301 and.w r3, r3, #1 + 8000dd2: f107 0228 add.w r2, r7, #40 ; 0x28 + 8000dd6: 4413 add r3, r2 + 8000dd8: f813 3c28 ldrb.w r3, [r3, #-40] + 8000ddc: 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); + 8000dde: 697b ldr r3, [r7, #20] + 8000de0: 4a0e ldr r2, [pc, #56] ; (8000e1c ) + 8000de2: fb02 f203 mul.w r2, r2, r3 + 8000de6: 69bb ldr r3, [r7, #24] + 8000de8: fbb2 f3f3 udiv r3, r2, r3 + 8000dec: 627b str r3, [r7, #36] ; 0x24 + 8000dee: e004 b.n 8000dfa +#endif /*RCC_CFGR2_PREDIV1SRC*/ + } + else + { + /* HSI used as PLL clock source : PLLCLK = HSI/2 * PLLMUL */ + pllclk = (uint32_t)((HSI_VALUE >> 1) * pllmul); + 8000df0: 697b ldr r3, [r7, #20] + 8000df2: 4a0b ldr r2, [pc, #44] ; (8000e20 ) + 8000df4: fb02 f303 mul.w r3, r2, r3 + 8000df8: 627b str r3, [r7, #36] ; 0x24 + } + sysclockfreq = pllclk; + 8000dfa: 6a7b ldr r3, [r7, #36] ; 0x24 + 8000dfc: 623b str r3, [r7, #32] + break; + 8000dfe: e002 b.n 8000e06 + } + case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ + default: /* HSI used as system clock */ + { + sysclockfreq = HSI_VALUE; + 8000e00: 4b06 ldr r3, [pc, #24] ; (8000e1c ) + 8000e02: 623b str r3, [r7, #32] + break; + 8000e04: bf00 nop + } + } + return sysclockfreq; + 8000e06: 6a3b ldr r3, [r7, #32] +} + 8000e08: 4618 mov r0, r3 + 8000e0a: 3728 adds r7, #40 ; 0x28 + 8000e0c: 46bd mov sp, r7 + 8000e0e: bc90 pop {r4, r7} + 8000e10: 4770 bx lr + 8000e12: bf00 nop + 8000e14: 08000ed0 .word 0x08000ed0 + 8000e18: 40021000 .word 0x40021000 + 8000e1c: 007a1200 .word 0x007a1200 + 8000e20: 003d0900 .word 0x003d0900 + +08000e24 : + * @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) +{ + 8000e24: b480 push {r7} + 8000e26: b085 sub sp, #20 + 8000e28: af00 add r7, sp, #0 + 8000e2a: 6078 str r0, [r7, #4] + __IO uint32_t Delay = mdelay * (SystemCoreClock / 8U / 1000U); + 8000e2c: 4b0a ldr r3, [pc, #40] ; (8000e58 ) + 8000e2e: 681b ldr r3, [r3, #0] + 8000e30: 4a0a ldr r2, [pc, #40] ; (8000e5c ) + 8000e32: fba2 2303 umull r2, r3, r2, r3 + 8000e36: 0a5b lsrs r3, r3, #9 + 8000e38: 687a ldr r2, [r7, #4] + 8000e3a: fb02 f303 mul.w r3, r2, r3 + 8000e3e: 60fb str r3, [r7, #12] + do + { + __NOP(); + 8000e40: bf00 nop + } + while (Delay --); + 8000e42: 68fb ldr r3, [r7, #12] + 8000e44: 1e5a subs r2, r3, #1 + 8000e46: 60fa str r2, [r7, #12] + 8000e48: 2b00 cmp r3, #0 + 8000e4a: d1f9 bne.n 8000e40 +} + 8000e4c: bf00 nop + 8000e4e: bf00 nop + 8000e50: 3714 adds r7, #20 + 8000e52: 46bd mov sp, r7 + 8000e54: bc80 pop {r7} + 8000e56: 4770 bx lr + 8000e58: 20000000 .word 0x20000000 + 8000e5c: 10624dd3 .word 0x10624dd3 + +08000e60 <__libc_init_array>: + 8000e60: b570 push {r4, r5, r6, lr} + 8000e62: 2600 movs r6, #0 + 8000e64: 4d0c ldr r5, [pc, #48] ; (8000e98 <__libc_init_array+0x38>) + 8000e66: 4c0d ldr r4, [pc, #52] ; (8000e9c <__libc_init_array+0x3c>) + 8000e68: 1b64 subs r4, r4, r5 + 8000e6a: 10a4 asrs r4, r4, #2 + 8000e6c: 42a6 cmp r6, r4 + 8000e6e: d109 bne.n 8000e84 <__libc_init_array+0x24> + 8000e70: f000 f822 bl 8000eb8 <_init> + 8000e74: 2600 movs r6, #0 + 8000e76: 4d0a ldr r5, [pc, #40] ; (8000ea0 <__libc_init_array+0x40>) + 8000e78: 4c0a ldr r4, [pc, #40] ; (8000ea4 <__libc_init_array+0x44>) + 8000e7a: 1b64 subs r4, r4, r5 + 8000e7c: 10a4 asrs r4, r4, #2 + 8000e7e: 42a6 cmp r6, r4 + 8000e80: d105 bne.n 8000e8e <__libc_init_array+0x2e> + 8000e82: bd70 pop {r4, r5, r6, pc} + 8000e84: f855 3b04 ldr.w r3, [r5], #4 + 8000e88: 4798 blx r3 + 8000e8a: 3601 adds r6, #1 + 8000e8c: e7ee b.n 8000e6c <__libc_init_array+0xc> + 8000e8e: f855 3b04 ldr.w r3, [r5], #4 + 8000e92: 4798 blx r3 + 8000e94: 3601 adds r6, #1 + 8000e96: e7f2 b.n 8000e7e <__libc_init_array+0x1e> + 8000e98: 08000ef0 .word 0x08000ef0 + 8000e9c: 08000ef0 .word 0x08000ef0 + 8000ea0: 08000ef0 .word 0x08000ef0 + 8000ea4: 08000ef4 .word 0x08000ef4 + +08000ea8 : + 8000ea8: 4603 mov r3, r0 + 8000eaa: 4402 add r2, r0 + 8000eac: 4293 cmp r3, r2 + 8000eae: d100 bne.n 8000eb2 + 8000eb0: 4770 bx lr + 8000eb2: f803 1b01 strb.w r1, [r3], #1 + 8000eb6: e7f9 b.n 8000eac + +08000eb8 <_init>: + 8000eb8: b5f8 push {r3, r4, r5, r6, r7, lr} + 8000eba: bf00 nop + 8000ebc: bcf8 pop {r3, r4, r5, r6, r7} + 8000ebe: bc08 pop {r3} + 8000ec0: 469e mov lr, r3 + 8000ec2: 4770 bx lr + +08000ec4 <_fini>: + 8000ec4: b5f8 push {r3, r4, r5, r6, r7, lr} + 8000ec6: bf00 nop + 8000ec8: bcf8 pop {r3, r4, r5, r6, r7} + 8000eca: bc08 pop {r3} + 8000ecc: 469e mov lr, r3 + 8000ece: 4770 bx lr diff --git a/103ze/Debug/103ze_code.map b/103ze/Debug/103ze_code.map new file mode 100644 index 0000000..b2a22a7 --- /dev/null +++ b/103ze/Debug/103ze_code.map @@ -0,0 +1,2370 @@ +Archive member included to satisfy reference by file (symbol) + +c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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) +c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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) + c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (exit) +c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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) + c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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) +c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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) + c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (__libc_init_array) +c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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) + c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + .data 0x0000000000000000 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + .text 0x0000000000000000 0x7c c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.extab 0x0000000000000000 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.exidx 0x0000000000000000 0x10 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.attributes + 0x0000000000000000 0x1b c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 0xfd85 Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x27 Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x144 Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x1bc Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x30 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 0x24f Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0x141 Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000000000 0xb5 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 0xfd85 Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x27 Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x144 Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x1bc Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x30 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 0x24f Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0x141 Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000000000 0xb5 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 0x802 Core/Src/syscalls.o + .debug_str 0x0000000000000000 0x8e7d 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 0x4f8 Core/Src/sysmem.o + .debug_str 0x0000000000000000 0x6250 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 0xfd85 Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x27 Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x144 Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x1bc Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x30 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 0x24f Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0x141 Core/Src/system_stm32f1xx.o + .debug_macro 0x0000000000000000 0xb5 Core/Src/system_stm32f1xx.o + .text 0x0000000000000000 0x14 Core/Startup/startup_stm32f103zetx.o + .data 0x0000000000000000 0x0 Core/Startup/startup_stm32f103zetx.o + .bss 0x0000000000000000 0x0 Core/Startup/startup_stm32f103zetx.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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x27 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x144 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x1bc Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x30 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 0x24f Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0x141 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x0000000000000000 0xb5 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 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 0xec Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_DeInit + 0x0000000000000000 0xf0 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 0x210 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_PollForTransfer + 0x0000000000000000 0x77c Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .text.HAL_DMA_IRQHandler + 0x0000000000000000 0x478 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_line 0x0000000000000000 0x1209 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_str 0x0000000000000000 0x88ed2 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .comment 0x0000000000000000 0x54 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o + .debug_frame 0x0000000000000000 0x20c 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 0x104 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_line 0x0000000000000000 0x909 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o + .debug_str 0x0000000000000000 0x88cb7 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_line 0x0000000000000000 0x9bc Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o + .debug_str 0x0000000000000000 0x88dcd 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_line 0x0000000000000000 0xaad Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o + .debug_str 0x0000000000000000 0x88f91 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 0x328 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .text.HAL_GPIO_DeInit + 0x0000000000000000 0x198 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_line 0x0000000000000000 0x99e Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_str 0x0000000000000000 0x88ebb 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_line 0x0000000000000000 0x675 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o + .debug_str 0x0000000000000000 0x88b38 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_line 0x0000000000000000 0x861 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o + .debug_str 0x0000000000000000 0x8905a 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 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 0x84 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 0x1cc Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_info 0x0000000000000000 0x49c 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_line 0x0000000000000000 0x83d Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o + .debug_str 0x0000000000000000 0x88ca7 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_line 0x0000000000000000 0x629 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_str 0x0000000000000000 0x88a98 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 0xfd85 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_macro 0x0000000000000000 0x43 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 0x4d5 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 0x1ea 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 0x144 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 0x30 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 0x24f 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 0xb5 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_line 0x0000000000000000 0x62c Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_str 0x0000000000000000 0x88a9b 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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o + .eh_frame 0x0000000000000000 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o + .ARM.attributes + 0x0000000000000000 0x2d c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o + .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + +Memory Configuration + +Name Origin Length Attributes +RAM 0x0000000020000000 0x0000000000010000 xrw +FLASH 0x0000000008000000 0x0000000000080000 xr +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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_stm32f103zetx.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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libnosys.a +END GROUP +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + 0x0000000020010000 _estack = (ORIGIN (RAM) + LENGTH (RAM)) + 0x0000000000000200 _Min_Heap_Size = 0x200 + 0x0000000000000400 _Min_Stack_Size = 0x400 + +.isr_vector 0x0000000008000000 0x1e4 + 0x0000000008000000 . = ALIGN (0x4) + *(.isr_vector) + .isr_vector 0x0000000008000000 0x1e4 Core/Startup/startup_stm32f103zetx.o + 0x0000000008000000 g_pfnVectors + 0x00000000080001e4 . = ALIGN (0x4) + +.text 0x00000000080001e4 0xcec + 0x00000000080001e4 . = ALIGN (0x4) + *(.text) + .text 0x00000000080001e4 0x40 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + *(.text*) + .text.main 0x0000000008000224 0x12 Core/Src/main.o + 0x0000000008000224 main + .text.SystemClock_Config + 0x0000000008000236 0x8a Core/Src/main.o + 0x0000000008000236 SystemClock_Config + .text.MX_GPIO_Init + 0x00000000080002c0 0x2c Core/Src/main.o + .text.Error_Handler + 0x00000000080002ec 0xa Core/Src/main.o + 0x00000000080002ec Error_Handler + *fill* 0x00000000080002f6 0x2 + .text.HAL_MspInit + 0x00000000080002f8 0x64 Core/Src/stm32f1xx_hal_msp.o + 0x00000000080002f8 HAL_MspInit + .text.NMI_Handler + 0x000000000800035c 0x6 Core/Src/stm32f1xx_it.o + 0x000000000800035c NMI_Handler + .text.HardFault_Handler + 0x0000000008000362 0x6 Core/Src/stm32f1xx_it.o + 0x0000000008000362 HardFault_Handler + .text.MemManage_Handler + 0x0000000008000368 0x6 Core/Src/stm32f1xx_it.o + 0x0000000008000368 MemManage_Handler + .text.BusFault_Handler + 0x000000000800036e 0x6 Core/Src/stm32f1xx_it.o + 0x000000000800036e BusFault_Handler + .text.UsageFault_Handler + 0x0000000008000374 0x6 Core/Src/stm32f1xx_it.o + 0x0000000008000374 UsageFault_Handler + .text.SVC_Handler + 0x000000000800037a 0xc Core/Src/stm32f1xx_it.o + 0x000000000800037a SVC_Handler + .text.DebugMon_Handler + 0x0000000008000386 0xc Core/Src/stm32f1xx_it.o + 0x0000000008000386 DebugMon_Handler + .text.PendSV_Handler + 0x0000000008000392 0xc Core/Src/stm32f1xx_it.o + 0x0000000008000392 PendSV_Handler + .text.SysTick_Handler + 0x000000000800039e 0xc Core/Src/stm32f1xx_it.o + 0x000000000800039e SysTick_Handler + .text.SystemInit + 0x00000000080003aa 0xc Core/Src/system_stm32f1xx.o + 0x00000000080003aa SystemInit + *fill* 0x00000000080003b6 0x2 + .text.Reset_Handler + 0x00000000080003b8 0x48 Core/Startup/startup_stm32f103zetx.o + 0x00000000080003b8 Reset_Handler + .text.Default_Handler + 0x0000000008000400 0x2 Core/Startup/startup_stm32f103zetx.o + 0x0000000008000400 RTC_Alarm_IRQHandler + 0x0000000008000400 EXTI2_IRQHandler + 0x0000000008000400 TIM8_TRG_COM_IRQHandler + 0x0000000008000400 TIM8_CC_IRQHandler + 0x0000000008000400 TIM1_CC_IRQHandler + 0x0000000008000400 TIM6_IRQHandler + 0x0000000008000400 PVD_IRQHandler + 0x0000000008000400 SDIO_IRQHandler + 0x0000000008000400 EXTI3_IRQHandler + 0x0000000008000400 EXTI0_IRQHandler + 0x0000000008000400 I2C2_EV_IRQHandler + 0x0000000008000400 ADC1_2_IRQHandler + 0x0000000008000400 SPI1_IRQHandler + 0x0000000008000400 TAMPER_IRQHandler + 0x0000000008000400 TIM8_UP_IRQHandler + 0x0000000008000400 DMA2_Channel2_IRQHandler + 0x0000000008000400 DMA1_Channel4_IRQHandler + 0x0000000008000400 USART3_IRQHandler + 0x0000000008000400 RTC_IRQHandler + 0x0000000008000400 DMA1_Channel7_IRQHandler + 0x0000000008000400 CAN1_RX1_IRQHandler + 0x0000000008000400 UART5_IRQHandler + 0x0000000008000400 ADC3_IRQHandler + 0x0000000008000400 TIM4_IRQHandler + 0x0000000008000400 DMA2_Channel1_IRQHandler + 0x0000000008000400 I2C1_EV_IRQHandler + 0x0000000008000400 DMA1_Channel6_IRQHandler + 0x0000000008000400 UART4_IRQHandler + 0x0000000008000400 TIM3_IRQHandler + 0x0000000008000400 RCC_IRQHandler + 0x0000000008000400 TIM1_TRG_COM_IRQHandler + 0x0000000008000400 DMA1_Channel1_IRQHandler + 0x0000000008000400 Default_Handler + 0x0000000008000400 EXTI15_10_IRQHandler + 0x0000000008000400 TIM7_IRQHandler + 0x0000000008000400 TIM5_IRQHandler + 0x0000000008000400 EXTI9_5_IRQHandler + 0x0000000008000400 SPI2_IRQHandler + 0x0000000008000400 DMA1_Channel5_IRQHandler + 0x0000000008000400 EXTI4_IRQHandler + 0x0000000008000400 USB_LP_CAN1_RX0_IRQHandler + 0x0000000008000400 USB_HP_CAN1_TX_IRQHandler + 0x0000000008000400 DMA1_Channel3_IRQHandler + 0x0000000008000400 FSMC_IRQHandler + 0x0000000008000400 TIM1_UP_IRQHandler + 0x0000000008000400 WWDG_IRQHandler + 0x0000000008000400 TIM2_IRQHandler + 0x0000000008000400 TIM1_BRK_IRQHandler + 0x0000000008000400 EXTI1_IRQHandler + 0x0000000008000400 DMA2_Channel4_5_IRQHandler + 0x0000000008000400 USART2_IRQHandler + 0x0000000008000400 I2C2_ER_IRQHandler + 0x0000000008000400 DMA1_Channel2_IRQHandler + 0x0000000008000400 TIM8_BRK_IRQHandler + 0x0000000008000400 CAN1_SCE_IRQHandler + 0x0000000008000400 FLASH_IRQHandler + 0x0000000008000400 USART1_IRQHandler + 0x0000000008000400 SPI3_IRQHandler + 0x0000000008000400 I2C1_ER_IRQHandler + 0x0000000008000400 USBWakeUp_IRQHandler + 0x0000000008000400 DMA2_Channel3_IRQHandler + *fill* 0x0000000008000402 0x2 + .text.HAL_Init + 0x0000000008000404 0x2c Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008000404 HAL_Init + .text.HAL_InitTick + 0x0000000008000430 0x60 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008000430 HAL_InitTick + .text.HAL_IncTick + 0x0000000008000490 0x24 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008000490 HAL_IncTick + .text.HAL_GetTick + 0x00000000080004b4 0x14 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x00000000080004b4 HAL_GetTick + .text.__NVIC_SetPriorityGrouping + 0x00000000080004c8 0x48 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_GetPriorityGrouping + 0x0000000008000510 0x1c Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.__NVIC_SetPriority + 0x000000000800052c 0x54 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.NVIC_EncodePriority + 0x0000000008000580 0x64 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.SysTick_Config + 0x00000000080005e4 0x44 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .text.HAL_NVIC_SetPriorityGrouping + 0x0000000008000628 0x16 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008000628 HAL_NVIC_SetPriorityGrouping + .text.HAL_NVIC_SetPriority + 0x000000000800063e 0x38 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x000000000800063e HAL_NVIC_SetPriority + .text.HAL_SYSTICK_Config + 0x0000000008000676 0x18 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008000676 HAL_SYSTICK_Config + *fill* 0x000000000800068e 0x2 + .text.HAL_RCC_OscConfig + 0x0000000008000690 0x500 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008000690 HAL_RCC_OscConfig + .text.HAL_RCC_ClockConfig + 0x0000000008000b90 0x1d4 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008000b90 HAL_RCC_ClockConfig + .text.HAL_RCC_GetSysClockFreq + 0x0000000008000d64 0xc0 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008000d64 HAL_RCC_GetSysClockFreq + .text.RCC_Delay + 0x0000000008000e24 0x3c Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .text.__libc_init_array + 0x0000000008000e60 0x48 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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) + 0x0000000008000e60 __libc_init_array + .text.memset 0x0000000008000ea8 0x10 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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) + 0x0000000008000ea8 memset + *(.glue_7) + .glue_7 0x0000000008000eb8 0x0 linker stubs + *(.glue_7t) + .glue_7t 0x0000000008000eb8 0x0 linker stubs + *(.eh_frame) + .eh_frame 0x0000000008000eb8 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + *(.init) + .init 0x0000000008000eb8 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + 0x0000000008000eb8 _init + .init 0x0000000008000ebc 0x8 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + *(.fini) + .fini 0x0000000008000ec4 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + 0x0000000008000ec4 _fini + .fini 0x0000000008000ec8 0x8 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + 0x0000000008000ed0 . = ALIGN (0x4) + 0x0000000008000ed0 _etext = . + +.vfp11_veneer 0x0000000008000ed0 0x0 + .vfp11_veneer 0x0000000008000ed0 0x0 linker stubs + +.v4_bx 0x0000000008000ed0 0x0 + .v4_bx 0x0000000008000ed0 0x0 linker stubs + +.iplt 0x0000000008000ed0 0x0 + .iplt 0x0000000008000ed0 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + +.rodata 0x0000000008000ed0 0x20 + 0x0000000008000ed0 . = ALIGN (0x4) + *(.rodata) + .rodata 0x0000000008000ed0 0x10 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + *(.rodata*) + .rodata.AHBPrescTable + 0x0000000008000ee0 0x10 Core/Src/system_stm32f1xx.o + 0x0000000008000ee0 AHBPrescTable + 0x0000000008000ef0 . = ALIGN (0x4) + +.rel.dyn 0x0000000008000ef0 0x0 + .rel.iplt 0x0000000008000ef0 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + +.ARM.extab 0x0000000008000ef0 0x0 + 0x0000000008000ef0 . = ALIGN (0x4) + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x0000000008000ef0 . = ALIGN (0x4) + +.ARM 0x0000000008000ef0 0x0 + 0x0000000008000ef0 . = ALIGN (0x4) + 0x0000000008000ef0 __exidx_start = . + *(.ARM.exidx*) + 0x0000000008000ef0 __exidx_end = . + 0x0000000008000ef0 . = ALIGN (0x4) + +.preinit_array 0x0000000008000ef0 0x0 + 0x0000000008000ef0 . = ALIGN (0x4) + 0x0000000008000ef0 PROVIDE (__preinit_array_start = .) + *(.preinit_array*) + 0x0000000008000ef0 PROVIDE (__preinit_array_end = .) + 0x0000000008000ef0 . = ALIGN (0x4) + +.init_array 0x0000000008000ef0 0x4 + 0x0000000008000ef0 . = ALIGN (0x4) + 0x0000000008000ef0 PROVIDE (__init_array_start = .) + *(SORT_BY_NAME(.init_array.*)) + *(.init_array*) + .init_array 0x0000000008000ef0 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + 0x0000000008000ef4 PROVIDE (__init_array_end = .) + 0x0000000008000ef4 . = ALIGN (0x4) + +.fini_array 0x0000000008000ef4 0x4 + 0x0000000008000ef4 . = ALIGN (0x4) + [!provide] PROVIDE (__fini_array_start = .) + *(SORT_BY_NAME(.fini_array.*)) + *(.fini_array*) + .fini_array 0x0000000008000ef4 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + [!provide] PROVIDE (__fini_array_end = .) + 0x0000000008000ef8 . = ALIGN (0x4) + 0x0000000008000ef8 _sidata = LOADADDR (.data) + +.data 0x0000000020000000 0xc load address 0x0000000008000ef8 + 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 0x0000000008000f04 + .igot.plt 0x000000002000000c 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + 0x000000002000000c . = ALIGN (0x4) + +.bss 0x000000002000000c 0x20 load address 0x0000000008000f04 + 0x000000002000000c _sbss = . + 0x000000002000000c __bss_start__ = _sbss + *(.bss) + .bss 0x000000002000000c 0x1c c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 0x0000000008000f04 + 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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + .ARM.attributes + 0x000000000000001d 0x2d c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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_stm32f103zetx.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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o +OUTPUT(103ze_code.elf elf32-littlearm) +LOAD linker stubs +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc.a +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libm.a +LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a + +.debug_info 0x0000000000000000 0x28a8 + .debug_info 0x0000000000000000 0x40a Core/Src/main.o + .debug_info 0x000000000000040a 0x2fc Core/Src/stm32f1xx_hal_msp.o + .debug_info 0x0000000000000706 0x222 Core/Src/stm32f1xx_it.o + .debug_info 0x0000000000000928 0x2be Core/Src/system_stm32f1xx.o + .debug_info 0x0000000000000be6 0x22 Core/Startup/startup_stm32f103zetx.o + .debug_info 0x0000000000000c08 0x7d0 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_info 0x00000000000013d8 0xc42 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_info 0x000000000000201a 0x88e Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + +.debug_abbrev 0x0000000000000000 0xc6a + .debug_abbrev 0x0000000000000000 0x1a8 Core/Src/main.o + .debug_abbrev 0x00000000000001a8 0x11d Core/Src/stm32f1xx_hal_msp.o + .debug_abbrev 0x00000000000002c5 0xd2 Core/Src/stm32f1xx_it.o + .debug_abbrev 0x0000000000000397 0x14e Core/Src/system_stm32f1xx.o + .debug_abbrev 0x00000000000004e5 0x12 Core/Startup/startup_stm32f103zetx.o + .debug_abbrev 0x00000000000004f7 0x1ed Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_abbrev 0x00000000000006e4 0x313 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_abbrev 0x00000000000009f7 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_stm32f103zetx.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_stm32f103zetx.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 0x17679 + .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 0xfd85 Core/Src/main.o + .debug_macro 0x0000000000011e7f 0x43 Core/Src/main.o + .debug_macro 0x0000000000011ec2 0x3468 Core/Src/main.o + .debug_macro 0x000000000001532a 0x174 Core/Src/main.o + .debug_macro 0x000000000001549e 0x5c Core/Src/main.o + .debug_macro 0x00000000000154fa 0x5be Core/Src/main.o + .debug_macro 0x0000000000015ab8 0x4d5 Core/Src/main.o + .debug_macro 0x0000000000015f8d 0x1cb Core/Src/main.o + .debug_macro 0x0000000000016158 0x114 Core/Src/main.o + .debug_macro 0x000000000001626c 0x1ea Core/Src/main.o + .debug_macro 0x0000000000016456 0x27 Core/Src/main.o + .debug_macro 0x000000000001647d 0x144 Core/Src/main.o + .debug_macro 0x00000000000165c1 0x1bc Core/Src/main.o + .debug_macro 0x000000000001677d 0x30 Core/Src/main.o + .debug_macro 0x00000000000167ad 0x3c Core/Src/main.o + .debug_macro 0x00000000000167e9 0x57 Core/Src/main.o + .debug_macro 0x0000000000016840 0x88 Core/Src/main.o + .debug_macro 0x00000000000168c8 0x24f Core/Src/main.o + .debug_macro 0x0000000000016b17 0x141 Core/Src/main.o + .debug_macro 0x0000000000016c58 0xb5 Core/Src/main.o + .debug_macro 0x0000000000016d0d 0x18e Core/Src/stm32f1xx_hal_msp.o + .debug_macro 0x0000000000016e9b 0x198 Core/Src/stm32f1xx_it.o + .debug_macro 0x0000000000017033 0x184 Core/Src/system_stm32f1xx.o + .debug_macro 0x00000000000171b7 0x1a8 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_macro 0x000000000001735f 0x184 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_macro 0x00000000000174e3 0x196 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + +.debug_line 0x0000000000000000 0x3bac + .debug_line 0x0000000000000000 0x6b8 Core/Src/main.o + .debug_line 0x00000000000006b8 0x635 Core/Src/stm32f1xx_hal_msp.o + .debug_line 0x0000000000000ced 0x6f6 Core/Src/stm32f1xx_it.o + .debug_line 0x00000000000013e3 0x6b2 Core/Src/system_stm32f1xx.o + .debug_line 0x0000000000001a95 0x84 Core/Startup/startup_stm32f103zetx.o + .debug_line 0x0000000000001b19 0x8df Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_line 0x00000000000023f8 0xac7 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_line 0x0000000000002ebf 0xced Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + +.debug_str 0x0000000000000000 0x8957f + .debug_str 0x0000000000000000 0x8884c Core/Src/main.o + 0x88c3a (size before relaxing) + .debug_str 0x000000000008884c 0x5a Core/Src/stm32f1xx_hal_msp.o + 0x88b0a (size before relaxing) + .debug_str 0x00000000000888a6 0xbd Core/Src/stm32f1xx_it.o + 0x88b27 (size before relaxing) + .debug_str 0x0000000000088963 0x52 Core/Src/system_stm32f1xx.o + 0x88af7 (size before relaxing) + .debug_str 0x00000000000889b5 0x36 Core/Startup/startup_stm32f103zetx.o + 0x64 (size before relaxing) + .debug_str 0x00000000000889eb 0x607 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x8926c (size before relaxing) + .debug_str 0x0000000000088ff2 0x300 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x89274 (size before relaxing) + .debug_str 0x00000000000892f2 0x28d Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x88ef4 (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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/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/103ze/Debug/Core/Src/main.d b/103ze/Debug/Core/Src/main.d new file mode 100644 index 0000000..022d3bb --- /dev/null +++ b/103ze/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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Core/Src/main.o b/103ze/Debug/Core/Src/main.o new file mode 100644 index 0000000000000000000000000000000000000000..dadb41962e85c6e3744c736a182f899ea98f0612 GIT binary patch literal 775960 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%0DDVoP>lSN7&W4(C`-;d#7>m-A}gz+1SI_woTg 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 literal 0 HcmV?d00001 diff --git a/103ze/Debug/Core/Src/main.su b/103ze/Debug/Core/Src/main.su new file mode 100644 index 0000000..081654b --- /dev/null +++ b/103ze/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 16 static +main.c:162:6:Error_Handler 4 static,ignoring_inline_asm diff --git a/103ze/Debug/Core/Src/stm32f1xx_hal_msp.d b/103ze/Debug/Core/Src/stm32f1xx_hal_msp.d new file mode 100644 index 0000000..8259753 --- /dev/null +++ b/103ze/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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Core/Src/stm32f1xx_hal_msp.o b/103ze/Debug/Core/Src/stm32f1xx_hal_msp.o new file mode 100644 index 0000000000000000000000000000000000000000..53ec948271bdfc7856268c8e249f9eb556eef194 GIT binary patch literal 773936 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�tnxozojWTadC&9i^jRcFwONz-s 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±$tf_szHUI^mt0JaF2R^y^_%gzu<07@R1 zkC>8m74PbS4o<}_tC#VahS1$X*&AuTm_l+kxn6fRh)q`kmalQo4o~%-BlSV z2gzh&ZcufusvZ9|-NJozMq06kOeuyJz~c|{pxntq~R~zsC)ow zCp|#}U}esg)fnsGC%GUJWSx=lKDlW!|NV(=;}L&%LAlQByZehTKW+bKYy~HpbgcD4 zu+c#;>TD5sHO7s@dx#x$<9<(`(`?K?YhvVWggR=0c2MQMQ{I_7-C>UR5ySD@GPQi)~bK-w9$%ogUEEU z3x%?|CPU^LIx=jAgo=7q`m09k%H!ph3_2Bst=qUPyP~fwGoXEUpxAU`Eqvyi%2`Ua z2-hzw)FgIq2J#Fw5UTH?XVBxgpclhrV~891v;G%dIY0*2YGPqr#B-?O3xyL?7OWz?GdJC7# z)p9$^4MDjjp$uQGpOgH|UL1SaPrY=BYbq&ZN% zi7PlU0&Yqs*?ue*qSON#_Ed$hKAcz;UEy=%N?c`g?GT1#foV{ph@O>fkk2hJb=N|< z3th4y>nWz(LKIWWtG6)U;S@|c-+Uf@Q!>SGlVU+M?8TNNKoS|@ngB_?#dFMNOH;vR zs_+H3S~?oq@6hM4-dC1KD<(`+*TbDoSZT92M=tkuqLYlRG*x6M0lGE3ToSE$U!E z-=wIw?iISq5Un7U&R~5nAYZ|wC^hsIob+y~#x$2baNUWfA$Q73ep+)Bny_@#>x59~ zumJn{$|j(>QuLY6cdMn>$AcKImIliy+rGqFZC{?Xj#dpsW7P5>qc$^aLk8VQ?Ta7O zM(cvB*Jzd7-8`e@J%R$8vw=&r#Q(!v$WBG5f1okq=H-zlN*`Zf8iB|zRpzV?t$(?p z#{zpF_ z$o2d8cW*y^rY3Fw*LbGA?l;jl?_nGFYDs@Wx==7E);5d zeU*`M#g79MOLHj!!`6v8gjvkUK3I-SM$usSb=pP~FnL4n7RF?KhsQuD)=^At_0fX5 zZ-G6s>~RlYs8@aWjrXNmm`hX%&@3i|Ztzyi!diK|zBo`#i+C#BTx=WT5(kWEIE39o zC)~&D1*CzLy+Es0Wd8a}mN)WZ?X2G$J@xNj2s)fZ9^cgiAU$(7tyUzx5&fiS6$hAXawb)kN(6=@ow zaHxas6lwMv#b=|YrBBnLcBM^YwP^r)6qO#p?vzU)s*rQELyQVo<`*E9;_eNx%Oc3s z*z!Vo&Q%X;dc(SV`M>qI)A8jCL+eJa-CxBU8mjMbhIu+O7`pKWqOtOd{JCJl>y*ct z*cp^i)|AJYB>p$5pDRyM`BEY*9aiI(e2m^`wxK6fhu*n_g~m2?kcP=^2!TYqvDz}# zG*c$%I<=bgZ(&W&h4P!&52S%0$V(x*NYa2HTFprRA(n`pbQMtYOG~5#fe!tX3~zgB zMV!O7c#|$;=0Y_$48F0SlGvqfY#sda?3V4ThI(jz?1g9lp}L1^TffywV+W`kv}?@$u2BH9Zwa3(VncdR0_s8Bzw|&S z+f|~p!`{`v>WoT(QH-bFS##}>Iz;oEnna`@Ruu6(Rgq8M;KkYu8ZZh5Tj|VZF9VZ@ znsmqMM@as-S=fp&!kZrc z$~7i3!UD#*Gx!YAn~dvWSvub}MCxWltswPO23L!1g#%3_emp&{ zI~X~CGkbu$vO|(>x1_W+;RD!dgVMCZvk{lvK=krt#ju2HFuyMc*}E?HdpEr<~`k;J(`Ymk);RR>NVko<8&h=p6|^KT%HOxN6s)7=j( zOx?vDD8=XN4a!TR98K?vwuX%qkqD;xP2v3I+E*4?Nw>N%vjw||hXF&4}(1mK&_wPhsE7-F(6T2g&G%L73&)4KMv_VoC*OIeS z(@CXoJMHv9CYtsZP{1b=hg__NYRX(3;t-O0n8Y1gE8CA2Sj0>alreb);)Yc}o3g>6u!m$g^Ur7A?Vf5a_p30^*Ru zQKz7LQN7Iq8r4@OZq-itpZ4QNh=qV2T*~YSiK2ED{y|UT)Ji*GXbLIeATV&Qw+fXgVxF} zNGoj|=*?2g8x6g}wmGCnL%U2qR9u#y!C2?H0G-cfznpK~W}w~yY!G*tuwt5phW%_v zWRoztfoS*8{DP<`OOJ|%t#7&Hc5oA6i5tHH6A{u~EEccMo{may=*Z9a&?`l!hi=4lHDk-R9Zq`a7pU?O?0be4uL?Iiu6JmoIu+OOCw4 zN_UrRyUdfm(}Z4+*0;mSV=+FW*Tr*qT;NsuZh2nxFPndLQP96EfeT8yts1FgdKXq|NC#LD3XPX>vxnPMB zh1?hGdO;)A+8K+`bN^{!Hor6Jv-by5cUzLXW0XgS4IKp*Eeu#UT_F(ox_REitfB5A`=_L8@zx|s{ zBNHq;W-5U|kk4@YtIcAG#2i2a|1I^Hzx(v|kMHj~UFvS8Zl$j({3X;6&Y(xdmxDR7fUvcIbRG9wGGYWB3FQcy8g0@GF&E#lJkd}jTrI!7d< z$qhY?p8_TisdrGNz#B}&ldC|(C8Q+KcjDA~IT%8zgqsACHw}3?xZ2W1m}sT*&h7La zPDUII|81Mx+<7N%(TG-=m(6?!_09aUn5>*Ca?UDDTZU-GH5_7(Lfe7uX0LLGkdfxw z8+y?SrR`S~(SRWqs9Gd}fYTjTmpE*`yQHkdv8|bewKh!sV5or8j<1GE@IS+W@DAZ? zr$6#B;sALxr~aQw3r!DwJ%&?q&OAr`fcFRm)ivax@%AI*PY}OylqAX{56WxGpSjR$ zwa}~ri*yI4Qeqev87YXY_|1S(u;In(W4pzgCJ|T#?9f^m^T!R;>2AP&CB8|WYmO|Xr=7?wYi`p&0m`;o*Y7s3H zk&s^zyQELnZgXGY!c1gZQed^a@3-M-M&qiakPb=}1_n*0N;kM-8UEwUcc)Mk6g2M? z`xu)Ne6c>m=_cKPRVc^s7z#?jIzsm`inCM*B@O@)F1Vf7%!9Rq?*hVxlbUr5Khv<^ zE*Eg}v9uU?l}o0OOOdA)ZJwPdt5BQFL66gA7pmOqR>*wgfu7X$jQ8}I)Mi}YLb#>7 z1*FNDg2gzA$O?cj@ko%xdb?t>)IAA@491&Ko0}WpNkeV(+06R+DuavP=nCJuXoxD@ zO|+a;f#S2eVJXMf)m_ZI5`DA^`dmgV`=C%)fm&E%G$nGP1x4>RL1tu-7dJEct*d*FPD^Los{d%4v*;+`5kzWdue*6 z7!XrQ2E-PIgL~?q6EJ_&a6y)SY`|}SKSOz8@90)yOu~syug$s_V6-ejZ^$+9KWqXd zzd|uaH&`i4zXnjsruf{7y-uu^ut9-o+Od^k4P*r2xqSq`q0r3l%yUOH^E=r{9bZTB zgHQ@-t;{o)C#T7AKB{Di-myKn?WG5^JqX3XBTPds`1op#gs3)Z?o&skl0Fz0eOv}t zvlTjtcXP``B|_*Lw!V1{3=db2*$yTrO{OiT5J^o+YeDaD878|OLd|KDG`$1TkagIx z#uv-y%j>JvGgGCZo{^5LTeP~oehbrccu0ugSy|FXsn|8oTi%=5H1pUj#t<}1^N3p2 zD=;6+^TlivsB!!hBcmj<#0*bn5N6Kr-@gCwrzNsNQU0;Y(oF}umb;ZHqVZ{MA$Z)1 z9lLly^?A-S*TfrjaScR8_97B=SVP#xc36$xaOE)0nkD2e`M6mnhfHf+0Gh6M=^~qB zigM|hx@KDH`eX`ooj!6VSh-Yu1$(Q;c{rOGO&_=8~pLTSyV>tJ!qfP}~kkFDLcnjst;WwO8@BsjWvQ%8mkcB`VWs zNAYun{X6?PE^csw;H`@gGP>|ew(49n#4yF%AqYE%A1%FDh#P(s+r>V(j4ZKvfR$$&Xa&H4blD4`IKOb>)I{W3G8npwo8vm@901r1G-e;wkqIhez@7` z)PrI#V)X1#NHs=&=UJrw4DSL@D}oIIstzYeM-+}B8F+#$Rz;+7W>8ZZAdP=OTif^> z48Z-nJr(Ks?B(qW@tv$RzPyBn6;24i1D4U{@wd~nU?43gW9r*d}{r%nh z<1iaPzZkL_9~~bfGr&OJM+l-m{Yoi7wpT{zhv?6tE~bKJBt5kxjIzhf;90xm|H7COq4akk9FYWR?_U)EBts4T8s)z8$w){YokL$ z#4rZq#>CqAWeaWq`ax;hLkhbAC_WwPk#Yb+r;@&Y2y7?7tNe6@J@Fm|W}l%d7f@q8 z#{b-&`UmzE2volBf{BL0=Q6YvCDbEAluT*pdUVZ!`_v6`s|BVpRDIKN(mhG1E`Fn= zuMjyYEp4FuNzOGE=QsEFbeFkk={9YG3#G1C9^p~GQ=GzxpUdP1$jjB=YZ=j6SpS7c8G|fro3fZdSKlogeWg_N5|VgJ$+T$_o~Fa#OM!qiwCyJUc5KTt}NB|N`Azr1;d z0)vPlC=~Yq;1M;PJ7D2@ym5DV*EWly`2b(0`Ur2_8kISb%okXSh5QubG52rTaqaOU#i+(Sq! zVwSF>0~|Mbzy?NoF$o6ffZyE2{pQRHe)$4l3myjt!nPrPmn&MvWMwfQV`wa#Q=%}W z$8hgPJa}ie`f#n99cfRHpZ&8V9f!DBOV?rUleU8xZN@-G({U<}mqYh9eLA(fM6~N! zKlSZrTecyZStTNEg!0XV0IiiXl6e#Gkdl0mA$vfcE5VHEW;}ll;7_zE)}uK!#9Cv zVA{l{&p6Fb@k@GyX2JyW!SH|pY4s}W_B63>BDBJng2mSg>? zITj70FEu!f@T9Kc);wgG#j0K}{OJQcD{mO!S-B*?9r1~EasDYMsb>xHtp^_0;a&T^ zzJ`D0TMzKBhaTAQu>DS%Mep&k2fBatrzCzhlUJl>KysN;|B}uzu#Wi&p~{HJzMO_w za)kKYNWcbc!{%g^8-jx8W0Ehjel?Ph7e!iQXFDHIysg9Y{(O1 z5|FJ;MTie1lMAq85r*M+;+~rcF6?rrlh1W8m(23&(zqv=f*5Q2d|85R`GDMCtkbV7J?>|TT#<%8}|EZ++aamPmj_vUA<5T=pPET zXvwQQ{@vNrv(u;3@$~q~>0~-SIlKGK^ytYF!D7PLPUniCnXUK*W&?Q*HvrnPu5Wgm z+4@CScRBCDeK?|LsTLbm9V6SUg)Sjf1|GaOo9_|UbY(exmf7;#k-REQ@6eZ+XZ|38 z4UjtXfST!%q0hZsr4{7Ehh|wsY_T4@fbAKq@&z40E#q8sw6X9*qk~0RWnVPtF%clW zl&BL+s~i}N&7T&riAgYY#aAyvPe!(w(bRBs$+@M$^(`>}()sLaC1hmQJmYSCrNj*n z!7(>b(-K?jN5aZ;8{&K%EA(3v)UPXG4?e4+yUPYC;v~#T_q2N?FAX~~or*(tr zTMMR8P?4BK{Q}TfIdMe5l;`k>c72++5X=tQhQ%QNee?xpC~)1MN1uQB%g4Jvp&T#o z`}X%t@KkC&(uY-#Q`)D9g$E5RJ>X8>Jp5nNWAIFSI23TMRr(T2-Xgq7&;g+_I%Bg_ zfcjuj*vM2_u#n%-0qO>>H(iD3CCAa%Af&Es6PkFcv)7rcT2Lg7 zt5QyEQJL|QxhUcIf~pLwIdl*E5$syr4RU)Vk{)&#f^IEgS5ALxh3O<$QuH~SYVqBr(0 z;%yR`kQ#}yuaQ_!9!!;=fKs_!|MvGQl3pt{=H;IHvZA`<(;T#z)XJEuy z91z9HS|pHr{xM=<{%q$ddns^eH#5;0r_or;XqElS%wu>~^|b;k`%)IW}D3w{GEy2RC!lA7;-L{as zgKOaG6`!_;J3~JD>Yl5w>`6-pG*ze*=XNFdWzmWF)YjcSwP<8IwdG!6wGml4x8;sj zU2fCrrxq*}@(; zsP*q&*B0=!bCLMl&#-tYgS)b)OHehG0;}`bMzJ*k+nVPVuKR!yd!dwfgoQ$VWMUxwRn#_Xj6OsYg=Lqswl1UvNc!VC zT21VA1~;T?xfmo;I#zFqUK-+YSJ-pqZS13^F&&2*MPJOYYk?XS@(JsX7*ldLKit@S zCEIM_IkmNJVYvL%H*K@sYZvBY(>;rCQ+gEjcELwVc49q@$lCfpPT+S+>*uphXUa7b z?UwYG1Zy09c{S|R)HaPF=Ky4qMjt@EM!H_bar#_WGD|aJXO~`qoQ~xs&UOw`rWw&u z{&WFit9A74p`T%`R>y+tklmWe+#=4E!($z8*skfs*!{vElR~^Ub$@;Qp zN<1X&82awg~z+qy`-8ylWtX~dQ*>b^+6aiR%g=1Kah zRt==-AFP`hBqdFl1+tDvsGuD zS{K03VF4ZlSp?$4RNX$(%#Z86u%T6Zhho(kV8D*qTVTjP2T(UMZG zHovZ`Z(q6ugJ2gKR9JaWaq2TXB{gii&a_PqbFk)IYfnJ6jvX(gOm&EQGH7ui?M9*S zJ7i5%i3@Y+%GBfy3=p#v7^XT?O$ zlglg_@NX*;3e1`VVY&wa_?sg-D-NSnnxmM$^FhkaJC| z+g>4akI6ByyHEQ=isLlHBM~7~9_ZV12$+^D;yAsJ$O5XCa~aU- z46+J^eq?}rkgRt{&t{V})N@6L^uwgBTrr3*P_uNJVR3kwj?+h5F)vK!<%gIF*l3D5 zl1_uRTv_U5`iX(XWO|M9&l0%~YuHWN(;tYErd~#{Ln0GRjgO+WovOjA89FZUA_uoW z(>1K{g7ajp4wLXYJl+p)STZ`%K;89gWziF;=1@OK-EzB*4plxkFwtG^#)AEc6>C+p ztku;^C9G%yNwJc&FZu|ZC=BH9_Ws|=-t|kjPOXDKH=TLV&J===IU$rqf6@r__oF(% zWy2Wl{B z3K>ZD5Y^C>YPY$_1Vd)LwiMndUL|@lbdZu4j7wCqg$8zF0NG33+px(y5o^rP9?A1q|9oH$& zFfu25u%b&cdCdnzTEl5|bb?Z?WQ-1!$(y= zYIfp~oM7>c#oeT2PpleUe3Py?3Rhrs*S>pgK9NB)I%^ zK|Yxa)P?I^E4YoiO}h`sV!~h=Uc&ZGXltCr$K=q?e{f`Y3jTo>TjP}#?S&6>-JUG{ z7uPE)tC&$|W`p9Q^z-y&s)?x>D~V~G(^?fV7bya4Dy$!*&8^HRV>O@js$;zatB_AP zVl8oIlwRp8iwZ(J8cAD1qLiX^OKp^2Ox^gPPvS}4m>x@A^YU#zl*H>4+91pf*ldQn z2%Axp$Ru^>qs{9sT-lTC^l{1Q=4BvL_;pb%Sona>uBpM_plI=4%1=am-I?Pbo0T=0YXW>v0JQv$id^FoP`{srMEw zrH=AzBeIVd<}kQ@aTMXxC-gWP2%++3J}P)I`9ysyjEB)8VFpcF)X7!Y=Tf)3v=V|{ zOSjV}n4P?7<3e-e!emqaU$<$aH7+(GQKG`gg)~=un;_elryGOhn4YUk^zqSV_&C#7 z8yR0cGqnQmwPJi^z)8H&sIg6R8=Hg!*GT3@|6CTa9G{IY$|eVG6Y4B2StBcI81>2BG=9Sf-&aUp$k$&5tLY8e-V{W)%vQn$X!gwK>MyEfYK z9zdcQNw%F+je)M?hrJ*aQla@^qLadgct~Am%iu%FyKu=GXTe;^$IAwD!?LPKKF$Sv z>>!=}1Y=rs;1k20I~x3D##`dDr4MB?dF~*sN5V20eQ(;*E)^NnP$|k<3L>>`(!iP} zRM5iGG|H~gMpnCF^@UsO@3&PcQcCHWA|0#GMl%`N`4!vj{6zB6?U$t4Uu4vr8P6K! zH&CVuDnpw3E}(^3 z&A7}1_9BUo>)Yeorcqr9MbD<`=4NXuHoWygeW;X0nZW29r*?^G>AiXC|7mOj&;Yu#jWx;W{#m3gvou)RfB#^fbu~ETjTha9slkq_9jWbAt+k=O zlRIBGUe%b)tyeWBbMsa8W|Vm|SS5%vF>SN@-~$uJKe|di(pa>|>NlH^Iyx{jHta{9 zGN=)e24?=YHWGVzaM!x&5m)t9>&}I6w5L}=9vMB2b-{3Ngt4Ra>u8+Bk7`F_etwI& zOWg#c!~E8TE!*Z6@>AhC`IDA*%xUb!o7T-sNH1Et?2L;|P}h!Lx&_pTl3F|VujtZF z(?o#qu)V1D$|YB$Wpg>L(r$Vn-Fl@WHI3M!a{eK1n&UV)hbUB_llQLKcy=n%Um!N|aA4J68O*vOjMYm_+=P9f zn@Ve+XA2_r5^ZRm^BZe+UC1{c82yTK9alDx{F<94r2EYxaG6ZPw_P1vEN7ZQIfN9vXyWI) zN_~>~0{63CE%QPnnBcJ81d2l2H+^i&l=uc1-ne<&f;Q(E%vh@>_Kc%&F;2G| zE*NAa`ttp(N>Ek%PdSyQk)bE3y5SEQ#qhb?0K!ExCysDKlWD@<`i6k z*?y4lhbvNEK0G43w_~Lj4r9=usxX;joE*jWaeaN^(vc45L5gz2$!4n}XPdw)=bwZ% z9Mel7`l?)PcY$pNN^KuHu9NZ@!9$qQPE;pTy4vPay0-b2TKeQ@dsbgff*Df z7Ojbs_|@XqKxSE3suK~#rR+9Ku&ZLtmYifm<&70QgKurP3u(LvH!xkAfWKm@l<+{Em5q;%*U=nI zV&`$peaSz(l6A{4PrwLwa1l*)TU-u{93Zy!ty>t|wqX|TvZa>tn6DDPWy9{GQ;>S) zVPYqsAH!_QoV@UHnqt}@IjJ|T7;wjnoWM=Onl5n~T%9MR}W$Ty#oifQlheWHiB(+4Z?89!*gj%}h*+DU9qSY0Yz@jh0I9WA&p& zW_Q*cZR`7bdotGd_4ZhTn1eqv^nr9HqfMvUW|atorqZ_3gH%BY!Hzd+pPWJI3C{8F z$z4Te#8?iR5!_UlP-x=D8)XE!uN=+A`Ie=S-<`m%?TNhisRy1R?8Sf zCT|8ExCj$eTFZopZ-^ZaIs#w{-7n@+Vbqrl3!l5!%!A`!Jj*H@xyhy}UU z%GCDW7Q>{$%9Tj(9pqg)3Q03GHjOgnm#63pn^|LE>=l$U=OV~e6!z*Fo`qysptmzS zA=*kOezw^=yzGNoGs2}Hi)iajL`=`6Xl+4jS(8i< zgGhMQE|p*sIW(S^yb7Z*gS*PdMvIlg*{QbD5BaFqa#ZY>F^;rB7>eMqtf-F5U>ui~ z_Np8atrj-Fb$Q`TyJzat6B97O%d1@>d{R%&tm^NTeYtR_d|A9*xq>McA>|o9s_m(1O>Ou_oM_V5b_RRhk=iL0rFT!1OR`RO zVtgdfFY$<$RNt+sf+ZGz#a>Np)#Oj|N}dDx&D0gxaw!ZV8r81k?3cXRXVSA}MdK>d zu!tz_U1yiOwTev+tbpcI8U>sB4Z^;XiOH1Ip*HP`nM);6dPhuk^NySj78y-)*~a#A zHa;q;9Hq!vTt&qg5rCYDsmi^U}p6x(Yv36<6u3nbb${9_4&4p(&m znPWyDr`e6ESro9vq#nejl!4ZU(KaBE3s~@UIv~?N$9h+rlx0gur5krN#PBU_(_wWg zvukmOn>6Z-PAUZ5+btq?Qz@xyt)1WQRiW`OR=uT+e|ufd7p*LXuZhAeg;*@f-4xai zro3<}_D#6_a^#mgTPM75Jaf7W$IGs_;4BiQ5;b|(0gfMxhE2BiU\Nf?-h0bgUC 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 YLtWhByy(5P)Vft+{oaX-f^pq{07uocW&i*H literal 0 HcmV?d00001 diff --git a/103ze/Debug/Core/Src/stm32f1xx_hal_msp.su b/103ze/Debug/Core/Src/stm32f1xx_hal_msp.su new file mode 100644 index 0000000..6f735d5 --- /dev/null +++ b/103ze/Debug/Core/Src/stm32f1xx_hal_msp.su @@ -0,0 +1 @@ +stm32f1xx_hal_msp.c:64:6:HAL_MspInit 24 static diff --git a/103ze/Debug/Core/Src/stm32f1xx_it.d b/103ze/Debug/Core/Src/stm32f1xx_it.d new file mode 100644 index 0000000..f56840a --- /dev/null +++ b/103ze/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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Core/Src/stm32f1xx_it.o b/103ze/Debug/Core/Src/stm32f1xx_it.o new file mode 100644 index 0000000000000000000000000000000000000000..7dd483cef5986f86896b447b3b53e5b5d4f8666c GIT binary patch literal 775616 zcmagG2UHbT^e@cZGWXuOy%#l>SYqrg_THn$npk4*u_czM(HM~~f+7eAVxx*8Rf-CN zC<-VbASxiBC@6whKoJXkzfJtFm$%k?-*YWzpWXM&oH=Koea>a?_^A^ZhOzpee~i_4 zR{smLvO1F@C6=&%i@JsI%Fuk9&-Q@^&S0si#0Jsohy*Y-@nSzp_;0q1;e{|xxc*Y;e% zd0*S}0T+C2{|dP9YkLvk;;-!`fJ?u&mjN#S+Fk*;@@sn);OejKHGpfswtoX$_qDwq zaKqR3M!-#9+rI<;@wL4faLd>BR={mv+kXOX|JvRGxbtiKFTh=2+q(h(#((PzRuN6l z{{OC4$w?Ee6aSbDFfv9Q}^0-`ZzgjNE9@V8Cdh&Sz)(2C#XwaAKZ()Nb9&;u8~{SQ1V zes?XseKwE??G`gu{N6fxJ!~v4qWyhv1CvDNNFd@4>sc#dKQ%EVCvka&|C|dhN-JR* zfVf}02z}j1^cDdX`ge-}$kf-xVS9vD!U0C2^TdL@Ul}W@h@o3%`!dr(lzm<)uv#h0 z?7_FwhVG z7Kp5vmH(wU4u;In|D|+rW~`VA|DjkhYNnGyE9EO%DSkGp8I{pzj1iBeqm@)T0#v*W zgB4#fL^@PDSUOpY*YK4i#@p*`MHF^G3lR1HS58QBBhACicr0H@Evo;LBn&fI%Rq~3 z53ODpm!tw_gj5Qhe|->7_8m;M22bA8YNYvpymv9H84Wwi<&Hu5e?fXl^zZ)$|KKz8S@w+V--ah65Vot?%eUfpkn<%9Avb(D z(RW0&@|6ciW^}i@z!T&E^C@l1XlMA3t$zjiAH>H068Uc!Qwz>7V9fs; z;~iu97w0!Jt^O5x%4_|uid{*VH0o0T?|qG!!WiN z8n-SHV9cW4BeV*hF2J?W8AFcMmN(RHT)^P^aw8wt@#ip*SdDr>1Iw#Kl9xJ?jQlup zf9_4~FdO2|bEkIIP_kpYT#Rd%mg~gM)b{v=IXR(+9GD=o$~#@w14& z+l8z-b|Cs$A;|>IBJQ#7bRE{2u5B79La~_S4+oIn)vM?lxRtn5MpF!*`%$!2f05+9 zJfioL)3wV>lDzOEU8np?lBvlgX?#Pzyi-VCRZEm?bV{LBc?MD5FC@v?JxGgpgec?h zko=@XvRNS|%5ztu6gyJ;V-nHb#6$_+Ozq`mMAz&f3w^%O-91boFH=@hn_ExUP8WzW zY7^bp*skQUY9Lu)T2tGrqR7+8&b3?Q zeTX;Fd)y%zQ%fH>qa=^5^NBL}J8E~zCYce@BqO^^c77W{UUENE zv?E*E69QVeE${2>3Ze%mlAZmxN%D0^vg3G>WSaUDx90-lijXM@tyUhVtKEH)Np5+1 zEBPd8d_rg zR?xNEXu9ip-gI>sK-c&mi5`iZQfT$18(GL|>7@l%$?}ZDE#99IJwAxqeIJvr2j_?q zH;f{&8bocmg5JV34{CQhPnHXt=*k;H^vIUJ7w171+9=7Rza7!1BOel4oo;zbLH&uc zaWKgwB2mGRUrP4NFOtmrpNW!NLEf(ylFVH>#az(RmmD@w+vf?WM+mKAj}ezUN|Jf4h;m*}x}LWvewRTMNjh>=+}%2&y9bbWhwXH&TSxL~ zPIO&3h9rBnyq6opiMw|x-QBz2=vsV_t~Rbj*K*WugWOtZ6*HFN8FPZ@jViKpT0~xI zt4PM%hGMAiNY}WXMES9pxbjzY-L$7g29p*>xmH98ctDaV%|zK+OV^?tx~^{-kxFlp z{cgVGcTzCau1rgA*ly!JE2wr3Y{hqpv~W&_E`R}ej; z<*vh1D7K6Oq8wgJ+&5Q9cfoeDb1<3Of-LelucB*$8(rOR zQ4GF0B;!y|ZNnI{oF*r0noRPpttCpU{Uo!=o#=B~zUx&zNWQX|WbP$VyVo>|t;ap0 zobsg@{I%4cT1(dv*<_(lYr6j0(tiT$DTa1K>3WhQdR8d;s@+ds=Ix-ivJ+i<-XX5f zC6Zi%MZVDLeh$enj^ua!WAf!UiM(8|Bd+rw)b`&-GTCQ{(lnD|E80cYCSpyF=QEEe zg)O~Z@tG|2LLES8b!L_Est3^@4W;(=mN%u0B8rzA+5baH7Oa<0n>$GncE@rJ zvtdh*b*SPa)edW!iz7Lr|AEyIYxP?VS@7vjZNE1>T±vQ`W5zQDC3n_oPLzOKIj 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ȼp~Au>Y2O{a19SJ4+u-Q}m`jD+?;O^yY)G%hqpM3+}c) zY7U@t^fBZwS6^L*!94w>W5CSUchlkC9sT$(z%0hslLz^vNC-;C5eyqY-;*e>a*5E zR;B;Z7tq!ErQskodT;6|)#~@sW?HA;NOu{Z>JuA48uUkLsch62YCu}_tqg?Qs+XrA zh&FvwFU;HZcj)u$(D$2R-l^Zg!}E3Nqvk^POn;No`ffcV26jDqe+fvhevB&bK7Dxr zRG#bee*kp9zKojMFZ4P}lwRuh$l!fIe}Vz?L4BJu$dLY9I;eW3|M&%D!}BC z;tB4gA%v2AM?>H@;G7J9UPegHhJZeRxfn)*5vQx6j|$CG2CHGHxEZEjMJ(=yCsQ!! zVR$V9gQpD(uEOAqVQMFcw_)>#K=CoWEriNhL*83ZIcJEV%bmW41j?8E430lQ^SoiX zCCCK>>rbfo8w_+^C%~|V%IZMF+le4Sh9z_a6KoiyoG8SQ*^B23HH^FlgD^uC?K$BF z4sD+ihB6(XFB+CoY7}WOn_+j!;7mJgl;PT948|Hx&}S598105;ydn1km|r#={u<

F9UdjwuzD3RQw(m~FqmqXB85t}fkD^BZyN+7 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%0D#zo?-%{Q^XcaXiL+{Q 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

    IZK-Na}5M#dbKND`bfCdbk`t$`l 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 z zFBc--@%bn09}tcBzbb@&Lx^<5{Q~rMQZJC6cs>={7L9bp^KH=a_=fZ?ll9PXJwiI~ zpuS6p^lqenN!VYhKU2r^UITHTsf-iYeuxnHFp2sgA@U=hpF;RT(a4v0J_>rZXylJ7 z;5GCM{Q$%Zzhk!PzwkZGg{lyLd#w;GSfJ#;Lh@u09%h{#hZOWPMg_4hc?@zYBw9Y4pE(tM&RUQ?5A*yH`6^|{E^_-{W5=0_(ayXKns(<{j9 zID=!OPp_Hdhx6fMiwR;8X`d)PRluu%=S29IA7tKRG zXzzl0BgYDQk@h5Wc5=Q^!>Qa{snBe7oFMLBjdzohNzId;-swcX4dJBgFFlewv^ z_(>LMyIDDQ(l2PcujkmUNZB2mWB09;-RvB@t5SAza_nwO*~y$hR(kJB+0D(ddpKn$ zd6ebv>6G2^Id(6l?B?g#ZA#fK$g%r<%5GtfokG8<%WYAPo%GwZa6 zjsvwn8C$aa$vC0yPRy~}CuMh1j@|f_-N`w2(^7U)x3l6mBW1TV$8L7Y?$jK+B`Lep za_nSW)cLY3$8L4X?(`hH%Tsn|xBMa+nt+Z*E3~zUXGodFKd72=hzKT z*7wH2q5#zfyY!-Ef2M*g@f4le_huLZ*ezLT_oy0?q59C-u z>^k8$0YCAF!~J-f&3vJh!-sg0F*a?t1OeMKOrY(g?@HU9jeu4$;G*rM4^GE#NGg6F z!gT!3!{2Ft@*Hwc`Vwe=(x%e>tdzemAx!(b9Dk?%-2(>_t{3fZ4OXQ6c`1MUAWZwa z34f>k{T>b^{(8~=)?r23-^i3dx%R64-HpG~{)VIC?4+H6+TXt#cKgGw?`POOYuL?z z-DlC&V${~pJDgkhTZiU@%t0(()ltzl`mrvrt@WcWJ)?;9?tN$ z4UE$M4odkOm-4r(;qO1;@3Zn*?#D^*_m3I-mHE`PoxC5h75meRE;qR!Bptu$srXHV zu}<#Oq0_tA@V65xsq`Is(f(E%c9$blq;2U%+nt3!(&aG#NTxMKIM--hM=*@GvRvqlt0?Niwj1r=%B^lk@#i#dwBQ8dXVL> zYlo)zSzz&ZbdJ9_;cpVc^^)b!gTEOt5`SOAFDrf}%%!CJp)7xE;7{zt-;5l82f*LA z5U!Ujf49P))GP59;FlG@|A0Rk5A>4dZ~9hEY9x%rUk$%3e>?AyjL$HMmn?s4QvT|& z%<^|2{2fkTf-HX<;jazh5~qvZzOJblw)`C_w^iqeTLu}J@l!1(XKbQ z57y^RxX`%)cH(a~ep&H51aoQWelpA7t+b}c{Tux4shz-1|7q60HuyUTf#UC!9Dn~kqJ8CY7Y=B2d7PT#Z~KB$4#M@46~7Je zr|Ziy7-yw-H2k%vz9?K!)A2ha$KTX;`s>iu$}%|Q~u7*@wWi}r2o-NR{mM= zw*p2|zQU~hdl~-PQ~&OQzgGJDMvlLa;O`KG>m@6G8{w}FMiRgC@XLzd#J$=#o{#Lh zWjwzi$KM?IYfpV?gFjtgR_FLz3V$OJu9vLzE`h&;U?l0i2*0fK-UolrX=h-TzYXvw zf#Ofb|15tOS?w#|4c)es?8-L%$jY_@YN7DP<9DjH(Y`ezuPCd8y zyDG;YJ|d-tB3v(7>1~BSWOW?BYrw4XxElVtYG+`Uzk}dU>?FO{;+N&`HuxLGV+ELH z`kMiN8(=5?uFvuJI~;7Zr@tD48*N+RNBphJ@wYuHUwhI!9{zNCzn|l;Z#(@>Px-qk z$6o>d+H?HZ27kK#-IC*P4E&ANg$g_Ur`bN1!Jlp)x90d;S;0F^w38fvop1x+2G~h? z{4mE~cQo?$r1$Bax1{%u9DhUL?@5H~MMu?4?jCxFnNDS`uukz9)wyA6Y+N!e%jyT^k*fTt3QrZYN-rZT*ROJG-{ibvP}VC)>!f zKY}+iwHvh#cDHs(?q7Hq7UHifezMQh>5!WKD&CnSE4gTY-JsKUD{#Y;JbR-TZTCMU C5jq+G literal 0 HcmV?d00001 diff --git a/103ze/Debug/Core/Src/syscalls.su b/103ze/Debug/Core/Src/syscalls.su new file mode 100644 index 0000000..8afbb58 --- /dev/null +++ b/103ze/Debug/Core/Src/syscalls.su @@ -0,0 +1,18 @@ +syscalls.c:45:6:initialise_monitor_handles 4 static +syscalls.c:49:5:_getpid 4 static +syscalls.c:54:5:_kill 16 static +syscalls.c:60:6:_exit 16 static +syscalls.c:66:27:_read 32 static +syscalls.c:78:27:_write 32 static +syscalls.c:89:5:_close 16 static +syscalls.c:95:5:_fstat 16 static +syscalls.c:101:5:_isatty 16 static +syscalls.c:106:5:_lseek 24 static +syscalls.c:111:5:_open 12 static +syscalls.c:117:5:_wait 16 static +syscalls.c:123:5:_unlink 16 static +syscalls.c:129:5:_times 16 static +syscalls.c:134:5:_stat 16 static +syscalls.c:140:5:_link 16 static +syscalls.c:146:5:_fork 8 static +syscalls.c:152:5:_execve 24 static diff --git a/103ze/Debug/Core/Src/sysmem.d b/103ze/Debug/Core/Src/sysmem.d new file mode 100644 index 0000000..74fecf9 --- /dev/null +++ b/103ze/Debug/Core/Src/sysmem.d @@ -0,0 +1 @@ +Core/Src/sysmem.o: ../Core/Src/sysmem.c diff --git a/103ze/Debug/Core/Src/sysmem.o b/103ze/Debug/Core/Src/sysmem.o new file mode 100644 index 0000000000000000000000000000000000000000..10694e0b9027d40cf002e9fdeb022ea6e313fb8c GIT binary patch literal 51292 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
      0q;=&-`DWo!nx5sMc+<)fDU>mj^rnWRT*%wnZ( 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 !5xBLIC~Q5 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%0DD;u&no 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 literal 0 HcmV?d00001 diff --git a/103ze/Debug/Core/Src/system_stm32f1xx.su b/103ze/Debug/Core/Src/system_stm32f1xx.su new file mode 100644 index 0000000..967fb21 --- /dev/null +++ b/103ze/Debug/Core/Src/system_stm32f1xx.su @@ -0,0 +1,2 @@ +system_stm32f1xx.c:176:6:SystemInit 4 static +system_stm32f1xx.c:225:6:SystemCoreClockUpdate 24 static diff --git a/103ze/Debug/Core/Startup/startup_stm32f103zetx.d b/103ze/Debug/Core/Startup/startup_stm32f103zetx.d new file mode 100644 index 0000000..b5ba0bc --- /dev/null +++ b/103ze/Debug/Core/Startup/startup_stm32f103zetx.d @@ -0,0 +1,2 @@ +Core/Startup/startup_stm32f103zetx.o: \ + ../Core/Startup/startup_stm32f103zetx.s diff --git a/103ze/Debug/Core/Startup/startup_stm32f103zetx.o b/103ze/Debug/Core/Startup/startup_stm32f103zetx.o new file mode 100644 index 0000000000000000000000000000000000000000..26def9795592dacc2eab77b6eb9e5ca7572803a0 GIT binary patch literal 6176 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

      RXjf?9i1 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

      i@RlZrzltS(pV=jtXRk<;Qh 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 Q@=T^kkyz)0ak1(CUyVYFT>t<8 literal 0 HcmV?d00001 diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su new file mode 100644 index 0000000..634528a --- /dev/null +++ b/103ze/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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d new file mode 100644 index 0000000..f84d7f2 --- /dev/null +++ b/103ze/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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o new file mode 100644 index 0000000000000000000000000000000000000000..33473038b28f8f4d0447ff72c9c73e449be32d5a GIT binary patch literal 788452 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%0DDVoP>lclPBFj^-rJoDz~U^&s;te1Y{B;I#y%X( zQJlyboX=%k%Pri^L;RKJ_&aa$FaE>-_<^D41bPa`sEorzOv&`j#yl*{Qmn`ttj8v7 z%}(sW{v5`!oWj{$#FgB@?cB$sJjIK=&bxfXfBA-A&JFbQ4I?rJzh_dWVJ7~_{4B<@ ztiqr8Gn=y=yRtV2aU>^jI_GgI*Kjj;@gPs|EU)kn-sj(Z$@lzfUZAJ2jKbJV$Q1m6 zS(%%KSdtZ3opsrmt=N&jupftV3@39I7jgyHa~t>a2!G=RUgI4;mSA~SV;wePOLky)_T>=W!|5a5H!DAW!ftuka7v=ihwE_xx&Upr^2m!q`m66#Ri%nVW@Jk`-8; zb=jD$*pa`mABS=bCvz4Tas}6O8~5@Ef8zyS;~hTaGrnesWr2ReFao199+NONGcpJB zu_(*1GHbB`o3Smsuonk%1jln4=W+>Ga}#&+0FUzwFY_k<&4z5j_Uy(!9L!Oi$Qhi^Wn9ZG+|5J$mFM_7 zZ}Bhw!~gh!p;rZZ3dg97!$eHU^vuRQEX-1@$QrE2CTz`4?7{vV#<85j*<8ex+`#SJ z$D=&Oi@eUee8hkGhF`7@^z#iPG6uhAQl?=h{>c0+#7YA|#$8#FzatT*+6L<0ekMj&K^Cth~6TaX(hFTZs={rVdEGA%brehZ7VnLQ* zc~)Z`HeyS5V0ZTA5RT>~&g23v=Q?iX9v_12ES)greP-j$owqEvaG_N_%oZc9lNqO2XQ1Pa60F4Dc5i_ckv)k z@GP(J58mhBe98CxYIC5cu#CdkOvn`cfmxZGg;qU0ExWK62XX|* za~kJz30HFyck%#_^9(QZCjaCUzTi8C+8XHTJ4R+KCSY==V;1IOL6%^7R%0DDVoP>l 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 literal 0 HcmV?d00001 diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su new file mode 100644 index 0000000..5c24809 --- /dev/null +++ b/103ze/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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d new file mode 100644 index 0000000..98d3775 --- /dev/null +++ b/103ze/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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o new file mode 100644 index 0000000000000000000000000000000000000000..822af1b1377b2239a44553c72202bb8176bc67d2 GIT binary patch literal 779568 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 z%0D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%0AwO<^_SxXSE)>No`1zn&^{Ra@?Aj+y&~4 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 X}N^X=+r#w8bN!S{wHS`2i zciV*)v6#feFzeCQ>{cJC$yVD3X4K(sQDx6dkhErBkvf{puodUVrNwjd1&uU{$d2V+ z(Rf^0Z--yQ^6)pqHA^VCCY%bMdcK+SQ+bIiTt_i3lK{-nZ70;AM3*e>gMX2)f+CYe zv9fm8KM#&zUI>tFCT>`eh6`BV{&@hACE3DFvKrRTI@1>#i(IzN1vL*1QVNNMkHd18 z`{~xGHJt(!?qYIJ5N*S1KbjlSgKR}@@l)yX;rFwL^v?}eb? z+g)x*VJqz7h!{h(F(wt72xmas(VfOFJtj?|hG`+xopw#gAnd$b9WDrPFoli~&?1&A%mRZ`{cMm^H63_Ch z*)C-FlUiE&U!jUrStBY-$2%AzXlrX^*uTy%^mUdsj&f6^DXfAp=(MPx5Q>S6aOzsf zh-EdNR?=-@_NF?k$XTFqUqEeYcASKPT>jitKqWW$GLV)9cao4u?&Vqns@SqVB1eg^ zyyS#DapOq#A{BiKRJL%QQB(nlOMh{8e(Xts?C($|aGs8~%M*l{AVG_i8UHa@5~8jWmV}JwH|L9`m+R#s9DTCaLNuZ_-9E_(UBL7#Rg?FlC$cE#Dntn^CfKOZ zXk-*uC-+*YFurqtRZhb6kis$qwioFRhlgjtA-&N`Em%x$I{U6{%u3%)q4Qb6X-7k< zkeWEAn|i%%FBn~)h02cQSsZ3@@4p4lR_Pr?s_r|rs~7HzqBZF+s_vSoa27!mGQ%Pf z*fmz_NmLaWv4XH5*!esst!P260ETxneaYmCN~Sop*INjp?+Q9)frfr&w=sQAMogMkG zkj#87YpCv0*>OC>CU#8^(IbbvXL$M?3=Q|tN0BtbX5m%#{yuZmqbg0!BK7SFrtTCvbSTzhei`w-BiKE0rCE-u zDM(K~UvsJZY9gAWg4ny-sWwO3uxG)_I;462V>vaxCRl1Qown!XnB0O7HEIx?+_pFs z0ETALLvc7jAu!*&?Y>R5$9s1*6h)gl7oPg(H32nnFa@DDO!5c#zZ|E99Z&ah7GBgbK{l_~=P(-o^7`T7 z{w>tm1JQZAEJ8QYntOR@UsCp)G%OjvA{BREC%xO|(j<@Jv2AS^QY@N^tCY0F;R!Aw z+&xz2z7LGMmfOo2LXGygY3O({BnMi>sfX6!|1@bnlkGG~gY9vNP6Td3;(*S84VLkV7@m|Y0D~nSxx07k- zrktNyoIxCoR_FN%2{TA-1=cTb2i28R5(XTB|3WlNvnn>or_DlOK0G{exz#h} zJ;Eif^en~^z^;-Cz9^2MY)~)5GYMLWJ(d$?a+a*<&Vh9<^z3>roJ8qQF8B3Z50gBC zoEH;E4nIc%p6B8H1P^ONlA)^Fhf>a{W(=P5=31`+76bor)Zo?YhaXu}0u5(4ivuNU zme)mlJWLkc(~42~V;y3cDD$YxlajM39SZsBRG&U_sE~#w0bL3ieT-mhl!`$Rq z-;3Mcqf~73i5FFYf}+`{UtW#g459`S&b1%IyxLS;Cebu90-`EbGQ5W%cnp8aU|!5FHW&w&pHeC zOdba;3G2bQDn#cqbOPu>u!(8=DOhRJ?;W%Ar44SMr42r zXqcnYr2(0RGf<<*R!E65D88rYU4)A8-z=?!#_L&cp{l0KJilh*3#50zbY!U*4^4ca#l!-fs7DHivxyF6GVj;4kmq!rk@uesJ*BfBf|3E0?}Ih0GK_-69SlH>Quur^qImxHLeNV9lx#qB6%G5>Fo~s=MSZ9vSAP zt37S^0P0nyP*S{6VSd%ts_9c-58X<#�Or52Db-2o;^B%OBoVugkZ>nytGQj7X#_ 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

      =$a9Nz7y7B+wkJc#m2L^-Nh$w(I@#K=S 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 z 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

      AsRDI_VN{7^&6(ypAa&P= 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 z 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 MaYiRwKvefX0DD|FuK)l5 literal 0 HcmV?d00001 diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su new file mode 100644 index 0000000..9238093 --- /dev/null +++ b/103ze/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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d new file mode 100644 index 0000000..36613b3 --- /dev/null +++ b/103ze/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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..5bba2cb4aea2a4b317e1d0c293c60508cc70d1af GIT binary patch literal 785568 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 ZoT$a}WeLXP$K^YkE)ssPJl0}y{|%{=lH~vZ literal 0 HcmV?d00001 diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.su b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.su new file mode 100644 index 0000000..354b9bf --- /dev/null +++ b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.su @@ -0,0 +1,16 @@ +stm32f1xx_hal_flash_ex.c:159:19:HAL_FLASHEx_Erase 24 static +stm32f1xx_hal_flash_ex.c:319:19:HAL_FLASHEx_Erase_IT 24 static +stm32f1xx_hal_flash_ex.c:397:19:HAL_FLASHEx_OBErase 16 static +stm32f1xx_hal_flash_ex.c:446:19:HAL_FLASHEx_OBProgram 24 static +stm32f1xx_hal_flash_ex.c:527:6:HAL_FLASHEx_OBGetConfig 16 static +stm32f1xx_hal_flash_ex.c:549:10:HAL_FLASHEx_OBGetUserData 24 static +stm32f1xx_hal_flash_ex.c:595:13:FLASH_MassErase 16 static +stm32f1xx_hal_flash_ex.c:644:26:FLASH_OB_EnableWRP 32 static +stm32f1xx_hal_flash_ex.c:767:26:FLASH_OB_DisableWRP 32 static +stm32f1xx_hal_flash_ex.c:886:26:FLASH_OB_RDP_LevelConfig 24 static +stm32f1xx_hal_flash_ex.c:937:26:FLASH_OB_UserConfig 24 static +stm32f1xx_hal_flash_ex.c:988:26:FLASH_OB_ProgramData 24 static +stm32f1xx_hal_flash_ex.c:1021:17:FLASH_OB_GetWRP 4 static +stm32f1xx_hal_flash_ex.c:1034:17:FLASH_OB_GetRDP 16 static +stm32f1xx_hal_flash_ex.c:1060:16:FLASH_OB_GetUser 4 static +stm32f1xx_hal_flash_ex.c:1089:6:FLASH_PageErase 16 static diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d new file mode 100644 index 0000000..71967a0 --- /dev/null +++ b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d @@ -0,0 +1,68 @@ +Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o: \ + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o new file mode 100644 index 0000000000000000000000000000000000000000..f6ad7a93be3cb7a5f8d0be05c9bdb54644dbd038 GIT binary patch literal 781072 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 OOkNTx(S$*_t#rRNOHLJX!F#yH^84Ck*R_zc6< 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

      M<0G` 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%0AehUxye9FAb|U=ST-4ij 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

      %ScS+p{vAH9=mF;1eNEm8p4u$k!H;y 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ð*?|1K&=7j!sml|qT;Jl) zk-TXIksIU@JZLC4-Q|@u)2u0n*u%>x?O3)`V!lxSp^O_^H`G@FZ4qaFNc0jM+Ardq zwbR4rjkfMsK68GAhs+}R@&ZhlTR4Tm+~YRa!t&ryRt}7`nmRn3Bcl^+#Fm>5m6w&c zTy!^-;^@QkxrK>|vvJV@z8#QRGTLQ=tR2^r&$BT!doECI&rU?GqG=H;Pl6)}^X6?V zHBF1-2ULUt8|Tt_t6EmZP_$AMS9WkvFSXb71reoD4q8bYyM(HY6U`)&)oCW~aFXfT zFi;pgfq&IYQH4pR{8%kEfCJ;(e4?f;Y|^vQuG;R{)LU!b2D%5{D|-5z1&j(>gIrHJNU&W60toH7T*A@=27=*utz_a^w!nsMwvV zD->O1?oW8R&*M1o&Nk%@C?VNmZu-$_8OG=QLVp8i-NvxfTW+y%Q_I+iWNt1FtVjP6 zM37wBM%*ggJe6VE$yZ*1FAZCb(etI%`ouAwNW#6wF7aH@V|92!crPSLW{~=3ZgHiz zRd{peXkLB#;NtGnFC8EO;=YAO-#$FMecK&p zE*#(09Q9L&EXJwh%8wAq=QA`#bL0d4Krl@t6(T+vij|=p#c6=2O+A(HkD8#ys8*p1 zwv4eoex^>{7ATFK$wkfyk`CA4A^mE;s&gEhR0P;!_Av?<(yZU6 !n_Y}|2k`m% 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

      OejLJD$>!$)sFO6(JXkM@8G+3P$;w=4-jqyG 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

      lNuF>~k5G|Dn*YeB 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

      a{?Z98_P=k?#a=)>8N8GU!w02ZI36lQ75 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 literal 0 HcmV?d00001 diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su new file mode 100644 index 0000000..87a538a --- /dev/null +++ b/103ze/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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d new file mode 100644 index 0000000..379f110 --- /dev/null +++ b/103ze/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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o new file mode 100644 index 0000000000000000000000000000000000000000..d73cab428c7ac844af7f6c19997ff82a88a2ff58 GIT binary patch literal 782968 zcmd43cUV+c*Ec+8W=@$iy^md^v1_cc#NKP{No=tv8f(TBuc^e06Ns%I|4e@+&cqqthsjq+=PD)$0X4W zlO^~sX^=zWlEH-Y!|TlBhV_5rFwQtbj(gd##`gPvWF$IiACi*|XTGUD{eP&*4JDd> z)pW^!p*zP&qE}9DIlRu?#&7bZYv$IO+ia+@zjAuB;gjb!9oG20L&tH`n-JH2Z=Bv} z_`SIe?f18)*B`!XZaw?G&-68OC(o5ZTGEQWVS~JNSbt!~8oIyYn!53?%-$Hv-U8?&652=qt&ivQ5>i(CuR?}VVZCx|Ba(d-lpHE@$ z5~e52jr-*M?p|!|LF{njfL)T>gP6uf_%hY_YUtpsb2#?@MNjfy^s4(-IjC}p0?$jp z^ODPqGb&dyt(cqblBIclk{jZ`f3+-GQXJui{ljO`%K`ryLRMK-&eR3dL}qydtRB!c5KMj~%#q7jTejSH8K z3-7`H%_tbDL?SG>&P&*pjNvlK65&pURKl)e3?w8M_Kb$o>S|076r%+RyQUgbDaQ35 zD`D4GV>(5D!q!z|CdIfRqb2Nm#-N7-n~>}+m#`bEc};}*^H~Y&P>nSg`X_+rSdFz7 z##eF@)~On6CqyM6GUsZnlThDHCSf;LV_k)+!HCnP8tb7LJqX@6F@{#~*GDmcFxTo9 z4N>$R0L-l#8zD4U2`if!!$3%m7A}cs(H6!q4cK%clmq6@7-j=oE=+QPq(`*}H;K3h z9YW1fdf-MWVX5y#>a(W*5E%()!97a^JEzY-9GQe`M;s#9Ig|e3$R*q`;t)Zkr?dS3 za8!3jp*K7k*$vRuAKOE02w&?s5Y3}SoP_JBCj~JamxKRkX(e1B?ltStbzCPa(d`14 z{}BK=fdtMwvJ$SdmFT>UU&koA%On!T(2-*${02r(PhX-KNSH%4CKrlN@er&p)hSW*o6h9XVXTe8+$#738z0G7^KJ zXs1{YrcnrGB#I6ydZ-ek%mSpd9g$09p<@JzqKkAA#A+;x9hjqJaqJ&*$!uM62bo0F z)l$kOjP71N8LZ2mo#iBA7ugmFX;OyczK4aLswU?T-1oGx{SpRQJ=;szQW%)spjnvt(-C4sH3f+LF!Q z7SoS$=)B+mO|sP~LWn)8Nr`r;c=DG%3d%j0=7bxkUtbBMXTH@Kl`>5o%>=8S(OCofSrJhaiBj1MRA^fyGEH~o56W)Jp+-zKH5>th zTxSVUxTbc%8yTe%a%?vx1FE2|Rs%ZJ*j0%^0R*9%Uri7hW~h-wm5pHFJBX-iT-kLn zl6Lx+iQct()WSzmL$U``P14GlUP>jLRL4jLb$TW2G?FPFhW_(UJKx9NX|{ zeI%v-7Qe`da=EO5xyD07%fFb_g0c^S_1{EUDPyzavTUZ-e=y3J+SR!1BU7hZ(z+tme#Kp`M@-&Cdp;TrHblX_KWo5Z6w|`Scmc$M#6Sng1MjV^wJmkVdwM6 z3EAF*704X>H24MFz9S-#we?$4fRU_!Pc>vl&dtE}$NhhRJBG=B)`ZFPZ8ErsSJ)x_6%f5y_6FFe5n@1p|`k`!FDRnMCrxdyq_7 zC~?Phru%NL#LeA7_g=lp&XwO0pk#^tn$(i+yG$nePe>e)2znCbCgu)Sl2%FfM_oX( zB(r`dy5LRLMq}n@CG|v-DVsptDc{kxsySUtKT?EiRU}_GlKdtjF<~XmRuK2i0E%HI z3PY^q+!~VHl|%GlI=bF2CCTzpbiMy8NuEm~$){!H>!&o5U-_CS&s7x3!7D^@olcUY zI*``S{zUm9o8*NQvRR@c%De4$$`-mmeU|8@Dx$Rbi|+r#LP-Y-nCytNiwTF#j|`CdB1j%w9bB{7@Feig5SMF?-EOt z&S^yPzDRc5uaWmQJBj}G7Rl_}MBL9t^7Yu>+tID*zBck-R?=8XGW~uhU#cN=EqzQD zCfi$jy*b@S*!yHFzHPL08(rfjQJkGW5%=75vexkm>GnHKG5Aa+N{cz<*RLgAZ`t3j zdT)t4HlO^iZ%WsxVPvgwJBdd*&l81+v9aft8*UpfYS)#M%n3lKavr$ z$&O<`@^a!U#q+cM{>XmfF0;2nIfv*AQpnEd8zfoWg6v#PBpGjH_wYWIxMxsugN0za z4!%z^BkW($Rh}eU6_DiLWkf%OLLDpFyMibmL&)Z(V4^pFM3m@lB>!nP#k}4Aq*V6j z-my1n&1_G;vS0ppXm12l#LDxlViK5OUZqhrtHgzOQEap{K64H<;0S`!$ky9iY zZ;3uKi>|HgBT^Wa+N`AhF7g{4Nq+k+BEO5UXk#T0kCJZVjwG{6N*4Ge(mnIVE_0Ob zD_u!4#NKM5AJMPOp%^^d(lu@x3HpNCAA)r_YNINcg#h) z_Z&kq^?d0*pc`3OzMdop^`z^5n&Kq4J`ndW2cqmcLGphMr~9}?B)_XK$;=&0HjNW0 z{;zfmuJ&lzr6j-hInmo4q*iyZk9%HsiSl$IabwPsZi6*sXJjhff4oW_y}OhBhx19M ziCyx;-(dL zI*nSsp`W$5jwLrkLnzAG*3;p%~U>k<7I+x=)}KK(fF<)^1-V@7?U98j5r?k}i3vXXEqU9V=5Os*^W%`GHf#ly+V&T`_aQME!I zvWjH(9wG|=6UDZDJy|<~%^i50LKKPp`x+&o-uCNG^zB}B{pAGd=CmivYx>ar4*Qex zK2DT!AF}^)0nu;Fqx__Fk zJ!;wI>yhQ*P83yDA_{AgZb@XVvweJ?a*FP!VqJttGU*y=M5ZNKx02$YGKb=K9!uB0 zyUAwIYw{i+OEM$6(6!-0^71pjK2Gx8c(Q+fJ;_YpMfV>tws4X?<49&!2wgR?WM|oR zif5AjjXLg4_xUPGS4Nv2ei_b+;S7L)8bK#_f|1Xz z8!eyYM!Dv!c}bxBF>VX&EWcj{nUxpLf$PL1#35v7#+ydMjm#N(#a)=vcF=KU+9UvT zV}4o<-OWrvD>&Q2{4PS$oe6UR(Sz|G2oX=_r!a)(#l%d8$X2Gx1~=Q7Oq#8{nJ*1s zY&+w82}B>JA!=N#FY{_S-1;#=GXVUVpxv;tg9)aAbtkid+y*c%%^(@bs8GCPcQNg$ zQXRw`T?H$iWWRv1C`Ps#>d{OFmSSuS6ZZf?#4%1Ze;#A< z{Go81naIKB31&78&k0N!z4J-T!0xb;%xpdhg|kfGGWbhndiMn}ooPkQyug%A0WX75 zv;cOAnL?xNWu}V*B(E@AI>O3T<`}(_*O(dG0j@L4y1~&6X5=eiHyPD+C}c8g$|0G> z9HQhXn{jy#ksPM;ZeVwraI7uad(3YI0QZ^5iD*$F6Hn_QTB%E~eZE!2x zPhY4vWWe$wrfkpxJs z-AO@uqbESLG@RO&EY+-o$R+7-sWmOquC9Qg+8UZ#8nxaAYu^pRPB7c^$qTe}+ctAQbCWNS6X zP_B(G9b-`2uy3%9^d0R1aqaeQ0KGjs3G@!HdLX=xi)O(?Cx;D)vGaw#2;+Mzz13Y7 zMk1K5-QUnd>i_ouaEE15t}|9M2l7+v(3~`Pd?Fh1=kFZ2D_u|t!S>84 z8o=C`uG3)KhuL`#Ms_g8uV8U6^Qai$2xEH+;tA%>00bS+*keD%*n>aK*rQKi?BORe z_V|++3Ytr0?CnTns3G^HL1|aFpcdfv{Ei-B@8`749T3$5*P#b#k?~`|k{ z38Wi$q2aN`AQxOa=cc3Sy`6W0K6DHv@Z(0KP>wyT*LV%l8^587kD=;SHk|EbynG-L zz>K;KERY!%56Qhuv#%hAF||k`oZ0pk&4^;0NH3b%+6E#q%*H5)#4}TGA&67Vq*=gD zGY>|<$~oqTV^BEHjL zC?t2vxE`<>AlsS?EL`Rp1#F+}5Oy`#qq6Kxa1<-sG#0$GvTtrfFICnlx8_@FsD2N6 z<7IKUHaR^4jrcaY6hCx=j(yjB(V{A zEn?Gf-@2*}9DMhcX1xwE^D0nM=a;|CQ2KT;@I>0niKqr!6um{Z^ zWSY=)bc7i&5TQgd@xLI7XvSk2zyl_8CM-N;ruK(q9`mIch>w{p4_Gf?EnSE&L5!unYm1hQh({y7r=H%lP3TKNL$ewFHm}D z9wdXLeQAZeTY8tuH+!V|wy+r@JwTD|m44p^#4u^aUJ&<5+p2->m-1AOiI5gmK|NCX z%X)xA((-ul4ohckL@ZI#eaGP_S{kzv%{(ied<+Vy(wBvhJSSa2ukv}RnnsBtX{#7G zdMXW~jANUuc~f+jw@hb%o{ucf4Mbnr%?2R)%O=o@W{2zrEy4q2OK2q;C`+UzMv$x} zcG}t9vO~163z0q7!h5J}jRUYSS%WP23zvPr1jhEuuF-&WKxRA!kw}^O1BeG@?db6y zmN~`(J0kN|K_OZeb`L?s$Xr7p87p(6FDOpd{W-AXGDSIfCuHB#Kprnk=!qas$?j>P zmmvH09YCVY9h;hLip<~#k+ZVq$AG2DvSW$REgW^c>ppMtSFvYEFbk}LZQwNdt-?5-KS2eKcu z01su2UV!*mwyqYid|8hmU{7QR$3m}Awul<`RCW@TR`!`Jn3iWRWxM`F5XG{4^Z;JT z`Z5X)rCsfd7-@y=Zl;5Tmuao>HEyy;?izsRrxob2qSNVnth`7nW{tbmK@=_WL+~s>x z06gVAHvo9aH`9>0O+K>)6ujl9k?ONP@->;@`O4SR`0FqCdIKvvk0lDp;g=snvbpSKWkhRDZT!P_fu=mBDwd~{1#*(Yyv5s~ee*QZ5Nq`U#j z?d(DM*8AWcmN$D1-VymiHT0t8!9gI#$amI-NSwSGt;LSXoBxa;PRP>~kUS~(i2!y= z{$~*+PsZZ^%Qv+jrVEtB0t1(P97Hny>xk=6>(mWpY93C z40&cZNM4es{E7BmkzbyS0I$mLYM^&r{^t?cydl3;1oce$2<%C+x8&{aK_o}MsxFAP z<+YkX{jPi%CBM0Hvj(Q`%V$%q`hk4eN~k}QKk5h5dGeq&Am+>0(NIz#?@Eh;LU}sX zb&BMkKCtp!ekK>Z7xH_wgesN~r=hDvo_!3w*Yb#s2>y+{cPaGV$%Erz`n`PrJA_m& zpOgoY3i+Lxz&^@{Mu7K8K9iPvpXKLh1zROAr}EoZdF%w(bYM?XYP5^JFdkSC+p_{# z2)lR#L_*n?RO$|6d3ry?+1#xV+0X8znePBwo&ZP5?1U2lDQs4E5L4M8Gt|@AC*5ko4ioD4X-;!V-Y_b0=w}-N9|x3S$AB zF$D^N-1SiKg19b}SM2754+v=w_v!$!5H9sGz+R502{(*$a0S@M?XqVJ+=&UmBDia> z5MU%XtQM>s;x^s8 zHyR@oxffXIvS+Xbj5Z{5VQ0WQ%e`I-UMhD#4Oj`cg@~`XR`D?QhWm{w8Kqok5RAR! zV*Wt5@43JBxCq(+u`9T zpI!x<$M}YnRvzci(efvrZ#EU!DgH(x)D!tI`m~dHpDci6evg3Grtn>)5J~0RQWZFj zXCfeZo}Z4R2W&dO$rZ$l{7=6imJI$uZ8*Bj2hd9W3O{}>z%_n&G>F%En;DWfc}IFf zGWnloz-AUdkb{+M{^k`B9feO0AUX*HoB&*e>COm#ldyIJL^cca;^1M6U>XPDA+V1S zgs1SO1YoP+t^jeH5Y+{awhMh}Ip!lAcnIJxH2xD-b_lfsfCUH|n!E#rLAT&6Ph)H&HF-=rVx1~ zocRSd^8{B~W8@1jXqYJwW>NxKC~TyGtVmdR2-q{ho2)z+lw+XqQdmjJWwFr14d9jV z<8=^U3rA_Fd@HP*0EKtL@#gSeCOoE^RJriiF1UTIh&%*^H;QJo@O-PNT1AqIWi-Q< zDN_9qM7hG9N|+xM4m1~kR3uWlxl&O-33{IuP0AqhMbVNTz*oiGEa*9kmq$XuN$mSG zL^g^M^rT(HHYG_%2YOy&>jMzkCY}ue@D?l6 zLG%^Z)9mXfx@Q5~A!ZH*Z>M-F8Q3nd?N;!D#03|C1&hb$!}K1JdjOG8G5iO(-77kn z!3!6+Z3b_jIFCNx1L6bPn}`tKQZe+Pn0gu_hs35-R6HV1j{_DZCeyM!MwHX2cvMWP zk2vGRPE_1FCNAg?-U(5D1;mr$_q0YnCB9q%;%QN!0H5v2R3Qs`!O1kgSk9V$|li_Q&!Rfu=~gri{Pv_OD8 z%8vB5hA0PK0ti)l_(5{7vSkZMhAC$z0fZ|(rUC3zmd=2O{Ys}^00)#))o4S6@+2ke zk;*@3!&t2HNC)uZlwIAyJE2@bd)KFx{jWkKLAh=Vutep6&Hx#jIzwto0NL!dexT&A zlL8@jn~j?b6L(k*eG|EC;U%>39=pT~(LG?BQu6tb?MZ8$$E<$(Y z6tWj_>WnR7T~JzPpR)WN7<aQ#C>-Qdam60`|#k#?VbnTX3i}SM0c*dBTRd8>?|1b z;+_wO`c}^K4Qy`X9@97B%`NH;;&!eXO_M%cJP)ETx4k`xe%x8XS(5?MxpTCYbAhwa zQt%?z=?_R|aQs$;bcy>>4`Y|Pgx26);Z{?{=_@nFq;x zoQB59``nIjNIu}2(2MerYwHW%Bd!^J!g<^yXTaEA;3p_N3@SJ-{`Th&8_jJVhl4~#@lEqvWB}64$##)HH;(q%H zR$g-#=o@>(J*NVCDObk>-Sd{)?18A?aatDY$mZxcMH#0m0kNFRY6(!mJ)>me11E;U z*hg;T5n!LVo-~D4a-FlG_nGTM;Z|`gY0Un@^`V8@S58T3oCDvKmb#AoFJyWbf0|PC zAYSDSh26Y(7&b$A70t4t{5)F0?B(xGhTDDolNZ4D^M~kw_5r>q9sXkY^(ZwX*IE_{ zUMxSCo?OYVSMV_->R1Ugv$1Ad<-sD20bx{6orN zvUu}cn9k<+Z34*Q`{qFMHeZ z9Od(+g8>ToA)TP`gwIcb=|a92&GAM2i2^7*b3Q?QcHSq_oUyqXfzul%Xwh|@s`qH3SvRk(B- z;JomQ1t48mN%i&%LR=#BE(r$etjmIe&KX@1iYFn!>w>>4up7dY@m^qRg9R8&7M5%y6U{z_;`2S8p6UKHS4q48OOcY;4v;NJ@$ z@T&o~LYPCbd=U0Fft8QKd8#ga7RG-EV^u;b?ZJK##vg@?cps9Od-KgDON zmisHZO@Xl;icd6K1S-B=1+Ys|n?Yv}bX*1R84C9{z%D7~xWU6^g_J&-D~j}H;9XS=r0T*oMJ%Op*A+f*f!$EF{T{rV z3jc9f>!i*6h+h%cNMBjz;YFP9D&_a^cf9f_Z6?{ zMA0Kfi#p)tDdOe>d#rG1ix%Z8#!!`~Kw)YI@I4Jq)2N5;!{ORM|gjx zI6e$L@m#U|0s8ZWqIferyj1vNKZq?>3@m^`i6S`|#BxP1%9Se=<8MIygQ9|pJs%ZG zo1pheu_ge-O2xjbz&z1cX32GfQRTvr{Fxr zwH9DrqEmB-Y!&asLVcTN zq}XZ@BoB(;bq4Q{=z0>oC~?tA5TnJVR5^+fdprkrR8&Y{C06X_hj8P>z&xlQ6H8_S zoDhF8;=!F1|EBXw@nUv1uv6kG1N2UdVjPGGqB|A&62*y+K}-^-Q5outm_z%?XT@um z0aC@;9if*dPNP$B=fp@Hs$kEHR+;cG&zp25Rtl%Yh#iHL|;FX9GzEFQ9Hli%ORP?1$@vZ1dd&}>{ z1BW5`UJP9TUYXdY2w1r|_aqc5#BW~$d=wu)0`HT!^#QQYVoU1eDzTkAz!!0GHw5@q z{A&e(gR^yi|mBBO)Zc`4)gu1sf_cz$w zt}I>y%tskP+g-lO!*qJoPkEXSG5RY_2Vi=Kvd0a?xl=ix#*hGI1{H7vm0kXX!Y-wh zHsykpcVENUZe`$kC z-k$;De&s@(%E1b>_&$t9DCeC(WRc2;4H3&><&N!8KcZaP6(CBvXC!#h$}rmUj8UGY zKORdQ3T=Di6n%ujPO$q zC_`y_h>$KR4TZoiE2mN|^NO-Az4KRv0Awp`sUVr797N!@@;1Faca-J%P`Iny+yx@J%A2&3x~EK=1nj=D zkV+~Kl;4>F9x5mQ2JlEZfOgaJl)JB^MUR!UO^795dFNLU3zQ4BaQj4A^%PbLl~cyS zN|EwzGI&pw{RcqdnUdR%sGlnf2LpSd3{%18OXUaJhACFcXeuvJzMTv3N;!jtvDZrN zV_12kjHY@*sq#@iqJFE?P~Q4Z`NbR9du2)o_$yQHr3ym1GK=Pb3S~N#7%P=ii{at3 zQZo@jR4G^Vgvb|V*?A~@Ro;t&BL@|~1hF`()*2w7{cTW8gRvC!M7^8Fc-E~>Jr zz&5EIzJt1}icvt)O%>+|-e#42E&Od!U8M!FyQ&_w!9x|?09L$ILG1&hVHHIDRmoJ@+@T5?3lBS0pJ<0QK-J|iut1eD79zV< zvneABR<+VXZ;z_|NGOD=JTAc4UR6LJ@WNEJj{=0Ngl7QzRBykB`hL|I!Vah$>?LW{ zn864lQkD7;HV>+tr=VenRNLr`*kRROTEHDujSPUzSkY|qsufG&@3?BX z4w0QuJ*GX?ld83w0OD1aPq2APHSZfJoL2pw355jJ!7hk1QB_IxkR+9XMxryS7lq&@ ztLoC~^Q>ygBk)pHL8$q#X)4ztuyS72YBy}AtNx;V;)3c|s-Ry~S*T2!p>m}q_a)UQ zTJc>`&7|_xRn=!od#|bdsJeb#b&kf68>);JFnv?iguazb)m;-LZ>frCBFa*I>jf-Z zWjh0f996G*@NipIMD_H$s)S4!%T?9s5A2>Qbrq~UP<^I{^H4R4mL`~cQ-I~E0!jU` z%8RD*d{q|*Uy&nTGQtTyYQzD50hHh{Z&1I=6>YLBq6!-|*M^>;{aSEteX z!ABiW`wYJ7Wg(FCQ(rGZhxn`aPz7X%n)@4$cB&WCBo&~3M+Krlb-D~-m%4o-K#=-W zci7ymUP`SER<}-r`W|&i28@NMSFHdqRNeDBqTZ{%H4y&7)Faly-#+y(zToXwH<$_2 z2h>w3(}`5a?*Z|ky2=4=52=f2MSEENa1IoXsE^RDbd>tSUJ#?zOOC;2jM_@y?NPOf zh2AlB_+t={tJ_go>x9}xfWLTkz7Mcd>Kyu!&S|yI7sLehbvkX6s6IFcSduz<4X`un zC3=8l_22VgB}J`h3+$|V5zURM>dFid)6~1dfL&B4(7~Dvb!sgTFR9hEPQ9#N7>ii0 zsNLNW{8e>HJ%DTKab)wldKb+=H`I5Mp?6cgfxhrebv+lT-%{7>1Y(xDvl7H?b^luc zIqKYP0C&{Kb71qXdKDEnbJg=}L-M{l@f#2ys9TSL>4)m2v_bnw{Z$5Do_fH2V2{;) zf53Es`XQCopQxYG7Gk0LHF+pfcW)2usk+uCs6SI*4TQ1h>UOkI@Iu|4hQpWY4}SnF zR{PPayhPpk9>6R03fhl+qxRheE2Zi_^!B_}*B%P+UOl}rcxCFXw9{R#KIspU3UyDK zDL<%v=79H6E&CR3KdG;G2B=iWZ-S%G>KqN!tJG8IocYNJlj4<`9X}45#ji)+A9j6Qh|g06VHV*a41WH81W$FHYl0IrK5j zsWQZJT;qKdyc3%BqoHt8r!pwa;l*Qi=P#rY|l3(=|zdgLgs0 zHwQ6O!xK$DirZ|VCW3OXB8@wJl+QG= z%V6`lChH);3(bw&aQjk|)f1A%n$V7re5LU{27j+Lm#@I)8_meI&@0un9u9@KnjybI z^1Wsmb#j^J8GR4snmn2wi0AIB%})c*U)zZG z%XesVC{5d`ZMzJ_0BsLi_XlbZ904&%yIBhlyR|2qq0zzG6NezON4uXg+z@THKP2~R z7lpt|m{xrnlHuAGQh9LpVc;?@@cAeo&-%v)AlsM-+67=Ht^E5 zB~&)QpnXhrqKn#+-jK}Ds;+@|S(`%@kSp3v6xmhnYC8XOP5X`(q1UyF4Zv<{_df$VklQ6HFoshvnYSgd8}++K-x`3zvMwJ{#R-e`SS!*r>(K27uQv;}b>zSlZZ zX|7CbQ$f94yE_J;LK{hM)<^Aq8zTFp-SYvCDz$ZAL-MmWsu74)+J(*0hOgS~NigQ1 zTm2HiQMZszP&w&_*9Fg67Z(I$E;@EOc$;+JdjPoVoRtX4P4|hsZ`L^shNQdh`vU+T zx}ZVu;HhiT9Xv1HU3#Uq>N>3h=B?{!0obl<^bj_Ebc^!QXkXoSN{Rh+r%ym~hwdn? znRn{^s(=OP3RWS`K;0TD>Fv__jX-3(br(lNJy`da#)3V%*R=cy(bb&|E1^2?^^gqL zJ?aC~`*epdKw-bGXMcbLIx7PZq5Co!l94*cPH2_VCAsRo${U|y7h9n zjnYk~!*$WR4^*Fs(S4$k=%}u|7KpLBF_ag?=^|!;cT8uA0(M-tod@rPZZjPwI;o4G z9}L9n4pWKrlx`&zT2Jd1mcVU-Zb$~OMBM~Bl9Z%dL8H_e-JNDoNY-6y4`V61CZ7S$ z>Y|+hQgto*LL^O>m5(-@(~W2Wz4JO5b!)n=ALVrybf5o1EEjbOdUrE)wZDhRCEeyn zz%J`ten1dcbg?5Kc~$q>4SLsfk_Aw>u1kIja6{+W8m4dR9J~QCb$?J6bW69gH`H@< zX|w@-TeppBfOm8wsi1gQcan}Fej9XAr7T-TF6t_s~ffABu&|mqps>ZV4rl&DCw@$?XCszS@*{& zw699{gif7((cMab`d3};GN?P~`*?uos1I2Q;H1yYH4)Yq3l!A0L-H6-2i z?$02yS)WT?w?*Hp0Wf#{O)4dM=zpN}+*9vEznt^Zhf_kZRo|H&<2HS-J7}i2{!mL` z+x5Gs{^FzW-vOAf{>KL3`RV7-4!FNQr4jUY=%3OucceE>0?b6R{ z2ZbR05?a#i)}I)QMhEL#^1$}!NB4tXh(4NTwNSlwDZpO+Qu?JpnEn-2F2nWtTVQja zzR5#?{rc`yg*%`xrPMt_pL!7rk^1qp4RKI^f_Cl>={w`+8|-0yhoNwEM1SoVM56RJ zXmco9|7JZ*$LKH9DUG9g2bwTr^;O{jar%|NBcx;ck_#|)T>pmNtP}c!l#QO$*Di*? zQ+lT&fYbWuN`M4?=~#e7y_SPQl3rB@{?6#Xr!`QrK4veBrReMJfcjZ|M=G(U>eo}b zJxyQP6yDG257S=xd41+gNT%y^=*JKj^!?8OyQu$bB_uQSdA~#ClD-j@T`%h&(D->p zf0IrIT-B>r!pb%MEDGYf-f0!E8~RYHXWi6arWJdpesvIR-qN3!;C? zmK?o62YYYprL*Daj$S$oZtv>v(Lk1~zd$ehJ-zEXVE6S0@?iRberaDgdZ>>+3ha@7 z{1zzW>67W$=41U%I(D0{A4lt)0{v(SB%kOd#lQ;n`=|n0q#xA`*i-%Z`rtj&UwVaD zUh4m%%6hSW*+>LYqMt{F>sNXyt-N3BHCX^}^rdGZQmT)jo_MQ&sD#KneS2EOyw|s! z46ICV>kHH6`oea=D)gslZ})?~A0-4I_19m+-zWWjs&!TBQ#K-&&-x!|i@r*qMJuT< z`qky|@KwKTB0M-4(zimy(NJ(6dQOJtRJ?UI$TbkzXkgdEgNwmLKbGBO=yd?V)$jvV z9o!6COAzj6gV_P5w;1Mz!-~7%Bn^%phIA@KdKv=e!I+nUqm8(&hVQyTa+_gs0eIeq zz_(D?ZWu}D5_}9T8Ss1!^{67@XSisDcYj07dx-2XMALe6r=gX-rfQf;Q(d6pN6KP% z8}`#{6KwEthsYkoRXIS2;rSEjg&Ky}h4;M%OI=`LhUT=}8E#N*fcidzF&!TE8_rz= zIAFL&b9jUyl+uw%!yF3fpy3(~_lFENT3#JCY|(>v#L$Lblqkb=>a1vk<|~LXh8Hss z^-)8+KfsGM)P4hFafbd?5IJUWpdJ3>hQu6z6NV49p>Wa=-VD5WLmYjSrwl2V!8>gj za~*CI40#>kFVXOh3Xw^M6LH|3F7C&HykU0(m`*pW7>)K_FdU?2UNn?ypqF9z{1ytA3=0dPaM@7g0);Dvf>#LXs$p6N zc-IUUXq38c&`=3K%W%O0EZcC5&cEasy#9vdZNruZP`_iyJq|~A4c@^BH`g$jwzM7? zCPV@}G?Y?}?2%yuCF^+xFDghqHq5F85BY|nRJ<)PJev#biDA`7m@YH~)54+1@LUG$ zsi6nG-p>s4DJywyxJJ{&3xg*eC46Zpq~o*2h97r>S7NB|1xK$8p>%}pwIPbC6>khJ zsYYFDh^9pFtzju0_jqUML2KCehW&F8V40zb4WQiM9R({DhTo*%eK4#&j*vbYDh`79 z$*`~?L@EtOsUZB>u$-1&RfbV4B)=F=lKNLeT`C$n7~emJBS$0C6+t)|<*lILYv(i`bwywnibCSxYm`CN_ZHUKwc@b^&IY^)y)Y>V;FzKGhxc$7-k*BJkpRpBf()kOkhWhaWscV886ZY8*Q9D30RDA z6Kx|MHEO9A8*A)A#g${mpR?iNxba6icX`6Ni?(1+8vC>bFW#u6LsSXIwzpwA(RgDn zf=DtBrp?4NMxz3zlZ}(8^Jqg+@A-V=Z$ZzP)Ijkqg|Q{ z#%pw*;ga!edx%^%_M=k@SB(3Y09-YW?hWEKqjn?wT{k|aW!Vj51+Bm`jR)r;vRlSO zb->FqUit~VY~wFi0CJ2orvcnGE~IZI*SM7W?4EJWAsD-F%(X)Of$an%qgJTZ1&3{YsS^&=FDjA}YW_0$+J4|>mx4`?cQX*4cC z8;XtXbkHj?zM+@sm9dnz#a|m&(;@0N#x9;9mKyiaqUoJ6Eo~FF9 z(DO14qov+f(@qv5+e{MLG04%lVtx(!&6XjsgS<7{iZw`O%Iq-=+HrgX;fE$NYgYru6xi_s{!<)Os9fDj5hg!^AX(rdHkUVF~hyZrp6tw~% z-Sl+;L@t;NcYs|q1*;*FVJf6q`;uwGT10)>G>8`bS4>efy<9cDUIcK>v^)|XZklZ4 z0WwW7dmwVlw4n%AvP^Ah6_RbLor+j;OgWUs+%~PC-1Lsg*cqnpnx;$#mTPLW8sMJk zG41EvH`VG6?1AZ5+Sh()y4?_xk4!Va1(s)Wp=$4A(%n~FCBD={rv49Qofe)LdZn+{UF{EcZE zjk~3$PD26Sni{r(`a4tFXJGG5K`eqOGxee`yxeq%(zFUwBRUfB!KA+kE0v}Le?sK5 zDZdVkRhhnh2jUk~UD}fTYVuEmF$Z&VN<$sZ)9azLoXp~8V9sWqw&gaOr{+M!#mwD> zl}+ZJbjrllJoi_4cQYTMn$>3W+8@>HcQf`1bm1>oN=FCWd zUFPm}r%;bJ&!Fru z#_UbAcAR-wI3$mmFP{K7ZZ4-9=LvH>9YZ^5RvrY1H+Kz#hg0UAJOVsz9?~Bo3FcXC zU?tJKmd-#XnLE+`*ctPA9w6ELfD)_}v+G5Gvu0rnyr-JgeE`zT#feZqXWsZ5OrJN4 z^MPG7_n_P+!(2ki^Ck0k`VcOgU(!L-D`ryxz*Y0;TsXRBE~Byax>>aX;D-4k%?LNm ziVf(VOtZTcHgB0{3<5FByqS)VW}DN#f|p}9_W-zU?%5DcxnnMP5B0m|+C~s_%}ovf zdtjbPAw4uFj|6yR{w5Yy^33-s-Fj>epAKXB=H)@a3e4TXXXu5S$}S}&=>x~92yI~m*xOEl~io@^hFRQ=HB#PzcN=$f!=F#3C(zK z&Cw+Q@679H-T2--n=*(pvz~Uu%FQ|V(FGOeR<&X5gIP|yS0By!w1M}@{3qp0mF7fR zd4D$FkwBr!e4Da#2TRr?=s8*`ICm3O_ppkBwZ~7 zX?5*p$&ZHmW=rZmh-|Ucp}iM(i`5yx!_tcWM?;>L?*ri0%Tikby{(ocT3c+hjNS@$ zZ%g?jc-U@POw|}a3#WyGzh!O`upO55?;yF;GQ1bC0L!abC%yQ!hM2=ftIYZ%ur90JvPFl>gGL5$!{vDF1EN=8poVLhlW=^oI z@B%T>@*SNvNVbeqLNdkjM_y|h=%6h}H ziwdSUE#YBM$g-TFWFgzqun>-NES;VJyKPDC1CcwHgTF)Xt|f~$fO0Jv-4N$Ji-Pux z?_0k73iSt;z{L=GXo))jkw=yhg@`lX5>1QO0*j5_mnW86F98ZIf2@LDk);=95Kk?0 zilP3@Vx*H!&n;tGLF9$SZ#uwBOZII9Uu+2-0b?bWh{hnkvN+s?&DWMAv|shcViv$F zwJf>;D{n2|&@A)LlClukd&}5i2)@FSL%RbXEb4Vo_-NTgyELCH%_^Z+X_U}~;Uo8E8gXC9B(~l5wuy&y0w4>F>5j-dBG8$r?t@9FKbE7r=4S9+2tm8Zo;8v^l0YtW0UH60MZSB|y zJ-^)=`!|4()u#s}eXV030{B^dV?gw`VmQOMVx4dc*iP$d%2)!dCfe}}v_5cxm0i}B zIS4n%dbAF(-PWN^&;`NPJ#;D})VknLfW6jdH1dU68`7*6Zf&6kw$B)ZX-Zd7nP zVBJjB^9ZYJW2i@3<7h@WXq`z(;vp;d9+HQxqccD}V*QJ-DC?Mm0MXVGs-?$RecmIa zqtDCn5 z+PGl-=m6}ZHJ_Fk8P?uZD8FRgN52)mY>lGh##gNGd?9(&+UNpIU$age1j*}G?Fo9z zt?d~&x@nE*1zx6gB25gptRpBj%CZ(7f=IS?7`?kW*3%1N<+gPstyk_?`_G2nUF%{> zM{=zZub^{{rtdv@n&tdbebrp@t@2s8Q0ef%tSqm#=)*!bz9c*JZ!;zz{>{sYH z*}MWF;%r+(+vyu^zn_H_7h7B)g4kqJuYe<0+Zp;fm78t18+e;-t7*x$#r9(+jJex( zehYOEo0mIyp0*Je!Sk~1=?-ICZ8^=s+h$v$g(GiUKT6hpZD%Qg^s`l-fr7uyD;bhI zY>j6iz@4_BPjDMxtD>nO(8e}`$S&JZAMk=~6B{6i-L@6ssYTL8T)wr+GN?Ygamrn4Ki`;@!gwB?X`rp)3ktr6gDo52n0cWf&LLjA67CT;ZR+M;qHa?dt}y7j(| zT>!lYHka|>J+uYU)cVNwvE^!uEAK)IZn)=osin+lD0&`DEJ|3e%Og z*^5B@Y>SwVIICn9bs`iTYdxiJ+NqYbEqKng{vVF6Jg(>a zkK1OO4KusH_kG{rzW3}mGi=y~8M85Cj2*`8z{W-gks^^I=}<{`gi?ww-4~S(sdPxC zlu}Xsp0EA&dc5w}=kxu1-tX7({#0@&FgL~tYL4w;%%qb}dl?h{0p`wl>m;n~W9*{g z(0)dQ9he6r?mbvJ!03;HBTq)em%zLjgG-=rkl{n)phFBnCopfu(lO{AW_a%a=EE?= zfp>(VqlWiU#`I7CU&bM7D<5O%smticm^T9o{*3RIBeLU+BuYw8Fp@_g62Q1fqlS}= z_a{Oxh;e})n_xx-3z8v>4X?v=D1${C%4x=w<k+|7A2n1jEr)C7{=hY;KedNJpvHNn5u-ac*eP}01_CpdH@m`Ra7k{ zF%l90E-DGQ+{@tvBd$&RL1)qxP~;w`}c80R~WGk z0O^cl&m*J^Mi6a8R~bJfK;#;u;W(^hGKBQ{W-%U7BA?A*v4G_;zMTxyxeR~G`K~jP zXFxBHv0xn(@)_Z@8x}B}KZngiM)v}MB8GSx^okj|ArL8HJpU@(mNNdP1At|W2^+yH zXV_`nRl(Ry@52qoX*vUPld&ud3YCoY(|}bm#%BSmW*B~gQdD(Iw+m2W%N#g zULE7_Z-CV^o}(iOw;7jdUuj^(zkmSmFuGncD&8124ql$!uB;;Kj_=LE#{C<3iXx z#4I0!TW{va)J;3g{O(_1KFnzPZ1e~-mkE)h%#8C;@MW542|C8CrFGDc8PpHVpZV-E z_&d(rMjsoTU_N~Ue*w%5RNS3puKx@ofy~=96*|S-G#wy_xtw0@V5Vn2KnQaeJ&K{s zcslNQnmOYe5W|?RlRyk-qC1VZipixT_Gg$5Cm4%lrcf23{P~O2hnkW*arK5}4&Q8%$)bNd@s7Gm;wY=b0y#!dMcM^&N;8n9Z|5 zyvW=x#YJCYPTdW+$;@q+fu%707vnN7GZT|wES2fw1HCln1v;vf!8{fK^{dPk??L1m z^A&0xXELAu1}uwtJ{Jnv%=i8WEQdKtyjIt7p#Kk9&5Td7bKq2Ih(+NZw(tc@G{M znZi$?(8LV*2cVhhdjJY|nV-)BuZ8*cZ?MwJtc(L_W5(!UrJXrUFY`U7=5t^j%up^A z?la{x0XmsZG@|HYu73fMbu(A`!^#6@4kaf&%-NI{_A=+vQG$m|7iuN-F*kO?bU!m8 z6_Gt+zDkEG2ACg=gEz?ZrE2~$a~ZYmhM4E*hZ|<*-+{;o^GB*Xo-n_z0rr$RdJiI_ z%6LBWO9M#tq`S#QzD25zhZTHW@rDpn)vy{z}Q z19N9Z(@V0CwJ8`P`&q3gfqAgP>CPWumE1x|o~)h~P&mYzN!g({EBGNi9A=Hs5ZQs5qwi6wmu z$z;~^W`Gpd%9{|m%nG3LF_ks39+9Q7A{n?nS6HlJVCk&s{gBLHG3k4RtE^AI1-Qo2 zO@P}>*0a>p$zlb>LNc2*nNFGHurgwR<+2V@{eGRbd=Av}SWda%<+E695DQp!bRxNs zHHX&nBG!kOVWpV0f=2Bntlp=PEM=A41F?)XLWy8G%jke)1?#O5T*D344(h?*WVuqm zppx}s0Ektr1vD+IW@Wj9cZ;QMfQK4ZtPS-)L^%{tbfToCJ7AJJoTn-$v)tbx@? z3*a4A!g`1_vbtn533M>6A{sUNf#NtNaMh>u^Qdew{^|uaI9<#m{Lvn~Ule$#Htl&TpM_6O2PTUSTSw{0DYi!qj0LfOe+ptSyOVyn5cUB96hhhSegJlwEukJ~82eKy zJHy!%euqK?TcyRdpJBh224W=J`FALsWzXLUEQ4S!>|V-@FR(RH(7VWfof zoXlQ*2I?v7AsPx^W>@`@74|zPVLF}tTt6f;*t@CwbCn%a3UH0> zPHAB#JKG6Z7JFwV6tdYKv|;A3!`HxVF8ezNz;*TvC#dJK(-%S{pZ!S=L<-oK4nw_= zeTc@KMeGOE^etw$*&tcM{(*LjQZ{Q3;w)p=tpirhUU(QH73|E*5V^rlehXHr*jxXB zNHu%-60F=}C(*E`h8^h*ky`eZVi4=t9aJ&Yvwv6*$=mF=_CTb8eWnt|?yx7*Jg$*F zOs)SWcKj+hYGzwaki5&jxegv$*uq#Sw6d2K0JO0+ufcRX`!_mKevj=I1!4!glbVh9 z*`CyF>}31V@scjKHzl*(Y;Q{Pd)TiE!Ruw8rIye`_A$!K``E?j!Ru$Qq?W<}`wKeq zH^}y)xA-wT?UbFK3Vj=V|~iE1V!%#yR~muyW4*R)|z^{yYrR zH#ij}d6RRAPTy2=I$a@I%?YP`{uZZbE8Ny_%BdYz%SoYlIZ?=ELsDXiHf7>IT%`)w5pK?Y@Q!jn4+GJcyZ0~@{J2YL+~v>x zsud!~xe{N*d4l^Fz03jJs6?1P$xZkhAdp*5oy${P$#W11;?Aa(A(+eh6*fb-gHLhM zq1@m900`&)DuZMM_XAgmoZ;?mhe9NG|0)pAa%X-3V^Q4q>5GmS?gxWVh~;iJ!+RW8 zK|RiRZr67pCUAYJx0c9#O!eP+?qvr+5_j)I5HE0(sP4GPW$nV9xWs+u0fI>8ZlUk= zFLPH60!!r)4)HSSJ&oie$5s36YbZlP&sHurN4 z6mqyGe<8t$IYOhKcCxJ4fO)<5Oo#`xzDWxuZTN|j!hMFw^Q$_l*^*Mzl=MT z`aR`bPpW+@xUzB(Z*UuE!he(7O$R)xxZFWpbT!w~1)I0HKl%cz;eJVDt6FaIbMR2d zePcgB1J}3{-tTblQ){k~`~DxW(!^c*96&SIgKp$q?w{0UY~?mlTHnTP_!TzWxrgQh z+~aPZ0%8aEZ8a3`b1gLO?BbR?19WqHJmK#FcV!Q(^l;yxeY2Ols}|utLc7un;`jwd-Z?Nd&&)?WMP#1RSF!9 zaet@EW}NGJ1tQKo%{nN!@TAlya^?NK1ehCdLm`aq;q9T;>Rw*#95~v?d**W(+s`XG z0G^-yQtJl<-PJHt~Q+)Mvq1Y z@8wG9UFG@p1IyxVp|v2J7a9v<4ln&Yg2?5WUIOnrPq6{U@_4*47|ZABsVP&yn;#2M z#9L0In_}Ku&G1mdyRr&aN_iTpyvul!VHhjteHjAv3ZCK^L~ih2rXQ!0H;>-GDqhyJ z2&tNvMy0|n-tX0LTf_U8@~m3k-(SIW9d8yD9QC|M97s0s?$M~>4liIjc#XWz-UQaf zdt(|rH1mS)!^&M=Kc%)Uyt#iup_O+t5xjO@hYq}Zye+g2cJSV%xA8u&(+Yo`ys2~q zsEcP$gFNa7!uSpGKk9eh&>ksg{0}G%Q$Zxb;x(~|DtxL3x7SGTXW@i z{+Ge?8T5wl;eShO)?U6-BzW%ptJG=R$KOaj!2SF;s3(4ae={09PySr`0lfJB=RiEj zpKOKRA^uL9IC%44o($e$z8@7-KKx$V29NSB!{GVy=L8_!WBi|KU-9FANWBYxK6fr` z9_P#FLF5GgC(3OC_&?Du8pvl;_wE#5LPc*7e{wAJg8AIHaF;^(0}a4J`60WYewzO} zwFbiY9#_CS!>^>7O(fr|0>rcYO8SkW_^X1T5Y1;&WfQ~q$cJ7m|1X-k#qpQ?cgU9i z7xmH;`S&*A8qV>*K7v@z^Rs-Rki=g`OY;T(%cUdK**t&(Y!d%Y4=m z*i7Z`pb9LF{~fu#!oNpHa?<%qCWsmQ#ot2VD*ps6d71p%ba%7(v*?k^=9{T7%HePP z7E$N&!>Ihf&i{E5MDqCfoA`Ji_yv@z6!MLf2o~|T(Kx7>zntbrCH$JN0807q31Pa7 zU)TsM<@`RXmMZwG-v)M*?@kq8CI8S>fGU0w^`5HvpTtAq7JvJjAlC2$?!ZbdKS=_G zI({!DSPlGFXrsNucdr4lk)M4DHkS42sf6@pK-TX*3h!6NPH$$?Qzvfebhx}#7!0Y2z zPk>}U|Bn~o;St|016Bt3+o{Vj$lvn=Bp>r_lpPN9OMD?R!v7!D+E4hm=w3hNi)b|+ zJA#xFh@27}q;XJ?Ku3!}u%P8KL_!3%>A*q-Kg0t>2~K|?4 zxO+n+R`8VOe{q6w>JY>WmQs42AaHsgSfZdp4scFzlfErW5=2m$dqJ=<0}2-fb3TXU zCBcI<*i07m9>C2?5p1{y$yC9=+dxbc2!Da2D}wKKK{8zs@&!PKAVC84Yl71iFqSFE zY6O-g7*2;|wt)EzK#pK5oo>$+%%z_Ab-`E9LnL4D6`h+Y5M2HnB87rV3wT9>d!qow z0u8-YC4xUFXD<~zb%A=B;KPZ~D;G?pm9Ih|q{-wB!B6yM#!bP)o4Bwl!5`Gws}?-` z36i%2fhCZv5v-z$p;q8e?UXu!Kmp!u0hfBX4T9IgfZY+iOr7UOK};z?lYo^7n|B4V zQ*aAf1buIV*edu}1FTKZ_X&9If?p|nx+j=U1#yR9vKNS*f*Dl!bqPK>4oBUB*+*dd zp}^k*>V1NtcL4eY!P!uFBnYN5X+Ur=5PE|Ge|mF<1=TCni2(Ntmj=LthfsJ6L@(jT4p=!T zJb4+|Az=X%n2%7LjyR79$6tl|QQ-pWpZN(j^fUSk69VDkxbV;^SUDjaquybF(2r`- zlfpNCN7O;W0t1M_!eW}Xgb4q72YR8xK3AANEeuZsFHCr|9lSHbNgo143Js9}XN6@{ z?nDU>%z^i4;hJJ#F+$6?z~Y4q;-Q`(WS#{vQ8?5BkR&Xl{>ug7-_!uRD11Vly{p3M zn;>~jI8GaFrqERZ(^*1)+8?roQ>cNNBOKibUas(n7T9&+Tw2-lgrCz4I$wBwGC+Ya zH4qAg!s*)qiiD4-s3;bCM#6N7urnKO%Y;&T`^$xF`Y578_?QWsH-rOs5yVZQOAfFq z;j&*KQZ3x`ENtEqx>Jc*D-58feVwrWGuW&bE~2UWZDFkpk_|%VGVq#&Ur@`WSvbK1 zyt~2#s&89_ja2Tm3K!El(I$+gBh2l>5$Y`56YivEutO*-fJmpXXEumk!hLH1x`o+$ zL3|*5qXnQxm`IsiukiI}!0Qt}S`5%Hd`*hT9tlIKwipmbz66m$VSWWJ<*_jJO@JZc zYp+6NSlF}}ybCLaI|; zL@x#dxQbqs))!SX{-R8p zxt$Pcy}%0)edUfTIw?w80B}k)k^*BvqIaTz1&ii!H2MtB69Ttc3H%yFF{g8 zKW~M4nkec3BD*45xf}}Va0_0BDC{R(=2g)E6;0PfbF2WFqF=T^Bun%z4HL6PuM`8z z5qZ)EmMdaCh2C}1f{zhPp6CEIbMi&H&jAWV`|d!!Q1sr507atj%Hg(H^wK}@P$F6p z1Y)UZ4vo{xM2&s0SuT2!4p>!)+Gv%!A)5I+Oy3mM(Ti6pIyM!cN)*urg=&%aMu1zQ zajK7MM0a`tYDJUj4X+cuI0~#@6#Np@Z;SqZ6T}8l#~xsJL|157(t`+oC@G2 zwkAOGpg1)H*dcKNo#pTr@1`H_usCrBh(2P|4={a1eB6%9JSuLYQ&7I*kG-LHOnmw^ zDENtY(oEQ2%%g)7$HgDYpm0L`l{3@>!~tq3oD?snA16>e{~8odi8tv%3=+SQ1(9I! zRC@bQi=S~oFHCHp>^@xl&k$@zh$p^_sLzNe7J+wGyu${CC~@jtIEogxP+uxW9G!*h zixqEq0@HEgm=+Kd#HsX2Mxr>B8lUIH%eO%Nymxdc?1;2Cq-Nf=Zfx@%j%yCo`m zeVrxIHiYCNxhezERkD2!Y`RGn>7c$>@+rL!?vhYyKJ1gk<->}HL`ZAh0ZHBqz&s_5 z&bUinl3!;+{h(w&{Z!tPC*I&4mb_1koR4G;4M>hiCcEGoj!JgYo%fYYItk2Aa()L) z`%5@~0Xr@koC$v?Bq7xM4Ul~L2zn7F7bQPXfXR{~J&dJDHqqa7x-7X$C%IB3 z%W2+`CJCZi=8EL}ZRn*-3VsB*CRt6*#!QKd=6G3>HPl1Omb^>#W{zYlWrw*E6&u9s zlHL9g$&<{Wc2T~hkdC1hNP2=GStz;h3SyB&{Sj;yOU_W&s6;aN84yb)K}!)?nIxFn zFy)fH7Kl_xgw2TahNR#syx)|3Tm@dG#Ph%AisWJ;6sjfhpMrNwQcYV=jpQ5ypjPrW zHHhjYpHTTxFG-~y#BGURIE*z&swv&NBl&|${6@*dIuM&Ao3BBkS>ncnhr1H)Z_sOz zRDKA_R!LABY_>@rla+RfgHnfk5(Bm3J0yF5!S&sjh^T((mef=A`9R`&9>#hkyd0SB zld!xY*)M5ef%r(0PS|5fE`0_#Bx#-oFf7?jW5A~p4egDil0aHY#w0%UGCNBnPXV|{ zedrX8tJFFV>U*WH(@?@)nnkI@KB@R?1aUyR{T>4Jly0Ui#7nwk0<3sTXHi9TSbFjt z^n9dg^!=ExG-na8W760^!1I&#QE$y(T16?D7e*>C&!x zn9h(UrvtkxJva!P*QBr0H%*z+^l#xPTY7?$uN(V*2>E}tq=uOR+ zZg>nU1yb+-3Qg%udZ$aIJE&z+DqTmZN}04Y3dU-r&2NEMD}Ap9picVhEa=rs)$c*_ zwzR+xA`Q~{|FyBDKV5)cqtx#Mh%`y1;lNs?Jp%x(Qsr*M(k6BO?;M%bL<9SK(xxwA zr9;|Vi*WBt9}K}mr}Sz&Y<5X^l3uqo>QnF@NROm}*CSm*`&h3unU3x~l-@1E-R+YO zQSkjzuN~k$lDbkCXF$5)LtsPFnLA)*SUQtR{1Isv^}R=>+dhJaG3h00(Tqzu7l66Q zzKev2t4v1&Z8zC_3-LR+%U+`9=02I3N}>I-GbI3?vPo)4ddU{HLh_*OOaj1RSv+-4 zd}M+2kf(r|jmB#^#kWHb==8Wvu zY=B4^`g?f5WUch`$H;!BqA6D9Ln%O<%*O#o@v<4~fhEYkrnlp~ER;MX$u7MGa6!hH z3}Uj(i@IqkvY#lWx-9eGgQ!zwe>4K5$)-@bb4BJx4{fgO{1JfbvT4+b%9A~&c67eX zVdWl+IUFS|}j;vJdtzgdWE0}XkaWab9| z&9cZ?fV(nA6F`gX!csg-t+JQWfVIi+#UNHU*&#~u@5$zT3|^;fCH0WHWWT(PIJ;$2 zx&a=@=1FivdSpg=<9cOoRBSzzZ5ASke%YI+fjyG7P`W%IJ4J(zLD@ZepdZVQ%!bH_ z?DRGepU67sxZJ2rPrJ;RjDH;Wb6mFVK6ozjpI?G^SNV3TKHcP9RC;;IFVgdJP(C7t z+e7k{&%pDR_iupuVfhkzynW^c^bV=Ve-$Yj0l&f zQ(h1u-*^_hGxBaae-*l>BG%5G{{b4`Ph`>pT!+mB=@?AYrh~D-GazPc_e-EbxGb317peZ9TAXB zk@rwj=CYhy4#`yc|LAYZq{)-2AaX^%dl&Ss%Gc9{U6apifkLMIgLi;s$q$|f$d(J} zeaMmbJ_m(d`EMqGJo(3d;N{EzqQO{!{5fy9EtLOU2FW7%#(elImQUayz!G`QB7ida zQR?ZG%Qq%Mq(UA;_vMEC!JpvWls|m{g-W@I-svj&6gneVE&r2p;al?8!XQ~Aze1~9 zt-N9{)a&IbZ-RGQ&LKw)@~zZPxg-Bo1gueBlZnf0l9$jhxLN)_^&nd0Z>)yRR{1aV zJG9C7(06C;ayKnR?#Yv{0CdQs=uX_17g2k$OD?BOwOhXR9uywP^9tahM?O0cvGmGq z;Q$Zi63UwUgDZLB#WTute8ekJXb~NS`gh78)(qDN8wD5{$2%}3J!P0D^%y~ zQ+)n1c>5Jg8WGX~#cQ!p@Kns9CC^K-_Yk}vRJ=mXl|zcEF4*)|xDG?_u;OP*Lwyui zdZB(qkwfX-QAHh{F7j1W(^luF=sE-uf5ov{_&cu1Uk)oL6rptDB|s7629cABFxn9U z6|3lAL6G9D)36e(ShX8gLKH9dKp|A&UjW`|#S|KnM=0K50Gv@&EX1WmD$cEd1gNInfTaB<8r*J$Ag#<+>&1Di5UNZ2`DNZ{hmh*~_GGH@F z(Q1d}Ma63R>j{?>6N({{tT=W9#x5(CF@dEjW>L2{P4Nbejjt%KQDY)q@v$?o422J^ zSyvUyJ_E>9^q0a|mg3K6VLDs!@-v7mN0CPbN3LRY85FK7rt9D+PqBtF)dEEXA0mZ{ z+#G-+#g;#zUaa_33Q(emd>zD6g}x1v6^a%HtlUr}Q%m8dB7PP`Div=n0H{*@yB;Fd zim&OL-dl=(3qXxx-scFZR?)l^R_YY5&VcuNMHuz7ZYz@JK%qggavJW-9mU+=z-v^D zQ?Dgo$FeElQ5-&Z`k0e_te51R0I zDTdF$U$;W>E5HNAyg=ynD4uZ#)~iUQBJH6fvJdKgioRFjp0n`;;42L2th@=P~p=l$WStIG|h@ z4dA8ppw`Yo<>hrSc1YP#2)EwK`F|qZ!^*QC0Qe{;(x!hzx%OwMA60rZK+;$F79E~D zrd&w-t)DWQny@F7w{n05D4X`f-$~`jYlu2fDLe|jQ%dzpfFPyJ9qPf#_KA=TQ4Z7c z8>*b%2Dhh`y3KGDrc7&sWQ6i5ePnq?c`+GSq!NEp1+RrN<^mL=l+REl6|HRf93V!S z@-2+TDos1!Hcq*To~(FfP8xU#%A4x|&MAlJ%k}fhn=b(*DZ8%1-v#9hG|RfE^eBeu zOUmj014vd5Q41qQsab*RyR6(pZNgOL7iYjrQ#Nb?FpU7f-h2j_B%Wj zD_`CVUWxL+K}eP=*Di;LGUe$HV7gpc76ye1Wf@gHHJjN_%mQ(%BuLR@pcV?{&&8&%;B#QcBOuZRIsO!`h(ip`O(pAZ zrHrG^ty{^b&!~HpKfa6rdzI_UzY54#89949cNLm8Z`_eN0)g1Vm@m;=iEaqFOx{chFUpM2V-T zs)6zXFV&Cjzz(WD_!-6ysf^D-(px1x0pbx=b_A>(RXJ0Q?yH*V1BGL%w_IVp-VxVf}L13p;vGkY*t14(04N<-RH$bTB zbvplfT2=WKurSr|2qYs^wk|k2qnaSbg+;2qqJ-eAs`E>zN2&H2L5x;0W&?{;{j30p zSIxN%y#!Ti9VE}Iifte!sp=^IyrA0W0_>9NF;$q!Dm%?yQdH-*LgBK?%NM*12J6{Hx4XAmC=L9uBs;3A#zPMV>d1(Q}zBe#F?e4pq^^BNj!H#muyR%X z9|Bxg<%J@MJQZIBk$lzpFJQAkrJ_bpq3XjaAQq{LX^$&b)h>WSi7KZX{z_GoTMr3$C2u0|C{NmQ+BJ2ipoRMIvO8&sSXaCApi764wO zYQlFQ-c`9%&ex*i(eSxd#iOU-p6d81#L}UP?gQ_>iZu}m-KuA4C3>J@e+?@=suyTu z=u_RMeXL*g9?fhXsdlCVd#oCaKuANX(7Et1tV(+myr-(7T$mnJeg7VKV=B=VNRF$X zb%T}N>c3tA(OJFnEqHKI|8^M)uIi2Sytt`5zJkae^-M8D_NvW&0PgDc^$23WI+Xfu z9_mTuaCAUjLuG`g`dLb_ywvHmKpa%}F9tZI-a8wTht=CC2p{#VnZS;y!|8m%QT0L;{so>BksD@;eKw^Q@ztU4zUAW9ugNpQ3};1Af0 zQ3tpqz*zMmns3Ib-RX6TS2NcFOHgl~4v?t+=qrG8>UV#E+wP3^Fa8=z!#mF_aH=XFoR1f<@AxmBJ3W(Y2L`v3k)L9yM&sFk)GYpaCssDNt zAYVO7{j&mfX#qqE)tSRkC{l~O0E*T3sf$yh_NBMDRDHh8-_sY3x74;}h^$7vk8*}uHJcu(I`vi|c=hTl zYk=KWzd%`KgIcJE&F^v;^U>@P!^08H!4>d#RMWzSX+O>LUxVkb8Fd0Uu2EAP`-Dc4 z4v_#&_ps8h^I9}T$m2i z{7bW!aE*lq4-uN1uR#5b#`7R}k(vxj0nTb9ml1B1riPN|XidsTz+yBn1_O)L%=UtM zoTit~{l;rvsRovy*7(@qspk|vqD^%pcZ<^x>R9OHp^Nh6{k zE?M(3^*B>BO8UVsYwpr)B2{yI8L%|XU!TMD70rJ7ye?g{@C~SEXgny0tD5|FNM6$z z>BL~BhJ6emOSAbr6tXqjXra#0yhx*>Tut(F5U*=|4DgqydGjbF^EKznAyS~Z(FIUH)D+U{_E^(My{92fCEfBTnlP%TpK3m+0C80Fc{H#w&2RAlZwYw#*40_G(=h1GsA!Q>L>|yMsoc`?c@T zUkLKh{zmot0qxLcV4m8Wbe_mdJB@k*2eohi1HD7q;7VMBx7MhI-eK)e7vaH2`y~}4 zN3_NYh#b|{QD@y(+tUbIby-TZbmiFhp zu#&BPu>-^$ZQIw-%hkR@qnqp6vDpB5+NJLRFY^t?WH-LCcyO|mVHQEPs zBWty<(2rWD)$-x*w$|K;$QrcW3xM6x?x63o8nrvAZ`!1FnGZ+JT4!3UTD2>vyWFNd zM~iX0mU#^xIuKn3wXoY35jqtqV;8h_(VJBb6`)kQ)!(T z)h=3zaL2XVAHd&k-Cxo0;H+!Ugruu(s}DrnboG=I?a`$y18=Wxbs8kyb+5k%;(lG} z42XE>f&u^z=!VB|VV=4KT4ua-vnW$Ns2iOQg~K`(73V&>s?(4>qWg0dg7DQnj)RqB zy7gNj;-_0g>5sqe+Yk_s>yl64)&=MoG;BMm%cS06pl;tjm_DUDv;hi1IwQSD@!~g>=~YyzXBXuHk}iS0Y3%>Xy-NaY^U1 z1#XjdwUjQW=oY#_^0Ka(CU94DYx5wPt~-1SScYy3@B9JDOx;whnl~2f7W06W=o~cJ zD%DM<+_YTx-fmzOx+s#oq0`aP=bO6fE?jh_PW~r|)w&Pp)B0PwLo^ev(Y;O$w>sTV zX&~0?8mQ%UTeq1BUV~2i1mKQtU>9O((j7ek$!4AKE7-iNTTL5Li!O5l^jdZ9pFpxr zcY@yj4qg3jh}_p5e--{ZbrqE$cI&#SR(qgpOhha_x_e>3dUa{k7k;QaM~$<7T?qB= zAL(wiLvKL$15Ho|b!STe9_ya-L}Wuc)hED)b&u(NAJM%^CpVwy>L^7UsNh5h;uyg>BO z_fpk*K>rS{OI~_6TF(yZduUpANS}5SL~s3cE3m`*1r|v9=$WtM2k_Nzqo&0%{R-*@ z`RRXL1-;|?t<=Ilp`WrB0S4$N(He469})#(puX-sNCxRwT}RZx`jt)yB1E4_MPaCZ zXFrIi_0ub1B~1S!^|r(HoqZ6A&@Z9a;*8$j2jW?M4DAR}dJ_$NqxI{bLu4^}-Z}V- z)k|r$iP!h80G6O%nhTJq-$=8_^ZGPTSV_{ie+PdT^eME4T-4VYLA<1YpZe@6`d2nU z^0Hoe0$8fv`UyaqK9p|36}|6H@Y3~R^x9w3mnor_sh>+zlPvw=g%HWn^P2#2^%>g` z#C3h04voiVF3=(mb_D|Lsa#Sh4=~|GuEqe?ZfSQvJI}p z{aqFUtk73c;devdMKyD!Ua}p;Dt+Br5UcgC{|4-q{xB_MHF_bXDs}pl)rhQKKX);R zxAkscLh_Ejfto;#`WN1XLX-Y{4~#YI4~43_?G&3=6*ojG}=AKwYn z1Nx~nwS27CQeiZt_uB~dVZ9Fx+eY*+QWximKFS5er~0!uATp}IcNN%}zGE#sjO#-e zf#__Q#D{4YL%s~a)v)jkMBEHZX#Lz{Xr787+zls|Kw+PujncyXhVhT!;ef$+1=Kwa zXI4YO%WxwYAssY)-w$xe@PwA2!-g9USn)BOq^`pe!*@y;J8Gz6LMZirkol)MU? zmkg_(!8Ifs#C|ZAVkme6#LI@I&M=m0_&W)bX@wDcf*%HxzOV88nT^HF#D4yKZ>C52o`BA(SuW8y2@fufXuj&)^jre2>6b zkztg+H7PduT!To7!Lbpb)G%oPHp>hQYLS*3w#-0C6^7?&gnh%HQ-XNY;I{^#(y)zs zqg96QKZ5CMgZ^b0yJgtKfqIQ$6K!X;hUg1$RA@hRrTRGfhyt4TgmvJ}_*e#iPgI%m%O5@Tv_84-L<`!owp&#deq;FxVG@H)!~d zO76#oQ@#L0hJUE9F>LsdT0$d+GZsibF$~y2d}=WKH_|fPqGJYQhFB^Q#|`tS)4kjH zH|_7v#-}uDa53H%!jY>{LOF_?@i@8NV|;!A6!sc_rt^{RMpt^P_8I@~0k+@xh_ZVR zqwIYIalkl}5@avqgB<_|jqOxjA2NP16S4RheSHzx5#wsg*^e6c(Prasy{ zfD=Y#D0qQJ_ZOgW$~d3KYeB~7PDq9tt0|8>ZQL>sAk295Gw{wB)4kv}(zqi9{>~cR z7CT@0^uU@hW(U#zlJ(^*N(Y4;0QDuhP1E(KsUr3YUy?sIQ-F{C*gY zQjHe_A(>{}$p`U@(LjUZOym0R0kVu;UqK|>*g!eob>nArTs6-aMxRmV8(Gu_Ei!&y z4PLRa=nE*67`^E@OSy5*Pq@AcV=ASnH;g~hfUC+F_9aBBjS~lf-7@OvgX=ouAZ=&$ zM)@>gw~e1q!=*GD>#5JsWb~nVf3tDg12}3mdai)YHseq&uCLwLvlyVu$fe_|Jw`tr zus-AK)SDSF{&WzIhKy=z!#pv%-T`sUIR6#cbaslS723^7^#BU)PD9ZkdN?gz1`l3N zuTnnf?Nl`rdPkhfzJlH{r!VRJ*>R`N521I;shUCxa?-UyFW6}f?P{l;-hCI6VNUPF zgBb2KNS|j#It5S-d)CSEHi%J9C+NkCb^496yf~+;lvTz%jRe8iIj33lfSq?bvjD^- zC%0&bTynbpEc_)qdA1_56sLM`ct~?vNR{^$r~W^{OLtn)3e(q|#y^5crjtK48?&5R zet}4y)8Zgl$#+^HfXxD@r{6=e$SE`tdc{sLv5+ir+LsKsrB2m&DklTIsnt%)G{9<|RFv@4IqjxdPrcI{2O!ztq_xB59Vhi? z0F6!|^pZ3=70`K&W+xGKK<+vpxuc{_w1fibuuJ7oY?dtbU9rT z!b-Q3kxp7XaPoc;QTIA=Nd2Kx*<4_KPRZ0>?05S27Z4vgMNv&T;Ix1;z(J??#(_O{ zTD1w-u+tnGMUObWM(x@sPG2fvdd%rd>MoBv-KW}jw<+aU@LWu@zDG!|rulh@#m#i` zJE-q5eX$7&drhSl5Zz5Inwso0HFyB*Hwk_LIAF@A4xOhd{v#-Onf`bTE8eC!J-}hp zr2mR~lah9Xqo(C2;mFstn`-T2rpa`+$8puQk2ZNn0>qdm6(ZbN(?vIcc$23Bu_Tz%C&NmjDY+NKBomhb$qS}usI_y^ z#HATgvWfREh$*IFdUGzDmeEit)%4dfh@_cLQvc82h^tRb8kXjozM(APy6N9{faRI)q{3!_X(0{l3r+1$5JZuw?KJd?O`;-*l$d5v zJEhbl`3)jvrio;w+>}Ji=nd0lnz7$B8Lt6UnkwButToBz1FJW=mm|R2rZ48=hBTN$ z@4@CBlRX|-qv<(X4x3CX{Q&NonrW`xX8M5!9rsLfx`Q321<%6ReG`}ZpPi=6FF@=v zy}uQ)bem2+MVvjRwYT7?&y*^Ra0*J$=4SS!8?wi2rAo@({DAsB9%jcQ zV4mihYf$hqM|eWyp!pptvJaVAN)Wxxztd3uuzB@s07uN<(av?uJdf1<%@uT1>A3kd z>iM5AuiFEK0CSW9k|)j4RDA}Ty{d3ug3P>05D7IuYy=21pXP%XZeB|-LWDW%D_A*W z{+tFmk!DwV2G5$sGGVw8 zG)MdaUZr_Dt&vsc6~6zH-8|7oUNcV&;zRQ#2|&L&XCkg)(A+M9-jKP6PB#pj!>KhlV$S~)B2UaiRnU8Cws0Ua zYVL0WHg1k|fryL6`VD}aWfe7+_E`S60U~=X%l`s!x3H-&+GqKKYS{f2UMlnsSk~S_ zoChu3H^K9^{7VnmVaq`y0`#%0qbB+h%M4mSk6Na#fP$~(^ED9hv;0Ie#SqK17F=zp zLQvRI3LF+}1l4bHF%$ z)Gu0g$0FQImb&Kwk}bV-wj#xnMd#fvTjtyYNVOdP02h{K*}4B^EnwfC|fII#qqc^4WEGxM@kB z2E9s48Xf+qvZNNmG)68@K)hw?qZhBnvRMF|wU&%QDAZXVpFk`PmJT|laL4kr8Cavm zI{}hSmhT6EHCq_oP`_*Wj4J3B%S}okTP<(XBh_XZ`2behEhni$xo7$GU0@xSPBT2* zw{SlKvC|S-1BEWj+-@jzTTEBs=z%3_3xe;l9Df5My_U7q|9oh9+Xd=<7CvQU{T5jz zut%1rLohaA*-a()pyfPuH6L37S3+UPGJG61hb@~2;94 z2XV|0SddVUx&krv(=CC2^Z_)U=UrcZ%JU&&AOG2lkKs(YzDU1S{)5Z zcWcNPB==c&1%SBUdj2qo9##)AJRGp{>1d*-_2X?2@v?qPxzr)+A!_D$TYEo-_rum> zIw<&9UknB~Vr}~Zl1HsC2Z85nElh^wG3&n`xM)A?8(Mhxw<_q}JZ_E81a`ujPUZ1Q z>mmAE_<`0AE{LbBOX!4Kkkv~0M6k7=s?QK>d?7%nb=(9;r>$J_7iN8LKh(pmmwe$i z!Wv8W<%~7J1idJ$fNIKU>zT8VjIoZz0K{5UIVSm#tB>_@`QJ^h~5#=TY%`#rgp~ zMCsP2G|0)YZlM(5s&xm=lCN3ISs-RwZBHSRWmVB6E!TRKPPJUOF4+j1dDivkA(?Mo z{XX0lSOu-{S7`ODg=CTSh20P-wpPCg^%CoH$~a4{{WP8_vu>i%aJjW;AM`4$hn!*M zhSitanK!Mx+0d)Bre{H+%34crc(qkRe}mzcHJr-18ml`!D7DrLDqwZik`aJ<>sl&v zZ(FC*W7=SqRsg$WT|(t!qxEG#D!t zw%z*7A@J^5)pQEK!+P-x_`7etK}k)g_4f{lbXf;R;i2357bSuZtj9OQN{@B&Y)JN5 zm$n1zw;p>5*dyzHdddf^$!kFzw9ceQ>aq0;>NX8oGYesJ*t%{6k|Wkudc&Vuci%=V zqt-qvB*&~T(^5HZoqry&?6%FN&X==oS1W+4t^Y^x+-x-;1KVTUOBv^0TT~fp*tUEF)I)63wn8%0HWmr&v@OLG3SqX-3@{dM^H>A7XKkko zAQEMpI|CxowvShV7-KUDArfn2eF$T5w&-WTi?>~(!wLzu@i+vLXgf*s>2o&pi|~@z zW`6}@lI>3}^e));Q}J`r#-?ZYk}Z#_kju6g--Af1?dVijG6F$o9f~_$$Uw1+2vO;!Id6wFPE?SY|u?HWY5y>YHKZrj3(_04r_lzXPwz z*0&v2s%`S!2-~))%*rrmpR%_G8!AhNNbqLh!ZJX(S-nNBo1J+>E$AH&ldqUHs zX50U$sdm>^@)|^1Y`b?tq}4XK62{tWPdlZ7@*U( zbRLLZw&Hq#Zd;u@zysUP^Dy0G^QD{IXWL#6&~GzRD*ec|nfBrVn`$YrLHryr{n!@x zFWe5<-ljTy*!J;W@J4KB=|tA3Erou@F`JOe+;Lkr6*#-?%c$UYwtLWK>SFJqW{#`9 zg^q-~+1;od*kj-RH$?W@TZ{ni_MfXk+-Em0hKB?8sE;A(X`e=OH81<^UAUBk_WVW= z582n!=Iw1ST@Ocx?Nu$%^Rb6l06SuThE6vewPzoITVFeV2D}LNEn%>7+j{OcbOmpqUMkrjj zKQjbko?Rn>Lcaas5)cdQztCv0(7xp*fFgVMUU)CI=TX8_VmIePq}*P#4W=vXZwEr} zhMjQ=;HEv9dMuUpJ+p8PRrWQd0M+($8v$|dXRhgSP@6A??BJ)Vvjw%f1LROr6_ z1)5ZJ+826)*kzx_faz}gk^NAAV1J1U{vP{8Iw0O_e_=jCdT6hptg_F(Fb$^r?d)v; zkL>a;5C`m+IFKB&k5X@K*#6tE03-InAEEceUPk@Mr}p_Y>lw9gp^x9j?E5EzIBs8b z3&h=y=`=fYc0@MgQd}H|DOGWGc+fhr*WpiXS9gbn3cr1hb#f5*JIqv?csSw~0XyJG zp@+!Rao`kedN~HE+jP(|c`-x|ISyRJUGjEZ=fcBbM?0O}I_ijf1vY&h0e?a7n4|hO zh<=W8N+X+%ZxDkrR$uI;j@mI7pl6Nym+KuoC1r*Z>c~jydO`7vd;&(u81>37QwrCps$k!}K}F`#;0VdB=TvbCMh%O#ryyn0Or`7af%|5$+|& z_pgJP>~MP#l4*|m3E*9ER8bC=?pVGV#0Qd!6c2S9# z>sUf(K(0FqDDTO0Y@+on-?5)oumT6W7?OpKmyScd$T4^aZi^j1(vDZ+SeF95Qbz{8 zGG&fQ%VDhCv1C3(DjXK-<=t@HqvY$RV{I6Cm5v3jv%&G@LHsy(9IrY+Y;=rM5!2*Y`w)7~j$V32 z?>gR}iO5JA;HMD6To%I{uH1kaiKHk)_8-pX87QO*7x@n58c5Ksa+K_p&X$dvlo^BeT0(E@T zAmvLFn>y%h;pCo}< zbYmDRKLak7p&EjSV=Os}!7Ge!-baLZMj|!56Bq~SGfQO5p&g?nh8MNNt}_0R!X=rp zmyQ{vFxKsWc8#&3720*i*Br3iU~HcYk;*Vk2Oy1cIuSEVXM7V6Eran!6yjwvW>eQ8 zi?Nx?<7`G5HUDxLeqz{i8A~OIm&bTl30pqnLrNqH7`}A!uaKcU2d#*)tP)x=<3>9; zOBi|dgSt|N{aI*b4DqKRD`!;DPe7^|pG;t|no(Z}z)i*y`g!Xu#$Ec6dJSU(9XYCH zYz+sXj-g40R?pB*;lpZRypV$l-e!!@$aud7Vu*2b z2Uvy~`ILY>X1ur;VubMtb(BUKYusTQV087~!MW)qCYE6^qx z#kA*U&3uzqQyb=8E5MI4my0oI%REiZBRgiy8362=!*puk1T%UKrsTj}{s}ZkW*`HA zlg!tw5XgxcunmEnnO`1*c8WQ`0*ecCg*P-;<~hpzPcvswf#b$ha3I{7XLn!{XP6&^ zLU=Hz{SD#C{A>;YUQ98iq2A1yZz8%6^EvuUF}}=Yju3v#J4%rGGh3;aIm`Tt+L8fG z9=%BdnUCjTFo@}L1R|I@PQCPV%qaTa&oh6cav+5Hlq&sDrt8a??geH%Ju6|%we*c$ zWX|~!WZ}&DBd|pYeC`=oVwqvo zXOClM8-TmQbX*Lwc;+4Y-V>Pef8mnIEZG1pi8-SjwyVrPY0EB|nYGrkW1&Wij8TUCV6d78$ND zhxzxHm|!k*oR-);=63pY^O;LN1E7HUhbzJsGQFuSQp8jzfvlKWLZw0pld~RyN}1tH zVJl-6(J7O1CgXLGRWN&~mr%(xM}n-1SwZW3HM4?RNjI5M1z@?wG*C)a!_0pXxLT%c z5P&-7rCv;_p7|5yC=JZUR@iPcn*(5LWFBK-u!+f~0|L#=_Ag;;VJ5VIvz6%_i@|p0 zKWPvhOf~Jib~4w~amOy^&P%}EW%m9I&wI>#dIIh<7t?$C0doW0Qr%1|dSH8)JDnhU zndhmU`H;Dn`dNLj#^SC8nLBGEUBemHY zSnGB+iCO;In_sy8qfZ`L+SUwv4!s^IC%S`ZEwKi07y;o{F~d>*#5tQP8}2e5Wf zPbZLdd^=o%SnKxz5X|~L0E6dPL-f6$XDy}O{}9$mT3A9^dnt3gz=|k=OBibf<>ePy zcC=9y&Kjq#W(4c{nPmp>T<3+0#CH0xRPm;1XHFGysxVzTZQ;$~vq=pk!9@=a@?hOJ4xnHCC<~ zfa|PP<>0)*`uP*Mq_Tc(fJkHU=p1!AOGY~Y8LXAGS(C{sp9NbMYbBKfxvW{#RLf(H z`C~AjW!wZ&!1|NgVTG(Cv|bmnJm?!MW))IiP{JCZ8?%)4F(q_mEH*X!%URhAFo_D* z$0gvbWL=_StBQ4pP8U_PzM=lhO;&gV25+%+l(^Ke=H3K#Eh~l^M0KpTH^5TQTJ!{3 z1M3X6%5Jm7%Q2TmmW2L-TodaNl`YMz26{iVu=sR{qm@-e`CuC>YZ?G|Sm`$bZ)ZIk z#b5_ZeF)JzS)Gjt+rW8hD zwdEs(eaM~!LryUsx7kFFGpiAhb^R3C70bzYe63S z5;Z>a*+nlQUIDw5TAhXLd^P|@>pphHj2yHwzQB{ zuv4g`RLO2!0M07*wrS9+*$is6++;^n4t3kp)~EdlRi$ci3-GLDkOA zKY(~0Z21!mcCza}0icV$e;K0RWy`6KyT?v(1^hm{lRlmYY&jcRH@i#$t%rSpws?El z+Y*6$$Tm>BsE>V;&fWL3U!tQ*kJy_RLkzIjrNK7H4%-XPA@-$i0EXGlHz6LgU8ton z!k(qalt$U_(NUK%_DdIGd&1sA+a6EZtEr1R&i0}0nF;nM^T9I7W>P!)8TN@u0ASCVq>iT}C$k9=PI3}y2f&Hbx(I{L zoXyW+@DxW$2RL0gtBL?{<;;74!P6Xfx+mN?@6le5JLh#eiGGGt_AN9I&ZkrWcyi*T zn1mN+O%4XVIh9ln_;9k>(0n=nQDe!Ev*R6T{+xH|Cp>34{VxC)z)^pT2!WjEm%=58 zlM@Inm}5_M$2m^dTukCTXAiX(LpU!}iWl99!1uWM%&r@^rI_DR98gFpE z9tSR!W77%FG)^Hc5b2!$6$q5UdE+JEGC7aJ5h087J@tvQIjSYlayUP~3N4rO{Uk&l z$Np;!=5t1AE(M&I{Sdv7qok`X;;f$mQOud39itLX54|@_IaPGCmvK@?5WSppjq>XX z&R=vZR&rb&5WR{s%MoPN9R4J5H#t$!2y}}x?JfpuIREZ~sO9jw0I1_^qoui?^DU)K z4V*XV9Qc7n6oMaE{{0}5-_C^&VzrUjdE5V zMD#I^j`r=JaQyrb;VGv$3NGWE&z=Krg7fExV438E+(X!BoO~{9Q=IK|+gNiye;>kz z`-clWk8^9zW4gB7&*@!k$1R8hnLW3eCU}DTdN*7gxbN&mJV$QPF}R%MenxL*C+^PI z!0F7LMY|EFxJSQ$aN+*ck14rw8?V83n){CmENODo@bE;|mKA>5aif-ID4UIV}dZgCYj!?+=BaJk4W{T43aTpKEk zBDl%5ppN9evJ!wOuK8t%Xl~d#cwXYpPet_0+}+C%D2BU?{?nOQ?oUb##&OrtTkQ%r z{WlE8bG_*r61abT1(C=tzKtm*ac9$8?JD=jMSv%Bf8&8Vg(0+8%59iP404PEZyQ3QVv$b4SNT+TJG>1h&pb$FdKhpW8Qx0CaKR^aS-??o=YE?{OMqC)He_h3D2-P~!kciqE1pn^*;H;D`Q zLoVk<=EJ)ffQKyzVS7l%CrFp6vnH0(mL> zpat>#HzHmz&w<+e=Xg!0As4wvHO~8fm{OLy@7kPuUJcaYv zRC!16QYpWVqV{|;OX@5u{@9?LsQ`FtGDei-5k?*#qmKc45j0k#BQ z>s16w&G5G;kf)$;%^;+1Kj74sMuFqaaZS2M^;d7<gZHb zAJ4H5Ed9KiUl8^YZ}&!s0iOP4d_03ZA^p^7h_|O67dFiMaR$U=UJo^yM|fVeSdH?2 zqSASc_x8u2e!|xQ+s|kbrw$W2VCId!0)6ci6j3jN~}-veQ51*;=kko zfHVIu+DSXb|L$)H7k=FXc)IcLUIosbU)zbfoZ%n)4FC^*`oG}xs(mB*zfHyzOfHxI#Z_?T@lX3>FrPn@)`Cvv`w|@qfI{to&Ue6z=_I?9Dw+w*W{I5uB zEr+T z8(8}BAwpd<16W`!xMfy6-H0_ zayg=p^P3Mso8S-cL4-+u?aR=f@!fYro8rGc4KCJ#S=7z85!lf$)Q$_XzCv_c!E)Mg zvJ?DHEgE~l$sgfzLQrxB5gY`M*Tcn8@CvmvPYSG>p*acOUI7 zLW>qSQfJ|kU`8l7FAJu|AYuexQsNRTI7E+AoZtx6saFKUwEGb+ctr{71i|+@*b)WG zwIE9p_|SXvs$d$G)yV>55nNIP0n~%PCV2chrgUA9a|-cp2wr&wEUALvUooXL!RH?V zmoAtS1VDzso|4&2!6SO?vjhzpuw@IR$q1Aq82%S5xdL}eQS$^(--5^&?41i-f#9(j zfI`8X9|0&5#IXS=798n=twa#L0fVK2()$3E30|0v2<3vUpMk7GAX*Arr67XR!YV<) zDcEia6uY6-2rgTLvsRE!+p%>5=V<`c3w#&Br9r?r3hlPwEqbaN1(x*?O#((8Y|Vna zRsdQA+o=iEDu|-zwoNdda>YA>dOD`nF34O0>JGuvr4XHhS~YB40^j2ZdsmP_FQR*b zSv8p1eZk&#P(KjdqJDX|U?rWp>JjAfVCxke-VL&cf@ThIeS$f(W!^6^ZH4WT;1bn2 z0|Nf<&;|wVnP3?b%s+uC4GXw|06Z292Fd+p6Zz3#wOUF2-Z>I{#0;i z5-#I{uYQ4;5PZ8GER%wS)d=)V@CTi7nG&?!0^C{{$N|7c7)QSsJuZyC56xB>zZp0? z;qR16+Y7^2U@j+wycYp*5SG%@=qQv?C-J24?+dsvC!zaK5YEEeRNtNwev^toF2dQ= zd3F`{~og!n2fX zWD4u(1(qf3pyw}Jcwh AN}yI=RAoCb;AY52nBXGO*lLRmOH{UI)K|Qbf6-wL%5Anhfbk4olEEvE~lIQuJFc8 zX!nG%lq=pBj#mKiKzL~{M7Qu?YC81@57XD*D?CT1`yL8QZ2{;LdQ-vCFRWl9&?8|I z8=eEg6e<7)g(oTH7!o$CF_&Rsk_Q4k7Osha=ZG-(4B(@}MrtsO3I9?-dm?=AGF+Yt z7i*!73uny(d_vg234lpq-fW0x!sgd7!71SuT8XShHC_m0BVyCSd0fPxT?|_h7HB+i zqFXybW-r?FGssSeYNfzAh>lW%>?nGbW_?m*qGH)e^yWKYaTb+PZhA^oO*ONN$j<~9 zSCNzo>C>W(DbUc5uxR@P#5qw5!y9TE1ib9F52)4v>PJ38Mua2QQ)WGOcRZ3p{0vlmV!D%^cpQznWEyK z5H?FRS_sZ;(H**>b3`4%aLEJ%8 zXsfnF)Jd&OO0r|HMClhnHscpBLCMR>P7o#3#~!)^8cSW(FkdcqNQ@cn?$865usW1Jhfq3 zL|5soQL8A60bHBtA6l&Lh{j%qXcvt>fUQH6N875MqOA3B=@O+nf$Xm63LP`JCwg%! zCUIZ%Gwta=5GfsTechtvhXC&pO{W~QS0rA7Ko3RpBLVLd-DAPlFNzjIJQ8USLkx&| zToGYV)HwicNR)g6Vpx=N7l9s&d{!aCh-i%ZV56enW`pyo=ss-@jf)Qb|E(sPq~6n{ zC|Hl^&qObuhHXl8nh6$bv9A;?HsTLog?3z=PF)9Eu_vXIc47-cyI+HglQ_E#oX+C;^y!`wM;?W65qoY1&Q;t!4Yk(4_=ty>z~(FdbO#3g#Lv_1<}dz+ zdTVFJgOp@$Jr=fnpmana|+XJ}I}L_F*QTc~(J5TaK?UJ~VuIRE@Na;_E zctaXQtoVpOBE*S{Xw&S9*prsncyT0MQG$4m8q|qm@vnd~lH;yo73tWuo04z?=sgaD#iyoa9Do8tD5L3T_0%VP}I zi1lF*wc`6o1j)Y9t~ z$47yzN8IWJTd%l)KIDhufJ)f<#P_V>*)P741(!$S1I~yyAZAftYEaCiCi;+gCFMlJ z;>>Ksdn|s-3APdOb5w7RieJ3~vN7>w8>pX%y}rg=o{B$Og28cdCT0E;;^*6;O^T~a zAfAbL(+g}$tfa|XODgt&#YS?1vWw%AdGxK=N;cI&vy&|217I(i@f3g)68CIO*FnOd z%^^ogTNAXCl07EaoFr?g_v9=&C&oNaNk-`Cmy6`L-{9gZX^8;YY01fWOwdj8HGN0! zl2=}WI3sbY2Eap7x*PycNzpfO@siX~x58VplTvpd$>3s8`%0Ek9quPFP(AH0Nq!sR ztfWx~TYx0+2mpbSN&1yfkYwwh@C=r$7=}0}vE7LX=OrJ`$AyJR7SXBrP|5s!OzDE; z{WSoDNxY~Nd{MHPlG$)c1HD%wBySZ#i z^80Lrt(U}n4|s#bt`p+697iCJ97RfGZ8?;IisBzXNai*L7 zj-=~fc(zM2MqulZ4AO66IwdLl@#%I+3g|hyD+%s{xF_-P0?U2L&KTexNRHEmbxX>r zknWKbN?_}i-252YL&>ehm`k7JG3A5(l5sZRk0eun!(~7+jW$FFC6BnU4M{vw;W;e1 zzX2|fCCOW08O&K>Se<7ypE-em* zI3wLp`~4nLHQoB2(#q-3yrh?HK;|v2&4cifdTs-Yuk>AC*!-kt&q4E-?y|y^&Ps2; ziRb~+mDop`5h%^B0_QpD#uXSmFTH&qgCWwRd}yK4Ul$_61?g8`VlYg4nR?q7rTr5a z43}=BQ=}2n%J&g3QmUst#VBdWb0CYB{!9<71RzbigBptI(xc7@n<4$+M{s6J|De5sEa@>i3y>{!eh85xwK@Un zTF!ICG9eHGOC(zj+p6iDr;Wmzcgp&X@1$}0m|vD7^QWF^w|+W{|?ZdwP=GU*HT z5arT^%^0kZzTl2PmC}}PL0u))P<2)<{k$LAO{s-m(6^);e+Orc^vz2ktCjAgW2bde z=F4!Ym!?p8+#vm!b_Z@tBWHoLQ5sI`V3Ty=EVwjFm(qvTB3()cFQW(jD309Fn%Y39@0S zBOR@IEM0ULoFh`--+>#I&OHomOxiOA+!N`mm5A_EnzI~$ap|jcM@~o^3&Aoe-H`&@ zGwI@02s9;KO_|4W*n3pE&_K+CJl#nS=K@KON?yoE0|KOEX)G3IN1+- zAg;)k(J82S8IzvW1la(6{fV+yGZ83BcAb`|tFq!xFqkY0ibRAI*{tiB?loBh9PhZxM4?WRU~f$Rbubt#lB`5a-3WRhl(70cv_fS1Vrp=zmA_8R4_WwJUo zSjuHhJAkW@F+Yc>lx?D;&sDN~>S|WYKBdCwrmUK_Zf?omp|cz{G93@NTA4d#C3P|p zZFAPkmeY6CAX`UE`fV9E0iKPrDZ0y>WchK3-Yh#A3zrtzo6kVjDznJI(k8ob7up?} zoju}p%JvJOb;;V(;dxhJBx=QG)24Qx{~+pnNm%bD~u z9UJ*`RJb3PZ+{OqTls_$oObeGsYPlp-%VM<3HfK#z;uvnf-nh3`A78rJ1Ku<3vf>I z1=kSPS^n`p*iOlh*<;W}-hCBtSNY^xL^v(4ruU|sd~PFzyL?GG#2GnT|D0%ZYAd8k~)7~Tc<;$%P&y(HA5aU3N2HfKs}EvdCEpyX13hc1GXG_?iOhI z@;QIPr9gg#0Z}Ml=7K2|$*~?a#O^KmH;tHJjr{u(xYWw0y8~AzkD=B_y?mw@1{>s} zOhmsezaa&#QT_{M;!W~*=-X_TPs6_%E%Jar0BDu_($SMP`9WGu@5pyi>D(@_7XsHI z@1Y+#cgn44Bd$xn#~HS}@)8Rscu)Q-J?Qu4;Wp47$h+6TrCa`ZCtP~u9$|p@$}O&# z%R~997a{uOmogBcUw)T5tdHb}s7@V_Z>8^cP@Y4-LK~9rrp0PlE**#VSgxek(ullm z2oXl*(Nr6b$*0q1;uE?30=PVtKct4+xO^R@y%X{bTC67JF|?vQlMAU$I3?fx9W-mj zENbuDDBh*I>bT-hIw)+b2%~S8;eV0Dg+jk0JaO%uKkPRg4~kEkNP32-Ja! zI67Jrr0}4OGg#q9o9pKk{dw>_ulR^gm4ztO`=Es?{-&Ggg2K8KT9_h)j!i`=fRT@1!4ZXAZo6-6xlP&8g) z8Hbjj@TCkXQE`=6k`x_uDEq3S;vPh@B9chq@UGXMW^EVXgNX#Ww zQN167X^L0g20UGHhc?DC6n|41lc|WJ*KU@ga6d%0VuA|(97Vz)v|Pn=lndu6GMmAY zuXz6`Yz2yL4zxlAk6xceisp?7RIG5hj_H;t(y6R2RU{QdD^rLv054aB@5an36n|5C zSE*ppv6LzVf=ji+=l|Uig+1NEw-f=CIo2qSP~WXqp__$C)G0R71nU)2I)K!mXg>$e z+lrZ#8Z|0j^MS2N@k2Ij&58*+Zq=fAnXMI!A;_bYtpEY2f^h8C*< z!J|@dOwq={l%6Q$pJUcf6*ayf8&}+?wO~RKKsm#t;?Wgo&lDYfuuUlezs1Z> zDZ8k{a_SGdF}r!PnJE6P;bDvDR`jX=Bv zW!4&KiOS;(L7k+`rT6AlW&iuIB`Z0!SfwauWPk(`j%J*rDQRm{`p^#C9pyM3t!Y;#+ryW_QjXH6jHOz%UwM?W z%16qo-ysH+yBEP_P0b~}mF_A~k1I`-1Wzc(%>Ya)fBzlYGi6IJW;Uh#;WKbrt4@6hVWWDn5tnjYb%=Ua zwyNbV(Ck#f)c3YmtyvA16RO)65YIu?_Zi3>RmF4?;iPJ57BnYS9qs=)tA1Yv+$q%) zD$-n3(c>6&Ro$XjqPaP`!QxTBNGv zAVievGL_ZQs!vm4yQFfb30_uZ#e*|O^?W5RC02EJ0kk+(7?ssmRI47tGhU^k`Y1s) zN-u^)mDleWOi~ro?)X(zKc#TVs*h=_C`Gl1w&<^^erUqrb=AHHV7Z|ZQ=>dpmA4!4 zG?n}dz|&RV{R7Sn)roqzWUBrVU@%LiUjSUTs`4wa%OL7huc{EXUiJOEU};cQ?F0O_O2UR{RE<$Txk(j4 zw^Xxg9aY{fs(cT4wyKicS~;V#vFs$TA@ z{6{c&PxXTj0QXg)JLky_4)?rG6DgzD?%otLAcL4BVRU*B-AFDpxj|d~G5qfWqs$?^vjj7z`U}jHL ze@24rsme@c^|g)92 zxu_k^Kyy`BypO9rt!||AS#Ijk9T4v7v`hp#qyBa|Y#!=}O@MoX90qP&AD;B7pz7T^!>WMz!g4L1*5a-lh zYa!07Tj?$cQA=nQ4psl70q%nO7wYAOsaH{ob5XsS_O8R#uG1hQ)NPC45~)5&_imJW zXd0#ztq!CT|C0L1BWRb^Z*nlDIQ3iI7`&ohJRK3@)k`T`OHg0hfUt?`jHRGXQpb%! zyQ(%&;*zYcqZe(8y50i7HT7EBle(_n`8hams23(dq^hUSgiD&b;B|;}^-q+{q8OkB zB2#UD04!PR!b#w=)mh)bmZN^h3ASAI*>7OWQ~yS1=9Ccl<$r>#TwVD(rdy$IIsj3rzVS9L6DbX4EY<2K3o&?8 zy;ubJEp_RSz}2XG&m&N+`Z)D9>eT0+gRNfOL}_7zdhZF$?6z9;0YszPcL<_My*LDb zX0?oVq+8SnjzViyAC&^orVgU=|BgCD3+i@tbT=-uL%n1Xv`+ORI@#Z)PJA9Nch!Az zhlfqLn$0CcMzt^?4cwpT;zRaY-Y*oW%EUjgq^|4YepzdD<$f=BA6 zxex>DU?E%v)eUsoZb<$7C%_G>=X`?*kJSuXs7KTnsFoR3bLee9rrs0*+Y|NBQP`fU zy(0h^SN~ZEF`+K>g_u-xvH^IezPJ`2$duZ-1e&!biJlc3&Dysxm*bij`k>ir8lo{> zJI&J!P}^%{GccDEnwM!gbkL-A0`92UNg3Hm&Gnz5IccKkNRG4S73y-F(iAU-=Ax;l zBOR`q?j8g>t@)%9wlkXB$H3yD*_(hso|-C361_BYX@T(8_)|LKqj8}}%~vx@<+z{b zm0oE6nl@^2pVhc3z!{)v?t~Vok?aClkY*8`;ttmQN&7(OH0vwia$ZwUe}6tilfDF6 zsOG>|AiJP>{Y8i{&0!0sbWxKPGHNiS?UeXk! zteNIim>Z#ZK_cI0?G_};bzpY_Xm#R_IwHz!>nm}(v zXx7}Wz{k^~`5_siRr5T(2HP~72f=bj6G08(c1=w)03Dj$s}ZPEGn?+LF3neC0NmA> z>79B{Q%@h(ea+4D06fsNcSCe*j?g{dqw%B^pjR_OdCx=5r_Te>r>UkcPQNDkW8fZX zimAUepgBf2(Xi$KrS6Y4TXG>rG=1j~c2u*v31Uq1FQtA@G^{NEJk^LPR~*-TMH_|_ znj$J6Cp8Oh!{wRg4{rdbG!qw~S!>I3L2aXzzX8B;E$<}=Tdjt2MLX?mHl}N@eVvNs z6WYH&1hs>fmkXPtwwGQ@C$%5F1u`e?L#q3owQjTreM*~3AAyV3nX({Pt@urd)7rVz zB6ZWcQ5NK`J@5+#&uDi%gQtg9M!iE%?G-s}UfOFPVrJgj<#bHaM=PNG#aH_ot@?i2 zfx~d|*Sq;@9lr$%Yzv{*%J-Khz5Nz0-1 z^|E%w9tNrCI0OGWH|IZ_}zlKAL*S=N`mjvx^QHY+XwWG%(N$XyN>0Z@7 zUkaCGZ6Wn^Qncoe;Brm7=p|^^wZAVwyc=3m1+-M{-4&R1n)YozT++3F(X2DHJM3V~ z)aKA6va}U+3@uyx6aAg;9Bru$;JMmutD)s-$GR}xd~Iza;04+(H=z}3v#1?bqRI3zYuuQw_G+fHH+7Dr?(7I6OU#Tsl8mLO!MsLb$?E*f?ZfXlY z0IpUmXF;peuBYdrUfZz>fClY<)KT=S%dob{1LCoEZ$HF{HsL%jY*fpluWC%Y^F>5|qJ32Y_*1Qo8e&}gwlAVj zXg_L(ZBl!f7OQ949~XjiO8eaNfLrUL!w}X+_u)UV9oKy!LRed!KRp3YKAqF?(gkk-i??nSwK{!tE4G5nR~JMN zx}Wan3xNCU7Mj6%R#!*;)&SkI&tVJHy?haaLAoGXtb%p(sqK1BH&2Vf^SbXTa}3c* z=0b$(xOAId(AoANLYQuI2;diW(_VrtT*nW`BqDUvbKw%Hd;LAwqI5-cXGQBq>3hGV zyGl#tW!-NLu*K-!n~iv}y6apF#_2wEfObW9n^Ng`T>)+FC+PgX06bCW)Pun!-SzJv zGITQ9amdv9{0Li)ZdnTA9hemuH%^in9#M*J7-cC{tzzDbirmsn9{AM zl*(Gay$*vmdSA*TkLwT8p?X{Wh8Y;N)4%vKaQ6D?^rSlK!>BGksgI)^%t@a!fC$d| zj``3|>6g-vgk1EqDGhbiJ5YjrT7QyOVK;r;egtyYKcL0xjJ~@J01tiW*ASli-8P8l zrMID#$XoA5YqF1igc46*{qp;O`{~{3(4@b9A#tA7M?FH=0R7NGcn0btXwy1KA44l< zu>P(!I79RoAA&4Yzw{_vF6h@Tf(X~YmIapx{Q#}kk$R;saF_J&hQoGQf0GjV82!uC zDZQfKoR7hHeGVI1g8q4W>0i}*yW7%KulC6L7V}#AshwcO}PcPKLGhaXC3sIo|tQDSxdNX}1 z#rnNe?v&_1p`&}HdO4jPDcAQ?`dXo%M$MH<{f5^NuS%a83(jgi%L46|zLvJ^YV@zr z(UV&J=n%;2^hMvpRT9V&Y0`gm9P@0}&pix4i{2(4F0J}s7h{5L z`d^D7?&uG#086`m|6c%f=>MdLvR6NsHbEZhFVBYP(Vs`aANd2QhxHa({2%L;lw6MJkKF+EsJ@wwBaP`Ds{weTe=Zw29FA=w}A$tTiTSF)HSnLclDA%_) zcz%H?oiHq*-^w}|{-rmiqd|5K+DXIEB1CsGEPDYi&V~jn;7%F-ybKo?gFW?IT@6+A zZJsu4n~OkhhWP>DbT{maL-aF-g$e*X3~ikl^fa720Z%W(BNur38oK5I?q}FYr-b|s zE9lL2)=)`5-wiN~(LPC_Vcjy=f((DtHej$}PakaO48_zz4l%5wG&IzZvK-n4gTfcr z7iO4o7UH5In4b4=!%OzCMHo`fL5nn`aS=VrP<##|+R#i-$0dVt2>_Q35%ec9Vhr1; zff;KU*#RxiP`?ef1jDXlU`aH%(06pz@O30Umt?~odi$mrwo?oEnj!Qm#C1avEeSUa zFVTA?)o_DeifM*sD!|hXU(tP?VR+vObICM(cnFioGSuY3CEGBEnpHW5!%S$ohM$%K zo@WqIynI7&BL)i$&HrL%g@&XAcorF?zksvYFuxSG5`zu(O-l_NI&@cNc)kEG<%Xm; zp;Z_fKZ8r9A(?s?Rfcb8g1Xv}5&@T+1~zTF)EM&JV5>Deqa?A;5I{}e+lFo5z}9G3 z?GNfE1M?z8v!RhXN-c&v^cHP3{7z>X+YQS55FLi0TG%=bwMK}0hSf7L-TQ`D(=dq# zhSjuX&}}$F-(Qcxekg|tLpy2w_X?)uWXv4_nX~a&80LA(m`sJHi*epGOv2U3yasXFI5r!D zZpPQ6f%7nSCj;PV{PGcmmoaA%SiFs2N#WvSw3-bUU*ms{81yrqpnS>SxS9pev&PJC zAOeif4#FkSm>!9_1R1ZI{V$ z8)eWg8e7ev4mU2QFEzqAwgtFI;}8D;7iC=fIR-BqAJIb+W7H49GuD{#7T|Hl!=FN2 zF`8+Si#OI${+VF3Sc5as_^=p*Nyc3rxRey*N9)0P&G>UX0N0HtsF#;xw3-g;Tw_0d zJbA{q-v%Jx7(q>h0%QJJOt;WDhjwX-j9be=U2HsO^Xzml8tHoEwCIneL;(Wt!dtQ;OtBb z=~s64re=B-oG`um8f*@xVcKGHG###nIB8;1t>$FE;H10 zaR$T%(=$g5hMC$Vn8ZcX!$5F`n}(@N6=B*(#d)M@`%$n&nUaOjqD?moATF6WT)12| zy-u48F{Tiz24hWO)ccJyt)TXByy-k8`3a^L9R?Fk-t=lsGKr|NxoY~7ItwYLwG$B6 zOgcL2aNYDa{k%2Jlti;mH~mK|bcX32`rf0RC{_6;oYx-FS z&OFop*T9l*(#FD8VEUSV4^(KHa)wr9`ie5nVpIA7c$Sz(>HaJ={X?l=naP!|uiV6- zqcs(#e{&GF(sbPqE>)&4sLfPuy3hdIO;a6hSlluh+@aN&<^{pC)->Z&c-EO5W$>&w zy>SDdV1udh76xyd-VTOnG;yfg)MSbp1)$lq`VDxtnZ9)e%NKV1TCaOeC&R({(6sa(v_8|u z|3Efs;&@`ZW2TS?ust!gl;9H_H$91h%Yj`7iqV?acf3!PDM+lDh6E%wOa~IGA}K)4Y-DTQ759FNC-G zqgjCam=986)=Vdg3-A1|5@(E=E5zM73GMVOcSz%$Z(p4y;M<|=v#N1OYD zATF6dpwjuW*+6N1jQN|-AY#pBRC>jk`)EnOV%|dVc=JQr{7Nv}(QZqk`E%+|B$+pU z265GFO|5}s^Or)nq?j-C1Afi?&N2*MH%n>TF<5Ah=z=IR zXVD9+$~;7Et!i^^1qN@LuhJ3iTjs{4_`++ z4uJdSR7!#$n9C`j=r+%wKV#QpE{w)tuX*owcs?}Gbi!bt`A<41+;3J#fo0JA{!f_T zkh$bAaKq+#w7!g(3+N*sHNQ^Z-&6BbI-NOg4%rU)gn98gh)HuQo$PpK4x_4P%Dij~ zG;7NtTL5e1f$vg+)Xi1=T_oOBEIb4yGrM4W=oh_Be zFnG%HZa=2$Vi{t==4$y|4bIb+i*#Dc&2pL|xLYDA zbLgmqwq{0r&-r(<=}-22D+b2#cP!QX(x4pWynUEML-{ zb=k6#c6wthiHR7DwcL9LEOC~2+J(Aexkq_&yyf%hh@NOkrw&h&rQ$zCxN0eA13cOC z9My3t7S;b3c*}qE1YEbgK#SE4i{DC6r&<6;wOZh8=MEm5@6=2_mRu2`Yv6T10|EHCeXD7N@eR#IV6(wWOji`NU# zsw{6)mRD_Av;i(REu9O&dCT(A5!mW1;gpcqTS}jY)?hjOHNxJu)Wjn~qvbfYm76So z(W&EB%Y7<^+AQI8X77$Af?iAQmaGJb4$D`Rt#w*9tOER=rMw)2_bn;(ntx!KHXXQb z%UwEH&|}%v0nT2_{C&8Te#~@8U~t^Bs}L79VJX=QZOSr>l6-5cFKA2B#wv8}^(t!xUyl zrZX@aOpH+zm12z=LsgU(iVbx{MI|a4yNLx5EL6K9B8pupHWaL=h@jXT_TDQh_VRq! z89?-B?tMScy?;D!K5^EpzRo_otiARg*3)Qw+I3ogn10dqh&?3Vcm1#s9-_Ow34=m> zx2OP^p408|dx$LRwt{XbF7H+_261L|dvXOLo4Y-u-Pw+A<=gO>1>IIiAX3t8Q7o`C z-6l}={Bk$H-5}oX7DIcB``tDyhk8!@N$B4KY+L;_!jkot-+;K%FPYVt_Kf!!7;R$ZVO&Y+mG$Rir!Gz5q!@U z3Oj?x(dgI}yebxv?GBceKp{Wam;N}xp5Tw$U~F&jPMVAhgV}P390-o?3X!7VMFFr` z9K4do=E2}vQ6L@)p7%Q>OM+9Vdmj#769M9p;O$RfuPt^fd8tnHD-p>UG{0W=qgYSF~;)US- zF90qE=l%t7DR>pmUND~V(wS%mU?Y>?5Oy~+XZC`>g?V%XAeT|b!SyyK=^{jSFr@*o zyNj`02$0W6LZDA3^l_Af)jc!?-+wGSg4V2ej$ZRmy&55^`rF&%yS?LJa2>MJz;%4% z2Ukv#vG{CyYdst_^Pm&w=Dn$8)8fo&gxzviV>oG5cRN0R)oz4t>y&wrX|s_kKW$xT z_4sY%Oz5_IK?jt-zr*tgou7{a-KG3De0SZ~0iSNos5`hn*b2)Yg;Z8+<)d3UG@_X#jAWk#2>FJB&SLdv}?kb71x!^Wb|B?=zNdVE6&^ zQVZTgrX7{HJ~30NniIi(`~Y4g+pP;?iekT~3d3YJxgL1YY`;t>#IU~^!JEQ5QJsD& zJ3S9z8asU*c+=T85=h3fKiC0_W5*nVv3S;lZs8=d!*79@#J-_pg&AxKZB%2q{JQWS z$3@XOZalY>>RJh0E7}Sta$Xalm&A3VJ4Z7(w*tg6lgrS<<}9v8Em)b&P09o|hf~vp zJ(rXCL17-}GYDWlr=fLs0rxByddXb=8i0jdK@fN;+?{Cvi@4C2O*&Bi7bN6OJau0Xb52p8WsZ{3Q$1z5T6mYwC0^861-W!ez zxqtFu`T$qxj>w9*>p>tEbHW?&aFDx1HPS=eWy;}7IETpqhq?L%ARghSUxl%wT;N|& zKgJc(b*9r?at8Fya1LJZ@SeLv$A}-e1HrKQk-NGS*e7mvO-M!vKG1w0DL8llR-y#m zs2Vp}@aP?g(Sk9hP+ur$^$?Cy1Sb=qzDVFr8`V^S^Dcl@g66actQIt(8;9!!o9NJc zgJAw6csL<&7zisT1-EGTb4t*i*4A5srL@l97RYJox+9n|9>n{CUO&L?GeMyN;JJXC z3h+WOf`(za;LtXJmx4MfNWKzu7y{F;1^PG;-w4*qA^BEtm}cAef{`i^KL`rq5X(nF zzs`7#p9I%0K_o(0kIEyF!uJe7l<+4HC`=Z9w*U%zEoM^TW}k)53ZTGZ_GN^--(uq> zh!k4??o0qN$_55VX+i?hb-#W2d~6pH_a@EEfR;r^bw0@U7>f>VglvF z$1L2$5IJYjiYjO4EpAbT;f94J9cbvhOe8<51CyOD$ zAV!FqO#(4eG;1laSkcl&0C6Hk4}f^l0c%)E5Ty-55J{r9bSZzPD5o`evqb&=!Gp~f zU3Y}{IU@TSken-OVht=+(N-tMgFvD z&J+#wMG#q{h4!$SE%Ks6xAmf%^TFFFszZh7O`-#I1!c3Sr6;W9h@_PFZWZOt0Wnvk zqlIvr=pC(8+eHa9&FmDF*M_lOqPk-tk}oy$OPUBbx9UdT&KT-a_x4=-E5)-itc)hU5p)<7vRAi1Tki zeX4j16~3p7^KXF|D=wG?Vx0Ki7GUw>ZB*Y+6su^@mLwh%3Em9xj}75{ruh5X^j5@) zwAG&@{>PtQhqyhR1k4jh9z}!97e8(TVzT%VC2tGGS5L!Aig?8&*i03_qGw+$KIaBr znmC7ccbmkwegJQ?xZ!nRTg16k?bs?FZ3$z!;>n!>^28U40k(_RG=aztaX2l+yTp09 z0K3KGXl5u9x2HeuQ!Gv%jV3rK?niUaA@TMZh^$2XdtG3M#fL_~`w_8~6C{s{GilyE zCN8F%D96Q{?Vxu;yx@CyKQF#UXY?1uH)(yiB%YlH;$^X66C7O?cbyKsYhoqs|KEtk zI!L}1pQP&s@5SlA0elemqowYn_`3#B|0GuI12ID4brrEhO0EqAh?2b7k60#4>_$Q| zT5|O$ti(vV(6l{8(zrhYoGO`2=TFlld2b*&U2;_lkyuFt-S3K%%u9snc*%<-h$Kk% zd;~F3l0~s3N#1pX!VC~0GE?$271%6^g3h02OA?eI&XKr2hU8qy;32@~Nt_0Pw?I;# z?k*%tWVOLtC^69`&lJfT31V3!c_{}mRq`|u0WOyOLZ{YglI#s2E|Jvi4v;R1)WXU# ziIV}?a>-&DB3mKRQ@LrSWaM2KTP4|h9Syl!A}U2gu94h74u!RnXlkr=l0y1+$mrQI9g&UF!bi{v4((D-mye(m9cW_rS)(YUBWPl31`;ulfm>)>8 zY2th&>7;~}$C7MUxP2n&Kvle_lD8Y7{!B83Dhw|qdz!#|xg_c(^dh7^TmT}aZT!KT zEOn;YG+NqW2}I(hpMqg?u5=}(ee1ew3vp^b67nqWzSG}RPPDolG`O+O4YI5(s$nh%a^8hfZiVIvU&h}r61_B=053J zI;bp=E~C3<`=yDL-4{v|njx|S(gye8wn*BAwh_hBKw29QO6x8Gc1YTFFZ`8A>u!PM zVd<3TP(LMYsseUedYp3MGt$}I5I9&Snp zeFtz$Dz<=?+tQ>*ki09k+6?u3(y8={?@PVuhE=kqH?74>Ef3OZce-U~n%0(C?wbsS z<(6Tgz*bm}wnStrE#v#Z(OSz%m!Q7RQa}}y49hvc!Ahp(z@H$QZTW^4%=MP_sgSbK zGFT2Pn=CC-pm5SMkP6?YEO$_1ecCc?8+d0d_ovVkS?)BzL#gFx0YuJO*7t#x^Oi~H zLA+q8IS;p&E$erM-c?I+D!?_%hBTi&wLIS*yfVvvbl>WkWf1)W?73wF+Qh!FJZyxq za?9H`i1Vf8fHFAxWI5y?h(yTz{{$~mR)Y$CQL>g)kB*kDD}dXnvRP%YIZbx+7{GMd zW-67&$_Ca1wocZJHq9BbuCxee%I5Y1$dVmf3uD=`0udzF%TzgtY=dl_9@s`%SuKD~ zvT*8yn`H-RJmkpEw}jg*G7D~qEAge;aec|tftR1be zr)0ek0$h^Kq|5b}WqwrNx+3$M1niE?jm`|7$Xd*V!c$r4cJRt%3EdIrGuZ>mZC=O> zbhWBnR(mIiFJ(!~;Ng`le;oY1mhEp1^*6HRR7#AJ2VI6jtUQ(O7{Sd4d5V+45gs zKxDnVbP8WTU*}_wcYuekB5Wo8<>yK{7{fV*}n6d1I;_ZKXxf2o zlQ)pS%656_Mi6(%YtvEoPPrpReL&uQ0I(u?&;Upl%WaM!&V%xL`HxBjaaBIy zB6!#2uRno!T^{iYj&8_*ZVA1c^0rizyCr{m6~x=}<{V7lk$1lV;$3-*l~BJgf9?fG z59G!}01xHPRCReI52W?sv3z$th)?8Gb^$zQI4T-{l;5Rc@kxG;4jCd8 z9c>{JsYn|IEJ|^P4%Q|s0_nzDwBi-@kQhZI_1!6o9yEJTRrqcPahl@Nc8E+@l+Y1Q zoWf-(c=3wcZ-6BzVklcnRNU)@SdtWf?t|nE#k0}yFjEmjna3`_b&1=y>& z`vM~S6w#%?3KXG~dF)qorD9%@q7PNTiWS~;{C`mK1ND$Yikw<7R-)LXg2G{ibrP^6 ziZI&k9#ypTM-XQe=c(#*Rgfd>BQoMRh$p7lU6;*!zrusp}3OMDPx_6-HLH_!W&XO==9M5mwQ{0|F0;y|)92?_OPj;(3#&%45Gl8k(l+9y)!GzD zzP7TXQp9AXp&5wLN}oH3B~keooops4R}?~IhO$3xDi$i0(Xf)D3>b+9S)`ov1N2gr zNi>x#R?6rUGEF(`0rZwA&z^$hQss1%QHANsl+ggoln(TxyXDGKIYL^Y{L=-JE0vy) zVQjs!8@>Jw%GZT`1#G)={V0g+Q2zZCB0H6#RAStvToMZ6Zsn++u#&G#Zw73S(wF@0RrYNG z^?k~SDTuQ``4jb!{Ys9Su29*14ipY3Zxn%8q%5ZDU9s{fx?6fsd7es-hm`IP2(U!C zo0fvZ${)Kz;fV4CU1mJ0d_f0!$CQVu#(P{DKsHY(uhH$m3(BHh@OM!ea0pFsNf~+t zBA1oElJOAX2EgnnJSKo9kWzTmI0fsdPtWD=BNhJ$;w>SJgS?{QzdN#Z@$WkcC8CkPie79R;{CY z-9pvHKfy~;U87lQk!so>5J^=TDYad!YDqs&NK>t&n&T4HR4V^3RfW;qldejkjl(k4 z1e$b~s~#UjWGhs!-GHrB)u!9yt5lI0P+zSIqDzo#RJCcPT&p^f1>!o@nZ^*wP;L1Q zSf*;*4d`X5@}}WYvQ>4c;I>|M*B00YRc=STqm8N)^t78)trz3LHmjsGIp(OAP~Cfr z%GeRuR@G`sZF5!qdca?vYE&;^+f++W!NYddj~$`DLp6+!$9JlF%mi_lYD7ys(QefX zKUm3ExjRE|k7`g;#IjeFOGobeRCDOsc!8?G4ZQuT-OZs;sJfF5-T~FCOE6ZX`sW~s z#j05};tr}-F9bNGnnEW|C8`$GKM$*fbnEVjY8EYSM^(;LTO@d=R4raX^0ewxAWWZ870!muvnm6Pqf*so`aRz{)#V_BbY9hJ8h95}lhxo| zRQ*VG?@KCEC#YXmWki8@MKzFC`>U!|*WuxsN=tR&>#A980dA-^Ob73#Y7VX8w^UBF zO}ee>NtdPXsG7UO=3UhoI!wN&ilA)!zUtLVC_GTfQW57vRWB+iK2rUW3F2c_!B(h0 zQF+pl$y1ex&VR~O7w9DQnd;(wg!^2TMJe11)yj!5U9LJsd#;zNkiGE!O4WiE)7PrE zV*%c%baYPkRyD9Iuy?AgVwirf(ky|o4=T|>xc#Uq5<%pX>f9oTM5xOe!$YL{Q$I*X zsb@Y0n5-^Jfrn`Iw0ty3j5@6WyiZZzxC(5ldO;AtH1*_uP@k@TGz{vo>g$gn5~uD+ zH>Kj$zml;8wfGcxiRv(Fo+P#8Cj>D=tId ztx-Sph5B0c_FibZb?O;(@Q|U7qFQXGx|?!XcB+HD0CuULQ5|!)dSNX%%2(&oar_?j_B`nARj=v|5Bt>KRQ@hd*N=qAesv+O zhJ|Y9DZmb>ZGr%b)Q2hIDOML*LH(e*q&w6Psef|?uSDIv6L^Q!1=OXEs2@^g;ix*7 zI>Rw_UkhNz)rah$a6&!nHNZ)=q742{sc+ECcUpa=D@4wy|Dsa-S@mt&r+Kee`o{ZMfEE^L@ufC5O!I8x--K`w@tD)$N8Oqu2`KK|0pQ%}G2i`1=PYfhyYqn7#WR9kgUie&1(~Gb!)lHE7l1XICGuVCOVm|@+U;DYx>Z-aznGcA;3+|zz`U_ zr5Q-;`)$oJdMkG{@sw-a)g%svv3r`3(@?*!ndA-P1IARZJFkulhAvnS!V$&&ozl>;NgX4;Q@%0YjU>%d#UOAD@0ytM!CYu zYt0NQe7@1ho&vnp%yNR2cbeRm;Jw$JPQ%lF(6pi3Egv-(Y32H)X-^Angtj?dp^ene zpA24C!JDtWN~N6z+SwCfMfVf5L+Yw-^RzQEuD_8q7T{Fnj`nv*b(`IZ3 zZ@X4YncNPour*BY)IP2c^ljey8;?d}4A6WZ2P$vCOKK?D7icE~|EI;{<)vdWX=8d*7l{(*Q6X%2X zPCK#y{@!cXQ0@1FwzdY?N3CTLuuobO<@yo2P^!sA>e_fiAxc-)3dCrgk;Zh4ZsrSM zQ*?G2z^3XxQFU^fZUfy_nXa=r2VSgh=oElBU9&*gjMvpKfJlO_J{4CIb>Gw7gCyPT zgHV{EbES&sOkH>jNY2u6bTMzX?mG#ho}&w*>nwA1i{kL?^K^x)5Yl{IjwK`)=&sVn zAz6329YhxDK1P6-qB}#|vPHVp?l7II`~5wFSgdPX29Ty({tgODbZ^c;VX1E8MR-Wp zrIGh#I&m8im+NvJ0aoai&;j#G-OU2*I&C(rtkwN=8y?o_UiSpZ z(B;yvWHWVcwDZo=IpDU7Fk3g)3Xig0ce^L7Y|xdo1978ny#gYebT0I}yv;i6bpScK ztY(nhqAQ~I+^U;J_ds)XmT}AY#PwN3Ys_V(L#Ob3YU(22AV*{NIiJ&f(r&C-Im zTbHK;F<+;Z1MJb++rsT$-56R$_vwP4!&rf?AFY)8bs06FP^kNz_CN=8FP4E=q>Hfu zDAxTF1KvTMasaSHy6)+~N_3B@7aZ2*)PwgUI$N5kkLpHKc5zI1cQArDt~*9Y!zXmx zK7e>q_dx^Gr*utp;GNbj`WxVkt_$U#XLWzlUF1^T4XOg1)BS7-z4N+hfgoPc6;PUe zQP-QiU($urF7mSOm)!tYbY&+Xc~uunllV2AtsR264iV_x&|Rb{@1}0vkI=iND_aBN zZQUt4p1Gq7z69c3T|Fw1-qS_b0q?%95sjP&x~bhke5i}OjmRG9vT34ztZQQf(@%6= zsQBVf@HaF!%%>ix}J0k9fr$Wf#|lk&kR{jCu2 zChH&U0WVrV`4@l~{b;HPPSMZ(9;T=2JAV(i)ASc8kDRXGL${q{^DdhnaeNYSvl$@93)1Y<;(Qc$lNt(a@f&pZpY( z^YqhR0wn9>YQW|~eWxzqEz+x=LLpTzst41H^>1i?Nz-4Vlxm6o8SQqL>LaN~rt5Pk z%Uh-&_!9n>>vf}`w?coQF^sL$XKsPsD!qLNh^*GTPz7X-{(=xMV6Fb2HHd7T{ytqG z%g{T}{wP!bnr?(-={1xdWb3675ZR!=%gUtMxl4bpG1PbK8`EXB ze0@<15clX`-Gkm<{cHss?bBz`hND35@c~$&z6o7-J)ke5WUok{oeWT{_kV!k59;61 zO|?V%%al%*=-1Iv*kQe}3$P>l>jHqI`e-Vr9MiYI2`k6-Pa{D*p?^UIhLig3QaC!L zPZ$c`Y5h^!(Vo#4)&=jZ{;V%}rTU&bft}Om(6zVo`U2WCUC_%Yb-1XX$pT!`?;Qtl zS)WW<$rZiF2847~KVcyhuIY!IfWmcslnz#I=-l3{r-HLdsmnT4^ zOz%lQDtxBjOtp*W`fNIzc%iRH*Eq}dPiUHXsn1lx$}9cvOMt!BCr$?TM*q7QvAose z5Fdj}pFx|E_xd{Y!`%=10=m8UQ6EXC+@JLJd*LX;y6#NqMOx=v0Wr#Y@qUO*whpJ% zFWUM;8L${@*NFgAti9X;rdq$A2i`R6<39tNZvD77Jj7ZT)6JDQ>o(Vc#aru!LL|Z3 zuMeI*(YnWUv}cm_JlZ18u)e$*k22Fb$q#O4Sq&WtCC&Pi z1r(N8yHc%rsr3)F@U-dHuM+{5S(`$@TW-zJ61l><5oKK~t$(GB`zq_cG()ep4r&RJ zHP+=n!qHmmpdv`FvmQ=Md4~0|c-YLe9y$mCW?9GHg+jJ%WHp+hn~X7rf2ZN_wd|))QsGwpiEi0KKi&Cn*KUwZ7C9k>y!C_5p}Aw6}xzC_^B1 zuxNv)FC0xVh<*ies$pVNC`>b4{{zJ7h7Yqqj5W9f!C$=Lf&n%Y4R(~zCmHUf1Dk31 zB?gkS3@*K3Y_=g?3EmvTRhsqZ8n)?RY@VSGU8}yktY)G$^DPWWlhq z$S^ho9#Rd@r$RE#aJw8knCX9vTGQ&YSN?C5$O&w*0VG|ZUna8 zkUtUX8w_rA%X*{X4gH>Wlc8-mh?@;Z&qFWIAfZ!*9ftndz;+tC(-F)r!w95RlMvtm!yiB~ z4L1JZ9Wu0T4PuF*Z+|qwVZ)_0;2km4Yy$P8hR3-OIc9Ke58`pd)HU#M!tg!S5>6V< z&Ij?7VJr*v(}tE?!8>CZ(h;$oHN@ECF-r{--T*si81o&#d4n}2H5Ux6X^y;TI5{33 zE*W+vLGrR8;CEQLVz8pR+f~B^YWZu1-zo38ZdlS8>NgCI%b<7D(6j{{-8L``h<6O3 zY6NlD@Hf@KGIwOc^o7!|15@Yl09C(;wTsW!DK z<)3Ers2g~(HWE8vaW=tYz>BwupbO#&Hm#}GCEA>%d-_Q>xGjh&$Yz@ptjx5TSr;B= z*)+HdY_`n}I>4J_IhI2YI)Tni7$Hj6fcx6sBm2E-H_ zYZg`(*=(c4CDq2V3|N|tfQ}QE*odW2SZZTG7{qj&OH^K5X0wm7ndLS~bRfFI<{qUu zSvIRyKq1dY`Uu4BHV>$-xWncb7w~r59O(~ikIgg&V4uyLPl$8BjZp}H2W(nNfStE_ zZK57xBcUC`MVrfU;9auG$bqrTHf_%XyJAyH@Aj(AcXZf&&E^87P1kKoX=b=#^B@7> zrp*$%wR6j6bu;j8+pKs3aL1-_HLTpTQP4T%eVfa)WqVw5;h=5H=fFyA)uevdcGyqAj@nKf2Zd7Ga4kHXv)xU3 z-Fe&EqX911)>%)FVjD->>PxmFng=i2{uPEGuGo%l0=>Jo369|1vz@gM*nQjcw069( zjhPK&<+g`i0AAX*r5hoyY(w&ay|LXwXGHI8$L0ciZ(E-xovFs`4iK4UJVRODbYngGOJ6VIc%y^QDjmwR5r@_$*;|DrZTxs;BgPc{y>vU0Lwb8Z? zT6e86g4Wx0Mj0JZWEeY8jV06Qy#rBa8GY%`fo2;Y(r$3QF*y;~2BRSf0d6w>-5DaA zjc!yp%Q1SMfXEhOw-OMy8gok#e6I0I6Y%nk+4}*u84DkSx5K!bikmx)YDYx2+bH-M z#`29Dsisq8yg3?Hij4vEXKM}_6Mq7+#MpHnh)0b6bSdVTah5Ht95=S2Dd>dJM2q4{ zW400^r;MXCFn!v1?H;f*##2KedDhtOF7!%`OA_#y=Zus0f_L7yCm(tjjJ4i@cgc92 zietBpS81-hV-!CC@2=6{f~fBqV|syj-`M^ph!2cise16x=tB9+W1}Jy!9Ow1E(GtX zag84&UmLro2i)0tW{Q^zuiMu@~Q z_b}&Kq%aTLgP6mNqte$FCUO(3Y-KEZfSAk7pbBOl)0wV)Y-1kV!q|3ZV_Oh+Fu#of z*vX8W0NyU3G!YgpW2 zR$5T-?5B^g62m^GyERkT8^eK3WvwaEn#NA-2y8lgx+fxwWtY>e8prmgvTZzTpxR>s zJAnTBej;n14`LGAiK-Se*o#N-3^UpJT@b`9_GWuLZ5rEhI9J2s6nh@~M~f+(kO~HI z-1i3&%SZHXivHWF)r2;flgz7u}3g*Oh6C5T@Aia-^+}Su6Um&Nn2?2{)?u>uwdFR z|7j6}XBl*X7M8(tRIo8*0sRG?QA0^}^h!z_$IPW07?TRD;3t9+Q7#_ING<~4<0<>KQGio6~CL`|& z$63rr%9yq?D`*7fG9jh#kjGpvf%;zNw;vG6K4t=?kOhoy39!QqM@J+_n3WX7QDzs_ z7LGA@sm^$uIbZ?x6HNah04JH|Ct>9jbDC!C)6AR*h+JlzUVwLn3HC)uSD6w@R<1EC zvOv7fJf>{%0Tccjk`I~Ql-xdIiaLS#mV2KpMM+3X@CN%q4iDWvnOF;g+*6H^I>g zcDfM?E7|2T@K&*H%E4RB4xrzjtYIh7em8^NL1$b0*eOVpR#s2U&8tXP2p#tv(yZRn@&yr6K7yFCryJa>^cvlqAzg;2Q29liuBm$)G6pO?A0ec<5=S4#EetK6@r0IqS5 z10i{x%YFx&Pq^^=5P8K77z*%-TX-9fGF711240e2LJ}nB3v63JFHJD4H$+wmV(5Z; zw!n8SJZu%%MuV3t_=%R`sJ1@wh;eA0Mr9II_!M+vXT@nnSGl0v2AL_x%6~TAY0PYD! zz60;RV8$?5c_0YmVDq71z#B+D5*V7p%40!`$B=v~DE_2%I`W zvRv@?A+VQ%4sBuVl^~QVr>_N0bVvWKz^fU+JHZ|&L>41Vy9CK8!p=6prV8_qL4BI= z4xLI(7uKZy87sW<7Q{H=z$kc65I$)Rn~6f_`QRl9$5RqMQ`ln`h_i&LG!SMBTciWb z5ysHZKIRGo=fT4~;l;}U^M&EZKui`|(rU9%Xmo;lim-hP_{$dlO|#8KIY_Gk_$~ z1_AW)MDbKXyC5pK43V26-4^ifiS{l)>pm7W8wM*cL?%?qvFDmY=5U-(h zC|7)_9O0ITMf3VgerI5NlfkZzXIwRXL8bi*JB;jBWK1*lG3%^|>o- zE^VE!vi39J`!Bg3C@I?hrIQ2Y)*S zWmK&w7dTTv>Vv>Q+qo!V!)qYM3S~4aCE`zqqOs-+*?g$q7Iy0g;vHdPD2NY)UUVk> zP*|5XMo)w(TLGR5lik2eu<$zuD|0PY(>)5Vev9>9)ER@8yQIY}%X8=se4EQi8n$;F4Td0X=KXV`o!=}!ISiDVP4 zVw5#M!6{n9#r#R6Q zNt5Y5(J|>YYY>l1v;3hj+0u%Z;26t!^c#nG%Mv;kNU-d^5|W9QD=1k{vg|~8=S<7i zbi;d=rEnd1vn{hJ2byE~iEJiY);kAmq2+i-U}=_*%Hd&&W!5ApEVa~*0Z6xeMOR3c zS+>uIzvY&vGC^En>2HrFSY>(85!hx zo2P(y-?DKnw9-S%Bey{OU>Ql7+b7HI;n0hg?br)qjO?$v@HbWVxDFJi$s7(qBwp6^ zB|w6#h^i_{vg8)9GDG&UC*1ClB~JqHxNL+ah%@B_hQms-T(APXJo#*@YVMQI#AMG; zY8xdEbgaBt!dSv*jzmn$=@!WZ6=K~g`MVLYT**q>kLF1p(fHgeDWiM&`y@ZoMzlaO zu>j`xOEeE)rBI@vTEhWJ4Atn5OP($Sc0#g}N^mD7J39e8C26o2rcX;c9*41WlF78U zIxksL3UE^R;A3O(?vPj7tOWy<{kzD}IoScYv{I zsSB#!!l}|!I%$iQ)+_=@kn+=gqBLeJY$i#^Q%EzVGvqLqDm_YD!NpPsIz~&A9;TC% zCDJrn2v9L22Z2)av>5=`gJp0k;D{ z4ossT5Cr8OfnMkJbQ`40%B`Sxy-8P4x~;nc>)mBk>Nw1In1IQz1Y0$3!&6 zIN#y0{7>Bi_?oaa7ZxTynT^j$H3IM%$>bD5G>QqJq<1poO&8=67%k;$iA>!*@RFEy zzW_^S)X$)>kU3}z$rPq`01Rd`C4E8M%Cx6i!fs|B{j}l$^P4LiA7#GZRI%gI)uLhD zd^FXYT0B?^jg}g!-nA+@2Kuk#8GLVD_7UIPbZ?69Z6{E5?YC6Q)!T(H#rNNr($R$T zm81A{=|a)Drc)1gJ3AhZ-5U?Z_xA0gsKv5xg3{Y>4q785Iv3yjIQ7N%zEkKZE_CTq zNRGeQ1C+^(zBZmVmdR4W!%Sw49s&!PpkxG}#ti6(U{^AK(jj>!bE+0hZ)RLGpuL^Z zO$4@=IoSqSF>{sLW?IqV*DdDBPcd?2MP$*($DIgwa9q3}# zIre!Thzq#TKcSw+ZQl#xN-n(-uuLwBHndx~8LgqPlWW=xrVnsyZo}UZ?t(jbXSfoo zpIzeYIzizU*Y7%b4>^_=uqdJEC5%lM{&Nv}ITlApfVk7bhOR~Lvk0W0rWIS<+YE(c z7Q@pjdjC{*Kq>4_W9$70FrBq{jp*jGg;Xw?&jz-y*xu`!Hi5t3Unv*r@g@u*^vs$D zkzPZWG(c)C~ZT+bw5G!AIlI}8}D!v@)J(X0yl=aMKjtICSfJ8sZ0U?Hieb5&$i}|@6W_sRK9fhCaSzkW0g`)}HV@$8 zAd|2U*db=aOo)^)T{-}qV){OT&C|@FLioGHM2v>b%gjG&5U((Q#Q<8NQ#IVCT*qp+?&w|2Kwim4<(^y|?C`@M;QuD;J`5usrV~HTMTd<7Ur-%XDtdB48`Ho|H_k z;oQ2zLMGR{H?Z|w=y#QqZ*)W0?_S#$vOUf`hhneoM&B z;BI86{|H05tOfO&ZR~m@)OWDgXivC{y^Jlh`4M_kdeG2qB%aghk7qE|(sdUoqei{O z_tDpBkd7&*rE=_=S@<5wB)R}ZF}-QUn9LlaI%NX$w-AmKnd5)MNfJ|!!q~zrdI!l} z%#Iv{bBuYh90p67t9IbsVFGA(_=u^2DZ(7b(+QCJx%n7ye|dThij7o*V7kS8x}w#p zJQjvqX9h#5?Sw3F+s&a{@!1 zPi$|hM?`Qbzr$E0w>=1wQTS6t5Sh%4hyWJNJ)-n2hC3wzn8FRDlJQjTDIL*Ix!OBGe8Od@pgv3R zW&n7z1$AjTny)_5S)Gvx0!;P1Moyyf|`xNTPNH`g~uG>D0c+0SJ=lE z#G^u^w6a?#P#1E~FN9D~T0@xWylo>WT?YRSBVE%dW9XJhqqn>5Z}=XZKtIjt(bpel zLVpwBd;d7P#yOxxe?&QO1KmyyJ39;9KU1mfGiXyDxT8-5!@?wgOHd-1URNMAotgh9 zKr9p31_HC0UX#F^!}J&fGpWonRMLfunFF-@Ph)<+1npf+&A%X0$ejHdpoDqw31OaK z2KfUkWg1O@vCB-)Mv%P4#M5T*Av6B~M4mHQ^!xm`Od6fJM6eNKp)i$wM{{TrtD-Z= zxolT@!zt|Z@1ee&O+5^^YuTS#1IuQ8XdT>K9t0@2@>ZjKu## zoE-a(>Ju8)FVy7FxOrpyFGxLx4IVWhEPOP%|J2G^5 zc*x+9Lx&C?(Re`ks7Cy^M*W8lZ^TPCZq>-q-qF6%UyhAN4eJ*&GPLoSuy7|wIBV9} zzA>>J9PFFgw{mRSgV*d4GJHs*@S)+MjY32Eg!KqBhudRFNZ)~B;s3u2d&IaA|M?2s zLPv-74aGbA{MxEsOSSj)&3B5|M+RMo4i6=r|94;G;IKYD2K4Rw)$454*r~BYVoFLYEfQ;5pqrH2$?#p0PDqP#v&kGlL10z z0Bi9DV+}Fvg?4sA{PAYd7pyJ+&f393%Ww980Rx1}Frjs0p|G*NQ2FOKzEyFVfvn^U z^LNOGy|B(VJeU1D>m$nuSfPNsBMyTT!{$nQ;j1)HhhN%S3EPtfB{F;B4 zU&O>cdI9Jb_CjGt2ZZJIRbMzQU>tdptFw>EqnW>>$-||E zU3J9dJz`Le_I{qeCSNyy`sdJ$NOtw@$2tUg*|lk7_Z8D`=!gb2{9Rp5&VDWq{sDph zrXXkkz^3^2mEN~ycy&I2R(v#$t<2$6VthRAT?0K$e*PvuPY;Ktc2$_aL(>{T0q|yW z@%J~md3H8=hlGy|8!;lp?%QPEm~Ur)lY3`(pFlfjH&;^?21_m`SKlC?z~(0Zt|k|+ z0MG93Up>M%MLs`)gM+^V8r0GJ1eF-?)MRq@_cnRBI|l~&yPE=>1MM7Ycm|j}f_z*9 zJ$-$Uz6At22fEkiKO5N9uV4ACZCg7x&j4o^FZTv^@ey8D})O?Y0@f1_gV3a*wt5 z)1ZM}owj!V?g8$B4a}aJ@t&L<%$}Sa;K|to9iRG_tAA4-Iv@^rvw(v=1gd&~6Lk^? zlTVO0x{9xBCwzCZvmfhdZ~iZccM<5;!2uo9IncR9Wl!?(Fpna7*6M7&7f~AT?dulg zdHT4ycdbu6A2%2` z@jYx5)?MV}BOBDO&S~_UXZVPbA>n;P8`za8Z>BUM_zdI z?Y$iAeyuM0e__$_D~pc*V~b8-S#w8stT@XMmrl<5!brwR!j(Tz=B=_rToc;q6y3Kho^y z>F8>5#jJ@n2#YR1LAL~%Uy%I+1N=??fe!ZO^_fQl{T=KpW^Y$tZ$ExU#nkQY48xd~ zFzxWuhj}{sj9}XNEbis$z9gcxs^?FCxOh?mMM1m!IU=3&GX-|TI_*Gd zs-t;<{SPJ|4nL%v%$cV7bvxp9^VEumaxxFQN{kt|!e;^QK5m~!4WCE5`gfqr%E6&BwW>gQx0IjKa6_kXr9=b9?dm%? zRgO3h8gU+hEzJXt#{&IZR_j;+{?6W&4Q%iZC-ZYpjACdfVUso9iI*+`)b<>ddO-lz5ywn#Z2ciYWRqeUZLRw zMh-MN1r84hAJHFm1G`FY5QeOmyHEST4&eGb`viEn`v=q@dmY{Uo$!IYi_h^tqg8Ly z8%-DB<=p8TFSClphw`5pVKbATi`}=$y!j5!0Ub;+;~IaOy_>?wC3Q+yRlq+I`N7`BwjeS%cch zy}iH5)zzVW#XIAtH4m>qqCnO|{{}O2Y`MU*DF71UWj)npCKz>+Ou8$StwhHB=<0U+tX(97)wl|OL zDwLPtN1-RSy7=edSkY88CsYkjB;@Xx>Z;EzU-PPh^k~jcEfq^9?I_GK+VkY5<^UWj zu+RQ0c2s-{j}cDoWY#n9P`+xTFIc>5J{~VuY{T%;^egeNm{qZQ|c5U@NorRxn=m5Ds5Hgd@#8_Dw%868uv4l@Q-Z zv>Ws5f~rGjH`kECgZqT^9mLNr=q$AQ()3c<)E@ZHY>}p)>H=R|@(LXtI@lFO*02GX z56lkCDBRRQK4J34yYTd{%oQ9EYQ>b!&pH0?-p+m|Bw`K~TSRPst1--b;`%%Vg6P&H z$tzX#DSQ4sR8(0ikk4<)!HH*A=AIQ8&#&n8{0`N<*|)|+C5wM%%4}R|mh}k4Jnd2K zwO8)VK}LMOelGZ8X4BGU?%n3)*Rf(CInqcn&vzdF?(V3|Q1PIJ$=u`Y%$$nuS6$$% z8O*WrbyegmU(Rp*;QyioV4lF5oBY~WDmqoXVeE`k0?josX^dYb!N)goe^oT`d6)$`d(7H@}^RrG0B*QUM| zJ=%fR3ON%^og2{{z9gC-u%&s0tk?+fYaKtcRF<17 zhgyZdFL}JbYPpw_xky*J-d3&KE&(VAy99iltMkUHc)T%wx(T2JA;7iLHFi7Is&pQe z+|TlrdmN;Kd`eDRMo*tW^KwRMm0kTtCKTPOD9&AxXf?8PXi&qY6ZVn*j>y3(y?tIg zs_{PiG8gF`zkU=x?ke7A@rvgC=GLr=$BSc2Mbj7tXvK_EZCd(@gSiO9#^2NwiMVSw zY~azy3B_u~qx?L}r>}vo&H0tfTnDY(FY>RvqOqv0syb;4>dX8B%zvxs%V__vmgleJ z`1q+95dh2H0bX|1zVm~HZ=I(6P^!rKDiEFx?6tca)r;kh&)yLkk-c{}2Dm@{dRW@5!(}tD5`dBR5_@ceN_snnz#5P!vE^@hwnw^gCr#C zI8egg&efc#e@*4vm7lP%tl(8u9>`W=JfD(5K7r)lq^A#6Me!y>MvfdF)@RhnP?M>C z{gA<9LdK22ZHmFTGlj|^PH{$t^|dqO=GS4~c{)^O|K!fWoL`tDFi%R36=%ZO4UmK* zpBUAs_DrAG-LH>G|3!#@$>bu?(;oG@uAXjoUtm>@5a{WEJwsp>zXId=)cn{b@&zfr zEZoJplY5XKDuyn!fh3-p@>!(vvH5e^>bnX4am~AR{`sp-oL{iab3#QS&bf=5YX|er z$G)P>NOKU?=*+B&zFaw9@wIZ8bM^J<%%_Fb34D#l)s>bWS0^77iuqK6b~=2TQZ??r z9z0)jtD4rs+5yYHqtx{qZ%xP79{Lur#@5=am9koYmaI+Y&C2v}L|)&X!f z*D$y8yTzRHfF1*x45lt`S92)3@OMWo+2A){4)|Lp4dd>qlUUCduJ@#D2tzKc2&>C; zOy~_P+`GH$!$GP9BVo1k8^}uA`OW40W_7#8X?AFRqb3Xg*F=-`7b2Nv(=|V2AdQz8 z?kNW+3pL`deA}$33I%hof72(ZKfos!tI1|i{7&c&8;f>WFTa*xnlEsN zm@o2(oUh6KkC-x+IAiEw(#YVKE!SqdTs6zEua!Qa>6n|McVtTCD5d^t`>r9kYlMYZ z4pxe1f}buFHD}n6Ui;()y#&Uy_3p*#AphQ-_Rtilm}e!SbW+1=^+LULW%ux?(tQuL zRmyiJ6=dSJ%M+8YB2w~Ss41nJZ)XzN0I^Pz8<2gv1U}W6T~BFGbIq*@pp-wsy}$?L zrqY3Tp?N`|!&$9|t~MJ|Z6^9;nis6?x%$ zgbh$#EA_P6?)qfX-?;GY1Xr#VJG%Mp-rT=>{{b!`ALs;$W9kQ(NHm_OwhvC5Z`Uw= zIv?xf_4tufz0bUXCz>OjA6QQoIFzW*OWQCckQS^Ss8fD6LNlzP53{n@DQ~y|MN!zB z7UYHafe z5-K>tUbrog4dZAy(CDM2_nM7w4CJ1U$E!^jwO1MDOL$A+nAQxMBd#SLAAb7L|GQn- zCtVpiYBkz1|2ovANN`%dc`*m}>TmdoRaJRXO$h)iQH|=F(*(1{hBNNu{?8wO+D)#c z&m>oA`lI1f7jVsI$;eM}=&7Fxrnm8kVix0BZ~2S8g6pC=|bV$Rym{L2WyE{r=UT-`vmF&#_sW8fnX%1)Nhek{H6dm}6rz%9FG}5p^TM z)DN&4u)o7o>t?!uY(vf?m9nDcYJ2Q#2>G?!Cl?d!^b2`0TwG{5s+!otT0>VrxQ<<# zCB7IVH|H+c>etVq!>g(wK%ufcT-`$s7?Ct*p(M=u@v>1yMVP>R^Y*M^2I_%gPi~6y zj_fHhX}Vr7r2*mDoH(;l_$s)Hta5U#LvCsK8VG^s_T3sN5>zV+sz85 z`)u7VDutFHsATS3_`ur^q%D9Kr~ZZZy9UF1&ai?Xmc=(X%Hiyzv}4oNQ&92k@{-3y zJx4r3DzIirw0#()-CZMV%HBe?f8jht4U!JV=0j2-m0DxS(X3GSRt&6LDVX+Ogyo z>ZAGP&2$2`#LrhVY8_T2wgG8gq>O@#1G&W&+(!F+90H~X=36*tKuvwVrJC$J6LT<1 zlc0%~)4Qeno<7A0?9_7t7uN153JrI=+pFi0*XNY;hNnCvhPzwH3-ZFn_Pu)b@B>09 z1_8)bPd=?c_3tz(u&YOhKXN)h;4_1B-d;O+gVcc9^(nq0L+` zv_ACSE~l&mOmnuy%)lAs`}>QJ@8{-EGdy)U3@-xo#e70bi+w5aWv2ZuEX44EFzO*? zB1_b<;6ag;#DYjZ>z#v8kBDw0)&3b&`}#EL2zjs#juS`_lj-dIcCi&(R#$29?AQkS z;P@%n(8L

      EvKdhR%+Hzj5+KCOq@V@&U?PwO^y-)z)_vuaN=w4oZs5j)wP1yV#xpr<4kCP6j+rsovLxRsh3kousoN> zDYyfp7xK$Y8Xun7$D)+r7Z8d!b7(7SYR!HmkUpiJo!R-9I6yx*YglgXM`FF}P1+SL za#KTr+(C|rdf~!J%plcSf4cbiBV4Hp;wib+NM_ytOkay8>R5Fy52}(TrRqVrebny! zB>k1&5`Fn`?8ud0!6bwK_`~3T!kgd2OEz>EzzJG$%OIn7pxw6hMxY07vKl@7P@1ep z@W3;Zm39w%eV&+x!^4kHcA+W5c7=|00)-hDg>nVRf^l>O|5n2^FTntQL%V)r2UXI% zaHHci!to9dw@fK?fFDZ%ZZ0r(hSx`U7cTB|^Bj`Q=K1mNSY12Jt|$qju8AI-({PW+ z@bHYBBs_*q;KzAz0Ygh!i2kn-!*cQZ!wsAqahi}%z@Su#qX+&%7t=N7A0i$lJ2|@T z25;Uz{A7Qi2YA9tgsEJ@-B5lsbOZulF?+FGPyCaQHL>j<@?mUA(}}>v2q>P%s~Kq;uhdXS(`A|D1luKJ=sk zif3Cbz?9rBjy3bpvw?wKEKspHuAGif54X!x>Uo@j3YIvm*D-A-2bernj8o3JIQ;TJ zySo!+u6A?6Gn`J<*q_`8z&}u+=h?HuExQ#glap|VJ*s#C(UuHSb5Tkk$*2|X8lWB! zH;afM^i5tzm-sL&6FtoC!r+}eO8vJGtsRO95a!yfqa6Ajy36ago~U@yma}Mp z`n)LJ3>$LxVe{ebFTdRX(Db~gfgbdk3m(>oTPu(Ps0VDfuP3YB1OK4T*k_wjtmW*Y zU^B$J-%uNTeU3o7_U!9`Z7{C77(#V1oH;|tBORMzJcgU|ykuaXQS7Yv){FJGMV(7a zrx0P#k3GUthN=e~4A1241{n#s{%*@D>r=y|d#Q0n6H=&UoFfV6QezULq*bqutK`lh z{w|n%--%&;i=rOqWKLJdU^2j@%1OWIc?YQOXT97CEO9l|2BhYo*ds(D6dQh!sa^|e z%}5lvc#wJk+-*biTD@+@a#BRN*fEN9x4WcR312yS%E4fDG=j-W(RFmi7>v3Gpqu6A z?LRk5KQ25xv)yrq+X)z5xw(a_@p`(RK8JDjudlxP>+3HuAD6kBl>^l3?exWm>U^CR zw&3V8Oz+nBjAhW`!v7kr^>bc`|Nc?Gq@6k6E_Dz7#ZP^xoe?Rc9! zPit7I+cBdE)IW?1fo^rSZ-jjZcke zMoC>L^rIg5ZOT&Vl9hYcPdu>~piYwuoR!en zO<%5{U^)1DcsPPbpK#AqCB1w|fYb#Y$S$oRAgnIt5t~uEC7POy0O@rF8679alB#)i z%G?`9KCe;ISK=@NGC?2=*{S9a`rGKc!O=ivyjo&XDmJPC>H+Rpvsb`(wzd#8ATse#bgYoBL%|dJluvNW9B1kluS+IS$HFE(47#8lENHLci#MEw5aDFgLFV;Rr!@ddo| zZpPoiXn{TN5f)vj9zy8H>UKwuKe}65qe9@Luw}9!Sc)MUFtl+41LJ(X8I%Qe*|-#@ zoscqJ(W19>mx5ucx7L*J;Y5(MZBC}N%`(vY%h`wS0EgJV2$el8o-l2bTM(yQqdN=* zy#uqr-a{E`C+j24)CDbncm)-jo&qg49TQ{&)QfC|U0C)PjjE6t*`agXPk+cv)2Nsx zcsqV(ntECkJ|dIL?L~#f*=0l^|CCtLey*Ygfq2Wm--zYwL<-4cXj(7$XPMt9SR_L$5~kE@D67{wXR%GbGMQv1tC= zCuyWA`$&9^l-r&LM`4~ar4?v3)MomYC<{%UJDE=v!=HZs9_FWyj&tUA(5r(FkUkp+4>42% z;o#uZIhmX&#luF3oABJfT|kZM#&P55+R7(HX)y3q_PAZVsxd}sXu@A_9}`TSG-t!j zbc{%uo5s)ZZZ&dYv>!fSj@;(;>ftXqqz`nEU9eEN^jW3ctD%6EZ=cDusPS<6K-HSHm^bLUb}8 zJRB8p%gCnvT&o?f^}B}XGP}6$6|oacujl5Nt`4z&`}H;%sz>PU$kp3UokS&XI4lzR zmC$Hv3s!74C@U-^UR?#gp9xss(7 z&h+5~(|fRQ#We1dpL?LiIS1DL>{m-0e5jE&sGq*V9=kH9HMzIgxz2?Yr&M*YtL5+7 z;P{j&`E3_nZdXtOZ^piw*vcmu|Yt>+tf;P0jrMCj0=?{d2K31h#@I1OiMiwB&!vdT~BSVx&rx?Q5WJb4Tn}uxLz{FK%Kl9UhK8KH2=^{r2_uf7!v;U^l*9uc0dn zbcnSC%REVh$JwhI=2P=xdd_%>Du(Ot_pkmErBHuFaI;evq|MI81(Zo$Vy+nJL_`O^M)ttW^h2Py)$!E5g zeuR?xIwNF$6d)>trUE$`j2ZEmyOQUs)wV6y)k5cEdSPy@SOq$njc4a`KTRl3=^ZAJ6&7A@`RNNtuNM~wzSiJV}&&C>z-I`7gc)M#{|<$5?&v3QanHezW~JAW6AUtaaNuK%zkS(nb8Vi z(~EU7;rWDCAbn|v9NB-n-_b>f|A&@r_yig=Gsn9>>CsRTf#Cd1dr4I*V}%%vP1c4} zo`GJAw=f1QpSi9!2iaqLZn|E0=53&Td$~I-k`Nt&B)PXV{FU5O)hwpSq9!bkl1&7e zCoG`np|L|cms6W`u#gUc1T=i_9&73-2!DkjMHO#38KfL`2H-#@pzZ;DXkB?6e zkDrZB4v&UM$VWFkgv{xYY)v1SGcHFeCVLtakeI?RXf?+BCi~X)#aE&47Qy`Jp0H2F~ zEt0}9E*Z%807Oyz>cgyI#Bsq}5PR3#==v z`v=^i@e};ra6EP^ZOCOfA#gB7+*$@w1a}HI5&o281l`dt3B}=fhkm)`6OZII zW3-D(M*>sy!G>dsKK=0TJWZR3FQpo=ZkA`m_#r1SIXWs*)?F<;sECS<@Qy)LVnbX? zh@nuM7UC4#`*PKgW$Xv5*N74>GBNSVeot(zoJ%3@E^#^#hD1rP(_*{-VyUJzwIoFM z&-e=Tv;aAw@(O0)h}PH*j(hbzPsMq8K*U~sk75&gV-;M_6?*%Ugca3l29pd9zdB6B>vEKc7NW=jYF%i#9;wx)}mihdi;EfC(juSi)So4o?fyE1Y zHm$4j($&(bLROhV2T>O;ojUR-+8E0N(l|>n&6)O!9q~tpwwAT`WP+(VI<6?9B2V`4 zaQj%IY=BdyZ2y=Xy@GXBL1Pru`JUdcB$&FwvkFH)QqMs5=<+$7!6Pmck~q^{#>z>{I6XLy17Q6RaI9bhgcYGBw3Yhn7>MfoT{14q1(1w{ByS{@Du6$fcJcv zU|kYKWZK==NXyifU`LOpsdkZ8jr0O7y&XP2N-y{*K~qNN?&?!K$P3Vc8IonAkIf}z zP)dEIIC6O1O_y*uxcNqMVy;CEAufxWObJgTK3WQs3>U@BnKc!84dSK{#?{?grWM!_ z1&>WqI8*YmT&)hv@A+c=ytTh@YBEf-RdbFa>Zjx^k9#@GAo}4yNxDXQ2(t@#-G7_c zA}=-j)n1GC&|`9MC@8j@yY)21=aDJO7(lg*&nERnzX4G!bH*ZIN=j}1`Vdk_wFg`wsYm=&TGw4|KH**5ANhRt5Y0r z`wZIdf95f)EswGWAu5m-uHxowE|K#@4hTmu4F+58Vn_x?2^#2jPswU1@t8bwH z-r>)2?Xtp6l|kwRRn;5NF7iOFiLQpJxl85dh3F@YBG`)ILH$?ng&LOMd|3B6*KNIUHWNqO+hJ)_8r#~Bpab3yebJnACYkZk+< z{-=-do_YJu#_GXb1C7KB+Ur@Yg{TGhlu0LLMPCceibij@b?)=e#~k!DP?s#A8v1*k zi>5hd@1kCxaCYb-m?4fVbXM?4xWVi-7~Dd=r-l-6zL`LR*$qa==GwrFUC2O)E3BNK zBM)NakM4A<-M6?2bI?|3;tHIowCDw=We(5G_~`LrS^aM6JJ-JRqtHTZH*R; zgeFRw8iWYKJjX!6$kfZ<$|F)c+=iCiTwW}%wA%;~8P*P=glGWTBbHg*T;B)gBJYKK zu^}V|U2M2maZ^%N-Fq)qADHCCJrcT%Z397DI<(Zb>|!0eK;fD^HF`8dHKS2Zb54(8 z`=*9zZsN`YV}0N--g9e#I5&mMpEFKCBwCll!26DI1JF+nGu1-8Xd&Q@d;^u<1Admc zRz!3I_?*29)G=<*`G_WH;1h1D;fH(b@*acHj+{?~rKVzT;Wn;zR)pUPrjM&?GX(Fm zfh&E_*_U9sxyfj~{x<}z;a7{R`XqB=`z2Kp-TZsNo`^cdsh7#hB0i4ui5 zB3yZR{8qB4n?$mEz9+gV?3^4pZbSpuhfYj&4CJCZ$4e04Pql!yVm!UW_B+>hM+V_U zaU=TMNe*3W*Uv6tTsll>)qfb!NvK&KenT5$f$Y2OAx0w1$KIkzhJtUNefi4 zcTf?wdY~4n5m$T57>%@>$gL!g_{L6G5J-2KZyG%59H}Yrs_W@#XRgwRfmMM2#`$~= z3Ur6;@3=RSqa?qPjn&;I8cab^86=B3H=Y-LF;^{M$)t1!$hDeMqrVDpxZGm>saNol z;02}@md(xhK^+@!7qFAgH#1z$s!oh#Dk009-sL{a zrPy1bL+17_(lp!gyr+?^6R4o_lq|1{JS8Y-(x^9~&xpCR$X*gc5J6Tgr;-9@3ulr) zOdt3Rya0I4Xb>L9Z5z}Jww!cYg4PMT(j_!f$Ga2m6qsZdgWvz&<&OfIrdSHmmrGpl z(mhWzEH$5n+Anfu_^gV?fJlVj2e1;yet$AC^D`=vi6u89`u)SGr|s)P>oem}qolEF zCY-P6Wg8MK_q)UvcOxuV956Z|M9|wC-fFy_N&Ngi;b>0_9k;UNgJ9o}BDvuOD8&|5?YiZkf$>lG>>w{RVUg+tj$i zT-N*vqa%wh8EVENQlC_0(WQS0&v>b`N9q1M3OfZN!b_wo>GiIcO_^()^DZTSQPNHW zQT!`hf&hN zO@Y&fHD3>1k<$R?OS3L{a0K|!n529hTQ|1g(8;ITQ5JItyoT2qf)se#pno`#sm}zm z;83+pmt7I91A8K;3|gMo6UelK@%lTUZYmpY#{ICaY)(au+71e821J_&2mj+ohm-~X z;fy6?bV->lr!O}YuAX*10Jny@vshw+eH4PI+0(-M==N)0;t{2Sn2LP@u1!V-uHJAvFb?*&cZj{dZbQe%)Qe;1h2A~Q@NB}7)t z06ELVLqWLrY`m^fJH+sSQX|pfE^@S>DjnwW>2`ViRLXBAI!)dgwzK+E-6WW1!K@y4 z=FH24)gA7$(?ZYfc56gJQWa!~VMl&3Lw#UFilM7`+)j{+ns>?jP;6qp80KC2A2uL$ zLjoG`mbY%BVsJndGo}x$G=wzPk(_J(<-;}G#sWk>9LqIiQZMrKxztP1kvBmgLI!p@ z2aCXcbDrW0;b}61|Zsz z8*dJ!g!Z0$K|L=KzDjd8JT5KcBgB|;5nbniqMlZdq<(?Q*q1S1M`Lk=jz3<|W2TWl z-@-u!f8_opcdl^R?}2Nqns@huEwz=!DVrRqk!r7=y*-WeV(?hJ>mr#*3v{RfuD}@W zHk(M0&j|l>rm+8$eb8O3yh^XnLN0Cqa1oHKovR@&F~AXdWRKLS0D47cll)4@de23` z0FrX(!bdyqOjr*`PGVx|HP?muTo9MJ*l-M=k5}*R-+%v#sr!wr3V=5O0uKyCg(KlI zm6tb63BpL%-3;DVx3C~Mtx3QYc$=OEwzb?{$PZ)84G*j-m{0Lk`Pwm6dvX$@K3Zr8 zgnC#7*AJ)jN1m^6{a)VQAPW$bU($!-{4rXL^OJ0sCI1Y!&NBCBK2Sj1EDqmK0Ggn& z36wRQDShgQ1$q9#bQN1($_u0$FHG>80h4b(;0ZC%L)mkNIpMsruRPeWWJqKkAO=Qv&B z5dV2>v;-COiDN~nm`N-#ZnVj9x4Bj%q=2M|-0JeST&wn)Fe7|@(j|=8wBX4go6@e> z1V9)+(*fB z&jRyg*+ZW-!#mgH3V|qP3@ERy#x#-Tpf+i-xkcjF_=i&n{{)gj<5A2p2p81dk%z<8 zFIi)P_>;|)mp9|wO|oSMBXd7dyl!9=&lD!`a<7jm-`V6XELo1pxF+dL7Fn5X$`m%w zFfCqh60Hj9gCLNJ-+>~?Qe&BOENfw1SLg|aT}kdX(_`-l0;C=lgt!w@8_WthH@dYh z;JAnDHJR*`iB1oHcd}U9-@=^wNVK*m+%^kG*a!^~DuX+bo07IfL73Ah3Dzso*TRQ` zdBbsiU^>`*IH`Q(r&Hu>0G*gapYrYWg}vXYbPrfBhi-d&eKeX4KYdCHEK32z{>avK zMf-etlGhNuMtogzuBiuB!_o>}Y|k$iz*YMP)lf}gfAmq>goVNEWICPbt_0LT-UY;P zDhn)3dOJyF&WRt5w>LanjP?yn zowMrQ#AjENwR}Vd>a)g~r@#!@5+0A-Py;<_N{Xw7@o}b-2+WhF1p_lS@Un2$EG}z& z>X$W2mS?OZt`TNF6p8aiSwnaEuS!^A7lQuys&gNxH{S1oN9Q~r4pET(25<8;MinPO z!O!iz;hPuMi?;$BJ>5E`GARiG82E^5hA9h7uGaL^!_V;$zjZTTQ&(-IEP|eXHm2v) zx1S58Ww_5%jAIN32k1J%Gd?Q8K6ME;3-H@@(hNG4s9~B$A)u+BB85VfG$5L4m*-ew zxD(xC!fQg-Lh~zKTXAF_b_co!wjg9?U;$?*+X!*qJq`NX=)K&I(-oASZuPAQK?kTu zf78?9@$qEw#CfBa5GDTh z_Vo{6zBD$&xba@2Re;o2kur!YFFe|hhdk|NO#&)k05kg8`DeF_;3d$aQW)l@NGB_H z2jjIxSKCUhu#q4$l0*_kFBwXEZl;cFq$izeS!%s6!8A09kmgpj@wA9hvQHppe|?Ed zmvHDX&lXO>0o8r*^nwW->oLCu>Y2OO@TpC!ZB(f4G;UX!iaKUqd5}fE1|kL$!TDDa zobS=*xk4SQW)ie1X{*KG=eHxa%_R{Mo;@znz(bFLqeHX_=ca<#KtnKx4~_lXI4`unH&f}X-@!SZ(DDQ3Y6dCi5~ZGlH`Rg$3^gSrhBXMUYM_@Ez+rV!DYIN z^@aUWeMm5Mg2+!ahCU-(saVi5h$zTJ#Tv6q>2GPxr-&OqC_{I=q0HFP^_kmkR|jbI z`XCc1AtZivemUJ7;VLCueQc&TU6WOK>>#P}a3Hc8xwMcy=VF5`yj@S`$Y8(4C1M?# zhP8TxflF==&cGFq8*c}i>epCseCA9uWQ4IN{n%h4Rnk~&Ud&VJ24f1gvhoFG;`>nO zQgk(*39dl8yKy(YUg1({H=;{Uc>nq*+~94?99P}M0g}t=K;m|%*RJ3+w%GkPJ&yup zjz`>8*Dnoj7@NHsl`+Btw>;nGH}6*v1#m zUP1c~CosFR*X*lRl`lS7Vcs9lOJAS4RwZZedj?vE8K*(Fu#y+ls|zd?_1kswq3Jp2 z-F=2c{H)BjX9eqCSbt&uq4n4L*HmgLdCJb955S!%Gug(XAgHDt{Hk2Bd*?j^HIKrK zO}@C>4L)U!UJQ`}!X5>SEb6gD?G-4}4Bb9QI%JrMk&=R8rVw=6I=kicIo}5=X|lU6 zK7CHCaVPByQ`LfuAm2Z#U3)gU&_${Y6m~NQ4~9-HRbxjq>o{s7%u0O zuY=7^ay4^#Zshw;nU1(^qykYWtDAT1H+h9*-XXCB=j)llaXd;GF|Tn{ug50mD3>B4 z-=Ipc!TSVD2r7XZJ?uB0&PH88hGEoj@6@$f)1%}q!<}hrWPmbPfaDC|&TJI@%(FBW zm^PIR)Yr8fr9V1mk$h98E3*YcpbLv8=>I>hx9?u1thYU?wtwuI$F%lZL}q)27UVX& z@%Y$VsADycIb)1!MK#Wuu14F*jnJiHlvG~#Hs&JJry&F0}bxDUte^>Y2KMIxS{_3>WFSW^Tlk9^fWVjr5wN(?DvL z4MDAP*ux8ff|UN9QplR-4tXBtFTv8_&ZN1TOJ*27XNxp+U#TdGd~g>-fne^L>Juq; zvsd;s(r}#&(0S%a6o67QN=LFzUQB?4=dkJ5n~%~<0_in6{BS_gVCV85sZ?sX+`t*d zrh_UJe)Wnf0Y<=_7L*5Px6<|uPmO~x-j6!+a7k-K>B^w0jX`s^=$#W4`)b5eXkpUQ zLUF03J+kAwSlSFRW2GIw35k6t#<0VI!4`TuM;Hjs!O4Kjmr7c&(r>lnc9b1f4P^FY zcdTvI0NPy%rd1HuS5xNe7EXxW26_%e8tfeJmtDXo9V z_i3gIO+!)8m@`-(7k3+mqojfLD<~SE9&opx7r1Vxz8<&& zsA;4yb3c+WJQRy(l1l?m>KcSaB}OOl{-MippgyF{=P{Y^o2zHM0qOxeA&;}3+#m7N zumjdZNW=lY8h75ygH5LM!`5k(4s@>Bsxsk+&XaEg%9Cmm}&O%+Jv z6{?z=yNJ~(4-scV)7sRq^pYva^#UPoC6B_FN4*-ta}~a?I;C|%*VX%42frjFTO)+h#JGQ z8rTn|t_euH!N&*FfDT?ie0XvLwbSOqs}CRFQ*ZIZ{f{z_*R_-TADOC}u4nXHiu83= zvb(61RT3>NxwWOgH9r<|up#JpUfc|Dtx@O|O9zEQrvnY74@vwd7Uz1rgdC^j`B{EJ zB_%r6a_cjBZ$rw8jot^g&CbNt>z7MlJqAvMI3UJzFM*+vJK8xM_oGZ#9h5~Rp;j<8 zw(kf$CWNH7D+mi+FlxfqLN&_rWC@)SNl7TUH?Sa;QR`Gv zr)(Wzp_bgLTryLbK(}GI&eg27&Ex3^odU_CmID3YA)(A>KI0y%*#T=D8k=pz%KQuT zk-yXOW(t)WE(WJkhsYeYG;({j`=*ol;PRlB6dMnbfch#~x`?#GzmY#9L;#>66c3$@ z%)*%f={;e%f&UY{pHk`k<>2c<-1zLaM|X0Ik|y32WWroa!5(-l{zI4_R;p2XU6G=y zQK7daROZ$!PnHUx{^9_}Els#$2g%@Xwm6<|Z|1W(4ss@dGqR;D@Jwz)-A+Tg#6VDR zM!v(Ob86*g!SuDVd2f1Hy-25(MXA~S^H5H1KD_;UDEEv#KY6o#|K z2nEgvJp_`|BsWT@QSP2+9&8oV>Ux5yx$Q#pO-t-ykJd+Ga#EuXcZ(|cU5w;&5G$Q{ zR4vpFWQMJ{LM|D3+1leZdh6QQ3fc7mebg?-#&T3fu6PUcvXyn`{eEl+(xf_)v&0TJ% zvDXrtUGVfsS~hE-Co9`7;)0GWE{Hi>sS4zw$m3}92G^q4wK1E2JbeH2ySERo{|i@G zy?p?~ASCW@1?Us`z+d)db+0N##W&BvvLHjj2vH++A@>+vM=A&9AtR;ECu$X`MJW$> z6SoVX9)XZ@bBlAAVySV>krpyvt7a>bXzmK;X$+Q1<^BlGpU?cKGjm$R6>`e1nbvup$OtNhEd%-C9 zc9$7a*b2QkJjCE&j7fzg!Wj^nyBXQJ$0RA#FfD}b3S$OfY;%fMk(vZd4{Uj9>pZfH zP`5{vQ-t|=SVWkkpf%H$MR*dTv2X!`vs+T`^YctrGF#rwr>^u%q{4K8(2c2+QPLZ2 z*~;|)g}KChMm+D27xa{cE}9jAT*Kq{vD-J2LLhNL5O z^nMacEBh-%kt$F`>FM|cT>@=wjSTzfyr9uppg59Ek)|+-!Jt#4c0wq|F2bm5E+Q7l zcv^9{h1#3qtlVRP#(iG1soHT83Ub+VQ~r}&;mbf;7N?V#L=c-{*R~8dykvwtG0S*i zMM|!ECIH&(xZQXZf&b>sWBJ!`0A}OIo~XzE235@F>1ew=flCQuvPhZnAHCBxB$~KP zfr`<=CkEH(GLdKw2~zj1MO3OvJ`L3~YLqt??kTDFX6!fs(!QKU-l8%ggO)o*O4@>_ zqSiy(6HKdzJZ<@%goQn`8u$W+@LZgvU zTwUU8uE7}R{_LED=_Q3`2*+MTI2<0H0f+QO%dTKvy6KXWed#G1mRE0>#=ZX$a*w=F7M`j5ZrSRE`=XfoqnCGdNmMvn#QwU(N;wH6 z6{;+lKcLrzykj9}MGXQ1(7l`K3&vAaJjJ1X-dqlSSI{UUlLwOa@Ur%j-&8$BGQ_(< z$swHa5cp>MRiKO?ao=HUBvJDWH1spQjmdLTVp5G`-n|m(lAo#42@X$;OE6;Hen9IT zpwu5;*}8stZO9rX^UP5t;XiC6>}Cnpi;T7ra~UV04>|1$Oi{XaoMYJ|oUOk8BgxEH z(uV3OB_78+Y+~265Iu79dxodsplf*MvD6X?>^=9Gq2R!VF1~|t815eQH*I`7UlL;x zaJ?u(a(EjJZ6f>!0LFr8W!?Xwmw!qyy{Q!Ts+>=HkKrktI;)b%Z|0+sk^oV($x7n% zstecm^dfhnbx};0_2lNzX7eJKexBWd_NtD{2|XmSH#eFK1eEKgtJn>uHn`sXzP)$uS~j#pQ0&aDb$qr5(c3isz%4-fZmAY2}Z>RPdI zq(p6QaSni4yuyxYr6m7Gz6oRW>tq0-!=>O_3-e-xkwLHcYl*8 z>0PwyL(7peuE?riR;ZQXnb@ABzAPuoxE|@W{XEol&a>;ea1x0#hY*Xe=X#mA14Nt{ zb8z@6;@mvk?MK)<8v+Tz(FV#>znU@Fv753!aV|eCt~|B@uKT-s_3#68JD}nWS7abn z%<{UZk9SI~dRmUVFg>gJaTRX{HAhB)Tftm zA_3Dha*Y*{x7x`Pg@!<>Z(gc_D=TFFQ7#OwDU;OCI~+9G` z>}hAgp2`e>C1G9`mrrOB2BQw)1d1x{LU}L^fhF!&O1?%SbqiRb&B#s)+<{26vf(<0 z4)PJh&f~;@a=Y7%Ur#Qb`(Ci8g&i#BE;{NxSQ5-(kIww&c8U9ap>LNi zryqoF^4T1J3hvjq9UrH&K4pV)kJj2A%M+Cj`a?)L;XqsOqTVJN3n7dWS-+fI3M8^jUP;qfIaChGnhB=zxCx(o1=ta z@7x8@oDvW~3|qdkTvVRkQsic!dXe>pVs|`5Y6s^Ig-Rtqfsj#MHyFZYD(3k$rCgwt z=o*|znBTLwN{)C9Cn+4(*XPT-wQZfULhsw{Ud-mu2*3!uxgPxOEpCZ;{pNmf@WtPM zeEo&Kr2Ut<)JCTbAT>cPoV~lDxlccNX4X+*is0w}s$R52FI5{?oV13_?lYY{j&8 zGegJ%L%9ARHoCU~F9PjNuF&D=(wfgiIWkb6xAic2oxTT7taF9BKq3s}A0K=o9v3A$ zHH{|rU;CI~`do3A6jl{=%mfP;L%pDnH|l4zZsje%njAvZk%N6b*S$^Di-Lsu_l#&t zItg~(5?cY~OZ2V91s7RFN3jjZgH#2~ zff;n7_js}>39eCuQ(hGvD2S(saFofSgxrb{D;_B;?VENrQ5>9*x0ppqc*XP7#8s$( z4)Fi4kVTT-;P?qAxWNI7@~BwNPr5vrvozd@n2DYSVidJUfs6DQ(^q9qD8jaMHOe)7 zgVxhJK6GE3ywGl^@bf!LnnLyp!o_9SdtCqhPkCG>ix9tLA>Q58X1K6>gsd&o8+ZVg z$+SoUvq;KM!0is&$ zJaij6cA{jn6MpYQo1IkD<9vN%Mj0HWlggDzPNSraCm!RV20l#bKZF09#3%}ZXe3>{ zn4(+pAT>w(NR6{aMI1PCxrc}pE#JB#rdcNGgoy(QnX zXChLQn&%T{xr!e;TceO_HBG$00rb?pyRipsH6xnET%&sI2XzCDNCyz&7H}L5!yCpn zP8{M44G?b*R|6!~eSTy|Tt(1OtzwjnSzOt0gTg5YG`kTMxq5hnc# z?4&NZb0@5+sLvyy8gWK&mc<>((2?e1;XRpCRRx;%cuy9M^0;l=RM$ppOwyENl|fN& zSKF+~9e&h?K`=H9HAo9#c*@h1u=xq7MB+gg{bcq^<0eMdVoKLyruOuV;#tDRniMtBX6ne6}_dp`@8_=iF3N( zs_ZD~g)rswND?Cn%%#sW(OzYXZNemxA{|14b=vDkuY#W|sJ;jCRT48{mXAWYTkJCFTe4)dE@cF{Kk{!jVJ%|8&8`zp8m^keA>M6>HqB;A(@#) z_1}g)>5cz3>`8C@w_#6uV;}Z#qxu#);V~}K2hK~xp8|oIM}JL11dAT4a}x7)k7h)8 z^r6R6B8V`CNu{+aHb5t6;3D9`?JiqA8 zuJGjd%MOnAtGdQx0`-7tn~vlzqDYr=dOAQo;<$+u#ayb0wJ|1CYN<0sTx1TjI-&$v z=F!O@ycEJk6>{iD=w=kbRyEMo-TR1%;Y+}0g8-to!lYrbss#kbQ zFuh#ecg>_bYDG!CMO45T7yc$|UI!!lz@F)WVG?dN>B>EduyAPZ$)QbhuQNu1skyk$ zNJSE&9u>Mtx#@9O?|**#?n50&>TAY4Qcw=!bx^%#gII{9$?TOYG$kS#x(sBoxW)xu zP(nNJdSS9oPXl#XLEKpJOq^pEkZg;zWsuL|tB1b~c|C*}zzdZ^*d6@lORGJ<`F1$n zr95q5tFOVzZePw^cBImU4DLpWlXM~A9j!7PI2m}VH=&k<{UZhvTyX|y0MhDsB0QWqGf8@{7swiWMb~u;23>W=q zDkgPijEgwVbr1I-_b^v#(JUN^s)lr7hiR&a3x0vNWR$o}8%r7!vwjKZWS=Dd)(eG0 zrVn%B)eC~UdvOvSY}=H#vDFuMI@|{3NhPi^rglLlaLF&hj#r@Kz^ft!Sbvlr;Fvx#9Pe$T-qiBT$Pk1Il_Wr}#uk(s_vON~ zk1Ey;N#cdHt@cx$q3n$zOtEy=D@nNLhZ4x^%H<{^F0w~TkIREzS@9O03^Di+$)QF> zov4@EcZ>~M4SD$G)OoCo9Em_CdIohU3o{dxX$hcv5(2q++$?hi(xhUrZrNUrkFP5S zr3R$trMQS|hmQNwteChcsGbo)bv$Ufu^Oi4Au+?pbdA&KnqW!VDiP!Upy(4{~}L7tlnE^_q0=AG+(a0sd9>o%K~Xz-`$$Z!+xt1oHwOBy7)Gz z7zw3@>hY_EG6NerxltZ5;x{f7>l}zR04>Rwiz(--+?-FS5v8ZejWU6NKWAVAJOvNf z=<7c+cxLpK>2UNLai_X>2oFk?;SsWlg>VE7hj_o2rq}XsS|^$9h;n)0ZSHu54e=A<+UW8CE-vY+4+Nw6 z31oTY@ET|;lJwNj(E^h6*8@$Vu3}1oLx;n&@L-ASBNIzg8tkD~A3-IB= zAF=bnR5gONs;(_L{2i=XW}PsP9LNc>n38Ar=yq?u#?7 zZoQ0>`a+iHn+a|Z_(le+x~LW=Qo#hlAjHUzeRwFo4LlvZ@PI%sn5wg@(X4xrusX>}w$= zR3?KCG|#9-1Sh_`piH2C6w^c#UCVD*^i-;LBQ>Bx$dLu|j0BS3K>$TklJRu2$@Jzx zEs#riyk-hjYtInctHo^m-Fa;Bxa7ro9fbmuZGj(=xmDwbSeCLvi>t$?yk@z;>>8HG z?!=+m(<8ILXzwJ&ayvaO)DXgbP>@K-Pdgfg@}^ymk38Ut0ut+iZ@2TAoFwe0MgpCT z9#X2b8OXSC1Lo~!Jgt)O6a|E&>W}x- zLysyAkvxkpCQP=7nSn%D@vK0Quz5Ul2FKhG{Pbku?u=HKP(bWR^x`(%xCpg6v8h?T;6$O9C zH^4@6-5*6r?Evx?9=-d)s1eMoEFx}8#L1<$jR|Ug(8H^wiHA6=)Rm$k5nQ5!+-|}U zx5Bt*82i@q)s=X@6!-iTIXW2koV0lz|6rYTh`FE5Z{TaM?UM9lMsAPXHz`V5Sv_Wl zbw!SKA|s(ZC@=mp_@KQ3r>}*u*w0*|kCR_A@rK*iST%@C%(Pssc?;ExjJR{(w6Wf~`v5~NgyO{H89ta3e*5nAhksnYd;9U1*T^}6 zaA@3tx?@_G29!xRf)GFQ0m)JD*5MWtO@qFXTo+6K0YD zDcOuHd#fewfc2@=?Gbev8UTL{_SEY`38vgwhXvsk*#&Mt9TUHGJb}pthXKOT&7{|b zt4n@7) z&RFQ;LHxc1LFPYpA?V=$8NB`xqs?_GbC(+NmR=y*muQz0Rp^ah{}HZ;U%9kOuS7Iu zOWYqixPSBh9#42XxRS#8JAHu-{@;P_7}beh9cj3n5?OY24lK#J;t-MaOJ!RbruCP z>Z<3A(71!j)iRH!mr5O1V#QD3TjF*`JO62 zDVWKVBi*Cl(ibH?%_3;`^t6yMOqwdHeC*_q+w(E`irAy{;ZZosA4?TL~_`+JX#J$K@3QQ!`1id%hIh z5I$SOTzJDtSLzLi;>I|j>FOxt7oC7bS(qUTfztqdz7B{NzE<2#G(z&Qn_S?gUs!#7 z-b3Nng4O*O@IQxn+43Ewg2jg>mTomS-Mf#E)Ly)<@9Qd;obp^_uOKx5c~_u1ohm>` zu2)BueXIfbWSRs9cAA-(Xyl|vMZsN4K&!#NX6{|?nq?^GY3#GxY^;T8hkKcy0I3sN z2Jpl?MPyj!Dy>DC#ELNS)tIvVBK?Qt-E#+$b>WCXtSOY>2*Y2VoA6Cdzj0m`Z9-kR2OL_%J>XCt?g5{;ZgCIz z^l|Xh$HAch-ShHik3T((n?3eCJ`BC#5Nm~`?=Ua;3zvfR^b(nf>m8ce~?x@k5m-rn~hmxo8AUFLLu|;r3h8*cpr2V&Nndg>Wpu;nngtd(9 zefHVd-)A;!8;Dl(S-)VFVA{JhDu{!iBRAwu`wt!+#w43hOcmKk15@`hm--CpZ=(-# zrX{=~MBK$V{n9j14<&kUUPPYBC45#Yh+d{n8h=sw4Tu^xx7Zm*G?iMfa;Vi!$xOuk z1Oh6#jZY9=kzh<*a$V&M#Z@P=fK|1;7=1DiPrbo^nA)f2c5%mgmU+spV2o_+3-XN+ z>K0XkB53}cRT4LkBcNjDQPvS;x?(aQScJ6Lv_z&w!97_op_D8Ylr-{_@8EywmI^zk zfcVMWg4;CRUgzq7-UBqjw0wCW)756a02yFziQ($&qv2xlt5Q;|-jE8im}E{2m@x z0_c)EQ)AFN3f7bCNn0W0OZ0_0gp?JaO)YQ0jPp?H%14Q>XthlVrskv}H|OB;*7vV| z*lm7!_3r-s-Tf=OdZSyvJNvUdJQ($iJG71!=@A8W*th^iKvGK=avFK?K*Epj-hWu! zKm7FJ=iO-g?$yKlAMfA2Pbhf{obih#M=}b{;DO{6IM@z+r#E|fQG*2qY&}sQPOm9jhucRt+Xbol;J=w_`4a@ehU^pV;8fl z+08X_7P1!dm$8RkXo0WJX7@`<38)90%u}auwl~|m8^g3&3$A={kj>vFB)Vyo-c_3S zNC{0UT>c3Jf&eDDAk#TWImRd%Z%`L>;^?XU6t%LYM&N~18y+}IVn52gAwk@QF zRHdaisu+$<%@7)(CML4pLE_zRlAke$Q4DV6N&$BOGNpjvp6AwmZla{FXmYcx=yam* zy0X%X#LZw~*G$D?bVkfp!{-6j~SB|D~292-$y@9>V=oq?@e(O18K>D25J^K3P~_(&0~ee2 zH@Zgj`t9{+o6+0xvyGst{Z4+7F3fn2rCuJ#V)rZDGt8=P#w^YZq-MuK0R|*2YTPAQ z-%~T|@6}mJ8w8ydr$$*yrieyO2lkdF+b~V0zZ5eOG{tG6Un%G`@x-v%T@(A`W-?Hy zqn+zJt5=JjUr9r(OGaoG8A7a4pcpM(Q6laqkjO9&1&;JowC>?q zUbjwJ+!hJspTQ-AaJyxu^X9treSn&=c4J)FfHbrxybc2|B~?ZGIechvz(9fG^u=z+ z=?njT_{8X-l+c!IGnSg7sb$-=6amsmir2We4A7-|dr_^|i=}-|>&NqFxb+)4_cCI3 z6A-;UO95M4P@)l$ItX_??!}WNMMSjtB?qbNnkv&=RJ@Q_PDDdM=$!B$4Jt$h-skgtyfS}j6t>sX zCv>Mp(o!gbDtFq#SIdcTwk7i01w8l1X-}~IMs1AkFI{s+XWJ!`Kbwk_{(85Khbk}{ z>qie&bw6K!<++?(9*B|_MQa%{Xf2WYqP6Pk^>&)r`b0K;35&21+rdy@sV_%V&X}$Q zv9Qx3WK&pk4n9#%yMwwo)Gco-#1C)oKWsnEUeDf2x<$?OQ?3&-xrZ&>&<8~3T+}#{ znniXxcSx7BGceAA@Al_jb8l85kDKcf3uu}HX92B+;nyA}Apy1ia2S)0eT<8Vaoi(0 z4`q7<8(o~^!f@WFky#O}QhT&FK)q62TA5vR>B6b#sqV9J6KW^ow39tS zvmY__qb~8tAoVYCq}Z1w^GTYMPM6+BdYtNxF}w?bgiuM|BId%i-0shATvab62#`+` z-&Ap$K4Q~`!E~IxVz^7b{v$N3y_}|2-MrGA!SI6bAnr>uOYdWr_OvMUMccKV_|SE^ zY-Uoqe0VV+GiD`iO0vN^DZuVC+%)1c^pLEaF4X2GX@6ZIpl1T4X(RqvYJ8As`00XK z?p7IP!Fjxy-&|saHq+-=vzt3@%xSmYv_NzSSTotL*-28-_pfaf%+#KZV&gLg9otcJ zBJYb7kF?m_PVb;DHtK`OaGw*?PWDRDp`_vK!XC!)BKi2$=5|5mt4u*2sF>XVNOwF_ z`QGN*KsaLkVp8{Kv3D7t5b=p{H&l*O#Jz9l=L;1^g>*nX>T9AYw0pUZPIi+){wauv zuIEK;QJ{wTG_VpOPq5=W!j5$tfW~ms31N62+^;lKfvn3{qcKy3m`UFIq+@Z^$6OGN z78(UPjTMc-y8DJ5o4r`BCtzPc!U^$cgbUY09ENG=Pg7imX?W_IsXBcD86Z2~py=vE zJ0x<3i-i)+6NXZw6+4sml%yRrg`^!KdUMIh7uGTG1N0!}e+Yu#Kx=^ubgG-n>6A(D z=<+smxl8kiL;%~i*ehD?$cYgbQv@I6mSYdO393;lXk*P&W>EE`aBFWdy$dhCOCWaF*{{V} zK12Va0%vKZutXYIso6O^;)5i?X!nH9dvv+GSj%b8erlI8*DT!=lH<-(cT&rMgxC}} zCP)+8;FyVAC9}qu3+x+93AFEc+Si0U19Nqd5Oh7tT9DznE7CnOIZ7HJ*|uO7hF!Z$ z1~uzqmpSYuCc4NanY>ksv#VMci9jhPK80sAYJE$(BepgUgo=qUreS)Cycd4CAUKI1 z-ojI1ay!aEg0P55D}*M;iL=g?_;t-EH03_RB)fJl`x^MllPa0%`(Dc64*? z8m7rwWmJLGn2JR#H>4e~N1)-?P~zc!lHFh=;snkSp=S8w{65)zw1)C=pEk4uL;E-! zuxUUGmka?FyI#5R(S?n%v~=u~zb-4dH|Y@o<+%Jnp9}M$ZIlMU(^DOr^M65_@RS7! zz@gG?4Ccq{USYV@v?U5dT$#sY3Kuj#zksf=nYjk&nChH$F(k(ZzP<|-J*9JohNj)e z!8x7gks)zrd5eVX^qwkPjL^gXl@Zdun$8xJ7c0gzJwhvg$_{c6X)36G7lrjc+W;T7&AfXG^FrR|=Ad74!S596VNZh^b#Wue|N%MEs2yW{)YI6h*1ct1wJ z`K${pwr1x195t%F*A{*fQ2{eTl^2?pojc|^YaZ$z+p>z+nVYTYpRnRg+KXaRo;I1GrxmK!v7XeP~CSJoUVyyB5n=^A=)Djd}<%s~nOjtyR5_*&7gNwx+ zBiF@H2#kXR-ctDz#L~0gLAE10X`0{<$Rr5B$0B#ra^pd!?$qCB0tgp>Nr7=nbH|BO zs_?!27=1Km6!8_Pxu6UtjKgZJr8lmyzA#yG#P9NcOf@u=WX&%!8PdSgj zv4Upb9G}AX^h$yA-Gmpo@E3m5_+t(9-eTQM^NSn;7p1m2*Xm1ud-dkyy|MLXCKG{5 z-kA_Jtf#QeBW*u(wMj46R*IY5zQmb9=O`W>9jz$&-KvH9Yg=9HDhO|vIhpx!A@#FG zq|3@#>Xh&zLu-a7A@>0S8K&boupj3hLZk-6r?xsK{`cpJPq5r8)1Xw^WA?TR3F9I= zp4YJa8fX?M@AcwDf~Dr$$pW5dlvZWchl+q)fS+@2ElOsA+I25M^)l{hW7eiKaSKt< zvTNG?vKCjN=njr7VN@qvu1+0=jL2aXW&yp^ye?gG^n$(!2_o5CYG$KTkKG5&(|)&) zE|BLI6eaueF?C=zq2V196F|4pkji+SYm&?2Zdc<7bH)o^57bRpS;IA9!u>gqmSDx~ z5&kEUNOiZHONqt+ zW2%r?g4~&@yHN#)F216mr4>k%YvP2qh}a4f%-})*A`W$~#mq3^!<4%#k7O)iu9`8F z1|4EgEUODS3awG%CgSwn!)yfDc{=k9ys6zEZ{!>5qa5Q_h8q|Gut_1GL+-bt%^c%z za0G#>UcHz>BD*n_X;r0`T6kR-Gl#=SBEPQQZK0Ys?N_HjiAytLWi*nz3PjY5ESBWB z=h8z`;`Ta3qqk-;DXz-W7foe8a(BBZX%K>&rodySypW+mlm}`Xr3|O*=@85nz*fw_uCGOCpz!rJE@+lvM{ZFDQqvi__|JccXVkWt%X(sHfUOuYSh7Cx~ z!9PMozj*!O1{a&+_FiJV*J0;EaJ!gNt+9xtbbg-@yc4VcR$reUA(qDc+>{;*p6Ms% z=$49UeeF6f(Cc24LO7qedtTmyywJ(XpuG1v4^*otlS2BzS%$x}lP34=>~(5RFwKN* z+A@}B2ur}l<@NY>U@(tjsGE>prK_p-M6NP<3?o;yr)+Ebjxc}CGV9x9xkZNGi4!>{ z3uOwJ>sJpSUcZ0;ic=`wDZE3C_;s53h!9iVMxhjYvv6t*3^O`f#?d7~pcYl`0YxpXG8zl~l@>j|AgnWM4g z;cJ+h3wzw&R;hsmDE+gGW50&!J=o2-#H&^yI)-zvb%AEpVVG*T8~ZK{MH}}XB7f`- zC;k9Mwyjy!8gYc?OOB)0xaSkyNQF!tTZdz2l!FK0{^D;0B@&%(9z??I@qt>h!bJ+ux z%!uiM2GwNbJJX?}3S|#p2k?om^rZrdcS?FxcU#BcZm}8cHJs!&@QeWG#9UV-8^^LI zk2NIA9~%H;NO?%=IyqU#4o^QCh4Mriw$Hqv)d@}ub8VTn3Ph`6S{+etO2<&w8Bgs6 zy{sTIt|zy*zkB`5&tHB2*B_(}(KLAk8ah|i8t62BciLP<=+BL)n%2`y9<^epmRF+=?A%^1k|>cfY3umAk< z!~Je|aPa>A`wy?*J{)}UyY;KT&OSbT|HYS3+rU@L5=+3U>!{XL5!1MyymSutA;hkd zQI#ZaGQ9&Sy;=XsGMLooNlybI2)Dm$zeEZOO<0AA98-a6A_Re#deQO%-Y&?ywp`)L zhIB!pDzHaEOGkSYQZ2|nYs_`!BVpK@vn;l1i7s3nBORQskjHMi+IT6BdCxSpmzZ0QyQcS z8rXuUj;5c1Sod29{j`&T$?mB&SrAGtCJt&1NkkqR=nYoP_Hml+25)RJ3a}ocosCBu z)3e&ejb6x0;|h;p)k*ogde<>-h3nKJ4HWIyb~gmRA_MYd3T(i)A+iHIc@&oy&J6Oo3Gm*?6Yx?%#MG&&%{77`nij+)43 z%L^^wewT>?Xdglk6%m4kqmfBUDNkm{&Xq7dVBgSIHa3vDFVo;a_74pXe`?Acw_YHd zAJa%e>FJ7v3ZOSUcLeDRJ2#X(8+oQ_f7wrXugquI^zu}J z21N0B^%+*f)X~gAU2|rNi7z4E)cbh)&nXI;W_kyE&}6(S(Z2`m(UXbpkP5 z{ZATA9VBS3-%l#lQHeUpk6TZ(`rv23Xnh%vyj^$Ni$e?7aDPDW@F2KBS-cTo*-^{NkSS>?llDzSH z;|{|+q-%IiUP}*{-{l}lM#2N&DkeHck1*f71h1O3sHLv7ObS2EzA)T z-iSzawiCBdh5%n6iNaq-;w;N3;0qit-x>!!^N_U2^zP2F>WC(T+V%MjTuWvqz~pjj zL;nQJ#vXxls2S!evCWEb@_WRXKbJ3ey!>qzjjSfr9fn1{Oqs`3dW3zb7!F~4z1}tY zMo7Jeb*}S`p+?bhB4`;!S@H$z4Lmz`%bUw3jP@`e@u$^kw8EVJGkjYoB zAb=SrG>%1tQm)V?aqi%ERPHDLxNR=`IBE6TjL7;&2Dq|9i(F;=;c0tEy^S5(@a@46 zGG(8>TyYSivnOxfB02OAZ$Co#wO+WQ$;p@0AetJZ=lww)38tZ@6Be32IJQRAUF3UZ zUR_VKtsCs1!2~U+2tnqD9H{r&3OUvBSRNNvM)HENHJO78oWArln@UE(2e+)=zFa>a zR3*(^p{g*QDF$B!i{)CikHeienRQ(18es0ZbsVUzaYU)vpClwhd0^4!%k(={6_!y# z?Ovvk!f*w|6JYJjfS20NOj_07;7K@wSI!Phn|h19rz9z*zk}C%Ti)@pz*TWKwaf17eeY3lc5&Ma(Vg`7t6(!=TY)?`6Tky%i+R{dFl^o=|b3^S~GnHr|%pxY#` zihq*=^gw^5`|@Az<;5nZB7HHNyT{i47E||J&Lh2HRw_7 zX0t>q*4cNoxh29Xn7zVfU?%ke-%m|_ zE0A7M+_-~F{Oqi1&( zXiDq-a1Ah|FoAvKyC_OR+Tx^4Rvn)*S0MJa(99`0vKal0SjJZ1@8#}d6Z``xCki3; z>ux4kz=(ZVIu;kxJIlhTtOnyFk7B2)0B566XEM%qIS2?iH8}dndYg-$_!bqkwT)Cb!~Mg17<$0PA0W-W#p?lp zbM`Cz!^TWZ&wr7%9u=_09((~0gAarMefZVje-H8h(HAgmees8PUr<)UgS2yfF-J*X z`D*ZmLG+G+-hxI5xpBWszv#4;eZ&kTSlVC6X}p9@c8drM{c@)t2va%C5Rei6ujK-H z#GXVtn*ZP5d`3ohwV4n-A^GRv$%7!kb{{BQ_zoOdv!dWPgChvB1jQ@Tc|Q2f0QPsR zf63~#4mCAQldbb3bS|Y5N=7uA$BjOhmb6^!!{kQw>X_!D_-il;RQj!#9QI(RfOc}H2lu&l0uv2l1ODR4&zlDb&cCM>w zzELVU8bE^oQ>tXKkHsTN>2G8a=>eyV6Y_7v0m`{-^&;cSz%NxUbYA=D&*XD36Vr9#Ot9ZI*fi3qwc6$RI>EysZ zsq19&T`|STJx;);NTPq?c}aJ&#Mp+tk*;Rx+ET4WP)XzDEh!t^=H%C=v-KLpWjP+^ zU_~ox61BdqPhWD_^9{yVRZ7R}^X>S`Z-|B`o~+_yI=J8B5dRh^#COwqQ+F9;SNDKw zwF}f5$x$7;p>gRplxx-1q-|_2+^XV&_BHYimA0mAgOpyt5#gD9g6zFMj>svI1I^)~ zh5O_JvA*oS!`6i9-d=or8#z7gmQ*>Sl9Qz)6SnY)DROF(=pL$_RvLy*OGbIZ%f!=9 zMM)D?>MNj^N|x1dHSNIl);__;qP6$RH3qg_Zkhv_hlSlyN((n#QAx&IFrX>M_uPlx3(oRNIkZ+Z@&f zvaNImkF_&b7}qHx4839nLvh2enL07&$lQYFyN`o;@jgxnRmql2ogrd+S#r2z*E207M6w83Ycr5gTj`1IuX z+40fI;n`?3I(vF@|22FC%2NRDQk3VMamxol8|%cAMcXxGjhYNrAmOQR960oIvU)ca zVUE+_w=5l12c;W`jZcx27BP9EnJZOHPPM2aD^4y~f`DZ@52q4Yy?73#R1x+l$13bL znb~7myr89ra1I-7KQq}t<@a%mVlEG0uv z$zgZM5_PiO9nScrH%|ws&(U3RwO(BDPewMjoxx>q#x%e2GfzoKG%bs%#mGQ?fQnNn zEVk29?-ANmWWPqB75FG9u1S^rMmrgt_2(lrSU)}7|3LLsXJ18}hxEFdNzyRH0eD^n zqi7z%><2w`1U-Zz1J&map5VNn#d9Zi4)?dQB~d(~d@x0}O7noNZs6uaV`Cyhq2EW)D~i$d>0c z_D?1!I#*Mv*o=TfyVSoI1EwxHt(2=+vPfGgzs}WDPVKO+rJrgzN1Hb*IU1p?!WPCC zyfS9}V$iM9+pW5=%9pw1JHXW8ZMu-`SOP*()@#jsy3IK@$Ra+@AB0NPst}P9%I{JQ zpv7sSFQ_W>#JE!lD+&T$&MD{2^WRP6EvNl&zW~Bhm`-AZt_wwuN96WCD9X5i!_m+Z zUi2Pl0n)cPO2|As_xBll`WrOdJ{?Iu*^-k?k>-zi84u*~Yn=e8l;lN`#_O(r^&HJZ9Y>8j+2 zS;E-9RE1gzDf$DthHk?~w3n`POp#v0$_n7#aqbjj?s4)g@c4FDuy|EMrj&THRol|( zA?dHo>mg?sqjx{LjOsdBT$`vnA#^A%yA9M6N)X&5Cb*%B3L#LUq`^Y4p9JV)BQ`)E z(ajR4keq3oAgJB$;qANo40jpQ<-<8DJH7h-Sdo49oRZ; zv``-x?gMRn!wOQ`1>&Svn%BK&J%{4CT`T_ylil2h!F8EYN?YKY2~@)0kcnay7dz`g zxJ3%Mx?e4obTmeDwdu4KSDWjO3s4Kyt3;GcxeC=nRZ{nq)&*kC^u;`JhQ6mNkX}|8 zphtHnjXnBE>^#GmuG3{+`kfayD5~`%N`gzbn37kxi*ha(?=WxQO3BNIU5ib9;%TsR zw4X_AW5zfH>GCbbR;xf7V5Q>adfh1-tUu<+zNe91kdJHSpDiWX(%p)R^UB@Ibnf7( zkkl62*k$~qq?v)(=9(GWNY=Y=rb`*eiqQ~}0;0YUWv45oR`r0rX7n9!@z4mm+3ga_ zSqp!ju5yJ|LcF5xlmqjl0#SDG-&6pMJ{pCSOT*>jDeL@3M`UQMqF|JR*95~Z09%rW zmyQqy+cH&Odg9fry{&%$dG%xsQv zJ%BsZttIpGU%!V}M}{K<=L#5BRIDdW1q@C|7g{#q9#&Mahh!p!4v^%Z@wAWuEN(jv z&kWrSX69g*+PaV2(K?aPL)1RRKE@0rnK_j2E!YticcS9v6w8b9>8U&2Eo@Ouo;va~BueU7q9k4G zMtP^j;dWVE`U{s(okku2lqSg!pBkqAC6-f(;~P|MfN2tNb(*ZPy|E_=rsmwa?x!$> zL{k?vP#scCrZuN&M5<&QEM8O#Q3>oO>^yk?RGX;+<^DnZkeMd2ROJL@pdJukAfwRv zY`2^wb?b2SvF7~zDq|1-tk?-hxW-`z*RJ#G6&EL%a!Q%c*DsfdpW&5!^;k69O$+r9 z+!)l&Kfii-xPNm5PMh4B7mG;Os+EVla=~dWw9nyX;FWnvjL}M>80d~2HPageQu-xf zgA5PagfvQ^PTi(XoQxU5?>JahS~h&y*BKvAP*rh*u&3?IFAVlqJUQKTcJ zPllThj(_*;`0(`P^!ViLcsM#fJvoN?V04UF!%wj(_Tz-fjOO~`oOz{p_LT}^(@6xZ ze&qukN=7@u-BpTb_;83bysNj=gn6)4sYce3H(tY86MwXC_(LVl)^4|Ruf5$5_di0U z_yI9R`3xj_B2{p9ASpQ|6Vd)K_@9&lnnD^pBPL>$cmispUY}3y-@N(J6yQP;3wz}MnPs4Ap`JR~V=S000~LVHLMoWk-8^xrQ`Twc3P(@jD zlO$=%8*l_(Rf?1@R4*Pw4>P&{|A>3n<~WXHTa-U#u6Kk3vP}nO0FuzzwoeS^K|lmB z;LHFd_m>G;gk;60NFP4D<$KTBzx}SYGP5eHy9bnP$GwUWIMrF*U0s!xmGAuX=kH<3 zU_J6LxeE-O$8Lt+6%KSzDm{k{ z2xlyItEX0QHqb#Dly|$XTG%u%fAm|R1%#GBXnsP02 z5^7||i~5VaktW}cU68+)2HQs!pvJ9{%~d9H{etmF?JYg9Zn85R{1>v%$L_W?tV4+j zgU2Y|JX{cl;P&ztf0V3GkIV9CyxuRuMN zH0F28WlLWBckpE6zh8}BpxQdiWjwWfGH}G>kCbTUE0#d{?}KtHL}19p2k`()V$Ny^Z(E3+vUIeC4#Un^^SXT!WKL8BX9j3nkhye8lgD9Pf>^F!Y9j2X zAnsY*b?;5%(cE_7SaYxiMe9F6P=>&o4l0eNr|aj=V$^VOcXjLXKbpb<)6&{<<2lQ& z#FQcG>O?ZKD_E=!7P7chvV**DNLOnp&m_>=-K~(gVu6BH*uRf~&{$#alLG@j{L>8n zxz#TVztmCwmZ8;e{j$1ggVPQ(E)%|6PP&~xfY}bIz788DSO=sJo-Q`zm1ncjZ2b!C z4u2XNx(dJ*LlcwwprhZP{<{yvy3_i+RIGo`Uh&ACW2%KhW@g;Pk)jAwF+BF%q=q}l znw&irqO3O0<3bg?ZVl?B$=E4=dH<6vphD3 zLfyxRgc%TLvAWsL>`~1nJxM*u1Hro-#d4|Qx!Jh%Cw`>bzRc?=*(>6h9v$$PDgytu zDlKM4g{nu0>6TJk1E?evnZRp;WDLh^WQrT$;qw^!YMny*fq6D_8;>^Wb#8L>2^xC5 zoyeF8co0E`_+ngB=|2?NM4&&Xe^?pGbP(%%tFnB3DV4b@pANsKa8-O zarE#GG6L$ahmedRVC4uL%@p#Om1%hL04M#$-QVusiZZO{XRg6CK{B-+HE7{DmW4yS ztslNVc0<1e*5HW_pwI}oTP>v}h(tR!9RlV>djQ0@PbP#CdpwW2%nx-Vc{m zu>_C_FThlxPsw{`mkJJ(v~M=ZdxSTE3`QNTr6gj-o46UI8~rz3fTZ3W|LZo76Ap3pACHi_g>F@)PLgIa{CYRxfb& z<%aIEXMjzmsxsK_-hgrEKt05xYIcb4lCbUX;#>vOYS>d)}a$N?O zmN6ON+h0Mo89F0F^FwjCmnJh z6tKH9`imAfwH_ncfrx8S0WMaM)kMkOQR?iBN9E_vYNH#m#X;P!gdM62R}?8XJe*f& zvzxFv96UUHIldl0dKUk>4CtHQHMP;w{B36M;8_N|wI4FzjD7ZCit_J9(%TA*?*v_QlnrqG8^ zn6uYZWs6%OeOe$Ln;(+?ss^O@KyS_?fznJ5{W_2VYH&C}3Un~*R0nazkojon^^hJ| z98iiH1W*v0bBlf(^yLkZMr^oI#j6|)44Dn=5WM848Roh_6ms<_;X4wZ{V^_bQ`?!6j?`UuJhme z1oL=D;>0~UpRsGP_Zp}M%Y1Cx&A7=b&5wxdzDBJB4KCI~Doe9Y!t||=k5-x3r76^h z6F?T2-jnzIVIx$u5Oqdft|=0cnkst(+ulW>^?bA+2Cjk3MB2g2@3!x6>^QOi;}sRvgYER|{|r%WHdp z2OYR6H(DA@Xvo0M_j7c1fO@?6aLf8YeK68II0G8wz;z3*vrvVqbd(vJ4WOG^QX&jH zGMj>#=|(>TL1j+ug*?omy5Lr26sWcYEZ`@j{w49&7ZzS6gMJNpezCXEpS%-PK)fvk z=v2>G5zj*F4b7-g{ZuC@dxG|Wnp0!Wd59nG-q}C6o>T_zJzylq8+w^Az$UKi+}?on z8isn@BBpJ(J-r~mYuMylw+GZMnyqV|iCx^w5OswBXt@5+rN!Cgs(<_`ct~1hiUMcPftXqg{iyyJhR>a+9o!to69zlsn~E+pAyk6 zH3gySt54s(e*1nP#znwJhhT3q;T?Du&1TMUH%?!@&(jk$dhj&8%VHw&C0-T%0$KZz( z46*~ZNOml`o~-043c^+xloaW zevv;_PM~^fW@AbG(t6`)`KOZR7%lyUDRatA_a)596q~g1cpnMg> zTNsU-eA%RI*;>HG$8`+|P@qZ` zjLRvsG85Fnqgnk`k@fk=79saJl5iffABmkV4PN)W6EH`QW@pC`qc?pv%j1CP#yP~07FqlmPy?o70WWJSzh0CUX(PCOU7qb`kDYy2MmdwTR=h%>N zNrI)74p!09_B3vWku)oCPv=*v%e{cy1PR)>O+1ZjpfLYK_gZcs8ZoRbH^?`-d%9jh zXykjED`MGl2?MBzLF}3m28*oss3Lij0X<#T@XOrI_C)J(&IQvb&D#~R8=sQ5Ymo)z zAS2%Ce9!<&iILlx*w43%+W;HSDfc({+o$5$?{k6hsn0anXiDXmFE6A!G8 zmd!+j>BFxIy!A|B`i^Kt16GXQxs%?^6{P?;U0-ya;~S7VHw1-m@8Y17BZ;gP`7K0H zpM+uq;x0GPtI>A|3Y*7y`Ayr6P3p`jqs1I~nV!y%GPxs^L-QI(=7f5#6Srd@(Ph4I zYQ0)*|6{RUDHO+;LUU~O>*iN2=W4p(NlNtGKdwQFmZm%izs_FF5|hB$iU}7AaYJCF z`QV7rdt%N4kidXs497iNnteZC(eqpJ0QhKPa}_1Dt0-b>1fV$#F}D#!cwHphZMH87 zegNu%8sFPB_i3#Iq|Q*W)Bl64*q;2}gK%^IL$N#rfwLZJk8Q6Y8`E+(dj(JIIUL`Z zK4FCOroCdkg;Q@w3FV}ybXapnMFprZ3Ke>#*Ff1EAzS^*`rS1iO&X&hm@%!z`3B^3 zM4_4(OPhbc(n%1z2 z=>Lp7g(2z6#;q$BF7=XSq^}=7IeTUp;|jH5^L_=^`S9b`rJQJKJ~-jz;IQ#f6ty$I z9iU?da8kCPr4hap8N97IoPgNkTyT? zVE9pAS#?^wE2<8paqPRzXa8dM3_-%PXOGNOQ<}mpA~usXz{96moqSzuBLM`(K2w50 z#89EYVPjQp;JQ!CoRXa-hNc0jvoKV&^FD{M0@FP;a}nx1YqiZG7ao93OP{M}n=xP# ztd1Ba?il3wg-h0A25x&X$FpFLfo=pl1(^;PvjvSwFwbmPvlR{?xDei^{SkqkAucwe z{90~c61w09S{r3ZaPb;j%tLYcinjWY83$MO6qUvmS&nk_{Ex_*OV2~NSgg-6;^|9l zZ`s-v3hzk^HO9=F(A0CY^|YqyAhRXV zRv31*f+A&s{IUF^gav)LmX#|-3-I)GWd&)Xp$REl7Y5i%FdyQF-Qx%364e&S9Tb&T z4z1_|Gka{Z1)OqS%S&#LFH_lMbLhsP&{|y?vPs!$l`>x7x3RX^h zOjY({#~~4AIom~7jk|)~X?qU!WM#h8*MJDHBn$RCGY^Q@O3=cXSq*Kn5Q}%8?mmDc zzM7xDA|+!@b(B6keTCFJJZ!Q0)O%txeELe{|JVeCZy??xUjDgP^ozuzJc%o)ES-mt zAYPzdZB2{Ud+{vB#`wTmb`IGb&b_qdgCbc|t8K(+0z>yaGNoHX(5qXZyb)6b=Z|)~ z_JS>wCGcx}{vonuUfZW0_j6&m=EEI~sc=>$Z}Z+(fINjdOt$MJX%@K`wi=}OOGeZ& zEcdWQ*|x^M29BYw9o;8RCC;a|i(Rlg9?|&dN3pnbo%$Z*7rzcOpAJv|bvtn~t_02-L=OR3?)=G(&12bLbgfFO8tjl`lGItll#Cl3ZVd<`5z za&8bvFBDBTanI{iG2}X)oIi@z3LZ}M&l>39Lm*;0mfc)=2n5LIgyt-|vqO`s z;Fm81L+BRE&g3^nZo}yoiNx@S*$sbc6;pQpw;c)w_-?lt$3)xHZU@Y|16eK_)J_*{ zulo7zkrDC_(}T>9)PmN#FDWp+#I!w!Aa?E(*-xdJfIhoGRc3*J1dW4#H+p<*DXTC% z>JPiR{GuNdOpmC>Fc5O^(Wcuy(AKO}1@sNXs~k=LtoEIcgP-6pOITlS`jYm2hGaxI z?BMQRTrugSB=;QCqVgx5a;sj|u4qG&aATrQUw^y<@kW}GxIh~oFBma(t|F`Z{CLDJ zl&zaJOd;&g;e5Kf+Kjk62d?{}D&~M?#s77)4E&=v<}aJ&a?^dYY#-X))tDy+HvOF4 z%&t0UoJ9)<;z5-}1qx%0)W{3g^}kqyA+<0sYelsY%?#DBJDl^RbG|}t7UZ~dUgC%~ zfV3*4zKra0cvuyTqer?Yj0${ZanNx`pdg^xj20k$M|rlhgT+4K`5^jm-B!s&O;Khv zI73QTDX^iC$lgzl_OG1polbf}BI^j3sHux}64({ZFmxBu&be(P4s*k0g}1<6vAOsd3f2zfaDL+vy^oVnTw z@wT8mlg;T!1gJFiT<&hlXOMYENiyENxV~((>3uxk*Twh{&!zFT@tK~C^J|HN5iDgS z-pLmAT{N?9lnDU^Sm&Et=m|JRh^9tZhTw(?Q@Get5JL)mI@MQffp-(8(kv8Ev6+tC zSIQj%Y*xZOK$D_*@|=vWRg9J`MzMJysJg}Pc-a_?k1=hPvpE!Jb2#c<(L;+)kJ`E9 z8mwmSVd1kyIP8YqF}BvFLo0AqY4hfP*OXs$XjA=5`(hrl3pjBp;Pdp8XQRA<^`ky1dMUOw*j*<2zb){~zyzA#ZangC> zbQoS`}Jo=}fc-(p7@jv~7*eg_lNz>U&{;vT$sXkV$%6QzJl z@u~zAuz^?6A8Oyp--DT2BGiY+Zr5$k1#xcOE;_tSD}*qXt{0=ZrxguHX5a&)2k5kN zy?(Yg`+;J|MS0B7aUt0uv@2Pn0q0nf!DO>E6-i9k#(&4^q>)e^ZBDiqFgr53N7h!j zst*JFWFQZs&`gy^2ANi)D53_ci?J4_m620bO!SAN8j_myZzbNa3J?6tVV+P%J%-^_ z5qSmAN`&cLT_J}i5h%6AkQL9H-QmviQNu?-y4}MQnGwJU;zOaXJKb-ACrC5o0!oSX zEHh*S;!H?L>2;7=koG2uhQ>a^>kQ&lSR0br0cO0os`HYp>QM4gTtC@!J?i;(pL4XQ ze-!rZ_QzQwRssjHl#k)u|C_JWMmejMIpKu^A|_VsF#zWZ$IpQ)9jOteY3T&alg8#YD zCFNwNr=FqD^4y|j+43eVFm*S{XpZ+mjTLz5FUhd_?6D<`D@Rv;c7dt82|CKT3NIE) zI+=v@q4ga$#>Sp4HUg7{=6}QOe~`x{+0CeshY6@EkE>x zO8@bCsK9cB8)8X5kN=>;o-qtgaXsB35?`L)OLDE>o}2C? zx;FnZ?E9Gv10i#!0iRf2WiP~)35KfOlr4^3o}({X#3-A*DB)NswIPaTwgR;rJj0;O zqI=ftVvX!=Pk)EsinYOSES{wQFp}P{1I|4gM#Phgho3$vRPZPgSa{^Bl&+bbd{Gl7_JMxX z;f7vZix8A=16DBbs6G`UoYucdEp6nn``!9 z6VVzwj}Bd>UR%GMPj4@J^1?s|y*iz=6K&q48E;|gp6K!h;T3IDXserwqoh-Z+E$;T z4c(Zx$`&^3mJB#7opn8bVZ{?wI*TnmPbr$+yYz|Xh@8*%a$&EJhWgftFy#T&xC7VJ z*VtuRa8}po);85cU+Xrn<5ANR92AZy$!$8DUQbVvj~kAQA<86Ksw-IGu0g>H*ICm+ zZ*qH|N8v`xzOwb!!P-I9P30^_R#rD_xPY`B2B1||RVq74t^5V;x2GOxuWJC@Dfnuc zm{;pbV_`n@rRS7+QoKz~(O|1mJ;|-) zw*`?W4;?#_THrQSJ%+uEDsqTkm#5H{2R*f?7iVAd^*r`1OXWP2EF67rGlFh55z%-c z^5=umYLs6IXNEgSoi8UiE-(6^Y7n=<*<-D@xyj|rHjicv8O~K+U|Lr#VI;J(?}}FU z!)g>&@*i|ht|lFFxfY3V$gF7UCzt_Oj$GrXyq1OlV;xUqh|6r!P1w5Ip(cB>#Rk_A z!!5>6Z+qY`bIs{<`h46k=Jd-=_jCFiWL-vF#2O)Kz;%QX-YgKH)N&p7_Hoq#3T2r| z-?(5#$Z|b$=+iNsLWeF2`AI>wUztCr`~WJ9=*GyH7th*|)w*tZ2dyMc!QMQ{u96&t z9}n|u6!f|F0};R2(rXK;ldHv{Wu~#;!5|$$WHs_1jA*epx)iSCpaO-zRP%1IsX*h- z;IVAeLZ4~Q00u1AU%M(n(P=UxU!zQr>9LKn3{pLhk6>;;9=|Lib@uw*o40o#MrtFG zbGh=MpJCs~qqbtG6M9+rt&hHlBNS)ya`h}kTz-$T3SJ5 zUF#!KKBOv@`(y{EDKI(lM2AbeN4ToMzi|Tt^CGq7#q^Z1<7*VPr?%42*<`1r7HsH; zxy}3|^n)?%Md(*RJ4gYNl>9=cvvSiH=tm9@rA8lN(e>zU2r8#&5N`8fS^MF;)t)EX z7X?-j(HzjAk96-&vJK!}g({rP;Qyfx+Yo0a9lk zN7BRhLT&Os@FP$m+I9y#=%{m1IDm*)&@etO0re6Q^7-}<5(ZQmqqZrUJX;{}r5qiU zn`)UtKVh&0VM*d4pFP9+I$8$SNsmtTZ&z8`&Y*Uwx!;%~Rr?xVHn6fjGt#2$xqI^I zrjE}1o`D=W*4q_n1&8~A@wq(#HgZyzs4}xGKKD>u*C};SnM_u9;lbS$-t`6Jbyzyu zk8ELjPLgU$o=-pA$gJ`XMlR_*){>Q$R?MU=Sws=@JB7OT6=Es2XNx&BTcaUpOBWt! z-b0@3nlL)R^x@&ct0AF~f#w049(*q_BE~JzWWY|RsPb%w{}eoLOlze5f5$DQ2I+2uDvuZ8kL)BYK{~s zXRb>ny|H|j;M_!iC7TjE7oh>ekfGh<8LX{B)h9B*RJEE~da%UBQc)1xtO=0$O0!54 zQrpON=F2FK60=~z>~YS2_nnQ(#EZBmT6(BqSJWv{H2VUD!?&Z7qy@}}F7s;9!cW(| zgfiOrz+-{5U|_GYvWQMx^Htm{zOo6Bu*t}(+s+KNAZn1v_C#O{obA`G@qk+1V?r^# zDj)_UePgFxXEee*Jk@7us)tdtOUStAv!i8WL+ya{A>5G{z#2FpY5j*Jvuvpr<5x?~ z@g{JC9ZGUE>RqX$cRyu2n!F*XXg2(xR2>cY4o(q9D<-{%)3oVK`_RAt6$R?Pvm7a> zxuj`BCrz5oV2!&@$ZB?c+4o04aN-1+mjNnsMeIOb#Ld&;oD~JA8|V%`TVf*tHD|Zy z2rL&?Io0Vyb(40b8)DtHJ6f71(tKLx52G@SegwMqEctCW`wlLbJpHhmU~9JPr?Ahu zQy_YP3Xsf+(m< zr@(6Wh`VsQTce^(wi!Iq0;H#i2uBVhI4|||cy>*bOf_Dc1e?nY6<%y-XSuRRP6woS zcDFT*?}2#6hYxhnjm8l{j)c|$X8XDZ0X@^lar z%%rX$ty&HY|9uWk#AkTqb@OC>gij-sVHwC0=W$@R0aZAM*0jt(z0$ho8}+EH2>&`3fU5u1F#qlM7vY6gvlNi3%Jhn zFJ^Mo<<3+~V`b4I?t7m9pkt^%0lfpg zdugKB2+M=uVOii3xx1RqZ=KvZ`uc1MeMuSn9W`l2V94g(&haI%FDres@}l8tN&9m9 z<_)0w@C%F%bVa@iSfHE5h*zK%SktA?A)s882A;JfYgFmk05s9(?fOyUn3Ri62bxrE5Xb+D2Q1Kl_;qOt_4tG#!ns^Nu zZ?9MAE?>#Ssav&3e4xD=Vt=tY~RrY7fpd-M&p#8Lubo#IA?*% zwTTECh~5_Hce5_yR?s#_OhW2+;9$+>n$i@lDBkT2Z;+P7ecKywm4~3J>?&c3tR$F* zVMZny()T5!XUa&}pbT8c?mEiuJG4FprtaEv8`yi#Q8derR4Of6g}`CTL2?NFhy?{q zIjv<+KrTIvSdChKHawA;n{|lfr+JEuPhHl*)C7j!faaQ)k5Lkt$5~E zAx&L29w&_H!LSIlUXx_q6qjX3*#@LH8jUB~i9^YSe6#cn zymTR0oo{14-SS2x(bAjUc2H9uAU%TR4BWV|quR1V=47m=dK_^!J63AVeRuRueu~5p z_K`%+7t?18oO|kShi7v~3CUuPVrh+57pUg|yTZ-p40f0D_Qzme??ZM5O4C`8oJqL) z7RZOehU>&x}AaS~?#FxMU_ zDvgGN;l~Z`1g5bY3o+>$QCgT@qDw|Z+`Y*gnut<4Gi5IPn#rl^WLpM8tWkgEa&eQ?ho^U3gUApYKzuquMF6KEO5M!SGa^m7~lae59q0OI=p7m-z( z1XJ=Lf}vfT7FJOt^jU^!B*1j~feem{yCkeNLQB^raCBHrh9`iH2g|5`o4uLWWjKME zFH^**8wQq?P9eQQb-8^Wwt?~FB=O@2mho*A!7^?O@tnIoyQSyd910Y22OF!(nKKaF zY@UkGqlH2fo48oZQILC->D|sRU}7Xeu~R>_g_dMqR#O}!&@m;Bja-;gq;3lr=Bm*Q z(Oba7UL!qN;$iy=qCGuS5L5v;N)%T@amq1H)6KDjeLASCrBTZT+VO<_lF3adVO6nn`Hhy?PecUvX7g3d|b zboFCC^@f;3zTuXxH!$|oZNFJH&)(37n>Zm7C~uLpu|JC)$VuQwHsMDw&$C_70=<{MBHx5 zNDD{=)0>Vv8I2}~u-pE2Vu)PdY#c~DRFYXx~(8Y(Jj+!y+=kG@Nd9nk8$A()p5axo~KFb#`@S~SO-Y#dv8(;Gw zVUZo1L!ej?x~wsG$Y4#f0O>Wr=`H8Q^yQZS1qrT>9qeeovx#WKruiiDsa!- z0a41^A7%Au4oz35GUlamMB!=}Ev=`G$fUq9IeDwBw`#9qnw?3Lr%vUcAQ~_lzEdE# zUe#lqRZog|e7>2poQ-$eR@T*{2!SKIT-&gIaBT~YDqTu%5U$xN4ddFL+^BwVq}-_L ztJ@&knbF`Jf&zG=_2PC1_2*bRZ1Vj!<%69x;ZCHiAns9H5cg4b%v=zaZsEpEx4~9r zl-xHvz4VHlj(azn{C+Zdbok`x!lh zYjJR}i(U%-;wdUV!gU%k0;iC^*tK5FF6o)yCGmwQpJCufw)yUefZ(epFiF0b_WNq z-~RCZySq1lKqWu8#yF>8zm@zaNolZ?uM!F`K+&;U&xl4i+8on4;x5Rj?nD}XH^6#B z$ZfmSBu$T~aoJLeHM<)OCSG@HY=dk|hO2gS0cvo%<`xDgxkprqh;B(LxjG#oSo=aW zbPD{$|DvG&Tf>s7L%z^-w{t;rY^oI=#r#szSma^+SBAnO)yBOJu6?h1#LwDI_c^#~ zPTT|8okOCful3VH&NO~ptFnmAFL+xxh53nTx~Pe1wdfdpN)0UBHZ&1^#&x*E1KJ*5 zOp!ty8V|%6T`c5{0J6c0P;pjWh2pNisF*WL->@TNfmQr)A>6~{qNTa8y(ireG#X&* zZ?-FB^DWw?as}HByniYE=AWLk)eV6k)G&lAm|L8Wn~w%B8}{enb&~h5(BvYqC~Cu0iOVRh7=@71%qHq$UG`WjO(6;(pW4w2$rYNYGs=-!So=m zykzu&6>POlLO+ioG9eNQ6Y@!pf86^)8$<{aX|SCRe6&G2cNLj2%0p zm9UfRtYfYul`(N(PM_79SO6~ch!tjA+8Z?eE>M}TMyL}Z+U=wibO&XWj9o*6xl;*~RWd?051tx6cJITOa0%a$T3>3vk$Po(8 z{NexM5*o_O(e;7eWN+_KI0E?(nkrpp9i<1;uyxc{&0R5vS=|EE*o5C6`+s7di_t2x zS|R}kzcm7R-Pw*K*q%cgS-b=XC(I}7N?XA7`hsP%i?@w$&IVKmzxC4J07= z3u(Tva(NKIO!neiPh3;%Wt$A2qlOcOM_(1VCUqsp4AFRYJC<1aq8Gd--|ZIe?Gr7{ zWuZDs2HKt*Oe#+uAuX;q*;jvcTV#Mjc3k0+v%B!w@CLGXqL>&hxU`}MAJQgehkL%$J;{4qtNV=_`B{G-62H(0^ zBcwvPTBI$xLTIB-;0%JfaN`rJvjjb5z-W&V4`s{FrH@<)lx36{0S9v4zvS@=F#yU2Dk@%Fk3;prv()M$tKhVxAegr0$D8D71FNDxCe!g zX4t3}na_(YtY5IWuBLOGuqey()cNlWIKRAHAaVp-%DRXW;-GuFdwTI$Gh&VhW)@mp zAA_2}zXA#{*8|lHl}Nd9c}04_HSN1?~hg z1O&@3rDA832{{W)cx{)A5gJqo1K-F&DA+G}3X>U{NCzI^G!>F7(}e4sD6BD+Xl@wt z;*=eb22%onW~d!iB7i72)SbS4SvER-GLjO>tYhG1PCK7H+^2kg)k(X=!;>%FV}>B; zfv)GSiHy0V|jZi1szjO`13(LxS4M>N9 z#*?D=t=FaerOzoCiwjl*cr|1Ecsqa5XNgacJsL&;euWCE0& zl}8P^;IU3EBp%6)2U5px?mpe#ef#PC2W;y0f^D1m8JJYs&RjkdM{Zh3@Z?A@0tJ$+ z6aJ~5Nx@Z5Z5Q7|9%EF3v3~#PZ2j<%f5CwK{p0qBZ~v3djOV9F$8?3HdAN-(jmDiJ zzCS_|+sW;LeY$WK(BcwihZ4o__2?Tp5D0%hLE@QxRm2kZ!vPnQIhc|Y*O_Ui?p&R( z>3pnPSMejGU;lCR-?noto`n4=OQlDU+u;*z^Wp*jRE2Xq?F(uuiga!8cHHwNEfopv z#p*>U?#M=nQc_O}zSr1bZ#Z2inkMBq*e@KT*l{R%3jQyOgQgyFQJ2E4zux1@@{;Qq zIdC>eg@e$x%SH0Ac`-%xm2j}3ix`lM^iyhHR-i_#eANBO*W;q{w1{EbeERVD+fV23 ze)zQf@czf!AKu)(w_1ua{;&)DWcPM*(l2hwb$iA-i5GIbCzS#TE>4#w0Tn@yTM#^5 zHh6Vm+7BD>o0rIohIpatYd#QOSG{W}F(uWi1-Y$elS^q~YO|i4VC2Y|4Z80YnD6`0 zx?+7Z&+yBTxvxLvQjS-n{?(=eKuXjeq~->nD%DJ{lh# zpFEx%jUPR^`z*D>83j|wu=bJRg=DQ$*mX}LK(s=++l%}`>M z49zE;V2OaOAO|mFSbO2g&r~l@VdI69v7dQTSs#y@mOdX^AKddv`+@<`7aP{2H_pvZ zAD#sTq#yMJ>RH@sY=<b1s;?zE;A3;mIA@6yz#=N%t1b+!eju?Ol- zh}KUAvD!iE&c#+R!DjocYx3^G?D^Hpz=VFFs5UgIXL(dneF{iYkPkp)y{db zR=QzB78D)hZdws;B!bhzG%WG(PwzfWzy0*X-|m8`FBb~_sDj;kTo8u)6y!e7vUB`A zES#5+dC|9@l78sA*QjaGfS4oG(J>j9MpcQW$V%Lf8riDwrnQE5L(|e^Vh1WMnhwe@ zi>4wtgTkpGgIv53DG!qi@mDE3v8E{*3N+O6aDozqj_VdFN z%|28?E^--_O6|HoOfxc^&!fP)cxrwx5vnW&l3%h(mHG@()Z5dWWzYM{d)08=eW)I4JR>C%QFhi`q9zynlUy;cXZ=us z4aIzaJu$mev^16&J-7j+S#4T^S7oM~f;(T|hikN&%gDjyVqcjXY19qB(Z$$ z!~4HtAHuvK?o)XcAq<|3jIMMqXI-p+A%;{~$-Q-0)X6a*xOQl9z1{(Kd{va-7xk=Q z!%$?olQyAT*XI@D>K3xW5-7Xf#~=RhyWJhf`QkoF-2BN1G9*X5RX`Vo8QJgC! zE|=#DQf8bmqa<<>Oz_*-7jy505c4Q;alR4x&<-TK#iChg}jfo1EOYGpen#TBqgc9B1naInf5y5%?;`awuB=? zG}vs?uGH+W(FB38192F6LiAlNRT$V`Fhc}98MXdN22XzFuT z^UVty{D1g#_4&s?BaLZXfOn9&n7V*XqvFU?u_ zC26;`v>Z>bZbmb3BVYgi==bB%*fXsoQ*@7M-p+Vs;!IHq3N)SO$rHj=y!-4WRoJ_0?T8zFiU~e zxuyX+@yQIIrCc$8C*i3AIIb_Jt6S&KyxIca1Fi99J=5bU5>bh~LS8rJ-8B9)IXD(> z$j>~npbcEO){LLb{v$dnv^!+Dk8V$FlAlEd!TXF<>7iRS8wE$5|1Bts5d>}0e7W{T zIv^eRUK0Xlv!aOb~d4t&L43!tO$@H-7#Vhfm>8D@`Vf9m~kTXA(P1;Gp<8@+%A#u?3uf z+%OjshGxNHTKEtFY~7=!$-@(<$b!}dN?I+#0ViEKpX|qAK z&o1miN7$&D;cKD9oQ4A_K*|3=#R_?jRs)(g_B!1Y+z6lTyS3{}=8;>s?sks+R#D<&sg>X3)3Grbw22MNo~br>3sb}d?% zx=Tte*&)u(|Kq0}k`3^zPf~0P*L^zBm8KBc9+@m(gC#@eiN7RSZ9e~*;+KHOk(>xB z>Ec3>=9APigKQVu4mF?Fq%TZ+88D3~(tV%8f>|8Xj*lj;Ob_cu)|&@G&sLoA_FgN_ zxLR>QEU-zeL^fon0}>B!W}!3pawgKslE6#*P`Jq=dZcFk%ck#=YX!y%A1NjmFuKsW zD5}5_RP#j~U6eCaLrCr(RH<#uF%vr?mJuH^gUgMhi|f%kz?kKdC#t7{s2QRRWGAA# z==;ReUMOXTvC6i&`VFPVMiY}pj| zsu#7|+5^V&4{r1T`MOWYn~G|tH&sa!a;JgWhnCW zCCf;6E}J#`9kabBK8(~W&t#gC}y>J1vf@7XEpINE1dK_h%@Z2k1NljLS4XB zrX;c7Jo8G%60$$lhW<$0Pikw{G{<0x;5p7ZH_*nw&!$MAroamo-k!et5FO6igwEi1 z_h!DVH>cy=bboLozQ;c~^|6_gehLQM5@JCWs*u3V#gzsN&7~AxZl4&^N2Iy&D4YPy zW0?TgXHbSCC4wRpMUX_4piDw*b!BgI6O5w>DNA#vjGC6dx(Jm|m^Riq&j@zl`@nXg z<|5Z&aiBbf+JgQI{(a^KB6x^NZVnvo>`-J@ z1OJKRH6fUpYv8ePk8LFN5rSztjB6ea5H2uvuR^Ray+f3 z@i;o53_Ijedpt9fhs{51SSFZYH14p43IiU|G3fBp2kHbM)iAn#`uRJ!Z*1<~eSH66 zxA#C8*@=MLYT8XpD6+l#@vnAwIU1~2dotv1kQr3<&MKcQ&o7v2$&W(@vqBra8-hJh z)m=IETjpZ!lkPR!oQBhbM?`?Mpd{8EQ;mX&JJ%{L>#`u3&#mOKGA_oa@ifJrXM`u# zFUL6XcPiG4xXPkaGN+QRY~j>~+9t`HUp=^*UP01)^X3CG`jhi~bNAh-dyQ$kg?iE` zTDaJ#dqH1$JyR((N##1|{em4DJ6#7$f-i*E1)17=M1_6_rz1~*$2Cn1dEDeaH(ae{ zX}$#(Jl^Gs3rveDvLes$j^E#Ba$(b^Fx{wb=?+9gty+WoRD<@6lA}XO3McpH@vuHp z6@Rl@LTtz1C2*to*%X@^w`!-0zEbWsGpGtbT;IKW^TWIE5eR^<8M>SgtUdlqq|xG5 zO_(7k23zqK{5MGrvO8kxgfCzr_Ak0ov~Gtwld@zL6)O)!b2o=<)O?l|M`pQ zdI`C7dA^%&E=N|avGO?M#{Y%Wm0_Bz-YEe-sVW-6&JRhzX399!!C=||>9M<=C5wU; z25uC)(NV3DYV{j9ch!f`c}+L_M5`XV#=Iio(0~M6V0v+Dy2oBT#(r8|`#Dbql!^Tl zCVtl-3RSVK0&jQ`l4xlV+Bc@sNXdEX27#yrb<`$_ve^UC0}4D4sFbIG19THF?yn{N zg05lUOU)Vvn7)+DNwxWO4)(o#3DvRq>Xhdh{Isp8a)+(fTVLR4>H|r%@CCK16E2*f z{sbI*%C!e2R0e@GsN+S3y&dI12Mv`<0PY)vETPKEpa1^p?%VgD5hw0<77GQ-Dl?6N2j-dy(sjfSss@{@$ z5i3tV8FLSbh%2xY*IIsqZ*{o*t({>V0)y1u2W9+;X2KmdTxTq;ki?U@LY;t)$a~bi zpn0m?lAkid96dk}_W0~UgKdFnQt;705}-WYzo2tPK{_B}sBcqLPPZ5|ac#(jk0`h2 z`k*r)`XBA-f4t}VqnJPUs&`{xv@}BsL+)mPNQWWzT^CBl39Gd{^TVHkXS4^{HMZd8HpN|FIZ-xi@u}9Hte=s*`Wv2E&4_?%_kiZCKEcT zsP@#<*y@1FLl#g#_SR5h(*4J>cT%JQ~$dbiKobeT~V;oYV?e!uiMl+E04BYOpt#R4`^+iH@!VR7G zCMcT1?i!hJr*Gf-;4nEH9W^64ip2?$nc$7r@#C;aFZHw>giF(4h`F0sYA;e!;3>jS z%E5AtYPm4%gB=XQ?FPP~9t9PaCaX?jlr~IMfDvoc-}5cyRZ*P8r7d`eL{3 z`H2;+M2W%g-={Z7U_I3ABmW4eseKh*4^3c`8DN&zSXxZRB??6%M+7rPY|n2!1lsiO zNdDTM_j+c5X@Fg-gQPe8OZtA@?38zq-6^m-oyKE^o1z>Gq)65Fq+v%%IO2!6=x9i{ zE-=2qR@3bwgNs>UKJ5yM0=JOTLXQt8*rTLkA_q`;yi86Kji=oU|q&p?YMuKIihbw92|>Mv(1+m36hG3{_q~pFtnpr!^HO zRMXgO)=J<4r6=QS5`IKw36~i39fnmhf_2@mCG9z+z9^L4BRx1;nz*Vix<=$ZZo#S- z6txNR0eYh@x}QwWh(=3rW6T)l4@0#6`iz7@qTfNIE%esIrQHuZUv^gsow-oyb82r%LTKzgvJ!w`w`7sa~b zE zpI<2j!wz~AaIGcXco)rESV9QnQe9u*Swbutm~@e{`F2C|pXFFeZH>f`hNCpkv81_c zKzbpaFp-%QR*PrXmbfU2lUfFiaB7W~-oVKs4#+i&i%j(sb2sTo24viTKvTlL2MkEQ z(8>yHj5OR-(Tzb9XHz)HERfm$68qP!>c*OSpd4dD%DJaxg{`7cG0{Ox`#J=DS8C)<5atx!+cQ_R(Aaj1&OPV&Jl%4-gA_@hjz-sy& zno>AqG=VAYZslxNy*=?%CrL$<1!3Dvfu`0v!Lpjl&KJHZYol|14ut-Ogs2KVEq`ME8qV-H z+=)^XCg;Uig;RMia>C)Sa|l)#PcN#6yqp=VDdLDAGh68{NWy-8aV+Yuk%ik-)Y5!7!{~-=$a7%*y);<-f7JBbd4H~$VIT*o*@@KkDK8gWz?~oN391#|6s}~$mW10;QT+80!GinmiYJ4 zryu|N;qLnpbBQ7wowEPUW)J^FMNBUVOug&AycyC4k~=lOkziA3v?m!UH78i!tviOW74%xU1cz-M8KxK z1Jr(jKVe!Pa&-S=@i;FcE z3d^hr45#je2+5P=;h*4H`a8wV>tGQ-g@Af@>N1Z>yMI)-4Uj5Bd@4+~@ABd{69Kb{ zD8k*c&aT%oK1*WHR;=oWph0ZY2D3dus;iJSFmb1xu z*A}MdXuzI7W>8;JV5R$Zz6Ew{pKf)2l$O?ur*V`{*;6)!mwgUFsZ$uIxAYun zsox+%dbOr?-G0ebkyE5FRnIYpeXN$k!PRZXa<>>=gv>zNfQCGPv~xB9z_TA znbuU;54syDt1WQ=pJP@-l%N=uUz%6LPY)#la0rnl7 zC@`Ut6Fxms^D=c;%O-T8^~IhSaF7}lSn1Bf7*{xpjDj$RmT+gdCjc1H&yp7&v1F)Ui-Q?W3rDFlMg9Bq zsuA=RE;xEh>ZQH)Uerks`1lt@QH>b#njU2_GEig>BsS$$p}tsf8hDVZyOm`u7d!}doV2&em~RtWOLn<}A_Nr>`U#d9+dk;NH#Ib_wpcBR&c!pN z)xYlRWD_p2D)N>T+7uYg-BHt+ICbKVgrWde7ueXmK^x3b;(AGa@6AL{=`JCA2zv@u zOZoB5KMlm<_GXlR>+8kf)R=lJTUp!cgYCA3AWkL#N?61sfxAVDU0mj2G5~TN`1$G> z8UU~{$M#r!PF&D)i--(!V^+o*vT({#8CjhoC5ZDj1TnEJz=MfH$SqJ@-@NGCP+OSR zkJIlAKe6P=KGLm7K<}U%CD3FeW{(3y?>^jl2oruML;BaH3%>yBMYc!buY0t6$G=|S zpWK8hD6TAvmf-wO`4y{P5FQLwg_#O4Df?`jU62jlS-LL2p%E0A&yky26Jks4 zR%{btxFjVgVVFaxZMTV()6s+CrL#X)tkiKRwmm8-@=$eOCvRvXdIT6W%vp2ZT<3{8 z(Wa%_VH>tfjAx>nO7U|l{YLU zAJZj;YwvQJWs;9mFnPb+l67j9EOC#K-)drUm8DrHQtAh;yz!IzE1hFVONKJWF%2Fi z0n!9G7L&*)MYFsnO_=csa9Y6SQO%}wreG2*CT7^?+=Kasw3B5x#@mmb#^$^kuR(%l zu8oS8qX>3Bgi{V`U#!iZ9>z%X@LXJaNQRxHZOt_xMYrafUDEqGD~Y7tUrr1IVF%x? z)VZ9&hIhF`-n1Fr$B+TSNU~pEY;|5P*2Q=9D11jdC-1UMijdi|7$ggCNd|O)!e~z@ z%ub=^UQAEVtFGJF-$4d7KpJ^DqOGQGvJev)SsQ}?StjMGT4^J34?`AVIk|!raukee z5B5$&64U<9kn@@uS2*$H-CZ@O-BVy1qRui;j3P6kO8Z=HE^V)KdZay4s2G&c8+feT z6Uc76b`<07TekP7Y1iYc~X8;7Avi-abSRu5{kJM++lLi}U??om5cVxR#S*FD`^^!F#IVO9bwNh{JgV90U$nGjRXw)@ zE+7iqwRGP2ZERtdZbzanPEq#GlemI$QXd=IH#zF#B=?fFUedrG#31t{qZ;&Zk&qBS zir-6fRilJ_-dFWjb#Db1O!5>%$L29mT6!8WO|)WzjPTjDuL0;$*j>n_vd7!13lfQ= zv448Hem=y^RhS-58oRiL^km6XTnk*<_T}URip?583=VF{bY~wQ~!sFE&OfdA=7d{w8Jm+gLINz1bN2uBpEP)yMnU6|lT@imaEOs52@OpO0sOne+}_&Cu3*Ta*M;otNhjX;;|!5ESLBOr_h%%NCm# z&LH;}pgK;E(DUh3u2u5D66tVQw!|qz(j#1T;UDEIY5{h3$kI=qRVwr^BU{b(+q<+b&R4RE1UkIOIs`(XU12z!8+d2&w*s+VIT#!)M>}GBv4}G^XV0Z1SO}aS+rrM2s;g{t!MltZ!6Tlu?=Wg+w~}EVH!jc zr4J=aJAI-U%!4>igcOWX_)1t{St~`nqy6RyQKF!w3;Oz2 zhV#oT=@T8OEG@8pId_>whF94_!I`7ha5uwn1JZ|yQy=^avi3 z_~Ow`k$DjGSGGz2g_%}Ib}@`{>+AsBDHBYX+*v#>b9DPZ64wr*Z;4LuutexA==}gM zvL%Cu&tmErs^6NDu1&<#(vWyGQG%_x!W9tsyy9GKY*D_V=NsW8?{R^mmApivM{|h|E3k)0@s;70S*xI@TL641-iV7!kt) ztHi{(;RyGMmOf6mxbA9@rzkKzE++I)VVBcwP3mcGoN>nDh%V8qjxJw5WO-9Z=Z#Id zLB`VE?)9fnAAb1r=TCRL9XyIZ-n{`*Xza#QANlE1D`-Clm7~Q8OLbzRi1T&4tZyMs ziN!f2yHm|!ol|ePQ<+@KjVLnc+?6^6pI3C=TT1`ldj z`Cvxy@VJSXcK8_IvVP4LX+CR#A#jq_9jw!(d_?unwD5-1)?1C`()1%nXJA@fK`0s1 zktIAW<10+>W@*f%Bf-%=KfRW>iv859L|DB7GlIF>rg{`yl78gNs#cTPlFC3Q2haco zUF;OG-+H*5s2Q`t|Cv>Zkq!AjO>QrIr(NW$XjS*Qh=Qis?6rG;6FfB&;w$470 zb|yl7_I1(|ps69nOI&_BSGyp53Nt_*K>$qIiS1+Jw0BvzG&N0`l%=eU!p;<;ib5m( zOJxzI^I4QAbSK#Sx`615g4w&iFo!rG3-aj!32mIN&+Ve6Mp$5akewBZZZY;2BX5IS zbdy;cn;1J?_p~L=8S#fdj9OUtMKz43}sMH+kI;<1A&<*x$tY$@RFP4?cDxG9$cIDht?4&^r>;B+5gwhu7h2Y@%^|Hh8*zdSNjM5+gQg7W20 z!RGCDa3z}@j(+PJFwf;OxJm`4DdrAbFAph8U6-|SQrE&t_a&^+%kwLkNcx+(!qna9 z*(uzok$@GkQ{2Jd%n?7*iD)63dD2Y8s(Dsrs{zKg7R-)+>O8TP+BY{Ky_he8>JrWr z&mlQTrEuugFItd#^M2*jMa_4y7SYg)lUi(v2z4;TsY*Rj4IyH4WSxl8^i~r190_DW z@79akUDQNK=@9T4UvLH(=wSyZwAa*oK(fKu-D$`3z4Aq<<7yH|XNo}Q=Zo8>hrXSQ zyet8|?M*GLbl2en9mx=dsW5ft^jJ#O`LHoH0d<4(K}qx2<%1F^DGn^Yg1H6TPml&l zCiL1vFG^g6=O%}IgqXqVsh=)89a>)Gaa>WeLKMeXLgjp|6a->OJMoW{b*$CIz<0j>E2UJjbX>nPTteF)x@vJA4 zl2%!v#g)Ct)tikzakIE{>C>(4O&;93d=9H<6NiG8&>{8g_yh=Lx;^n8 z0Lt;inRcbZ*Y0%xy5iSH(qI|8QUEaOCv@twgT+zpP0ng1_`H=D=e`mhU_94jKJ&9UVAFZu9&cOzoJm)C? zJ-wXW>=Cm1KzEQ{ovx{3S@UDb8+(|ZooxlE*NUTX)uR%UpoXK>Nxq1ZX9(NfQ=eF> zLOIOwIK-^cF$BM6XHT?v=26#NcjORmAh#OEfEQXo(TzDJx;%{J7WUuuL!3g-9;mzw z*iX5mtq{f9k` zPwb=CtTI65gqI=P4(j+SP{Y8va(3ES(GvCUf=s3ePO~ebR<3kQZId3~J2tTT&eqrb zXXC=X5BMG=pq{8NbU}D9S4x4^Y4)lIv|69Z0?fJZT-0Ri;l>CyYC%@xM0NPC?JrH$ zApAj&mtv-BN;-SurUKNUZYIC};UagjbK8ktj+n2CQyHIU!8ZXTfuzdUa<6o}d|JU7z`TPHR2YZn0%_W;{ z3%1GfoQs28eSu}<(Hsu?Z~1W|r;2Wt8iv2$o2AA&_&i)()9PcA^PbeJ`?@?}u}>C< zFxCuyM=NC4tn$8xg2A;XoB2TaG;s8faiXkH73dmv` z8BjoqAxMsGXUNlK=KzlZ3j$j_1#>rFAai`lbT&!1Smeotxx?^)bMa3MO4bT$$An{o z%{F`QWuycex_mTz`52c+|7Y}He}R+e!C}dEzeRML zyQcWukb%I#VgR9N5kcTS#bCIrl^k%2XCSdFt*~o}pnLJMdQ{SjQO7AeEiqpHx&+Y6 zcvR6;AxniAs?riJSk(J|zYwS|DPY*7J}}9X^yh42c<;I?*diS131svOI^^h=+OOp* zXg_kM;&J9Gn(Mm7Jt@EyZQkD9{q^$wn>!IHXOjlN!eyom*}m+$WpRrHMDyg!L{`tW zTod}}v0ve#M@`G8kC?T1{=)OK)6#?yhRDpH6aK_?kvOa$*2I3 z6`LmP49r+Mhy@HGc#-dbFIY#3*%qMtYO3CA0(7oK_b39i@My|3N+$ zKvH=~kIPP8jwCE(4KFrGS9SZi?9*8|;hSG%_x+l}0O{?qH(9JfShB&!ROJRR^1c+s zkLL*q-wB+AN3abH`SDOuDOSqtK7v`567cFD3JZ+@Cl_Z-1%lL3=NQ=d554nIdgm`3uB^_=9!3FhdQJ<) z?PA8{wA!~|mW@_4ezE*?8HgqdK7O=7$3^gyknR$=n~t98f{PfLIU0V(#7MdYbRPy+djPrYiAM$2CihYbcb0DmYZui-GDQLhi`uL?~J!LRu1wy&RkU z-y4GREARp4L1$k_7Y^Gxz%ms})<;{+2+vM_m^n);mzve1Z?D;?JR4$HP}hhH%(0OS zgw8d0_(Gn(Eh_9XyNR!}mzmnr$z_QxWQoX`lRXwqu*guomkW-iIz=5-I0r7)vNG@j z3kUK-p58$L&*s`$aDADpEM@PNPwj$p=|d$423v9341 z7OKJVrCtA6y}5f)v$JD9zdZz@13_hJ5cMsP5s~g>H<1`+^hlwD5L{)U0=o#+AnLh| zT%2vMW-iPO-?Gv|=+PsxdpawyOh3njB@7uXgdoVE8B37Cq6d=jhAj5NG?=VFGLU0v4Nw2o zrBwQ021=QNxUNzKX%$emxM^t>5|yZaM_mQ{o=$a=O))je`c`rf@UTWS1533z*X}By z7N*CXBZG|d9wbCSw--hc&%Qpah~Rpe)4goLRZoaDIf zp#&;0e+lj)%^u{|S^#=-IV|PieR22$J#j; z_V^_i+D<3UxSKyFSjv3MEMUfYLH}($fQj3RRyN~7+iW~*2J<#o-TX92X$Q{-F6z%|R{8-YZnMs_>@`e^%=>KX1 z%=6d`%k?Y1L#OfP1^slG>$$@Al3B6&82SUG_oP6Z5Z(b zEEWw?ShvBKeaV5aa$ifyftoe+O0BV^;!3fH=FcP3$)Pc87!l2*;1`e<2m+AiHSv=q zE=`9zx2`95U56Ck{2I&}(;tD>>)Wyp8g5_c0IrOwvthKvhJs2*{e-aw!5cK~rwEtY zeDk8&2;8S}T_b7O5@^A35$I0!c?0q283xZ-%4Sd8%dCf%&Cb*fj}Eu1M@o6(HDqoc zT%SRFX12ch>cy4w5!5`8k3hP^L?j-Qxo&);ol9WK3YWdzu{_eNm!?o66wvdV=><;e zW4q^yh83ns~L8A~JxpVoU9oW&bQTDuS;O9LX zrQ^$;Z+KaE@HJFsXoAWQTPm%HgvlmVuIbaY2S7h+26!e$ z@+Q*2xA4AUrz=jXf7(-i8fdY@gWq>SiPiA*NyCx7o*Ga}i>@&dRN<%g&@x_ly2W+; z5nS_BiJ3E-m6nYvOej(zq6S6CGZwBew_|d*$;3CeM921o^&>zHlxe<)j2*d0bpg%*G304!`S!dGU%tooRt-D)0kmhFAthhFS_rlrTI0<@LLFcW;lPs_)rp6qsPHl#(9h7&Tmw9>v}pdYP6# zYGE4Y8FVA6|2!%M1?t*SDT(vhUE8|XL$?e2Kg7us<9tYb)YP0MJJ1AXpwxs}=s2*1 z?4N7$p5IL8z-8Zc16n-qfLmdIU*iDwr2CePv*@I$?92!H`0;jiG?s?PB=+UfJQA=A z@sJ#GWZ2;<$E?JyrvnumK>3Jc3l~A9i&!sLmuCK}&4fSZ_?tAfJkU4KVF}tiKN)nH zGKdySN3uH7go0?!)dLSDtEeqn~W7FD5dRStg7#A4A#A9qijldH5_YX`{)uqGq0VCdI zm4F5gdyY|2olCHJJb)AacD=gTy+d5ft&S9Dn^|-TF%IVob7HMcjlJxS#U)aMl@>Hi zrcPbv{NWa=BW&|vilSq6#<_)Q{&dOZ9goe6mPR0W`1ZR3s5I3>G{j1cu3xacu4y6i z6<>!qKehQPvlLD`;1yOQCgP+n(~BPbd&w{l7GzJ!13nIC>o2R5P;R=fOoDy98!U`T zqwa*<5ScqfU(r>x7oOIKJF;^EM61YbUQOq>49>WMA#*_nVkVV6@KgoJ9{!13P_8rv z%Q|j@!v*e>exadF?gVXwN((PbA6yNgteTpr86ltec!tgkP_e+jv+LHSNhmON*OE`E zKDKyP$VN}G1_i@7qp?S970Z3XuwhjGqqxMv(7bc`5|>voS<9WE~2yRNLP zg)2S_wS%_IUF@_xHYq(r0hZYPRf<+$HX`K$pfPJZyZ&(Z5oJ@1%e^US7uqZVzP>() zy_p2eIx$oNAlRgf>-nat9w!jgBUzFCrWjgGb|9o@NvWd`H3qjaM8_tTnm$l56Fe7Z zq+E898BwytUFNQo98c^G)exPN8@O*?Db*!M?Nie3>G2@)S+8$zDiLAY+xazpi53@! zqukmZ8bcGx!jOX6RS+HNcJZMSO<=AZ6#06v;CYoG)PvGICT#%SbOv1mug;gQL1ANk zD55C!ViE{lNpyHP$7!cK&2AWHndeMoiYJgH=uq|;$ofFrRDKXmCN{0|)f=1_@E}&0 zG4R7t`3s#jon7@*qttc3%1~?R2H%myM|Vgtnbc%1(=%k7+fTbkK2g-nSsF+9B%Iz{ zJS!7ev}_SSfUILJ_oufesD@(9<)N#^)}a=w7eq!i3tS#1L*c(*#9b#*yZ|G(rmMBl zYb#K1m2Lw&Z0Vt1`l&Znd1L$X2EM17D|OLhd1{qJe-I1W@9#o&i(6(e z0Q@43p+p!sl+LaDdg&1bZ7~v z)?aITT4*6s4cf_Fn}!O|v~0}h1AZ>kn~N<~E{HkQvIa8j>!hV|Ig@4I9$S={<^Gc@ zqi|^ul%O?5OnhHr3P!EzqDRBsibWxZy|cQYh8RKg#uK2ar^67}MJ)a5794&D?K(ic z*RYr=2WQ72_)^i!Ek!?3z^O&)JgE!SqqNt|G-#1Gotye_-IfF}#0&Z!3!bh8dVhIP zK?XWsT)3MVsfHfkrcm>TIqeEw+UcAAP`??tKI_QPvMhfW? zXg|U9o&*yazNJ-1Gyt{F1S_Ek4sIk2Yji;MN!rZjKZ8@s!!ts=QpC5BKDr2VF?O&1 zM0av_s7-y{^cozT(P^e|(j)9!hcIm!ptNc@2kxskp1`_^+oc@w9StytOncJB3JI!_ zSFSZDk-Tw!aSWq4CY`%1A5Mw?3(?{F;p1bT)#w}2A{2)A*bvW9HmBAXQHvgJT??Wn z#~DEsly92}SB%Uh&9{2GTGb_xXz4c22~JtFu|mUsJH~157r}s46Rg8*ncT5waGeTF zbB-zj*Qjfb;v}k?QS7tF&aOmDA4nFW#Gs93 zSF6oBbB?=BjT9Xd*JKZy%QpEQCzyvK*2wDq!IVbbyHgBTA@$*!B2Pp8(-l|(`nx3> z8rN*r-KP}x27hiNC1eM8quez^bn)sBLdb8(U>gXJP0J6}i|??HmR%)+GY!S9a2M6m z^K%p^zGN7Mx42=b4zu8!0cBJVh&$ZYGWykDex)NY93~iJlv!8eXofkqNuLeDVXv>g z0rY6-(Px{D@AMPcjYS~fWQnV_8Z+fy7>qOlCh5|pI;gWzC3u4lEJ=a+*hmq~GuOTO zpehmf0zUEvm5@^wBP20m^4S*ZSp{3cw|(!hWE?&~{62CLnJ>s@TqQ!yS#K>fsxu#v zD!^1UgTb=_(gzP6AkGZ(fR%9OLEVwstTZ*jjtnQj1t5cM3+BZ>pG`c7tdw4;MKId= z(5h`n_=Vn<=fZO zAC}G7Y~KRZ12t~LA0b;3@EcI=Y>vzWgvt}X83K>JRT0>o%?A;U2TxA{mySvs|%GQS$sh79z&oi*;n4dCZlz(JD`qcLe0jHadXsp&!E` zbu;A$#t)8`TpbwlGj1S;Um!IgpGJt{lX^gXw!Y7`rLuzRcntliu4qg~4&g8P4A_93 z8vz5q+wHEeuN56=EanbZh%nKCF`oYq_jXb9=d{{C0^!hHu%M_!ak%vM=eaIP}gwR6Nj69pimu1;|yluPwK zG#D`t5aqJ9AYReS$-@cwJM=HmN!}Q%Pl3vdCYzlj zUC>w(_c4yN!jk94(pb2_pfnTU51Aj#DQ-|m$wdHBMQI%>^)MdA`B!h~trCSJM@kWO zJS9j6sK@c66~1E?u(`Si$|WQ6=wW=>R7|G_q{u>PaW8txpL(~gu1ze$yqAcMIfM3U zxx{DNLCrH#a7!g8? z-H|!eTk)HPRUAqD2EW+w7NE{cariXMeSN3PwSOG_x4i0{L12G5scY6C&ycx3a=ElL zH4)ZB9VT6TYhiU>jfZkCGH>W%LVEM)h`_Dl1F>{_@gSd7V0uaMk4^5e<(m77(=G3)lWAMM@w4U1<=R=> z4?leWJqpd~`YminF5SCn&@3F`O5pw}a`sDti%QsDA+?dV7Y-HpbWn|>Qpt*vDXqGU z?(*W~SaCqMgvQ}c3YXpCh$VW-IO6&^J5~^-Pbo7yt)xT8p;|ERn8o!`u^%)NWDlrY z+#zcA;-;IFB16j4bL?J?LKwqsNa4-U8&NTyWSvbc0u&z$0 zo1UR54%3F60Q5oR>T``|$LHNIY(VuHt`ZoQTTCV3S@Ozwl(2c6Qk#$At$O$q^=SN$ z-iX+fO^8e4vbrF#S2XTyH@7^XJ9Lq|J3}>c2#@BPvp@t6qPvv7dVKxxXngSuZ{I)( zg!k{W*bRYWXVWm|`T(05QwQ)MXP}_@lIoyFlME7FOEI;O&1#Sm;vN;B6k|t;9&wKR z4lib<_oeh6rk2&Jnuf~<;SFs!ZEbk9A}*?HcX8dBGhfltT~c&~4D9gD#*0^on*i52}y?r0;U3eQcb1_~_VFB$)cTqwpoP&Etm7Hvo0z zR&|bKvz}f?ELNn-aj*PP`nf{ecDV(+?WG&s<}J{vhU=sUnGDP!_tjYTS(8IimU}R< z0tsw_*u(AU_h=t_;rmJDzB9E>FnAu_kt(H+xU#7&RIrngR`vx0v|Ci@05zd{2(xh_ zy2GC64Ly$R13CN6+t+`)+imXt*JtP`et7+MxBc+?-Nzq)_{6+Ry-peWpet|n1TekG zu+(OAm`DXoqs9@T^pWzZpZtC@d35;X=;YA}{+S$(kMB?~_vAt$#CSb&L2cd7L8q7> z>K?}9Vb{^pXo}`% zar;L}umQLp8WIO^l(AS+>wDhF=F@BHU;fxQcNsa(G$PEt%P}mwB zvh!TH`N)!UXxk1tJ#`?q?VVPKK%-R_&Ovg#CKs`uL&iqzLYarKQo6d6o?`vJnnxKP z9v_c>_4e(r#C?4Ohxi@-92sd1PfW5e738;aD;L1}+3p)-ZPZUq8^15aAW1ARJ@R~u zC~vR=;QC()r6;Hst5tByS>o$ON2Nb%rnzX8T)@an;AR0lzG~ZQMn8o5R2hwSEe27p zHZv2QD5NR*-x1Rn9I$E``q-u!ia_q_-p zu9j4lr*^%#PO$tWcWM&NMO49n3#6GU85e`x@Wu8S}cmByx1Q5q?HEWOle0F0qpU=D4RYbzr29 zEeo%S(3l9Xktd-zK{EAdA+!et)~Dt+Hg}sn>8JO&XGO>!ydth??D@yMI}8_w9&T$NtloZ96a6hCD6dmw4`?T{1eLX zN=H&jNeVCM$S~ta5@Ap(J{%ELn1{=>hEv)O$!536W5HqJbVmsK(_v7=gDse@h+FAXRBVshT&g@>XyP~sy?m1B(1cVPQldOc9*-b)vBZ?*jlupb2k|f z8w%U0=j(PNk2rW3F|EP+0=xKPlzwYf{kWCZ1Y^d(b}*`9BzNNF^!y6D{|2%0i1=Dv zNx4x)Rc;DCgOORH0YHKCTa55a8~!EYK%g6rQ%TZOD20r4nQqH^xOF*eYxBr4v4|58 zK?&=VT`J#5#V~Ex9Wud(6p$u8Uoi@m?sQBc0lAun3#Ykux5Sbw-N94} zQuC#|{9y7OQL=a7jodsn8sq0}AK&Pr`0XdgE|1d}d(8?SoC5uy{haJD7}8)=7KaK# zD5ga&v+I{gRV=4kOyTH&vW$-ENM{7~W;?bnR5PDh-Q@F1^KQ+(SM5g9M&TpDGL_@4 z@2oQ1A#dD9_ezqnKfBM9q3k|SBo@dPF`3?gIm2*VLyIz`*zyx?)qNc%8VmJB=h(KL zdE#~`AWf1;06T+j!Uo{ge9{GN%fe3xy<3G|tKzit;}~4ca2%jP%B!I^=e}zQZ9^u9 zl{QW^Jr=@laIJ)ElE50u-4whJV{s2iDhIgn!$-6WfqMWBKKVk|v3Dg;%R&xjIy-6< z&|R256bCp&-J}pn)N&B+!Sy&T){EzMQc-amXMwzZMP_N%5l-+U+sj%#`UcPu z1;oD_Cena>ury#!*D!uQxg^s7`jP?P-Ft*Hh*b( zN~rYz%iP;`w~-ucg8C^~&lw+TuiJ+JNxh8k^&S!gNVNC@0U#;)3y!**wzZZek3{*( zXFT)U_j#U($c(Hiu-iNPVf)x3vLdT0D>E`O-eZ6Ng?R~60gA!J5iO}k>+B({et1Mn z-)VRtB}x*gbk$E3SCvLfcdh^NW%K^Wzc6{?1?cn?jwI&(ii%2ABf8pn`7>9DPB<+z zd+kyk_ks4b;$QAQN2NVmJr_G^-sJ0BR%@q^DdutXoID^DSVo(AOm_!@zOd&#O2!7^ zE^aTb521}<(u_km_Jcn^^u)a;ZD+97xFx=xowAT>ZQv*Hqyoc?BMq!O?A7>r!eF6+ z%Yk1Ms~b`ZHI1wC!|PTV`$Cw-UupHF*0=c94)Zap65JqM@`>2eQ>6Tsf+d@K3q&6c zdcpNS`TF_G!^Qo_KRx_;JC+{nk8W8b5VbVHfM1>Ad>?OC$5(6k5||VOB)wj&$0I(5 zsLqCAV{>}314&THqU$tOby6OhY%F6w zR5Am{t>+*0_&puoj5p(tMX2Bv%9J;e2P*p}dX^%@M9DfaV*b4ysVzF`bG5roP0*F@ z8<08&b*88S?QqtibwKJ)N((u^p9=|}Y1h#$JIGHW>?mR$NUzBPkfSs)|MsV!-hY~0 zeuCBa)90SB-$0FCM8IY-wwgTh)%HpFD-Rx%6{yc?(f?5Np*XgvzCiIZp&sL32whgh z;J+NZT<`k1;AKx*5A|svB6oe}@HbF8V=uX9LSa{w&q#c^eqkCw&#)#!4O8fk-4Yfp z?LxxICqXIlYLpv-l7n0m)n~WY$a~{ii4R>D<#vKYmn~_U((CNdX$ry=c7K4&U#u-B zcVX91!Vr)#d?7pmN>nI*cMQ9&=R!<(!mgIxnyCWh6~$4q3b)mNO%kA z9T<6HJ4=Ny+sGDyp*T-Hrr7vA3X#x{s5m7mkJ7v~_rFeOw79l)n9&2$5yYlT>cl=H z$FH`H)Fv#|&Ws-d8?bR-=n}3h5;){ayAfHW|mQ~N7d?L_+#4XK_V9*Eg}vc zyaySLHeQGdt4flku->lCR28R)F&i-vw zVlRD%xhOWKejf@{XS(;l&43mBexb8KVYyI`an_yI5;~c zuZjtRQDrnQ@UL(01E<}Ced^s}CpJ+1K^M>!Tq?g&I_SpAE3EInXP6fpF+@p|?zaQc ztlO?Tz%kwRGFEai#E4wq&PVk(L%Xn*2OI%>yOVhs?qKulQCwNO3=eFU2ivt&15l?O z&oyl2TM|-+KYk93fzmRh>;rn<@Pp|XFNwbV(Cswei!8WRf8utP(kwGp2w@i=8Y&qq zqJn~$C(gKzQx6lWS28bEl65=nE$66PrRpQ-2EAtDLcb(p__C;&74SWYkVXJHK zi+VEOT#BcQx|LSJ8L?xsOVwXOyTX_So@M>7_Vp~1r!C(&jQ5yLh}FhWX%&$tb|BG~ z+80RZxVc+@t>W@C6)FHLT)5aQ-;gyaMeo%~ zLx~w(y`CZkdYLDYKPU#lgEG#P%s-%lgS%3Y3u~&gp zWC)$wc&_D^=Sciw!15n z$#9;@%fw??IBRiPsvxC*3Aq=%tsV>c)_2qdJL(NfX7&`0)cgiaUuv{l_Ge|$!wQ|j zZ-jps79O4u=wNOTdkF}3X3}^SJ=}j*iZ2$IG_42|l+G^Q@L<_WpBqGFSYC|wq#z-` zgBU})*?sj*Y1FQZ(yRvhh^>?dT@TJs5hz~wh^aODk{882n^hUkyHIz*X@aR_!P}hP zppH3+8?hFJMz>ZZZ=eG(nBinlJ}gkCYt*!CE38hB;n@LCC#KKEd!Q^U?hA|EKpErK zppKAMK;9g4s1PEyVocz~=&)Zfqf)Kw>A_$$mC-bVYW0a@-(Sy3g3T8pF}aoC;K4uR z+q9#HzQ1*x!B$}e9#TnZ+?CZZyIO=~MN3a$vQsQpUD%#EY7p+sI4HxnsM3QUk#W&j z3S-CHE}9u0gQ81P<2D)=peeKW^FO!OEwMUKeT{_6Y^)B<_~Er5o*6?QEqzq8T9?g6 z?SM2MGpkrdf`iHC`tZ3@c3{WsGkr0KB6?%lL*ZSFPzDu%(KJhEL^QRUvX`iAMNKI& zmiy2uv1M2R88P)ZDqAz6Aomhbe)DFg1HgXjyIeQ4^@6fc5EWKLUPxgFsv68f=vJ>x z7y26bxO!!`d5mIK;Tea5C}XDJDbbeu^f7;A)jE1HXsJ@vETYH`WM4&K{^<zO+9#39=J#LT;r-VA)5ixmu&?g94P-4)^hvXQ8-QL;4t1e2a+_Hx2UgqKH+h2}qU6Y- zMNeR)S`_0tOjt_d7&$dDW9z$h6MNDCG>9st5&s&MU)D)mDwbcD_}Osqz)hx;=94M2 z(?{fHb~SxFLePSb()c?j2{7(f#7CN3+qB53K+kX~t*JWjbeTP%25eduMRHjL0=#kI zO`Hff%Dy1X%YeE?v*hM5ue%&AO|o-4QFVSe@2u}%&Jxwz!fD@_VO6sFcZq{5xNTN$V^6MemU;_JlVL|AI5lWGy756R zOx?MLkE_j|b9ae~lR^-;MURT3sVk1TLy9?)?!2R4%RE`qS=(Joi2Q&22i$YPI6qaf zNsLN~2d%IIUqBDE=IRq^Qm6CP_HKVveqnhrPH&>g~VhuC5HHZQExh7ao{jx^mYG8ehx*{cIM|;0?{~Otg)` zt&SOg_LMTb;#{PPEP5eud(&}y-p1n{RB_VC{4iZP=j)D^?gkrlR6kFQ;vKfF2t1P4o{3vd@!$7id$xl7`Qez;cAWZ7rqCs z0whbXDGVCoM{sG@NtPBHD>xi1SyX&=8r?YTs}imBKvSeQn$GR^>y6=lm~ycG_F&H(k~u<~SQ)>)DkY#Uw<)hD#dT^|my4^e6Ho){PRwwAT$iex5;`gt z>&pRfax`>N-|oz-j$(Hzs(6J>W-hgka$--Qi96YqUWb4>=AdjI*HD^zF`f-&l;o^& zuhKvVSRPqwFxk0Zn|fr)Ai@Hf8;~;Jqi%QXf%RCX*k5APA{+(35dF%~@t%$|D+Y#p z=wYUtKgH3FwT%rd95VgppuIUjdIHaN87za+f!UOG}fS8M%YF6 zILp;s!HaILaOPsdDsiDORYTKU@dIDBBS+e<#9q8ZiM`~166O2KwD?MOfMsI9)o>U{ z3(%x)NW-;^0U`AJSy>(*bchGGvldpX!IT=94vQH71@+i4Tf5`_M*sXLrZ=AQbc7V6 z=s#E~9@hu!#N+zmP?>mKKY~RJe?UNN_gq=Vo7&VWB^u))fp?(P;=${JfeJ{X%2&|!Kptg^Fpx!7@mheW5EZfvS zWl#SA`F0L%28E*@MeYL~6~L0>K=I%k5)ih^+vj%fH%e!Ynf}O|H(n>)e(RpP#bsZB zelJaOuBhs{5M5JcnUQ&m)KoxwS5q0+Jb}#51g}OJ*z8YEaJMun^r$@dv7) zqF~4qmcg1d+KTwOCyUdC9Q1vbeZTj>x=Cy1Hhgz)iI(O-R3-AZj*SeKrg~8A3BKGHy<$0J?F&wjqovtRHkB!T<+ z2ThKC!P}0;H1~7HXnig*!t%NqxJs;)P(52h@2`3prI1p+P-Y>yTP>f!mQ9l8`l^uy(=~`hHRyeo+o>CP2OoLrWB5mNP1!`Gg(iU^(HfL(2ex+ z=1q^C=t8wExK*LSrv{n-%Jn6+^;o(qungV``53fuJML-F65*7=S>i=iYA$@UxcqtH+?B~hAZSP1B_ESDWu~%~6eAA40Z7lF?Dbw-2izdSIQ#IjYuVc+M_N ziSQ$D4Y~QcMw?E=!YRbjmtf_~F6k^yJ%@%(n_$IiaVxuz?qJbdD-&<(9Nw*J4a&lP zl(#wFn#T5ouCQ+OJ8X707Ds40D#5wX(;W2_;WY1`Y|I% zV?7O9MqA7s^mQx&naTu!$ICeFro(MEgI1OT z)5@%;AE`B8aN?m+;B(eA&jH9P4SbpcNG=Df&J|Ey<*+%5l=qC+ezLf2USo|z$j~BM zT5@Wa7)Xh5Hy8CLBpTv%J)kxOeg@1)5oZ$+_~5P~%5=@|gaHR}na39>lpLSP)5gvh zvn*CK;gO;DKnH!URw60wJ+eMuDab9`rvkmoFClqpnRQe>cm$dso+WxXM`W(+)m017 z$N{$u62WN@U9BQvo&wIC*gD-rcM$Ze{dQ>siI#>883e*}-$T@LxkOkGNhdUrjd{cd z9uUowF@jZb>q|-TsZ1^G*5;m@uWaq0FCh+HqGdbZqhrOy;6R~j{EkkmH1t#<9$Z6Sb{D{Veohw7+ z_8d72NAxFPzDTtkmG$y)1T|j3%0JUO4^_K`z9C~s4M=SPIQI((C+_v-=?#wA(8O|4mj#69*_%c2LWg}Jc!(CR z<#GE$6|$=6;?6Vj@6_XBQ2OCyY0mq ztS$OMi$uQE+-l%qb9z?NL^)g9fb?YJ}^;mLimSMY05>MliF+cKODtLXiB> zGUoY!=RKM+&_UnjN??>h0fv+){#HXAK;6J~snmamb-hqS%05s?p($z^b%{nAB~zdB)FgAyzd*T@td*!&)3!d!D#gyGZeVt_ zGFnoxI{V4jX&(oryEJL-xVYxcgpv&2fac@kPzHSjIb$SO)Ir*|<$1~3n=L0G3CB9M z{kH~6`9SJKgjGbckB}KU*MoyHr;A{r+yx^DvzKETPP%O3JYbr8+e>Lq!LAhLu~U`d zKDwQZnQFnw`M{8cQFZV_4{yccctKo2jn?avI&pmNF` zUrd=kcg7jJK0Y-++sYxaPl9k>tiM^-yzr;X8&$nKfV?{LqEKjeB|AV(jvu**@L=Wf zuQ z9HxNOHS_NqIqi@hN3)yvu5VpZVwvZc3uaE5+8=+5c-O4h(g!}K*dnu$+^5BR@TQJp z>*{s^)674RYrTDavp{C(D-Z@|skE80x44Nad&C)WlA~p161rsWv|z;b;4}3xPoIO(?Tt-mcY>4<#_ZMd~uCT6fi(U zK9aG_52aN{<YiRut&;}C(-B$>eptKb@XW+>r72<{jE>yoex(UZg&NMUUDDO{xg zC^tLHmz*vTB0L%&DHu>jZC2q;G>HNpsE(54T(2bWu}R18Yi2WoP`dr&yDtw1P#dIz z>)Y)eNumYd@$gzM4u+I72ksA}*We82m^4J%2Y4|T55&OB_ORq-gKnz<>dvGgBxX3V z_IAe9%<)Gw7+y|qK&W^?xgeL|waC)+?G#xFu;dyrQ}-J&G1bQ?H?*tV;W9a^`b&5! z@GxlnSidd7V*SAo*3s23>9aUBk=@{MZoHsJRdqn>F0_!o6@*d^Vx2{6kH0#_u|pr) z04;!cJ#~$ue(uy>_wFzEH-AePeSS|q_YbIb^f%OF zKK^|FPMJ4`0NWQoWQyyY@qzOvA|G*0i$26tG#+vrHE`yj6G&4v*VO53E@wOS zJqFVwx7&~R_dh|vgb#MJ#fq*3hZ9N>Tfo&X)S2iO6q!I-N59c{83g055qM9|k||Es z$0+`1tmU}ql8~S|bVnQLZawbv4pmLM3Xuk+k1?Su0?*GEfA}_(`M81Wz75lDfIUBf z0Rw4`fs)6kZ%x{u1W7G|D~Jc_TY>qE5^ad|>-&f4hfhEL<@EjE-+w`9v6B~p!17G# za1Ct?a(rH2mAxn>*r3fN%n{Pdx!N0c2!ybmzI752=0NF$kX|51Ni_iz6g-AH=?jcf zI`xV0;%EwQ)x(`hTunIPyN%K5azKl#%fte8pyYoH@eE;Dk;BZT(vk{^nrn###7veP z3OYu~RNKQy!lfMfz${4Ch)^bGM{=j{$qU3P#JLTwOBgpo4DdU2Vm;daUhc`0MO8` zCFhjuvXRzqz`>L4>U0U=?{;v20MkoMjvI$$5>0)B&bMOc z^gJJ>JwvvSn>m!wpaR>I_YYTJ|M~-xq}EGNP{PD~f=uirx5Swl5;=S(=}@MeLg7>a z@8?vg%)8}xC#kz46aiOV;vU#sq}tK-QowO+1@9<}>rOfoDnFLea8Q_eL# z*#XwreXp{5p$8NK<}-ai&h*B4D(rP&7!R0izZeL@a%e1P1y{tj{0A_g;?igjYUX&> z^>XuS_7=G0f1S{iUhqFpvv6^|J}+IOtDY{|Q#cRp7S#vKltyIyRS4l;?}yGcOH;Mo z{^$L>zl^rqcMlJr-~aFx-0F63kJrHW+R1mZS;&rp3WPpVueg9jD}PWLby=%U-hQZv$#OQkm| zG?xsTuDT#f6_9S@4$i(B2gy4y#f9f{e9}F#g{XE`0A{0+fXat+5y5@z^dL9WU{_m* z5IRWu<|Kp}XR3qC%lXQADk_&coYU=P)+}{^WUGuWyW^jG0E6yJXD2;{V@4QwM3HTs zx9;5QHXu3qg84Uud89v6nC?CO-R^$v1Aph5m=(l2pbqBIbRkLKWa<`BC=Uz{RSA^> zi3I!5IQ_08Xvp)`HD=G8w_M3cE5zbz^;+j&H0r@5We(Jzj>UeOYK8(-kSW#cIe`LM z=+wEU2Xk=ihfjYqL0qB%!VwngFP7K*Y$O*DV3Xqsu5gHoIFzOysU zXw}`+G2ucNEj^AD;?%W1P!GY-m~V@^akoA=O;W|Co=Uan{qQhO*?V{Q-wM~AW*oKAeA zsf5%GHTOm41UjJlAy7ecv|Sa8O?SXb_gZPN#}e?44AwoO3Vb&{99!n_>%|CJ9GzCU zL+JW^G2g&{(=NL^XVw)JWvB-bkf+cT&<#NO@`e(gkfbm|AQ!oW;!~Q*Rx0#M8ZfuH zDJ!SbgLPw(?10prvKBMi4{J($Fw=%BmVdPwzpyX%(EjlYJC#hyKgqfSEnd`{Y8W+4 zW(TNYRqg>A9hFyb{sGVtxFQuWAzg*7aP@Y3H(y|V=(P31e6~;wxJqKDZ49>_@zOcy z*PuxV!E`_NC?+Kix_~qyV;GsKOEpW^cces#BKP6CjYvh6-F&`)gDhXIvf{!{3v?cv z(H3@c9o`}veWqAi>*gYn&2y#KP?EZ$2@h@_^d}*OF>&zH5Goqz2P5_!6%J ziPg~A-vcbsN5UUmWszc=)0^EdZN5GEwwDjV@ly)^!3&+$gGSGvYjVll*k`q?%}K2= zO$^C)6rBk#I?~*h5MflvY=kT*Z6RvM9!m&8fwvgbiIaGAaWgd!U?e6S_Q*k@6;)W! zs@q{`zN%>}wJ;5y@24CeH86cA@#VJhU=(0I;N|943jFRxOrdPbJGFfS&^`rslBW1C zQmr|Nj;L2v<>|5?e~laHDRM>$Wys`q-Af$8<;3WU^ea61Ik12vJDp4I{*xRA!2e-Gg> zh5}a&KILf?i+-Ah+yGF`#v&&Z9o_{2Zk-9xh z*+yG4`@yf0Ruf^5K_YtA~ z-Rlu7-@P7j|K02VdVY}M{38*6-+lgb#<*dtK?{v9JDt5rlEDE*`J5Z8lN^iYN*DAO z%s#&zAY#nwK&2Tdgfom|BflRkt|Jn|j2_Lt%6p`cthrb9N|(KjAED+$#L>+^`3w$49KDFn z$i+T0%dWPR{MXtZ&`MvOp1d6mUeyPIHPhE9w}f-irptx}(AyTBnVU^Uismj@&le?+ zL%sje8)pC74Hn!lExh*nE*IoJ(20DGF0q-5DR*7&q$@1jVP$$X01cBOUq~w*VT~<~ zh#1f2Tqz2PvrMGwRmU*+Kl?U#c4(5nUA{d^QF4Zv^Rzr!QQAA5{o<3`Ema8|&^`9GpdPpp` zE96m_L{I?o?&QW(D;7h&!e)DYG*EJP%Qdt+{6Ehia<%&K(<$XcoZO3B3;B>S1E(3n zdvvji4j?tt`SAiyxy_Uo(W1chN`7NiZV7R~t&)G|*+#OpnMU9_C6qKoF{3eDyv#;w z@%D`PLw1~)XC`{~OLd-2U7 zwfX?1c%3q7Y)2nHef-nt>&Gwe|Mc82@>sCK7PfmmP(w1S=49_pblGj5WlnoDp*gr(^iQEu$0!SVv` zm?XtIta?|aH0F7BeOqKfKd0hwBScSkq!uN|A#l_o?slon)Z7(0J|!Y0l~@7aCjT!u zQ*0=h$}4B8sQ@duoz4*B1U~|s;z>!L?HNM{O+W>vud}q%bK~vZUJ-=M_<(5X6Y;gr zhICucT(@ODkwbwY2fkbSu*LO37V%A9gxV`Mvpk9GRgJ?oE|>tGdnh9JcGSC~evn=i zXfT^DE`cQ;aA2z9xm$zTvCD!5NOQy;LftVa)N-J60Tp!NIcKh_-SpCN&IMGr@Z6lU zn9Jt#`#&u{c3#ni>K0QmF^?je#x5z@fTinf^!n+nHsG{@w4%%qoB@SBN2>#5;)TZtQ6@yrmVQ$}VSwvwdoz zUH1>m&+k9MgZ&?8pFe&5+k2d}5%tvvJsBXZ&k*8{BV~x@K5L{<7yihp+DChwh8((0 zs`JTm5ii004i|%zmHTvG-b9Sp!AvDcOrI_((rd}S9x*P(mDhB|@1LvQ8Y(c9crDoK z>p@Lu9N3kT*zRu@di7 zL73Tscsm9+2=`;q!pV~E(Oe^~WV$iqzNkcTP(#d2<+}0mi{%YcUD+<{Gphqoy?Dix z9xIst`=qFVv|du!s%R0STM=2%RBY-2b&F%)0(FMrFSeT9qB7eS4l#0gfhVI>*@K;Q zJ2xAZ>(4{Wt{(uI^HSy>d`BpD$GKM8lAoI|=71?#QnPU&@tHbvqM_wCHZL6laGiQ2 zWX}!?_0jlkfX>JVqe2G1?i{OoJVt%v(a=SWA~N6L!ER@!sjc!PbR?xuYKV+f6$!N! zurx2O0TI9CN3Cm#U7CuP-snq$V*$U2YKKxNbreSBy6z!TMuLPF5_ae>!3+s6+$>0Y z{YR=0=qupL(B_(+W0Pi^!PURc@0+qYZ`#2iK;OZ_2&3o3Aq8o~k5OP&bG5$Sl1KW? zctcPv#T5e6<77F-qnKYVUo%q85Z&q3JeHlBZKKtRzT#WQ+eu4vmw4Rb_##z0;f$D_ zPybGSVIxeUOU1h)*Psd%SR^Fa~X>*ylFsZ>alqK+L5Hn1- zS6zTA@c7N_bhK}j*5t`a*K{PrD=@vIaujx|G&;r1RLB-T>X)a2ujw%`9(+YBvm6)+ zGy>Ry^kV6M-I(B#4+`Wq0@GkrMW{r4^msB7o9xKN&H&szV?9TS8b@zuH87hv@OOul67B~d)*NfL<9i&Y56UqnlQ!Zco@JJzL8};i7>OK0 zOL!_EzLt42zbRJ(h!QpfA`-HBHAD4&V#ti*D13yoJ6yi5j-pYLm$A@la6#de2E+Hk z*I+V{F_AiTMvp0G%%wnMF%wXa6h=f+d*52Jzf*)Zxymn{QTKHpa$whjy6APwvd8$axh(uh~)W#t-U7@?5dJDq4NUMW79~Br*h<@ z&;ebqmM@RAsCWQ0Yn&|&c^PJP=IR?vC)0M&`^||3V%(Y&DBcJyvkIgKtOrkl&sn@X6ILQx(ddoq->t zEfzt&BU`aN(nGf{Ht?OpQmyZhmcydd5osi(a#o`FoBEz>VfKC?EObodB3~NX?|Z>d zqH=+#Z?ie!T${IZ7p5DCG&RzvI-H`?HyvB;T-epgzHz-JxBpA*#o|x~EyjWj+J*%g zv<~yFk+{7v_Y%PR5k?m12uMc{C`e3CK%NygS%`U1_*g`lxWsZT!ps`70-c(9iezHU z!#$ygVRi}S?PEuDuyw6iW7nZ~aLZ3E>FFpQL3_~@9>YtQXUDE%wGTARGmnb!s*ILD zkxpJyL?Wz9u{Ww=dsm?+ht?c!x-=HyI2r1)zBw5U8ML#{E_Orc8WDhWe1SYF#j+L` zG%_kw%xhBBod5Lx;oXP%`wxi!+gdJebMTYHC3@Jk)Ay;LEtGgwaB<{Dq;fDOSB*jo zd@pKcAHTsCvTnm-3E&D=;RUP-E6G###2w}!N|Tg|=#0uQeQCm{dJAJ0b-NZGbA~Ly$0oUV9sri!#Gx~01#UVpse8Ol%#2sH)B~PBj_TP=k&!Gz{2ajW@ zX0ie`B0E8h#SAmHbDYrAkYcf1HA_a+LPBIb)$#>w@D`+;j7KdI(a0i%=brNbrs;L|ZOzSkO33 z-9uMxZ9IiyIb_o8Me4<*QGz8#a;UT1(GnWChh~#!lX3J2XSMMWeT8AZ|I(rhO-xhc z%)U2#i&|+=q#Fl8w9=q^-yQ5f4}k+%6mh+p2_4D67b-GAQ82YuT~Oz8_oCsj)Za*H z36E2_G2497Bqv^lK}3qEOj)X}?c?Kd;^f)IL>xmCDwwFhfM2X89VVag`Ub=io+BxLplR;AjTB_YdY!b zReH1m@TG$AJIfI0%w5Bw6-(9c3fGG05n-Dd?8atE7>r0r+Zzht1OXG4)(YbE6 zX{kLOVR2mDabIOadv3YQM1c?brk`J7y7=H!TEk*~G4o@Db9zfiwc<@YJ(b79*R>=B!?Z z-CQAa%jurI?&~|6{A>=^U=6M&o z0wyU{yQoHTXuUP`AtgrKuZCkvRff0uW+5;VL>|AIfmQDGGltnh&T%kk@2hfmko#c& z_@oN0zX~~_O;gmQ`~b)d-7Q?6|51y z;l=*T3p*FgRNx+j-Vp7SW(0d2^;S@_X5;)~CQ-CYp%t{xk>KO z*tlrvRT{JL!gewwzOaSqarTLJo`ssxTTb=)Ld!jFv?;Ah7v!g-$(c)?xqUIOw!8!)Lvjhf{}*N}7%FheVwiIq~x9N4x{h^VedVga9O?iVeBQlr5u*K||S zDl-Qi2hA~Fh!9t>8CGAB-({frRtO!4PG(%ITQ-e?90bOMv`xNauSoGz^dONv& zu1a&>MCQID(V^LrJVF$y&~Hr`_km(|5xoP)d0 z{k3mgq%u84mzHbR1C&0)woy@|MYFCV%sBkeF#CH;aBwih`P~j;L*OT*^;Cg8ac;}X zgzR!=l&K@V!|7i>U7U_TcPYMmzUa$cTj*OwDV{Zf;9rq%AH$j3gx0pcFc>R{g4oq% zzoZ0UCIf z)!?=_)Ar%lI2<`dQdelauOZZ5-CQFJ+R(+CRk~(6ZqNJSRLFc02o;jF4<}3M!JI^z zB?tLX+LvfK+%{;*QbHBrPKZwCK+Q-jXHY}l6i2Wm{5!zsTooP$8R-s04q@v%8f0m; zVGF-^9;U86O4%oLc-bTuFqQ(Y5(S+Az$gj0@da_|s~EvmLRTDw8> z{L`qK5Q&=f&xuhLKtW9gI+)gy^-Lk8bn4%|;B!@D;BIk>M4}3dF8c1p>4lp)N+6l% zPr%kTD(4hU=Y~z2okPP#B??T_CKk_=2e>XXTAHSd<@yv`f+|8c@jLqwyuT?7EZhvP zj}pP$-9g7%K=d{nugM5Wzl_gEA-qSYb-06l?J+k6bl5mKwThK@b+s&9pd>*_N}0pd zG2Ot->EFYekIfZ(sGE3V$2#`v0|KN^s=7Gxx(J_nL>E_k)Y(YRsNLNbAayRMChFaI zv4)lw4|J$+@wgj97;k8O4RJ-LPz3~qATDNW1@9@vft~OJ038fqv096Zn48{Je-A{D zU7qY+P+0uk%^YE%uycka&|K8BNtw@8v*DxkZupILLSC&mOttmV*3(pcgT|8pX}YQ| zAj-S$)CHhJuJ2m=*&FTD9t@ibklv^*81;Y30R33$0PBjnD%B;;XlXu#q?g`ayJrCndDwXi5diQ3JIxa zif>^WtJag}04QbW95{qvEh`J9xih!8=(oOsY^u3TFQ(%X+s*?QHD#Aj2PlQt`WYCB zHy$3xL>+cv;4>f;$I-@6KMgEo{gchjVeRDYzQ$JYqrozn`I4U;6DMD{?f*P);METoOznp-FS*nRRnPf!$TQg=jvt zK~*?uF&pKE-sU%)Gj!_3(4!opN6|B9J$p?Z)2+sxFJPKBNa^y3B5(+tvCR)~sORRk zfTW-F(cxdZzni>_QmB+!A0I}W z+y_NU9QyZ9?|))TH$DCC_kYjiWqNW$-Q*o-C~de(Zb}DDi`LpyqQmJt3#@hzeyDq7 z=vfu08w%T@P>9NTSY!mom|_!)3^Upx`80HYkk53wFR9G6a;6_jsXT${`4cRg)!=V#%0*;w1sV2)jFRa)y4#X&L z3Y;m$6(MU(aOO@YhO`MnOb(!_T50KA%-vyEX3v)uurk-ugcCaA)y=r@r_2YE3%gje z$mb*`ARn|AMf}$Y&P&pz{WJDmPyTDwcxG z@$_KPONvJfh{eL6e2IfFPaoI@%Uk$xm?fljJ`}H$f&6V8$xP`$O=zQte?16C|VV6d#sulvPz@CG>x{XR4Br!^R;OLn${C; zPfOTx(a`jKU5_$yV;Y}fE^u6c>D^omys@~*xIb^>Phxo=lm{a7F>o_!@|#o)H6xGX z=r4VuZW??fzf}h3Ym}{B-CSw!=L^^}$ff%Vrw9nq&2$qdMyJ-y-`@TBm;0Z7GkW(y zIh^*!Pk|wtHxnBog?Y5JqR32hFhSjhgKx8vOv_IJR}NQQEeUurSIzEFZoK)wPHLI`mt~CjAG7}=XDs-N*>b%={zuA)v+u@7r>9B2 zSWHpqQ>sGO6pGVDtT5J_po9pPC6wDs5EqYjnL4lFky^(j;?JRaRxOKqd&Tfx)k9~K{% zpFjPHix8COq)&cp1NokyONceP#=!5^xAZ_9GYkUS0 z^dDK-)$pCs;afm@I3H0odzhb^q8uL2)n^ZB?&e*or%bS5dRn5>&U`tklZF;T+uWGh zsB0gsIxPw(;yRh0NdJ1Z&_R&ygcBIlKXh6JOJ^C%fVzLQ|6KZmt?nCX@A<{4O^W*y z8E=-M`Vw>g2Uiy9nfX&M6B4;R>wbpOs&L<=g}=!(xxn@#|_$H&@hrZ^IavACnPdubAWSj+WkCj~JSPoj20i z$>3seRr2yGfw`J3bmZaMc8GgL&}!nRN*gTIlM)`9lsHi1q)97Y(57Dq<*9tJsUw7= zZ7is-0MR-intl_b*A%hW&rCaLij1{o+_sZsUnhwszq6AgL8ajo2o4XWhN$SEg;XRu zSV&D=Rev25pjZg3>?`^FdPNp<8*^U_8qWr(&VU#wk;RwXnJ6dd3OKh9J;0ip2e>|# zS?9o42#+*V@b=h%ljNVmN=5^`Wa)TZxWysp$)nKeqtMewp*0on(0eO`I|My*_9PM~ zEa*Wd8%SMw*ZmJtwE|OjozGBZ zA-W17=Eob$G3dn2O)$fKbbHQUL2_H%saOxe_7_rAp%S|hB<=~17OMxwVH_9~3Z_hU z2>Lo*pg8f$X30Nx0IV_O!}_qTDbRw{yV#YLe79+7iwQF=jI?_wHK6+Ha0ox@2?E89 z+y(Ts|DaBT$_0BfOc0nE+gXR;p*C=ntPU3b{XMXT;3T9(yPbi8*kn_o>joHT0J;P& zLv}tWNKyOrOu48#)g(gd@I!~Rpo}%rf#4N>9x=J3_>eVxh|fnP8>W8oup3F>&_eD} z2*h70oXYRt|A%X5RR4DL>t9nH^?z1N5;RWsG*y`)GYSUjY{5kIRv(cWQGkZX_qkW! z@bC4hSFfOwy#n$0Z~yv}$EaK1e==RN_m33*W=}02gVzcOz6AyqNIi|hB?9YB{bK$o zkS>(6_+W=(wGVuv(yZ_wR92fy6yri@(~LfBASnowXC0OmimG1$5vOzGqz+Az5rC}K{rw|IPd68+T8VLTb|#|; ziwoh{oh4M#RR@fxt4~f8e2w@FXe-}r8vzZ6C0?Y@3TbFb+>nxUtN1QMA+W^{Psy({ z4HN`8Rw_ykJy5)_m>|^YV-O~q80ha4U`>afa&?MB692>7=$Cnha?nvaJ3I(WR zTm>df{Ekj~fLQcp6s$7iO=*g{waj2KR}N|wJ^Hsy>j6oUCYZlQJFe?B?Qy2$X#Gp- z=_y4oSq;SUi5?vQ$s?Kt=Vg}Jp#J#Z3TENspvw5yf?3K4PQ-lSb+%pcx4SHlpENO0*p~q!Seb) z&nibV)7VNAmBQIXWuX|PjFLAS7vBkYeQx$QX}U_zVbmI&DiFURzlq4TK&-DI+nt~^ zcgMFge+FX$;iHPGCMbSJcWT1Q6`yF=5f1A^3Q&*VZddRa=_-$rDR7as()5YXY8#9`?+A|Im2~>Hu==6lhLmJJcGa$2U0hecSTyvKd}ep`f-Ouh(WR7Q zB@L+osdJ^`^pJqf1Wd<#aR#Z-+8!4TLj%~;#r!Q9HH(#`mc^nFrEgi^{btm^%XMx_ z$yJMBm8L!~9hSw={>Xuv`sfR~yfp$_oVTWJ%mkUqq-ehQQ?K=i3v)v0g*s`eGt3ao z2uODk9DhmSwWvL8hU|ML{v7B`DS9risu%YnC(8Q8F_WE z($o}{Pj;{VB)1|A=<#nZfdKZ^8k^a3lkv8qzA&))R1#tgK$*KGR}CcDi3Qc6;x%{m(^QgknFq~A%+L^jK6d`R*vU}|^UlHu&5i;d$*X@K zw=U2bpx0@_JfEtgp)ATq(wx(1PVWX%pJ8IrAg%mP-1T33M-VhoRd+*KGE zL64gcC-{`|S|{dc04B3)%E`jqGyJH@vyzK|-w{!0?wBYok!?V;unp3n0BKH_Q|3NG zMSA)_G0yU*`#&lSum?E3|D!$Hb6*bTL@h8qTqj8?c-Uor`f%MQ?%AR)WRK)dPv=t) ztedzqW=m*oF;zE9$uzYoT9M8*#2Yj%!9zKQvjYmWAO7)h|Kq2xA0OiF9Ti%)R~p38 zYP84UNKy{L81+Qq6{|gC3t*8aqdip(F=Qb#W`_())8L#uM=3OfOl*H6EekEPOVhy; z9l(_`4`1|wU(N!qJnugKc#qUX%m@M?C{DRcBnX=rMVqrTMNZW)0IiC3`0Cd)h^T!! zyOhXa-DQ%LTmH zK$W^sxm0IF_lNw{bwus}H4nOGKGcId zB0%a~R67i*UyDB9Co4Yf}}5?pa*iy)N@7F^S0*P_&0OW_-KE8AhGHL zJv0{XXi~1($9F$`xL<#`zyI6y$Jw{{4&{b#vj&hL4iWk4euY3Tp7IsI$;~ObC)3+s$&NN45DY%x+a+Vay;;Prib37``{K9 z-CsZ}gh;(>dBIeJB5;M)>$VfTCW$t!vQv725)XMnR+BMPn-t7z z7o>tU4p8c*z;7HRiG&Y#P;mPE<_ZNipz$IG+)`av-)eiGp>#vN^m0)%m$uSQi$XR# z`2-SWszH-a<|)=S%8o;4&!HSqd5`x%Lkc>}1GAXIAqY@l3Zs;T-uXqLccQcIUTQ?w z%4}%IEU)jd+Q4K*1mrVg0334-+~+{BzKz`_OL7{_=$}Y2&?%|;Ssy;p%^WV zU2yjVj3f{`ZoTw_ajGy5hD9xpy$96D@$x|K!==cpqx#`euk=hRCpZDRZpsZv4`UHN z9?U4{w6UEjR>A}eq<{wxO?1l6!$hozZTI-iTRNfF+t(+SSsG;-}xWK$Zj`U-Qb_g(D`JuI=L<`94d z?;bN-TSU21Ocal%hjG0>`J`e$6SN%G0 zOQ_r1nndbqcQHsyzj9roA-H3l3xZ9tT66~&L(by*vKJTI0ctS=nc-3oWDc>JPRiza zc?{14R2*|novwMKC=14{v!Hw~FBSMrnhypGfvPnO-0f5zmK?2$+GZVVvf}++vwJ2tU{7 zJMK9@Zb3?+gEDGVMdIw4vZR`w2ekb*d0MCE$Jn0N_R+J^B&FX%M5+`5O$y||TR&zZ zk47{rHWU^Gv*4jW;*$_G2D)K{BE^>o=AIDcg(Z1!7wR($cX_y7P&l;&-!GqwV@3jF zd^l_vuC!HM0Bw>gCS;HB4oDC0IvqeWcJkKGRLmi0lBIy(?U{1mns4q{3qFUWux>E6 z1Ja8V(Ke$Jn&Z&vK9@X#J-N}$*JzgpQk1OU&Q?tmGpekW|d>zUfy1i-|01PRlnv1^cj#iBtFo|n++T#=fK)ut`JepV@f%n5rYogx zgFBY@6r>(DnUq*q`=SVQYh$F%LREtamfFp{#^i-euSgkAy7W6Z@(>wT_oa3e#tLJ8 zC3xBfc3yc>0dLd|WOh)e7hHLg;Sx-iuKSiU9u8AC+Kb#mJh74f3de7YAiSf(G~4MR z&;#_lM;UOvmt&!YA8ge1D$M=X(D!QtXM9xM`?CF*=|EGLkXe&$O#ZXknU8-=?zEWP(P@h3+MUS>@nB3@=n3 zpbKRf^X&9&79E~+oqiB+jSYYl_gdue!Tatt4MzvG%AQ*}P)lIS&)gt$%on!I_YQtH%7}mga?s73ZP@ougF!E9Q>j#vKgYfpe zWtXJ1Gf#5ASnxp>slf^7*_sJu=M(``><>rpDzGKU#^r$SH8OeeRw-U~nFu(tPj&K`0VC zP{|7pXsGFd6R>->4|LFc856JYQ#^b5#`zmcu)2jp5Nzht`SIccCTiMhnoF7hS^03# zvzUWFfX-uFA^Mo(|FYEhZ{0!)XzDIRKIaDX0yZ^<;KNC|3(UR&RBrtm+N$+yPxMpp zGLA{-i{z?rM^bo@8_~5mX)-VL_nnqv61-jy6&-)@yf^WjEESztQCU#Ao@y}kXNuv9r<*QBDKJftwyr^7%CGYA8EEjn(XN ztSJutFSK$V{ZcOoW3+51T((Q3vxymS-;)kdkCphyr6PKg8b4!-DI{@wCNs3HVskzA zWS#b|h-zL}QFf@TCQ9Hmq3#VpgE1;7Vc&7ovXZYafpl^-;@A)?dNTtf(5%^GU4VQw zVQw*h?|<`f=kkXcnP_Tl3kNi>;h2Xz#D3JY3_6a4hMo8vdKYPrhuuaTR6Dz`oI4&z zOUo|Y4%f!+QP=_Mfsim4w+H}wUFsk~<4$&A;JSU8$6!ZNjndTng|KE~>lHj`VfAy& z>C81w-q6FyaY^w9Z6R_ij5=-gF-tQT0{AE)=LDmc7FW~?-XfpLPT=Bt-#*5|&j+pb z0n$JYOgKKt*^ z^!jPeNO0-U)p`^_qOO+=k==~tdXQ*oFg!euCFD0HuIl9?Q#!X7W!d3D+&3vFphhSr zhXbj$c#%QT+!^?u$+9tSl2%~L?H|D^sfEz{) zK;SX0hh;SCUi!6gEADy4_?)LB&vw+g`p*_DMpIWnl2iWCb`UI4@ z?tKED5Y?}L?i(=00}tR;KfsJyCL<9y1#1vvkpm^Fo-zZ45Eu#x(bXxPh?nOJh}_FH z*x=4pT&(04q`0BC@cHCo(>a9Zer%m*)!3gdX;aX2FYyHL3z@~J10_lk8?$dhh;OBh z7N*gQ?wCQn@y2y}M5SWcm}-i_fL~YuwK8E>r zI9{z;3y0E};{*TCsCC;#Z=nqvSh|EFXZk8k48=mLNZTb+*q7&JH6NLC0c|SD?9gC` z!)=WUrCbtI@ZLT%&PUd~_1i1Zvj9k;igWEGWr7_)+kAfa@yj3YKYx*j55Y{Wcrm*= zL#P43$X>QaQIvI_?m<1Mt%N+f!omdGwb%J_rGa^vlRr|ylt>bnFM#mW+tiEAG2`M* zW)f7_lmj935qvb`<2#+~EN(hk#S&WMRI?O@HSB&_=e#ZK^L@pt6O%>&X#iRcEwyL; zhZ95F)Wd|TW^ZtHj5h@3ktEZxoYzj^CxKW$JQ*iHrS0YU+wJkq2FB^LYq|qq8$#z< za~4QbF@dHcQIK&~RZ5D6;}uL%m)KOWm~ThU(z;g2Wq8?0^%N7vCT`}BmPVTOS~E zB3xklFw;fSE4+!vu9wxTTd4Mt8ny&gFVxBQBb-equ4mv+yP$!G*6Q?T<7RZz8nFys zEvY(Jv+|kRPwV9j1}DXlpD)hNM|%x@1@eJss= z_lI60L`5PsY3{NJP{+}9(Z?BfPggkdd-~KCrtXO*!7QgiC^;F|DQw)j$_9?_eL}G$C;yK8Oa>F z`?ZB>cvVH^co%2c>1Zd&MYDq{uRB-jayJhg`BsKFuQ%yKJTF_vo@9I!^bt5--#t8h ze*eSQhkKkNdwZUA6Bh82e#Y|vyNgA%L;&=C7PEp>7O3dOxu|XRF+B`?vAQ}M)N9-Y zTU?KW4oZ_&Ed18eb4dguAL12?MdTEp;b)VI*Se9=-}_-2pJv&FyeUzCJ=E> zbTl;#p^YoOj!Xj-Ex~OSjAl3Tf#DPUv7n`$T`~~l8~lqs$l-;>WFcWF0O5NoY63+cGj-bEaukQc)>EZtF-Cyp%{!KnA3Ha`z0Yd>w=MY88 z;B@tz=wJT)>GQ*g`OuA)Nf=^bnT|#9XDyPL6NqG%fJv4|7rKz_6N(9#HEM!CZO`I=JmbR+syZ%C(G#o z>kcf|bnhS9ADl6G2_?cv$5M9>twSzOmp7-{@$h_hei5E>4^PXhsappu*mdp@(LiQU zbFm_oF_K8pfmkJ52)}nXbE~9jzw5k2B(xJiaYS=OaMFtGWuu_o8By}@UQFg8uTyWQ zosONTT+b!ao^q4E`@EBJwxf*28qY80)3-&n;4|6-YYhxlRoK8e$z0pODjo~~fa1rS z>&pe05a!=Un8}g6D3y@z>U!!2fW%McsJmI8$*&SW@mgfE;?cl`p(l*xxz0NT zT%B@VQ8;?wnC6{Hm+?G^QnA)K86LET7MLcW5ns9v5*?s!Fd~N?K`Sr(^IE*^LhTmv zwh(CKqOwNq9RwT~{{R^jhJlU3*Cj1Wl;oL4E0<>4@h}4t?X>Bw&hFZ2<}WQ zBm)y~WZ0=!>{xLDsNN+i?V%bwq+uOBMI6TA4GlF#@m;QqJ9?C*g;XB7^61dg&T_1O zr;{d|+j`Ax#20<0*e=)Am* zb1~7XbZu;L8jX8#-W|ylx&FtO&HEq!f}&~{i<9m8)$C4)bf7S5qTYOVyt#qGA9-14 z!A}x>Kl07r%+UXA z^63HVI@zZ1Y4e8O=B)RGVR{oeEx-fCS_WqcL+Hlvzs#PA65D0H#4%m*Sa8N=WI#Jd z10CwU@oeY6@|_7aGP(ThIw=p>7OBV_?}-Pg^8mDJ-;l1 z9O~Kf;Cf;um_7D*Ghcu+a+SpR2`lh`O@RdlszT_Rs4`qLI1Mwr3l!&x4$ncK5w9(& zK}PD`v8xUSt-1+VF)5rTN5ZRUX{{LekNDq<*)3``PfSeUA-vvBZVzpI?sb-L){!o? z9*=iWKr?LEZ$}_t^-FOqwxvdu{B|J8vjRA|h7}75Foc!i*=N`ET<(=H4;&)7UZ-99 zoPw1&J-KKVsq7p8%})Q61rKv#tfVm@Q0nXOKiHmw3t3{rzrq*}AXIiEE(SJx}=iR!&o&iBYUa=RfCRWPe;J3cXD1w;;c7zcXpgv7< z7s#^%}fOyq0Ihlh@WUbJ$v~xe^qoPo0>dk4R7Z0G4HvP!HY`BkJVCo1IQ^cXc ze_az_FX$y;lS+ovUD>dy48$?!$4SkUk3&|cj_FGxw*_8qN%)L-R;6;Q{Z88E7ErVn zj0qb*BQBXTlGEtP8YxuvNc14wc1jo=LLgBj4=JmQlJh3BLIcoTB7ZK>K#H3bx8$@a zHp}iF8U({mj!#yveZMlQ1?4N@3z0Ti#_~Y{3pYB;R>GQk4>M#(7A@NcN27=;M z8qL|Ry12ptf@~}UsM0B$2~;15JI>y`kqUTmHNW1%?H2qy?0t(XTJyv3?3tybtVwAK z$vd7O3$PCLfPvJ^1?K@xW9xY8y7@B2U}7aaM^cJt>d}&1m&Y3@&+*SWQUgc!qmOeLdz9`i=#cdzw7bXfmD3lt=7l4hI@28;bTyD3#5)3@<7VsGjCo>NFy@v z@&eP#UD}}o|8RhiM%Mw`j&PlJx9XL?u)y>ZO|ALPjy)N8w6wN11N0+X`N^Q)g6VN4 zUM05+@1GRDz?hf8Sq_lCpUfQgFlu{Di{S@Zblell1Hn8_C|W)-o~BZEsU0d>A^{7B z09~f5{+gQ3r;0B~oa&I3GOS*_?g{dOsB63iwaZ~6KwRnv%+IkCh zKzf_rZ^r`&$-tKsSncixW_KWomZA25|L_@%Vp=r>z=-Ext}c){c6A|cC>nM094NTNGJR#5)y>Kc*HH%k^%f~e~zPq+ax4P~#?uugrI4gSsF-+h4cj+KO; z!V77yTX0xCS!1|gYZ&6w9`APQseBa((1I&qXT3yRGgwPz)WhfCsB?T$p;+dDuBIbY zp%Epj&ZtM7_)BWX*4TBdI%K<%TgX^O&~*g&ROkA}yj6fcE>l#zg+Y5e`l5Q7qaXkL z?sM@<=voqmtF{}VDa1pdHRr3zT;kcAC7sHeqbWo5(!}$+h8i}yGuJ38KpJIb-tGSyTbInaS+>T zMeJ#@#QA}qPXT1gLR8Ik6EOzvoafrOLGo2#{z?*fnBd@SAme-1pp!>yfVL{M3WWkK zR#r#Sdd=AJ#{D1lHF>T2WC<-I0xT)Qwm&V&I^OmuU>BLae5N2~(j=O^sw z^@O4Z(}zINFrr2*mOsEAj@uiQ+XMafU&TqS^nsXvHbbQ^sUUXuf~pV6 zv3Q!3`v9^{4fn8tO};VHY)?=f0+$04JEIp6>}RJy8R^6|4e~D8OQKry!8(#N$NM*i z2dZC%qIvMEv~NB<+*}_X=}0uMbuc3Xo~uoGl0}*WM@^G%TiFz_@S|^uc?VcOW<7?Q zVm%$CO$AoFo9YYLH}LoZQ}?Qr-Mq1AYg~3yEe}a0*H}V9r7W+koopHh;|9z@Y*;ha zg8>Pqj0LpCFPh4Fcn?5pLt2j1(pGbdkOnv_u;Y^Gidkn%IBz}+Iv~xsCs4i?DSab?3 zp?$DiPa7jN$72=&2bM3{oNllaHfLRj434S7)ZGrR6@wL{0<1Oa2l`3Woke|Mf%yk+ zFvel>+ksRC@IJ*CPf~|pz8Cv-K05vM!bDa~yZJnGaDGW&QWlR!$b+m~X(0X?T%|@z zNXyiN`3VfUgk>n=1G0ylAF$%CLTC%gwnVqq3mP!V3gj2+w#CkY4AOBC6_v=q9h;|f`P$`GMdDxYFBqrCz_ z38>cFjE*nu5#MIO@4|*r09;FwM!?U>P=A7gnOCErW|oKtD}Pu|F}&O+${D<{K1Wll z(ow`M{_xGuKoUc{-B@YFyy|Pm@~*zyfK^}uY8tE|+>Q8Kc3+F6fd;R`3xN|do(pK< z_5eMP3Ps*5nyY_!xu_pueMM45h-2-MW~8D3HF3t$K$AbNN`1qIw5v)=zf|ltmO+N> z7Y#}3fb^d2_D-oBWjr*A!d1F&V7{I&zZ)M#eGH;Gh6-xesCEmc5jo?9q&fC779grgx; z0UK#wTMK${n;{?OE_Gxd=o`~*)fQR?Lx&V@oE6Fi-~E0mVV#{MCrIlH(>54Nt%pe( z2QAfWAX+Dh$T(yXSUgI<^(_e_f~X<~pX1mrD-vWOB^R+_MEQtANnNF-$78wW+}Lxmfh74>5*m9pAFZlHvL?*W=#`~m;62BR)vd24)> z{NVN{X3wjawXjX%`x&a`%6&Rk&(EnHo%8_FHP24uVs*4M+78`oNlyo8Bf5lIfBNTl zA3xrIK)~0Y_Kr1EB?VlqyH+*()dOJFjBVptf5fvsY`6`iew)kmlkmnT z%_eR!x94_!empsPww=HK`2NeErMuBSZ7u_iBq9uBQ5OWtZWdz5xF@eV3(>+fMq$lz z1x@MLczgR@=iZMfXN03AIQKbKrr+ZsthAmTCcCiuvY&BDf>cLauE{RTvt!sAu3&>i z#*&DJ!9`jibhQ&Q!>|}T+MrH=YUtIXSA4h!*2qM%=mNCbh=zbx@wYzHQo-%wJ;~%Y zuqSfh!~>SMH=X&<5WTi8$m*`!xrM1aQH)e{dQeg;wR#en989E9kdc`nuxWrq94IDk z$S~an870d5uxp7cFpW!!Ehx99=Qv%F>*D<8@&rkhwLMMPb$wekH1Rm*Yfm3Lk4Mhu`JN4;9HD;q7W(GjcK3s#$9VSALJ82ZagFYHB z#qHB3Wksr$&dah0t`gXuX=_nj{uLB-f!D*0%XR$5Y06IWI%}&3JyNOx9KWbcdb@b z8*++Q(p!w|%y+V-T$v8kh7cQbq?blZ&m;qh5d}TzyfRx{s%LN}Rus#Q7%cY6(o|g>%J1nBgG@ep^mcwl`@T9DChexB+RN#0Gd+<{`f>5&RaW?wTCe zfO%9>v@|u`-O52cTVr|K$F;DsN>S|0Rb*t7s-)1BIWt60prYPN9ESWyFXQERFK*6X z`Ao^Q(y(D#C;2bnV2yxocZ6@$tmF7fyy>vTjqt-+(vHY1Knt!=`;t~$K|IU)oezzBqR?eF&A zjF->PU&UWgTn|oSNmamu5_$dfDNn*{OlHROTDUJ`V_NVRflJ z_oI{gXqCC3lahASV-_tOntC9&X^Nf&V=Xmsd#OI!?OSHWO(%m;umbgHJAq&94)-8P zJ#C@D0=gHL5Mj2g7c>C&g5CpKnVirLSMYKgllBuxYYF$hv5~0cj{f=n%hwMK%ZJO3 z>j_04_J0e`{bJ?D5GgSauApUU4nT@sUI~ss4PGapTpN#}(q>LgOM|3KY8zsi5u>rY zi>=DL-!|XG_m><*{E}uMZRHy9*reu3mvx5_(flqM<73GY4J}J^?j^NlZ%qa zq}D99{Cx&*AI8}KiYBq1@xU&Xr_$q zq$4CE3b-e5LGZaN21Kr7z%*f;8j&z1nn@ZzG1w$tdgdHIEB_l=4~;1+vOLckMQhup zI-a9sBdZ@887$3ln8lLvCeE64N#i!%GW?4b1i9ahg4_>;N@CC@{xko^q#`=0R@Ox|8%DR`vX)n>!gZqg8-AH9D4urvQ%!jjuiSsS?pR~pm;#Z%@ ztW?<(HgTqi`VWE3XC7g9OQ^+>Wt8Z9vz}PQVDGY4OXkWM%u)!Yhep!48!}G)^9qWb z#v#YgD_+*4IQ(3lA%f+{q*`{4B^Bmw_Z5cST##VLPJb^X*ox>Lr+6 zNwjq;$oKn9=50O*S;`>ul83-F;=XFqw}%d!1=7W^d?h3#k=}UpjPRlpIz1P{Ungh2qeSR-Il1zkm!t@I-c?!jll<~JPjzRg46!<6?h&1ZcCkwnC1wpna|9C)Rvmb3F zKA~Nh#u0?g++rt#UKat=4cuT5i*JyBnpOTT-hX+x*Y29W`|#n1cR&6`hm!T^12vV* zo^yN$#<86zZsr2AcdeD2eX#+Td4e*|q(RUL40vaolDLa*A`b!bXD?f9grgQ#MkCZ4>aPp#=pTo;F-7E`){BIUvS=1|N1{h zUvb(UAPXNLAdSDlANFRv5&t5^4=$`PM|;2e`sLlj=)dm&X7pdj`2XZr$Zh?r|M>hX zx~Jeqrn>&s0xiAfH=|z}M9&!MDd_aO(f^EO*Y1#3WHu*&b}$y8K7z+HqNdMKZb1q8 zLEh$%rEmXUV_B7SJWfn_PRkL1|BU`)b3`c=dl^0d}VEG=DEVsMQtKCu{1oUmwai;N6aiJ ztws~uXmHn~YtvjCW9VPsJTBK8dMA!r4b$-%WLuVz$fgpFUyuG*?k40>^%MrS zd?khu^@k%`IuK0+j6kmMFXC?;cpPsAYtHo%UL4P35>+OZW-aL&PEJPneS3`*?I&h5 zqNm;^Rd6h7w_V+B8K-lbQZyjuSdTT?*5}3>nj1o8;l4x|PkXvHAdQfcBTh`uQkPox z64VEUDB!5b8VzKgE9oBP# zf3TVR_T+U>k|Qho@^l|Bss#^K>;aq84EIhB5KygGh+l1(o32C$K@M2_0*cvJL}xhK zCL>XS)NA6b6&LzQ5**kKt4ET1BeAHe84P^o+SHu^^c{^lYZ6bkqhG!J?ZI#VALib* zxveA164g(^t%>N6yUNuBKvGoqt(qV~kc34N5CG~iUl6j*c55t4zIs%+J1XY4-?i4> zJ6|V3+cWphw8EB;AHgp;i3u2@!9v&@!I1#%h1Oc7F zBrs_E<`kL$5~0OeG4+h=Y@l%$_8gM20)<~<3TX2O1NQjiSI&WdRG=zfgjy{`?3+c( zlI6cW{}o%`c(PZr=m>U(}nZ2 zKt^OHBK;Byd5_Wk8`K)RcOTyWFrC1cK?0Cam;@|lbwSJQwS&uA87-zu;aM|I?aLOl z1^*)ER@Whgi^n3fV|AZef2jdDZw(i+OAaJBfmFK#wql^wkwjE`^@ z@=43gLUGRWMZFJn^7an9a6Lz{+s8k>`R{-F>Fs+?nge#!xr~p$LbiFog4C-}mhMJ> zh5CUve3g4V=DlSaXne!6Ce@^KUn=KA5=HMhTfyOpGKD#Hy0wK~mD&_5+(%;~Q^mG&QM0wB^p$|L9@&cbb<%W|=26&8xh=?8L&J$&tPgqKF(PBJg@J&% z)??3@LMiWsLyE*Tr?YBY{u5BAl)7GE{to0degZlb#hJz&w{{Ov;O%IFyiR z|1xr-VQ+P*G06tLxSEIr^S55dHY;L5WUcf<6h}rdqotGQh#|1zG+{-eGu<5K(n&R| z4M-#4v&8U6%B|2R(c80NOiX{xio;pS71uNL?J~h#@3B(d3<`dk#{m8U5HXc1wS5KEOpxoIL$#u_sg5~bc;<|fgwDhUj8VpBIC|4RblRrSeynd^ zT+}CSw|h=Uz46XSDKSirAEmFQ)sS^gQ(D)GX>I#u@dJu zr)RLcVi`$DV0Uej2_T6voaZd=jojcFvNbMlj%8Dfm3Hj1ub0+?%q^?LrI1B#k+`vf zse4UwGF7c=Jnrk{PoOo7?n@}7bNWiZ;hwe9Pqi1z&v9`$A3ON7*C#_93CG|Cx<8FC*%9C z505V7HO7erAqU%wBC1A)Wdo=8(;fI|Z4qkDeZ_^T@u11K8#dFF<<5NZH{5n06Tg}usX|??=oep{#Qe>f; z53_gPK0^r+{5&0*2SR(9YEz1BXJuXF$@amz$dgGNo!LB%N{Uu21nsgT_96OR-94j1~8a{eH`Oc1|ZFg_A3lz1J+zJb3Q3Hp@ zwYa1`qAxb8AK|9a%5YPWb{U2MX{ubC!3y(96p0udT5zrSyw)gk%TG$3W9i;Aoots= z&rvJ~9}{)9$u?y?UeVTgvAfr&mq5@cKQO;Qws2a|ZlMZ;(h=u@=X5sfI5_{w^RY`o zRQS|m5pWOO=>Gv3Rv$l3z3h5qaYvn7+t>Tx;rhG}9)9=x;4F=5Zy1aX-q!zV$A-`T zPdheD`G4B6A>86W?bs0V@qd17p@%ia$Ha|m9la!+c)0SpW- zs=(36($B0v1U>>Pw#Q6%FV5jJiCW5ZiWNa369gdY{0=}i>ES=*>4#ENQ$z0Aa?m1# z)9E$Yv`jX|-Wsm%54u-z|+bVZX1P|Re^lv=x2p#U%rLkKCN@+G_a>Ama{==g?hK+{{zQh^jMWG^dd6h1RUlBy_9D=!q?$I>s)>(Hhz&8yq!pQ<@2xalO1Nj|w zdTj2_5Zf*_kt=Etby}!xv`B@F1Xt(9>Fs>8vBmJEqwd&*qYTe0Vg|49k&l*k1ejA} zCyPv6lBQK~fWNL)?zc$1ouzFD;YHecQmISdoQ3}h_e=QNJ}CUlRb`FXP?lsnDJ!(0 zXxp&~XOZor%fe=$zFcgrr@&}ynAR|LuN-`GL&7ej?_ib3s5l{}_>AnoCpI!G%Ce3K z)(KtDB+cVi>~5>3>|!!yO>TSW?V*{OTk7Nk_)<_Ek0Z^b(Dp_Z*2As|6;lf`Z0YvQ z_9Ok|O0loQ7=ic^-R;9k!L~--rcTVFrEOA1&CZ^!mdTSY_FoZnYj91f34{utHnlIj zyORIBGxq&Hy4^n9f)?m$r`RRZm-lD`sA9eN!Jeu&{$#d>O~|>{rLs>G8WuOM>L<)wu=SZMaweo?0p9770fm2d5_b`X# zi95JNOK>HrM0G5jH82GBFJ7%M8M$MEXFxg`fnu36GR{4N0Flv(EqWGP^@t&(5vGQU%hp4eMq-=+jW%VV_tk8AE=WNz;v?))H<- z#v{W;q)B#y@$16EN#TV%BWvP#iK;4fL26cbmHY!dJpPB>g68h(`eOF_6#BP>WfZk2 zE<(T3DRt%AzJB^3PBsS46mdp1lU^M}m3M*@R#uao0l;Zj1Ju*#6L0?MP1>a?lCG|e z(1Z`_o;^bMRQY&7o0e?m((PjkE@PPIh538{^l=~KP(kd^lc4V1zLi^osat8$hO3m-?-(DDVYdZ+h$ijn z@hCImz#fQlfa@4s9KrR2IS(Z1YxH1OUomaS^?d%{faO5}X!p9A-8uKt;QY0c8=F^ku1`rn6qcm%O$YpZ11Up}{tXB;XtP2s$YkB{s78CQM8S`AkI$Vo##GL;yCmLa_5D>8;9r0qF~_Q73Ap$@lwP+0>qTK117nf1 zsQ78CVdc0UbR&1!JEH<)T1u@0avs1-5vV#B5i$W+Yrla376o0p+(&|GIK?BNs&H32 zOYbh(ZS;qCfAD$1Gi6X@UYug?4SNdv?R2IsH;Zo(P&wHNSZ9luD82H z43d+6jrii!Dt>|5IY(@!VHA3tD`?x$XTDgoYF()>STz^>5S-15fp_zfgv{jiWz1Qj zLre?~iI-n@HlL=S{rbNF(D0a_K9|K*LQ%ZC^W|+IWDV0S8#0pwIZ-SVKFOWTWuvoI zFy^i@qLs_j&C%*h=OkKRPAZ3(kc!H|bX4(^6+3C!b_^wgqf3D%BP#Q(c5OGF(h+m*m_mauJoL?K0T}vj!FiFzw9V=>nlCe0{O;iQb!yW%} zi}1ktbKOBKDy~MMUi^!$%=R!7L4zU@Jsy_2!;&N^f@Jh}@Svn^Id+8iAfhDfz|L0> zZ2UH4W4Zy<=Cp+uF}weatR_Fd`FQVZu8UAvFtZPg{U$NiHGfAE6zgl6UVCh2Rgj+V zL00BOt3SWQ@?MVkV*9CQxye%a@_#Ae*Z==Hnan)dCJuwEcsJ456D*ib6h%+QF-*5t zur9EiGLrZ&E*LMfSzh1CLFza3(Ik4tyy<|y;ItONOaaWM<57#^V&t2~vJE&Ef5N}A z*Uv9u_4>=`e>~;|j@(1+8u0>kEuV>A&cH`PqKz{}HiUnSd*NzE2j7UqUuS#qa|a6g zgq<&ED?APeif5C;K!I^B@)#I0!b<3@?i|V!u^}OB*-G$W@eEe5VK9wer3#+ZW^7+U z)xm`0_($rE@6ViZbE0TAN#9>oqFiEZSwd5rf&xgtZ zr}$x;FR3={NQIAXv~;)dn7br8*C+mjjw9z+Yih#r6X`Io)(VDcuIU+~C06Qu{SvHU z2v0n`%yWRe6DZL-TP*K33OkqiLW}%`u8< zhtaE00#fbJ#6~{cZdHWxtK~CO%BPk-#C2{~a^GGKDalkImC0^KBY~ZCP6Hn>UqM-6)<|)|MO)uPw_}obsse6y-y&Di zcOSlZAPAy;{8UTr)z5qDwYdCLYvx_Laszy{^tv)KAl5ja9->ThwRBiwyUDb;KLGe_ zwfuS5o$18+U1hvu4{RELtKQh2F0sP_vQ>nPiaOa8GFsl*_nCpzSuAZB#h&?E5W^ea z;VExGE)Q$>&>>ilvkYCWa93a>Ch%&(vHhj0ocKBCL3dBDGq~`Ei33+%5niPPA*l?K zvd8nf-{BGYZk=GbyUU(PCR`U-K;!hmid5E}!dV>V^w=-a6|X1il7p`a$Pl7_o}0ljH3YdTrBiB9a{pvI&Xnb0oXK z|F{F9E+$mF!XheM;m2qX+vWUjTGf=hlM#Cx7#xt!YtMB(D-_ftJ~$fM{UlwUPt$YE zdqPcQm$w~-44J<$O(t?M{o=fDc}Y(xsmF0eJuJUgAyiQf(bGfVkfT&B3^|-qb#P+5zyRpy!{ev>z6(R3PYW~lAX_JBM#xXa zTUHtBFY#nH`#f=aU`!5iL3uj+_^#6f_X?-)_vkjEs~S&=B`#BR%#qZ;P0}%Oq;9t6 zvCG!c(vHv$HUoq-MTH8d0%>}5#c*<$?F*1PbH|oJOviAkh~1k4ICbE6{MierBmIg zo1}6T%-7GkiAJ7Tqlm3Ph2}9pdW9IT>gJHg<7((FOe6PmA)4Dg z2A1{@UXJRXc)MY!sFN7W9j?b>=kd7~F5jNT4Ag@cx2H-2!>mR|Ff7B7=_133W*J*O zM8#QAu`XfnaHW*4xpRldH%6=805EE}i-4;cC$>4<10)i*rl#)ZBq)m`r811(3_bc} zBcHMBqNTeCzXALH^4Zx%>E%Py8Ty@e@&nm`gYOg4-|J2?A6 z+8bLH*~b*1dI?#kcWTW1MIT1%#i4;t%B|&H~}ny#~!+Jqtio^p>Oi=m88N9(FHS$s6-)5-!5XF5k>~h z!urs>L87Il!`zlxV1^pam+vK>n=l3!zCt_-r6;>+Y@u|6ud< z93{l#7ZGiKaPSm-DpVTt7vRU>P>c+dfBWzbX`tWTBh}=m`@j9c41)}kK0iCH3)o8k z<^YY(2&ZSBb8*sJTHl@;>)dcQw+6{2|Ai7k4mlD~WtM@JgA#6bVH_)9p270`;~a|_ zCc|$$T6(jQ6Xo&nJb#@mfF(FDjnVw>N(Lx*Hu7ga2H2&(Oi3)U(UK1=exSl%{2XZA6lQm;Ga6hFzyNLCS&MnB1k+EKG)^)jA0(I9++lM0Gp5(x{;!wIC1;a3X62d9D7tKBrWfVLBOKjifC9)RJZFuHF8NNc%DwY!w zeB1|*ZE@K`*eL|Cs0IL}Yg2G{n-%wmUB!LX!)M1ZwL3xCQcuM08r)Hv3(yvv#vpXK zDQ!B&aI;kgEbkbj-BmsXDZ_9YuwPK(5JpDmV3|L%y3{{VK8;+I^WGHn6?llavo4NXobfHH13{%j0K;vXaQ&1M7m54xVJwgn;`mGHT_V{K!X(rQ)(A@-zTy zI$e5ukd8~f8}^WkN$74{0fF3VhUry8xMGKi0bq)t7f7z$!XG zwz|-W0}LN}c8)7cOI*g_Yno8!uU6oc9)CTa96`hM5~__YZ273J4W$m4s9-cqz8=Eu zGhCMX2EtV6ab>s`{}H-3bR9jW!Z=}Egb}<#$sIWX3TkPB;w*uv%`Q$C*N_CN7>ab* za)&e}$wo;|YmoHLFYN*>f>lN>dRox*Ogbjhf=$3lj^;v-Ihfmxp8bnARXA@>?&A56y9 zS;#6ughpc1J?^q{38v>ng+-+wM9jhM4eS@ece`QHil7%o1a?*^AS6_S7{W~ur(Yf{ zVB09kKrXO@MX5Kv2A_c%AyN>`XU9;fp2FML1DcMVre=x?x$|LLIC7Qh>6`JIu0;J; zXP{n7f1t& zifUJ=c|^Fl(FVPipz3IJ@q2Wt-fzB@sJ7 zr5rzh1|8!nt`O8-sKvZPKWfu(`$sIB8CxS$nqAbW%F!z`{Dh)yxMy(I5j%S2<;RH z0k1Gx#SN{UZlM&yUs4VoQO5}1^`cfs1=m2b7y;g7GOC-LhR`*-hlk#n%ws`_Li%#K zTC-qdb=fsx_;Se-Oe3*P#-r0Qi_i=OkQ}7V8%-WT?44LW-B!4xxhQHV(Hr_AAsmpM zYZMrQyYfWkymqJv3`D6Xy~e5yGb~adfrN?w(&E}$;N8%=!#fY21os~u3+N(EpUXQ2MBxKC z?+>`b_rRsep|D{Km4>HKIMI^brbtIYdv$uP)S3QUtC_?I1->NRleV%3Szp&ZLIIBG z(~vnuc|(}&N^8`^oFzr=tf-^?`lBmo+*=-Er<*ZLm5)itlZ%d z)cC->Ost^E7*UO1UXXH4kro?p{8|&@y=oN664A?{48m7nV60Ap5;I~`3hN(L}O(bG5E$;3D`V(eT^=TO;D9UT7JXqVKK!p*c zGem_oB=5WqOGyoPRu2!=zmB5X{n2viK~!j>uPwy(f1 z)!YH+EW`8yExD(FY8A{iEU$=1V|E$i1k2q`2%H=mv5Hp4RVlI>hJNkzbYZ?8KM|?T z*_goRhJ0$oU*D9HH@U?Gws|5Rb2WjC!V0cY-Nb)03s&la&?(!@^A%+9jusmTV;!NB*En1o|kC_8GgMqGI+zON*1~x{P*>-X5 z{3M`ms5qn}onzC`;xy~Hf+D`SSncp1@`_~KzEakM(srKEzJc;^{Bui6<5)*HbUdnB z`et9uC44X8GX^E4{d?BrEeaV+NUsT#02GB&#tM(!Ppgqyt0BeA%-te1xAo-yW z#G?8?DDm1GH0- zq--4E(^sr=r;4!>ymbltPltiQJv1IcfOl>631VWA-3_*VM6lAV{)%Z|Aa=XP8W8I* zdfJ*xyk2cGp9uLqYOVZ_J0^drGLp$Z5+!vpb_VKe3#raTbtoxPK0{|C`+anK($^Jw z_vr}|&nj#DYQ0z@*Tw70^%5Ai$e@U_OmzB(Izh}L{+*B73&rY*BPfC^cr+s$iZw1kQg*m%#7pA!&07>dy5=n#AD4@G-ipdNgI0>c{WxKS1zajl z7^sBFaPAN#4AFt4$X86B9`4xU3ByJAig`ig6_So6Exai^>uZmQTEHT*o*N4FUeURa z{47!!ASCA5XaFvuj?c71O=ku!A{aA-{tHm)>^+HEe}$DotpMRmw1FzoYm}#T2ozdG zt_<)s%M0fe!wWEq+ExS2dq{@}EE$y2NhwTi8kN*wlJI0s6g7Rb?PegWx6sT4*wJds z)!EgqHYGs$5#hmNXEj=OSg|$2b~GNEQZh(S+nic-!3LGbzkJ%wfBO0JzmL*Iq#Q;_ z$NXlseXU9qR`}}Rm${WmD7>m%J!Inv-BF+ddLfYua~{|mf<^%G@}*17+$%{?9s1ru zzg#+ao6p5bC|Ue0mEi@%5d*m1z&(8&k{f@FLY}LxYM3PK8_9Vo2HuH53DJz=g%-t6 z*|N0sRseN%5|3lsP3)!}Q~_Q0B>l3ZT*jf53g+UnO+RE|TgDmcKEn-UzP>$0f^Esf z9Y7hEjv(^jR4E7mbL#8^$6lP@LC4lf_$tqY@BtQwrmu)Zu0u$qa2-M-d20>9kwY5K zVelhIb_8ba3^H%dCZSd~g96tetxbr=vn7I>W>N-N?VIHc1>HDng$pNFt%Ul*fjUFx zEfqio78(MD7MaR&3xff%wg1)hwY`0MeYVUorgY3Y8w30e8FTnbo4*R6}S$>TX}|My*hIM^j7WVwqJ?OhR~1 zHRK{V{V1+CcTCdc|CEAzNZU_B+OGE;@z8vgfO(9rR`+1XI>a4?Ft28{flcvR8F{dWGMoX{FggHvWLVA#x zVCo2Fhm7W5|0=-%QfnzMeDz-`lYaeIBue^cIz4r7unICEV#F=Hiks~A%^I1Wk!yN< zM+u~Sj7h2*1-BbALMOrwufH?!J5J`+(r0nY>W1xH@kS|sgzfL}R75MNGmKK13Qcc0$=$Nlc}?%(M02vm32_jqg|CFwHB3hr=mCQO%Ah#9FzKF;7AZ$MEM(dkv{ zb(Z~ldq}_;YdD(+3S-n2J-Jp_R6?S6+qmQvP?HoF7&6b@*TL&}Lbw$bm zf`;V@7_>?s-Q3nTrX$OQh?f{*+2i&-KYDH zpZ;k)ojy7Er}O(yKYsr3^FMw1>CMN_-+uV;BLD}}|F{R>+b=)Fms0G4sJeQUQUN_J z*CKzlxYY=QFDK|^FhM7e-0bg8vw_>fZc0;Ja<(l#n^=ciU)yOQ6?upnlLfFN1Orx% zWPg{5Lh^$%&jpO)kl`+92G|aX!yP$CuvR$K6nOXXHUk*?bLzP$ zMDpfY3}NdIvD6f5l{d!S7L&JwP&yoM{>0lPXKh|?hlZ=5u0pAjfJEI782n)3c?^wQ<#}XWN&!7M~MKx5hQx8UyY6 zi7Y|-4i7knS6S{Fgrk6|ul8Fw)&v7b)2ER0>;@|`n;mZALC!KYKt0L!QJsSvhxlv@%7rA+w(2r zx3-tt7*O%x4AX-tE-T99_Hw33=4j|)#y^ECi}6pm&76vb8f;mk$aJ)Hv#%@seY7W` zD?_Q;?R3<8yvciX1o@tME8Ow(R`Wdi9VlY{Zi z29=xEpt1Z0UR8BqhI`BJm}H8eKaO}{Gz$8MOCn;J8Gp>Ko*XMToVku;{_=Ih4Caa4 z&;5{K8dpAb%h}=0kd@MD6-eE|;%*@E;G>tTf$-G;b%UHHlE+I&83VV80oam+FtP#) ziZwj`-R+vl%$7zd+&-W9U^m5KEv_M1N|V8!JH`6z?`fI4KEWJOm@;bYuG-P^4fXSz z?|!`h9y{dC=g%MCe*5L~{ccCu!LGyZ;SVYIVWB&ycC1kqlbEn2&d9e`nuZFb`OK1s z5w*I13-u)c9Rz9bDwJA~xFD**4nqy5A9xT2CI2?(4cwP!!s{a1a@M4+C(#o>4=q&V zasgUa&h+86{OmCQa!SAx*|KCT^H29XjQkd0-K6QZXr4m33Z2g!#(-W>RtLNdkQdo4Wz#=`)dsG%`YP z=s+h-7!gKMw!?9vAwfLBnZUd%nfR`ZA;gzhmJCis^7Jrk7Z6~u_F@Ss>Lx(9KeRz3vexQ2( z5oabE+KFN&R(FeYB=CpM9pWz2Y&brQ2lqSa>9(D4>W#Gy(5#C-Lp*KE;0{YwKs9V(v`UIg&T`g{CB;lkXA9N{kT2%;E=9S>zxV3y z<_yL_nqYTQlK1J1EkU9{5>>I@AnJ~xvDp+TE-(AiPg%+;WMF{wu^BzoMLjAf0z_F~ z=kz&_TPP%lmw|WiZ{q>i`Mdvo`sFhM|KELhL(V5%hX{6h2lu1-_3{)|6fl9?1u5{W z#kn?ZYH2}ir;~Jp2}k@FRI6|dp^X9(O(eK+zuUwQ6b$u6f@yq4@Tn1ZVLYv{2rzgN zWb?Ja5kW-rI7WDyg3*HMF*aKHjs(*?3QQ1;xtXqEa|UY)gPD{~rFzQeM`PI2MQlBl zCLVChFuS{-S8v}Jd@tsmuIDWyr2&aCP8~E*eV5ty!>uq{ntS_heRe;&w!4&iNRBhv zK(7)vRBJc4XOh0{Pd0d<9J zW`!1N5hX5WTCKh!&kY6l7-17|f~-g2Feb{s%=TJjc2yKn9ml?!-1+3Sl_tgfK7+6sbnXlk3SK|7dkl zUr=#d(nJ@MbOY4L6gh$!m_f&*F>%8i?!Z+rSqN)}pzX*dSW)RTO1Pdy44$Hm@L;B2 zt#9o0(5-&NVhb181J=s88XLRo2Von2=+c1eUGE57@A^jIde=1q*HK-x`}~LUNb`#^ zoycafTrVa$5iy5XaDqiRg<4@Hy&LAki2`gqzgpzdpsK5%E=uXs!Yv9sefvE2wC zEjxv=yWpvZt*3Wn=QmO0aKAJfYzfsHgIN{S>`H(#0S)J43t0j20XwMERJ`hLWfj;? zA&M9*1MKlPE4&{W(~c|sg&vOi^I+O;2Cfr|n!$B-O#Vw*U>we&uojE}Nv8BJ znoOo%KrNRzYo2?bh%g{}5fVNwS7iNiJPQI|byXZ;x?FlBYz|6~gpC4vYz4#T*Uc4_ z^&FXNzcXVBcK0dVnA^+rg%-pS&GHNc7mV%5@J=+f87#l#Rl5s|?M19MfLj1vG9zHW zNZLskusvdb1I%XdR z#tEAH>0?EeEq}ly3G}5Dkzl!d=>S1vkZm zc!k!P3;YO8w24iTGc;P74KbhGOOfSk!W8y3mFxG>hjE;q215sNbB%iR$b5jTpSPA+ z=mrUR{5aZWTSRxHieOMGkVVcDPXrf6vJ|St#VIo1xadzifEKsNMgcdy^@!I>M=#+_*f(}FX18bpk)b&sB{chBapcjqrp zN0N5fU|mbNPFKa>DiM9AnxXo5@>3+Zh}rV2TrfFG;fO2ad`UD+JM@@Y93Ilm+HMmw z7uM*M>I$oFi(>|&NjnF+H^H?2p45Zh&vja;3ZSmRnIUy~>$6vZ?71*Tm#)hiR6k#e(ZSodDy;*#42ls{UN8T?e#UgybxX%gZ?!S|vfE{tybQ6AgI2I)q9^@qRTPFnvn`>J>s% zVV}hNP*}(elvcaSbj{WEicGaEy-&Yl7Ni3<3uvJ#K~BWw`_=vX?=46i8vzs3AgtI= zglLp{tfwF9#@HrU?rs7Af#^DBxDVq3W zu`QC_`Gp5RdoMK|PS015z_!uF3-$@bLBY5^$2jPuh3gVs9e_)!zlfj{0IS+lbhZq2 zsa)U+ed%FGU%ID{DNMCnJSqhOLwyJupjOOC$>o-s=*_IQ*EKNpCr)?&ro2B)$sKME z%=}(Ir~~(xJ3j*i*y8@kLt}2H8oF6-;RIH-w3ecA^!$S|y_#KGP2BJcO$c;qXW@nA zE!`dhSl`Ud&39ayps7RypZ0HW-oL+pH^mEuH>_D$WvX7H?J*M5NR%F(`Xooty=4oK z=FJw;Pq`m*Y2?+@1)AnZ(eobg1VJAyLbaeq)`xN zeq!+fZ%RnSP@qOmgY+o(7 z^X+BUrGlZ#uD(?qOL1BAt0&ovH$HHTD&s~)=I;Lab)c5fO#buJwIn?irG&pZ@@*+y zQNCE{eXq8Qi?LjAtUROI8j}Pw`MzCjy|#9E!j+`2ONMNkG$-y*LFIc2*^J|SkW?fT zh_^TMqT~%48io<;RL2+JX@Mb{GFPm0sc(Yi9d3KRDr(Hfz*YtiFWNx%*~$`F&myH` zy|p{fg-WW3?M=t#CT~h14)?&1U|WU3icT3-iP(HOndfcFjlB2wLV{_GE`-SK#ARse zYD)GWCA{mVZN&?+nW%|!0Sb15^vSRumlw$6Pa=Q@lPtl+@t5A`hA<&>~=uzQ{u-fumfJg$lON#kPuB8e@72Qe2-vum)X1B3L6=PhwsBfiVXMCppf_6az6^ z(Mk)c1C1h95W~f+lM~}v+n!&;uFA9KA~3x?#7BSu-smWtInka@7+@d!>n!A9dB}sy zLm45kPjp-TM^uAB)cqf=%%eXgog9Fn0}B;GEdEINBU&0Z#jgk;otXb1vfe2RSq;(w z%k&KUpox|%RU7-Ve(^3-Z5X*I!w!bEo4uYvsV8%sTwO}jf8pY-lO>t-N{s3DAjgqr z4$|^0fa;=j$krRaZ9|u%a-&2q=*XxZuwN{<|y znQ@-oT)(Sd!l%Y^DBgEv;>Zo+I2QBy+^3$J zhE#yq_FY9{YWVFba@*SW4F8?G^Yw@hHDJu}Q`AI5s@S0s-`zC zF3|+@cWcr5r+7)cc(c8kPA8?hJ|AF4vk(s-%Il-7dPBXW#1E;=o%0>D<)dgxx$FX)8q5 zFg;NF!;?^lf}89W=QKs)w(%JaFh6K)`rKqvjHX7`v%cGQp}os=6`bhRW>hwGFKbRR zJO!*AlEkA(I)8yld3tBoDV7kTkZBzVhYz>*ulxUlo=f!zy8)zB)bnNM( zkClE3=n*Upirc};FdAIZuq%cGxgq!2QXXJ9yy&%9QqK!lWo4rL2)+r{T@xGaH_pK6 zdVTsjGNFvBRv}An=ZlM@LY7p!7(2Hw_1lAzi{&M}4HaUM^gUCIQU3H6>-@_OUe$9>@xB>A`|8< zcIO;Y!Q*IO8Ew`7DGz`#uZkLr#?Habwyd^!yXxFNhV7a?%dM7R6 zvC(?A5Rt2b=aP26wm*i_s?b5(%|$p)iCJCiLQbuEm6MKKV8o}_yk!c?9p_If5Z9#< zh33M52VHL$96^*O(ChuxZf0=-AX*tGl#Y1q01`|ynlZ8V8kld*eOdL^9cW<4ahaEs3pLKzWKi=IE7}?r7v6*A z;pKKBIa`*ZC=qv}HDbD-&Gj?v13omh(j#;W)yB0^o=-18`K-H3i0=fq5a)^!wkFJH zY5TYXsa(DBU`z-06P?mduTgr-e{g`Ds5;Mn)kA|Ki%pJ)xjpnSqR9{f;9XVb`zS8! z-qqFX-5HX+R2Hn(eg)Z2&s8E2lO?9GT)Wi6pPI|Wtj}+r8e3po{Zp{YR=(zHwy%1P z&XOsY!_y*KX`P_Y4ODYT&-}_*bE<$LeSDUSPvJ5y+gG0RaD5G&rnL-qc7-3C}*YW;>Qm^YyYm+ z&==#c{HY|d;({)(gSau1PpHYk%dzUKj^>3+U#5vy;Qw^;3KH>V_xx@FH7s&-r(}(c z@PZ7n(4EoHh;8kjxLbzsT9FD0vmD%oo$b3Ps)fNuF zNT-6SnR|q(&1R@ImlUCVw)Dc!+9mpBV%vFhRZlmW0#kyd?W@aEtx}4z$C#%7XE(NI4V=4K3#tW=5Kt_L?Y8 z?jZA-=@6o!(JF_M6`HHmPofWu<<3&xBls#WA@}vo?k&g;hchR(MZMwg#kkC6J4yHhGh5UoPu9%ikykpq# zjrhGw#k*{&c1&L+5hfRcDp>A+m7uT~dN4$e1)n4o*zcxUC`FG{!nn`< zz&!x`hBIw(ETK)WPOW8tuz_1>ZB%EDme!s73R;Uno@Q|j3Z!FD|AkfN05Qk9pKg{; zoT+FmZ1KoZuk z&Tlx90{8IrC6Lc|po+xlBA-W!p-?LQA`cLvT}J=-m5mr@Z$LQ zt=J`YIIV_5Az50)Thj@u2}vn-W)Eze(@0q%Ec3Ip2_ys!%4@o{6ib0PoNX1t(SS51 zT<N+27*{s2j+)uU|pG&qcyN@s5I1YJlhU54*95JJ?Iq>2^gfJ z0B3cMckHfqBWy-6wc8~kobKGh;sQo33z-~3kUo?jqTFSRu_IbK130zs6KGNU0)*b& z*{O^&#V|{e<$KKYWtAP`vq=1)&|j|3@I#xO(n@(z)9sGlbEM$WoSB6!&J#q1X}i72 zC*=qR={(E>p^%2?nP#ONh_K!N2DP=384IyCRz%pdt;10TISiGn@k>dDvai^g8?+VW zP+Zpdh1f#(42#extN(#@0;OI*W9;x#Mm$Dx`vl0>YQ+I^9XwR6 zQsA@|%*Hf33}1F(--7H~k#?*?9fP3nGinua;nB+9Z;Hy^F$W6JiMB1NWesm{iGfN+ zRr-1tSB0pkoS;yXRTXOK-Bf+65}8~h^-I??>qc#vV@E^H=hf~Z*Utp5Bpx9IxV~)k zf1#L-Z614^rYiZPgM?Xzs2x+u6)?a2SeGKyn(QNf$31F{%LGzb>ga>;_G@)Op!N0! z>5jqmzrKYP^OWBPY-Fx6EllgI#d7n2Q`2bq#9ZP_uNY&)XNvJZMQ&@>(A~UL5$Q3o z4WodGIj+ynuSa!Lk4X|Cif$c;WkD`)Ca0Errpzeh_gQJcoLkHlfGt#CM5<&3gkU8G zqQ`LR3mTBwKqg2;gp`~%O*qv)QL>K&Ob_KAy8?2$vOJ#lQxCdXU%xot6mEfW0cgYW z^*Bo8j)C|9b3!E;I9eo>19gi-)ungrpwoKj{LLc;p^{x#$-N z^SB{CD&fo^%LN*lG3ykSz54(q=BKCR)x1^K~F7BgY6@uw*?bduaHZ@ zlkg-XTc5_yOfH;-(#Z$c9y!5SKwbwTTF+m=>uL9dbj-Zmm`J(XC+~05f;k&xBu(F0 zpYviRI#6GPM7Qw4a9TLKyqVqkjV)zk4^vV><&pFH)QpYT)e5d*e}jxJ%iRSteENiFEjZ;VGDX zFb1X=feJ}s#;!bzrgjDOR&eh}Dn$9MlguL^0XhC~SieUNx-YI3+)%I9E zqYM@>$8`omsUQ%vtuWDJ!jKb(=`R)DX*vwE3JisueO*fCH(VT&R)TC&9u;Pzcz9WsU3Uq*J&$h1dR!97;69(cfr&%k^)pTcpKY`MDVYYZKnLV!DsKy+)Q zrQ)|D;-M9fc~lZ8P0WS41-Mq*8|hIY_=VEjC{HN8c_fiCw5w7az=FbHa6sYYsZX#K zprChz-d@jR*o^V9a71@O#LE<3pc43WGK$HRmk*yxpZfk})?G9MoMsSbs6^c+hXzTz z1x!lnmXjjn07U5iHySSvesQG>WIntO1_yr7X&uv50`wwdRg(i^6iC4K=b0xrJb;NA z011JB@;o#%*>5@Yf?bI`1NCwcU}C4==pT=+U0+*V?BP+leyNbjYt8hHk zios9ciI?bwhswE*MX40HU}2baq~hr*N=O>z#RSWOAf&Ejm0;@5EruBT1*&6f?@YHkrRZAsT<@EPF&yZ^p3#}q&62Txw+%-RL_wlSm z(bC%u`zWU&|8j05wbjR-VFt2^ui}J({rY;U0%i1;p4biRHAM54Shh$-WRpTBF0SOa z8K>Z$4c;imOL_ub;w6JoUoO|@{A8r1uE9Euwba% z&j9&MTQ=LgeQ%|JX)a9hpVB)rtkn-r7=$}LbSD?vD>|@C-#*@^KlSlB7vjc{XyuLI z9#zF>Y3j4Gd19)*bO8xgCXW!G&wQwr4A5K)IwPyS73YiZ?U?nwL*6tl9Hc~FTq>C3 zFk?3Fo>-`K@z%gq%mJ<{Hfk^JFqOv}2}WqnvdRp{m?|^uZk?$zS7Oa94Zs>~$O|`+ z7v#B0;eibewa`krF$fZjXYd|JW`qq|TU^P~VicQdRx+WU1lMDWuXkl5wpr3@4Ab(Lo%8^$C>>4aHy#^fUMI{h z%8K2UI>N`zWg5WHUsYMj105raH_#jS=yxC9|6qT8dH?C{5ATu7oHb`n`-}|I;RVB= zdFQz!L;u7>IKV!2|3oc~OEj)sidOMB!z;nCNSUd8wHFYMZtjqkP&x9o7k$Y)U`?0s z$Jxs*vJArrb9H@Q88?Pd-2`TyOnMbQ>esTW$aUK{aI5yBi4)UFRRBG&+K(Q+7@JpH zF+4O}d6wKZyUH_3Pq|vgc!wf%$lp<)OmQ5DqYP-?JB|&!bhu-KC)f>SA`4w7P&vNq z*Yux6_@@3G>OB*TG7g_k#842lD`+MWAwzALlmu4c>xQ7n8%8^v=yy2q`jSjj?ls9yjtsO;g@a7QrQHSwp{h^$6kyjJ7e5|f8mym5^*5k74>A(t)l@2`I z-13ET9SyIJ$`3Xs(!>p%i!eHpHDiPh%OWE0CM*x%{`=?q?>>A%Z8panj%xPx(kwt; zpp+SEitYOKV+6IYU(;q6zfg@Y^$~FQ@&bj|l}pk)_qwoZy777{0|{-!0rgRi-D`-( z5(sVr^fwJ>60#4j3aFIOp&zI&YATH$=V(?}i1R_BwBom!@J~bwM4+J50i(4w% zC(P`*x7X(GY|LI`=JR~0*Mz-JMi2E`&#-vfg>K^Srmsja+e)rBL}J>|AX-HTo4iPh z;YRh;)S4NJM5-x-`0w##Er7OLxcQlrdHeD04~zF&s*^j06Z1?{ONcq(KXT{b@y0-&T8SAv{?SM5iHLnTMP+|g+07bY&DsIEG(X|{|4b#+U z;mqnA-e1wuY>POvs!vx%XG17pB2F^dK@FiS?kqll2)x&@t4I-@fqvEYPRcxpQ9&f7 z?S~T&%+IBOi7(V^vWoFCY@57T1k0%+Y|RLf=dgg7C>QH{)r0xl8PaqlSe~JXcq=tZ zw&z_{6DHYcYVxdy9qGd2KusE{8+6RK*T@-KHFYC)rm%<^5Ro+Tc8*P%q<`+vX#9i8 zb=LDMnzpId0)Db{GBqN@93GlkDFGPQFZ=c8i>V5Nk`QpN2%Vps$+L|Oz-SyeCp87t4(mY3g82f-kbTzGJkM&3{U2z8( zNg=S|U{!d;R_n!53EGgGSNl)8Qde)wjSI-yPiE+LNWuf8!30eQ=Q5iNGYMO^LVkipev4zE=zLD6RrWr#tUHr0Gbsq0}Dg2GT=oe zd@!js6@d79i2ml7kc5`lKU>k^WU5JVKWj8y!&EO+<%A}$|COVet?+yr@nUSi9yz1}XA;BmnxAN_y{u!r~g0rWfYMBsY+3oHf{Z1vxXKAIU)4BF_V8#vdEHgCVF*rhK<_r>Un~7E%H1C4DK?_nO(XeY zv~0$dho^K=gx0Wj3*yyO_9k1m4ZhFIimr*Ke?n|MEabHhO-w}Sh{hDZ=iZEbt7 zGbUBi)8EFJ9D_!KF{zn*o^92!EH?EKaMW3Sy#Msw_RY5-&?Z*n8&OEtaA=Ca_b7xe9Zs;c-pE-eGoc4)MoX{E zPBTb?ObY_NHp^|)?Vv|t zS|AWN*j{vMXp5jbzZKl~84?#dJx!IZ=!&siY^EcL72eQ?_fksB9lT8{t&7r}ZV)gJ z-dt0J86cZwWOYN5yE!tl;93{^Jf+twCf~3bb<_MXOEbusTWS za6W)UgobSsl|)FHam3eQq_`B>^GvFJFL493pKvbM-_D*GL5NVebIB5pa) zfJaP$A8Kr-X)9Ky3%BWF0#tbNlk>^;0UG~6l9G3jXtSHu92=#A6hvU~yXW*4+HJ$3 z4$3FD@RYD}<^|_Ek#-2AwTPmOpaBqVQgZIn>7Axwof1o!lvA{|(gnxXO#ov@ShLtT zkW6dE5%na&Rwe~Dj$g^f5AbRi{s``!(2~r|y)!rTJ)lw(^Y3yk(4}0g(8|t!;Ax`u{tU zcGK9Dl6EV?osWam`!A!B>N|>-j64 z359Pk?_Z&~@NYLJWQ>J!u)aPk7qRX*ObVSzVKH$soRj>O&U#>QAc|;#)Y7!e4Zh#E z$yFTg+oU7RKt7Dncx{X7n;23tR-;fr+LyxRu(H{vwuVsfzu7;(#sl3h`bG`NOi{;f ziZXStj8S7Md!5~r9W)QUf+N=;0`)*DkWX^y99idZI*7xN5|6t- zF#Pt0&&@DBSg0qmNd=SON*E)fqD;iR^2^M4x01s5b<#U{fWciLhj9e1poO2f0KEvd zq2(YNQkE7})0ED)734;hG*ulL7Vqr>o`bVFQZZvswM8{$J&mi1Yt$C*`p*gyCZ^#% z-6DS+L>QgwTL3tMC?Q5B>*p|MkUNP{Edu#`4-WvL4C&LV0v@Lz&_nyv?2F$ zrHrEVeSy9th_UM5zzC9oFTRiCahG{kydkawv+Ybd@m^o{%`F&n=h zBg@&)ajQ8V@?j6+;|Fee2pflfZ}SqOU^1Vo#VIOxDGVxmw<%znF(DVXPdmDcmL6va zH5D+?_MldxU`Mi-8dAJgx_~{M^kS`^YfX~h36&p{Qmx{ixT6wNNW*1k7Y>m1Y8Gov z&Y}fBnxRtl`Te(Fet?%bLm9SAB5Ujtwj78W1={qrP14~C=KC%74v*3K|K#R@w@^vW z!$A}^10E#j58U+72C{FY0TQ`0oP#8f>S`SYdp@ZgFlvZCJn4q6H+K&!k8%f}v5RYD z6G4`v1%e}QS=EQ-&`UCv#4IaFB^4gl>S8uW?k;D&#!szK9rds-S?&D_s1l~XiCk`xl!Jr4HBjKsVw3V5=e_u21lH1mrrAs zmAZ;q)3D1g&hNZ32E1OEd8MHdA_r>Tz6&^#%B`i^_e=CoIVS8z$M&|!FXcv2~^Hm8e~DX^}4AgNqv?SvYAfk0qdR+9bmpri^Wq=HZG z)Dz{^{FQFJkBn`pnR_^kSjBH){j+OFDE{2o1#6uwurIrjnT(`1*$&91*5eP2A8Lt|s*YcQe@DS({T@{5-MNs?Q zHJtetx8ESwFCw}w*UP(=uw@^F$&t+!+TR!F2*tEL#DZ_J)lnq~YRc`JB?{L*_r&34 zcjMmj9gvH|FA!T5YR#QQ?@s7ox~>h86`;Ha2o-AXZn&Xc*F9xc{e6Z@JZWMpT=h^& z!DN5q(+Vw7ZH?2ED@I{z+ARCzVlQHeDiAmudKOQ!JYGM40M;vXBvv4o1FK>QQCEqt z46Q<1rPCMgLY>>19KJ-JxE(bbEjvuw%0H&Ja-}CsYV}Y>Sxq5o=C%lMXKbHh2=OQ= z7$$lm~1? z{5O259>;l5O(3`c8UvkLn(c!5&dyj5aOhq)uYQwo=)f28pOJ6H;07i+`){;rm zxr`d7Z>z92F!}FH)`-nuhB*HQI^0_3{r^ew5#)^aJbrH{UlI3DPAdBuMB%MOm`0r#T6ZLz+&$ zsuzp({3T8OS+QDR#SYXrvVTvoV$syr5>5xRo6Qgdbc@a1>3}b?RKVGg1-i!y*iaT? zkW4PPp)tv(4qEN)tM&5+k<_qa^ZLf{kP8wOsE|o2sq!`8*MFTsOY9w;_OYYr7+DdB zRQ;K%0q997j1w^ASQ?1)fZ{(siw0V#(ob2ah-NwstPp#b@k<0q3ICoOx-BOY=mfSRMEB)ovN>lq&Bt$Hf zK}e^WGa_moT|?ldyrX5C%A-|o=sIu24ElPix-ekFJuaPlGR~~N8-KxU!x*!WyQ$3O4YrznI^ww#}M0z`PG4w=z@p#LV~G#!hd4>YY!YTUzS@ggno1V zh)N65(r5BX^jokpg%aH2GoX4nBn~1DCwl_c`ni>yke!W96`&~9oaQf%<-T-MEI;jh zRqx!roLxZ=wna)Ka2s<}L_Wb7HVY*5q4i__^>liEZ8)AzSx_wAF`pop&@8b*TFnd5 zPkE(1Dy^LAH4bD@cf$a%-;uCzwk?JL)U^8g80D(2*X75#N&u8G*lt78UI9H^S4J5P zH4vv6?gHDorW?&jKrJ*k3gmU{!kg2xQPnDz?+|eMm4Fu3`^;9i0PCSG_H6Sd4B@(s z0`TdAK}s*6zkD`-4dMyhjAa4Wt>v=(rSmN)Xm1=~)gh1psK@DZ?SM{{w-IJ;@{4=2 zZrJR&Z%W7m(bQb9$9932NNnV|RG!m4KPomnNGThBS1xGH?;J5mIN$rFtuP=j-RB0&#Z1n*4FZ>5}xsI07WrtxGS}5Dg-qC$c=1tLSfV6W2Yao}#9nQp)K$ zQiqid?H^v)JjcRb3uZqB$tnYL4qhw=wzh5;jow`8BCiu`HvD26JEH?B!eq40(1H!(CC< z=#jMKNicHfDL}lTSGwuRs+J8TI-Ru=h7X}oLQjDOQnd{1o&#_i0@VlW=Q9-76pD(L z2El2I++Ej;Z4&(pLKkVoK{Rh~=g^E+d6=lpHNL2U8?iAASvdV_V>k~R_=_hpnAdBB zA1rWOY_S=6?&kt(vgaqJPHD=O8$_S$yeC2dTijJb)HTju8R%BB_TRyEsJ7MGwpH`=a_$HeEsf2HbHP?&5ev5!Ew2gU<1T_vFpXN>L$gxT>i7^Wm;psN)YE%$(EH0v*i10h#qDday@Bj7f4|N5znO$Q6Gtlo_6iw|~vKxpnnzRgF#M4umhSrk?EYGd0 z7_aRs2H2qzC9~<4S2Sr-IhJPi5?hNHhCtsgX9LVLYIb~2sOSy7i)PcP(x!;UXb2hz z%)*y|rVZVBG!vH7_NL*ELJ#K~h3n?;G^b#5Ov}ZvZ{EH?`|_`w|Ip$%$7o(5CXs!8fF=A~{@N(~-*Y+4A%q@x1@ z)PijGJ+#X)w|t5?0)?y8!7FTOFgyZ=Z}3RzWl)m*Ztkf@t80%+qb$@H-I%n-RCr3@cZ5^p>u#4kb)LM!L;Itp4bq|@w}TW& z$-K`&qgJ!c4$gV>QPhybQ+hJ0oB6q+dgqm5iS^C|(=g?&49E7;`s`$#ToP0e4X~8W zlhT@qzhItlBb)+#ktr<{<*D!?xjq$^I5{EaeB?=IJ9|CD8N(qhzk`bCK$45~wdshI z2E=x-F<)>ks=vJf`p4rSPWKR?79`D*m${jM)4~(nSR|hP3Mp6<+kUl{SDGT^ii;c) zMsEgLvSNKxtnpjHsv!a0CQ6tm`Ki2^p15IV;Qk}^^~Q4ai^M0GCWhNugn{uS^*mM} zbrutbm89FllTp>u2LrvS7%MG2h(J(-WP40Ej+2ARiFN@^HDdn!m5~z8jjZs|G_YQ) zPclBnSvGIzrMBD~5-2|o(r5rr+`z63kLoQ9nkUD{gXts)ZEOX;Z=fMJ)gcp=3Z$*Rv}lG_D8elEehllM9YC zJI%E0|DH~I09|UqBwp`zsRa_OTpL*xmA_Po>C{tRWFYgcs zsl?V!IE#GO87P@)F`>N#vN3YfvCFIah-GBOI z8!Q}v5j|IcG_XK1!2B=oG6~}5#^B(IH!l_vkB12-1qxS8MSB@NQ@Ci=kz1vKgb)a3 z@VVFaii#^lB$`iGQJ4Iyu)OEwHRHNB@(LM418ZAng%V5?K^-(=x2V23pX7;v`WN^S znGavBQAKVB*Co1GLN|$0Qjg=uFs=yqbfb!JJ(AAln_*YS^{}G1*SnEM=-&-A!gaPbdSIThjS2~a&b&tHo)`0LVq+XhORq=z(+2#t zP`#c9M}CSos6by2wgRcMR470k(5@_%Sd@Gz8=4@U!Q_ZGd=`BErL%T^n!A7$B9sSB z6qA{3;0XEvA}{)+j|ro9>vX8mxvw=4_lHl7!%_?*B^ym)SLh4ohL#ov5EDC6Q-2@X zT8TMBoG{T8)}+qY`?~?u%O!d}EzH~l42Xj|gqJL5vT8Zfmtb&x%Jh)TEU<+Q%&12+ zwM=*{R1}tsda~b53!pSf_+*&P7jAS)GgR>BF!tA<+_LoOkRAshAaN&A`g1}HULm|10Ho=OE*U(!IN6OHt9IDf3A$>C!gWX^u|;>NN< zdeldl*{gNriFvqVxWd=ja8D?yFz>%-F*lE>x{s#8c{jJ-@Gf%*W}?^vroMIrbOgy6S(j=gg>G+wsCHsy^ z2WoP4=={R9&@!u7emd(xe>bGHQUb;ldNu){i~}Ph#aW#;y11Noqvyymp~M?n0_|1P zJNL8PC76FFM8x3)7i6>xmmEuEIAP-I+1yZ4ZfhvEsgqm0*SqU!{hL0fx)F)fS#)ZL z^%K9k?l@=bvpo-4mx?5qf3{YC|F-La^>X=o)pqJ244R7p*=?bEzxWw^7K(Gmt~7*I z0MwCppPfU1R^_--kzPa8xez#9wLs#lsfqCNmOeB8jeO4#2)})CM8D$t}nU zOHRN!$mklr9PCz6=^Jc})2kGt!sBHlQlftSg~wuX7*(ysF?WLGPDffI@h|Cc6^UK% zXmZa~??#Ze;W^CG9dfDGU5V)&kXFP!!3I^+G#*EMZdy(lrJz3?mW*_0s@^0wM zb>z$<<{#$`t)T5ockgM2T*EZ#lt_;yXOOe;X0d=^iy5E=NkvuLi=tSm{8lSa6BQLe zy~EbYER$HMfn^fcd@b=_WM7N;cyZ$z^XVAa2Sn3To2I6|II|;CMaxL@6mDkg@oMWHDZN`yQ zW^Vad^4w7IWQ%0!>!R}VWv=E_Z~oL=U39e1mC*A1j96bLR3E&fqkbO^E;Dta22{L* z#e*m4db>bER5j|E_$_zn(LQDH8(}hns#Tm5sY@dVza1K5M9ity(T(xS-pF^mRk}2i z={=dwjzU1eF> zp{q43J9O1&Wrrg#4pHgj$_}jO@ptgZdpkVY(*dlkW$xMcnW@9R&rBWmeP-&g?=w>e zstemJhHypPT{Vdebq(_Ds>n%dY9jC=xQcCLq${wrg-lOG`*O?I!4+u zSTBb8hau}by8kqi6D0`_SX7$>+tCANFSe`D1bRCE%orh(N@N(}2U)3Z*ut;iNtvm0 zv7`+|mLM%ZwQcD~&|(tf*n6D)E3bCK*j3Nl+{yC5p3Ched(%-EPSp~rO!1NKW3GpM zbU7~-=^kVj%ssRS7B&<~LqKipgvgr3+I4y*Q}K<4ml|!jC)*RM2>}yYGb9wUNu|Y% z1lF_xFs`N?$j+=ZK#h;rB-T>ZR%4wCq|VY|GNAsgC^UOa|?rKqUg$iPH`_q zj^P62^Ju|Vx2^un<}m@&Ti^;Q9iU;cW;QvDrh{&j0u8LOHud>D%9^+}a|lg0EvR%u zVM17=6$%8vXfk!LIUcy}D`uy^a<94aiY8PWmA?KdI$7x(!|~8ifEy&6Z{e*M0n&hA z%{jk8xlo(iO`8L^g-NfZNSVi+lU@YSF-=iG&3aemFW(Zz4Af9a8dtM(*oHs9{oDQe z{-+P0?_a+8@&3!tB8Um}=5qx!HqcEbr2$rlpT~5zcH8_RqUlPjd2v}YORs1{Ezm0U zXQbc3KGxg~TXTfwAwc?2Uj@njUH30bfC!#Hb%*8z3l6P{4p?gWs3G8iIZZNVfsPx9 zjnfoL7MKQd_ExLFWRWJZ`c1if%fnQZYxRTD%uW2SlP2$mRYE}OIlYMyOhhJ z6fDyx38K!KeO(}tF%lWLDUl4VU(wgtJRyJ`7?P>^IBVW2;IOX{Uc`qv<+mFOuwHIc zq{I|*RP{V42fvj3!n}m*wj2V3UsiN!a|3cGUO$He7s(Z!7Kc`sYG#gz%Pyl!`r&iT zY&&_56EywMFmx1MU+j*e(bAL@1aPu)i-XAFL_CD^INXw2Eu^>`&#uhdjrs#?!)&y; z*qSAVJO#p-#$L=gHT5=)#=R|Fr<96GA$tYY#1LP~)ZH8(c#pF$A3uG*zJLG2=YQKB zZ$G|y|LI@vKYr4931xMv>-p^^@{k-Wm%_z-%?!TCu%S9&Ii6C%j8hcDc%~D`_!WG^ zKo_hJPOv5-pkF*p_K4bKL|o+QTxFN0yEEv&nB zArnvkTmz8?T6}3-b^EX>jQRB&*d0xh(QhpiSi-W%wKY>3NgKloY$2-4*wekCn|G__ zW`QHPyh9#5c*bhYO_VMIZ&0KVnmEyLy_xvE+`__xp=m732^<&)tBO0dIBg2rsZb#Y-tl*wAII$Tvk`R zVWp4K4Ap@2X%MmMqE`c}ZWpfk%t>@CGA$!sIzF0R1RkKsfXRXyM2>fx1M`;}T(&ia zSqhF$WH9zg^8F4>-VcGn3d-I*WcnO$p$Un#o4A)T(90y#*%8@O{h315P&IkJg zrioGY%>iFw+Xxh(h4&0IwdS7+r0J7$@pK}D1b_ZNkDnYJK0TZs9h^)ilanV$_g_y> zE+F$uwAbxQy3Zz3T(btCN&O8-HOBB^NMmH#2bHiG`7KsR?**L!?GU#5Z{K~s|EMb5 zBVo+NH8X+f!lT$qFTVf&?T5+DhxczkfB0A?WbqErA@1vvt%*rjMdDTKs&LpbCT(nP zGsk(cZ{Sf}ZYrB;$qKRgXR9TWJG#dO8`@hS;c&P@u9)|v*C$BOiG(W48(lGNSgi{f zV#1eOV98JwXt^?XWiiMK7AbG+cF?Us0W2d3d1bf>YsyU|8@JZ^8s@ttmL#$L=4uO4 ze@WFSx53wcU9C}R<1xv3-WIq48tgK%=m_Z^kC^T;r?^!2hzCj9TtE5^(B`8s2%D}3 zEPoh|OVX9R6#Hy!5lIOiM}kJi##ABtktRW`$uKA(n6Ua_vkJFMERHQJPCEhh37Tf} z%AAxqkQ^Y?BWH^Xv3vGY8%uYX>y0NoBR5Tql1#hBb?}MFhyZzGe+h!zt0+Mreb(9f zd5&5>WlQ5IxPYAQ{(<=|JL%Ky$l!dfQC!ickQ!Pobm96|pv`*jk$OD!IhT0Q8Uc5t0;LmMiPM#;bgUnISLDxhBCO#Lp^v!M<_@};jTvuJ9_axvZyP6_DacbhRp;248w}c&*2dN3w&sUe zP&I3t>s=y#k?G4n$Vxq=i25v=*ALsl^zOy8y1UHSgjl z%s^>UgYzlP_B?TMT^&WfnU>~aa|a)Ae%fQw6+041DE9Yxj`;?t2ie!tZD+N<*q*g6 zTm!If;=n!d>u?Za-vD((Fgdf?CbFwZlc*Wnq-#bF+%c!Ck4v!hSW137=zP~pn(|g3 zKl}h&jUKMC;~INdhX7|5WpPnSQbJ;dUu#b41{Uei^*hXJL@!rzR?qe*CkHSS(r=e5 zL>Lu%qAz;md_~_=Ptr}^svKQJM`)R`jYB7bnTD`pMheiBTU5piMKa&?v!>Gao(dhkn7b#WR5vwQf3V74(Gw=Wj(D>L&N zYpbl*U{_IJ=5hR>K|TNezkwRf4K`GK&C747AdPG^&64f! zr}ZPwbi3IW&zs*Y*RKoQ9FYuJ!f-AsWu9b^AEzn~5-l8+J4+NB+-@STmyOWb@eWu6 z)7f(4VAshx!PK3z54{AmLZ0;K7TnAAv*uIevJO#eb5^N}7y`9( zU<}r7pivmR|Gfm=+4dSobFn#}U%aG5&Siv0hL)$oOp<;4*i~x&5`AR>$;c2tUn!T0 zPb<9?nP+ERdMWCHZUF@QRBR|VHY1Xehj(rJ3}M((8r;lqM2aFu$KXzlE}FLpdBj6w zn4>bl5S;cKxqhbRX;Egd{RUI_`Ahgyutxobc=VOqva%NPB9_DEM%J?>$8$ANPxa-%Tx zt0J^6XgO&$K}#QC9HEtu0dGftVKFhLhJ&>|v4di-LKVaY;%2K1!En`k=6ha7wlEZN88gyl_25Wz(uZ3EfS5W_+eUPka18WB#vBJ?T!ii$2aEuOg1 z1$61ejBHNV{ZyjxreX)N_(~a{volxjVEa1hF!6g+&MxQ>h);ZmQ;dpxRCKX-g6U}% zpf{P6fzbX24~Ijp?dE_F;l(NU4VdDPu*gR^mPW>YwGP1%DD85UwM+=m+wq)++>lhi zMuR3TBGYzEFb#`Hf~o$L@2}7dY5C1vqPbK1J9Kf;y>M{wg-O{PlDhgeWl^xYhY!clGYBc7kbW zpr=KS2Xc&t6^e_Zqx9(^-6BSKlJ*z1Q-%U5^NbHzqMf`RvWO@fZgmAc?`Y#;)h)#4 zNdvVTRS_M95h(j}pOj|{8f1*yMM=(dD$gd(OKNe0miJBE=$%d|;o1lbu%`Gwq*{ED zwv6Rlai?Ez=%GnTw1AcfnmQX#y4t9YkTy7;=r-f79wEWBC?dXF&}CIFvPG2jrRx!5=%NqITB*sHn(NY5bdEcls9By3^2K_6;9 zSS|q5%B8Rs<iGcb4s33Uc+HTV^zJSRkiO1Y(ZIvxM=3-7 zZY-Q`bXLdWZ(4P_aD9OE{(|XDZdHkaKJv|%{R@gdx}D!zdbc$yn*>s4<*(t_?UpYt z){9ZuhRwmS#@LK6?Z`E$36|cyJ-1VBE63jqFx z*&kRh{q))`0F+k95VLQW-$3b%xCKpOC4mR1+Va2!XA@7-iA`=z_0UO^u6%(2tTg|A z_*`M9e4xwkZXpidzhED zuZDSgYnZwh8xtleFd7Pa;r?=ercMXlNCcSTs-^Bst-KnMcV(n~6)nMaMkpy@UMqEY zT>`kBbFv^&#lCQmy>Ob;=L|E@rpW4i=!mRmhbPhb@4n^YWM=S-&n)5g^ZoZim{32E6~oNE`fU~9(X|_fh3o%2GBru1VD@@2d{^*A zmDuU=GDE0lmrHF`cA;qRZP)^+8?+PL{+)JT$NcR<%9#dkwqQlgj9QcNZkIGT=IN1J zFc-7Iq#35}#pZWAF7{mQW0q5k!A45fm@)j|=`VA3&6JZ2Jrtm(E|GpS%ZAFSTUWH` z6vOm9486ezD1T~XE$~<%vhs%FormhJPn;!FDoUdYKl0xgJ4BCj7qub7G1WQ-15Ta- zxUd^s5K;g2diioxG~uB2oYzcqZUWb&&MR67TyB}rzKJXgUa>wkbx?zwUdcCwOYQo- z0+8p*xUH@@6(DtX@1a-F3L%DcPF_h_K{c_Sx6Qfn9A4<|^j%IR!Tj-JTB!haaWMo! zP|z0Sf>}=befW?A9MHyL!F8c|G`pg=jzu_Yp~9;|+KMR)gn7~(`yKjSCEc;DBnsR0 zqcH`Mf-)#V=3Hv#M>ue5>~}C#DY5AS7Wk;NptI{(BFSZC2Ti8$8hE=thcqe&gV2}O zpt3ie@w09q=pfBQwlgK277QSe^vOuO(ZjJ%@Ufehs~dPt7V6=083#ZeOQrx>zf$Vr z1}_Cf!{q16zH@uCpm~RWTmXzv99RT@QQIH-C}m-Bpz3FlApgJAz59l=KPZwdY5WTzk9s_U<(97=_IQua{_XeszKF<-tSYu= z?*bR+3XsIC$g0Z9jEszT6d-9GF36Sr?dLlR^iRYgf$T7NN*8?Rvfl;DuzdV_50^kk z5naThY7e6Bif}9W1`VmR7FV9T*mPT`c)onD;eKd7*W=^KiNBO1*XiwsmVr25+3rh{ zEVJbEmR^)EhqGBL)3Mu+vlW-R8o0m|02%Fw~b$d0W)xkLg zU#Yx@hRLSwFQ=P)|CYY{(2y?m_R`XhPK3v^AQ%-gDS42CDam<4?NKGq%H}9FM>zM$ z6lPMX>(EN*JD6*USY5YU`^*B=J~M~d8I=8J*W0Vrb}RGj8B}a`u9O1U(3W%WgSk7n z^##*Yp>JdrxvSOn=;)hhz}@_tQDj@+j=_p=XTGe|--O);0qDCe)F_>{W|rF!)|)+S z0xi8t01bfcYI3lxPO%J*ujZ-rsL5fJkQ`JSre&lk^)Plk4wN6`+wQKWljZp5pJjUz ztMp=I^avI)JONa0_3DXsNLDQIV%p^x*?&DnDR1iRb8*z3Q)P#uZswepE@;BEuR73K3hwI$tOd~v4fTc-Z5Noj z^C8q|Pw19je)yXABd^+S1p}x!R0WPcvJ{Xyccgsp?yPACSU<;@DT@k)-yI#Zc%I=v zzkT#%E{&i3yYDxW<)l2;#3~n(7pYh3 z_ooY(kU=r{zGvwOwKeqx=Qj>_5Tlc{AK8JFWHEs>Tdx0@DKC?}0T^gtny^Shk&@ON zbu!qHGz}%L!S(+y6e60~vD>{p-+gInjn%^|m2|Ma0ckSaP6L@Ox^}lDEMe}K&&i~d zbV|%$J7=JttarJL-`x!@taitTNG&qV^B16QFtU4!4acg6I6X;)qp6A5Uy!KpHuDuc zMRp_Mi8O>)$ZLvcKqp{^MI6{+EllY)WL9XrY%fu$@Q{lwVIEz==#hiUssz+$=vae~ zB3$^)2cpXv4Ro*@EqWaK%bR&wypTp4SeY&{!OC3Qs(9L>rF*!5Z?Q=@dpPio-inDc zAzge5&wk}mUxSyFq@D&9d zmAur4dg#;OhZdOLpl_o)v@#@sy*~wu?4_uWm*J`v8_{j{rD>#CG6Ww4`$i%i2MYp4 z!pHM-gtR$T0TP{W5uB3h7lUTPk*mR*#4ij$AASDmf$& z#|for!1OTNX`<*2H)$Cwu5aJ~1eMK;Kopb*Q!0xd03Xd$ns~)AHzfprnMdXYth(^* zv;o-?H|~&RD|Bp1;%bgfYylR%;2-ylJy&%7c|X-}-TGI8Y7)#8ih0>yl^|C97E)L# z)g@Gq(^37spBmzFEvWzD|ImdLEAk;LzWV5$#wDGQ+rVsrP~xfu3~&Z&Sw*sbH9YATM{nP~ z`}CW?y!`+(zB1E+Pd`H8=dV9}8SR>$qhCE%5B|@a9^-KS3yxphhr79Ph&zyr20g@k zFvk@;CJq>T3s4`ats@^hDCrfd3zUNL@d6P9@cWs3b^J5*OB$lI4>wWrPf|D3moN5b zAO7&M6a?E}%}>Fa^77@y4JuM0?t+>vTz;hd9%Kq4zlZ(S^cLuW*vVC119?8UcAz2>y-U8AK zz}&q+6e;bT^i39GqPmJ|Soz$M95&8G=xaW-c5KmU8HNfC)dZ#De`n`A#!yIt1QIXY z7gl_!I)FIB*At1XenyQdMWVFYz$AcB0Z)xQKg!f}u94>jJd$U%@!zkIQ-({py*(%M zIKu*nFHhGUaoml2(2`nUn!MOx@IEWtSsg6#o-8G8R%w#1Z!rhT2B7`9!=?wPJ2n=PB(0{efnm`SV8VlGQ zyF79W(^Krj_1(ky%Uu+ArqH^V__Y?9J3u|Z;)`=4DS9~{VHVBtPyaspPu6ylx<`Jp zyvxooo`hr>;8ln~fbHcOa)4smz6Y6?&{|=Bl?Y6Fdk*K)uI;S7=CQ*J`@vuTs1T=& z%$v^4d+5t5u7Ml3wWnHHSy{o*Kg6_kpss-(W0*{&g=5Qy;0jAS)e>0m7xfIU+Y__( zm!^<^S&%8tR7cTdm=w_m@0u=YxY`rO4^KSIBU*wtXP_tfGS+lsW$S{B zi%$EABg-kAB$x^}j*4Sokrmv8=N+rIU!brhEhNZDdyecVTb7+MlehClrm?CEp)xcd0SX z^7Rxalk^@vwfIvV6r%&z>k69ZdNBbwb=KkrNMjYh!E^{4r5NqT#P-0ti84fZ+)vv4 z#Vts^5sQgavkJtVHosPd;;@F3vf3==^^6+8!>Sk(4ZD;qy73dSXU%N>i<%i%K z6`9PY$4_m`$%EmXQD%Dx&Xyzt<`zV_MV?gTPlWk@^y`sM5%sskG`!(gBPhilSD>C# z<_ut1T(P;0)LZH~&p@Ynk=L}Q!rgcM*rlDe9tLEDuR*?y)1U0s)|?@O2W+j&1=4|S z;GuB&J7jaC-9#=GNUH^xit$4(6{(95q0r5zG^#bS8)!Ecni&o7hua>)*ps}oNA+Cp zf?Ug6GO6j?i!Iu$icW{f_&Q^VcZ8^l2X=H8`JlJx!FllTpxhKM2Qzl%)bS0O+i_*DWMC5&||CO^d732}G9W-RD&pakBf| zbR*&E4}z}+miu5;Ylmm}x4W|oU*XOKJ=|9VE(9H+AW)2@M5+kFt@uJ4O~Wl^bUDNq z;wHluO`~h$l7X?^Y?l!J-i)5woLi7kS1F|D1W3ad#<-d&rCL)NRBjQxu>EVIDqs#(crZ*f|oS>|FNsD|i|F$``Mm zJR6nHIQP%?(Col@@*mw5CT_?ki|g@-1POwRwJQGF#3WOv`}UC^1f?Ew`*V=Kg1k8` z^u`w2Mw|LqH?TVKEJ63&X*@Rhm&YJzN`$0^GTk`Re73u`h3R3sWU7biacB%j15#&0 zO3K!+=5vt%Bgu8h&Uw1~*fb?wchU$W+eOa5D zY3&yZjVxZ%d0q=E52Usf`#|x8Pk5fS^TE4%UFx)WxWHhDN`a|6X*;LIKA%a$Z~wf0 zf3F#+`a|R0J7eHX^t#kBc&;g@s5)bbTh#x}Z_h5F{g3B4zI37WQD#651-;a-`ZU}2 zM!Fk)Y&m`B<@D7C(1~2HaR3$=X6`r}M7FiIA2?douvGV>Fd^AT;|)DYXy+_MQ>!!W zspki`lqgYXbh)L#pv4Sjw$$Zz`I6OqDW;|dQyzLzuFhip)HSByBLq*d0U9#gZB=J{INJ_$9cEc=E?&TNdDmL6>f7_=Yftfbep z%7TT+y1H2x-&?YEV6@0rRVK_^WWqSOy;I z)<;Jq#8dN3FHQ9z25CP_TP2Ou>iSzDR=tcXQen}%brMyfN@boG=ONXYNJG&Le@@0T z>O1t5Vt9Ho>a;Zop@bdXO%6z)sE*^^8=dpM=YuCTOdC8D0%SW4CY7bru_i?YX-Y~N z*)DzuSe{gZ?1adrRlmc1ZR%h_Kz27*NJMltdr1azlxi760C`ihykXb*8Ps0a!+GYj ztafp2?vbNGcs5l z8Yxu$aK=qqrco6IIuH`t6517FNb!*z0y%?iDSRN;owO!rCjic&H8*V#2PH3%_5mtB5-d;dpN+j&K7OtQ<<~Gz7+7Kr|>14rCPV191oGnzZU3 zi`UwP0+M6!LO~!*a0Ru8n@3AXbhgH+=oSlSWc-q5T(rzJMp+GN$DUgxUH%?NQxCQt z9#IqIJeul(FMWnX@;lB4MDdzinb+9z4|kPWPQfyUu=)#Auz>dh+t~ONx4r}}d(qk0 z**0xT9W2Y;v^i#`VF5&rz{TbMNlqI$d1ZFP2s3PGKQwF*@rJiw2ZFDD4L)En#fSpJ zaPUI?M~&O=#RhSDe$aFEoNMuDk3kN#z_h;lRCxO#TG^}qvayMP8du7hQy#OswC-l3 zBXxi?8hp`cL~6luA9-0-<;WUsaiYi*bdGdWWWw+g(<8V3&mV(bD5_+AApo z5`#R^@nH1Dsf%q1ShZXFr^ggneNSvMp(^|wOCHmRh=pEY;7JLpXVDWAv}?bHyW$c5 zVcr7&fvg3BS$732K z_vjeI>HQvhr|sqp{O@6Q;ZPS^M{tlIk^QY_0WbO)fW1afMFrUie~aIul$+IBj7){_ zkooSgu{d?mB+DzT%@M?9tqw7UjH#`uU>|1c-dzvLa|Hd7h;JR#)Na!7K2B+3C9rm<=l(dK=QN^Q83>ZsTtEu%uw(h4DTfQ-@5_4 z2d?Yo!%v#u`D=uA?vVTgg>!a@W(M^(*6jAt*T1sNJ&v`Zh{hh<&t)7AXtb`6s9DP* zTKX*XJq=@1}U?(sP>Z7Mej6bqNx4zX6}IM0y77f{=P7DI?Qz_^`}h?a z>&KISo=i@UpH82hKEr=Vop*v7EXU7E9Z4g6gH{ndo!$rT0>o_r*8*s*N{V^~Yll{c zTHA=CMHmHJ8Wq#=!MXYc4Osj!>RwQHOQhAn9UMoOzDNV{X1BmLF&wt zl_#?N7m)jALI?XQr6)s01*WxdS>mLjZ00(tGjI2Xem(F~@J!KI6y|0P1s`au_!Deu zGSrKU1#@NgFWD?YqYoc*dH__*wHpWQItIoZI3(B1o)69R>IUzo8$I(9rt7zH-9^?E zyVFBL=qF0lPx9NGV zFxfg$t@c|`c25fN0DE?z2kr$Wn>MsH(cKxiSsVO?>l|ouDm+PAiPKB;wzYEnZz#~L)pTIH{@2G5Ig4J1b>8I)p zMMa#)bH5AQdKYnc3!o(s*$6^c$iKspBDwmhLs4Nq!66Lg3ed9Pk! zU0m0sX0V1MRJF$>pZTiv>?XsC9ozI6Qp8aU5cxp6=Y0#)ILuf885LWVk^{ZZH8yj6 zL#$NO(oE}$E8%kFVk+UI{QvN1f!q|v?x1Pag4cG^a119<69NZ&iHnVflpd*WdsoyitCx?VT|QN5 z3b!a7LoC)7mY|B1!f(uAuU}eob8MFGm*+1t7WB#|aA9)Fg4)5Da9@#b_OHAkZrdg& zsraAki*BS~1JdFds@cgqnEMMmliY-;y`PRumIE&R;R1;y#GFjf1D6A4Fk*{7cP`Vo z{U~L6R_!9DXFmUaxA6Q5hrl4ZoK}7p)QRLf_m?2cowoNX)$uIaBT}q4k}DCf^fQPD zhwRB$+SUzU2-~{RGK|7;4MIxB!R|(MTKAGY#9RRz2Qql&ONq{8_j)#-R1@DD9)z7V zAHQ~ZPaZhf1=E6aYPMKX#=vsKJ;Snt)VT^!YsRU=j*O?Uutu-=!z(WcD&OiS3-W)x!iI$g$lscQEp7MS)$x;_4 z0JtIAiJuU|bU~l!1^?dTCF@}^{H7L+*m>^>+lj)=R z>^p_LVUt78Mh|PEN$={TSC`ZypIwYNv}h=!SFj;P)^-*kvmx4nG~fivilxMEtMQBt z&QjNu%fguQ$!-D+)&M&)Y(q@kPU1Qas2s>q^E;d+pY}NNsldPy$lD;nHGP)r33zjY zI$~gw;3RR-KsyBXftp)e(%WjOtn4$&zkUx3(SG##{U7e{-i?0v=`E{zT+ZfsPmk*4 zbs+YNGicYBuqO2Oq-H8X^({7icB&QyR5Uex_?W$%rM4fxe){2VfBWZmZ@=7`nw$j~ z{5-u~m=GaVKOl(;__WErR><8j0yx6P8 zRhS7kd1zVN4w{Z+k25(7vxt~wz(z;%q{4X>`IINxcBSR}8G~!kIW1QgWb0*O?Zi3n zXz6J@tC4$B`x5_ecOII?^UJINTbTjk*q$(X1@&K0a)M)>oiQ$5r>bwoF07(}=cjP{ zpLBqlX47a79zp>s50MS&&CPcv)|Qq&#Zmg#$MSWG0GVm)(LwEV1?jmWi)KlVtf4X` zkDs}o3yv3Ky42_hK4;7L!pL%_E#;g=6M_dZqme{Qo>~h*82|Ir=TDzJpN^*|&z?-C zvCu;a$tK9ZK^ z)7Lke-2U}o7*fc=3@%%NX?*ppJ%cd+7wqhtzubMAe|rCyyCmb7r*MJ9=(z#AB7lFG zfyyghTrum|3rOV4_xJBV|D5tl zj@>534O>AK;T^|FJV`l~*IBAVq;orl!^hSB_ka6x_XD%Ist3ZwY{hJ-kPm#vh8BUJ zRbYA#H%Ku&fl$(OzH`@Lmwa>awm;>~8Y<7K9>X#^;+ECSoh^?o_o~_BN;6Wd^4=;e z!*eCFEFlMz)O419sg`p~T~Z>Z$D`klWLKCnA`TCQD(k1W_xE=no<9DcBi84hAZrs# z-XS$adGcdqVQztqEc=|WXTWSlnP~nY&ncC06!gIL`z-M5wq1t zdCH5ephP3sw(wu_Z{bDvZ{bjCsSZ2BQd`e3k{O;=FIK<%xlK|(0N0w3<;1Jbzkd4s zeP<#gcdO`$HybTO$*)VqWeIv4KG z0H#+*mkmP4oM45g7Q-XvNSeZR@!whlI|A%k2(i*DN)bNS5&i<@Sscqs6w=Ar>DTl+ zE*;fFbvs3I!ZqEicb3};XN>qlej{**fivk^4@atVb@^WdtwT1ahd#1FEc~uW`ec@A1-Qa<05_|=? z;!cN#8FDSJ1o|{RcI@IKtZcSbFEP3^0m7ralnd{YPX#cEXxL||z%wC?D%fAc>E~q z{B$PJh72>JnOxfU_TdM&N)yCXHjp`S=`j`s%bz`IyAQY5K>Imd4L>CTb%UN^{6kWQ zCQ_KvuV&wnbXi|*RF7}i-hElkqQL#9S8qRjH5D!`832F*L2jYN=GEEd?ZQus6(p^c z;A>P#DCtcH`bY&y5Ffg_uyS2^>0`7FJe?czv_>xH$W*iA?;Y+!&ztxJE$J4#KTHI209y zPS1P&^pc8cIJA&E#%-AL$nz^{<+S1^@8ZLecycI@^%^Rm)!F5dIxCO0`r2(Mw?%RJ zH-;r$D2yDJf+I#aX}103(Gj9^liaJlo0Zy-5OThyt>endiGTzvH5Z=^HE`%haTJ*5NbVdouXQhq8Dl>j#uUu$r|!372i8D~0`?@WrL8_d3#&mn-&vT0 z63n9^sO7434XVeSm3SuGQ&k@E*pLl)Rq|CPq|}QL=*+DPdwGovnC;%{0JSgT8j6X* z9(~{j2kHi{2e`E`Vk6#NOVnP{hk0U%@#GQ<6?vKTK^4LIGz#K|IFT&A!xQFwhQ-qr zCP*#?b#XYZS;AFIliEJJ^TiCuJ`!YFwP1z@L5My6X9)`9#W&AS=SvraVIQV9BE<6U z#8FJHP)!8)7Hut?movza?F}ugbYGePJ9a@eS{kT{;^7V1KCXr7al|Rh7H~6z>Z|kq zE>yQDF}4b8?DnIEckLy=$c(L}IyPN`5cdZ4kOtmYVS1a7*~~y^+wWYpV5U|@k>ML3 zMa6ZTK*Z-ncZHagIgH3Q6$Ij9rM%wTXs?5N1i0yxNHBynpy3PV!rXp;4JHe|BWJM1 zBa1&=p%H{IL6R{YTqaL8WnJL!iBLA|x5H=Wa0gof2A0tH0F}KwTe?9f4%3wC3|muI zu#ODTsWgH)AdNj&O0yqjg6Ol>{d&Q+AP zkz+f#n(TYphx!ZJe9hCz(a(xlY;rSCC(OqDv!!Bww0`lu()Z49*Ov=qYCArT+GU>D zXo5@bJ?yn$u|I0!8`ntZ5gEK-t7LfPHaMQ&XbY zN64sWJ8*TYIqIQ+F~XhFJb0u`Xa6)HpCZsL4_&kreh4}Vl(|INvE_l1%z~6}TC73L zXj+P7{LE!wAE7|1zST+87&fjowj&2Fj!s%M9Dg^n(NX!m4NlLM4aL?UJQ)b&5>lFk zYWEzp>6f|-(V}L`Q$}>Sbn5hJ^fRs*c5RKUs*K98GoC&W@Q_2S^EE6Z%x+>Pp7I-p zkzP*}wj2HZ?~n!`?iDFbAMO?DO&{(x{Y7s)`9-}>e^IX|zo^&KU(_qg6+Qfo&wtUg z#=mg#f7$Ghf7$epf7$$xf7t?zPr-NW_au<}4|i`rGyZ7*?(WC;^czA58||{8ZGK+T z$w>JuNyv^7clyp|ieM|Ll;{wL2IRy6Qo|u{mo7+bQmOj*Vs-IiNEw18+i>6@=lcS= zH{r#T0v=-It0nIkhFiZ&d1(7jcd-C?%y1If(`u+BiF(JT|- z$B-tV0(C=`^ReQ_P*l0oSz@nuS~y~>c*_1%le!5G7C3jOcUxR$UWQoJh`{34f~Z53 zzq~{hIL61BJ7Rmu7;mt?y9L;8pQ2DjDass*2X~oLMguM!9?9Spi_M{1AX+CjFn7Qi zROl3#hDKk8`QjBGe)joq_p=XwT-|qYWT=O3B|oZznuU6O%(MfU8Sn%V2Jxh>)lx8< z8J=k7Eyt9pjoY;FqrlW%huu27mt}_SYrk4}eT_MWyQu9AzS0iJHP&e3>A38-VAA7s zwd}1HrwcWn!mV({$mK`4(6qqn;M`O&Gz9@tXE75(l%+6oX1_I7JDXLd#0(iQJC&fG zewC8cM~_xg6{UIb1S^v3+`iK~X|)R_UaRe(2U1+^)@KADMc>=%HmR14D!5&8FrwC7 zawgIzn#?MHloz{kC@zqW3>ozx=Uh<@_i(n+Ig*q&a$x#9uP{SiWzn3&6m{hfo)PbH%)fR0bhQ@NT8!zI(A{2@3Ib zci4tskny?N?6VWbboZbW#etJiJj;&diT==Ip@GE#KpCNtTxIexXn2(mQrrsE@F0!vuryKr1kMV_<1sW) z_9XXK_xcIZ(hP9(;TTof6|89MD!~iQ=JEU+zLm7^9Wj_&|NQ0#E^!PMwle@?1}cCNQ@ld8H>*jkb3ztQF@9jtORlmB;Pei#31&WRqE5tC@eVNxLI=0n^l}e* z5`ad{8$SJ4ua?vbd&(ys>>IyCnHg!Ie0(Le!lS23!ntl_MS*LA8|USYai_wx)Lb#< zi*Uu)h6(g~S^VfF4-muZt!OIYiK`dSe$3wq8 z%|z5V@wn2O3Dx*5kCOC;UZF3Qvh`xMe42EvY}T(b9(eF143NHxm_t{)OY@184mq{! z0}V-iK;974Tq_m_C=I`|fw@BuN;DTDJcE$)>^c0|l;_2C>4Iy7^@Aakfz55Xh%QvO z*x|uAS}Q^0I?sB+2Yxg9%f}B$miyuE5h>!Soij&tf=KCaP-DR?8>iISz}-Nci`+iJ zMykQDRDrPLIsqo8r#>kjkn(86@HeIifC!)AsB?C~)H$$iR^MKX3@Xdm2`i(Lw$nDkK z{Ad3gF`mLu|MEA?fyA*VlGKN55ZbOT3lDDY0#kQ#011uRK$jd)M#YP^DP z$3$GRafRcEe}~vsE+$CPKt>qQPXl0j{C;B`nk48#dOuJOl+3_UBfoz$aMFeK`UWzv zb{JX|j>oon+@q+_sVs~Ym{v<4hm>C>$1Se9+rJjfPVzx&93VXhygGc)sO1+=heWJU z^P=3tb}O}f`3;q7r=M;Lz1~0SH-?Hrn_F31=-Sk@gw?i*O&Yqm`!f6Zr$4{_bmyFu zUq;|0I!!f+b?gweEqy%BII^du36e6iZ*_R@kmGN z{C0cW@#P>bs?1%YBFLHU%KXsM)Fg!k%fhdf-<845v*3{#zDGe7U=gB*4Y(r#2Ixo6 zE6t9pL&_^Mk5gcJzPh`vC-YG{<=ke{4Nhrc^)bG`n@|Q3>&u(jcd|#mfU&L$-;=P1 zOz{~kc?y#Wo`w&pB#!qN^I>w%$w9LUOlWy-g(}#6_zCQ%cuax>TK)eAk3CgEld+Z? z?iQE`5;+>Y%1_fQ!{&9qQOCW!nqX?t|7M;^jeq-htigB*WWm`5JcaYRijUdcQ`F&9 z0i(g;AFf$Ikk+2(flPQRUJqepf6fK>r6jgGkq(3FsMFT2W~AnfQJjdLkOmw-IUpF# zILa+{G+Z874^C02sa=VJpAUX|PGh4mJNfx$JtD6A?|ctQMROc#PneV*(YDdjea0q5 zl!w@$rZn^bToa||I zXlU5dgi%*Jf^m3!GsE>yD4(5JwwFaw6oc2R%2(DGj2d!J2@Dx9gU13ne z+M?D=x}w*Un4F<#_07d{b;%NwzPfXfl_7}j4f8;8rrH~Npj3%3fvJcV?Ii4PLG}@d zmWFSQCsv_p!ozCwB|TTv!j$^Rrr)&eLl9KDgA8)9+t$KVj`Q?{$S}RS(CJP@ZbQ2c zbt+F#kkSLrT4Nj==E|j8;EaKJhFS3D7H-cCnF+6DBRb+$+;CVNzFgKQZGE_q4fU^; z--u~E$%3u0sou}<}eLHER{JpNAWNE*-0omM(93>7aQHh3s>L$vO%F?)}sfV754)vkX7()x!SGTz^M z*g{H}U=N?fWJI&hmT3)rlX{~Z_&SkV*+ZuS5rhMah(L_0HH2?B(%LfH4` zoAlK@?=4pZ4*KnfySqPMeSBw$BwX#&hk|54_XxTT`|-uj7FVfO!h$C~5^(Qo4g8l) z54Lx&o7h_S9_nfHVWM5+EsvJwHfPm4dA7TmoJL-~<&s7>`m2d{`Qp1(OXZtG!)-p~ z6zO0|B?amh(ju$shf)tLB-I;2V0X10>R+gVSqx(kWFKWUh`YsyQN3sou(}y5 zN8e%t6P46Oo$P!qz}C&I<1wc?W=&HJQQ-CZ3UzJ|(6JuSH<6=s;$N|a=z98aYA`H3 zD3(=^aVLIw4T23KSt~jV-}WxNDPmi=VY(du3U6o%x%Y^NH6P{skCUs9_wT=a{FG9; z41phI+#dt?kqOF!8Q`Z`F_~4OrX@v|+l~W|9VkTLHN`aTV0_FCjkF3nV0c^i(GExt z>&D(-+F>2hbTO9OP#9N=UgqTV$G!jLeSZUd1b^hi@qnLy3brU8S zNQ|`3m5}%Jd*oXV^m-I^&aZ)wmlW13dwmeZ#gKUx=k5l+#>|X1XK9`Vb)JGqpWr77 zaFGZ#O+)OTH3xcB#m3}jsdWO+0-ca)Ib>9%SHXO>k>1gNYYp*Ml%KJ5J5Q#C)(Hs^ z1|VFf0W!tV?KZRZcShhN-wP8J>~=GAO)g1RQ0*4m8Xmsu^U07M3U&QthvLj*ZKN)U ztRv?)h?`N)^|UTIgI=4KB&E?bvW_sGMC8r8%H%mFW_68eH+72Gr3P+@3nJ*pcf+-C zL-1fI+VbqG-UI4UNeCZYT@$|pCAf(+^dO^Jk+FIZzHoZ{VX`z|>$BLUubIPSFAfE}&!1BPs(t~9) ze+}iF+u=zxpCM3<{}Y`geSOgx(5|R3p$Imx( zeMJ*<4Qj|e0UMjAOhg_g7^eN&IA453k2M4wV;9*Ej)%)teL{OZ^iIQW2;rOkz5dm! zErkH7k&E+TA)!*U3Is~8flZU_3Zn`QdinzT_1wi!&?9#oBci2gRN}8*&4AI=`3i(p zGqgH=VEsrDL+_yP%M9+IP=h;8vMa_f5Nddf2{lF6MjgubRVnJ;RmD}X2IUk;Vwy{* znsLrpv0+P(QCgaqB4s0J^X!#d#ww?0mT7a?M0^!xqROt{tfh5niFyyL;R%hKh_oYb zt*(Dlewp=p^zP&T8bxxl(U(8{`P1DWkYbFF_~y4{-~Tl(vM^tJa{>L`175`LZ(n~) zB}N98+x|5@7;mxH{p;v||Me%hq#V(eL@E90*hD-A^|dHBrz z{_1=i>?${419vE@x7e)KgFzEu(9C$X1y2FSGJ+;JX-71*+AbzO2ERlx#Z$B4%tC%} zXP|t;$7VomA<@$E6-(<@TUjV#8;wYoYf)z!J`nI zeXtk=-qA_b5(cxYt?#k0gegW~)vKyPTqqz7NZ7H(0wEDCSZ&R#lt-K=@<__AUw#~9 zmfCLh(XfKi)Kn}&*+5-j>Tbt)XvcYw|6ECDKFZrJx)&jvH_TbE3o{r63SBfUuIJx= zG+&(GUNDNN$m~G!aBT)N$!r5cem_Q-b(ZdwS64VoLvTbCq;m_dgBsj%1(xQ*gIk@q z@Rm?1T&k!e+@n+~PKK79x0f@v5T}cHW-t=a!S%MGKBz*BHW(Y#D5ZseW_Z4W9|~(t z+UlDsZG{o=v{b1_R9Htm_mDlv4+t)?G!9+5W8bKw!#x&CVa+1cW|T-!&D%fr**CFh z@#@L5|BB0gxy$CqtS{rtJR}whjzsNg)WYflJ9QZ3;|omP!)^m-vhVHTJ_`+?KG}38 z;Hfm>(Gu#|z9})wZe=QM^&z>Pw zbof8J3gne~w&Ap#HuHu)(9j+BgNoIuKToL)5+^z5w%BpY zIe{a;-LF)l@Kw`9k*J!^gd;d~IFn%Z;E%+dN4%n24Nr`kbwHZOG`KKB&5-8=)?l1! z9E>;x9^bs%+!`;7SK$8JOQa%REqC@2ZOT(DI2kR@agm_$5URgB=snm)!!xP(VI79z zpW#buM;(W$*bPxO$je5sAo&dg3?bcS6!`{AQ^?HShwum_4UBPDwmQKyU~MObZ>?U5 z*!7ul-vj3O5yAb@(hD(aV3~p!n3%H|BmU3L1m-JfrVWgpS%61F7xjISOsxc=x{#CY z0HPDYMY{hOwP2RnVTBZRr>9V@7JP>u80EoTW*Ac%;}ddj17h=$qzR&eoReP9BdfdI zmL$Hnz=DOi0r`n=TAqfJkvH{4NxroVhxnB66Ogi@UR8hXU6$KX*28nSqr$JFrTK$h zG#uiF*Ylb}mDx6Jg7>$VNY4U?DR-@SLyXOT*56E#m*P9ae$#yq2IB-sFD4marP$@C zyZ_q*TaESE}gQ7yD9Wq_Yf%dTBzqMsiyqD<~Z}`4La}(F5w1pmkm` z2G!w>=5snY%E-C0(YlsaI~gdUgrYs0O)6_uE~%$|HI3C{d4D0NWo}@)&bC*Wo423; zq!naFsU>`C{6yB;)SBytyf997akPi_>Z9)@<%UI*R?TPb-(?LS-`4Qc_1;gb4GKOi z7YiAkT%Sn)PPGNu+EG)^TR-~U#)5!8&&m;n&bnAF6?X+{tl$uoqxSV`4&Hk|@{~<( zENr~OjU94cWYo0uVS0QHMIH67s9)LLr}RyA(~13VOefqSCH;VlOB51_Mp+cJ0$j}% zy{8Hu=5=AFL{o!GsgN(*9U_j9QMNnk@{AltQ$6(6MzR}4Y5As(yJiz1eW;TbLTn>c z6bL}-a_bF9oiz;44mju!Utqq-Bwv;|&ov!5ShnXhQ%zPjnupS>KeUE!XPDwG(SX!Qav!fp#kA4{akN+{Ev%PL`R!i?teRzufKjM@N5t`@^d-KnX*C$mgYAcvyDfAlsOSnKgkPLboi0fq-B^Q@2a>zF`l)KXHnK`|T$gF6 zu*^V4m&}JSEP>I|2g*t4#pc;&E=Qut{6%skGEzU(MY9fJGL(InQ1o3M>0bqb`7eZk zc@JGE3AGM@$B&h6>i{%TI2`~_AG|p-HXXS6^ue1WN7jLxp8}EW6gh#F5{|@hQxR?x z=WQ=sK@wTb#>+;p-T`S&&yYX~79vOuP?c;(v(5MG)MmOJI#Ep`@=lU)_o6L2RMJG- z(6f0WIS6~R4s-wAhvmG}lRFl{*A6<5s zXaC^2n%;s=+gdZB1zD;Ybnl=>@xG9ZeJiC7dXDbE`dvv(&q*Cyh&pT5%m@+6 zooH!UIjD_JTBo^TLJ9vC4~%!6tIluXr@X*!p{~bkj3U>w1>d*5S?*pl$0d*ePN47@ zhYnyP{{0}-aL`f_C8pFgyyn3GJ>UcW4T9>ktDu2ZV@-HS7fH;h7c~jC5wQa$IO~II zWFCPqjf+!Z_%C;wvkSp00Gy3!(aXNa80dz5w3*@whUtHj6uU5Lzxz1)UwAyi?mO1n ze=Qz}xUm#8_>FcmG@9~d=i^`_D>hjcH8`8gZSfb}bbAfYg87kIYw?i(J#u?3(9}+; zj;G240(f<25r%kJu5ybmaLnflziO9tkk?+;Luon0{XzHx-);$Tkl94C;Kx7x35Du| z9{uVu`?$}D5e9I;Lv|ukg$x2QCZ19cw|R4o7}Qbsf<{;bAmjsfvOx~tc9}bxl>z;*k0cTQedL8jA`{-HEqtYI0LGw%N)t73PcYsV%zpMajMe zrU%QkbegO%J?kizuMbb`#%wm;#v=5**#*>#=uUG6IS76Y-)|+OZ5A)>KF9gt9_917 z&2S3N7(}bEtYj0)FuS3v`eRI~`(Dwc!}*M(_IS`YOb4`16yK`uahMJMd`h*{Y;V`= zo6T+{Rmv8lJ=I?uDJhdt|sw zvjnGpvPToKXv|S-+6k1vqEjvCrd2)R6d~$k>>aydzZ^lnlvkVoxXs4hvB65!~ z!JMZdjLk9tucJ04(8PK2XmPhasu_2#P?|@{pfx@4{j?*=bdHU^O2-<`*X-%%>4G}YCWv5ii~t(>({qWHuv%o=YqCVpn|WMRZ6lIVQSFwd9!4g~1I)0j@cq%`*8H*0 zHi)mfn&UsSuGF?ZntLz!v2YGA4o~n~!ogk2gk`QQ_pwYzSut*CWf|s3TFte$M?kwE zBhk#Uj_fO;kt|J(m!wbu|F_$V2>ADNj*PxB`9qxw3dm(?@dnAjwK?cd#+IILtmN%= zidBJScpw;jgdxSy#nvpIFxDw7OI2;D8FK>_H_pAk^NhkGQv--1dfIgc1q6p>Qb>5CxwL8-=bZ;L#Otc-Gm5&} zMVEYkXkJmwnX<2aO$e3MqhSyg7QMsPhvE7XE>V&oZ5RR5q>9b(>XB)8;3%)bNxfJ1 zVD?s5dwW{FXeBh^28ZaAU8nxL5(gjmUzRw^O%F*NHd$JeNtgL)VVcNv-WBV1QBpfE zGu%hFlV~i~$Aez$uOSz#SM+7}|8NIAQM%qLOx9V0w1fMv{x+pxr8?=guzW&!Q?abC z!X1Ry9KA42wcw1!CDEAQPKo8u@6P;*+Lh~prfYXp;^HJrD3xY#G)ppQk zXXYtvZ!fJAnWvrzN2>>fl5qb&6Qi8dm&ny7g5K^sn}(iIzSDO(j}bIDKNj9Af;HEleM)OJ-Vg)tWc7&Isk*GX~OU>?|_K_+>o-)Khwj?Q0r5G!Cgp zq;t>Fy$Z#j=PPUih?!77Js9*iCKDO8 zF3AAUQO!9BGDu&IHE^qM7x9Gq1y*O+RSJXRc!4$FBvFo^p&z~g{jj*Uo1RdZx2sze z$^4F*V_Y8{@%mOymXYhpEwd2bYNFjlM6h2GYqZ;3FzKKX?Vu(`W&E0Mk-tQ9hx!CU zIwKVOIGS1(;vgt5_((cB6><{HXcw%HL}Engn@8FaGJbo2m)1XDFf5}~4$n{Xggcgs zBem71>@7{I3(=Z7v-ZN{U)TU48#C82Sm}x$W2aW)fT3I%;DB?7#FZ*kxw50ja^Tdi zt`=y=hB(qOeHEtJA;%03_&nv*KHWW(Qv0-K)ZSw^(_&La@Fb6QK|yZFs+Mh=##ORP zXjtMdJ-c0ZE3`0mC&HGLMf8bBrVD+#zhDTi8;LP=+G1Liu5PV`se7vqM7;&-41JD^ zNHo|(JAm-QvJoT;80`ZO%*r?JDy)Iu}lr?!uGc zI!ErTRkVa{eE#AuclTemAHRP3;STD=$w=22w&1aTxF*9+bvl1y-ZG__oamS@rdtR+ zK-oP=JVIGqEzS+fl>`+80-LW?_Djw zr|HaUv&=ST>@nRTR3BHr870->fyeyYzZq8}g(Gj`@Sq=}QshXW^nsr)u7TNnhL) zt#z>N72qSaDvef~F^V$klRT-eztI`G-FydGaF^58=w0PNd)ip5yD+^|*l%3?q&t}{ zOx;ObAyr|W&XBLo=^;M{Mjg11O~DzwRD!xu*6kK&*g`-XfhT!;gS>f(1-;xA(=Kd8 zOB9aq4Gt2O!!tRpHr0d59;QWQ_ELONNQee8Dy$AfshL_I1L%y?-=-;(*;DO-I0A&KQz#@$v zHo+*dXeNw>(+6!nT3olOHeSDuf|Ob#=a)GYKqSP{VmfY1Y#)zUkL_cMN5FP3aUX0c z`_Xvv)L!BkzS?(mv@}vXp{J7nZ`YM!hdKb28#phS8}#^lrCH`qH!cP%DNiy4 zQfce)uv2Aa8l{9F`HIDj!vE9~Wr~ypt(a2ZTgV;Wyx1U7C5M4$`^N?`EKq%?d70+j z@r2r;lbq|KzdN|#OKc^OP}Ot#2JRKbdOZ0mKPp{bBfNRB*}+wU(S5P|-6cs1d*0%xW2B(~ z>;AC4+Z;^B(?DK7-+)Q6nIRvP=$$U|n#b1l(tb4Cec}(Hk+^>d^tq$%Dd0Vd*?GNy z#{x=S>43uQs;Ldj;eej(dQmV5pl^qYnT%}G<2o*jvFd<;nfE5;!6gx!gyA|{TIu~* zBrR%e%dSDfSzfrnGKoGP^sutk}GWjY2Xt zE#o6%go!>DkcJhheQEpWJfeyv-K3D!?i?QSTbjBkm^cnN3sg`yJ+^2E9CwL)RnJ&t zpx|h_;5tWRBj3aC2$;Il4C99~k9dZ}t}jud1{8B5ve~<8pJAxk9D5v&EA>%n312v*V8Wdmb(aa zsY!CWf^-y_=LzYj$w~#?sOk(gwyDaD4{{fACK|4TegGd31O2Rz61b>RdGOJI{_!!m4;s4E9S!W7Iv6{oVvWl+@$O3)8rS zS($4CqA*;6M7XNBi&vJ5QNGe9;|g?r)0^}brb*X6L{3r00!=KJYvi7uSW%GL;|4vt z=9ezi@e+G>inD%LCDaF&JwD-1KW;WtY<~yo1%+idA!e0RH$?A1vOikpX2# z71HC8sSnVEPHBfM<})DmVm@-A5q<$hJzEtzCQu6IpO0u6XvJqpqyUzyIbE@ePais7 z3AY2&bq;k;;N*bx_tV?^`@0YDr8yE?Va*gb(e&~F3d4Upa)+JsBidQqYGg4)s45B= zeGeQdj==aFp>}a}Yd2a8(`4}7_zyp(D0yozf0mPclO0LE_FS z@YJGAO=1B4<)zqyXb6j#Cw6&z4XZPpy2=kcP>x^Zyqx46@cD3iyGyh69N-AuB}jrf z_#L+y?jMhE?6eji2rq8)p(hRQ#X;5@eRwfHgK7sL1GE_(*Q_9|IEx11eV5qK_K~U7 z*`e_7tJ^mby;IwoGF0BWyMOob)874^XCLo>eE$c|mzKc2mt3P2Ex!{x<_XSIcz;0k zy7*@LY&v(dt)G9cM2nVgtE}4mVs}1HtQ*_=v5guoC{O|1P=(MbTVn@e1`A;nM$vO^ zOY?_K+5_9>D^(d<{MJS)FukO3AhxJxqpORo??bvtxzn6*4$BSO*IPoV@p7570qN;^ z=O)o0`SlbZNq0p*{@GoPhWqHL&TxZNED&*yOG%H2V(ri|@sV`TNBSbH^{9OSe-RDU%9{$E&m20GL$orQ4Tm( z4tJ0e7XG8KsNs~Uq*==p35qnIp-_cUi((HVT?R0z!0M=-+++*C9`0i9pdejf^)ZoM z!gFDiras@0%8U%7+z^z47ZapHM|(Db!|w9^{rk^9DQJvg!|i3Mn75nO(OZQo`P^C@ zvM{AtWst#j=>9cB^A#XEelo+)tuaqK773Y1M(PrR;~gRy!+y0 z`|bT7C-m<)GAeG(boSfjv+M8BYY%w}a^~YluiyUh?)J~?_xC^BHp)Apt8FhZ&9JC_ zv9gZZrY0ojXu@v{25rpX3qvczW=Cdoq_{N$r=1YT|9pJAsTByc7Z=29am^Hn9Bm*GjSRO4$+0fAgOmm2Y)}SoaxHB^X=yDq<0go^2EYttQzX^1QSXW#TK7CFfW3_Q zifX)pBRA)v199e^)pkH_oqP9|o@HE2b=&uFQL?f$Z*}9bh`lU1lQsjQig@*CQns;K zABw3Ut5gG|8L8wRl3f0tsx$Qb*2uK3AkH((aE+F3uyytwcs{?7AA zT+hK{;GfE3*xJ9|tS870f`9Z)6s17ynB_5&%z+!@Jcld%v295*q~QvGtV!Pj?RIZm zH$Mt+d=bW^p09lWB^!in+UWnOgCtC?5u&Jsoi}o%({0XZ&1_l`ep`0 zGE^_g)u0>2le+0KId6{n9OE)LU!F^#h!k52d9((}qsC*T2+5u74o;US9Y{YjvLLD$ z)CV=tokZd!2aRM8dCdRX)&QNo`q-~|PT`acL0b!YUze54qXn*gdw^u}EN)=vPjZvF z=Ctd&AdUWJJ6nO3hjXpi4%IKpg1+R>i5Z*^aLJ&@109@O*#RMt7kYQQaZ)W~#E@7r z%i7^0&?thZIZUyePWF9A5f=;v)k-5U29s%d9VaI&6z3WYq&$ZN=K31wVd^f@GMn>U zoPlK#<{joTO)S@;3r)O9KAR{a;kP5>|3mhbH;H{kW(iRl(E-H? z9l#h1BFaEh1-{%cy85*BPNQ;T8xT#Y&kv6(L=87BeNWA%341f*e;6rZBx?X-CW5fw z)1wW)v0OE8y(brYu#4WC&IjfvdINiXC(V{QvhlF+5Dtr=qL&?aGc##Z3*_>1!FI=Fx+d(|KmttogCfjO6(-)(5n-rxMBX~tN+7~tf+f$Ds|LXO zBIiAG?D3$EvI#vlWsm}Wo$N)N@A2{E@gsg&EhYKo?ftvo|Lt(8$qH|DOx@#BB8Y38 z{J12l(w{>GM!BFzMfA3Ktcg=?R5WvH4wXHYd;(Ux^yfwl77Z|nh@#o;C9Q7Oc#CfO z@#QL<9=M>)W_1jgi3t8KEj?5iXu{H<7gT`C!-6wx@=>^1_DSC4iB^emYk-b`wofD3 z5#$40xWL(mWlarG8tW)1*v(fsfFF&(jK&Krd7 zX=E186pSaFmU@W*~lvi&NlO3 zz#T<5Jzd-pxNv@KEp=ph6llOZ+aRYoL>(5#2HrsF4p-O1`m;fJ!wMfTF; z72ufvnHctiH#oe}gRWa{7mQfG|>Duh&ksNF~d z9du)Re&r*jg{ZTRT8Pi$8BrAT4g9bH7$NG3CM#%uAO^0sXXlrT#;_zJXfzuR*iB0_ zwBNs!RqZg+4Z;($@MuImk9zFlf*Wy+CCSN5i(t~|(^KHN!WTl@Q>7n%s<~6>6Wmq8 zKPX!MK|CalV3PW}y-m_(WP1zZit2}tf8)fJl@PtJ$Nxa%0*CumF#)(pOLa*B*+SCp zhWu0${<{RnoCHY@mzKKXT5Ox2vcto9Zx8galiWgjwo2_`{`Zxj|xBJ&r!&#^Oi zL57Wyl(Fw&-6DoL(7~Q<3I@5=Sq3VN&lKCkehUSr1+2JhDrgrROg{5nmD4-$2%}31 z)X;-nZB)+S4l0QX%-?V2o~i%ao@^JFZ@m6C!*h z?jy6VpnO$srL6z;@#vqxlHpGzseJ4={AWB=cRU_}{j(cfW6WS==xwK_CG^nbX_hIU z3?@>gwCR~88W-E5{|pOJ2dcRY{Vx(J729c|bySE8q|Wuo4lTr#x$gB$nUfD&2QHmlzQyIEY6gt)M`hs9(ZNj zbGamT+4El-+4o?~V)twP;uR8;zr_pG!rX}I@Nzn{rTmBB1B@hMBk<9wX=H0V#&>LI zgGSK;)BJMtL;{;0)1ktS8+d+lrlX;~#oKV$;#^`zpfa*5>yLzz1-Jj2p;( zxA=csjLKw5c)a6Wy4}hUkv1u3p~Cd-MgVk59i|TrShtz2)@llZBPd~qzIJdBvp^GD zKdn>bAaf!=a7uHk7I6p!Jg22n@)4jg0zIIrcG?$)iz)ziyZMOWPCuQX^ofOLLT*>a z%B!>0HK*wKqzMEHpWWcD>>M;czjfbbWeQjyULohhtJQWzetxWtsj@#euTb|#TdFpN zH=<`oVJD3@kl6xkYkNp&1gIDjWU5ngf%HnI9J3xb)`kv9pRd=I6yb#+#pF@9gk=p}S7MNK;?zkT<&G#^U527#j5}gsYV%*3%+GgD&=^G%FoB1{uI7 zHhcq>Z{XD~Z(jTMn=pz~Gh&k60UuaOl z?K+#TL-n%@lO_fTa|uiYr_0P44>o7^bSp9A=wzPrkzTlKqN+Y>2fS%XM$U!ZMl@J~km>y@jk(C3U zhUHfarshi*H@DZxCJN_CY^lH~XN=RCVqiU3yyC(_493PQMoZ(=sVpNIN9ATT;#;kW z>+U6kl4^n3WQx8*7c$+`79D;!5`Pd#4tlVh->xqg*z?E7SFO#5xwcG10J0#zIMVLo znWo_|?_NY&%rDN|wbvT@1mH1be)x+-T-p=;^6ly&f+O3!-qL--8zC+-m%Ey0<(3n>l`aI!s^M&~rfVxXcC-(;a&b7)>v*W=iWH*(i1$cqrodM0eo z8!{)c#!fa&Dh@J~{$dgbZ|F@DJ~89eB5T4UnM%s@qU&^WAVr7j7XsDx!`r{yoxOYa zY4-NRhu^>b;g41mK(Kt-R>7h&lFrJ68{o*8s;aaR+DR9dpZoD>j#*IPJaA7P?;L4p7 zH@jfl2cF0^MwXAI0BL9l`}fFw*X%_=QJ-TF zZiB%C$@wH5mC(+E0Aq)c92AAa6-uV&hK8cS+VCfS*CdDtt;~GM)IB~*Q+JZ9Sga8& z0NbrB;n^X#;zgnpv$H+HK9o9 z^LmOmofvJ0x?E;=O3F0$CP!b$feCcn`iA~=sbdHSX@MruSkXbQB|!Ck5pXqxOa-Ry zHj^-sa{x5X_{L})4iebjvE4#rh5hfvB(!1US`)xnJU$2fJ$;ud=A zVFsrmKdV+6}6i4z`i|cR*y!K^quMbDrXbEF^`jV#yxt&e7 z4bAR=^wLTbnk3qNlF{bSc6g>4lkVi@T_^hY_z|7{eQRsemE`!|N_%cxks((NGfYW9 z|BBm7^SO^gLe6Fvtw&%~CTJC?hotdB?8harnDnRBN_j9~&xxS})Pu^|2o`uTZI++| zviI^Z*e;06=eF(A1)DARBh9qS>_wpBh0Crs!UWSByxlkhnlI%*vcq(0^B5iI;VT%# ze`sp!QJ?|Xs&QjO@z>K$M_ve&q|h38@R`l^BV)wyFG~i}A=X(jOcL4~@=unU477t< z^etkuJ3}gd9|5*`r#PX^fshw%E7c~S;NNL-P?+o8x^12a(i3#+dz{~(687SO;vV4S zn5?#O!_kMk8PWrVqott;&)f^6RcmC3zDslv8wv`p@rjaXp1=Qc{q;}3zxyQgO4myz zo=1ok!BKEMd$GB>MmieWOhyCOltcvlg}5Lph7nlID9Gc<$)l2$D8?r%m$Bqz1k6+J z{ExSPKKtQ^yU(9(dX4cORP6*vU!|SnR!U$7u3>wU2iDBNnk5~HV^C>o?hJ$M^_#Ev z>yLlE`!xUf*Lw*B0)h?cgLT@v?S5+M*4=pT{^wvNnJH-kq(<67O?wK8C6A<|6oD|6id(Y1p%oO4F+uqDYAf^C)*FJ_=5hoM z4mp~J0nGFWx(f3dG|v3dL4qD!6AEQSRDw2MA{{#&NIn797tH~nCQx{FHTuiP57-qS z?nXa+y#M^As1$aneVB^BvsFIZ*rc1;^r|tiR5nQ<4Of}1-CxdG2)`sSo$*;Z>~&R& zy~eP(L8ZPjt(An}$e8aIFjz)XkGNQMUd=svj8i<9#$3@8EqxnLTUS`)#63<{Q|7{; zhXeko8kYIOS!jp(@L?}QL8zdUkp8V)RPmc>t=s|BGzeRQt8!{lni^W&$yX4ksyavh zvWQ3jB#s23mYU(eu%+N9brhUi3crBaUI^~tN-tQ4>m z=(0$i=`FB2ujg=5RaU0sP9Z`A=|kj%NE48$IbPpv=B~_~GH!?9nx6~FM14xk8Hf81 zvnH}rJaqh`R|n_i+I{Byf})`Yz6bfe==Jsiom9JqH{AC zcK2*?hFxn$D?W^ls9BH73?6|ec8x>YaDJ({Yb1AgW%|4;c#i=OOjB7SCe_kHQOBa% z53d$8Bo$4?AK*(I&Q*h*e5Nm3aq-FY5hBn>zqUdM+8OlVZE>w^8iMp3O>YT#qxhzP zxDo-^!dpqw-C|s>G^@Yn*0YAl6EiVWEljVk2nceJtI#n7EaL94ci;sIO`D5NrLBp~ zXWhxH8ztO@*0%;D-sRghqzcpxhEXNFH7AtofYe;BB%Nb|*nle5Wn*8#_-s{qT_0MR!u zXKOQ}ps~9u1LYu@Ow9G-&IGmNzor+tkIqg)tRYj1;RSFb1A$5$UN3H>g_SWya7|K7 z+tiRHc*?y=J0TM*i!W%d*!z_HbF(`(b*rZWJ+}EXeZ_F@+yc{Ba=4a7b;Yi8K4YMR zZsZAySU|8UZqSq>-EG$`Q2o7d4Fv^XaGz}96>Hig(4+nJ;x+4^h9A)j3b`3K!mG#q z38V@%xUpi%lH>?2`PA7pBcG-*bFcgk#g*mEY>Sl{ zCTV|R9%b0Co%93^fF(UwR*|ejpX66akab3SeA|NZy=1ohQ$ynse|JH-Klaflss<9<(`h*B2?6*(oi+pQ*JL$89+~=FkqXF!mj8m%M1wb zkhm3wIE4JSRjLzf;WOXV*;1-S_;XoVClicuJVR^Kn)Kp=UJTQV5pE>j`fvJYj{g34 z9K`VyIsD+!6C@28x;{N{{p7&)Qv|}m#+n3_bzkR7zHhT7su#wqt`;tEdf05_eGY&aI+P^t$FyPv`VAD*e6GEgMSRj|tD+Bq1O z1*So%yQec7U>nWy->cs`NFvoBTo}6z!k3J^(#BZ}{!Ouovydqvu zCZLI|d~2kVd#qjU=?L@|&oP@VMm?IxrA|}Qhu3K_YlAx`(WAvy&Q#LbaL$=&V`-&e_ z3hRPvxo9=p-CQWB33_DC1}@Q3{&#O7M-`z?qm03ZGj5A?Le>J)2y~oMbIo$m`k!vD zaUTziB1`kw@AuSGh|T6X!^*dI_NE2ufprs+V2gP|k&ueg{2b?w@P+MBGR09s#R~s0 z`x)f*{fE1^pTAI{wSRZ_CELfZ)km73OIDCsDNbyG|iZCD_9#)f|wpB zylF2xT;FF0wF1gPYo$t*2w^M6EWxT~guXCiF$mSpESPBh^rEpA3s}NszQto8_G(ko zf63eGqos8(0GrK%?H+?ruR0!%_oaH6%S;K-EGxunEbG!_ZE#cGt}hOvGtw}kRpI6t z+gN+p6PhJxe4wQ5qiF$YAO$OEX3FdZku01J4|UQLf`pFu@FQMY8hR@Ky{(}}ANoyz z%x0g14oHuzoalB3X&F|Dh7+w9^>DKM-GOlS8( zS=~T1R$h_k6_mG~ayb**gA%)%aygU4;YQ(faSG*2NxHO4j34qbdZR%@%b?yAIt?^* zkcLS#gvcRmtj0w(&9;aW9%PB}4GY%jTqtzbejwVFATN#RLPrAvRiBX)fZ!p9(Um;O zgG?V|hYI2o`a2m;^3r=a4{c#0UDnIRW+Du}v7fEjtrM9>yG(Kis2eop#dU45X~b$fN2o-= z2pas_TehuXOPc)D6R1jW9d%F4Z&IiYsg5*I``if?I#kU1t*JT@&npM&24Rgk$~7up zZNrFqD}q6KPzj0i02bmeeZ|RumEh_yKsB&Bqf${6Yo>SBTsx!=(L9_c5uk?^MHo(1 z)zgc2u?|xa4{?2%vz@(^OdcW99j9+0InrivDxw2pK7FL>USQ4q!&6fkCSyIkEriu= z=1@~6Ha{^y_2W%P=@P9s^r&>qxP=JAc73H{GPo+Vp@4<%3_e5jCgXZorp~d3MBSn> zD@Z++(bYmy;n5PAAfKF63`RQO%pTyb>>*_6mejH)hJZS4P^uOdJe)=zHs3(>a{J_( z7o|IeeYkG3wQ_^bpnIfqOIFX%%&_vocM}p>-YBjRM1@JfoD1}fU|=P~R*&5WB7f2x z#G);9)i;nvrfY7e>3&QLQ+II(%Ao&xgL0E7IMcf#)G$G+luSuc_~qI!ETfWc^=-8U zyNEz|XX>M+*K)yb&agdU3P=VG9w^%{AOCFGp=TdH{_saS#fg(uB3H{oY!21{NM?=a zJlj7HvZ@lGh7{C#oadBizK6O{%^Ke?x1H+ILw_;7-`sgxz{F13Lh`+!ducB=6Af{T zFNMpZ@$@D5t?P#9UWUKG5s_VtbeZ0zdpHS=17!Gs=m$7zpU>tB+r)w5&BOso6V0+M zQ0_H(4{hAkz_lmb6H`Q`&wbMAG4A_skDp0Ga+w?YD04&bWzm6R;&`a43`H$Oh&df7 zfO2Du`jJq#!25+YKTGwi5iZ|{q1#a9}c8ezAHy#5aKSl4&Eu-bfiy-mY%7ljf^R_ zu+b8ndxO3u)T|k%gk_*}QN7LV8MRs_ZpuzMqW0rQ2xNfrTN>;LZlX#RK0ME2BTIE) zlnV*uA>#ROrjS?k(p2JE&mj$Hlp#53!Ghj$SMc5DDT0|9jh{P<@9`$ZM_&ll*dH~Zz3 z>^1}S4iJdA!w7{b8yb$ZIW?Q4$_+%=Lz@dink%(<+KfxcpKwi}=iVyR}<=OX(IkNce;2Xk%IDQ3oAtbI?EM7f*J}SMT7(d%X=@gwF zy3M|P>~8NlPqNTxP5;#OIZFft^K6Vv7pfT${ui|pwt-PadAlk`mCjq^{k{Hke9xE4 zCZadQ%`K8~)67MLzeZi2S2|+=8aJ@W2e6vYK=FXGub`N+WW#g_wBh>XwtX~aiIued z?JRv_`l0cRiIRzpBDYcNccM{FLUvaHEcmX#Hyh`6KcZ>dI z^MNiJ9PH>K`DtM`zd%{|-AftcmJbyRfakJU;p>|{ zT|OH(GE6*@9P43VU36<0IHRedNXgREp*XGPnqi`QV6kmkk&R(OUZdjLV*&8aIiu!h z69fauE`gBra@OcY`J(lv>wgM+a>Crg8iom_HXwNkq7cWg6u30 z05ZfVwEX%8j>ik4akyj*Ur#8l={bPWWROPxlrUNx6Yroc(sf$iEIJbNNy6!> zk3L%txi=K(<>dfak7p{)X{6Ge>J{xJ#{trf9!V<>WDP~*RYmG=W+%@gF6irzKi+-X z&;Io8=!ZYOlbVwM|NFn&G%^XZQ>GHE1Cb54zuGL8NU;Gj@Gq&y{Qc**zyEO8=~A(o z+*t9S%8C$Y(q(|nrcy{45N5u!DYoBOLM+7i8BUnt(v$L3F0ltk*A5}_E!Jj8p$p9GaCW)f8LL`aT37DHEi#0y6ba1#-JVKy7xy;( zrAsB8_GLY=-e`v(2V$nx8|K))b(Mz9uYN^Sh5A{?&?JEwa+COkf}`<^au6a23t)A? z!RW*Nce#AJC~6Z9Lc(@FGZJkwK|BM+Sx3-!>ztodUuI!}Z#2^Ob+a(=s%B5qT^uQ% zG)vcomE}O1e$rYzgcOk+VOiyfLKlPyf2!URd1!J&ugC7D#?7QwFxyC6z}e!w9q}LS zGW+4ifHgZ<%mA~-x>4Xz7i`ESLks>vH+6}<#Pxu)N~r|kCur+`VN|bj7nBlt(~$p# zt6N>pik7~=qT09EzOj4#x9vo8G>$mrXz6Yqe4F`h4D`D!rZzviTbP!Pw9hp&;^9I| zgFRuda#xj+4peX0GVQJq!2~%HWNd-zOOjf+#9=K8ir`y7N>Nm5riZ>B!zn3lUZ4=d2Lzky8dBbPyNbQXN$frL z=)R_+n@i?a-VG@d!czD|nigYqBjb@(@fk2?wjDIelAB=#w&K+a3CKCkN4)HXGd$aU zRL;PwF{@lL^7~8W`?Gtxu3y70NFgn{{fisfoR$|JU=n3^s9h2d4L74wBD{N1*b?0H z#2B~sG+(GB)M?V*Qk76%IF8v-fW!(c*=wfV+QH`nfyqfdJcb8s zVAFD;1a90dSQrVQ6Hi3{-ZdZu_b zE)OyqV2(WcWwG9_nDuqfb5kbtO&Ai)_3^YhvGT6Z7K^Ha5WCgYJ?Ns5z;MM8qVOQc zgmpu4POPiD)mhNQGFpW&FCz|rP^PUwp$uuIGE&i|q<0$$g+KXr4XfYo4K=`p)Pcrj zN(zS;6hByC-RLa0Trs6^x(2tm+XXQN&*&FKCbB3(1?cr=hsSg(A`d($0?sxdf14)M z-Kcv{`*jN5mkK^$0x*JlvTuGnLoH_SC_Gd4$5YV-n{_WyX}MkBkZIx{AOW&?pL!?a>MRt@$$fZ!N3{yP26#A0l*OS}XGg z=ALZQz>n&IM~~nh+;Hi^Ocf$t@Rrk%3#GqWBeScGns}-cH8j&8vL|J5HSMA^4{m^( z@Hm!)zrJ~mvje+$wu2F_Oa!#OBvCcHu0`ga;LDhns{)2WxNIC>5`#>0aD_`SdqzR-lD36^9mKxWgmrm#@I# zEYB9RP0-)*a}1I)-4c^MnL(^OyMO!P;~$ntZbeDZDsnd+>{{+tX3PAM3s!cV1_G)t zb?Kqz52@>HAj~G>t7^a;gRRKM8M4*j6<3pE+gXzFl4G1Tg~*M^1)K%-t`ZG1rcj%n z$u1^Vxb6UX$R*Zx`pB7LmHU{8z-XwZJZMlfdP^DO#x2?Jrdi>Zw+e2_xpj%Dm{s>y zNf^mM7pd`^OPVTSlhP2aX47SJtam_qIge-}A9g)UP}mDejQ z%H_@kbTN;6HJ54YNZWK-HSi=}!{0e}!i+Z0j~ zlBv3gbf)2Y;Ym<{AUNRRA?h^4i6tF^Q8Bp4P0n#@Dg&hP59qBMXN&>3f48SsJ)6C} zT_L>n|6%VGY{Lr>Dk2wAx$pOW?^=89eRg#s@DI=b z{QW%1TWha%_OOO;ee<#t+GplLP%R?6j^$^GX@>TfL9pU5E~r}GW}rPp<`e%wIRkd3zjfIGr%-M zz7Jg2JAJx;vK@&R3 zf+I}HP0O>=b{6aM=F-atU71CD_-)AL=(5Lvbf>T*@2a}2sKuv42NP#_P~0S6UsdfZ zKxZPAB}%d(vCcn(CwD-hH-!IedJ056sn+HMF&2!e2`mo>x06_6efmjaAfsoXoMGip7)tz^v%XBn&)mpz zu*xs66_(YKo$SayVnB#-Rs&ZtQqq-EP>E8D?JE>jw$9vAJF$(<#gK+;l2=V2S;7fB zw?vTw>&oQ`5^wHxXz+yEt+oEibN!3nXJ*E3=U+ zYKOofvl$ebmVs)26f!?SRkMURSR`1$DZ~X=DyLFOEq_BIO1FJv05e5?Aqpa1SRfuK#IUkrPKq{{Sc)5m6UA8Q{=yaOko#TsA{LXvc z1;;v&;!1~zyprFIz%0v=WXi1d+NfLV5ej$y?75x!{^@IXu3K+oj830}jqscs?oqo2 zrUU2y&VmLa(c$=FcLvA41Sc2U>(fIo!oaHU2b3eJ(i9t6JY#tBkR34`zYN57eId7! z1QUoX=dHo)O31|GtYdu_X3hAL9&A>G6;&s@R*P;6m%pbZzE2Aw!6~``T_Qn!s z&o`tI&zfW3f?8r1~m!N3U)icRXq8p+SP&drQiqQ zjDLQd4Zo4z>ikHB_=`numUv{iG^m|c%r7+WtGwhJ{{ z>*%{Sl@WtGPr1t7MRdB3{6#{EoyHgPa~mc3y3>B!_pDvjP2-b=s{A?A3kqWK$25Ig zM@l*#%)Cp+yil!`Z#fA{q2Gm0DH7>Y#;S^hIWr6M&hJQWv2f!^8-LQHrx< zAeH9KX_%Wrp=pQ~A3Grr+(0}bFK$A#u|;J(r_Nwoj;pbmu8qf`IA!fmsZtXG%FmeV zxp81*Y-D(>)o8UxhnuZNXQY2+t3En|csb|UTq8XUa;FowL zLgl6ys@T|;j@ue7`gw= zVJQe&QJAr;AH1Rw3gI-AgJ(jZAPsrmLR?Jc7{)q%&D7+=9EpS*?gsRhmG$_3m^zJ$ z@{fd$dPSt9Yg0$o=Uj9%S8bi1o%5p%3ZU-Vjih+qFN@kfhu+# z+&t@`^7E6VKe3dPcVCayK7O%|(=wBGzmYNj0W*%;*f3A<{zBjBx31 zJ~#4W$Ws#x2|-Gt(r{wsNaC?=CH~IluOwv4#*q34ma6!^(zzh+Dt3)o1!(q*{%?6v zR)VxSI0GBK=mK}~#*kZXcgwlk+0twl&>!IxJ6VX}Y-NX#4*R&9#u!)3Tr}*%J%`ao zwCI!%cPQn$ zu_LPQJH98FD04os&L>%Z95w?`k7CFV9fo*pp8!tO9R|v_%)AwE;wC4HS{%1DHs(hw z;o3ck;ZiYL@TK6?7H6TBlFsQZPg?`@#KkSkrgfp3&j$5}&HmUp#tBm=Ec}{NCR?mk z)l~1BTeX?eZ95-4|0UHy@^yonSqHD zCks_ON!zDk;7*6<9Z9|C@$ae8Aw2?Tn4Ov)Y>Km=U zaxHI(y&X*T$S%`MmT+O36$r;mpadHa)ZI^erE zC;}9H`@Fs+2_p#+Zw3KrY{gz541#cX_JbgUb+in$?KHvOq z_yB1s%Im6F$LEHb*<3e2yK*dcxmG_3PI2H(-8)WPYbeC4>`T69NF!M(dFGXT0AJHJ zDay900&mCKaK2o5S(Yk!JF!6uR7^McVhtPfW!=Y1G*AUT+g6dXGuw6$L;;;3$t$s4 z>UJ@(v9gs2Pop{Sftx(VDH10cR4W_tRh{~i59*SHgna>Sf!Z3ZatX%@&vXm<3dA^~ z9oCC{II*n^%<*zn2E)3mi`CQ)@+n@T<)wQBM6G)y@g390aDK;1euZ7SdJ070YO@k@ z-seSj6Ne=1MB)+6f5mxqSO`K6Nc)q&&|_etJd*1Wi?85y`TUSq%^>SIbqErVy;{^N zg?+=`3&)Vf>U2;Ra}_CW>1tDri5J$_3Qe-W?!v#h1`a4Gf~y>q%kZq)kXa&agekQ% zQAs`hJ6NAvc;UPqrTe03CZra$)YERKHg`m@fQ3YsDzk&lvR8}%!i2Dz$V^qYP!~b$ zL$6eGG6Qu!qk@CCGEy;Wh7-e;in1E1z;|3cI)~k66<-4Lzs!92JS}ijKZP?2qeOxa zz=9z2iiK{}VKz7@YRMGi?o0ttdvuJuqdouuN!Z>Bd5^ItVJq@<1@SMw$ONo36D!M3 z)I;bLG>Qx!Pnk1_81Pdl%6*zoMw13BU1dvuJ@lyM2S{D`!XLc2zb*Ch>7%g;#@ayg=Z zN@d>D`b-x4?rg~0%k#TX%%AGo;if_^cq}#5`!IEx-+ehVRI!c&USJUh-d=)ZnXllN z#X8<+U;u`Lb5*@Qi2<+=vdDkzY;L}hcC2uTA7-@j&zvT#y?PHq~7d;v&IvxE-irCu1>?N8JaQ6 z){F#5Ytsn!LXK%JhZUq?UYbN+Fq2ML=!Si*74?n$AZ9NQ3P>Z#Q_G{RQKT+dK6IR% z<#d-RJmC?OaEk4mzVH!l5KQ>*!Tmq*-rbwet)4)#JKAlynS$~042>55XGCCf63YR} zD;DMFPf^+qSW#lAh}JQ-%j6n|Ll*LnZ(bZX-U(8VHR0sH{%}h?P}kgbSHzF?<#YvW>jpr9cpy-8fRjERT__xZ_5;Jx-@8 z*Fjf_B;!r=lz_{bc}kqW$+~>zZ2wsdzYHEMcpUo&p5uWY+ECz-;x4vO3@m9YhsUpF zmI28uldI5a;}B769rkJ_+w<$RU8a?p9r%hJ#o4V`FlGzQaI_-!EK3NHM>U1?5J6lH z!MYY)gV)M~bs23V>zof_U^GH0k~77Q1h0-nY3u1Hn?Y-iVlmeiYD3z({Z=^IG8j)t$1BZZZrbD&^tI~iA4;qEhs2e^kg1lL4`MTt z60Xa@$c+?&oJv(}Zj;m}FGIi@NRr0&Zr@RRw#~|!^G1MRCTKNh8W%2*b2Ey6s76DA zaqa8VmKtjT(Q<32Eu$qBj~roKvIbtSTHMX1_wvz&-Om{-R^b{ zxFEgQpBz8y3!c-3Og{DnMlbwmbtCul%dq7fIZaB5zd_v1*k9+xoXa0^=hfW0Ux#Oe zvj^__%MO<$7PjiBK1lTwq0*F`5Pg@=_RnpuTCSLsE;biKmUxm$6!|3!3p3*@PX42= z%6GwBKjr+7^}5knjNbIwvuBtLAr?R(PTM|+ECch9#pXZ-k56Lx+B00>*q0|u7*3KU z43kR=PPbHMASZ@8G=xCpDN~#=OUnF+GAV}>=Cti^A^0e8qa});G~;Z}1){a??9BMu zJP%^T8jTgr}*`(*;;g8L}RpF`<&cgera>8%ygeJy+BG)`AkM z0g7V$XsOH(ie_a@oU2>>i);qD2c3n3WwI%B5i_ns!P^k`%u{#m0He3Rjq~_AuU7A@4lSPBi2^{M* zo<>i_K-r;jO;ghq^?L)g^>rLTDK)k!9VxU=&)cbF2*J?V$%Ts8KWQq}MAvO^7ORpM zvrpt(LA(Wpf*H*y>dH}^+R4K^eTLu+)(c8@=8eys-szv-S?SyVPnDc<}A-vb2rTMAA0YgD1nih_2N##&unPc!N zdzgPN3Mn{XU!2#az?wd90Of?hlo$&?`Z0ee&qFk~N2gU~&tK7_gY z2}l2-=Yz9DEamT_=rkF;LMhhUQF?P03}hc43bA%Z34#*w6`T9=-0;QZyvllC584G% zu8o~8_mXtJ7QVOaidU*kR=;HlaslzR7ohx zwR|>6sPTi*5wJ1f2xwdp52Ug!VHZ}svRiP+!?UFY%QhbVGZn)b_8={Q$LMEVp^hL(K0w70Os>XLwj z!k~d#6;o$Mk$u)hb{hiZTZ0;;JpTjq4>82%vyydCnL?8 zK;ln$2QeVMpxqd(fv>-ZG~!GXo#VGQAC^AlHcdS_)sxA` zK(8U37fFpESK6Kr;$+EVhk9FEXFW&k8F(eu&h4B%zqwOeP21ESyKiWdwKtwQv1KLx zXy5)P-{?#{nE=}suvnT#i{V2x!cEiJgY>e$sPD?nu%azjF-c*t1eB>)sgivpiYik> zku(?U*gR1Phtn_IcL2_X__15XTo`t7K+>O=hEsS7)LQ^T1LtAY{X$@ZjT@H1Ksa&9b zj|th-x>Ol|U{3Q*ob1=0srp4)%byqzH@#fXt!9HJwWN|iAyu}-2bSl?$!;h`;t`CT zq8;ddj;1s4@q`SB?4EWQGux=5Wj#;*1L=EyV%rikB%ZhPrssp_W%$K3GOpfIJKNtm zfA%ylPONp0$Ak>Gn7w`A*U68qrF)!%&Blx7$;~^`HF*N`Xvl;gX*`(Kj`(sF7wyr@ zD|1Uo*MEF=Wod00l2x$S)nO2@0W(ijWE3lV$rP&MNOI`cpb?2fjRJdEo>_KuVCwIZ zT=tv96XF-ou3AX{-02(6?{G*=(6N+=qHN~&xPa{H%CixQ$#9Ar;xbEQK#ppN#vo4= zV#%}GpY8dp$o=J~Vc6fogV6o=8hy1I}e^x>tcq=M^oLw;nL{)qnn!C`iZrIGjd%X)e$_$n z=A|`wb*T$-u!0lWVJNfz@JhZpgGfToo!Lc~Jy4e+76Q!M#EG57^QShDgxgkxuEiz6 zbK8xw;jGnF@V@pia}40eXqYO^8?lZ(MuHT0-?DljTyMzao0r*dwrcVn=3+`MY5MZa zH>UHmQY4=?%PM_DKuo=kuWMhIA9EIs2!U%YSMxWy$`vdL^lv=OE@}{SQ;f+F1J(Rc zc2bB^f&*#FZIz>V|eHvD;E({ejJ(yT(0&xctiZde_0EY^?%g{bf+ zSj^apHbIG-RrL_zAtsWK<4M|clg(w2{Pgn%D*1vjV0alPrOYiV=mhMd&pscr>LYD5 zo}L^+GAa~q7-an4r!g5?9i&#^!xHTP*^okI!30#f^#vmkd(>r` zNRH8Yer-_(nOOoYa9PwJ7$SaJHaFjeh+`nL3zAV3KdDs7uX6RB>GsU*54OFKPh+5#zsZUD5-5FnLn_ynI?tBZ zRFOIi_FsC+RaDj6Ss2)7_!S|lMzV4&a?Yo5AG_%5wNy*i6w-cB%4r(}^L|7MZSc4_ zJaCDcue1vG-J`MAHT{ZAO6^kvvmdYL8`gf^6`*pHw(CLwl;a;WH$*YJx(HYguxIc-iLV{p`$h|jr&1N~?(4=hNft`GyfmNamUM+PHEwBC zt`u2c^Jz1GHv4B|WzPZc=Bf&uG?f-njb+yi-c8X-G~d;#s_`q=t{58~^JKS1xx`kc z4ng;6M8S=}NjWYubEq=&(ST;fovHFF-Vw%b-BAW%Q#jfvyIgOr@lpBWXcqFkwaLO5 z^Aj9W$@3ktSIUdAj>8S(EGF1)91rSB zia@`=yaN)xKogG!flBWkCB5OPje1Kd+;os5M7LnDp}hu9@L1Yf4C145q7D~UtIijM zGSltCa!Vnp^flT|Q&(YxxRqRm$HT}sd@iN0iOFn}*xbg05$hsGFEqs=3D15uWc|>Z zCNEsCG;VnD2S#coBJ2&>G%rH+e`~_#RlylwS4N^f(D2u8q;&z z`xd4v__`|22zi(6vrVMKIz^mi7#=YmrAiKt(P?T7c@PHdp{^%OLSPCcDJ}w~I`FqJ zX=`R}Q70i|VIQS22oI>COHy&cqqZU6OqAa(=hc!n`TS8dQ|VWn)}bmkHg}O@hu5Ni zpg!Lk$0{~PDwk<+CJ61m9Q-$L=IRGfo!}|BX01!*=;{{g zCYvQTVQ2e0ljaXTb>hYo=ip7Iotjlx?vr+BgvY~IV`)(~5HWx_Ry~Z}0I|SUVAZi# zL-L_r*h~c;a%H&{!JWP=`3?*TRm%o6f_hcAKScUQEv!AaHe@2N?`gIgqF;cN$01&& zupJc|dQDI^uTPr;0ms@YL{pmgP~xCiprBd8cj0|#B~R=0f@Z_;$YpnmfqG5*BusK9 zjZ^&`P8CZpK=qRUn60dM+b6{6IrdTDs2{IU=dJ92F5l}N<>fiF!! z?Y|6G9rM7ZMqnmz_uKC=6D$V>hZ)NpF~4k&t=a!Tr9(N)72{QP{INSE(K6^kyy<+KR8be|TXlusM^ z3kB9aE@>NV&?wWLCayfGaOg(UR5;`n{>p{JoZ)pjQ*O(FA-0?O$pa?CS4TL*ucr{< zY=RKE1s>e(GB?9%?Hq5P5$+dRX&w$$94Xg3A-7YmJ4hzFJ)}?|aRkOl=Hf$0*`@uYuXLg#>HZps;36u&QLwaR5wpj?nBeAA?ZJCsv(5DSLZz zPKGMpOtX}1cF{?Vs>75RO1uCytdctHG9S;rfYXB^!rX{ zvc%JwC)T%+(rE!IMd%enOi{0^t1w8WnEcS7_BLqOtC6<;~8<~^+w3kfLG?RB6s|HyDQTD3O7 z$qUvSe=y*y9hOnPJC&TZ)gbR8b9TbLd>+SvcebfGi%XS!0dD%y?-)kr;svB`vMkPu zExqO%iz&4vr%3VU;=pqBBSC=3g>?j{!d(#OEt|ifldoa}J~V7KM$hLKaoifuCgEOV zmw3A9{u(?Uycd!rGDvO1vkPioqirT_AQwY(1d^A8{mDsy6$GzsSAaGa3IRQ(D!!%9 z8Dk!eD7aB{h*=q(_PAw13MylAiklv+AjZzY$W(tKPmG&xHh^Q32>uCLIPZ;Za?wcm{M#G>R+4*Rq|1R22z4p;B+}H zgT6KF)6F!fkz4?yZ9q(+CxHHZZt-fcb+{&G!J@%^CiyW!7Kzj@#@h{6a{vPwKv+v$ z@uDGxDmI2-F+UHdT756ZROyFyv3yiFAm#C8G&$Mu z15xrKKRyZFDG1oM{luUhuc5(fe%0h3dSlO>KCv@%_ROjAt=GGuIq=$(J**}nSg#4c_F-cIU0ikkN&6251wAvnBSx?T- z+_!mvm#_LrG~AJ)>QobB6r1A7eN$~ZPww>6de*dCXHMPFJKNVg@S^FppyWU_$(JZ^&}CkE zu%15)-kTxAAuhr(#I~(`pF3?6hH_ewU{$rq-$hweq%tqccGE|fQo+uOq7Yml2_Krw zl5&*~lV*a?k6gQF)5=fGE$9N0+v&{QLbc!06}cg5Hk9~+zQrq{NUc!P2iQ6w(eTYG z?q4{0G6+N1pOY4vCPNi_p8bZm@kPAUot(pFgyW3hYd&oe1VL2C!9jldHCx**#&NZr z0E$Ivll%2|8mJ?Q$ZcpwY4STqRwL%*!)Jqcs$jSZExa$4b*a)o8tXV|FsW}-@`Z$W z2q6!JF-wMYurg44^HG82uVs8_Jveh1X>-RGROJ(Q8T!CtmTX_(V9YEx>-379dkLWs z+P%R`nTP?CU?^_FRMOLF7zH>aYo;XW`=8w1>FxB*<-@qea74x=4vn|tt3AbupB5X0 zHD}o=5Z-<&)14^Mn859vqf9JyjvbQh6aeZR>QQ|SntKu# zhSa&@gqucFd^ZiAHOtpT#Z4inZ(7e`vCl0;+2E>s)t40=7HbsjVZj`fJ1bMop(eaB zw@mkmmuIO8{Qk(rA^NWzxDXbIAJ`T4Pdfzx-wvv7H?Ya3m#ApK7vRpv2+SedqJw`r z_WgLIadQ%zdpOdVJTX>Ea1Tv6x}1O{4f4+nrb>m1#v(tJw3RW(%Q2267TF^G0`u00 zF?k-nuZ$}$q}8t(nOWX%=~hB)rRn7_!cMxHDQ%#swFcJ>&@%i_{aF;v^J;#lPe&Ka z`2X6#6@CkYhR07{duHLxR)77_!uTZE7i6^>pPyY~B(hx!D;XOJmbp8%Idcm7y>$jL zQxH#=@)Ydh_zkm%$Kz>jP%$a|7%&xhJ1oU`uE&#V7KV6xf3&uUubvw6$MHO|{5)9d zO^~asyEXwU;sUlJJHULsRzE-|kodpG^#0apYii0|d2L`p@tcvi1Z~Q*?(~M z`wPwKii(W=&VS0~T*92iZuk(aOd%x#{;M3uP{~1zt4`rUE>gjW;n85O;ACbtNbo!B zTm5b54!4l@$B51flBz?7J-SjQTqTu!l2ao(fw*HK_Mhch-8;2uR5 zyeI1mJ&agpo1*$JYI`cxe^U35TtYuYJ7v|I2TN&_+?3K-hb+%!A(ot8Udd186ZC+{ z9P@F`9JAgv7lm*Y6MtR$RYp=IMCbjvNhWUkkwoi|V2Z$`*~zKFnW>+U$z;mHvPh(i zE)2+mr5cLZmMaZ@be=Sgf8e_;y_H9%`sr4ylW`+s;tG~IC~;Ep>@Q6zzk|^)8?)d} zVc}^7vRbP1sgv*yjiSe+gh+B6a_~+jTC{=|gvk6V-xgj~A(x@HchH)!_m`_;_wduK zpX?9ze<;99#;@}3=-zc4O$ZJydYd<7t52))d84Eq<$1mJW)W}KzU{sjBhZ%TF=_5pgjOyG@eH%mf~yLvVgM( zUr&Ftj-&4!JOpeT!Xf53;AprXYchuRBpYlV8y)_LbF^@kcb|j9gb$lsk%NywEV3CG z5v*Gr-_8Fo%^$a`#&*$dn%d^UChRJ{rbJYoDi}(y~EhjcvpBY4< zHE%wtx*WM+mldneVTpBorAVWgtXwoo-=oP|*(4u&Upm;XiofDp$2vAI=M0>I_SAo+ zCsj7cp9F__+dUEs8<+-YJ`r2CyhIZqxQ;gch_Oh(Q_a+DAoMqTSjn;$keO6{MiHSq z4u3A_&ET>N2cs#||1j+p&h^}-hSDqO8RTJj9&_MS;B(}C<0*p%$ti{5LZ#0;_uxrv zQl2rrzq5Sy#F?`vc5VhqE?>f~hOcsK+~AYSRsPr?S~m zsMJtH7j3TFdGZTBC=T>Mbw12;X{(w~p^A-@`QNA%vXe+(t~^gWQQlDsRi*D8C$;d; zqYB)I$-_Gk$&Kcx>*Ro2lsm#Kz|bEr&3PvUZVQoL9yU!kQdNl58F4>T7e1YWj*b zN7Rt3T`Xo{4^L!i&XT;6&+@6?S~0y0l50a+Pkt~^$)E6*PvllA=Q8Iop=_enA!6Wh;hWo1UCAxzl5w8zbo| zg=Zh`13tkvM>r~(h)%A+W~IyP=t0}MN9zh8hVX@%c+JWYj!-P=Vb~E;*N22jF4b_X zrkC5`6PTSsv?P|}0-EtHIT2rNC>2q78%iL~A*V-C>Pwl-P{qFFB#s95>6JkXJMSS< zF}`@1nI@ewSjp8xitaG=5N+jj(lUAf!pOGwyg0NfLU zvN)>BdM}xsX$_mY1^{jpcFYHoq%ebcD6;F_3IU=sKam_8;WAHDDua22p7x@8XEs4s zAoPxDqH?v<;C8%g8}B&x9;=iVLKQzwqi(dmk|?^`V ze1_&UB$oy>dC7K*;>5(#v3;c;LO(IpM$z>(Y;uLG>L6DaB*z#fZxRA3xsar<5PvNR zEtEL^1s-icACRzUUgw-s61xD!G&%_CfDqg@qn9IDO6DdT5GZ$%Yc&O)5n9 zT3b1Pdil&v{j*bNZt`SFtj)dJ(t5sS(D`9zb}p(FR)hSNLP~(6wKpF zJP56ci3&tYHGJ4brheLpeG+Mq`EUA{n+O}YqVdVYktf36d>8xNJYTspVo5o+G3^?8 zwe(COKU;cnX>o4x==2J53%~=#5^o$`Zq|0In_Fsv_%J3$itr0DhipNO0XkNsnW>Hg zmHcAwvfLQbmS!@!!cRyAE6xaNv@Fhsn?6_1#q9-!CVVz>TZIIB+>l46VKkG!4H;7y z{go=-MgfO+AT-p!Nn4&S@oq*%O2$k0$rMbCoSGU3oPkp;@-uCumtcc3j-lLr#X3F{ z>xu008Yq9MvkO&h><;kAHE7PXV3L=^FGQ0E>-n=V*-g(_rZmMmHn)%Rj9Rg=^loVl zn{qxZ!@&r88P|J5ci%WK16px&(3!@RJaQJzkEjK8#{EDT&2xgR40BJD&}c}Vbejc%s8=A&Kni@MmX#Z%NfTT zBfbC5&e;qA2~^fs^WZ#}NoJ9*+-sQ-r=`w)Wyo`Sa4U}&$UC-8{_$a?`c z%x>NZR?7Q8I-ZpH78${uC1n4aoE7^XXNMx}BIl1$F6;$HM=!b;s6pPFZk5y~XA2Hg z#!fujjr%Rv@uR1gn^BzLcc&Nl>6WozYQ?f<$B%Lz%vQ`w|6G4(Zjwh_^iKBA9_^hx z-=|s-JqMc?s_+NcL1_5L=hvpAAZc5HI+6)Tf^4+BFb+eFJviB*qvWJo_JL18XS))W zlMz0cqNt{G^!E;PJ*2WYjJOMZFeF51PV9namy>c!;4r>8ehkBQji`HiDGkn-vd}f0 zq(i~Sz$4Pb=V)b1v`eDZNlQFLZ{--KE8GYMFXc1QohF-+Vx$s9tYa_1EJ!1P9ij)% z5y+oVp4myV6Iekw6G};Ox{#4F6*nYHT>qIt{gyz}OHZ89R#Uxsvpp~#ny z%Z0}CJm()3R^dd1-5T*3DXnM}NwKzijT)ri=MgDY-=`Wjb}n=rYEE;pU7S2# z_`zT;e`I?QG8!poD=xW1AeWQ;rXqn(=T)rZU6?pvFgLY&%BUVD`CxruJ;_-qVWcLk zi?)0XdD2xzKE*n|hK(KQ8qfZjYH>a1#eBUubKg{E=}=<5Z>lhegTW}q?9)fNVzc1h zi@;{L_Q_?G{TTK8@^T3TuB3p>qklwGt9R+LcpkSBg3z{g?K~3#7qn=s7PRk!`LL0$!?Z7+D;+g= zfPGT!IZQqu#AE!xoYTmskhP*QTVaX*ci@8=mS_wKW(+tBpV3kCnpAM$IJamH0)b!f zJ&#$$aoo-NBshMYu&@x$fy&E1NiFRLbjk5Vu|qmhOxK()L={V!V-D(YbyX~ed#^)D z!3aXJG)$H&qR8v1{LJeOXG?>7b1d?X?rOCQM~H5LSebiUgbY6(Iy||+)bEGbJ!B zb1MVPbg433!Zv%W6aV_I=cXj7If9?J%cG&h?oNq|l(!--ZuT_e%sh@MngcDO?K8dL z0|t6*Y68TEPfyOn?|iD3ar){+;Phmn^m;z8p{|1*ZRb$?#5O6U>=Ai%avh4Hpe=$k zueoLTv5)X%?M@qWh&WA+1f4d#cAeGG0wncZpR~ah-F!yiO|oj|XI#TCLmp7P7<7p@ z@AStvH~DgKP&Qu*WL!YDVg{vK(U=pY;cgxciW3-+ZJVO;7}~BmW5bsbdD%TWiPP=y z=`|c~jST|9W))|0>hyW=J-fJI`dL@1XGcbVTQh;n;kLLCs#@@;HYi}P!1~z#^rPJK zpjaJ$;be<~Q%=D`kl5VRB((2f-;W{`)cuMe_bYHtfn>!tysryx2xlosZjg_hE%U(z zzYw<7QVkcarA+D0k00JGor>4-ab%=|11W-qiv3ltjbCmjqOAJKu|qDzVyIi#I~dt# zHVgkZpD+OSWxMSE9?PG^qe&O4HLP`skCmK;eg%GH*Wcr?VMTkzJnjhc>J z5P~xbndp$JQf_DS@C$m{?arFMZmQ}xag=edp*H;YewurV1?m$$$#x=(G@eQPq zKEtzTltkllTDXDgI7T7GzWjZfG2cGM1jm5EFBWUu_K`t@N>w!pno+*Bm9En$QvrmP zkK|D?jkyk6_Wi@VS>L5X{?)FYZ^k8;iY~E^U*tn=3QNe@g~-lgO+LcP{w@t_WYZcpN^y-IfG2}OWL03-+GfXGvIzZQlzJ$zmUEg&&s4g*EQx{gQLTFJjbCzJITX9`#a)F;=Z)cX5?$yV_YiRPPHGG5V zYb^6L4ibO@11DS}E@Qd7%=b3VZf0i6oGtuo{o@m@d?kbC@xS$YI3tvCbKve$Mo&*h zq9t>Tn_C$3v2ZWBF-%FDOh&WP5SilO4^-n&>Y*yt9cBZP&1wCGbJ(T!1E`6Br5tcaC ziEl=E6?@j#O;ni{N2gSo{2*%bIbWFDHzuBiIyW3n(r9+%_5wP;B!1JjCWzR_EPipl z=HKGXOjC-PP~x|^7G=1kphzYn=nuS2py0FRsNKZvLrk=XOeZ9xwpG=hZ91#Yd7Iwz zp64u&k0UXeS>E4j%*)d~*j+1nB~&HT^Ba@8&=xA4Jz>EP>LycOW$I{gL{ zw$08j@NAz@51_YA&?;XuQH%Qq^?i0Sj{U*8MPC)?4N{j`(M|ZEGjU5rRm!$S*RH6X zEU;!p>pfLBVMmb`xmqC|D>)0OVqIFpDTbzXDJFhy*u1kqIs99b*9M661*6tH*r_5P zPobVq;M`yw6`grJeNtY|M=Ef6!3oP`drlyCFsw8&g(^NNZsHh+E|0tp@&uPTMiSwf z(2`k9BUD3nmTk~vU^y08{o7VG+b^hVCO4@_qQt5!AN~T(Pu4%Z_zRU$e4*H9^mah( z(?wAjdv~!4(YbLBJ^^_5N#rdA6Fav$l; zKI`T)U_Q(N^WjbT4= zGxs@nc|9rXdm(awURo^q$}#MvvqLy-^YSatUS7i=R1i!|fj6_9vW37q4AgpF!xytl zey(mSJ!H2<)09);c%UVIAio#RMYmM6w10(CK8b^RUOr$Z%=#>|g*F4Pc`RGo4TBAM zdKP-RL8I{!6kKS%yX}}6WAphd%7Wakt`PzYyS5DdC#*z|wJRQAjJ#SnbCjxt;G;=D zDCokwc9!&zl5g!BdQRy!u&H1TL9LW;SIJ~9Rya{C%Dn7F}3l!dqg(W5VdTp*K*q6lmVQtI61AgM>6 zx}Vk5${aKf@t_aa z;9~cmKo%S6b5+Vm&WV-O+$!X?Zt2VgBoj}YE;!mEhMo;aq`_2I6jcgU9CxPzE-W@G zr-_7IRBECuEU#gY!7wkbn#&rd3S9f*@eVbWQ-^h>b_A6PsU7W4evG8VYiMF}F|ko^ zTIx#jU=V&>g2Sd6)A7Kg9=p7;VCmKUPo6t{Zl`y8vk#VxJeho}$V%FGTB@?{{NWe~ zXdDCyf)s3tcprK9l5bqgNK8miv|A(glU2I=CRA0?TUqO`RLLKhNp|I$iM5#-Q-Ura z%L~>VjHss6!%3o@@$ruRhj(T`z$6cC9=7*s%lepHPsY|YxX?V}8fcDLcR1*-!wdRh zT(u=@-X3I<(Zv2J&7aC9d={xj`B;P0Z4&G%*hlxghq0|N?}Dyb)6liePT?tvxt1Lh zFr*|aUFA%2%4r7MYova(@wJ}zX!bNSg;vE#)PhtuJjpI{1)fKSF33=mH=Nv=?43Nh0q=7@%o-s2$I=N_G@+uSLRm0HokvB5 zPux_{$C@%8h6}*76pM2M#<60ZW|h6Y^#oPy$elWkIfl`g#Gzw|Wm#KV^L&oGSF6)z zSB=ldX^aJ0;5`=W^0_7RYpH`d6GIgnJ8uVneNVic#{}kym@zBF;+oA0bRV0oMfh8C zBiE_pB;uU0z~<8mYPm4&62`*wFh$P7i)KuqE})jP7JOGlAe22Digo;uWV0=^z=bLe zi(P|ERL$`R4j7M5~ym~7@4foqzxZx#&!$ov~y(;nM;GaDG!rt>PFtgSyOaO zGwh9pY=zRUC)o|`?))t zI9QoPTrHcc%D~#s-55eWKYe`8vc|%p*)nSde=B!+hAIL3{dgzgD4B1BUYGV)&33C; zO8x@TbcV(y9JoM4c?Zd}>n>+uhs3eK*xTijMrqav5!%K>5nDL+5F8`|+Da8V64C0o zxAHZ}Bwb9wi5Un=O;?p>>bK$yE2oCs7Zj-wN*qk9Pfl{KmC9@*e$h>LxhyaO0uz|U z-Su^Ny%Fi_Ec#nz+R2JMXQa5|-fcE8I9);wG~Pwp+hS4Ei>a)7{SS>Qcu}0pU5XRQyMtb;dH18w-ThITO!MX?TR^u8Ajy5fu@Q-M%Bb z445cFI4-e{Js*j}G`g@rB6xtqXw>|v6IYI$wndv?H$xKD!iX_7L9?-_Q}kldM=u_a z6;HStS!V*Rs>834hyo`~E-hI0PtQ96+kVXwP?RsmjfV4AK4@V&yLX)#lpr`I<|Qwg zVaaEz%Nor}1|ryXDI68#twO5svb^O^0K4(XMo9~Gu3tC;)#7|X(`F63ewo8Xy($Fe zYOfLuOtDTh>kw@0&;uYFQXlD%wrWlwb#;2xQl%|TIoE2w7~NIK(*^I0aD_t|cO1w7 z*R01_v3w^gUgvLe2BUlIYGZT3-&_ri)qqrak%ry@W|*Mlh;wd@7LzAN%qDKggYH7$ z0oN3^a8GmPzo4TsLpaRG+LYNLb6jJXQ^CSs=9i91Jr!;Ht{n>=5cK@#qpfwG#wwKZ z54Oc+&c=oy!53izlQ#TJpO+-cSjD)6JSjFN4s?x-*z@@OU66O6tN)QhlU9$-Tfw?y@@ z{m<@;J%_#bam&k1j7AWW!&|nZ)8Y zX66 z^x`Jv;@;zH^U#4}Ls#T(aQN|#2qm8lwk0h?UvDoJf=P19$0ZP~2%NStU}~2}{80a_ z1{8)kn9Nen4`!Q7D)|$ec;?DWH6QjG3&oReFosOJ|5H<(Vkq%DWa%z?$F-;ytp~+u zWg9-66U03WJYo`KU={(Veg2?bP9~0(@kT3fZp3M~^Yc}kcv8t9km(6I$pZ6djx==h zhXcdp(B{6{X6=eAYV*jW!3;=X2$41&VU@Up6Ibocum~I(D+VPLYWPHLS;aZXoMT-} z!f3a&ndTca2RTaiU_9LN1TiD22^aGjVH5;h1;qI93l>V!eQ1(M_k7*x`&uu=Dwpf{ zH5?(uS82N7<>Rsf55cT%gYyq-E>!YH>L`o155wR#q1=zP6gT8*n(m7E4o7=QC~{Kz z^a+}7UwwfgOk~VJpR49eOyDf0ub{UAE&iG$zpC8g#<0O8vAgVd(H~t*`paJ#J`RUm zakGm%s*RgDLR7R$ML}qoz{bGgLf-8>Zj=iK>~ykVvcoIuI9E>ks2crW@^bVh!=fr% z6r71^B4*yHkh`0Jt%8Cf&|`NlFdoHN+L*&a8>wA05kFpcVxp-kDcI9aDS1}zn89tn ze3i7`(;q6)F9^Rg0G80Id(85fvXQZ%F+m~<=FHRN{){7`kBuLl9(vlI@|1Bx!RzQGsr8!HZkDu_~R^VjW3~@jH_XaL)pg zzS`4lj4|D90Ygd6arB}F7Z)?zI+2WVc4d5lAzpt{@WR_Joz%Rk@OwG+ek5mdE^eLz?0(<2|rr<0LRqQkB-ju*& z4M*~>tUyYry2y_=+D5hHh{>uKQ%mLq6CVJd7blq&wh5}^qG`f)c=nSDr-u+F1@)Fi zxN;iO=xTJz&x@LyY?!?!-6{tv`Q3IEkD2J5>zjqglrSvYp<^gZQt)#TaRgQVEOud( zU@N*e*6}%cKj4SPEF@Mw%$0bWvd43#&h!OiG3Ze=Wl+r%61WsC8igv%5hLummt_-) zO7NX_>|&*#M`g>Dq6JSA^7b&^&MiW*feE;JXnkoB`NxralQcm_1Di%gGlE~?R3g)u zURS@HCy3XKKni)+N zqgi~eVoOS^qfo`s8%)~op?k$)->sD<0J?mHOpY@QgG;=+0d-g=m?8b$)tr7BdyqE8~k@xPo*o9e{aXSyF(TZ|G0;x8Z1NCEF^D zI^*upXzZ#TEY@kg8QbM564NmhN~9_}!?y)G%a=FT860;YZ4AHo#7P_vZRf?yVb`Pg zctH=b;k8|@aNv1LPdqp$i4S+76mhu|=n4!fNqNkNCjw_)bN0p|)nJ)1DAsX^IOfSZ zPF#rXC8qR7lz5u1UT?UCRV&jco)%KB6^Z*r%L+igmo3$wJiaz~)a= zTPSeaaEHtDkl_^e;*uV$_nVf(Q%8Nbw@wI}Ng8N0chYt5UsTIC1e;ug4V;(-huvyZ zue1haaSAc9JR@ELg=rk{2=w}p&9i)h+eOWAn*`I#om|JEUXa7@K(&t(Qd4vfnObM9 zJ4-!{`S75s)>`8Xm+7Ki?o@k?ypH#>(;u;SOhZE+^Nr_@GojWT(!6>)RH~ainu=ac zWi|)4Eu#~hkBPmv&IIYs#rWSr#hvEXp@_uw8RaE(jZ;Fow2e5q3nfmgggJoapg5(9 zb^LmS8Ynbs&c4vLPqy-4!`uzo{ca0Y`n_%Nww9#hGDb4+oGEjGQ@G4izMOUlolic? ziGjt_kgtn22~PhU@X$d_af`fgG^Wzrerja~843?f)4#?j6LKH_kN@ISjj zTFqA|>~%qTB;}JUn~JmMw%hZzC4KJPQ!j+s7v83#1%H`SVkJ#Y&Ljv4*j&%UIY#%_ z)voUsren)#L?Rf{*Q3PkCPQrue32FQu~smmHu_LvUzc8=s_qdR>rr`VRyE)UY8D^? z$=vjONQDViF^jx6``Af%u9Zm%dw!MeorLpOK4e;ba;GgwfV!3squNFR5PjhXuRVnIvs zer#?EoYgu`XBS-t+X`Mh*pF3G=Uvx32Yuw`$@5$NA><0NRDQ`N0|^R>rg!%JF+`U$IV>|Q@<_08Sur>wrUdp%S} zPpP$cub;8{j@1vJhx&zVlZzors;UAziL}S#5(;vWY;|M1M;jwa2}2;@HR&nLmSLD} zf}J@^FA)40FYrl~_5_h2i_%?Vvc$?(oEpiV-nhtqk2*Ft72VXK6?y^S@5v?#PD@NS z(`S>tC(TJ_X0eVp<0WnL2(rR8m^>Kr%*k@7NMaKDWAmj{n{R>jLDhzN(Ain1)SYRD zyE3kHUZCIjV(Oe-T1dQw`o;3sPSL&ACEjo;n_ngyw=y@&Q&^@^nqGHV29^(4&APRV zHDL=q#vJ2L<9{`OL?~)~;>Jx+0a7Wd7VAI*JoOQLz!UBx>Fla%*AhSzXJ^LRZZP26 zXWP=Cz6Z0~P62@N2r6C^(vYPBk+Ht>fcoXkHBZ1Ox-gk|bg@VqXeg<4%G2!GV7aR( za-&6!iy0*m5sH833vN$}AmTxAJ~d@ENv9@n84{5sire6cQcw^jy=a4inVG7OI1yK; z4uM*mAzF{O{LenD@Q$jRi&SJp!)h*9b1|g^$(K?{Rz+V~*DNVrutfVR-BYmz2E;xX zVY@~BU-Ds<^}fc$0OW7O&YN6eYGAlm6^l9HbjDwyk1A+x2Yz{GehyBW$%M^iXDK8j zx9loO{vd|CDD?~8!3UarBeY{CBbY2IO*y>;g4W#XZ1<)9l&LlIzeI2c&)zDva~g_# zQaH(H-t(cP$7GMKDI5r|61_R_XWlizfj}%)EV4z;q+qsH@}?xQ<|JtS2xS1g|Hn`F zPM*1ThAIn$0-WAHaV@Er*ZPIDjmW2S;gM&S93PgA?Euj0honI!^#_YpjIWm(TVE1N z`G=%3x$O?@1=~<0+$LOK?s2KTGo?OIB!E0op%w^|Uy8kIVXadWvOD7}Pd}B_s1&?` zCw&sAP<}o4SBFc|RLXDWSK~8GOEd$PwaUJl*To*Al4%Wo@0wZaUyLi{L)^-$*x1;} zIXGmDuOe^#+>~GbeS#K-dY~vSl)FEfa!H%~8{KXgwhQ#B&BF;ht`>oT` z*PM%#=Y{CMseK}uq4#(_cPd;rZv@@I99%ETR2au_J6H;?*%&xgoNvWCeyDf17)p7Q zEB}L;nxO~zZ)AV)4igDbflG$FS)!GMq76?6duV}crs1_CI_#j{(gG<|@qH_Kswt%1 zom{0J*?F((eoC8JZ${c@(orFuAf;EP$+N8-_WDA^(LgQVOjZCG#~W^Mh1es*Yp@68 zMVSQh#yW*C>i;j+6h`^m*)Evf(>ED>G}aHc-rIFcxuHT~ZS=*XaEV{Fw=#Rz$~EBa(*nE41VYJ45-y zc4-vfN)a|Dx|s5_jlN;G#ZrEq54~U~JL&D+4e)Uo#-!|rdM>HL#V5(5IpgYpsL^upt`rB*bEk1U-w1+!maI*I~=O*Qoj z47iX7z@bacl7xbL%#`hY`*sNj-)FIdNi*=ikQ}e;oj%<^i9?B=Lf(hBU&Wc3rkSx^ zEnn*$o25H8zwSG>N_T91-FL)M0fnz_f8BTNlr*1ggzZM*^{bv7@&E6mVFkyz~ zo#+IhoiyKO7oB=aG5?ezwN)R$g`1&81AKwN)U!9!#9NP)M9QX0B!2 z4&V|w*@cS|UIRfW<|Q58ZfUOD3|>t%#3Lla4(dqLeGJVl!Wm?7lAe$G-=Mg!iX|qy z6n*T6FOqwjiN$1ZNd>~lzlot5kQgb3%OC>h^p(Zkvmy`F zd3+wFXym0i1Y>V5IQs>@pslx+IcUvcHHk_=N92ikR&UWQc6yl&Y}F~4llZ7{IW}@F1u{}x9*V@>W7m0#ftg| zCiT;|v;L8Kw!ypO@9%LhyuzNHB;Q?d-j~$!ljd zJS+U$!XM-JxbutleD5XW{K6CWxHCSm@NIRr@iADc=tCQ?Fh+;|Z>qQc4*#rw!Z%!Y zX>oqo+zRhDp?4d994_|yy^RyuC70vRJC5vM$nJF4OBe34=RSA1-zE3IDpuYSsy>^G}pTC;c@6E1Ai`m}7=w&EBs#O2z?EZx-kIwAd>=`!q_hgSQ z)b7n5Q)>U1%+^3YM;=pZKU8Wz#P;`#t?bwNzrESMQu}?S_FS^@2Ya)}mfAm-?SCn@ zcx?R3{@9ycS!#b}>Hb%i+CQ$;{&A)DHkkRpz1jX!`~7U+j!pK*zwD2_*@05~1Eux{ zO6{*IwZE#={;E>@dZ~S#?Vlc7+3L#w?ai8{_D#0WN2!@N#$S80R;hi9?eq1~Dz$Hy z+P6#X^PaLF?#()-_MKAuPU-%`rS`+6_QR$2Bc=8uY+sA5M&e)g$KGtL)PAf~|M*h* ziKX(BO68}N%HyT-i%R7em&%i+@^q;@TPn|$%7;tkg;IH`R6bHFcT459Qu$b^e7sbC zTB-buQhB{p?v=`$rEo~DwWTb%I8bvn@Z)IOXXWi90r?@n32P`)(# z(L(vo*&h_jcggnbi9g04cgfGka2@e6Q?m zp?vS`&4u!PvOg=7@0&gN4(a{wmmMvX@1MP@Q2wUuBZcwP_YUcg^_v-_0F_brukPRA%MPeK%J%!SnL_zMwq7V-mEEZF z7Tede?@`$}o%?{ld4tNzZo&9N{+{yl>P#(_ihAC+8`$+zNB)eQ?n`xJW zKgg2!LVn~mo7@b>Unzu#`)G)gur z-gFZVJ_oKl&}5?$kF&x3{(%Bc&hXH?6S)qr=I0`W35hS zd$YB*J-Ruv(b(wsH~6dd)BT%Hp4eEo?C{7{ieI)5H2T}^K0c{2JhDByF+8?4ve~NF zJME2rXSm*}dpB(NdpqahLv7D$9Y9}f47ayN8hyOo$Z%_Hb9CB# zBlY3o;pWChr!&^-jnzl`qwNNN5r5EZ9oXu$>g|!<@aT3M_ic=z8|oYFW^=3492xEO zy#qE+ojY+Z>9KZa-bjCY6i;t%`cL?%Yd1IXo8~Z%)#&uw=%wMY zk;d@$Rv&Gft*r*UE4Mov&DOwU8qJXd+wJy9yV1mu^zcsYt^P)5cpD?z-o~WsZ1vO! zJOn^fXr$RW(Cch$V$>RAW1}|B+qiwRhu6ee9_aptKPpaj>+a#^fw9JLzrNkv+Su$2 zkBs6cy?U=dg6UN6kM#Q6!}+s#*ucsDwY|-o?bBNL=>{IzX}5dr&E`hGIoz!G8u;xt zI(4j%e37;SF;sXb`~XX%(Qa>Ucd(=|W|%r#JxtYRXKZV;(Hq_zEiWfN&wtw)InWs0 zsy8b`!8kG3DjSMRs5p0--`{#b7VvtpyO(byd6Z4Ymaj*c`o z>%PqFx75&z~uyev+-Ddd)rq(DZ z;r4I~%dy`EnQ1o1`rDoQXo+_EV4v#wZ(EqXt=4F#)gB!k9&L_nfHd}dy=HG@+g>6N zf%FuNty8`D)$P`3ztMtjvQyu{svZL&XkzgC!ys2%y-tAyYp&qucyzlyc3`u&4HCDx z-5-IDbF9&6b%tBRpr);n%?8Ls)sI0XcEV%&=BWj^j z27im+jgB7ZVN+;tH~XV4jMvyGh(Nv3*lhNi80hvGX1KX9GCf>>?le-uh2r$--p0xP z#Pw@8;0W>lxpT2XY2+$u+|?GzjbmHCNqR-UPA_>QKeuf8#Oe5BH65&&K8@gH1}iO` z+3LsketC6ix$5fp;?%_PQiXkBnhh^}dPSnVQ04F1oj$sBdbxjkD?U5?WT3)QJ?Cfd z#P+xx5}AW{I*9-73f^!^Xq@+5-HVLlm?7e~0j8 z!e11AShyD=nzg&P@ZrKI2u};YPx$k~cME?<_%Y$%2>(@hZ-{($|Hlbug$qKHr>%ZV z_$=Xbg|895PWT4l&kFyC@K=SuBm5KLUkd-u5JJNjRsK&ys0;555!9Yu3ch4x7MjwcEa8sdAVgog}kSvD_RHpKU>3a>H5cRpSCOhbI{mhd`5Jp82a219)R zj_`sZ`r+BaZ#P7Le5dfc4DpiRBiw5UB6(-SarMJNeg8y8OVA#a@rcZD#BfsMhL5`1 z$_KOTsBm4#_r!I+-*lGUXxC@-Ub9*D0xKWNvhOvV6J5p4UTfupS@x5LhqH`y7M=B0 zD<8}<(pwPmU$^pNmi?aL!7TfT;Zl};+z_4m8N(x4_D_Z@S@v&+-7NbLLv%Lj@>-VN z&FCmz{{Du?vg~1o7=%X}9tT}8d@AOv;nP4D3^6#fhR?{dBZl9SWluB2$8Q-vGt15x z_Ok3I!-H9NtKkO5LFMljzFhbN!XFm?xbUZiKQH_x;X8%DCj3p|?+X7=_%Y$139%IT zKA7r6Ol=~jFcDLgh$%_L)FX!R$5dkZ3Bqw9hLqRC{)(<<8C^&W^P;cv^}=TfZxY@r ze7^9-!j}nOB@FZA^(wzn_-0|4FYi$Ky}}O&KP3FH@T0;{3O_CUtnl-~FABdRyhQza zsqix4eT5GaK3w=H;g!OMa6}mRgh`d>giFFTA?Mpcn3Poxe8ef0&k1i9K3Dhx;Y);p z&v>=UKO+1I;hTiNAbgwfUBdSXe@pm#!jA|)F8q`*@GqZJ`JaVf68@)f?;f8wcM;xG zcz@wTgpUwDMz~*S_Juv@pE2Q6gww*q!Xv_C!eMdjxSUnG2~@Rh>X z2wx|BgYajCZxOy-_#WZ=g&!3DzVMHQpAi0q@H4`H5Pm`UW#Lzaciij!ayMb%2OpsF zLxooe_X)2Oc7%a%99MZ(xFGBbj|22Hww+p zW8?l-;X8!y6@EbYA>oIG9~FL5_-Wy1g`XFGQTP?%C3o=WT`Igxcwgazgbx=!N_eHP zAsi7tNjNE-6D|qYgijOpgx3mB3C{^{76v~11uDNp_zK~xg+C(v3E`WBzaV^@@Lj_9 z34crYdqT61**JV$_$lFE3qL3PXW^HGLh|`|pYtl;B7C0kMZ%W~UnzWzFvtUMQ2A$tZxOy-_#WZ= zg&!3DzVMHQpAi0q@H4`H5Pm`UW#LzacLbwu{dzayy@d}DK2&&xkn#uGU!`(K_ypm& za8|e=>lC$aR0N>z@(+ zqwtHu{}2Xw?yf-&QUCpS=h^L@pI>Xc`{=zMB&-P^BRn7sdXOioJSn_d2-Q=z=b-eM zz@Y#5@6PYr`yE$g{=9v{x^P4Y(@3`GV3th_p;F8C9E2WBczeg;|807pAJ+T-gz#sC zZxQ~AFzA1NQ{|vH{3De=A^b}r^@azt>`N;Dm+-&aUtv7H(f#)IzQ?e>=SjjT;b9?E zrrDl@Sr+tn&&<4ht?;z)yztq==L^4E_zK|<3STGuDPhpp{gTS>68^gIgTg-$20h)M zsr=W%zZZT%`0v7?pS!c@&^?9UBz&ll`rd3|0tNx+c*G4D) zubTJQ>wTUjydZq8@P)#c3cp|YTH%ii-z5A+;oF73Dh&N{ca`reglQ++b5M3?;85n} zu)hEQb>;o>|MhkC7g}F`EBw6h--JPreFyP7cN5-6_#k0T81&Z%RPG3$D4Y~tEev|= zYgAqrZVOKdcZ5M-9sC4dtm`iqzFKI0_j@p}gP!{5RDP@Qox=ACe_I&z(|@A!Cxw3{ z{G9M#gh4Nz?e*tfD!hmA{=#n-27UBnRc;7Jg-;RA2!kGaRpqA%H-smIHwc6N`8g`T zK=?hvR|RxD!)zmZeh>||BlKZ7Jf`f zKN9@@Z&VI?;D1&5D?<90pxs^W0xM zeeYS7Zx(*L@I}J!6$U-;53BqW!k-boMffYipx>om3%>97bp4NnpAi0~Fz9vvN#!pI z|4VpB=^^hf4Eo#$tNaMzknk$uurTOxr&K;HToE1@K2sRduu;lB$nkv{Rx!l0l1CY2v5e5CM7 zVN)3NvIkY36)pY8T(7*nw${!H^ zuJ9v5ixb&{`4#l8f2;E6h5sh}PvITz;_ZXJ^*$;;NLUj-MtDFN^sG-*c~W?_@QCml zVbHH`t9(khBfLfU9m1ejeYwi77XGO44Z@!j27T%~ReqoFw}rni{1ai&qyCl3pA-Iz z@XJDk0k-gs&I=wD1>%zbt%@@Hd1X68@p^N{L%0_T8k=`_72aF;K;grM zj~4D1wuMg+P6+3O%fe&AZxQx|Cxz#P-zI#X@VkUB6aIkkM}$8q{8{1u5WYkBYr@|W z{!if_3;&n!)55`6y7TQPT@<0-zR*H@W+I26#l&MZNhg8-!J?f;fIAE6MjngH^P4q{;TjS!abLH z|J+4*FX01(4-;Y=^nMiHPxuhw<-&c!+pBNvsy$rlvONdkza+d)ct&`m@K)h>3ST1p zKH+PGKPG&m@aKhZ6TVyce&O#3KP>#1@KeIS5&nblUxi;0?vb2#7va5x4-nFi@F4us zReqeXC49VaTzE*hBs?m7hLC=RxZm|EpA`oGu5VZQMZ)hDzDgMU3WHzQ&*=JFgufzu zuQ2!%27j(U()CXW|5Er_;Xet3AJ>1Wd`HQ9cNgAQ_+Vl1-x^Z+D&es3Nx~^%@Y`BZ z`MB_z!fS=6g~4Cz*(yI@_}#)+2!Bu*{Iq^b z!r+(n?lbdkViv82qswsq&S=rf^JnP#FBM7FAvoK3%ve{8nM`zq+9EbA>My zzEt@A!r*uH<0`*N_>01~3x8D@{H=ah<&OyeRQMOdzZC{QtAA7ZKZSRYe0MkDeT2ck zs;2T|ga?Ej;S+_yuj*=*j|i_3t_!z?!JleJzh{N8?ZG9cOm&>|0%jTE|V}7Gw{dWQ$BN1mSJVqikG-b%B;f!T3zZAA3fb%sE+r#aWI& z_KRwp8?hxjuseV36%93y;bhL@LjKq%T5sOQy*$Fx{IN%L!~74Q@HId2$No?V*LmR> zm9d$KKlX;wnX@tv3$qk|>6B=k9!SS5Nxm?24+{B$cz~el}E4nOwl-T*s~4!^1qq zi@eTze9Tw;$o~$s{rB_eSB7O2#$rOIU|MEjZWdxmR$w*OWfQh$C-&q34(B*dWW@&d2%E+6qFKkz$)hYh@*!Z0#pG69n_4Kp(r3$g^uvnuPbFtj$Jj$qww!ejLg%oXlBV$Q4}AZQRQvJk7s(ga7aeU-J`xju7Y*g5emIv6+Z} zFdefp4-2ytE3!K4u_@cIGkb9$M{qo+aW0o|H8*i55AZn8@d|JA0iW|7zw(#=EoT1r z{uYW6`8(q=DN{2eb1*-Pu`H{w78|k!+p`<{atKFr5@&J&mvbGrat{yl6fg2R@9{BT z@gslw--6PAeST$FMqw-_WD2Hb7UpIlmShE1V_i03Yj$E!4&ZQ(<5bS!Vy@yw?%;kN z<5^zjE&j`Ae9JEk`oCXf|JNxbBQQGSG6_>L1G6(9i?R$WvnCs`Ioq)-`*1KvaUy4M zK9_MVw{SNP@gy(s8t?KEU-ARLGkBChr!b7nm`uRrOvB8~#eyus@~p}_Y|K{d$R6y^ zVI0dToXtgC$qn4jeLTuDyu_Ql&!>FD&kPbZ(C0UXXEerPVy0wzW@BC!VQE%k4c2Ef zwq+Og<{*yb1WxBXF6A0-<}M!O37+Rw-r+;O;Cp^!uxNo!p&5xW7@x`bCo?f83$QrL z@h{e9BerA*c4t2hTaj^-rJ8reX$WXFe8X8CGUZHehqMV^{X!V2@If2tTk4w3Ro4Jbzd4lJ8m3R1%FZiC{7%WbpQ)otF48~_N{>e3Syo{!He?I7XE*lc5RT>~&g23v=Q?iX9v!pa}wMi40H;^$c)JZOwKgS%v>zU5-iWEti#4^#g6R3{v5`!oWj{$#FgB@ z?cB$sJi|-8$@_fDH~h>Xi2{9oV|Yem942N;re`+hWf7KUCDvelHe*|MVQ&uNNKW8% z&f`+9;b!jQL7w1wUgaG=6n#ySeT_)k=0p` zP1%N>*^2`?g5x=jbGd}8xrsY@fX8``S9qHb_?++fmA@nnbPC0Y{GIWbl&P7KIhdct zSe8{-iw)U=?b(feIfSD*i8Hx?%ejtQxrc{&iWhmE_xPBv_>un|L=KYYf7kyE%P5S+ zgiOJ-%);C(#FDJQYOKp9Y|T#W$pIYBah%FIT+CJ6$Q|6zV?4{tyv2X{jBojcL6ZkM zg=7RqXIv&>DrR7I=3`NoVP)3je|H=G@BgJa+p#PAa4<)4B4=*9K?~F!0DXF zrCh_!+{J@D!SlSzJAB9&e9vzTmNL*OG$Szv<1-omWG3ch0TyRD{>9pC#Fp&9?(D~* z9K*?+#f4nK_1wn2Ji^obn>Y9mpYSz5@#j>5J|P&6Q5laE{|t&f#LN;zsV^ejejlUgj_?iFRW8uH=x8E3^(HMt`nUd+5jd@vwrCEtJSf9<p?!xR5Kjp4+&WM|hfl^9KLn6Tapr{+uDuCj`SWDq}Md|6n?1WgZr0DOO~4)?-t) zVQ2Q@K#t&ePUBoI;c9N;P9ETKp5qnX<^w+GJAUOa83Ua{F(Q9wJSJsoW@HZLXEBy# z71m-ywqSd9V_y#8XinlxF5q&m<5uqBVV>eeUgteN<|}^WPniOJeq~rjVJs$O3Z`Wi z=4K(5WCd1ZT{dBBc4AKs;Bb!PRL$CSzhKX{>x{4%P$O?InXI2BQQGS zG6_>L1G6(9i?R$WvnCs`Ioq)-`*1KvaUy4MK9_MVw{SNP@gy(s8t?KEU-ARLGkBIj zr!b7nm`uRr{NF7b|Ns3kGjp*ZORzkvvJM-w6+5yA`*Rq_atdd25m#~pw{stl@(eHW zChzkp-|#boWDR`1zcD^jI_GgI*Kjj; z@gPs|Jg@Q&AMyp?^BaR@3v>$2NQ}YwOvXQ%i8)z-#aWJju{ImAB|ES?`*A48a586c zAy;rcw{b6z@HGGC4gSL?e9ce%IeVZ_2!>-+#%3b^!F0^ZJS@yotjOxD$EIw<&g{j3 z9KrFN#<^U=)!f9LJiy~T$1A+e2Yk+V{K{W)1UiLcME=frOv=>E$Q;biVl2xlti^_G z!S?LNz8u2QoWz-2z~x-Wt=z-IJjIK=&U<{!SNzDIat8YR%CL;WSWL(iOv^0H%|a~6 z3arMuY{J&;#GV|$;T*@QoWsRj#f{v-{XE9Ayv$qtm(Tc?Ul=r3pi@XjV06Z15~gAX zW@kPYWf@jxO*UY2wqsZJ;b4y9M9$!RF5_Bm;cgz{NnYSJ-sK~{eXEx?#5te2p)?j@$V_SA%Zw}%}PT+LT<5I5SX71uap5S?2$hb&f-F@;CgQ3ULN6T z{>>ZwhfnyLpZIgWK%Wo{$Eb|WMEry4n3Z{0n59^e)me{C*@m6jivu}=<2j9UxrD2^ zi930K$9axdc$*LSobULRzvK^e3dM;0o$;8IshN>En4iU1mQ`4b4cUV2*^PZUgrhl$ zGr54vxsF@8hlhEJ7kQoc_?WNwk^kLbHpu_J=YC~aMqw-_WD2Hb7UpIlmShE1V_i03 zYj$E!4&ZQ(<5bS!Vy@yw?%;kN<5^zjE&j`Ae9JEkS}@QlBqK07<1z_TF$1$RAB(aK zE3+mWusPeYEBkOTM{y!&a6XrDEw^wt5Ah@~@EY&(5nu8HzcYBDK&LQ_%$Q8Tx4zTkU)W3VED zPN5lzF&Ll8_$MOvFE!j#-(9g;|OfS)KLRlx^6Vy*Q8~IG)oumrJ;so4At)c%0{W zg}3>D&-spD`Ae}tr%;T@-x-fdnVK1ygZWvEWm$!_*pMyQp554&LpYj~IFk#woa?xi zdw7_qc#+q6kB|9^ANf=9K%ZY3mQfgs37LXvnT5Goh$UHp)mWEJ*qWW#lLI)M<2aRb zxR|TBkvq7b$9R^Pd5iz@8Q<~?gO&(%3dsnJ&bUm%RLsEa%*UcE!^*7525ioD?8-hI z%u$@k8Jy2$T+1!o%|krN3%tg=e8iXh!0!xRGSDduBQquwFgepOGjp*ZORzkvvJM-w z6+5yA`*Rq_atdd25m#~pw{stl@(eHWChzkp-|#bolnV6ujo}%MahRAXnV#90mql2b zl~{xI*^F)3g}ph5BRPT7Igd-ZhMT#I2YG_$d6jqgkT3Y2-x#cPpi^i@VhqM-GXBX- z%*g^Q&T{;Vwb_U**@4~Jk3%_zlR1kExq|DtjeB{7r};N;@E<8q z&?yun@^{8#Ql@4`=3ssnV_8;VEjDBewr4l?WW@&d2%E+6qFKkz$)R|s?p!^n)u1We8}%*V;m-CN~UKv=4BCV9EXfM2#=306*6hTd9Khim$Elpd#azXW+`;`k#d7n@DhMyUvdZ5p549{qc!^BL<^vuS*EW*;P#2T#6W^BtY?9D+O$qAg!d0fgh z+{|4($P+xztGvU9e8Knp#$Yu9okBAbV=z9G@lR%AP8MKsmg8Tn%|>j=4(!f;9Lh1A z%voH>6a4}bLBX@8=kMS%o^A`W*Grr{)2CWn56p|4bopG6j zshEM;nU6(ThLu^94cMIR*p+=an4>t6GdQ2ixRzVEn}>Lk7kG_#`G_z1f!`UtZlF^b zMrKSVU~;BmX69l+mSA~SWgRwVD|TcL_UAB;%)$ID#HQ@qIQyvN6U#gF`{QJ~MS49h5t#e_`3w9LZXEX0zmz-p|^CTz`4 z?8yNf&T*W|Ib6(D+{hi=&tp8x%e=*Z`HXM*g+Ut!I)!8eMrT|mVJc=|cIIPImSJVq zWCJ#5J9cFs4(2FMiT|VMVe&BZoZxZMfhLIVQ37DK|n3=g) zkR@22Rau9P*@_+6gZ(*-V>yMhxri&df!n!{M|p;qc$4?}lyCT%L7E2o{KoK%#yCvO zluXZT%*!Gy%}T7n`fSFw?84q0#F3o9>72)3V5`*H|Ja}sBA0heOE3g{tvI$$W6MJ$1hjSdKat;@B z6*qDR_wyLf@-lDnUq0hoeqqp7fleVAfzcV4NtlWmn4S4plx0|%HQ9j8*^XV=hl4qa z6FGzPxr}SMg}Zr(CwYO_c$bg(k{|e;!CMD9g<)jIWCA8<8fIoL7Gw#QXI0i=W42;P z_F#Vw<5*7NY%bzTZs2zA<58aBCEnzHKII#JW{@_4KEE+MqcIK>GbPhA8}qUVOS2Md zus)lyExWKc2XQ1Pa60F4Dc5i_ckv)k@I0^b4j=Lb-}4)TwGDI%%}9*F_)Nw>nTa`B zfW=vkf3Y?ju_ZgOJNt1c$8a)daUoZ5J-2Z$kMK1A<_-SCCw$FM{JCAAPY8x%RK{i^ z{=sz2$~-L0Qmn}8tjDHo!_Mr*fgHi{oW{9a!qwcwojkzfJjW}%%?EtWcl^p<+6Ov? zVnqJVcudOF%*Y(f&tfdgDy+qZY{B;I#=acF(VWDYT)^dA$F1DM!#u@{yv}=k%vb!# zpE?Bk{K~M5!dOhm6imx3%*{e9$qKB-x@^MM?8KfNz~LOnshq>bT*Zyt!TmhOv%Jh( z{Fl%8mR}gOW1v$=MqqTtWfG=h24-hI7G)V$W=%F=bGBnw_TgZT;zZ8id@kc!ZsBeo z;z?fMHQwbTzT^jfXYfvePGK0CF`0nLnTDB}iv?MNeU|j;8LNgL$Fg}yIG@Y7mRq=+hj@|~c#U`Yh%fnp z-x<7Tpi>w|W=tkva;9Ns=3+sXV0l($9X4hwc4QCs=P-`t6wc-%uH*)8=RO|g8D8Q| z-se-k;b#Wv73lLD!!sJ=FfmgyJ+m<{i?B2+u?Fk28QZc8dvg#+assDw9+z?rH**&c z@&wQGD(~v(k{F9lOlLc6u<@gtCvk_ae1G}>yhjI)ja~2nJ z1=n*M_woo&^KahZKYYU1{KTL81p0(vI7Ve`CgLAV$E?i5!Ysv#tj>CD$~NrGUL42~ z9M5T-%OzaRP29-?JkE2x!rOen=X}Sn{H1T8Qz%B{?~KQ!OwEkU!Tc=7vaG^dY{(XD z&u;9?Aso#~oXG`T&UM_%Jv_`)yvXak$H#odkNl}$pwF)i%P5S+giOJ-%);C(#FDJQ zYOKp9Y|T#W$pIYBah%FIT+CJ6$Q|6zV?4{tyv2X{jBojcLHh?fg=7RqXIv&>DrR7I z=3`NoVP)2212$(nc4Z$9<|t0&49@2=uH_c)<{_Ts1zzJ_KH^J$;CBWe5a<+!kr|T- zn4D>tnYmbyC0L$SS%;0;iXGX5{W*+dIfb*ih%32)+qsWNd4`vGllS?QZ}^!(1_t{4 z#_){BI84lxOwVl0%OWhzO02>9Y{s_i!rmOjk(|KkoX4eH!_C~qgFM0WyvjR#$QOLi zZwxjl&?z({F$Uu^8UJJ^=41gDXF2}G+HAy@?7;5q$Dtg<$(+T7T*39+#=Shk)BKw^ z_z$1(H9zs^!GS&@7>-dHn~C@b(=jXaurN!pBCE3=o3af%vlj<)1jln4=W+>Ga}#&+ z0FUz=ukbb>@HyY{D}Nah=oE?(`8(q=DN{2eb1*-Pu`H{w78|k!+p`<{atKFr5@&J& zmvbGrat{yl6fg2R@9{BT@gsj48tC&Y!!inEF(FehEweB;3$Y|Cuo~;K30t!hdvXAW za~!8~4i|G3H*yE}^BB+aGH>x;KI2<{VbEcLP9YhA(HWOXn2H&go%vXlWmuUt*?`U2 zj$PS@gE@*5IfL`LjBB}tyLpHwd4bn>myh_8ANZZYhX*=^VPwW+0w!k~W@auHWC@mM zRn}o+wqi&2V1EwdSWe+=F5*gV;CAlgQJ&!?-sF8g^jI_GgI*Kjj;@gPs|Jg@Q&AMyp?^BaSW40H<3NQ}Yw zOvXQ%i8)z-#aWJju{ImAB|ES?`*A48a586cAy;rcw{b6z@HGGC4gSL?e9ce%c~qcJ z2!>-+#%3b^!F0^ZJS@yotjOxD$EIw<&g{j39KrFN#<^U=)!f9LJiy~T$1A+e2Yk+V z{K{WO2RemfME=frOv=>E$Q;biVl2xlti^_G!S?LNz8u2QoWz-2z~x-Wt=z-IJjIK= z&U<{!SNzDI#svEO%CL;WSWL(iOv^0H%|a~63arMuY{J&;#GV|$;T*@QoWsRj#f{v- z{XE9Ayv$qtm(Tc?Ul??3pi@XjV06Z15~gAXW@kPYWf@jxO*UY2wqsZJ;b4y9M9$!R zF5_Bm;cgz{NnYSJ-sK~{#-@@urqscAV+XKr*STqa5Xn^ClByA&+!Ux^8ugp9l!FINr6tG7?Hm- z9+NUPGcpJBvlz>=3Tv?;Td+O5u`h>kG$(N;7jQY(aVz)mFi-I!uk#)s^A$hxr^$gn zzcMVNFcuRs1=BJMbF&ajvI48IE}O75JFzDRa5%?tD(7%9S8*eEa6ganEHCpG|K&5j z66h3?5g46unS`mBf!UdlMOlWGS(6ReobA|^eK?q-IFU0rpUb$GTezEtc#;=* zjd%HoFZqGr8GLG>Qy4~OOeSD*reS90VnLQ*c~)f|HfAe!WDoY|FplLE&gLSnN2J5pK+p-ILa}Y;z0;h8x zmvRj^a~BWt1kdv-@9-gC@IAjV*z`cB(2T?wjL&5JlbM*41z4Qr_!n!l5nHkYyR#pM zattSP78h~_*K-^9@(54!Z{FZPe8SiK#Ghvb`h;LOMrCX!;vY=Mtjxp0EX9hf&U$Rh zHtft^9LNzI&uN^?C0xx-+{ptx&U3uN+kC+1e8;c+WoDpLC`RP(jK`!*&5X>!{4B<@ ztioDs$QEqRZtTk;9L-6b$pu`_b==B5Jj_$P$m_hv$9%<){ApI8&#w&2D2&B~Ou@9w z!rUyxlB~dLtji{B%}(se0UXY8oXR;|%vIdT9o)}jJj=_x#eeyXZ~28mX9qfkWCTWM zTqa>EW?**aV^Nl2W!7W^HfK9_WgiaaC{E-I&gU|& z_?bcG2KxNQ@QlVdOw5!_&uq-gA}q~Htik$h#7ktle3^p&&DKsN72IDgs|70fSWC0duIsV1kY{ZuA!0znFp&Y}>oW+G)!S&q6 zy*$Fx{F^uU51;TgKk?`Jfj%J^j!_w#iTDT8F)Q=1FiWu_tFs=PvJE@47YA|#$8#Fz zatT*+6L<0ekMkU_@HQXtIp6Use_0Ud6p9h~JL54aQ!^uTFh7g2EUT~<8?pu4vm5(z z2uE`gXL13Ta~-#G4-fMcFY-F?@iAZVBY#>L=<_SXG74icAyY6dvoJRcu_P<78tbwN zTeA~;asY>O9H(*)7jqRiatHVG7|-%DZ}DF~<6C}V&_#hxAsK=W!|5a5H!DAW!f-uksEb@&(`X8-pzk zbPCN#jKTO!#y^>fIaz?kS&o0PHXE@eJFq+ZaVW=dGG}oiS8zSIaW9YXH2>xe{=+AH z%}@M!S)fk{hGSI5W+MK;EX-1@$m*=erfkE`?8Si`!SS5Nxm?24+{B$cz~el} zE4c#f!Yodwk4S{K%hH1p55Su#Cc3Ovn^W%Ph>zLM+J&tj4-*!q)7>o*cm89LK4g z!^K?1joiWgJjS!U%v=1I&-j*K7<6TzQ%FW&bjD>8reX$WXFe8X8CGUZHehqMV^{X! zV2tj$Jj$qww!ejLg%oXlBV$Q4}AZQRQvJk7s(ga7aeU-J`xUK{8Wg5emI zv6+Z}Fdefp4-2ytE3!K4u_@cIGkb9$M{qo+aW0o|H8*i55AZn8@d|JA0iW|7zw(!L zfli?qk-sw@lQK0kG6(as7|XH>Yq23)usyr6FNbh6Cvheha5>j;EBEj)Pw^tJ^By1b z6+iN)^?^RWGAyGo785cB(=rQlvk*(N0;{nuo3J%Iu_p&`ILC1+=WsDsaU*wdKacS& zFY^}v7@cvMgsGT;*_n?;S%#HalMUFM?bwxlIGCe2kux}-%ea$4f#vI~22 z5Jz$Xr*j^cat$|g7Z36T&+{tp@F8FDJ-;#7=0K;=jKmm>&t&|QnV6FWSe)hf7i+T- zTe1VYvmb|Y3@39I7jgyHa~t>a2v75G-rzrc!q@!7pSJ}1gkU&EWo#zmA56!r%)`Pg z#fq%XdTh!z?95&q$PpaRX`IU?T+L0~$pbvjbG*Xae8A^?$FKZlYoJpoM&$2|$D~Zn zjLgCOEXJ~|!dh&|7HrRM?8_k>%}Jce1zgT`+{!&X%u~F`>%7Oue8rFaXf_gjoFGF*@OK#jAJ>4v$=>Xxq;ick4Jfi zmw1!+`IK+?nL&02`uxW5jK(-j%#=*eY|P6dEX_)+!TM~*w(P>*9K?~F!0DXFrCh_! z+{J@D!SlSzJAB9&e9vzTwkyynG$Szv<1-omWG3ch0TyRD{>9pC#Fp&9?(D~*9K*?+ z#f4nK_1wn2Ji^obn>Y9mpYSz5@#o!vJ|P&6Q5l#_-3vlDxA0EcrNr*aM#a}_so2lw+B&+;;F@n1gUTYh2CeSuCP8G+Fmmr0n4 z8JL~v#^ox%49I)!0m z#$*B}XBuW^E*4}7mSu`Ro>HwSSfCvZCFaVghuGk5VIPw+gi@(v&J z1>f@8?hxjusi#4D93OzXK^7{a6PwiFOTpv z|K<(;!zX;rPyG2%pic;fV^qdwBL2a2%*s40%u=k#>a546Y{Sm%#ep2b@tnrFT*B4d z#GO3A<2=VJyv+xE&UgIEUk(R4g znOwl-T*s~4!^1qqi@eTze9Tw;$e)e``uxhUjKWw<$P`S=EX>V9EXfM2#=306*6hTd z9Khim$Elpd#azXW+`;`k#d7n@DhMyVac%aX349{qc!^BL< z^vuS*EW*;P#2T#6W^BtY?9D+O$qAg!d0fgh+{|4($P+xztGvU9e8Knp#$YD`okBAb zV=z9G@lR%AP8MKsmg8Tn%|>j=4(!f;9Lh1A%voH>6a4}bL zBX@8=kMS%o^A`W*Grr{)20at#6p|4bopG6jshEM;nU6(ThLu^94cMIR*p+=an4>t6 zGdQ2ixRzVEn}>Lk7kG_#`G_z1f!`VYY@kyZMrKSVU~;BmX69l+mSA~SWgRwVD|TcL z_UAB;%)$ID#HQ@qIQyvN6U#gF{y z??9hl8J1BPiwT*6X_aezxrUp$iwAjv=XsTP_>eF7p5GYkYM@hSMq&)cXEOfDOw7pwEY5QLi?!K^E!lzH z*^fgxhLbsq3%P>pxs7{ygs1s8Z}1;J;cI^4&({KdLNFYoGBy+O52j;Q=3!x$VntSG zJvL<Bl35~V^XGOM&@9C z7GqgfVJ$Xf3$|xB_T>8D+zT!vzbR*E`SB7O2#$rOI zU|MEjZWdxmR$w*OWfQh$C-&q34(B*dx zgWn2t3d6{Z$plQ!G|bFgEXWcp&#J7$#%#ro?7{vV#<85j*<8ex+`#SJ$D=&MOT5YZ ze9AZc%pkV|eSTwjMq?Z%W=f`KHs)m!mS!c^V0|`YTXtb@4&q2o;B?O8Qm)}zUMavyA$XXnvocT@tKT&G81#M0E@F6|6*-6VoP@TzxM6~+@`v182C01 z$2?@7WylaRm3ayoGiHi|W5_%Y5kjGak`zKoDoUjy(kO|dQdCNVN+lGPM15CvqBZ;e0OUGCsgZxRK9s zJ9lso-{VL8oJVS%Y=igxBy|UdP@Xz+oKA8+kM5av|^G z{d|b)`81#B%Y1`-`2j!S5q{5~_!}c%MeCD+*_fAwS&EmjDr>U=uVx!|Vh{G^V2{X1>VR`4;!{V}8MJd6K{K z52pJzTBj_`&4Mh!a=e^1S&vQGiXGUEeK?TAIgV2}lk>QUOSzJ3xq+Lwm9KCY_wfKf zBTj1TY;Zsc>^ z&K=yt_xKS%=TV;EFFen*-$&~d$6PGH;w;O`tiif$!fSXfuVZfx;4qHmjl7w2xsdnp zem=zYe45YmWxm0^{D7bE2*2k~{Ed-g(fVXyHs)nvmf~fs%GzwetJ#K~*n@pJm?JrX zH*q#^=Uu#ytGSL(@L9gV*SMSS@cZ+M(P^BmLs5Uo>Y=45^rV;NRrb=F~Hwq$#D z<@HS9P>$hb&fpv_;1aIj8a~FSxP>oqC*S7#Jj5^g9e?B*{>k*mqjk#4JS@bLEYB*e z#rkZ<*6hgcjOQSZ;CN2uEZ)XDc`sM-VLr}hxQ(y!O}@i}Jj}2815fjJralp^PbTJI zJ{IMrtjH^P6&tYy+p!CKu|J1!G$(O7Z{;1lo6GqiALWzW%oq7O-{O9L%rE#YPx4p( z!E`61b;`orEXWcp$IDrh_1KiH*n!>HhXXmB<2Z#gIgg9Dlqw z+`&D3k00@K9_0!C!t+e~Q?yQT%*6sM&a$k`8m!AEyoT5EI`-xO4&zwf$eTHr3waOk z=R;i2r};cz<{RA05BLd>@O%Em-xxU+txpDKV_p_!DPG2^tjz|znr+yLJ=m9nIg%52 z6KC^w-o^X4n(O!kpXCdDjl20SKjdfphR69c&oRyEXq_@MC-buy%dirwvkn`xCEK$r zuV(^>attSP2Ip`Amv9Bw@G(BcEqsYP`8MC@A%4m4_#@BoPp1DlTBoec!$K^{@~pyI ztj}g_&5rEOcn;zSj^|X);%&T>_i_~<=Hq;Z+xRNqR+Pu$;2GY z$D+KH6?p}(Vk5R-J9c3&_U90e<|Iz%t-OPGb2%U6qkNK^`66HETinl&`31k_N&d<| znC{nTow6`D3$g^u@p9H=JvL=4c3?O5;Xn@OI8NbA&f_93M7 zU-1}E@hnrFiPk40v-1)bVQE%iHD1YvY|ggq%%1GW8#sy+IgPh)J{NNtAK)Y0$mh77 zJGh7M@gsiDqddW1c%Es0i`FTQxmbY3S(cSqgLT=2*YH|i$KD*kVI0dFc{As7A@AY+ ze2DA$G@s|oe1m)W0YBjpe$Suy8zX0<^~u0&%*(zTlz9K*?+!8u&OC0xNZe2hU@@lj+Yz>y(vwScoNAo>f?j z_1TQA*^%8D&p{l)@tn$8yp4DAUasQ9e4Nj48(-y{e1`{lm|yb;p62gNeLh;BOw7T2 zEXqq+kyr34Hew65V;A;fe-7bjPU3W?k63Ta!$K^{@~pyItj~0eV@~E{5td>s-{r<@ zunrrsIoq%!yRkPDIE14(fm1n?bGd+ba~W6jVQ%2l+`<>RgS+_-5AYKPzn+eyZWxIK zxAPMXZhIseoF*n3yqywFl`3imW@T;`U@>0G3arXntj8v7$#(3_9*pNe4&xY3;&k51 zJ9syj^Fcn!C%Ks~@^!w&{rs3;@LQhbul$4QQb+5Tg}GUfC0LG^vnK1YDO<4vyRi=k zayZ9v3TJX27jY?9axFJ-6Swje?&3Zk;HUhG$9RfonJP`RJ{g&vm#_#+vjVH}N;YJ3 zwqWfNY*Yk3`ea{z~NEN|q^oXds0hxhX#uIJNyo-gwa?&Sykgh%*2f8uY91UvrJ z4I_~Z%*MPd%u>9JRau)2cs1Lw6ML{P2XiDR@FvdY?YxWkaW&WR2|mjg_!@WfU4F>V z_zjQqXP#r4;6NMJDKm32KZ~&pE3rE3urXV*J-hOHCU7Xna586b4i|6e2|awNp9wge4TG`KR@Od{FW#AEB|1+Owl@JVQv;=36|sKtjT(8%2w>a zZtTN>9L{l^!kL`MMO@02T+0pI#I1aVySR@B_$j~QF`nXCrpg?xPex|vB`m_ytiWo# zk`39MZP}SU*^f7H6en^TZ{d6{<}yCON4SyCaXWW#58vZQ{G3O5g1_)Q(*_qb;eI=g zxmbY3S(cSqgLT=2*YH|i$KD*kVI0dFc{As7A@AY+e2DA$G@s|oe1m)W0YBjpe$Suy z8zWhw^~u0&%*(l-BbUC7R%EH_%$Pz5a%UP54*p#i< zf!)}L138@IIE6DgkBhjJE4h{%xQSc&3U_fI5Aaid#bZ3hvrHA-pbL*{8JV4zun0@D z0;};#He_?QWoPzeKic^!Lm0EclbZ{*FK%Z0p$_wymH=hJ+iFY^uVCvqBZ;e0OUGCsgZxRK9sJ9lso-{VL8oJVS%Y=igxBy|UdP@Xz+oKA8+kM5av|^G{d|b)`81#B%Y1`-`2j!S z5q{5~_!}byqxH$aY|P8TEXB)Mm9^P`SF;T}u?PEdFh_C%Z{lp;&bxRYS92Yo;In*z zuW>iu<%j%?-|#qp<~gPbexV-jk1{hS^RpPsuoA1Y4jZ#2+p{aLX99BTj1TY;Zsc>^&K=yt_xKS%=TV;E zFFen*#iMnKV=fk8ah7Fe)?i&W;WfOL*ReMTa2Ut(M&8W1T*!NPKOf?HKF#O(GT-1{ ze!x$7gx~Wg{>Dg&Xnis;8}qU-OYt&RWod@d^Df@U)m+CX z_$*)GYuwFu`5`~!H$2Xtd5&pHM(dQBIhmiuSca8YopsolE!m!3c|8+2lw&xVGdPC} zxP&XXhL7ckXq~b$4-2s*%d-k=u|AuzH9N99<2i^U zIG$5Ei?{Jk-pf^dn2+-rZsV(blke~#5A$pOz|;JlsY^%elZiQ)k41SYEAk3n#YSww zcI?7l?9U+_%}JcjTX_fX=5jvBNBJZ-^F_YSx454l^9z2_JnLXK$H*gduavE>pd@klPKEOw~ky(vwScoNAo>f?j_1TQA*^%8D&p{l) z@tn$8yp4DAUasQ9e4Nj48(-y{e1`{lm|yb;p62gNT_IYZOw7T2EXqq+kyr34Hew65 zV;A;fe-7bjPU3Xl$~$;Bm-9hB$|t#*FYka1*!k74G6b9^j|^ipO}0XPK%}v_2V` zotLl(OS1y2@k%yibGBt?_GCZaz)_sYX}pE=xtPoN03YE-KF96c!99GBAMtY@-Yqp zVcl=<>$??l+I| zLM+Mhtisse`_?z!jIG&`-5L8k-$BMlFuC;XWBH;I>j*;3$QrLvNCJ1E}QTgUd!v)n*%tEV|gQQ z=3Fl1J-nX}aXp{r^L&|aa4$dLCp^OM`4fL*ByF@l8JLZES(v4G8LP538}MqjVJG%r zUk>I-PT)Kl2>Z*zaa$PUdIq zdrHa}uf*!C!^UjM_Uy{*nZThO!^xb%Ib6UcT){Pbj8Ab3U*b-_&G&hTU-CQt$TR$t z>Fsy3G7k%}B+Ii3Yq36?u{ArgJL5TsBRHN@Ig7XPPTtE^e3*~(8E)gNe3S3+AP@6v z{=n1xovH12GcgDAu_!NPMP9+H*oZCIj$PP`{W*lAIf>JGEAQalT+RpiD4*nJzR1`4 z7WeaGe!*{flE3l~rnBG8!rUy#5-i8dS(EkHl&#o--Pnf%Ih^A-g)=#ii@204xt1Ha ziCg&!cX1!n+s|ZW9u{Ir#;!wx+ewks4I`0Stj}g_&5rEOcn;zSj^|X);%&T>_i_~< z=Hq;Z+xRNqPyCG$@7D~>#=I=dQoM{+S(^}&&`4?!E%i4M{63d z$EIw>4vg(T`xqa{;T*>)jO{n)8DGSuT*E7_3E*_NHzll^!D zM{y#j@fObKVlLwYe1seM9AoP}P91YHAB(UwEAU@^f5(oy7oLaxtNoVJUo6jmcDwt( z)zAO#_Wgf4e>K#n4jb{GoyYVM_doB$=yCGj{XX38{kVgB_#Qvv=RC?2{DtS4)^&6o zbFl!6vn(sK2J5m3ui?LId;MqU-4kuk(|8N#b1`G*+YcCjgd6!Bw{r*g@I8LS&v}$5 z_zTZ7t@RSeTr9xiEX&HQ!MgnKu76we+nGJtk2f%Oz4KpH_sYQmC3UcH%|kOrB7H)G zgVK$m*&>m|@1qP3P9KHi!A1Yip}|2aM~1-QB&A_!aIhK~T09b28X6ot62Et`OeFF_ zI365Cj)zu^MA8R+qz(=yiQki0EfT32jt4u_j-j<9k)Vr6>R_SshX(Ui-FPr5asE0P zzb-VG&#}fQh6eMy*!a@WV7?Qt^MiaZh2wc5kwd0`78)$aIpc}vb;0r^o<{`n<-+wI zELZE$U_9|YXz`#w4PQaOC0 za{I0wdbb;&FnZ{S`2Jl7BzU$(qt?B{DNPev4j&x6Dls(nWV7M%eTODA9@2SaqkjDo z{>l`a+;s4m6sI>CF?_(_f$h6Ay=dCMKQG_kCq(C?Yy6Oe&Li6o9)3YOFH3H6v*BYC zMt5x8tXcauBl-u6Jvw3Ng-aO*bZTe%1rUp?%}~ z4T&yy|AfBd2KF92e87lc`$&8o-?#7Rgz-tI#*dC4J}@EJYQnyvL4SW{SbV?HL5_cf z3>`c?sBJVn*bXC=`;8bjEMa)CMg1dY!07m4K~SR(Z7Ro)9Xon(-*IEZeg=*nF>YkA zMgPk!ytf^mC&ya#;6ZrZbVo4s4~Ddc3*#CF&&T2tQiyAvByKe4N zh!o;pOA;5>D7od`mn1GcJ|-6z?)ziQJ3589qe^zq69WO-~_iVUoBRDa0*L5_fY7aqE)A%}gO~QU{WM~FoZ3<_DR};-ECqk5&R4%rHPLIEiU%5vcdG=H140qRSaUn z*Cg#XM=&01v3?r|Pb7^C&!Ni2f&#=wn@4i;b(j<7FRe3N*Wh_ zmgiz|^)84DKeN;SBK?N<(lQ0lH#BWZrOc6Vy@ki$D!~xeIb8qUF349gm=I2nwb=Ry z--p4!zqW&(!GyxGpukw%(hK4yCKI>ig1E)W#2vUGZeucW;b+-`e}B#2o*=IDMdmNO z2avQbw+D3z>k!tZRxkuFOB~M^Y#&MUoeU;~`^i`fCMUM=UO*TZYvE^n!tdFSwb-<( zL0r;)7YF@r4Ax!P?^VGN>$lMb`6>pT=8kn1#KrQ3pJ9kS4*P15EfQH5KG0&*+Fj6Z z)2f*xOM{rO-+I9i>vzBf`MwGAg>kVK%h&gUe20R3#e<1qz6QY%%Qx|YeABW=B1d9L zg1Feju@~e!7kp{@N%Eg?!ili~05^$=51{eA9z`VV|*<-143a@~sMj!q_&!kZk>mMIzS*(_<~U ze9N!S9O)ATh56bALvs0g2l>*(k_2(FhktE<*8RC4UwDoc<_r5zE??i`kw|!6A8X0w ztJorQWKIwi=Ia;?$>rNqJQ6t^OA^Gz9$q+qn}U4hY=7bXr{wZI7Hlj@_s_}YJ9JI( z{s{7f^A{eQlgqa=$QS(kt0kB3T#zre{e}1YlgsyQknGjJvL(N~rCSC2gCH)PzaA;% zTVE;?DV6mf36q<@JgtMBMzAjm^Yuz0-`?OLI6FLeYsu#8kvX!tM5@Gmy@S}~mbX)I zv$9DnSzvPc_DqS3vqBz$TujwsMeCpmuG5Rq+H!-zJ5V$a{2!3n=0{s z*+0uycS~F(Jm(GPFLr&NF?jsf{yudy!NFfy1P=8IjQUo79= zAm8?M|45izzD`@?B1?ml)iB@SU`TFx=Lf$ud_SD1C7175@Si_~pNkFi#jejUHh+Cb zq>Aj0B?)3<4=;TGj@=m-$r#iq%on>pzgWIX!7nrO#FC_tZ_2K?$aO(nm@jsHezAOw zf)5>i_b=qz|7NiLnZMZe`Ni^82yU*1*ATH5OMT(;7Je(({(_)z{$khX7t7Zn$k#NM zB#4bYyf9zWAm5x|Vwf*>eSWcgOU9*&Y>OpHA>W?2;}Y-lhWTRG=NHS@VM40^a9$is zec}AQwlD6l<9Y1*{9^fT4)O(W%fDK3`OXFT8U|6}{Kc-%FP3k6kT2YS$69jv>b?^f z859JC`KAU#a_^74!3qDIShB$6@~sK-tqP`x`KAR!a`{#S`NDJ2SW7Nn(|6+{;ootD z`DO$|a`}!0A6^bWe-~@9hZnAo)BEEh(}Rg&zL~+0T)s+EQbnGLB@0Y0-`L^E$oNxF$F4&pY(MIsA==N}D* rFkg;f2>T53{neTV|Cv(w|4YSMEMIWi{~zMc9gK^FpP!DkSls^tv@_VN literal 0 HcmV?d00001 diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.su b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.su new file mode 100644 index 0000000..3a73422 --- /dev/null +++ b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.su @@ -0,0 +1,18 @@ +stm32f1xx_hal_pwr.c:117:13:PWR_OverloadWfe 4 static,ignoring_inline_asm +stm32f1xx_hal_pwr.c:156:6:HAL_PWR_DeInit 4 static +stm32f1xx_hal_pwr.c:169:6:HAL_PWR_EnableBkUpAccess 4 static +stm32f1xx_hal_pwr.c:182:6:HAL_PWR_DisableBkUpAccess 4 static +stm32f1xx_hal_pwr.c:316:6:HAL_PWR_ConfigPVD 16 static +stm32f1xx_hal_pwr.c:359:6:HAL_PWR_EnablePVD 4 static +stm32f1xx_hal_pwr.c:369:6:HAL_PWR_DisablePVD 4 static +stm32f1xx_hal_pwr.c:382:6:HAL_PWR_EnableWakeUpPin 24 static,ignoring_inline_asm +stm32f1xx_hal_pwr.c:397:6:HAL_PWR_DisableWakeUpPin 24 static,ignoring_inline_asm +stm32f1xx_hal_pwr.c:417:6:HAL_PWR_EnterSLEEPMode 16 static,ignoring_inline_asm +stm32f1xx_hal_pwr.c:463:6:HAL_PWR_EnterSTOPMode 16 static,ignoring_inline_asm +stm32f1xx_hal_pwr.c:503:6:HAL_PWR_EnterSTANDBYMode 4 static,ignoring_inline_asm +stm32f1xx_hal_pwr.c:528:6:HAL_PWR_EnableSleepOnExit 4 static +stm32f1xx_hal_pwr.c:541:6:HAL_PWR_DisableSleepOnExit 4 static +stm32f1xx_hal_pwr.c:554:6:HAL_PWR_EnableSEVOnPend 4 static +stm32f1xx_hal_pwr.c:567:6:HAL_PWR_DisableSEVOnPend 4 static +stm32f1xx_hal_pwr.c:580:6:HAL_PWR_PVD_IRQHandler 8 static +stm32f1xx_hal_pwr.c:597:13:HAL_PWR_PVDCallback 4 static diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d new file mode 100644 index 0000000..b73ac85 --- /dev/null +++ b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d @@ -0,0 +1,68 @@ +Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o: \ + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o new file mode 100644 index 0000000000000000000000000000000000000000..3a114dd89def3e90a757d3801c895aa3d252ac47 GIT binary patch literal 786672 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

      L;gHyU8=MV` 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

      ;# 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 JH-lK*{{Yd^!7cy* literal 0 HcmV?d00001 diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su new file mode 100644 index 0000000..aa05c10 --- /dev/null +++ b/103ze/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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d new file mode 100644 index 0000000..d76f024 --- /dev/null +++ b/103ze/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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..0bdafe69128c8453419c91b3809c814584811bbc GIT binary patch literal 777524 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

      Yu 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%0AMC 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 z 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�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

      j;EBEj)Pw^se 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%0At`NwNvC8N{Q&PJD{sKhmb*Fw z4*R$>3t@7AbD>|_j{9l{xP#p9*J0_v{Xw+~N3J_{a!%aTsR--LMhf=*_)L0_Vpqc7o2I%OuMaoclUJ2XHU%!Q>P- z>`R0V5@UT+2&!_~N z$_3LiyTTn=2(Vk+!fHIaGOo{gkZR7C#_1Yv<|igZDok@CiYgi5!H z(S|e9?m+F#4Xu}?XK9x!S^E1hkZgt1ln*6< zVqxZZNJ@lfJYjZ6Sn>-X?h3!4Z=y_Ck%>0m6FMG7b`ONxY4Z6{C<_HC7tW(YAWwuI zw6d=do?wtcrO@^^P^yHVOovIeFu4d|HNr;Pw5S!1=?P(-aEu(5^+F#9_&pQ0(Qn@% z^d1J`b79G+uzVq$Cx-5&@Zn$x8->Q65H<-*mH@0-_$7U3uY^iMX%SwV1j|<8zHiZn z*TU|luxu0lG6K4G;o|prZf~$d2$Q$M1Is}=gvB&Wz7uXwhptmt_8P+X!of5{v|;@=D;>}R{tEa?ENc1E6dtQ9?Bd)B7_eh1kxWoVHDyXP0^4zZg15IV8b zJ_EEft6T=KBkb@QaCc!})&tX(&Aktu8~gWI2;JER+MYeiCSbXanMv?q2#>KkD(ZT& z8~4J&i>(}kB)r*CR5M6+vXt{lVu=nP#f``!!jF0%S6pv1HGi$K!Z9yGPjU~R*|U1fc3Kr&gUB#C^IeEg%DTj& zDP?Srhp@cIim0Ew&n^#w#aw@4*vQKV6SH*ro3;SyJ^a79?cIIS|T6R4ZyX)AYOOa#?qDO%W?S_oU&nEoKI z*?5{vw6XsF0BdI-oB{WSeKHMTZ`r{&;n%^Y(4zPqn>7Q_o$P%&Nb;WDOD9QeMCWO# zYb%;U(0-!5G)4Cpy{Dh}xM)QvFi(mEG|HY5J)#v%ph)%u!eZuC2`)tR>>D_QilVO~ zUbLtw0S+-D_tVgw7hULuK(V5MG>wZB4WXL;1ySfgH0+`%Zy30E(fZd2lpq>o0hcIR z=M3m1(bc~}E{T@(gr^id>)mqjl%2y{i1+X!Kr$hi|-x@az~iZVo}4}!ZY z>PJIwrf4#iMz4!b(2OQqG^i6KM|6J)bh)CnFY%P}MDZCg$roww0J=c*FaahvMCb51 zVvd$a8_2gsB{YXA65U%1=weao0gw_=D}9Z3M8DAz`L1XkRpd%VBN~BnPju!5Ozw*o z(ii?fbew7p<)W2eA+Pke0l{-OL zD_WHbVV%gs8M)MpnBH)BCJLrmZi~pW5MZsMv9#0jTJ+cFuzVxpXjAa5h@s+QhiC^) zOy7$J#~@D|@n2qWuocguO4|W(&ygT@;*ihqbJ&aT@PTqj{7obr9K|nIB9N2#%zki3 z!~ryWbP-=Z1kP1F@*h|p6@O_D;vv?23zTEx_Qi1U7N0Z&%tySQcD#MX%~V)BE|%GX zJ0Xt029p4>J{KfVJpLXM3=-$8f$p@pi8}F6aorDaI3uolk3eU|eICOkTpU8H=m@cp z3LcT-9W-*sh*PEk<-E8h9l}^~6|J`~irZ+-5-SFLb)N;Q~meI861)XCit zyYB;cQ~Z1jA{2^;Ed*wf__QPZip9mFp(_!`)80<0_!@;R6JJ>ja!>rc0J?`_@mpX% z65lf5=Xflxd=AVCv4q^~h?P`icrN~) z4uHH652IhRN&F}Uq*=T;8^TxOJ5youTFi`rLz{R~Z=ke`H&S(>LmWs8-*@8kv^~G zD|D5tqKy?dNreuU?vk%x!ta>m1l9jNB^#-`@RI!H4dN@=w-dxq5<^|3zvKxG`T>$h z^f8~5C~3lXO42$6n5QL;V?cr>6L@e4k#w66%(IdOYak4h1T2E^oMaPi0Y*x+Ujrpd z(l#3;T5_=wxx`8~WdbZtvUCZcFGwcRE^C71hau1Vb%mnGG- zwn~)@v4<{Qk~;__Ly}07`Kyv+`(TnKS-uO=vn3-2g3FO?qq8Wvl4sO$=1KPVhb~_- zl&T8_5__7)-H=#62X|9)DGgkqq+t%;iCdCFnh@NUcv9J`NV4!}kUNqn`q1x6workk zRN|fmu1r!-=WFgsMt=kM`;wriAde*P4A4E6#I6NbF6luB5T8go;vlS$jOqjORN}M* zx=P8URzO!tvU)*SElC}M=rt1lEIf%?$=17go^=v~JtEXgBEN_3nI!5V92z9Gz7V!b zKBl?yYe}DcxVK3-nr^mB5^dr4Mv{FD!ncy3>)<*hgL*^vPBMKd96BYb)OEd=T>ln< zY&a`dBxuV8<1{uFBtJJnx1URh2X}yr=?(`wPPP$Y?YR+k5FX?%*}=hq+kXJ$5OH9^4VGtq)9GxPTbAyK>s)$jptCX`yrH_#4&) zLT~O|KM)^oFZJ`j+-n+M{J76g!P1|bFM;j^*Pjkf1#k~&qI8nmNR`GQZaItgo#ti= z5Ga_NL}PdeXFU{IhjPLG@H@--()uZkD;f^nIqvOw=ps2?9E4Ha{rljexyDLxG2H66 zFgeeS@Ibn;+`kXt9>?`q0dkQ$pui6o&z+`nL;|;hb~qBbr%L!Gags;~FLB$c$d}A1 z9zvMHIZzquGUwX^m}#7ec3aXp=OOUR;I`ALhO1ondT^N>4twJj=KOzw@H*!?A6zyk z`ULJd++z9~bGdc2(#qq${{tvDxKKxMH@Wby5U-F6rPa+XE-@6k+uZ0$@GIhM`{H4h za9K1XyTe6PKzEl*r9FsJZv7?b%D6$)r9a?oD-rJ@XL|vdk2n)O$j6+0B6Q{4ZY%gz zaFc0&{V6w)3UZa4o<{U4Zc-8)YB&kKgSFiA1%R&O)bx0sasE4?Yv69V!u>gS|1?Y* zxm4;Eo491!TW;pELSgxe6K#O5g&R~3u9aI53y0TS1Z~Q+b6NMHd&B)*3a*12NDuiP zH^?5Olj}JW3BKos{tjXzDWVv zeo)#v96|@_-E6e|kTi&<2aZxd`na5=mbE}REOnrHma}x*I5-@Ux~4(rBE1p;2Ulsz z4Y<2W@BIQycj=dVz#Wx}saonG-Ek6r$D~I*VCgBn5d>&2>7TjC(_7k1y{V7Xbv`&> z>Eumt@RP1Gg7`~!($w#`v=@z=C!}X5LKq;OPOs@nX(Kh|l(f(aet}ZnAaFs_7xd+v zmUh#?GFWQ89KsN(>qa<)N=s;ce@4p2A+xhm5!EQdr7Ud)M@V~r4iYJyF&nxl=|&v3 z5k^a6Xz~>!J#U0%tkj2Ar*YCUT5w#DM)F~KQTithnDNpK2bd&DAJSIhC25cwOp>J) zbUY?SDq9HX%hJi8flHNYw}M=eZlzNlY0{1vh>$ML+XDAYX&r5RXGuHxz`Q24bQSBQ z`~1+NY-uMg#B!wfa8g2;EB%~mnR(LJG)&}6rv(GEKw7pIemA6}Y5H?h>i7eo3#HMt zez+x-PXP37>Ao-si=-R}QY`I7CkacWbBNrL9;CPDuGEG$qD!R%J_2T$^Z~7;?nzS? z!Qs9%jY=vHqmK49t3|?G>OrlQvM7-XI!2W58=EzYMy!($Teu z&>?-f7)iX7hR|`fg{ElKrv^@f>BdX+i8H6VY_!u&lZpP>#q()63@~`ygWM9zvzyR6ynQ%BI(_aNxpltUz=z?Uwg@c@yZLa_cmQAA4Yl!R;aiOv` zT_tJRttm+2tSs~%FvDcdIB_97Cu>~?E?jn@4kSi4+7p=PWz(bK7b|O}-zZMDk4jA! zWZjj>?4s<7FQDUPi|s%XWZ$;{Gf~#J2ON@Q^#yRaB(tVn&1BhAs)wY=?ov;5Sr+gF zx>Q*R?KY*!BIu_|m&v9gi42*TCeN8N&L5arvfW1Ha!vNJ5DwR6i8Q8W%WP=Log>@Y z3zm7ZtyI3sm$lKfw?HVx$Sia)|EcWvpFk>Q49(W6WEWF_SuOkMZ-CXv`cDL@mFx%4WZVu0wWXA$0F#vEPDp$`(W*iTAP`+9tG-PobR?TlxF1fVoe;@KZ$JFE=#6 z&rW{I1v-2AL>gKT%EM;@`jGsl6z-1lem{da$xqP8by&Xs1vqE9${8p}xZNAc-m+1keB+w@|b*aEgp}je8vJmd&yh3BapXz6Ae;6@;g)@@|EY)A$UJ|a6CAF z`Sp>&JT5mofjc4pBo*!f@)K79c2d55J9MYyJqnO@puC)>*+KF}e;{74e2@!tA@a(V zfDV-x(oE;9JjfTqFnI&54bRCf9?*r$YgWJ^LLN`M(vfn{lMqJ9zla59v^*{rT#URI z4w?w#V7bF-VeJ<_h5@`A?&fXR`brJ*5=+9Xhak zS>8xlf$luF>azp->MxdMWrX=_k%4_Khza?+m5BJ;htf3GV$;XKxESB38 zfRxB>4};v5e^La@Qh6#BH_PNjdXW3_xJ1NzAdi^?=!f!FdKn(cf27s!V|n{saOHB( z4S=qY_on^Gr}8w~LadaxQiLk`>OtVD<-hEMLybJx8xd;dGialrPQIVI!+Lq~T5!+g z59Z+UG{~P*UE{fYEL8+w%KOs_vr*oS-kv7;$6tZGlK1TeU5h-L#`jh^=MIzC^2Ib# zw#je(3|+f?P%ngiBX1i9@>cG*AAvgLZXDd-$phaZUZ=dB=6vtv-_aAaQAGX?p{*kM z0#NoTexai8e#PPdkOPXGp&)jOZZeoSDp-0MoD>6TwRBiGF6mLSjql&w|VB(>evJvE%;)WD{o{H5EK)e(~ULv}W!j6`mzKYFz!TBkU4uhY+ zVjCUMJFcjsuj8a*=ml`66c2YJ>p;afv{e?Qcwh|@te8Z52_cFJ>%fI7_R!(fGm0G@ zAZHZ?XP^sHOr{xpgd(>OOd=IK=}x#wm`` zv6TyoAyLp>R6Lyphj>N%Ahb3?(S);q!bHX9@8FQ6h@-XWC57%XA|xy7)DWg9hJ6jo z%ZfZ2Xj2t=G#Xw}gj@khQ;d*-q$}dz!7oEGvJLUBDrQrOJ5%w9W*%9JjO}p0ruc3E zgtrtkt6*|lv5u?!MwLKR7&4 zl+Z`{P_ds5gFaGh$cON;B5EasPZZ;6kg8DpO2vSu3N8*@rQ(19T$N%4eUvqdMB1pU zRrs9+sZ)GajIi~JtyDRArdUoV1fMI$#30@ah5kA)Un;)d1;0kcR$9C^DZX3<%U22u zJ>(X}=TxO?Rov|c;cLZFI*-<-xJ1wFjpA(s$Xf+xgs?-A{{_f9MP4$XI~6}sz12pk z6@l0)_kV^6`;=Fvf!nX#(T1=GltZVXefG-p)VCf~2D?M&pe&-lM{!jCO*<7%N*;AO zhm|J}!^BznYXo#hlzuni?y4-+fOAte9YQ>JWqvA1it^|Q2ve2zR3g2iZ0-y9G-VN$Pt%nj)Ame;ax3jdWGeT%fXhO za>5_LysrFpJS?-74SCSzDjlf;lBX=7%<`3|>HJTDGP*Aw$PML3I14N+R60F`?v`=^ z{XNrd<(y`aB4ue1FpHJ=BWb+e%9u7--c|C~!m?C(y9A_6xq-gFd&-xzsCb~P?g8OL zWfraD9x1KHfP1Vgy@jTfD}$quM1`_&EQC*$lWBLLQt6=wSEXEAh6vTlVcCdKtK9V+ zgmucS34pFwj-e;`Oc_LPR)g}`N^mcfiygqdRJQB{bfdEAFrb^2i|MhxQrb{yu0^Sn z!o5|wAQI%YvWniUcI7)dne;|E;1vSBReoIu%MPWYJB06)(*9_}du37rz-&}QszGd3 zOYXvQpK6a8y8S9AUx3-EI_V{{R}DJ|a!@tg6Dc{Uwovp#s{CoNbW(K&fgDzKr^&3d zs+5*AM^w)AO1Y?NcY||Nu^JF}l_ynnkE#|vLZdxYk4FORm?|d*mR_onG*k6fO`szf zKB|V_k*BX}4wdx$R3$Tz*>Tmjxo|(BT1S0BfGVDrA177gR|Dmg%A3v}o>n!C19Y$| zI|B|Os_cm%p{iz@2%b?rUINRrs@eXC5T@E~g2Or0+P{Gku5zb&PlW2~dk7;{tNsCr zQl-{4!;=H3L2o#tHMm+VpUsKLKmlc5DxBwsvjS^i>mPNfD*47ln0WaQvZUm ziK@j@(e@-&c@4r|QXRYsE?Kqgb8soDb<|5;R{hZr4yh{BaDZJ=J$nO^rn0vMNmqrB zgGq+!)I&7os%mFn_+_dR=&@$0&d|K>nrgrfwj%gWOV$q*>5yRn`Q!m#7S$aJZvN!ltJ1 zu4)by6iZdVzk;qzrKjTbJylpXlE1IIu?vA7sBVu1_fWNY0H7bKM$t;@v1-sl_?4?P z0{o~?RILk;ONHw8E$E)Alp8@RRm*5mSf%=!<~G$TZyGIXRBq=$YE@B=z^qf<`2@Mt zt4`A_;hE|Lbr%h)!Oy`xSB>_7$qSV)RsCM70%#0qRQ*ERj!mjS>cN^-M`$p(hGBQK(T?^Frb0M@Ch z6(H<;)ju!cZlm7d0G+M+-42j_YL2Q+`_-OQQa_;XVFd>}brG#z9Mr2TVRA?vl8Zo& z>dDsNoYeVLN;<60sDYoedd4nT9#Q{6Gk+KL9Qqku)v@%>yQ$j;f^$~~TEXO~+Kt{9 z54EHRbjQ@|djiZ;J*qqWywn=nee_oM_yU}d+U8&AeAPL$|L&(&(FDt1UG@;%akbYR zOck#De4{u#Jj8>No$}~^^_9;yP}?c6z*y2WmIBIR~J*cJwrW%4#r$nfByy! znd*znVVR|FpN@Ff)bUh-ysrLtJ1n!+k5|DYN9}YIBv*}dqxiVgKhnv7eD%{mfKs5A zQ4%-QKkf#1Q|(6etU`4Ot=Mm=xA_3`wtDAfw693*7XhwV{Tm%=DNzsq2;`1hM&}Fe zs;el8Qgs`3WMyhm7{v#UPBlTN5I6PK&Qu(c1U7Qc@ ziQ4ojxC*tBM$xBg2ihgAR5wooSEbfcZM#~n><*L~^|$m_D)s91b|BBxkLVAR8r0lz zemqOYYa| zH(!HmQ_r9YLA!cU1LD0=@BR$jTeTl8lRDI+X^Z}y`g7VF>{P#QLWK9~@4iC>8_lUB zFtOD{WWaBqMo0TA`!)NdFgc(ZxEm4dG@2`jV6Slv0y(HjOM}os(_Vvg4{5sn1!zaj z&>)~VX&zJOcv$m-{u0?)vtm8Kj%c#zulHOuxu3(*RntzzI5*9rMmV@@(vpC3RCAyM z&>k8+RV0pSnpKGIsoC5N6EDqJT5o!5V!LXpnvpcr`D%L8EcUo2nqHd|nv{bu3DBHn zKu&7XE8urZb9yPF2Woz^1{b6`PRB$}Ytr_>Jy_$PjtC)|8Mz>#nng5*pV5@lfO1w- zN-2eD!fC2UVYgFMuP_dvWyn$PL@ z>|@Q{YY0@XanT{d6O9i|$SX88tHC|hY_J7asi~udLzO0$0avY=ORsm0Mn|)fT8)4X z)6{7W&{4vA%~Lu)`%Kf{54r|T<{<=nuBm>DurD+_X<_tI)3^YnQPWO!uqMqAI_}Y| z@u4;BD~;#Rux!ydYe8ByUxx$bwMN;AT-r2;qe0p=S!W=8qbae5$y<$VKHNJrD`@HU zPSa)uluk`A9dz$C!B>!yjW+E80@-SZ(PsWW?SfC>uwQ#22Pg-$lj)7L)4I_*++OQX zb-shzT0Mw^Hh(xA4r%p%;2gE{=wRVt?N%zqJ8QphK%gVqeygB!(K^ls=c@gv3?^>c z3pC~M(0)x-zhl|~v`OcwT^9%wFRl1Egx*>{odojHzM;%~wS&Jv@_yP$be`W|JCJ7S z$F)DxLDUo4>OdqIpnVhy;Yn>nEldKnwY2OE($2aH;c0EbncX?5pKwB{J+6@DtOVDnj-~E!dz8KKS+K4qsB1PMSwnQ##EkZ!2YIoAf zfGgU+QqYt%tvC;U8QQ;Xpu4L5iPlw_+AJ*`vb2XzgIv@8a0ezi+V2O$Bv(6|PATMR zqc?)&YpupYSfH)jhj=%%o)6)EQ+twDV7IijRJ6aX6;O{-q-|ITU9t8)RVzxgc1uA@ zwXXE7lxf>C5a^!vW(dIUYp2qC_CPDU0QZO5CA4qxNE=Rj?2olZddTJ4k^^vfqWxhS z9G+^0bUv$6yJQv|sJXj+CJ1F)oZou(1vH)dMW%Gv^_^a_gw2u+u|>@ z!M_3erFQi}2phFtv}kJ99;5>ME3Fl+5n8mD=Rx>d>pcXdO`BT`ly>dcDd65{yJrLC zt#%7dtUI-pG?93(o%{oGvC$2r9Zg%EI}Wl5_vze@19QKw)MCU+DJr~_7ItJsaQ_&`m zn=a!iGIQ7Y(6a2PZowuvc<4^jNO??Ws)o)}mrAoyFI_@!G|X4$Ok;qbZov_7{<;D> z=5t)9J`9r+x?cU@7oc<53cpjj%Rd1uP^UNpVUTVrZH1lI1@hq@tP`(B5+OP}>P-{ZAjE<*<-+7&T8c9%#k@`7$`Ia0c)JM=3^ysn)}mI=CrR>&n$$D06$WStjHHB)pGZ@}cTE|I>RRNbC0 zfO$n%bp^UKT{SHn(sk~y;FqC0MrY`+>e_?AW$NO72g%aSp>Ok=j=K%+x-N`1pR;vy zYvGrpJ4IWWxw?;N!Jnu5l7^Rj-HQz%1-hXjh)}3oIS=HP&gBG5ZtM2a#%+;q0j)xc zb*9V6r9?Mn2AHef=c2Bn-|0e&|Ns{fREy2f7NKW*@jJU1B-ht93mqVN#>B4*^Q8?$SKy z>U0Z>VOg(RN`-=Fx}!8dYtXrEhUIgeS17m_x;UzrztmZ%-)+>rpaZc@x|#jq-mKeA z1N1B1ZXS|o(Nzye`&xBFX`1$0$I_92Hr>1opuE+c{}m=3x+zqYd8c!rt*K7kZ*-FK zy{_ysz-;s;nuglyBf8;X?bEXd!0p#p)BxpxzPb=5c6ucaMGEcp8L1E+)DKyP=nncj zRI@syKQ{`{j{3T-;GFcAdjtBgzDNb3vpz5oDY@#$Q&r4OU)~?k?)t$$Aka~L0xg<6 z^lBmej_D_@gr%o`8J(u^(%0C6c9#p*SuU>T?177KDg z@9`-$9e-9KAbz z2)X)AwARkkXFmeT*Uu6=f3d!X-6DLvF*o(b|uFN*}q zW4(w1mFpwv|8w<3Kid~vg?<|S4boHnY+4^x>Ie1)N|k;HjkneMFQ`mWqd!EI^;&%+ z&F<^;6KH>>UY|`TdY#eipsg&-E5M)BQq!eLpOl^xr%KY1V&7EqbNjvKA;U z`Y9{n(5k<62an*jzQ6>qHoa^lqPOdXG{=0SpG5PexB6*RwCK>=c0l(|e~xD9HinyJ z@Uu1e)8c2Jp)wp~zriX6(GM8%Y4Kxcm`B}=yo(j!QGJAwNqg*)4si@ zVFVSOybMh=3HCN*jsxdo@Q8wgui_B6 z%Spp++N(Qdc(3&yJj02vLGleRXT!3MS!}T({V@WS z7*0F_cgOI2EKKeiwyuR=so^wj0F@aEKS!ST3_RK|zHgAwWaxn*^H-QWGz<=c$s>dQ z3G#emD5H}{6$bZ{5I!}GuLh|!tlj~?Duan;5Y+~z9_}>;C7pDtH7Ezbq|Wf?QjmIs zV-b>nW~iM3um;20o)A7av=jjIg<&D>SG_dc`G$}}6&HiLU*NS}t} zUmKigcc9Ji?oT+h8|M4~lQ#x_8~olHVza?@7#{Bjd1uIKK}wy5UudrJ-oR^xiH)(S z4LVz6z~9jAGY+LLcE7PN^{oetbEp_+XS_=D7klIFx$rw^Tu=_;U|i=3;UVMN*)Tb5 zTt|JRvvC)F_D76E=x^s;jMwQeGhB^xsh;d+eBB*S-rbn99ptESz*ty%7_ZUn@R)IL zIE0=?BOiWVMxT#Cyp6FmWAQQel7jde^Zx~kpK)Cw()Bk^eF>A}#V&b+4d_l8 zUABM(8b^(TF39+hMzzyMksMsGQA_LF5aU5AxP=;Hsd|3KSlt8eXN`Z+h!AG1YeEv| zj89&|GTd0231NhBJ{{qTG|Fh95@qa0Q-^4y=p|B$G5$&`=<~*zlOc>XuK5PS1mlpU zh>&R1i6Klfjz~nH4CA-$u)JzqJQFCH#vppxvy3}vYvY(^p+c|XqH!KY#k5XE#t7gAh(SjG&L$R z3TS(#*tnD4-4bKcdZ64fy3m~Au5sJk%tTI|(Mc8WN zU!=XVJUS03&x{w=!mq(N&kGHEZtOu-=@&*z4!D=bTe(1K zG#-5l%qC+X^~ue~l;_}H88`j~losP?XP~qichUI%+W2ZFbZy4Kr_i+wNE$Oo8{N%0Zf51TePLg#EMrV~U*OcA31=3<)N z7dltd1Q`OknR3&h^DsT73FI+TaS9wfO|z0=>17fvLxSF>`E3a6V``wGz}K{(7fk$2 z2}hvwHzit-#Bq}yy$mNz%c+hMV5*{HnI}zaZ^QDGiPr&LpsAQP+n z!KRs1v=1@)3xN`9s+j=Y8IvPzTAwu?qZ&(?>E&)jKWDNZ4H9lLTnC9Ty`2QVNK@z+ zz>G4zO$LcJ-E9D7jOj;O*_<~?WN?o)*#|%uXX;6R|8T(+N5?=fnkI+9J>ImNmVpVT zS+urDG!;EY*d)_>8Z<7M7C7PYB%9jbfuxwY7GPdBskXsA)wIF`7 zn<{B0mtk5G1>IHCSJbIynv&@}QI=^l{hHTIc?KkZ-DI2vF547A2Xt~w(bPTVnr1wK zU!KWAhth7C7SM2Z)3km(q8FNadBWkAX%elVZ=2=@z_Q46N&#K5X^aB`m6+~Qmww08 zgHDFuHQ7yud#ULQ@QA=seno!m8NBWfUYvx(#TwG5>l^UV_Hm8@LJQLfoM^kDR2o$y{W$nD9=n2 z=+JV5$@g10JU4CL0No4IroDiEX-XOcutw8a`l*^s*J!ENY-$|}^2+2Pf=P?%9MvaU zP4Tvf@Y<9~>#8)Cvj!K=1}v}^YA-k zRun;Z){LzQd{yR;XySR!>~j+&+?>1|x(Kta8%U)2+yH<@nTr>JM4Pi{Z5U&A+5^lu zGyZQW_>RnK`m3Ug=4&?)A>ORY0heI@@j5IM&ENflh9#Ll8U@Qs=4KjRlFipD(V`Ty zZyCsC^FZ24Ni|o~Ky<}?hUU9z<`i$Bq?>oq=bK^fq>21h^K%2ZOmiKLV_D|!Y5(t< zIqOUKT{mxD4To%Vkr}!i^TKa|nQKm+4w7egQjW=l6oc zOY`M{5H^~BrhUUE^SeoKXf|)^3*9SoKre7D<~MWT&}#1c12A8kk4uqfoB0qQT)Vl= z0o)t&NNYUZw`Th}ARXo}%0b?lH9DAdnq|Qt@6GWgAU2lgw7qR>+3$;Z2Q0ocOSiN9 z{R*7D`>rN#ld9JWON1mbMb428oHi_2_a zx>)Qx5Z2W)g{o<8mdL-sxmzA8(3GQ=S|dz6EcWN&aLn@l0>XM)?5Q90viwE!C2vbM zojv!l*wP;x_*%wN59Vj#)8fwG5;+Sd$1V3fAUt6yp@U!nmZ!AMa?(9G-(_CRt|FrspL~xGVgUEs=CoDb@0rMvE&J>1ddw zSvpsPOSj~00heJJO$FMkmIl&gTFR)boMmyKuH>4fV-&dSmN(^ykZtjDgJq6IxCbQH za`b1AJj?iRK=Lg+Ucj=zBA`Y64a*u@9Ne_5s73TbO9x>VS$g(C`-&}xY28?2aiRsz z9m`f))Zeu{xCl~esaghyGRr^f5$~R5*$VjGw`{b-Gkah;LhFZzmbMsJKC=8a8WA2_ ztf#}F+~TntBkxEC=5}*J_!y6T;V)p5;Jkv!u}v*KR3)2$MIK;k52}Ycbvh*I_B9o%(l{ zPjZB^aAH--9%lGleM%6DIK;xKqIq@bqnnWxLW`H91+~C3uzPC-TLw; zFga>nGa1eFu(oW1@R;>&IuhV%%_M_(Strwc(A&D{HY|OtD~7?{*V>WlZhqD=_d)!v z&&ME_q$*fjeitHXU5JbzMEU29-5`uwr$zYvNAO_GtH4KL1j1?GDJX;y%Yoo zLj^>(A_9Uk1w;iDL}b6;(_iOv_PO_W@AI7TT$qg;lFImF0>m^%4^3>3Gt~4X|G)cR_xDpG!e8%!5NER^eQASqC@Js}D zkx@qVdl937^3O|*P3OTYX7r$9oKnL0Fdd+j@g=S0WsK%5SSe?0rcrwZBZLk{Rx(T- zAYNvK&jGl?_|XK(Dn=ibz*iYxP!GPE5l#JqYm8l#vD7gBplMkxquU+4I>xH&@Nk{s zF#%pZ!|eoYHZb0v3*rq%kqMGF8FRXTH8Sqd0@%bz`w=3|jG6y}*uoe|LDa2`QEFYa zF$U&AWVZ?t9)4dEm_15k)ekcR+0po>EfIfzT*5rQ1C~XrD8ST-ykpqlg>WV#L z9F@b$AVVa8KCn5;cwsse#u)P!K;4D;ni9a3`D{0M zZp`=c;N6}1>U!vTFt2|G-cDwO0+=UrA#EsL%nMYA?P7+~PPv;I*aB=1GhhisyqT|T z0OrGd@)$5*rj^FAeoP$&znA&)YvAo;md1d$pQ)!_>;Yy5P4WGibDc02!2E}bcHF1@f}%*9y%hnQ)ED-3iDq7-vhx`8+qF=LVMfVt?Xk>J`usDF>2(T{ z@yz9$fh91PP->gVtnvev#N2K{@X5^6)Za~ECem@-ROZjr6G&q=JPj+ynRBQ?dxB|M z43N%bq(VJ|S+ot3Cz%5=(92|sX{43Kw9v5a6tn&a)K4=RpMiIVS-BD3&oWyq(932% z+y{`uTz(LybD6);03nYldjyel%qgV+=b1A*VC(|3TMaCq`6LYq3Yea>VHPqk{s6ZZ znQ1nFBIbED)Gslo(lEG~`R+N0lrUR-p5|%wihrlrw{jkgQ<-NV`QP^H+Do zd70VpJ+LcG`96qLG0m9}xyt0d2rD(r3tJ&l%Z$!|l{#h_4QsA5KlFh}J@d~J5F40< zR59FOs#ierCUdzfL>if{)iBn?Z0i88nb{tMThPMHSq4X~%tk#V+n5E^1H8rjF&+x- z%*cxX9n7c<=yft}Jc!(8=Es28#VnZ*e|MNc)NH)VJiHZp_n6BmneAqtrzF3ZxsFa* z-e>AB!qEff+=L4$z5Vh!`4 zeuULTt=yw5gApK_wV?|l$5;mj;3$UGN}css)*GGxajb7H!)-ikAMF7NtbknriLB>S z0g_k`=!=eI*4KYRFNMXXU-~#}64je0Scj-Rb&@5dj&&w0G#kV$Rx+gyr&wF5+jN?> zm5q?juo4!6c$U@kE{NHzos$t@F6-m^~*6bs&Qq0;A4o4-dBP9s1lok3U6v|lVX-zI? zrMwNSf+cz%yh>KQ9+H6Re7pAYW21v4+6-%dYuCXqjo>1TI!7~p%}y_RzH2y)XXZUiF6CAlbT1ZtV`st zjWtpV>=vtdF?by;P92DytXm6U`ZnudIuqQ*TKo<~?y#P0Mo4#AUwj78!?Ldg=w*%l z3z0t7Fm?9&SuWopvWKj^1n>q}tvg`s5v!0ox`V7&Y0UDN^&2&$hFB4F8he;kI|RKE z7MBNwQC3GDB*$2HsD2n{z0QRC1k3$<#NxuvasYE>&ow~Zjh$`*=FYyV2iVD;v=&59 zcE@>0da+-iFDQ4hO`QO{*`Iy~kv;66sb%8Beub)XUpD>(E>?YZBdv=2*n=nGc0W6V zGVufKKI(G#vm>cY3Sgg#05Om~Knuh{wkwUhg4yR5sue+l(?_L6zvC9oOvMMn}lm(H{$vpa);rLg^}$C=8W`2&b)>|Z~D`f>JIs{hj2 zi)oIY!A`pe;z@QH)g77aSzB-?ve+3^ADv>aqwn<3u;&Z_JIl7_!dNyt=xbm(>|qHc zbJ;6qfSAWNTH)b5`xknhF0e~!zLL)_9R^mwj-;Krko}ZD6fUycX@|YU{xJ~&7PDED zN0zV|UqHQ-{lXXEm9cxMp;6BErruK}yO*-q%j^Zz@43Q$#Q|a!dw&^-SJ?wjNLI67 zr3$QueU*;b*RmsNL8@bi`vbeqZlX1$p6&JoJT$PUc>*-Dm(uvDiG4g3ku|g5T!(9K zVW*BmvX%V{-N-ifdFnE@vo&;-r-Plc8a6xGX^R1Fvp<*)Vi((20=+xzr)k=GkNweh zfNu7yyJ4k=ZM_F8z3kKUHOqbW(=`b90ekV=0R8OE^z1%lf5rrFfPIpJf5d*<1(6N1 zozH>zn0?R<>cebTIKfJM8??V8E`btc2H$A!T$R+L|i%F(PYw%lQICz zopa$sU>+PPl{7m!z0_LuB?3FlX&-^H2#%EY%}CCgDXre3z&pm-CWAr@ zr_~EqVmVQC6f1#~%>+o~T>lOVNt^@J0ZHYw?*f*_Swvg;aZWV-ni(7x?b;_f&6Le# za^k6SJI&F20Fg7C1#}wiENAJbxY}IKAM|MCah|*ky>pyd_krbeG_)2JaL&hpSjeeJ zK@b-?<5R&a;{5g#j9ub%j>1?mrzQo&63&YW0A-w0G`cD0csIdA1;^(rSgGXPv;th_ z{QMBcu5jYRpIj9EjHs?oL2fH{oX)(UT>8GXgF6ZZuVC)`e(i!M=a{>>+`+ZIbC9DrPCrki+ zoMjYXKPN^8V-GpSltaAoR4dP zjd2E&;dY!eZx4)3a9*VjxeJ#`Z@(M&6&Falb8r2Z!E@iFBV0SVcg^tU$xS{Ao)@=- zI&HhSG6@uRb6*UEO>eF&7CayBS^5Edxd)R$^y8)(ptqMBOB08E+^Nrix1ak;FuWh& z4$(Fkz+FE8ULg0?AcPyl4WNDHAeXxW>cQMGiaLb5ZZSkcxfzt(gmGhN7Y*lr@C~dS z=1!-gH-h_f9P}c&F)!mTMR9l313SW9x)th2xyz_E5Y7EL8@yO<;a@No$K6RMedD<| z=r>B>z7qIi>ZKp&zC^RL6I>7a19a(J?*mZC z;96;EKFJNa04tf?$fv=};-=8sc$zzd4#%J2?x88oS?(KDfn{@7lG_~a13HqE%N=_e z#60fzUqRs<_jg+IE^tHX?&fo!pAL}%u9FI*Lhd(oWb7h0i^~5Z?$^^Ga*4a;3P3UU z6$3;{xfPTMmT_xo98}Jol?}-X?lVgPD!GqYFnyU@)Br12xTmRFs^S(??p@9Om@2+& z+-11{HC)$LTv#nPDgg?0+;?Yzc%AEV16Jy}avEtha1$xPYUEmJqiy2us0Oi_>zxUk zE!@$)0Il4Neq2!-mrHBGE$+3uAhvT48epuG>;Eixx4CW`;i!xI_z=|ZaF-QCkGb>oG(Ym-J*IMCCyzm6M^9dM4J3E-cC;bDJv=WKc-}lqE)@KD271o+^7^Uj z*~fc8>zP0AW(|yqt0_P?@=j03$K-Ols4YEX}ATqc$u?6Z0Bv40_)(J-v_Ug z=f4!{w|PNS5O?u9sKIcTS5JlCJzi)a9ChYR*1OppQUouo!>hZraky` zG~n&z&kP1{7e93^0^H4y3xbC|{H7WZefdkxu;R!6=`^st{KK<>9pERQL7e{l#2HWz z;P0jW*+KqN`Wb`yyTafhgwG3wl~De>TY-h~Kj#5E#Ggy~d<1{J7Q{&Yy;xvT{9`Xc z?+AZ{exsxOwP(PK=3i|EFP85;A0UqZBb^P6=YK;xNdkZP4R}xFCl&)s;xGFKSSr7p za?>>avST0~=Z7`}WbiLj|K%i~=K=4T{I%5CJICMjJ0#EZJ!zx8z#pQrC7<6)`$GYL zH8n5``Jb)=?;`(z3|JArfL8WP{JAuPF6Mtir+`cN?IBPo<;(s8DC1XBQBlr+>ljQ| z@HOY)_A)=^Hh5R~4EiXdiXZwaY+mJm--IBl`S0fgtKqL)36Wa9eG+We@!hFJtmk)8 z)4qW}NO{i<{%1V%QCveG z-$@HZKYtf3+Yk9sR9g)2gP(%PBmUG1T*@Hd?*)Lz{4LKyWQf0q7J*^@*Y}|}!rxCx z=_vo#%`i5`|MoqokMr9p>IuF=3ZjePZyM6M3gW0vbra|g0k{j8^e}h`PFNwbQ{X{0 ziKpNst=?XO+0Vh>EX=F96sp_`nYe`vfZoz}qi) zwGuY{1*x=j1qga)ffp!f=K}-@c2W*~P|z*_2o{{DnOmrUw+Fm1!G@iVrZk-+~=#Bxb+ ziJCdZ0>Ki162aIFsFw;*t{Z;{{bsi zg5$JGT@~2=faz+1j$XWLf&G~4NxygZi0sfK^x6p zZU~YlL;a>;{)-?s3I<$&H3_!R0^ckMiv_VwFk==ZZwWG|1GEbc(azN&Sh*UYQ_x9; z-)+I!X8^hc78(TH5qwW~@UEa|6Joh1SV|MWZb2IjWO@Y6L*VraRA1xz?hD?by8nUT zqu+q_2|_pG`uYWXsp@$sII4r*fS`rG(|9B}@hgaff=Ds2$AZ5$!uycGjefXcL1Y&s zM+6cLL`DVwvm)v-0V4p|xZp)P-#Q@>z79PX;lg|3tI8naBh014Y`#KX5+wbEdvk&96&h(Evro8( zez^U@2?vM=gu}nUw7>9G3obK2_&lA03Kah71HB+&43e9wrQxK;e*Z>;))<3;nX8a9FrT0b+#k_IZdz3V)%u|EMs~3cYBdowEC5!t8$7 zj1gv-5p}Gvkm}-iVKM!2i3H)gW;jX|PWc{Kl2CUJ*Ox4uOV4MDaAzBcX~Lo1@Nisc z42Sv&p*wZD(}mrSA(9~sqffq03V*l{4_U&@g&>|1n(3s)X<^|$m_94CKY<{!g&%wd zEJs+k2_m^dF{Lqi!mUpMJ1_i43~)jCF7+Vtg`Y2ju>#>#N>~ep$LI^#i$Wfy%a?>- z{(xADh0o9=yF~b|5jIPOo0Y)Igc5qP%7ue*2(VJPo)7G@@VkFt^NKKi5{TD?niANo z5k^LXSS$3m0n`b7?n3gqa0;1j5N1+a@`i9uF-+eSdXGV`QTT2t^qPd;IUqI*r~j9n z2s?iP)+ThLR>Un~=vy$>E?jg9>K(!?`re{b_*x^>yM+JVg~%OYzXHU&LMdJ5J>ff( z0J??m?8UYB2xo4EUaxS{HxTI)3aF&%7oMQ$+(Ti#E4&W~yDi{75-PU}MELb8T*|0$Z4tnjP)rHdgwTUtQ5Vtg^!mDrUb7%1H_;60?753tsRQC6 z8k9rbQ{+SMgO}(XYCh}|885=h9ubq)I&YEtlfZmLcedg#`HFIB4&*2LhkmMkBB3vM z`$h9;kvkx=(tyNYH1aR5AwcAyJ0B>T2nKdg^xGzw4i?S$8(4_QjSh5$idH=dEKKxt zKlBcXW>1B&!=m>SAsHe1_-)vX6e*mzlxUIXCy+cQdX_Td7?JEFD8!2TJ_RpM^x}0G zOAsYcuQ^e)u?8YZqBp04m@KNM8A^)CJ_lH;=$$#>rHNku3hF0BfBS=&F3O$^y$lg+ z6dq2BPA7nvDSGGxI3;RQLgBP%&L_B(GorR75IHN-S3^Bp6hyU5j_7_J)N@6lD*(=m z^wey;AbP}yLcXYxx+(>tH>ln$6uD4#cv18fozp22WduRwlIYzpaSg>H{)ga|h$;?4 zvQ+fwUl7Yg&n|?`a?v+5xvLP}90gV>n)(SMyDa)`43bwwW<7{iqG?Tt^Q!39S$MA& zO}Pf%HBrKU%@xt4OHim4xxNElorpu#{B_Z_*#Pw-E;Wc6MEj`xxFPzEdJs27)*~?1 zDB42lR+H#!D)E~|Ikh0Rh}Pslp;dH+W(94cIcuPIOSI(;NVbbUYlF=WQ7BpI6sah6 zxGlQ79szcV_Wg?MyCeE+0$8``HdUWJqBW^7)+;(juWz5|f;V{mq9d<>_)xTh+RB5X zUiu91v8ads65NoelMS1rqD{0nj){i!7_2Noob zSqt7l@iUv?Az0i_DOHGgxfb^&R4k?3EllkE9K=K76iTea#k1*1$6@gT7OX^w!|2#l zl(?7<-5n9fPX%^V{4O0Hh!&U93wuo5W+D zICx3o#d+W*i@$jYEJfV&0P3mYzbIi%6R+NakdBLE=nXg_UPupgx|mD1EN>3CiQTe+ofB*O5d3*@ zIDOM}LEQT_92JOvr{t>;pReE=E{c!Rk+>r9I@5??^kRkDY5#XeRI}OBBk|64)otFGgDb*Rt zE;mGdRwBCzkS!UV2Gco`1@zEfl=vM0D3WB-X!w%kH5!@~OEj+mE0IjlS-4Wk@_!*x zCaEaJJu8>+Y3NcR*_{N*O3B|ehpm!)@Hco@C3VN3S1oCvw#YTf2xW&gl86xyYbD(? zpin2#Wr0{P`RWmDHb`O%AbCSFkCMbD$ph-*G)t;-Kx~mjbOE$V#^~r}o5cMFz%9vi z>I=6^w$p*94oM)jPdg=nl;q!*oO}bkyOQbDL%Jskp=Y;S;&L0HM>2zt8`3NB83MR3 zaie1Efh3y;fBllJhk-qmL_7;)1CnGKbUc#mqz8IX(y|aD!;(XPf;b}i=6{eJldPd# zW?V8o2={YBqUZq6P3k@w-rc1KsQUDfJ|~1RU+HIZi1kOAp@Y(#Pk;qW^@-36l_pYqBTOpm1$Ia}{0|}v zm#%1qqr=j^w?T}Q7O@dol=Qu+z>Y`{lmj~|T~Du5wDc<~BaTS}DKChTc0_|0D_uGl zj^d<6Hvr>oilk(mHI4^y(2?`gaw`K#&mn!H8UV(H2JvN2X!3n5eln!d3 zcS*V}5WHe(uLQgj>Fayowp4np6xUuRU2qBh%B2Og;8sY#`vBmww0R2@u1J&UBxRNK ziDR&GRXUXl&1z|IHx#Z(?+yXfNaLv^Q7c_fxp18{Is%f{rA4&5)k_;)p?*Wkr;p}t zN*@$Kp;78b?UW{I4j)*vba@`)Y>}oG18bF@q#ndAY5jMw*)FYl6Bdh1?ny_fjn*yQ*an3j>5E11&?~J8MlAQGCn5nJNaHWTQJ?f- z5hNclmx&{Wmc7Sb8HFA|ujGv*2h{%DoNAG3hK7h~v_ZtuQ?y zUF-v%i%iXdo~x|Q7d&@a{&EmKWcznPWTz~I9(_-lD|I!!WFJtSvrDF)2HtMjKKc;d zTXvmxJRjL~TJn5lk-qTmC(HT}V6W_5dPVoiE z{@w;FQ8K@KP>BDg^JSY(p!s7}?o50I{<9^mRgUZb5>qbR{GcWp#9# zDM{u{r^AwE>L%Dsk-3b4mnJj31%Jn7nSAh0$da}rmUP(*Ik1@_GuR-RDLY4hJt0fB z>=Hyy$s#IY?2OFqWngDzoqAx|vVUo8oFn_4s=8cR(KcXtvU{{cnGBAZEtd#SA896*_D^IuRemxYP| zDr7Ir1hGpCN`vg21>SGSR!Ts;DO9{XVve|!t*DR9-fY&11lLHT}vfVF1 zq)qmKTI085nX|!bmwg!xUWaV31fWay^>6TgNA_JM{N0s3V}-GMG8wf`yJecy06nq| zA<*lUjkyB5FZWh+Ji#$@Iuh>Xj$EdUd;7w*E5tGrVTn{M*W&q2>!o=44a z5BZGG0d~p*X_@hq9|{8SlDkF0<}UdcUqNrT{DXez?UC=GioshxI|0B~{uZ@%{N#6k zfU&*uH|V|HC*QaM;qI3&SpaZAK7}@YfBBJLp&lS#+W^Tx`I~fjE=bN<2@eP58>tB! zDxY&6SeX2#2mBq9i=Ic+;qv$QLGQ5KpPuUo`A6JK8>(*^4f3&cwRnhC%^@HBlQRKk3*U4LGFTO5UxdYV8 zvme2GgIqfq9&X4*^t{}ZKm87fjq>Z%vucvBV*+cI%btfqi@cvY5^Zu3z0#`FHm3cu3T^rlK14pw7GT5y*`46Uir#r z5a50JQR<^Skgr`1VxRoyA0g5&|DYOr59J%S!}Ngs@N2*x$zyH+8rMV@&aE4`xY=ih3l^{ zwpWob4rBWiFCGNZU*R7OD*=jes?h@#PG2YlDY{)@^PnQ1Mufo%^H&HrL~&~oJcKHY zG(Zniq@+OMkb;{4Vz}Z%Z(xTNJLoZuRB);Kj8fd$3~)rjv%tzxMb?+Vq7{<{AsM6i zr4x=~6}cS55~pZgg1PR0@!)7^Vs=O%YcM$#lh!)WykA zw5)-ZlZt8=U|EVHsxVI}LTL7KT5)6p6wWBl`-68@F}o7H9L1D&5OWnDjR4D2gi*Wp zoFagXomV`+6_;{B@zOcOnXjm%o@#;OHOeXr6^r<=c~Oy0-`o``=0+fhONu|_5GhvF zd<>fE6#8Q5jTBAO~(QLOqElGTcXT!3qe zjdLMVqbR1T?z%!Kg-E@koJQXbie5@J8x;$_grg?K+=JjXD|Fw1*ro`jQ$n{CVj4cT zD_)_e;I?A@Aw=D!F!X?TN3n4Npj)A&m8eJY8XdRlRn$-^)TgkFf!MD|Z-K%?MbK%O z9#rHULr9MmX>Y*8kiw4!@1qJ49V{4Aq*D<(u5g@!bWQ@|?i@l~Wi{2vF{#abBR(@(Zva<+M7OKB!z# z0g+(kjv&MmqTDwEkx=FQBB+Nc=hB?(kn*2$@FJ9r{{loRW4KU=QdTcQEYZqOK8M?5 z%5mz(#3-|9-;7myuYu_}t=;PAK=&h$3A%T>|wCW%@%nI;rH-SG<`@w%XqRE(Tgc2ebb zK`97?LcTI?28ad9c1qR@l|L%r{h~5z8Wf6@XCo2WCFSfF0E(4osDD>HA8mq%MrEfGl1<7} zv{*GOSEm7MQJ(l6{#uoPP;;eCS@R08Tgv(i&}&y-qh3jea@sY3PUTOuliXG|-38XA z3_k#oJIaaIpm$e!au4)+lxyizoL=R7R1Vx%Cd@(*50uT+v+7f>sRP!pbfGvODqn8I z?HN$!(9L?Je2d<=LFHFch&)yfQk^rTlqJFDu<`|(_>Cx^S`9F&eC`@V#*~_qP#;%* zw+!kN${!yCb5SKx@7GmzWfAn;RDLw7byt1606Y&><_*NTQ#JG%h@PrR??KW_l@bq| zyHr0@%CTFulYYiMs&raPyj8zYkIY9kiBd*i)$i2N^;0d&1=y?l`9+BAQ}N#gZ@(&# zYUTqf0UsXxRqLoP9H5F|!1O_tc`10os^_%;Au2%#L_$>)R3C+@Dt3Z+NHzU9h~cUg zp|E*aW#oexq566+LW)%V?-xi$sZwYkJEEHOA&5s+=`5IzRvDV1cTBZ_{ycw-D(4xf z$Esp{z>8Czr4%4uH8T_8Ca7vCc}`S`76D6AbsPqktg_HpHAOYyz%`_*@~;9*Q(Y~D zmE)?UDu5HJu@LamRrypAWvJqo!RATTvBdzHs<^q}WvNEO;O~@b{5>d~RxPC;{ERA( zW)o*sTRsMstvd7}Oy{VC)U(P}otg>tJk`nw1aVIFF&)P}uevXW`UTb6{Q&u@m(!q7 zpgJD}$wE~c6%`j%4WENpq_WYOg-a@ry^t(cC6qy=M75UAOO>ir@enCf?WEatx#}_H ztre>ECm>m=`sohzE~_%AK)s^+gbMd6RTb^US5+%cz(cj_8vRA@YpT4>z-m-KeFw=} zm8}aRb*dkWVe`6bBaL|LRd3KL)u8hK1mK3siw>yXR6SJ*e~qe9ils&M1~pn+RhyQA z*rr;)AO1R2YtKTmQ}rvQwzpNWl)pSsb*Dn4Pj&YgZco2z?{f(Eq3VlaU<0a4RHr^t ztr-AuP!&hLr^l*fdRInNn<>v4RWaze&X_7O2H3dj1mzPGss$wgF6tyIA6?az6t0^( zkUs8nR~J#+)kFPcE_gfDzFK(jRCBI_=%t=Yna(ct7c>Iht>&-B4cVh+Q2p+$e)4x< zKI%!H0KV$rTuAzMh4%?10*ZiV=VHHp(~y)c8NA*k#n! zHz5+FPNHLI2i4dAo9C$O=;;YlKiLmrxcVk#+lSRrbP6LvJwYBK)n8IA6Qvf?Ds@DC z?G;EKRiD`b$!PV*2Otuo?%WA1PA#Q_wDIbP>wqPw!@Yqes^xDZmL&B|>W3t&*-H3J zQTrQVB~9%{JHl~wwE?D2s8>A&Ub_0ZC`e|gm(X&5QhjneJY=fp(64z~J=_S9GwO$x z;GI>^-v-k;>I7QWa@AoK5Xn@xxq?-I-8QHLiNMXp?6Wu z{1Tu@jsKQ`=UVOh5(;*QM&+)OaaZvqwR!P`^aaV5M4o9mLD(bu=`) zqJFgu#H;EjzlP~*_3CkeYwFvyDb}jBlq}S#Uwj23*VRYqM%JsdXc*O?{(=F2H`Pzx zKxB>Tj>W*5)aU6l&Sv#r)HiKWUw#LUTGa`(ShcIaqwaEt+VdG$=~Vk=!$X&PE@e7* z)GQgS+*N;F2Hrijlopn5^&qX7z3N3$5bvv_JRtc%-ASkP`qV=m;PtDQJpy>B-r@#F z1L{59kbIU;Fbtc!;K z9e}ImiCjp!YgX=sh=-z+00tiu>ZD z`GS@iUroSac=yvhJp&5+HPfg#KcG1r2}ys=A}YB9HM0|7B}nuAdWamrMpyt4r*W7-jMo%WVU(x|{V#jcd_|4qWKF~zM3$-vx(~N$ znuqkp9oKB3uRu>|8tJfex(0tp1kbf*WimuEHJ{LKk)=7X8g5T%j7fQJ%ITN45-)!aP}P^R&rd1JXo$N*NMd7UO(m6}y__VtRUZ!54W4VxD6 zs~SZuB&#(W?&6}aXbYJri^@Sg3CQ;+8U$cS_n-4Yf+MqX}IZ*`ck*2={ zU{EvWiO3#nR=*8wNV9n%JPd12)1j>qP3dNMAJcq#48(EGWI9kXp?R4)@-Euy_o3&i z{a_8Q!Cl++J1`IJQOX&1YComUkeBwUTky9_`+%(M);e~9xJS#I0MT2!fz~Bo?PXfe z{Im%)E!(RNx(ebxtxX@83cFidE%Pq~QKZFx1jpm8T}|0`v9_MR zDk{~!-v?fq)@>OstX!KsmdfDh=8l-y^ac+LcQ{ys5qWDI}Y;PyY#Gv-XG? z3N6|Xd*G;5%Zr4gHm#J-skUqVsV~)`eTnAwo!XzNEW52Ongr0LeZ>leJK8t%;h|f5 zZ3;wsw7=3{G3?d0(=qx7+7r)1vQK-Q8g>2J5IS@6Q2WDXm>$qBqp9Vfb~zPBkF{r3 zLVZYUq+#2z_K%Mc;D|PK2Z*CuHl1}J)2^q}Fyq=TTCXRx?|lfOt1h1w0XLnO0Ki>0 zCmJFix-+zX?$ixDg&@3iTbDp#mu~M6z;4|PT5!E}@~@!oqbvCq3cflUEx&%cy*&VX zb!oH&?bm&8ft3TgJJfaX*ZnAhu>f7jB=7=t^Qnpq(iwh(u~6OAsn844G3XrNA>Gbb zAQ`T^?SS54-32PEBXn~pos87Almd&=P5%(4kLdP%jgXG&=5@nLv~CqG>Bn@>&_8F4 z(d~=@F;;gi4hnI)xpZbPUUy|PK!T1l0QE%Od>4o$=?eN_C0X}EHiAge9i}}XRrk-& zz|wTf{sHf}u9$Yi6FM7xmY%L#b`MyFZpR#8Cv_pWA(E-vG6OcVbT3UHh*LWL0jQtW z{rv)nXLM22Pd=;LlM2afT>zcr%F!*a0m#*@`Un2vHddLG8bm@y>x>ol#ox`ou zh0lfhb)741HubutC*Y_-_sRPp-q1~A>C#MXsOZV&3@P0>kf%@!sbwAVRiuZICG(qjw z{XBI0aa4D*6CTENFViuDaowj>B2MVWsMGDD|A6*)SN-u)NV@6g z(N|OMdfjyJJoJU+cBfwYHWWPdvxY(R($8l?VVAz=4zS(&%aq;k(Wg5Qgty*F39_&L z!%YBw`t?*@@6`{@M=S^QegTNgU;id$5CQsKwAlpfqbWZN(R2R?5UMYw4?e^7o2EeF zuznS-yAk^DJ0W>Q|I(9)<*2@e`cl#Q)DOUm)!*I?w{iNT8SodcSG^0pB)x=kn`Hf> z|IS(I_dg5Xas4QDZBOXu-i1QCzKGV{O#Q5IC}in1)Ym_yzy1)8&g$O|fn>IR0Sm+& z{Zrc@c|q^>GeEw+{4fF zhxdJ2iFbyi7ODfp?5q3?52Lkv$&LI z{ld>dY|&3W1<6)@&|Nrc*Qb67n;rW5*KmEE`tu(E+|x_xxN5I{h5}fhejoK_2J~>Dr&=w=&jVd7}v*s3K3VsWLlv;44-!a^D+f9v3lG_bt5h8181AhFFV`^E4AbWg(TgE+!B9rc#(cxHRS>yk$O?s(V#5*^Y?c@t z)blShv?f8X-0))}Br6P~^d&*1;ba69E*q>J9TL;b}0uMYEn8hR-M`YBV$&VYA7gco(4ApmKuPVt6kElC6f9r~}ew z@EHWSWe5@iv>Sd40_Zd>rHB2t!Hs4%U50t|BHT0lNu!i*LkFGx=`pxaL-D?0WF~kI z3>)7B)@PVWe>1$_u!BxOKQwSIgE(MtQ114~&_~6{puv@H$dF-r5=4d#hfN4+#PBk; zOvVi|>MlN}0X-=W}XY}JG4Wvspmu**2j z3t+d=YbAiUaY-HG^f8Vuf`YFxou)MVj6zyQ_ZwgNuc$XZ_!w3KjBdej6lh#WwRVs( z?-uk98if}?3^v}QwsMH^r-cY9)cDF9z`~64--l$lF@6-L4;z<04J#4GLLo$s7z+gO ze$;q|_MB*A08O%EjJ;2T7;Ch@3}T#7^$XPFjcO~dHo^GAB&a7EpP{25Nk$*)uqGR0 zTme#zCxwV5&3I)htQG$T4?to{eY)5as8!{!-dAU$Ab zjUViXNVah^^i+Y_Rqum$!T8b>h%Db|<$!q6m_u1Yk+F6T zh?k6^r(v_iSaT1c)YwCHN14%!+Qa3>$&@ox7#FXELZ$Jebr891>y0jSHv5M0K^X$PX}tD2Zb+kXOFL{f8NZ|=wAr|cmctgK_5eVe z@qiVPbr?fv&~e*1h3;S%rcW?-$N0;;Al@|wd<5b><2&mROSkdZW5n5OTwM)Eea6Xr z5FZ*d=%F1jCex<>$msS3;v6)#(&uN7jfeI@eaKirN3li_5{To*W#<4~OoQ|=xSFD< zt>tE7Q1jj06nP28JWT#{Lw1^ys(^W!PR2rgkE!{7g;Da1DD+ zk3}HvGo76dz5OQqw?1r3rtfIy3Nk%U>cOTUI;s?6+D1M9P?N7K6v9kzYan^ZG(^>B zxM>cp^ARTTWQZIweSHHU+7v^>%VQ=VPkwC(bng84%-5P16AqP49n$ z08>m}{;-*5N~weTanld40-P{y`W7PTCSD%&GEBJfc-%~f=%ev0Qwbe#JY)JgA0XSb zXdQycF}?f`c)6xWYay9u+U!#JzxNa~_q=DFI`sh47G@Fi72c*SxU4Z~wO{@NdNSmqcCW5$S3U~@4 z?Itdznw_R`AtdjZnrJ7vXF6UA$!^m#hhVJ7^cuBqdQE<%h~>VC&js;;sgDQHZ+dnT zuHli%NRzF{rXV>Y8#39H0K+EnpAZ=_-M<38QInERpp2P%ZvdMxN&bb1n|YjWkB51b zQum$a*QinMY1Yup)XV%D6-K+vUR1;GHqXn1p0~N~2IBNH{}hgp_LW(hbIjbl z9axO{Af=PB=2^W6BF;QL0K|CnOHxFqULarI~56SxD#BQp^?q!b+<7 zHZ?`l%z-r1IBxdX0)HpWCB@*Sn{QD&CBuB?8z`JKw--V^)0`KNaI?%=PXe4WU!$`X zr_D1i0y|?arycLC`J59MmTh+V8z9FV|0;~-nxCOx<-GaJCvce;%v0#;$u}p{vs++( z^bz7LG}qG{_M%z;GI&MiacY!bG6&LAP;Bm92uCGmWd#B(HQ#B0UYR*15;n`tW;#<- zVYbq@CY9zBuR#5>xqk?HSIp}&0jkVPD9N~L=3j(|YO~LD=v_09oCC4OypF!osx|vi zN3hO(YaSG?n>(lzTyNew0EGr~WiVoCG{@4q+hktf46NC#PljHLd2Ty6aP+|3;{x?Q^FJ3r>^DDA4eX)$CXK=d%$`(oKQc!g zgx;W8|1}gIo8Jn8%^~w3wdRJ+)Bb?Mh&h;wic#~Qn{dy@%+1t;7&pu4m!2>`RzbnV z!ao8lu9iL(=2b((tO;qh?bcX7G^6X(=Es897~4f zD|&WMTD<9=owDGz;LWj&AA!OdO93tZXDuz{FWd6z7f{c!6yJgATuT8Ba`G&vDFrxZ znd5-SdCMevt1ej14nic~(oB=IifL4!0$i!!^K4Ew9%? zvdnUJD@4jI>64*eVYx+RS*4|j#xs{K0vZipvDCRkugVg%4SH8Cr{;iIZ5e+JdeMO(_+z6>#EhVi&F45OB6k4w=A)g2)0`moP=bDWJak*S=%cwFOT;Qz>9xGN0Fr%{&su@?TRxrw?4jjj zdddeZao>aZ$l|0&YS7|O-KNJD_hQ%_vMd;ceG!*;LMXSWhhiw$mC%8Ki76t-`facfb~WaYzA6a zN5N5$wV3LMgVr5`Fcxf8(KZ-jeUCbAq1MXxArfZQ(YkcV`ZgV12)8Z}BF@9sDYT15 zSSP9hBCTK2tRTv|nl{BF*5aeUj#}Gk5EpGdq=m6#){lOG+jy(22qFpA&n*y1v_AJO zh)Gsg9z>F@dltZ0iuH{#xJ|Ww83oBS>t_kTj$2bTz)n~PDaA>*KKnU{8P*Fd=$*7a zL&Z;~RYA{gmUS;xA!n>v$Z@8ewJxDXLAG`CQvf;EOI^6yTvk%W z&RfMF0bH=QQ8TX4`dU7C7p;>oAfzIzfDRp8vR+jHE4I$80VuJ~Uxe!`wLS`jWSLd6 z82-wwhW`PpuqKh)O6v=>G+(x6%!0yIYu!y)skT0#edU_<-S5Dwv5x);E45bLHiT4X z-8>H>*RAs@TdTLW)5_Oi{en`X8`dzopEs@h{{q%%ZKsm~E!OZjNVZx}P^QynZJ7a) zTh?{|K&0K;@g!#5-2ky#RNu=V?*BXFXE~&~2SU z{j44?->q=_*s7sAe8?)G zY3H!@I~pdAS)Zeyaon2F3eywTDk^YXY%8eXceTx+b;-?E9{>e+TM~Wd;bHrc%7LA> z^&27LX`7)2@Us0>1>!DS7$uk9w#RQl(#Pgbb2VR^jE?#E*={s}xYuT(o4n6v{0WZs z+p3zNcfhu-5}3cOflfCB*m}I+Hqf@5a^WDGGXhpZZ0Bfa4z;}*3du0remcm0$aXmq z*AQ-dY=noywxvp75w?G50gSX&(UK5l3m*qKVk;5>9JS4-kz}-OA+@8A**pv2J;oMH zk5sJfP8f&@wx92Tm}u*w6W&R-NfRI@+fI|C6x%i$E~MI;DIH0(y-K_Gaa#_Rh$n0w zR7IY&S^W@hrtLOiS+=*y`zhP=YFIgKTNeoIjBUkD_&aMe`9Lq*#;1xl$99e~mRy@l zHh6iqxBda~obAF^VEML10l2;bTet`O720l6!}OwU6%9y=Y{fL%zht}1g+j4y*2f^0 z*nHw4Qfj+38KBHI+a2D^ZS$I8rNWj=Z_X9ltqm|;Ws47n-c?&-2tc*XSq|PcTfjVA zLyheWodu}1o%j`?&X!9*+;y8_Hf+}0k}kq#gYDNnxJx%|wUHn;*?xQrHk)ncV(?mQ zw-1BZYFkZ28~SC)9gvOR3=RwYhHtcHcI!2q8VNU7)P8&-QB;O!wRPH2rvJOS%o>fNc-$;g4<4 zKMN~Ewrz9-Vc7QQXXuUCE>k~p)VAtJ*c`J((#LP(wx|gxOxR}Bg6LvzK8zq-?Y>R8 z6gPV`r7G@rPg*BD?H$y1^|F6Yh2JiFy#U1Bb}N-8d+aXMt?;(D(L>~8|2qVZeC@wy zz_g$J(+?oB*S_%t?$SQH8=b}3Z;zz2TLE^T=U_9?KKd8*g6!G#ARe^WQ#u)JUwRQ% zLhKFY5DB$EP0M|l{V;8&hwLFg!AgX^^g295+B;LA7iG87s&T~Lz8WG&?K`Lk5pAzH z1j%Fe3`$sI?1{8E#@ZLVK_Skr-3ng3T{{iD1bgWMV9E9~loF@dCsA&bYWJo?KWTP0 z4KI(|TRdR;g#F)NVI|$}O<84z{r(7uC+!sl5XrO)79iX#`;#-lJ7xcYa+GX)7)?oY z?1w1_%eAjs1!A5(`(?O2XLkvQ`gwZ@O-T#vE2&FWXm^T$U9@ixg=CR^2jxAN?BCIP zR&1Y7D_DvBmrIZ=wcqrIdYSz>T4u`a7iq_E#$gge-x7S_OAbd*I-{51BDy* zqEiUsrkx)Kn~iq&UHEaD?E5SrHruPHh-tCky$8KkdkPO&oBabPBD-Zj@*zOGy|xpQ z9ro#;L%q{}hz^w8wx^gt?6TLq1cf{HxG&)7u6^LYrmwwE3uE2(muMc|WB2ccNU!}s zA=K~NeW;S^x4%ti{T|wv&jxY8&RP!QBm0FH00!-DbhVG|9W;;`vb#{jZPxZ_6#Je+V`rG|I9!$J2f!*Q3oBPSh`-vE~B@Sp)@mg84C zW^l@};u~P69fEpbXB@xSVdbo29j$KJj;Ef0LXKl;IwH$;Oil%s=V*?GzjKb8^jx2J zJV)j61;-LP9+dBhdmX$2hwno8D|Gz)Hh32u&ru>#=jfwC^SYzr90II&6w>R|;Al7w^&5^{%3E(bN`_&x(XnhXcukJ@sZeir zZ0Lqwi{mzh)arO%2wt1x=m5Yi$Fp3Bv^xrDN$7BFqn1LaV{Ha_w;lbzz;u^mKJBn~ z9EtRIGVVGGDH*!wc!@U5ZpT$`fF6hN9hmNQ#61t*eMb@EO$np3OV8f1lIu1DE_?V7Kjyg7{0vmHY zqM4hEQ$VY!tMh3Zy0|$zsQKsaOsD3Nhm++8g`Lii>C}Lyb4Y`byqq=(uw71;4GO!R zQ$K^FJ$pbj*{Cx_-jdn^Z;pmuiJN;rY z&Y3^KSgbSb0eErFtb@3|c<1RtfCOi0A4C$JPf^b!$@wGw?#a$L>QbdRGe>}>I%hUP zB+V(KQv=7Hp|8N$2`BfzP0AUx4I&xNwI=XRI=?FhFVk5;f;x+42L3xz6?ufIO#}4ZU;DujnA(dFKyw`t5@Aw>NQp z`Of<)#983{nh9c|GoJ45Mdu%MinPcXxd(19InPmBq}ch8X0#>F*C<^sb@uAusLZ*F z4PLo3`)yzq&P_95tkSuG8d8^?BKiR3iZhg+W9=CRM(KmL9fPn zr5g&h&Rtyysm{5Ya+K@NR~o>pcTS@MwZZ9a1M!B_Mh66LI)7Dz*XRtt37bvM(gYA& zow@WGPp12w10~=+bkQI4^SV|*-F4pXd?>ihoB0pa-RB*nNsPz57ihG&bKY;%!tk8;7mb6w=53<~de=Ow z8G5_tEv7Ab&%D2B$@89jxuwUqiq@+1QZZK1p(Q}RuB-74YHTWMg#$6I8c-+{66RR`=jHz=bX>E_xs-W z-ZSpww{AB4onjuQMzK4yJP|4$%;e7i=E;1C)^M8Hw+t#?%vXwmd4`$92j|T+&cs}N zn0F|AJf;mQ2%}C~J`{C#k zGhzxz6mv!#?4p@Y6b!{MN9itVEOSvFWN}RCF)TWs`RYQbBryNIgGpRwuAs`v73Nlo z84{TbX(viza;UO!mFY~inPlcK3OGt(7O%uyQke||c8%Fa9sV?CZz(X-nO@7FlEHjl z3v!)VbRUD6Oa*lSvY7n~G2Lut(<_kWFe4}($Y&aOHa;BDw{S{2vyO=~J^S44^RxzC@*{Wu`s9{&b zG*SKKCi4e6$7-1Z3S4e6?@`uT$E@BBuAVuI{#0@UQ~wNHBXcvA%9@zJF2Y=znIifN zaxKgrA-Gm1;}qQ9W*+$-=55S+iU;p7i>SZZ&g4~rbTG>XF?g5xH(ku?WL7l6Z5Pws z1F~*r)%!5N#~h@qtoNCn63ncJ85|FTUM3?B27S!ceUSAtFD!)H2h2BLhxtQh{eK{j zm~DAbdCZ&~1j+zYLz~qTW_cG3o-#L?!3{ExH$&waGn8`Q=S*1?G>4dpqaee~w`gk~ zVJd&eTt=C^v#=Xu{xKWeI5U+J;up-%L~uL7-17xiJIP#4yM{Gu?mloftY|trY+39T z(6nQ{e-R$+S(Uqh>A-sS4m2HE`E;$;iDgTDE@zg{?@&3x3ZYVj3u_tmJ6u_Ey4>Q% zT6Y@cB&*#CV5eC58z6IM{j(gL2kWy`7%+>lr&ZxwUN?UF8%PA!Fo)4>vh({Yf#B#ZKN)K z7RxmsB%AdX?O-{q6_i`#vTlZ9Fps67P$i#LK{c`hmJby^3t4uHFqa#w$`1iu#Cn&a zi(*#pGC-HGE>iGS$|~Ifu8g(94zhCAa%vP;u->4Jtdixu8`G^~#mxj}H7j`xvKrPm zRBE}&s-_samUWvx##^khRWPVyCA|T#de)LFAPuak-(j$kRYR#|6RYa~S2I|ncfqx= z+Li*WmDMJOhuf@fs;sxM(&$p!9hQ>ztaernB~%?OpZ)N6m-Wst20K|w3T?ZvB6#m+ zEucK^9;@92=J#350{H7;S$+eqmsKbN*Tjl}sgt=d9mUn9>ky4qbH_W*rEEY=pI! zF5Qi?2BR^-G1jlto*8FNya|*StO1HmCs_5@z)i9a?SsskUHK1CY}hMnFlfupr>e9a z+lJb5_Uw15QS893z5y_2c1ArsoM1cCUtxA(Z+stvuI$8dn7gsRrwg1X+3^K1IK`gX z2~BtQkMy1JU}sRl&69nAlGoGh$6LX9v8DO2JHs|oh1{EcEenG_YysUbILqdJ3+^1d zfeK6K*>>-P^JObg{MoDKLnVN{;yk!OwkPEs7ugqQU=l&>Bq}ck zvtub(2w@+ygk30mu{F3bb{@sv;p}t$fR11**9q}H`s&T@Lt5OqSY3& zr_jZ^682r{7?rXQQ^HZk-ja#Ia`qMqo-5ebD88;_ucNPG75isLc&}!EWe?06w(~IT zZn70rxUOY8w`1@Y`}%f}I(B3S4C>h}wAu!CDuqprY_<<%P3&h>iE3v5`6X0Z*rONV zsFj^u4cTq>OI;XjV<#)H+B@vTpWv^Z{hZ?R4)!gITko=6=~(Jyx29pRi=7_|@7-)g z5FFiOJ5y%b%eK-(*2jLF0qB1AaRTbKq!c zf{q;DE~q$h=I@6;XU>Dap>l%r8J)~7obO%-rYmO+btBw3bLr~INsd=9rgVz)R|;hA zoZlrt@!%Y!3)`NYx2W}Yn)8%iH80LW`T)*wdT6Wk<}^_}=)-x3Ui7n^JDxSnk8_pY_Y0h(RJ8Z!$ZP->!1-ei+y-*yrGvZ3v8A0ah%-GNn8BRa z762@SV_XG;P>!ksm|>hY$|k}&559v+1ZO(cvm!ZMx-fHzvwA5EqBw6)1BvFWTm#J* zP6b_Yisj({76NY^N4E}O@tk+$7);>QzXx)eQ?w6*S2#b@8WK4xC?iVZ+^oZtu5#X> zQ!SZOJqzY3od1}BPUY~ZD|?O8wHJeFoFMu^WIE?Px`33y`D`c1bx!di%q)}h%_^W| zaelLhN;c=G7Z}Xptjz<-<=BP*ERPdP&Dng;fkRL!;2cQBU?GP|0qYIU(o zD#aWMRv<_(;ZH!-C~&h{pFZ{kGLZ?>8_v#FiX!f~f;u$7~5fcb4s z?_EgWR36yS*?`1&W;|S?< zxX-yyiC7QklUtDWa$cj}bsr~H3YC5ig9GyioKXvK4>@%d$UowYgq8Q=ua zx%q_CK$i}lat@l|Xpr-IHZY%Y++9GPb3S+u=pl~!FL1-0%hc!};W*G{HOiT!b90Qt z5dvkLvq+A~zu+8|L1luoniAR`e2eIeYJcZ1G zYs-ftM{ey1?3}n?tHC*Q!=Heh;Bw!>!d$o-N~>MD_S6w`;~u;MM<==cRDwFi^`a2f zo!da?rUy4A7AT(FXKnC)n(IYxfEU++(&{r@c05$Pxsh9e;={G27WP^0FM)7$j+;0Q zWPiW{T$%xNp!ElFQuZJk0tEclkQV61n;-aFoQ=QOtgoJBuzgC3Angg-N7v=TezB zm0SBE$Te=$M=($0o>>ZmbnZ^dNiw)cXr9-(L(~V#EspfKtdUqoUdkZW|S#i?|%Rpm6R zi#Dq|t`EJ9_1wNmEUbb1)kAQN+(HSUo49(~Mw_{dsQ%f)UH$`5TDe!bn9FVM@~=VK zxLtH^-r<&p!BIQ+b^3uu2lrPho8RUBN(IbLt}`7BUEITzF?4gUQik-Wzu?d0$=+ zZHIom5y~4c@U~MT?a#YRxqSf7Lk53=JP+ECF7h18;30^I|3_K8V>~0B=pno@dSOF( zV%m_xc$cOCESz_jmJ-3!?gNSBwbPq(i8oHA<0#$@Z`eiiUT=Uw3~$bBkj3(rvcSdh zg0{h5Jnv`Px)ONyN#HK?UZWcfS9m8V=uYHKya$vd-kcQJUFFTAqdb}CMDbDzZ=)Li zQhBbsV0VqTgVO3W-p(CZN;+?QIJgYn%|t+7=e-dFluVw}4cKMzj8ve_=6%8gm&3bA z=VmT1{|~6-@xmyQ%jdOR0cHVjmp29rdGFCaafA1WNRhBt?v=S^NQ?O?UMg_Ks` z;(61nUB_!*0hD?kpS(BlrjFr}H}V`xVbH|;mWut&ya>7~(Zc(JPPJBEiypGuykitr zwDEqUhkS=ONgsGSFOv?U4&HB6M8C_kph8wB@7^0AUA(x3FzDvJHU-}A@vc&{=00yX zouWOwds_kB%RBiwCeg=JYe4#W=f`JELdk31H ze9NB!eVYFtrPW^iqqZPt_*>~*@#Z_a!oY{$6bI}V-|q~6>HK5Ufs(<0wii>n&M#jKyG;H=DyL-ecltpkn}38}`yBqx z49If%UnIg&9{uXqonkT0JJyBqu)Iv5o3zxWXb#r$tK!Jvdc>j7k? z{8d!QD&vQC!JwR{BqA!JqjlN1(K^ONbSL@oc{9pG;9la2zjj$cge z*n0lyacDO1H_d@cBmeOqFmK}j`v|0&|MC|gE&PO9$XfYoYJuM7J5Uj*jXzB9?Hzv6 zXP8nu{}>A@9sCvZ0ezQ$Z~;gse~uioE`HE)xb5bT(Lr>NpIZ%o_xbg$fbQW(Q@y;G zKaBy+KK_?%$ol!4egN15e%~h8J>);6aQPAcFH6WC^QDyM4Df&a72FfPiBi3%{Euuf zr9plU-6MO(ubu^!=luV6U~q{4FV$3s`NbO`8{u!F#C?>%Vhk!{e7~PT#`()O1LXzZ zf|@Q9{8uO|nB>c7_qG;%O+mhm;Fl#Bv=v0%1!pG^Tf)v>fXk(L;{-x#{5cAg7BFxU zG|=1VEVxdE!4rbAi&&V8pz22uSHW5(4BP}Cr^C@nfiHcUrvxddVeT&YfXWmef;-(9 z^b|}?f#zvJDpke21YRG)`x$}VW(;}@el!8vM_@tQ%vr%QI?B%p9#Pr#ydbs-GGD>J z)IjhPM6)5gAjo(ZDE@*XDy9YqyuQI;prB?0R4xks{sml+;H9nLf(0k(!wC_XT)>42 zloX?c3DQnt(cywW{XilF^XXuZ6nsm2!6iX7?KV+@i-FLL7QCGc5+i7N4)a(+C;eZd z#R>NQ3h(iP?JGeN1QBVFT^4lHU(~oFSVJ*%qF{C%?2-ix3W-w$Y1C;-6(mr#;+nvQ zvdA<+*h+Bef=~%iG6cJi!tT1@f&e5_ps|2?mSC7-jcmc}9e~ae*eroTt{|QkmM6GE zkxstga|)0P1R@!hQYi5J2P!uN{uG`U3C_`lnPNfCX<(KJR=fjQsX%)P&}D){NkAzV zIQ$B(LLfPZNmL5V5^z<5Gt@n<7EID~YXrOr$ZiTOC<>|-_)x|AmSEu!Jk$w}JHwz} z@CNnV8U&IVP-zs*umRU3Xnq2>&4SZGFmDmC=wY=A%FP(OEpXfl(k8gQ3lqE}NT8FX zUGU+bFz*nkDM`C4c$q?nPQf+0m(V3xM_=}Cfy2w-?g{47?`ZD}o|eF%M{wn5kY2$* zZ6JLDA$|P)f@haN9tbk5Ven9}n-Y#kf(75g(PM%38)yy)43q#o5ojpncq))eF_%HX zWp_AwCK#ev--NjECsD8Y>hp3i{!xPbW$3|wa8j^?b|P!xO%FJ-5ianD%vLx_T?{*+&&%NKh101Q;vhWn6Eq!#m3-Ja3D;17 z>?~}iO6dtj5L{iiA2Y92E<1(qCjK5niBHZK*JWjbP9$JNeQW@s9@EdxW+k|gzg54cqIBiz# z!rJK|9l{vu>E9KWQCqcB_|^ufbP2ntBHt~%L)Q%M3Cm6Ja9>zL*QR=emUdWQuW;=_ znD+_g6l3-aEk1&y2g0TZm_HOA`3AB_!mqd>kA-^iN2RTXZMC|K8@fMZDf%u3TseXM{w4dUabE27BF?e27Ob^Rfw2f+Oexh-TF)xV3jnMQL z4bc7)AUaE#X`pD{Fx*}g%^$&{gG7(0DHtqz(+#o^(LdBA2o)XL50x;HKfTl8qD{1- z2+`Xy@E0j6-vO0NqEoc*Mv3fmz(tGRrY${2w3t>DE80)tPn?LK3KB0W@PUT}Q6xoq zmql*0#a_p`D118{wTeU=u&~=A>j;oG(JV?4?})VSFmD%$f5%{lXeSfouITb{ zfOU$_Z^B%BKP$-Yi;RcC^@yH4g@<0zKsdnqL?h0S^^2P5AwLi` zmO}PWR8L#NBhj_%PY*=*oHlRmD`CnizqoPmdV{lCLB{h7Cm_&{)-agC~@e&u!|PU9e^1ljxm9Y6?@REmAUTx|=LTyZc}ZS%wude!p9c|}-Jfp~W(WQF4UbU);V z`1n_l6^Z|uiCGtmKmQRPO2pC`Kq(c+l|xo0e$5G_T%0opq(YoYDSoB+Nj0FW#P=zg ztQKzx0I3nDK7;J0SVPHqt@tc`QErI?D3_@dds2E_FXp@sw+-SpiisM<%65<@@e9f@ zo5k^zeYS{yIuEc`@ypjhZi|IfHfR&4QQ_>4c+OWaZx`P>3e67jmlS{A74M|euv2{Z z0G@7_xSigkZt=2ykbB}@51`x^2SvfIM|_GF)+M7mELLG6To@ww&T9*FDbVlEHG z_bDEHB)-Um`D1YsrIrKYQh(Sz5r5Bu?5X&>YtS4N|4ZG0XW{}QWY5L_QffIQmW)6) zEFL`q%n`9$ImoEEk>2nzu|qYMIWG32GRzCHCzX{a#MKL7H!1#L48&S;LCFalkW^CT%Te<53wU>uoM{HMv*aZ&a3>@ldT=h1x+4H{m3STi zn49D)indQmmePlFO5#qnQFloj6=ggmv){pVJtg}tfSi`>p?<%YB%i+eXCxMraO5qq zw+5JxBq|@|tR!VKP|isn)0S{va@rr9uVj@0ntqaicj5hluq=lmE8OsgJBZS?Jy6Qtfw$ELK0p8E>g1KBlx={(Nj+`N+N#& zf6h{k+E~fvbpVT#M9_8^FIl1nNsu&9Tz6TLN5!}+67Nj_OO%vTQkW!} zOIh7j$woJTB}>jxvouAbqEkCnGWP#>OtO!Hs5FTK#ir?!4%#s@Bvwmca9y&W3W}MM zFekXpk}UZNnAwtb)GNr5yp#>QT*+I#AbFC*_JGcpyn72M1(LngeSyEe2SL#PSNjN+p}Oz`RVNTm#K=$@N;03P~x|LsgRhDw8^gVN(hiJq?OG)b0I@YO7_ zqkXVN^3Dtlwo0lg$-XVQ)CvqhZh` z5jlYCmN0$+$~{RJZF%=4tEeL1BkB1MD!mdfdRTpu6^|kiHWP?~YPEWpz%{h&_OImJU;HaYB0eA85Kr*HQ`5RT?^uK{u(k86Hkb8)=I@ zC4K$~oV)aMDoA-q|FZ(|lrp5SJ1w>T|2rmq@jAFO(wA>S<}FpxHtHkou!8wnDJvJU zb5i|maOb6GmxA+^4qwJ3{G_YdnEVB)g#aG>rM|R@2T0Rs5`j{~DR391vt7XjNiR_3 z7%Uxl0nHF;9z_D7(yyuD9VU%2LnU0gh^|pYNSml&6DhrQ4J*1N-AQpllyqMmrW7rG zEd+Kk(%fKhvC=I1zQjq{(=nxZ={Wt6IYD}8JIH0JXa~%%NV~=%OO(!A29hLg%Y>t= z(ub$vAzAvA22-ThL*XG+Iz++xHK~x|f;8zTv~i|O0|tPSA?-Q`&Fj)AYE5NI3+W4; zB|WtVj>fxXD29G0{qI|-Jd*xHTi#=-1-)?t(kgnM zPo%r43inj{(L3-yC@onAm1olQg)o0EJ+d8SNXq#h2E)>|tpFR54jbThRJvpg24m8V zw6Tm!qlF+Zq?WXCPDtm=A)A!0UJK4zc9g1HHnORdxZBFs%!ABM_7OFF?Pcy%B6X1c zKv9CD>|7=MImwn^z$Bby@pS&3ko8-_&PA4W6>eQ+#{H1F$t>v(>q(gh-9bJjOIrgE z?lNCGH$7wp^&p%Ko9NHP>YMg}_Xc{j(O2JYD9t3t$;*HjVb{YMF{+z8aY`)kAK|4$+O>TA8E? z6TBtMD1=I#?9-F5tCzV@>7zl`>W;xi+4t%2-X!xCz^++#h9dD6Swk)CT4hu4zv;JS zNrz$3Cc8sdPwvS6E{96H%s{Dghb)ByySuVx`jK;|Z0l>#?2_$tgsfZkn+X%VCtDW; z*?rm5|G@Rg;y;B-udM4ksPxI+2!eUPOnU-zc_3R)CH050JsI%uNVfL@>>kVXl&22J z^z_+2kqtJ$So7JGqiH^EwGC3Vf&t={NkPXR{gTNe?)t>>_i0t88P#KlAQo(IZ z7CC^yaaks9Rxf04(vC7Ad!5RJld@l}z*)nFk3r@wccr(=NA61z#98@aYH6L5 zo9Wd)FaKgCh_8HE22}jy_o&2uK|bYOK>N#6=xR-X{3kD92FgEu1LUH7MlLjih?2iaRk3LKTKc(0jC_3^WU=!1 z6EV*?`Nvc62;$|}+cB6RPyG!lm*qbUV(^Omqfu~)atVc#N%A|MK)EX4^%cA)%k4Ws zQsf6IgiDn(_e15H+};6?E=|6YviWrR+)&IVL*DW;2CvI2sLqfnKd=cTOYTo$OtyRh z9lJU5ihUrt@=;3o^W?1$z~#$T9|F2SE^7ozq5P{qA-f?T`378(JeCKpSl+iDj!NV! zQ!(9A`3Xv^%jCO@z?IAA(ji+2iGI-G=l4uU#HtCee#c}v(+zuMAhsE@*XNPJ(TBCNBWUGitge(mN&1*fcw zChw%ZU|jA&tgRt1EX-B0dMjq;rpR`I_mc{n5Rg-fHZQ2SD>#&IdMMUY z#nV%9oFdiJis=+ldnvxAde0ff_V3}(Tk#(K%Ew0$Kw0Zqh2uFGoKtjA@%_AF-jA^J zRrve>nV(|%8?d{ect~52zhVJxYXORHD3%ITct`+tQISJ`P%}ue{xIx<6^so43sD>{ zfGkw8#s>yr3N|H8;R-J&kO&3m4rGxEvjyxfDSqn51fvvzb0LdX^ibd#qj22=uvo>% zG{HE9p3>@g#n&!SNl*k)RB~DI7qyD6DEvd;)6|(D!A1K<+R7~_imZdmFX?(Wgt3Yr$ zieKp5%vErykd>!cw-a{x3geqFC{Vm!50yei-&^p0L$N3iU`2{i9W;v-d!vC;qPRxo z?@~oMoquJDFS0?(6|pL;wn9#VlL&kb&6MMf2mhYONB~<;vAKW8WoL8z%?m84SO&z#)#q^z+ONWAC3(UKU?kpH|Du&JitV?nGcW~Vbbpp)qDUzrG zbYGDmhCz>F+dRnn6(e*v=7C}lRXH9ierUqrBgICFDjzEv4uK3P9A`o0iQ2DyTid|AHWlS+aLGZX@zzBmE zihT#bO(@cOFtbU;d!GW+TKVN#5F6#wIxNLj89_BGJLRkS3zO))BAxbYg z>Oz%*emDwKPN!ojT)Bf{(+Fjw0kTMC&+p(aDQgacL@EE1Lo-@AI~B4RW&cw+idF8S zv^q|iSB|B`EA3{2OHfw71Amv5mmfp(in4(6qeSIAI**c+7k|OvRb>Em$CH)k6tGKC zZl+dIs&a@*SJ#v+jTlT*F75(Ky7EsdlxHaK?}YhvbKf2g(!+m81JHctd$G5~N6ZJrd@{$`SHjqAV|f zqf#Z0%E}eW#eaZQDii1@3sp*=R*-6C`Yxc1&W?Wsm_VElSgBkXGd&3*K)lgHA)UOr+aKF~NRi-7j$TK|$KennOIydc9@6sM=ulj-_TnE**l^~9)D2lqA zR7Mj#IIBK*hQSjm_s>CGRJUISw5#eU1q5y?AA0dls_agIJEi)Z`i<_Yd$w@vp*m~@ z;;C}Vgrn1{phb{*sVq0Z{EX^2MU~#FlayBbsA_)&cUF}?29$HEhg3W|ui8x6ps#A- zHz0nh8&n~yr47`&`nItg+`b&{gBL{-w4aGRvcT>$8-s-=VAl2yAYa7j@ep@TM66{yFQuBnE| zQJQMzXTVHXC0+r^Q2j9tD%VwO-UP{1i7A-PQhiDrM7FA9KTvX1@)6kOs>-%OmZzFS z6}o&?*%rtORP%86WO|`$lp2&bR4=8$QIYCZ0VY_i`aKX_iRu__{-vsEpMxt?6{f+i zT(#&=fK{l*DFm-nwd@0_Qhh*w{Ht135e!+4>SNkbZmQgPFt1gu{SkJzROx|mRHxcN zCqli-I0>#nwYwQyqv~fH%&bY3PM5EmRk;sAT2%dH(5jkghWFd5jK9IPsea?b;Et-8 z(*JfQTVi|J;6m+A=JD(hBVqAcs4>e>s;<-RI~Zj1D&w(o&K zuS%B!gFaQE3|zlz(_FZHpsLvo^M@)a1<#LE8z?JytSXoRGN4+_fyxur0tJ@&RCR+| z27{_w6y7~kRZ?R6T;)i)%#cb>r~R<%)o{p0RFQu|HmbT63WG6~H{FCCS3Nlc@1 z_2G7yJF9)@#_kDq>rdcZ)PK{J99MOp1_o|w2a1zVsvl*;?J2cmFC4k6?Mop$t?v92 zC|>Gz>SUi$S5uJat)596gpXQH;mBFFBfVPj&%FQ|Q} zW$v%meh07sbrM~>2~^uph2}-IbtzPW)EnnP7Ob{i04_vrw-#Wb>T(N^F!eqYrWCGT za}tw?P(SJfSfqOYIxOXq`p1nRQR=CbFh;Ax6u^v8zb}J9ta=Ld3gXn)kdI8xK6V@Amio>Kc&Jmy zZ-T5|-9$%EgIc{CgN^EnN^nhT!8$CnS$&DxGcD@sGw{%=PNM4hZS`l#AZ_Zm=@`7D zUjGOv?dmQn2zRJ+8)0x)%~%CTo$6w0Cv>S_JcmKI`V~4;@2S1%Vcl2%=nsP)wW1rO zR~W=_fQ?~0q&9dzZI~1te&9y(tvvIdVme8|E19VnK~c~ zuNI<{m{swwm#&Aa)x6Pq7AjP3G5_u7l?Jb`VF6a0#HDH1Fj>=B!DkW9fuO zG8B%4}qN2WKa}zN;8i(BzMh~QJ{Ee1}F;h)YSci!PA;gUO>}J zGx8N=XEb&q$hrZ0NSZ1>9x43dFdvmo2*GGf=Y^}l4?4snvkVXxu)ru z1};tW;oI<+u4ya+6fOinhv^#ma92(5F}6Y z{&AS+Ypm!ebOoB2c1*WWyXMeMfOTjt zJ;vZ&&D3nzb!uM8$6%Kxa0iystyxzC**(n;7P$Kw%OrsHXk=6Y>DA1nhHszdtwjLq z*UTISd7#-=4@VC*YtDgtq%q6{_gM2g-QF0`d~FZtCz=BbVfR$Sr0{i6v(X*onWnxM z9n`jzMvP+MtkrdaJE_w2X5`OGOC{2YhR-;pM%!911gSMMw6c!@?W}F1cjbh3 zohJ-jw2WGKaMk`tl@mAZIK|~Bweu;5J*EANHe+|~ObTB;wA<)bgr`=p9pH>_ZTgYw#r!TXOuz5X&=mhzj&>PiNORd z%K_YFZ8C+@SF}^9MUkk@T@CXj?K}4{cvU;H4J1n|q>e+j_Utam^0a3usL9v*Q>;;- zUBdxNp*EVn*Eh74BrDRg@4qG_bChepK zT(dTq;?EXsEM1pt)wa@peOnt%J7$}9fHucF+N;zEXxH-Swn&Het%H!=)jptlU8h#Q z0R~;#%vf;U+L9yS?rEJVFTStcNnfcRZQm|TuvgnnU++Hca1&|y!eE!omwI;y8j--gR9Q^EpTqSRsX*zth-8K=qcS53Xt7( zyElRJ&?W4JBTro{ZC0msfh92T(k0X1kvO9>9)~|~-B$}hd~|1NPd=+Ny@!W&PUmqK z=I3>xbZOF8$0bZZo#+wVUeMh=2u*+8QEFNT=!$5^4AedP7ns4i&wAh}MECYzPzePX zNQADA&do^OH2PyCmvn(%u#3@khCmjp`#=f1IGw*0R4(f}axr*Cw})=uB&R2nMwi23!x&bec8@gF7&@9ra=~F4utw;w~s#`)=_sVpO=E~1A=&WDo z2kwOaUCMJ@^ed-8#Z`aP06RB5CkiSj_4&CNJf$C`Pt#pLX9gU3=$Yq$>8W252k)o# z_bGbv(%as_;2HgmRB+z}Se=I8adzl6+JpGGH_pZ@R@3|`PDQlG?MKTNMh zfPU`|$O83Mlx$tpS5XBySigtD&=CD+i@}BJSDwZC!t|ZzLBjQZ^u9;v8PNop? zyQE*u!aSq&ITWHs>l5hhh|vdq1cO+8{dz1jPS2nMX1sn1HR%%cX;zRW>I?n?N|OE< zeMZUpsiAl-DSAO4%v1GCsRVpYzxOIgnm&v!bEoUWs0yB;cc(+~x}Hf1c&7e0`d(-0 zC3L4dTmSAMOd>}=HwP-Y`sGxt%G29_1ukE|bOE3X^y|rAp?*a@25;zB90O*NK9HJw z#d_V3z%0@4zX4gP-k1&VW%|#L0<&EIQ65w(^bOQ{tJF_h36&~+$#S@@*6*GU=o+>Zb1Nv>0c|Xy|1wiGgzUON|59(d0iuz1%NAJpWeWVQD zhx8*1m=EiBxq^)7bE)t$s%JfeY)n5z2(WSeuo+-4^iE~4o6s+(nN8|VbYscd5JxxB zZ49pTZrU2Q(b;cj*fJj~_699|%N-00f54!lq0JMVlVKGF`Ob#9E5MyF2oo?R7lYyn zz+4R<24kLXhW(Uio-`zmLFJS|k%YOp8#psC=wbLN9D`nl+C&(fF{Jf@cpK)w4-_B6 zF(FjW8n~}P<(y%Q69&&4YAIgwHC+1|ntq1mRv;G)slP(S-_S~R#Q?)ydhr4cX;(ll z8q(%rFvyThF;TEV@&xM(G5qlo3_=ZSsWKF1NE3n!H!Rl!I>PWBg+`HvC)D`6WMCbI zU6i4F6$WDsO!|!C44*xQX1t;AU6>~r0+xeZHoQ%n+!e!8x~-LHnDH+#lMKN(FnHB4 z_YRhlYN%KX%xi`=Dodsr9HdamGpw5e=zPPUfc}%y+u$#Ix z#fERo0bOF4nT)|w!ze|7WrlGIqRI_U^d40hu2aLJ((q9}z^V*Sn&7Y6kWKBp8iQ&* zRBjqFe}-MHA-DsBw+!>>7Dk;Rgi^M8!|+akH5f`MuWB?r`wotp48!zJHyirj!eEP` z!Uhv;HRNuD=5511`Wqo_hGZ@@?-+iF1?F8tFbAa5u&e`vU50Y1hTb>$YGKf0*zh$B zdJTzm!K%;j(?x*w8_tTM`M^*-1&$sY!f7KLFr;jQ$`ixtF_5Q*Q*_h~8oa*;_slS# zp2Ty*Fg@KN16Kp+VZ#wQmNH_{4r6fC@R%ykV+J2;?u{EfmqYf#@FE7X34?GOxJiS7 zN;K9+XCbC!V`NtW#n!lmHUT^1I~QSRZ`4tF!@+ozjsizx;meRY8Q;8y2|61Ol!Kfw zHqzAv7b7nN#MP+w#oFDBWg(EAH2y|E6+2~gpiYImajpU?9>%5ga(Nmb&;vPb+<6Hq zUd8~rCwImevBnx|F2osMqiitVxL*&H1mj974_`4JqaZ)g zSfj*Xl5v9C7gvqDx5F;k=tY%2!C;f|$pw&R<0w^|T8tk)1$3*i zk?I9^jLvl0w;KnJVX(t^Qi++}HO}$DV5jj9SCB5Fu?}F}#(Zy(d&Z-bTHZH4cnYu{ z<2Cwo3%y1m?brRr<`7^$FxJuD`p`J@IKYOCn<=RuHm>Y~Y{d8p{V|y_V@?EA#*G|` z-Ch{4B!inUZV+H$lg2;jJhC>$(~mQ4Ol2kzTT|LH5Id7Ief;*O-}XY&!IVZ<=^RZd zxgbs^E+wzdCif2jcEa>3-Gg^ACDM!MYC7^0WNxN*3f51W{;bAaJWQwQ9+Ic&-E9Cn zZR*6EKHbaY9}05D)bl0Gy-hFQ2k|kjeFf%cO}i*DI%kS-#^8C=ZmL=Nnuem_!OztA z82TkPy@B)Kw2P&AbH?W)h}@gqwb+4KTu# zl!+-tnttGB3?`UDXiL9r ziX`(ZrkOjyC7LAf0W-;zLz}==(;Ye#lTDHdfTfs%xKK$ot$G0SYoo3Zv#m; zZNCka4AT)$m|r(#Q&lC?6gvRTER%_9R@tWcR#3??xlu5iYnpusB+ryE1(^9J2YN~c zrnPhzwb1nHE@0j;wMZ~nWO}C^q}b%R8qn3I$YP+>m}Zq?@TTcs+Td$Vo2Vys%cN%m ztj=_v3Rw-N8LpT_qv?$`z-%(LN5j0?GK;kjnM7PF;nbT zn2($GeF^fyltni?CQSP&>zOneOyI1|2am(R#{AA4aJJ?j>ABdMTaJO)n|ITObZO)|l%*#AI2OiFtQ^p|kHg8>mDfyWH?#JL+b9^Q+&zZS&RpPwaEfFfd=Hp8t z^D~!KLi2*TgDUI(<~fuc1ekMPhf1LNQwhjLb4CybgUpi@Z3mlOsCF1)eyI%Rp=RMr zAYo?rUd%Jnyp>uhm&^flghZKlQL`=9yqr3{apr&o491&BW&$+xs+Yhod^QBa9>E^eV0y@LoN4wN@ zv#Jf|ndZH*kY$;pK7e_)If@#1Ip*LRaJgn4-M+~)yVHx1Z=NlJ_X6|VR23^SPi6w8 z*u3IqVMJ1KyFsdh4nVTnJP;IWHH>bwD`zxs2G^f4;%v$s3hoD(+-aQSn2J<@; z&}=k+OnXn0IV%nxn#~?mR&FuRS%R6hndcx?oPNigMtAnw%?ob9uEYG@Wstk(dJ1Mc z&Ci#D+%vnEVer1WnU47$vxuO3&CztY^_iu2fZ1=JOWWupbL+P-cx-;}2%rbdhx1_Y z#C(8iNKei4Pe5hR%!$QPhRolTz;4*Q{RIq0%sh%5N6k-Yiybp>yn%&{o7e6IH);NZ zf_!UBD{4vFSk9(PF}9Y9nc(a!JNp1_Z}}I6s7{vMv~@XKeoZgX3Cs5HVD4hs^%*o> zE&qH2oSP++s*L`Y{cRWwvYb)^yAaFutH6a>R@1lVlI22b9Z9o z-Ij^;Ha@mI@gtxIE%$#0^Kr}NXJKH!IcpCL+%_B3fIhQ1c?>ESHvc>ave3=f4`ZG& zn}2A9O48;y%FZ%2|D23v=5Mxn2`Xiq`HtY~HgDyD+}`|6ItIHp|3bM%@8*94VeYR1I_#``wwEUbjwz%0@Q5z zW)=n;wuIjT*SbX!3h2%){O3^V+cJ=k!6#e(K7k1iZP~FBDC1kk^WnkHD%%NmE>`!y zg^GvOEvmG6S?TDil8@D86$X8+(y1xoXSIb3Fn_C4^sYo(J$3;XWA*(CJc(GV(qUl6 zSuLNA!FVf2x=55@WzPe5*~+~D+!d?CpMxY?9iI&kNmhPckX^OP8o^+)l@+xlQ>=cV zQf{i%fyMA}&1xGRrfF8glzyaJwQhkyhSmFXVQ}3lk_rWxRyod?S(cTFVvTI8J&Q4z zV`Zk(BG)Q|HseC86w0}7Sji1gDYEKR1GCs_klxJ_s|&|4SZYMoC4z z)ro-%!dBavJ*?cvt z8q?mm|5G^mx{XRf-?UJQy{U)N;BUJ!w04LkMc@w*G`P z^T!JKIvT5h?Z4gLKszQ-L*K?C>I)cDStJ{Q*Jv@FPRu5Ym1Q8E7XED@T^6s>%hGL; zkO+u-7RMHXyKk}21F$_7yB1=w*COI80QXrOe-E;Li%Y$5FlkY#fr|B1!3bnFQ@_z+ zPPS8LP=YVBgk?5D1Zfq}zR%^b)ar#8~*<}~#s3b&o7YN8-JF*RvAG+m}1{0N-u z)ZYsM<~FsQ0>V>M=XGMxed;i^6+EW?5=)wl;|t;4l@T@@C~k~cs%xEOJfll4rx@ps z!p@yBwjL@Tj2+pSiznl~S-?Ea*iP4Ly%+(J;Lb2I6Jg-ZxI&k(d>BbTgPdi|p>y{f zqa_J;=NXf9!22=|7$EawSU7=PU`V$D+MlufKddN#A)zxQkYQ(n=0!#Yg;qg~Qo6_) z%m}c>U z_3_}c84Kvu%3)N=0iDa>QJFuFv4*z3e1>y6xB|uwia-h(k0`6S!4OjwuZY2=M07V}lHvI}G_9w-N;N&3X?i+XY^TLgHO_9@!6BI2PwS^x#dq3u zdhPtC#ks-!!n9#ZRQ;!wq=7_CdyNi($Y~=M;1Z^NLg&lnX*u`dp=R2_AAoXmS}ZjV zYp3byZ0(wMjL!M)X*DZA?oB)KCkA_`&HV^&pG-Ud9>~*a@wOm?)83~#_OoeM|3}?- z$2EO@fAdKK*(uosV~ZWGR%NMJTP=j3D9aGsnxf*UidMmDTU&8~3gX^-@4ayEiHdvg zz4u z8_`H9INyp6lC^y=3ZSax52CeM7|Tb|h6IfIljw^xVCmz%mkNq9yk~!amcHKURtWU- zj;0cg?LHsq`F8kJkfYh@BRP-Z?(&&*9xS_kcCCZ>9-j?#$nEv1HyFL|^9h^`xdT2| zzXC1aXB}CVgFg3C(ZeAhVQRMgBXX&pHf8q0M3YwQbYu}=I z?UPLPGjDuG(Y4T9pS!en-}$ubj^01{OlbsUA8~E^BZ?W~kSTx$i@zL?W{9|UV>H>~ zUyRU_Bks};gUA(^ri9jT@s8@CjS#o!fd?BY4h%-`qr{JB5TnIeMl_SfCi2>*h~xV} ze5zPQ9^^E!jgq6&#oD9LGE=;2Atq~mS>%~<@puY{`d@?he#A1Ia+bllQ z9V}bL(|$p-UF`imICqGJWRrJ_m$n4UG4YKr(A*L4pwRoS_|;87_r(2nLEyglCe=zj z5dX9ZsvnAd$-Q_aPX7v=kHxQPcRUfN(ZTRsyk$Ccz7Sujj^}$Ro?QjBSK`&*V(@Ro zUp$B0Tk)b7kb5Vd_zJZ5;*K<*AH;9_0U9V7e-+}Hl96q|GDwnk1<1jYsl$OBB6+hM zP`1QEyK1Q9dpcTkC2@T~8z%Ys8}vS0@{K>e70GxC^+!p*rZaN1MEDfY7|8+h5XMUS z)&z3A#s6<4Cv@O^D``aK2Ja98K&1Ejx`*&Zkjqu=&s zO6#o#XO{H!b8rrl7D&M|SgM%}fg#eZgP}TGdUz;Ua-^-_0y$LrhaN1s(ice(7$zBvMH&R+d1>`8{e!74kE&aO#pfOTm8_>o{+fnVpcmzFySfd$eCnyiJ=J@oU+Mbi3-P`z0CiVn;r(t3j+ zw^ZuY27_28y;=jb<wqCFLL|F$O`C*#>#FC1#O%xygYP{m#v6~+yq&@gU~WjmPLzilB^dc(HI&e@ zQvP8q1dhq)P~!WzyaqYeC**;7pq-RQjf40pd09OKPRnf^SkB0g&~?jMdFBZq&&j8p zK(`m=^^+iXS^jA}nk({HvS*Lw$0#m(BELoTR!`-l>pPPeJn{#jHMP7Au-j4doKWXLF%!sp0@#;4V|FTMmKciodjgRw#Cw(5zIvq#XAu z#Z=l4s}(&$(d`9w+^16K+!c3&=JLvWb}7bahnn%#}#?I z&|FZII)~<>;!PkP<&whsJD^*NSh_QKq-c-}fyau+RFd^X(WME-`BZV8e4FQrNk0Pl zLh*V7kS`U16!E`OEbD>(UMm{V)#MvR3rZ#SRbDy+fx*h!RAV?q`RI2DWGho?ALS@z zbWBWBuAhL8rYjeb_cTM9NlS5oQZNKs7AoiGLvE4s3p$S$DcG_Ia zlwXbma=B7}3@j^@W6Pk2mCBZXLT;6E=5uhaR{m%NZH=<$J|NdBf7%FvJY_G6z}73h zDL=JAd1^6`8ywJc{SLsH{XG;w5Eg6$Wuxx&9Pr zSCorC0C`pU{3$xRrfeDlx$DXmV1Mo0IQ zZTFzLuN<%mEDw}>>3n#oypsjwBW2h1XdWxA-(k2NXu&{Z-zSA0D7OOKW$aYX0Y-Wvcww0hy(0uof(XR4?fY zXNbx&4YX`k>I*Y}y~sJ)q}nK2-68K^eTUG05g=|yx z{sYRkt2B?nvO^Vq3do(RSLAu@Qca;e%3f7AWx)2Sp3*Op_p26@EjXaM?hj@8s+t-I z98}4(0Uc7^e+|yVsy=ZT#7R}9G0<{KCFud^w5lhSi=0ud-3`ujs$KLesPn2i8DP1f z`a2dKT~uwog&r=czA>P=tTHEKoL5wvu7UHaDuP^qYpM!I(ED{&v z`6}i>;GnM;#qWoFZ_Y<^*mr(9I179O{K0a>H;Ha6j{3H!2k4k@*arw4_kGt9&!62z;ya73aGv?D3Wk>FzD@dr z<%Mqug%K}(kBebgVmZ9p`_tE64w{Hi_Fm(V06%*9{eV}Ec zx@mVz$RxFls?{f}gUFOjQAg8N+En$c+mM^4UUCGS)79$tK+aH)`W32Ys)tiC<1BSU zIfgV_{TY>+%u(MUKV+GDO*#aYtM`)!xI$eo5OOQkdP+;LQg@}x&(-QH^t5Z#Nmn4Z zR^5+I^mXdfKWklU^9KMVqU)K_)@xmSJP0OUUP6RIuU zukN!7&;j)s`ps;<`V1Wf2i4iMiw~(=NI*NRPMrZ-fx6U4^l(HiqStX$Junn3=hTYz z=a#h~HDkw1(;j>iZ9Xe5m#!d-hm8hqm?; z^_l8W_EeohZs;?$nEt-XbM^Xn(DFhZO8J+U>akD3@=Bf211zuAhi(CSqdpOeZr`d$ zU4_nf>bJE2-m7)Xf&8FOqrl;#I(QDCPwGtC=zTPYUqfexrfoaW`f7R(1=LT|`y-U~ z*PI|vb$~`Lg_ePuUgv?#)I4qiC`(hb4YUl>{P8!QcCe<@HgFEnJfj<~Y)z%PV9C+c ztPg0YChR)oay1 zaf}0Uy5<4do*A02DR7vni6^5oOA|)N*=)@pKLMJf38(7uxtfzyv@lOIswHUiH6y6o z1)6dTfLy3aqbt-!nzr8qTC7=f5pqj3qp0p}sm7lYZp$>`lp9^HDNmWN6`BcT3s!12 zPQZh$(%8s2uGaicdG9rvicx^pYNnHGyH0a}BB?x0zb1gzYc5jiYJ;XT`DYt7-A&-! zq&bicKIquv-&5 z1uT0s=g&gfUd?xVf!wEAO*?MC=ILlO2Q=T`K=1jQ`)TOtpyqlcnnRi}N|YbgT%8QL z0?p)AKpxR7U4$NvYQz*j9MiOnoK(FFKd=uK@V3n=jddKB^a zQfOXks%}H?uQX~pOkZn`{D$U@#!B~OZ#DHA0eYtqlOOV4bAK|Feb97jgKj@+L_)B9 z(yW^ZmOk1w-=c>M?I#B~`)ZM~#s1Sar6t^7tKNhO8KBkEJ?B8}I7&xnYB$)>WNBwn z4ap$w>rN0KtX13r%Mk5Qx(>_MeoxABv}&rC8>-z-)03;+{S5{&OxtNLpyAqPbXJYf zp56gyq_)OLG^4bCML_3hZMrw0G1^0P)i72&KL*Hg+HcAHj@K@xW`efsBCt%<2AxF@ zleFE2qM59%k&kAIHf|A`soL+z51FQ|M0MZOwY952Zid!$1mm2k?a>C}v$Xy#@tCu< zW!Iybqn(opXuY--WdSy5KiDx#8?~BTG@G=4MWflQ&9j4Zi&khtM_aWM={kO!cHkPw zZP(sxjvjVse;b8nr?$$UVA-W@^#ICtYk$lDv`2eC0nJ{mozB#KT3>R{_iH~ig!lpN zwpyU&Yj;!7bWl5ymee8bR>~|K)`rt!DA0D{03FdDGDF~~HuVLXW7;wI(cf`xI{h%~ zgm!BpSWarUP%8eEHk*!~)7mpKaGuc~DUEK=YQrX=qjTCIa+l9*{q3;SD%XnRl4v?FmOB(=X6LoJXh?%7ONY_@A zbqy&%ouUhf1j|(28!?d6bYrM2ce-vS#Q`&PDZhg@Q}^-*aL&@brrkeVckB~5=jduB z0h+7ZP4UA#ouV9?`MMqSIu_`Xv(WoO-FS)=7wNLrLD^zmbO;`Ei7u=MCS<8@>T)2L z=|ah4S+2``2Z0s3TfYOjQWrf3%_`k;+QqAN1;-$_Mkk2_v{u(tfo7eqqYB78-Kgn+ z*6X}PfHvqZPshkM>e>&6vQ4^jWM4Mx?vRhNMJMbE&aJx1i_qUT-57Q|r`z2Z0y}hl zDZbsQ%lv@B@6!4HhGw_UPRZgux+|1Z-K#rIPrFZdZ2_SDx{<5FazMAg7Uc4EA@mcA zgSv=jfDY+YE1>hRt}GQu7U<$uL+*&~b0r3NRM%nzBYp>8;$-o!pJ)wr*ToD7&LO zc@*Mzbz50jt@E3VLEP6JpgiUS-D;}3d#GDPH%*UpZK zTPNUYKj>02A@@-yr@sO4NvEU>*gpE}713nqr~M6DUwyj*$o11FlDphrf8s8n0eW>h znt}S`{V)ZY`mXCi%hK1s2xyT0IVB$k>xYtI8KR#~e>W&w@B16N&CxFi0Bxwg8KtUo z_3;;=WthGJ+4AA~T6DCI&{v^9o-$G&n*wN*eiD@yjMm>@0D&?3V>Lk=t8f1p&^Uc| zFF@n<)9q*`=oixk-b8&&SLmFi52DhH$@-ruz?q`odICL6)%T#fk7;^&4n{Uz|KL2D z8Tv=GeP`-ZXGE2!rZP`u%hvvsqt1 zAIL5G{th6w>VKr&xJ{o+$NYBvN7|x0^e0XN+NuAVwCvLFtOcFB^`kdo)O++}C_dV& ze^0-f+oyj^j>LYw`3+Pb(Emx9(tN%26rh9ptDP{(hx7?&A$M3WraPMg{V%CtIieSC zMRQaiYd~{Mf0s7;as9L1=;(yL7Nvbo>dTV70CXEwzQ`Q7@j`@G|=Ff2Po5^tO=GZLxlk7 z9As#89JIlPQgrb?#9$zu*@h)s!IERJQF3LdA(Cnjat+2k5Ey3Y`wXKVZWtR3&JhMf zCD2A1zK~+nqYSmFoMp6O?*Kge7{ln<7}8k7HXm?~Gd!fgVZ0&v2e3>q)cYH>iH748 zmQ6AkEl@q#aP<`iF~uMpbOJQbu$mGf^9@N0pk;yK{8jX@&`^r9^@|LjQ90UTLjpzKOAOO; z(BD!+hystY%y6;^v@AC)tO?`_!$v7sRvJ`M)qeuC!*Kc$l7?9cNTTbR-G*8e1MM;Fm=5G#LwOULeTJkADBEv1MTX^o z;T>J{=NqckLvzs3>nrqr$Phw?`miBxB3KFxx7$J45yMux8a`_1@(##jhPJdYj~kk) zK|5g>osQ~%^Bxt7%TOLB^8N(V%Fq}0sB`5KmL9`g0=M81sLdyli%?V(+ zXt=!r%_T$nVQ^kHq>~Z9Vz^|+Ag&q?(7ot2!woWd*A4k(TW=VAX9IcDa9|t+ZW#(F zrEuHuH-#p53~$Y#-8GD%0p2r=P6G12p~4NwJuvhjL;cX;WrXTShL)6kcx>n`!i#%i zC^!O^r-p1=e9sIM`hoMgK|&|&3&X~aXkHrHQ5D83gGd6^uMJ)5LGF!V@aKTu8vdp< z#XG~(CE$E-ctR)T2gCT!0DUynt_)?L3@<4^-^X}`j-Cu-2Kj@1jSGJUt)J0BHmkp} zA{BoOFutdgd7x2Fsxysis8&A9c#HhVK}PXwAO{<#&j#lZQeaAPT&))B@F6h@3R_RT^Mql{mFk7l${PTuwyqc7!O#v5lRG7+>%#w8D-Y_f3|rH7{&>x=?&sxgvWs%geuWLTyfN70I$VXQ;W`b=Z#=jd;i zv2+^bW*dK`>x((Y#w#H=*Z3I);PZ^PC<8LzI9rGpu)r8a8IXm>dM0RDWQ>V}++yRa zg^*if97OKHQsc$n!Lr<_tOAx5#>V%cY^5=(0>oDt-_u3aYU2hvh}Ia>!oafD7%YeQ zI^zyXLFE~1(O(i+Z@g0;quyW~LfNK`#=Z1cZ#EfQ(A~sl>vlrPGjsFbi3PVqjJ|h#=hk2?KKKUquFPCdk2HxZ;YnJaKN~Z z+{t{Sk;+*P8gEh*a>)4b6F3hWpGN{&V0?cWT8u}y!{v&$0VBC-f=%Vo( z@=7ilmCG=s%f=34A#lYQc^Cp$jrY{ha?QBD44~`AE*&9v!&s{qO|KHplV`}Mwt9)|dZQIaIvFT68Ya{QXo zA37Q8H*f&vGuQ7o3K56-^`|@2;eP#MFx(M-%Qiq@q+bv6g-7`*=t6t6-~Ln}$M_w& z4$iTD_vn}y=QpP>kmLQD41$&kex>N5aiX7(9X(9)n@WF@VY1)c8_+VvFLxEjGSzQ{ z00Ptex`l!^-LI?((>lYi%n&p){o-4IHp?&eF9^)`oBkXEbNqTW$2jNu<&uS-=l3K8 zEc5*$zClL|{Jz)?&V_zU=_p_1_kJLBF7_MI9s^wBSL-?imij&R1#Ow1Y8p6~`$hMI z+zP*fj(}GB1+D^ZmERpoM6UK5D*?2|uZ#t9YyCcu3$V^lm4uPy`L%9|Cd0IhBH_NK zuW5nxH+70ZM*~eWs{)y6`YH$lStjpzAP1S=QKp8a0gX2OrG>IFrW#aKG1j!7o@kuuiyuK7Z+bBSy-zgx zH-wf+rrHb9!(>zG{@|Qy+Wr(;rkM`WqMdH~ZX}R1Og*}TbEfGyU8T%2JsX9moo!my z44iXJ(HFon*VK3xRL?V&-2=|~rs-rE7MO&~(a}QFhcCdn$n@u5Xcn7VP|&o*WT1P| zrKXm2Oe{0)=>_rSrcdjDTw%KNE5uitEWZG`%9M2qa(SlNRQft{1&vsrjIM}d!$0$ z(0S9e<|Ck6rs^6rw@peaJmA{aOyRr>4ZK5O`*qLudGN({Fu%d|~QELE%eNmIh;aZMxJ5EN@J& zE{95kc+kLxkA(f(s8H893MpRQ-d`ZrsTagOsJLB8pD zf8S-GP4F+*2gr&3r@WwLl7CxrTqgUEpcOLJKeIOEruj$F%9`%q?g^S1{<|r?IMaVJ zxlObDZ_|b7Z2$JXfn4IRoDP9J|2g-7+~99F0ov#v?@Bk5 zyZm2sfcE%57Xdo!zo#j!5dUC`7|#1kvOv4w-<|g6MgORifG+uur&Vy-f9`WYSN!{u z+jP}`FIk3b{uc+Mx$ggzZWwR)Hx2^rroZGKnp^%kbD`yqzpf(&ao7I=g>29LgDCuX z;a?^ca=S|P`3ZyAUFri}L+mNFnS9f|r3R75vai%LBLw!B+VU7seyJ}>{9vg{WdR*7 zHHK;=PM3PALl0+44fq+zv!$Zb(3~rkypSHH)Mpe{Unq6z7mVd%skjsj;!>%a-$Cwn zsc!>8yHje|7C?7P{YhuX^HM*LfU*~*N>Lj7WvShp!Sbq9)h&SDlycA=(YsQ$*8+N9 zY7)K1O!F%%ShCC)=rkN;?iz+}2b(u_Mn~CZ$$TJl%>89(#+aYcE*@uoPhtFc^K2tn zCYU+ONK7;fsLWupxmp__r@ zBp~OQf1wojT(j~sjAfqr4>M+Wf%y=fw+qeR(iO!ba~N%>#pZ2mG3q7ezrF{{Qu9fQ z2A7#nWdT}l4#~j)SDM3ZU|D6}Mv1f4=8=cMvc^1f50Gokzn;M0*O_})0xi!RMv?w{ zbKqUjHkx~$0d14{he{aP7IS_DDBEhzr<~4S^ZRblvd_GdJkA4V(N{p`oBNIc@{qZ~ zVn7Av6eF}8FE%iDtPbEjWv+D%a;MFIWaBZ< zm@_tmcGm1o)eYy&&0m6c!TeP{Aa9yw*=TN=H&SKsZF5#_jQWoGep4Xtn%`Xl@}9XR zWe@I~4dlN(H1Ak|!9OzJ-v-)abLCiYzBX5VjX}IIZzU%R)>2_YfFR`ZA?D2bRA23{Yn2yh9jnR_PQ2kb_FEnhEj2r7O}7A5yy3XdtsoCmaJy zPU)|I0CH&Q_n&cI>~}`xGATkX|27tVRP1vc-}`YV>1MM(*MQ0p2XKelQcv9OVGzvZ zR8-fO#nqmIhZw{iB}+Y+vzfp$go~dl_VSs?)u83Nn&T+-wT2r`mAh-X3Qd4q$2Fo1 zW*&F(DroDu;r|s7aNP0|gIL0c8s6kfW6)*b)V3 zklm?6SBxX1MwF0{1=G)9<5e%eG~D6AZt^BNba=BDP> z=J@=f5qX5QK7WYsk<}-l^Q8T6!QSlEUVOIuNaueKAqdCT{r%c0f z?g3fs6WruK!E%wC`v|m4T+{j((q&Fh=kFEn#(W^Ja;wQ(yvNm}IO{$)+>Yh}r>GC) zL(WJ=2(P$~n(#!Gc*`p=F35@e(@97QCiG-Jd1%fFBFls2nqbRw^mkn_=_6Qf2r8vvvTh1C zDnWZLXmJy?7lL1`Q2kP%q5%1oAWshQ*MeP?T6!bMB=`BP;8+fj?*x*s(PRl%H38=^ zp>#D^#tBdN!yu*!-%-+Qo^aGhs9q*4|0_7x2@eOMhpoa7bi!{F`cbgHUAT-6v>n0^ z?E&o+b|I6rTlhs!%-J5{p&y~;giu1;>ZI`dSd8qHa5()Hj?==H^t5LKHnEVUh4>^j9E4 zeF7G(=!Znmj*4FCzB3Pv`-d*W$u4)m^I0F>!H_8`Qwyr0mm)FAJAv_1!WZ+Hdd z5bxR<=sm}~UsdQF>iv{b<+=D>Fq94V?lBC=5#CIJzx@o~za zofFrfYSioE!4wwW5sw*(H}+8cLlb%ERi!2&r1-U$5YPGhhzlL}^r2+x&AM>~Yq^8lR^DlcP*lSMtq=1&oo zr;Nljk(d_LbkTuaKr=+^ra^qBXmJZbvqX2j!8uzLL#t)JXu1lt1tJ+G;}(hzlM!7c zTAG4pv1n5QnkAx*`ysGY6daAQ zkoq7>=?C$?-cv6EIoLa!tkO_#aSUc|thbr6I5)ljOa}6n_c#ZT_q=CQh=1R^fIPrQ z-UC*mdF zI*7mV`H8NZGsNNfkQ*ePNIwD}EI#=H$RT2{u7I+|$y6kkBYsDJd}FBi$^eMxig(Zj z-b%@BI!aeb#*%})Uh<|hI@%yv*%2LWl*Eic51S;aNnqJ5$qfdyMbe!@sI3yiDKy(8 zFOH(yU6T5LgJrkmn|J7Mzobz;C_5ne(F`s5l8to8ACz39lkt$GoCLiemdqXtT7kqT z3tEmyVknDqR3f1))iKE$@{^BC+EEWDB$dHaLgMo07AhE1&%a$l>zn z>JS(q&!^~Yr2Gu|K%?ZASU}_DRZak!Am1MZXsX=!1U*cXul)l8)8*Z|qnRO(rZ9J= ze8>j$H%s1Q0g$uhk0~OWE5A?~&^&pW84#Z@uPFj@fqV=VaV(T)($C}<$;*z!SQg9I zjs^0roTFU&eRG(UL}% zqmTvQX>%3PA7P+xAbE&kb9)HDMx=q`u!L{N2N6>1$RuETL;i_sct+}pO79p2xVua5{j+P zO6MO(b6)E68E6-zTh?Q&m!w@Yq2;o)0?p}FX_yw!HEAt!@NP-BQ0#bHdYW9id(s_I zP<>ze;UJpF(hFpwo=D5mLGfJrZXR^LkiI(%ov)?gatOSUHlT94_tJ|w(D^|cUKz^z z%ffF$JX7XFj`?7jatE3m+0SI|hswTP1)aIFuV_faWvNOin=I>G5y&aB)rZhbl|@k5 z?KIhBItXXWx=%(&b7lSSq4!0y7gWBmM3#L5;>%>MvLS#1sB!3ah0LEWEmq0~v<7mG zELIEE>t(&k)!igJMVof3>}V94U9z#Ap>wb7HzDNq$=2S1+%g zXuCv@Q6#;fyj;UaJMh_P4b><%{)H~On(Vj;?M=gUz%(n!!)J2^ReiSj`*RGl<;*kq z?oic*hM#k2Qzl20g;c9gHGps3f^xhmQ)ri_^)TXl`hj1ezsHh~!2EW;FZg@b&c;;q zs@oZw|9HI}ef4g&8q~k;<>K@2y7BnT;8xPja$l|mIlcY3pK_rphx>+nwV_(Tzyz+M5u6jbUN$IP%6)JExt81XB{;Wm0T;lzhr1Szjt_HNmN_FXLo%6) zYBMO`R6TnNB*My3_O8YpS`OcT^8r#d^FHAF51j*n|FIEe*J?$PuU@;$G<^RliLNHX z!w%pxq8*LSl0z#vGK|i2Yvo_?z0Q!oXvP*^0_Nu}xtNXQMJw^WmC=Fkt%K+)E~V2X zaQ->7F);nOs8V>^!CW;pdKk|2)`DRiS7|H;Kb8BH%3SAgX>>`xm>cI0)vLHkb0NKf ztNc5l?cCMsfc9}4A3?5wE8Q5Jr?_1dEMDYh(>2l!PD5ereQp4`+|RfGO6k4h%7`G> zPf)ooIEM(5SS$x&=vv<1%8t-&J}_^K7ck07A}FnUV&o_kVga$ zUSQN`1jE(>IZl|80`aNB+-*S45gsTHXt8iFWlGlwf2t0FO~O^dP`yVOM2Uq%!sg+i zofQ5=-q{7ADGCBNgh3ZUyDwDG0oK=h$8#tfv4X7@XLxUDQ4#$$YeT+J^L;58 zLW{iv!P1hOhVPEmoALScJW53*KUJgmR;>>~UF)aifN#^AF2hqIBcY+~&hgODt{#Os z?UOnJ(_vLd%+)Wt)!^?aABgXr1`UPg)U#iK^N-3cq3uuEHSqU7G!)bU+&Z#o1G&00 z0cCRiZqe|$wU+@6=MpH@F@m%I2+bq8<+q_|6jzm&&=~H!Ydl>6cj9vl=sedU9xPY5Guxo$ zI+xlXEH}9} zYuf~zZ@J^N>fdp{)7|oWZZR#}58S=q!TFJEO&0SL_kx_NK7!@tpff{IwgLqD3JiZ> z5d8#V3XJ*-woxW)fS}hWAO{M5SO9@c!Fx(6W(npQAuvdAfTm}#;5#f?Y|`7bIb6(J#30mC*=Se|MDQLMMxVs4f zF5(z(!ymJOuhHZNzQ=rV65kz3l!EGZMhMIh?iy|X30!U)=YAP4l=@(BlZ8#_x^Swn zT@JdOA)GcI&}?DpIe_L1TiT&vu`q$|a+e7MK6e@47|H=R4fg|Y^LmfK+A?n+Sbly( z`Nmci2cyT1<=O$$Nz)C~6@mlg&a4w$eTG4-7j!HI@r{B>6ccV1jC|u#TaMg=iXX|x z2suHyxv$btu9L9E}n87kDRtG(garvf!fx2j>8qEjV5pdgcgn$d8&U_<$i{DGZ^5 zeYs!?o#QJ673u!{p5Vz~^mSiwmyV$ag73FN^+Q2ab;vyu{6wbcvB0Y;kWU1Si1t*_ zn*8!-0?91Uo(t;F#UNh@YLOH8QqZ^skgo(Y)ad=SVBl_a`$lk}JbHL55K!XzouKqo zAm0mqq4MSrg21hi`zUx#kMc=yqcV_vgyrb2Cqp+cP28Pgv&dZkQYLqR zaEchsKw)D_8D|RXP(4_dF#R^P3=)>5h<32>RxM~5BAj*$EZM>?+khM{{Ds`p8NxD2 zpv@F^KL#zcgk`@4a<;Gy-3@LLrc*WAR^j6-K<*V5kcHnTTzePdM}z~Zc;Kk;Bn4Y% zh1K>z^*LcXD)fFRyt59-N5U;iKqEw3+JZJxH1{V6j1q1B9?fXc9s1efIFSugikSJc zR(PT%q5%~^Tj*VjGCHfhxd;qmJ4(TTJnXHIx|a1QT0++79bihD@(t89%vcUgqd%xx zwecbH7@D-8-P?3xO?+==3WuKNRpX#0#h=6Xw(Y*bXS?>TFv|9`a=_E!SPrPabfvUU z$H}Wf?a{6&H2mF!VuL=M_B@ydaqHWm8O&V{1H(v8`v+*FxV-LAGnxCEtnC!8as$w& za;vHGYcqGL6Igb0qv=%4=N5d#FpqMMI6$Yl(o~3kk&{yegDp&Ts;r8hiLu(=GxX9;fYL$?bA8)^VrDwsrP%W}aB zvZ$*BhkpU*8o_gia{?QuQE^+7gPEARmP-eL)$vFO&XnIq;St*U3ZcJq=pXo=n)nW! z>7ohH+9P{3Fuk|bhtyxc(hp`Qaam2#>trswG{!fBTTXwWXC`-?Qm6B{zi6Az=UUS3 z!BXzQA~egmhm;Rr%dHYX?K-YPBOv#3f6RfFecZsG&=hc|eSkc|y^x~G7A!~oi5K3M zm(U9bf|r1Mr&4-x_y=hG$F=^xdG|E@+c_k-b$Y9m4sB8#L6xgj4lIId-nCPDyAG+{ zo44-LxpMb3{Oe?|4F1ZUTc=k}>6w<&Ej77QT9+=Jx>s(OnqG;0tJJnjw@Qq=a*ayC zfx&^5ehsda-nC6~T1w^LI;4gKqqC}&11l3LC@3&Autsobb0*n5xm)K-sa;Z2Dy1a1 z>d?GHYU@tvZBm+dPHx@4Lu!iG|7XMQ-mAM;<;qneyLIT1(ye}wM<|h{@Ckx~Y(bdNVEzeQ z5bM<82)D&LqO9TeB%9Td7;X;;@`_G$L?y*p?9uUYFzbo-aJ#iU`>YU9zP#((k3R-P zMkj_x#8@i?{P`ycP7dI$aSUC-tFFx+9qYhoC?6b}RKcrIhSpxV0~1Fo`R9);Ptyg3 zm1Q&rYeND$vsNDz7okHW&I z^<}YzvNj0gu<{H+fnad2fDl?FL5{ejSS*!zOMQF~2?*>N9LWEZ#JaFY)(yhK47Z0@ zcdewTD1H~wlJ_LDRYb>oYo2vkBti&Q^C(wWNf&jj@9m{ z6YYqK39sXbj*GN5E>E<$NGNx(6_ySw3&$+2LU~V0rCQOc-P4j&Tc=bAz#=PO-pvN3 zK@Lm%^=;vi@Ia3@)ZI_`j_&q?pE#|F*`^Vj4sL+ZwAD z(^&Ptt+84$jn)3!8mkx6SpEN2WAOj@>TzrQA6q?cjsIh-$E~rX)#I^+syfY*>)fas zz_zy=WG2;f4_1S9PqYS<53d`MV6{aj)aBuCVTO1kRLznUL)J4fAv(C2(e$vxB~Y2s zu|>glMa3pK?IT&g=wOS(0;`EL2!}2+&|yHc1KDOzv^i|{pg{h7W}w{`6zH_xmiX8N zW>I0ft>I7%vjnrl%m;6d3IUj%LiU*GI4jO&jH5z8ZRfBVmEr!OvH}(-Zv)*-!T)4( zdo01sW5Ed#Ne&BpqN;czhr?>G8yjv(uqUviCNaipO(@|E`wv`R@ez(jwgg8)cpYnE zP^djVsH*$Lgasx!r-hwUkrwysaUPTZ^`Qpe1&13BHB6TCP>V{8wV*q@y{7{ob>m|q zd%DgG*Qrwy3p+O4=UP>Voz6Ap2=U)()FDw(w50e`Eh;FOot!~IF7=+rQ6Z5j=6j5e z55+NDH@a!jW1aWXa8Oz32u+MnvRSN7*R3cLv*qbOHHe5N2Z{!5O$dfNm*B8B!8sj7 zZfY=p!2W~ChQqd02=8g~uR9p8n_-;~6~b>j7sPg*^PDB;E-0|1hvr=g&{!u9M_T*z z&aE5{j4?419tHLb^8&1Kk%ha4yieLpc;yyyBOn@3J}AVspQ30#McKpn?ZhCvEzD!t zB-+AbUAwx3Wm7l8(-mTngG7og8n$<>u{K96_NsFXwAIg`7Zv{xHG7OT zu8zGfsJ8I9#3-vR(Tnuei?oH{16~#L;0r19W>?nrEp7!5#xn?k-YTaJl!<85{TEIeYCE;c-|zSB<%gX4vm zDvB9sS|m0r3}d1dEnL)qLZ6q-dJ&=*&5^Z^&0(~QEJt#R=PHe#dW zXa!ad4Gapd5f)l4G$c4QEU0==N~O@MQ6a%zbo4|=S)j#kjgAUo-kb-_p4O2NpBUX3 zVFJH5J^f?es#Y&_kI7SKV~w=f5idmABcrjZiiD2;AhVZ1yUP}7Cr>#B28^}=tw6Tv zT&JINSGqwqI>r$dPRCSKcp$%T-5}#&v1&8|S^O6i?3^mv@r+=x)g^b^3Pa{;If~QV zgN&-i42SbTqFLuN6%& z83Na&MByLa{1<0n6GQP;LL=l68b-#X^hoJsLF%hRJM3H@&4VC%;aqpbV%DN2Po_hNUx)lL80=i~ z!L;Ui%M@j^T9F^2AilbTUmH%F{f45Jh;7p%p*U}9syPzsxCBF- zFS#&W_uyfVU1&cownXPEa)c+@<72}S-8(GdG0_pu0katbQ!%Pj2+!-xtvgsY-_a1~ z5K=Y{n}yD~z(Bagi2$IJoES3v<&m9W5jOv&Y(NpJBe6*$V<6AXQ_M|Zd7hGG>y|9Z zqyK|k0_5O8|D#JM{=bk6{ufC^UHm%Xmr04~2^WdI73K{_G_u>^qDDsIoa5J<+uZYJ z#GNeh^ebH?riTtdtZ9oSG~T(QgUG7WrcZ2uos-xgs2Xz)+z{J3{Gv#VjYz^9qhppF zuz+H)bLD$(Pd=|#gXwUa&#Fbur|YD1+Mj=8W5bUOw>TPwH?-EV##wDxk62A{@zIFo zTm&9;JrDe<1~|Q#Ulr(_6X&BkNxas!-P?4wbn4Q&V`56Dl-6lTrw2q5E~qGyf50&Q zEOR>K>{Mcw#g+DTZ8c|qMQN-*4=*W%PnNk(Mz>F$NN01R#ia{jgh%=-%0*?`Jnao~ z&cNZUq*yFE&d#4C|ZQ6aVP8yi1G`H9dR zn-~+|@tv)HHWi_4Z#W$;C%~vla9>#t6M?ABS|>Wujyy9=ZA=9G<-`DY)ayJOSibl_ zoE=2xJvFBb=S)Dmpu!RH5uI~HPJmI#z(z(TM#cu?b?{Cs%L_BhTbw|~Fqk>(beBP? zW7ru)*`&!MrXiih7@Y5&o}H)=tM2js;Tp8*67UC>L3Dh8E1epU*12o9ly)@($P6K# zb*HeY(YI6kd^yu<@K%7LJ&>`WUL)^>Ur%C9$ySVN0KPo1ESe4NBvPps`A_a=|C7f$m{XP5sGh?TRmYR))>+d-8me5g-P`%_=}r%W>7m!mJ7=y} z?df0?XK}u4Yy}vJc%&@&v&3VU7bo$H*yX|p@z*GBkS$cCio)?$k;22YBH3XLj|kv1 zNX5~-`R4D(N<490BJaIWQ~fGyc)*G*paVtAl}AjZ~#mX!rfw67%h*5UiClZ zAoyM6aUbK_R8>pLLPWDHL^VF);RM*+u$9B#%D~&k?F>RG3-4_g$1;9qq>zUq8}7W_ zbU}yN2Kbi$7E0;aU8?(c{5Anb?b^F6_~PNPabrjtnRQ zxhKIM9R$bU?xs5-MyI0!K^e>cupDcn@cP!I1f<_0C|)BPk11qvJvO`K^b85u&n~*3Rjrp;@)e;H%xJ=dupTj<>S1|bpp=S)5ua68EiW|4?a+YH-}I=Iw~Fs z-)PuTgsRaEt?alCWtsRSFScPQWTaRJ<_2j$e6iH6#?mgl(egw)Q|<6(VsUp#{d&wP z9m*E0Zl1=5Y)^}VJp7~n?2dEl|paR_+q(Q$R6;}VkWIKcw>u~Fg(|FMZC|D7!)K9T55w2&9b`wu~m z2zTTOq=%P_jpw?pp!Bjc*Oiz+nMZi&taW!mp*y;aNr+4g@c8at?zpgEZd-{ynw!Sv z3mzfni~K^GugH|Pm@yK_omD6ja0&Njd+MTKGbch)J*oIkQwjl%-=UK>lyhCoD!}L-S0FvhB{gbSGh)5wz3bvN{C^ zRY;+-DY<(Z>MPQyehkM{8{9Xr=c&%`gKEY4E=prv7arvno8>>8;H)Hs)LF(MloGqZS&kx6#cwvf$r0!*EQ>;fW0XEBQF2FAk+ERoK?ApS8z zf&$pnyC9~Qzc904aa%2xgv5U??Sw*_^A#phKunhhl>LuoA#q^Ow$6W&V)!nd8O7k@ z31rv&vqPO_1Dv)zu~9TuFZ*;AT@^tUPHIG=&4v=J63zr-$VrH6h}>&rhwjO(I;BM08ep>&!+4%Io)uU{ zN9S?Sc`_9a({=C`dnz_gH;u8w7l9>5T~wSk1_2MbCT^%O`%>2)>hx2{p>r-&XKvh? zb#Os!YVlU^=zOUZZoX{|kclgTLevCg2~Ue9;ZB#iQhkM4Zs*f7CN_M2_wq05U$(ZJ z$OM?7<2PlZ$AL%wDJ>a zLu_EYc6Pv#OGjT4lM)kf5ngzk?15yH2a8JHoiqA?w(=}RfSO3wB8Od+j9N6_`=pN9 z4Xewg42nv3770{`8MnvRp>v|>Qlc}&n&3fZv&4*hkju6^3k{2!_Tp5wfl-P>X(M(r z7VC&*jXcTDj#y+s86|ql|A&>0B*Tv2!pcVXnaI-9MGF)I>4owU2}{MXy_aA^zsNr& z2H=8=4Wf9y13AMOXIh0`D0xkVR;Lb1atmK{(K3xBa~q zV)Mc>P$(%NcQFA)m?hN|xM)lu+Kyrf97ExD%8fPQ;~YFCZz^b6S{ueYD>7yyo3#vw^M35s10RyXP#rCb6oZ1HE=K(H4AXq^&~-aVSHP6?{!48))a)JD;fbYB7qB;?(W8K3g@xRFK80dGB629Y32vOtiT z6t@q;0<;q6!07|JCc&Ar4?{kmbxn4JoUlZkCkP=Ttx@4gF?Qyc6-BX^$Di9+J~)3o z{7|=Vz#mUeGMfx`Hh4HV9>%fINoF-Sg{idvlf*9D`p&#AZw8#zIPUD_KhnDYLF7Lr zbsb3dH4R{OyHsT2aI{MA&?&7$s-tzM--|3oeq!C1HGI_I+6*p;O($ECPQR%{SHVpy zoJ-zSaFzo)fkI_`I35({+xzvmjQ8l=E}-+^ zEJ`b6M~McxUqyF4AMP?+?2iF|xoYE` zKh{X3Yk!=eMcieW(T1?y{MHMGJ#gMr1*f+0yr&9AJsW>d#dZ%pL%7>%2nGk(joD+q1h<6x+n_M=6j6W6NBlSs zB5=Fn3Ao0efM0|}bV!Rs$skS>@)Ph-42h!$^*Iq%8|EJ|9))(Su*?zAsY_}*{sV~s zFGAu+A9YaP$Esnd@CJTGRHJxXq_fNa#KIc|SAgi+l6+DGB|WtK*j94h*A}T0q=jJ# zfsb3{HyIxDToM_N<8phDYOagl!IXH7LJOKw(M1_NoDV8ob4C|*rn9k7l}*WobQno7 zBJJv=OlWV1XJG)<-z6bBoXl%?Twt@UtCw;-0>M)7^5B z7(08t&L;^j9^DlqG6Ckz;`cQe8>=0vgD=H4bBQcWn1+j6Zg&Nz^E+E;#UF(aAoxOI zc9bK*L&fLpJCi8lix&4RiV<1&%+f_+Lq??~rgiDsHKk3lk(a>01f4VI@?o8}t7rzv zMPvf}Zns4yI8x~YINp8cXOx|J9&QG6-Qy@792<_Gr4>K>{z2v+#+kbaLhd3c%IOf& zk&ew^v7oFt+S7rpL1AYRzcs>E-vj52mZ~9y!8raUSSqBl5zxcXnQTwQkG#oZIxllP z@oq+U^5vg~-%ToHb`^65unBWP?5!6$uG}>o%)fIv_s*T@x_)zkOq?dunh**n15PR{ zdG{FkKZtBZg^9TYxWq*swHS%9!(s=cuHR$Bdl<#yq~iBT6mro)>ijubQZbuXJh5B2 z%E=<4P>z0+>2TDcuo4w-RPTlxtB_#aS+U=$QT;_g@IP;W;^P173!u1o=W*fuv19Qa z$FFTS(KVE~B$W2rtTt-{+^%*`{;qR}3Yd>Ng=j(s0L!#f?K^VkHusD5@aPI@OgHN< zgzcr06CiF{A$us#Ud;b>**}+G=*;Nwjv<{_NIO`OmQAJXRbnJ8RXF|-LKk=aXi=Io z^7ObB!Fyr1F0|6B{(Au+om*+5Et6K6sx)|DHG-Nx>x}o*?gRy&O)2INM|Av4fb#ele}zp zy1cCG2#+EE&pjgAbC^;b1^5Vrk@p1IsF=IusxAM=ooI2Y`(@kc4!nd*Hm9FeJdH!A zvfF7c>DQ!~EmScS`86qiLB-Cai0H^@Rx4c`!N$*D7*L%_$?gdh2N$FAJI(W_(6n|u z_Cl1K=6>EN=Q6Iw8%-C)hTxI^bpDK*PlmFjGT#~R^_Be79yg73hO#bKsx|rj_XD?<-d15a>ou(JKE1|KQy<9`Va`esc zcmy{-;hxE7y?jW3GzDGAF0CQFs&3{lHmh_?G_@E3(&Gv;I!TNrb@Q5(`8SMwU8AM9 z#AO6zfm&-jm_MOn8{9wXHCkE@okbXf;V=y!-)kIr{nl9Y zVEnmR^AH=tdiKTB2RHS3V|3&}hJ8G-?WY|^-Y`zs;pQk9wCbkj{o^mM-Vc6zEb53@ zI>@N-S}0i>E^Y#7X}N5?kj|Ieoh@Q&>5*DioIxUf|MirCdZ4k4=Xm)NE_v6JA7GTg znLn}nq6^iJ5Nff$-P6sFK9)A95cnu;nJfsFVu%3@6x_nXxY%q5WkXXonT1Ilq)b=r z++9>yoP9hu^?dK|55Qw*|&1WZruim`*s^oOcKMzh5g(Q-d zULZss1T*OCbo46&8@r~L9w_ERs=~Dlk2d=q$T67Afc1E_rC}8gw_In5!tw`6H-gBe zUvExIjo8paMFaPXTPL|xU)xkH2gmmQ;{^F@UcJBf8G1KjVG(NypHEStDG(g@q*yfn z+ZSoM=2T#u1S~A69BxQjP;ZdPuF! z?S)4<*7SQ=VcJWwgbAa!lZ*XUP6oHzOW6wWffb49AE6%?yg>xCrx;nh`BAyO^-M~L z9>sfq0RnXaiFy>~DN|a3Rzq#3cZssl)VY`WR1xv%&)>oP^vQ9~{0@3`@Bz|mrZX6Bo)*}~2`{9e5k=wjpz5Np|=_6fa7i<(heby2 zaCHsd!Oq(rsZrqVf}p+=x>4m@249Pho?UL?Ab?r(hSjaV7=b~6?`@zWgIio5SHtzG zW`~qCXij*zD&Uuq1*+Vu6R!PRL3Ej4ta?T41k>YrIA-f(?B8L%O@`_xG_Y|$cQYqZ z$sG=xM1CbSn%>g1GB>)sm@FZtnJ#X$XHz3GKd}s>A<#?s%|KYnN3}V(0cmdP^GKwp z#;Qe2FUhwDr0@~=w9O@U2)hK^H3t-8(t|_wGLk_cHSRu_Tj7Qy+`b^m1%x|~KF4lj z=Bf}SZI*|?w){^G(+hFv`A&-iw0Gj%`^zI4Ms9l0UO5~p@rCDuDu38NGBQVfX(R-9 ztN~QbnzF|+kBn3uji^(UcMSL}I1YO_nsZwfK;KyBBh-G*Uhc0vpOLFpT9HgIPB1+O zr&X-tA*s0sTHJ16*q{ExG6sLt$Qaa0U*Tk3nXj6hTI@FGMv6bGCfL>OcP(%Hm8tga z6kYDtkYTnHKUC2azVmofIRXvd%k+noB%NN3w;eRAXvvdGIz;#6`%Jcs5iKEF_<}S! zQ&&=};PZGH0|txIsQl=Q}w2gpRJ*Fo}Fuy|1B8bfJ2Jo zfG{%?GfBp{UgEvwo_k#W9m*)i!eQ#f9}O!GG$aXSCO5 zv4ubVel|sn4c+rDXB%HI&by4daQ?LTLH;y3_~;|`ms7oNh+i{Klj3d%KPdq>A}~ro z8fmJA#biwE6r#vk(mJ#aa5;ecaF$bS-USx)fgh0po2+kfg>GhdSQCW7;+?!;wXH}W zfqmUfe^|_n)hId~G3@pkLy%pzbU&^p2kK*ZEXo8Rlolh>yzpE*c1$n3^g>JFpbo`$uR}T!jTMVtU1GcSI2FrIXekuzm*D$(uFk4D3AH)!;Ah-XK2d z&Hdo$tGDld{R$@l_Tn=bxQ{+_NYT>TGBut|ca+HRht{|4%%5xwopXzHI?yGbQVqR0 zUm)jDCD-;1(6o7?_G_3orZ+FH<18K@k3K!x{_Vr=^^bqr!|`B0x!r7_I0|%#y#)U} zO@zyNts3S_^I~?+=!q(#>#z5({uGy+JIK4*D_Z(s^E*O(j!_fx#`+j|V}tzSUqr=G zf0En!nGSa(z4Azk)YJ%L(N5gt1kzV(mO4Ovh>>wOT=`^Oq3cRI`yDttw_`bh%pH1l zmzJ}eOi~z-Gank1T@&ErMPhXE5i%vcM}tL*HwEo;F(Y6~(@KVV!YLU68LFhWy7 z%vUeW#}&IkkF&}AeBrkd@kh@v>8vsLDti@Kc3kVerhe>gV_z=1Gs97Di)77CQlk zFgvZL<42Kp*y|!_=3u}aEx_VH^$ViIT{Tu_TI^>Z*v^+(Q&-6ab0iNcF*b39n)v#PvCpbNqw;ZVAF(TgI>qHm?#3l3;p^%day;^w-lW02)X^ zaBE(G?(Gtsa|O{@GjYz=@M8sM3lrzjPwzg#b>Q*n+tKLw;NA=IL&Z2>f1hB8bd4@8@U;(X=gqu2wx}LGRb(NaB(I0@UsMb(i7H z5c_Jf2Mi0q86xjlVJktfl;XuMSN^lcK=W6ir8p^Hid`)- zs4=P-``8l;EBA;U^eZzg$7l~K#M~R3+cj8pEgR^Fpc!DK#|dSj>di9Ltd*gxL%UMY z_6VgaiF@?ru@N1D1lZKJ+2E#AqjjP^Tw!{Cw+wF&B@rX06LHU{I2!eqRv_(>;#6QT zS>L}!8G%2-g$>lW+i43?h6n;PQxvVG=(LnRuwxTrgNC{9ToP@=mk#rCV=A(9;7-{j z8I!7B{?7=WAz>P$Ia?pL4uKFi*iEyalA85Gz(x?pJ;SWbtYbINKWmWTpa0sD{bNx{-{xGnwW8#g;GC@?$p`= zYj%l67wg)_T^F6A0~}2)AIvhQ?$aOso+s%L^$*LdVeC|4sn<=Ea>-pSU0_!lQg_Hg zpkYH?!WD)PL!ma+!x@&ef-fovXETF0i-Ek2;g5Z|M!dlIiU&)mfZ-z*bh#6wKh-0xOt3&mb6jpXq6Ox@O1FiFTZ?+N1x9Q zdF(e3>6*+p2fm+7b$s_UM4K~;HVKoCldz}1@KO`@v^GZ4$DWEo>~LY93oj76DQ&-9 z<~uw}UuB=Wnyo(X@ei_7_bRa}xPB**Us7j9qKa+}gFOY8TOHZqeL1j0d_8=|rgv7S zV{r`~0xEVK#UEnya|6siiL-S@kGY^#toeasJS$_ zJmU@hHtn0T%hkfGqD-0g27wYTygG6x+85gc(l<{qty#U_HDgf2G#nFG;7^fCdU(8h zD3>(ADVelCkbMCQ{i2Ns~zcLpdobe9sb)9N{Qg-2_+l2 z#O286=xN_Ka{k%nF0rx3-Ix|>)SG1~!K$Ts_2Hi0y&-GT2F`XRXr|9=V;Ml;+~K8i zU$m2mZ`&&o38D;(3?%ibf;#(i=JZ3yKu;0u9n5Ua!uAYEtLteF;F{U03JN|zQ2j)^ zYere5s6`jJK`I@|U*eipMmt(x%noBFmN|S_VVaTPRgPiKDVb}kVYY^Dm~N3+_1zKX>N2G^RMUKEoXB}1p%c@?h&dO^8|rt^Ag1o>Qhp~@=CZw)r{661xSO9 z$58PEF*9y^0>yGZ1Ey*M#PWo(y6gaj%D>hqHXo?o;Lk11Vqkg?m2v1DP2VadKZl9= z9LfQxL$4RR9~ii8=f+vVc9Zn^38wGYN0YcO=BIdLK9-#w5Y+67q+%7?-(AOA{k_*a5c>@4yi??E5fRxTT8@E+HV zP_`r8k*Df@b_1V*>+hts%f09!#3fFX9N{9=ij0i&#QK@#6A1~TU~~sAA|IV<0GjXsUl1yNw50PO1E$~ zWNoj1*xk^6^pJELYKYzTZZk`Pb!3e)5>O@Mt4UqaZ$KK$46n$-$8QcdB3yQGn#=Xv z99@k1MwFVjgoONYa&9m#F1b2@=qD@~Lm>yWTb%R*He?Y=?V3F=^0VniTIYo^Iz>O6UXbIiB_f zv_1Trhp@K1&>DoOK-##9r?a(0vJyE9jA6({A(07OLJ?G8TV=Pv13FbLoH1D6K}o*H zKPM(3l}hpq(j=(Q-hy_K6KZXCHB7@@_BKaCzh@MBR(u|meDztVVfi_31n>=~=Ahst zp-~!Ia7!wZA`&S^z-<69gk^((vFWIGp~RZ9$c^DT_|n~2a|b9$slVx3n0lc24enhi z;hFG!jG`{1r=#)7+1dE%>FDXxv-{tUpU$12P)mPtAc{L+T7zO)sxUvxe)Oy$(}R2t zaG_&xrr?D=wouN9weU<^u}h?#c7vo0cIHY^WV9n$6WMcd^(CC*B1$kk2D}W5i)v_mr^lD~4A7!m{4+H6x(!V$%+-y4y~0_c zi(rKKJ)w_+&%ia-tijtB>N7P&fP2go(#w7@Ix*)1d=cEKwy5yrWHDJ~jKi&T-v$3< zp2sAn9;lU-=B9LW#S0$?y%Nh#?kxz_2PS!NHw0%$ zij8R?7|SSygZAw%F!Sp@`ktC`D3>|ssjw4K!?ZS0F~AsB_;B~s3=k)#xb<^7?2F{8 z)(Sk|=)e!H;xJPo1a1~$+sKbb=@j61gX=m(5rEH)(*Td&V#LI|z$X-b;fs6vgh(ZZ zMtmqxhbG98JYMW5xMiwc75zHFGRkj<;AOV(ZtuCv5-bll$*b4FCO`!?k^-;bBw+;j zBAWUf(kW0*32jp+zM-9%Bp=N1;{s7I#wv^m;IHta!4a?1O2TwQhTODl$t-HFuvxMj zrNF?&VG^@J-PGh*f&ea2OXwgbvpXEWbG;3@d=o8=Fl;9|4B({@wcO#V-rT==_3kGL zRndO;>L*Fx^m0W2?_@Nu$T(M{0BH@4FM%wH$Q9q6Fz1vYjV*7&c6Vx+hTB>qA0b6W z@T!BhL#yCi2e>8_x+%W1TJKh%Yk=u>G|oH;;|%}MJ3GAzH_RRQW^yt&Jw?&h7~5M% zf9)X>a~Fp}oD6(ZI~oKdl*GjgR{xt_7ue}NdI1zr%eizr1-k~tU#s0|q55LYF3yk5 zE?WL@_hxUbYXv>+AMmJirKSj|u9v0Vxys`OCIG$|=Zg&}&>ixyqhKH>LQW!^n7c#t zF$G0sv?}`CDAT!n(QG z&QWtzlNjB404ff0?HFvqr|i}TPz0I6`Fpy*e!qK&3Y-K1@&Wo1E`;2; zuU89sav$>JF5vp15YoLvdj*#S({Pt!vtNkY8e~t?v)o^}6k`i?$lTsVT4uYR4-B$> z0u@xkkegMJFa!-P8ucJ#yUjI4R*(>C2(oVR`!@8U}#Z1waFI+G%YbzS-Y1vD6Z1IPctkHpNASRl2`buipGG0 z3U3WyB}iL;Rxk4zDzbVdmm&Jx!&Il^>q6)=<4~ieZ`DdTBhkw?Bv_tzi7oCsSg<%? zbV59!r!`#ESRCm=<;{T+x^9C*np~k&YqPK=w`6cl((o6&jX5^^{g&GLZZ0lstnOFS z)BXJQ+t(j{(Uq+dtGQ2-IQ5?2f%f328fTc>dX}&{{FBI3<8SGR>@Up8B4c^aOHn;a zCFPR*WcUaFjsi8!l@u!|Vwuv&IQL!pi}nu?)xV+#9*O=A$xt{IWM?p%4l(9p(_Uy5 zNUK?#S)=HXkgBlK+^f}~Y#sI_%?m->&A#;x@vXD+UZUasyt)?16zQGp2{lYlRF|Es zLJ7lO1SyZqV@7HfyAAD(x8VFF(*=YNVYKw&rj%)8j8{Wf&NP6+Is>L`IMxL7UiWLHeX_-Joy%+?1PmSwZvSWN6P--Mv z+(nKSROO~TIosWwJdr}1Sx1xKg`KSayfX==RWM7&ojK<+dvu2b?Tpax_WKPY8L193 z#IS3>SfM_!A;r+uJg)msO|83R{*8ziqpwTP!3LyhNJscgL_gfd^70Km&gB`w1)!wJS1Sh4R7;zZ#G|y;50{%8mKx%+1F-H6CHnP<-@cx|nb?egO zv!IJ~{4NHPy>nHh#p{oGhkA%c1<)fho8(0m>oXSt0LYM`l8biTnZRC_^DSL=yHH;X zvUl8UxO6Wj>-YB`etg9|`iA5J0H*dk^Pto%xmW7V5I4O4nL|}SOuKcB;Xpn zP0s*3TJ8wsmoe6c7uF2=U-4AA2$;G(QwUKXBXj~nMXZMFh|~Qek5)Ks-`rj!B@Yx} z(uv~!Fdp3-g4PKgzKFW-I1t=rKM9)SycISJ__ zpgrW9YoKaNw|ylSTq^xZ7|ju}sx>dtfdt@mc0>H-iO~{t(A$k2rE(^*#HhBL<6d*G zNJs%m5wTS%wcM-mS}-GgeG(=N(x2)1=Ruy{5y16O(%!;OU zA*I0*8n9MK%!FYls2z3aLBj|;v|}DFH@sUjsG%*E;18XU)5DSOyPG*Y4Djz9_fT@n zOHSQ-UOl9s0i^DB-ZEtbrv9_}r)FQUtn(ZtYdjlFT4g`_qG{c^CRYkXD`P+^Ds9U| zmV+9l<@Od?SmQs0!RLU-)p!(h_CdM0JMwU-!;-Zoh#c9@SUwr|ZjvoC7-{s0;`IQd zcrLWIGNhkuG8&e{#uP3l=}ebdpR8}geJ)k`Y>!Ml*1(`!r(?Zv3?s5M?1nl7ORTO{7CY9k?TtB zvEN;hO#xJ7fkbHE&tBN`ord>-^>EmCcdPMeKK%SST_={ehx3s&?1~oo@}93DdW^Wf zpO@9EkqxbJ;L-UxvANaXfo;(OyFw$tXk>@WNVFL@xav!WEy15 z$6$sw-9*+P8n}$vmnCJ{Z?nIpc*0|63ezcS2I(zglcJ!2SFlb^O74T&@<$yyj)FgeW6|YyuB_)V3GMP zJ)kG}jtLwcpzj3VXaf#Nu}@rz%|iTcleB|Q*lL)tLO5nBsK}oXEqxG8wm0Y4VmJ)l zVv;qvYN7d&uCW-q7orNY7Hp##T0rz4@JcSm=(%>qK=J9;-|FypfclC2S718Cf0MC_ zYZ1ykVJ;2jCi?L5fiyas49VBao9x-Q&%X4(+1c>qWV(Fh{LxE@6MuR4`lrV)jny!Y zyw`XYAk9_e3nI&lBDoIjW=#?(-vBfI*)3<~KJXC8zZ8gh1Ekv#r-L!rqNQ!8cG#$l z8A~Fop|=dBJwH;%<H^TD)DI#tW)1sf zsbWLhko7O@G24{>Ev@<#bHf*9=ngpYTCD<$Fv{F%yLv$D*9)1%2m$Tu^UK+GjM_#h zMr@X3)vYQ#caUXxI1pKlP?6yyWMaS(-fgA}q?F&Gs#k~ZVXu-X;iS2LjIB+U!%eOR zP4&7G{62H488VF6Gk$EbkZS2$Y+cM_=^Eb@%wy&4$xQU2)TQ`pd=gxOR7`O{Tdh&% z*^TLv6+XQFBWh~fHb?E5xIl7S6G%MmY~@N$V}9K;Q>O3DOUNA$IHU%=KtVU})+EdH zF=d8YWjV$LKD)SuhCrVWQAa4~Hn83!l3;pcrn68LBy*QEQ(2(S~IHX_*tx z8e)$T835T)$*vp=#=-*Lx^w6VP}F2Dds#HJ@mge0dSJeOt)eUgwQ9nYZ7!|tMxe4s z4~AF)5s$(})=jcSjTWfi93YJO}>*Mu7;)I z7uY_5^8T?2LDzPWnoPUkoqwc(*hHVgeWeo6I#9hVU(wXPaA)n@<5!UCA7i%yp((9FM5uY;2B_Cl7sbTRn;n#Z&G;Io;aMYjwWF(U z(-!W#lmKP|e~ITe#N-Nzg|q}rrb4=M`-Y*P%n`@n%WES}n${|`z6<4g5pdigy`wC=e zWZ_&;2J~Q2g6ZJ}jW9htcwRVqXRaXkYVYhMBm-Y)06^s;$qNI$P!&^t4YoGPwJbP0 zKX=MU#AD;>EpZFDDM!JnwJC?(GB{jUJK>U(&|zNU=-x~$sjZSDB61BX1N(SiU1wZ?JdU6&fNy_^Kz8cPrJ*obaZ0mw;Tm6hGIW5Nk}i!%m7h#1ZDs~479|># z8zmz34`0=pPT8@lHE%r$V(I~!w8$h~>qyVFaw8_@08e;kq}L>x24cKHIOicKRnB>M zAW)D}z82NP^WFI_S|S62yCu@?^-Aoee%qv>`$a`dzjK+_+%YvLQfxb^$;^3RkUrPR z03Bt8Sq>_p?T124T=+#p>0x&xwk?HDV{UF==a|pw!lm?fNdZ zHbcxXX_s$8Vn2!T+2O2U8@*c~>;w1UbinOPEp1ror|M?^OrElXs)5XQ?2fdp@kpmD z!L$qACG&lYn2zoM{SHJL>>LZbE}{Eh9_e2i+T$-|!YBvqk3DOT4{X6huwSJ5Ws=0u z+2pK=m|Kc;K|!|xPOsDoEbc~_o#AvfGO1C|5w76+8k#BRx7QF+k+cX!y;tYEiE$NA zZpC$}G~;AcR_*1r&$jOo@D^8QDJc{zLKoY!#KtQv$r#e9R*>-$d-! ztZZ4Iv>K-27I!d*S7yU0SyVGPrTP&fAql2On5~wj+18u+?gFLLkb@J2EK`S;A*lio zP2>qg+z=*I%>2Q{{K4GH8LXF!yA7jI;>(}7FHmVQ5+O{!KQB<{rmoBDzCQ-gvm?=% z`;3Hvq1Zf=TpD;%%ODIYF*=EShR();dXWyF$6&%ou3qs5s2|u3d6M;jQ zkVpf3HHyv4TTSYSx(log6aiFzPmX?kJos_&FaI)FF3~GC)(GsD*2rQ7T96^{d@;YF zVPF5H_fJMHPMtASVj|NYm>@;*$EqL&1EEL(P@bZ_l&9PM=x!`ZuO>5y)yu?7Ac6F~ zLRC{06|p(xCE`qI+M61d9x?;DULvHe(EqHi+Ej4(WqbZzmRNV;ngW*qXYZ1VB;4DexD<1dh3fIq5u@zs&kX2KSvR_zI;%r5r4+xG$*hnl2#gg{yw`)3}@=M^G&&R;RAg2-I8{#+0 z7NM^U)u3Ooe)BRb;&D-FTWSmxt-w!OP|ala+8)5)ivty>`PlS4iwO&jA!)4e#ZQRT zJqh9)NHrLgw=jnU9)oX7o{t zBy?5Ey6BYk5hE>wwWY2#pA~YjA?SEc+YAu<0LQI8T*g{GvY3wm`6q>#zM9-Xj#D=L z%pjnX5*>Sa^qF|KA!Wru?*rRmXZq^R%Nt-lrbL7|BF6J9VMcO2JBO2gwCR?EwumIu z3Z}016M>%zA?eu)!a|3Nny|G{ePwyGgwBYhBox_OSdidR1d;^JKFrm)nRbgin3+D) z4H5r?W08=SaW1=;kvPa2oPZ%-L=eO);`9zZRI5FtLi!BURD0|>vM0AT9=?<}Tk<&* zwN5Qf%JvbKXbH8-1v7)Ga~B5c+|6G522U#J6iAk{6xavv2jwU875CW84p`rzZ?m&j znR$Ue@@=}goIU5${+u?e?yfxfOngN^<-0-LI>6Ki!Koy0WqZl=HQ)b_r1! zP8B0GxFS@?BnL?zl+K_$J|v<&sB3nWkaLGTbjV>d+%KzO z_oCZ(q;>~0Y(*8fw0TaxAdyC9*9j<%Tc2E5Z>O)hCRm>ScDP~21DAwT7E%u<^ZQiR zU%ft#0g`GN2VjbBD;tAUThg=-ek)rAStfH*We%?248~9|1jtSd4=hN-1+;I!8GvO; zx^UyHhP4sSJ$F zyrH&lUj4;O!)*Wd_Qzk|zkB=of1`rbySLyWgxCF}0DUAE_{+X@>{X`-J8*2oBn2Y` zjnISK!*m_b9F$i9`Eou}(MZKg>0)RScmed!zr4Q1RZL0M80pCOm`j|RQ)bZ?QObs4 zR6$d!9IXhV#zMkg`9`c-FCr0{)s)Cgz@%C~(EeIpPQ zsh>t>^jwpdomUlb3}C`$O9Bes!6|@=RuTf3Q6oXKdRV_WyHmuCpU)WB}8N`$RctgLkm_;)wkcD`-D!RQRX$KOE=Zn(; zJ4)k{%lF%xcW?hFwmdVlrpS;IP%>&|jD;XmMTjWZ9DhMSK-*iRyZ&|F(AQa%IC4ml zz%YZspwpvqLM01f^lau9!FX1&x`hs$vaS4Jfxvz4v8h|+RN8VGcT@5csL#E_w}IS# zTvg&2d6jhy&G5ZT7RgiBlw^}q^1U-@&{oHd$fJn*Hy0jr8p1)$mXHJCj{O6wV9m49 z?&cJJBnZY5S8i_U`Xo-yw5j+yIKrT;Ewh5=SRh%%Y(#XbODgp0HyV@=7VN0?*^Cnh zKsuN6NLu8c>XL)C-6=%U9D!0(`=QGi9IVGX&y%nn9U4WR#joTeiqLUQLr%g)>@o^? z2d2Q%fi>Lh4_-|$&0SL@LEN-{E+s@m#W@KX&#%vyH=cu+`!N3G7+~yv`y@>XJQT%l zW!%9v!6I;893t~|E>D!eVu6h&jYdXsRaDpff$^QWvSDHm3z!~KsEKglMQFqE@l$YI zdZV(NunH6+L{oLTvNKD7*M$IRS)_sBL_^AxS~!N5dPZ!|0$o=t<-oF9hN<8Ce}ZQ# zZ4TT~57pJ`h5M#x-TTv?yI3lmg$IRnvIzQh@s&ao7$LW8ZvM8h*sKX4_E z33t+HQm11sy^`;ebE!F%o*I8(#JYWf_B%jnKCG3xdATxV4f}cKrIIEf3?-aq3D$!Q zsff7@h|r6ib_J#=13T`q>;}$J-~66r=4+`&^(*BP$1`kUH#8SLP=7tc)8}An_zevf zNjz+3p1?kH4;BjEYv||&#$mXBtAEqMxBDeA76I3TBHD%pWN0Aae*j<*n0D5kA$s|z z1k;mB$*)TIq~{o(!jrRViTq{`8o3A%KAY6aPOrLfy-yEv?^u`1R9`0#hiaR(SNgei z2il`L{wH*c1Qu_#7KkL*L)W!+SlOIZEt3$+62*^%22amnW!?t5QyLu12<%Im$7acCXAdnl~f%R_|}z zsFt%?Th_*y7<`A3hPc-4yi*#WGbU{p#{*>a@`KzS;*?#y_lQGY6b=Pr)xXHjX89_I zNprHkYO`-uAp6SIIh4DO@a7NN+M7IbHQPFK!1_OM9Ah=-`^t zs_KT~)8@g;9v`1NOX&gY?uimDJ&X2!C_7T#71{gC4vjLz5)YJau5zJ_1(LSgFGm$s zp05_dNo3R5p!ak!tv*bbn}3>pJ54Ys3oLG`%tm~)r!Hw-L&-zU@^S@ zP^a(e)!Uz#+5sI;QTqa!Vs2JNe>_Z@*0bsk@y9yEFi~nuXZPHSs9L0UEiiB74q;^4 zlAOZWj^oG$-e}pf9>UyY0Y8Y_KBAO4bA^d2Pe9S_%P;FgZv;;R@u!z=^QZ|b2{yaU zkDVuhf>S9a>RZY9k$`C#xw(osT_Ug?38nrn^{IYvNP!v;>S|C$?@kXAE}%sNw2MfA zCWt%nOui9!f@Hq6Wdwvx{x5~G1YN$&%-UqRG!Dq>{R3PHq4adn(ALXomvg|hocsO9 zUq1c$4~Nc@PJlz(S5*y5q6`P2Wfu{M1uK>h5kl~+ zf>$LeIHQ(vq6Z>Y}hB3OB4yEmGzx>fLXc1A`>nBP_MNh^j^n_0BMdk zZ-tGGI(4)fVE!mKNA*5F!SZm&ePa&2p{Y`V2?R-X$Y9jO|7|XBg#RT3$Kx)5=8Ayu zU|8^#$HEMX&J9Ron}M1|RuGDDK@L25*}|oR|IOS=2&1k93@I`-^ZJ_hEwBc-p;&h$ zqAtt85q0HmyZ1lpT8Be*a>=fanj??{+o#%eyzQLA|*j9DViIpI?8KG$>TM zwN}B%C=i-jlYL!No6M@8|RfIb~>Bly^u4K&zGIf!smuoPPb}!IPtGW; z#FSv~EzcFsM~UmT+~Bf{h%V0TWOBQu(11;}hQ2j~e>h=XFMnt*t+*9D9iZO|+GSlf z3!oAG>^Zc^=7 z_M^ek`PD_Qed!p*gJEA1;gdmm27_|45&9+CLi6|A_3j2`Z|LhK=OCCkn`Mj50v=Z& zlX0ZYe%7fN{_KOC~~Ie*-JLmy-2t7p>2Lj(LJJk+o2;FZ z$gEv*BOVc7@G!3!rxq=}%C0%yz{nBMDt;TF9!Sy!yp&Vuw)P3#ZtPkJnaExjExiu6 z7cknQ>7f+SWfm=4nDC+ZL`S2g=*#MKp}LR`r-1>H%qsCy0B%T{R2`8apS! z4luMJoS=|^_xafFztAj`|A*g#LG(z9L0;sT#pmoZt>Pp=V1je_aY0^MQ2ENCWC?$Z zNJ&7wbd1aha12)Q1fP+E@?N<@*gfE)r3EcmmSG!0Q^WG(f^&B|nwokbz7df}aGyo( zW9UY6v+$?PNvZ>Ehp?RuAGqTwf@J;JkLpg{r% z+Y+9ohP!$RA-CJ5FA~!wax=((3L*waRfleXL%EpFaIdz;B)?=z181)T!#znJjjv}m24XOoB1NN=i3M?G>CPG}H$w^e=J$)Y zA3nZ%`{TVO#?8a<(8TB|;*;iyPyTP82vN!mqyKH#lb-nBhCS(t|83Zlp4f*yJg9zz zPRZnkfF)W^cHS83eTzFIC2@RMlQo$T zsJWXmX)I3gpZNv_+pe=y|+E$_Qu%~ZepaW%LWN+vSBZ`r5Xr9S26lKcjU7t+NGQl)ljAP^%3Hgiq z+N8Vm;HnS5ynFw#jtT-`mUcyHP;|n%-DM2uCsXriG80tNI9HkM zL7rjm)TV*t!qJg3f2z1)+M+IT1V+f4d~g)LqF(=6Vo21&CiCtKw|NOCc@O+DKB{8%z~-FdT($cpT9(&N;iM^^lXXEqGp#5D0vKt!ub zeLB7kst7sn<$QVUEYsx;-BGioJWNMW<|2T?Nbhh7xY_0kq(#NYx>*|qZC8~GQUlWP zQiMcZp_9JcDkee-s^5s4YYxiD)0Mv^%a72>X3pHHc}q%X;}(tm(wX8;3O&?64| z=JyPe8GUVP8vSh>fcUg}W@dk(Rdm5?o-lI}*AM477zrX=KVJ zi$tHVVNyWW?yUKoM$#a zu-mFe$?>bY0JRbNz_}l@%UNBc@SL0a$ZRL?lOIfXo`?zMy58T+~!I=Uf zDx58+o7u}p5j~hV;XbvxUjNJx?eQjH9fKR{STR+7nVyUn!cNF$I;c(P#*RU6N+*{kJz z^22!?@u=wHe2>C^$-=;;$h@cVhuD|0Lz}CMr>v`7XfA44{&uGZF4#p&kJH&nisyED zTBsp}yQ3hJP+`@{hxTSN_8= zM(%nttFrJE4FsU$w-I$7qord;|5Hy**Y=MN^p6kppB(6io>dwo`4L}CnQaj(1L=`g zymT6XAYtNo=FE;c8Td_{QbJg7uaq7jExZdxvS^L#Li9CAqp^mHy=FNE1oq9Q&PzIt zM&@UmGc_AUBxV_kQ*`T*+Agyaj$EiD={Ghq`AsQ*ZBNRFdVqbAxqlZP#;10B&oX;{ zn(ixIMcK|~O`%eMs^ODNqkKhi$_|YxzDP>8kyKjH zNfd@QqasyokueWQMNzPL6g^-%S@j1DQh|W{h2!@>84-e6lublsi6+%Xbr&z-D$+zd zJU#5dr2E^F?ukiZh%-!jo5lJn(vZ+I;rRFo>X6X|#crJOrtl?qCtwj+R0y6guHjHG zj7zFCqq1XnIEt1wR6nyjx}w6mh>;*31Q-7@!l12i(>FppQ;>S6y5!>xrB`5cATcq+ za<$bhR1Y$m4w9a0;rMM*LNwIYwxJ?piY~nYSl>Fq1AMKc4VbZ zP0gN~5QH*-=f=M@vEn&6MObq@YdhP5J|Ph^{!y%fo@Ziif1>sT({xhSmiMpUy?_1j zZth^ zjxS$(-XK>;BDHs<5iAsxkH0?ZJ{ngbee(0;ara4_G7_yq1l(BDxk`uyg9?S{4%);e z@^#8-qiAa%3P;@q(ejkkglK7x7X38+I~^EfLHLeB?^7Vu_J=JV*{@RVz#R8Yvq3MJ zlODx16paY_x-qc!$WAvE8PaAHSH2yF(sjSME*fCoZd6g-Z{{~EzlcMKq7`PgMg|y3 zV5y}uRcResW~~9H7eUhJRXIwC*yViz({MVoZQPj+ZfmA3g(?kIbxu!^=;M@o<%vG5 zlm)LI6$ws%;6b4MI_7Wh?|<5Vc>TZc_a8H5YT{F?OiHAeeL<}GTbwg*zun1)Sb~y~ zx16_-gEcD^fgcut^XkeRHz*t!A|Y*38nhM~r~c2k@`KfquOx!IVVn zxS-Uc(>M%ICOi+G9>E;IBp2&lgA|~I_@g~fj)`MGMxdWxhrVh~VpmhxdWA{ks zxqoy2s#Acl(A_mFQ$lQh>G{BcRDsZyH{iaasPq>K5Y~02;T4T@jB>I%uBoLx)+JBY zVzG5eDeZuJTelk2l30jybAi+=QTA%<60G=0=R{PA5Px5Sg7ZIC6?E|b4PO6@ug!fa zpO*%)bT1I?F~;R27JA}0zlYD^*Dlr4{SZSr5=BG@_isMj;}<>-exh&zPjBFW|9_xD zqhbN7I}p_>RjEja6lr?IltJ{A!zo;_hLRlF!8D}o07CqNly7@xl;Z!Nogk;8qpH%d z9rxm@gS1Y@CoaDyANOLjJ-=(PrwiB5c<~ngn-`%1qcBHZ_ksZ)cTm|{y3+Jesql(K zsdk?(PsGcGYbwo%7Hgol7bdnDXjM<2u#7lEO)ECS^Xn%CwbwND5`NLrube&8t1aSG zwyPrelou*k7i0B2dARfH(Gr~NPQ&(hsDy};qIFXvxM;$x?R@tSrZ~1=M2cfG>RPfJ zXfwZH+BHgs2nOsNymHBUb}|SL5OZx`=%$Ago#QY|*ly^`Siww59OM`AdZ){{8G385 z&_rF?pF$H*Mmo{u((FZ%z&m!AhD z?yBhps`}(!!u)+C=Hh+*s8(s@l<%6qP#QT= zjYvg5u1sbP$QRQjGO*W7!bH0#oiOs%)dzkA)gA~%?LUyvoxQs{z6&_rekFUtqk{l_QinU zXSQlv2v3W7zvz@;dI`-7;tS~VZ5l;fGw|~;HrPC6st86Z*SmFH>T9Hbj9$o& zlSB;H-;9UL<@df?o=XE-q_O;kSi#j4`hJJIcE4wwVWlahU8^nw7xkRD%`RZkJccO4 z(v&|KV}~!a?KRcV0jJ;u)K|#s$ZPDl+^zz4rg@;@6PgyX9BqfNDG>~s(NgSxn>OBn z8Hu5|rGr|pf+)c>oCtS)4$f_J|LUjx_SaYM@6X@gzfz9vp8oyQKUioB#1quVI#G}Z zW0%>`gzZ{aFd|iLAx=?$6sYy-{fCds`?r7m_{)B@d;jX~hoA4?e@KXS3!L$ykt5lA z=5RD}k{Wyl&bpHbUx}Ix0azbry>Px@DwCA2H?=iiQ4nS#n{RKot!1bI>Y*M?dx%}c zM?S52$*u}CstXrdQ5g##DZ`QwMqD79Fgh{A(x4B7BLKFSh3O8kt{tGEuel#YV0g5& z9NZ(PO5?TmB(*Xe$OX4HgWBJMg=^Tw{Azx^T3ouWE%aI*ewCpGzIwc6ugMg?FGOaf zD9{g_Zd3GsdN6If8@zN_3pU%*Z&%-FH!7W|wC<7H$wIoqJMa;zh_m|FKsf9xa?)>H zQp_b_nk|;CtgrefOJ;mfoXFAfl*~6Pcf@2B=jehRersiiBE~ z)Kx(=7Bu9C?QRCA4&!ByUy_C8YHk)_v03tvlit$XNpN|WovW}wi>`s_;T zRgU`!6es1*NQ{b@p#*U0=|Vh*+pPhLC)<)n=&>v9hw|dXZE69thfuT!ir?T(PY%1_ zS0J&+k=(F9POXG$+I=D8Iad@MwlH8aL{Pc*iRd16$;6vQLr_ijq~Ah=&nO`!xg9!f zbN3CSZAy5$nlSS#-Vs8;@MIDWy_929N^MJ+f*1|NZ*~1*6x7w5N}Kpdb8m7hq(qH8 zd{^6ra8=sw?F)5)N3{4XL|1Hp%XL!=VAy51V82&_J5!nb=a-HN(uO4M^_5`Stn8MI z+XkE)@})7KgItr%4@y4EU7%)1oORv;aX(IToyylR!wl?oqz%di@s|!i~ylClhlAGm8fvh8=in25y&CjJY&m?tx*b&Q|^gy>H zW6EWgrMhCmlxEENN=gl6A7!=o2MVbh^OUGDuUdVr=Z8tpO{R?ss=2%WE;zmLc?)@PQast}QW4lf!UF;bwoe{sHX|AHllM~tpViF3JE zkI}lAPN`+wDv-XUc#QkXfW5DtUUcj6VrrjbOSaFSq1Ja3Qo9X^o}T4{9V(INi%1WI zyB_%BnT(>PS14!)8KP8+w$!INKc>{6h2k&DevD*bf=YC^L4e3xFkEhtB}EHtl4RG9 zOAgZ1wN!RMD{e?kCqf_~j!yX>eN+ewEZp;avNk7aG%2U@PgNsyXG7 zS4KP|s4808pUi&kU|6qOzJINfdb67)9zW4c-_4vF(N8*bT$;<68XQxoAZ~V6gm(&o z&Y{kh)9#>d4wcbsjacLD{m0$s`Rn;RiNNTYea?NtD`wNf{NaY~Hs@&SJAh&qZg)6; znmexwTQGg8z+9e6O+Cv-7(yN30}@cX9K{kQs6UJw9T|5h<|Dl5;v99sSt%oP8(@Ch z+q(hkkz&TmJbI?)b*&|D8DK*fPMr@!NFPd(&_6(H98vb8F15%Y%`Y*YSjUpbB#}wi zN$(*2oSKgboC$$y&`#bWvclEa?zL`=Q}59akS`OTR56oo^ESm8EW_ESh1mbi@1bn% zWhS-j=5OYAzBl}w@bsD0`4B&JU_>DT;S9P;Mw$}*zyxu*?BavWP?Z!Y$-e3bKJITP zC`0M7;C+|ejBIU^BG|b@eOZ9CY{Va=8KfMiyx1YzRbBe-87|=M;`$Ohw4FW2o?YMR z`1SOg;)lLz8)o-48%S#EX>m~a;r$22&fZ9D1bAw#$&mgMDb8ZKy`9}bb8IvQZXU+d zgzkm!Y1l=U1|wVI(sQ<>Affox_I62bt4u2%sF(+mvU&FLgTr-zaHp~?sirLtl+5!J zJMht9@!?^)*)7hOYK#ib|IiSvot4uXpYErF{HGwIsh*~=-TNA*%{Rsi5lx5FJMdTC z0U$0sZ9*QFc>4zpP#{b4!DtLnrIO*aV@A}=3N-{r=qseUp@mmPl{vBbi<`|9j4JD? zkC~b(#9f$&{$qy9mWH6Ng{m_dkkzs4YiRZWGZJ`IL!x7-6_kjb_BgTBuBb?wK$C{; z_Ry0{mc4M($8}G~PyP?_?ptUjPzI-}Oio`)dO?@f%HXL%h0=yHVPmbj>0k<=W1VO|Zb;@9OLcd6WwL{I zVc?hN>1-@|O4O-&6z=OSrg!1RdkMtpdisyzEPq44p#o=fP7UnT{2ZR|L5pCxdqh7w zddFRClh>Xb53EPW1=H_j9HC(8g$IIwn#9IxmovQ)bKRPthstpG8x>_CU^r9(r= zEHG^c2|?FWtOXgFb)~rn9!EkS_AZDbN0ADZAup? z;z=J1eVUFMKhB9V?*|e~QGW$aq`w9S`t2-HWguY$&;@uzbQ-yBJW0-QoY0{n6f#HC3=eN6?>)GWE*eS+z`t9$@lxfN+mS6g^ zeD&(eihQBld@7 zFZ%6bU0`uEGZ*KmQJqb>2>tuuztY*HG=Ln%aODbnlnePo*U_e?Hcq+(^IY-lYu*qv z_;^a$?$<&E8K`_vV0xt-@gI3&+8=PkEWuzCJU__e|3p}tkM0@dq}DBNUwBqj?tE~x zjIiDH;C!&*n2_AjWhmy1xIhk&@9y#jH_ItN?(;)?e3V`7H$_8rK&jh+IVnRNF9g=GJ#-SZ%%sN0%m(ezMcH? z_Jt@`a=3(`VN-_{9y#=xv`tF4wo|<9?j8L!(?N%f7W;^>5xiQf$qY`Om zq-M6bbEUn;x7E@W@tiS5NNj-cgxO?)}9n|WMulH3lf zI4-HM%nO}gl41EVP$-bF^&&}vrQy5jk}+eDRi%OO3NwE3xm75s|7+*H1l7ZM$c=lO z&BZ=MLl~lE_o6JWIZ^qHEMHVtUhYm4g@nk@D%AgarukjE+~^Ix5%NQ_t<>B{ryu(W zh0|dNk1miG8Pp`;E_r}WCo{<8p#w8hMfkzQ0+7&!OvaL|Nh*u_ti~ed!o4g5)XiI2 z!?j?-{RQuu;LWU_AEsRN;VU2|B7xElku;T?>eJh+jc|A~jr1_)m{hd2%3^Dkpcd}t z#^grJccGgp6tO4U_04u6rs!d?sVCPUW5`7A9vWmjz&WV5OrSj%uW+Bv6 zwXCv(qtti1y_8@KFqR5QugI>MmK$Ag-Qpt(;#z^UxVFzaBH}YlQiF2`w8gz&=v6L-jF|1h0QV7KXY%C3H@>bNAg|>e>R&lQWrS3~gJIfm2#r9oA%Ud$n)U7Mz~>e5JUyehpc;0}_=uWNN%sMgI$uTiJOwnbA9 zwUyUX{Cu%Q zmL1bKvQ!W+*o5a?T*hW446vpiQ;9rJYLUmCGmx<1=!jQtPQu3)ZS6TH!tUiP<;BF` z-DlU27QBwc{lnir-v9XS6Jo7-Iw*n%D*;2}YVAut3gez+R|UOiF)B{7vx-TOYK93r ztA~#&rC|foa4?jR*)Lvyyhe>u6yhbudmm0Nrf@OafW9sxQ+7!BtkW1Yxjy zarU}3Czw{k4s98pGlU&L)@r{J-E>_KA-zgfrJzLb%jv@uG0f?s8QIbF6A`-Y8EEzf zx+G0r7T`M3+w^9K1i(`#eascg^e?MdZ$G~N@Zl8~RvcA$hZ;%j4D;_qNOT)>Qk>Yr zsWI@*7`6T}#oB3rSzoj$Zi0bGQ9zVyM>TbYfp zg^^jP7I{r59k@v_5`@vaNe&2k!Lz1ng-nB$3wQ(4CtF_*9amvRZ$yrk%zOSXT zp8aF=VCtsnRK~Q7EoWcDG+a34#i}&h3y3C!{xj}P0z9+s3zySsCEHrShZdtIIe8vCb)Ct=JFQg zC;3KBSWXOiR&Q>=D#9)12h*xfX&TvH4FV)nv2nwX6m_uMyUn}|kAjS0wU@x9BCkyq zDONDiJy7X0u{=<#n&5nAidA%>?Sbh4K2n8VYNc2|(&M$;K89_J)!?k*E4PJH1h^+= zwIY!?ktuniPqJjO0WhYN7p3aE$v$>`_Q|M}@4cNWZ)kUd+rnB~POSp1YM6FM)SD7A zba=*BdqWQ^NQ$dZK=dz53BBmf$YFN1h(U-}hP$B<5-a9_%Yac9w2aZgXZh~0>vw;> ze?NKm_UG4sJX+tsfBow(U;p^$pQIw=fB*g8ZR=6)#(zYICH{8y_SGNW-1k1=F>0py(@c)#Bt9eud}@#E`vZ;!tEcJu1b^G|Po{OU1uImm5jSs-B7byRD*h-utU zmV!fZgg8|)tCFC>nG1yTdh;KadZfNRdIktVc>G-@CQ?wS$0|(ZHx;NRLJ)YV2i;u2 z(FGaSZq}&ZkSYeM0}Ko(=jeczss-6=jlr(mBMe(}8pT#M(S>Vbq=U0HGS^(#HcvcdJb0|h7#_6w(w z7r?K8`zftd1r2OL)KSxyU+nuW1b-UOz-agMnmkBD3Nrq*)+HhjP4osUR{JEac7r#z z83kBBqVbIyIOboqa*E!_TjNTPVAo0cyUN%Js=Rf2k-v!+Y%3Ijx5$J%odFy0Ziwx` zPJ9OlJPC702h)No70j_oA3is8cjR3Fx{=C;%Qos-cHIRfkiJH=vO3&Q-}z$qrHq!A zLJKatmWsUlnJiS;X5|u4D@%Go%bgoOx`h>b2G|b~^9z;_3HMn0)=J=t<%8nrhzMIq zZRgi;29Vfh+Y3$LVW)`#m}aP$4{RJQPf|>cjOFFzN|=6N@6b`U`-S>1)8gR92`vu) z)RH-Fy+GbRCX9sdo+}qBfS#OrN}vK6{4s|=wYhYF`Uxo8d^@G5SHJP92Wp$_N=&!n zM@usnIWWbp)haF~UBfg5bwzPx=d;CvQHfMk3ktN$TGQuN$|F5CnV!rt8P^4@5+1k)76a7D~`#P?8J40fxekS)xS559+> zOM7t!WpMAs`}!b)zZF?3L{ z)anrehn`{X5{oROpcfEhR$M;Zn$XniO%#KyClncmIK2#*M@edBvx4Cm*4Nd((Jw;6 z6&kw#@+dOYyUJGyDGItpv6Vc)M&*2xhdqKXxO*^r`7KRbrsyh^C9AtW19E$+K0u4!TLu zf{GAi-p7G@uE;~gjI~SN0QCbq7*3`lEG3#+Gmh9Tz#`6GLX^diEMG~uW=h_vbcpbNAIl0KOB9v6p8VjR zA4N~vtht@r%J!Hk1JWIgjdH}DK6ZCSO32P+YnK&BU_2JjuvvOK?3aVIC7nHoMl9uN za5ZoLm~ux+UYrNFTT*-mvB;YnX_xx7WjjC-W(L8p`FxW^$IM7-P5qz-1X&x zMPYx?v`O*LuT8mg$UD1#fNts#PQk=ONNpC0nB5G}N@cc)Ge-j5?A={DP*Liw{HH<; zp2`1DR1LppQgl^=>*{JssNQ_O1`aAbV}N)-i?(2xg_7fw$eW?N>e3P~*UP)&9EIS;Q*AV)@MLq+cF$x03>>8?O*lct7AtU^8eo)f?Og zq1VutVDWYr+T1st950PQMl2ymgZxLIJvc%a2C!+WAylJ%!IZ*G6(zg#lYq#4@%5|6cAdw!uGua-#8w=!U&oV^c;j zj}^`3?9S3J&Y1aNGWKwG>Je}^>N1#4ve6C_1#S&~ePp`LO;2`<4jSS{w8Z7atq%^% z`B@(vmUGxXIP9ssbhq1c6uI174!_1fn8$v9|M}zn+Yhh;f$cv+@_GyB0|58z*Z2xf`9Q=>tuLu8Qi2omb1*_Lr|Nj0f3Rn0cjbL9b(9&DJ9(-jG zJ!7D!U=V_IJmrCxJniM&6D*xC)VjKX!FGq34gKX_L6E+36e1ua{J*vfBPN>;4(h^b*(4AJ*cqLf-CS-@!9Hu_nb!E&#YXOrq=F(|lPdvw6`wu1QHzk=QH zFRwn{-~8qN{q+6ozub3ks{|5rRpe5V)}v_a)R%l;H-(CuaSJ1p&Cfz(+LfwdntMSq z%+nj!QDt4uz2(hGo;-}pX8J-FSr8+c*hHPTV-Hg#Id(v~HYIu3`z57GZ{Ov)EDQAIkc4b*? z2|q2|7)&M|kJq*?lKp-m<`4{m%hKoA3#&t|E%NZe5^*7s&L&Vk?2!V|0y6e1Bpyeu z*>BA&;qbr1**9mylks#Z77;I;Kr07#VZD==u%U$u%cX~^uL$z0Wab@oj`&VWZ>h!# z*dx$cBzb|8%l0`eEvx>@fz z*j87C$>*WKf4@{+xKeDFtqgtu)odt3yp^8n;`ONauo)K&m_At7W5nno#_1d^mJU4y zC}X#*Qx7i|n(n*M*d^m9Bq)y$UEB;pfiU>^=U?C7|MA~a$!5F`B|$A}{p)y-Wzy3F zAz}TS{|NUOGYG5F^WXKe+iPepr$_cmRbt6yRl7UNZd?@Ifl@hdYksQ^`T1+a&`uk1fx;~uFiLpD=)|lS3}vQ zCv-Ev#ZCD=P>9c_3#Ez#WQX&BYSsm6!MFuWACA_fbll0knrhMkHnpm%TC;}+`GHDD zQ`R|(2w*$#8=#J>-w&2*BXUY7kKyo}3K-yof7 zl~9KJW||OfPRe-ArF6(JF$_$Q*n7#{;XYa8M7lqYef>$!2yLA3rT^U4FvAyO3%bePaZ^kh>yxbP=`n zm8&!SB;ew}P{X>3F?g-BRKstFPfkysos3V9pN>YOr%z7rzk#*ByanK}M4`zUw|oJ# z5l6hFbb>=*sL5aj5}x|Ofm=NntM^b5<~R+W>Ofpt1F`Q@{G!Dzo@(Vp?_H1MYf3#- zadSCS1eWPM+&W~7!XkSNAS`C~Q+}(k+XPdODDj529uhDtrv<|}$UII1k>?l}!{RFj zC#H2U^~$n7^AaRYnSG!<5C`Eo(=rYvdj>-vbh}o z@}Fk4mFx15!~rOC$(JHMntw5wW4YU<#s@A(X*w~Ihy_gR1@ zphjw&v#|-LCa8|FVFVb0dHn9wH##Q;EymauDrrgKC#wx2eJB~MD->QosnfT2!FnF2 zSO%5qaSG(2o1cYVTVksbGerw5mQvs5?svWXPJ-z@$r}!q!O8AsvvuU_^lMY8leT1D zzyN&P9{PV&GM?{u0}xHb10OV7bYRqgiU4kT%^c}pSqA+tC_FRRT#1nE-ED)1$5grA z4-ZqWcfW0nTvRp8g;<4OVT(XrxE9k0G|2%zZhJG|y*S?>2OpV}jtk5Iu(E_j)`8P1 z2Z8a=hPx2rpi^q)!5XG1smo61DA|SO?^Qg`l~RU9RC1KAq~X784yQOsZt-Sn?2LWkUB3Fim)uN`ajW_yI**k2MG9HZfRnKjQvD>{6{O5h+Qg z8jLtA6bfd)@lL&?T(}?urK_Q@Dc8)C)FA`yEo?+&EA20U?3fTEsGR!_85ogV`>1H6 zB8H=(C93GX&;q1)5y>DFkuf-Aa_Jw?hy!%z_-tEFGDVs{VbvT6>?_>>sg>6w2x_Tp zGokflP3DHv;Le7-xQxKmrS?5VWxyN=b-S0;Z&+l9fD zasgi7Dr@O_(A4P6S;6Rl&)+ne_6l|@G&aGScka*_pdF=%!82l#9lEG7a#kWDekEZS zyhqlKAy^MwH;>{TxPV(oKCn%k(tiK;-TV8GpWeer1v8eemq=T6TKR`Hp!DFyHLEy* z&=m1cgQLOG+jpb)9IT{#{C`dhq7v#5|8`<&$8dn)?N~>M~jhp}(6#1N2yj4S|k2a5J2`*J)${68(!ns{M!x+{|r>m1|N^7bQ&w@Fl z2Rqs+Dwav&bq@^E1F~>RONTl4xky*KFj1pkxiF<-HOLZ+ zL+K*@I4NQvgt;Py=8_HXP#L(2uOT7@L~|j^&eq6g>Jf6y*LT3hk48|%?rxxqwRq#% zI(KL%#QCX|8(0}Nh_ZwKq`W`+Wb{gI0+-7t>|;JV{115&tFRNLy)`kf3jht{Rm9Jd z&Y|OcncOjT25FrGYiu|k4NX=H6Ef?ws^&!l(h3wvUV6)pJ0KRuRgH2q=B^XB^xm52SKNH4A>+TrF|a6S;te=hXtSyV z5-25*K87T4zNH3#&Agv)Nt<81`qTaGuWA}Kv{OFput&x$7M_S;O>q5pjzZG63X11>;o9pMzN0!NVu23^`iDjjZU$amlQKtEocdm z<`}8~Z)$|71Wpr99z1HQ!&HIt{M;P_r==dQ#mPYZKzxC0K>DbuAW@q2+a_@6|~F0yn6fg{>>PC zGkGm<7NMopD33Aa_tH3MufxN@`JUqbwp)NG2D)Qc&FmVHi(YdJTqvm^;X#{_y9m^& zJJgAjF+(U0ZTN^m*sM`kt7=`-r(>o#hdt|@Ll9WM+cO7`RD3n6L-x2ax4~9eTKgN+(_c) z`MBW@Xp5JIn+O@xXoklTawfTnLaEl8S}eGAFddkeKP_@?Z3*6 z?fr*;tt<3c@4s%}|M;&TKK^+;`g!>I^Zu7tZ}uNw|M}Y=JwOHLA6kv|rD-&bIZS=P zn&;2=3*-o-8>uWr{i&Md9>A0rr0=^Wn`=-P zI&m!)-G$kh$7YOCibC`2*`{EpXmV+9k zNvZrgfe0}h399NzlbJi#hI40XY6L%wnZ}hg$s0_L;a~>NvRi+DT#QTG**h+Cl^}M zDdc+O+Sp6{cDa<_R6^Qt!)-VfNxbHX3f;2!) z+SXMHdPG51Ej}jy!6*_JL7*J4_=@YIa0%5fU>Z_YmR>ud08H_ zX2^dXrJq88g;aYK4**rO*IMLs5e&57Q*l&qQqCv{w`z#pg!GDq2Ey(^bCG=#q(~Ndw<===;E04yt_4FE-De z4agDI?w8hbFIvI`)7IK{<2mzI-YFp(>Vzy36j<~MHZu7?a)8uUqUTIy zXvmCpT&b`cke$`pmd*^5$zZbi0W1msG&FP}-PJlHli9ZCi^CbSyFlzaEx~hz%Xe%C zr|zhdtp#SawQ^vnT9k}{y>5El0kZ6t-UCr*+Ew$$<+Lsa8l=V8E28)C%|zCsffhpb z)NTQ&7({R-Xs5n(uDrTHDD7>PhZY;D-!Xh(0>qi!-0mj!sH#g((n#_ta0N#lSt@95 zx2~8I&(Pz`5%$`+N(V>$OKO7OW|hOls8IIKFwIcW)&w#MMe^*NQyA0nYLe+5IfJ%Y z7mEJCI-BW>*N?O^w`KeX8hX6lnpg>V^MKE1QjmNGj~XS%Z_RF}aG9J%iT496D^vczaW)3UbjuA9VoX9L8w$oV#pR!?H0oI&}1t83b zJiD1ow2wx@g5Xxg`-jM<`~%ETvcsh zNrbFfb56GZ38*PoeIe%f5aAErtkcn!BP=$(7w+^?ls~!cRZ#-DSIdKMzrF~^CNxZ_ zPF-=~OVGgW-pU@A#0WFZ&r?tJQk?|T?6A8~xhvO%1#cYLf6S*$36^BTh(YucfShb)f?_E2 zQ~@_3I-N-=_>)l(htxat1)6GPtn(zX`~*5$PBvHjn-{q9%7%Vr&j!VSmGU4tD8LD= znCTcvrJgrf$XO(i2IpIrf1$8M#IaF|$+`xjdC*_uBc{|fJm~siN24m{m+mWwOYx?Z zPQmjpyAdT?T8E@5E(q%BxIF77Baw>FogoqlD7y1DxG>v`F$tDe2OJc+2}_TNZty|X z+CYC`PUE5J#KHh!6)HxuQR!erNB9eAX!}lO6)kFvDb6ZPPvKU#KHtGB3;)nn^mCu9 zXgxq*LaqyT7lfN5-((emKDs-@MmNexSSGAoI8ne|$vXUF0}->L+EoyuO;VMSB2}ar z4$_}{D-mwQ7WZ$rRCH(+T!#}0>L-)iFcchpbNq6+9-e+5|E&pv`W*U2oys z1-!LCWOW(*2C~HjX-a77sU!!xDL`ozXi<6-w2Yy~Xq|P=qnrS`i7q@!@~C>QHtR8H zn4x&&CWuzvXxLE9{B&;CCz_x1L%TCZ{)N%X2<{q7b`-PLPXnaMO6xO&JpyP3-}@L( z{~P|#IQ@2zq0vPwmU({9{hFvof`-(75tY*1Oi-KO$Jxq`}uUT0ccdRec) z9aL(H2BftoHzBv<lN#S{R@!s1}9k$9CIcm0_8m7X7|QwQmbLb3Q<1m6hq+v$94j zE$lqG|MgJ*1k-!UGk;u(4mCuBQK#yBkAkcu`1>u4Ys*0E>EJL7Tm|LMdL;_^tqU~V zaZQ1T&PGcgX{Jl;9m-AY*i&3@HLUzdsqvoneWXJ)mB zs(BTe=`py4>+_2xsz=+cV*u~dQ0d;+9O;^OkD<7Lz9r>=S3@5gw*?){%-&WwqUi>s zy==3(%ZX#z&~JHjbn?_nH_%B_Yl|K%OTVj40o7VDSfOt^+l>umOZa5y2zLxJ#ivOwCUR-7d!oogP`vbCB_ig9Yy7AfQUxbpbr*WR0`(#q6Rp;ocVElSln@Ptc4j()1LV=qukYXd^z~m}z4-)( zdYFikY2nEG{^vkL2LJLe15V-b;P<~Tdh{?&zT~ zoBEUp7s;9RRA~JC?W;HMdV)p-tTY0Srouun5GZ>KHE=I8+yezhf+n_Bq(K(yd!Ua@ zLYpHG#q@G_QQ=hs(xUiDl~k*f47t{}Jk=cN9iksQfeQy(vo~|NY(r$v;Ra9>`4(DD z0vwtJoZt^zIb|ZzUV2!PYrSalR(BA##E6t0mKmtm=m%yLgE9gLB^dC%8lYaD2iW=W!nMFw(PY$6$ zH6mewTj^K}!`78W#qDOm6$i$nUb7OCwJdX%Ci;gu7^JXD^gruiRv-~oX}`0)Zbrbg zvJ=L?9awe2G)r?wMR3K(!W}gUj&f&_2+6+&2l}ergu@f;A zs}cm)8QtZ$%FpyYI?og{&l)uDs;v;NOL#! z>*fb7XJ|UciTU+hJg!!XmT)3Y2_4j!CFW>z7KhX}Q9^_zn%9lE!c%h(fLI2cV=(OH z%q;rl6+OR}C4inLOM?u!+@VcI$wDIlfntESjUd9|BH?Vcn|V3}ATOwK%uP$5)-yor z4DC8SKFGIOICe{w*$KCE2G!&cg3a=vEgnCEY)rG=_%%GICvZn&@`4@?r}~O9B2MZZ zC6o~&6K%~IwHF}Sx$tSAY#E=LJ;~bLH6BeGqZXLZtR_4a$mfWXHZc}fx{mT7K`Vbj znUH4JdLP6(JoLT;=Kt`Dh6zrM_N|fyt=!j5Nxx z4c)Q{$t*MU&UD;T5UJq}2 z#ahd&XQ!9X4P#u()@=gLz&sy*HoHg^EzJifoa`Pp9;${m=C=WK%m7Zx>@zdh_A?ul zi}FoMuO&(_J%QM!+ON~?YEx-RYly#&GfYZFYBt-aDpq<)N$yV6QohL6Cq(=mbbz93Zv>Hb04;TEi2zyL9aNhp-<`aO(x5d=3NMdR!z7C%C4+ni?yROKJ zS~7$4*T}iUAO`!-O;M(=DYUD_5uA<|&rMCebg3llS5sO;G^NCmF z*pi%o8dA!q`Y3rw+L8(=r#i z$O;a;0;#hw)HkLS*pj)5TWXl@$$5iN2wAIbF1Yadt6KV8-ES6xL9jYvn7Ct5s0B_~ z(=nLu=>*S$jRuMo?36i%TNk!h)aFCZ{RZRgNsX68$M?KT8Nk_Bs2q<70fX3U+pnTVP1Ava5P!B)evHC^_T^Nbw{|yI2L}(Brm5T`?xy>BDLdeW&eSY+s-foGR%IaV{agXuEU;o8yp% zM?Y~r(=VL7%w>6}Ab;IEId5Dwb~a3~by6B}vl*lXa=rD5#dL6oX5Wqimezg>6%CD0 z_T~I=?71zBe&FOmO(Fl?tdQ<=L$Bi2b$NG~Hv?R}I?f(BItZi}ijp zGo@OlVUF54m9V#oHP=U7)4W_l1AMvV?f#*5ig8{Xq}LiN_0<#-RWcKnHD`_Q^l<6g zj87`uJ(6Y%K21D8J39Cfh^UTrH`gBP0IE3%B!ITpss(}VJ+O{lQ4hMsQX)C_L_)#Z z4XhGq?O3lnBnCYI6Z(Yiwf0?3$}Ot*!B+3pM`rtw)0mOK%ZTpDy10+&N%OPy^|wLIf>y>$Jo^OCoP#^dPFvufqsL1 zHvR8`wrZv_pm!i<=|uWxHS~NOJOh7S8u@h7*EIBFo@vz>EG z+uBntwBfofZ|$7@%jjkaNnNFShVGy&K3&nZbVfHi6>}|Gy@W+S<@hbGXojHy;yF z;i5X2i{cVtG-Pg|h@mPDuuup)Ft5T%$QAxgm0$raaTEL~FL(rA&?PyEa`-4j_!skC zFsUt=kxPX-V*^zO+A;po1zrN(_SIOZeFggD#dpjW%hM3-ocYm zd}F+!+jhQ@xWe8K*6|z{i6}yws%NuiwjZx7;sH=P z`)m=((u3o&HDqIbBFC7ZQLvzMbgKn;doZ&@Ib5=)Ky}rL2^lrwI+%QEPK5J7<;&4E zf*XLv)D&iKpc3-zFZ27)4{z?@!et2RkD?nM3iiShGxeW7{hvL)MUTJS_K{Jh=t?zY zde<*|;-K-w!9V>(WKpZeIQ*xdc+_~}(Lepf9jnp7<}rp7g|j8TO&2zFzNU`YU=)BUz|xEe|s6 z&b#T=YWtc8R8E{p#zL_&2RIf65!uY(nFz`r;#gu4+04G|%ZwdNOa(Ve7dm$E;yP|H zJX-HWDVWqQ1q85xSJ4w{-^t&CnYvO|Rd5AIZi21(9&v8XE;=7flY?NBrgx&deK!sm zom~Oa19ZimtxMCeA1HQQB;`ieaUt0O+Qu9lmHlZ`HkHzXOyv)Aq4D27*h>xFG|T2Z zyMTp|F*q`e!qprq=MI3M4CFx+K&eW;Ak%6j&S@N0L9YSZQyt#+YW1UIkk0r;4LdABz z-&jtN*2)Ex6p@)`$OgojkdV^qAXOesLlg~-eS|j|#Hlb06cz%Uqj6Q|C0W(3yq>sz zw&!}3pKU&8xTk;Ap>6iZSt3>f2eA}};hg`wr)qNNTU?oG9_Qo13Z{ZmOT_7|fEnk_ zUpL9CrGy(GpY#x}q&)k_v=Pdl=d}YZlO7-Ts4n7>TOQLy7)4#4!~FsppG>fl>eFrg zsU~--&5a6AMB(s)%eK1OWx`WwX>PnfqJUl$k?(bX2l`w>5K-NzE*&ggiA0V}*XTM4 z#{4*y%Qd**{%5I**gq%!N=^ZdxT1ks;}kbwhZ2LU)-T4ZE-#)8^FgbmRaHjoOuO40 z(vVO-%mvh{W#RxTHlq}xGALkPMIo9O%P)?|PS>?s>}oM1eJMsE(auZPmB zj7ftsItQZDQ^0W(v9#J@38>sJA)O<0>Vh*n>*hOs}sT3_u;_C7>{h*#B9@{pG>liA#eSCln zR?{lw=`uwuJtW@R;-6->JFcJQmEicB%;*Di=&?Qj+-)s4H%Qk z)SB_g7rnsLHqg)%RFE0791Hz05)bJRp_7hUZn<%&OAk@t!8f+-DdrSXXrOI`0du6Z ze6=*C;@2yBMJ_ytZFS8aY(iUQ`O(>`Olj*^lhN&>B|&s_(5p*Y(`l@7$|HHVqT8Fk zyPZY8BNOBGz~trV)FZcrlU*CWGI*seZuTyjbXaw2HF;@u2UT^7EyHnUJ$Bd7Q_T^1 zq3zYwULOth%@bkj1S)nruBopv(6s3+SLjwZ)k9zFRxn4tXbBDqNR;I^9*=;vwQyIbsDPdqh()N``}=y!75T+OCgroTq-W1*bW`g%nT~? zoa9*k>Lp8CeO&|KPQh2pP`q3ZDmyXSM!2v@NDP9w=S;yZfnR0ZnO;FY9bI2oTB2h& zM%by@9jlyRLh3F*R`M(=i#!oWSJV);F}6KXZkw*g>AhS`2dm>%0GV zwDg=bPl}z%K0~%D*$v#vX^t<4C!TE#x&fk;*lMyyhY6*$w~K?;6(uyJ|O2PJyA4K7c#-pMsCUAB2N`$%{C z?*!Aj>PsRKoqbodnjhv0Ch#1E^Pl@?RT+lUwMbw?W=2y#zzn#$WQCvdJ?aAVb$pS{ zhkL`811V@fX+Z+%BMisLTEAS6Run(#JKFHZZC8v7@q3(C%J&GU8w`o~HRq!-s?*42 z)hv>f5q<~m1_g@3YQls_>dT0iBs~4OXSnHE!y$jcF%3_*6mov{(_n@?5#%+kwR)(Rv%b^ioBMYk?mqR@MwaGu z9_0>PAa@`#faKqrUC~D-7NijsKJ$&X`eag}8m(bPPZ=THq23+eR8BcwgM^t*OnHKF zeA(CCx3Ppfa_qTkfK9p{WU88rE$zY3)gF^hA|a_5 zlGL7y(K%zv*C;Rl3SNM=)+UJ+YQ?m&dz?~1tOMa!J8ONZTzCvvv_>$1V z5TOKqblJ-Xbwz$TMPhTCaGMWHn?Fd#oj^%${RB&hXbx=9XSzoxeJ;T13c-kM2mB-T zg8hK0J;A`(Agh;a|2x2z^=r3UeYMMSvcC)JKRxyYm517YH>Pww-@rxj(Jo%#=FvX( zn5a0jzw7k&>#t;=uf8)s=<9t)C~mvFfHWb*uuxhmsj<$G7N~3|zXB%RYTxNHuTq9s zjBd3K4>r_RF3h&_Yq|HTwO9&k(yLqwydnk${c z?Usr|QED^Fm^Q57u4*&ae30i)ilo1)3%DPmmG(LpIIR}l0Qrr;8Io|m3wC6{0kij1L? z8lKAJN`!~%wdOXpOHH0PwXF6vymVlteQu;hIdb=8%`G}Qt9%J^<5+K3q+{&v2R7;U z4A{s?ouSOjENNe$2G3LKpfs5*uOi1)*PtS|rlW}+Ua*wZAL)z9d(4VbX&_U^Pe0t^ zC}fb5&SNcEYH7txHj_ma;k_d$e_tbhVtYBAKu^}|g4T55iRL||&!z>W0W3Z|T!1ws zR4LFrKre*v1%@m*$I?Yh(jzHA|wi2pQ5JswwLm;fcem6UQIgt(YlpNMjIb^ERYrq>@`*v5sJxv z>?>OU3T!g6>XtY|Er=Q-a=0I9o38j-ct#z;cmgCq-?jZqg*V#l`)_qorx$K|tgGVbp@r52yESXMwt#eMhQyiZ24m z+paHQ0(MVB^Z;of$0IuA9wqL2uhw?`4L0*7qLvZTOi{8eh_`|6vxBT*UR?~o^f|uA z&o8dVH`!{4XCrILFA98QS1Fys*TyvgP_*y!f-ue5Z~xr;FV(Xt)nTXE3xd=EOO25B zBORr#mME|QpuA*e^BHt9KM9t*M=*yI;~Z*b0#D~T7a%=FlsR%3!6T}r+_P(%Wa{?n z%-CFJ==EYdJF8XZ7HWX>&gQm;eLoP-nDdSfy3yDq$U(@v%va0i&o5whb%gkz=~xjD z;gMr!)F$wBnjmqUB5n`TFR2xZ7IX{j=?=eJB;uN0E!VGmE_Jkf8hnSIcF!;9Xt#vf z&1-uH5hL4MkT|nFbz(w*G%L`z_x}Fz0|@tryWZQ62urX9c>&CW3*FEtQW>PbNgzFd z5oMFoKhS*$&`DrmKf;6`3*TYd?CuA%ro0!Oyu;;cJPq&H8@~>;LhPTG|xs z1F*Odgs@QDgjWEH6;Kn)%{0AUO~-QIO)b5Q1&4T+@l*#PLhT4>6X^3xGsQ+|8Waoc z1so-J*Q3d;(<{e6|6Ji8J)_$lea87BGHK~g3A4PSvX7v z3sH2@TeU;o#M~+5Bv=em<&XZUC45GIM z#@(!w+!XZ4agmVx9qz0Xc9+!TY*gCArd}k8FVHNyJFnS&WC`DwAD#&tVHPrQ9)+tE zoA1y}Cz!fx!)#!%ougWn?J4RJY8m~oNDXobepGo_4hM3QDpqgckiq#QUG|NvHL0no4!h21v3Av$xiGVI2s8w$J+y0)!C>FPelJJQr#P3yyxZYc-H`&Rm@!zon&kpj6rjz&*<8Zfk%-_4 zxWmWrnc>ZJ_~X$Z?l?xTJHN{HH=-v+ZnjJ2_AXM79v+U!mFC!?q}Md%#?f~4)5-oWCrUkN1Q#4NZg58}jops;LDO_m!}JneGCJWdNZ!yyq+*msYQS%p7AjA+ zrTD`d713klA*zHSK1;r(T40TYS0PndGDJ)Vf0*K^aZw}FqT%#jhsJWIOn(^Rp53@reAjkF>9x7w5C zdRWrzLId3ZYEXuGNo^EjAryt%7omyo56%ic8KEt{eOwdKcguq(vu#-kJ)vdO#--6D zmTPOAc_ITYD13~B{wug(vk85MSoMeppQ=gJncTF;lX!79x@^eD!x zfLB4)MGGGUKU*AgGSLhUVI}?jz!2G#uFidXqrgVQ5bihl7eEaO^^+m*bn8kR5WRdo zg8^|pTSCE#`+Em;uHiJGip%=NeGfm+c3|?@a9aYRPEc)U_VOiuNSk3Mh4ONVg#8sC z61LF3x#GE%(qg_w5`kp4SQu?*C63SPzC zd4V+P?Z>4KvJ5I$r!;1FW(r}`cqDi7vk{rF7seiMrL|XWQ%tNgYVwiEJd~Lbv2IlX z+I&@yadth@{c&lLm{B@#XXV|hl)`A#MH&lgs}b2oO$+?Pf~zVn6>rdd*@+Fa)}92U zuD&l4kgBh4L*8i9%+Db#fH#(<`%)B>_qQqU?4${If@K9~hn5)uGY5O>;P$w5 ziJTIZZsD3thrL>@Q#ejGdg&Eq&g)%o@W;X6`0#Xic6^3^28aElyJy40vl%k~g=PSr zUp2#20Q5wsEt*rYMwsZvEuCF-Gqi)}sKN-JJb3w^LpEdAe6e&YFIi-gxLC}@HwWF* z!qbn2veJ>dnXVk-6Ib>2NC!MlZX_U1)0YlNnlv*^qtuREVI^SpEpzh7iI6%{j(RfN zOh6>?+UgWZpi(Bs(PIYM$-&Q0fy8ef9zMPQ?#sj7Zg+6-=EM6R?(g0K0tI>}vf%KC zONWF>Ie&I`^5sUE1Sm$9_)_2_vo70q;;@<^Bjp3CgU{WD>J9A@+wLZ|dI*gRs#2-h z-4H5xd$x5HRE~~E4%FcEKsOFJ?H*Evl0}^B^B&^07b3GCp*}%S(PAox0?;2`gmN=0 zJ`{-kRYjiJ<+^^G|x6mu-)fAJOFc6HGI}T}mbN0w)7Vo~s$P zN%+}-z~;)a7mq0bdWLi|$Qgs^Oo&^mI*jW`{Km7`xVyor*_Zhgs&nj|DqwmL@k8=| z$2!*vE+MIh7Fk9#=xE56IhK+L1O*XACFM% zoC_MIvomF%u`^^s=hU2!0Gtd$jKd613WHq@1uo8B#G<42gDAWc&_Y;h7+|H>Lt1 zH&sh>nW&C3$k(R}Gssh|P9yA1>6E{`O(I7kJFZVD)4=fAayVyxSY#8a3276muZpZ! z;Bh@seRTzgVHi~A$gOC}rz|{AT#YB^MEq=SZr6P<_rQRJGTjCG0%ri#P}0mOO17FA zpO@2dGBUNYbhsY=9nJ*~f~4DOA`>|= zhQ|@Ub-G6Egi^dnQFD#JMxE0o2o{#x1l5_1PXyBzQKZUicH2kbQ&Lc1*^OFLbW%PE zye6zV-QEiG`-i(vs3vPM0*m+ecX$LwIXv3KCbwWu#>*==8c7k)CM4`zI$L&uEa>bS zIn`w{gsw?5Z1y^m|HT%Q1P83;XhN&nY<}TfdI^|cT}=@pf-PlTLX2wvr{n;c( zoA{+9bcWmD{bliNY%&`~z=YR!$rzzdT{Q5G9E76!f~PRa0*s8NRv`^Mz-fRaSEj2v zClUiq{hiyQy#8bZq`{;}pE2q|rBEMA7kQ^|U!{#sH;qE?Vg@;g@+d=wTwwL)lY z#7^~wNBu$api+H@i0Yuv# zLc$ED&KWup<4QZN<^mJN74W}tXIj5a*&|Cvc8O&&`q z7$9}lXe^Y0`mwGot^+aw%HqnShFox8rxx;&l#M5{1Z?geZtvbceEft>U0<+mGr0tl zO0%8IXX40B=}EQ_VL@;sq3+W^)e|hZf~xM~d&q-{ScFeeSARUdTt7SHUoas5`FZ>P z?Z4B%aehv&6Q$X38@(L4VpT=2dU9J}pDvsQH1>qWBZccD7K~>~B?s~V+3*0FOo|MR zCLGr=|CA8rbb=NqVBVYx1u0U>S!f9RQ(E$!$?Z*kCX?7-r>~*_meR6G8pG4RqORJ1 z&)2k7^ut>$UxosYjDlz(^`+o!jnVanXsnYTS^-Sk4oZZB5_<}TN}->PlAb#6tVdkb zCFSz1?s4sVN_&jtHyh-@L6q9nv~b&bIYRN2@YnHG{CvVgj#Bii2K^ykxldA-U6W@+)A&Hw?>gS}54T!Ml%NzWZ?ZwExG`Z%$9X z8TN-qXD5SU|M>Lo_b}an(3iW<8Q+Ew9Fm%IGbX69ysY?rDlN%C-rcv2gl3Cwb^XtIO>(v!*+ zF4(rjY+tRX;7_G6HRinCj(VhIF zC@C1xaPliJX+E)k7>|afW>ng+N>18@<&TQZZ3`4FJ&?8qXgyfcn)wOZhNdpCmXo1b z((9xjcp>&gNC!q1-AOj(oiY7FCkYBr9=B=kT=nV=jT$O2=vJu+qbnB^IPtf5so3(w zbIMJ>Qum2l8oJMPny7qyv1MSA#CCvCA`J0jEtPLSu@&Uu{L81$4~x6|A0B?(^^doo z-rRrw{_fLf(P@I=B91H)*B4MS0L%k$HeGKFdEN7^Gbkd#G-Jj!fk1hHwv&(KiE9E{ zrP3!g?s6PNu&7duYe$5J$hUWD>eI^|ADUj4P}Fr72|Km238t|J>cYwNYIWL))ecg3 zF1Er6HrwaP2wXU?l`wmLc3Uv99%y;)PFRw@^HqHoIXE~fnKA#kHs+ri#ZOkt@M9&N z)-mqJ6X8ZdaB7%_B`*Eq?qT%y;r-w5f^AP1bgmOYRDf>XPYA<(3UXi0vh(z55FUf? z+fVsBG=QAH5+iWS4lzf@p(8Rbl`>L=K1tAwg=r{?t#)p))^L}oTAEDkK;=WzLHTvz zQv|0|{1l`!$G#D%E|FCZp5V?a2J4$D0=5Ct%7ELNP}V?DQS!Q|5}_ZSY4)M)aiPkn zRMAfR;|fg42K7WWHPH~X&5aCebr)33tvv3%KzG_W8I z2jxL}>JJ}ev@}Sw9YR-vd?1iG$FD0UyA8FqR!klR5D{`#TcT?zM1_cVaIp+GWsB?HB(gA9l& z+xa1QXV_BeQB!t;fY#&&Wvga;aR+&T@%!Z0FQ2J2?gflMY>h#m#{o5C0ut6LcU{ zoPz5@iR4DYgLGY=muRV*ygG}Y>~^2u|9^M82hYzI?&_U~dk-VxH1GxD>GHHcl=Fm;TB>Oei_Y9c^E$1h2VjzH<1g} zawD3$x1J6Y&PzCUPUy0*GC;$UvCrBpk54J|SrM_qyG+>}!s7;Y0&B8RLi7#k5M?1f z51Xt_Gv-p;w0}bIcoh|b>Q|(lRCdw3cDwt#yLUOw3@zK_V~JKdw1X{UW0mHfWgtDQ zkM&ke2Z#uno6T$IltH|R%Bo7VZ5>7xNW(}38hK;Kv(Y@6`GXT>hC*mb27zNiaRnD2$tzLvt2Qea>>Sc}dg!`-kflW6O% zZcZ`=%!;aqtvLC#I?FZY()?e(5o8Rxgg4<=umwp@C^>daCF-2 z;LoCjS(_UuEqV!wOrO#1PL*JKmT)3m@|srl22eL7(kX$iUxa7(adel}dO3UFV(0Tu zxZkE#g`!A`y;86z8DvuL<$N=|mOz?XT8@kBo8A~4#5aE&{;}U1Fbe$W@T_<6>5lGQ zs6_hgr?-Fm^5?f7KRw+2{OqS8+TVZp_~zl+oA2KL`SZu`A8_H}N9=$6`{vWzAOHO3 z(@%dtefCrD*$?QuJnTLD{P6D2Kiq%8JDz?2{g-=)&L8ieeTLx+|9-}`cW)lvlx>ti zef#gvzI=Z3!yOhfJbc!X?;T2RF!U zL|%iD4mfdXouipoI;O@o4N&{ZvX=yt7A?WK?h4viU5%Ev&Qp0M1ilA~-OYNe$5V`< zo_C2XYRYnHJY(Tym^c_e&crrWaN$}telqCC_yUfm5M{di==MT7Ngfb>vwO>R_0X+G z^aDpFU8nSzrkHd3Bc|3BBywfdSsr>7IQ~RidKKhX)1C?$3rXG@?YtJ|_Bbdvh#kDp zNlgLi(GqW-^s+EFYM0FMUhN4JGrA&BsSMuc9^e zp?D^-!-NEid_BLyAP_rT2DlyBA?&C~){tP^ZQY|4&!nyiniA+ywFn2CbR|==AAez* zSWx2LZ{d>bz<=W**~adXR{h`R}$o7;2chOR`K^Aui{C{dtEZ13c@E#qWUYKGHrKi@7I< zOihogrq}h1S`wNzU%sPcCEyYLHc1kpHBM1E#e6nFwu^0tnqz5kH0VnbOe2cq+UGDb zChxGL;lTCXVSp%A+d;rfLrZ`AsG+5w4J{xR*d$ianu!!hJiJ-TlVvYwBCWb2T%`|% zn=F7wYSzANI;yB-3`Zp<7cc`vAK4d)D z1a7(Rs{xEzPRX2FiiMoU$v}1@x}UsHJWYC1Q5dUio2yNMuunQV;7%Ys=b_u`*aj9> zwlz{Rmq*l*oI4`cd;HV8gSS7u6Se2RfBv(514_t~S@Xzn(?0q=(2D$z5;%GPnYzgY zbt%VLjZV+51k>c^<6-@ZSywJ+RpG6CQLC*zU@U)=yRSgLZi|JbaGtI<^94yS53bd- zli^~qw!P-bMoX0z1yOh@ZnlWOg_z2s&y7o{02m3&|He#+4j_sKBCKwN8tou9@7N4s)8~cDG`*HC{QG#1U(U2%WFdsH=8($kg`-~ zO0R0^tH~%jzlk`5{0rX%dQQ@`fq`hnb(kI~f1tLY|3c4ZQtFCTxGj+7`2J^Xf1?zxwo_OD=flwdGEwGkPGh?>1@WqLi zURF}3zOPyA0O`rhTQj^EEr2JIrUCtNycP&%CKkBHKVr`)`s5KB*W4Y;n_%jmg;-&F zgD968V{=Y!r<1k&OlK^EtB%Ls0cF@Ox7MSvnJH|7VRtgYM3^L>D&+I`u!>Hflr~T& z0EH%_>*rs-hlj=H?*8+~PrJPbLeEYF+?LZ}T0)WS-A{kByVKENz3P*p>;{?P3d-c2 z)ft)17fiL}XwHbzeXu90m@Du4*?KyKz=(a)yk?uzaJut|2#^+(#JXW#QQU9iTBc=9 z7Nqn{%;XVVgflMOdQUaw*z*jt#QK$iM*LkA+C^|<+NI|A(UdKm+ECjhdGqO$>(MnN z&3ErUA%8wO&v$p<_nOz34_l}wjiSYD^_my-m8-GJlu0VrLGKsr(AeoZSQ308{A0c% zDzrN|9XSOadu0@-BZY@scWsne85YsxiW5w;EwUo_?1pRJ7jj{vs%Ts~=Xbq4ayW3f^C>U7a`mpN_bNy1QmcY5oZhp>dxOm9M<*NXlW4IH>T1k67u8?0#OU1@1_uC z%fM~-`S-Z(R15+>%2m*|zn1h1x`vJ~HA5F*`cf_@)#jrK*!T1$RLA10i~P&rr)@=* zI&Qh%`T|E&A4sBwFUU2NaN!Kq9uO>%u02WdDu`x5)hsgX^(Z?!XsEGo5I2OHCg1(% z!`<7DUr^)2?+yXecUQBQ9-+xGJ@vrT7e-4TkWZM+OO)q9Y~r`u(S;wKHa!EX{ft|H z6-HDRJZL?J7TBgb?})5=D=deuZN%I|BH{|{#I>g1;9JQ@6GFP{3~Lt{r0y{&Lqr_u zrH?imbRg50#FL5Qjew5Gb=16|dCJ_9pEAN6JwOlkAn8t9Y=UW0@X%FWLj_8e4XpZC<#IY{+9eY87!KSLQQtfy|UAPh=K&wEvI=r`QCY zB-nO@#IYi4EYJ=$0~V(yz!i@ACP}wWNw||8eB#lJeWJaP!K1*YS=|dA5hha#M$9~FD^(S(8ld!$DU{M%Xh`)XIHsv+;+mWk$8=lM zw5LaTP>0|;WJwV{Jslxo?CfMEGEifrd$9Cfh#FtREpj%8){y0dk-g$6u%jOeBM(fA z;QD9=vR;DQ?Y1?J8lbjF2&Ldf*LiP(qABcFh|3#&_~3)X^l^05jFf>UPKcRK>ofBXpU+_j$}%ER1JgBZ=eHh*Y`XPfC;ydT8X(DqtQ}5uka?zkN#Cyl zIpytScM>eGqw$!YCBz$PGHKY688d!}i;jkL>jLA%x7BpJNatcEm`}UnmcT6(>7e_E z1ME>!G08#@YhM*k5|wx3zD}{G5dsU>A1Gp9&1S1-XE&E??4@uGpgn|fHHD_TRH`Tk zUgaNPS@Dpk42~m=`EHnQmW#>HMvbFjN>>MsuRNaywby11vfi0jGMyzhowG{jm=EQvnG0Mp?dn)?A}t$_LEBAcUn z+l>xXWAF#Nt*PYz`B|ugn|r}lR<3%5kmCj_rv=f~c zrtGmVG|9)O(#4k~T$?-t(bOm;SH4^$VRa5%&@8*7YNx^_!J4a| z9i(eNaXC_29a}Ra$o9ZGw%V19CSJc7Lmyqs792>1>17(5%~}dJp!8&XO@SX#G{PkY zeTQL{j9^WdX-Rty$uA0JcTW$FmQx>Km-I&~gue?FwS4Mn6XXN*MqYG3nVb=gmf*&i zG1eZ2X#MpW3H?XAgGQU^tw%Jw?{sOhc|H+>}kp??pi`yPh&Y<`1iaU7JW-1M?rhL zp)Jp{78Pxc#1w`crMZC>YPbrd1)@hKl7+4rS_lU!YLPt3)N)dU^J%p722K_iRDM=m zF|q&D8uzB$TW!^thc5@S z575$Pf;qiA;)+H}+@>oF{JgJ0ft-wxRh8#hcHJbx9EiRowGI}LGScP-BB67mvd~+y&mr>Fq zl*?IyHANf|WaCs4sW{+`Wp>%e8=5ZOgV}WFwv(1~+sV0+6L95Hl_=7>STP|+25KC- zW`qDnx2mOg8mBy3qmm&^kGt(9QWjT|eZt;;siJnVU(!d)xOukU?+B?;-SJ36FtbcI z^PONCKhJb?!%>A!N714{LIJdiC$pB#)=)O9UWMOS20gVq=>aCg55xFYZ;A#`H;|*j zFjZsq{`>bopwjA3UW|46_q+QC8CKdI1Zzd=!0k_>Abdsf@E#O=Kz!T`S0|&6vJdw% z7u|xPe{k58o63kG;QYIfz5k87QC)>{IgiEO!%u(vboaxbdXzww8E-s(_800$S}9lb zJZym=R|(DUwYSLc`BsZBdcjnAi;Cc0#7oM3RV!`$upY0B!kl0bxAH&P)8#A z4e>@#r~~u31j@ZHN#b1fV_~q|-mI^yVC)WX8qaifgkxj1dp^IONPH_VXb&1vp%*?M zwI8|_xCK~`wpGsD@Hd?%r~+QHA~1jJ)8qrq9l4$N!K1>{+Ad?#wNG9CA7mn6)7}7T zKsE=6z=N3RzrCK|Fsb`I)#)|kOgQ`*$y+_d(bXrNlsv)oR7jBuzl8!Y5)+d-xv5ygbT+wfddV8f%H!+m z`C2-a9|@+{3OOcQV8`}itMg+UEv*+%L7|3rB zqP$$wRBpdycPLu0JaGB1M)T`*6}~*K9#5C#Y|W0ykzot*=5&%Gvki#tg$ z%>(HIs;R6{P{k$bbEJuBU0iPZKrP-6i_JbK&=O=an|m^aTTDc#o^o2uJ?MZA(3%SS zLEi!8i6su;bIkJ>H6(iJm)6Jd(?h;G*V_dHSR(bIwhd}w8)$?)aAtxlc9?Z~_LniX zSj{c!2J`Lk+Z^$X1244TC6CLa4Bo``iQCa3Atscd6ppQAVv`X{Fm>laK`FtiBjAz+ z$nois?3SsrYBr$>%`f&$d!5uE!BTftwz#G|U4I(aCV|u$GmyC*)Uek$<@v+$!>xJ+ z;b4HH@-`k-9)uNK&&xE8XN;?-joy{k+=#_VX}A@MgIgNrTsx?sz-2^NHZ(f1X+kvu zv(qYXgVS>yJt@`E-hwUaqz8Qd5g}2={x zooA3<#H6C@tJ_)RKrY%WiZK0v&=0W8*!Ds9y{VybwZ&>l zbWUy_wK8>IC!27IRgoto(Wby?J9#o#_i#s=8Xg8SZ_uDJbjE;}NPQp8?M~^g$n74& zp5o4mjPvGfh9ms;rdRyd*Nef)LG4z1GPl)-)@1kvlL>%E6#+(M@1~05!MV`^a)tJM z2}=_a_raT6ufgZU1wA*3$X9Df1(+5Woefzy<)}rhPLY$tc^iV5sukeQ%pImSgJ+a! z&N!F#C8@n!G9Y4{?xWVCAKpRhCK;wQQ?{5c^lrnQZ7_Lv(4{|}xx5RYUS!)6{5OqX=7t;@wMo3iL1u}qztWl9WWq?8(1oMdX|iIfI{xM(b;{z~l_0+ZptF-@JP zNq{r~j@6{|g|1m%kS6K)1UNb1VqvpaAWVYAxOCf)TQJ|CcDQuMZ2QSm*^oDoCuWDp9m@C6-)FKFZNoux?;GFw)H!eW~e@*JSJ z*(v4O5j5S?(fK^9yNv_xQz&0YVs2Un;4;` zOBwxe`LF>P#+WwPGqWWk@2Wa&r3BM>Im4=#bG5m$z0T>80!g7?&_i$Ff$~UjYVM&2 z>adJh1dSR;D%I55o0CgmEA`42Lb1+mA&ds-s_dqdObye!GFK4!n|4srylAim6%32} zayA8#$0EZe_U|7*ym@&4;jVY^oB#O!?l&%3`5D>MYnc34_}DnNiMS4gGk-3axbPH9jDqjat}iW)sR=Uj=TXW||DvTObFCaSbUWYzqN-g{ z=Z)VdjRH!rBUu)wsPudB2q6@&d-^04aB{rIN$w?Ry-t8Vh(Y5+OKMJ!70C(lBl)pZ zS2aqA=xuFp*7#;{!X(cIbYva?simhSTCqWz_0m;UYDHms_c(t_9Q=3e{b@-NUMzTpX;r-5{|P7;o?99uVFs zC=V&}IWea4H_dYm%r7=ZsPJS@iu_HHZEqv?+n5$(_>bZRt{Kpv0+b)`$5kXeO37-B z@$uL?ZzQ~nT;u(5U?wEC-Exe!`dHKhw4GOTNVQAse8`IOJ*L{e=Vge^tEQ9t3s4@X zN8I^zD!pmBE`1-VFB8}-DoS($FbIV89P}^4PtB&=x~w}AX>fmxL*w;5=lt%_4o=oE zp25e#XN~H6MZ$o$gM+n>xGA>bbT?4UIWn|B^4#ZN~bIwD=_EL+YHbEwXm=$+WyOv2h2}m*jDML}mIp7X9!3m>spN==?4uNtS zpHJ5%WDz+>b)OB>IoR=+Z8-hzIHR(I;kNVKO-~U+1w&KuoA9BNu>#`pq2y&JIuQga zZdLI*9+PapN#9dUvP66AX_BC>8LdE)$Sk{svu-?1>^q56STSgHbDE(_%>@o)-78AK z7-PX(3aQIEF+Z$KXeVnt94H`9Dj4eM!`Q>1Kv#^0d{~LoRAm&(B55{ok2IrMmbT}` zsc8Hpq6d(>8l~tiu&y=Tt~xp>C^f5v`S{rFb}}Kojr%!lT!yhZLN4FE1H7{;QH_GO z(yh8h#y;l!yovwr*2B4)1t-#aGOE|RxPtS8>h23THt(1_V@MJn!2u0e-aMZB+R4R$ zME2#&2{Me%a1Om}y4_SDJ%k8E(T#XQ^%U_V(}qHIVVaiEF&pU!GAS)-Sg4$wnu*HR zxMW7Z&WoPvBxM@^^($0T7NL^SmF7H_d_;ZUR9ME3pbDf96M>cyi)*iVm@*W#16)pO z`97gXJMcL(Sq_2!01=v55OghBs(#g4(iBAW#INRXyf@oG)e>A%s^?v7@)8Mxy)|50=8J=o}JVq7yS6eMQ9Hxzn!Uty;YA&GBK=LLFRDZAk-rpLvE9x9Y_w9Sb+&6_h$Y8><_BGu95>qbo8)HOG%EG;#JvP4jS0*= z50Y-5y#!NtNTkAEPs-nGv@?!4o9cFkXbCO}1CG=%_Q81IA#Vfm_;5A8W!aeR`2yOR z7(DpV>=oANl0G84XQa2**q)rPTsjs^Rzhs!ydfff9psgD?bQ2vJmyLRRl zm5PpsCBj$6VPS#Wq7#*K0#(B_yXo5+h%c2(#N+Jiq$fcALK0Rm|HVPs1mRPdrfCS{ zMUg_-J|>QDmvvJ!udvgfB6VUCXwA61z~Z+rrA3q?XPQFAodWag0-`SpMsBq*M>ik~ zlHOsn**INE+uVMlKnbP?8SyU)vS8$O1d47lhp{RUPS-uRNJaGj?caJetofoG>ynZQ zmd>+8f$_TR^xVI^sU6PB~USiB;i{eA(!)u%k3pBwwDNR>vdi&Y5Aa6P;X65sSD2@I8IP&;Tv?? z#CShlOX1tZ;KD^-f-vupj|uFE(j09b-aLHyyt{n!;rrPaMA)Y5;6RWB2*^RPav?Rq z`W4tz3Px1v;?qqItLWyyC8p3vC|gWj0UF*&p`%PY%f+@X)bL|$peLI}{Hgn)qaeSq;k zz+@jFa!Ewm1vzr^9g#+&1-Jm;w%fs-eQ?~UkF<-PH!-}c~$Cjb>&mz=wdCRp%-U?6)|2=V^sCr ziCVf$6(Q@qM|9B~SzbZ!*3;Wv)Fdc!7T`0!V&U)TVFxF)*JMQ@s$lFeoRK@2ZQ=&LWw~+DL%;P_&^)3#&LLzx zonCJsM#$_kW0B_|ECt>B6^UN{bqQU1{|6jTF$fS}4EijjQ!frO)TGX$rO(rBgkS4X zm6y2zN~k=uc&mX6yVAOfnjrTvQ1=klEzmF_ObHuo|NU21H1hg9z3oG{;=;k-0ThsUf zg(>doO5U1&9uI4SNCyoQW{2e3sglb;4Fjjf<#}Z~D`;~QWD-O0kxct|NH^t3R!xB%*j`a&0TJJXdUSe|B`Vq41`E&DF#zHw2Lt%n<%S84HB zvl2Dbn+CsPsyg9M$|xr$i>4g2C)z1M73!A6)jwRsEVf)B3_3yA9i>xS6w9g<{rRFk zTicVqa`gW2?IMHJO$M(9sF|@HpnFZ5ir-YI_6WU2#AA@aFT6tB?P2_i6I+ zKki|^3A?4~^=q(AmKlh!&ua!o6P92l@@Nh_U9SAFkRL=dQ4B-WA59cv9ef@ZD;jA` zE;fJEmXUj3mnW=|$@&b&c)?X@i3FEfn)d)Mc;kerAEAlix$g%D3d?LAJvq1C9V~F* zob|srcBBq4SFe1bxhpDFU$MCddOgnABIHu@?~<)E9nsQbai)P)zZ_j(BY>)}jJl~+ z?gFz&fL|xY5Rq~9VlriPs26qI7rtnhNR?&h0FMC+-I`v2b(>6)ygelw8x*&MN-yD+ z3wL5airjJVhVeCbWW{X5rS^JszM%7^BBz^Zj2``ir+@0WjI2CemxtY#k8rv7e|!J& zBm6oK4pYMUEn?E#@x3+}-`{>f^gR(H`f1I>16v=I_|Py6T`j0nuFh?306&0tws* zz2*GjmB1Sjk=4bt4HKK(cNh9Z;;MjFm@w*h=$4EwuK@wh1RIps8(EDjG#ctVH0@9W0`y@17xbol;rDvdsFE zJIl0t)=L0nr>5Dt1eT1n5if8oRa9WUs<(*P<(R1NaxD{8*t}$aGQ>@K0f=TZ zbIA7;?UAzwNmKwSYA<>)b>WvtDo)ODu|dM9+mp0S$6@v{PsUEWX@K;0iO$%wESF$H zvp4ja4JVsZe#e=YylKGnw5~J2J*G*n<7L>k_2FCq^c*d+%cL%MLU@S*p+r*?xXLP)b19)+-%p&kXCD~%554oac;~MiuI#|d(M1_=G^dH-b~@!Bjj?2Ggd*)Os|vnv<|<4NiBnOyX5!Q2t%6r8(dDKQ!*t*ZMTd5+rB z=?uq`+>#vB-2CR`3TBTVz|&s!7x98n1#^EGqd*-1BUL>#iXjq?+rou75D&; zea8p)4(L>2TL)MMuS3^*StJKfMt+!iJ1fbVRcf!V*{D3{U{e;?h!f1Qk?es^EqB2} zHoPtB*wT~N*V&6X?djy=!WQB}B(o`3)?|kgs`qliu~g@%Rtk5$=~`w2USN4XUMQzG z@!F+iYjf>fw!X}Dj~)~jEzP#z=Biv-w57RGQS+-MEHKM8$`Bf%_E&Xw&=+t4g=9GN zU+rkFfSbGh<}sW+n#BSri5~-3tu82yXNVz{FA9zYXFCdatKbKL5gfso$?#x^kgHp3 zd^J>q<4c>)t1{a)FKTvnOtiO$AT%IP82XA~tXbod%p}s7^o}JKKsJ?$3Ctk0f2f+) zbBVRSTJl(C*-owmmGhb8i|C+_5n=z-uNNgkl&?%2Lf_DCVdDTF_^KVT=nY*C1)fa-z0si~DA-omX2 z>TZtQB3z5M`cTQZHS4$jF@kFpQOp?}g!XXgBq|N4?K_LoMjb)S1;i4PU9wDCfk=Dg z0`ic_Fr|D@UC$t43IgDto{_ZF)|f>VR-iaPlLe=mfr6>4Fz}q4C#2(Z%26;_o=Bsc zT8^{iPL?zHuw7s5Cd(VJWAIcu^OyieZQv2i@-H=OYU^g-9x0Y^mVCQOgGDS{MdU%n z(bCe%;m%9Cumr$MPwCFaqY9)S^SzmYon7U z+l?DY!t>&^({yVP^-V1C_qrSmF3N#68#Jy< z`+&s+g_G`~G?rxbMA1RFqFplFj^%y;H-I*NEU8ycbOy^TBC@tlImCjbV;fg;b-LH&?ou)5wOPwqe9l7O9@JLTycVn^=}Ofh&#i00 zON%tW2D8SLL?H9}wo=0kmo0PvL&gj{FiB!VL4Bis!dQdg4Vw0IgfVTteOYY;E=OF~ zNGguRRM_9@W|6a9NJkOEy0T;${lCmqdo3*U)CLb4fPnB zp!5Sn!cu8PB+^j=U?rZ4_bZPiaX%d;5qKB)A$Jg2&%qbd(^Su=PP6F()Q&mp>Y*7! z@f>(Bo}-jALWoveP88qD)};~4+>#kAEKcc~K3#hN^dqNOXQm==BF}maFZ8c&wrNU| z>R;?B7bmsY;eD@bV1g-!bHjK(Bj_Y*45?xIUSo4dTUZG32UOwb`q1it>%L6PoX^a( zte0Uzkqi+vNb;R=Z;7w%ld&a(DpSlgE2C>cl^ZGhXl0+?s_ad1S<9eLb-#Bn*AOki zK^ezaaD;{e){QX5u$v&8RBTWR(t|Qj|W{M&~D=H}X`N<-rlfJW4jGtM0-0tckMI zxXO!pSd{SROc2N;V{=P6lWT+Gxi!^oS~e?^?553(9c1|Y6!bOt`Z0)mTH#G3CNf<@ zAa^PDu`p!VIQMq+m3CpOOe+wE$m#XKOui8O@H@}2N4t0GR})Nory!hWtigNg@CKyu zPpS)k9or<~5aGc2P@_TV6IN&|RzHk7yO-xt@`2e-Qi78sR8>KO6MJvyaB7CChH03{ zW42R8=3c4_kk^h1OdRO$$JV@VSV8hc(eun$rPS1%6?UNk%tA#IW}+h;+Bzc0FS^$6 z#m#5}aE&Ku3%nh-gEw9WFn41Oun3r#%)h$GcvrZ2xiW2Hy z`xiLcx+e^^ve>z^$gUdn!u<%{R5u{?EfCY`DYSf*ak03pkpml#0{Qk7c_z<9>=Ti4 zLxa;$#kcW#aCoI!w!AKU)B`M3(W#s_G!o-%hR^_Y$0->^4+0kHkXdZbXLFuE^(ol` z>n18K6y*O4yk^z$AJbUaJY`j2(!_MD0^MzjIq%9egJ%$ArHzk-1dW976-=M!{Diqu z9ma!(S(KXUAsS-EKi4l=@Yd88daTxgeY_htjH{y6}i*v(c~7oI(TD^w^K3@W2yInrz#2d>@Q@S%GzI8QrrgD3*4vkqoPgj6K#Y_ z3r~$8quJqZJTlod;yX(~#sdG&CNHE(NHBHRl8>lryh13z1(%n83+CAy8@|~|cPcx? z=)(^mH+LWI-afqlc)#0Rj{0!@LDq=T;sWV(p}ub$};QOl#pv(nRf`UURlo%VU$$GAdy0-G3!n z0Ax>6BtH#b+wlqo>QVc|*y5X%G@*|1_x1Hb?9BsUmW-}E{=p_KR+CNERSqE8hk4I_ zQ*KS>JrL5%LJOo1H3qjbTE`}pNi6!nb`y@P-s-zA=+Y0WRR|@#T z^QHT6=tzkAB$86EZ*MXY0V@YVoxVlW#bK{(?GBBh3H4)$P4y~>jx@XYP>CimZFb6t zEm-ipi=B|FWMw+gO=r*wcr~B7%7u;fp@^dNk%a{5TBXCo2~IoRX*R|<%RK8L(>#GB zLFux`nAQf`rt*VmFtBNrk6-7!FqYMHxW8Z$b7xIwQ=e67f!!ao(slWcBtE+Hf(fxE zbD3hIw9oy#JNAj9D$f!z!hhlX23lU@>~Y!Ig;|6XAjMdXw|Z*<)!2=>gqlfuv~}pw z@&%F6f_+YMohvbtKVZb#G}SzMZ3gPCQifoM%{;D4KlLVUE)N8_fh#bIv?V)G=yHo# zfz(Bh<*AiY^+7DCzrP99EpE!e0Pu@AhB{y1P#U-H>!n8|w7psvA`a9rqgE~MUKS@i zpr(zhEVDoF!mkk7B(TE8Lb$*Jb#UR`XQa-&3oBw@pj;=YFmhEFJsPfAtnAqB$<+i^#0a7{ zo&bGuC^f~>FK@x&H_(oYRsi*0!(!$a93O??OU*F1)COuiz^O%PJgEuQqqNt|mdNCg zm(2~+hU>OM07Gz~@3G+NYM}R*w-scd`E=n?ZloG|e4Pu;ALeXCM+ZGnxNKe$ojR!i z<<6$qaOuSx9J#NH@vfa7TW-~mE`bIYOz&ARk>Q7$H+2WpJ`=2j0y?;nFs$AI)hESf zHeVZ@QXZ`l+La`}_4Lt6n2WK)-yG@}uDLqoroL`em($cE>|47qZ5E(n)o>0xRsp;K z>!zgA=Mmpf8FR=qKrNQb74u@&_9v1z&M%H(RJf!gm?ghS;ea7Jte%}5@vKJQkQSjZ ze8lK@iP|?g@1t7ueruW>H95`*qQraMEO5ohT%jsgPgkqD1QM-$oBQ;1PJ4oB3X!&d zg<2zfIh_tDrh+*WXvy2XyZiqA{oT8$lj?khQ=Du@v9IVm_Yp0PmmEQgFzd^%mYeyD z92Kj&C5iQ`%bD0*dK6$e6mdFMiw~wW>fW6IxGlU5*A#hP=%24au;}Ur^anK*NsMd0 zv6K6{KeuA~6VM(CTANcgC#U_OYy5^1obG}8Q*uQ&^$3_REiu-LX;I5OnWJd%72_kk zMf|6B%VKak#D^9Tcet&k_nRMoqZ2J0CKy3fa-!UuCCrBu-uQdn^bMd#LoGhuY<%OM z!EUVm4u48q%@vX<#=>BvRX4$v-qb;CjmW?ev|~vUte7tIU~@-4Xgboe z5fTtFpKJ~F6o0iGTfetk&Qu!I{FM9z3dC0WY&T zF!R({xhS!4>Q2+}FdQiDa1uIV<0KEnfa{r+FPA(FE3Yr#zMhLPZN_T*CZHauaU1>! z*{E$Qy9X$DHXr7Se(527PuAu~fVVONyPtU{0w-90jX$mk0w7W$j+?qcvP>1S@#$*RLTqU0a8?bXDR^ShaAX=>yBxoGt z4p)dU(SZ@1|C@U~U3m7F);-8a_FHtR?)wvOs;>NT_2v@``-*g=#}xsb*moex+d|6( zbBW<}5lVg_YocO#{1+m1TD{1yDA?ScG#~5AnDk%J&3tdwIntmW!xqqt{;-3TLBv-# zuaYMndGIiQb9upb%@NkjwTGy=JO`nNl8Cu`CwJe&H4+Vm2xvxl61A&*^)geYgRI>{ zjzJ5^TZ^p(GW#ifAl`)U6zZD@Yl^n|*qq|;1=yr5(tNEoNLV0K=rHi|>;{?UtShr# zpeH(l8mB!4F^TR?9yY+=p+|vk@y1wo3PxVR*z6U>1&yU(JNl8_S4>D>f|N7<${qnl z8n}N@tY{0Zq3n@pI8A-b?&23rGhW@H^~mHx7X@0kR5x80$fg zr-3LN!tQLNLkdeAgqujr;EHTBnje{OV=}EYnR_YI?T+pu@b3eTmK7$`6+fuqU3v~T zvHEzmGu%OGc^Hdi=D$EgWfGv!PM0Ad9xUDUgKC(bREX=7(d{B5?e-PhK9iRBt6Oc+ zf@xjMK(sIyzC#FKB>hDG0O;+)Cbu$lo{b5XJ{v_Uz-It08{ejFnqcal=?Z7CQoEG= zn7P%p3Jc7at1&b<<^pd8r>0i9qhJ&GMTT_%HC~D{qvFZ)J6*a==@e`EGKnGNiH9y7 zdKy}@^mvc8nC2$77(WuQJk7@Xxbv4cw7jnGqW46ES|v|}nOki;*`ox@FEOVLe~C97 zheGhilo^G0Q6*1{9siYsql}%rLr(YlG~0BQt1DNbtS7bo^!|q*P<&0-Z()sbA7?kV znav=K^X~B>e>;xRXb-kJoQ$rKJ4m|=DnRyHID^>M+7_tz0!8lhUz9_|8zA>8u?0yYXNnOyBLjM-lQbTKB^Luo?b-D z6^X6;aKuq?F>MJr{|j+r(-PMj!1~cDK9?g5f^fM|uiedfy+$`ZLsJ~a0;9!r1LW#+ z#l}bT<`-6={0x`MyF~|+%00{0m~Ml>NECdN%AYp5yHs=wa~weKxQzaF7?OC|o4B znK6l+M=Hbg3Lj52$*RERld}%-D2E6k>QK=^F?LkA5f8`j@B&YIUy*3T6rEaCQ!@D= zyrJ!;tqsRgL?tyX8Lqx^HYi%UOS+~ILp?+wHS;!x_$AWXsd>vlO}}x;4D`S%&}ki4 z;d`8Pv4NL`2fk4lFgL7&7YXYV{h?OQAlmbh^6 z1!rG1ICu0gv@oJSa1tLaja#T*YCUR9FCjVC!u1j?9xG49jyF~zWm`ya%{G_aDnHFp z9b+>Vi7zi`AnfHCOpP&&MxI`mu)DKOWuRVaB;0)jZ04)rDAdz?wKHMcp>)#LU3SiP zYH-0Mrh78o`sJKM6>dv$V4TwG5j(!ig;T+d)vblCH_!r%g>lzsw zRkZbye9Lr2yY-ae(KQM-fEqGqE%J5u%7z|C_JKV1=EIx6-|aSc|LY6X1n=K`*lj<( zx&Qpr`v+z~YIQ21PnwcXOBB+Jw0J(7-9*Zk!A-L`B9xy|Zta6V4hF}Er^B=3GyF3+ z>>u5shV0ow0lauUvNCPmb3mtT`b3^Kj?zT>tOjd$kGZOGBmi@2;=9hNx`aaoZgd0!{J zx8!4*yh06AcZr}y$Vy6t#xp`+wyFY7hTQ&9Evo~rhXw}79i*GBbc2$!mAb)FEVR{^ z7OQMgScP=s_vjtY_&^6)`qUqk4R^3tCeE9GiabMqVUaWWcGc?i~zKvvG zGRSY`R!)HR^WC?`+NhtJHhy1-PLh~ldgOeI7;CTs;QC(+r3a{>s#S2Znxfl9WTnZe zra9?$oRu$^z%}!DeAavAlzE7@Ddc5Fv>=Xgxfz@2L?KPt^@dCyaKI`;j9|2?^YqX9 zgQ-p&%{S}uQwYwSAFim^a{Bk1zpd|n5COzh6lJQeCuam!Z{$ub5K%-G47fm=skA{6 zMN4l#KYn=xcz6bmfJAD69Y}()K;AZ+TDUCLFirUS6{Y}b>5!F{0`R0ieBvX$Tf@M&2d}NMjJ(+_Z z?;|S68C@bQggUOm%%Jp7J6IW~br9n|c!%PGM*3nValOqWly%mrG z2??xaj|UpqnO11NJ^O=FsM0l4Qj#3@8!}A)SRxF{r-x}@b#1szYq)vskj-_AED{_R z4rWAw4~9ol*h&@-jdqPoT)zrzJ5Qc4(1Bc?UoKlQ5Qcvls#_A5shX|+l47OBbPA^K zw!7RZEZ6Kj!`7k^o4d(?$Zmw~)bbuXlaCpEc32Z}y}&MB^orkFRX=W}HNlwiuN{m^ z>&=~bHJV>z_un8~9qNtcwUirKROP1NGZ^bc^D^|ckn1qQuWk5Oh^&B?Hcll|O!exf zMyN|};4Ss0<;XFy@VpO3Ayh!Pl)jNFTAGh}p&%1FX#=E5FRvJd3NY?;Od$ce9)(k+ zIZJ|LGLMqE1$Z0+<$TjMLiBo>YIb+9NpZuWo7tk3r^J(34g8GLg6V8h5J-;Riab`C zlPwNCJMK8eC0G-Y=w&Ia)U(&wMK@#rfpX#h$#gM#J)Nx9%dNZ9`<3%0a@|g+x2NCq zQfKVX(GI*8h{@OP!t4_D9OqMt47`!sBS$d&vJK)}Sv0-=#MsAizG637MSyc4`149uf9Z*`)VI1j#punuh)`V*2OJ=t46Qu<%=eEl> z8tI$xkzk6_0oG=+x;q%2+SaVJt6Uk6FRYT}a57itr(M}|PM>h&$uck)-GKeVa9jtA z!ke(_4zwBfbr@(Y)CkS7F&pzl^iCj6k~TRzgEB&6@8xca3)*HideV z4IDiEO4q)3CD+PY2xg`lRx0KuOdpD){q+Wn-hMa6PPj*~<2+bTU)WbsHOm#_*T_Rw zWRpf1;Y9ngRuA7M)#q})IkM*{$putSFbj^>Fe#p1kpTcDDZ=uGhSX-S>@<`FNFV81 z{c~r&mEX^hVE~gce`z67Ao1bhnfcICnF(`G9Jje3t_OHJ*^idK$WTPul0rDrRd+IT zwM?{h*XBPzZ{NTDccvj+fFh5dlg%Qwptw-hZmzdp3Cxw715OLgQTx=uZJ<3Zd0)E= zPijxsr(zAw*Lriy!sYb9}-z`tWLO#&hzCFY`DxpaRj$_ z@Y+Y7=GG+V609|@$*kvjOhj2*^$8r4!2IIy0vir1Fn*phl&0fy;1@;YifDp?aJ78+ zq$>Aa2&VW~8hWYdE&B5jz5)z>O2+Txd?HyxEan7>w5xzt?v(`5NAn7n`25SK&ku{c z`yU>D-1WEANqz5DG6GRn63jGemR|z69$jx>p*M*JNQ!;e?-iTSCaOM%#tS;((i=o4 zTjB4M&#K%<1H(uAtoHCT&#|4AkWIn*m12diiD^yoGn(~QRA zk9nxm73foLA`j#BO>|PkPl;wVBB=a(8xmM_(&uV-o5H55x@A=M-!;(BILhv(KmF~~-4B0CvJ|ER?j&YX zHsypjlx*+UNA@aCPw~KC3+?rE?ofpWB68Q4y!m!u?)RjYg@cjO14%WhUjTxhVNHY@ zrkwA)RV!LL69^|q1O>q_~0YgE4j|!&r}uH(d+Ecsj89P<0^d^1NjNSxk6Yzwy;)G%!S4uCOCeTNUfS z$Gd~KfZl;+C$_V$22*qF5H^YP)FW<5LZFwhr@MKn{X{ zbVdEvCuGajwvh^iWyqNiLtq0|+Uh3ZDw%<(&FH_Ln79HLXObfdk|50M>4y4yh%1 zmgI=J=u(kEC_|mSKKywKtlvEBT3A5LqtSgAj6f9O3;MF6t#30l8b3D%e=^l< zrc;Fbim8a;0dV=|{@n*~8-BoGFSLQA2yj+_iegX1ZU@xR&0UdPqoh)Gfjt*qKeNyi zRUku@FcC23ilzeo>*zIf+MP@eWuJVv*oiIFMUeXUMt^To2i=%?h0V)vfvMPIMjQ)0 zZUdrOw_P`cgxYl4^`?=^g`{ShnMClK1ht}u!3rvthUwLeyO?-% zO}m5MpqcLZ_zTED)8`1-7N^ zAiSaKCA9ZPQoy8^W&v-3@MYPsjzc9-Tket&dvtt8BDUN8_~!HOyD#rQJiNa@_!%c? zN^09w%e{o2^StEM{!XEY}mm=`)6A) zE%^wz$+kOa(Iw-IW+?i|D!jeA+1J*|%wse5LmZ_W$?&=or*jgk#ITm447re0>K(>p z_j8R&UB4KkZgQF`5lK)VFr3%Z3noqH6c;Gn(ZNs}e3hcoz|AB7UY!+?*K+#3YGbVj z^}bpU#0qhr71HiEA?vOB8zFBjalEohzYUXxAURFP)NyS}NnVZa*1eBhU_vmObzqp>lzh|pteAQ)MRWftC zI-zD}JU}BBCJ86>A8K{dKzU#?)(ZJ02Ke8WTM9VsYUf|7Qv=(%ZwjC|(ki~Dh8YbF z8+Q!Mu~4r_urzT|5*8T?V%oEeRRHr1o~f?X9|DyylJHhMgY!MC07!3c12T1NG3y$N zpOHxNRX4RVpTR@ zzGLuG%q)4o>WFvj;lWQj6xRM>!4Pz3qZ%MUygMHiAZ{b4czC$G*FR2q%1indA%`sd z!5NnR;caL}14rCSsE49ohIeLCpUi?cu_G3WaY_|2DZVkQQ#iWlbyTFo(4)jX z#|&c? znoYFCm~cMRp+2ENCQr-purqSWh?haN%tWSdmow5@OW0j7w3)Kt!C&z`+S5bdUpuy7 zPcT*u$&)nh%u|@HEW)3n<=cBR!eZrxZJC%l;m&x21pFK|Z1BSl(9q8s>s@!z%<#O+ z+;ycj0h%(wJ^ynX+zP7$byiQf%*J|X1`RKdaAM4RwDeKcYF$-3vH{X~%v54Y`-g+= z^5|4qEtuGg341vd5f;mr3GZKo8mK&qrdfI*qN!D1y+Yk5YCnmw+=o`Dtb`?yQB99? zvNfZgk$VX!zkM|orMI8@E~A4k>4hODs~{8kT0b{s<_jR-`nkQvqW|DaZn!~zS>rnp ze9H_ogU}ru(&77&C2A45`Z7P`}pO%4|h+G{`k$& z;mPp{MCGIY;OOL-F4Kb}NzGs@%IdeSKIPHafH=!e8cJXM0fRTGYzB=%0SXw+f=|vG zGA~za-9O$xz?*!1$G=E$>6UfhJT)K4lh0y6ZC^RtDW(C)6ecNrDjf*ZBo_F)1ohj# zwoEBTk}=%b`~pNd5$H0>!xrid0o+!m)9?vXfSnvw?u4R;MrijtG#t5?LLn<&zMN4* z6Z_RUkd6-89h^cM$4x7V@>G|9#q=|QE;L^UZ=d$w8iE<$+c;FpGF7To#UfQYNpM_& zUJt6xSpoENGMaOhP}@#ZDXiSqt|+(f5o&H6S?q!easidgO;bo!#47Pro0pp^@}mN1 z5LwtF!d1$`V<7^*RB_8ye(7CZE(V^4`B$y_{&PcFq&}}pWd1{!tbGaX1%Tr&=ypcq@h7AWO zZl+{wq^oN0x3WE^OwM+fasmIhKf{j}tnyRUWW=bHbI)oDaG%kUth)L{>eKOTy?c4s z%fFGy)wUiB6TvMNC4?Gn&1@by9(uN)2AGBPw<#JO`exAp-ep8UYY|C62l><&yGUjI zwgb6F%pNKoD-u0I=;x?5RF zj!N@dadzX|E0BVtoT#I|p%tMo+WH{6V$nkqM;=Hf-Qnvi%z>Gh6db~EJ4P)mv1ZQU zaPrEdp^u{hS#8PH@jr4o=?lF;PSa@GhHDzi!}99p)ovf;? ze4O_K8n5;|b%44-&w;ZvatNX7X^5m`!FF;HXEwfD@h(8{X0A)~Hvny2dOVISJbW}F zDPQMn7L-+)Yv0w>5TvUnE_z5;+Kh%Uz&*kf%Tv^O+>kw7aQ8gVd?=RMwKx!j7Lk+X z3OGt_t*q{K6HlpDtFS03AB!dkoZxKSlID24gX*3%G&yJ?50E-*pTf5+*@4qU&^>;PnO6uTlHC4cC?$AT*(3$foA&}mshiCINgX?^m@<0`F z2e~%9#9@vwL+qIpIZm>5E{n^hS86Ej`FbohPp_Kr=wQEp1Ffj=VjXhvp6WJsdr(G5%FR-h`+Ank&B7NZr221bH;mzNH6b;EK?A0xX zle!smONgH;ji&lmj4HVV1ZTT~3OlY7@3zZeKg4-GVmVMlOfCQ=HL+e~I~S>f+Htio zjjSF+o^9Y(h-mv_y!P~{yWh2DBfZBPg1W#yyV$T)Tsx>1R+rVjA*n8RKr0uhA`MFR zfHG!pAFM4tpk&4^O0c>TL*T5}U}X@hF*@U?Ge<2H!VbRX=RjCq<4cmAqO%x_HJXIN z+jt)&|51tI_QAw=G{=iQiY|I|A?ql!RFZ_*@1WjF5@viFTwV|9_nPdcIFnRB)@clF zK%I=?4z@YXJ{T?$(b7t5KV=*Bi8+@vm(-I!%brKq3!okT<^)-DzqLQW;k6{HRLdJ> zu!z9Z-ZDM8W^E!}#x|k=uEENIN%C45zU5B6s)SVc} zLG8XvGh;GRCxQYy;|P0lCl- zi}7sewIr5}dpY?#!1Bmat;pDf+SDUUW)Rk%+yXcHT)APg2i9ZBiLap7KoAOkA*!{a zh@>0MDu>}7dYI|-&p_$1wqbD58kt^n&>$TkJ%Mb1ESl3-&^X2y1O;w^HvSgV_7vU? zjx{Kk5%!b=&T=(#@S>YJoEMp}YFg-C)zCCoyn`>>lgDgd!YxcS)xdNhm=22s{{@xHFkAbh{YHQP zJEk|D@_2;oo#;PUe;wBctFPnw@lf$~Tt9)y41a(??DSk)CY##SDkU7`nkGl?$pgW- zYt6Q&?MNOCmD}J3HfAGpc|&lml=iz}#fG=G!$AY$<>}0=QIs0pb_(w$PY^l5Pkn=) zWT@I*D!k$Q5VHWjNm7S9N7lXBgEi721YL|3nJa0cs9(aH{8M4x?*+~ef$Ko+9Q#1M zQJ}1jjmTKGDZ7MKiC-8XKhB~2pe)t82TDU;V4^5XVOqo$s>q)_iABHGr%3IJq6^%wbtqaz3$k=kiPM2p(x%;DMJLagI}m8 z!#P3s4T@Ge1x5G2Ml1?q;MU9Yb0FUKYz`U;>;|(DXs?7a+k~!Y>0NQK@n9<)^fcMN zYtl{AQl)T>gys{gnNfYZtT%BtNl7#Qx%lgW4iibzm;)-L`R|BFJGJc<;K5l?ZjC$) zI+h*(HYlAyg+Ob(JV{L>?^-x_;Eq-qH`W!(O+N@0DUM5Mdk8szSeUy>Rm^mhsd20m zW|8f_(@n=4`<^lerpq$FI2O#wU(Q14Kqu}w&;Byh)1(k13ys}cJHzEN={_KO(9JG5 zK`?@dVHN`#sh?U<#YLv$auLTHnmd1oG@vfWSQr;nO_&l%xI#FbJmDK@(O1yoBJmt2 zluz*RwOXYo@lzG1;gkc2Fa$ZzX&cbb-&9OD3wQ|Kzyi1%MOqdjcB|<#vb*aAjZtj3 zyrB?f!D!M5PAqboDRn0Wk~qiD-dnmKj@1X}3W2bB*3K+~5Iv5w~d< z41qHo7VS~?(VPFs8JnxFcpbYS;B1ODUPK42J(y5z@v?9 zE?F=9cyHIQ8wVW-$T*wIc@A_f>$$LmkTCb?^P{B?wxa_38N&YQC);V4 zy}WSStCJ3S9P4Q~1yWwR#z~|G`=fjlSP^|1i=*Jb+WPhAKh6IGKAOoV#N9xk*^rOO zV@W?WQ+<6r`ZX+|ooDDh%@cHkE}LVCGX~9@AG(X;4Bl$*%EPsrVqBwtHn$Xg-1RA# z22F>Xat4hr1*VnR%sx<=zU0J1bHL|pXte{7^$z$n1(RG2)?q84y2@dS6iV(HIGjSb z{$FDaVq)7OT3T{>nt-84h?|Ra3g9K-fDp}inWGTw)u{U<_Jcc@C{s1R6D$K_F{hU( z9UPxX(r9$z^70DeQnenQ*!CXipwHDxBwfBo)8{K?bBjDH=&StFCNC{>zEcmL;v6D# zfoNP;x2rmyop2rzBy!UrijvS#IAKo2&B?9P?GZaD(L9#@$_B#J@@#3ykQ5*!_dQ50 zQ%i*S5F0|%*jP<$-~rJ*8FN>Ih} zii!))dE>w?l;LrAft-UQx*0Ivqgr;Bji864Xtd&dK&5VBaL5u;gHUmB5&)FGfIuH^ zu10_R`2Oveckl1f3KuiiH2V(XGISv53oh9*eH-`K3J<(xxP$9PAl|xagn}-2xvR)mdo0fb`Yf5@ zqE_TEW{HrjDBV)39`&y1W6X{X6Y8GWUJ!LyT^p!aDlh7>7?J8nqf8IEfcdNQo^F{_ zS7CMM8d*&WFdp>z^$Smv_)h!d3kj;C3m{tPw@#YzwiPz)(!lAEFgcDAyNsc zBRJ?SRe`a7u+3s9?s<6Zo804{Tyz*ybg+}=B4x>$h7TV%Y>agnN-D^%;<}uhNfsd# zK1G5Aq(dBJFE6!2#3_Lct8L6VBgb zbT8PDGR%ZB4ERO!mN|l1eoyJ!pAWYJ|0JQ+U0het^MjmfcO=(k&XDnYqzAvuwL(30 zQ`t65`mIM3EY3+4-Dxzcpa8{!;!S{2~&4ggDT-F6kVcl=)-?E9D*48(MS-r0%9dur-Nv)y%r}Q>(NX>Y%}Q5CbxScjjxLgKo5) z?urbTUnEu%Kn9x;$Th56EiH74ER%cUa5!%P<(*$cqAS@=vYZ`{+^LL|Qu*}sMr>k- zyDy;9*~PVqJ1?2=X7Q|M$FK+~H#!#$h-VKS^d%`Uy~JoPV!t1txg97D=v*qX4HIFU zqX-!7Psr{@c5XwNN8}wQbO@r1S95xwE@<}c*nxKeU`wZnY*p$3>y)^l>U%F*dL-Po zAoZQ^K{Y*?u}^0g7y}pCp17@Te`cuvlw@vtIb&|zIcMx;N@6PLB~W!b07v8z@b{4p$=03#+q7kWr(!Yj#5QdarWj zhZky`H94{XN7K*Ou%`tnyQ>7{%ND7bP7;(Bkh*66eIv&mQb1~U^Vv<#F0#?DmQ1BI zvp@b8F}A_kXpsEChZI>%jgefgl_`U>(otkx-z~wg|NG}J_kUU6f4=_$64kwAjFw6N zQ3tCgax^1z(ajJeCc7%t;KtbGU9M%UAU~0d%Pr2=X7}=Ti44ovKw?Z=X)|SSaVt~y zqBG=VQNQFh9#%6|Cc_qq{HX;9PB%9j2^qCn7s_;OzI(~qYf$Dj7B02X(p^?odIN(e z^1Usu;Y_)O?PPhq!VbM#jYki`mpAQ4k6jfpE*Y3YQxenRx)Ha!b;%@H`f0Eaa>(ov zTQD-`v7Mdq9PU#$cDN4=I^bsEirgjH~jJ5!aA(1G>E|GFqDL-ZsB zFIeh9XvaL6g4O-HY?gD{6k3(80Hk&(~#(0f*+f7 z48P$+Af4|1`1bRcBj^uO@$%j7715ss?~zc!Eow+hbL0*%dJX6`$AoXNvQxa6EBZkm zEJwjImkn-)0Ci`z@Og>HH+oW2z@K>HYhO>7=n}kEOPalzAx{DHSsE}BRyyL40wz4L ztf3R?9+t_O)nCHpA>wcRTz^`Do%+3PUf;TYNuR~3iF^mg3*-AdK&t~%cWn_VUV#+V z;10B~?(tX0E=J&+iX`e9)%o1%xis}v)ZHzRITQg1Np(X`|JB<+-{1Z(J-28m43c7#WC5F*L4-cJNG3hmOi{(p*vPSmb79;QkLJQpC~-Z6^cBjJbTuOlNFUQm#TU!p z|1^~LIHYF5bsuZiFTskRLWzx>#@Le6vo|JLP=us9!8OH$_^rTvM!9Xc={NUZX74|K z|L3!Je|z^CVabkO1Oj_AqlY!rGH|N6xh`i>+OR?6OV}l(pmY5<3=#-&J9}dXNOd|X zKgcwIJOnw4>X2tL0xI@((ia%N<=Dq<>Hcyk?}}{io+7RDSzccycBca+ zuVWj}HVjK^m?>21Qf;E&)zi6}WAw?s7cf=R* zGfk*M?7w+`nW-duJP>Jj!S+noNoK~)_v;*r#a3`g0NakpRS(?9ebP9mS^|5^U$SKG zAZD!H+%dt39_VDrY;p~_F01jVgWEVj>P*Hd>}06giLC>@g5r%ENPVy$f^0-p&&J)0 z&l#$$t+N(OM}-qtoOA#-Pmu%JUIBorb|aalT$i!5c2kVt`fLS3?{0nxHv4o}T07^e zeQgF+&IP6~qkBE72brHee#F96GefV3%}Dt9V;O5;02h-coqC0An_CG;2H}NX>UABP zsi1dR=MO{>M9C~wyA)N16y-5Q-wZ;DiZ~;zE?1oA>iQwc)EpLIDA{8DS?mY4&MJas ze=ThZ+YyE@3NXE7BJN=vQc5)S4We(w;OPlLN_&p9Ah!!>qk#o>r|-U8fBnlJkRi2R zf`-x==Yq>li0~fLnvwzFxhXn6n1pf2anQhI5mnd;A5~P*1)(=~^*AtsTd^`q7y^6n z)dbu6n(89M)?}SO|LNnWFQb1Ni+u{VUVLQ3+3SkinJ}aj8+`(K4m7GcYR{S^3>}bG z2QKlut1FfyT!&mZ#`&%a=>AlCKW1}rl4$1ki7#%nw6>uqt?lmF@J--b(M#f*YA>5(;*!g4WpLV-{ zyMOyYJ)oL(cM*66?K4BPh?_RA`bc}zE5)uE3Q*ZcFx*<~7?2P&!rDolYkDyE+~&*2 zznZiy{vSaGOZ69DYhE>C{t2+j@pM<9l)?+8sYhxH8h3`k5I=2MeO6!^t-71eB^>6W zrNr)1y4TncYGknp({kO)`+Sxmm!el1GJ-=1eKn4GO%g&Cs{$D#fyqk4UdLQRvn;*RT&4UZB#(PSqDHz zV2D(rgm@LkzxA8ltHl!QLl>=QsKrZt2M%KhV@Tjk?!QE4>k-eLd436;guqI7L_hT6 z+G3syNF#Ed4w=1_^=k8~gOU4i-NsEtz1(84ggY!>ts>ysofg4J#w?4X_F9shrzgqsvJF0^QzgJrot^l&E|j_TwS#O7>0-bPXz1JVnL@URvKGKNLS0o^r^`-fn9UHJBK0=w7~vDF-Svn#Vs^jI0ns)gFSr!_6@dK z+#YH;%&IHG$nZezML{*^ElHO0#~4r%Zz4?|YI1-lbQmf>v;Zb9by41+LTi5~$I4+H zfmr%etN3lLD}rn2=HYt`#}{|e=1(m^sdzR}70v1%L-zsa(D~hyXa7iT5Q(o(cr z1&rsvd9MHF&zYq?FN11ej(S(}#uKOO$}A5RlA7E&ouruTY6!#wHgHW#AZG-iJTXfh zkR2QKrKU3V6uvz6iK8!e!iPBe+{s?bG8H#qARxM-kOlCkF=g%6pV*H3M>kf>gk+$?$E&~iUQMvgb9PyKQf-KH0!7Pfp(TBT7r|YiIP3f6%%qsWMHV=s@SbyAb&_1s3hAP~*R@CDYc9uZvl*-#YS*!k6ynhOj3whp>tDuGWpvq8 zoiLG0sEP8xAWk|!p#VCx15}!^g*+^q9DcCEzL6M4^kC9e-XrZ}O}VO9y0mRf2z4Dg z_-@t7gf~=gbPhV_W_n@}RirMiF#pGHupoS?+;!IXc@g)4j^uOnh|OF~xodAHUGX>=9!iG* z+D?kB9jz3FHMV3P;x-$)QdAJ<8A;WvzQf?c?8o5Au~9%vy^N4%8!gTK8jUzxyBcZ>jUrltllp8R zx~^X%*MDvZ>LIT<{|3Fd4SEsk0QL)(H6&Bm;qk$6lt~Su;@c*PiWM%c?XEVx? zpxn#5V+~$*3Q#kI@91Kc7a;b}7SkpCYMUu7@>?Lz(C zmTW9(r2B!6`?~0b9_3lA+nU}K|B2Vwz-ZR;M9$D86*o-Z%blH(x4F%du9)o77&omF zK&dt-6YOsE{^N%qM_)gDe)r>t`yWQou9@Z}iV?>)bZxauqZU@Jc@c|j0UKSc)_~NR zL&Nv0c%BX@8t_=7`#$*3TK*1=TK7)hV{CiF!y5}PXk@!}TBbM|M>&Bc7_)~lj1CHR z+l;AUo2A5_I%UejVKE-i=XGX#sE5AHxI&guE^!JGJ|=RYIEB-W>u*f1S(F2_T|wIe`Mx*I8!h1*<@@z)1Rph-ELRi&P0;`(#M@ z^u(1jAO=K?C*Wd>Si-lE+M&_T-rs#{1K7c9-P z{q*j~<%iBIx=`I>njq#bMAKLs1^!!#%tlx5D1dL~f#?%VTXfScxNh45yFp!GrP-_X z9RfRccnFBI~mv?2%@$$>nEfP`L zA?@?C15mwq&FmX%q=soZ7~-u0(t1fPi+o={F%}iE0ZsX)9#FUV=3Sz8F#N#Q^E(t_ z+risK-YoD?lyQErlWyl(r3(FN=+gBAAoENTvUTPobBoT{(op==d@Kj-#1fE=fr-x? zHQ!8%)!V)Bi+Ugc&*+T$X#6%n=kBLc}OwJU^O;EI;s=t}~sf?wQf$I=~jbVKF3?%}3{42Jwl zyW?k)hv*D}=J7MP6tc|L2WkuG2;h3p=9->klV*p(HN7qp$YsR7%ui|8ewh!nc7%}w z?jeO)#E((ztmbNcz2$TCnem38T8e9gkq2Qq!=sq}EnhQCki^&*y?N^C>*+Ef<( zif{+NGV0vN&Z7JEQmhg6+JqzHUI3}C$%du5TI3(`r6gFfE~=+H2&$)A(1fk+##!1RvFd>d71 z)Q6cTk$Ju;LRTs*OtIs^mJlgbk>|)zpdr8(q!&xo>vjVdoKW<(k+%k23`1+;qsNnx zqhwF!gg&q=Qz|<@ezyJe_QU5t-hUdbI}b1n8Jh))(D?RtP6e|GenGCGPPH7VB)Ahk ztT|Mrd%nkE`k)*oGHGK*B9E9Eg$4~^a7pCm(6)s00wQFYy;9T+g5M5@0rmZyCiS3t zKX=HS(k#Nov#(peu8zV(61TC?YH&f}aR&4D(bwQnkqnXQbA?0nIMf6z?{=Rf-|Qxf z*;d!y^}v6x92G5{%S6a(&X45X)_gB%d;Yv0Py=#gMk^ncT*&@9Ihw6U+|2oct+D6) z>uQxW>;ltc(@2ZEab$@Qt68rWjFXa(Ldiy^T0>rik(}xE29vzB9rS+lUjbT!UrP{F z>7a_>FfSP;8n;h~6o8bqTAy7&C#9?%94FT|!VUP<8SK-^8mU>r>al#o9sJnQ5&Z59 zH6dI}V@0m#=is|&eMR`KAH!}(=M*E6P|5;rG`R7ZkeOA5Krgn%&|2GNMb=OX(KV~! z*yQ|QVciAyty#j}LQz?5x21<}U2YM2ho#!QLb42tCr6}^HkGps#c4D<ZQCDul}~Qv0#RR~>D>b za`nH&1T0Qu&07&=SHnm0JMavQHql|r^J=6Rj!dEg{{zUp= z%@8TDDHYk6gtm7T+HmN`;YLf-4k*G`+o86{g?YsyV=JNe|-0&x$Vh~5mjZY50NT8%&i^*O5LBNkkPjztJWAQ<5LC-BKY^x%59R!+J9chKGZpdrub+y zc@?M;8KN*QF^ta6G<{PCWo<#Yh?}-ty$T-kI^epKa7~hQ8+Y_yzvc>s$ zZ}<_l`khGr4TNa*I}g4+I(!;319nlQg4axt+H${87YU4lskO3yQowXC`YW(I42|_T z%nn4lbjAHB{xPMIwsyiQt#Aj*G@;svS}BOhOnm?&(Sdau%HygVEXLJu!-0aN1%EB* zg^^8JXChs|(8v|x%51xF9gHyb$Z*{TicCZGQQX9Na*Y4O7aK(2x&u9Pha1YH zrSJ1iD`(j9#CAhFtc)!O?b44;LW$qPv3KEh9N?GvFn3w!j??SMrfevvAiuuA^c1tM zY+={}{;X-B$C`l0k07>qewibr`E&-}KQ~jB!eK+L7Rn_ICSTsilj9BxXscuAC;8N3 zv}$Q;Z8e(W$w@fxLiK$<0_ppnnk%4d{~}QX_Z#;l<8xHg#{K0I#xEcwXT7IqkNa>D3B~it|yr&a-NOx$0RX^5q<| zsnU$n8vg2L4gTbEy17uvlp(Oj&W!K+66V&M>j>l0xLi|kts7<R~jsq2W%$=9%i0-4(#pH-64ID&=Mx`+uzZ7=NpYN(o4Zr2~tkujk>v@ z??*1VYFdFKq9NLNJIm9BYGumBK;*6-a1pr&&daGoJ<{=W{f_o*wFP)W)1P&Ap^Jnb zjF=<(&6d<1+);iFyTEgI_%@UO4G<*$YNkkE=uc*sG!pg{iARZ2ngeP;2lDi4+$J`8 zB#1Y3t05I*zo4AO=%CD@w}_MuK<-pIcs8wQ=|&k&vNye%Qt}n`Bg3FveX9#o7L@8X zKn|va41+^7JNH4x^~DOrSsrQPuaRj<{HnBFBz}-6*95fJ^#b@&keW@xT<$zy8z?u_ zK{L8uk}24qUcbV%;E2UoY|cP&s&zeKp&ra!$Ra(E7yS0G7p<%ye|+FNK#Ti)d=bxG zG30aabdxUdrcTlYGlTBeV*~BM)1Z;%acW}}#Ld`}#eoqc_~GN|Kk&&=$T9-;h!q^Z z{N=Bo?tlDk;Z%eYe0v*Kh`sJvA%5$(pv(i)kX1bL@J+YZ$hmTMV6S`p+tL3X{o9{V zq(K|8>ed*x&}CD*P)#)n+5B9HM20?2-tuTSKS_*5F9{`yN92ODE zzY>0rj<+{QCx&n*45DKM9ZotFT~%k{2hl%*bFim}v`g1WEw!F+QPwREuyjnl%L?y? zBKC51<`!y7K!(tyJm}7ObSz@AsHNrPMJA8g=k1<7qyBK;yxKoM~oN*LK zL46sNTF~5t{=h5|=A50CwS`Op-_UVe0}vbMMz>>Q!quS!f}R zx&>Fr7g{dxo+Q=<`D9Ksn@xFCQa@T@!N`q8_@bdP13l2nODs|2UU|_KD3vCL{+1Ni zX2LST9NCO2$WzxNFMv-q&x;m8>C51nYpSbgm6?MI1lkKSkwqyVCxA1R!J59R1H>;6 z;-}xhp6lg3;hERf_-HxYHBX*uwm~EPzB3$Vrst_^2ueCHJ(znpSR6F$puI3?+D5B{ z6|qDQ=2q%-YW9Ky-QZK&0L4*Cq&toHE&>B zk@g;9+`{Iuw)Nq`PeB62VJ^ocW$eOrFscUCY#OC9VGM|DA!LnE7Z~INXOrhr2Y64y zK>O=|86Etm-B4>GLC_KTlFb?s;%e};o6Y+8YtTdvkw_H^q#MZc*S9xFTQ+pDCVZ|* zh+8s0oTZpA0)9d+_2CpJJ(y!gGgcytN&6B*!UdRipnDfOb^{V4j+{d|d0RZZoXt%D z-Ouf{c}1%#O^^I*h_`dC?&Tb9m2?RjTY>4(nVy53J2fXUhrK5Q$CK^N_^3!%EPE5y z(CudR>HhQgZ{OeR+d}U0s0;gE>Q7@wmdp6j1q9|q_pqa2^*kg#IX3RMoZ%hOW$-+ zY+?ogVyIL|@nkFM%5R}f& zi%W~IWCOA_FjFl}MsQi=<_Y%&Q7wxx6B8ATzp00l))+H^S3Nkx!yW9yr#v6fT!S!b zK`Te<%GPj{lkBnBp{U0ewoOxEsqA8N#U5%5^`Ku;fb{uQ!$uAkQ8N!{*lG{ms)bBW zq}_uTAayQ85mjZpOhSv62RhWZc({%29dBr9FkH?zipx_L0wdr90MQ6& zG+H}~c$eN)e-8u-GcFBCnjKJ>`Q1Gn5uPw^27ljNET{TH)e=68h_LY+Q;VecubIW^ zgRQ42?gmXF0n&6;2|p^V?v?P-A(vRK{p^iKzz5UW1xRnyX^c`jWq@r;BOp{La>O?J zDRKp=%a760d}v=?@lc$?o`-iNuXy)4AKcdkmiLW>bT_ILtMwv|oZCrCv%cR)bZlEL zT7nyW9Mdx}9O>x2QGG-B0p?4RMe`we9Vzf5hdMd57nY{pXp4FWHkjN5gE!kv=y84n z9c)zOdTF8KUt*c;Q$+dd5_W4U%iSE=T&h$6$gx{}6cVz`B^1lf-E^Yg8aDY$^KM?w z#wFsMRy3!(k_sBQYZZ7)#WhSs_H z8rGc`HJP}xr-N*Dfu-e<8a>Qv*3c`ez`@#N*RwagN=)d&O&_j@HdC``90ocdbr;V{ z2LlU4xJ0N)|B{V|{$H*(QhFyJPN*cZTB)Xg(vdSF>)+@NpGFkMdUA|V_3Il}Sq4Y2 z8y)}V`SIbClPAX~&yL5F<0mJ__un2(ju(-y!F^D=9?KHI3QQlT=%Va@)NXEmXhFV> zd|Q0$C-AL5LNO0K&e9q>YeRo7xWe8bGo#kQSsp(wI-(hz@!qi8w(ShSG;qzD=>Qtq z%@u?$_cVE%KkRIte9iex6~|rO1#&5dX?Nxb6ERgfmGJ`y0hfa0US$`wfK^F@PX{V^ zK|47o3q{oI7)2_dBAYwEq(fDK`fP1bV5^(urt2TqfYdqpu2pZSCWtj%w!xCwJ_Cmf z%knFb4W|I1`6PX&Z4ROX{_>8*cW|$CI%pJ|DS}B+5OMS6?U%2gcbE5{KaXF2eftT{ zf{U;3-;WAh>B=FSZ8qbV)S1BSz|u77D~u%%R;|bmvs_LnJDH2YYM>gCO{{4mJ0H=2 z)cM6)E;#d7(~-P0=#TSiy@ZDc7ro?6Pb3I5YOdsaA@fI(!J6cbn5}a83(bz=o9bvQN-0s?{yeuaVTA8VA_^XuUgl z`@;{PXqi0t{^N(wUq+w5eERzRm(e!&K}8UU{_W$tAK21OkH7uh-!gico!-(7>lI&@ z4qU}QrGutLYi+vC;bfczR=Wq!(tRt4&Y!geT{p>iG;+<-BrFv23XjP?jS4c;GQ zEgkPq65coMP)f|9O)rOSpV>g9P$4OCilAm}NSy^nmk#+K?^7 zF{EInXlLKhVQ<^N73wO+w z{qlJQtj&cq?Fo^1bpuGNwYq~lZgs`5X7$3L2D_xotrl&k*2L+9aGWmiBeEjG$qT8k zM{UzjALfzIEQUVk4e(SRz7A9@1<(-EUM{<73Wz8QNZ<8<$tKOmzFvAnkFsEoIeSjJ zueoIEt0l6hl*ZNikcsp-GjI`wH$ELjBSV@0_H1Kp!P&TE7aM?HKL9*^vzl%;(4v!t zP=V{S`RVOBBzWyPBt4O)?u-^(u7pmA@nCdHB0@&pB3K1dLl{ek+9dgj>x80J;daKV z!N8dkM=lcWM2IO+&@Y1OM1S-q;$?%=c`)L-R>aVaDS3vuz;OZUhPt8f z#^UQ@sQ#>R3?bu^97BSSfxk$T$)rBe%r?G9f9Vr-)8Hfdt+E{7pdRe{_F88@U%))B z5CjY=0z`B>+XltxlzaK>+wcE;|HC(0taAJ4EwlVnd`7kCs*xIcSb1i}B&n zPxF!*%c+2?hO4HQ2;5X=@OPNMLZMS4I35VoXhQ|MCtA%QS{HVe+E~HRV=BxX)iNC~ zD+%#GIujs?EBK1}YO_REM#_luZ^tKRXGy+T&QMiT+Ch(P5~qu>UaU7kX(L$H*>fb; zxJS~BA4ayCes#X3oBz$36i~?_4<~pTdTsaz+!o(3y37=%itm59%m5P^Os|ejD>e9_ z<{6vTf#n7yB!!lRa?_B?Z%XQY0g2A?u0iNG(L1r1xsi7 z#;|q&X#ctN2TR>g#Jv}nXErHb_|yuaJRTbQ2z08zKZzG1cW7*0LV=c)s$<8?0%&(9Do&3&T%a0Aj`JtS1)-i4{RzF;a(dH>MOuA5D-nj z$=n;tNyH z`x-&NUN?(5i$MhBUZ9GN=bLV9uAws75L>zHlE776> zEZ|dcPB*L0cH7s>78Cv^YdEQGR>jyJIJJRTXHptB6%1mv0#kPpbLhPga)prc>DE#Y zI&yOp&2S&xp7T-=-4-V*Rx_~kb+(4ZHl?2O5VA^Lj)S^Tf|xM}BJk^MiL$|Kn;nn3fGZhc8A%8>XxAXc~#@P+1;OV#Hr*r^@f& z{fnz|RGD`4>t9oM^*^fF3F;|(nhMI0a|IuDzGNKyC&u7Yg)1HJ_rGk;RmF;_&bUq82Okz`b3|KN&&5F&@k%X?Lbj z304sp&p4l)EchCC0s=eGNOK^Tc#%FUM5h(^hBTr(MRnO00uTM=F`0X&cY?IXqD0B} z2U_|y^M*Qp48#=9KLOTs=qcA{Ad>he?$AP8?l-=qfOSVg4^@Idh2bh)VdD36(gVzN z7qzL((zA-Dwol6p7Te~a3exk$m1#X9N^)^|`+BtJx?a$Bxzfuw1$;3^b?zI@`;8@`&lvjWlX{1)v1N3YMDxY1U7gO~+Q6TPd7T zRL+T^$tYN}by=Tqua%blQJSuja~R_Wrwc@F$gd)Y_E(UdPGFi>)4RDpgOPx6XGLKW z)H$Pu;UR4i^ z=x`~w5$f!p)i2s@ozSy_16y5ax@^;!DsD~!$?vJcb~v69#~YIJ;!{XZbv%%NEZh?W z){BH~K(lt6+s&#Z$xED(Y>5Wc4Vqok9(qLx9yoatoa`f>t7QXfWT1$TG@54#8B^iL zInx>6K`y-_+lmp4Sh@Xl13f8;2#_0HbD%aIfj5HM3TFqNOEcO*Q%i^5P8NOL5eva9 ziR`wp`k~>Ul!QHY)p1;3-c;XNH1v{8th?I77N(czlBZwk45UneHY7YZ5Yuxl!odzkopW0rv|rLfNE#g)@5m?Z~j2{ zBCptPjUoWi(&pPiLoc+&NA)P+ZMr=t|Nn!dTbnVyX# z(Y4p`9J0)0?}a&ecEJG5DCc!Tm2|FKm~6KxgA23P@S`SAO6CGuh9YLoy&t7rvh!

      UbtiYq|c4I)SUTK%0~(P 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%0DqN#@50hug7Eu#a@Lvhz-QmuAg7Me)l8O6;{yv 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 "103ze_code.list" + @echo 'Finished building: $@' + @echo ' ' + +103ze_code.bin: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS) + arm-none-eabi-objcopy -O binary $(EXECUTABLES) "103ze_code.bin" + @echo 'Finished building: $@' + @echo ' ' + +# Other Targets +clean: + -$(RM) * + -@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 +.SECONDARY: + +-include ../makefile.targets diff --git a/103ze/Debug/objects.list b/103ze/Debug/objects.list new file mode 100644 index 0000000..7354f2e --- /dev/null +++ b/103ze/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_stm32f103zetx.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/103ze/Debug/objects.mk b/103ze/Debug/objects.mk new file mode 100644 index 0000000..e12976d --- /dev/null +++ b/103ze/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/103ze/Debug/sources.mk b/103ze/Debug/sources.mk new file mode 100644 index 0000000..0b21f01 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h b/103ze/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h new file mode 100644 index 0000000..1001fd8 --- /dev/null +++ b/103ze/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h @@ -0,0 +1,11761 @@ +/** + ****************************************************************************** + * @file stm32f103xe.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 peripheral’s 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 stm32f103xe + * @{ + */ + +#ifndef __STM32F103xE_H +#define __STM32F103xE_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 */ + TIM8_BRK_IRQn = 43, /*!< TIM8 Break Interrupt */ + TIM8_UP_IRQn = 44, /*!< TIM8 Update Interrupt */ + TIM8_TRG_COM_IRQn = 45, /*!< TIM8 Trigger and Commutation Interrupt */ + TIM8_CC_IRQn = 46, /*!< TIM8 Capture Compare Interrupt */ + ADC3_IRQn = 47, /*!< ADC3 global Interrupt */ + FSMC_IRQn = 48, /*!< FSMC global Interrupt */ + SDIO_IRQn = 49, /*!< SDIO global Interrupt */ + TIM5_IRQn = 50, /*!< TIM5 global Interrupt */ + SPI3_IRQn = 51, /*!< SPI3 global Interrupt */ + UART4_IRQn = 52, /*!< UART4 global Interrupt */ + UART5_IRQn = 53, /*!< UART5 global Interrupt */ + TIM6_IRQn = 54, /*!< TIM6 global Interrupt */ + TIM7_IRQn = 55, /*!< TIM7 global Interrupt */ + DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */ + DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */ + DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */ + DMA2_Channel4_5_IRQn = 59, /*!< DMA2 Channel 4 and Channel 5 global 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; + uint32_t RESERVED13[2]; + __IO uint32_t DR11; + __IO uint32_t DR12; + __IO uint32_t DR13; + __IO uint32_t DR14; + __IO uint32_t DR15; + __IO uint32_t DR16; + __IO uint32_t DR17; + __IO uint32_t DR18; + __IO uint32_t DR19; + __IO uint32_t DR20; + __IO uint32_t DR21; + __IO uint32_t DR22; + __IO uint32_t DR23; + __IO uint32_t DR24; + __IO uint32_t DR25; + __IO uint32_t DR26; + __IO uint32_t DR27; + __IO uint32_t DR28; + __IO uint32_t DR29; + __IO uint32_t DR30; + __IO uint32_t DR31; + __IO uint32_t DR32; + __IO uint32_t DR33; + __IO uint32_t DR34; + __IO uint32_t DR35; + __IO uint32_t DR36; + __IO uint32_t DR37; + __IO uint32_t DR38; + __IO uint32_t DR39; + __IO uint32_t DR40; + __IO uint32_t DR41; + __IO uint32_t DR42; +} 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 Digital to Analog Converter + */ + +typedef struct +{ + __IO uint32_t CR; + __IO uint32_t SWTRIGR; + __IO uint32_t DHR12R1; + __IO uint32_t DHR12L1; + __IO uint32_t DHR8R1; + __IO uint32_t DHR12R2; + __IO uint32_t DHR12L2; + __IO uint32_t DHR8R2; + __IO uint32_t DHR12RD; + __IO uint32_t DHR12LD; + __IO uint32_t DHR8RD; + __IO uint32_t DOR1; + __IO uint32_t DOR2; +} DAC_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 Flexible Static Memory Controller + */ + +typedef struct +{ + __IO uint32_t BTCR[8]; +} FSMC_Bank1_TypeDef; + +/** + * @brief Flexible Static Memory Controller Bank1E + */ + +typedef struct +{ + __IO uint32_t BWTR[7]; +} FSMC_Bank1E_TypeDef; + +/** + * @brief Flexible Static Memory Controller Bank2 + */ + +typedef struct +{ + __IO uint32_t PCR2; /*!< NAND Flash control register 2, Address offset: 0x60 */ + __IO uint32_t SR2; /*!< NAND Flash FIFO status and interrupt register 2, Address offset: 0x64 */ + __IO uint32_t PMEM2; /*!< NAND Flash Common memory space timing register 2, Address offset: 0x68 */ + __IO uint32_t PATT2; /*!< NAND Flash Attribute memory space timing register 2, Address offset: 0x6C */ + uint32_t RESERVED0; /*!< Reserved, 0x70 */ + __IO uint32_t ECCR2; /*!< NAND Flash ECC result registers 2, Address offset: 0x74 */ + uint32_t RESERVED1; /*!< Reserved, 0x78 */ + uint32_t RESERVED2; /*!< Reserved, 0x7C */ + __IO uint32_t PCR3; /*!< NAND Flash control register 3, Address offset: 0x80 */ + __IO uint32_t SR3; /*!< NAND Flash FIFO status and interrupt register 3, Address offset: 0x84 */ + __IO uint32_t PMEM3; /*!< NAND Flash Common memory space timing register 3, Address offset: 0x88 */ + __IO uint32_t PATT3; /*!< NAND Flash Attribute memory space timing register 3, Address offset: 0x8C */ + uint32_t RESERVED3; /*!< Reserved, 0x90 */ + __IO uint32_t ECCR3; /*!< NAND Flash ECC result registers 3, Address offset: 0x94 */ +} FSMC_Bank2_3_TypeDef; + +/** + * @brief Flexible Static Memory Controller Bank4 + */ + +typedef struct +{ + __IO uint32_t PCR4; + __IO uint32_t SR4; + __IO uint32_t PMEM4; + __IO uint32_t PATT4; + __IO uint32_t PIO4; +} FSMC_Bank4_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 SD host Interface + */ + +typedef struct +{ + __IO uint32_t POWER; + __IO uint32_t CLKCR; + __IO uint32_t ARG; + __IO uint32_t CMD; + __I uint32_t RESPCMD; + __I uint32_t RESP1; + __I uint32_t RESP2; + __I uint32_t RESP3; + __I uint32_t RESP4; + __IO uint32_t DTIMER; + __IO uint32_t DLEN; + __IO uint32_t DCTRL; + __I uint32_t DCOUNT; + __I uint32_t STA; + __IO uint32_t ICR; + __IO uint32_t MASK; + uint32_t RESERVED0[2]; + __I uint32_t FIFOCNT; + uint32_t RESERVED1[13]; + __IO uint32_t FIFO; +} SDIO_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; + __IO uint32_t I2SPR; +} 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 0x0807FFFFUL /*!< 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 */ + +#define FSMC_BASE 0x60000000UL /*!< FSMC base address */ +#define FSMC_R_BASE 0xA0000000UL /*!< FSMC registers base address */ + +/*!< 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 TIM5_BASE (APB1PERIPH_BASE + 0x00000C00UL) +#define TIM6_BASE (APB1PERIPH_BASE + 0x00001000UL) +#define TIM7_BASE (APB1PERIPH_BASE + 0x00001400UL) +#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 SPI3_BASE (APB1PERIPH_BASE + 0x00003C00UL) +#define USART2_BASE (APB1PERIPH_BASE + 0x00004400UL) +#define USART3_BASE (APB1PERIPH_BASE + 0x00004800UL) +#define UART4_BASE (APB1PERIPH_BASE + 0x00004C00UL) +#define UART5_BASE (APB1PERIPH_BASE + 0x00005000UL) +#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 DAC_BASE (APB1PERIPH_BASE + 0x00007400UL) +#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 GPIOF_BASE (APB2PERIPH_BASE + 0x00001C00UL) +#define GPIOG_BASE (APB2PERIPH_BASE + 0x00002000UL) +#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 TIM8_BASE (APB2PERIPH_BASE + 0x00003400UL) +#define USART1_BASE (APB2PERIPH_BASE + 0x00003800UL) +#define ADC3_BASE (APB2PERIPH_BASE + 0x00003C00UL) + +#define SDIO_BASE (PERIPH_BASE + 0x00018000UL) + +#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 DMA2_BASE (AHBPERIPH_BASE + 0x00000400UL) +#define DMA2_Channel1_BASE (AHBPERIPH_BASE + 0x00000408UL) +#define DMA2_Channel2_BASE (AHBPERIPH_BASE + 0x0000041CUL) +#define DMA2_Channel3_BASE (AHBPERIPH_BASE + 0x00000430UL) +#define DMA2_Channel4_BASE (AHBPERIPH_BASE + 0x00000444UL) +#define DMA2_Channel5_BASE (AHBPERIPH_BASE + 0x00000458UL) +#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 FSMC_BANK1 (FSMC_BASE) /*!< FSMC Bank1 base address */ +#define FSMC_BANK1_1 (FSMC_BANK1) /*!< FSMC Bank1_1 base address */ +#define FSMC_BANK1_2 (FSMC_BANK1 + 0x04000000UL) /*!< FSMC Bank1_2 base address */ +#define FSMC_BANK1_3 (FSMC_BANK1 + 0x08000000UL) /*!< FSMC Bank1_3 base address */ +#define FSMC_BANK1_4 (FSMC_BANK1 + 0x0C000000UL) /*!< FSMC Bank1_4 base address */ + +#define FSMC_BANK2 (FSMC_BASE + 0x10000000UL) /*!< FSMC Bank2 base address */ +#define FSMC_BANK3 (FSMC_BASE + 0x20000000UL) /*!< FSMC Bank3 base address */ +#define FSMC_BANK4 (FSMC_BASE + 0x30000000UL) /*!< FSMC Bank4 base address */ + +#define FSMC_BANK1_R_BASE (FSMC_R_BASE + 0x00000000UL) /*!< FSMC Bank1 registers base address */ +#define FSMC_BANK1E_R_BASE (FSMC_R_BASE + 0x00000104UL) /*!< FSMC Bank1E registers base address */ +#define FSMC_BANK2_3_R_BASE (FSMC_R_BASE + 0x00000060UL) /*!< FSMC Bank2/Bank3 registers base address */ +#define FSMC_BANK4_R_BASE (FSMC_R_BASE + 0x000000A0UL) /*!< FSMC Bank4 registers 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 TIM5 ((TIM_TypeDef *)TIM5_BASE) +#define TIM6 ((TIM_TypeDef *)TIM6_BASE) +#define TIM7 ((TIM_TypeDef *)TIM7_BASE) +#define RTC ((RTC_TypeDef *)RTC_BASE) +#define WWDG ((WWDG_TypeDef *)WWDG_BASE) +#define IWDG ((IWDG_TypeDef *)IWDG_BASE) +#define SPI2 ((SPI_TypeDef *)SPI2_BASE) +#define SPI3 ((SPI_TypeDef *)SPI3_BASE) +#define USART2 ((USART_TypeDef *)USART2_BASE) +#define USART3 ((USART_TypeDef *)USART3_BASE) +#define UART4 ((USART_TypeDef *)UART4_BASE) +#define UART5 ((USART_TypeDef *)UART5_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 DAC1 ((DAC_TypeDef *)DAC_BASE) +#define DAC ((DAC_TypeDef *)DAC_BASE) /* Kept for legacy purpose */ +#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 GPIOF ((GPIO_TypeDef *)GPIOF_BASE) +#define GPIOG ((GPIO_TypeDef *)GPIOG_BASE) +#define ADC1 ((ADC_TypeDef *)ADC1_BASE) +#define ADC2 ((ADC_TypeDef *)ADC2_BASE) +#define ADC3 ((ADC_TypeDef *)ADC3_BASE) +#define ADC12_COMMON ((ADC_Common_TypeDef *)ADC1_BASE) +#define TIM1 ((TIM_TypeDef *)TIM1_BASE) +#define SPI1 ((SPI_TypeDef *)SPI1_BASE) +#define TIM8 ((TIM_TypeDef *)TIM8_BASE) +#define USART1 ((USART_TypeDef *)USART1_BASE) +#define SDIO ((SDIO_TypeDef *)SDIO_BASE) +#define DMA1 ((DMA_TypeDef *)DMA1_BASE) +#define DMA2 ((DMA_TypeDef *)DMA2_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 DMA2_Channel1 ((DMA_Channel_TypeDef *)DMA2_Channel1_BASE) +#define DMA2_Channel2 ((DMA_Channel_TypeDef *)DMA2_Channel2_BASE) +#define DMA2_Channel3 ((DMA_Channel_TypeDef *)DMA2_Channel3_BASE) +#define DMA2_Channel4 ((DMA_Channel_TypeDef *)DMA2_Channel4_BASE) +#define DMA2_Channel5 ((DMA_Channel_TypeDef *)DMA2_Channel5_BASE) +#define 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 FSMC_Bank1 ((FSMC_Bank1_TypeDef *)FSMC_BANK1_R_BASE) +#define FSMC_Bank1E ((FSMC_Bank1E_TypeDef *)FSMC_BANK1E_R_BASE) +#define FSMC_Bank2_3 ((FSMC_Bank2_3_TypeDef *)FSMC_BANK2_3_R_BASE) +#define FSMC_Bank4 ((FSMC_Bank4_TypeDef *)FSMC_BANK4_R_BASE) +#define DBGMCU ((DBGMCU_TypeDef *)DBGMCU_BASE) + + +/** + * @} + */ + +/** @addtogroup Exported_constants + * @{ + */ + + /** @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 */ + +/******************* Bit definition for BKP_DR11 register *******************/ +#define BKP_DR11_D_Pos (0U) +#define BKP_DR11_D_Msk (0xFFFFUL << BKP_DR11_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR11_D BKP_DR11_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR12 register *******************/ +#define BKP_DR12_D_Pos (0U) +#define BKP_DR12_D_Msk (0xFFFFUL << BKP_DR12_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR12_D BKP_DR12_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR13 register *******************/ +#define BKP_DR13_D_Pos (0U) +#define BKP_DR13_D_Msk (0xFFFFUL << BKP_DR13_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR13_D BKP_DR13_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR14 register *******************/ +#define BKP_DR14_D_Pos (0U) +#define BKP_DR14_D_Msk (0xFFFFUL << BKP_DR14_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR14_D BKP_DR14_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR15 register *******************/ +#define BKP_DR15_D_Pos (0U) +#define BKP_DR15_D_Msk (0xFFFFUL << BKP_DR15_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR15_D BKP_DR15_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR16 register *******************/ +#define BKP_DR16_D_Pos (0U) +#define BKP_DR16_D_Msk (0xFFFFUL << BKP_DR16_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR16_D BKP_DR16_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR17 register *******************/ +#define BKP_DR17_D_Pos (0U) +#define BKP_DR17_D_Msk (0xFFFFUL << BKP_DR17_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR17_D BKP_DR17_D_Msk /*!< Backup data */ + +/****************** Bit definition for BKP_DR18 register ********************/ +#define BKP_DR18_D_Pos (0U) +#define BKP_DR18_D_Msk (0xFFFFUL << BKP_DR18_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR18_D BKP_DR18_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR19 register *******************/ +#define BKP_DR19_D_Pos (0U) +#define BKP_DR19_D_Msk (0xFFFFUL << BKP_DR19_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR19_D BKP_DR19_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR20 register *******************/ +#define BKP_DR20_D_Pos (0U) +#define BKP_DR20_D_Msk (0xFFFFUL << BKP_DR20_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR20_D BKP_DR20_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR21 register *******************/ +#define BKP_DR21_D_Pos (0U) +#define BKP_DR21_D_Msk (0xFFFFUL << BKP_DR21_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR21_D BKP_DR21_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR22 register *******************/ +#define BKP_DR22_D_Pos (0U) +#define BKP_DR22_D_Msk (0xFFFFUL << BKP_DR22_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR22_D BKP_DR22_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR23 register *******************/ +#define BKP_DR23_D_Pos (0U) +#define BKP_DR23_D_Msk (0xFFFFUL << BKP_DR23_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR23_D BKP_DR23_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR24 register *******************/ +#define BKP_DR24_D_Pos (0U) +#define BKP_DR24_D_Msk (0xFFFFUL << BKP_DR24_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR24_D BKP_DR24_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR25 register *******************/ +#define BKP_DR25_D_Pos (0U) +#define BKP_DR25_D_Msk (0xFFFFUL << BKP_DR25_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR25_D BKP_DR25_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR26 register *******************/ +#define BKP_DR26_D_Pos (0U) +#define BKP_DR26_D_Msk (0xFFFFUL << BKP_DR26_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR26_D BKP_DR26_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR27 register *******************/ +#define BKP_DR27_D_Pos (0U) +#define BKP_DR27_D_Msk (0xFFFFUL << BKP_DR27_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR27_D BKP_DR27_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR28 register *******************/ +#define BKP_DR28_D_Pos (0U) +#define BKP_DR28_D_Msk (0xFFFFUL << BKP_DR28_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR28_D BKP_DR28_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR29 register *******************/ +#define BKP_DR29_D_Pos (0U) +#define BKP_DR29_D_Msk (0xFFFFUL << BKP_DR29_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR29_D BKP_DR29_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR30 register *******************/ +#define BKP_DR30_D_Pos (0U) +#define BKP_DR30_D_Msk (0xFFFFUL << BKP_DR30_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR30_D BKP_DR30_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR31 register *******************/ +#define BKP_DR31_D_Pos (0U) +#define BKP_DR31_D_Msk (0xFFFFUL << BKP_DR31_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR31_D BKP_DR31_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR32 register *******************/ +#define BKP_DR32_D_Pos (0U) +#define BKP_DR32_D_Msk (0xFFFFUL << BKP_DR32_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR32_D BKP_DR32_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR33 register *******************/ +#define BKP_DR33_D_Pos (0U) +#define BKP_DR33_D_Msk (0xFFFFUL << BKP_DR33_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR33_D BKP_DR33_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR34 register *******************/ +#define BKP_DR34_D_Pos (0U) +#define BKP_DR34_D_Msk (0xFFFFUL << BKP_DR34_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR34_D BKP_DR34_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR35 register *******************/ +#define BKP_DR35_D_Pos (0U) +#define BKP_DR35_D_Msk (0xFFFFUL << BKP_DR35_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR35_D BKP_DR35_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR36 register *******************/ +#define BKP_DR36_D_Pos (0U) +#define BKP_DR36_D_Msk (0xFFFFUL << BKP_DR36_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR36_D BKP_DR36_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR37 register *******************/ +#define BKP_DR37_D_Pos (0U) +#define BKP_DR37_D_Msk (0xFFFFUL << BKP_DR37_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR37_D BKP_DR37_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR38 register *******************/ +#define BKP_DR38_D_Pos (0U) +#define BKP_DR38_D_Msk (0xFFFFUL << BKP_DR38_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR38_D BKP_DR38_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR39 register *******************/ +#define BKP_DR39_D_Pos (0U) +#define BKP_DR39_D_Msk (0xFFFFUL << BKP_DR39_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR39_D BKP_DR39_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR40 register *******************/ +#define BKP_DR40_D_Pos (0U) +#define BKP_DR40_D_Msk (0xFFFFUL << BKP_DR40_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR40_D BKP_DR40_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR41 register *******************/ +#define BKP_DR41_D_Pos (0U) +#define BKP_DR41_D_Msk (0xFFFFUL << BKP_DR41_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR41_D BKP_DR41_D_Msk /*!< Backup data */ + +/******************* Bit definition for BKP_DR42 register *******************/ +#define BKP_DR42_D_Pos (0U) +#define BKP_DR42_D_Msk (0xFFFFUL << BKP_DR42_D_Pos) /*!< 0x0000FFFF */ +#define BKP_DR42_D BKP_DR42_D_Msk /*!< Backup data */ + +#define RTC_BKP_NUMBER 42 + +/****************** 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 */ + +#define RCC_APB2RSTR_IOPFRST_Pos (7U) +#define RCC_APB2RSTR_IOPFRST_Msk (0x1UL << RCC_APB2RSTR_IOPFRST_Pos) /*!< 0x00000080 */ +#define RCC_APB2RSTR_IOPFRST RCC_APB2RSTR_IOPFRST_Msk /*!< I/O port F reset */ +#define RCC_APB2RSTR_IOPGRST_Pos (8U) +#define RCC_APB2RSTR_IOPGRST_Msk (0x1UL << RCC_APB2RSTR_IOPGRST_Pos) /*!< 0x00000100 */ +#define RCC_APB2RSTR_IOPGRST RCC_APB2RSTR_IOPGRST_Msk /*!< I/O port G reset */ +#define RCC_APB2RSTR_TIM8RST_Pos (13U) +#define RCC_APB2RSTR_TIM8RST_Msk (0x1UL << RCC_APB2RSTR_TIM8RST_Pos) /*!< 0x00002000 */ +#define RCC_APB2RSTR_TIM8RST RCC_APB2RSTR_TIM8RST_Msk /*!< TIM8 Timer reset */ +#define RCC_APB2RSTR_ADC3RST_Pos (15U) +#define RCC_APB2RSTR_ADC3RST_Msk (0x1UL << RCC_APB2RSTR_ADC3RST_Pos) /*!< 0x00008000 */ +#define RCC_APB2RSTR_ADC3RST RCC_APB2RSTR_ADC3RST_Msk /*!< ADC3 interface 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 */ + +#define RCC_APB1RSTR_TIM5RST_Pos (3U) +#define RCC_APB1RSTR_TIM5RST_Msk (0x1UL << RCC_APB1RSTR_TIM5RST_Pos) /*!< 0x00000008 */ +#define RCC_APB1RSTR_TIM5RST RCC_APB1RSTR_TIM5RST_Msk /*!< Timer 5 reset */ +#define RCC_APB1RSTR_TIM6RST_Pos (4U) +#define RCC_APB1RSTR_TIM6RST_Msk (0x1UL << RCC_APB1RSTR_TIM6RST_Pos) /*!< 0x00000010 */ +#define RCC_APB1RSTR_TIM6RST RCC_APB1RSTR_TIM6RST_Msk /*!< Timer 6 reset */ +#define RCC_APB1RSTR_TIM7RST_Pos (5U) +#define RCC_APB1RSTR_TIM7RST_Msk (0x1UL << RCC_APB1RSTR_TIM7RST_Pos) /*!< 0x00000020 */ +#define RCC_APB1RSTR_TIM7RST RCC_APB1RSTR_TIM7RST_Msk /*!< Timer 7 reset */ +#define RCC_APB1RSTR_SPI3RST_Pos (15U) +#define RCC_APB1RSTR_SPI3RST_Msk (0x1UL << RCC_APB1RSTR_SPI3RST_Pos) /*!< 0x00008000 */ +#define RCC_APB1RSTR_SPI3RST RCC_APB1RSTR_SPI3RST_Msk /*!< SPI 3 reset */ +#define RCC_APB1RSTR_UART4RST_Pos (19U) +#define RCC_APB1RSTR_UART4RST_Msk (0x1UL << RCC_APB1RSTR_UART4RST_Pos) /*!< 0x00080000 */ +#define RCC_APB1RSTR_UART4RST RCC_APB1RSTR_UART4RST_Msk /*!< UART 4 reset */ +#define RCC_APB1RSTR_UART5RST_Pos (20U) +#define RCC_APB1RSTR_UART5RST_Msk (0x1UL << RCC_APB1RSTR_UART5RST_Pos) /*!< 0x00100000 */ +#define RCC_APB1RSTR_UART5RST RCC_APB1RSTR_UART5RST_Msk /*!< UART 5 reset */ + + + + +#define RCC_APB1RSTR_DACRST_Pos (29U) +#define RCC_APB1RSTR_DACRST_Msk (0x1UL << RCC_APB1RSTR_DACRST_Pos) /*!< 0x20000000 */ +#define RCC_APB1RSTR_DACRST RCC_APB1RSTR_DACRST_Msk /*!< DAC interface 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 */ + +#define RCC_AHBENR_DMA2EN_Pos (1U) +#define RCC_AHBENR_DMA2EN_Msk (0x1UL << RCC_AHBENR_DMA2EN_Pos) /*!< 0x00000002 */ +#define RCC_AHBENR_DMA2EN RCC_AHBENR_DMA2EN_Msk /*!< DMA2 clock enable */ + +#define RCC_AHBENR_FSMCEN_Pos (8U) +#define RCC_AHBENR_FSMCEN_Msk (0x1UL << RCC_AHBENR_FSMCEN_Pos) /*!< 0x00000100 */ +#define RCC_AHBENR_FSMCEN RCC_AHBENR_FSMCEN_Msk /*!< FSMC clock enable */ +#define RCC_AHBENR_SDIOEN_Pos (10U) +#define RCC_AHBENR_SDIOEN_Msk (0x1UL << RCC_AHBENR_SDIOEN_Pos) /*!< 0x00000400 */ +#define RCC_AHBENR_SDIOEN RCC_AHBENR_SDIOEN_Msk /*!< SDIO 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 */ + +#define RCC_APB2ENR_IOPFEN_Pos (7U) +#define RCC_APB2ENR_IOPFEN_Msk (0x1UL << RCC_APB2ENR_IOPFEN_Pos) /*!< 0x00000080 */ +#define RCC_APB2ENR_IOPFEN RCC_APB2ENR_IOPFEN_Msk /*!< I/O port F clock enable */ +#define RCC_APB2ENR_IOPGEN_Pos (8U) +#define RCC_APB2ENR_IOPGEN_Msk (0x1UL << RCC_APB2ENR_IOPGEN_Pos) /*!< 0x00000100 */ +#define RCC_APB2ENR_IOPGEN RCC_APB2ENR_IOPGEN_Msk /*!< I/O port G clock enable */ +#define RCC_APB2ENR_TIM8EN_Pos (13U) +#define RCC_APB2ENR_TIM8EN_Msk (0x1UL << RCC_APB2ENR_TIM8EN_Pos) /*!< 0x00002000 */ +#define RCC_APB2ENR_TIM8EN RCC_APB2ENR_TIM8EN_Msk /*!< TIM8 Timer clock enable */ +#define RCC_APB2ENR_ADC3EN_Pos (15U) +#define RCC_APB2ENR_ADC3EN_Msk (0x1UL << RCC_APB2ENR_ADC3EN_Pos) /*!< 0x00008000 */ +#define RCC_APB2ENR_ADC3EN RCC_APB2ENR_ADC3EN_Msk /*!< DMA1 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 */ + +#define RCC_APB1ENR_TIM5EN_Pos (3U) +#define RCC_APB1ENR_TIM5EN_Msk (0x1UL << RCC_APB1ENR_TIM5EN_Pos) /*!< 0x00000008 */ +#define RCC_APB1ENR_TIM5EN RCC_APB1ENR_TIM5EN_Msk /*!< Timer 5 clock enable */ +#define RCC_APB1ENR_TIM6EN_Pos (4U) +#define RCC_APB1ENR_TIM6EN_Msk (0x1UL << RCC_APB1ENR_TIM6EN_Pos) /*!< 0x00000010 */ +#define RCC_APB1ENR_TIM6EN RCC_APB1ENR_TIM6EN_Msk /*!< Timer 6 clock enable */ +#define RCC_APB1ENR_TIM7EN_Pos (5U) +#define RCC_APB1ENR_TIM7EN_Msk (0x1UL << RCC_APB1ENR_TIM7EN_Pos) /*!< 0x00000020 */ +#define RCC_APB1ENR_TIM7EN RCC_APB1ENR_TIM7EN_Msk /*!< Timer 7 clock enable */ +#define RCC_APB1ENR_SPI3EN_Pos (15U) +#define RCC_APB1ENR_SPI3EN_Msk (0x1UL << RCC_APB1ENR_SPI3EN_Pos) /*!< 0x00008000 */ +#define RCC_APB1ENR_SPI3EN RCC_APB1ENR_SPI3EN_Msk /*!< SPI 3 clock enable */ +#define RCC_APB1ENR_UART4EN_Pos (19U) +#define RCC_APB1ENR_UART4EN_Msk (0x1UL << RCC_APB1ENR_UART4EN_Pos) /*!< 0x00080000 */ +#define RCC_APB1ENR_UART4EN RCC_APB1ENR_UART4EN_Msk /*!< UART 4 clock enable */ +#define RCC_APB1ENR_UART5EN_Pos (20U) +#define RCC_APB1ENR_UART5EN_Msk (0x1UL << RCC_APB1ENR_UART5EN_Pos) /*!< 0x00100000 */ +#define RCC_APB1ENR_UART5EN RCC_APB1ENR_UART5EN_Msk /*!< UART 5 clock enable */ + + + + +#define RCC_APB1ENR_DACEN_Pos (29U) +#define RCC_APB1ENR_DACEN_Msk (0x1UL << RCC_APB1ENR_DACEN_Pos) /*!< 0x20000000 */ +#define RCC_APB1ENR_DACEN RCC_APB1ENR_DACEN_Msk /*!< DAC interface 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 */ +#define AFIO_MAPR_TIM5CH4_IREMAP_Pos (16U) +#define AFIO_MAPR_TIM5CH4_IREMAP_Msk (0x1UL << AFIO_MAPR_TIM5CH4_IREMAP_Pos) /*!< 0x00010000 */ +#define AFIO_MAPR_TIM5CH4_IREMAP AFIO_MAPR_TIM5CH4_IREMAP_Msk /*!< TIM5 Channel4 Internal Remap */ +#define AFIO_MAPR_ADC1_ETRGINJ_REMAP_Pos (17U) +#define AFIO_MAPR_ADC1_ETRGINJ_REMAP_Msk (0x1UL << AFIO_MAPR_ADC1_ETRGINJ_REMAP_Pos) /*!< 0x00020000 */ +#define AFIO_MAPR_ADC1_ETRGINJ_REMAP AFIO_MAPR_ADC1_ETRGINJ_REMAP_Msk /*!< ADC 1 External Trigger Injected Conversion remapping */ +#define AFIO_MAPR_ADC1_ETRGREG_REMAP_Pos (18U) +#define AFIO_MAPR_ADC1_ETRGREG_REMAP_Msk (0x1UL << AFIO_MAPR_ADC1_ETRGREG_REMAP_Pos) /*!< 0x00040000 */ +#define AFIO_MAPR_ADC1_ETRGREG_REMAP AFIO_MAPR_ADC1_ETRGREG_REMAP_Msk /*!< ADC 1 External Trigger Regular Conversion remapping */ +#define AFIO_MAPR_ADC2_ETRGINJ_REMAP_Pos (19U) +#define AFIO_MAPR_ADC2_ETRGINJ_REMAP_Msk (0x1UL << AFIO_MAPR_ADC2_ETRGINJ_REMAP_Pos) /*!< 0x00080000 */ +#define AFIO_MAPR_ADC2_ETRGINJ_REMAP AFIO_MAPR_ADC2_ETRGINJ_REMAP_Msk /*!< ADC 2 External Trigger Injected Conversion remapping */ +#define AFIO_MAPR_ADC2_ETRGREG_REMAP_Pos (20U) +#define AFIO_MAPR_ADC2_ETRGREG_REMAP_Msk (0x1UL << AFIO_MAPR_ADC2_ETRGREG_REMAP_Pos) /*!< 0x00100000 */ +#define AFIO_MAPR_ADC2_ETRGREG_REMAP AFIO_MAPR_ADC2_ETRGREG_REMAP_Msk /*!< ADC 2 External Trigger Regular Conversion remapping */ + +/*!< 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 ******************/ + + +#define AFIO_MAPR2_FSMC_NADV_REMAP_Pos (10U) +#define AFIO_MAPR2_FSMC_NADV_REMAP_Msk (0x1UL << AFIO_MAPR2_FSMC_NADV_REMAP_Pos) /*!< 0x00000400 */ +#define AFIO_MAPR2_FSMC_NADV_REMAP AFIO_MAPR2_FSMC_NADV_REMAP_Msk /*!< FSMC NADV remapping */ + +/******************************************************************************/ +/* */ +/* 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 */ +/******************************************************************************/ +/* */ +/* Digital to Analog Converter */ +/* */ +/******************************************************************************/ + +/******************** Bit definition for DAC_CR register ********************/ +#define DAC_CR_EN1_Pos (0U) +#define DAC_CR_EN1_Msk (0x1UL << DAC_CR_EN1_Pos) /*!< 0x00000001 */ +#define DAC_CR_EN1 DAC_CR_EN1_Msk /*!< DAC channel1 enable */ +#define DAC_CR_BOFF1_Pos (1U) +#define DAC_CR_BOFF1_Msk (0x1UL << DAC_CR_BOFF1_Pos) /*!< 0x00000002 */ +#define DAC_CR_BOFF1 DAC_CR_BOFF1_Msk /*!< DAC channel1 output buffer disable */ +#define DAC_CR_TEN1_Pos (2U) +#define DAC_CR_TEN1_Msk (0x1UL << DAC_CR_TEN1_Pos) /*!< 0x00000004 */ +#define DAC_CR_TEN1 DAC_CR_TEN1_Msk /*!< DAC channel1 Trigger enable */ + +#define DAC_CR_TSEL1_Pos (3U) +#define DAC_CR_TSEL1_Msk (0x7UL << DAC_CR_TSEL1_Pos) /*!< 0x00000038 */ +#define DAC_CR_TSEL1 DAC_CR_TSEL1_Msk /*!< TSEL1[2:0] (DAC channel1 Trigger selection) */ +#define DAC_CR_TSEL1_0 (0x1UL << DAC_CR_TSEL1_Pos) /*!< 0x00000008 */ +#define DAC_CR_TSEL1_1 (0x2UL << DAC_CR_TSEL1_Pos) /*!< 0x00000010 */ +#define DAC_CR_TSEL1_2 (0x4UL << DAC_CR_TSEL1_Pos) /*!< 0x00000020 */ + +#define DAC_CR_WAVE1_Pos (6U) +#define DAC_CR_WAVE1_Msk (0x3UL << DAC_CR_WAVE1_Pos) /*!< 0x000000C0 */ +#define DAC_CR_WAVE1 DAC_CR_WAVE1_Msk /*!< WAVE1[1:0] (DAC channel1 noise/triangle wave generation enable) */ +#define DAC_CR_WAVE1_0 (0x1UL << DAC_CR_WAVE1_Pos) /*!< 0x00000040 */ +#define DAC_CR_WAVE1_1 (0x2UL << DAC_CR_WAVE1_Pos) /*!< 0x00000080 */ + +#define DAC_CR_MAMP1_Pos (8U) +#define DAC_CR_MAMP1_Msk (0xFUL << DAC_CR_MAMP1_Pos) /*!< 0x00000F00 */ +#define DAC_CR_MAMP1 DAC_CR_MAMP1_Msk /*!< MAMP1[3:0] (DAC channel1 Mask/Amplitude selector) */ +#define DAC_CR_MAMP1_0 (0x1UL << DAC_CR_MAMP1_Pos) /*!< 0x00000100 */ +#define DAC_CR_MAMP1_1 (0x2UL << DAC_CR_MAMP1_Pos) /*!< 0x00000200 */ +#define DAC_CR_MAMP1_2 (0x4UL << DAC_CR_MAMP1_Pos) /*!< 0x00000400 */ +#define DAC_CR_MAMP1_3 (0x8UL << DAC_CR_MAMP1_Pos) /*!< 0x00000800 */ + +#define DAC_CR_DMAEN1_Pos (12U) +#define DAC_CR_DMAEN1_Msk (0x1UL << DAC_CR_DMAEN1_Pos) /*!< 0x00001000 */ +#define DAC_CR_DMAEN1 DAC_CR_DMAEN1_Msk /*!< DAC channel1 DMA enable */ +#define DAC_CR_EN2_Pos (16U) +#define DAC_CR_EN2_Msk (0x1UL << DAC_CR_EN2_Pos) /*!< 0x00010000 */ +#define DAC_CR_EN2 DAC_CR_EN2_Msk /*!< DAC channel2 enable */ +#define DAC_CR_BOFF2_Pos (17U) +#define DAC_CR_BOFF2_Msk (0x1UL << DAC_CR_BOFF2_Pos) /*!< 0x00020000 */ +#define DAC_CR_BOFF2 DAC_CR_BOFF2_Msk /*!< DAC channel2 output buffer disable */ +#define DAC_CR_TEN2_Pos (18U) +#define DAC_CR_TEN2_Msk (0x1UL << DAC_CR_TEN2_Pos) /*!< 0x00040000 */ +#define DAC_CR_TEN2 DAC_CR_TEN2_Msk /*!< DAC channel2 Trigger enable */ + +#define DAC_CR_TSEL2_Pos (19U) +#define DAC_CR_TSEL2_Msk (0x7UL << DAC_CR_TSEL2_Pos) /*!< 0x00380000 */ +#define DAC_CR_TSEL2 DAC_CR_TSEL2_Msk /*!< TSEL2[2:0] (DAC channel2 Trigger selection) */ +#define DAC_CR_TSEL2_0 (0x1UL << DAC_CR_TSEL2_Pos) /*!< 0x00080000 */ +#define DAC_CR_TSEL2_1 (0x2UL << DAC_CR_TSEL2_Pos) /*!< 0x00100000 */ +#define DAC_CR_TSEL2_2 (0x4UL << DAC_CR_TSEL2_Pos) /*!< 0x00200000 */ + +#define DAC_CR_WAVE2_Pos (22U) +#define DAC_CR_WAVE2_Msk (0x3UL << DAC_CR_WAVE2_Pos) /*!< 0x00C00000 */ +#define DAC_CR_WAVE2 DAC_CR_WAVE2_Msk /*!< WAVE2[1:0] (DAC channel2 noise/triangle wave generation enable) */ +#define DAC_CR_WAVE2_0 (0x1UL << DAC_CR_WAVE2_Pos) /*!< 0x00400000 */ +#define DAC_CR_WAVE2_1 (0x2UL << DAC_CR_WAVE2_Pos) /*!< 0x00800000 */ + +#define DAC_CR_MAMP2_Pos (24U) +#define DAC_CR_MAMP2_Msk (0xFUL << DAC_CR_MAMP2_Pos) /*!< 0x0F000000 */ +#define DAC_CR_MAMP2 DAC_CR_MAMP2_Msk /*!< MAMP2[3:0] (DAC channel2 Mask/Amplitude selector) */ +#define DAC_CR_MAMP2_0 (0x1UL << DAC_CR_MAMP2_Pos) /*!< 0x01000000 */ +#define DAC_CR_MAMP2_1 (0x2UL << DAC_CR_MAMP2_Pos) /*!< 0x02000000 */ +#define DAC_CR_MAMP2_2 (0x4UL << DAC_CR_MAMP2_Pos) /*!< 0x04000000 */ +#define DAC_CR_MAMP2_3 (0x8UL << DAC_CR_MAMP2_Pos) /*!< 0x08000000 */ + +#define DAC_CR_DMAEN2_Pos (28U) +#define DAC_CR_DMAEN2_Msk (0x1UL << DAC_CR_DMAEN2_Pos) /*!< 0x10000000 */ +#define DAC_CR_DMAEN2 DAC_CR_DMAEN2_Msk /*!< DAC channel2 DMA enabled */ + + +/***************** Bit definition for DAC_SWTRIGR register ******************/ +#define DAC_SWTRIGR_SWTRIG1_Pos (0U) +#define DAC_SWTRIGR_SWTRIG1_Msk (0x1UL << DAC_SWTRIGR_SWTRIG1_Pos) /*!< 0x00000001 */ +#define DAC_SWTRIGR_SWTRIG1 DAC_SWTRIGR_SWTRIG1_Msk /*!< DAC channel1 software trigger */ +#define DAC_SWTRIGR_SWTRIG2_Pos (1U) +#define DAC_SWTRIGR_SWTRIG2_Msk (0x1UL << DAC_SWTRIGR_SWTRIG2_Pos) /*!< 0x00000002 */ +#define DAC_SWTRIGR_SWTRIG2 DAC_SWTRIGR_SWTRIG2_Msk /*!< DAC channel2 software trigger */ + +/***************** Bit definition for DAC_DHR12R1 register ******************/ +#define DAC_DHR12R1_DACC1DHR_Pos (0U) +#define DAC_DHR12R1_DACC1DHR_Msk (0xFFFUL << DAC_DHR12R1_DACC1DHR_Pos) /*!< 0x00000FFF */ +#define DAC_DHR12R1_DACC1DHR DAC_DHR12R1_DACC1DHR_Msk /*!< DAC channel1 12-bit Right aligned data */ + +/***************** Bit definition for DAC_DHR12L1 register ******************/ +#define DAC_DHR12L1_DACC1DHR_Pos (4U) +#define DAC_DHR12L1_DACC1DHR_Msk (0xFFFUL << DAC_DHR12L1_DACC1DHR_Pos) /*!< 0x0000FFF0 */ +#define DAC_DHR12L1_DACC1DHR DAC_DHR12L1_DACC1DHR_Msk /*!< DAC channel1 12-bit Left aligned data */ + +/****************** Bit definition for DAC_DHR8R1 register ******************/ +#define DAC_DHR8R1_DACC1DHR_Pos (0U) +#define DAC_DHR8R1_DACC1DHR_Msk (0xFFUL << DAC_DHR8R1_DACC1DHR_Pos) /*!< 0x000000FF */ +#define DAC_DHR8R1_DACC1DHR DAC_DHR8R1_DACC1DHR_Msk /*!< DAC channel1 8-bit Right aligned data */ + +/***************** Bit definition for DAC_DHR12R2 register ******************/ +#define DAC_DHR12R2_DACC2DHR_Pos (0U) +#define DAC_DHR12R2_DACC2DHR_Msk (0xFFFUL << DAC_DHR12R2_DACC2DHR_Pos) /*!< 0x00000FFF */ +#define DAC_DHR12R2_DACC2DHR DAC_DHR12R2_DACC2DHR_Msk /*!< DAC channel2 12-bit Right aligned data */ + +/***************** Bit definition for DAC_DHR12L2 register ******************/ +#define DAC_DHR12L2_DACC2DHR_Pos (4U) +#define DAC_DHR12L2_DACC2DHR_Msk (0xFFFUL << DAC_DHR12L2_DACC2DHR_Pos) /*!< 0x0000FFF0 */ +#define DAC_DHR12L2_DACC2DHR DAC_DHR12L2_DACC2DHR_Msk /*!< DAC channel2 12-bit Left aligned data */ + +/****************** Bit definition for DAC_DHR8R2 register ******************/ +#define DAC_DHR8R2_DACC2DHR_Pos (0U) +#define DAC_DHR8R2_DACC2DHR_Msk (0xFFUL << DAC_DHR8R2_DACC2DHR_Pos) /*!< 0x000000FF */ +#define DAC_DHR8R2_DACC2DHR DAC_DHR8R2_DACC2DHR_Msk /*!< DAC channel2 8-bit Right aligned data */ + +/***************** Bit definition for DAC_DHR12RD register ******************/ +#define DAC_DHR12RD_DACC1DHR_Pos (0U) +#define DAC_DHR12RD_DACC1DHR_Msk (0xFFFUL << DAC_DHR12RD_DACC1DHR_Pos) /*!< 0x00000FFF */ +#define DAC_DHR12RD_DACC1DHR DAC_DHR12RD_DACC1DHR_Msk /*!< DAC channel1 12-bit Right aligned data */ +#define DAC_DHR12RD_DACC2DHR_Pos (16U) +#define DAC_DHR12RD_DACC2DHR_Msk (0xFFFUL << DAC_DHR12RD_DACC2DHR_Pos) /*!< 0x0FFF0000 */ +#define DAC_DHR12RD_DACC2DHR DAC_DHR12RD_DACC2DHR_Msk /*!< DAC channel2 12-bit Right aligned data */ + +/***************** Bit definition for DAC_DHR12LD register ******************/ +#define DAC_DHR12LD_DACC1DHR_Pos (4U) +#define DAC_DHR12LD_DACC1DHR_Msk (0xFFFUL << DAC_DHR12LD_DACC1DHR_Pos) /*!< 0x0000FFF0 */ +#define DAC_DHR12LD_DACC1DHR DAC_DHR12LD_DACC1DHR_Msk /*!< DAC channel1 12-bit Left aligned data */ +#define DAC_DHR12LD_DACC2DHR_Pos (20U) +#define DAC_DHR12LD_DACC2DHR_Msk (0xFFFUL << DAC_DHR12LD_DACC2DHR_Pos) /*!< 0xFFF00000 */ +#define DAC_DHR12LD_DACC2DHR DAC_DHR12LD_DACC2DHR_Msk /*!< DAC channel2 12-bit Left aligned data */ + +/****************** Bit definition for DAC_DHR8RD register ******************/ +#define DAC_DHR8RD_DACC1DHR_Pos (0U) +#define DAC_DHR8RD_DACC1DHR_Msk (0xFFUL << DAC_DHR8RD_DACC1DHR_Pos) /*!< 0x000000FF */ +#define DAC_DHR8RD_DACC1DHR DAC_DHR8RD_DACC1DHR_Msk /*!< DAC channel1 8-bit Right aligned data */ +#define DAC_DHR8RD_DACC2DHR_Pos (8U) +#define DAC_DHR8RD_DACC2DHR_Msk (0xFFUL << DAC_DHR8RD_DACC2DHR_Pos) /*!< 0x0000FF00 */ +#define DAC_DHR8RD_DACC2DHR DAC_DHR8RD_DACC2DHR_Msk /*!< DAC channel2 8-bit Right aligned data */ + +/******************* Bit definition for DAC_DOR1 register *******************/ +#define DAC_DOR1_DACC1DOR_Pos (0U) +#define DAC_DOR1_DACC1DOR_Msk (0xFFFUL << DAC_DOR1_DACC1DOR_Pos) /*!< 0x00000FFF */ +#define DAC_DOR1_DACC1DOR DAC_DOR1_DACC1DOR_Msk /*!< DAC channel1 data output */ + +/******************* Bit definition for DAC_DOR2 register *******************/ +#define DAC_DOR2_DACC2DOR_Pos (0U) +#define DAC_DOR2_DACC2DOR_Msk (0xFFFUL << DAC_DOR2_DACC2DOR_Pos) /*!< 0x00000FFF */ +#define DAC_DOR2_DACC2DOR DAC_DOR2_DACC2DOR_Msk /*!< DAC channel2 data output */ + + + +/*****************************************************************************/ +/* */ +/* 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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 HqqzSCWnUDk literal 0 HcmV?d00001 diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.su b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.su new file mode 100644 index 0000000..e69de29 diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d new file mode 100644 index 0000000..121e113 --- /dev/null +++ b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d @@ -0,0 +1,68 @@ +Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o: \ + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o new file mode 100644 index 0000000000000000000000000000000000000000..63d602b3fce822cdb338a835b056e2c5ba10345e GIT binary patch literal 772460 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�EuP;ge|^E=2n)t0{?j90y*V`B-bjR#Z(+m|)+cTF`>uERQvTBDLxGSoBDw|(b4ci3F zYpQ;OV40=L&xI~Wsh<@yM^n<^{)J<~0f z;T=e!>cMef-d5pnr15&I&VGXBT@||omc^<&cR=o`#?$wAUzJFUiifI-?;w1n%A$4L zW0jB&43(%J+(c8Js7}%Wf>KrCPY^y+job<7=PGXlxH8q4dx-Et)h7!P%2ivZLRg_X zIT+BDs%G>At5l)%W>u>^=Ye~znza|)8`YV#`H1|POOJjJg z%1XV)M^!n!S)WxldSv!R)%iUF)v3l-z_MPYX%1n7>Q+0np;2`q5n#L2y?g;A656Dz93M&lgj4D)PoiRB}nZ@XAe)P-wXtFh&uNY z975H(LqNjRwKNetsVZ^?qMyVHX2Z>hi zr%7pynpqFOSoH!LpwFmJnZd=Wf1L;2S#@dzxO3``Lg?bv8>Rv!LH#}lBvGwjjIig` zvqqrpN$O`W5jI)9KNDPvdR|{}7t|}Lm%6APOg~4e+T06ZY3jT$AnEGeb|4w*=z%b~ zq(1QoP03VmX$!y0>STJXSJbCzUUyY3r3&jc^$R5&veZBKf=Ra8;SsnTwbu_wB3HeK z7QNTip^os&Q;(ssF<<@a8OROwv`&C7P)E9e+*J3cSE~?cZs=>WdGafK`tq!27-y3xxjR7_4Wwh=1R_%Bm+&lF_+D&?|j#v-N z59*q+AhqfjdtmZW{oo*UpVSr$Fh8p|bpiK9?M0LBI`tj;j_TF@kZs@X;$rp&Q4=Pg=>3_f~rjpnmJTbchr1m0|zHf5v^YKYL+~Q$v#bZ4g&4h zjI;&kthqs@qyw5OFX88+8NV5pu9|;n=I^HIK|iCr=3jc}4{APl0(VHW!UiUXH3#W^ z@z7K@ht5;8vIW4rGy|H$&s%ekmbphXt$qOKqjA^?ov-E)?Z5kJ-gbwBzvkg1Z~+?M ziOA)s<})3A3)Jix0>5LLG#b@{G=HrD3D)$XW#Dm*S8pVELi5B4m?4@r#UP=Y0aS$x z)9gJ4%#)h&m*Ehu*+knAr!-Eqb9Y)Z9Dlwcj?i=;i9nH>Rk1LM(m2!RP_*VM9j%Sg zSVn-vYP@K`JfjH;0*TWMS%{R*YF=dk?3|`Q4L$LiwKN+|&@3-Uyz`paQjjD~*Uuoy znr**Jki{} z4(_SOwhOpYP0d%BJkvPSF6nd4yP@F9G{&~zUTA8X0p+E}SczOJH9eg`sx(hWBZ+E_ zA^>^5(j;vF*lW$Ce2_Pq;TK_2qd84a;;qJC0+V-|t@UW;d(E5~;67-=1_8QOQ%6hg zkD7*`!F|$6C2e~EPWX1yFaiBPBOQ~}_pnYo#;-Ve43}CL>Ec)v`H*H>DSh{QLsTg-q+rI`5hqReVKsl`4 zQx9klt(htkp4wzJqI+p4y@QFjb}+3sk7(nYYO2}>8tQzt?PwMoppB!~=BPGp4@?5J z5e&#N?TJ$O1!;HxiRi)Fzih!B*Dj`GA}6$&Tj3s}U6g?cp;|SKBw^a$X$(K9eMSRH zxb^|1bV?gRQ(2h|+7pdJ%N9m)qZ!-WEt*xeYT#WYNY?#Dq`z%IEXS5-e z0E^S6eSyhYZ6)pSpVKB3fW&L_jc`cNj-ZXIL@h%f<#}!T73h+*2eT12S^KmbT9l&w zV<9XrXpd1b{GxW&Z9u1LS9E|bP1`{Y%XF=a94Hyui;dteY4a&UrgjbOeq7d8pj#AQ z(Jq*Xbgyb_vq7$DgLznHY1h93ShjXm2^?~?{b(thtL-|z&I|;&a zt%MHKRA?vAQNl{?3pzeqrF}({sA}!CeF*eQTTzFwueDofVf04(p3Z>OXzQsC_ExK= z;~wv{{kq4(v-tPH!#9x8KL_v4_u_KJ?-&D=@x2X8Lj(e2DljAIRlc2)itA9>=~WK z8QfW&?j|Cf)3J2!GG3QVTQCW_Rh^(q)UBc4Jz01CHlR~ zZVR0ZNYjnDfTpDDWV!IWq}#a*x=dXgT321xW$EB>MR(u?$W`4RMKHhUgh2Oow?YB-K=(7fXAgC%b8vs8n@#%`k9DpzODNHq=pjGR6+6P= zsqT-FaCoNUR)Rd&%^nAbGF`tpFnOU1T?oIIy7tr|RqBjO(S|DBD;fN%b*+0t_e$qS z+v2Zvd;S9S8{LvU5Z35?Y0>mfxBL`P-s`SWKlnkH{wstZb$;DJKI!sq1Ld=B>;-UN zbS<-hQm0!>6YHPF5)F1z$yX-Cse?->HlUcWv7m=5|+F#VdAdW z(I(G9{gr3P?2z7{mSu9D*3+TM`sWcn)*88?b!+iDbGzR$T`?`Yj z*B8(+p8&n)08EbR+fboAP=Dxe_yy_H{{UF9UUL${SZ zdebodD>`&=Qh%9tD#G=H>A3DG{aGvgqV&J}Ll~`pH3bo3^sOg>#OlQw_?^+uN(V}u zz9&7%v-$yaQ0kn1@DrpIuRpLFBtc(KCCfzpbQ|PyUY|{C?G(K)O*Jp*hv&oOqTY_a zoK*exAAp&rFHeImU0*>9hYY>vd-z?_AE7h!nfm(U;4bSE)`MKpPo!`2s$Ovm+%4x+>qT?H-P8ZE1?0YdH~voo;s<)S{@@DNBUV*WPYsg)EZogej8PLpXkqN5&fw?*9W>%y}=$_nLgzS++XNlJcG$g{iIN! zlgQ6Spi1vW^RsIG@2g<>O79y6?zKLF>g8|r_20p-MqfY&V&Cc~ zw1@jU{ZJa9-|PPsAc+t9ie6}6t^Q*L+&}82bR^)De##}F)alQyhDp7C6cuF}^v<+3 z^;N%)PEt1NA6^95E`u#iL+uQa&G4}74N^yN4u-OqKyfrw6u`vEpv9p`@ovMFR0#JN z)Uy$Nui+lmto9kAz6bPvL-pU_oDJ!%0e!$wq=wMNup$^Kxf@zgRqUYQS$jYqGIX1X zK!**1Aj~Cp5eb*>)gD3|*;|>tonVMG{{_=MWG-gJBv{I%>$F zV-10Z#D5?>X1GCzWrGY$X%jivkW2l`al@lo(48=>4Mn^V!<9wgLJb$613Jv$lZ5Ce z4SIW!a6{C22u~TJY2k3%(1P~WA`FY^R9U1!PvzPuL#tA_M;lydb{J#$i8guS4EK(~ z@~mM%9LPDtpIt!W4fel7mta^(=_VQ;1R}zDLy-UpCK+}Pg-No(ts_uU3_G5qeHRR) zXn*XYp-=#lYS=~-tTcn=3P`%4-)=3{AOfnD-X$#fD(oj=g6{J^}8bp%bO_$dEo3 z(lf&^v_5)n=+qi0Wro@Wt&M=i) z^xm*`2~a*5M$Lmmt>JbN9>GULj2U2`461&J{@HMyHt@a}IGQij8AejkqTb+G4_$*H zie~A%jJNK=&(64r7C-jJ$OsSzqwoTvI~s4$;>XF@o4T3Z#$g&*?lJbK)%9LuJE~9Y zGY$!Y$$sN#+Iw*}w%-AAz<884QeBL9yb#va=q`evn{mTq=-iF618_fRymB8A4jIFm zb}Ed`Xy4w;_$3Jr-o_6!2|i*B8wk$F_-8a6e2qWQ27;fF`3-*l#-()HJixfR0^Ct! z$xfIA8vkC1T#gy}})a5(K(q40;T%$XN3eOzs*dFM(gNF^o2V?imaFBG3CqG3^&WFiL4M^w1c#8YYj7 zJ&(iWvC;e#c|J9!(Bie!=y?pnXU3r~K%N_yY=B>x(UxWqFN~!XaDQpk(n+UsqqYM~ zDvaCy1gSJmE=2NG#;P#@t2Qog0pTm-g*;%sHrk$p?v3%55V{&;=X{{NHEyL*=AAKp z6}b1t%OjEeN8=RQ9r$Ft{0|&H8-JY%lP^a06a4Co@mb*NjinAC4aTewNa?Gw+d^12 z8u1qt_*P6spP;id1#g4S-qf4ASO-&8A}}3IhF2g?rmHl6*=_Rs1%7)>)+Zo)O)I=0 z+-Djy0VW4bJ*ba#F%6;5-qqBd{&wEYltX`+;chZfJ^7&NOLIK=L#FHNKn|OvKf%(& z3i@qttddc{-$kw1*0AVWxPho}V;TdHsc4}RZF**bFvi5cK}xZvzi9=1#-terVVr5{ zcnA|s-Ty>{^QH&%M;J+_e&-SBlIge4u*@{g8Vi)mrcip>ub4K|*2Yzneml5prW9IY zWSJ&Vp*-7^ECtCiCDU=^TvN6iEU%l2E(1Exv|>0c^G%;)=q)!z(JZgPR67W|o2H&S zKyH~DX=+qxlF;_dZPN^Tckh@kECWiB$&Ka=cTL^rBf(41SMIed&)IOH6KGVfn=L(jJyiO+Hj%Ej1-Qgz%ZkArKDFO|!g! zS!ODw3eOAE4${3e-J>71+%%v1i3-y^I>=XP`r}uiRGAW&z^~dg#TyNKWokuL>DQ*_ z+2G!od~<+OWAb_i%(tcx>XYA@(q4gkZ(8v$P(GL#7ogOdw$k|i(e!aFbe~L)&!GEk z>h&YC{$grLBUhcN)l~%gYT8IMxkl6BNCu$_oq6sb@Uu7H_k@Xq`3h~PJDQtQ z7wcr6as)~2HeX(kKzqz@=+CM4nz!tMZlC!ht@!qvldl8J*{o>=_XFnT`=N6&2V_F$ zYL59HU~cAL+Ct}U9wtYigXY8O(0Q06R)Kh$6E48P%RDg!mfmK5HWEBywtPZZAM?3g zF!41{ZV3}VbFwRR{^k@bk_a&GrI+ETc|O%q0?p-gEc2Lo%q>_3nemrT_#VswRNXpm zo;DrA6XwfL;T~e1Kt=mdbD$U~Vdj^Ep*v}Ip-t;>^JZE}oig9tg6OBs%Laf%m>*pQ zi8Oy53co1xUq1jd+I%SmB*uKd8kn)>KWSxi#w?Y?J8}na9$|{K71zUjLp{c_cGe@(TI`i6P5Z0Uh{zRS)=FYkB z`)dA?766TA5&p_hyvq_i4GwmemGn*9TMl)F&cWi{v_i4;r{b8Cr3IaI+HEPKuXvB; zv^P-pT7IO>p?#L$`+?hU8T2DioGk`=Z4Ow}Q^C1dextRotEKTdOx!G|%fY!@+J1rG zLCeyu;0{^#(TwG=<(5Apcv#LI1@W{*Q(4)|vVf|L-j;&{;BdrJJRO<&SORHM>T4NM z3ll#}4sA8~TPhnt0xkRLwK-;)VTEOoMW6z7u;rHpz&vjGNLz#_EN)b33$cu*+Eb`y z740*JS>~RB-$~0IIu{gf!PW%6DvOXNo~JGU-T;ZP9GwGQq-E?ukSNRg4gia`1WX5s zvA9-(#9Cap0`sheivT%i(a>KN#apuT5h20yHVa&$r4^Ng&Rb?|N5hgVZNG(fSF^-7!8tZxy{4xx+VM=O!6#usISYn z=xNZnVY#&wqyU=&AU7?s^gZ0N45u?7g%)`R9Bx|*cyMmR+R+&I&?0FKhewvx0wnm@(q=d^E3q(Chkjxyr5%8$7WHiC zN-f=2gFLgGngNvOmd7%nlv(=GR^|&!ms&Wyv~;2AdAa2Xy?hmxZqbNPX&HVEepQwt z>gQiurnZE`8%ug82x}~hXy5Ry#by{B-dWbPh3>s2n0B^4SQ;k6q1IAGRh5sH0Qx^8 zezN>VMW@e}PkX_Av6yV}bn7h3CW6#k8cRSLEcd9g_tjE(0;JKh^A5-^Ydmdl+gW$} zBA%l)fM)4V)}8Oc?Y90wfBU${s;6!Lz1A%>=i6uPLdDJf)?2ja=4`Fpi(C#^x6qC_injp9jAP>j7GTM_MCyLKkJdE&z$P{zcnJG1l*BZ!p$s9}nRfs}~j6W`(OMA??!47)BAS_G{e?C?ldZ1q@Jq4A(ov;U zYblKuX;$R`n50`7DjjE7^Vfj8WF1Ha+Dz*k(p|PbB;6J3uhf-XwKjea?wU2@2_j@! zeGkGi+sbVP$+3FP2g$V#9S?Hdy7@IM^Q`!PU*M~q4glGA0AoL zVqy8%x^4g>lvuwT4TmRI?=2uttscAKP-1*lh@YqG%b8%olHjwYOD@a zN_uNed;#cp)(#2C?7ekPPndkL?*9T^t##r?2tQg|KLN@oYbO10pRJc3!Q_keGZnJx zte=a()m!h8%VvI zlkHX-4R_m`Hh|k>dy+nqy|&!~V6x9P#T(py+qcvOIom1=kuO6o2=Y^^IH^tAP(BLQBvS#(In+x95U2ani(xCKie+p?Z; z_qBDQx|^Tv*#{v0w&!AzOMq>Z4J?n^_8JDiK-=!k5$~Ao4_m#KdG8>j}SYQQ=3aZ}=84Z+w7BRM70`D>-6&2%C#f;C-0F*G6(OO>0IF$w~ zWsGe!YAx})BvD{#o zXlicN1hJmsO^?kj#+#kM8W_E_05&qt`~ZqZ%y{6QRJl%9jaIAiPpY(8YvJ_m&f z#_Tyz-^qMi39yU#d@pz|%ull6-IdAw6MAmU+AqL!XND_)c`%=&4P`eok_xds%plq+ z_cAx#2DXoR^b?5eXTJUyumeo|4KVCS%r|Kq>%|t!Vh=I> zXo`QB$#TNj5#}Zw3~_{ESlDSmt#vU~$Zy76c#9+(rG}1ZFH9$4z9e zqMkq!v*B4-NoF?Q!$qHFzA+!*43nJ*^|Q>v?T}1iW=26Tl_{fjj=7gM%zS3S_i$UlOtJwKGV|0>FJeAR!{E!zg%=@G%)H|X^%CYUH0CU2 zUZ$~588g5L$#UjTv|Cg#KX65ySC|do0lUhSAB4y?rY#jBl}zDFuyTVLxeX%K%#-vb zYYnr4hBdX!&*?P%P3HfKL9AmIQN>WtocS{(Z!v$~1(62kk5w?%$ZTr^uZbD&hg)!) zd2uNmH8U^jA=$z#q#ocM=12exgIN#-VkfigE%@tV22iuH zn;EtZdOggaDVgnM=24R0&-{x{S>9!iQA_9^vzhYp0p^Az@CKRRQcGconJxrzn0b)i z;s?x6Mqqk`S(^xKl&LBMHqM+veZ_~&dz8LTFnvOy@Q6880&J35+KnJ~v5xWpTv$Og zqIYH0(h*+|*2?GMVK?jfc3^v0C$>OuKP#{wmvVqLUJ7+j))+m)2U%-qqT<8)j%GxM zSibb9yMkEnR6!(^_4P3*gt2mXP!DG{Q!6)uWi|ptvNm=?*AiDCp;!dm$_6iQinv?iCaHZA~G&XRr%UIi;!56LU6(@z1r%6ilUk!!3lPnfP` zWs+nSD~3+rTxS)yK(d<+7RK6q^`ehrB2toAuD-NE|)Io#_`*7F}g zq>J@b6GG}{eM85M`&hGA1N5^R|AEK=D~CFJgRGq^5ZQfJP7HWMtk!>FY?$Rq9o+{k zCXHD}SZjm`X_OUCr?JOaA*0Y6X9;*vc*sh~hU5gRm+FT{taoWhH_7t&4zcWHr#pb{ zVzUfTcVVYmfVr}7=mFf>PpkvcgWY)vlDpZj&=-_@*w%J{z3e3`AhM6WidrTI*bJ)5 zJ=s%f|MOxu(5iTlot*-=KI}Bg#1FBnsLOGf9ZF@=5%z@;5PjJrv_KqXyV1DIpS`CU zA_45reGum{_A+{z1KFP@!1Qr;^+tdob^~=TgW2>)GjV znaHmG4#Xt(Z=XXwnVm)T-x>A?G)F(nKGOqY3cG^pj#T!nt+*3uY`-1^agO~LeW#z! z9=#9j0^5-VV;O9}Wxz7o6B0;fu~job%w|8NzS|}CYI>b=*yS`|$z_+10n1~D($1XE ze(o?73fLXA!xpiBiba5z*<8vai`gwppkBg$?>#C=n?w~ zs%$3NTh2pd7v~3>OuBHAhk&_q@;?RU#<^PrWA2;*YOQ*3*36_5=I;PQ5-NaxTS#*Us6Z2Cswj6Rm@toF-a~yEwzNRCaS#ErPKgPV;%_ z^>V&F4)1q40hF-b0=lnhwA`dxVR0EsfjKst3BMxUDj7@TGS3+SY_t6``T)2##kaXp?|ChmY z7tj$dcW$2<{yexz5#a6SmQkl|5BE9h0q*6#>I<9uxyqB^9pJjs58%l?77wBq_lyC0 z-rRLGaX85BcosY#F2f(*4{;yTHh6?<8v@Ul%k)FIe%zz9uN>tHeula~cgj1k8NjvD zQ1=)&jdGhnZZz$pLEJ^lVI`RR0u{X>+*PNb7s`!#6?Z9&>v9uVICtqbs7G*@Q)?iS zJ3j-wlU&cgVeAxl51sUl=4R1v6vO@a7!+c;-&181$F0tTUOd;EW^M^w{X;lP;(Ajr zJ()Z7JFek0cQ^e3x-;CxhoEqlYo(<*g?l^)R#LeU&w`i6O{TZ;Ja^_&=%sT#X-ac} z`yN$b8QhP^Z6^0V9m&b!=D!MJHh1MWP`JqbgO1i3cqn7 z$es5%JlyAorNhb)H=Vj1!`$^hL-GOFLfPRcSLg$gF|L(r?Qw1l-RpTxs(KFc?$dg9n0JCIwdHRns%Ho#(k_K=J~w;V%#~ctcbrXYvm2fMga=xfmduS5ITBOT6!{!dMP(Q9ZC+ z-uiS%=J7fo!e2h`Je_VY;9Z}C+f&H0;i7jgTzi?V#nNl(%*ipp5qd zy;bGB%VEGOcvJs{`W4=$Nl0GhJw_|vHQuEfh*a|CZUU&{t))X$H+Y{?XRn%f|7Uop z;RRoYWG%1sEOHU^>7<_O~Jq#d0$cIxrsMg0&ts`M>$FhFZUVT zf;+tPuYlOf+bIRs#xs8mUOR6YWltTv04j((d2Q5S=;nn};n%|p@`a;b9>WW!@A2|I zpgzFMeidMl*PIQ7`@Co>lZJSo9*5pAZ!Wz#qrBwVxSwOZU+9@1=ar?w$|K&B)I^x% z`8GpjC%=~qo-2RgX_$87zo`Mwoqz8rczgJ#*CD{Y{8&GD*vG$g14K{$QZuZ0@!z9; z#hV}Y8n8qB|D_|&!~BF9P(Q*yME$d){H63W`tuhB!b1RGcnnsK@s-C02)>1yN0Iy+&ETEnd%Xp4ivJUx4UOi1M>|Oj zKj$5IkL4#^1{TNXEeDp!ze~Ak5`Xy#5R>^qO#o;4mDGPp;S1g1J(a(KI(rxSTYrP( zCH^NJaFoM;NM%bdzm@ifJpMXrVCM5pYrreu`^tb7@(<9;Uc_$>2Dr?B^I3pmen$Wl zO8CmZ0ZRE5R8*AlKRf}`<$V1`xV^$p?f~y9pG_Y{T;p%2EwYlovJpX4@n6XWc7y-> zYKTztbWx#$Rz4dgJ^fl$1W?|F#*%Civff1ocP!4vKn`ua<(iQ?P}Gbh`wxRHwQK zjK=|71sr-9+yp6Bh`0-OQ%&L_*g>oJZb1W8FM9;H=-u2am`lIW0Rf{OlAeO#uR!z? zJTnKtTkxtE6b=f09|F%uz^s7H!-CVabR7|-y#k)EARhPrDL=s;%At=6Is^dzf;^hJ z9TRl!1uszWr8})(I~XB&j^43I zLH=AwMhU`c)OS+wl>yi(!S7!19xX7?4iqEcU4&$uz~v`ci5GlxAN~>qE$@MsDA>3V zAW86=2&R(-1C-C76=?gRo+9w4uLV*C(~5zm31TCFofBMn8&=K>{@o8OU0_IpzY78n zIw6%IaHk_AnS!NXKp{(TBNM!ALGn+y%!>lS7ARa2TrdIT2sZu!kzB!Rd!djgc%cYb zz98to0}z732hb}NEPD^J6bVYGnR8hn{sf>{kY5k=62S{k1C$C9%iy+5@Y*JLC>M+$ z2eCrHq;dKc!HhoGyeb&@16HmH&eAGXDR8cZ=_7uhCoQ0ezm}74M2_H z!$pv+6=d}S+!Q1=!b6>)jb<?Obhw)xQI@3%aQA>kwp31Lzb?zJ@F660D><*e$rS39?J`{7UBQb~_umsN{uS7OAn1R%zCpnus(S7VqIA$365OHhG=>E!t3Z4p zh!6uC5&Zo>cpnwG(+@W$i0FjmxInIf$V0)?Rzy7^U>^bYNbnM!Z=DoK=0b0$aDFs+ zyM%?*BXbd+q(#+L_*e+ybQ5M%HQ_G&+8-hw!q2GxvR7Cq2iPY(PkYCH;lfgg91v#F zVKz^pFblIOzcKkg)z2m_97LZN_CD5xz{PpnQe@I{-aD z;k6l1I4ayhGhu&WAGLh~gv}x-9207HLOoCzB!R+l;S~CDf`mR9PzV;TSAZBIEWQMh zP~mEN`y+&#tk8=T&Zg}CgfM#$Hlu`TW<-5b=y@5uXyIiG6k>$dCOC=}KJ^{2IHB<( zt}kB5qUSR~xT*!jB;muo@Q^ID1VR0@@Mr3DpAp_2fyh~5Fn#isBK+|#JfsQF&jazC z&_*XM&I>&c!t@2rhb%7odc5MYJy zZ$7Xq!XLK4=2fBZ6cDcq^~JDxLl_YWVztoE22dmP?uKNoa4MOu6Z%tIvR>F&1k<;K zizlGhAY51iy++~UOc0xdFZ`FB2orw+)*}3nS`l}ILGQy@t5AFn>TSYw`re{l_)G)T zJB9PRA<`urR)E+oRM2Ji2tS?z&@23yjuG|=U)Tn{e&G|#Au=HB_JP8n@CZ%k?h9}2 zg7+ceT?=@_Ld{lSBf`U_0HeZ-i2!55zv#Ce7p_=?OL-{VPzW#~lu?2;Dg1?A(Ve0{ z==I$t;#m-qi)aRQ_FP4+)B$l5jme?zA@Zj8VYldGYCh}{SqflfpNKDx zdbi;&d5W@V4&)`;PCwN_k;D@`AJH6IM2bH79FiwQ z&r@a`C6X&<}6!aRvO_AUl zcy*$~RDRTp=1>RnmdFtfV-2F^lx{VOR#1uGB)V7);%(9TOei#quF|ZaMfBz$(7PjA z{thHtMa&l1Y!huKEA65oPhcIQzCRIQr|9r1Twj;yt4UzJqHd}_`$X##VXR+tieBFV zQT~4L21O@c2l2k>S86Li5Dn00fFq)N^q1g9MTuK@|n>F~gAaXF<9d&G0UKoI-ICtDHV0r8)-g?Nf3l%^dNe?}FN zkND*T=p7QD^MZ)4IOAhre&XnL;2jmu*aQ#$;toow0>nRSabJ#!@6Losp!n@CK|C(r zNQrfj_zgPJ5iI7jU?oHxOvk3e#IZ_X;o?7^1{NV+NQVa^#pU$Eo)EX$5X(vNzp)7S zl(>?Xu4wV!^mxaJ=PiQGSaDu5cyZznvcZcNzjYs2g81G&s3(e@)GA97uiJ`{lEu;V z2Amc@M}^-Rv4C#fS+Rpmr-=A+|aIGQ}T# z0+1zMT?;GO;tw-`T@)Jz5d0-^D1FnEBOX`=M|t8uDEZ14|NI25p+Fo#N8$>_pVOva zB%b^f*k$p)L0BmkFW3ml67lEsPM3=>({!go{0^lmSHzwtVXRjC;!EJ&6c<+k)QL~N z4ZV8tRwpEHi5YY{r9u4Xe{F1W#cAj@iOb)D$Zc_EIIuh7->DhiDz?xmp*HbF3aMTE zE)DEE#MMh+rBkfEfgrlXKi`LkZgC)eVb~)cr7v=N#c>~i*C!531Fv8FJndt5#p_yu z-4ov_#N8bbPoq;UgW~r#gLhx7{BMdc4xR&SM7)*~!BKIP2-ujogZkbR;yv@=;gR?> zwP+^A7m|UwNCqMy;wsV8K-*2S>m&RQyCpABb90YmCY3^aCBKyc9FVM)LDEz5^leCb zNxEVId?X&e0EZ;|5}z>Z3a=D>=-q#zK)K*?Xr0gg-l`U4jhB-t7d zEJ{*S3vf~*&ILFn`QUMYScxa)C~=YnbVK4L3n>LikVKl`C{Z%|XJAQ^tMRaMMskKc zoRxUJ1dt->pa=S#B!IeU=OuqoN|i2IAfI^MLm>m)IGkgS)?p(L?UQb}E$ zCdu_o5N}JuI{}&{Q=$P{Bp&qucO)-RU$|AWlMXz!N&KmO+Ai^@B)>y)?j7*DB`;79 zsYi00p50!FYX?A|WF{Xsq+jAa3UF8APQ}(eNd^!81||Ol1G_K5A9=<8E=i(6$FOAK z8ASa+a(f;`#v~ydKpdBR_XH#-BR=sN2AEk$OA{@2=9nsrq!2z9@t- zPbpIl5ijW_9^86M-=#y02c@4;d*4Sog=W`>q+N6b?}+rTcL02){8=#OC;fv;p`+4^ zp9Axkj>SOlm^6Xf8-db$eZY=O$F?A{AnC8oa1<=9S^#3Gw3v;^!lWuHTf(KjWxyh& zHhK*srQcE+aYE`#c|nx4GZMU$(xr6D>y)&(9w1tJej$i4(sc3=D-Bo)Vx07NE{O5c zaB2x9NUyN~5~Z=!$w-pUFhep~`td&?o|ewq4&oW`AB>NXInLE0VtJ3*KevfCRi^>AU;jwnSP}f@?38@{8cF zOj<|_Zn^Y_g#cHiIa{G{Rhk$Fk!#W?Pryp0^w|yIRY|w@LgBi!Y!u*z^iS$YR7?M+ zT)0MhG6a&f(qdZOZc1n3ly=Z*!U^dt6^M_do!ek~Qab+tcspe}4)k`(+C0H?mF2Dk(M@(_4@BH$ z$LZ1ckhxJ;bGK{})j4})x@W-KD?3adqVJbopdIgktS=70Q|96c?_RP1`Xg7~vW4`D z9+c(Zhn|mYf<|G7WD9zrepvRj1U8Sze(4A1EBomhB#+8Y9)O6y>~qS30%UW(f|X;k z9qqsZWeGIQKQ3ENJ3^4GS_GRRvi2~z4V7)#4l7}@B|T6Gmj&d57a?;r1B;Rc%>p&$ zA#z>z4SmsnLnfwlq*}K6aYR-lrGkOXRuNy%eBCJz3g`hh__@8`bN4z z_WN|)mqyteYr$)hDUX16TjrSw56!YQFGHk7cAr|~cVy>Z1Fu!KEE2pn*;p|^r)=4; z@ZKf+p#uK8W!GrJ-y>5}`?Oc4{~e%DwlM&D{jw=8!0yVvcY(2cvfceqACN`801tz* zuit^lknER#fep*Pr7G)zOs9L(f&7L(OnE`OGf?+~u2SnemYS;|H)??j8o4d*t7I z1HHZSMT5}WC;x#ehW+x9XaG;Sj9NQh^1kn3%v=5*y|)MDU;Tw}edO9X0EgsH(WZY` zeqt5WkH|OFLDE;gfDX_3$@#0{;i!CeE+mi1-@F7YP~PMQf5+v$FCgk5`KJe=7cBRq z=Q>2b*cIxb^3*Ai43ocC4v}zq5hXPda`Rd^ij*I?1<5FR`je16DUUb{?3CQ}5<_;Iur9zFa>euX+~X ztlW?Re<|{NYhWx@{&ERSr^%I+;+&J;rxwO}`G<5r)8(i8VeEpun?B9Xkaw>EF-v~t zD~M#vrxA8helrLGUXssp2gs2(P=7F2Zl%Fyp8S;*TtmJ*R|HTX4^)9zD1VJ=*dlob z|U$seIX=@K7etp?s-azHcuiE99Bz)Mvz}n@k0XXWA@1(4xQ|`VA z>Rs|zsIS;97xzH2M_x~xTd#cIB6#SRubzeg@5-a7k8)4GVI_zI^7%hNWKh1S3VQeD z8+X9;kUZ>dV8in0dSDOa%B{dgBiM!)S5MFG|5zKXX! zq2Q~TF6@nNLgA}v&0}EFCK#yst zf=ktBn4)VlK)6C^ft3hF+SkA$6-C34j8d#_hoh5}-lzaCQ&DyY#4N?)abVesU~1Q1RBR+;mlQ8=!=>aXhO!Z7uA+i^s(A{Y z8+iGO_xZ3{ph%@}?g|yG5Cl=ASSyFfWkv93uvx4qodi~*;7tc8Rg}{nSEl%2J`~Co zddjFP6yKVGT~WMGQ-!OFHLD<5r8vq3xUQJ}CPZ#1N~x-=RY;@|xv97k17e+GfKtr{ z#ni9is8PW>3SN`KxB|o$MG&15x})fO43e!120aBG3fpl+-KjA5f!C$jJPFXN(9lZM zr+9|G`RP~GQYkc`uup(EsMvNJ3ilNO=VAJRBIE=@8d02i2OdTh>uK=*P$8v*1rv%h zRD?cKymbzelZv!|VP&WCtLH)7r4+mjV=l_-G$^<#f2HTeO?l=^h`1{~1rYI2R^A2J zt-SUlg4nD4SOMNXWpf!E?N@$Gf6d^4@<~dtJe8{wAnB$27$$(0Nx>` z&VPPKnA-z5|w|R8b+8tlah`z-i@QG@>}8 ztfE2qS!L>dI7(59=quh-rTZt)OHpC4-LglqlbR0EJQ|ho(Yh%B?DZa%BO%#TCj`w7y(X zZmWUbRb|c*5U(k3{Rpg5*?a+#RZ4X>JX}|9+7EC;*+4IBwQ}ogz-pA?)XS??Iw@zk zsk};$RGl)M1zx=}@>^iHlv$hLp+VWDgk+;~CoNV@%5_P=ZYxuMgTH2_nVKst%G%d~ z-BI4kfnKY!hI%D!%4ydD+Lgc1PST-l?grMW3_S#qE@dG#SGtww_Cc>txq&{#=~sS2 z<-lEK{3{6Jo-&7eRs+iQHNXayD=E(V$_KY_dxn%3>1GWpU!XVcf%01^L`IZjROgH; zm2t2+rW~Y7YFybxKlnrCi`OACp?om~>W`E^EQR`{a^48AovK9Y{q9m#y$d}Tl@E<- zT~*)C0nbhK4>b|oRS&-a(L?pbN08jD+87O+dsM3^<=Cs*LqFp_)izp6_N!J?kL-Zz z2}&6~Rew-N*GsiL3&2~YdZ&`4$5mBHAO@*^JqDY>DhnUP5Y-BAgcPcJ;ulDUsgh|Q z3s*hyDTom&U+M@(s>U0kcS1Ff{ycw_%6%HtPpbAD0PmD4i&B7S)k~=eH%4`XlIK{J z^j%F+$Ezl3teT*DoZ4uKs{NI~l2kYHVI^6Wcn#pRYRWP2&Zr8gB08&zT?(5i zs#Eg;QdO~Uf|sVs4TQgQs>i6ud0w@Ye(-cv4$USmsCIk?EJO9vr!bwVl2FeoOLc)# z_iWWiAqe84>I*uKdr37YhI)=_1D)^5RozO2LY^wm50d$+GgMR*s3N`uu~5aJGYdtk z-QJMAtcov%NU`cOIxkhC8af4$Qq>-sU6-lGDQ_)T{e2pe6)Hs+^scDRQh|C^h3^OP zj;YSlURRn3k7c2o5ptx|O= zzs~{cRr~0G>MhlC74X-fYM@wdtAx~OZB}hv0%D8GMgy5P)rJd@Y*%S!0_#xirTpcd z>TV)L22_0~aC-(-UpUwLg8_=c+EIwyT@^P9}Kn>VsN%@KE#V zpww=4Ijux{)Zfqubgx?UJ8sB6^~C4!w_p9#Z@>Ufpq@! zpn3t#H+|GQl40zS+Lelt!|H!2<2<6C8VKO4uD%5kKXoDHk79QvJmth(xK|-GQA_ zD^@@+T77>#uo!jdeqga`)dIv4r@lw)M7)}(gueu}pAlA))b6w+B&&}bVEVM$FcrKr z>bs$kJge5ya-X6;w*wwh)o;?Td0suy0FiWcMg@2m)N{APbf)?MEo)io;Bts$tBWYB zyr}+#W_*{_#k30Ns?%LyB~R_v3Sz$c!I#i0P;TekEcT0``or-5y-8mmvqdJd1<7`rIqQ2>E^_36c zs97CPi&d-o2kI`jsXv(pEA48Z40z~NvnbQ)Qgdan(ybPhg4d%~IAE+-Jw_{Lzk0e9 z#JlQ9H%Q)7chM=m0rkT+@CMb(hXL-Zx4OX5koxmpNDixSKLYWAI(#+2sQT+TI2uzw z_8RoY)y_|VJydU_bz(yO?Gl7LsqUvwW_M~tD*$$Bp3H)zt48My5jRZ(9k-ZLLm?r2ih=gmFq=FZrdHxKHozU!{MJ`H{I~CYTjU*4?l;$lH zh|!vSDvV+^LH}h>ns2F*9Ish53y~#i0`9_XlI8)uamkt;^cCo7&22jDd`7eSbzDP= z=J$Arq-wsT-6Bon`#ap8(?qpE;k;(~c1Wgcg6Qy0rp7f7l3AMPuLH~0XeoEQq}jY4 zk~x}@mB4Z}=aXP1PcxG|%mS}LGeNaeqvo;gh~>8Ck{=|SH5@vH*rMrf z26jjDBUK@-nhls{Jk_T8h~EBAO&c8;?b3WW9sasCFI0lqs|ll8txvNz2@3t1f9a*X zt64^U;d`1X)HoZ|{K|*T`PaE6apL83>O1D&`jBl$VN2l762R7Y?}uUW12uZ zv^B0dycymnG)qo^_()S44C18b7EN$=YO6nn-Y)H;KX47M+MeHlxoM*)XK>dpq0Z25 z?Q?hFZ;$poS=p<7YY&L~w8BXc_iO*6b;(m(N$Z)HHlC(s-rCKTARg3848VM}n{-e( zq}9@23GmgrQJca~TSL8|quR>~pv|ctyhG_5R zA?i?Vjut_LX*XX4FI>B;3Lrwuq7hT1_DAY%pU_(RArhtilwOOI+N53(qqPaNBgAOu z(!e)X`_d$caavwH{Kac6wAv(UTfPF8q+N0eAX#gml<|!A+&)-2tDQ=1-W2U?RJo;U zf6{@NrY)pC`+4mm`T`+cyVDog1+8iUK!$b&-GWSQ(q{0ow4?OeU(#-sK`%$^K~s}l zZQLgi$=ANx1W=&m{EZ+AwNt$zS)^S@+4g1aE&8gcMEmIgc%|A8m*T?8v;{QQDc8Ev zG@?TL+F__)(a!o5*j4SPvk?3>Z4ecHmD&STC12N0&?0a{%laO~YAtguuo~^hw2;+m zO_ZwCX@B?*k=1K;bd=zhwr?>c8@1ik1ZvWrFhk+CR@Vnd&01k79JOc_bWXKZ>qmX5 zHf`Oj&}-MOqOz<*TRa7zQ~SCV3SHU-x$w}d4SEV9ecInv1MAmzJPW;h+LW1)9MGPn zM%|z`fXb7Fao?>!Pm1Vckz67(1fd zHU&Ii-P022`RUBR!q_q0vrj`WP}f2g(Q)0L*C83C>u^9XSQklUb%?H!(!x+(ZV9k3 z-3y<>bhyrQ8A6KC&FO`eNZmqO(og7S&_8F4((Q=?@uV*86ckSBSafDDT359hAV$X@ zf_kiO?oNor=?Vv6C0_SR27*Y?h0z|6sN4P%uq55`E#M{VN@+Jdt#i_6>1TAydw`wQ zxy%BVqC4IJkyPD|8L*kAt9yhX&gn#lpnhJr3dVZ z?i5Wws&xCl1-Pz@bOZ5*?#z6cuGW1-=WuIuKfej}TAdqhHaB%kPs352?#+)utk+GY zz2lZHM+x-?-CmmQHtIsoL8M9dI`t!4bljB?xuYu^1+P`-M$c}WZo?8>ZM*KQ8CE)U z(`ok7sr&6&c<<8XQ=h$Cw<-iSdvtz&5b4!zrz)~fC#S`uU)M`7^IhE=l&#&<&D;SG z_jQdMVR}gS{72vo>po3_u?M;mAAk{EGW9h^bw1P*8q={%kQ~=NZ3gk7ZpVKkE#2#M z%;1rZkqm#6x+%>Fey9Fb+TVBS&z3;aML&nWnsU_}r-SFFFCw?@`n&H#!9zc548+~~ zrlaW4 zaYVnLHXDEa@06bf=sO+ zaUpmo_1$~n_LM&AEc`|5U-%Guae6uBHu3uR|2t=;Kk^)S$@)p^+Md?4x}k7JA5H6S zs=l6zpESLm`ugYe_4ncEg8ribNM`8gu|Uk!Pu&j59R2Q}0CM$LzJN%czK3$YLj7PP zM2hsu^cnSKy^k5jO7)G`z$?>BzJNlxzBL3QSM}OexV~%p`R%|e^*3n1bwht_2}G*( z(f5GW=vVv$D|PzEuR)|<|JF2MxAZfg!=*Io=YI*}ZT++7Ala;6(G5qf`b}TMW}ANS zIpSKX8N3Wpcs{Q(z3Sa~Juc5ZPsThE`}d z!`Gd_b{p)c;Ao$r=?i%9G|Z%Y@Sx$`e+@pvg(cAQGyI`MNCAe4x1bkn_=G|VF{Iyy zUZ`O^?P?JQS1TkV4OMjD>4d>VCtgk&-lZBg+VI#bkc=^;(2EyuSWa19g5gvHY$h7K z1EFx*kWb6@8Ns>In}ShCnI~G7bIfz{@gBp&%|9 zJmy0r$8dz2jk$)3-yl+CNIwQEmkpn>V6)ip7WMo~4Xts|D>KMqAz5yiq%R373_C)g zaK+$w8oa9pX*9q!gWGWsD-BWpz^)ri)MvP1=)Hz3sy49Yz-}7mQo>VbkkPEC-tZOW zL=A@9M%ZjLs6PZ~GH9J3-Zp#^0Lf;|_yM#VmeRxCVQ{CJ zO{ZZty$C&q|IsL=*U(94fBFn7siAn+F#ZB~_Y7aX2W-Ib(r3^cH2nKJi1!WcR8tNa zo}k=q*pN=e$OFR%Yk-X!`e+nAW(YGOq;bRR)G~Qwc#gWulZJc`@OByte+SRSX!-#m zxf&~}RB$uy{toKyM#*nb@G!ROLELSut_0X)oVFWauW{dMfc?hLY7plEW8S+^@HD2< zl;)sOLd&R+k?~(qZ@m8*tQ;}A`@@m1@h_^i{fs$xpm)?L$pO*d*iUWc0OODI5YjOt z;~iju#e0rTR$Oh2Q91?cvBnv66eQ00MImg)8`tgvNHm@kB91J@h^)Y*@N^kh ze+Xi?@#rEDdyF5iM=ZU@KSmH|zj0j^91R$s;e&YJ=tmFjkTHoi{b8faSBUe0F^0PC zBgT+}P#-mx(^0H(W6)d>9~pTU0d|_k=waApilnxdi-}FmcURM|MKI=OT1Gd--Sqc0 zV7pC6PeOg4DeWGx11A40D0rGaY{WHqnVOg48oW*8A`lOnTxlrpV_N(Iz+ux5v~&5H z2B=-+ZwlbSUx4Xf>iHit9oz+lK+{YOB#)aOQuP^RdXv`q5L4e15D7P}s0WBNMbq%| zgvr|jAj+g#0xKs?>u8X3$~1Qxh|#9z=>V}N^>PH5VEXhhY$lnKYoMNNlD+|O+O+js zh@3GAv!Qp^gd2~?%@jf(ji;H)=zwFoX+iS$$z0R4uVK2t^bYkSi%f_A0=R5i`6dD^Hkm(ydWq>Xnmd)6xKx>znfUZ! zPKBv~rXSZ#26`r{Og~bUeBBfl4BidX>+673o06RHP-FU-3u3Lw$Oou1Jx&eU2Gin8 z@X%yBOdXKhrdkC8Y&ID-K%~Xgb_+q=F&&)>kyev{Qq6W#lMs?!rbgOHdQ4kNAlYl0 zaU90_Oz%+prr+dKf>`dFL|hQ>nTB`(gQn-F;2MTaMw)Dmm;&U8Y}Djb0*skt8z3@n z8oUaxNa{)b(;pUmt0*)|i{s-@o=GnCNoG`cS02XEbZVbGW=HWgBamxI{5fG!zw`jSK zG52x+V$E*fz*wBwhi0bnW(l2JOECNW11pKFdfNH*`@3V)}~hc1J6#@tTr zl(Xi{I{+6DC z%jSW3a8zv8lq0|rbMI~Fm70_36mXf@MrUfu%?|q3q{6)Qb*Nu4Ul@hnRkJk};F|d} zN-`?VPZq#KmDzhb^sbv9T?Fxl`7ioPtJ>^M9l;uN+-xY+nmefzeAE2x5ESanNBt2? zgE@xQ-A1#m30RZa6c4@I=H>xl&F1+Bpx$CW_#MC<^LLa$wwgEn36VDQ0y-YlZVsUe zrNbO(2i9pms)L6vv-TYjyUhvLq0nO%bwQ!m9D4zd`pmv-5lg?h=mm(}H3!l#>Yll8 zC)5Yb+jBr1G`CP4aNpcSqp%_KUMjhV&8v<=?}7Q1Wl$I~f9MCBqvkPc&5fC#Sqp`6 zb08HJ56%DEgnKq&ZlNB;BeRlz=}Ggr3JN4j{tJZ=OA;lzp_ZrVv#v19bA4wSbm{FRifn@ zwf>VVGihl~w!BZv%xTM=+mJkCIs7C{pS65T&u)t454vaPEVwOrb1aWVKq1{yNQ?gk z%N_EUVOjDO)H5xmT`-+xIY5J)Y)b~E02eK9Iv{e%QuI2AIhL#k5XrTiqDfkTV^}PH%X%<)JSmYb?)FIag~@1R;o< z7PSOeon_`QK)pppW$rD@bb3r1EWglM+eXVuDj%CHv2=TGTgJYIhi1!uO2Jz!uJoMU zvBXd!*lL-V0?9VZmjA(RyJdprjUAS)dW73)dF(Uz>#{UaQqygDbO$0mmSdyv&}-?T zkLLO;;cH-}-@=>&$pOn(&A@eh1>PS<0p1Pkr1q#EnC*$}C<&ZTVarZt|b$T};BQlolnFx}5v z)}?;~Yp}*ggLm5+dJ2-w))dNgTC8{IA6MP6TDL%?)!O+rjI~)k7DBS!x|GGMtUr1KbX)UiQSGs2)&TTcr&2$w&&o@J>3(Z7-Q)r5yLAAA))|ya-?y%( zy?Ds#K^=)p+kUwQ;vQQtC71hcBkx1< zfX##EYM!>|{=ubq*|Hiz^tQc0H~FB=@*^Di*seE1?~v`^3SftAnRL40i0$5Pxb?NI zq+Hm~_I3!Y1lV$EXFg_Ia14@xwj*?q{kY9P7S|ADyJ>`nU>lpZo)FtIS^z_B$7o3i zv;F)CAl&9H0*J7^MI*^b+k9$ApRn!CgZC&~AU#qiZM}gY#@JT%fEa7*p%dP5wkIY* zjJNF~M+vrnX}FMRJ4NY8l5L!J?PQxfWjd#AAMXM&#pdurxT&@z!qRLr$@@9m%W7CT zZ?pOWOSk=c3;r(HtOuZ%Ve6u?ai(n#Wh_}X*9`EoZ69s{@uDq%8?ap4^dq>wJX??( z{N>x4s9{=QGthvf&=yOh{UTc*7Ydhc^@~6(ws}WGq{P<#BtWU{4Oe(Cvpv-WE9Ewi z9Ee=Cwf_av*KBeA(5tj11OQaoo-70Jy6xy}T*D1pCY=SSwxz5BsIi684_9k5zXqE( zZHWc2S!ergAMR4U?Pe&5jkcfOhs`FN?J{_`ZQa2jHrv+GV%1`6r@irx?Tr99|AvCDq25trg(KS`;It9>u66CU<9YP;^XucX3n zkNuVa#JzS0l_vY_uGFpAZ*QZA=zx7o033PR|2PZNUiKvmA>wV{d>VJ@p#3L0i{oRD zptD;?><6BQO<()u-_Y~3XWscm})}d;A<=@phL%fCT#!;V_+OU%U^uHOW4OhL_3qJ8m$2+P-TQtemlXQC4}@ zJ~$3yirp^{BB^%49E6)@f9eJB&e?yY93{iPgQldJ_FpIm%d)Rs17fy4`&GETXm<^Q z`X&1hG$qZm|4v=1d^=kNtiZnW7$ghr?^E7WWEazVcG>03 zt_CPn+YeDYy2gH(wvbx8DFTu=?LAL`S7(1N3JUdh?{f&^mi@^<*le(S?7@%IX#d&* zVw3$C6*0H%eLc`?wkPv|wb&Oq5!oI4iBADq?IG=uY_m`Q66)>t5IRuOVc%#1vC|&> zG8DS(`@VvsZu`i8O<((v7RGw*uhBfb&+gX`k$(H%`B1-W_ohl}(Ebsf^}BCh`5K5r zcJ4|Lhwb?^!FgbJr>h;YchW#+)b2_Rw=w&vCSc=sBlV0Q+GlnkhzWb}7N|e6k5Ny2 z(!L=bV5ehmAR^o4DESANi{k-pgRYJ@)1dC=c>PD{xjRIm5b<#Apx*Xw#{&(BdmQV% zVS2CQ7EQhOIan1C+3&c#2jGC?yKVqaN7QZrFUR+k)Ob5MpTXuq$FycB_&8d>g|R~p zUwYLJJEC#{jySYN@O&M1ddmGAk4*zO>R3!I6Mx57GKd5?G7bVe=9uM!I0GHuW&<2| z#8Fc_$ngdZ0)icP>Yx|ma3h=H4%W*EBEs>^UWi0G!YJK3;g~@k@+e2l4oIGK)|Ub+c3A1`Pl=<7KBy~oyz39F%#lsSLAj%c zK5M?}7<&NXHHRo43YCtdgOIFpG|@-u*B#Y0Fm}V?Mdw(m9V02gY8*pUXx2LXE+W92 z4o`ZW>KqNpP_K7fqP+E%u?PJ0@Iz2xwOM}ITGmaWOO_7DH-ZKI=OY|OEr=Dy>OFX))$L&uy%U=xl}nz`+CifJ|7<-GbO)LopN)ckXG zrc(3B&B^tGg1hqzIyKZmPw-1!IXBtgy{FM=5C{AnXVi1Wo~5Jaf+ z7X9vF&LMw@ggafc0V14#JcV#0o&EH#oN(@>Uo6V`(vL89(iwaYyi?A9kK+2GoxAb@ zVw~jz5Q%j@M?H@?=R6_w;+?V7rAl!AGY%}#`BEc9lAKC9HIVEKdL712I|cu3QqIlW zA#&Ea!3184^M}jer8>)KWS8cAQi^cTIp^<(`gy0N9{$puIUfLAaNeViM22(y9`G`q z(cgoZ<&19w$ab39(7WjTmJae=a{frC-*TL5-oy3fItNvVGtaq#&W7eY_tV`iaIU3O zq=n9ieQ;ak%%!%-WoHJ>Xp5ciP`X^=9MHj0sdFtGyfSC@0$}CNtutV(!nu(eQdgY4 z^sZcW#?d-|%^9@|HY=Uuxv)~@9FTx_-Rb){^lmt-dZAG5+~0|iYMkpRN2zr(>cG3{ zoJIv|ozu$(V!hKz2Lx_8e^Z0k;QW`)ST{P$V?bqeo!%m;Q(0kzA%Li}7sinMb)G0HA zH|A`bg>c86`E&~&IzOV`;e>N!DvUjH>gk7@bTVIs`p(%sKSO=j>;t(_aGCwm7O1<< zK1Gulx7n{W0dt?dhFTaNvp3N=X!q>x^g!>K?Jz@c?`$b;$@^x%H3FOa|Ig8N2UJ~s zaq&6IvMkfev|J4>wH#^I+k5Z#P@HYGQhyE0O4(aLKm-(&CCFBkJ!J~Yk|D?vL6D^) z%9h{f^!uaZx#yhEx%a*A_uez^?ZU~XOre;&-=sZs37Je33$FJ{_W zfSqK%NNezB4txL=A7&5zXwH|J!UuPXX*myb@nc3&_b4g|1A+R)ND|PtOnU~9enZfk?04kZx(Hf8}rdKxxvzcn@0OT+qF2!_nnawXi zmdA{ybfAD~Nkz3nW(8HSikRPT0x4$BrUFU{b3-*`*O_zZ8!KgUDK02u{y>554d(Gs zsN7^4sMuf5l)ZsTR4|Ve0ke|nM9Eea^C!ApRL$H*^_N>r5uIZ-%$HrT=vrnEWvzA0 z04fmGGZ)gIO1{l}=P9@b<_;>AH8TIV40E}|l+s_2Yhw0M+S1IN%LEx!`xqWsE624ZCqBYazG^W?&6G zOfo+c!R>SAf%RDJ6muQz8rH1E2f*2|;_2+LWwBR5(~kAdd3dmAReu9a2iC~z&~#+E z)3sVBmIL*(#d>|wd-9Bo@b5GTtZlp)RPKj{j&*}VJr@H z6)vzW-T{eZ&7m7TQ7jK?BVA;*{0I`wilkRGhIMH-%wt(9stm=k^6emtXPvbMSOV)s z!c1g&T4REjSmsiY%Pi?afF-dkDO$V2dj1F~S6SsRf+Vv}P;E4YH9$YPOl5sN6O&J4 zg`EXTI_na(kuq2(`rt2FB6z>g>ZEH^U91jQn0K={h4A-)WwjMt z59_)JTraE33d`(ciRdR8{j7V@@G!ut9tZc36)uJB5$hQ}1&>({X^;)F{-j?pKVijp zLS=~MSPt@(l}06nXRISCOlg?4h_1SfunvVlHp=>$F5Qi>>gX=VIBPStXC_!huK;C| zHAJ!Lb5>&-xG9#NT1?jL>Z3rhVXvvipe?(Ys?v6B=>l-}>^G@V?7&Vc2ADHDryd?$ z*lzS!m|fXh-ol_8J9z@;?(DDW0_O?#3+d!_MET4`Lpkof(u~F-vSrNZl+BC47=O{c4ygK zD|iTEuU!n4VD={g;LfpqDepMX4tp7s2w`8L@?t34lY)gXwzVbf!r3#d!9}o(DE7X< z-qQ!@NcK`XvZB~t21tlH$8)0COd~3?^*0I+90yoU(sfj!(KTZcDd}=(}9x5j;A`&HTD}zFx`Ci zN3+2duz6!3h3qvOF<8W|qq!8bGf%;L3EQ7md!1b}9i)_fpE^cm?5&h=++Z)y#^6o% zP70pO*_jkySFjf@hOCmk&k^3M*jw#^S~LD`ZFUBQO$}_GA7qW}5voMpVQw0iQY*9K?p0aBbF{Nkh zCx3w(X0Q7nypOO|W^kkIhtzl*g9C1AR7MyUAU&bhl5@dIrIUi?%oZ+O>`+k;ljEeR_ z9HkAwf;oS^3Ag7sOESQn=g6pn6~gI?2WBW|?h=57aV$TEK{#h&IWQwQ?UYSi;Pmf; zN+jndB}P#k0bQ86$XT}%2GN{1W`M+S)_e-hSdJfEaf;)#(774UF>VA{0%u5u!9-5l z0+36bvI7{r%=wHqt0c}Rlo4Iw)YV~1S2^?OR7>X6%!hdj$Ce4`RF06kvT2;|{TNK= zga^VPgELHbqB1%2z6QzSoIH$~WpkJx10{!Z#2zZSoOP2J%;StwP5c_iAq-&ooJeZU z7H|$7hDsslP$~wCI2;OCi#b!%vCIIP?aImk`U$AOTQbKIOTmkQ3; zsZgopSkk?`Dvl?W%BnfTA3)_6=eI2&H5@&~V6~jpiy*7xM7;u1&nbBu=C?WCuV6|I zoNpT8y^(XG0S0$CEi~OGjyGk4%^bA@%v(79k1)?xPS$2ju#Gds2X~j#+ys<%&g)NM zcaO8|dyo!J5nWm7pSdX(c#o7EU+dLqa;ha&{a1ZSljlb_`5q-WweXB{QdQ=A$q1zK~j zQ&MQdJ$e$3Y`L3hv$Es9&<$eGt$hNS16Rg}BS&uiDD0fL7HV+L++PMkT)2W)u`pMz zp3-VJt`l{{+__sW!_f)u6-ui;xPBC(dUEg3x#`7Cj|0j{Zhb4fdvpEh4e;SQQ(EoI zaPX{?2h_RNg<&P4NH;;jW|RY$*3j7F5ExX*xiMb1&&&7s1^-AKou;t7vJVyPJ{OZ?skgj6S?!~3dtqzC=au~%w4?^vLvqQ zG8|pu8YyPK%3Vm8nv%KVT1+B^dzYTwRBrOSAZgs@_h6pRJ-reJ8Qj(MEM;>4pm}C- z$EXjK%?+W$CWq@`50qT4`+wCDt~J%Hu5mBNg5+~$ROT(<{zWybLTj5`x1xOFqu?>U0+`=2M>*EGcTHVhzPzz>& zJD;wQJmj|g0Jo30Gd6)d=ANXh)`Q#uYN0*hUbuyY4RJSHfIQ`nP?7l=7tsOUIPSrv zfF9wB-Usw3_vkusW87U^fHKbg*dC51xD4vqOmf#%!{9l0H$CiA+;&H}wdQ@T0j3Sl zD+dO)yuTKMv*VpS2o!tX_-d#)@P??e;K+OA3>7EdX)2O9^P;{5iVM%5_8wQ>20IwI z@jR)M=Fan`iqZ+5fYMGcUgag&o#g57VlLi1`$I7B;g$UfOkbWwBxZezH?;_k{CEZ` zhM(s3QHJTyYiof)0I#+clMm$e(RO%-H$i#hS>8vLkOlFsP;MX0^O3>dIi3$~NauM! z+<=D=-V$m`gz`4ii5|wwrx!MyC!-B1f)_gtU>A7zX(^FB!vT;eUI)E77kN`uI*#Uf zo`PKr@0Hsyh~+Js16dsJLl(GrUiePQ1Pn@V->TUn@+s^S;}QrDX7U7rXHDR#hVuk zlx&{57U8=BF@T4!mppq991V>f8 z5K617d82g2;uh~Z?O-*$6_i%j^8D%5uH$vA0!lqkMBZ=nN~yfxz*CmNppiF&xI4UP zx+>Ac+eD{YGcQ{YSqo1{ZL(J05&DqZc*QiqySzL)h}wBasEB@#H-idU9lV~oAf3EF zmcrmZZ|*dB@8bPS&6;kWgig^1yq+C^?%{c@!z6lnIt@r4Z;JM;e%_2Z02|;r{tT3d zyz?or8{~!4<(((IUJ6x)c=84eKIQef1MC?udk|!px0(L$LPvN_`O!9u51@1ZT&%NNLctzARwdSvj!BTAaKdQjl^7pNWcRT(jYB<^R z?WjcK!2hfX29Eq{ImK7G!N8B-91rNz{K|ts z@#kk!S{=aONSjq4-*y31&hV$v({q-;^e=Eh{5L-XN-)3Q6L#nLGykhc^4ln*4dLIQ zfIO7%L7P<=|ErzA4Cl{Mfs5eZ`w`F=`18L7N+kb2U51L{=bwP1i~MoA02s~Rz8_o+ ze}F0rvHb1lfEmYk9Ri8xCs5#$z~4)+QzHK_%2O}#pHlbZGG8SJbP~T;3E36?pKAej zm2XSuW-@<1rPV3?IaG^H<Y@2(&}{nLudHQ;9JiGN+!R4Kc zr{wUzI|G$m{vY((=kZr(LUxV6DG849`LRcVQos+T5VeqBwE(1uFP{gyVt%O(1||G4 zTJ3c{`%4&<@}KrWR>ps_34=HIk)1HO$&avr+j9QQ)c~vDJG={7CEts}!YaPMD`YkN z<9or?@>Bi>W*z?qwPWk~+b5uTo4@2us5J1O`~mYu{_%$(cldMGgEaB~tbweVucH=d z3*VWFK&|`{dT-nKWot2|yZqhsGPm-_Ckd5+Ll(>)aAJdsS z&i{8G$OM1YHlR%MEvV`8oc|JK1yg(_?cUacuPDg35gcBDL0duGJ#cn{RhF=`7lczN z?I4&-jXy_$#sUUTf;;p!Ity~CFz6zvIFE(73T}M|;wIRrgn_$YHvJyxgdm8%O%K6w zZJfPhtf?yIBk+3{-hBm*+c0=a@S_RPeu5da&72ktOoPl{ zFi2(B06}6SWPyU?)Ic~Rh-X7~RuKFKP=W*{R7?#P_-)1DIYI5`P&qI7=NE7xf){sy z3l$jY%Lx-~a|IVJP*RK%A;>y`MPCpcJp&Rc=y(SPQ35vY1s4VJwA(}rY|lY6M(`vL zBv#P+4CZlyF8aSjix(&k!h3>%w;Ci-5SM+s0e1^eh;LYCm103;iqJj`AGf^A2kQY<)6;dzPR3|*MHE-3H@W~t!uYmk)* zHe3Ys4Z&}83E-x{fqqO;E|}+!NmK~T5^$A*)6_k#5){*Ps|9nOLv~9rgQB1sK>$^( zYXvKY;h|1&%ozstf?5i`ZVTiuL#09RstveCLCYZA-VtmMfq9c)DScSYf=V+6TLdmU zKw1TNzrh6C1m1L#+!ZW40`qpknnp8x`bJlWt7#f)d=gAp2#Q zPY9S>VK6BOqdOAM1%0zI!70Hi+KH@%bzX2}Bb=g*(^feBZG3`uLciJI?1e8-FT_Ep z{Q;Ve!fHP3oP;Bz_^_OXEmSFW5w_7j?<%yT`)6*#F^Wyyg%{}TKOy`^3l$IH&9`CT zDNIZP=Oy%;0hE)%payW>!sT-T?IT7t91q|Ya zFYJLqg76TPqZ5T86jodks<%OQSvbQD21!B=y|-6{@B9UFRan&rk}Nd+43re%tQRrC zRN)0ZxHMr4-G)gQZlPa#W(a+zVGWr=2EBh-!eKeMY~kli0i7c}O`BD&F#0>V%@cl6 z0L*JbFM6Q!g?2$uDGd)9ZQ*fhp*0AztfA51$iVqa2VvVu*U@+ z289Qyi10)>%MN5nXnzlmo(e7Bhlgjvf2q4OEKGR`m}9~UY7UJHGygl)gdP080rM z{q_@7B1GruoxUJq(262O4KeT+C92#Dm5ZX2wC_fXobtfMh#DrL5-WP2Rum^XNa0Vs zNR$eaAS&^LheVMpZB~~=p0veY7A>U}C5ZwRu)8AqY#*SniX@cTB#Tz<14$9_SHUh- zlq`ZQO_WBRgLKiY4Om!)XtMz*nWFPqAXy?6h0EEZi`3%H5eav~ZLa92Q!vjH9ibZF zHPLI-jLH}FzYkI%+E2yzLeZvo;HXH%r+Wg$qH}eSm59cuGIU+kM_FsBXd9Kv%0y9A zWWFI%`hmMC%BBk?<)XoPfUXdIs>jSKMXzjxtV$%~gH($?q&M}JNb(WDYD6y%VX#&- z9tKh;I{Yc-SuZ-j5Gc1re%GMcAX421X%b!B14qpw>E~Eji^wh#q*b(#Qp7fq))VG; zMY7*9*e?2x335;5a|~b|qO)IOE}bGrI#=$CuBF0lmuN3_(z-=U{s-=X=;;%9=n)NF z09dc+jx%I^qGtM#`$bJ*H&qS4@Aj6`>IDn0awzdFzR8+hka~TtTycmPyqR*+}J0a?60XHdfEdhBh z`XC4%rbN4F^48+?Z-8PW-bvAgt$1e_I6HB1H8^|mMivYl#0gXzbret0)8izbN6jH; z@lyKeT*P?>$Xvzo{UC1QSNWKyyLbtGaVNxrpP}L*jtv8tr+6R%6Z8^~EW_YQal>>F zZ*e_Uo_)k~R=~hle0V2RPKl$aTHz;tzyx<%%%-0S_={hnJUl?$Liu!{_$xXo&xk+Q zLUvZX{Z|+SiP_IEvtV(?Z_qp^p7j{yytr@|JcNkfoQH*lip_K@K1{ql4^s*k`+p3B z2=OQ30J|W*vjixS;%+)uqQq8oXj~L;{}-}oapXU+ixI0FfEg=Jpuf8nC-$LP$BUUS z13E!$l@CXW;@2nyza;MYuT~H(2u82Qe0O+e?lLMfW#jF4rq=?TS1D7gZ zZUdDx@yVy)(#0=GA3&GD_}FI1O2q%p!>q51*MA2OrDDa)Kq(V@QPuW_c#aduO>y3v zAmw7mS#Vn+ep&_SN^v43lU3rK!64OQ>!*<266+~BuMr2*gHkIFp`Uo!y_o+J z+};+qQ%uw#*4zbY6i;JgW_QF#DEn*@?+*Z2vv^J#NQ+oPWrJ36`XP946EE5f^Sk08 zx+L8${+!~^d*bitH0%%;($Cg9#rgCe-4_q^f^>=dy@1j!4v&W21Mx{(SdTb^66s!X zG_@1@#AiMP*Dr2-8*>>DC(_IHP;5&N*duWYrIwGyb3zrcpAiB(w__BAgQLxm!qV1J-jtMHw&2+plA~Cndj}1@V>~ zpnkuPq?jIkU&)LqI65V#JvFIwB-0Up!iFk(3TJ&*&YNgP_otl%`=jaH{kuO zWSDAQL6WoOz&tORwi1IO5_2a8LnU+A;KC%gUxSBm$(eN+jF9;5f%yf=779ZnB^L|9 zMM;*t2Y(kO`kz3eC8|mIi;--kKkgDMDc_FO#z}T;1X#S}AgwP!(yIbVl-!}X?vkX4 zigA}E{$BztNph2t!Yh*TUto7t@})b#k|ldCflHArq*FUp^8CMdOtOK3sC0=l#ikjO zPTDauCA(I@AWL$P3X0j1C?~khk*xRun7NY8)GNr7l+#^+Ym)j0Ao&u5J)jFDZ`J~( zQ1UZ%xr-$A)F~{MSX0TeMDi`wv#v`#t^=%8vh^~+$|TFS!~BLs^C>iMN^)yJ$|XJx z7_5-QyTehX#Bmp(t0Y6uz*S3*^?|!3384EnH4@%0z^s+zMgy!)l28JbddVxZp>kW& zN$GKeWD{M~Xp}sh1I#-TN7@IQBttJ@uvt<=Np_1Qwg;N6l1BRe+9X|6?Y%2;p<}*X z^593<-IIh?z)^=JKL!S!5~%~Y`;tz2|GFe`wB>b6)>1|Ofu!#^RC**n^kMZ%R&59A zlkB8ENxvjj4!Z%#OiFqmN?ez~!y}1BB4m#xAJTq3C>hKF<`c=>`2ZV|_|{-%PbCg_ zf%!~gcMx{NlADLXjYvu-U^gl$E{BIP$-`wZ7?)Jfhrxv8=OUm?N?uHX?78H-I=wQmcE5S2kC-Pcz2YVD64alM*j$CXXyy#7B12&N1^E|9d(6w zH>u+U2HmA^-+_k{(k9wsJ*3$W!Ffv8Q$fm0YHI~@QaVctJ8!AofA5%d8tp{B(mA&v zJ0)F6+o+$k(+cLNrQBG5NF7dvre}NE$?&c(C*= zP2!x?>;dk)bfFu#5a~IJ97CmPlh6#47EvS+F8zuM-VxGRGgK}}A9O<&DGjB9O_Ve! z4J*1R{f^>-Xz4F?m{N>%ZW!!hrG=s3;-uH;d5M?uW@1VS(kc2ObE5ROJs_8)uk3~S zWoh>WWJ%H`bkFgMG>=NMSEb3cJta$@(O`-+Hyj>PrDGJVr%5Fg7oRVR9O=m);V4(SdoMKeq?g@bcTIYW4)1(vOD-l@AZ@UOtWf&r zG7J_;BbI^`OV86)mlA2fYPh{Fo! zxK8PBnb5p1UGxD^x}+IpkabJX{tv5tAU#k3u17jbOX-#7QGV1Xopgg;ztn|d=mDwi zS5SE<<xb#cfSSFXf)rSHiho06{k44k#>7*)4yWYZ~e zx0Q{&4Vj&+OAAbUnVCwY4zeF8N^q2&senHx*~2rKgtP22oqsN}K1gX|&8`V<~KWna^|=_NZ+4{}oWQz?kI>{|-Od}JdVVCO6Qlxj$) zWGea%j-PD(Cyy5F*oj3|Xk`L+W{l$=c~=f4FRtwvq_hYjoZJg6!EHaFH_4FEN)W zS-=x`xF{P<#bC57VLQNLWEqv z{tdt~Wj{5+AWQbu6qb@Lv!v>4j;v!4gSoN-E)4QyV#+kG$&R0dEMKsJuhEY3T=oi;38!TLvjS%=|8*tY z+Q@Avud4vGD{P{uw36OcnyQARGQ~psqWM1;o*8p}>9!j+*Z~0;&Fn#21bTa$O zU;Y=eQ*sY_tNi3&Q)S__d@HrI{N-kPwFBhqSAzt~S7k!wj68u#+-K#CHvkX0+x_6eesBeH)w_T$lq(y6QY7Dc z1hQiJ#8z-6@+*q3a8xQEq)t_t=Y>Rmf-d!k|+A z5nW5El6z2qRV}ytuR0>PrAN3%{(vIKTKO!hyVc1vU%({ld)HqdW4s-jFrPQ?ns!mP^UJMIILeS*!dyZJcfLz7HY0EC2NtNV{Bag26p`6>Z`j z@?mQjbjpSFl;4*(XfdTO`8yPGcFQNIeELA%WdzqF&;0@_z4GPM+3J&5Q8l|?UPfi6 z0eK;Hq#w%T=q}D9dCMkD{;~Y>4j2r|OYC9rL|#(???dtr>79Nm_q`ADOkUmzm0|hl z?@$?$uVrIOqw+siW7cEx52$7}F7KkfU_$OfF~g*MFc#c%`L$lirsQ@VAl8Zq5x{H| zk#v{QRDGK4~~ipGMGCl>LS3oDz2GVGm4uOrJq$irY$H)F-0}2V8!&;FnCVkBLUcX zg$vyb4^eFSAM8REvpxq{nBw4HQ>*B*;(QqVB`IE| zwEBudN`d@U#n!LjHd$fy4rD2c)wEfqD*nj;SejzxF`%R?GJb?CL&2w#P^My6Gh|tc zA6|l^Y=uQ1WH|~GrSZ9nt>?hyDKu1Qy{1?}g{*wV=C5H_ps;)e28D`O>Y-Ak7HNE)*pv%$Q<12`YReTj&j74Kafn()m5Q&P z!cmo?<2g{O6}D%9a!c{@8<5o~UZ=FWRCe; zp8W6#ZhTK4}VU|uhs(0S$Xw4xOGw1=YVrn)=~e@O{x6=cJ9jE zl%$S>%+w(S8Ir2Nwz9)gv!6BsT`eJ-ZRgnRF~&Q1U4@jZ`)nAd6By_#NCuW%d6+ zqLsEd$!5kV-=-f4#VW5nfulI(_X)s^SGwKAQWBJo^S~u4YhH)HOUf&cpm|wYLitgW zvYifwE6T86FnCpIeGQn&%A*R{r6_k$t0+}DMy0DXWq1Py)0OXc0wqIvlnUjU%EYf> zo~3-9u2^I%3#s9oqnuv@m0aaZ91P|uXVG1UYf3vRWaTSWcVJMU%=89Vs8mv>Sfsr6 z69$WwTcSWpl(|tbzpk7h@1@GhLO3c@uB5VZxpMg*AQj3a`pH72GN2ixN*VMGP^y*r zx1o7U8D;^L8fBdsq*fXGGNx3gTqy*pS6WEn_O>$f9iTKQYxcpsQMv64kUL5{15lcj zTj=3yRt~e^y+s+~4b4_%_3v0poAT&8Aa|9o6#=DPnR5o@o^tp_KzAtrrkYi!Qo9WX z_m#zuG1#T_^?^aRGU7hC2gE}_k8Liu|HFejB-I#Zu3KiLb}l=4mbL4mdEsvS^lRBI{xu~kLW zxoM|*llDk^)h3E?9aMW(gE*?7MH`Or;2;5Zx z^x~aRIeLKeP_3taqo=CJ7H+*%zgvNvRH?J!$XgY@3^E^;)#otxRoPHfc}jJV(rQ0d z{XuZ2RoUY}@mD>j;!%KV8D)cks_rj9&ZtVMLU2}fn5tqys)5%r7_9o0?zo&&{qZWu zc~#z8kPy{fdI~~S>uDDbQ{~EG7p_X7T3&?8n?jrmsz@e2f=Crod%SU~$OTZjsCq=( zVYJG33WG7KmlDCns*3tC!8nza{)|DQ%I`h~FRA*TgIrd5QM8t%O4$InS5$>d0DV>U z;SjiF)jkSbQdED?L7S=y)niI&sxfkut{Pke%na4vmq9XBf6ahOmTJQ*AlWK01+zJ- zPice5RdxOZlsuJc6n58CH+DjnuUbSEx&l?jcE}1<6KbFoshX%kS*&_79ga#=RTS4< zSN(YoT&YS(n}3;V_BwDkRM*pCcT=_O2*Ao!Qxt+%s9FzzRI1)xh-Fr(5M|G+%=tQVjEtvv$Tea^FxCYfvHketXDw{4}-BA?|fHbMD zkU_I*z8T(IRKb6NYgHZL!=OzS^Aotcs(uBa+f|?6$1?A!hUbIpP`yt#`#V)ex>a^x zX_$+ndMj;*PU@}H2Xa>LqKM2z9q|J=S2dTei|3Go_ z3H4wu+UFcQwSAR^g zVt_iY3tXVOiAvmO)YW2Oo>l)zE%P9?VHd!H)hTrC=A7DTIyBF#?aH7MqW+Tp{(Pv~ zVF|b}wc}?13s+ZKfJCSdm@uUa>J29_iAZ%y2f(7#8#iJp7u9RFfJCcHDRGEVM=5|A ztA0xcgE%#VdIj-n!7wlr)EC#mZK67!dS{o^vbVrpRxkVwDoN_V|H1ne_3HoXk?Pe{ zgGg4l(a!`@)W4MiGgbX9-Be3cf8P%-UHz>s%rn$+vffYPK6 z@P&tFwI5Z_Th#NCL0Z*s&@tGi-trJAch%ig5N=l&Ho)MXx@?8_pXB7 zBXtqgmmaGZZvxnm`Z$H|Pt_qgAkWls)NmSBN8bh+QU5}r->CWuwN=N|?^CQeu6|nu z%?b7RdVETg>ZKGbK3C83fx(no8v@Q+Q=S888%+;ILAIKy=^%ERpfy;7y(aGqOxHm( zx(CEj^Wh3WJ86a~3UbyQqhrZMGjAclTs8YC?|0KQFNVxr^ZhW$2~7?~K^~eVv>|zF zu8sl4OEW}K&`C|h4;b{;%$bCyk7i;sWWE|l5oD({*2^$6Kh0*kCV5)ZOV`u=HQBW5 z2WZ9)LnTo2Iprj0H1>4c;H+jK3bG*0ia6K>Yks2c@j1<_R3kgD`KSyYLNuG`YH+BA z-vEO!P24Z=7p}>rP%}c4^fo4cK{J=CKarZNFM^BGe7yy-i<*D<_~@cF`)RX^(HN)* z6suXGgl3#(fQkt5n%^nyOwjNaz#vgG^j{pQSsf1UvS!Aw zG2LWMdI?lgG^eSild1_@36(TW^bBz6nq{xSUxp^63|yvW_X^B9OYYJR%~uy#%CBMjct%*=&dhvuaM40dYH?Zr~=Yc^Ly)}`6Y z0@tlsdIew)G@nofq(?KK8os@n*OvjTPcwf6q+heA9*zby8~njN)R^aid!+f3Zf`u+ zd}R;lLCvA1uzRB6Q208e`O*{Qsiv_919yALe748&p{s z*DUmd_X*9)+mKCa!f3O4t_h|;88M|fMyI{Cc3LRh+Gur0!P#p09Jsa9Dye#IudRLo z9vrl8?ND*lx+r1iq*cBTXlHF6y(=!-%_m{ts-0B>4{lmps+_oMTPQ9+q3ximt%vq+ z+KfH5^C^7w((a*K5ht~RJuvsy-k@7hKH49dfcDjvP%q?^R<{u-e%cy4n4i`LZv&XW z){qZ_0PQOwFb~vP>tJ_As~QC6S?ys;CWEv)X(_>432j#Aw9OizoYw{@Fc_kZq{uN; z`|M?qFzsx5OvAMmUGNa0T^$1R3))r&WRcq6sVxwtJ)8rTi`v~wAdA-Cp(iUwYfayK ztX4={Wt?^%Wzg~3ikIOpK`UiqFj2eI0o)~R8imrAwWUMwkfbgA1m;(?3%W3PRXed0 zBu6Wujzg|C@EgeTwSg4W6ljlAtWl_aodc92Z9F~K#oB6;m1ucg@P1u8y&a@f`wmsN z%Cu{!4R}+#o9-8sYu8PKzY6WK^)Rp0x=}t>rG3K{=GEE-)GMgbes>6(wb~X+aO$)x zlQD^UZ3{IaZ)?A(g?WS4l?vXC+F}j3JKFsMkS1*+U6*UtM$mrUqK&5=vsF7pn`4{y zG&KV5YK8QBgm&%ghakJB?WcNOhj#wwFzD2tj{|pK>-{UZF0C`=#ogNP=#hG$9ry+l z?9o1;$GcZMeG|<4w6FDI4gFeSJPZc3$LOa<54AN%VfRS8O9aiwS|tYpWsvN z=1^!p)28Kv3~S9)!yVD~Q!X>AeeegkF>L@fV8^xZQ}8vR-9Tr~q}H(qD$lj6jqos~ zT~8sEweD@|@Z0D(J27ahV|WA8PS-IFgZ8@48L)HEy+LoPvo6FNDlWPXYKge&_CA6K zH=W(9;M{d<|GOxxOQkT>L+48YvZrp}m*Bi~N&DgGq%M&*D{ozBDGYpcY4mp_e058X z!QUy})M5}n-EP{GPwTcVz=!3p^SKA}09_G9SzXK_Xa?!{)U*!P zMbnOXPB-`uFhg~pJ%FPyUBeNmgzMg201~MSrgJk&H=F(#$wghL5A0%fv0;$K>E2bs zE?#$>Dy5fn(bq6|Stq00H%U4v9s0?-Q||b}Q*?Y=cu&=>JqQo!x*l7Q3|$j_1ev-t zig&Yg!PGLy*8M=O#avzIdywVn2B@lXO;`Lr+!p9M>CRW7?rkMBi*!RiAjP_cP0%dS z>F8T2)qRoyu1xmg8rB%0q zj)^v1S`o-y-TCD}Y1jR81P1qX0(vR?bcg5{hW)w&b3g`kZ~P4MP{*)^$|Ie)A5(g) zYogxupzc0Bbx(9>zX9}+ZWe9+PjwflBmGS0mJH}&-4nWwG@`31hry^WHyZ|Hy1?1s z#&vHxV!9K$DkJPBb!X`U%X3{I1q)NUKMLW`T7QYM0vkQpXmBU=#n)ix zq0gjm(^J3bWjONEbNqpMQr{Z~@80@eik^J*4s96p)t9D%JEdRj3Qd2#-&~jn=33%|C8R1SbfNQFo@GPZo)F- z^__IlG(pdxCS9UF-3qcKeaW9dxuUnG?{&T<7TJbf-I4-$buyo_=v2RIce){|;Hc-f1(q0{w?e z09~lxLjH>MpVVWpSpU+$z%0>+QgiRR-uN9bOZ5kfAuH2w&V~0I`r)I%ys2NF50!HL zd1}2?=x48nN~Qkhhj3e^Upo`f)%r2Yc5msssp(RyA9RPTPQPY8H0$;LzkxLB*KUXG zj()%&&`tWzaFAwwAXSuF^!w;AZPnXvf@Zs((E)N#pKuGZ4*fDMNSD5xf$4VZccftw z5A|Fxr1TFw-|IZ zw4Vg$WLQfXTsLYsl&aIb~S<7Et^QLLpR68(y3P6@SBaCkzG{>M33dG-Q4O%`=A8 zRv>2$83&;fWN4$hVzA*py?EygS(ic18?qK*FvO5dF;S>t-XPW&W?;>NLAYTfRfZxA zSwe6Z46F5kjx_A0&?w6Alp22*4XnRm7j1a(F$UudO!|)E4WB)NW`beh4VWhyLOuk! zWO#!%xyy!?bXzOQ@ajLnykdwb#^6=M-Bv6m)ll^rFw+d}Ut=)c;4FnozG3q;Ko=N} zPJk;kJf=jY$nbs*42lik2VlA-hJDnfxo&v(CZJ0Vx36Nb%+N#;;0?nR1yMH*>ccQ7 zH{?>oqQbDe0AQ7dr;YGeWyq&?UbSK2CaBypWbcDrjUl2PgSCcsO4aKO7bs<`H;jJ` zu-k@m%Bva-^}FDx(a=cm^c};)S25URsG?3X!@yk(b{Zjz&aFI5$ z$AV=FN3?mpEGo(`G zdED?PHTNbA+dhPB(lCwUy61+uJHbsE%v7SWHo6HhB^x8J5-7IDowNzq8Hdin&faLG z@`i(v|1k_4jn`*G=45;=4HI-W9=ZwQVho|H3$DgFnILXPT_D!(ZmbA{?1b?M{Z!1u zsHD!hr*T{k6))q5^m3gvKB5oA+xXo@sQ4JI>D}}-x(CATDdRRer~QlxpMyJX6j31W zZ+zhupad9me#YQgW9>&63^K-3k1yDGYYqIJGy0vv;CZ7ZRVzY_M|6M=HI@so%rN8C zX&~Xo)eabpFka(h5*LiIfxwJ3ZlNkwlre~s^NYqmsc#=`yv_y}V_cUH5^Fp`;cJ|+ zmYNIk#<`RYCKwOufs$xkL*?PiMr#W4lZ>@W3|=u>(9wF;`28N(B^&*yvXE;0eHbLo z`0E9bbYna9Ub2ksH0x|*%qlp_Fv+2)utxnvL}FUHa1bcpv~w;r~O^y(7zaLH=a;pX7`MX{4m&I z{L2lb)3~G#VE2vgr$D-l$0)VzHeP)Kum{FW`g03C#<_Ho^ch>ifZ1;hroDB*IPVz1 zhK*lRQa@r`(+SzA@nia9GUG;`ZR-_1l|{?1!dBVz1 z{qX~2?xu@NAUk0?T7|iInNHC?q?4vMcLL1YRD?HurjO}39j3mfz6~%xWt!6s;%D0U z0?bdFKBmOT-xTeP!2pwlYF2@!v1oWWW6Jmq%M3CJA|VSlDL#efIn$DPP&se9(gl?e zli(OgnCTVjs)w8A*MdZtBpDzVOuy3x7->q$#+0H=M|_}p(Nz8bGmAF8y9}}zQ(_QE ztmy`Qo^d7}h4t~K`c)taCQ%6n6HN!&;P#R!hRiRUZtnq?WRfoc<`q)`Z30(K_vlbe zHm!aRuoTliE>u!YPx@eGZp=l%CMJ+PD_zf_NO|23PmY5dY1-Wi= z`2^5arkLwMsWvSv!{9B`F52L0Of2e2)tcU61FX&zK!vQ^rdQoCi3ZcWPl4HJ>WG2) z9aDf2c14pf>=MbBZ-V!9R$lva~VKcL%83lku_XDVpGV23HZA1IxsaH^wpnT9C~ z={D`9Aozi4UOu=UQ$_&{dQEepFxY20W(m!HQwRN+cfb@u7lj|14n+WE&@|_J_(*)hl95==7fcb>!zy^>>(>1!;@!X`MtY^w(Hi5G? z|9T7tHs%Fyg0nUMNS}+Hx%FQVd-FcpkQ~hYXF;6J`E%jc#jKfz6}g%hmcqN6*_mQY zce76qrhCG?j{;o}^9;(lJk8gs9_eNFAP*2bSaJ~$UBSItg;!$Yz;p&8~W<{v1J zOEpjWf~1+>I0IR_`7i~S8Rpkl0y@*&OS@E-d0{Kev(4+{Aj>hwy#w=Ha~w7B^2`y{ z;I5g4bo(aX>`gC1f%$C_yce3^psHAj`EE8)uA5iw1}Qb)q^P9A97XlyN^{E;464kh z>CLG&f4>*)Z`==V%KR4v`PP=Zs3mD*`8HjOv9(ms17~L$+Y4xW z%fBf^b+U}7t;^Z+D|&%kEIW3=+|{ysEi~OMkIn_>ZaLE)20@k&TQL}7$tZmWwHAYP6g~8(FjEG`fD+W*M*pD)%ju>1}*u>GB<*hb%X)h53Z#>eDc=-xl&C z4BWSw)qwWh=06UVv)g`p6SDAax&OmFW4C?M43#U}E>U)tx$UQ9EVE#n{Vb^5*d}rW zSGR3952R%qGXsP7w|!2zMbEb5=V0!+edQal3*7!0_1{CcE8d5r3)^|$f{WiClL?j7 z?Ix<}cO}N^i7U8RtKF;cNyJ%|j{q~?YV}MECRnNHB2l816A#=aD{~>Z%T`<0fh1Yk zEQE(ER>7T+UA1x=#bC14E^0}pSp7hy+*GSW%i$r-Y7ZTz=~m;Eeq>m+ZHGaoRoh!I z$g+x|LP54wm@{UUW3`Q9ja;h(%Q2W|wVh6jYgRe585da{r<|+UN=3iDDzWNP1M|Ao z5WSnFR_Ff3V3}3Pm(aXnb#xT6n^xf)VNh<>-GeDrSZ!DX%}T3TW8kW+KKTQr+N#p>erY{jTMKwfwfkz(z{Y;)lNx8z16fOP`Pb&^S?`JRv&y1S)Z?Z} zO;#B{fizob(0f5}j4$27-U8&Z#Rv4`+bb4JC^SsA2yX>RwV3A!*Xb5kcc7AK@r@3X z%(jT3urb%-juq?);!Sr?Xsx{9fPcTwD#PdSK_h+5AO5xqv-*h5$G<<_Z~)TJ?wo;i zeFxnQ+>rMh{=4y`SUB3WgC4HWcT>q`^TH}jdy8rfoO}^UrJ$|ZlwyC`M``d^@l^R? zE~C?frFDlbyUYv!<>1|zHj}IWAI5on7XHnDjsBX3KunK=a3LKmqNa_Iif7mWLE>hG z5vdoYC$b)@uU5TbP6DyILTqE#&y3G`5siYP-M2xGwfjjO+K)2WB{{ z1%mO=JXo2=f5fv>$l#Cwf{S^p*Hok@Nzt-HxoR6|r!Pno33fTVh;1tmQ6|13dV-dF=29*}c zM&LDAbkRf6Xz?e7LB)&lZ7$|=lJVAjV0tsYq3g9i zjF2dBzKpyi7@T7G(j_cEhTlGr(~L!Q?)o!YufQ&VG5rEaAVY0{>(bdfWZ5n_wMFvdYDyN5HZ5;4yRM)*!l;sWCt z4~`-kZ&LR;im{Zo;fsv!UKm6(hADuFVNB9f8_QTliCi4xN2B(E+Ho|n&`#6!dRLLa+Og=?bT$)8G5u*7_O9_r7}9{W=I;N=NM4Z z8S5$F&0y##0nB7rSpy}DFh&hZc3E*-WonFw)W89Jh`Wj;;mHG1-BeeAu zFf(3ZB@8A#eAgMZE$~pvh@l#386%rwxEl;6UG2ZgIGBUM za>lG?fK@O){2Atz3@f_MRLi(SQE(k2Qw9$cjCN`xPBJcT2j+8zl=0R zDsIHR_nzS1d+)t*EABm>_qm@W1WLcZ=Xrj=Kc1(rHaBP9`?;Tc&pqed6RJb=Otf+U zn&+Z&l*fJ{%3q7-r6^tj&R3#_DNy}d6qW(x8_};)aK05CB5V6z^fgs2e-QnhiLrbX zZH~vNKZ(9N2bO;B2dJQ^zx(_T&@#ZiyBPul-J_{QW4nhNMZ`NizL%rf>2dS|hP%t7 z??tfe_Sl;b@jV`!>5$v&5tD`9_jv?Pf!qO)!mmL)=&^w;%OQ_Psp#RbhoLd#j(C{K zCqC+-5rO5L$Bl|;&U>_80@XJ>zE1+nO^?E6=&#V@&m*AS^4LgsH$@)tb3l9SF?$rA z;faR_Mea{MZhQdpxyPvAA^yT6AsNj}kH6oddF|1b>Sx|~;o@%XF^C*-VRLjlO1!%!Xrslg zdf>svi2VZ4`&jWY3O~n*GYx2_h~H72!Bnw-KZs8gtH^_#F1Ao|bcXoCF=&}3UbhI7 zHCsITBvdaEpNYaCmWp>*fzD;(u5=5sT>Rr0&{m2AC=tC%yp&2UR*Q$w8M8)woI?F| z;wmG7%ojfy1mt@0D>|t*h>uVlu}LiRfwIlwi)molDxUQln(bouAHlgpEF_z}Q@pYz zSWbxVe1Yb!csGUK_rz~+0lF_9vI_za#CNGy;-Ofw39287HRN6tiFb5>-ijoTLjAE44>}{qNeU_RGG20+JcL|H+d4qzN#2w5Hc@inD6~wHwCDq!QzTt0 z1DYzi|1)UQB*R9dStV)kC1|T9>n;IWE7?iej&+hm36$ka9$L^8NGk3|vq5sIGFUcB zD%?P`S#od{nk|yYx6$mC^ri@BpQKSYOu>H1T(Ug}B;#{1vV#&aU1cAVoa}<$4@=b5 zzL*$rpEkd@s3I2h9gb1v=_JNe1! ztr*Kd=_Shc50a+9dbkgkhLG7FBCSKe?ah#WzXqI{(s$3nIaIn*3YILXZVCjlr8}~q zdYJUc2(S#7wtEZY2x$u)SaPJV6Cp5C`uSV1jFL9Z12kGXik@$b^d}{dW2K|%0)Cuy zKnkGoQjfNvO_2UZwF`OD1t!oYO79f{nk3yR!dNCt=XnA-MY<>(1Dq;-_X5o{sg|DUvP$OY2Mhaj*} zYNp9rB;7+luUstEBtZ2N>03H5mr7%XLT;H<*cO9WE?rm~v=vg{uR&WWz0@AGRnm=9 zA$~@Bk`mZwr9)mo%T?)i`YS@$q=f-MUY9QPhrkVK9*5owrGttvz+2LhKSTVE^g9Kb zyHYWwSno;e8^L*B+LH|DLunHIz2HaETfd;&BB>i?@g7TU%OU<$nn@Xk=hBW<(EAJN znJ_p&Yk*uS`$C0TS|xL*E2Gu2C<@5d$QpEo zvbD0oUjkYuOBw-MzHIJGC@YXDhND?8EBp&uHpphuiM~lTvNp7AmR+Xo*cMqNIf7ed zd7+ToCOh&an(eaS2=uo@_V7E1@03|6cf3p1k-YoevQq&V*&f;WLUg-V)`Y@{eKI#X z8~4i!rvf@4>%Iy79h8k;3C=?@RT0Eb%D(#y&?(ti@`X>!%)O!djI72!$eoofr7d$# z7CsozdD#y;F|r%7rZ3UMOd*HQdY`qE1+eSd{-_6PRJKf;`^kWqdfL0xw-(f)AFbZ5I-ZY zq=Ud&c_IgvbMjTu&~jd$bqdG}@)@Vl?Pa+p5pq}Md-Bj+lk3QyJ(i!Qxaf)e9@Set zl~0I(vS;$RHGrPW#~PvRg}lEW<9sO(e+1em`5)b}6#IFOZ3kL^&rkG<2Y8O03zk8i zb+@D23{UAp=*;wNco5A{&w-RG&GPIi1GLD~pMvJaojo@4VtB%>UmJM%ySG~ z;4b&SmW6{2;HvrjHKCJ=Xsyp`h3qxE725q z`qu&Hde6_v$Zhl-6p7((@{HXIx;EM4=|?MMpJ%&)VA=0khunh$o^?J4%R$d?UV-J1XFkOUhdqVY z03Go>ONq>*o@ohyj(M(1LVw3S?^8nLr02$6XfAnvegVy8&-Z?Klq;T*e*n7e8Bccx zMV^5<5P0nQj7qYecy?)uaX$6DO}@=@&uMjmeBpV11CTF011aKv<=LwT`g`qZrK`y| zo~!@5E!PY5eUxV3I!b#(-i|IqN5p#W#m20RAkXoT&Qr* zhL%N&#Rnm`SaF+Dvr80mI*XSo+R`QMGQ}?1T+0;|CIGoYap^c%Rw{D8L=USJNqr!< zS~2%IIM*oL4WO-6{J9Uvb&Al95GYXep$KffLPGhe4T|$ifZV8fLdCC}6kBN2dlX-` z0kl`KsSP;yDQ3}$w_g$59RddwAF4v7r7>xx%T(a{Y>i$KWTRQz!f z$U?tF>Ma?L5bYGFO2h9UT<|eQ_R2-o5;gRA&CXhvn zwDo8nDrt_#za@Hwr^* zaK2TH+YRJ9#gF6xzE_;0r13|^RN5Aw6z}Mgp`WslHhO>M{NDi$P%h~U+Cb%fIT}>LsvN2$_mp#8>amI1)$-|UA}nC5z0|5 zFqRzU+0Eb_seIQBJ&aNgAkSm8@)=FfB;{}_XrHXCM1`?alqaYrb*ggMVu;UEwj$qc zzVeh70t=K|I|I2;8Ei!li;jnYO*&b7*k$IxxQ@=-4!3zXG0fYvJqErse0%1dXV zdZV%rIVYQxI~G8Ev-0?8aBfk$dtne;l@n=&Y*Y686Uw$Lb&tWaL;3X?Aa^R?lIO8Y zIfL>jdzCqq0o$iMNxw+muUt;H;DB@-3_Qvd0GSLma=_I==|{6{+rP9=`)|-&{2P{b`?My z=rxth(_pW~bjy?Bl}!%TP_Gsg^<;aYDgtlX%jYzdE%JIoRaEP|){wK8@Ac+AkOf{v z6#%XG`b0Hc8@%dGhq8@c>0&gyy>iIY+2b{XQl9&~KAQ`HLtcC7#5?S@bOD+pUfJEj zdDQD`AFv$rD*rW*$GuwB2Xw-#&Ibsb^!nHl&?&EDl#4&@75**yJL9#P(l=+lrkn!zV;eA89E25 z%zi))QvG!kV;P~^`T$LiY8L`?_mQfvDX5sJD&G%UCaIdGVL~RW6jZG~MHNJ*WU4Bf zuF|Hdw%mc-bkΜGCh-z6WxqD))D&o~0T~#f-C6pUW|%IjSeWfOD>D5BVX>RR!H4 zutIf+JiwKz7(d9ZQh8HadbKKzEgQ|;k6dY3J z&@Mi#svrUFi0b#5pdD3xJ_bD;QynCo$5lgvz;Z$L*?RPMQKjFHDY&GHxd@ias!inV zT~V2u1G=Z0+a2QfRdH>g`k|`mA&`$$Lb7L%RjIVKpQtX@gtDiqs^t2|c? zcn2*nR5dC8@=`VNDOg^q+VlX+Yt^yafZnK11)Eko6P|Hjj1sXyNa&TREdy5Sn8_L~Qm;p%z~0F6-Bxe2)(b*ILFMymJB zM-QXa%_-S2TD@f&pfT$4Lot@I>Tga#Zk&22no40OSny8nQhz)ep9!nWeUn z(V4BTL&w=1b>CkA%~ea|L7S&OM@0+s)wwM}Tc93C-7ZvDUI^qO^-pw#x>%j^BcLVf zg3FLwsvb*qZ_Cu>DdDzU9Zb2=73wOK*;}b@O}1c_ddoyS*lKkm8OJs1=5$lMR$Vn5 z&^q;Oa&7a~hbfXOP!DMeXubLxrLH!pt4Bb5qq>I?oSW2#hXJ`+eYXalXp1^79$L1l zPu7LpHnoBLv+e49T7x^(U8rn)r#c}R&@OfL>JZqij-LvaJ?bmxp=_`E`5qwmsq<;a z?N`4ThvtB~ZXtR zXExP|dqe5YN(lb{8z!no)Ee zHcV63hGw`%OZ9RiG`nbeay0WRU=SlUUFHEArTLn2&7(CJb^scq`DqNAv6{Xi&^b=i z%N@{o&2qYG$ki-}26BQ%LFPA4lS9o!O&Z;UP0|FNM-P)V-AACAqWS3{nyH$Gi_uKe z{6K!lbWK&N`<|is@(0Mx)R>N8oU=5&+d_P{rhH30<{V9>^=Rg57GwZ9Pcz~(H1jpf zQZP#kG~zgjFVqw@!_+O(+@;O6Sd&A!*d>}H?ohT=v*s~q%QW7ET(0SN2FMkf2ug>o z)T|i`)vGkJBha~8GrB*9v_|uUDm>O|yuzStou*qlpnQ#(lJ*6fzB>V}*R-ZAzy{4O zD`sh<<~&)&O`7m1G@CUWt>E0E@i3yJt(rD;9luR8bS>nzYwk8j4?8q}j776k6VL}N zyEI`Bp=`J2m;QkEXo}*|?A4g)Ox>qBtAO}^jay@gAJFWq2iif+dcF(VJwd{VR7Ir()?KtLwc;)CbZs7$ z<<8K~r8r=ww(1|C&CKnAS~!0Up;@pm67eb|~4_liIFyYk5k$AQI4NZEtcQ&uBF@A#he(b0?s4+LcWK zo!5q+fa(j{7k9vUQQM>iv|Q5K$k)HDHS9uvSF|YGz_!rF(j~z)?elhExvsrM=gJN3 zpl{LK)W)@dvO;Zddi}Swo9M0F)}Gsq=8kq!J1D!Wol4hv_q01$SgkEL1%r5?JxqDb zhuVCqx_hKuMmJ4G+7zlQdaSL!6x}}2<{yRJQ|&ztTApd^pFj`KwUf4k<%M?0IzTVA zhiif5mA3KE(DGVan-ZUIw7)(?^HzH`09xK@I|hOFUb|x=p7w*bLk8qNYL)ai06uAp z=%DSV+g%w=f8DIVK^vfpItsagx<=$K57Mo>2WYTP)g8?c-QP}}sJWJO|2Pj)NoBnRlFrB6+x*e_?<_p>gT}w(;=ji+|LCZ*;m2CMaod+GQqjdo( z7}*$Id@`W1y1rCeFiuyr5CY?Mr|W>0tLyj}&;(shZ$Npv*;X_Ybvbl_H%S-W6*?#D zf~YiOimnX>I8${yPN9csx*mf;o31-C3?rMNTXPZ3Ox-%#zO!_{)4HCm>rY449No)J zfadDn7ea2H&ih9+^L1V2=yriFmwd&AI$s*~BHf!ifEMcnMd)vdt`a#XOLdP=V@S(% zO&fr=T(|rUl&#QlqtUF?Mdg9EO1HuX&}!Wga;(?ra_L5Ft*(I?%{rY2{V}h6-ONxz!gr~5#T#D3iuZ=m{s?r+MJ z9@KfB0dz>WvlAxyurA>|le(9?(a|Yg zFr|G?>nf4|c}ABO43@LH?Q}PPN2jA8`>w7r-L>A+`Ox*@ecjm?Kt9l!TcUZWi$95` zNY`@=bUxNu$-R4`d#HxMQ(Y6vzdY03_X5jvU8CCaGDHd%iq1gfX#3twRnQ}weRpqZwR zr;F6-diN6$n4#}`0X@vrU!&e<>2qrVIa}ZF2Q+i^pVdcybM=K=K%1xE-U-lreJ&+J z7U-KSgqDT++1Js-BK?hKXcp_$v0z!EPoT(qseaaQ^tVi3!xN9PTz{@9w5-rCtpnsr z{T3-$R_UuYgxqTV{CQ~B=yy_i)mpu50eWAjzwiM9`TE^-Y8U7$Qn0mNFQAvYLEkkD zEF1N8DXq0hf2KT?ZPo{qIPv4|Jlwg8nm0b1P{tlVEoBE|>TMPA?IY8dhkC_00+xiKVQn;fZK%vQ9{Rb0h_w;!*!29|M zi9kNk%L^g*P~U_M^&`E|0M$kMZz=ikSZ@~L#XZrlq^ReqK8F_HGku?d;C!x^(+T@R zzojFZm-^qR3geYtEP?9R`fl|h_eMYbb3kwPe^Z*`o&LpAaK6_+r<3x7e)4C4KI*@$ z24$c0Zzwq-bWflFVMp%!{;=u zqYYOnj2L4WoQWRB8ov7x%{YUSyzTJ@4dq|*40qn4nP?cF0NP~3$VX5%#juys!&43Q z#{xOc5J4{0bi;5mEHezbv?6C3>XWlR%TV|X{mnL%Plwzb!!LAwG1u_xD#*<$E3~v`fZmFRmxd+P(*Zu&@3WL`VU|DJS z^*)rXGAJuSe6?XGT~w_xY#s&VT0_rTU|DCVE{Ax&VK=3q3Jk&Ymju=u9#q7rHyB1x zwrQi`0R7dQO@^Q8Zep{cs4~R27$&MAu+>nHG7{SiZ3`i{-Ee3l* zDh$Y@hMiZT<(T19AJC2)o>79~grTj=3*L-4mi-ZFef7kIY~Ew=%A$B;`7>s`Z4x~scq$R7`7_YFtr zHtB(3_h7I*G~|9j^T^Pb(ym2@3#-vQHq;&pmM4b0l(TwjFs?%L%%G!6lIMmG6b-&G zN9NjbW`2V|iWdqW30l0O(?Zvy$z;7KK< zpA5cKg4fU6@)Avd@27MDG{D=s6VO2KkL3Cd@}Be<&|q($zt9Zvo=CxRhWGQapk;c0 zQ3cRY?`zG`LzZ{H8|We1yACBuhIxP887#xSThJdm8R0#2Fy=GIyD5c;BfX>P&UBRb zkZ25dwD+nF5E$cKk9^^=-k-e$a-8>}R3OKD=iLNnuJ|D z*87`K$gT5sn~ZMry;X@AS%G)EmT3ALS5YK9!1x_4utCP4Xmm8hIJY{G8OCq@A&_Z2 z6bs}~`bT;uvEq1!!Z9P0Irs zXY8+mvhl{BsHh^>IGUblg7K@mpye4~PekvNjO80a%Vgu1i_pUqqwgSaPBZR$3N6!( z%W2WhF#a$G$eG68Y2ch?JVRG0vyB^Qq0BL^`W2jWjnS9DGSB$yY^a`Zth5K53ydjb z85SBnR-mIrMmJw@E;jz%7tIo5D+-#H8ecbomSx5yIwqDI_xFbQ3ge!9AXge!{0{L| z#_->OTy4xg1Gxg@e5!uiXq1!Jyvf*}u3$DB`%#(e7US}n;M{8bg?7L;WA<1Ke!G#Q zV`+ymXg-j;j7juc#@)uA9U;EQ7<~)^dyRMLfZk`U{s=7ljhCpl;(+md4ImF1+a^QH zA!9maG7cLnQ~~XXk)t(u)VSXa~UKqrl-KH!N?8JDd@@28ES z6i}Tp#!y|}S>t-TQa)$QG~xNq8^g${xnLYh)w~ytZ+oGKOU8TI;Jj>nS_gx;Vr+2$ z&{bm=&HOcE5Au7i8?zH2e#5wTFZ#P_yd40Yw~T#10=jK9s?ppr)}p-rUE^uG^S);s zO`P|QeGZ^`V4PVSsvjDsJ%yG>#;7G=DKgfi`oYJ>&l^DQiLv%~pglE~yAFY8#szeS zKR5o|56BnBUBf=@H@P4j#-%R!syQ@J0IlY9!?pk=a83OO!Qe45b; zndX!AGvucGL`8vfhR<(L(9HB1LFvU=K7W(jG~4G6U5L){>G&6rOMSd%K%l@U^FELp zd>R`8ZS+yr18s}Xw$^~Q`4qlK4?BF)=w@=4&pQs#9-mhtK<9n-H=`BeQ=KA)i$3y9 z&@TBT(%!u66LlKU6`!Pi7}-^yh0g(9^BGKT({-Pb1MoyQeCB4Mx#{zQZWs%Fe)R|K zmXG{Cn%h2I=0VF{A45kB;+_xwpXzwUK0y?Iyzse86&kzB4g3Xz*j>)89>n*Q+eW_W z-f|tuW7${kr2zu_%Vj(Ubg*0n5&oj+8fMuddL>Y-mCIOWhOfl7N3*=PO5sH$h znOf4`oNjvE3bdIfwGPNxrg}0UXPagZL`QQ>?Gu5VYx<2+-1E=_#xmd3*M!+!XgW;i z?IKe(x}sQYa-;3E#I$oAM!nS3|3|PaGo7PoaJlJxCZH82-Ea(Wl_|^umer=AlsH>s z8h;opYfW?a0J+YTPSF5nB3bGzF3|{av}6fdlU2A;Nsh!(3mr&5nWic5e0n`}?#t{s|JTe8?oG?4fx1 zx9Wf6Svr362H!gcDWRkDI~_3H-;!vLTD$Sta~oA){N3FX{q*Bv$rta>jX#4Xi7%>3zU*nOj%{+7+%v0}SaZcZr;p zYuud$Kwjr^$y>b7#Za8}fE#N?^N{mw0OTXihl&thajE2;zUEF5OMk&mvME`DPFwJ55ma5m=@RVy5DWW(k&29&WZ^ z+DddZN08$Ufw_VKa?s`pWVb!K7zk*&#@&0WAjvReu2OgutEb z{sloqMX=luWIRWIHwDu^f~8R4myXH0CD@_>?YW==-H^QybT&ivOM!|48!V3d2i0Q(Ql=PY}%>4+}%Y_wx z2WP%8*B?D>6}r)l$2MU(3f8v^N7I3ZI|8~O-6^a|CTX|ut6rG1J;Gykq2-iNPTT6V zux<=Sc1Ads{tCxgVG{lB_?%Ej)uHEwkrcXL5DwV^fs4ZWRB>}jIGNVxW#QT+^l(M! zTN}u$!gWW{TocxA2+r$5DWanU&~I8TU%kQ;SU^pV1! zQ=*}1;5;oF)(XnbhdRAn)dZDEuWjABx&nhn7d8f%m}qSag7H>z;^g z55f6Nv~@q4=c2F(aJ~?IM}v4N+FS?XuSD^bIejg9_Z@nFD|${*-aAp$4;a~C_o-*W zIRx2mKpE~64?#TB{W;xA4Ru%3`pk0Q{0hiy_n-Tt_u=lz)uD5Q`+7>1=in#6P&UfF z$w(kay9>!59pip*3YxL*zYGD(IQPU+=wZD3g>z_f-Pa!kGSA&N49!IMiw?-{AoozPL=J&Bf^u}HktNKc zf|+dLtcvJphwyd*pfkdvD;VMwQ9ZKxQ$G%zCZky*+8U2$sc6uC2rLs-kHT0AMB*dh zTrcvN47m*=*$+T&6zw~M{x*q5<$?A>)R_`eA4DAnLVSRG`^!LPxm(F9jc}JmW9D+* zzo0D6E%&e_AaA=*vH^MDeLjWw58O|X2Uz5uxeCo=_vUnkJ>28mA!r%rkwtYnlRaLY zf!u75w1Yq{_6SKuv)bb(-AHfrIGBRoH+j^dY~f~)a4L4*;?bF6-<=-cPXq0s$IdUI z^O#4iPw4NQM-lnE*F3C7Ji}d&kmpeL#N&tt;%_`8J<(Brao9n~4HZwNAAx6yr@jC( zTP*AfXqdPXUBL_&f22RYF+#j!FvN4j*>r)oO0t}e($$iQn zpyi-s3mx)@B)8~fJS>q)(EAZdMlNVaCDKf2IVOptEY5L>oU&9WBn9LrpOpMYJ)DyG zcSjGWCEt959?nRL~?hu5?v*aBh_TJrc@xO5N!4YoGL!8PG9l;pgByCv~e0 z;Htn40-o7G&AMV6z0y7kJy0zX3Kjo1agi%zbd9+p8RSxK=b9o znGjzf7m9#fD956nSt4Jb3*~LQ9@v$t=(c6qP8exkJ$v#-16ql~S)a(7PI$Q1rP*s-oj`t#q*hV_heG zMjlMQbUekQ1=6#$KetPx7C`R~=}4-2*(vqf4)wdFEq?`ax0It?!yah}<>-$|>y8I> zTw1;m+lUS>IYJ{!)P8$=a7kdB9+iV@m%_GK6Jj2 zUOEDuuccvf2)vORDe3)QdTls#evpP$gR()gF#73QhD=J1d6vv;2b$qBX6{GGo~?q; z9ND)tq*1a|1(Z#ZRj&->RM}sL(M*%csO)ySY&so;b7VcHprd)RjQi+)vFtUKFD#Yi zoPzjrS><66SRr$tfNodH%G0IADp^b$AlJ%bG*G=>_7}Ojn`Gx{({7cW3P-a`HnB5w z?v?!^gxo&a`n!; z=Q6Z6tD^+_;={aBktgz68!a+^%4Be1ywbZjZS1Nn|Q&%%OZ!&77%_s8yM=ceOKVIs91h1ElIq z`hf30b@c5_a2H^~R8S98`?xJdkUPrxHUZ}uZa4*t zm$~_Lja0~;r@O2NTqe2P&$zECrT32eMg+Nm0_iaGV6&|h# zXo>IuWlGlyLu*1{ldw+!RPPZ6QDWh+&=w5ZX<;aNXP1Pga0nC%gD!*iK=>IQU<2Ie zJcqKO?yt{6ZjHyq&OmPRNb>=5hsQt)KK6N>UJiky9v3FsSAT|}^$F~hGCVmV3>w<)$%BUW^(oBh(4-?UDeF37u6{GD0e?s35Pa{{k;0JF zOJ9TY&zDpQ*5|=>@c(se1gL}Y+M#p^*I*W)3~tD68a}uFDxgtZJf%8DbB*gl^BAu8 z9Vi;h)uJUdp4(FdS{@g82+d?}H(f@o<=T=byN(Nfg3j`}z7*ycaQ&;I*~}fS49*?g z9omn3x%O@FbVs=mwI8aHDbwA|!=9|V?LTzhi)?r=d}q4PfX=?aZgkQw1- zH#D{A8FRVD-vB>>yFuF_kL$@!PR@(^n#4__^L`dL_&GGp=0>iBzBydi4(Mbl*Sisr z%eYo6z_N}Dr`Te&;57`Jh^DX!YiEx3gq_H$p*;0|!hslM+ZcLBK_x3xc-t6b1*JmOt$1X-qg+#g+myw4r!4Q0os)WkF2n9N=r$DMVM%w@=}_tqG-|x}6gO zlg-_t?LUzl-PXQe@`T4ILYN}_G7il&;cvsyNZ#BvRH|RQ z+vt`vxZObThgO;is(JZQV1C`d9z2~-_Q7X*g-Vbe%GJ0DMX$NUaTxI+!6BOa!Gd;_ z1s^LIHy6+x!I|>VGgpvEeiSa2DAP4x(3uYQ6@nRbj;|DW(*65=!HF#N^+52Dj-iKw zx?7?8kw94!az%nrGDVLC!s z3FfHK`)k3_-RSm>U`a*v@K$hh3gq4ie5V2VUeKA!n?DEww?git;2k~6C&8U+K=u<> zt_x&;;k0;g4iIk7fZRY~{XYQ>64s_n?qFd%F`6O5A1P&=A*@gJV41>Rcc5jc@LP&# zvxN8RK})uq(6E@ridk{Y+9GVK~xbPeWTjzxz=}f&K{7nggN5TjBKo$wND*%la&1eVO z7}3ICATU<6?MF1@L=Tccn;`OejBb~R)UEMEOGTNLKwISQK^dJj?xGM3Vmqq7fIQ;< zNa9%5J!lD;RXf0xIHLm8G-|T~n8tnUKuMGFzUZt0@?In%9bjn&k2v zzPJ0W0zTV!Y>iQN=rkNWDW`{n`dckM9<<~1HK6v0Y6cB|e@U@HKkmW>Fb(Afv`3T0 z-KYhIF`WKS(8h8b)1YPw_Z?Z=shod9(57*JQRUZW?s_M%?B*uWsd$hZ_7TH8&b5vO zbe1dZ4P}?PhgHB?$O$PJe89!*2Fo+9&S^kzxkgvf^b^!dhd_ovOwm=2;A^^r94Dwr zZ+Mbm`j-%&Ex5N2-7XYNp~!NXU^1O8D+HVVL=US4$A1IoTES_XeFB^Gq~f-wM>8;W zEtd@it8JYSoXLNT#Ur%S2%*1o%|G!ywb46pc0ZU0tvzza0rS`P29WBTKtGtB%w;!2 zuT!|3@)+MtZZ-Xdo>|-(N}bN$r6SsLkiTZw%yK zuJ2rE*~bn21aS|)oND_@C)#(`g=gt?p@m^r6*VGnUWe9fX=E{ z^Q%TAe}BIqzuEyo&6#BLq;8$7rglk9u9}?GI;D9^YMV~o+a@>foYba6N@}v(|7XKa z>z(FSt=bP^-BNlacT4*rG$tV`;fE;xnf^%#OYV`FVzZt(to zh)!;w)TXzao2_kfyQJ=&(rxLzyC$bq>p&aUmX_W&B{dxY{H!*3gSIxE0|CKRz#>ae z?hFQO&URQcz`_x8g0>Dxoq$3*rUc5Cp3>Qt+^bp}H<*W#lr~*b+d%?xPf2{YHf_pM zgwd8l11uhaUtq6f2g3dc64Gq{4o{$6a#DKtZtO|%aJJOso>%}j+A%3zQXvW!8=gI_ zdshJT_?^>I(p>1610Dr4)itG4ayPI!aacz@$ex8J!`6w-Gq5r?4u1S>O!gUMTzFcV zpE72yeb8v#{seNn44ImZ1EObd{nr9kgpT6 z_y@TqCZIQ4h{a+Hi)v(xNlHymNlQ!eEgQ|0#Wk|n%#F;kR^Q;TP@5BirVv|bTw<)X zhRxE%780Eh)y!P#5z1sKegc1gi$5kbfPVr9#5%Rvf-Nz&aC5LV(PFkG1Y3Rm-J%j~ z;fb-K)~L8xSoQ>Ku+?0VeOB_VSkdvVZe8E7sD$8OVd6+7|NLPUX}X}WYCWvL0CTLx_gi0rX+aWbi;9a6Hpf<~ z`-EGF0%VYb>LqHN*O!4bBo*f4XGibRVIgK`^NVclV6 z;hUvbs_06oS}!U!Ej=l!k)EV7CfoorC*Zwu{^l$x5{$-h#ipM9wpramIt-}gsX z*8dBQ0i`qs{I@j*meLsb-_{sZN@LJ}TVwT78ms@eHP$GlvBrN}W6e?;YyRJA4EP^k zJx-1PW2?uh@qcXfI5n2FdR(?pb-P(|oEz1B+4gpV%%r;R!5Xmc31;7l!I2^HW=m9j zBo9}C8RCsljnKqsvYrX?Q30ilri°UXDKB^S%TSN=7Tp!#Q@AsF?)1W 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

      + * + * 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.2 + */ +#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 (0x02) /*!< [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))) + + +/** + * @} + */ + +#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/103ze/Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h b/103ze/Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h new file mode 100644 index 0000000..187fdde --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/cmsis_armcc.h b/103ze/Drivers/CMSIS/Include/cmsis_armcc.h new file mode 100644 index 0000000..4d9d064 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/cmsis_armclang.h b/103ze/Drivers/CMSIS/Include/cmsis_armclang.h new file mode 100644 index 0000000..162a400 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/cmsis_compiler.h b/103ze/Drivers/CMSIS/Include/cmsis_compiler.h new file mode 100644 index 0000000..94212eb --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/cmsis_gcc.h b/103ze/Drivers/CMSIS/Include/cmsis_gcc.h new file mode 100644 index 0000000..2d9db15 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/cmsis_iccarm.h b/103ze/Drivers/CMSIS/Include/cmsis_iccarm.h new file mode 100644 index 0000000..11c4af0 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/cmsis_version.h b/103ze/Drivers/CMSIS/Include/cmsis_version.h new file mode 100644 index 0000000..660f612 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_armv8mbl.h b/103ze/Drivers/CMSIS/Include/core_armv8mbl.h new file mode 100644 index 0000000..251e4ed --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_armv8mml.h b/103ze/Drivers/CMSIS/Include/core_armv8mml.h new file mode 100644 index 0000000..3a3148e --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_cm0.h b/103ze/Drivers/CMSIS/Include/core_cm0.h new file mode 100644 index 0000000..f929bba --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_cm0plus.h b/103ze/Drivers/CMSIS/Include/core_cm0plus.h new file mode 100644 index 0000000..424011a --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_cm1.h b/103ze/Drivers/CMSIS/Include/core_cm1.h new file mode 100644 index 0000000..0ed678e --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_cm23.h b/103ze/Drivers/CMSIS/Include/core_cm23.h new file mode 100644 index 0000000..acbc5df --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_cm3.h b/103ze/Drivers/CMSIS/Include/core_cm3.h new file mode 100644 index 0000000..74bff64 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_cm33.h b/103ze/Drivers/CMSIS/Include/core_cm33.h new file mode 100644 index 0000000..6cd2db7 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_cm4.h b/103ze/Drivers/CMSIS/Include/core_cm4.h new file mode 100644 index 0000000..7d56873 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_cm7.h b/103ze/Drivers/CMSIS/Include/core_cm7.h new file mode 100644 index 0000000..a14dc62 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_sc000.h b/103ze/Drivers/CMSIS/Include/core_sc000.h new file mode 100644 index 0000000..9b67c92 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/core_sc300.h b/103ze/Drivers/CMSIS/Include/core_sc300.h new file mode 100644 index 0000000..3e8a471 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/mpu_armv7.h b/103ze/Drivers/CMSIS/Include/mpu_armv7.h new file mode 100644 index 0000000..0142203 --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/mpu_armv8.h b/103ze/Drivers/CMSIS/Include/mpu_armv8.h new file mode 100644 index 0000000..62571da --- /dev/null +++ b/103ze/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/103ze/Drivers/CMSIS/Include/tz_context.h b/103ze/Drivers/CMSIS/Include/tz_context.h new file mode 100644 index 0000000..0d09749 --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h new file mode 100644 index 0000000..967547d --- /dev/null +++ b/103ze/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) +#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) +#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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h new file mode 100644 index 0000000..35092c0 --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h new file mode 100644 index 0000000..a365b02 --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h new file mode 100644 index 0000000..155c017 --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h new file mode 100644 index 0000000..9a407f4 --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h new file mode 100644 index 0000000..2de1a2d --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h new file mode 100644 index 0000000..af1f732 --- /dev/null +++ b/103ze/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(__LINE__) ((((__LINE__) & ~(EXTI_PROPERTY_MASK | EXTI_PIN_MASK)) == 0x00u) && \ + ((((__LINE__) & EXTI_PROPERTY_MASK) == EXTI_CONFIG) || \ + (((__LINE__) & EXTI_PROPERTY_MASK) == EXTI_GPIO)) && \ + (((__LINE__) & EXTI_PIN_MASK) < EXTI_LINE_NB)) + +#define IS_EXTI_MODE(__LINE__) ((((__LINE__) & EXTI_MODE_MASK) != 0x00u) && \ + (((__LINE__) & ~EXTI_MODE_MASK) == 0x00u)) + +#define IS_EXTI_TRIGGER(__LINE__) (((__LINE__) & ~EXTI_TRIGGER_MASK) == 0x00u) + +#define IS_EXTI_PENDING_EDGE(__LINE__) ((__LINE__) == EXTI_TRIGGER_RISING_FALLING) + +#define IS_EXTI_CONFIG_LINE(__LINE__) (((__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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h new file mode 100644 index 0000000..52e480b --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h new file mode 100644 index 0000000..0a5b24a --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h new file mode 100644 index 0000000..a344f8f --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h new file mode 100644 index 0000000..5f6c3fd --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h new file mode 100644 index 0000000..9696c00 --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h new file mode 100644 index 0000000..782e33a --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h new file mode 100644 index 0000000..822ca9b --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h new file mode 100644 index 0000000..632976a --- /dev/null +++ b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h @@ -0,0 +1,2123 @@ +/** + ****************************************************************************** + * @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 trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_2TRANSFERS 0x00000100U /*!< The transfer is done to 2 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_3TRANSFERS 0x00000200U /*!< The transfer is done to 3 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_4TRANSFERS 0x00000300U /*!< The transfer is done to 4 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_5TRANSFERS 0x00000400U /*!< The transfer is done to 5 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_6TRANSFERS 0x00000500U /*!< The transfer is done to 6 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_7TRANSFERS 0x00000600U /*!< The transfer is done to 7 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_8TRANSFERS 0x00000700U /*!< The transfer is done to 8 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_9TRANSFERS 0x00000800U /*!< The transfer is done to 9 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_10TRANSFERS 0x00000900U /*!< The transfer is done to 10 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_11TRANSFERS 0x00000A00U /*!< The transfer is done to 11 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_12TRANSFERS 0x00000B00U /*!< The transfer is done to 12 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_13TRANSFERS 0x00000C00U /*!< The transfer is done to 13 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_14TRANSFERS 0x00000D00U /*!< The transfer is done to 14 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_15TRANSFERS 0x00000E00U /*!< The transfer is done to 15 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_16TRANSFERS 0x00000F00U /*!< The transfer is done to 16 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_17TRANSFERS 0x00001000U /*!< The transfer is done to 17 registers starting trom TIMx_CR1 + TIMx_DCR.DBA */ +#define TIM_DMABURSTLENGTH_18TRANSFERS 0x00001100U /*!< The transfer is done to 18 registers starting trom 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/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h b/103ze/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h new file mode 100644 index 0000000..1979d73 --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c new file mode 100644 index 0000000..cd0fdea --- /dev/null +++ b/103ze/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.7 + */ +#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 (0x07U) /*!< [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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c new file mode 100644 index 0000000..e66ccee --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c new file mode 100644 index 0000000..62a1d28 --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c new file mode 100644 index 0000000..33c130a --- /dev/null +++ b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c @@ -0,0 +1,559 @@ +/** + ****************************************************************************** + * @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; + } + + /* 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; + } + else + { + pExtiConfig->Trigger = EXTI_TRIGGER_NONE; + } + + /* 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); + } + else + { + pExtiConfig->GPIOSel = 0x00u; + } + } + else + { + /* No Trigger selected */ + pExtiConfig->Trigger = EXTI_TRIGGER_NONE; + pExtiConfig->GPIOSel = 0x00u; + } + + 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)); + + /* 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)); + + /* 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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c new file mode 100644 index 0000000..2a628e8 --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c new file mode 100644 index 0000000..27b07b8 --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c new file mode 100644 index 0000000..6ba68a9 --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c new file mode 100644 index 0000000..e6dea5b --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c new file mode 100644 index 0000000..a9bf56b --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c new file mode 100644 index 0000000..fb3c5be --- /dev/null +++ b/103ze/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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c new file mode 100644 index 0000000..883ab76 --- /dev/null +++ b/103ze/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)) + { + /* check for RTC Parameters used to output RTCCLK */ + assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); + + FlagStatus pwrclkchanged = RESET; + + /* 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/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c new file mode 100644 index 0000000..2a018bd --- /dev/null +++ b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c @@ -0,0 +1,7421 @@ +/** + ****************************************************************************** + * @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; + } + + 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; + } + + /* 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 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. + * @param htim TIM One Pulse handle + * @param OutputChannel 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 + * @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 + in all combinations, 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. + * @param htim TIM One Pulse handle + * @param OutputChannel TIM Channels to be 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_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 + in all combinations, 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. + * @param htim TIM One Pulse handle + * @param OutputChannel 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 + * @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 + in all combinations, 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. + * @param htim TIM One Pulse handle + * @param OutputChannel 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 + * @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 + in all combinations, 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 : + htim->Base_MspInitCallback = HAL_TIM_Base_MspInit; /* Legacy weak Base MspInit Callback */ + break; + + case HAL_TIM_BASE_MSPDEINIT_CB_ID : + htim->Base_MspDeInitCallback = HAL_TIM_Base_MspDeInit; /* Legacy weak Base Msp DeInit Callback */ + break; + + case HAL_TIM_IC_MSPINIT_CB_ID : + htim->IC_MspInitCallback = HAL_TIM_IC_MspInit; /* Legacy weak IC Msp Init Callback */ + break; + + case HAL_TIM_IC_MSPDEINIT_CB_ID : + htim->IC_MspDeInitCallback = HAL_TIM_IC_MspDeInit; /* Legacy weak IC Msp DeInit Callback */ + break; + + case HAL_TIM_OC_MSPINIT_CB_ID : + htim->OC_MspInitCallback = HAL_TIM_OC_MspInit; /* Legacy weak OC Msp Init Callback */ + break; + + case HAL_TIM_OC_MSPDEINIT_CB_ID : + htim->OC_MspDeInitCallback = HAL_TIM_OC_MspDeInit; /* Legacy weak OC Msp DeInit Callback */ + break; + + case HAL_TIM_PWM_MSPINIT_CB_ID : + htim->PWM_MspInitCallback = HAL_TIM_PWM_MspInit; /* Legacy weak PWM Msp Init Callback */ + break; + + case HAL_TIM_PWM_MSPDEINIT_CB_ID : + htim->PWM_MspDeInitCallback = HAL_TIM_PWM_MspDeInit; /* Legacy weak PWM Msp DeInit Callback */ + break; + + case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID : + htim->OnePulse_MspInitCallback = HAL_TIM_OnePulse_MspInit; /* Legacy weak One Pulse Msp Init Callback */ + break; + + case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID : + htim->OnePulse_MspDeInitCallback = HAL_TIM_OnePulse_MspDeInit; /* Legacy weak One Pulse Msp DeInit Callback */ + break; + + case HAL_TIM_ENCODER_MSPINIT_CB_ID : + htim->Encoder_MspInitCallback = HAL_TIM_Encoder_MspInit; /* Legacy weak Encoder Msp Init Callback */ + break; + + case HAL_TIM_ENCODER_MSPDEINIT_CB_ID : + htim->Encoder_MspDeInitCallback = HAL_TIM_Encoder_MspDeInit; /* Legacy weak Encoder Msp DeInit Callback */ + break; + + case HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID : + htim->HallSensor_MspInitCallback = HAL_TIMEx_HallSensor_MspInit; /* Legacy weak Hall Sensor Msp Init Callback */ + break; + + case HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID : + htim->HallSensor_MspDeInitCallback = HAL_TIMEx_HallSensor_MspDeInit; /* Legacy weak Hall Sensor Msp DeInit Callback */ + break; + + case HAL_TIM_PERIOD_ELAPSED_CB_ID : + htim->PeriodElapsedCallback = HAL_TIM_PeriodElapsedCallback; /* Legacy weak Period Elapsed Callback */ + break; + + case HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID : + htim->PeriodElapsedHalfCpltCallback = HAL_TIM_PeriodElapsedHalfCpltCallback; /* Legacy weak Period Elapsed half complete Callback */ + break; + + case HAL_TIM_TRIGGER_CB_ID : + htim->TriggerCallback = HAL_TIM_TriggerCallback; /* Legacy weak Trigger Callback */ + break; + + case HAL_TIM_TRIGGER_HALF_CB_ID : + htim->TriggerHalfCpltCallback = HAL_TIM_TriggerHalfCpltCallback; /* Legacy weak Trigger half complete Callback */ + break; + + case HAL_TIM_IC_CAPTURE_CB_ID : + htim->IC_CaptureCallback = HAL_TIM_IC_CaptureCallback; /* Legacy weak IC Capture Callback */ + break; + + case HAL_TIM_IC_CAPTURE_HALF_CB_ID : + htim->IC_CaptureHalfCpltCallback = HAL_TIM_IC_CaptureHalfCpltCallback; /* Legacy weak IC Capture half complete Callback */ + break; + + case HAL_TIM_OC_DELAY_ELAPSED_CB_ID : + htim->OC_DelayElapsedCallback = HAL_TIM_OC_DelayElapsedCallback; /* Legacy weak OC Delay Elapsed Callback */ + break; + + case HAL_TIM_PWM_PULSE_FINISHED_CB_ID : + htim->PWM_PulseFinishedCallback = HAL_TIM_PWM_PulseFinishedCallback; /* Legacy weak PWM Pulse Finished Callback */ + break; + + case HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID : + htim->PWM_PulseFinishedHalfCpltCallback = HAL_TIM_PWM_PulseFinishedHalfCpltCallback; /* Legacy weak PWM Pulse Finished half complete Callback */ + break; + + case HAL_TIM_ERROR_CB_ID : + htim->ErrorCallback = HAL_TIM_ErrorCallback; /* Legacy weak Error Callback */ + break; + + case HAL_TIM_COMMUTATION_CB_ID : + htim->CommutationCallback = HAL_TIMEx_CommutCallback; /* Legacy weak Commutation Callback */ + break; + + case HAL_TIM_COMMUTATION_HALF_CB_ID : + htim->CommutationHalfCpltCallback = HAL_TIMEx_CommutHalfCpltCallback; /* Legacy weak Commutation half complete Callback */ + break; + + case HAL_TIM_BREAK_CB_ID : + htim->BreakCallback = HAL_TIMEx_BreakCallback; /* Legacy weak Break Callback */ + 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 = HAL_TIM_Base_MspInit; /* Legacy weak Base MspInit Callback */ + break; + + case HAL_TIM_BASE_MSPDEINIT_CB_ID : + htim->Base_MspDeInitCallback = HAL_TIM_Base_MspDeInit; /* Legacy weak Base Msp DeInit Callback */ + break; + + case HAL_TIM_IC_MSPINIT_CB_ID : + htim->IC_MspInitCallback = HAL_TIM_IC_MspInit; /* Legacy weak IC Msp Init Callback */ + break; + + case HAL_TIM_IC_MSPDEINIT_CB_ID : + htim->IC_MspDeInitCallback = HAL_TIM_IC_MspDeInit; /* Legacy weak IC Msp DeInit Callback */ + break; + + case HAL_TIM_OC_MSPINIT_CB_ID : + htim->OC_MspInitCallback = HAL_TIM_OC_MspInit; /* Legacy weak OC Msp Init Callback */ + break; + + case HAL_TIM_OC_MSPDEINIT_CB_ID : + htim->OC_MspDeInitCallback = HAL_TIM_OC_MspDeInit; /* Legacy weak OC Msp DeInit Callback */ + break; + + case HAL_TIM_PWM_MSPINIT_CB_ID : + htim->PWM_MspInitCallback = HAL_TIM_PWM_MspInit; /* Legacy weak PWM Msp Init Callback */ + break; + + case HAL_TIM_PWM_MSPDEINIT_CB_ID : + htim->PWM_MspDeInitCallback = HAL_TIM_PWM_MspDeInit; /* Legacy weak PWM Msp DeInit Callback */ + break; + + case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID : + htim->OnePulse_MspInitCallback = HAL_TIM_OnePulse_MspInit; /* Legacy weak One Pulse Msp Init Callback */ + break; + + case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID : + htim->OnePulse_MspDeInitCallback = HAL_TIM_OnePulse_MspDeInit; /* Legacy weak One Pulse Msp DeInit Callback */ + break; + + case HAL_TIM_ENCODER_MSPINIT_CB_ID : + htim->Encoder_MspInitCallback = HAL_TIM_Encoder_MspInit; /* Legacy weak Encoder Msp Init Callback */ + break; + + case HAL_TIM_ENCODER_MSPDEINIT_CB_ID : + htim->Encoder_MspDeInitCallback = HAL_TIM_Encoder_MspDeInit; /* Legacy weak Encoder Msp DeInit Callback */ + break; + + case HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID : + htim->HallSensor_MspInitCallback = HAL_TIMEx_HallSensor_MspInit; /* Legacy weak Hall Sensor Msp Init Callback */ + break; + + case HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID : + htim->HallSensor_MspDeInitCallback = HAL_TIMEx_HallSensor_MspDeInit; /* Legacy weak Hall Sensor Msp DeInit Callback */ + 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; /* Legacy weak PeriodElapsedCallback */ + htim->PeriodElapsedHalfCpltCallback = HAL_TIM_PeriodElapsedHalfCpltCallback; /* Legacy weak PeriodElapsedHalfCpltCallback */ + htim->TriggerCallback = HAL_TIM_TriggerCallback; /* Legacy weak TriggerCallback */ + htim->TriggerHalfCpltCallback = HAL_TIM_TriggerHalfCpltCallback; /* Legacy weak TriggerHalfCpltCallback */ + htim->IC_CaptureCallback = HAL_TIM_IC_CaptureCallback; /* Legacy weak IC_CaptureCallback */ + htim->IC_CaptureHalfCpltCallback = HAL_TIM_IC_CaptureHalfCpltCallback; /* Legacy weak IC_CaptureHalfCpltCallback */ + htim->OC_DelayElapsedCallback = HAL_TIM_OC_DelayElapsedCallback; /* Legacy weak OC_DelayElapsedCallback */ + htim->PWM_PulseFinishedCallback = HAL_TIM_PWM_PulseFinishedCallback; /* Legacy weak PWM_PulseFinishedCallback */ + htim->PWM_PulseFinishedHalfCpltCallback = HAL_TIM_PWM_PulseFinishedHalfCpltCallback; /* Legacy weak PWM_PulseFinishedHalfCpltCallback */ + htim->ErrorCallback = HAL_TIM_ErrorCallback; /* Legacy weak ErrorCallback */ + htim->CommutationCallback = HAL_TIMEx_CommutCallback; /* Legacy weak CommutationCallback */ + htim->CommutationHalfCpltCallback = HAL_TIMEx_CommutHalfCpltCallback; /* Legacy weak CommutationHalfCpltCallback */ + htim->BreakCallback = HAL_TIMEx_BreakCallback; /* Legacy weak BreakCallback */ +} +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + +/** + * @} + */ + +#endif /* HAL_TIM_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c new file mode 100644 index 0000000..84522da --- /dev/null +++ b/103ze/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c @@ -0,0 +1,2296 @@ +/** + ****************************************************************************** + * @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. + * @param htim TIM One Pulse handle + * @param OutputChannel 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 + * @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 input_channel_state = TIM_CHANNEL_STATE_GET(htim, input_channel); + HAL_TIM_ChannelStateTypeDef output_channel_state = TIM_CHANNEL_N_STATE_GET(htim, OutputChannel); + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, OutputChannel)); + + /* Check the TIM channels state */ + if ((output_channel_state != HAL_TIM_CHANNEL_STATE_READY) + || (input_channel_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + + /* Set the TIM channels state */ + TIM_CHANNEL_N_STATE_SET(htim, OutputChannel, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_STATE_SET(htim, input_channel, 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. + * @param htim TIM One Pulse handle + * @param OutputChannel 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 + * @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_N_STATE_SET(htim, OutputChannel, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, input_channel, 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. + * @param htim TIM One Pulse handle + * @param OutputChannel 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 + * @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 input_channel_state = TIM_CHANNEL_STATE_GET(htim, input_channel); + HAL_TIM_ChannelStateTypeDef output_channel_state = TIM_CHANNEL_N_STATE_GET(htim, OutputChannel); + + /* Check the parameters */ + assert_param(IS_TIM_CCXN_INSTANCE(htim->Instance, OutputChannel)); + + /* Check the TIM channels state */ + if ((output_channel_state != HAL_TIM_CHANNEL_STATE_READY) + || (input_channel_state != HAL_TIM_CHANNEL_STATE_READY)) + { + return HAL_ERROR; + } + + /* Set the TIM channels state */ + TIM_CHANNEL_N_STATE_SET(htim, OutputChannel, HAL_TIM_CHANNEL_STATE_BUSY); + TIM_CHANNEL_STATE_SET(htim, input_channel, 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. + * @param htim TIM One Pulse handle + * @param OutputChannel 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 + * @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_N_STATE_SET(htim, OutputChannel, HAL_TIM_CHANNEL_STATE_READY); + TIM_CHANNEL_STATE_SET(htim, input_channel, 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/103ze/STM32F103ZETX_FLASH.ld b/103ze/STM32F103ZETX_FLASH.ld new file mode 100644 index 0000000..71d1695 --- /dev/null +++ b/103ze/STM32F103ZETX_FLASH.ld @@ -0,0 +1,177 @@ +/** + ****************************************************************************** + * @file LinkerScript.ld + * @author Auto-generated by STM32CubeIDE + * @brief Linker script for STM32F103ZETx Device from STM32F1 series + * 512Kbytes FLASH + * 64Kbytes RAM + * + * Set heap size, stack size and stack location according + * to application requirements. + * + * Set memory bank area and size if external memory is used + ****************************************************************************** + * @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 + * + ****************************************************************************** + */ + +/* 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 = 64K + FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K +} + +/* Sections */ +SECTIONS +{ + /* The startup code into "FLASH" Rom type memory */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data into "FLASH" Rom type memory */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data into "FLASH" Rom type memory */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >FLASH + + .ARM.extab : { + . = ALIGN(4); + *(.ARM.extab* .gnu.linkonce.armextab.*) + . = ALIGN(4); + } >FLASH + + .ARM : { + . = ALIGN(4); + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + . = ALIGN(4); + } >FLASH + + .preinit_array : + { + . = ALIGN(4); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(4); + } >FLASH + + .init_array : + { + . = ALIGN(4); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + . = ALIGN(4); + } >FLASH + + .fini_array : + { + . = ALIGN(4); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(4); + } >FLASH + + /* Used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections into "RAM" Ram type memory */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + *(.RamFunc) /* .RamFunc sections */ + *(.RamFunc*) /* .RamFunc* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + + } >RAM AT> FLASH + + /* Uninitialized data section into "RAM" Ram type memory */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss section */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + /* Remove information from the compiler libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +}

      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 Os^f8yo{46};{F%=mTN@- literal 0 HcmV?d00001 diff --git a/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su new file mode 100644 index 0000000..b50d33d --- /dev/null +++ b/103ze/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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d new file mode 100644 index 0000000..d8c185e --- /dev/null +++ b/103ze/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/stm32f103xe.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/stm32f103xe.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/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o b/103ze/Debug/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o new file mode 100644 index 0000000000000000000000000000000000000000..76d09e213c0babe370fbe3253c041e2b2cd5fe13 GIT binary patch literal 790240 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

    =9^-`RU6y9vz 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∓YJ+MU8%BV2p2vO1 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
SFm>la0ruU?Lg11K0DO96 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