From 7d5e8d0c31368d35a84e4d854aa7a3dcf6f922a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20MARQUET?= <72651575+BreizhHardware@users.noreply.github.com> Date: Tue, 24 Jun 2025 10:42:28 +0200 Subject: [PATCH] =?UTF-8?q?TP2=20Exo=203=20(ISEN=20D=C3=A9filant)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TP2_ISEN_DISPLAY/.cproject | 173 + TP2_ISEN_DISPLAY/.mxproject | 25 + TP2_ISEN_DISPLAY/.project | 32 + .../com.st.stm32cube.ide.mcu.sfrview.prefs | 2 + .../.settings/language.settings.xml | 25 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/stm32cubeide.project.prefs | 5 + TP2_ISEN_DISPLAY/Core/Inc/main.h | 69 + .../Core/Inc/stm32l1xx_hal_conf.h | 318 + TP2_ISEN_DISPLAY/Core/Inc/stm32l1xx_it.h | 66 + TP2_ISEN_DISPLAY/Core/Src/main.c | 275 + TP2_ISEN_DISPLAY/Core/Src/stm32l1xx_hal_msp.c | 151 + TP2_ISEN_DISPLAY/Core/Src/stm32l1xx_it.c | 203 + TP2_ISEN_DISPLAY/Core/Src/syscalls.c | 176 + TP2_ISEN_DISPLAY/Core/Src/sysmem.c | 79 + TP2_ISEN_DISPLAY/Core/Src/system_stm32l1xx.c | 428 + .../Core/Startup/startup_stm32l152retx.s | 413 + TP2_ISEN_DISPLAY/Debug/Core/Src/main.cyclo | 6 + TP2_ISEN_DISPLAY/Debug/Core/Src/main.d | 54 + TP2_ISEN_DISPLAY/Debug/Core/Src/main.o | Bin 0 -> 716264 bytes TP2_ISEN_DISPLAY/Debug/Core/Src/main.su | 6 + .../Debug/Core/Src/stm32l1xx_hal_msp.cyclo | 3 + .../Debug/Core/Src/stm32l1xx_hal_msp.d | 52 + .../Debug/Core/Src/stm32l1xx_hal_msp.o | Bin 0 -> 712020 bytes .../Debug/Core/Src/stm32l1xx_hal_msp.su | 3 + .../Debug/Core/Src/stm32l1xx_it.cyclo | 9 + .../Debug/Core/Src/stm32l1xx_it.d | 54 + .../Debug/Core/Src/stm32l1xx_it.o | Bin 0 -> 708864 bytes .../Debug/Core/Src/stm32l1xx_it.su | 9 + TP2_ISEN_DISPLAY/Debug/Core/Src/subdir.mk | 42 + .../Debug/Core/Src/syscalls.cyclo | 18 + TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.d | 1 + TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.o | Bin 0 -> 83428 bytes TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.su | 18 + TP2_ISEN_DISPLAY/Debug/Core/Src/sysmem.cyclo | 1 + TP2_ISEN_DISPLAY/Debug/Core/Src/sysmem.d | 1 + TP2_ISEN_DISPLAY/Debug/Core/Src/sysmem.o | Bin 0 -> 55896 bytes TP2_ISEN_DISPLAY/Debug/Core/Src/sysmem.su | 1 + .../Debug/Core/Src/system_stm32l1xx.cyclo | 2 + .../Debug/Core/Src/system_stm32l1xx.d | 51 + .../Debug/Core/Src/system_stm32l1xx.o | Bin 0 -> 709048 bytes .../Debug/Core/Src/system_stm32l1xx.su | 2 + .../Core/Startup/startup_stm32l152retx.d | 2 + .../Core/Startup/startup_stm32l152retx.o | Bin 0 -> 6044 bytes TP2_ISEN_DISPLAY/Debug/Core/Startup/subdir.mk | 27 + .../Debug/Drivers/7Seg_MAX7219/max7219.cyclo | 12 + .../Debug/Drivers/7Seg_MAX7219/max7219.d | 54 + .../Debug/Drivers/7Seg_MAX7219/max7219.o | Bin 0 -> 715956 bytes .../Debug/Drivers/7Seg_MAX7219/max7219.su | 12 + .../Debug/Drivers/7Seg_MAX7219/subdir.mk | 27 + .../Src/stm32l1xx_hal.cyclo | 25 + .../STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.d | 52 + .../STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o | Bin 0 -> 720132 bytes .../STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.su | 25 + .../Src/stm32l1xx_hal_cortex.cyclo | 34 + .../Src/stm32l1xx_hal_cortex.d | 52 + .../Src/stm32l1xx_hal_cortex.o | Bin 0 -> 726228 bytes .../Src/stm32l1xx_hal_cortex.su | 34 + .../Src/stm32l1xx_hal_dma.cyclo | 13 + .../Src/stm32l1xx_hal_dma.d | 52 + .../Src/stm32l1xx_hal_dma.o | Bin 0 -> 717100 bytes .../Src/stm32l1xx_hal_dma.su | 13 + .../Src/stm32l1xx_hal_exti.cyclo | 9 + .../Src/stm32l1xx_hal_exti.d | 52 + .../Src/stm32l1xx_hal_exti.o | Bin 0 -> 712804 bytes .../Src/stm32l1xx_hal_exti.su | 9 + .../Src/stm32l1xx_hal_flash.cyclo | 13 + .../Src/stm32l1xx_hal_flash.d | 52 + .../Src/stm32l1xx_hal_flash.o | Bin 0 -> 714796 bytes .../Src/stm32l1xx_hal_flash.su | 13 + .../Src/stm32l1xx_hal_flash_ex.cyclo | 31 + .../Src/stm32l1xx_hal_flash_ex.d | 52 + .../Src/stm32l1xx_hal_flash_ex.o | Bin 0 -> 728064 bytes .../Src/stm32l1xx_hal_flash_ex.su | 31 + .../Src/stm32l1xx_hal_flash_ramfunc.cyclo | 10 + .../Src/stm32l1xx_hal_flash_ramfunc.d | 52 + .../Src/stm32l1xx_hal_flash_ramfunc.o | Bin 0 -> 713664 bytes .../Src/stm32l1xx_hal_flash_ramfunc.su | 10 + .../Src/stm32l1xx_hal_gpio.cyclo | 8 + .../Src/stm32l1xx_hal_gpio.d | 52 + .../Src/stm32l1xx_hal_gpio.o | Bin 0 -> 713436 bytes .../Src/stm32l1xx_hal_gpio.su | 8 + .../Src/stm32l1xx_hal_pwr.cyclo | 17 + .../Src/stm32l1xx_hal_pwr.d | 52 + .../Src/stm32l1xx_hal_pwr.o | Bin 0 -> 715680 bytes .../Src/stm32l1xx_hal_pwr.su | 17 + .../Src/stm32l1xx_hal_pwr_ex.cyclo | 7 + .../Src/stm32l1xx_hal_pwr_ex.d | 52 + .../Src/stm32l1xx_hal_pwr_ex.o | Bin 0 -> 710340 bytes .../Src/stm32l1xx_hal_pwr_ex.su | 7 + .../Src/stm32l1xx_hal_rcc.cyclo | 15 + .../Src/stm32l1xx_hal_rcc.d | 52 + .../Src/stm32l1xx_hal_rcc.o | Bin 0 -> 722580 bytes .../Src/stm32l1xx_hal_rcc.su | 15 + .../Src/stm32l1xx_hal_rcc_ex.cyclo | 8 + .../Src/stm32l1xx_hal_rcc_ex.d | 52 + .../Src/stm32l1xx_hal_rcc_ex.o | Bin 0 -> 712328 bytes .../Src/stm32l1xx_hal_rcc_ex.su | 8 + .../Src/stm32l1xx_hal_spi.cyclo | 55 + .../Src/stm32l1xx_hal_spi.d | 52 + .../Src/stm32l1xx_hal_spi.o | Bin 0 -> 748208 bytes .../Src/stm32l1xx_hal_spi.su | 55 + .../STM32L1xx_HAL_Driver/Src/subdir.mk | 63 + TP2_ISEN_DISPLAY/Debug/TP2_INIT_DISPLAY.elf | Bin 0 -> 704044 bytes TP2_ISEN_DISPLAY/Debug/TP2_INIT_DISPLAY.list | 5454 ++++++++++ TP2_ISEN_DISPLAY/Debug/TP2_INIT_DISPLAY.map | 2896 ++++++ TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.elf | Bin 0 -> 704176 bytes TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.list | 5427 ++++++++++ TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.map | 2895 ++++++ TP2_ISEN_DISPLAY/Debug/makefile | 95 + TP2_ISEN_DISPLAY/Debug/objects.list | 21 + TP2_ISEN_DISPLAY/Debug/objects.mk | 9 + TP2_ISEN_DISPLAY/Debug/sources.mk | 29 + .../Drivers/7Seg_MAX7219/max7219.c | 269 + .../Drivers/7Seg_MAX7219/max7219.h | 15 + .../Device/ST/STM32L1xx/Include/stm32l152xe.h | 9022 +++++++++++++++++ .../Device/ST/STM32L1xx/Include/stm32l1xx.h | 299 + .../ST/STM32L1xx/Include/system_stm32l1xx.h | 107 + .../CMSIS/Device/ST/STM32L1xx/LICENSE.txt | 6 + .../CMSIS/Device/ST/STM32L1xx/License.md | 83 + .../Drivers/CMSIS/Include/cmsis_armcc.h | 865 ++ .../Drivers/CMSIS/Include/cmsis_armclang.h | 1869 ++++ .../Drivers/CMSIS/Include/cmsis_compiler.h | 266 + .../Drivers/CMSIS/Include/cmsis_gcc.h | 2085 ++++ .../Drivers/CMSIS/Include/cmsis_iccarm.h | 935 ++ .../Drivers/CMSIS/Include/cmsis_version.h | 39 + .../Drivers/CMSIS/Include/core_armv8mbl.h | 1918 ++++ .../Drivers/CMSIS/Include/core_armv8mml.h | 2927 ++++++ .../Drivers/CMSIS/Include/core_cm0.h | 949 ++ .../Drivers/CMSIS/Include/core_cm0plus.h | 1083 ++ .../Drivers/CMSIS/Include/core_cm1.h | 976 ++ .../Drivers/CMSIS/Include/core_cm23.h | 1993 ++++ .../Drivers/CMSIS/Include/core_cm3.h | 1941 ++++ .../Drivers/CMSIS/Include/core_cm33.h | 3002 ++++++ .../Drivers/CMSIS/Include/core_cm4.h | 2129 ++++ .../Drivers/CMSIS/Include/core_cm7.h | 2671 +++++ .../Drivers/CMSIS/Include/core_sc000.h | 1022 ++ .../Drivers/CMSIS/Include/core_sc300.h | 1915 ++++ .../Drivers/CMSIS/Include/mpu_armv7.h | 270 + .../Drivers/CMSIS/Include/mpu_armv8.h | 333 + .../Drivers/CMSIS/Include/tz_context.h | 70 + TP2_ISEN_DISPLAY/Drivers/CMSIS/LICENSE.txt | 201 + .../Inc/Legacy/stm32_hal_legacy.h | 4422 ++++++++ .../STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h | 995 ++ .../Inc/stm32l1xx_hal_cortex.h | 437 + .../Inc/stm32l1xx_hal_def.h | 199 + .../Inc/stm32l1xx_hal_dma.h | 651 ++ .../Inc/stm32l1xx_hal_exti.h | 315 + .../Inc/stm32l1xx_hal_flash.h | 411 + .../Inc/stm32l1xx_hal_flash_ex.h | 965 ++ .../Inc/stm32l1xx_hal_flash_ramfunc.h | 116 + .../Inc/stm32l1xx_hal_gpio.h | 333 + .../Inc/stm32l1xx_hal_gpio_ex.h | 203 + .../Inc/stm32l1xx_hal_pwr.h | 483 + .../Inc/stm32l1xx_hal_pwr_ex.h | 115 + .../Inc/stm32l1xx_hal_rcc.h | 1895 ++++ .../Inc/stm32l1xx_hal_rcc_ex.h | 1027 ++ .../Inc/stm32l1xx_hal_spi.h | 749 ++ .../Inc/stm32l1xx_ll_bus.h | 1100 ++ .../Inc/stm32l1xx_ll_cortex.h | 637 ++ .../Inc/stm32l1xx_ll_dma.h | 1996 ++++ .../Inc/stm32l1xx_ll_exti.h | 1015 ++ .../Inc/stm32l1xx_ll_gpio.h | 987 ++ .../Inc/stm32l1xx_ll_pwr.h | 718 ++ .../Inc/stm32l1xx_ll_rcc.h | 1796 ++++ .../Inc/stm32l1xx_ll_spi.h | 2015 ++++ .../Inc/stm32l1xx_ll_system.h | 2007 ++++ .../Inc/stm32l1xx_ll_utils.h | 270 + .../Drivers/STM32L1xx_HAL_Driver/LICENSE.txt | 6 + .../Drivers/STM32L1xx_HAL_Driver/License.md | 3 + .../STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.c | 570 ++ .../Src/stm32l1xx_hal_cortex.c | 537 + .../Src/stm32l1xx_hal_dma.c | 909 ++ .../Src/stm32l1xx_hal_exti.c | 547 + .../Src/stm32l1xx_hal_flash.c | 723 ++ .../Src/stm32l1xx_hal_flash_ex.c | 1870 ++++ .../Src/stm32l1xx_hal_flash_ramfunc.c | 640 ++ .../Src/stm32l1xx_hal_gpio.c | 546 + .../Src/stm32l1xx_hal_pwr.c | 650 ++ .../Src/stm32l1xx_hal_pwr_ex.c | 158 + .../Src/stm32l1xx_hal_rcc.c | 1394 +++ .../Src/stm32l1xx_hal_rcc_ex.c | 447 + .../Src/stm32l1xx_hal_spi.c | 3962 ++++++++ TP2_ISEN_DISPLAY/STM32L152RETX_FLASH.ld | 187 + TP2_ISEN_DISPLAY/STM32L152RETX_RAM.ld | 187 + .../TP2_ISEN_DISPLAY Debug.launch | 84 + TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY.ioc | 114 + TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY.launch | 85 + 188 files changed, 99700 insertions(+) create mode 100644 TP2_ISEN_DISPLAY/.cproject create mode 100644 TP2_ISEN_DISPLAY/.mxproject create mode 100644 TP2_ISEN_DISPLAY/.project create mode 100644 TP2_ISEN_DISPLAY/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs create mode 100644 TP2_ISEN_DISPLAY/.settings/language.settings.xml create mode 100644 TP2_ISEN_DISPLAY/.settings/org.eclipse.core.resources.prefs create mode 100644 TP2_ISEN_DISPLAY/.settings/stm32cubeide.project.prefs create mode 100644 TP2_ISEN_DISPLAY/Core/Inc/main.h create mode 100644 TP2_ISEN_DISPLAY/Core/Inc/stm32l1xx_hal_conf.h create mode 100644 TP2_ISEN_DISPLAY/Core/Inc/stm32l1xx_it.h create mode 100644 TP2_ISEN_DISPLAY/Core/Src/main.c create mode 100644 TP2_ISEN_DISPLAY/Core/Src/stm32l1xx_hal_msp.c create mode 100644 TP2_ISEN_DISPLAY/Core/Src/stm32l1xx_it.c create mode 100644 TP2_ISEN_DISPLAY/Core/Src/syscalls.c create mode 100644 TP2_ISEN_DISPLAY/Core/Src/sysmem.c create mode 100644 TP2_ISEN_DISPLAY/Core/Src/system_stm32l1xx.c create mode 100644 TP2_ISEN_DISPLAY/Core/Startup/startup_stm32l152retx.s create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/main.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/main.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/main.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/main.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/subdir.mk create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/sysmem.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/sysmem.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/sysmem.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/sysmem.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Startup/startup_stm32l152retx.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Startup/startup_stm32l152retx.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Core/Startup/subdir.mk create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/subdir.mk create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.cyclo create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.d create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.su create mode 100644 TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/subdir.mk create mode 100755 TP2_ISEN_DISPLAY/Debug/TP2_INIT_DISPLAY.elf create mode 100644 TP2_ISEN_DISPLAY/Debug/TP2_INIT_DISPLAY.list create mode 100644 TP2_ISEN_DISPLAY/Debug/TP2_INIT_DISPLAY.map create mode 100755 TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.elf create mode 100644 TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.list create mode 100644 TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.map create mode 100644 TP2_ISEN_DISPLAY/Debug/makefile create mode 100644 TP2_ISEN_DISPLAY/Debug/objects.list create mode 100644 TP2_ISEN_DISPLAY/Debug/objects.mk create mode 100644 TP2_ISEN_DISPLAY/Debug/sources.mk create mode 100644 TP2_ISEN_DISPLAY/Drivers/7Seg_MAX7219/max7219.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/7Seg_MAX7219/max7219.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Device/ST/STM32L1xx/LICENSE.txt create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Device/ST/STM32L1xx/License.md create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_armcc.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_armclang.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_compiler.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_gcc.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_iccarm.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_version.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_armv8mbl.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_armv8mml.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm0.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm0plus.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm1.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm23.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm3.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm33.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm4.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm7.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_sc000.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_sc300.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/mpu_armv7.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/mpu_armv8.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/tz_context.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/CMSIS/LICENSE.txt create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_bus.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_cortex.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_dma.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_exti.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_gpio.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_pwr.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_rcc.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_spi.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_system.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_utils.h create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/LICENSE.txt create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/License.md create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c create mode 100644 TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c create mode 100644 TP2_ISEN_DISPLAY/STM32L152RETX_FLASH.ld create mode 100644 TP2_ISEN_DISPLAY/STM32L152RETX_RAM.ld create mode 100644 TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY Debug.launch create mode 100644 TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY.ioc create mode 100644 TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY.launch diff --git a/TP2_ISEN_DISPLAY/.cproject b/TP2_ISEN_DISPLAY/.cproject new file mode 100644 index 0000000..0e3381c --- /dev/null +++ b/TP2_ISEN_DISPLAY/.cproject @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TP2_ISEN_DISPLAY/.mxproject b/TP2_ISEN_DISPLAY/.mxproject new file mode 100644 index 0000000..5753e82 --- /dev/null +++ b/TP2_ISEN_DISPLAY/.mxproject @@ -0,0 +1,25 @@ +[PreviousLibFiles] +LibFiles=Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_spi.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h;Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_bus.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_rcc.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_crs.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_system.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_utils.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_gpio.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma_ex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_dma.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_pwr.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_cortex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_exti.h;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_spi.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h;Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_bus.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_rcc.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_crs.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_system.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_utils.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_gpio.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma_ex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_dma.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_pwr.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_cortex.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h;Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_exti.h;Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.h;Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h;Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h;Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h;Drivers/CMSIS/Device/ST/STM32L1xx/Source/Templates/system_stm32l1xx.c;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_armv8mbl.h; + +[PreviousUsedCubeIDEFiles] +SourceFiles=Core/Src/main.c;Core/Src/stm32l1xx_it.c;Core/Src/stm32l1xx_hal_msp.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c;Drivers/CMSIS/Device/ST/STM32L1xx/Source/Templates/system_stm32l1xx.c;Core/Src/system_stm32l1xx.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c;Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c;Drivers/CMSIS/Device/ST/STM32L1xx/Source/Templates/system_stm32l1xx.c;Core/Src/system_stm32l1xx.c;;; +HeaderPath=Drivers/STM32L1xx_HAL_Driver/Inc;Drivers/STM32L1xx_HAL_Driver/Inc/Legacy;Drivers/CMSIS/Device/ST/STM32L1xx/Include;Drivers/CMSIS/Include;Core/Inc; +CDefines=USE_HAL_DRIVER;STM32L152xE;USE_HAL_DRIVER;USE_HAL_DRIVER; + +[PreviousGenFiles] +AdvancedFolderStructure=true +HeaderFileListSize=3 +HeaderFiles#0=../Core/Inc/stm32l1xx_it.h +HeaderFiles#1=../Core/Inc/stm32l1xx_hal_conf.h +HeaderFiles#2=../Core/Inc/main.h +HeaderFolderListSize=1 +HeaderPath#0=../Core/Inc +HeaderFiles=; +SourceFileListSize=3 +SourceFiles#0=../Core/Src/stm32l1xx_it.c +SourceFiles#1=../Core/Src/stm32l1xx_hal_msp.c +SourceFiles#2=../Core/Src/main.c +SourceFolderListSize=1 +SourcePath#0=../Core/Src +SourceFiles=; + diff --git a/TP2_ISEN_DISPLAY/.project b/TP2_ISEN_DISPLAY/.project new file mode 100644 index 0000000..c4562ce --- /dev/null +++ b/TP2_ISEN_DISPLAY/.project @@ -0,0 +1,32 @@ + + + TP2_ISEN_DISPLAY + + + + + + 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/TP2_ISEN_DISPLAY/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs b/TP2_ISEN_DISPLAY/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs new file mode 100644 index 0000000..98a69fc --- /dev/null +++ b/TP2_ISEN_DISPLAY/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +sfrviewstate={"fFavorites"\:{"fLists"\:{}},"fProperties"\:{"fNodeProperties"\:{}}} diff --git a/TP2_ISEN_DISPLAY/.settings/language.settings.xml b/TP2_ISEN_DISPLAY/.settings/language.settings.xml new file mode 100644 index 0000000..fd737e1 --- /dev/null +++ b/TP2_ISEN_DISPLAY/.settings/language.settings.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TP2_ISEN_DISPLAY/.settings/org.eclipse.core.resources.prefs b/TP2_ISEN_DISPLAY/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/TP2_ISEN_DISPLAY/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/TP2_ISEN_DISPLAY/.settings/stm32cubeide.project.prefs b/TP2_ISEN_DISPLAY/.settings/stm32cubeide.project.prefs new file mode 100644 index 0000000..a0b3b52 --- /dev/null +++ b/TP2_ISEN_DISPLAY/.settings/stm32cubeide.project.prefs @@ -0,0 +1,5 @@ +635E684B79701B039C64EA45C3F84D30=20408E19A1D483CC68E7BF859CC595B4 +66BE74F758C12D739921AEA421D593D3=3 +8DF89ED150041C4CBC7CB9A9CAA90856=787343FA0477F66DEA4B2B86368887F5 +DC22A860405A8BF2F2C095E5B6529F12=787343FA0477F66DEA4B2B86368887F5 +eclipse.preferences.version=1 diff --git a/TP2_ISEN_DISPLAY/Core/Inc/main.h b/TP2_ISEN_DISPLAY/Core/Inc/main.h new file mode 100644 index 0000000..f645caf --- /dev/null +++ b/TP2_ISEN_DISPLAY/Core/Inc/main.h @@ -0,0 +1,69 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.h + * @brief : Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_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 */ diff --git a/TP2_ISEN_DISPLAY/Core/Inc/stm32l1xx_hal_conf.h b/TP2_ISEN_DISPLAY/Core/Inc/stm32l1xx_hal_conf.h new file mode 100644 index 0000000..7ce33fa --- /dev/null +++ b/TP2_ISEN_DISPLAY/Core/Inc/stm32l1xx_hal_conf.h @@ -0,0 +1,318 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l1xx_hal_conf.h + * @brief HAL configuration file. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_CONF_H +#define __STM32L1xx_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_COMP_MODULE_ENABLED */ +/*#define HAL_CRC_MODULE_ENABLED */ +/*#define HAL_CRYP_MODULE_ENABLED */ +/*#define HAL_DAC_MODULE_ENABLED */ +/*#define HAL_I2C_MODULE_ENABLED */ +/*#define HAL_I2S_MODULE_ENABLED */ +/*#define HAL_IRDA_MODULE_ENABLED */ +/*#define HAL_IWDG_MODULE_ENABLED */ +/*#define HAL_LCD_MODULE_ENABLED */ +/*#define HAL_NOR_MODULE_ENABLED */ +/*#define HAL_OPAMP_MODULE_ENABLED */ +/*#define HAL_PCD_MODULE_ENABLED */ +/*#define HAL_RTC_MODULE_ENABLED */ +/*#define HAL_SD_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_GPIO_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## 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 ((uint32_t)24000000) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)100) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal Multiple Speed oscillator (MSI) default value. + * This value is the default MSI range value after Reset. + */ +#if !defined (MSI_VALUE) + #define MSI_VALUE ((uint32_t)2097000) /*!< Value of the Internal oscillator in Hz*/ +#endif /* MSI_VALUE */ +/** + * @brief Internal High Speed oscillator (HSI) value. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSI is used as system clock source, directly or through the PLL). + */ +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE (37000U) /*!< 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 ((uint32_t)32768) /*!< Value of the External oscillator in Hz*/ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for LSE start up, in ms */ +#endif /* HSE_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 ((uint32_t)3300) /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY ((uint32_t)15) /*!< tick interrupt priority */ +#define USE_RTOS 0 +#define PREFETCH_ENABLE 0 +#define INSTRUCTION_CACHE_ENABLE 1 +#define DATA_CACHE_ENABLE 1 + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* ################## Register callback feature configuration ############### */ +/** + * @brief Set below the peripheral configuration to "1U" to add the support + * of HAL callback registration/deregistration feature for the HAL + * driver(s). This allows user application to provide specific callback + * functions thanks to HAL_PPP_RegisterCallback() rather than overwriting + * the default weak callback functions (see each stm32l0xx_hal_ppp.h file + * for possible callback identifiers defined in HAL_PPP_CallbackIDTypeDef + * for each PPP peripheral). + */ +#define USE_HAL_ADC_REGISTER_CALLBACKS 0U +#define USE_HAL_COMP_REGISTER_CALLBACKS 0U +#define USE_HAL_DAC_REGISTER_CALLBACKS 0U +#define USE_HAL_I2C_REGISTER_CALLBACKS 0U +#define USE_HAL_I2S_REGISTER_CALLBACKS 0U +#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U +#define USE_HAL_OPAMP_REGISTER_CALLBACKS 0U +#define USE_HAL_PCD_REGISTER_CALLBACKS 0U +#define USE_HAL_RTC_REGISTER_CALLBACKS 0U +#define USE_HAL_SDMMC_REGISTER_CALLBACKS 0U +#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U +#define USE_HAL_SPI_REGISTER_CALLBACKS 0U +#define USE_HAL_TIM_REGISTER_CALLBACKS 0U +#define USE_HAL_UART_REGISTER_CALLBACKS 0U +#define USE_HAL_USART_REGISTER_CALLBACKS 0U +#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U + +/* ################## 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 "stm32l1xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "stm32l1xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED + #include "stm32l1xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "stm32l1xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "stm32l1xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_COMP_MODULE_ENABLED + #include "stm32l1xx_hal_comp.h" +#endif /* HAL_COMP_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "stm32l1xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_CRYP_MODULE_ENABLED + #include "stm32l1xx_hal_cryp.h" +#endif /* HAL_CRYP_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED + #include "stm32l1xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "stm32l1xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED + #include "stm32l1xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED + #include "stm32l1xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "stm32l1xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED + #include "stm32l1xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "stm32l1xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_LCD_MODULE_ENABLED + #include "stm32l1xx_hal_lcd.h" +#endif /* HAL_LCD_MODULE_ENABLED */ + +#ifdef HAL_OPAMP_MODULE_ENABLED + #include "stm32l1xx_hal_opamp.h" +#endif /* HAL_OPAMP_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "stm32l1xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED + #include "stm32l1xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED + #include "stm32l1xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "stm32l1xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "stm32l1xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "stm32l1xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "stm32l1xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED + #include "stm32l1xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED + #include "stm32l1xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED + #include "stm32l1xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED + #include "stm32l1xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "stm32l1xx_hal_exti.h" +#endif /* HAL_EXTI_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 /* __STM32L1xx_HAL_CONF_H */ + diff --git a/TP2_ISEN_DISPLAY/Core/Inc/stm32l1xx_it.h b/TP2_ISEN_DISPLAY/Core/Inc/stm32l1xx_it.h new file mode 100644 index 0000000..2c5eb24 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Core/Inc/stm32l1xx_it.h @@ -0,0 +1,66 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l1xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_IT_H +#define __STM32L1xx_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 /* __STM32L1xx_IT_H */ diff --git a/TP2_ISEN_DISPLAY/Core/Src/main.c b/TP2_ISEN_DISPLAY/Core/Src/main.c new file mode 100644 index 0000000..f7b094a --- /dev/null +++ b/TP2_ISEN_DISPLAY/Core/Src/main.c @@ -0,0 +1,275 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +#include "max7219.h" + +/* 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 ---------------------------------------------------------*/ +SPI_HandleTypeDef hspi1; + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_SPI1_Init(void); +/* USER CODE BEGIN PFP */ +void displayScrollingText(); + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ +void displayScrollingText() { + const uint8_t I = 0b00110000; // I + const uint8_t S = 0b01011011; // S + const uint8_t E = 0b01001111; // E + const uint8_t N = 0b00110110; // N + const uint8_t SPACE = 0b00000000; // Espace + + const uint8_t symbols[] = {I, S, E, N, SPACE}; + const uint8_t numSymbols = sizeof(symbols) / sizeof(symbols[0]); + + while (1) { + for (int i = 0; i < numSymbols; i++) { + for (int j = 0; j < 4; j++) { + MAX7219_Write(j + 1, symbols[(i + j) % numSymbols]); + } + HAL_Delay(500); + } + } +} + +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_SPI1_Init(); + /* USER CODE BEGIN 2 */ + MAX7219_Init(); + + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + MAX7219_Clear(); + while (1) + { + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + displayScrollingText(); + } + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; + 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_HSI; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @brief SPI1 Initialization Function + * @param None + * @retval None + */ +static void MX_SPI1_Init(void) +{ + + /* USER CODE BEGIN SPI1_Init 0 */ + + /* USER CODE END SPI1_Init 0 */ + + /* USER CODE BEGIN SPI1_Init 1 */ + + /* USER CODE END SPI1_Init 1 */ + /* SPI1 parameter configuration*/ + hspi1.Instance = SPI1; + hspi1.Init.Mode = SPI_MODE_MASTER; + hspi1.Init.Direction = SPI_DIRECTION_2LINES; + hspi1.Init.DataSize = SPI_DATASIZE_8BIT; + hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; + hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; + hspi1.Init.NSS = SPI_NSS_SOFT; + hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; + hspi1.Init.TIMode = SPI_TIMODE_DISABLE; + hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + hspi1.Init.CRCPolynomial = 10; + if (HAL_SPI_Init(&hspi1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN SPI1_Init 2 */ + + /* USER CODE END SPI1_Init 2 */ + +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + /* USER CODE BEGIN MX_GPIO_Init_1 */ + + /* USER CODE END MX_GPIO_Init_1 */ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET); + + /*Configure GPIO pin : PC0 */ + GPIO_InitStruct.Pin = GPIO_PIN_0; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + /* USER CODE BEGIN MX_GPIO_Init_2 */ + + /* USER CODE END MX_GPIO_Init_2 */ +} + +/* USER CODE BEGIN 4 */ + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + __disable_irq(); + while (1) + { + } + /* USER CODE END Error_Handler_Debug */ +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ diff --git a/TP2_ISEN_DISPLAY/Core/Src/stm32l1xx_hal_msp.c b/TP2_ISEN_DISPLAY/Core/Src/stm32l1xx_hal_msp.c new file mode 100644 index 0000000..7b71e54 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Core/Src/stm32l1xx_hal_msp.c @@ -0,0 +1,151 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l1xx_hal_msp.c + * @brief This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_COMP_CLK_ENABLE(); + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +/** + * @brief SPI MSP Initialization + * This function configures the hardware resources used in this example + * @param hspi: SPI handle pointer + * @retval None + */ +void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(hspi->Instance==SPI1) + { + /* USER CODE BEGIN SPI1_MspInit 0 */ + + /* USER CODE END SPI1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_SPI1_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**SPI1 GPIO Configuration + PA5 ------> SPI1_SCK + PA6 ------> SPI1_MISO + PA7 ------> SPI1_MOSI + */ + GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN SPI1_MspInit 1 */ + + /* USER CODE END SPI1_MspInit 1 */ + + } + +} + +/** + * @brief SPI MSP De-Initialization + * This function freeze the hardware resources used in this example + * @param hspi: SPI handle pointer + * @retval None + */ +void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi) +{ + if(hspi->Instance==SPI1) + { + /* USER CODE BEGIN SPI1_MspDeInit 0 */ + + /* USER CODE END SPI1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_SPI1_CLK_DISABLE(); + + /**SPI1 GPIO Configuration + PA5 ------> SPI1_SCK + PA6 ------> SPI1_MISO + PA7 ------> SPI1_MOSI + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); + + /* USER CODE BEGIN SPI1_MspDeInit 1 */ + + /* USER CODE END SPI1_MspDeInit 1 */ + } + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/TP2_ISEN_DISPLAY/Core/Src/stm32l1xx_it.c b/TP2_ISEN_DISPLAY/Core/Src/stm32l1xx_it.c new file mode 100644 index 0000000..afd5dcc --- /dev/null +++ b/TP2_ISEN_DISPLAY/Core/Src/stm32l1xx_it.c @@ -0,0 +1,203 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l1xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "stm32l1xx_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 Pre-fetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + /* USER CODE BEGIN SVC_IRQn 0 */ + + /* USER CODE END SVC_IRQn 0 */ + /* USER CODE BEGIN SVC_IRQn 1 */ + + /* USER CODE END SVC_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 */ +} + +/******************************************************************************/ +/* STM32L1xx 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_stm32l1xx.s). */ +/******************************************************************************/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/TP2_ISEN_DISPLAY/Core/Src/syscalls.c b/TP2_ISEN_DISPLAY/Core/Src/syscalls.c new file mode 100644 index 0000000..8884b5a --- /dev/null +++ b/TP2_ISEN_DISPLAY/Core/Src/syscalls.c @@ -0,0 +1,176 @@ +/** + ****************************************************************************** + * @file syscalls.c + * @author Auto-generated by STM32CubeIDE + * @brief STM32CubeIDE Minimal System calls file + * + * For more information about which c-functions + * need which of these lowlevel functions + * please consult the Newlib libc-manual + ****************************************************************************** + * @attention + * + * Copyright (c) 2020-2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Includes */ +#include +#include +#include +#include +#include +#include +#include +#include + + +/* Variables */ +extern int __io_putchar(int ch) __attribute__((weak)); +extern int __io_getchar(void) __attribute__((weak)); + + +char *__env[1] = { 0 }; +char **environ = __env; + + +/* Functions */ +void initialise_monitor_handles() +{ +} + +int _getpid(void) +{ + return 1; +} + +int _kill(int pid, int sig) +{ + (void)pid; + (void)sig; + errno = EINVAL; + return -1; +} + +void _exit (int status) +{ + _kill(status, -1); + while (1) {} /* Make sure we hang here */ +} + +__attribute__((weak)) int _read(int file, char *ptr, int len) +{ + (void)file; + int DataIdx; + + for (DataIdx = 0; DataIdx < len; DataIdx++) + { + *ptr++ = __io_getchar(); + } + + return len; +} + +__attribute__((weak)) int _write(int file, char *ptr, int len) +{ + (void)file; + int DataIdx; + + for (DataIdx = 0; DataIdx < len; DataIdx++) + { + __io_putchar(*ptr++); + } + return len; +} + +int _close(int file) +{ + (void)file; + return -1; +} + + +int _fstat(int file, struct stat *st) +{ + (void)file; + st->st_mode = S_IFCHR; + return 0; +} + +int _isatty(int file) +{ + (void)file; + return 1; +} + +int _lseek(int file, int ptr, int dir) +{ + (void)file; + (void)ptr; + (void)dir; + return 0; +} + +int _open(char *path, int flags, ...) +{ + (void)path; + (void)flags; + /* Pretend like we always fail */ + return -1; +} + +int _wait(int *status) +{ + (void)status; + errno = ECHILD; + return -1; +} + +int _unlink(char *name) +{ + (void)name; + errno = ENOENT; + return -1; +} + +int _times(struct tms *buf) +{ + (void)buf; + return -1; +} + +int _stat(char *file, struct stat *st) +{ + (void)file; + st->st_mode = S_IFCHR; + return 0; +} + +int _link(char *old, char *new) +{ + (void)old; + (void)new; + errno = EMLINK; + return -1; +} + +int _fork(void) +{ + errno = EAGAIN; + return -1; +} + +int _execve(char *name, char **argv, char **env) +{ + (void)name; + (void)argv; + (void)env; + errno = ENOMEM; + return -1; +} diff --git a/TP2_ISEN_DISPLAY/Core/Src/sysmem.c b/TP2_ISEN_DISPLAY/Core/Src/sysmem.c new file mode 100644 index 0000000..5d9f7e6 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Core/Src/sysmem.c @@ -0,0 +1,79 @@ +/** + ****************************************************************************** + * @file sysmem.c + * @author Generated by STM32CubeIDE + * @brief STM32CubeIDE System Memory calls file + * + * For more information about which C functions + * need which of these lowlevel functions + * please consult the newlib libc manual + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Includes */ +#include +#include + +/** + * Pointer to the current high watermark of the heap usage + */ +static uint8_t *__sbrk_heap_end = NULL; + +/** + * @brief _sbrk() allocates memory to the newlib heap and is used by malloc + * and others from the C library + * + * @verbatim + * ############################################################################ + * # .data # .bss # newlib heap # MSP stack # + * # # # # Reserved by _Min_Stack_Size # + * ############################################################################ + * ^-- RAM start ^-- _end _estack, RAM end --^ + * @endverbatim + * + * This implementation starts allocating at the '_end' linker symbol + * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack + * The implementation considers '_estack' linker symbol to be RAM end + * NOTE: If the MSP stack, at any point during execution, grows larger than the + * reserved size, please increase the '_Min_Stack_Size'. + * + * @param incr Memory size + * @return Pointer to allocated memory + */ +void *_sbrk(ptrdiff_t incr) +{ + extern uint8_t _end; /* Symbol defined in the linker script */ + extern uint8_t _estack; /* Symbol defined in the linker script */ + extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */ + const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size; + const uint8_t *max_heap = (uint8_t *)stack_limit; + uint8_t *prev_heap_end; + + /* Initialize heap end at first call */ + if (NULL == __sbrk_heap_end) + { + __sbrk_heap_end = &_end; + } + + /* Protect heap from growing into the reserved MSP stack */ + if (__sbrk_heap_end + incr > max_heap) + { + errno = ENOMEM; + return (void *)-1; + } + + prev_heap_end = __sbrk_heap_end; + __sbrk_heap_end += incr; + + return (void *)prev_heap_end; +} diff --git a/TP2_ISEN_DISPLAY/Core/Src/system_stm32l1xx.c b/TP2_ISEN_DISPLAY/Core/Src/system_stm32l1xx.c new file mode 100644 index 0000000..093a38b --- /dev/null +++ b/TP2_ISEN_DISPLAY/Core/Src/system_stm32l1xx.c @@ -0,0 +1,428 @@ +/** + ****************************************************************************** + * @file system_stm32l1xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. + * + * This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32l1xx.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. + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2017-2021 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32l1xx_system + * @{ + */ + +/** @addtogroup STM32L1xx_System_Private_Includes + * @{ + */ + +#include "stm32l1xx.h" + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_Defines + * @{ + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)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 ((uint32_t)16000000U) /*!< 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 mounted + on STM32L152D_EVAL board as data memory */ +/* #define DATA_IN_ExtSRAM */ + +/* 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. */ +#else +#define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field. + This value must be a multiple of 0x200. */ +#endif /* VECT_TAB_SRAM */ + +#if !defined(VECT_TAB_OFFSET) +#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table offset field. + This value must be a multiple of 0x200. */ +#endif /* VECT_TAB_OFFSET */ + +#endif /* USER_VECT_TAB_ADDRESS */ + +/******************************************************************************/ +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_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 = 2097000U; +const uint8_t PLLMulTable[9] = {3U, 4U, 6U, 8U, 12U, 16U, 24U, 32U, 48U}; +const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U}; +const uint8_t APBPrescTable[8] = {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U}; + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_FunctionPrototypes + * @{ + */ + +#if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD) +#ifdef DATA_IN_ExtSRAM + static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system. + * Initialize the Embedded Flash Interface, the PLL and update the + * SystemCoreClock variable. + * @param None + * @retval None + */ +void SystemInit (void) +{ +#ifdef DATA_IN_ExtSRAM + SystemInit_ExtMemCtl(); +#endif /* DATA_IN_ExtSRAM */ + + /* 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 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 MSI, SystemCoreClock will contain the MSI + * value as defined by the MSI range. + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32l1xx.h file (default value + * 16 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32l1xx.h file (default value + * 8 MHz), user has to ensure that HSE_VALUE is same as the real + * frequency of the crystal used. Otherwise, this function may + * have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * @param None + * @retval None + */ +void SystemCoreClockUpdate (void) +{ + uint32_t tmp = 0, pllmul = 0, plldiv = 0, pllsource = 0, msirange = 0; + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00: /* MSI used as system clock */ + msirange = (RCC->ICSCR & RCC_ICSCR_MSIRANGE) >> 13; + SystemCoreClock = (32768 * (1 << (msirange + 1))); + break; + case 0x04: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + case 0x08: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + case 0x0C: /* PLL used as system clock */ + /* Get PLL clock source and multiplication factor ----------------------*/ + pllmul = RCC->CFGR & RCC_CFGR_PLLMUL; + plldiv = RCC->CFGR & RCC_CFGR_PLLDIV; + pllmul = PLLMulTable[(pllmul >> 18)]; + plldiv = (plldiv >> 22) + 1; + + pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; + + if (pllsource == 0x00) + { + /* HSI oscillator clock selected as PLL clock entry */ + SystemCoreClock = (((HSI_VALUE) * pllmul) / plldiv); + } + else + { + /* HSE selected as PLL clock entry */ + SystemCoreClock = (((HSE_VALUE) * pllmul) / plldiv); + } + break; + default: /* MSI used as system clock */ + msirange = (RCC->ICSCR & RCC_ICSCR_MSIRANGE) >> 13; + SystemCoreClock = (32768 * (1 << (msirange + 1))); + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +#if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD) +#ifdef DATA_IN_ExtSRAM +/** + * @brief Setup the external memory controller. + * Called in SystemInit() function before jump to main. + * This function configures the external SRAM mounted on STM32L152D_EVAL board + * 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 = 0; + + /* Flash 1 wait state */ + FLASH->ACR |= FLASH_ACR_LATENCY; + + /* Power enable */ + RCC->APB1ENR |= RCC_APB1ENR_PWREN; + + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_PWREN); + + /* Select the Voltage Range 1 (1.8 V) */ + PWR->CR = PWR_CR_VOS_0; + + /* Wait Until the Voltage Regulator is ready */ + while((PWR->CSR & PWR_CSR_VOSF) != RESET) + { + } + +/*-- GPIOs Configuration -----------------------------------------------------*/ +/* + +-------------------+--------------------+------------------+------------------+ + + SRAM pins assignment + + +-------------------+--------------------+------------------+------------------+ + | PD0 <-> FSMC_D2 | PE0 <-> FSMC_NBL0 | PF0 <-> FSMC_A0 | PG0 <-> FSMC_A10 | + | PD1 <-> FSMC_D3 | PE1 <-> FSMC_NBL1 | PF1 <-> FSMC_A1 | PG1 <-> FSMC_A11 | + | PD4 <-> FSMC_NOE | PE7 <-> FSMC_D4 | PF2 <-> FSMC_A2 | PG2 <-> FSMC_A12 | + | PD5 <-> FSMC_NWE | PE8 <-> FSMC_D5 | PF3 <-> FSMC_A3 | PG3 <-> FSMC_A13 | + | PD8 <-> FSMC_D13 | PE9 <-> FSMC_D6 | PF4 <-> FSMC_A4 | PG4 <-> FSMC_A14 | + | PD9 <-> FSMC_D14 | PE10 <-> FSMC_D7 | PF5 <-> FSMC_A5 | PG5 <-> FSMC_A15 | + | PD10 <-> FSMC_D15 | PE11 <-> FSMC_D8 | PF12 <-> FSMC_A6 | PG10<-> FSMC_NE2 | + | PD11 <-> FSMC_A16 | PE12 <-> FSMC_D9 | PF13 <-> FSMC_A7 |------------------+ + | PD12 <-> FSMC_A17 | PE13 <-> FSMC_D10 | PF14 <-> FSMC_A8 | + | PD13 <-> FSMC_A18 | PE14 <-> FSMC_D11 | PF15 <-> FSMC_A9 | + | PD14 <-> FSMC_D0 | PE15 <-> FSMC_D12 |------------------+ + | PD15 <-> FSMC_D1 |--------------------+ + +-------------------+ +*/ + + /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */ + RCC->AHBENR = 0x000080D8; + + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIODEN); + + /* Connect PDx pins to FSMC Alternate function */ + GPIOD->AFR[0] = 0x00CC00CC; + GPIOD->AFR[1] = 0xCCCCCCCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xAAAA0A0A; + /* Configure PDx pins speed to 40 MHz */ + GPIOD->OSPEEDR = 0xFFFF0F0F; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FSMC Alternate function */ + GPIOE->AFR[0] = 0xC00000CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA800A; + /* Configure PEx pins speed to 40 MHz */ + GPIOE->OSPEEDR = 0xFFFFC00F; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FSMC Alternate function */ + GPIOF->AFR[0] = 0x00CCCCCC; + GPIOF->AFR[1] = 0xCCCC0000; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA000AAA; + /* Configure PFx pins speed to 40 MHz */ + GPIOF->OSPEEDR = 0xFF000FFF; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FSMC Alternate function */ + GPIOG->AFR[0] = 0x00CCCCCC; + GPIOG->AFR[1] = 0x00000C00; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0x00200AAA; + /* Configure PGx pins speed to 40 MHz */ + GPIOG->OSPEEDR = 0x00300FFF; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + +/*-- FSMC Configuration ------------------------------------------------------*/ + /* Enable the FSMC interface clock */ + RCC->AHBENR = 0x400080D8; + + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_FSMCEN); + + (void)(tmpreg); + + /* Configure and enable Bank1_SRAM3 */ + FSMC_Bank1->BTCR[4] = 0x00001011; + FSMC_Bank1->BTCR[5] = 0x00000300; + FSMC_Bank1E->BWTR[4] = 0x0FFFFFFF; +/* + Bank1_SRAM3 is configured as follow: + + p.FSMC_AddressSetupTime = 0; + p.FSMC_AddressHoldTime = 0; + p.FSMC_DataSetupTime = 3; + p.FSMC_BusTurnAroundDuration = 0; + p.FSMC_CLKDivision = 0; + p.FSMC_DataLatency = 0; + p.FSMC_AccessMode = FSMC_AccessMode_A; + + FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM3; + FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; + FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM; + FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; + FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; + FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; + FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; + FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; + FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; + FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; + FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; + FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; + FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; + FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p; + FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p; + + FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); + + FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3, ENABLE); +*/ + +} +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + + diff --git a/TP2_ISEN_DISPLAY/Core/Startup/startup_stm32l152retx.s b/TP2_ISEN_DISPLAY/Core/Startup/startup_stm32l152retx.s new file mode 100644 index 0000000..d3dd841 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Core/Startup/startup_stm32l152retx.s @@ -0,0 +1,413 @@ +/** + ****************************************************************************** + * @file startup_stm32l152xe.s + * @author MCD Application Team + * @brief STM32L152XE Devices vector table for GCC toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - Configure the clock system + * - Branches to main in the C library (which eventually + * calls main()). + * After Reset the Cortex-M3 processor is in Thread mode, + * priority is Privileged, and the Stack is set to Main. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017-2021 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + + .syntax unified + .cpu cortex-m3 + .fpu softvfp + .thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +.equ BootRAM, 0xF108F85F +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval : None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + + +/* Call the clock system initialization function.*/ + bl SystemInit + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + ldr r1, =_edata + ldr r2, =_sidata + movs r3, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r4, [r2, r3] + str r4, [r0, r3] + adds r3, r3, #4 + +LoopCopyDataInit: + adds r4, r0, r3 + cmp r4, r1 + bcc CopyDataInit + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + ldr r4, =_ebss + movs r3, #0 + b LoopFillZerobss + +FillZerobss: + str r3, [r2] + adds r2, r2, #4 + +LoopFillZerobss: + cmp r2, r4 + bcc FillZerobss + +/* Call static constructors */ + bl __libc_init_array +/* Call the application's entry point.*/ + bl main + 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_STAMP_IRQHandler + .word RTC_WKUP_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_IRQHandler + .word EXTI3_IRQHandler + .word EXTI4_IRQHandler + .word DMA1_Channel1_IRQHandler + .word DMA1_Channel2_IRQHandler + .word DMA1_Channel3_IRQHandler + .word DMA1_Channel4_IRQHandler + .word DMA1_Channel5_IRQHandler + .word DMA1_Channel6_IRQHandler + .word DMA1_Channel7_IRQHandler + .word ADC1_IRQHandler + .word USB_HP_IRQHandler + .word USB_LP_IRQHandler + .word DAC_IRQHandler + .word COMP_IRQHandler + .word EXTI9_5_IRQHandler + .word LCD_IRQHandler + .word TIM9_IRQHandler + .word TIM10_IRQHandler + .word TIM11_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 USB_FS_WKUP_IRQHandler + .word TIM6_IRQHandler + .word TIM7_IRQHandler + .word 0 + .word TIM5_IRQHandler + .word SPI3_IRQHandler + .word UART4_IRQHandler + .word UART5_IRQHandler + .word DMA2_Channel1_IRQHandler + .word DMA2_Channel2_IRQHandler + .word DMA2_Channel3_IRQHandler + .word DMA2_Channel4_IRQHandler + .word DMA2_Channel5_IRQHandler + .word 0 + .word COMP_ACQ_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word BootRAM /* @0x108. This is for boot in RAM mode for + STM32L152XE 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_STAMP_IRQHandler + .thumb_set TAMPER_STAMP_IRQHandler,Default_Handler + + .weak RTC_WKUP_IRQHandler + .thumb_set RTC_WKUP_IRQHandler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_IRQHandler + .thumb_set EXTI0_IRQHandler,Default_Handler + + .weak EXTI1_IRQHandler + .thumb_set EXTI1_IRQHandler,Default_Handler + + .weak EXTI2_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_IRQHandler + .thumb_set ADC1_IRQHandler,Default_Handler + + .weak USB_HP_IRQHandler + .thumb_set USB_HP_IRQHandler,Default_Handler + + .weak USB_LP_IRQHandler + .thumb_set USB_LP_IRQHandler,Default_Handler + + .weak DAC_IRQHandler + .thumb_set DAC_IRQHandler,Default_Handler + + .weak COMP_IRQHandler + .thumb_set COMP_IRQHandler,Default_Handler + + .weak EXTI9_5_IRQHandler + .thumb_set EXTI9_5_IRQHandler,Default_Handler + + .weak LCD_IRQHandler + .thumb_set LCD_IRQHandler,Default_Handler + + .weak TIM9_IRQHandler + .thumb_set TIM9_IRQHandler,Default_Handler + + .weak TIM10_IRQHandler + .thumb_set TIM10_IRQHandler,Default_Handler + + .weak TIM11_IRQHandler + .thumb_set TIM11_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 USB_FS_WKUP_IRQHandler + .thumb_set USB_FS_WKUP_IRQHandler,Default_Handler + + .weak TIM6_IRQHandler + .thumb_set TIM6_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_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 DMA2_Channel1_IRQHandler + .thumb_set DMA2_Channel1_IRQHandler,Default_Handler + + .weak DMA2_Channel2_IRQHandler + .thumb_set DMA2_Channel2_IRQHandler,Default_Handler + + .weak DMA2_Channel3_IRQHandler + .thumb_set DMA2_Channel3_IRQHandler,Default_Handler + + .weak DMA2_Channel4_IRQHandler + .thumb_set DMA2_Channel4_IRQHandler,Default_Handler + + .weak DMA2_Channel5_IRQHandler + .thumb_set DMA2_Channel5_IRQHandler,Default_Handler + + .weak COMP_ACQ_IRQHandler + .thumb_set COMP_ACQ_IRQHandler,Default_Handler + + + diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/main.cyclo b/TP2_ISEN_DISPLAY/Debug/Core/Src/main.cyclo new file mode 100644 index 0000000..5017b09 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/main.cyclo @@ -0,0 +1,6 @@ +../Core/Src/main.c:61:6:displayScrollingText 3 +../Core/Src/main.c:87:5:main 1 +../Core/Src/main.c:136:6:SystemClock_Config 3 +../Core/Src/main.c:177:13:MX_SPI1_Init 2 +../Core/Src/main.c:215:13:MX_GPIO_Init 1 +../Core/Src/main.c:249:6:Error_Handler 1 diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/main.d b/TP2_ISEN_DISPLAY/Debug/Core/Src/main.d new file mode 100644 index 0000000..ab9b745 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/main.d @@ -0,0 +1,54 @@ +Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h \ + ../Core/Inc/stm32l1xx_hal_conf.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h \ + ../Drivers/7Seg_MAX7219/max7219.h +../Core/Inc/main.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h: +../Core/Inc/stm32l1xx_hal_conf.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h: +../Drivers/7Seg_MAX7219/max7219.h: diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/main.o b/TP2_ISEN_DISPLAY/Debug/Core/Src/main.o new file mode 100644 index 0000000000000000000000000000000000000000..2c4168e182ce9f6e3bef104426e55f70352f4e7d GIT binary patch literal 716264 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

j+suwK1j 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%0Db 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 literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/main.su b/TP2_ISEN_DISPLAY/Debug/Core/Src/main.su new file mode 100644 index 0000000..845d12e --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/main.su @@ -0,0 +1,6 @@ +../Core/Src/main.c:61:6:displayScrollingText 32 static +../Core/Src/main.c:87:5:main 8 static +../Core/Src/main.c:136:6:SystemClock_Config 80 static +../Core/Src/main.c:177:13:MX_SPI1_Init 8 static +../Core/Src/main.c:215:13:MX_GPIO_Init 40 static +../Core/Src/main.c:249:6:Error_Handler 4 static,ignoring_inline_asm diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.cyclo b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.cyclo new file mode 100644 index 0000000..6351c68 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.cyclo @@ -0,0 +1,3 @@ +../Core/Src/stm32l1xx_hal_msp.c:63:6:HAL_MspInit 1 +../Core/Src/stm32l1xx_hal_msp.c:87:6:HAL_SPI_MspInit 2 +../Core/Src/stm32l1xx_hal_msp.c:125:6:HAL_SPI_MspDeInit 2 diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.d b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.d new file mode 100644 index 0000000..61ba40f --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.d @@ -0,0 +1,52 @@ +Core/Src/stm32l1xx_hal_msp.o: ../Core/Src/stm32l1xx_hal_msp.c \ + ../Core/Inc/main.h ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h \ + ../Core/Inc/stm32l1xx_hal_conf.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h +../Core/Inc/main.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h: +../Core/Inc/stm32l1xx_hal_conf.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h: diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.o b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.o new file mode 100644 index 0000000000000000000000000000000000000000..2955b0a2462507ca5762d69d5ac7b34f505b25a9 GIT binary patch literal 712020 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�D!HkIh5VMZrWmZs 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 z zrGGo~p7+WNQR8+l*FsxX30})}h4Q%OE|LMFi6<{wXo;{%gpf1UXrbgL2>UgXHX!HK zH%J_L@Z?~4xPLMj3{H*@QU2g$hCU)9^a+8x`eKFLst9WJUG0cVvP%J#BkkmTb;4}~ zm&XBq^ZU7x!x~Q{-t409GAt7j(jD>9(-oM7#g>xGbnArkz!7ua_GiU<0}_$5-gY zaMX$%-wB5vda?{+*~3RDDpeejbfu&Vjwi5V`<8Wq$nWNQ*-_1@q+LQjjZ#lU99WwN zQFbRhIh@*_a2vWPuX#0sNq)E(a2;qqS)jh&Vxmo~&gZZ z;zIgT+b@-d&{Z;#JFw<-s-6ytcm`7@ZrweWHqpA8Sp6jODV=cKXW1jI+K0;Z48J+p zADj$^2S-Q4lf%Ku$q|e{Cn)wI{#xk*73rYJ!2$tO9R%#hP!67j4ZQZItNHTWT&Tfz zOy(<}0}>z`A@lW8rj!cGVu!i_kC=S^5&am#@rEYp;0O5nNzLeNn>g2)9nZNUj11bo>b&R%tWh)AK?%Z#8xM!(a%;E6tFmwatdX4G!e-Y2Kr~mKlz7X zSHgi%sTO($YI=~c2W7nZ)$$s3SC^aX)f5qo8=e_2X=aL^Q_L^-6!|sxohaDBPZriH zye*teQ|$yFL>4Rcb$5>?qPYU7Y06f*^`Yt=H5+VQaR{+vfdx=tmTLKYCHQvxOs4qe zEc@K>^SV2@stGP(P>Vz3U2jw)Dha3oXME7#jVb_AXVwj~<*Afgw) z^i{EZPOg^ya3}5ZgH+Re^ zl0fF5Ag7)x`qboZa4uNV; zGVO;gS$7-u2-AL7h|X|uSqohKG8+Yt+;xjr@k1P%cJuXlvO_wjMZtn=VZAM4cFku4JbOdAGsnMwcrFl=Y(QV#KpwQ#N zQZ+LL29w=Z25*5hinRCO`R_4nGJF;4U2gUy><&;vrbF0G&BoEH5_W$(*uq$q4X#axLCvhVR~*YFX&I88WcT1DMXi`jN2`bBTgb?z<|zkUPnpg zjEVtjQCaZ<=NOh;FQ-#tO8Xy5#Zv0n(M5A@glu^>!U(Sr^#Yrwb1i7&u+=!fLV{!x zWzlK$F(hcgG{@X&V*Ol|>TC*=QYg|b5b3;^wS`H5fQ+GW>Id*FO z3nEW-v`NX>xja?UgA9YvQc-6u#>CTTgbl$YN~;|yzCvX#&pJG>YbzY}I$Je6PU*)mA0t;lbtO1)$QS}OC{!U(^HkA? zeXx=e#D3cI5Xd?^lP-q?=iI>3es08tb9TtD=2OM!ZKfzK87OQzpCL83DGvGrWd6l( zQ!Z#5i5WJsl)MNcy_j=YO{akX3qcS~f@F-`C71NY6kZtS)tOrpSf;Sp-k$R=Tz4u+ zUW`H^oKli|*pg_NLTV zER~=u$5hOD+duqBLJu(xF0MN~SlYmtAC~z8y4BK_Ndce1Vnc{VrEf~S)P6<7n=swL zB?(8_G?^|o)iC>NFeoYN!_o-XM~G;l(LpyRHHzCBtrCl&RXVBi4<=ApCA=%*bQU5o zq)YR>u+OE*p-PtC($aOp6Q2Qoe{U0}?{Osv5>j@Uv9!kc z(A{g?0P4Vi-k=ssmGzMa-<$PTVMgSn3t<|FQaS3dtIR2N*DE`qVGmfHZ$~I2aRJ9p zou1Jww+P1=D=T-uR#KT7rZE~{cXg_GFSk?VJs1Pph$YA~0wx?u7WC`nwXVbOG0E>wHH0g}?GnJAl|

O1 zkeeecv9|4VVG?IV2c{&CD=kq3$DacCJgp9W4Y98^YJ%_zeF~2qcJq8Syim4+mL}$utQeR{b5Em)L%h$!pAyUs#gXMp-(#L3$1|x12V^T|=o|hY4o!=OImUQX zgsajqK(gX`^5`JY1WWRKdjgAyFbfVi+R3f}#Lt!=0`vzhyio(f;Jrl9os^;@kZ0os zT)K27wd$Z@+U^-B&yh{IJA#nq=Ad}!Oi^fqfR5<1%e1yLgX?L~9qmpf{LnoQWfImN zq|iH`RRx$bcX4)+GZLM#vQ-vpDGqjIuq*Xp=K5Ia!wPRmY0Ds>CBr-m;`OR4Z6p{C zpFNA@p(jxPV#(nzT)35alNN_2M#K$Nb;sdKba(q2uPP80lP&q;5o1MG{PoQOYgRqI z0n%GMG@Pgq#VM)Q%yVw8+hJ&O6IY`vh1#IO2IcVw^vOY&A5zasm-kRcI8NIMe!{I(3 zFe?6k7P`Qb?z#y?Kh~I|hUL$2?3tn~oz$0j);X#oFk(tC&Pzt0(MPM?Q#(89jpU=& zpiwCOEyqXy%_rc9;AkMfXD8Zif(qh++@h&KNsDv{s8{C`NXt;6jww&xj^s$V1A7Sv zfiy`;<;LTFa#+DJ;N&vX*QUj@SgS_RgIAyGh3}o9}FPJsQJ;*(r#}5Y-i4TW5ss-1aSDDBAzk0BEuWJtdWEIa< zlG5tLCSIq}tMUHmCe}Xi6xU;f%_XYbY}6EU&spI$Y`Qx4MFZ5>=O(5#O#;<+-)VT^ zy_My~*iZV-hr2F}rslXyj||c2H$OtBQZ+*jZZ}5P{^Q=i+bmf-ZdN>;e;_V>ScjnuHn3Nm1pxBc&vY5t$0b6_rfP$ETqc$3RS8A-|Ks|Ebh zb|vN?ppc7bIMQZqH2-^vr);Zu9TOZU+>c=ZJz_$bqOmK1WfOLf3m;SIp`kFskY>2UWqe!H3c>(OEq|Tx8!nxq)Md%>@7m zz;yp;FXR{?SHzGS;~JEWw8iUOc>J14prC7v<>Dp;ZrUU{%nP1O|y zQF1XZ5pkl^Mn0X5R%TDbPDOSB5CSDAKfPX;3CjQ6<2nT8VG7`!UtU*+KD+%G+;l3H zAyK9By;s>Zdl}P#_pU&XxUpe74?{O&@3q+*Z5lv_P#*y=m7q^X-WXOyyTIUb)v)h8 zUk;pC?S{`6gFJc{)VVIel8SK z$Rvc~R8DH?Vyp8FH*^CqX?5WM*%k#$-^gIjIVQPpWXf!!W5byP5+pf#89a3yrdMi$ z7LChiED>U8!ENJTPCU;6Rebzok8F0*6D`C~DUzx(VGI{O4R-(>u=9?RpcGwP�ZM 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

Nva9!IJhQoG^FF#2MxZ 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 literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.su b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.su new file mode 100644 index 0000000..d8ab9e1 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_hal_msp.su @@ -0,0 +1,3 @@ +../Core/Src/stm32l1xx_hal_msp.c:63:6:HAL_MspInit 24 static +../Core/Src/stm32l1xx_hal_msp.c:87:6:HAL_SPI_MspInit 48 static +../Core/Src/stm32l1xx_hal_msp.c:125:6:HAL_SPI_MspDeInit 16 static diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.cyclo b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.cyclo new file mode 100644 index 0000000..79351de --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.cyclo @@ -0,0 +1,9 @@ +../Core/Src/stm32l1xx_it.c:69:6:NMI_Handler 1 +../Core/Src/stm32l1xx_it.c:84:6:HardFault_Handler 1 +../Core/Src/stm32l1xx_it.c:99:6:MemManage_Handler 1 +../Core/Src/stm32l1xx_it.c:114:6:BusFault_Handler 1 +../Core/Src/stm32l1xx_it.c:129:6:UsageFault_Handler 1 +../Core/Src/stm32l1xx_it.c:144:6:SVC_Handler 1 +../Core/Src/stm32l1xx_it.c:157:6:DebugMon_Handler 1 +../Core/Src/stm32l1xx_it.c:170:6:PendSV_Handler 1 +../Core/Src/stm32l1xx_it.c:183:6:SysTick_Handler 1 diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.d b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.d new file mode 100644 index 0000000..9cdcc59 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.d @@ -0,0 +1,54 @@ +Core/Src/stm32l1xx_it.o: ../Core/Src/stm32l1xx_it.c ../Core/Inc/main.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h \ + ../Core/Inc/stm32l1xx_hal_conf.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h \ + ../Core/Inc/stm32l1xx_it.h +../Core/Inc/main.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h: +../Core/Inc/stm32l1xx_hal_conf.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h: +../Core/Inc/stm32l1xx_it.h: diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.o b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.o new file mode 100644 index 0000000000000000000000000000000000000000..043ca5ade96a5554acaec7c82a0c7e8256aa5847 GIT binary patch literal 708864 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

jS8H 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

GA*#B77s$LIln( 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 ZN1xvA$F`Mj>mTCwN&TkkmB}(a`ae2vZb$$C literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.su b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.su new file mode 100644 index 0000000..affde81 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/stm32l1xx_it.su @@ -0,0 +1,9 @@ +../Core/Src/stm32l1xx_it.c:69:6:NMI_Handler 4 static +../Core/Src/stm32l1xx_it.c:84:6:HardFault_Handler 4 static +../Core/Src/stm32l1xx_it.c:99:6:MemManage_Handler 4 static +../Core/Src/stm32l1xx_it.c:114:6:BusFault_Handler 4 static +../Core/Src/stm32l1xx_it.c:129:6:UsageFault_Handler 4 static +../Core/Src/stm32l1xx_it.c:144:6:SVC_Handler 4 static +../Core/Src/stm32l1xx_it.c:157:6:DebugMon_Handler 4 static +../Core/Src/stm32l1xx_it.c:170:6:PendSV_Handler 4 static +../Core/Src/stm32l1xx_it.c:183:6:SysTick_Handler 8 static diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/subdir.mk b/TP2_ISEN_DISPLAY/Debug/Core/Src/subdir.mk new file mode 100644 index 0000000..a056c3d --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/subdir.mk @@ -0,0 +1,42 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (13.3.rel1) +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../Core/Src/main.c \ +../Core/Src/stm32l1xx_hal_msp.c \ +../Core/Src/stm32l1xx_it.c \ +../Core/Src/syscalls.c \ +../Core/Src/sysmem.c \ +../Core/Src/system_stm32l1xx.c + +OBJS += \ +./Core/Src/main.o \ +./Core/Src/stm32l1xx_hal_msp.o \ +./Core/Src/stm32l1xx_it.o \ +./Core/Src/syscalls.o \ +./Core/Src/sysmem.o \ +./Core/Src/system_stm32l1xx.o + +C_DEPS += \ +./Core/Src/main.d \ +./Core/Src/stm32l1xx_hal_msp.d \ +./Core/Src/stm32l1xx_it.d \ +./Core/Src/syscalls.d \ +./Core/Src/sysmem.d \ +./Core/Src/system_stm32l1xx.d + + +# Each subdirectory must supply rules for building sources it contributes +Core/Src/%.o Core/Src/%.su Core/Src/%.cyclo: ../Core/Src/%.c Core/Src/subdir.mk + arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L152xE -c -I../Core/Inc -I../Drivers/STM32L1xx_HAL_Driver/Inc -I../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L1xx/Include -I../Drivers/CMSIS/Include -I../Drivers/7Seg_MAX7219 -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + +clean: clean-Core-2f-Src + +clean-Core-2f-Src: + -$(RM) ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/stm32l1xx_hal_msp.cyclo ./Core/Src/stm32l1xx_hal_msp.d ./Core/Src/stm32l1xx_hal_msp.o ./Core/Src/stm32l1xx_hal_msp.su ./Core/Src/stm32l1xx_it.cyclo ./Core/Src/stm32l1xx_it.d ./Core/Src/stm32l1xx_it.o ./Core/Src/stm32l1xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32l1xx.cyclo ./Core/Src/system_stm32l1xx.d ./Core/Src/system_stm32l1xx.o ./Core/Src/system_stm32l1xx.su + +.PHONY: clean-Core-2f-Src + diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.cyclo b/TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.cyclo new file mode 100644 index 0000000..6cbfdd0 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.cyclo @@ -0,0 +1,18 @@ +../Core/Src/syscalls.c:44:6:initialise_monitor_handles 1 +../Core/Src/syscalls.c:48:5:_getpid 1 +../Core/Src/syscalls.c:53:5:_kill 1 +../Core/Src/syscalls.c:61:6:_exit 1 +../Core/Src/syscalls.c:67:27:_read 2 +../Core/Src/syscalls.c:80:27:_write 2 +../Core/Src/syscalls.c:92:5:_close 1 +../Core/Src/syscalls.c:99:5:_fstat 1 +../Core/Src/syscalls.c:106:5:_isatty 1 +../Core/Src/syscalls.c:112:5:_lseek 1 +../Core/Src/syscalls.c:120:5:_open 1 +../Core/Src/syscalls.c:128:5:_wait 1 +../Core/Src/syscalls.c:135:5:_unlink 1 +../Core/Src/syscalls.c:142:5:_times 1 +../Core/Src/syscalls.c:148:5:_stat 1 +../Core/Src/syscalls.c:155:5:_link 1 +../Core/Src/syscalls.c:163:5:_fork 1 +../Core/Src/syscalls.c:169:5:_execve 1 diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.d b/TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.d new file mode 100644 index 0000000..8667c70 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.d @@ -0,0 +1 @@ +Core/Src/syscalls.o: ../Core/Src/syscalls.c diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.o b/TP2_ISEN_DISPLAY/Debug/Core/Src/syscalls.o new file mode 100644 index 0000000000000000000000000000000000000000..e9e5d890e770f499b0356b527aebb426d4e0a8b4 GIT binary patch literal 83428 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 XLgAUs55qu7y30_$KO@fm*>wLOwPlm; literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/sysmem.su b/TP2_ISEN_DISPLAY/Debug/Core/Src/sysmem.su new file mode 100644 index 0000000..12d5f17 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/sysmem.su @@ -0,0 +1 @@ +../Core/Src/sysmem.c:53:7:_sbrk 32 static diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.cyclo b/TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.cyclo new file mode 100644 index 0000000..4f4c23e --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.cyclo @@ -0,0 +1,2 @@ +../Core/Src/system_stm32l1xx.c:161:6:SystemInit 1 +../Core/Src/system_stm32l1xx.c:211:6:SystemCoreClockUpdate 6 diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.d b/TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.d new file mode 100644 index 0000000..5fccfc0 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.d @@ -0,0 +1,51 @@ +Core/Src/system_stm32l1xx.o: ../Core/Src/system_stm32l1xx.c \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h \ + ../Core/Inc/stm32l1xx_hal_conf.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h: +../Core/Inc/stm32l1xx_hal_conf.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h: diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.o b/TP2_ISEN_DISPLAY/Debug/Core/Src/system_stm32l1xx.o new file mode 100644 index 0000000000000000000000000000000000000000..da33b5383bf32cdbf91efd9d024db2ed74a6270d GIT binary patch literal 709048 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�)5WJJ@?6`~klegS9EjH8t>xybNY^8YtN822%t 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⩔#4<1ZV#Rq%_HS?HvG~a58d1rZ_>Hp?k{t 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

5Yta6e-` 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 Q4@T|Qk>6iJBVcIvZ>63(oB#j- literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Core/Startup/subdir.mk b/TP2_ISEN_DISPLAY/Debug/Core/Startup/subdir.mk new file mode 100644 index 0000000..2bd1fed --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Core/Startup/subdir.mk @@ -0,0 +1,27 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (13.3.rel1) +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +S_SRCS += \ +../Core/Startup/startup_stm32l152retx.s + +OBJS += \ +./Core/Startup/startup_stm32l152retx.o + +S_DEPS += \ +./Core/Startup/startup_stm32l152retx.d + + +# Each subdirectory must supply rules for building sources it contributes +Core/Startup/%.o: ../Core/Startup/%.s Core/Startup/subdir.mk + arm-none-eabi-gcc -mcpu=cortex-m3 -g3 -DDEBUG -c -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" "$<" + +clean: clean-Core-2f-Startup + +clean-Core-2f-Startup: + -$(RM) ./Core/Startup/startup_stm32l152retx.d ./Core/Startup/startup_stm32l152retx.o + +.PHONY: clean-Core-2f-Startup + diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.cyclo b/TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.cyclo new file mode 100644 index 0000000..2eb1da7 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.cyclo @@ -0,0 +1,12 @@ +../Drivers/7Seg_MAX7219/max7219.c:100:6:MAX7219_Init 1 +../Drivers/7Seg_MAX7219/max7219.c:121:6:MAX7219_ShutdownStart 1 +../Drivers/7Seg_MAX7219/max7219.c:136:6:MAX7219_ShutdownStop 1 +../Drivers/7Seg_MAX7219/max7219.c:149:6:MAX7219_DisplayTestStart 1 +../Drivers/7Seg_MAX7219/max7219.c:165:6:MAX7219_DisplayTestStop 1 +../Drivers/7Seg_MAX7219/max7219.c:180:6:MAX7219_SetBrightness 1 +../Drivers/7Seg_MAX7219/max7219.c:196:6:MAX7219_Clear 2 +../Drivers/7Seg_MAX7219/max7219.c:214:6:MAX7219_DisplayChar 1 +../Drivers/7Seg_MAX7219/max7219.c:220:6:MAX7219_DisplayCharPointOff 1 +../Drivers/7Seg_MAX7219/max7219.c:225:6:MAX7219_DisplayCharPointOn 1 +../Drivers/7Seg_MAX7219/max7219.c:243:6:MAX7219_Write 1 +../Drivers/7Seg_MAX7219/max7219.c:262:13:MAX7219_SendByte 1 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.d b/TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.d new file mode 100644 index 0000000..102bf96 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.d @@ -0,0 +1,54 @@ +Drivers/7Seg_MAX7219/max7219.o: ../Drivers/7Seg_MAX7219/max7219.c \ + ../Core/Inc/main.h ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h \ + ../Core/Inc/stm32l1xx_hal_conf.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h \ + ../Drivers/7Seg_MAX7219/max7219.h +../Core/Inc/main.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h: +../Core/Inc/stm32l1xx_hal_conf.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h: +../Drivers/7Seg_MAX7219/max7219.h: diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.o b/TP2_ISEN_DISPLAY/Debug/Drivers/7Seg_MAX7219/max7219.o new file mode 100644 index 0000000000000000000000000000000000000000..91e644beef0a77eeba7c89a19e2d6de4338fe500 GIT binary patch literal 715956 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

r-fQbTV|g54X;SB5x2~47YV4t~FHa1L8Wv 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≠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

t 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�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 z†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

gZgv7FzESXF-*ZxX4}P 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

)39>GCK4=!T-mvn5h0=z>am5~-4M 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 Qmj0Y2vMfwuim&&-0jGmzDgXcg literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.su b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.su new file mode 100644 index 0000000..131741d --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.su @@ -0,0 +1,34 @@ +../Drivers/CMSIS/Include/core_cm3.h:1480:22:__NVIC_SetPriorityGrouping 24 static +../Drivers/CMSIS/Include/core_cm3.h:1499:26:__NVIC_GetPriorityGrouping 4 static +../Drivers/CMSIS/Include/core_cm3.h:1511:22:__NVIC_EnableIRQ 16 static +../Drivers/CMSIS/Include/core_cm3.h:1547:22:__NVIC_DisableIRQ 16 static,ignoring_inline_asm +../Drivers/CMSIS/Include/core_cm3.h:1566:26:__NVIC_GetPendingIRQ 16 static +../Drivers/CMSIS/Include/core_cm3.h:1585:22:__NVIC_SetPendingIRQ 16 static +../Drivers/CMSIS/Include/core_cm3.h:1600:22:__NVIC_ClearPendingIRQ 16 static +../Drivers/CMSIS/Include/core_cm3.h:1617:26:__NVIC_GetActive 16 static +../Drivers/CMSIS/Include/core_cm3.h:1639:22:__NVIC_SetPriority 16 static +../Drivers/CMSIS/Include/core_cm3.h:1661:26:__NVIC_GetPriority 16 static +../Drivers/CMSIS/Include/core_cm3.h:1686:26:NVIC_EncodePriority 40 static +../Drivers/CMSIS/Include/core_cm3.h:1713:22:NVIC_DecodePriority 40 static +../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 4 static,ignoring_inline_asm +../Drivers/CMSIS/Include/core_cm3.h:1834:26:SysTick_Config 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:168:6:HAL_NVIC_SetPriorityGrouping 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:190:6:HAL_NVIC_SetPriority 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:212:6:HAL_NVIC_EnableIRQ 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:228:6:HAL_NVIC_DisableIRQ 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:241:6:HAL_NVIC_SystemReset 8 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:254:10:HAL_SYSTICK_Config 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:290:6:HAL_MPU_Enable 16 static,ignoring_inline_asm +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:304:6:HAL_MPU_Disable 4 static,ignoring_inline_asm +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:317:6:HAL_MPU_EnableRegion 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:333:6:HAL_MPU_DisableRegion 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:351:6:HAL_MPU_ConfigRegion 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:389:10:HAL_NVIC_GetPriorityGrouping 8 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:416:6:HAL_NVIC_GetPriority 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:431:6:HAL_NVIC_SetPendingIRQ 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:446:10:HAL_NVIC_GetPendingIRQ 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:459:6:HAL_NVIC_ClearPendingIRQ 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:473:10:HAL_NVIC_GetActive 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:487:6:HAL_SYSTICK_CLKSourceConfig 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:505:6:HAL_SYSTICK_IRQHandler 8 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c:514:13:HAL_SYSTICK_Callback 4 static diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.cyclo b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.cyclo new file mode 100644 index 0000000..7a3ffe2 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.cyclo @@ -0,0 +1,13 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:144:19:HAL_DMA_Init 3 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:223:19:HAL_DMA_DeInit 3 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:315:19:HAL_DMA_Start 3 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:358:19:HAL_DMA_Start_IT 4 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:413:19:HAL_DMA_Abort 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:454:19:HAL_DMA_Abort_IT 3 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:499:19:HAL_DMA_PollForTransfer 10 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:600:6:HAL_DMA_IRQHandler 12 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:697:19:HAL_DMA_RegisterCallback 7 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:748:19:HAL_DMA_UnRegisterCallback 8 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:826:22:HAL_DMA_GetState 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:838:10:HAL_DMA_GetError 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c:864:13:DMA_SetConfig 2 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.d b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.d new file mode 100644 index 0000000..a4a60dd --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.d @@ -0,0 +1,52 @@ +Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o: \ + ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h \ + ../Core/Inc/stm32l1xx_hal_conf.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h: +../Core/Inc/stm32l1xx_hal_conf.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h: diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o new file mode 100644 index 0000000000000000000000000000000000000000..cd15c6ea297425549e9a5702bf01520f54d35248 GIT binary patch literal 717100 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 G^%#*@!Yev9}Zk zFgOtCT~(8l9c=cNo2Q>EzN!mc^LoA&d|}(%UQzN)Nu+p`$TDk0rqO}-mwh08&G=UH zF0~vjp)w>_%7d_Y_x<0Ty)gfFs5hS9tY_xU?iczvQ71I;KtU4_MX#uU5RJ%6Z*a2i z*JQY-1&;kmcRynPo%!F=_cp8_31ofo6*;eLlXud{Qr6j|6@q6lGF-yR+Y2t!$3cV-%35F1La=08Rru>!3`(IChqeXD*rffB5GXK(4B4QC){`E#@ zI$4hoV(R=_BWPfJKkcL%-PsCs+8ba^EcJ4dbJCAEFpAu!nTz~qf~FrDTc7}=7#x%% zqynIh{H%oCz&pmZvWu(+j~2_tb6~ZcLoOO}0y&Fd$9Yk*tm-N)X-rd20#%nR9D6Z*}o&u%Hls za_2G(O>!%Pi_!&@K7IEr}h(~cqa{w$#}^o0!b5q}_Z!Pp*6 zo^5MWlrlH0QhUnbu@j>2H1jzu<3ty3ULSILilQ6ezkB=P9&PzV%JcYzyH$$=VD7gU z!krAVRh??c?8%S#QEk2xUWW0`nH<@3O`!pwg@ow?ELcMQNY32(40yD8>mg)pM+bxIq7{t)VC^Y-wgy9VRNKE5R)Tm>r<9 zRGxn=HwT6Y8p^|1cECi9;dZ|dWwl_^9(yQgf6!Toicz8fX?28R7zVqARPQTUuuGEw z*;0}o;v=K}WZgd~bwI0IuoRfKoo7BOaA4e3bkL1 zNNWI94~kw%{=pWTj|Vrkb0-e9rT-+rz8m^3H0dl`00{-!lBvnZ98_?$zf^AnWIPsi zJ1~9l@07@`42Q1Z8ju;sFsjCGF19<_vv!BrzDy6)QT7fS+aR$Tm}@Hz0St8@y@_3x z$}2SIZmz{5cEE1FS&!!nguTLM@N&uQ;JG2$5b7qV>)JQUZ036B)ZU5&!YQFzb0R4eS;dt(Qlt6#zQF}iS&KiGcRFIVRjfx=Bl1a*raWb@!2b>(H zLO~Veh`MpKrhteFs=c(HUmzsSYSX%nZ@rm-(Exo~LN7zM^2OtxOntRi;1LV9_m8b& zdyywlp=|Tn%^`@|)$Y50y}$eZ-N(20fo1&w?dzpMC6av7HX(>4lOB^SCxR*@a(6!; zFOdZD`&Vy}Xt+Q*(60ajb)=#%#Z7Fl$qi0faGeCGsy$Pj))q_(F|tQcSv+&cKX(i; zHJU>l9e~H8=4SW9-H#}l@&oi$I;>a+=swX0dJRvX%F}h}EUAb%uF0YXW-xbI@v6WE z?mP=hlq_JEn~a?4P|;$73+hwDG*-?aRMrR;+O42tscBpTs2j*-&|ei+qBj$#m7d2KY+l;LQFh{^w?ieT+gLTrzYm*H55JgRQ$RsN zwOd8bt1)a&$p~eRxG+nRti`SBHGs+GOs#KK(Ivg+AV`4@f>^Q_WS2Fz(fh889`X^p_}?SEz||TtE>*BAza! zs5txuTr2D%GkkpZC>vz>w4v{}X`QY?*M0`4*U{;9` zV}EI*2^{uAz&3Z3&(PtDnz@ZoC}H_q^_+@$qqRW}h-$+!`_(HW$LK zlplZ63m`+j3<`^eV3Op;QlFCa<)}R)dyWMYeQb2HH%r)u=MtD|l&CR*A}+=J+eQ+b zj}&flBLWiVY6aaWpgFd|Akvv18iph4CYwr~<;&8{>^AQo7x zVT_wmCE-5>;lP0*n1@dH`ER=m`*OoljaO|%9PPy{DbrjEp!6#}h{PP*3IR|0TWY%E zT73**S^j~Xhd{H^uTihXR(%Td?n~I6sz7J78|ZLA#U$L>8`l~hlr00K)%3T<-pll$ z1L|2*Q*o&B$mbZM$;HNrFO=ePo2KSGY*H*v1B)?&j~Pfy&H-l;S*%({_zI*&Q8u?{ z96b0Uqaog8VCw0>dI7CboE?&(ao$UtIfIHNJ_Nd5?w-z(cG8YQZtz*6VxH)P%Q5{5YWLumr;T`=5CH;1i=8 ze&YE@XTf;@UtU~bO&a07W;?8b5z85^9tvz0HIa}0Xgfho&6EZdh3M&@FRjGB4)P8t zjOjxdQ$9b;VTg1NrkZYM{XQ0eIy-05`EQ|I%6Cmha#Fgn+QD ztY;+)5Kik5U~=*Dp+{^~haRoemdl(E4|3?Q9m1TXPUN=V7F|c#3br(6NnLG&v5)#x?kt9YKX^!Eu)(LVs0g_QF z(~N#kcc`UwC&5ZH-++NDE_~jRwc8_RksoI_-mX>aO-|m^3 z7OdRpZM#q$0c}6MI;4(Mqj~94$1)TkaN|c(H!4=_2PXSfN3I$-q5$GE2Ol%juKTlPAOe@aXJhFzg?nq9)wo8FGa;fa!T z^-vbJSm>cVj*)k}7RocAa??(KL!9sW-N*Oe(?`kz)TC(f=|G#%6>4epPf{%n{M4BU z0ZN`8r`2h0fOH;A6^@NfS5cIl-P{}x-0MpmHuYKfKFLg<=jq6<=Ci^9LSDyvKp^oP zz26K#=Bwb=Ad?C37JdEon06|93--=oEhh?8|Zny%j zXBmU$#tkWFL(5x1eCc8xIGS1$n5AjV8RI4EDu!&~erAw5(3-2P$pF&K%YW(c9fB-E zHF-e72>}|21%UOXzBpqZ##Or=-0%Vilx2bg5@ls#!lWX{Dvau1ae5V7yuMvit16iQ zH<@fuLz62O6PUvL%f=*O$5Q6}u_W)#fm}8w` z1eFtm5^>n_#RH>J0Dbn!y3E>&i~>XN=|SwyI@#n+x?RP(z_@FCgQGacT3?!Sd_HCX zJ=U>*w)asTP~4-%OV;x?ZRv!YV#JefHtXL=dPp!$5nc`E7TA&{kM{b17*IFF(k$?L ztR_^F+!I)SPHp#`>a(0RLZ&MMJB4NL=vh^d;5 zc9_B?Rb~Jh8a!43*%UQMHy8AC2z;DL)k~>I$!VYjTXoTk>ojZ@2?Bsrg3t=l?11wO z1Mz5+^I{G>tuSPJ9XR|8yI5l?X&!5I&>QWHJF&zLerih5XV40+o|5rT>00)^PYO>rdz&8tJWRWr>-)wX*i6>~(+CDIgZ`oKJBJq=gU+;%V)L(!GEQYzw%SCDro24;owR>UH3h0KwUBYdJ7cWL;I%1)@j4lVsUwedlwInGhs^JSrot;SK@!b(s;C(b z8t}1UX*0k5c-0+)N1?WZOX>Hz8Z}YoGfO(Z+#u`KYKxyWR_*Gcxv(!G>p(4w4G2s# zdBxR>zZ=xdesO^$GPFU&CCwo5+c-?WlB!N!n<|A*JH)a$;V^wea?Ldt03b4l`xkKI zvY;ZplxFW)Q}^B5EbAc8C*!!Xt9LYHSMTfRbI7`P_sjRM-@Si*|F78L%_cX10HG`E z`0)^teEs9&(D-m`Q$X9d?<)3oUnhM|ChI3gJw^Sk+M{3=BLX*vdWCD49%bRK*b5d6 zfHvQwhT_Dm^sn6_VvY|yn)_X3JD`u?f`&+BXkH3roZ12zBdQoV`??J`4ag($LG(Ob z!o6z1MNN(y14hFYlZ*`J%%h%7+U-bVoOSc?M6_M{sY8?537ji&6Li075+KXzTK3S? zW)z6C4G|`%KhM(08BTunUvq;4>qxdwTTb@1Ntk!719UfgoAhh zMrEJo`nOE4Pw`>s)l4bduT#n*^U_~Q_(?@i5jt?Qj0ff?!C~5-?u4ZED%8i|S`}gW zSi^GtJmn9t9l~OS_4Kdii5rBn;$(aU3&gv(KfeBHyh7H#X50IBze;zb?A}+`p5B|} z$rLeh($5AgFmN`E3Iht;MK6<4!>CxF#Tup!6Kf6YI?IWdAvg_?y6=eM)~JNgeP-G~ zEZf$T$jqq*MH&K~BrtPXeaBR)I8V?k^N^7v^cED%|<>fk=T}yv@ zUp_vHJC?~WOABq;70)T;cZf3oSw#w^j-*JD2tpR*@DrMphwgevl_EwZ(iFr7h*Xv2 zPJml+bhlJ|)H|R7^fl!iP@145qKI4a8e`VFm|t%Zxi9fzAJB9XKog5K#fXCPsIsmf zTSYYUoL(XrYyqD&MDNfu&@W|TF0Q`*W_^$P^I-LLK5(~g00zM`8b=qqddPD z*zNQUP_79|lJY`O$2OE;3taWYj-@aNjX)i&)&SoSS|W}ey?BD)nlh)q>bO^3>0Oj7 zmECN4lhX#8;kE*4d+_$nh)$q1-}T)Wim%Csr&CptDGtPDihm6Sn3|{sG0{+Rm-0TK z>;^*M5E5re(kJ*P7(K-Hn_p|i)fdMdo1mkE@%7oDrO71OLXNu0ZUn2;-G>jLUZy0soXkj0Q>5BF zwP|HSj6%LKgF*3~op4bX4gVIr;@xif>Zd!Mo<`g5?7QSQ2#eK8512xlHD1_8g?=8I z9sL)Y`NSJ`_^A(L`*}`j+e6SryuhPj>Tg`@9XugPor1&gDUC~XDKHivK`h&zs&ePK zhwtD2*~QW1;;UPI>uHZu&c8ID8!N4`(MXN!f%Zxfg^2pq{>c_TABH(wmc*qTh424j z6mHr+eMoZ{GdL9y8?T~ zLP*s!zU=)+dcNc=nceITU=d#;JExci{@|39inz``S|o-<%o)K;JI#efQfltJ=0xb~ zKzN!pY^+JMFJ;J%HF$>u#%FjQqaXDr>_uQ+ol>_rYEOKEu9&6NkM9v-inZ>IUmZSh1!5~Zf9cSYZ5n_&-Gd3M; zR?P%{HM&&?4Zg7&kS(=udVAV^^591^zarO(*cYVZJT>*P&bBASv)}42LIE@nZj5ts zpp1_7^Br3oT;*>9d(Z{BGkgFuYA}69!MY^RcZ)iW$-x3R(@SJX+<_-B*4bVv`i5PH z%&3&BvF6#N!Lf=Cv)CS>$l0g;?dc0VnP6P`6cr3$nR~C$N#e08Q?Z|j;S?(iEyNTm zaUj`A!`k6s6d+ATwpA(RPbB=w&FW?PE-3y?@#f~^f*cT&HNo;mjo3~LGmk(|oZ!4+ zrL5Xp-5yWQ;p))A)$!_RFsh8RN5;8Ce)aG=I^-eL?i{}Lw9F8;a^7BK$0(QDECAwG zk@*VRRtO5w#)?TplvH{5{%&&j-N&DH6BVF>ZzB*<6c6$9y|Xmj5v&Y1v6mR?NFW{{JyHkEZB9^K3U8EJT$l}3 z-~oagvP&I3VQ6HW0QLr7nR0tHQqKfbFEfMqXoUra*WYXo&%4u8?Ib!Ig5R(pfVj|W z68&y!Ey#kWoK9lM)0J-I=2u0Bt98?NwgPEnTu?l4_Ugku(+Mw8F3E)a183PAz^}gl z-orxebx?CmK2a21^JANnx3C)r^C??TJgM!t}UCmLS2S5QAJb48U@_<(aIUwXlOO9ADHop-MF13aacRH;f4$HO^~`v0E79-%dlFcEQBxcGzx5Es!KdW>@&S} zDEDC}pd8t>uu9owwn;&nGf9k@dC~TCygwJS}(bw~&v5L8dmVi)lVaNNK4)_W2nw7aLPqK@!`-CZB(5 zumuY}rNI9j(iviZu@y=8+kAH2Nqd!ZG`B!=ASOpDG+dGrC6SHwVFn!6tcrgW@M#q&}iaIBC>WAarkC1>02sjWknZ;n+`8$h{%vz~QF(A^XRZ$DuKq zrIP9IuCL}O0f#2g6j(iGxCWNuH`uJOG|0_%1@~8&HKhhXOFuVdKbETpD|tImA4hD8 zHAVj#CF{QIAP8v6(y z!=2_53fuk_?C$iMQuW=&HScaUVf*W5pkssSd7K@kg~$(!r%G_j7q}mtBUZ23KJ@s8 zW_!f`HQSj*9*ktoyCJZx`m_9c*hj(=p)DMk%@heq5^mR(c2ps+!eec>xrAew_PAB< zycrL#DwC^r1jOsXP9SXxiOJ>@KdiH`RFJZ-V$08rL5Q^I-q}IwZKzE1T;-E_{_4%g zJFz@8*cIty;J&z>2GtTV_8jt&h1g%>AicyiD9{YZKjrWgDwO`=S<<0Eg+ktu=T++W zDnKW<>QUw_q_o^q)Qo6)v$nwgky1UJ?U4#78&xp-yrh_{Dm=){bMYpxu4Rs+L3;>PDt3CI#wtp z)>ptAIT6$sJHu(fPq;5%u6iA9ngHM*@^1_Uh2?tAZ1Ys9_3C!ovelkx;~ZiISrxrj ziKFP*iN>;`4Qe%GkHQm|cNWJ~}R9#-R(kU)}w0v3Ye9 z`fe|u?UHkZ2|ONsP+2r8h%H((`SO~k}}A3CGiFWq&2fATW8h# zlWv;c1x{KEkoCpch4%5bqpGSmtDD(M=w#wdb+VtZZMD5N_T0r>1aj8IGK<8Ul_er} z<$m1YylNzw@>o+EpWt}7gvA}|Ut$@{BAME2le#i4%pn+0#b)p{;(si@t!UDa>0`RQ zg{mGocp0@E;Y$JLy=GHV;hhB6R2k0XYC!8eJcFap@QJy3n5l#ViX>-X-^`;EcQP9&~+tcK|$gU16I!p4$Df-Ik1>Vb$6S-pg-Dzs27ezyTB6+tX4UaEqk z4EZCX5+_WJGX4?m0jMzK9)cu#G<-ro_7Bx7V4qr7xx<-wp^r$@snLay`fKkd?XbOr9pwEF8v*=k(4MNMj&{#G|ID zOK`rOLCG{ahmoREvcM`S$pZ2KBsY}nKoP)ZgEo>;N0i^7;*`q*yk}|}`6m^hOWz}_ zN1@No-)-N#7c6Fn^ypiB3G@x6K90Oj0n*pC==G5aCIx>3OQfCCB--sU3wFZowAy65 zdXk9L&1x7oDJ-60MXMTo;l*-%Oe zYmTX;3afB_CXbclSK$rq4ZiJ(tvQd_vQ2{$Z8h|8l`{c-KMS)7FLjSH4tlINw(ceJ zsAMPZ5_#4TvUi0wV@UQz?pS-Q87{4JLtT$<;aA)A6z%AsZDl+ZCy1OByr-X4Sfc~1 z+dlmK?mcp__a7-DG$Oe;QDp-VF|$FCEm8FJ&N9j?t^CKgA5h^MiA8}3(Qmep9vavY zZo5{F@!;#>X>e+MGO-oxGKmgj{y#f5`Vu*6!lPHe?P(7>^geXYL+-p#dVpQPQb2=- zm9S!A`MTIx#DgkQw|ct!)|AHi60DzvNVR_q#KJWBJSf<+Q2Tc z0n$>_6F1Mupn1S5kiI_F53$7)db-U`60@OO0P?uPa@KTMT=52YoaH$>ie~KYE;sxX3?@9SXXj z!~O?{&3o!`hkC(Jzt}wg9XfazYU0p2=gg@DmLWh>Y1$nuJ&GZ>&EHT738b!mEA;wd z{Gp1UUq&nAf@I|T@8L#mZ}j&yKzb0d3y&+d61RA1!)$<3ch3Pb?5uRaT=8-{a;6$1 z0aJYr`K!SpVOtTUI#3UXfWyMX+iPS7XR;!CXb@wqFXuDJA6Uu0n=yoYLUERnD>0JL zB~*emN-qaz)!uEw^j6Gz8A245JyS55YXI$70dd0o!_!!QP7|6YOPc_H9oayl6bMI> zK{gJ^6@Mut%)=pc-9LQMa_JRs6JJx7D5TZW1~u;B|4_5qEKU6bl`#g zBfCQU1hd=f7d-JpeS#@|s84Xk5A_MQ_@O?*7eCY|7~_ZfM4rTl`kaD$Hl`3lE4DBK zdZE&~&|cm>Pk916fXo$WXxr3g7QAoSuv}O+g|<_*3X)Lm5lIZOtA6-#pk2l&S>WEf zn|6988JS4>tFrr)n71NBOJ@3zb%1`oeq5xQ5T#}+2$v72vM)A^g;QTNbmJ4!Lvm;r z8!}9hj4Y051E!Hn-fmd^JV9Htl?X!TglhlI`Z>#+i!2n^>f;(T^B-!_JNvSNs0O3s zDUq3RUF=t>DsacTW*2<|m`|AX5ax9abdTD;&|{^mtRG#hw_cf?M;@x?46169_Yi82 zy`)i^w|1KoqDiNMi6UZFCfm)+N?0LPi*^lG430aqHdUTAEO#&bNd|pGHdT`*9dB7I z*AoyRa+QmR=#RLODw_$C=>`0Mj#*bbLtef(wBTco9#^d&R89uB( zSzq6g&N8J>%a8Bw;AagVf^(oQOu%8{nO+H4neUvXZ@o z$j_;FpZ#Z7^RK@VpFOB5-q)q>9m9BzRBU4C1cDe>joMM#j^##crxHOPd?JO=3_wYJ zzUy%3*1!bRx^WoTt}q$h*z4oMv4UDl5rdOk-p5|D$Mv;W9*d^g%hd=rqk=-!&gFl6Hq0N|kBGwRpS6PL5 zkB)a=7y8ja$UC4hrSJx3t9t`etjB21*Dn=5Xg{?BW%d}o`RU#I?#-R$)L37R`Y?&W z95Py5ur3`6Gt+s6?Y0Ms_|={^MbV(Ak}j=pnUfjYMgQVNkhvvy$~#b76E;pn7{^XZ zoJR%K+~{nQ#>18EsMLxaCCp2sn$K|y^BT-%nd-0;@H9n6EL;NNntC}@YL>#xv( zy%9RDyMSZO0&wuf#}BXWd;jC`tKR?U}jNO+b(7M_!YG##kR!p}!2QKy`~9 zBhD!&P|M*MyOC~wH=V%1la$Yf?diGc{lVD$y?^-`MzjNX{BiG6RZF`C z-V$ar#e~`u%^%B{Ah$zHsF&qQKxBDXA^3?0&>>J(pI=;!x4Zd-NnUX-pW`PDp!80M z*;D3>&OVx}&=yXZ+p<(HRRDE0GJYgwv5XC9?Hy2~$z#EI3?M~t4yB+|L-ZKVu(*48 zu%rWO!>mB+Y@wWod$ucRI&2xmR>tP$(ompLc(yd+TiBmK+^n(=!@SE@PXOG0|I4rc4{P7r+{Te*sh@)AjhLWj zEe`?kIWyfIARZ)J1OWk{Xw4S{Ez!2NWyv8?Zcl9Q{PsQP+?$yZev4qj*S3?PQw0WVv0^0&}M@5ROlbkzvh5UYt z%}6(3k1CJpCNII8{_H2%=sWM#L;|lSZwtT7kut$vCRLHm2EcP{Oj>CaRyOl`lL5Qrz!5Xpw={_c1RujTW=a;# z!M8oSdbk7pMydb*5H8s%$pwEz1o5^b+TbC}w*gB<0oADmp6c3kpDzDcmR z@Y}~D6fJzrkJLTD7c-Tj9xo7SInKleN-}I=rBtk6i>sRN>f+JgB))WvFuMZ<2@@w) z)_I4#!1WS7D3PKJ5SjpQc?9|B9{(l7uKj^yL=bWrP#2-+K?4;CYUlU{-A5>c!P;0mM_YptY5_Hbp=;!0WpCg9U|^@(qSB=4ZWHX@9a z)v1rCN@d&^seqHs;+*~sTNW}3O(jGWomM#ChHCz!+X=`Xdl|~;SuQh@;+x%`QX&p$ z9s#a!FD*s}c^{WbI!##t=nKo3-?5=kxd0mBsbt4*-cPps=KW-^Z{ANf`sV#p$Is?{ zq+D3!O$*R>s|Pk7j`b#oH;f=ai$)?S>&_*sBG?XK0}6%2CnDsq#Ge#%IZ&IH@KQz4 zZ*VOS0pT<(5F9qdSyOO zlD{*>9nA(jyzoQEj9^%Z3OP_=nqQF#K?meGj-eOkN#@hFP$-r#9*r+@G*7>UE3#of z!t#~#D`JCltbB#8KklksC*))zpeBF$^roc=Al_^}!HK}0ykz{v0x|!{lEiU9$58{q=hOnZV|4)&;|Rs#k?`oYY_{Y? ze8mFQrj`h|Lov&pBQ!f~ASikt_31ovfmp&LL0#1AiM+e}^uzMQ-|jz7KK$*yBFU-0 z=W-(zxV0Vq?EKk9|F8!%bQsEmv6I1D9t)PpJDC%xdI`(zKIvzooWyZyd`^RXY z9o*l3EW~2!eSDo3#Od7B3A|A~^8{I{1w0H_SIV}CE(SvZq@3bx%FiLh0=e!mvWSCgjhzl`9h1OwZ zD<^U#`e=V+ofTTa_=G|QByMEaTu0|pl2imwpr~k&t(-q`P1`_8vD7Chbjf@`LM1HM zHxdt$dObvFK^A2OOloJW0YzP|1SU6Kp+6g49kT18xE?auuFu7{BNSN#FKHu811Qj? zJVCV3AP)lN%W;GWB+PMPj4LsQV8j2Oz`3S}KnCznW?xp(r=`u~iy|cNFN|_kRb*=Y zIJEdr^dHC;K<{88L}0EAq(TTueSk7&cBr4C+DMbkpfG3KJUyi*nPzfj#dPC0+iL8! zX{D1PcbCzob9B?Te4-77_LxJ{hytm~#m3s9v&secp4Qc&_9Y40#3+=WAHVzX`md9> zKfk5F#ZgosWH(4*N4fjW$PG8w>_U}x4(|K7^%03e9hAS zF8MWY=aUB!znHQh{Icv0molB(gVLCorxsQ+ZdgkJ$v%T!lvA{?W>(0KRnK)qNh4k# zd25hKa_>>qhRPXLu32c0Lds1K7bxvatJ-=M{DTr@Cv4bMY{vE&!K5W zo{lJC;E~AYPPnP{Ifbf~5JSy2K=tdwKP4?f{yi|eY`)ZDL$)Ovl|mXg=x+5%`7-4a zhrAx_#UpYe%40*3mh(m9F1~Oa;#$AxeOF)jKDZ^n=zR#Phc)qwhF&Ap33*6vpeRL9 zi8?)EMtw^gVm56c9hzhGsq@#=y9G8Z!xrLw%JJ{*fjB6M8k8+MP;?A(nN+0|Fx?u95;)x$#{}-~)nw#H$&XyP1Nb?ncZtBt z!^2aQ$S1?Z3B8_OT6O5bXF0xf8`>bE#^7*KoU+jn3Wu;+plmY*Y2&S=9DkAB)egV^ zEZ3n4!tb~AW-QCE>CFdt?x(xge??Nxc6;~m@bT@ppHX>w%R<9;A9bN(Jnm*S$o3Og zto2FBHsiLFL>1*iS~iWBO{n(V_&5mrVtlb$T(f9B1r+{6A;qnVsR%g2-9=Z+wXltA zpwJjn3eh{crFk{Ju=*YrIn#pKhM8$L;V8WH=BP*8JAI{tHQ(*_Z})e9Z7v({VZmzt zGDp_!<$678@R#}B`-iumKHXst=!@HFDQdznJ{6ZpRvab3&{>k~`)4z_*>W&|G(hUR!e8g5*qZZ{SMPfufzt&mO`tpxo=OjQHi#FIQJhgKGn*N%9lDKs_Mz(tsXo!!Y~K|qTB0j`<&I}vDgd$}3I0VCfb z14lrp*Nh}!{TGl>mh4%gMdTV8ahc>|9O>GXIu}2-rdKqv(+_n%y+%ItX1cu{y;Nxq z-sInS4ZjL?v$Hp@@xc+~*m7(V{puSnqN-|AhPPA+6Rbd}$8$G?P}&j;FsT3rZ|Ov& z62brNGJ~L6BNfqWRx!`0$OXX6D@C!Mc?FUsCY0k}|8)29e)RGFPF9#M0E_i=<4rp^ z!Hvzd&`Aq2JL9AaHM|`6spttc$pQ4WwCAR3*hi9AQZ+TNY1KbU9+2U{8<@d9lKcvl z`y<^{y;}V4q46FMr0pYIL%*Gp!X#iGE0YXG?a!2hEPGk1F2j@1H7FvdA^dT|ck@K2 zQ$d|PC)DmTJ92;A>FeHO| z1FBcKy+pc-76AeUXQY*YMr77poL&CWcwzS#y%q{#EKE4~Hk#U8TO5GT_6OhcSc!Dv zx{D&TU>MI+qM6g7npNLHOMi095Gi`1&M=oYWsC}>=@$Y_$)Qmix2;G%78;>O3aE^m zv%KMKK8ITiZE@&*WWk7iCvwn~Qmg1_BQ$;)fSO`HPwGF0TpmAk0K&MMF+T}g&G7APN( zB_HTCodbNO6(b|!9Y42Mh-mi!$vR7>Dc?V=ewn?UeUM~?JMd5CdstXbx7&6ONM%-U z?m}TGkRHCc9EA0i&H-OAE1P=@5J5X~{>g_+1dUSW2%4 z*`P#FMfKaGh@|Y`Afjr$qIMy4A~Xl_KP!}8S4Ar{XDm0dvW&z?(b&gcJWNN1W?r=m zOQC*j2|-H36TY+rbP!8gf6K>GQmYSV<#eIzBP3{o@bHf0Z~Q?!LtO!oG$Y4|1X!*D zn1G`6MG&o{(1&CTE|!rTWhPs5M4h-U7Kjr=0h|5_RDkuwlmQ(DD47ZmGXH|PM3YT6 z#&iLBwd=WTZQD6cZ>6Cv$Xsacx6c&%RypXw)$x&SmzQB(kUnB<31xP zChfAZEzB7b$POag23k~t46)2P^cvaaT5Oig(ECU_!l|CV^K1QQ`RoYQ(63gzwy3Tj zuwx&|T+CzcE-bd5;yN#{P&-nLi)QWCUH#~EIVkd)xCM2gDe7{p;beh$N0*vp)5g6g zNzq0U&R0;lrPrVhqm z6lDUkzW_G1%6{7UDyuRQK>0@msnC0TG5Afj&IgBF(`fWs!Ww~U{Uh|_2}DVhubb77 zPzH#W2%_Mt8#_8FfzSj*+!bnh{1L=G{AKk-&t7Gj%*43vF?w8z5(@+)m$Thoiq%yG z(%6jRhqV%3`M`G#(i=#9L}a`jQEn52lH%;RL^vrrYS`_-h8@}Jt!#N1A6gP2zI6#D z02Ej>D_6hUKQX@(>n<`gw6S_TpBbdjAn_{3FCD;g>EtDeyvzWC&gr)I!kk#=)owc4 z=i0rpX_($FC5tO+S)j|Ug1s;Yt3u=w=x`@-l-k(*8VSLmd9hhXf7;tKr0gIZs4QaQ<_#M3xYTDGE3v4* zbJI}m$DuK7_gf-7&uEwF{@f(!a!I}RHE^e@?O_0G7NSHv512Lo4T=`+G96%BKWn={ zhv4WN526e|iblO)+__7T*`oi+N{tcc?#(l)$AV33^2>J@{loblbVxiVZ zG?bkk3MIE`vso}=!rtQ3qXy6b>s=)rGL=eZc~I2Q(GP_V^K3Ag)NK_=0i0n2_7m3-jtp&Lp)eE;{)6Ug~%+{-Kbri@~?f z%6T4aHDDZ@ZQH$Duug*bG$4Hd^BW$Bu;86=ktQMwjclkq~!`SIPY z)B>njwN^mgj87;QOSB6nf0|1suR^8ObVFEFn`HM7*$;aE*f!cIJ7Wn+vAjtMR1MK*nK>9!Os-}83D2_31g2(k_NSdkpJkc+^Eg27Qx+4V{c)rd zVmT3u5Dhgif(q!*maWdCO{i}Isanjr3me@8;WS2pYJEAMz-G0sYCGj>r+9sDa3f

j9Er1J%M$)yuIV0nvK%3A2x9kq(<#6$zy;@+H%^>Tc=My|#n+Zg`?M2U+ zc=G=uHm&ezVjX>eIosB)CdtrJdDE+bDaghG>J-KG1fu_cO_jfoyaf=*o-F%7rL((F z_s{@)*lcyMBI#YMco1`q{C4H_4ASOwN7?a9$oR%HikIxpGM=N)^_AlOHYf_Tv2N;3 z0Co@4LMTtk_XvC41W7F6iQsSG1HA!EeUgTQ6P%>sfs|+*q$Dz=C4Twl&D#%y`G@y! zA3l5>-@SYHEusm`$QzXSsuNEUTQe&gwa;?RaoT|k$>6%>! z@W40v{sQ#7*d4AKKaZ7#p_o~C5o`xY_M1St+EZ7E>wCCz;Uhsu==uTq^;-A-OfN9s8#Ozv~%6av}X znz{rWw{nv}JYkjHA@(#e2bFy>Zi=G<*QsjO2NezT9)@xvh`$>!{!TCGQ|K{zB>u-2 zz{N0G++MqmoNzVJa_>vK{QU0S%}@L{(@(5Nt}s`mRhEjnPHd6FKo9V{X~*#09&o_B z6)Us^cnq-MIbiNF{%_9)S=QL3W#&QwdYMdH9Ox3Am4FcY3g#SA6ocelT%haB75ELx zg;B*KiWhc6;ZcaKGAgr8|I}z$s;Y9DNR9~3-A@mnKi(%|)3}x60#IChJjh|MPVR8{ z6i)0w%`R#v9ra04RI;>c?kc`QZA+8Wu`eC5EBCF3$VVMY2AM-SQlfILgC<6rpqkM& z@CBIm^M|)@Q0oV^M6@>MgvdwDb;t^&r=d53Dq7E`it_{_v|~h|(E}IXl?K}AaoK4( z<(P!@KtYQGjD=hW;G9^0t3Kt-7)j$~#B?)t6pX{@`kALFMbR-X{>s+t#fnYa>+uk* z5tlOx8|SE_1U^5e*9o?N7*X&esyP>?#-GUs=Qx~6?&HxCesPq37!MwQF$OG9Z7EEo z2d7|VboMD|B!Be( zaD11i;;^>)*C0E)q>Z#1?J>J1Rb%80RgnYP7?A8B9Kh%uDK@do`WaUE_hpig9(K_O zlF0Q9Q*x$bCC|b@G+J?Iu1E7}?+@^+JUc;oEKHFf45~9ijfHq67C|+S-V)Wk!AJG> z7?R0}TBHEX`E0^1h=?E{!62C9n8_--xL=o*tHJy*M61buM)VUSw=e&fzl%7vW`;Lh zVpmfb-w0+=Pkxsi?Hwg|(tZ04qRJBF7e4bD2J1Nblbkb1`qX@GAF13$erw~Lgei;Mny)O7e*7x@0v%_=l7)*># zrxaukW7lRr99;E(`9;bA`tz`|TheB2Q;H|%Xon*P_x&TCYvQYypvjC9(8>Ul6Me7| z=oT~|f7SEh_#5F_XWONt8BY$a5)kU~Ur90bEt6!h!NnX2=dTG7{CqgZAc!V4tsJx# zEF40d<;u?=Pv1bU;=f~4cnWAVk*AoCn5Ve>1jynMl{8q@SZxZQ9baTM4%!{n`INnh zB!%X*(F7%#;)TB1Y@En49`C(=+I!vmU;nFjb5+YKmK?`zo+XLlC<`kj;G&*YZIDP- z?cCK`_ko%$9$1q_?--U3esY_GYTygf2};&zTP|~~`v^ZmsF4l}zjUUy$KNQ5sdn77 z5&twq@IW{#-Nf6zFlt&ho$UR>ihfn@z}-9b`2d6-Y`og@D$-nC2#*lWkw1)rk?=&E zt=*)Hg=F|YKc0f>d~|sY9!a|ZT<_ShBBF7Km=FjDh}oz?F0pF%bxCnGc-^NEX(14u zVt0)bc&O4n|880h7BfXoY8qOKHlfWuLo9?;P1pLl zAymZ4FSoaMf4%?wQ)M9HeJJ8JL{H=l4onlX(5_w_Nm4MWt-250gTKHt37ZWR^2tLoh4Huzg90O_7 zLZ)Dcz~<5jy$yy^q6HQjTLFLl(*Wz#_T9Xv#0F%cDKbmt^z4pK$e%Cc$AD-&!eBtnuFZ@7%d!LP?NZX++NqZl*%RCm4wu1XW9%w`(%Y11k z8|1b*O0TdJi+~cZkR(&1B1}@rBucx+$!NHum6-ulU0GWJ?hzOekLR!~HYNn>X8wG^ zGK%tWtiHiPN|sh0&cZ`slN?5?ahrn%R&2b5k3?4N5f5da!ytngP+hb7v;X?4=YzSv zsk|1x96N)$9Vu)VWRQmGknml3b^};n8I=kYsShfKqNI&Xn^~&w3H@f4LhTqyac+)m zITC!XvE0l6pH@nPf7!=Df7ZwGh$|`rY8PW8WaZ6&B098od>~E&?O86t`bHZ>0bNci z=X}{gk-6WxhxSn1MPfa*k%nuK_)yX`ASvd6MeHC2M?4eb6+KKMs#ulJg+HSs)e0~* z{Uujt5d)L};1U%cG#4ZbX!14riU+|9WXM0pk~@vV5&UC*kd@cE;yZVXN zn)_PW2mX30x-Gg^%VU9^Fdcw8A;8Z*+38CS(tIH)o-G#0>Ka`?hh;5CWb74IuNpXK zv$H|(Pk&6?4IG(2joNS?42$CHRZ%IHvdaH=f>~{a`3v!`i#&2fQS>$6_@QxL5hELtEa^Q9l?0Zn*`I$oohFTy3p z7kZNMPx+2sAo7vp7rg*zxejL2L*<*>IY0xfOk}a2pSX&UIO;I4J58rh(4eE_%k0d6W#uYiWqkwzwCVeJ^4L zn`Pr`v6nfH%@Ovf6*H>~9XIQ$IQysv>2VVeP(V>^E*DU=^pkX2IfzSTSb~-M4FT_@ z%sF;lWEyV+;n`g+*Qj~-GmnM4ci8Ts4hOH4axTcpkkpUGT;Ox0e<6Mek<*9`V2N~= zeuO>R)&*kIW9&bGwV3JMn>9N%yuN#P&qK=K4yE09fb|#=3Nym_IAdfVVlopkjP?=ncMerER31ke?nJltc}T7(%Z#q;>8$sdbtwSUIRZC}m1ft7R0ui$V*M+4 z3@6@M6Tff_lM4-qKpFIlGlP0{O9tV#cOjVUsHHRpXtAIs$hL8{KAT-a$4Knhb)^^N5$V3nCw%Vyz7)h%8wF$mi)H~ci4i~eSIK3}b5`eF z&6t15IF_&MOEdzT<>+Nge$Jiv{QlwoW3>|yiS+bzr2vZw-Kl4z+IvhKPXK+UzC8Qt zy!~~)p019(tSgNS>jSL*AmNVVT!{m7uwKhgykur0iYn&-4}YSD`C_lG&%*+@2tgM( zGZc}N(@uWkApHmk2Prbd^3fIsFc`?I=JFY)!8vJwIRWd<7zbKsCY`jDQ&7NqtX|IP zDl4e|TpMmv<9SaO7;1+X#F*LylW%h(DZY*Mf$)Zun#0p75`@DHHj6xB3oD>4G&~U&JIX4IOiQuNpU5lG z1;JUEO_qpz+!mAOoOvu-h&}^owan&(3f9a>RY|kVkGF&D`hdJWjPYCCpaQN}$kXPO zB71&U`Z+W?c=lIQmaTOsTq8>uRv4%TnV#4e7b8G2x>uFyjhgUDqb7|_M5Gw;fXSLN zG?{47_D6$9R3N>E#&N6}79{%Hgh?5qmAGYe2h*h~EaeNZVevFj9F&bqW=X#gVpQs} zehcZf%VvBTPiQKDE$Yn@tI}Qr#CF8=)H6hs^0QrS^`-zu{u(yAlVqg()M=$VNoKk= zgY&ZFmIC*}G?Kihc?i)wB5u$tS11x!7#bBw3YID2Cq*t0AF*D=vaz$TXj)2iQvGAk zumvj~Rx5iQyO+z3Ua}a#&=R+~1+*2Gj~N^o!CFg^5c4|w9j!5V!gxGH`mT!;PUOgB zGAM5sn1R<#(_cahjbvr2DblZFtE&p2SKKhRVY67Htc-~tTsV zx~7WV-bbi^ut`A5bz+i2wc*RGJi^-Y0@PGFKlE`d=evChy9b!0LzgVh82>%2Hi}Z`Vd}~ldVGeUf&U?L`-3ndD z03i*!FIxcM#aUPUUtdM82N5dN31+Gx!aX#G|Ifn!aC)v99 z*bt3q9lU(ZT|;UfJ(Ye&v<=hk7nrRD$RHD{bw>v;%TkIBmn@~foR&aIu_Lo3DgAR)WyBHi&Y-U8cX5HJ4-Uaa8pBJi(c5cf3@nix%XkWTu{li3B)c3YBpjgDJ~1 z*i!exT~%$c+gUP^^xYTpV0g7%YC){*iU|-fab+4I=8e z14)8@47=6J4qr1LiVCHvdMr&fl$BNqtaCv9`)}ylarAgf&#a z)a7RSl7er|)|*g0A|jAH7e!29u$TA&W#f_t{^^GgA0K*EGPt`!Zdx@~1EBm;Xdsew z8~#qxVqpGR=}Z#uP574!h15_nyVK2bZTD5stx3X$mBQSHY9c0M4%BtMLuHPYI%FQ} zSG7XJ(Zj52n0<%IWDt&l&pmxvykoc)otcd$s+eBGnW;o6OIJmf6v$YLyH0rOvPppG zLjw^7nQMn_e35dNW2D5-xv7nl9Tubmn)McD)vm^MS}m?SgKl9fAGxkXiOevO6REVk z@WU0eM#YB~{@czj6BSF&lP(RWx}#ytpzzEF)(AE8U36hzaMXdLWb@K4~r8yPu!GBER8 zbhj%{FukpLnodmE36lMZR+d^}a*$Li;_(w5Cu>pI;$t{W5%L5X7`-uCM)ikZ55MmB z2K$49{Ua2Fc=qG#pFaQbHR#a&FVB7);`+OHAMPHW-F^G^kDoq#_kbHJ$b|pieSH1H zAMZZ?`1A3zAA8Tf$JoVw@7bq^H-G&8{b#)T*>~T4ey>jT&puhl`cJs`=I-GxUL!U4 z^>k{@MtOr>tpYj@ z>16E?+FP(_{=w9>wYfYT@K$159nWA*MjQ9EMS(Cd$kwDQ+Y!)&-w=z?uA^t-+OLEo zJo?yU5eZu+=Ca+^4B|F|2-$=S9C)3wo1C}r0*gM^P5}>-RveKe2)YdHc{X1;=~`E3 zK;T>22DiTt_H9@4r7!jM^!DoVY>Tp~@cc8hT++T*I1&E=g-c0{A*)naLUxa294nwL zGiAQg>jQh?`9vjeL%kd*-7!Ef_WNdl69MF(P9G9SHom16S&@G43-mck9lpq0b*-mO5}l8hG9*#qaC7FG?WJpq@JTF&_b+w4|_%BGg zDu>m#G~vW8%((6e)D1s(f(gHr$9x96D#Uh{1_`1{3I&Fs?Iv|c>~cfDsaK3ZRM$wf zPtUtjS;6#!W-+RI1^U9$uuOjBLzGPRml(S&%(G~0V6&>Rx)J8_ zQJTDV*ep>4H=?F1!66m!2%_2zbS?Zldwuan3AhOu=YiB9vA9` zqhQSFYH`lo+NuAo?H!>#G#xFI%MogLnw9{^38sM0=pXg|@WUT)5~%N|PEe^+M?tP^ zvgjNpJaaX0&|k?y&-{G^t&;=GmLVYk*+wrf7oOT#P;Wk+3-#E;lz4|sR-JHQ*U2MN zbr;x{Y6(JdIdi_li`9OXC-*7c4fl;YLC*7Q&9pwv-CjmJ%^v?yLgE;5_w9c_+`p!? zR$nnVj^-NLiX2BORBS|0i|@4k%6QtWH9g=z7l&3#KYUjHSZLb1D-uV4CTrsE{SUdO zd1_ayy`}#een4-AX=lFOAgopS>vccO>2%ccS*iEQiYx$;Yd6hvYK zN-qw*9eAd;$%xm0Ymz8Qz<#ZTE45_$PPl2XBQiu*B3|BrFr*XcOClY&F~WaRMEQ}Q z?1U$gOPi-phtPm^V`98ZV`X0p%>?4*APM`n1{QaivG`1FPnMJeQZM=JSI>rf3G&g1 zUW3%7*Uv^)v^HZGGThR4Y#1UB4y1dh56PjkuNt2hv+Fs;q}3(LC(IBhe;xgnMwU2n zYV^6@maRb*(++ikf;ePw&$%Wdf2H_XA-%8^FCdGu4mFR+Fx>-$$IP$l?GdBp6G$}x zBso8=OBMC|C{@%SxV4Sq;R(NoU!%UpNN!&(SS#oX9TXLkE75_)gHVCXpn};d8rSy1 zAbuet3QSX?!sZ*-A(-6{#~VtSp>Qm$1|DAPmGo^**-gx|b(3YSDsiMUOY5=GE_U&%inMEkqg2)brBnvF!^%Q3=k^j= z&Ckq5pi+^%H~Iz&;juV~&L(W%I@j<)%|a{UhyB4=^myk-9=mIaWTuK-o?%K=0XQ(B!-3U z?J*BWco*zJ9#-i@y$!8)WV*UsUVyOE|3b+)6~cn+7qo-Tte`(5O-{4l+k5ljGcfpR z|Lfz^bnsnh2 zvnx236IE|Bi7ua`9*I1Hq{)72zFtCFg)fSsSQDMd3@G=p9%z|Hhdc(Odf_E{4sLt> z6hAe-y=g`-xGi1~eE^M!Id04x3{}tI1k+&CflTa1HyoB_^Dph~1aZ&ci=|&}+p|7) zlkqUK)8rQFm6e2u(T2zJBvXHe#1?5gj%OKWNcR7bAQgeT$G7-5IzF$H!63|&3 z8&-LKelA3gN<8wR-oUXh2ni@YGqmCw?&`!fL?bSW$jtwPg~jSf!>rF&z{HMTbKQ|3 z4G6}PCO;~{cMmYUg=EOUINA^bWJQ2)FI}@F46dUNoJ`_Ug8L{wX@*ou^#{g98zDSJ;OA1JgdU4_Sse=O zyL9{d=3>nlH(+}-mk0XQfIOLg{D|7A5UgYvP_b?}=4p1Ki->!UDkWM;e7RaX2v;^Wm-_y4DQrw60(K!h0Io?SQ|&YcH{;-eL)0bSEfJBT39~XzwxQRksF)=S zlC&Ik8$GC#epSCm998_Se?pbOa3^7*} zidK^)%b(z-U{X0LdjFTv2)M4IOJIXw+|%>X_*KtN++qfD_7}spklg3C9UaPgh$cnD z1tvPZMqFe5Q)|o=0I$85WTz-M@$cm`<^UiGz-T6xKGr}iJdUP;rt zlXgv}Q`uy?J!`1!!?;n0ZNu!PD%6Et1qLm8*5NGfa zO9@q|-ueP$WcK#`+fP48%2VuQxM{R4S%o-75;31sWlrLek6kGdyt=N~9%pQx7=dh8 zn_G2MWMgs>Rtu+zeLNapz~O}asq5PjtAcAeve(#?*kJ(#;{iz-Lg!%9ZuCur^IHff zGaU0J@Vgett=Su$?o3%pAWc+S`xurA*GR|cv2BWKy!r9NPx8~TXRSB0rBNI1!4cd0 z=s**e@04>2?H%|)b1$}^syul-O|}=b6xiO!1=Om)CSupll9{S)F>vf!cof3LdIj0y>{PzMNdO*+!BO>sl3f*!h26rmXM zs93^CQrfoqT|-=R#ivkng-v3!ILTo|q!koDiGm)!GpizWDuC9_iz`_CE0+iHKcIQU z1F|P=RaFYTBA*o3sssbcZ}t%Wl&6HRl7u8%3O2dBroGL@Rh^LU-OWe(KxrScn)jT|$vJ%q@-m`phF2JATH zagE|-|7q{fF0q-dk@xhX^xmd%^WU4p2agReDi3><`|-By6=EHUCl78bV5qkfLc%~r zT|qsjr^DTyE!P>Ov%>>oo4FlAg0(AdHuUeXfd{T}D1wfp4%h<0$IEnce@K(W;@eRD zki2@2(+eDnjsg6f65Q4-s!;*;Lk+XoDf@pML)K>yDF30&qUlbC4bj=9$2pr|v+qhF z!2S)~lI6>}ZRiROeo@=Tdv@0J&y3)Y4P+>BDgJ(W4ZrsFcv>~-4i`X9ktCqw-~SF$ zlg6ujgAuEp5EKglImGH(D4f}097(z34TyNKOs}Y>=^1bO3u}N?B`6cxSoV>I|E0+4%~H));GSnm9DtsIj&24xkiI1BnC^ zao@o+GI{&++fQh&;J76aJUwIP;xMa`VFNW|$LCniX4fiauV+j?XsoFRICkXKfdRtE z;D?^cIK=>Rwgw&|rSkcDEoQ2sNadc^32x5(qFt7_vf85wu7{>MQEWuNxBc$SKC5t>U8$^xps|5qJoyXtTR=w+9%EnuYMJ@BJmTN? zj0|)#;Zw!@s^^L6C2?G<4$CfbdVPQUaLuN8oVvhL!*%OAUOi^#IffKfAImN@O$D>v zY%v+<@u)cq1LCo7Z zY#es`>YPnnyty%M%WRC0r9R9&ei)J|%U8l85DC{hD9+9z_>_RqADkp>ulu!+T!g^p zA}r?&?WncnqS3Nd9VdFx;qw7KXn_^F4=sCg1Gkpm#kF$1S&c;{71*yx32{?6swL0Y zD4xi(>!tB{Z8$~y&I_b;u3sE=7Kt^8zPWh)MmVIf-JH9?Jg^3pG!{@IznIY2>C5Qy ziKMpx)eEyae~t+ZGas|4RbvxgU{zW+!d=a-Wgw?=)d;f}c=x}skr|ztSp;vg%r3?& zrEg{zj~hd!eNqv9`o%!al+4p( zUqHg+n~(ljL9=c)#wyiU!=Ot22L1BZ7VtuPKP`{#0J&M+fB*IqN{FO_)R|>7>iA&Z zGCiaKWq`C%+pPy{GfZ3TA>=D%V^x%3D!9Lcl9X>+E-%YwHn3Eb53~V~*3PvCI4Un2 zSQT_|7n_XGS{6n_k}{AHm~5@{BBYL~HHCB0D<7R8K;f(0w?rs&3(;8owluuZl@3|b z-#{*>9f{K-v4Ux#%281hE&Ys~V2~J4mzv4R(oIBIC~R`ZWE4Q9F@<~Kphs~vVfqEi ztnM!vrU-PIFowp;!>Z;*?dTlaSX@Y$_2$y!k^ z!SAcFbOz;s-$#c{ANJK@GgWfDiHrn)die*hts+ldCz zkg{v_ofB%oY?^353Z{juO}9_8d3q@-nK#sfh))nhtRP|vd{_n5`}XQF@rIUxLjUAq zb%NM+{5c-rZ{ucUBDAYm+Vf~NzCgO>SiOCC28cZ=&4u4mN!ekyoJ%!F*ed1B29I0I z*VEOh2~iBqSLJC-RVzy;gKrOpBh0Vm)X<3`zqw; zOE>7zkT`%vERrbc$o6}@*&e09}Q>bwy9!NgH660dk@Mf^3-8SPDDv&0Xg@WQH6Dgi>`ysNzUp7jK! zJ_<@#59&L+;Kss5_5J*iM^r@5OtP6hyJ*unq^!K>U$t{@DLH{j$(0^kE=nhZSW2uC znF|pH-ESE%!&tva;T45pC+5M_UwVhPTuS9*Y%rcX28R z!y~~sUWv}|r^A?F7EfmrG;+`n1-?aOpF&zpR>@$VLF5*L{JXaP%1qro>LjW~>7+|}WG#}nGXa(cuh zf6V~0Yh(CuZT%qLLr4I}0-NMTFvXImS=iQmg#DVJ(a*MbID9f+UA>&Fw`Xr3u0Q|y zEehtP8##i;W%Xq8hW#PtCz!z^0OKc0ONMMsI|aH}oil0&!pr5tyBh3hnFnYX)#zg< z!SBH2c7G3>&h>KFIhzqUs`9~h81MsF6PD$IQBBoyiovTU=inaKh zj27Qv-my@m+$^$s)HV(KakV6g+hsfJfJ#iF(9AH+R)C)i)CP;&;B(F-po8x3V#8I- z1~)MbXqP#asRdfFU1^D2Pob$fwCp%G`xGW*YFrZ45sa5qVbTglX3&bW!II>X`?}J* zNl3`;L#V{#krE+LLPtI*SA&Ydx1n0Q)Jqm-QkHTHmn`P?%M!crLgEfnmLvwGoQPg^ z<;ZiZx^RqN_4AZEz7Q@dV(PYGZw6{Anqlf(dE8|g-Bi$WKaOx?R#)8my0P=(=s$4-Aq=O(?R2RTVTCYvk3xl zD4ytKy+QLv5N!f6+tnqsMe>Sr&t9KqP<({w`O$Oh^#nb>SOtkkj-s-t8&f9at?PSR zbED%d&cc6;Un5%==B}$R;nxrfJNY$*Mey0MZ>No=tw35@P zi%M+~V2s4L1mmhV_+S|zS5gx$b-B@;v_AC02P+sr;^*Bx;(+o0PJBhYV|OVE<>3N=qRDFDF} zw_5jUWQVZ9Wn$xPP)?@h)k(J~#H93=WO3bvOFWm)YfSS_ZftUv(ud$;I^x852Hot?L3VC1yA;`%{u_js6hH|7MQzb9H?;TF zdA6`oNLZ7+wL?kduyexP5BJn`xxQq2)E3e~fBEeA;<;mgV9iQM&)rdInBsy9fgm&* zt(}N_P>A$vO@_j>pT$%s|5FtS`?XUb-9c-LMfXF+_V6odVXE7nmd)qL|uZYy}LD z>eMwP3Z6XoaCDp0)4@x%N#th0wxDl`8Hep}Eh|+~T$-lZrKbjT`lP>MCd-^YFRhoI22A`g@L%>m|1iX zn(|N)EHchI0AF|bO>X!Mn*gHm55A61x};!v79qi+P-w;)CDfyIYT~a7h|e~Y+XlWj zq1qK5f=w<>f}1y+=C+=s{arip*HrgA-&$9Gt44j8Y;@cW22|=0|(hW2#|Cx7?n) zurMTTfX9D`N}K7RXGg*92m$`&`XxF^piVTcjvH7N(#cjemu%#hSqP{kGHzi)Ut&by zUhXi~|DHzwq#r@0LC%PUzDw}%k{2nOz(ZWjBnC@2O~`H_^D7-lZj|TCt`+QJW)=yW zIH!y?ijs7^uMG_bkO8)pDv#1Eb@YOvvj4cH5@5Zq;wA32&oW?_2P==!XX#_*Qb=E$}kC>=6%DtJm0=VkAy^S@%OCeF9$uz z1Bu<3^aBP7E_J@DH2VvM5?C126;jr-+?^qoW}s{oO_%SVUE4dHY4MC#Gt5O!W3CBu`C& z+tGam9s!2|@X`^H1z7mXps#4rIS-O7gB~LKCeJJ>Ik?G<3-t>?vx{*=$_V$A^&r>S za>QQbd)ViF(}+Db71J~NoKy{M6z$NlVFjuXQuQ7grq=*ZFIUrB z+OO>xuSaJ{jV?&n1#V#LVP>?3y_TWx$~fC)s)dN1T-`XuN?)RDWI&Kia>iT9oP$5G8LN41Yt2jxd2(-VnCj;zyQ=2*xf#8D$tqP ziIGmVfZ>rre#8a+azkI|ONCqnR8(+tl-V9`8a2>T@`KgyFuREaPDo^su7VDZ6f3!- zK^a+31qKqlkvxp_6#K66q=+CCl!c6Au%6dsS}J#mxMfg;sD1%ng!&_mjd!m$0a^pf z{wX7PN6SY@r5?Y=>E$3~1{N2_&D$`+;9i|t(k$-^X*ZRF7%ky5U9b*BYkS(;9X8hH z4a_EcKXJOX|4UkZ7hMZnFuP>89V0TY9Z)iaUo{@7#O@L- zF9%ACslM2t?upCs1*Fj=1zC&1`59&{Muu5EF@b>o7a67TNZEQETO2Fj_s&xbuzn;u zU_1<~af`BK`kLgYtdY41)r*BVR0*F?Dn1eKYanD-b_{Uiu4%K;TigLP_daq^&u?(N zk~6pIp!SS4g0%_w-F}?wjFv0~uUcdUd zX?74-7}$$#wmKRn!$p0ZnGyuT2Vg*312A=FH19BS6sT~aGIClZ4Crq&Gl}aWMn$C_ zG^rN4fbFG+`E#edz~@@&g68t1}b{<~`0Z z8^da7gJ$p}kqHFEu9#<0(;tu1o@S>Iw)zns&;gYVZH-yOKcsWKN0ST=6RnV=>uY#X zy)a<9av6BPs676uz8Q940$AVbhD#tEEwa#ju2C(#*LhdV87fXzOA=@VPB$jmT(it% zr3PoEqN}l(D;6-y<|-K^;>?k1 zDgikvlP&SMSUrewkg6AKf-WK+ag7F`!lf?Gc&%IlR`Dg5vK+tupq1n&rYedbthWb6 z`6|}i1CuIQS$;Y{v{kS&^M`)sA&W2Y|56N`ae`v{vO@r6Ck|`{5DF%|<6JD5hnO;c zeqaT_!mTUZ^YaaZD0ZVn-Z)0vY0p5tm-iTQCM+9NKC}i%!?~Bv78v$Gqsj8>#+0Px z*|D++DgbWMH3EO?8YLUY{lWGnB1}*P`Vy&lbdeYYno+n<28mP~tF>t&V0~UHP(CRp zT=y&aGJQmX=_@)I8_J^i@$d59l`v2iYb0e*s>;yNMh?bE}L!@;}$ zFTZSmxO=yK^W)vuukDp7?9>CE@@1eEM0Knn;wm#uG#n^L8%E?uLKRfEG!ZGpG$F>? zt!RFsA8WYyH;W?|nY2XY9)V>SD;qG_^Vb@Tnt&9eusVM}eInr z$!K6qGkNW>W)`{6rath9Qc>Oe__X(jKYsi}4}S#KY@ulNzJ^Uqfoes+`U{B%zK&;` z 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

D1k! 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

o}>OVWqD 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 z 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

G)cCm=);c-I{=R3@dj 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

^N)T7P;4KbLk@ca6UJKHbO@$- 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 NF!546F-(gG{}&ZT{;mK3 literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.su b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.su new file mode 100644 index 0000000..60ab396 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.su @@ -0,0 +1,9 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c:142:19:HAL_EXTI_SetConfigLine 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c:237:19:HAL_EXTI_GetConfigLine 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c:316:19:HAL_EXTI_ClearConfigLine 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c:369:19:HAL_EXTI_RegisterCallback 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c:394:19:HAL_EXTI_GetHandle 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c:434:6:HAL_EXTI_IRQHandler 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c:466:10:HAL_EXTI_GetPending 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c:495:6:HAL_EXTI_ClearPending 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c:516:6:HAL_EXTI_GenerateSWI 24 static diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.cyclo b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.cyclo new file mode 100644 index 0000000..f6e8b03 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.cyclo @@ -0,0 +1,13 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:229:19:HAL_FLASH_Program 3 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:271:19:HAL_FLASH_Program_IT 3 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:302:6:HAL_FLASH_IRQHandler 12 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:417:13:HAL_FLASH_EndOfOperationCallback 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:434:13:HAL_FLASH_OperationErrorCallback 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:467:19:HAL_FLASH_Unlock 5 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:502:19:HAL_FLASH_Lock 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:514:19:HAL_FLASH_OB_Unlock 5 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:550:19:HAL_FLASH_OB_Lock 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:563:19:HAL_FLASH_OB_Launch 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:595:10:HAL_FLASH_GetError 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:617:19:FLASH_WaitForLastOperation 11 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c:668:13:FLASH_SetErrorCode 6 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.d b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.d new file mode 100644 index 0000000..ff081a7 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.d @@ -0,0 +1,52 @@ +Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o: \ + ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h \ + ../Core/Inc/stm32l1xx_hal_conf.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h: +../Core/Inc/stm32l1xx_hal_conf.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h: diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o new file mode 100644 index 0000000000000000000000000000000000000000..9a00b843f93b4997e8b5ea7edee25ff89eae2d8d GIT binary patch literal 714796 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

OG}j4ht42U>zXL&}{lLRcb}#oKg6`}dqu7i& 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ℜ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 yXD_&~ffQn#2MNp)upkM*Js0bp0 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

0_WVBpIM|t#LFZ&Qc@SZp?ee;ii;JD`O$c4> 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

@D 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

*sZXy*R*|*D1RH~N2lLRvB6jL#7_Sr-7y&Fg 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Ÿoo{%mO$@ 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[5Mxcv%B3xbIU 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�Hf9D%vGBK0$ANIyP$3bI`gMWICf7l!I9EXiL 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 literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.su b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.su new file mode 100644 index 0000000..09e2138 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.su @@ -0,0 +1,10 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c:113:30:HAL_FLASHEx_EnableRunPowerDown 4 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c:126:30:HAL_FLASHEx_DisableRunPowerDown 4 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c:163:30:HAL_FLASHEx_EraseParallelPage 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c:224:30:HAL_FLASHEx_ProgramParallelHalfPage 48 static,ignoring_inline_asm +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c:302:30:HAL_FLASHEx_HalfPageProgram 40 static,ignoring_inline_asm +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c:394:30:HAL_FLASHEx_GetError 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c:426:30:HAL_FLASHEx_DATAEEPROM_EraseDoubleWord 32 static,ignoring_inline_asm +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c:486:30:HAL_FLASHEx_DATAEEPROM_ProgramDoubleWord 40 static,ignoring_inline_asm +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c:586:37:FLASHRAM_WaitForLastOperation 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c:540:37:FLASHRAM_SetErrorCode 16 static diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.cyclo b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.cyclo new file mode 100644 index 0000000..e47145d --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.cyclo @@ -0,0 +1,8 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:170:6:HAL_GPIO_Init 19 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:301:6:HAL_GPIO_DeInit 11 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:381:15:HAL_GPIO_ReadPin 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:413:6:HAL_GPIO_WritePin 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:435:6:HAL_GPIO_TogglePin 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:469:19:HAL_GPIO_LockPin 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:504:6:HAL_GPIO_EXTI_IRQHandler 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:519:13:HAL_GPIO_EXTI_Callback 1 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.d b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.d new file mode 100644 index 0000000..3c3b03d --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.d @@ -0,0 +1,52 @@ +Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o: \ + ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h \ + ../Core/Inc/stm32l1xx_hal_conf.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h: +../Core/Inc/stm32l1xx_hal_conf.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h: diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o new file mode 100644 index 0000000000000000000000000000000000000000..2889bb2a8b3d3f499e40d82ab9a0810648551087 GIT binary patch literal 713436 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

$t|a#?CQx8>UVFP{K#Z9xOMU|g!0EG$1lbp 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�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 C@sMu- literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.su b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.su new file mode 100644 index 0000000..0081dee --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.su @@ -0,0 +1,8 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:170:6:HAL_GPIO_Init 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:301:6:HAL_GPIO_DeInit 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:381:15:HAL_GPIO_ReadPin 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:413:6:HAL_GPIO_WritePin 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:435:6:HAL_GPIO_TogglePin 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:469:19:HAL_GPIO_LockPin 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:504:6:HAL_GPIO_EXTI_IRQHandler 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c:519:13:HAL_GPIO_EXTI_Callback 16 static diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.cyclo b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.cyclo new file mode 100644 index 0000000..31779a7 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.cyclo @@ -0,0 +1,17 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:84:6:HAL_PWR_DeInit 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:97:6:HAL_PWR_EnableBkUpAccess 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:110:6:HAL_PWR_DisableBkUpAccess 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:338:6:HAL_PWR_ConfigPVD 5 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:380:6:HAL_PWR_EnablePVD 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:390:6:HAL_PWR_DisablePVD 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:405:6:HAL_PWR_EnableWakeUpPin 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:422:6:HAL_PWR_DisableWakeUpPin 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:445:6:HAL_PWR_EnterSLEEPMode 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:494:6:HAL_PWR_EnterSTOPMode 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:534:6:HAL_PWR_EnterSTANDBYMode 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:559:6:HAL_PWR_EnableSleepOnExit 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:572:6:HAL_PWR_DisableSleepOnExit 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:585:6:HAL_PWR_EnableSEVOnPend 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:598:6:HAL_PWR_DisableSEVOnPend 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:611:6:HAL_PWR_PVD_IRQHandler 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c:628:13:HAL_PWR_PVDCallback 1 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.d b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.d new file mode 100644 index 0000000..87fc217 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.d @@ -0,0 +1,52 @@ +Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o: \ + ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h \ + ../Core/Inc/stm32l1xx_hal_conf.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h: +../Core/Inc/stm32l1xx_hal_conf.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h: diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o new file mode 100644 index 0000000000000000000000000000000000000000..54fcff5a875104c740557800b6dd4e94c0894701 GIT binary patch literal 715680 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

{==wqLp{Y}0w!e|W@1hjU~!gXRn}o+zRM1L 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

#xPASy#YOv4 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

)vUH;3LSb#V(wo>pH)PQ}Ei6P%$C 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

pCAXvkD_j2WTKLS7 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

QirpIpmV__z<5>p6-WMBm`!jDuNLnz@1 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�#;w0dRrLS7+kd;FZuEA``UHD~N~ zYl42#Y|r$0Uz{T5FzJ{X3vD@72jY~ykZ>mIg3RXb^MR}rJt1SbM}@{;ix*GK?BmL!e?dY~ev4M1q9Es#52 zuVG>wT|;qNfWXaW%)Wv}67d(;s8h8-76a;F?wp~w!v=z)_fgu;BO8b%q27C$kvF&R ze_Fiz_3nQ1?$@^pE2sXRs*qIR)^_xhb7&X+!yeG5WGIio1~PaB{4iQe1r|JRh}{qu zm!s>KkkWArgrbCt756Wrg?4a%<}fayo~{-QIw{X>4bhuvjhysNo#q=MG*hspV!$bJ zaiMIC(ko$@f-F=Vcl=u(j-n#FsV23i1UpGO66Slx4Q0?zBDhx7xcuq{D18O0A8pa> zvL=%JJO^kZx?Q3AmRaJ>XppbH)-AXcBK^-_HlAc3n}F$O;c*7Z!9TuuekBCtt6Dsz zl=bs)ab9}N(QTs(tE;mEtns^5iVzlkAi+7WVO>OfIn#m7ltj zo`esn-z%sl4QaeX(Fl@QlJ~Ep9V@9a;xkavv=Gmn#c>bXKncQBNhr6;0zq1bO+^eM z4Z6ge(9nm7UP#i=fO+u@X8@i_jKRxImuNaiZ;4EUsO*PixT`a<{t}AQ_mXDDm_V6O z;uaIqEJ78;)6GvABusO8jw>;SuY>(a{?WZLCe6O8LNdTmHNOX=I&5Gb+w%*EUB=F+k1M7PFQzRS;rXo-R2&9 zY^-$Hf_K?{I%l_{-L#?ET&yT46d|MHqH z8%I%rz}}>Fh0v1KE9H+`4O1`D zsBjyPIW4NhJX=3jB<5MJ5hIG`=My*qr@g&eqZ7A~&1EB7+>-v={fPnO<9=AO023vf zjS5_%Y!0X62-P8*$RJd+oDbJG4)Z~7!OWu!>l+Vpi~J^E#4hriRFklu(F+)O#B>5A z$3fPSI|rriG9BbRn*~H1n5jR(Le;6GeCHG?eK|qP z<|}0~+HovK06)V^&k^i-c=!wz{mEf*daq`4D`q|TAZMF~p@AZj4Ne}#P8)rpkO@19 zMe*(#GbUB}S|_XeS-xo#BpSt49{15Mu3lrYhX84Px7(j@zxx}Kh_>6?hll&u-+n-K z>@8~{+c*kP)yd(5WTCmz~lZXcq9`*To zz&&;g=aO8{c5i=)Pqc{4TnPec0_ga$1m`HKR;7v%393b%oGyymT)IjD9QbTI;g?8p z+x7-u4F-q%$51p*@Snkc|KRRR^c9|=m6-g)I04g}&BCpcG>G|uL)-_f2>3bo7UWN# zFE5&w-3BmWs#i|E)c3}PR>EA-5D3i0=hmYM5GB|<&>t_*fQuRx27N!b83Cy(6>!Hv zJrfaKH}f@Wy_%Df5h|e0D~2r4)B(E5+CU5Ry<8!KFVR`dBQd*B)8@z4^nxNG9bRYC zt0_z3Zf`~?I^l!-8;{{vp|p2$`!zne1Ua^(EDSB8%63xHx10@=v|w==U%JJG;+H71 zi2|^!OLHQXa7xsKYK=MzttV9E0^rRnb+Uf*3M7+H(K2B5^X>iJ=>G0jDsmTq4F$MK zrt_Pi#$I7)6b8wj0o$1xA~S^Qpiq-!Kk*@mB{Vi5p|BkC;#vJ8ZV#U_9C&{=SY5(_ zQTbV7Q1xF>dg4V|L~IBk*q3IzP1KP4|P+BG>(4#`!z_jQ?--vtMM8kr%o;+6dk4f zag-1bVbInOXlbC*@IAFYP@K$|jAPC}8V~HAqsPMXP}W5pd|R6J%2esmWNFQ zbKBj}15pc2#;;H|PWkGK)q+e!!rp8)VLKiBHIy=t7rm@)-~+-h zia`kIL^*j|=43bXt}ET1BTFE1*b`c}p=HaFVUOWv;hcD(Jnwb_0gq?Uih@Jmv%wzZez4%}%jBOi4#^guEEo z7=Q$&C+xtiW7NdH9&He}Z;Q!gXdd8jF#`n3qQnpkjdrCT2&P4Fx&t<~!|!XkPZd-$ zZ}hs+JBeKSmqayG59i29J_kaLypCAoRQ6(5yjNtC77OX=rM$adNuuUC>_b#4X(&De zvkxOEO~O4+@V0I@qvul`7R@c^pw{l_IoYyGjv_KC{@z+8!qxaK1$6joFK`6rtJyUQ zB_x>%+EC{NUulK$h`^VhTL@L%6C@=qfON2IE`OW7p1qSyg%P;W(ilz#U$@&f4@hOU z$K;T?wF_A|g=GB6g)gu9MG^{K^%t2{nSQ4zHNviI=Gd zG2ct~$nsfAN*>JAN%Rv;yEj6;eFYXnTs=eEY{;vq4zCJaXg!$+v9b&niGcCcaflR= zCS^54i)chvV!(pQf4Z<7dhjG#n)Am}#;Xr!<>#pjp!pzVw`JO-m+>ywPD`&Z zy-TJeoJ#&Xzt(@2FOE>K{c=^dQ+A&sv~;U2jY0Y}QVe&Iv9A`_d3lNQmSSAAkhkvY zN7V!k^*`!}_bEz?tl`9gct@9=+&+za&ytFcJfY8^s_THG=c^*Xc+F$-_}!=PzqXhP z>JB(zu~f7PYXY+C0oJ(6+}imnE0hvI`9}n)(0hC_ z__xZj4-UDe(OkBKaRUtnMrbh|E@H>)9`3=l05M8U7F?dYT&ND~loSE%I*3&cJA zWhGBfzcRj>Z5Z8S?9f@t#1c5>`1t`%(zhO7G{fESd#lrq%h|KQR{;>qIiSwXu3U zpBbdjAmb@!GabNk>EtB|2~1Lg{mM=Cg*mYlt=)9A=OG6^ZmhD36n;eD;8bu$Em3v3 zRXiHz(A%@r9Vsfqoy4&VESZR3z!GbSJF6ag!rpK3X5R~4MwJ4ZAa7$lI z>aBKHNKkWa&J}_P(ejZdsKPniAgK7{`9k~5gXZ_jxCYa1ZiSJBL}biSt2u|9FqxvK zMV9zUtz?fk-{RlUB1UZ1w3r%Fc912$kn!bqTbcs7)TbLOCaJ%3OH}R0p>2n|KoLP` zw99mVZW5HcM6P`e+&^o37{Ho^C=t&CP>%lwMT;2&9pJKlAlF#fPNPZ*nYQ6ZFj)WB zC*=uj+!$ax0UD^}Q(z%#7hcZr>{Q+Z|> zfY@fG`LM-lHU{YxmO?1jh@&bVxb0Q->5^4NrXQeY<63yhVq(DStS%*?w^xp0_W*JO zgulS5g&J5nbTEd$2&Ad%;AGE!MGtF`M#t#DL09}>+NZvspr3!h7mV^VlYqNAcV0fr z*{fDrMkhJn^Nd!0^=NI@wZYfUn~C7I8nAYqZQK1~uug*bG$2j@m0i*ASny6bcq9>? z;UiM?I-cu<2i}VJ4&$?xxDQpPmiDRJ@Cn6mi6+4bKr_hXt57R8-Ed?gS@$h%bb^ty zwIO@DZGp-P4_k6?U039(hG+@RIE?8f?=t>`b6Gi1$Q8ihOeo^?B|`KDa}A&}Dirx; ztK(@C>icHvTQu5mMw%e3dX#n6v-t$(q;*v}D#iH-iw4)Su!Crum7%1M>)K+su=OND z>+4gJdB%u17VP1c-JvKOF8+6~=H+K+5W~{FtJbWCLMb@ zSJw?1$p%vS#jAk^sf;Agtjs>M|B>|oQrDBY9^B{j_TwFtvmUTb{jb=-bFs3cHiysw zYg4<3dtH3LJHU>D0D02*OxzqA#dwYe+m{OY+o0so#@e_y0oXlE3jsSNTO{mt6V&MT zIvkv!EyVBua+IR`65mdX`TFhKcMpU4!~MI*hY#c1_wT<(Fo4-z6uR6AH%Y@otsn;C zR66k?UpBdLjKq2-dr1j##PB(YJ!7DbX0{EVRP3|~6Vj70OU+ghy9kLc=w-A}-ewtRyU2tgD)c{%p7_SB;;?LdMXJEYt@IJdy$@(D1gO$tnVy z32NjcZUWfPIEn;){^Il5{l~}K`!{#+#3INSJ*VpjtUn(I>ye7HfT4&#Aq-{2wZYJBC=?TEK}|Q&L(VvK>hK<_uqedL>cRc z`|%I&A9-jy0l{Hd%HWxJAc`h`p|@u?22L>vf5G-T_Y8q>NBFg#L$(~Fs}#z2qLy@K zf!+6mxSFI^39S-f{f=Hs=4Q36NZauX;nYxcR%`>P;N_ZyN1PP#NR3Eb{@g&T{Gl#u)$9^Qv)AbJJQe_i2ho#l3t5y|b^=j5|4gd9dB!f2;F_**pS- zhL8k&rtMDAEGUQ%(Z%XLZI_c?ywC*5*^;dx{WouD46kgMAADPh+KJ0*YQ{o|f(3tv*we%! zR653ZDvk<-7?sZtIuz#3w#|s?P~lF*(+wC;rx*0C@NJ^-OTGX;fXU+K%9YrJtAWmY z%iHCr_wTQN;J=x|V(oW@xgxtVCDgTOZ4HTjpcTNsv}5>gk0s#UiXkGK6s`*luwXbm zdW`?uvq3h+=HQ-X_d=n0oor7W=;E1`kq~PO_7+kUgJ>5)C15MV;;Ocw6Cg*G8m8ew zY87QU+w@-=j;9(eFB9<*>AC&k@zaO9M0Ogtvh$ziJ_k7p&j}x83rmL-P(SRrDffRz zwUZQ!Jm4ntoL@HlgZ=JQJB;r2`<^8k(w==G8s$;&>q?l`Z(IR$fO9`SynBnvL8wfk zwK0D|K6Eh#FoArAr2|yOpCZoy1+^Yg)rdf?2QHN>skG5Cv(w1QF_}lsK;u}CD;ByQ zfWKn>t(KLuY^0!*UDG4fQJxN?>t~+B@6$0Z{>s+tX^WZL>+ui_2eUJZBu@UHCG#`J~^Wpd# zVOpo#C8k6nC{?3^&H$&k1flwt2}9W6VxfdrsubXd^9!^$Ck^St+__dote@A|S9cPzn<+kBQJ`J*iFkn)S{RwYUzJ+^b#2sl))#{=v2=v~Yt zK>1$j6JTY+f71yH0kSz$(MR|ZLMiv8cD23wMo~<2cm=t_}ZmsKnq7gp((C~D zIyTIV9vsE>5%&V&05MY;(LgR!Bon>7qP0d&>voB#!v{&cU$sjt_x!slW+Lr^*4=II zAj(W$u+pR?ixSG;s7AQapHM^e{i1BkesNpG@hzYp0VX8_F_aFcrU@4+n1((g-n4AfxV>>dK+vmL6dhO*?32oI#_%6TzUZ=V~9r<)!!&6zGUpV~a7k;2m zrqA|Qr0Gzur1%fpRVE8aTfu!G0X0&Xg~YUz>1gd3rB~QV9pnN{vS2EDBvovpcx)Vu zHZM3xf!N2L#a05`qbndZ&*7kJObArXeD#856y@PqeTjpV47fa;g?G}l8_mvb&KX#+ z1!VCNW1RLHk7g+I90u9LfG%L(*I4alfKMxx%YWI&LE+ZN@rWzp z0eTwa9%MYueaIPqGd0Mkl_Oc+y?{MEC;ooncxlH-!J}QrV(wwLD_l3DW_n z6C(8NlYPcDNb`k+c)CD9%IWCp6^wE@+G5YXE|=RmJv$xrKL5PO@XLrPIA}-z=2_<> zh9&rm>^N2d=x@9VKz5{|at=%Xo+D7RpNas0*nnb~GTcIi21Itq>2kkGILi%f1W6qu zfYztI@~0qLHJHFaQ07ZN&;!;%NYwEPjfD|8F}~1~jBUzy^a7EO9GmF%N6U4<0}`V% zkI|;4m1D2Z5tix>OGkPRWwbVi$7pR^jq)G@yDNee`iMy`F7fBNu9F)ZTVTU)$aL;| zxyV{VlDsQerlVBKQ6}Oku_cYrGsFsd%8Vw?HvYl9oo-?O)4}I7;mIp{B99D?GT4I$ zI%h4d*ftQ*L>N#IEYJSSb~-MH-gzonR76^$TZ%Db==*> z5&U@PGf#!GcbNU51_y_h@+lZXhWvgk_X3}z&qXK`qM{L8zzXfGJP8A~tqa7a#NT~8 zD)t}1TFmtB&6(G0Yv^9UU3N^<0+Zcj}U1S4;v1% z6c0t+L72$SXYd3u1sE$HpYL!>oBz2CBZo`oU(~<+iv%dW{$kUINBTc{Ba9_xLH^C& znCCcX%yICm=lGkwG0$<>nB(wQ&+#{VW1b^=BUO8S@T=$eo4qm5@vt$+!(Tne-|UTf zj?gcwbv(ixc~Jcbp*3%kNvO6hQI=Hx)aa7V@iAVG(HJHS)UWWOaJ~_GvRuN;%eT*_ z$kxIQUikSZhxosA0%dye;`8Pc=oj#NjEGPDFFq1){Be2v0sVHYwLpGX-M;{#n6PUq z#<1-a&mfV-96Pt~m01`&xBrasqp>t6GcIlxtBKc++yw?Hgm7V%$)fhqD^f-$ytGVX zIsTAM?QA0FS|_mP9)xf&q}*rg_T_aK*=KPEGui!D9cxO#qs4+|~G#~D4V6f~omK(om{RXS8%(jFtbd1D~T~}&>^^kN#R`@|>1&ew? zvV)m5lMqauvN6IphfNcX?od5Pz8lWNevPaS(-t89YK=H-!h92 z&(7Q|E~|(CaMQS3!}8K`AIt=XogT{SuU|GNR+3VQ1xXLK^Vn@U(3_&|Aiw&6e<52Q z*u|B|-=yxr`Xc@%3tGOiFVzU_sNaRDm4?uM3>Hj%d!yPNw4^{RpTF$u?wn6qi)EjoMmEgpM!`mbw|r%sM7>`|2f| zuCk`;-`9rQ&*LOQ2Q;MM>o53cZHvjbxyUI-j^%^!h8RFBT7**#ev4#bBxM>Yig)tr z3=|AA&#>8WmtrYg~uY!s7{rrs5PLc)_nLS@v0rly0LRk70OF1(4#Mr?^ z?ujl4@cnGEMC|0&mfNkF^527=FhEz!Y+k5f)+9wt3LzV24ej&uD^kn@O za%h)`by3JRsWh!rJZY&Aw}V_z3=rE9Q&>+Cm5S@6zj|{5BXJF5-AS_6ee5*Xog{nR zTC+&fT?+mS(?}rALx|?Fbc0^G+N=i8$j7oKnV1@*gHq@M@e%7)OdLD=pQfcmiON6s z?0nR#mEDgyG&3!vrfEknnGRraiQC))Hogp#XT7;fY4hfk#s$UB@0=6~Mm<@x7bH8pULa@M|VEH{v@X35IDmv+bxS;8tmi zL?A0bu=qZ53xc%*@~=}D_nP$K<*a zFddgwD&M=$kPie&;iNJu7}WT@!v>i_h6PQwx3ex&H&fOFeAiG_0Ri~YXW&8=Pi`A18VJvF9hOlGjG*5TRR2TDFCGA;!(+5V z%~~8h{IG5aXV5j;LJ2QUyCMnus+^s)7k&* zfGbdz>=FAd$-XCSE=GPC9Sxl*n2j&eK|4M@L$keM`Wsx56c^~nOWwI~|oSkZ=F-O;(rvX$b^C0pq) zCnZo^jE?Ubrw>(q$>lX#96}A-Ap8M$nIc=Lp*(I+qub6nOncTv4U%gzSI^W$Y8^-{ zwRE8RlraWKmiMHFMI^{4{H+>Ix0a4>Tn~G zl6Pb!!5`AllY-E~$r>PrO~rFF&gGWVl}}P?A9G5Qk%@9H>ziad5e&xR3Qa1Jx^oAn zopn2Qu25P^YFt4`*)mCn&cC`<$qpwpABsw(`JNPm%_gln$egz6Cyf#lLCQUasEw5ODnAsune;(IDyV9m<*>brK3wG-6pACp#=i2Q=$3%-3Cw>x5lg zcShmD7%>WJm0_aLLVUR`dA4B6>!#2Dls5Ptqhj)v?Eo?E;#3GnJW=KH`n>qo)kDI< zQnln-u*b(r)%VdJ45^T;rSVr(k(y4#C7vEq^ObCBX(arJ%g98NR3@m(sG-oMU<#sX zO0o>LE;uf5-wltPJ>>r_M#Eb9W{P5||Z$O9cetPl!5ZB+lf4F^oar^bV zKYx7q<`Fkkg$e(?{qW|yKi_`%{>S4N-}hd8i?NIS-iwcqZ~y%5{U^No#W&x4x_`s0 z)E6J`^xu!T_xASjHeMqY_|4y6eEN9%?H!cCOv>-?etP%#Pvvxt z&%kJB2$lTRR9Z)eI zFxiw5X&PrayX5mo%dtY+vRCG-NWbWY;lV`3Z^OA9Ivp5K8X&y$`y%&xG^?T@42cyR z!%~B;$iZ|&KQCf%wP3nRgHV%ITRG(gx+bOmVq~hi*3%|}BIQpOC2EuWV|;NO!^9!3 zl>3zqWkt29sw1lcQ%=4kl(;I#g3Y6swojP^rcBX%1BpE^u~U>iyEVQB#HckwPLO7@ zHXXn(^j-QKMVhg}pb@`(sSy?4I5p;?n{EQ*mI$;lJX6k>8(=}!wcD)kiBWRIOqUE& zY82z;im{3oaUTB#4OgA8`j#e~*o0ZtJsZ2>`A#t5my)7SVPJ*4&T1n`mWDEzf`cJp zyKUVOyWG%k>J=kU(>1d8)AO!PRxtgbS&DMxBm;GQVQIA}MU$@A=PDcrlR1kfaiJkY zCgTdF&lJrp%(M7xV6$qkx`pNGQJTDV*ep=Vnv<>shd96^h#ELhvheTh2ll@`Er3^` zMmbWx1In1Xremp%A4xx~JbNtqg?z+dd@0v>C$pvC)>g6aTAz%KKg@V#y}04(dFWt>A6$?TiZKAziN71CbJPLcCKw_(J&X}HdH(x zLRcyxQzFH*xDZR%D2IU5zkCm7nju;)h@+wXHQbDFf}}1W1tGJ2gEoZLFyUrl{m4jq zJwt~^qTOCWN_6iNQnKADK}eGY(n?M`c|y}akSu2KymD;knopv6~NP`eI)NP zjgx*Xtqig_RO_yY-x$FRtc|<(-{hy}uwAW^3@uM-n-Rn7Ac%GlNI|EnX^R~miUiZ( zq-IQ}qe-QSRsapH7(o{MqlYz17hFj>80zxZ2^-0zuGa@%|5!(N^CAk$oG z(>ZU@ctbie_iR02LdmwSqAO2DNK+(6pakR4JC|oVoa}lHxF(5u2W%}{_*F~H?}VFD zJ0h!OMdIZ(NJctmz9dq68zcNDMXsOt$xe6@#2Cwgwh= zShj$y2epYgy-kAI&z=qU8|27~=toEmg+1~j>t362(Y%v_g7eDPBM_ zXQfe|kZ!sM2#=YI)!QRR%T1693`nL{BVzQYbq83#k7`N%fg9i`IG*r(_%&+5j0E`A zf+dMA(Wz14yAmo`qX^}`3@VtdqVaRDI^q|`+dZja^QCJSY}o`?9O|Z_fGi9N&Vo+7 zN~%bGD5R8(ZB->DompC3p$jB?t9tAhWr7R(Y}?iHx$^N!UQdZRndEUL(mK5Rc>DGH zJIFb(_TIn!`k(WMw|80!7k#|+Og%u>9W%_)FI71af%a~*14u_TQy=*WARI8($^MoS zQDU9)$RX)eRm&!+8^>eKog-ObR-J9~A3l@g>|yC1rdhc_1}8QIGP<%;V4nZ&0vWHW zsJu2f%4;1^%4-m;tePa<(KBQ|zc8w}W*9&FiR96d5U(g7)y@Cdf)H%&^Z}08H zCt&LH{vVHD9v{6NqHNyD(O}p=JVqDe{S(v{k&2t*Pvp!wqzK_`kQiTry71S4WjUIe z$6X_w-z4gNb_thqqTX$0(B-GsBas*IUG`J+H4EUt4TXjdvx!b#29*0)4>n$bryYY) z5^;u>gxg*}g;I@guA6ZSZiW{`AK(&=M4V>6ON42#X+b7nwMmi9R($^nV!}Q~LKZHq32^qL&UiTW@ zw~um?Uj7amJk+a8@F%>Xw@0Rhs+!}kAOSEKmql9kCP`%r?*-SFrd2CF{A7 zuhekO&xq16n-;17i59S0Pg(f6p!7ePy=!@DwMx=m&f%F9U5`n?wsr+249J!6{SuCm zl+I$dm9E>K z+<;&#Y4VejdiMasTS$P6kz>2zpj7Xr70Du*3cuj!x?L8-{{V_`{TzC(K>ij`3U{LZ z0nUHc8{sAcyHw>B@w~ls&4P%yj=C;nA2C5GyZwG8*dG|T3<-pExk~0Y48T&NA|ES% zS#1jJdynf|-(0M%Y@4cb!@Eus68${fJ=7l2n&2DMltK8DE^xB-DPFB(aJAHzluO}N zI_$9V-~sSIqKitYF-QhS2(-Q~&TeUj6egH+aT5EBiXH(wok$#Y8;0uvc`dM2H`n7= z47Ha|loTSYNC0U#V_unD$KZfZAGc>HMyP04-Lu3u7)UND#;hhw7Qw_z;mXb_&-*`( zM!;H?QUXH*3!a{j#$Wa9>@3cpg#Xp>CZz7U%|*wn9->Ln)PRXjuTVrF|EV=*fWMdG zOVUo1bolr31ta_s;&0RsOCO6P7S{=t`KG%0i(ILA&`cRTsz~23n{y1G?Ui5Y9^jhK zfoE4EsJSMNM(6_AwpKBz#_@F|5IO}i<+^Td?=YU(NE=8*v2j}~OU5&km79vDHSZ1A z8Uqy^P64PeILhH~dtQmSKnzzjHl>WU-yz90+Xc$bBl8mfI+PGvF7+m21$J%mI!AE0 zln?+~4`Q35;?@_)oIHDX|L)^=lDHJX7;YM!NtPJ?2nmY6Ra7U#^kR}JbABL%bX~Ea z2FUiMx!6ZVP9;TWIdB@h$D{ED+&`%5c6BrAf#B$avh&uH%wcr{697>dLe6J@ZS*XJ z4_YWA(-%_}@VmV|${&Gdc1Fe;IrX?$F4$xY>ws&4W36=xA=d5QLk|Y z&Sk#I2rCjc&i9dJ?TEx-#>Atp4)tgbYpay%{K076xh5;W{V z+|a7vhHez4Bt{-8q%RVMw&i@+5Z4y*DbyAby|Y=ITL64$=$$*&bj+_dh zbxYOSWozg1APfgoi+Df=qphlHomT{q0#y}CA_>bL!k_Y6@Kw@Eq56U_ASq#`#$_?| z3`BvyX;r(cy4>i>8;h;%{Wo8wKy`Z)enJTD7OrCx5z>|RQWiyq%gm9v9xn{{zM^+b zHE@|E$(OOZVyieD7DIjVfClZ<3PJi!ki-Sr2hgbHM3hy2INafla4@|RnNFe=A~PZa z*%^K3-OD9Y5N2Vz1WO>h0MREo5OKx{fM~oir380ZF&f8OHp;CwC|G=X$>ctC73(dk+H>zfT-IBej7 zOaBUFBdG(nKy>j6+}t11Br)kWR6isi+tc&{$D(6E)3)^T2)3nTHzJZ)Ftobqt%V`Z z`JcxRo2;?#8W+GmDX#JI_1t!7g>JbhCgTk-Yl3E$R{aPjz1 zI@jfwhy_gY?SRoEo2FxshF~m|cf4sK2qM9yr*MzXpy5 z4L;?s$wHB=3#V(~AyOA#t=Hm?szOxmY0Yq8HuK@&vX4TzV`#5yNNN@d$r7J>@c@h% zLKjm|HeXUV+)^u~tvYpJcbZ72>tfuWcM8o8(#94kgeo2hIs8X$^Q&pN*=gnqFCK~J zSHw0@iFS?fr*Hfplt~6lf(E=N{uDG4yU{RtF`-J-<7PRB)vDV9vu*($Ie3hL1t=co z-|~c$+%p}}k%UhHk=<;m=ZWbh30tcUvng_CeSiD#Z>DgUx}s6T|LJO1J!a=QhFDY| z%Purcm8pqc5Zx!^T(1Xz3YUzVSfDx44y0TWaEd(VjW7y4hkeswk|=wR(gAr<|D zQben-_VjNxck#b)YSR$i+1{MZoFD8Sfhr6sz>L%n@>I*9LeZ0+_5{^RWpbz{IJKue ztKcq|OPllBmWQ1^T@nBLMOs3Nbdq#8Q}4rygQ~8qQVVI&Wzw{SnRKDGQ!h;R3m%Wp ztXr@N%;U4z>d_2wm|`&0?4$8)QS&7}YT?D_Vz|0R<}ofI85bI%?6urs5zu6Q6?-R)A^Z90i*ZdKCJKF zTX67p4zq*ZzC33+3hxw*+p@_bxu_4ziyww$UGkLx-aB0Ap)fWJkW*lPe{hmasqP#; zauEWXi`bS^^mf*gi$=?Qbe!l#heHMQpao8?&L-FJ8R=bID_4Zor86sgmVll)0lsOC zYK4t!!zr3vtZV&IXH{1AtZ#Mf86iXuIhp4!0S~O(Bej2u*cTJpAAK2JT$1z_pjyPN zpPwUDbC~&<1%(=$@QS8Vn-NWFrX~Y9m8(WLNha--#^Xy1jmJ@ukXZk(3^3b)H|+~J zkWT_F&vMq=+<_3%J+te@O`BY02WX(v@y+?!d`G1hVl zKn=baXa~##V;@hNRpuVF>}GGQQYkeIs#I~1KJQxr@1VETGFw9m13s9ytPKIAuguZX zjFT1v37JCKJ{4u03hwWqtmWI9E55Qd4U7}zJ8Zy{!X!E~w*jO#@vx%ZDq7SokV;?GVbWKJ@XvDNQSMrDKSbAVLd*I_=0tLa%zExhvn<(>ZOTUjEz?@ zXicihb>>=SmByDc+LOCNO7u(={M}TQSPifdpUndaER#PKT;#BqZqT918~AbtIPBQO zCMd<5u)SS0BgjaB)y8en0Wne8{RZIAx`Ns5Y<8|rEB)h7RGWf^Jo<$GmUqbKdh6@W zX|i7C=o+me)FKiOBu8EeF|h)5XE2}LG{XfdkS3MIhVjMA%Ei}S-IZc|&w7G>dFX^ULBu5U6=yrbnblDNR!M+?|$&{owWK4AErE6|6-_{ClQw|6|D4J@ZeO!DVU zB)$>Z?2|Tz57+h);yvy1Vw1cG##-_;i<+8`uwN7O+}ZXHhtKA#%h!|j_VnH3)u->j zMtQn)BL}cJi%LduaHQyGGm}OD#!r+82N9Z<3^bHF=MqAAnJv80z>c z;x5cP7V3uUaM`1_Y1og;B}v>a>skj?ViJXBMoG5f>s+8VSlkAmb0z^Dbbl8cuDU3= z5n@2g%}W_$peNgvmdN##m{Eqqdu$dgOvtpgB&st}$%L4sw9B-!!II=E_}D@)2U189 z5_0=bA3i=_-raxu_}%tkeFxvfR*wO@PU%Ij@+SW6HU_CJIfjV%XhMLdtJC zg3D~;TOt^^?G~#D(wwwlX7xfse`HXGuVEpO7Nrmrb#`+P z&ILrITuf6t?Y8sL^<*`h4jRAP0+*Qv0XUQ~bh6%{c_WB6ftc;;^w}bLMY(6cPBS?^ zLG=9SxqW*weT{%?J6y@@Sv-4vRFE(W9oH^2#{!u~x-0@QFMkQYhEUkauPH2o&xU<_ z*;v{NWIGBHRhj-@l1L`kR`Cevwh+|yzLTBSRg%^Qv_7VY9V1Cn`$M8TEIo@=rm#%f z>hB`44%F01m`J$LWJDT>|E)!YrT zTAn^hp0^KuE*%rj5xC$jk&CLdo^(Q|c(MjuUuZJ|LT>xg*g);#g{cFI67!2-Pc%TcA&p96Ii2q+y)&IK+jbCR4cD4zkM-zJHuAxeaetP}b36doz1IO-4{= z?A02Hw{e6~t@t&~9t=8agaH4V0@KU`_a1mrp+t~tkVa$oLa}qXhI_bI ze8gTQ-Of~?hy~9B{jT78zcg0QN^QGXs5dFLQ)7jw9+ik-A=j>G3TXJbF;2 za(`xao>6~Y>y=`ycJUk)53qnw@9rOmYNfH`WlZd(}4Ez${>9;K4h4RJHm*P(gt9Q%6+00g4D|8!h@E|)jVQ5L=U_1Rpq?POO0&lUkfNdNU%346t*hZ*}g{ImEx1RV9?KfCK6E1WOfRyJ~YUfmJ{nR`M3 zu&`!gQY36eYfYxVthCw>oH#J3{o)*-MrI5 zc5X1c6dsuV8%}qMLWGN>Hu{$v+WYD}TQDiau}R+Ap&}Y#3WY}i9<1qdJ!1mX7NSId z`QrHEm1BS4<4O(BJxyr4;(`l-AXgf#orrsQEn9dqq*elhuGf}X+xVT6>kCNDE}4SJ z(9sR`BEO{E(npaDLF*c$`*v6ovaAB|!v(~v8Uyw!EUrMdLEuCZT2mQD#u1li5JlaM z_-^~icyAJ@3PSvFULToR3{z0R3${72y7F& zjhOw|{?@WmTg9a*vt6oe0BU)4phjmnx|kdD4(fA=Z z1BJVp{(Y;ia66Sxq;y!eW~iI zWIuo`5I`ll4J_8^m)IGI1v~8dzolOwDN|ry$Rx3VcnKb!QYLLmKrOhL(O?Xxm09-U z>C&$FOn~*eikG-! zKg)n!POdygk7IFCN}X5TNAgUHhf5HRWXCECZDf2SZlU^9lPa(YHX(bW3OYa_Pdq-^ z@8+^s4bu;h^#dhXFw5=OnIRgQ;~6Lfmeq~&D0_T|Uv5L#Yc)&)r#a|wF3-2G(Z3*( zTl{@i^Ou93vqF(PP4XvCOHjHA?~0(j&3T5lBUe64>2*=PbR(4HC%H5ol!+Epq}Fz ztDx|eK_wBJ=R8Q240?zdoIJA>>w}v_{7^&yWVzTs0Agn2&VqOQru3E=RU^S!d#=N1 z%WZv#D34Nrsc6L%U|nky$?c9HK!wCq5(cDr!z<>A-qysazNLq4Ply)lLoh=(w8|O{ zPwjkME3(dexkN2kCQeq{*aIW`REUD`x;eivi`K3fAaXRegYFt;RDh*59Y>_!C3g;K zK!9oeuryW`NEDGCwE7O6XqG956?naxo}oMeRBt@%Y{AS(%kdheV49)DK#X}ETihR8 z?JKL`vVMR2`A+=$|7uE6oqBVZ_mA=k>|`H+$dd;(Q6WSavKWBH1%v zZ!l4Tv^h;?^P18dIwq{JzadBOiD7yT@N~AC-q4wcfM`+O(-zUMK7UrVB+!$0%`k}VSDiWA7Ky;1$EAGL&hwd~jJWSj`m zP%;Bhx#MY4oI9dRQRw*qJO#*?IPB8yhQa-DTL z96NYro#3V&u3M<}2V57(2>3$uxg+b{CDZK~k$La{V$l*V)p*hp8%(gg9H{%H;$MTh zKP|@>kVcb&W$gy%XPC7cwE@)=6A12ql|34dl&!~U#^LdO?>x)^>qnyR#e=jOw@V4q+Iu7XeaGHAz@x{92eonpDEJaRO~2&S2{OHUH($opGrXyTBE$x9lpc!?1+}PZd!`W3D6GfYp9zlV6bL6Ry(!)|AWqN8NSU(?^dfmrm-=*03~~+QfU)mC zk=XGc;uRpo7}^HuAnhL|IS6<0&3HKjBOw4VO?rn#q(FrrmC@6}Xh4*k$xQrZaW7f` zXs#(~!jRCgiltgzEusPBk0{{>s64*vN1j7_}~z2=g*p zGO9&6a`mY;Q>%FK`BHU|xGT~!LKFz*Cn5>jJi3{z&o6uRr53DU-R0?|CCoLU+5uPx z8AP&^j(0$1A6o;{;odRYMso`e1lR_uJ6*vE>h=24l_T(eQD^+%``Q_P2e78*MoHiY z4XV&;u26Qn*Lhc8ugpBm;R%@lB&uUTW|UHKb9ut9rd@JJ$flYrWsndv3(8tVqR$l; z1>Lr%U+jH<`+q+B{@pz-zKGu-U`tJ>f5d{BekZjP`W*GI_`vfrVvoOPXQ$31sjfw5EpZgbzUo+ zCUjzBnOuAY=_NAv`h!*)pBy1X`D8~U4LmRk7%XeNX(A>|v`^=UwhC6S{m_pnk{|;IKtRTfjDalj?s2FGf?m4 zJw}WP%LbJTtO3$+?xj<4MlH}Fvb?-DMQ3?>tUQ4VfSdGez#Y0qCB-pB<<|%hL7C+l zlI`f>FbK4paGy*L$uw31)5N&I7n`7bQcOVZS2AMyhy>GDbnqdRMoBWRi8tM2^f)Pl zl2I;~$zNoBtswTm=?~4sI{LVb#gsN6=o|)+Q&g-WdnuQWBQyp8O*Snoq5NW%E@|e5 zt%?F#pRd#`Slzx|{ev8Uwd)fr$1kQNm9>69U+IW8Pp<4~CI%`;3AQX&uR*UX& zX2=HuuPnAO;G*Z6H8>;zDOg~2{%ZP_9K-!#|Db;;!T{Ie7hk06@aZPimZD!d#cvZesAwB-l zJ5}?H25*2ul)m`}$ByTlM+U*K)XAN7imlhTFqVs&YttwBG@R2;cn*6+hVsRx(sOw* z+(QpYK51}&XniDinB1?=ch^X)l))k4BSgC?EMjtFaKp{)>Uwc)J=J!=BBtOxu2H6o zr3<4v9&jm)&~!y?zQ9(Y9ERJ`)0OsyJP;xfMCS1j?(!Nd8bG~}X|;3M3S_rpF7B?PfLiGqI%MY@UDI9VBVHAJB^7~0;+!b$Y3S|XNWNb>);R=n- z%s8kRC|+x+I#?ajsA6Xx@*90)knc{6P{lj;wxDytoOJ1(L6RC~w=^PLCXN!b5NvVyN`T<1@Nm&C(KZ4Vi7Cl|S=Qut5NsN%+POFA!k7AfL|B}SW0#2TiF zL25z)V`PY`lL@s%i0|IX*zC#d;`Lmj1Sqi$(f}uOFI#ig@(0N)T@9WpTX+ITp!^zhWmVnMfFPHz3uk)@$tjEuRlHBZMS=S|G2yTJ4k6!-)KsS)lfl||BVj8j1sV% z9Fk3j4Cs9bj{jf1$M1jmaQ7`LIIq|!54N}}w0GB2Pxl92j>fOh*7N!bSwwK@T7}K( z1Ajmt=exI`^={uQ=U}hTMiVGtykRML2yjIZc7X{il=#%{L55rsdEpzVNtDQP0%_?< zF=dzo0eS^jX5)btSP!|;3nIX%SiS5@nCU1BvuRb}HKB6zzMe7DG<24;Tsf_@B8F*N z5dC^}AUwYgWbizR@yBM9)B$KlK%YQ53xF(>;eJ@Rs5Xd-sZEv_ZFg@417gY@+SpVW z4MqYhD|!X}Y&u_VzM`9e*=d}W$Oz3rtlDT@vGbKyf$X6jZse!b2!F>AKSZEfCN9M) zApvJP;VMA1zECLBYd9__M&x$1*0eO|^L2D}%P`GB1VrYpOZhU;8AWV{G|zB1H|q1S z$`oZ;Nq8imd7we60^HDZ%s7p0?-nGbORbH!aKXST{)*D-8}Z+Cp%pJj3ggVQ=BF(R zeaz48MUhVlyL>{)HM9+r8@xhtteXG98(wfCG)C$sB$ zI$=O%R*2zitc58u@1$nsEBlb-`M6qu@NlPjn=eVRP3-|fqYmB$I|l7wh$~ZTu5KNt z1#_h1_L$?vYxgT&3MS25%3lV~eD&gUHj%jlKadHFo67(zdk5q)H<4r&$QoF5(Urqa zYGYwioK+HZ$FG))OQkngceIRr?X;addqR->nev|qprsrOhonUxRae?bi?bXK=spyVBHj{q0Lvxq zJ|t~mEq5kYn;+G#^nx@*hZRcG=*kFZMZ`7P8dB~3z#_&HYjkzT5Tlo)gMlQ*JYc~& z!%FYSMDBow4V#UJUe%8qW)$C-fzefH#Ijm?u4``xbRQkKQ~fgRIB7KM87xo(;H$m# zhXUiv1&TSwVd$ZH)ALlA-GhwK{_HTes{7eNsD1vGYF$CBltu!>3)0VwMVXBtiIYI? zXlePik~LrVZwuD>p{L|(mP<5g1yW?ysT|Uk*(=D1mm7Ti>KcC@}Yj9uo5qKqIw%BhD1rL)$-N_bprHi zUc_J61{7)hKd zEgGFv71Pci(4tWt8ufU|fkbacwPvJzwuDx@`7(RhKnzqyopST$!@F;1_xjWmi@9OW zld;rRh=I6P1Us@{e6c+vlZ8*~@R^lkrjBym3xA7KbxDC<^W8Hpx<}}Dc7k$R1uzJv zp0NG_yIU||Vd{Ue?ftGl{NwPCePk)1B*Rhv;CCi%nIYQkvwl%NBotQ6T@_p+&|E8c zS}K^*$@o|<;@q2HDM-2@aF<-59bL6lSTdvx;iZr>EH@CglE0V<7c^da(*J}EU#hFb z-$Fr_`;TZM{^qXZjbMAf@f-6T5sF*Qae&OXUpL3!?2UPj2pg*AIQ-Rf{LS8&=ZI5Y z&GFz@&+#{VW1iz-V~&TvdXB%@8}l5G8go3t9C=Xb>cbH_&XqC{|M0~?iLnw~{J^{2 z!ht&MQjcBPXhnF8UUo!yj9!8$fsbKQ;2|xAp#e#5JqkC9peoM1a7*M$mH{~9A)J>t z$9P^$zXirzQelZo3=BlI6E58Xs|G*7%;o7?!X%@QR65#{sEb#&Bq`^7!fZ*g5RfNw zgKvXtddMX-CUSdfhG0|{khhbMWpIytS*YGXJD6a~jp(*a`6c!Bi=HY_5>#2rmxPDGqFNk$xCxO=p zOG`@(6Ec=Ko5>KQ<1N+n7oNvR3}86Y1|fY)(}|&{`#;H?Ar={|Xjvi4KeWGZdYCy2 zfObFcAmE9WE9;={tDZjyNuD7^!eaoNP_2Ppg~dhfnZJ2bKLcR+-O#m*@uv|;0az=L zf?CAc^%bh&A?IZL6(U?VP~EvwD6r}}wTerb9S-3FUQ{Yydr&6oNuhM2mN?~7Q_4q( zibb^O4}ocdrUL$@( zHMjNWHzPUOzL|f>zS_E5B(-)}lC2>%1Ivy^HG0HIZ?fOd&qf1?rvm2hXUx}MKJj64 zLgy3G7^jzH#S&@2s8s;pzBk1{w%B@nPfdQtaBz51xNd9Oq5TKQaZsD5+1ox{(*W!E}%1JzEkX5MQ08pcY7Qex{ATWFeVhtA5t!wM+9YG;jjc&4Bz zDT+8On_?8KPOJ8<ER(y)1BO)x*_t}OK>zgUl{Z~n8@@7mZqUR>E!S)=7BQ1^U z!TQEl1AKMJut_>8o6kVpd02XOJj-p*XI9!G+eNyqf7G8ngwUxh@ z76&mA0(=t0nvkpB5&}Bm*tim$anVa07;%pIv4~k% z4&~>Vr5an-zA35*C+QOj3<;*s#^gu%^(BlZR2uw<@<6Gnw&YET{> zA_Z{Im?VdS9_C!U?R0`ZTi$Y@350Xub$}n`Btr}tTe`5Iqx!pn_phO-^Nipx_|Tyq*VjlYuxC~Nr1yI?nyd%> z?=pZdh3^{nI18;tK;rsRDhN|O@VC~7e7(fYVTBa3CwAYyttWi1F%Og$LahsMlMzzE zo43Kn4DyU!9Pr{PL&#J=)&joE8Y^E_ZD;T?y2$bi)}V}&`F7VhGJuj3u%jlyfcXNB z)!cjTnW9;7A|WK25JV~1u9>$6LPzSCGr#aOtWV@hDio%)jQh9m?!TR_zQA1DH{A>m zp9+?po)x`;@^Wrw1jJq+;P=1mg+eO2Au_9Yc@R(d)3Zq66iX5ZTRkMOK92NL`?HxI zWR;dlfT-L+Jqh8%vNoGcn69+DS)4wuBg1rQ7-M#6vH5m;m)wP06VWMciDI2jU?`(J zulgWH<{vO-yRORbE=Vv5E3T*AGm#a-wc?E7h|dJsrCF1^x!RXr-M}rEN5jZB`c2P7 z;3(Y(;m1F!kdcxbqHn+kO|x&pfvRXt8QtD z%YlN_fe7(#-$0N$!hmPm(Gijv%f#qH7@Cm!*HhkSr%3)6=Go;qD|nW^WAX1u z1nIJQ@E0N|(OlL~!ON6SfV$#&o57MDq&)%|$Ziv(&p;O&9YGpvv~+=b9oIMyPFmBY z){4rAPSW}`$1TEVC<(<+n1{~d4D*ByfoJ3yyF9Zkn7JbHw0epQqs(?PTg-buKD@tu zeE0sYWX)bJpiP1x2=@jENWxmJCQBqFyjGfC+>z5$5E&lm9M>D`L~wJErOJ5+iP=`F zhH0&g404{+Uie$9grkBCtv#NYBp3hTIoa(?uSKWye&iMhOaiS;+!q6Dn5a}?KUB#| zIJc@wNsi97B@ssOMP&}@02^{7@f$WAA(G=!7R$}Hlboa6{Tz5@BHAww(6Zr@?$V(d zkPV{bU_3PFzs(<~&2g1_?O83Bv^qQwIaS1zgW4@C`94JqTz16%^VkB=Wdy?N|y;+Wnao;&o%hj(vzrH9aB^hYj} zXz*^qunUZ*wx}n)eSdfR@ewn5+`hg0=H30>Tj-~xI@9Go_~FiU@(j#7%EhxT7QM8V zrQ-#DtvKm+Sv7Zzkgf|#rl@k4M@x9Hlams1o_QBE>@QiF6un7M0-+{Zy9ViNDCP3! zCTDK*@e*nY7l1!U4U;ZSsa1Gx?ycovy?iF(0wn;Yty=?la8vw48i_B z6-medV>ed9zAB%65CSMYQxQEOM6KX$toTE&0$s8tSfkYH1M%p29mLmf-@bbo%pdOG zq4}Uf&;XqN)CqQBi>HZFsc~r96m`O(R5;}{2~Ow>!K0H80d*@-o5RBWE@9Bl>u9wa zeU*gwUUl_s#12cAjxt2ZBR`HIi8t52&HQTKL`=+baf48e>G?IvRxJ>^ab{qG4F=P3@@{l+oUqjK=0nJxp9xjm<|8_^}0@mRSNp+iyq|{m%pXy&$o$E*) zi?Ef;QM;(c$4$^mC8=GsIZ|86no6VDcTxk8LU?oS9FRv9SN0h=BZz>ULzqAYUbM{< z^$Nr{#zoOa{qbS{l2({>+);3o%{Rux1%_K*E=Cj6pz1LJQpRV62;P#e`X-GcZE2Rs zhFE$ypQ?9?f&8lT$ z54UgbX7@jQdK5{4UDhe38*xq-2%lFphyQY?si%z6&+DW{@jquE#iLvg(1T!XV0!rf z5VZ+o`ep^tP%A{qG~G;GTDP7VHG@-iwYXkt4XQf<;dRJzOV=k(wI@Eq{-MPWiGLt? zp81^4HE4u9Q;0n?gC?vD9)p`qEaehWifJ&5&22oYFg_86SSf_e(i@Jkv{x12Kf8g zq1;F`P9ZFf6y@N&wgSw!g=;_DG(!?%qTm`9X7pUdhZ;jmr$x0qj*U>`@Ytok$?3Qf z)JqA&IvB)(TE5`4LVWXU2nu2POoB4Q>|#U<)?{)Z(`>%dPiDf>Nb;@3zFmVfiGYlV ziO|>5UZp5Kgb3n)jtTA;4*)$+sUYd5HO@qchIYvIkPowL?{!dxH!A5i9v{@)r2(?v zx3btkt&4%We+P;MZp4z=4okyBf$ag-sl>qfa7b*^b0p@#-h=9-sp>XP>HsCSJ)$(V zrtjz0^ieIbvdgD`zy4u`BuTP(95m=7)qRlxH%%S4ZIc<&UOJC)VQjC-(EIzI!k2K~ zVl|tUF`7`l*^yRGiD9SD%0ae#?hF81gTRjBBlsgBNR)LzVX7f|m}>{A0Y@LXe2u4S zn1&Y#wlZ)eF(Rn79!R^x!U1l~%}I6{ccc~JECEt1Y_y2cVCN;7(fGC$3I&-+AK>RZ zMa&SQ>GRaVHx4R-fAygc#7jObcd;P`d<3r_-ap=cd$+p1|MpHQTsr8vIF+w2mAC@a zPZ@Ql|6nNpfuBPfBKVIIlg zfW*#VqI0MyFmSgB93vnA@$4~b@zZ&72Dnbo{^^&jcVN{Huri3_{^Rk>u4NFP^=eC*S?Y7MZTFhZFt;P>~r^8i`l zf|lmxRiTu#=_FZU1eT5pW?)yM8y0|s#TB)h4uAg~AxWy05-A z6wh~jHi_^0LPE6@++Lx_O%RX;{%FwA@dl$l+`&rx?#-i2wS~A8?Vt*b$frycs0>OQ zl^A&cDeg|79@uR+F00Q1#e3K*k$etCW5}pRs@6=xRNO3?19^ioRXvs3r(7@L*ru-oJf+XI56> zLAj?5SE<)lWfq}y2<31N)u^`!97la-8BINXl#=htni2Q*Jm+b4wY-Lcu-sgu<|0A{ z&}!1CjTn_#s)6gWUdi;{?%`Bm`LIGwKp-a74dCD@WIstuQXg<1!~E-p@I36SwjY3w zj+QP-og?m1I7{6FaH5il&%+&(`J~e8n$|7_M&kh)yUbMp6>^1s??!rPhc50ut9j>J z;q^D&z*7j}U{^RN{dCo(>^(~W+EHdI14Zf7 zM&)EX-h1=B_vRVZ_-4P$Bn?`x(MB^&2b%FA>8Xj}6IwF>74 z_E|J;l4!{ZWx;K|#A_(ci3kVMcgH-ay-yN=GBHuJoKs!Z)MWQ1pe`T-l?O9MWmpezbIGVUw z(QH8(sM%<#+~NWLQeWz)YAR3{erv+?${f&ladtJIfm~|~;2+6c18&NuYzC3X8ans_ zl(~+V7rETF<9h>W%L1Q3&!*Bn4;ydXs-7^UsF0+{A5$3Y@}81LwP8Pv{Iu z+H^i$_mMq6EV7Q(!!O4_2cEUraEd%jXs$(JsLvGTCEP-v!qbZ&>jAa+QbZ|{AQl;1prJ90$EyRz zZ0HaB7nU>HF?LzK7=Du?9x-F z>e9ID&_0Xm!g^CG#iAy*2Agq-=C`R-AWhr|n3ETVq!RflsALU*O$H$R?a|Wy;&Zs( zKQp5{o$$F|8~2A*iq57;17PdG^%8fS8a&}bXMAY3eeQT_@V)M%mtF=kefzLr(_ z@x}hvotiuWux`7!E8f)hRyH<9HVM;SuvGAnIk#;fL_;@nS?BTMjG2X)#hnf zLk;cWOC7y`??8s@Jog%T#r^J?gqcr>EE8?Onm{WMx0rBOps-NwXNQc8RQXi>cRai{owF-tP{cLmgO|i_T z(+egR0t%R`YC+ifk;L?2TZ+&I0)d@oVpE||9rm)zLC(i(W2@@L()KwDI*zP!Jd(%~I(Egj6u`!@RdZGK9W$6oINnkT*a&vnmA;)Su{yT!vL~ zs5&=J^UATouVXxfK7)|z1_FJwi$EWNK;twrQfIdrpbLzrNY*Ylh!43OeFd9D`BR4F z$r*}N_wiPDU_#3_w`LQ-21*0NPWhG*l`qkQw8k4jj6Dj{i%bHsUb52 zj9W;W5IcnCN#VS_UsOE!$dtuCyAmTrVm;+x}0y#c$E8pS1=8)lol69 zu}0agi9&6pkK9QbXSdTSN<+`-4g7#CL3szI5HVg6a0432RV@NK)&m29s?<_4~RBE53|^xC4a&FOm@@<+X#iFf;%L1dyM7 zb%hk}&E{Cq9rO=mp#khvQGgRgMX@Z0ve*(cOz5z3*%UjR2N82*7Bd8Zhi`^hKNHNX znobA6)+c?eOCV%9{HKV?<21rI==Irhi~sRF2i@cewZ-)oa{p56&y_@P%chK^q$T#Z zmz}@X%v`pw zKfQbZ`0jq2;5{4A^AWW%)9g?IR|`t<{JIuOGMj^MMTGE$XE%%0#4}pDfgnF=FBE`O z*q3idkx5fTQI)dfrS|!(3#BeBqj`?R{g~z_<8Cvpn7TlH&jK(OuomE5C@PLNH+(7n zTkh!G*pizG#WU*q4D;p}iH)xA-ru5EQoMe+eOrtAq6D4+(iZe}LL@PsZTh`(wOREI z-BWl_ZO2V|k0OWs{P14tDtXYWuJkp9NTrsuiN8o&#CPefo_BhXsi7bB8W_$Q0Zea% zRD}}SXySo98U1|orsIP3lv>|CjvqeVqm-xeKfterKhc%a-Fik9fh5xt2}2`oIVuSbIecC;z&qY$&0Rx^i2 zrU(%7oua;B#a6DAQk&zY_KN(K+R&{~0)Z_3I?ZoK-2$*3?3HB0p4R(P<1%fMzW(x}Ih>E4l^!DS& zyAO}sA8tR~e!qutCd!9V@QRkweJgakGsoL!67tfU)E}*fq5rS;1a$e@>-r`$ir?KpneieVyggJ@%BA16ePAfB=kCqT}7O25{h82WSel+(5@`YV> z4Uyaxt7)@qHMxH*rHy-H6!b%D)3HB!%hmoT7vH&BELUgDpRLVyZMeQ9W%HXbSZDa> zd-y`QJk*!ITZ8R@y28jzJYe2*hL(O?766(^VxcesK)jD1L2WIR@|mvIGh5rnytbY+z{r7ARvrJvv9z<{xrQ(w)|AP2NkR$>SXX2V^CFHb8UY3*@W=&{ z7uf@qfUC(R2oc%I|HWHijYt(Ky~W7(`-ivRpsqX>vg;IMlWxX0l$w<&M!$-DXV)mW z-Em|+pAtpKz=5i89Q{gUOE}J8aykRb+N7O)bTyvtr9Ymtmbu{FZRxX$FtGO34HPqx zwKTI9f&~UMfGVxP3d*sS6m#+tPUM%~ZNmHqB6FeTQ3`uVHpBqZ?}!UnJ0t9vq;Z3~ERo&(01KvJ2`DE+>b`ttlVKQV#nC;CsH99ck3 z=H(kJOd<`^5fOcZ2z@E~+J27ei^0mtjmdLPM6u-hmFTsx>ILmrA{ol07;aK7aZnt7 zP-#xxo)SY?P0S`tGodgtT@E{puU(Fq!FgRftv|(#?G?$J?maS#Hyu`fOg^(%%3Yvl z$Blj(c1t5cD2?1fvuTr2)Eh{5Wy!%%6tw==zkmnL`@w;6 zCO-gif(Qx|-OqmphUVI`oh{4bfX)w&13JGv4(MEhIG}Sa;sCU*ZZCQqaJ*wc_N(mr z%sgP%XXXLBJ~I#4^_h793Iji5tdyL)FzbQsD5|Pln~3DG@2*CsE1_%V!qfS{v`hoL zQ$-Pj4zR!Vlwmj-x*BRIX3TS-8z3E1iOPsOyP3!Y18Ral^&&y6f00McrFiuUVuu|n z9>U|@mBLycc115rQkN)&A#Wg3bLA264BJVErv|nAXcz1?Z)irmDW%*4_ru=}1)Vb_ zx%P&Re3~O%4rxO532B-Lp2M`<8pP;d3X+rYeCC-{;}yyqH}8FT_#p`iO#YuC^Z020 z@bIOK+N^P(@_o{O@slu+Bv%IPLZ|4}sE?rMCIz=JVL&j=Q23yoF19us8X+2LUl^)Z zb}c{v>ml*vV2wafbPNUU09U_-NiZNZs%~i-4$|3;1z=fR? zem7$2>>Owjj?LQQ?RbxNSol#DQ4S?=6FB53(FqaG&X9*N!Ad8^o7|CKI7!7D+D0!$ zuVkB7iNsgrbE;|6Xn!>H_D3JP`X3Er|0AvyixRqp);FvXtRBs`+wF3*LJMbj>Lrk( zLAVDc;yBTW%>%HUwqh$9Ky8Yf1h58>tg<7&y#x?aYP+9;zxhnl>L-s!$iok8QAw!nHwc-V+0%O==pIBSj3X^oR^y@8wzR8nItvyAL zgK(n$2HV8o6_%N6XnX{URm>cA7$Zc#n8}u^B7+&zu4sSj#KWdY&BX;CmDOV`txiY2 z5&?uB0wYDsCDJR~*9iw{verv{(l#|b(gcZMZ*mo@mFlR!OGZ+%L#2T>A(K4 z>{jlOMQxeN&JdOnIMRgL=UO=;=*jwc3+wNjvxX;hx)`I*^-GpH!)dX zAom~=oz|B$Gfa*yjZ)CsEO)7PUbwG~8Dnyy+8MwrY3wRFj~?Zb<7m<>MUVS>9-3QD zyXz}TQ7PY%!$L1Ux53bIXRj3_-84b8?}NxjX{3ZSNa9Mx{dNt~+{o@Is4V8FN!2aO zCjnm?2?mpTaC8n*evM)%kxSFwjnC(8{f2qTuq>#QgK(Y+;y^ZtkfpKC@0>0+7YGn} zef+YQ2g8MlW`4wOwAz`zK^ajMlGwh`jxN3!l^^ z6eniFY~9W&Syu~qpW(#zz%^(X$NLaKU839>ACx_kzHpS3QeulN!N*+p((@CJVhw* zOVh2n%NfL!hm!ss($Ge&ZyvgM8K}K8Nio%`snTFGzq{ri3kEA$IU` zHilg{+{}qVtmM!Pf+pEu(vZQlfa5c`6zC^dgNj4c8P8!zVZ>$QW}Yw(p0pn;(JcRl z^=X+SH=4d^FCPI9=_{ih5gegdFRa2~vXg>#K=Dk%ej;B*dn@#(!?F&n;vKq}@m~?| z^d7ne!{Kkg2|k=%N?<~E z-OkN&=gW{h-DR}N=`vN(#GgXYw4>$lx70P;)aC#YBs#{Bw3g|eDU~uTcs1&Q)kI9v zX${J&oAoFeM5ss^af^O|Nz$)?QEQe9EZtm^eSZXXd9}bEXmXN*EFvmKxMi6r1WQFl z$+g73)WpoAVcKNN1gEC1^cR-xVEdq$mA^|8g~TS|mE6oKS)fNjuWIxJJiC2w^k)y9 z=`ssYz zrU}&}!H@zRcWa3?kPM(2Vk)iMq0{=iY!HNai2Y2g`tkPtr@N>qr4C)k>{yg`F9nA1 ztKFnqjnk`KSR~%Jjs!OTSj^BMs`WdXt*8cpD8HJ1m42$kA+vx=Jw(4kUdFwclh)Ns zSb;Ryb_wn&)nRGaP`QDm{=N~4Xx;RrJ=a!k3iyb)Lq{JUMAYRhPSspfI?Q1 zjSv&8<38@~r#-kzSFHZ5^oBeVu2WuUlT7Wnnza)SWJ?HXAO(|#gu z)J0j#5Zl!65L&|L>=@y32VB)@+I>dLQ^5lD8Np)tH zee-u&_bbR_0(rs-dN6NC3j|awkY<>C@i2K-N!^U{S&aR80jPMtNOv!J(YjQXF0 zP@2dOA->ZTK#^ZCO@#;3T8FP+1B)(GnQklkFaCIMoX4zbC`E|3F-(}7<_2Fxh<7{sl>aSEI% zt266?R*VC$?d>r@0--jn;UIRdI0QFMm`y9>4JxNC3qW+`dYja0+^@xax&;wPg1=dBg{|*qJZLAb~IEjAjv9{&-nrP!-T#R zvFbOSb|sX;T^OOG1*a|lwFcjPaR7*+(L`1K(78xWap~p+Gff$y2EqP>K7uj4Y936(22ft7WNB z!jOFca$qlBXcxdEtj8!!@u_Gm$wQa$*5%7>`o}ydU0cH3wDnD8T95a`(T&n9aye#K z*9&wj?7UkfK{+naL==%r=xHiq4(qV~!3P8nB`W*jx1e?z-J2j=UY3X6kb&RV-ZXG# z_x8mi+)6h{HazKX1FL9a)CLR`PCJjD8iz<442Oc zY>B>qt!C|Ea00`e_?KRPCwNToU?&)@2>;R>?gUQ>KG+GqAoy@6_>ABqg3YckcDYkd z>3{-@b1|-}u0lYx?g275T8k}ZW%kG}!nMvfx3P3b(O+SM3uGM zgb5lx@J*DKcvh{uO+>%qUFgUe1S-*n5OvvJywFdPgzAmb4V5MibyON$xlNNGL0C+& zmSMD4hJ|bcqnp~ovz(%4Z}g4L5-k=Nkb_X6=L#>Z`h#z`_YWWL9zT7!2ZrN&pqxMf zIGeYkfD6D03~_(j5L?4^yTHb;SdR_z-Ed_9Iy?oWg~nh#@&>m4ZL|;% zL$H#Gc||hkqBj|rCro$6O!0{rE=2hU_Y{54eD1zHYrI3dy6zZxVKChIqQ9@YtB{aN zU_V|F8+jg*27=T@$?AXx!=~D3>EpApfLe8X#B9EG&)x&?*;^xUg%veO?+e`D`!iSs zi0Vg~H7$l~D;WkSg=H+0Y`mJk_Dlv7)qy9f9(FUa(D-zrz10+QTGT*-7{kiU|0lc7 z4u;AgPoh+^1g8HYs%76}g5dmOd|L9?Bsopymwd=6+Yp0f%9B9!bWyDem9lUD7o$=Y zc?PYyv>i;T1*SQVS=z@rBE|MWCEQj3qdU|+Obk}{2pV=>5(tv8bSUGg#7^iObvz2U zBLnnaqa5n;KJxe*yU_NP#Q-AqTjE7HS*DHVa70&5^;8UXNJjvI(73PJ;zO_!@_>^L z<&R6UB79tog#$qI6-tD11=%zh#i9ys%V!xA*7)441Sa8UBcv5sW?ytYU~&cYCge%e zjbED%no#=mdjlSWLtSj2KXB$y>Zqlc%%U*#h{rL2)B~8`|K7aLWT65Z6_hEo4YUOCpWq z94;I(9U?m-#5bnPeC-I$&#pX#4Hj0xu)v1+VPV7g7R+fG%=!bp2^^_w^^!6}Sdl^yn74`sqoo6(Vy5*YqfgAPaN==R_WFxw?Kx z3tZzZY6b{^@OFKI8cxHDe~LckP{BhH>vGdeTU&FNSF3HOJ4U5u9H^hNdQ4}i6q*tV zV53d(&8hh6<)z!nxItHwi`Oo@rc3P?(GTsr@pAlYKYgfUKm*wL%7W=e#?56%8$gsJ znlQbDOPfl3rnN1LnjkjRja+yHr%pyU8kg)+pHLH>^Ii5fBQuqeAk&?5qdS>%&BqIx zuGoFZr+4VnOKdNUuxX|gI7BL;Xf^#W$klT}%V-NssZwiC4v`t!KRI@N)N(^{7In4< z=B#Ne<2c(jY=@lEEu_eu1DTNtp0Jz8HUuc$tY3Z^sdY_MDo`?UTWia-K8`VN{&rZ| zKuQW&GF1GiGSTCL6Q&15P7&x5629vc`8YsN@WbfQpe8512sDh;%_wjmybJuLxKw?v zO{iWK1X52rGJ#aO7#2#^jIDM<|FA?bBcaIKMR=jxlwp96atzA98bJAbJ&vM}SZ97+ zxpWLif-O$^FUYTjLCEk3(fNh>*4sI#V8zq7Rwv;ZTDG2jc=-PHySH}_pfr|+2a<;s%>;E$M*FM7Iln`UG*6HX9 zSx^jv;88zef}Kc^OhFz$lSY zQ8avz4-`2!qCq=Y73L?Pu!&gB7%7C}e_8%;96Z(}8T!*bOm8Uk)HQxeil%VjBYtsT z4vY2k#vC5_XD@^Rp2`NGj6m&Mb0f;m$EtDwjYA{t2FNpfF#oK8P;JA#RYwHQ=Q1L z3=OcRD(Yc@H@OR^KT?4-SaQwitdwB)xTs%361T3KePi2rXNi9gZ}oK8J~%5Tt{CGcfk}BH=9;gP=@}O(=6B9j$ux= z_&RJ=e?OVklHs1(TQ2g)kgYDwdOvE`d=*tP>w9-*=uxi4*R(T0+~sP&7ycG3C=!D@ z2d08(rE=2K;Q*oLNOwwJ_}B1M_zpQTM2MaxwZ=^r|GdBb`u*MI!#|b}|G4|G`gA{k zczY*2hvY(pM!^k!6|NWy+&@Y%Ucup2;sx~WF7oif1JedH5v> zSiOn_Xka#!tCHc)Dux6Uoy05|MJXwk4PYaqBuA_9Meq2Tf`A)sWD*tG4a@#MS-m4A zO^(1+H8n?*$Y+k_ivcC2;@Zi+J0!K+wJL z?#<%^s{yJW66yom4XiEEC6+U{#l*;DwC)}tbhkLw%S({%L8@vm%N4%PCIkhTa^7&r zCMt)nN);qZ_INs5S`-hml$7XcrIgvMi zJ}o^n#Intossl>Nf_2JFTtIoXDci?+oD*a|GMfNvfIv@?S+sqBcl+@Xwusp4Gqbh- zpSd?}ZX>(Wg!NMpH8CBOUF9GEuG7=*0I`s;NCE;tQt}ssO2u+1tdjgnl&3s)zrTH+ z=Q-!xB{M;>>@TedNyt1mw|mb$`?7&Z%^HZzQz}_*=K#GXji!->G-${v8+TkN1R-}cm-$c0^`G&rH^as!X%wjQTI#PF{F4^&2pN_VPzWax?1Kd!w8o; zUA1zl6H1kMBYc+oEQm4OuWs3dfV1tB!SX z^|cglV?_NRi2Vo>f-WQW??vwQxjG+EUBrEl%4sOKc|AJ2oQe)m9OXGTnGhz3=d$V0$RR)LFgY0bOLyrw&(G8o1>3hi8O3kgagbxY%q?6X z+p~8M*I$1A9%Yy55m64H+4;?$6{V=X5N-4_Ie2z9!6&km!@i6(Xy~Io-#+abcW9$~ zi#chf>8{~%^3rj>bnw(tO3HPLXgnLgKEQqqcNQ@5*38v9Pi7HD8GO-%#f{lh% z+v&VaU_B$5gQ(7};j!Q7qX$Pf%xp(k5%Lr+MoL#egT+WoRkuYPM7jcM1tY$6if=2j z6>NMpWS}8Huy9+CFODP3Bmx>}bX4SG{LnUw17W$q++?ms_q|Dq*^#sXg7Ua+$#|7$ z)%2FRua~gfBJ5CS)O8lb%M3iX8~luT9UtiN_)xsLJDdDP>TQDAw6;?gJT;NgG~wZ! zUZ1DzI@gFRkZy&!QuY!;V5DDo5;>hhZtN~2TT+Rh(r8r=&|TGTN%gW+gJTM7&2)R9 zoQ=8SbiX#hV%0#~WAYJXT+cjC7){00D9K$UIj6OA0kv6Kj1*Z>Ez98C1s-mmE=xM9 zub_axkt?{^ph|8JPV^3PxZPYHoRl(3;-05fOiCB`^kTV~`lvNoQ_KRO*)(^0)t#)^ zskDSuFpv|f$Rdm|??4g1*({iY(mEq1O}dJ5aYYiNj>Kl{PQ<`eep~fLg9~=S#UH&o zH{MP5?8U4K@CLH=Wq8fL& zpPC?%f|OB95jiqv3r<9G(H^5$LxTDEHE04QStMO4xx74)2}qJj%7QqL$Ry!V+|{6z zHePihFrSZiW^Zwq)R^753Pn?tN#H+KS)0Z&?X9g-pvk-z9N0j7vYLx3cwyVCN&pZi zv4g!{VKJKpKvURUb-6l=@ol&+Lv|k`e<;E*sEp(H84TlVMV`pXJxhUa;>KZNA`?6; zQG^N>E;XkZy)rpIDBLu<#vS!pd_Xlq7x{+dMEtlvEM{npiht2xb#o9xQ*wQE4ABQc z`NSe(%IJ|wNwH3k8$exP4&(zc7c0wHk*5~0xCHVn-t1Npq@uzQi3L(MxU*!aAg}|q=}I$>q=`YM zYvMv=uc60@CS09P7MGXU$Fs|u^#$3yf+!$wBX`d53aCKxK(+Sjh`+=&$Y<))n#qDe z6l(773~nR=k+qq96jHG~TWWkz@C4qpg4KbndXNU)H$1NG&#N#c8QzUZao z;qn4^_FIT%6k^Ee%n|Iyk758=mZjG2+0Z+`?ONJ+E85-q6DmS zjDaoHv<67So25aH4(i&}`-dGAp%bgi)r8xV=?rd9{H0q;DS1?)irM2`ve1M&nQ;nr*$PbUTgw0_rPFL(mPnNTlA1?Wriv!09ekpT?3(HKI3Eu_A3!~ML8J{A#)=P|+^ec&( zyYzRh5)h1Ui1)KjrdkE~={=aMf@uk&m(B9iyN{pVJ^bzb)5kA=dH3N@J$LJ({#_H4 z6R_{DCwEh63`!H%p(er{wRj^1xvc8N* zOSWBKVXuPcSEc}Z8Z!St6jUTDQpi{G8 zM@dY|^P08TAF2m^QiXywKpHM9z(J{vV0uGS!Obg>RuJOp3@)hk%~?(m$+2}@<7$NM zCUf3k))5Soe``T#Jp=(!^2_FLf4QIB|JeJ@bIX6B$EbsvbVfOq7#X$@PN?W_x#jta zcD9(`_Wqc&fZFHa4z%Ecf|D$j>(QWCKF8Ahed|S7Q8CY5VB0O&E6DT1 zU7+s}se*eBtQ1Q(Yjt4$I@6onnAZr>-Mm5_aOWX3+UQsdLp-I4ebkh_3V=-q8HZ=G zz>1LzMAYYWQ_Y`X^MXwlx}LrZVg`k%}?KeN)cfxQeGg&4myY%lCZ;k zk_ltlBH(4k5Hm|)Sk}f~G5KXXI$J;<-&`Ow@&cuwLm6XHhG$r;vKtkeTm{N_+Ed2> zo2DY7P##(8K=?!JYK>+G6-qT>&2{bfG{P2Hw$vO*xJHdDSSoQzZ%@Hcj4nj*&uoOa zMEoS+w@6|})jN=RV4JnXVhvMQP^*(IZhG8W9&!3ihsP-PLScrs8&P6Ep+)4fbQ;NN zQOPu=dzj5Bb|UjsV2JR&z*uDd$!x{p8lP#KSz#J`vT$`nuZGxDg!;+Vp{vSJzqA)t zmuT$EX(lCCQwXHuEN*AL{Cg!43lt&?s@I6^k{;hUOC}x04UnFfh_DxxY4q7}kUmXH z1G8PEPC%w(fg$1|mKk0$72~v@ntK-sQxG?&8 zqZSUed~0$jBk2)VAi`k3H31TLi~PF_#zAWZDNR+8&fX;p6FZWv&-N{)OO+)>vxP0v zuBKxYz?x2aYVLx?ACIlCi++M~yFYe7-)dbV-Ii7vGm<_KuIMC4wRG&M+^oiO*bRTn|`&hmJDsAjL(nNs*^3UobP9&eUa2<07vueNYRf`YzJmc-tL5ZJXOdfT+U~{h# z4$wn0jf4CKSs>f;Dua)xTeFHWuaL2))F2^qf=)&wM+kl zFpNYS%$);WxJinvEQJx{(@=5~f{jt%2(H(v$`P;iW=!L)!uh$6EY4KKlh2{DxjF#6-v2rxE6&q=IN317Jww=v++gKBa#@o zU|I*8&|~=mq8M*)k6H^&vO}QY-Y*QsFOGbz@rdze-Lu8D1L3}iK91qQG3kac!vjIn zD`3AVRZ-$GJs{+PlZ({}wkdv&`}l1nowK8lbZfF(B;!c8)y0c+DFVpwb=ckf4%)L= zG{D}pLMuWXv#OofF6~xrzg_lL>_A!fVQ|g2(_>T0zp+Z&U3G^8>oHsiE#7q4t~Wbw zgy}Wq>XS<7Y(urw6bd)LEKv%R#pjhD*FNRb^UP{;haz)#)3OCpS%Q2ih;A=~FOvsY z@;BK{o1s?*)CJ%UKyBu9@)spoaGR+f33K$-O{M?xaduYM5^WXXq)HSuN0xlRDn^pHiQUvD7nS7EMQq+ofaXX$_uC< zS~PTuL}&MGn`zzYloAgk+3#ionT_~OKII0Q8m9Mkx<=B-H|K+$nr|8ZqNs~=2!nZC zhay#8fjv`BZ(Zmk5iWIHsb$V}Epe__CI+zBHVk{l^!-5F*5n3n*$R7sCspJV8db4Z ze6h>NPB8j|)g)0272*Wts7~r8{G=$l*O<}@RLm$b+GWYw^j4`FU0FqTm2?dctmVDn zL}JQ~Rj8*&2}c9X^>hg(h_$}5J0+jc>m!4AsHwgc==rz!-(4D!DbPbX=zlja2Yw+jlF7!a>8rav zL~)f}n1A#9-*^iI8>9Iq@AL1y|LXmppWeN{2XUs%qKj~kZ+Bf7Van;kJ%l6~R%6d? zU?a!GGme*X6CAU%xz&vFvlOS+AHRHhdvD~=r+&CHPZmUb-)e3QAYNp@7Qn&{@?5es zMrJAM73i25I47U1rqU2%NB6!$h+yGNlPJ{XI(sAWlVjYS&gIuDyr1Ny(ElB+e6Rvf-x&{ zf$4sMhUPtHvENfhVMlYP1k-Y)8W`&-YND`|G%1AJdaz8eiG})%pT3vENQ&4*I3bN} zeqGw)+U9w+YZ0mEIoBqll2RYIw}Bct9c`;uXE!sbHCrafvaXmMZS{#MNK*fWJ}fA?9r6h z47L^PYVR*HG9Di{6PmNM}uMi@c90>!~K&> z2Drk5fuJMMH>-0S@vZ3y8{UTafan-pT+kd6F)oh`VX%u4GiXW?^i!fn3+R{;`-D~q z3LfU71^dh5EkP8{0%W4P^bt1O)_!qP{14b-`@=8ptt{!?l=RLPl=e&sW!Srr*M=#G zlLx+iQ?Ll~Iqv2Y$hBKm6xFjlRNajh;TvU6z~Tm-q{xKH9j=)RE9+emQfe^S$Us%8 zy({k`ys6bGy-KK>(T1s<(xYj!*F{AA4{2b9n zEA!e9y?D)W$Z)O^78?r-+k^^D7z}~B#^5uw9pDd@XY-7Lh0-&6ynnD+9CP>C7`KOU zlcz>egI;~81=B~Itt~t{#dGi(cmx>%u!q{j)xx$;KAefZgbOE(NY;Z8Du^D|;l%OU zla=m4f}$5OE3|&{oDOYmE%gfwHFCfXdm7d%eQhMc%dsT)VCm{kFfEsTBXj>T!{veF zGwC7cEk2Zzan#Q|N6x-~xUV8dc6_ugb-E7I^DJW2w#@!jb2V<74mn_S4L5QI*>n_T z`dlET`+!7w!-T^n((>|eeM#&gm}OA+$sAe;ZD)a%8l+j_chJ?N=C5Af|Jkt9}rY7B}>z@>-b(>7!XPdq^jgHi$W6WHzD||yTxcDTNl6QBFMP5{T zhd2?bb91t!HC)T`)N9fyz{yl&l2nV}(fd?_N+t*2y0ltF8=l5A`^Ac zhPDmTp<`|3E^8B-E^zozmS{{&#*cW3Ad(>eXjDWvp6 z?8xanMwn06hQ@g+63mex+biX@;) zC;a3byq^^-tww-Kupqu$R_-h`85tns7hAd|dV?Ti=;t!MLa((lTxkf!0muaT0}ZgY z+ixk7F)tQs1fxvfd`8*HhwWe9pt|H9lnqQaM%ULoht;KHT=|r(M@8YnxIHd{3^kv< zrbBaYMfZa`$)vsbZLj^9WHu^?^L;(|3g|I>{KgotSnJmDBIHoZ#d@wdYm^$nyF|*= zV$E;+FBz0*7vdr;*5f&X;LyQQem$t{ArnESQDz*Hrw90ZjnL(5Xb0FyG-L2wnP}(wa{3C1IudLn%!3G6QYFRDTYd!}NOH*dkI34d8nNlyV3sb=f_pxOE5A zNOB?UOCTxa5t8Ik1pFcPJ>8`OTQGZoH%r{_tjltMKn#buiG7q;#8*`29>SQM>D3wbLkY3QS#CA6rC*B8ck1q*I^#BM0No5Q zMi{636TQ9vpQKi1ah(uLgAywSR(Q&Q;Ks_Idl{tV>KqkcL9*@tu-n&Xjl^Pu7MngI zE{jCzeFj#V0t0qswHEsHVRW8_h4WEo+J{A zm>l1NAs-ef3ZmJD%i3iv%pwL0yI(vDC6YocnWIkD+87xZ7&DJ-`GO-xJ7J!UH{U-EK>&Cmk9XCM$sa8Bm`>(tlwa^tNw$TsS6K?Dw{>Tgrc^XqtWVCED+VE>e7rKa(BDhY8QpsP>gGxDG9t|%)-Ta3a{ZEhHE3V+nW{ndQds(I(?ttU zQKG`8i&NrOq9G(I5<3P?Uye!w(||ZN1`$Er8Nv&}%h+oj@kiI(+~_8V2+EyG0ieYw z2+cXRh@!pqm^HCG?gX(L0o#>OxV zuX7F4jkIl(AQ!{k23rF)UKS+a#NExzS_;~4t)>-goK2Dai8LVu$|3f|_M>UdL#{7f zdDVUtO!qFOzJA%^rL%l(GN;*>tkzy3FtrODn_)>qBt|7YEMMSgA!&tMPAkT9gTQDsBK#ODHLC8%2fS=m9eBiKt^oeNr|MiwPc(8rMk1Y4hc#d9OB5YdGSR@C@fXR9yr zC>}_}VG^o8Nc^nucgW%eMnidmx^y&;ql?I;|K@4YHVG@t3!cUrP@uB24{sjs{cI34 zAU2%}rdO*>$rW;{agv2cdwG^Qh($~as9%(Odrj|9$%fpKQT^JiZtOobgIOFU(hkbb zP=~`dWls<-ww4(0IV7caIg2`sQx9_NUh!M^Psl%3r>h#X8$idX6@n|cyy%4O@!Kf8 zu~3}MLY2t4$}J!w&kUMnT(1b0>!fkGzb4WAy#=c^4IM>T1aD}k99Cy5g?;edY} zdqD3Uu6K``u&6R#)P(hKcC$tI7+vn{xN%$j>nBLx0qP@u0XYJ5E_WYCY>j#P9nYg{(HR*P^b!=DxJMLtqnRVB+GR@1IxP9}O#rtj_Tn2jST zw_!`7kuHQI?xbrp|EAWGwGn73=`>spA3i_4`SAAsyWe9TzwL$59hFzilFA^t#g~V_ ze0kVT-aNe7uI~SeOrv|)OD-|<>;cmOb$ccfD<50Np)X^L05^SM9RoC%w#F$vM%GVM zewFOifN6XeK?u9qkci!s&%DWFA+ae!#m1?gAJiEk2xM(W9!jzCPZ8D_g0xPeqBMMIHJSC7WImNFOqud# z4GeKhXoS+`Lj=n0xQYQDsc__zE`X%{YcI&9DWCKNi#D*ed z5WO&kY^v+3^te-*52!A&>Kdq80B<->K#(U^`0JZ5i^A=G@&5H$eE=V9jX(S6GGN4k ze;#?ihh>?Mpjj)edq9B$mc*9A8nO8QQjsU#4v|N{uD4XW=&>?SoI3i0Anvv_sT!pD z&sa|Of=mCYPgIz!H^Ry(u8-HTdhD9VKClui&EAC)gN4gabfw^?IcTuEE%Lss7E6RY zP0+&i;oV>FSNA`Ee7L`R^XL07e~~Ov0Aau=!6A#*Evekq8SLKW)p|@Z{oDjF=&Jh~ z3_0bIZ$DLMU7zOwUXvqi2PU9y*^);Fjcwa8z}|%kpAZ$w+<0M=3O-wzZVWUjTQ_m< zo_9owBj0oKq7ma%N+N~Lm>5wKPb-MnQOk~3I_=B?vuAs#I{=6jtN?A&3<4id?;hY5 zBN&M%a7pN+s3L^vI4kf{>Fp2#ehm*D4zWdSW@H9KvNeb`B4TD)mRi;@1xqkzsv(p) z%{}SQba`yyPCME^W~eR+y%@G9bm&TaH5vCppo$C|sJ~GJXZ@my6I6~%sGbnw_UhH* zI(oHPYrF&o+>O+j3F|ieywU3wU?iQ<}t^O!=Vc(C4jkY1WQPovQ^6sz3(2a*LVDc|y6?2d*9 zA}XRmN;~1<(e8vdE7^G|je<**x^7hSSjG!KmZ>*0n#9WVTvp{P?(Eoan78C{Crg!WDwj9CBlnfZ2Lc0FX2odKy1(iedo~o1z$L>_!k-R4gsUX6{its~3$zEIb`% zkh%;D*MmCN_Wbfd!5nVwIM7N7vYDC}mJrrLIZlGRrTlo^;xbY|73SuA2UP%NWn$4-$F&0wHy^W-w1Mq z0)>C+H}l;b7X237?{8KtsB$RY5Z9zwfeL8vO_txZ3%}f9FMg@rGnuatC%`hgDz_m@ ztWfItM7=nH@Q6%CeAc%2TLeBKMeFY7Uopn(@|Gz+%M3E>f{GQYLP;CCOHJ{jlC^kh zz^-j7fu;iDE7?gfoYU*k2JX?&IK5iu1GGf*BgW`_N%0Zga^Gon1DR*{`Q8#t#K zX%Es3%wmsyd$xXU%$n5HCW?j3?M-^k6XLtJ`~*d&j~OKkiwuDs$vt^o5+D(K(0J_- z9SPC9@@8&;1VVKgk`KpVAUq1N)4USo^WK=`QYQdCT$yGIDM66>vt)-CCq3AtTPeAwuky`~73mNKw zGE`%hTVPGKq_W76Xj2&zHZKboHtJC&gZ7+ zEh#3!^n8}NpmXDji6--DIO4gjP)ThK<}zQ;*?@{sbw+{*!0yGevB@fs?p!{sY8u}+ zlUkuv$e|rdgcZ@!T$K@To_$oEDs~eWlJ-mTGRB&wgc%9yQBC4GN<@s{RAIRZwpCD? z0lA2b7`TSkxYCHJFfS`u!Q_Afq;C|$MPwxQ9VAA_Ak{d+zDp^Q`=SN;Q17leV!@Xw zoT|Nagea6g*;OPs(XZOIZKL@*gcy%qK_^|gC&`e*6;&5Oc-6lJb#SdC zumPG2Kt|z3h*dU|lpWNQ|B;kN?g|DN4wAG65NO7XddxTT46~7};EN52NsXo=LUh5q z_V$>(?V4kMi%vpB2&`jD!bHpo&+EI)uQI0hwrHPZqLTGcLfI3ftbTnQhf!*Ry8$8= zq7p=3^RX7v>-M8!O`^3f!C)nl#%acz;-j@(?GczLbVg7Yv^ndAAku80EsPK~Mbilx zu`b!i&sd}!Xa}V4ij_7q3fB`Q)G(P)7@;R4S`9tvXz|gpyhL%@STa7A{k8RN3=}bv zaey#6qnNl|6t^ImFdIFPvT=z5T5#iw6(#8KF$4K>x#9$ z;KN-J5Pfk?La*uqECbiCrdJE3_06v6>)^!r3o7h11H)H7x!I&9GJbdWq6?zCo4N+# z2cdjn^;JSfN6BMO0;kH=k4n+htczR~?D+`XdteKq0JEi3XyS?o$S|ZMAL{0aK!Z=8 zLY&V;l@1j!UpC`?5K0kdeBuw{{!4G!&~%4Vm%Kyku0fsmu2(S#Sn*_p5Y1c^h_8bf zSD%p$`gS#)F-+f_*6aKCa7+oWefhfJW^-x=;`dF=5yNh#$O|NWSJfC*jM2X#$9GXt z&R~7FD5oi3^(Pkq4RmV~T}|8B9~Gkkn>HkrE2PmR(G*?9|+5b`$>r+BR7oYB6j;VW~Rsg*!qR}@ir0acHu0kWGZfj4YKE8Q{nP@2? zwiz;1_aa$^)0mYSoWkM=q?ghU+3<*w>WEVJ$;(;v%>lZbmaaA>mX?nWurA|fXE`jU zmcE3aegEQ*vKeKOa*BEa_4?JY{PbLCHMxSh7)C!O8Dg0xsgizlH}-ff!F01~ea&2a z+GQieJH^ke)1va3)w}tmh%5+UCq;Cp@l>n-(knFm3JI^LeH&=ok^sw>X z+vmNvwww%Bfz{u1NJXw3iM&Byx@a4+?W}G_?i=>!7PYQm8ZI4G_lIK#XAng}Qy|w# z3XJkPEELS@JM?D`2EwAuRCfTh0T2MK+dFEyuh&s?pOQ4@4S$&gE25j(KnCb7JJ^7t ze8}g!LPm{KII#&r2Cjl`PU1(h!bB=Vup=ojU>M6AT1GD;t$>pv&q+~<0ou@cBTt{y z4AcnvPTR54f&p#Qc5DxCf@~Ju&SMzi2ihSuPIV_InvVf9U>WOtAvCnyp|E#ABUXWy zixAAPPfm@#HDm(02NgWt9;z20Nzz+GAV(Di)`yp@+BnC&Q(7b}EDZijVN-aG+U24! zqAXSGrIxC4QN{;U#@|>#Mg1kaBi&sbvB-Aku_dy|lFDQ!bg^a#DE0`_YqK>kLCA3+ z8kB_++Y7y81g_;0pvwA!HRvq)J`?g5tXP~1ng)+aSc~KC4KvZz;e}dNSP9zp{~J2$=hHz$&*BfKmrQEtR8jm zw<0p6&Ze)M6}Ai=O)y=S6|jb9k>rq(QC7t>wSnCGoMeJJuI?Ab8`GJWKjl*Co$vw;^J5|0_Af;F7b)$8R>^chVN#aq%R+D|3_ zu@zI*xTyf>(-;JW%AW{rnoOF3t~D$zROGTS>&j*@z>PVPpl8Rm4R7^~z5!R}@nYn8@h z^uQpoYiNz=rpq!^6d+;j63L6$jjXJmj1snCBjP|VEip%Nu%)DLfw3lL0h#GFanl2~+oUaUx^DmwJ=Zc&ARVh7%kTgdCHuoeH@VW? zA`(?@z9ham1*u`h$6O%O|7wd4fMd2@WCzl>Z{FX3a*pB9=|f&jge?+@mE%IU?S5Qs}Fyumcu760-0Ra@u(7PY)k&EQhH ze_;to%KyLp8$GmXl$}R#y{_6u8Q)#-upaD!hZSKLoEe5@e`viMF8y!&ZZLxUw|%$6 z|Hkij`mev+PJHR3D)rYEW%tEE^siq`Gr;BK3@s9-aO0pzC<|Kj4t{rfuzz%TbZ~fb z&>tKe9Uk0&Hyj*XI(KaaE}nuyh9}Q}-~FEY&g_rh_Of}Wt^UZjSA^d{bP@H0Fa|$l zkA&2IIwwjbnyei(qQ(9j5kqE{0XYbf(X1ro^ZbRm19320$ocgRs))?#%YxqwA4-je zQicbA?iNGp0X{{1U^w9|ElEtIcDb+7S%?F3<^Z?{zmYuI%4&gvGbk@b_`wkDCA^sZ zjvB;AEJ0j&=;ZQ|v{0I{J!GIdr8yP%m-`FZhmb;L#!yvTycc~5He*t^_|r$w4M^q^ zc_+iGN^EX`MACUq+2fnKWK4Np16>5Xxun#ZoS?hsAJSs?*z9$ZXL@Hu3DGRa91ok) zLJO?7G`{VN&_5k)7K43HKwy}FTi60&xgciZD65lYxgsK8|M4FkO)5O}RX(Q)SesTi zsyv_zERQWcw(0CVXb3)ewHX)-&CYBZ$Q^_p7~Pipzr*M3pAJq=4-fZ`Px^zy`|plt z)O>ll1z$jg_vX%wk=^4zV#oFan@U4zS+;WAY((f>an}$`RT%=cYnTT%!t2WHW!^1>1E7>ZM>TI>#39!3AT1$QFnrcff?@taxPM0oOu!7qfw5K#cl7yh zAI9(hJpZ8ma>(dm8qt~E1@SGFqqhb{rhwvG{xDsv@iN?l^w4RYTRuiDX#q;*zRbgD z)(PAU8SrqzuH4R&PiT5zM4O*S{#jJ^N3=kJAPB;J1bqb6M*}ZN!=T?Ias&US06G5+ zWN`QvDIJakX=Dk#egt^-dI`%Bg=@?2Fsp=2pRLM4g6Z8z!&P-l{%eHlmd?BuP?wmu z+!~4_XRg^$d~xR#kX(b`MH)#%1<2S@kVhg;C?Kj`lJxFmcri!018p8n_eO4&x^5^T zsqDf5{mQL52XL}jP~{`v1IN5>EA`S_xXFm=?%%Lh0AW*0PS`y^Dprl;G^6bZ>C|8&J2?$XC&6rxC=y-SAL`n-0r3>o#Pg4v;o7e!~k>MZSo< z=(fQyz^QN4q;-UdL$pgZWbOOPcVcn@)UCLe6-+SvO0a>!bqycG$Ytda$B$m;SS+DKmT&XZI`HMjMK!0#KXR+gH#@ep)Z-F(xy_7cW$XD zawk>{2U4ri$f|F)%xE*RD(lp;5JLllDN=YcmQp=an?p+wRpI1P>_rqptAc+o8_c`F ziR{7JA-Xrj57Bti!t$h{NMU+44$4(^35l4c89!p|;N$)8glleDq@5NfHI&K&LoZCZ zC8oL4%!!TJvwc%GGDU5B=IyGx6iDJ75Xv+9v^-DLC}Jr}3GY|yBi_Z1WPo;^_4_w} zz2C0y|GzJ&Q2Xx9`|XD1?0){Q@`9yu&Uw~y}aIb$OqABb` z*n;nD{t`XwIIlI0NxgdW`QiRkIrXdixA#a>rWBl}K9AZKVCk^f8xaCcdBE*o=wtCR zI$)J0En!x3kUmrxXk5E#?yEo=Y-s2Yz%sn(6~D1O5bs%L37UN>4YK#$aQ_%89BAqs zqQn`zwgZTR3<-Z-v1}7^B8p%Qf`dSeLW(AF<|b~s7!&WN^_Bx%l`g%EmE31!~1rmod_8kzFG+%bL>^ zo6y~}!hFS|@h-lH1s|!x+IIO^*ruDVAV5Qctly)A==tJ*kf+A5iz^0?_G=#KMjj0a zMcDGC;W@ih1!q$(Fm#FZxb`D>6GAf96;v*mb#+RQ`(+6pZ^nQjHkud_QUck<+n*5; zEhR_~NhH54JPe3)KhWY-ZHe_OAqnJcJ_-NS#su*xX3?D(O9&HQFgb#&iAfpc-xYEu$bH!?2jauORAGa+gI(>{RoF-uJyw7sp^Ze- zy1b2v>MjO2K}uoEqCV+J*jw{=ltrpfFoPUKjVf9yBxRxV9ys5CX-X;Pd1A^2bs-fB zo~(AT1}Xka910IpXok4d!HxQH(^bug*S`AdrX#(r=thz3^LRaM4^-j$nkm5Sh_nXq zb?`iFBE{`M<~-jOohX>T%gD|EA+#27UXaQP3SP^O+V-UGP`5(*uX)Q)*&!aJ|vF=%{v4YMx?sS1BPwQiB5 zI6-GS&f#k$wC@te+Q2;fu!HK=X#X|)Ca{Tm+3C?fD&rk10L*-nDR3eQE+KTd7=u-m z>I1O@+2V66{gaGu*bgL2onQ%*zKe>uDY4W*lpbtsKcbX-J^muNT01 zwL1h{07qihjmnZcz_EmdLmX%u6k7{efE;}(0Hp9BT2DNNtD`Y_HPlhQ810|O0-ZLKh&HeH zqyA(XnZ z=>u*O07;_}ejro1!cKW4v?fB&#|)-MM9pe+jn?wIUm>wHzEz?KJWdn<{&p8mV;bO9L-J?R|q1Owl(Mx3Upc^bWji55T&6I)FCPN4wYyb zS`iEpP2$ZJtiV1y;AYCtGdJu0@AhvlUf}sRNKBfU?t}KaoK@A~hEM>Xq^l>sW;IZ^ zCFddn(Y_SLPUt^KB9n|OwaAoQ88pTOCn}hfr{I=ngqqMM5#);i9HbxIJlmkr_8P6K z;55YxOP9wlAnh8mMt?R#u<&f8xvIJ`)QroyR?s(S{%N*5JJly7w{{3Ooc&bR&vd=YeoSfq(SUc^~Nz(H77@(XX5j8VFDnsmG2fuGdy5X!NK``ggi3HZq~LOBf(tPne@Ng> zwm@hr!aiXcu^pDv@M^H`DrwABF5hF(`_;KhSB`Z7(p`u{-K$ zK7M%j@bQyS1Ta+3?SRTL5y7}nb|pyVnEyH!SMM5TPvdHe3P?n$2+hQ6!68Hgl`(Z- z5&FeIdbR85=U3v6x>!N0nT>8PHzV|y(WH?fc>ynY$Tr>bu10Hc&f)ZZz$zgVv5HK*gjyA_iS9?tFqCAEa-z`1cE$9Bgkn zhvec@lPp2$RiWO2zj{eEMY_VRK=m$~t`CfC3>Zk6UQAraoq6}$DKTJ-02g?^`AU}Po2R&rm*2q_Arj{CtDK| zC@U7gQKY>U@_!qcZA9u_rl1J@l8i@FiJMOjTp#XWBnAAxZP$k< zpcPgn>2%U=*}#B7w(TtQ2%VF<1oJm_$}`xCJ(h}+XfkyjssD{-^Qw7Dm^PakjX^aAbd`+Jxs0I zy6R-gczRrB%M}O*LrMjzat02rs_J-Vbn!M8SEkK}CCcI|ykDTJ>rI&6zEJJS=eD4nX+CHstD0G9+&EqI$VsSO)nb0@6gqS_$kSuOc4}jY| zpY#9@&M)nBa4Ilau{2;dK>8+H!!8(Trmr%m5jL;SGw<$S(ac^BRv|o%avDzu$adjP@ZA>4D)mDyV(;46rAnt$$D)u?Bcua zkXVMW3skHjdcaLVMZLHk%Gc^%1K!MLOEV8Q2F=7xw9s@`19WFb{?(cK#YSm@+=yG0 z9Yow1on3ivse)L800V;}EZXulQe3pBZ|EXr1bP5~$S%+inHE<|hL|nKz}wbY|5T^o zG)8m$pc%!Y>qZ4wUtUQC=DCD#Atxyz)S~(_kjz%FcJ*bbUa%^@jE6Mi!h@Y-zLTgV zuV5CGVh_8Yan~@txEPI`zCa6MpQ9U<2!v@pRrFE4p)y4QSCb~Xv3xOp= z=-T9}4_@j`_Llgmh3f*aR!Lb_e~A{-7vd~(im&h1l{hN$%gBBL^p?)3Q49-aTKtZCG_ETJsDMy@CFq@qdiVr}WOWh8hF@v{4)7)1Ylkimhl2TR#pacP}T0g$T_-9B?-+z zVZyqf5fpd`hJ(xgFTZ$Q*$NI%R()=q{`5v23^8SQC#S|ZjB=a2DYhCr$RD;MF$1?o=#(7>K3}>7C)qL zEz~JefyGCga3x%07tcgLMRNtudJ1hcvy^%ouAh%!u5ptga58z(Rpm(D` z5yRky^2V`QQ9h+lBqd|Hs@Yniq5Z58!)o4YZbX~xSYysez0TO!D~gg=XP&X7kRn*u zH;BONiFUdeZVWXnPUwjsQ7&342sS0`|-j-x7IUG&d0mQun? z%0ckhj@taSA;$vLmM5&CZQ(4EyV76!vxm_TV1uSaKSUaQ{i(&2QU)3`3UzjG2hMbAw`sg=O zT{jIQ{gVcVkKjpzhY(yU1;H!a59%V$an=X`Pz&1|bBg$c*q#xqS;5lWW4P+HHK#t# zYhV$`Q;sW6+x-fCvZL8_tx#5i)6Pa2Y4L03UI#O(tZZT7rP$M`P+lg5b%6EyroABb zL8-{6CoIKvdaBwgMbNvMchGwVeGjf1AxpQ*h-K=AGo*#+J;Pug89Hp?22rW!Dnv666E$6il>R5qDnT)^qB?6H+KW5*`ef%o)5D9 zT`RS$F!?lqx}Y6522s);e81RwVO|vyC1z;(-V%&i2+yQetb@|P z(`n5x-v*I~l&GN_7h-1d1$?CekaMLDgW$pV4xkzEwK6T7uuQ;7R0*JAK@8e0h;_$b z-w;uAx^s+XD^VCJ^Vu+B*=0qLpp@puAl-pnUHom_%Rlw)+#kTf@%Ugd>y-yKGm#>% zaD|?4=>ArRHp0bv8L4;4{0`Ks@EM_}nuXBqgC#&CZKqMFRPzGyCJC1LkR*n(c!bU; zSscM65)jD2{05A zJ=|X&m+yYRl#z>rvOt3;kYR%IGmU7yMk%w(C|yGI-C;xpK9AfaEelo146>pMm?l)^ ztJdftSyM}`=M@+xK^mMS6;ZWc*-23QHjJ3+Iy*YWX9z!mm$0V!k}~h0fi%Hq9)r1ugVeW0vb+cxR5Lt z)=RDrAi$C8iWgP)+CU*0caI7yOmFEAtc8C`yv!!sIRbhW8N+!@TzD%p-|hnADv1`m zq?ys#Kh~HeXZ64(yi@0IgL3U3jPYKHv?3|X^jD{>*%*J6s(t8} zZ>Dw~pT;=7Js+D|!o$$WC9$$REu8p@nADJyOmjDhh`;&0g#fMDObUK6OmF3S;PPs$ zFct6zy%*)8ta7t$vKMfc5TavEYpL+CmGrd&^g~0^8I98?YRjVxhgau7J`#e-;k7`@ z4#FI4`uQu&20qSL#+*Xld5`b6{@drxySIO~z7Ud}6y2b&4>h2Bh`wBA2Jp!R8dK%p zYm4}i5gn#7SgPvTv{gjRk^yxm$5&g2u(JC4ayJzITQbi ziF-{=TW+EspF(=H15KlA&Yb?w&sh!l`wOv;dP`0C1p?3T$r|0vzOmf2rn%-4F`zudBLIT=rPq z4b!{e=$BEXPoHid1At(w%2!~-Vntmuo-B3mp%xj>hI%M zW3s!)2i~A-e9m9noxz`N-{zS0nK0IEyXil5skv{3;4> zNDEso?hu+%4vsmfe8l($^_A%v61v=250UigHa{`$u>XOuX7aH? z+0C(XvB4T^l7+k^*AlPu-E+O`LQvOY;Qmay|Z5!+6ky)SRhQsen9a0lq`uGN5i<8<$a69dz{2 zjLSClN=(+mXy2&%h3ywRmN^EQv#$jyvT|?M=P4_fn-f%5v=OcwJRfV@@ClsfZd0<~0nN7K270$Mh)lJ7-8 zT}}b(|MKbc!{z;lKRx`k?H_Ge^6f#{qK7S3t@&X z$U7JZ#QMqf)${+Pl*;zoz5iuD)+_W5pg)40-pd>Oo8(!O;9*Z^kN9lFFA=el@7Wnr z3FPGn`@XVMrpxe!#iN8)j$%aA$UEbA~V%KRCk`@4`O z4%sb#IY^_q&FIlmf!z23rr2>-B!~tA%mhaE(PdVecD742qz5*G?2;aEUhD)b(-{n7 z=kY6> zIOPA(194&vN#>i+pWi(6{^$O;z5m(A-@!Mim-NkleENnpYH%UTCw()=k)HBx?;C^Y z9zER!gHW%=r#V744HsO9Y631`l3lIfR+7tb3;vrUxZ$2I_*W)Uh zmu#d0YUMyYdnBOYON4GE!&&kr?xW&E-b9S-^|z$r{u^K{(yYD&;zKgmikq#UO`y+! z{(eE!vSEQbD_PNl#DbvKd_oIK8beNu|J&g*4WPckMYjQ!LsPa`PAC-rI=sa;#4%Qj z#byxKTO)Z3tOrokqy(#Cn?hm|IZh}IVue&ZcvL7JWSLk@!JL9SxEk)>hCfq*-}xAE zG|1P9cOQBHa}Cs+6TL_nAri-E-_9k(J`%_(B8sY4qNAXq30)y?5}BKDU6`>0vjN?= zEK>e;>kh9m0?X(EuR(r^hR{eoPmg%l*4~_6S3H9tD3N3t^5cpe+<~ea ztvhhpAd^C$uohSkwzC*4fdZ#`d(P11iW-lWn;V2M&By)NOZaKuR|YFV8RVt%cV_yb z_p4m~Auf}SuZi!03;9Rh)c4k95NNZc_ zePRAHC6Lt9-_GM1gU{09ktI3=X+r-uErS|H@L-5^0_icx9n@}JKfHPP@_BoC|M_$O z<(D^~(AQ!1<^B6!f$QJN#=L8cZXmKp;x_#-gPZO_Ur&>UF*R2=DO^5Lc34$ z!ucht;(Li(Y(zSXgek{`54Cf57zxC1Zk*5n#%P6-XyaZG$31~TAjhlc-xk^e)G5^P ztLPibBpOX}$-f|dRzcCIfR&sTb+ezEH`0gPYO7CDGQG>f7vQYYq+7vRk^le!=14P&NLgGg5~gYKhEBy!qBc|D@EhS(cpQ&5ab z*`lb0VhWpOd9pT2R@tq;hHZE?^QkQWlvuwSF_Q-A`FX+dv8*7lg&=-2^@Xj@0X@Y2 zkktrHV8-m+*K9%4AUk!iPfe2CuwTiIwn@Q@xP`enxjx+3ReGaHO6#oFA(MM3g~PDw znGW}>gcV+13oGgfG#sF{Ha;173`hHiho|~xs$L^7c1X;t`T1&rz#4u4%v+?^3zq>^ zyUW#gnxUR2`e0SPG<8f|L+M}3WfNJpc_8*d>GsmQX?p(f5^8}r_~Gmp$2IA)R<|&> z>?B>-Es&S_2~&v7+r)E^UB2fYtOp2ZB>fhm<8fuwXhU^T3PCiIqS>ONhesf*2rBXD z(&FIKk&yw5r)D9H(g;E$(sSu_U?>b=6t_x-F;{3jvN2gp_^ebDJqRIAiVkOp(?RYn zN*LyBPn7Uqi$LN1etiH+y6Um`6X59enSxJX0@D8}7d##P{y!j@dbjIh(Et7q-|&6| z`jSD*3#BQ=ARuwZ=h~H$9fP#!TwSG=fF`eBB=xbN;U&~AkpzfsaK?mIa_xfmLjDs( zBV`#3)0eL%H-ztbqnhlw$p}}Ysc{sjl{V`5f*}k=rbXl#P)%7w%taWV?_D@P;7kSf zY4bspXUiZ@L5(Bbe>qmHm&w%hl7pjLuzwRUx&P6aJUv}3LgW1%*xrj%$XMqT+t8P2 z7UvJsd6Z+8lx5>{B&`S1CItxc3%&=)vRte-=r%T+$zsT?1^7LQ-ETgBzW?;F{mYwA zZ+_mxKzul$#VA<3LmZ&4WD?Q0w3W{nejiw;&~gw1|Eu?ZetP%*o)z57y?%!b8@y?3 z_B-`%BmD}!q#c?Tkc3(AkRa(z_pzUv0K71*QcnxYz)0lKv?Th~bTfy_46OhU>p_!o zl0d6t;X97%^=Nz}`OAvqVj2Q~G^P26&kt`tyuJVK_wFiAW6jl=51*;%9Bp2c>E-D4 zbh2D6HdE!(qxG!LfIov>PH&G+dTB5)X0(Mw6Js8^s==vKV0Nd1AbUWP(1!a7(eN|& zPsqZfU6F)f_-OV-^GLFdO<%!8HU>G>+(L>GUN{|?Bt0y0F*5}LEG<3w?)v5ozR;TP z3#9_2!AZmhGv!(qO$|ujNxY_obPOxNlj*xczO5}i9Ci%#(A^%T?vGvb7;QJ19BLV| zYT2ObX1x+A={R3o?o7IZBQUE#ln9U|rV8`a$41wqJD6AcMbW-ErF9;$gWVrBdo15o z32)YEq>*UrCv7((TPjL26|v6n+*OWXv?X-y5KD-cVW*2&+rWhOfO>^#(5TTNExv3W z#KI6qVPiqK4+^W2#S~2#SaLpKy8GpFJ;CS0EX43J)VJy_7wb7gAt)&C$z;z+2afVO z+)R+ZfAhoN#&6!g|NhO}KbQ1Ci?)gplQ$1<(x`ISx7mM#ke(kt{yZFf|Ly^s5pzHs z=j>2o^E5?>K$gecR|v2;GE7@lTV&0J>Z74tnpxtbS{jHOzoYUJI6vhBTd;D&B9cH_ zQ=6p&q8a4-l7Sh2;(XJj!#^&UX1I;VBa?9k#PHxN#+ewRizTo_Z>5g%@@5W$-t`E4 z4N8i>U%rRg2AnA$ZdTy3S%=`{rCgm3^+7v089MX6Kd+3O5JT_;HLqjz|8NVsjg-b7 z@vj8H4teV^yaV(@b4Hl3S*$?=LPkj^8ff&`ZHTn_g^418d`>FEbZPqZ@2iZ{k61s= zvjR)=BPO?l(Ug|qxeJgIHZB*V33m_w!;I5^1^+F*P4E$=K85@(k|;_? z?H<}ZLYJb`bBZA$ykICmED5jmDcwob%xuXps08iveN_V;6H;J~uY56IO^}2!c;3Xq z+qxu!w`=Y$jT@m|W)I~LpA6Z{5rMcIz2+SCfFh~@#Q*(VscJx=ag4C|l`b3+MAV#a z>CO6fHASO4K5tJ!mj3bTu;=P&R}Wz?#$hgmV+alm$=Km`DZrXcY)PmBKfU?z;r>0m zO?xu#*r8%#A=EQ0wi>25PLOekxtKl}CeJ%|Zvy$6g)tk#rv+X8GpZ;H+_|iR90Lj~ zyxpU+ijCWG(PP4jhyT{e<<#K8YH9oznd%&*FSgZ)?lO5boW-=jx`>iF5i;8R@?m~K z1!~NxO0qph&a7rzYs51XycVcGES(Lv1?HJ)8P7v)<s^f69qu2@X5l4mM_hMGl*iG=g74|1dDmc7EU z2sEidnt()ly|0rZoq}(I?3U#r?1F5K=u}9vH6jHTMdU7|##qB7>vRpWm4T3O4#G!= zBvIEjvdA2ipHc%w*dV0tQ-B@zE6;cnrVGUOAm(-y6CguG%~k~O1rG#as>}n-R4cXm zr&R zATTrD-a@}dZ_?yBr#eb`*Nm|}$@hxF|E`BP$ocZZr|a`iA3r@XxbPWb8)oxM*a|GI zt*^og@HRv&1z)pBhBPH2%0pN#3!Xf*cVRg(pn-)9`AJw%@vyTmG` z%kIQ`ciKQy|1X00F!5uQ%ZXj>+{I{W!1RQyOyCttf&SN67vP>QS+-J1c)PE#>_;wo zjAaXb3X{GZHQ;Di2-wp^ux*I!fNtYsx2b?cynh@r6NlU@s9_~kP-wHAayCIQz=JROM8^WSo zDj;mJIVb#X^kND}lJQ5S1Y?*8U-pD9SL2Hww{3k&b7bES%EM9xo|DI^LBTJ~4&x5i z2#|t+D}LhKiCR{X_am=cU7t6_Qn7FtZe&kqU^w^>T!FDed7frh3mVS=IjAY8!jg4aVOPZ z^qU?Yj!Bc0ei%-0m&O|{npbi~=~<&&O+!lNVN)vYnL z7*zHp8`pWb}BXTO-|y~ZVbpd4^8$2HFpST)bX zp*ZdNU6`f_D$qCsy*Ly&>MpmF$$SC7kJS_*+Td*2EE&+!K*_zz4dv{`%?2`8YENX; zgRBb;ii{@pW3i`{g{xsUY6b)6E-Zb;1tS{ROMu1B6>&YT%oh!iUWMmE+aI=rXEVrN z{0vcscPco(*@}imz^O=89Eeusk1QjegMLDAFJhe`mnR2+iRt3Jr2{~8WHdXm01{lx zd>p5zC(obVtx!dV{fjQ<=din&Rwg3Bg#?*7+F{ggf@D;Ox9)Or4lNXdSVTXd7!Evd zU69h<-45pLK>-$b3+GT-0-d*HXBXfBL&fxn;@B8M#6zBgE1ErqAI8vQr;@`#qLUt{ zvqpy`te8b`l4My*eGZCCEfl%{NR+}QFpmrE%n8e%CKI$y+gsuam*U_I;`KN}+~8&9 z3nByiDz@(`J&lV!n9Ok|eNneCbO>!r!AOleb)HY%5? zuB3?;g=RUdIKB2s1=UAVA+Y+_46Z!3pjIo@#baASX&b96m|ziGWDRE+Mc~I8lY%53 zi>N@p2tq23Pk&`dgZSj%-xh@3XnccLJ{-dVb<`F1SKZs`G+!ivA(&atkFSf zi-qE?s5xGsCEu>$h2L`nlabKi*oA01{~>D8-Od>Onhgk_>H&Ixm=Lor9Ne4gXpoGOr+lz42V1|AofV2HXUX#5+EFro^Kg$&0{9Q zQdrm&b=%A**&jt+T>7ler|bUl5o=aw1C=?+v|oLxedL&qPkH&D-y_2HPJ@df<0aFTn=Eav(^8Az4@ z#tdv{f0WOFG0rfM7mdvt*zJ~quUw<|#wJ9>4b-i(*C_V7wfN{1S*d7g9wCHsFONfk z>*YU+!_}lZq*h;o&lW2xZ%N}_o{vBtJSGz}VaGNRipQV;<^o99XMI5`>&`-jK(za8$M%!Y$sv;wridB>t_bQpmJ*cQS!9^_h`#BIl` z*Sm5rn;;8RpdAkpmQ{L0|9gFo*4jhe!GcK!C@$a+wJNfg>0i-MasBbjr?>YMv&3Um ziPc{g=Sq>rb8>P7U)l!9DbsUQDRd`MHZHr!p9edWkJ7c4!_L|V zJ4bq{N>6vMqBxD^o58zs%;k!HwN~3Y@1|E`g+eiU&Cm?YB@su_g)psjImt6jGsKqy z-Bo2omfjbZ@B}MU@I>M_mrP%~6_++V6aV01shDZxpyRGqyDjcqq?GsfH;)!t+RsVl zcHch4a^|+fv!(m?X()1I0{G$8_yvLx9f4d6YeF3lNdJ+?oYb#+rn#ARj1bnIZANEs zRr!DMzzSpQA$lsY(FH5Sbctg|2gM4a!I&;48}4!13SOhr&TaUXNm|DmNr1MANjZZ> zu*)b*@(f$x_u-V&Lf$u}e00dNop5K^z_8WyYP5tbj*6|GCff&v$3>8d;2GR*5!ox~ zBcah4U0?GYwvCPu>hdXDB#dlO_!Ae#?Qs$K`h4~pFLkaIR78ltLIZIN{1*>_(qFwA zACs&eh{8_8i?3nQ@8dUCwxMnvFTz4rRg9y*f=2S8VfrvxWwZ8{Ny2PO4R}{s0E|G1}bnX&^1X7j#l5%o>xZi6WLP;!1Aih?vWP z%!cwM@kt-%ViF{amxE#3yA@fz9-F2pCrVtemdnS-qoi=OSD?$&Q$rq458qDrtM?1ZWf>@AvO;fN?$fATks~u zwzsnyL^%>wKl=mFbNp5bP!=$0ozxdeB*xSKFkP(sCLqUAf+tHniW-`2s^OiLxkxc! z+4$@B`A055ycJ`BA<&V!P7vX*;CgH;p^8QC=L48et8v=_xm6VM|LQnU`^EL;Yj?3c zGQ7{*Li&rvLpw31X7nVLfe=C_rb0BPzcFaGdAOaDmIL&K>+uKWr;RsAtO8ZMLQEsw zX1dx`f|QPRmd|427pIFmfu8#hG?DDWLZ!KqFnJT zNMAIGQ4>D0Jw$mOiKOUEnE>bw17&DQ=TV`ecler!coTM1ZE4W55t!mGj=fP797`sR6uXgXR5$=@suX$84`~W00(Z0x}T)8#?5Z8 zqRUhR!1hv#x3-AN9R+_VoD{;ADO|WNEM@qx=bF>*2pK|OEO4tW$bN4tTwQ6N9iTp0?wsqF-X&`*mp z=n9h!r2^I1OCL%OCG>v2bHhFSrNE##5f&Pl- z3B7A6lMYy+4UdE;f=?j!DVzzk)e+NWuM(nHWN^(K&e$`U;II)l*ol+ZW=k_ckAYIs zjEF8Q@bDa40KCS`U)&%bls#;1e6jg@fSwry0gstRxp6tYnXqL66IO5WoEq0=aW#kF z2Qfgrg3Ysg17mX(K(>7}@e~f3a~b|fP@cgT=Y%%IN09srzTXENcp~u`a&Kp)nGDoh z+aAVNzniqRNksz?U_&j-Wx!7FcuFc8NBN|(EV4Cfa%tw>O_1aK(k3oHKNTNW+EG0#`%eUah zo$#<^D^D{l*(qt$gj*oBgjc57AMTKETVoveizb9HpjR$zig>9*p=44lkcTYEaKER2 zMZNu3L@nvi`n#cRfD7-t$6TRs!p+rJhf&7+>Y!AyJbCk(YJ9dp6c~}k=iBGH0-+T# zON~HfFv5#Zw#Jp<*z5If*PQCGA9lyA;^gnAL}v}XR99Ilg}uX*%TGO;B!0M za1~WOp9G(z7+5yzsL_x>x=T(oULP^Z*pQ9(&!)?+s|Z}heBkrbOlIyg{$kb)*vbb- zIW!FsqvQ~rIHjF{B~#Ul&oq!5EE`h6SRYIR4XKTMn9xG7(?xgGvhK8i+ z#B?JOU$ztH(*9DIt0do}e1QTBE*N z*(p*2HCll(rXaRlVGy26h)c~-i@>7sZ+Z9p1arUTL3)a`7`*@L_NG_-7KYJ0G`^TZ zI)sE^?kE_OxY}koc2@4r!T_n(yimtDJ-|^4B5{A6`%l_;QF&UKt=KSN0%k6jL}O?y z(kqDGmNL8V%#Mx;0n*Trdk5$;H=N}zbAGH3z?z)_DF+oG19Ji!a%zO{8Q7CD@A&p^Wua)&k>NONJCieb+j*2z>vchly&R673Gr$deK&_(HfvWcp__N6wpqb>BR9<&I!WYXLp8fMM zGkJrz3EtPl5lGY45=*UI&?r1f3A3+P73c!w+O*Mqr6VEm9+h{8kX00j2{5@3Dc<6cW0L9K5b{0k`N$ z_kd@zAA>4wP`(NuRn+?1Ly2TQ5>Y9l5M2GBBCODK$<_{QmNiK7(ew&RMLL47@6`Bw zq)>Rruym-Yv>16tqo9bG70?}?6oqK8Yx{WIwprCD%aD15aB^3E52Q9Olh}>tBeDrx zYLAMq6_7S1WLl4G)&0O<6(Tt@vbwF$Em*zemY)sNLy@PT-hW}R!GN&WaNfm+FjWj$ zVo@3ew|Q1_6Q=J@6OU!sua;q-dM+hv4@Os)K|1~Slqp~uFLMSYadZs~HMMKdHB`}b zM`@``U0X~cg!Z5c-I6v{lkw z-QqcVK6qiM;Gw&(tK)0<@l6md4aIYaYX1OV^sC8ZHv^ROowP7*KfPl)uwU5|qImu}?1?q0*x6`~? zkwqCMM$E!Eynlt6TJ}7_bYoVW-;j2Gdh_=F?8|4E9-O^JVatvYy0WlJ!`WI|+G>af zON58)HQsysy!V#I{>w}t8UBD#phQ@y;$jr6tM+#Tq#K)R3N5x3jATnr`fOAmDn%+a zmx4jclV$xmh!o$-qfOZYCM_3rQ$mN`vP2o|xhB-;=JjNQjfsDaa;8IVOTHd<<>FRq zIGJq`)8qhsr#K*W7YyXT{c6VBP+im{h$WgeVY(pITtEP$$E&4NMXd&mg|v5E4!QK=z-uo`b=YB)VRUekIk9)4>X8!`$m7^kC=Mz7p^W&b;MJ61 zRZ#=vSfr966n?Bl!44`k2M8P4Z6$LKaUys=4ASWwgazcQh~aQSMtNKAe@WXCsE!_> zL(Wq!@Dh7gK)q-E4)on5*I9brj(0!~BE(7vv&i@J`D_Nr{ud% zR-5XZQNQEq&pUFi?1lOVooN~1*DnX+JS8!P#OsZcBTJ8FqtW&G)MACfgMsZS(2Gi! ztZ$Z$m%^=e1p>3u6z$3URNRMLw2V{gaCC|=!cHgIRl^G;h$0kEQXdb?Pi$(e;P}B6 zi+VXmPxy|EV4IH*pk-GiwFC%3$k1VgK}N%7Aj(4Sez5_2H+cbWW;4Ngx=_(i0Uq<0 z5S>DespCi-sApvUg-n+Eg&H6YPqbL*wTW(BAkKb5yNjb3;#;-zi({n@m7yY27QSiJVPsZ#VJa<3IZ)X_kOV!}C>?5jGQmfx-2D6+A}c1N zho~mlx7ZD=#Ry2~6FP3DjR+9fB&iHLS>Z$p2Q49NWp_Da@_E#8$^#yD@o_L zE3clwPD1~p;8w-?WP#fr&JMh zmQAx@q&^ii(Hu zWy{=;g7w{akSin?P?75hgXcytQb_MQJ#s9IWm>9FqN}V0TxjOWZitTauTWx)zA$SHarfK(~;e{K3w2u9OuZ0v7EO}+o z&0lGjrJ~Pd6>*7g)T~!xYAJKJp?a&ryLG*AZQO~XrvW4K!yFDYj!L#+4H9#>&k(X% zzi+Vz+rUDb7IwF=9ZO?lKpG}km5|H3$@;nMt(SY_pE5OB+A2S`}#?!5JF+`nu zWT~yaMpyR`jqo=%{@yYl@>NR^MpL+>Ac6d7K;?#l!9?{1CL;A601N*B^(4boqy66q!Kn)wbdS)*TII(>B#*}+iU^S`Y|bggjp-i|6z)6ukzsmbWm-b` z-m4924J;=~+(1O8n3zrIWICS1Is^9}>zcTY*QdsdXYZHQvlGZR7PxR2?m;BzM(WtT z%@KK4OPYI7sSYioE3TQNuuwCXcI(E|A}%YSdJ?Q=Ua!j981tcY(-2=<0Au?QQpPVP zB6Sq4@muJenJQn;)cw*JSF#-X>d{jod~9Wrg0cDWjqL>UZxTsOKnB{EAn6r5h+kPm zdg5>p@sPRCK@@(FRTx3_xIypOjpB$XhR|)69s8}%^NfxYd@+8G`$+kS`HhNuT|@M0 zqUj!2(HV`9U>d&u+vm-@w|}nEnfZn=+h7knjN&jx*v!ZojNep@gKh;%PBQj zSGec`<-V(bEkz!IG}h^btN|TGNg8QE>Dx#PSuAF1$}F@f7b?A)LgA7}3(0XG^^Ni7 z7RJr`0c38y7OOM(;s#0PkES<}Z&pD+k{PNqdK@N#(z?_z`6XbUkAkTMC{43Ph>Q=g zi8!tKPdz%^6CmLq0mje|ZfMpT1k@40wNN;1# z76>&qainlgBTI;eaxx$mHQZu6gZ;7Epd=r@g$}de4TpFIYx#oJ)j?Vt6nazk|03ry z!zL!0TEEjfla#X+Kt4Z6v0Y7Jl?A z`8&R~Z2A50^ItyQ|7rWnD*?is z+rwVhNlj#d9j;>=r8gxTVKL(?%n$_UwhgKYqG!_!WLk9sXVT?4DLIU#S5z@sAAX3k zHBaj8$SP$V^Pp}2Ef{uO4ih)$JRS2@!YBe;B22tAK{YuXZ3)Rf<&sLrjDe$Y_k{g| zZ!9r^5u*H&zN0!@y{yQz?m~(~CYBp!0abC1;XEbArF5_&Ek~+2(NDx*A`S}m^WAud zF+y-RuP8X66YK)v?9!H8sdZBzSq3I&+|wPrPX)Ob(RuRjGpnG%60&}OfB%=Ok3Zb2 zEsC2)I>0s3c{Az;*2P)Phi%ldeye{ylo+Sj=<&?W+vo~FTJ9^9MG5bQlOzXcBOL=U zNpO~Q_%-iZUQNV_jAsgU>@nPtrY6${y+1l=L``3`l`>F|V&t@S*`98$5MzQhf{c_E zHs}|OO-W7_vdPA|njY3AoCa3H$(gIPo`ZJPHB6|3^iKA4H*f)229FuQ2-l`{$ME1l zSdJqqnJuG zH&>%6&h1{GhG}hQ$Q3M2B`)b4PpmSzC_-yjaVOsfmX9X11Lsb(gu6u`eE@CJEV;9u z-Y%}O?cIXxNY{qyqC)K}Ba$>-ZOyP8qRX=wc{PIH_Nv!BplqubF*ev>z_2XW#*gmtOmpwK&%$e) zs#~`n)Aj1QRoyctq*RYvGcEUYkNe>ng8{LGAVf9@EeIimR*0+!SrM`#WQEubA_$Qc zAuB{y1g!{J5wc732z0d-0x-a zo?asaj6i=GU;w3IVoDs-lgOFM1ajaTt}$jB*IEsZpneTh9aLV96RKSvoH!w0F1@Xw z@iqExFK)S$ASgp9MuJhX!R@BbR*~sq{`#x;>0|Vnd$%vH8q;eUmW&6@7_$YKagC4& z23FvdL3;&#L0&t@M#|diVIMUl?jUVB&tkl`y$Zz`Y6an7@o(+tQWQhNOG`D*^GV@Q zQmy}9aAb?5y(uAq6Amzs(B5K~W_(TVRnY(y3WN_iM2_aHeg?qT+w$;u!jDHJAuSSo z`+RZh}swl=VFl82u6^kt+DB`lXi1Kr`S9|Z2$Bi z*e)RR<>q02Ljg1tf;Yh$0+TQk9J+vfsTcKPn-HM(tukJyzG-}l`o(?NtLPebarrYq z@|Luc>6udjZpLYU`WZ zuVjhrRSS>?o81ZgHQmrhLztaLsNzBuX9GgMW^!+4%f(YV+ylyT4j^Lu7g^Q zV#fZYzo2TVL$w@oDLh1KlEbK>HDn7#P7aHkE9MyTJ?Xd^!^Kf#8Hh?(2t2@fHogb= zHkcw{tg-{g^9KGI^o3k>NNmEtC7YX%x^jX+r6aSv|9W9r1@jre_PWGRF&zTR#&hEH z4nrg6FQXj~Ru!~@8DE&D8=`rvq5J=$+D^|>I(aqToW$FAQMpzHEt~$ZxgvXei*)Fi z_1nB5NMZ#f8#rtNPp9p?D7P;k4oqTmkY+MF0gFEpH-9hzz0R0-M_P`u zyh{&rZ+fi$@%rKR6y8PVULQNOEW#W-@kH(*5iC37p#q3!g})p4SLUc#bgr;ofA4_9 zDZ%GRcoBzFJ;Tk+f0%meBSNv%Zt!}cKlH{FP$0o*E}Lw{Tmro}6#awDqSTjQGa}C; zf*`QZ@L!Kii+>|VD-Agb-0~7|V40VI1ADv#Ja+DR3Aj519XpsD?jKOoz}R1UvA2QA z)hX|*&>JWieG`bDnI4XNR_Y3VPcShNxE?h^Sx5;xwF3%4%@hQTQ3_h0Qc}})$=or! zi=kg&WJw2+Ac$qX@3!#=s>14Tpz6Jw$jHEoNsI-Wp@IX~I2sr1=b5uB{CosyqZ#f4 zGt%T!tZXO*XefDR*+2HdwB#3hI~;=GM?a9+$DQi!-BteAvSNVK!dr8DlQ|0oZCo`8 zy`9!J=mVz*#kf!|^(R3ba)75IXDL(TjuUCdVD`?L!wC8rNzy<|XK7^I&O z6M<;Nt&`OaTCt*e&;1q`;n~-M6!;Zn8^;XUZ+x68ga*1(STVQMi?nsz!j`(0<)^80-j8@A!7J3o2@`gZO#R zFSW@xK(iUA>LBP==qRCgpc_`Ty&+vb=zuPKHg>Gev{wvd)~DIw>TVFv46WqSSp!tD zSjup>vo70bRoFg#&D{9et@1&d6jy9w0+ARLm1;#{0I>w4T5C^iwotQ)JB_Cisp?jD z5N@x#vQk@>bX}2Ich)4Fa3Cl{g+Xp4GTcBmg^i4Y+Y}_)G8z~w9GdrH7 zj<1;fM&awSSCrzGysY@F1!4_`EAaE;GN051;#<7^%=2qD&`FZITPpc2C{>6C`6q! zuwm2LjLv6Ki+<(XYmdQni=~Gh$x;gP12cK22Gp16^HaF9i?dmWCdp=e7Zl_$xUrgf zrs@dJ-6te>xK`)a3Xp!XVD*z8S#p8tk)=OWX{4GG(U~!9*2tLgZ+iz!7>yR7(9nqr zLpia|ra)V4agg52u^PXXrVO?aF;g&AXGD~4{3nkg*`nRkyAN+acyNk+MT=j(TQ4Tb z&V0HS`BSV(0g^s*azJ7PujNdPsS%?vLT`>kRzx->h9>0hp+%PEeaa1?J(k&QIl>-@ z_4IlKa1hSJ47r>M5(lRmbMOZ;VM}C>NEkhuhhlz(kG7!*Tdk8!Ft6B3N+N5ApR-O@ zg2!$5^Z}~noXqB*euQM-w@>ddcI)ngS8hKfCRiMmgF~b&3*dGO^5omf0Qx4%Hq#d- zlx@6;O93V;h$K1 z?Lh8x-SI)e@Q@adl`tGa)J}sr~{u)X~i!Ut|zs!@CIgZC=3$8~w(7yzZp7ev!k`)o=VQb2@ zjuZ%A3yephc5$s1VB$rf?n3f*ErDSV|1mk;nE!%yhu$FT)QRC{O1XnlCPqEZa+LXs zuGMoZ7vTdE5S-gA0Ga?Yx7cW#uv7ISS5KQ&uiR~RWW6*(udo?T~G4fS0H}Sa0Y+VEC1w@rx$`tdogmBe|=;j!j0zLO+8+HNTZm}Q5 zEtHN4+#zm&>xgXcWG~Qz%94x?2`M?GBZ#K{T9rWzFH^s!GK2n@l>aW28N_ijblyWy zS2&DOPE8Y$u#@fTnkwa0w%gV4+U7eHEk@tE%69>rWAUBWb+)9U;43e+~a zt4c^3tE_79P9cqQ>9g(_P=NH@xS52E6I%Ay?*%%tY@8mFGgh2`nqRL3ess(!18F(~)-vjhgc5y|F%yDl zqSQXLGSwD}#5BV6`?g<>_uO>@d|9mY*66~~I8x`z^+$CN7E+`L(ob@O+BX6X94o~i z)qLyiVCAjo>j|p^c^!pBot(UU`kDC&ldSRo!+zV#zXk3eh?w4ATAC;~c&Co`5|&;+ z!CAx6MEyh^O%pcT=^)i0Sqkugjh80@&qwIvBPIu*I=Q)xYNA>qKO2is-9$zmyE}8C z*d7~WUUbrhLNq%l*`h(sk*nyHm3&%>TceDcr5PPbOz60wN6}#eshcFI1_#vO+KN}| zjvj~3ng_UnkhP9i_u=JyfQ(5S(1;zes153A@83!U1Kv`|)PWF5c+nXQ!BxzDk3G^VRN$p)=j>FbU+hcFL#gwZ9YjE zn0Z*L(ydadN=2U7@P6~T!}8=1t)!J0QJuk@7vxH2ApLeaz(8t7Rh`jKYAlLyATRsS`602{x=# zOTra>gO@L=Ee|w;7TO}isFosp^-%en_P{Sh9I6d$iXJ3lD(ONA(^v4N%=O1iF|(c3 zn^WXuok2&V-JJuiyLIc<`X(6xG*R8*h^+wW2g(D5yoF^45`*+pJRFqmlzwyNh4!op z#u-cx<#K_*!ecCGh4Cjpb}5e*!W)PoCp<#fu^{MF2%)+pw=XF@de~v_Q0$fz1@5Q0$q{ z4tk43fZUDx=EVizKrJNU8zoZ7wp#-<=sBv&wzpYRxjIm^AtNmOV!cj{(%y7ySuwMR zV=z3(9Z{AO9%sQ}>vjp8@cj|G?`s10B!vtOVn zffmZJlltT8P7iPz9+N~kL3NA81IMal#zf{OCZMKNw9LVU@3#j^D-r+`Zq5Z^U;62b z{c#JC_n`@#UX_Dp2d>%(yVbSKP}**izk{4gt}fV|Ybj)q-gXKbQln>C4Prce%xh=G zo~S;-)`6;4(t)!t(NjNsq#rxu)gx5z>(;dGb@(yBV|#k@1o^#!=;Kb+jbn7TNQ;Z3 zZmthk+Ic)o(}OI%ORi*F0NMm%DPWz$7Fpfdb+3(an7{(2;jj@Mt}|n9UehM;5))_$ z2Z#&&?mmv&DkHZc0wRxKAsczfm1zxuFQUk!sauqUVz<6le0@Dg%d+TXAiRMx;M0;W z-8PI|(x{C?&TDF0sDT6$rvGaCQ#XiqigGf3ACmyRbx7Sqlg#t0x7NW*2w}%d-I=eJ zylbu0EscV^Fi3B#q6|v#(CMy>;XlDC$Q(OZJWF`A-sxXLd>Q3foXgSUC0&ki)P>hZ z?Gre7U5W3FG{W1;ss_y*485SYD(l;MVFTR#_!#WHao+Ovj{;ddX`rTp_%6{(nGtD0 z4qbrN&YF{61>)611K^4>LDZ>OPR;`51=>Ee;F(Xtz?8mukFBO@4rtJqS&taQc?wrJ z7|71X?#+#pGHuPFx}r+av=knu)R4l8w&aQ~p?V&TMcguAIVndZuSL7o3kDm;Y#n=K zi4{ZK5A1y5^WjS9T|WDpd&iTLTid`e(-)=_6l;V!b+Wa3NZE96b$8l+|MAhrbI5W# zeZS3I{S*Pid%~8wQz!sAi;gpnU6k?c>aeK>_5d$*urSZDUvC>#1;+@3xQ^THjK%Jt zdBEw!c+YajT^n`Tor2k_f%F^NahQ74wpsV&Nm2!7{z?&d2d0U;9jf58dUjIq2#em?u+}vVlHgV#t%evjXsD65 z^X#(^=jZnx-F?WHA!>1#mSv-~IX(Z!3*aX6d==f1z8~4Niac4in^>`o{dhn`o(N;x zJ@B~h5b+`1hMq%1w@ienJ|8#a7Q+xA5Ly&lPGyku+Lce-JKTU0dX)Rk1t9yoCICS< zlsPE*Z077^6WBdOV9O&m33KOY*&IXyOf$y!hfI~^3i=4(Gmv}RLGmj=57Mn79VCWR zz{V}^a!?BdHX|aO8&a}N%k2(k7^)J^+X4|Q0Xkjll3Z8Iq$@mj0ic)XmIDbpLf}_j zZEOTqZb^$VyCATF=pk`I8ZwXv&r75_kiVa^Y^b?oNwoKm4=12KWaG*{D(0oKgS-RD z46nDhO^qd}hEzUK(X7`2(nsLCx1pKxJ)g*_S<-}`w$RD3IL9I?be2L*XdFy$k=S;R7GJ!+=BBFkgNrKpi-GoZn*NB=&3_j2g|wN z4iqbNXcPrYgyf(CICMxo36z+6RvtiC51jXG>x4e;*XN&QM8L`H<$L!Z;sSauhtP^C zv^d+s7Q{tbzrc%=CP)y+Vy~V*y#1N^;rx|*59hZ|KQ({!Djo$TaR8k@EP&z=vFKt1 z8+LF2m0MUgt;ZWk`Qbdl(_6>zk}3CD3DcuZg+hZ33r*$KO+vn5RmLt0obaYS%q?8s z@~i?#y2649rEeS%KeqB_MCL9H8aydRZJu| z>YK&|3M$6*U=-cOyfW6wRy#7d$Yn*R+o-g5Su^mz5v+*_=~rdyfiecFw_8VW<8+H- zz_5tfEr7b$m{oIRc23p3nlb5`v_1;^Zskp%N|g+ktcOJIK+39gDc&8L$!l z!U2IarCnH7{)W;rTIof9B-dsx674IDoXg~cm{@8v2x=^65DpTyw=+GwEf>wgfpiWG z#VGiJ8C%pCqGe2yM3tbk2K55AgqsG>NG<}yMFWXTVJAC=F9+-KowR#h9Wtefu>1CJ zZs^9M>(HpXrD+*7A}0p@$CUcU0V!Gau39O3A1eSiL} ze(lJWF#WWq%eC_M8-9@{lO5CDVGdO|GzomHpW|h!ao(gsQ&sEqH%$0VqfPHhvo!*_ z;Y3zP5!AotP`$B8Xh=n5lSOWxr&yNdjZK|s|68B2$XtlE5NAP7sv}MdY*dKl*l1Q{ zl>_uP#+@r8XTQlGU@{3X4L1zOPY8ju6zyVG{!K`JOrf_qJ#hsX zN`QR?`C_Oj3FX0{3?LG$_W@Z-(@GlXUfz)=2Cr|Pri785B{YBIfN>Ym@#C;Dja)T+ z9HpBI7^W91!#i>eqK^YLgD&2QrCQV*Qu0gOma(9a+h@Dlf0E&6<`%3SK;dq7i#{ch z9X2GMEo-mN*p@I~R?nZb)WNI~?$aApLEP`AMD*2njbc7PGX``8e`17BESLim#9!=q z3+@kwyTCK~x%xYVkxoq#qQ zSlm#nI?P;}xB$^mqMQwA^pWV#(QEWS2&A@a#2{X39|RMt%bzBwTSiClQP5}|fPP+i zu3HUU?Y9jR1OIO|<8bgO`0zHeFd-tbPQ*)?UYPmJK%7C2EsdG|jl*?(gn)V5`yG*O z5(#r-SbKDNIln)f-+gfJ{>kK(i!0}^Trh_O+xFFuea!ab)%GVu+i@SfE9}mj$c68f@=FW7p z4wpSk6GakgU3!2aOV4u_HHx0cq6XArraq~=azjWBq~Qu?oXsB|+`oPA{_TgK-MoMA z(W|%bz63lfIBGeI&;$MZMM13!i6@miB#YtQei|&+d)Ku z(e*H5XZ5=^&jKd-2<|c`4?Ja(i5#lm7iX^O0Y}Kj9`ZX8?{b47*A?C3MplHVmVMG7 zdP?Az;U5BSTGToF;W|{e_~R{`q;0&s23W{5nZ_Q{0%gW?kQf!Q#P@MSC@NKp)y9?m znp{(`eB9vl{6yZ`Efu79zhpRe;2U{ZaE6p3CqM9czfBW7l-Bq06gn?<@mHAJ=rRF7 zZG>(V9nK;Ne1=6!P2$7Hz`=q}8{wJ0UJKy#z?zMv^v!P~{W7sjrMAB|eF3M&inF-1 z6fbye4ru&gyq->(6?IAGGFKOfQ805r=Ezn!TbCS_`Lh)Ru#J5~LP*Csb2|$+xZ#ZOm8)1r~p z?Yju>fy*J)RmZRH+`c>4iz%Zz)HNGfb}(J)U^aO^b*pg=9mq`0Gd#o2frA>?7>fuK zBs~C4s{^4yTAkhsE4TGKs1w93D&J@0Wcb3QdpN4mtv%?;>Ci_$5tU5c?hxJCNe_7o ztq!>>ySZ8=Rrmq^l*YRWfXrmUTM`juM`Q-;4sHzt;*r7GVmMk=*xPtgB0xjw%>vf1 z(aWL+$+2|E>I{QlJUxDPGA&PSl>cCuRO~RgW&mwaXJ2g3JXj#uj@eH_ZNXWP+1 zkoRCbc0g+}2v^K{Jv3K>j+pY?nxmmEva-5}b|~3qWc4cu1+sKxWW#-4sFurAbs`@ zn?{{CWtLhG$Va?Oql_}kb&V2@O-Lfp<>M*Myn$yLHpjVxeyich1sK84(&+2;`TX<- z=GK>j3u@oWqMaFwGHB$0GEFMXn08K=dAK%#!!L*-O!B6yFZ|~nD7+Q)N;|W)jqPY~ zrHMdO8PcVCLHl^A&7aG!L+R&(q#OL4W+;1rqD;HU(qcl_mFMtTS*QGao@*ny4hgfR z!9t<4$7#<1)SJhnSGtYjl=_h@`}M}GEpLd~q>Zq8IF%(J%%d_PcHBFzEY#p2n?+kG zP8rbyTj;~#HxXjihC~6HQPW8~w?kyd5BDtZy)x-LF7?(N0ecH#H<0drFGrSqYQ~&l z|2iM%Zs{4U2J$1x9RX4WrsU|>D%8g&7I@()Vcw*O*r$p);^NWPbq zU`{x!WIAFLK~hx1#SKR&F0XlJAzr*MCcFxbJ8B$gwe=w>-sSqp|BFpExJaQ4v!}rpOi;DcG`;E;@gh{ z>iYt}>XGM&0ft8$irE}OGm^?D!}9zr;%c8o*dzZR1WiaNpatcQF=A_w+I9f}r#cs< zZ{)>k!o}+P^T#t}3;}Qf22ujs&Erc%;y%Vml@%hJAI3a+*ezvo2fics61IY+8C*aq zHAo7<*qCgAN#{aTUao5As8_uJod&djdr-+S+T{d+c^T6Q{6zc4=B>Lf)h+U+`4FE$ zEGU?gM(2?d5|TiuTzW|EX0_8P6LY_Fs~@8LAFVngUO`jo>{$+CF6aoQFr8KM;s(9K z|A^MxA0Y9y5hsZF@Z@GohYb5q90KX-iDOVN?1^IrFrz=|b-LG|IHY>=5Ga41^g|E` zpERU9eDavy8+aS)qMrC$lu(~E2$THeL73$y59;nd`Ny6-r2ph0<0lX44xc=xS3P;m z@D02Uw(^r7glT^AAWZX<2X!}}Jk3uY(#H@J!h(Js*y!%w4sRQxPja$@EZj0x6xy>SJc1yQT?y{Y()r7$_l@nw0%!tTlejJO!B^7}>wX>nj;D`5b;7{I=ln18S#ljaPaV!I3=! zPE;v-1}_A4p%Od?-exf@Jnb~_sq#!NbOz?D%sYLnWnw@Q5ljThKv6;vM0y**rHeHRp=7;5G-Q>sXga6%-y`WkQ81 zFcnE-1vX^+xsTJd^Q=4*d5t(*C>P+e=#o;X`4$YqWWYSNiZgJQZ3Sj|yVg#jx_|XB z6g%<@Efsb_?xSxLMdZO4%;UnTA@%Cp?E`tN7GZL+h1W*c8rDTB_bu2y} zUAPW`q8^~!l)(rEVJ3F2vB^y}Nem?=-=cPbBfG9?SvE`yud`3b#er%y>vcJW#i@s? zGx6;~#fLfFS29G*@xh%TaLE zT6uC14s|z(e3z+L7hw8u#gfEf72&jb(hM$V0gN-}Sb$q+C3&={__%dBoAKcGx6DzF=p+>4 zASHoH7`afOZ$w2iw7@Pozo9&$g<{Mzi{dU*Sh-%B#5YrhW@<}>;3ftMn*?>W`^ z2n=cVg}Z|>?aGN=_KQc_pU7VtX}Mn9okB^3aD!WrzwiK5ws6pkyBR1;3mx1bwhpCx zvRu)rQ?FY?|BtPoYeYmtw1F~|9gn4zdlO>|jEYbs_pd`)Q4QxS1Bvjzh(*nJXaiWk zV#bsTra;VB?nZ<7?4FsH#L%Tn>c@EIz@m^pf%%IOW5E>Wf71w-#w5?9MsTRM6`xez z-Iva?6lC!ZWHroIZA@=&st(d@U>QSRJI;a&v+eg;V!Ldb6J;EO3C;j<{?V^^jMeQ! z2ue3$-Vn0kT8EJ8z=7V}HwIBGmXYTIFlXKV^B8WL@ zWi91T+ylQ!-CjV!kYsL56su#|Pp9%P$w&~`x@beR6 zG~K*PCkb9g1FBmvo1DCIfm{?HJ5zYLdq}o9Bi2Y4j!t0&Vd1FV0@T$&Y zcvWZ3rk0KjU<@p>vt$aqPZJ!stohTzC&A?^zEfIPd9!>zMk(ANqm=fM92*ahR@&+6 z=r9(ZHxD~Y_OWQr^iU!qdn>nUQ9Pv}Ux#Xkb9bob;ttX;uH*md6vKG32-QtIDa@MG zja(c4)J&zx5HqsGTf$h8sAPlSgUt9sz+taW;0Fk^ z6!@>*15(bSLsMfkhJhg4HpdZ9<&f~eq%yNYyUu5jCWnaNVl(6bJtOU+!=o}yK*wUe zqNisJ2Xw&)}&CW!MW~NII{NE-x=beL7e* z_nFCv6s)XJ=MWquMBAU-nV&v*ha zesX%aZ)hs^AI~<+B*l!TBQ#M>1Ti94$~N{f-X6wQ<6eTEs~$KfN}PaNWc691%h^fh zMI}a^w1NtJ(<(wL<{$Q!d>7(aron(78##%}fRH*&KgL`Gp@4>qz!_0nfMGo?AUsot zWaAfLr2J7K7c1i!&ya)sT>>X0Wih;;jTL&sqPg8x3g_Gr8&gzwra#5jDwB=nU6Y+p zVlx^Bfe$A!NJRuv8UEnTa*espUKTfj0gGKaFeV80fcso;o--s1z_jK$i|aX|ohoQc zlwjS)1H4_$5V*9@@chE(ql9U=c0dRnEig?1@x|cbL5?+dU9j*!>JwAopIwEJKLnh- z2sGi^8((7(73+^LK-LE=Kn&(`1jRRqAb*3bwjwxk%sq2n&s_A<;H=vYS_u6S_UG#1 zU-CF6jnks}ma?Ej_53^bddq&`|0BP*+Albf#s@ZgzU9Ngx{1%SCap**u(_|0HU4URcM=?2TAbKsynYcC%ByGS%|&xxkMb_nZ}27vxQ z(3{K*Z&UvgxCId5J#5F?+|;3dJZ`XmnLM%xY^_h%jyHkrkUf!;ZJvO1W~P4QMalRmPP;&m<2nKAWD0wmeP zvqZ&fZ9c6U)$x_o@d2GgMQ{zSso-V~sng-%Vi+i7+9_Z@bJ962o4G}xf3)-b;uJLjM;_LBz7BA-9BO=FBt?eyZDv`B(1F#S!*K8F2!MC|00Oyuhe4H-SCa_=&>}Mci>-&4Nr4-J9HVODzx)Czf6Ke0pRPkWpI?CQu z@&O{#8BEXMiJ%E@6L$PC^*PrcKpIRt3iE6nudh!ODjF`dS!^{dAFQ_S#@cjsePu!l zN@T+$4ZXT~!e;VQ3DXZnRi`{dpOi(=m z4CU%t(^)Q+mHVk}q{bofm!;s=68g=6K(=L!e-xddLMJ=yjy?VnYWYKRx*#xr0 zz5hI1bWWb%DeU-pzu#>&dzX^NCU8>OEBjE~uSsQJ_S-%TTZ`M&Yhy?Y76NP=;Ce-& z#4KtM=H;AHG=Oy*S7AyY5D69xap4(s^0ENbE!oMzHHKqNn0#&(1?Qn{^PoB%3#j~v z=@`qlx*=xH{)~IXsz+x@tO~`;u-`e_9}ZG!7&Ge`MYEC!(4Q=pL~s)Km=SsbE;AWc z28M>AG76NF)YCr-G`n84Y=Wg-M3fzdKjD`vK~`pC5PMc zf{|OOY83Rz2Ee!s3sf~MpleMq(b=Sz*Cohke;t&(r;ldGvx8)N)1{t=*^hy_m3VdX z>HLQemR1$y8az(9^$UPLk->xTror)BqIquu8wQn3*X^~h2xanAA^9Jcd;JmF56d6{ zUGzScM#@6az1Ht^tCewo*zZ;Sad*_6Ki3~@zy?*YQ5I7Y1A5#=p>c>lLFd`Hvt)>I zyq>`z#am)x11)i@K~U1tO!<_uG7lUds(0Y|N&55Qg8F>Otm;Ys!h{W(jwiQ3nIA+J zDrsrDEfyo#p17kS9fDs#q1SLQ0*x+Udb@A{K%{T2Q%jHD_7xQg)Y=JIWhO#?jS+*{ zjozZWW&-Kyk{R5+FT9IFCj0kT8TvB>?;w{-1r8?VXT)~Zywi#ID5s2PhQnqad z;)B8CHk^^7@S}ibvEfc;4^JOHdcaH@P>D)^TK2BbFSGT4IRk!9h(!oBsd>cd{NTOH zT%cGK2olnKIw}h8GqQQHlvsf48v`#)<{cbz$ok|ck)nZ+Q+AL&dYPvfIl*;`Ab92B zG#S#^sDT_^A`_x#C@5Js!?jRU_Y7VqIq$-xg4%%a`RwU#qbHa zE?O{G9mMd7DbkP#iUr|XPqTB8eQh0t(U424YEfd!Zdx)Tq1VI777$ppPv}w~4RpPM zx=zcG;vx|56OK22HTpd*voi-BbAHZE>CC&`HPH>tF*q_At{25eM~@3bOce!w8_K9j zm4`&>l(T_!7GT2>$|QN9$KWLXfvaK{7)a5?L$!1P{WDu1 z+yHa7wg%Ghw398G&%gRH;r);Ev+et4hHC~<8c_hm3|X!{d2+bY4Db*I#EF=0VALC1 zr*|)yxWYlImxXK>1+eAX9{ERaDQ^x?wb|7bFiw96)*)+u=Jd`-EruL_wLgY6+=0OP z!WQ?gJDh6VGgm)!1&@Fy;)js`ju!bC6D}ze)>qzzhdjIN&Z|zY1wG|;6q&{L1?d3eg#9~w>t$}5r0riVW~C-HhN zic;)ZpWcMe#P038NYgd@mOw5-)~Lk+`Zzq3nhzFS($geFfTl3RmTMHKAR+5&u2Px5 zQ>4SrBsLDxuaNwqJQ^N4jRDurFclyT7W&JKQEm**dz?xHoDVsvx40&`FJU+%G1xbd z0NU_-wkSY2OvZuSrE6r;=sH2GF#XMGA9mYNx}t3;aN3NgbZ(o`l*HA%kQIv-nrEh2kV54SJEHL}wg&GzV!)sSgTC9viAz z1dzr;QG2wBM4QW~FBi;{YZgPK4uK0IL~mxiy-D?^c1WfVse$!-e4dmnP!+zA{iO-Z zkQNF z2&JN5n98Mrhxdgkp6Mn{*A-*q_FIKl%An?zGAL%SC;=uE1D@p|RSfn;%prQ8I#by{ zIRaaVTzUJln_!V5E2?na0QJ3X6HFt0qvws4he;tvweri*CK4qF(K57jrzK{rh`BNv z3l(W@tu7(@8fQ|#^)uI+ZvtoTHoTVyIMie9J*HMGV0xyXJsRMR_)GMNApg_C@?LZV*!KIl*nHMQwdn~E#53TOTO%?&H@?(UUB8Vvx~o2c~Q#?ksMmpJBeC!R93V;racm!e zbATf_vWJ@1Y9yUC(*IzKTP2z`F>l#*O|$7)aV*EWB)yasr_kq(yC}mu?ui$ZxQGAX z%OWbO7!mmREbWFC+_P`!a~{EZmtLwN9FUV>UWwhpRQ@mL{M8o3o%#P9+W z{;8Q+?DlUBERyA!#cUc{0B?Usglk&lUCUSeu2S?Ob=ydHDYfr0)nM| zbNhiUKzhc_{hcHDRUy!85C82u60P-W;fU55uR&Mb@~Huz2B;o9S>3}aqb&rnBO9yR zth8NtbMuJMy?Nspp3O7}PF|es$`!kOdh;0l26=y^3e^A6fqB3)Rj>`XnI6*E@<)gJ zJIG9kOt(AJqz4R@?Ld(j-*Qm(BT4dW-+rdtiQCR8s=gRG-!f&BZEjEk`N)7cEQspX zr{@xlOb=X}7Gt+VojMXm2;lG$92AI8#4Lkp4kQo)9in3Pq@7>rhh)Q(D>{l7Zp-fK zvrCZ&qzS9Ear+LEFm7ybU?=I?$gesgpKkBte2IdN!`s+=b!zjcod-lucfQp_`qv-s zgRYa$gD8y{@Q+ljnmw#J$?-2trp*O=2FV);&D7ZDd-TE3#)= z?i5-!6%p7x)G0YpI*RH^Jh_|DLXJ~e*e z_mpdaL4eUKlr{1azbEch8tUmyWFf!~gTGQJp~}QUP+c?qAWS>@C5*zKUhKffXB~bg z1xIS!Nqa3JbGy7Wt~s;Ox|2=bqbY}~L$A2Hp*^y?H<@OYj3N|{av?i&0!u*hbYtBG zuL|Ox45-;93mbeIi+i!yk6~E7hRW z>-Jzg?G85(!bqB7AuMDug>(6-&N0-XS}Dr#3Ian_4Rly-A8kd~Uo4~!*IStcV~!@l z1R(=IcC4A?ASf}oE%VW5s1v0OcLrLV=m@esl)MT&QWmr#Nh`tQKzNnM#LN7oa7M%e zn(n+%4YiX}y9sQn6wqvx=a^|VxW{;*?-mBiP!q)aT#Ro3>sz?0j$x`Y+aWIXV6FrG zAuN(&NLQS&H0v81daLPY=64^??mfDHK0jHzKR^AHUQekzJvMs{jM8;X1+%-XBi|&{ ze}fiko`P+IEbYW`ysR!=>P==9g$@&tOZzWR~LtraH>F5-L;V6k8?#Uv^#ajqbJu1 zO|C)pU?F8sg_L|4U4LByH9m5h!7HhJ`vtIW%8_$)cXmB|3DfZU2JSp|d&^OPXK%K; z4K>9QzmY{?UI4&ik|?6mFoW2otI)Ur^T&;$QkjML6t;{YdTm2TP5G8 zuSvoO7NY59v&5=yok{Q%c2t(sfdE{Zu4a~l>k%W;L&8qHty@Vn(-wVn=+(bdvhsMZ zlt0l)F6`HZd@HqKw(|Awm9TC|o@zYXFC7r4Ri{h(TVJlZa+`q#5(L@4)~V4V7m*X4 zngXePh31=*=D?1n@0V;Rr(y7rAREqj=s99E^#O4bM8Hc8SY1J5I;aUVf#VN`}htx%y^oF z=|Q{>Pj@y_vWw+h5>3FnpWHZ}9(z(WN;XYUq65Y;2AvjFV>CQjP4dEaoV{`L09(JJ zmbi9M)TVQ$pk!GsD}v%u-$Eoxlx&5g9bGyLQNpx1WYHKHjZ8UmO{9E>8Qr*rG_S5r zdE5{&J}E$vC9e3gRtwRU1dGL->lhb`g2!?c$gpf){pMYJaAcZ`+`S~5*5!kwpMtXC z*74+ebOZ~!PCF0M`)B9D>;UAgNjY#Ygu3n)XFB6D3y@xwn-WP;6!&rimPti+N-Rme z-RoPQlm?Y*-++}%nrZ>A0Mg~3Bz;OKx(gV z$oD>7YFjvVQ(hQs11JaeT$QyH-3`W#=y~V_vj)`HS$+LDd?xF zgRC%0@=-vUmOXeX(OaR|$4w*jLJ7+f33q}EhMTx(=#OcwxWh8Pu8@eR+mYXeJ9TM~ zc+F05Fd~qo&!#2czzOZO)88jO$Kper3FITB`J;Sso5l>Rw+5qPL3l`UvBbtTa2pqd zG&joBo}2;V(pd8P{YihfKwDh345Z=3>2VE5Mb~oM#s^biOi23Pa2|+`r1C23^LdvZ zN+Ib09uL!#ivEL9Xquo?I_aI+G4;yc_*BVVvkd>JDx3R?JVBxOLk=78DhM4oSj||6 z$isLFlZY#F{d|Pke9>MG-E8M%3aqwzWZMp)HWFepHhK+;vZib)7Fdfp&8z>|hRbk$ zBRrZRpq)VoYR2*-D>`OFyGd-SQu~$3OpVJT;^5W*<}lX{kf65HZsLjTXRsw!Ms4GzZWn^EodjijaV0o3L{vmGnVI`tsKz)oMWt0nCYfm+ z(G^CSFhtWP3{F-QnQQ%YD0E|uu?qM?U}(`pL@w<(f04TaSjf$1zNv9L}h|I(+$D-$X; zf=5NvJU7J3t&bm=Gi7yI&<2H9^}=5I2^22I%M(wOy;#s7U5J)o(1NE@?s*6zBja#J z|2&xnZzm|FcBKDB?$KA_B8B`S;0FUH>`dpu2xg;EG=TJV1txdH4)*e9hRI2Sw16d- z(H%XO%>X#^89Lx8pReyy8nw77L!s!>R3c}1t!zVeXt%zQqBVOJMMl$ASB7FNswKJ} z={o0MqqUP(w z9%JvsPyyIYeW#Lx=Rdbj;hi0>WmH}_u>3coR|pJVatnbGt=8X4^?TchY>|^{Fy2&h zL5f$}Pdq`~Cg$Ej)|x$%ex+f;FQ8KgO`WExbaR?2-V#r#db|!g>d7B&xAW`6!)@(^ zP?WbkoZKS;qL0;dx%$0vhew!(oAS%?an9(V&-ZALqBv=Hu5Rl! z`>r|85Br!VJlt;XHu}Rhif{9Tph{JZCdyrDj4(hygPe6yLC}zSP${{v2l>;Qji4h5 z1i&^Y(<^K-l@(K}0Wa>tn;O3UsDL=Tg#>F|c)vCtjH+N6mJHF{g5wDpT8o6a(T19! z8jmun*AJFzLKk2qqZ#bZIeHpt@%$Wy?3C`3RT3>yYfDmDf@K!m*gXK+g~R+RDm31E z$@~OPCim`M-hN42C11 za>3c$t&FR}{35-~>I8+KC?asO*G2Z6=@K07o%w*8b4;@rdnHF6DY0|X$gK}mKgdU+ z+@vM|n^+Y^ofC>4|2e-VwLDgiEC{6 zKb9PxBq$y!CXbqI$r(te&aTag!!vndF0@^`9i|HE!bC44Fn5d&kcT9obV9I3CRQ)Y zbE^d=u5U^VO|?A-bXP2;C)F34Pg1f0|FR9@@eIjY-<5?~@@DXGPC$Kd+)umouhU!j zYXeirXt}{4RMr!VEP+w~bTaU%cyXb>%q~1!q%Z|kKM$rx&TU!F>2~6{7GPo_lzd{E z{;s`J(D+0Tb;A98mM}edjXDpkBT%sO zVnt7)*SioLIG0z5r1?5HU7+FzaOJgr;!u1&tv}`|7cSsjDL*+Wk3D>nab1E7A9F;p5i#Z|(V` zu<7MoFEH|Yty9U4U{@c`%kD?*su^0PN-H5b7#yOJ8_b@7zfTU2L4w!ws94SqmpLl# zR2nziOf{gUnG-mig)iiA>Z!H?FEeMQ8w<|P{+p}WFr<}IVXo#tO2Ei*KwMhEPBu( zx*rD(&c$XTt_527J|yL+LHJbhMiBXrPu zt*bS#qfS0AtsovW$XxHkcKz$dg79(RXC7DaXE7Ee-t@Rw5GdEJ+_CA2Bvxb-x(JN5 zpa%`Ic>~MhUc(I>gmGO~Sx&ZNI$Gv7KT6EB>gM`I! zgpnYK**8kX6c1j4>EXh)ZUpXHL_??`SAzUixb3ZG;NrV1z*07jnB6Et88LXkfcgOw z=qK3p+lM;`?ebDvk@HBYYHfRco0#3{ck0lnI>UnkuZvw82`vg1jFRBm)_&l)=;?%T zZ7Im%L_~hs*ivTY*`cI4i!2+Y7x8S^bfd_!kz*^VbjO$oQR%SYoet@}akjC(3VuOs zW8RUz$@OMsA@iQ#KyC2mx5~hVKEnk1_VzL@Qj)_~RQ3uI zL?*G2o`KjJDQbD6{i*kfJFvkN9Ms*?cXJQg;=^T7lO=`-bcK#XrsI#!wE<1lpz)I! zB4vR`u5adPGUmcL^utGY5AMA-zrTL(wYy^A1%)!R0WOb21fL=EZB}BE7y3lLwkN5C z^&_A05>mWf$Pik$GxN;@Og9)=(>lp38Ot=o`2mqcdtXu6wvxUS`1}(#B zqz29nlJBCzE8)Y`qqCWq@7aLP6zt5VWdW>t(P0BUejXZ=Bgjm4# z@zMURRm526_M$7}O}U*jZZB;~&~R;psL!S zBZglM$(czLpZhp8-i>u$qyB95=;&~!?LpN=VIAxa$4DO99j>_OfISJvK;T<>=z=Zf z=i0CPk>=uoOcWrDb|IAVI%<{3{gPNnE|}NF%A|tE)H!e+T@oUdDS&Z*BXt(sHm@Uf zsa8JY6B0y&b5|)4rpy%8S;NQVU>v<1OuTc8Y`Ame;cxQdnWpbxADItueBqIGv_;Oi z&;v$j86>HEuSk3(4btq<8Kd~M4B)ItY2^rx-Jkuf%_&a8eAIz%UleA~`sB9`Y@Zm! z(mTWuK_tK+$V@d~J3L%Qunq>&9M%|F%jc6Zwmi9ZY&<0t;)$WMS45TXjWQz?;gR~n z88j7m=7qjgD%y|>T1Zi8(SvrrjQ;`_78B@h6Ht%oQf>sHR9w-6>|FT`B9rD&3tz5B zR_~0NcA3^Q<=xel-Y&8~wG70j>vu2MWrN}-o@f&v&+_^;h?NtLf-iEb@e%VrWx3AQ4(F8FjTHEPth7y{_cAMv! z*V2l-TB+S28clqh>o$CQP=bW7HpuEeHh)uRoPFk8ZeQUP7s*$gt@k|)@(8|4JT)F| zS9*eBI=5iLV*_pwqu_1FeHM-gjRK@aIETX;F|sZ_EfGo7iV$ARUF;Jr2pQI5L9Sri z!)>NsN(WbgEGe4DyeE1gs8{gcx$yR$>C;)xzQAtJ=i~ld;kwjWhbTm}-!IxICo? zJFw^R7Y^2j`lSMZ&X&@XD!;T**EWz>z0Y=oyO7s~1nrav)3+BV3bFLHYki{jLU1F( z=Tu(fb~tJ$|DmEkF|+Ww5luxNRX@s(WTL>5jfl&Kn^swfBi!TYPKYUheChadT5&Pt zObidpLdK$dk8f$t?}+Ak_@x0Yty)ULq6Z^c;nt1#@H68#QiTFFMar*jAS5eGsh!<&&xDih2ivv_^TWeeirQ1KD)Ke!*L}^X0F{F$S1OPcnL&eDp+0Bs zrs`Ah*O;~3&ov!N2t}@#^kX;zs;7S$`TX5>_O~{dHoPaebJPD|kGi*vNo^lO{zs0vvHlg2)Dp|QW zaVN>=II#$eCYR;`I;mve&B1L&C^x&#_b=A?M&-GzYL*`dX|e*MU57q698yDnIYdK2 zFZ2BWcA1<$EU3lI6esORcOTq-iG@v>8e3?<#3`8f6TV@F$nr-cw(;bVg}*b@v+mSl zn^eqp&CNxSF#X`N5N1e~2BivjbtCbB?xI?WA54V^|2f)EaDBFq?+%jn#GK)yzD#B! z8UpZ##2pGQd8gKe>}QZ@l%*T9S$=%e2)%;MN+|WBRVVK9$}f0G+!#vrnf8TU>gP3C zs~a#E5#b=iW4XQI8Egp7f&*|yLS=<$Fr6YYjr~qC#rzpxoTqyM$xLiv#{3L&Aypx$ zemF%v5Hs6OUSn6DNiJmVXRhkNY8a)>s~_sTuGMlb{NNBuTsX?>xBS8;91BSnLWQp} zkKoX$RVwATlFipi&0OF$X`vczJ#MxJ)JkD)2T#aQ+L@5SFx?|w?+C?v+T3IQw_ZKa zB;nYFeNujvxaWA%-03C=g=!14Te_k=v?pbE$Qzs z=^rfVA1>)1L1QcVDzg5@G_3>Ki(fVsXdP-+hka~IkU2yr!2;*!E}nUr9EuT|E^R4y zTy{fqxY9BuO*j7PLe@Ol36FN}xoL#2gt*2%*V$oKp(vv1K&IGsq2S6wu0~{VnKyQP;wd}Qgo?kDr&EkTo^8%4M*eR@OS+{NOko0!4)p<b8_xr45v8oDNy|)^#&KS_??BPTKFt5Fg{7f^77dQxZxMlTX@(Cp9C@r z2aoy}Uj+eEUy#bM@in)UFDaUZct>Di_R|R$xb)~o(2R5|i=UZoZEuj+AFqXi9@0d3 z%9h}@iWh;P2fkv8+%xHixE?0|&F-9jX1;oHaes1p=g!&b`KKfwc`B`}I~;lW8+pi| z;xBOSv?WaY=o(5)dBSU$eeeE|?GawlFTyIVfH6PzDxl5xe0zAl--Oj8H?L&yjRkj5 z@d0L|V7?&3omJy8pzsu4J(zNp$>ECrD>rrj3qR!})N#`Bqq_v$y(-kP1R8jzCE(s; zZw?I9lA8yQy*Y4GOKv7pCBY+@LqL18@C&Iv8aySW;FVBiu3XMbK=nk=CNy%~4#5?* zZY=X%x|4Rv3>I-W$^H>t2@XuSWZm=bpuZT`qxe$%ykl^YGnuWknm`@ z!l4f_flgV$qs-j=$S~m*n8n(T5AANQDv3cfBwB9QD?s{v;)WAXbUAKq&8EkV3YWHV+Tit9!e zkSkNbfXqq2D9Y|*!*B0x?*bQ3VQ55bCJ>V1_u!a( zh{)%yV1o=PUl#z*M&-gFHZtcZ{9*Z)7g}NS}Db^IIr>q57jFOMEd_{JT zp&hvnU9us7Mc--Wx#J%FNZT1ViQK^`4JS7HL6gK&w~!1e;r`l=D53Vb+Z<4n*LPMA zrFg4x)$0$3z44$LkB9S*^u`-l6^ub>8l%0pfh_mv4#i+^GB1hqMP?men%u<#f&18d zH^*%vI$Y4}g+&yNs8Awa)J-qI%zW&1toA_t3wJ;shEU`RKrN46%Qs?j{5G0X!ZbW! zVOM&;vu4{}y(H|Gcj!cej)d|aWb`S9hr|V-Bf1t5@wafqpZZNj;#?uO zC689xmnuR0WaD2@Cv#;;Ka7q;8qmegbq}d^hXy|xaq!Odh}Ii!`6zemb05dMsmNEu z2;?&2v-tM-JvbyJcL$^EJiPK%L{cr7(@Z?7>T&BjsVelR$5EKDNT~$Slv{jwU4N8) zlsLnhM@SisoO0JmAfz>0@i2rE zeao_jUBQbCQ{mTYrH~uYRX7NXIm39n+qW~Ug`WX(HM&{&G|~|zxv8XbU|duwF@1n9 zE4k;j4a_hh$;mhZQn$Ut_qCvgH%a!f>P_atBu5!_`0?2P51`$hV9M0T_mXo zg$%`lIlr6phuf2b`|}6qr>t9R8%O|#2h)$y;zRJLoid><-aP+^CwCFuU}jfFiln+g*yWIF z0V12gYP!$>*NTxQ(uJ*OrvBn3auHKFv5+whOY%x;JmU)KluXAu>&V)ED74 zW%vL_{#D6#UCH_-H)p0Eo=rD(9F#{}lgUryXGno#3ei-ly8y()|xEiZ3GP`-Xo za8&>}O;t%i8djwo5P!ylU2vr8GJb++aL}64f6{}?oJ6{O!3@^sjVGJ^QQMFr9z%EB zTftk_!pm{~x%KEijB0dEPJ2s6=%I8iqrj8Zq0V+*GEtDwW`MYF(VzSQD$1~)f3P4iBCO>(WDhv1xSa6Vc!U}}5lpr6HbgOYP7fEJ){D4o;=^Zvdnc{;0 z%2&pm??Us=KN%)=*ly|!?npqUo2%6FlxGlcGTY+oJ5-;pwF?%lNF}=)kFecwG= zxwaa_k4D-j?f?s$fE^#q3V&$9P#QYGXs4UgCQD{aLHQr!R{XKiN7=H%euI<5IJhc~ zaORkN1ssm5>m7dIrl7!e8fS>2LNFX^N8@6;JARPL2e%PkqLPdL$^rDgjhruf)#z8I8ZDBD+lD!TkfVT%Ipe{LVaxuGx%W~dyhVIdw-X89;2o?V zZ&5Ijkv()7S^LyEO3~kd^F#H4WKr=u?DaD+egb?U$~M5io^fJ(vxcxAhUy~d$4-JO zSsY6|4N=xs)`vKi?|Xt|L${@(#X*8i(j+ zk=<3gbjxuA2~NmX>vUV~$-KM%&5?Oq;&h_%Nf5xcI>KQz=eHgeDN;M>P+1ZTR+FL+ zCKZOtieVjkjvGg@HZGr16ew(?0_m$3mOKW=FA>r#I1soLHJFeJ_>hGGK$-H`utnn0 zJV2iV-5F(K2J2*oO8UHp;yg^h%!T4MrM5E`5CK{fAK)Qd1;CcfgIw{so5n&FGf~Ue zDf)^tQIGZaYnxgyWfsH}LU^bXpecL(AQacguZVZKL?prPGQiKcqRJ#k)7^vFbZ-X4 z4H=`t3?Mxjig|4#pU>;vjSX0|H>Sqg+#vgVqZ;{F_-gWv;m776eX_ce`B*=uU|`cU zAot3W5KCYL$hrm8u@*nTT|#T}D7fE5$czLpjIi%###ffJuS!9UQ@%g@=3Xle) zx}wsb0|J@Vd9Zfg3p}{Sq%*4y%)KM!97#1qLOywHnkEly63x(>L1xzBg^pU`IwRw;pV5kb2MsBUc4sZT1o&ci+rMC>KxlZk8 zwB`wD?*}XgRP-VQ#PFAvghiicNSF*&?M)H+yaSt^n(mD$l2Sr#KG{dHy9rCg))zAK zJ4xcRQvun=e0q#5Xz@WHz`mPb#00oXt9WM0HW>FnJJ-mr* z-JGJuZhud5i<%S4;*{jt_Wtb8l>`C2cxq$F#j;Z?2TGk<=wiu`wct#G713r)Z&kv55>%e%WHx_zFu#BM-i1$r_rfs~ zk>303x$P*ghpTPu2Ou*qFx#bnedh!qpQlNgF8so5#{*ml&TxZxCwoVwRdwu>{C12UOclRay z4KCaPCrEdy^ej}#<8Pl#F#vM#-9Ca;EJu{XW8|TsD&ZOS?6`cg&c-!^q3vJY4$J8?oHgTW?IE>eR1D^&}Bf7aM4z`r;8m~&Ns8l66=sItNz8^;4y-T)^j3GOQM`xt$ABfLev%ZouFg)mP=(ZeZZHcNZ~AKf6^Hi2CXL!bi$ z9{g8ZFpH|@&%i#pToDn|91zbu_i?(EH0E3aR$$T^G3yQK<|8cP>=<4yydAHEyTO&> zUGXfX)E}~rOLu5>T)->fUq9MV%w}G-g$Dh?@ITLsJYWuwDvvF4hnOlj%}2=(((9D6MzueTnBh<2O+6+K$W~cs&>c1ati}r(DQnMO6{XmNyJeZQ1ZD$Ok^~5)$;)Fxo7YJ!FxlfP=@863k#1&_g zOp6I4AyDxaN*2*J%rq?Dn$^+DLC<}B`|g8>r+3fia8Ww!KI;q>q=omtS(Ub%@y7n4golOl|^@CmVvL14y3%tMNAOJ=)%Q5eU!> z$9adi_L$Qy%PUHJg6SuOA5<<(3UxLLlQ~kQNqi|vT?G26k9b8w z0+}u%Z@t>~0p5dDGzey%2!x1*2@GKI-#v(0>!vEsuC~r)EEuQ45aePnmo(DFie=r1;ej z@DZ@#I&MThKx3aQN&!0JmGmUk5vUm%kvfXp67aRPG#&YK(% z*x-+~{hcL(hQ$0}TXe#TSk?s8@0&)NhXMq}_0xVO`WPl#1wN$F;pvIxK7?xF^qoaz z`<0Lc^!;Eq_t#CDk5_tfQob`r@n}}t>hvIW z=ocj{fRW#sQLl?2jgXIHLab#J2LIip0?7#uz7-eZZse|jkiOb`lGlkKy(3j7b;smk z|9V*hufw!NiyUk26tD=@<9R@V=W(X_A9Ue6@GQ<36g<08!Lw`j1rG*eHnez zJ-hzei1XYn-@CgSL(lj~PwDT6JA0tq>jH`HLP*1s1!op&YqgLEt59?!q%6PCO1Un# zzeI*mq)-l%WPlj}ZgND0+|ef4Vg&(UE;w|Fth;LsSmgMZSpRsH`t>rLS^Bs1l7CAN z6OC*qTA_WC8*Fl~K|)lHe{?+3O5qDv4-pq%qVfWysZXfL(xDf!Cb+bER$s&bEvuDk zr@<#ZDq$!BxE!kxOh`xNfk<`@d~t9YQo=}kAUyUgI8n2ux?&!z$hk0K6dTgZ0WxiH z71IWXSdW4-nl$Q)N^MS?(cBst=53kcjR!zTFXn>viKZ`Xl+_|In`)2y$%Wf)r{F(r z1Q<|gGB-Z?Y!=H~WwE@_V>8m%PN0*rtw73nGDQ_E-R3~T3hXii(wOW6Le{X6%^|^O`(K}jy6W8J2SK^P=cfR?1-n9CTw{E=S9jm|k z&Q|LK0f=@O;qUws3^{)1n^%3*zaQg1ncnX!@qRBYd%ypn9QSfQZuMCJPv@s+w_9&| zKmL5n=(*k27kuGcci;BZyWjj}Z+g$0zT)YxeA9d1^i^;ATVL@0HvwM%m-oH7^(TLo z!=G;PiRs_dt*=WL`0MFnwt4-*7S|;G`(W#$U6M+Vy_z`bO<~R=Yl~UEiu* zzgWBerrPy4*RD@$*Qd4X^V;>icKuTA`gZO5Q?=_?YS;H_*PpIkKd4u(i3 zZ)%k*^i=Eb6!528|4niI=GOmFT)(CD!5ks9zM%C&asAfT4;0sbqxH+h_1jv1T3ml& z>qAfFKk)X}e^^|9QR@ea>vyz%rMP})>(7hpFK#{ebpE_AXasBSr|5RLm zY3nU-&hP)S)@pJ6p4PV&*I(ZHC&l$wwEn!f{>s+MTk_|4>;EdQ z|7NTA1^NA7)4Eq&|E<=4SzLc@>)#aD?be6in&1Dv`~vvrTWZ(eR=X}13*(E)#&t1y zxGFv#*Tu)+x_CKU7cYnFzft@Bx7Dt{uy+0S+BLa>^zZ4`JJJRIdb$M$Ap7@p>x;81 z!oQ?;{jS>eyKC29TDwk^jDV+G@2SDRymtK+wd;~PKHYk64gOWNYf{hj@9Bd3;qQM< z0^+ZyYuMoF*4NhH?b`MGS|?Z{?gGBqyFtG{>(}I+-VOTvgT?iSTmMyYeWmq37S~r> zf8^KXZQk8_ru7aiIiF7+=G`sO&j$}*=~Z`F4Cm$3J14KccK>Al`nB`c2OhRQaM610 z6;w;Q);YbHubf`4oSw~xF{(|jV?8;e9rm3yO-BqzE**sJU_iS z8xJqW^L}SI8g%Tsh* zj8?iUr=6AjoyPpEXJ^B4Z>2Lh?_Zpr_6Nhk z>3D$8I;)0#yW_z_WT$v&cbr%K%hTTJW$)~~JL(LF!|Lp8Fj(oGu5?E8aX(DC-%$0g zU0^Z#qtoH|vXAF>`Qe?jepOuzs?m5bw|#K_%7fbvvU%%O*ZLQOaRuvR|Gd*Z9ak%- zE2BX*?99i5{@LJiJlCt8-@89QIe(>xcN-3`U7q)c=cni0m2tO&eQ~)mz8H=!PO;2m z{Cah6x9F!{IzPuf)$m&XaxhvM&sSDfE(XJu&e^y#A70Eadh_%1mHt_8RR5W7HM%w! zRHtXdv$K_|hgw0G=e_Plx7)8Su*&06zh}Sm%Bzn~PVc|+nGt>mpHq#_`k1Ekv+8nu z(d!Pdbq5zKqtlg(QFYdX-I>S1_qlJoVZV26z=LoxxZvv#hNmmNeh>S5cz$t?`b6i0 zaemwDuXBmUqiaZ0adt884@RRtCi!fPCFR@o&#`kmXZf+vxx6!f>Gb@woQ~?+xEgma zdguMi&hWf@249nl{-AS?8S3>0=kv>+|K0_5AHQqmTIb??rPCRn_3(4}jf<7@(>Z>K zD~vriD!$9{fZaP7Upw!N2Ho*Rw>R!}$MeqRX=l_s>vhl1PP>=G@mZ(*IKAtAty_P1 zt%qNjpN@v3;Te|vVmR;OhW=%DKJ4~-=a<9gdx?MWotUoy@L2B@C*-`>g!3+5Ikn$D9i3Icb917|OK6*rlceA4 z&4)u|j=IEZH~cmZ$wT|@?zM}vbD+!4%H{b5PS*uy9Dl5Id)UzPPWRGqONnkT>3U_e z2F!Wc>x{Z9XISAmP{jFgTn#SH&#Tb@Q_}R|x;sugA29EXs>_S&@~j$-2A4fx{Qd}d z0K0r_$e{drP!0d`-k7*;aDIL^>Ozq)9Gn5Ijn9D?FD?i3s^QC>;@G0iS1z%*IMe+O ze!YkHSm{;3#qjLxje1Qh{@~Ty_S4w>^TB)!e1ciNz-H@R;!IrtapE;j=S{OVfBm7~ zT%D~9@y+LF=NG*mei(@T;=GS@c{Und4CW0hh9B*(TsuAMU0j~e`#>nb8`xaq%W9Jq7U;hu@ z{?{3h$$&!u7{3t*5{?lT+t+Q(yQL{-b??>#z5IYEGU4`}~b;Aw)m#{Wra( zW`Os%U`*N%=LlS6i*$bol?`?f=I1nO5uHu*FCJ-)x@+PtEnkCVwm2YnV5- z__!};i^+W-TTIR~Y;gz%YO0LvR1Y+duR6FTH*GDSNNCdHcoQzQ^0I z_V#_=e%RaRyzP0r;_WBA75>EcUia%8-rn-|o4q~v_O`e8ynW>Dw|e`X-hPj_f7jc; z=k1Sp`}e*52j2ceZ~u|E|Jd7q>g_Lk`_H`n=idGcZ~vvY|H|8c?d>0V`)|Gdb8r93 z+qXPz^ZIsg-{tLBc>6Wpex0{hz5RM`2i|_v+f{Ejz1{V8=Ix8#o_IU=_EX+|+S}K> z{WfpE%iHhu_WQm4A#Z=w+aLG#C%ye?Z-3U?pZE3`z5Nw$f6d$9@bl;6W;!mw?E_U&w2X`-u{xezv}I;d;6Q- z{+SD*`-k5CiMM~|?O%HPGzb;((%ZcKVsGE$?N@vIK5swl?Q`DtyrsUE&-sM6 zQ*W<(d&ApX-hQ*U=ic7-_MW%Y7xQ`F>g{)W`#s+NU2p%Mw?E?T-}m+(c>52%{YT#Z zV{iYdx4-P|KlApVd;2fE{g>YUD{ud`w}0gAzxDRdz5Oe1-vWk@@Bemh-{tLBc>6Wp zex0{hz5RM`2i|_v+f{Ejz1{V8=Ix8#o_IU=_EX+|+S}K>{WfpE%iHhu_WQm4A#Z=w z+aLG#C%ye?Z-3U?pZE3`z5Nw$f6d$9@bFsZO`@7!$zPEqq?Vou2 zXWss$w@*Vb;CsK#+b{O^J>Gt`x9{`z!`?pUZO_}4|A)Q5ijwL8+eO_FBm~#s?gR}Q z+}+*X-8HzoySuv++$~se2^uT`5&{GQfla8VZuS^wtbgybF4j2XTs`Bhbh@kGu9}ni z)z@9j&!Q~NimcAMY|NHy&#vsv0UX9LoWvQN$0c0F4cx}vJjmlb!;8GmJABBe{EKh- zk)gl#{AX0gVge>(8fIiR=4L?_XIWNeP1a{qwq{3mXCDsY2#(_v&f)?t;~H+_4({b) zp5!@R=1tz?V?O6AzGH}Rp8t%<=#0ZeOu=uNnK_u3g;|p2S(UZfkj>eao!OK9IE14( zfzvpLi@1X8xP?D*KacX$X(n)f;r}Vump$B{ejLg%{5%Kvbi4^(S1xq>3a;li?%`pc zVsIXCO}@iN3|>dRmj7ia*FFDl`}?2%fB$bk?$gNT^Uw9u$mX+&nTnrA8lP_u&Ij_y zg;|OfS%bm3Kr^{5yRbJ0as>aU-$ybZpN5}CEuZga4(4M~mf`=?&;Nhgd}OxoV-Z(! z1Gh6c7dayT#0$L6yZnQH^8^2%_7(hj{O|7V|J(cVX|(qF@sXEBSelg>oNG0Zo3kCe z^7GvB({W{xJdzVQo%6Vq!8z7u`9~h$ah_#xeifWU{_6JM`4|6TaBdaWaVIiA&m%wG z-vn}S&K;aredqS?S%Ae^j=?!q9l0@E@$e4JjUR>_L6*)_xT%NFgU0E?}f4du6w^?B*tWX2IsSB<;={<{4B=cT(*i_n~m6# z9T=R)_LYZlG$(N;gLByB@;YwiZXRNA{(4@%%G-R%XAI6=-^(G*3BxfeV>38!O(~~m zR_10Q2Is65zmME;2vc%63{oOAvm|IH5!Z7vsq!TDxfISErU zBeOF&*DNBJW+m2S0|w`r?c}cffrB`b!8zu1c^;Q?4L375zdRrx=UHCnFAUBtf0zH_ zKMY~M7M8(zOj=?!)0l7HKu`25@IG=1KcVrLt<4^|Yl9T0GT*wt%&)__A zk9?S?_%p9DIEQ>BKj&-y%TQkjo;Tqcjd7TmshEMmxnmx=FiWu_YcM!(Y$ms57xv~r z2Iq|9a4}bLBX@8gkMcAx@&@nm3IF69eq@+W z7i^!;|BS(SOv*IO#2n1WqAbJ8ti^_G!S?LNJ{-(ZoX8oR&t+W8E!@R}Ji&9k!dra6 zr+mqG{4!#opRXB(v6zr4n2uSPiv?MN={z9VyUL1V(3ECShu3WOn9d5q|pT*XPIOr-$ih|4(_Hpu79ihl4nR z;~1Qu1Ya*$;Pz!)!~flTX#XGQudcHrFt~pfSN`IG@2j*UDSCiwAjv=Xiy;_<&FOlJEGXp1x)j#$rMS_xIAtS(u9j zS%Sg6y=rn@HeqXaVsKxtzdVe=J~W=oqKtN!Tr1o@^#+jV}9O8{&am4 z+{^pm_R!`P!9C^Za$E-Y@lwkfnVorAguy+$N^(s$U~{%(aR2THc@Rf(0;e;$cehkt z!_EAW2N>M9J1bx2FZ`9iGq`8>j~v2$A}k~G8wU65lFQ%nJATgs4DQvHldG~08?zOI z`*c0zejLg%oXp@J-9mW<*K-^9Ft|T=O8%MGc!!S|+?#tX|I1M36X6++!F{>Jaw=wE zHs)b)Pp*_)ku_MK%^2K|>mv8&K#t&e2KVCT%1gMKo4Av~eYj)t8D8Q|-e+(R?uGo8 z|1D~No&z!xgZppsyv^WV+cWtU-!r87L^uZb*<#Cyn3Cz4mBBr>LUKt~V0G4GaDT0h+?l;N zfWsNwTbnA+;bN}hMh5rQ_Q^+iniqM4!9BJAe$V{B$IG95!;cJOP7&Nsiy_BjQl?=h z2KUnP$wgU)m063yeY6&Gdv;?V4rXuNxHpzv&dVY!%}NaJi#3p&vmLwg z2L|`VM#>X7o%6Vq!Tqq!@{c^g<2=jYUf3`4ul${V@gD~F!NQtTMCLb4z~l_>fqf@` z&jKvYat!W&)sY*s6+5yAgL_{? zyv>Jv##emLkmeKN7?rV^h$)$#S(%%KSdtZ3o%Pt1ZP=N;IDo@Bj#D{@i@Ay$xr6(7 zl&5)-H+YXv_$S}+Bg2@xL}U!cV^XGJCgxy17G)V$W-T^k3$|xB_TgZT;zZ8id@kc! zZs9H-=3Tv|wTe1VYvoD8mG$(N;7jQY(aVvN85KryMh zxri&df!n#4NB9#j@H+4EG5_G-{J_w$0zE}wbjD>8re;QFXI>UzX;xxQHehqMV^{vb zK^(~moX&Y%$~D}~A9;Ysd6t*?3xDPB{EPoEMC?F6VHuglclPBFj^-rJ zpYTt<;YWsvALuC}V=x|*G7U2^2lKHg%dj$Qu_0TqJ-e|F2XhoBat7yf8P{?Pckv)k z@Eou379a2_U-BLQ``c3gJ&wL+6vkpgreHc|VJ;SA36^Iy)@2j6W+(P!e-7hVPT_1W z;!1AdcJAd7{=^Hs&bxffKlnF4Fm%E|PZ1cMahZgvnUUFg9^i4F)#;y(M&>t6z~uav-|>4EU~!gXRn}o+ zwqi&2U_TD!7*6IaF60WX=Qi%)VV>g8yv93x#OHj?e;F!qpr`PR#yCvORLsC^%)`Pg z#fq%K`fSFw?84q0$PpaRX`IU?T+L0~$^AUWGrYu`ywBhGf^Ydnl0ZLSF%n}kK9eym zGczaivlz>=3Tv|wTe1VYvoD8mG$(N;7jQY(aVvN85KrYa5filB{y(8_wopT z;ssvkT|VX?{F@&bIz^zT2#n6SOv2R6$n4C^A}q~HtjPv!&UWm|A2^63If2tTk4w3R zoB1OT@Ho%%GJoN({GEUCABIR7=qD^A^BX2$a(>J2_&p1-ILomr>##9fu_Jr1ABS=b zCvz4Tas}6O8~5-qPw{77;~hTYbH3)k43#R-Q+P&W942NeW?(kvVPTeHMb=<_He*|M zVQ&uP2#)78&gBxW<|gjsejei)UgAyO=Wl$$xBMb?pr5Z8i7^?U$(WXznUnchjAdDc zwb_U**@4~JmqR$3lQ@$LxSZ>_mAiR}CwZP%d7BUUjIa2fA=3nU3dg97%|uMe^vufK zEX0zm!0N2WrfkDc@8b9Qy0I4ra5%?tD(7%9S8*eEa37EIG%xZ7@9_!$?dC zj{p6w=FivvjKWw<$P`S+EX>7%EWz@u#=306*6hTd?9X8w%PE}AMO?`Z+|Io`!k>77 z*LjzZ`3L{z2Zl};=qUoDGcJ=bH8V0h^Rfs_vl45v0h_ZOyYdGP;z&;5bk5^auHk0> z$OAmiv%Jh-_$zhjd@s@rC5U+^ve`@{GD9gn_ZB*tWXCSzJ=W=`g3F_vW& z)@CENWCwO4DPU1{1;Bv0xR_^8@p5%F6UFG6v%@ zDbp|$KfU|U=f`0_7G)V$W-T^k3$|xB_TgZT;zZ8id@kc!Zs9H-F{D~KM zopRw)xSE@|llys$XLyM>d7r=W1>f?&H^csX{%0h{WPB!LT4rWW=4UaMWfj(D zBerA*c4uD>;b>0cOfKMZuH#nj<{_Tsd0yphKIAjL;(Lb75$Gu#qcS!VF(uP8D|53D zOR@s1vmQUa*VpHtOB;4(FAm^vj^k9$;bN}hM(*G~9_49X3 zV=x|*G7U2^2lKHg%dj$Qu_0TqJ-e|F2XhoBat7yf8P{?Pckv)k@Eou379a2_U-BLQ zd(WiL=YK|FEGA?MrehZ7VnLQ*c~)axHeqXaVo&zxFplLE&gLSn`fjg;XEerPVy0pSW@8=}W+_%=4c2Efwq+Og=0J|%cuwP7F5zl! z;!f`8F`nTi-sFA$#ut3cFNy^E`HGPklku61X_=WhnV-d2mQ`4rjo6YM*qwbjgrhl$ zGr54vxsF@8n}>Lk=XsU4`H;`}itib+XrQNXjLO(d#FR|Wtjx_qEXfM2&U$RhHtft^ z9Khim$Elpd#azXW+`)Z3%G12a8@$IS{F86^kztAjdWy&xjK`!*!%WPp?!xR5Kjp4+&Ghk1%W^BV8)5uful z|7ECBfu6!M8sjiAQ!xXxF%Ju~6f3d@>$4f#vI~22AV+XKr*STqa5Xn^C-?Ih&+rm& z@;-m#3%=zSr33wZ#Yl|F_)NyM%*>q3&tfdgDy+>$Y{?Gn&b}PN(VWDYT)^dA$F1DW zLp;gzyvo~r$Y*@T_Y7Gk&{H@@Wo#y5N~UL4=4K(5WCd1dJvL<NBeOFvi?B2+ zu_ha^Ioq)-f8ZdF0$@wk6 z+64DPU1{1;Bv0xR_^8@p5%F6?hj26}aV8gVIoEM3ck>WW@;tBdHXrgCU-3Od)(Z3# zj!_w#iI|et6GdQ2ixRzVEiwAjv=Xiy; z_<&FOlJEFsoj^ZdGYVrdAyY6NvoIG6vINVs8tbwNTeA~;vOkA$ET?cb7jY#wa69+% z2!G-QUgupt<{$i<9~ioBpr;6o&bUm%)Xd22%*!Gy%}T7v25ioD?8+ZFh$A_H(>aez zxrUqhBM$sJ>d59-@o>zIB5BZF*_?{sf26_s|sEo}-Ov&`j z%G@l(lB~e$tjDHo!_Mr*0UXY8oXR;|%vIdT9o)yGJk5)|!FzndKlz3q8KzO7r-+Qf zcudMP%)}hb$D%C5%B;nPY{B;I#y%X(QJlyboX=%k%Pri+gFL}=yuw?2z^8o4cl@$( zpr5Z9g|V2BDVUB~n2QBjg5_C_b=ici*@->bpTjtoQ#hN8xRM*VoqKtNKk)*u^DZCr z5B|*$4BaHqQv^n5Tqa>^W@L8eWf7KUCDvpEHfK9_p zxs7{xn5XzNukj8a@i|}fUxsQH=qWs-F%A%}Jce1zgT`+{)cN#FISFtGvyJe8yLN&yXzwJ%wXb#%3a>WO`<0ZWdxmR$z73 zV^g+aXZGR%4(B*dmyh`e|KpYTt<;YWt)5a=l)V=x|*G7U2^2lKHg%dj$Qu_0Tq zJ-e|F2XhoBat7yf8P{?Pckv)k@Eou379a2_U-BKl>=@|hYer!#CS(exV;1IOL6%^7 zR%2Z@VQY3`Pxj|9j^z~2<|3}-25#qG9^p^C!0Wur$NYnT^8-V73iK3#(HWOXn3@@x zoq1V=rCEtJ*?`U2j$Qc!2XQ1Pa60F4Dc5i_f8+rk=UHCnFZ`9i^Dq9x5S;`4gk@xY z!vsvuZ}}a+X8{&xIaXyIHfAe!WDoY^P>$hb&f-F@;CgQ39v*E`MrhMAay`B;=?SedohkS*Ar-PnhNIf@fG zgY&tJYq^EHc#tP}j#qe#5BQWX`Ho-q2=wzcqc9c|G6mBy3v;m`ORzkvu`ZjiH9N5< z`*Rq_atdd25m#~pw{tI#@F!m2b>8J;{=vWbfuVZ_dWyj4jLRfU&5X>>yez`fti+mZ zz~*enuKa<6IFb`Mo%6VqYq*&|@&J$XEHCpH{>tC^7yn_1UV(nXGBUqm0w(9T{EpwV z0E@F6tFjIovlTnC2m5g-$8a)daUoZ5J-2ZW5Azg%<~82oBR=PA{>xCk13iUjG{#|K zreX$WV;&Y}DOO|+)@L)eWf%75K#t&ePUBoI;c9N;PVVP1p5Z0l?dCj$if*^z${NFcuRs1=BGLbFm;xuso}=E}O75JFzGGa~Q{R3TJZ> zS8@Zlb1#qZCtl!n-sNNd!N2)|q5B7VioocM%Op(AjLgowEW*;P#F}it=4{8V{DFfw zk`p+c^SG32xS2ol0FU!5FY_1v%HR1H|6zy$fqud=GQVL0Cg->Oj^DEYi?bZ7vJM-w z6+5yA`*A48a586cAy;rcw{Z^-^AvyPHQwPPKId!x%TNOYJ%wj9#$jTnVg_bo9u{UP zR%8vrq)fw1%)xvt$}+6XT5QM`Y|n1&!@(TIiJZatT*kHB!d*Pb6FkQ&yu}B6 z%9nh{FNX&D`I=D}iwT*6>6nGNSdb-Hp4C{FP1u^9*pvM^jAJ>4v$=>Xxq;icmq+*$ zFYr3=@-hG5-~7PP!vZ};V06Z15~gNGW@la&VQE%kO*UY2wqsZRz(E|z37pP(T*@`v z%pZAx$9a~Q`3ryL@BEAZFvRdcKVcb}-!K7_^ILw$?^%GwS&mg%hmF~a9od8ZIFw^J znX|Z%E4ZH9xQB;%ia+xj@9+_y^ELlvs1bpl!ZRAj=4(!gp9Kz9@#F<>cqr z%_xk;giOJ7%)(qO$Pz5iYOKp9Y|T#W$^IP1v7Ex$T*Q^!!0p`2Bm9XMc%66on1AqZ zeqiXafu15TI^!}4Q!^v8GcSv6V7VqBn~u#C)an1IRoEx+UUEWqL{$EvKu#%#ro?7@B<$}ybGSzO2!T+eOX z!^1qqpLvaU_=wN>n*TD?_&`tL8I5t6n5me7*_elgS&9`|gZ0^rZP|srIglebp3^v& zOSqbwxRd*NjAwX>H+i4G@de-ViwS{#zG5WCWPB!LT4rWW=4UaMWfj(DBerA*c4uD> z;b>0cOfKMZuH#nj<{_Tsd0yphKIAjL;(Lai80aY+qcS!VF(uP8D|53DOR@s1vmTqW z4Lh?J2XHvYaVqCg9^i4F)#;y(;A zHPBC3M&>t6z~uav-|>4EU~!gXRn}o+wqi&2U_TD!7*6IaF60WX=Qi%)VV>g8yv93x z#OHj?e;I08pr`PR#yCvORLsC^%)`Pg#fq%K`fSFw?84q0$PpaRX`IU?T+L0~$^AUW zGrYu`ywBhGf^Yf7^gusfF%n}kK9eymGczaivlz>=3Tv|wTe1VYvoD8mG$(N;7jQY( zaVvN85KrYa5filB{y(8_wopT;ssvkT|VX?{F@&bdUl|v2#n6SOv2R6$n4C^ zA}q~HtjPv!&UWm|A2^63If2tTk4w3RoB1OT@Ho%%GJoN({GEUCABLC{=qD^A^BX2$ za(>J2_&p1-ILomr>##9fu_Jr1ABS=bCvz4Tas}6O8~5-qPw{77;~hTYbH3)k3^g~< zQ+P&W942NeW?(kvVPTeHMb=<_He*|MVQ&uP2#)78&gBxW<|gjsejei)UgAyO=Wl$$ zxBOyWpr5Z8i7^?U$(WXznUnchjAdDcwb_U**@4~JmqR$3lQ@$LxSZ>_mAiR}CwZP% zd7BUUjIa2fA?F8r3dg97%|uMe^vufKEX0zm!0N2WrfkE`?8N~b&T*W|Ib6(D+{hi= z$D=&Wi@d>me8NBZh94PbL7=CIjKO$J$~4Tx9L&d}EW^sI#fEIb_Uy(!9L!Oi$Qhi^ zWn9ZG+{J@D!E?OATYSK$e93qGa$%sKuNj50n2;%$j#-$C1zCdSS&ensgss_$J=veb zIF?g5n~S)T8@Qc&d4xal0`MrT|mVQOY%cIIUfmS!c^WCJ#5 zJ9gy{9K?~F!0DXFrCh_!{E-KEoM(BNzwlT7&cFB%Lo5#T6PA(r4HGaqzvXxQo&{K( zu`Ro>HwSVA$8#FzatT*+6L)eykMRsI@h0!{H@@Ioez7#r&sU7Z zn2gV4Ov}v7$^0zFvaG_|Y{ZuA!0znJAso#~oXG`T&UM_%-8{sTJkP7V&4+x(SA5Tq z%K|-xV^qdwBBo?|W@T;`Vo6qDb=G53wqa-X;s6fkI8NmpF6Jt37%EWz@u#=306*6hTd?9X8w%PE}AMO?`Z z+|Io`!k>77*LjzZ`3L{z2Zml5=qUoDGcJ=bH8V0h^Rfs_vl45v0h_ZOyYdGP;z&;5 zbk5^auHk0>$OAmiv%Jh-_$zhjd@s@rC5U+^uzSQF^yD@I~W#%D67WoG7N zeima{R$*;6VoP>lclPBFj^-rJ#-@@urqsc0EcrNr*aM#a}_so2lw$PPxB&g@E)J=Prl(thFKTr zDI#Mq9+NT+GcgDAu_(*1GHbCRTd+O5u@47x6en^9=W`j?atn9yAW!fdukaQh@F`#N z9lu;3=;v!jVJs$O3Z`Qg=3+sXV0l(!T{dBBc4ANV=P-`t6wc-%uH*)8=UyJ+PrShE zyvxV@gMae_LvIN56oJthmr0nK8JV4VS%jroi8a}P&DoA!`2z=WBqwk>=W!|5a5I18 z0UqaBUgj_SmA~^Z{=*O(1O0?$WPZa0OwMol9lvJ*7H2tDWgRwVD|TcL_Tx~F;bhL@ zLayL?ZsQ&v<|+QnYrMlpe9qVWm!UQVdJ4~IjKjoC#SF~GJS@yotjHRy&t`1PF6_;L z9KrFN#<^U=)!f9L+|Oe?!%Mu$`}~bB_?BO64)pUCBQYl9Ga1t|GjlROi?J-Lur?d9 zB|ES?`*H|Ja}sBA0heDYz_1jkueyLNtuS3 zn1lIPlx0|%wb+m?*q+_khl4qa6FGzPxr}SMg}Zo=CwPumc#9AClrQ;?Uv3NZ^EIO| z785cB(=iKku^>yZJgc!To3J%Iu_ya;7{_u7XEV$fey)tccudMP%)}hb$D%C5%B;nP zY{AeB&!~*W1Wd-@*Uu=9KI1FCXULF& zp29IIV>1y`GCi|0Hw&>OE3i82u_@cIGkb9WhjSdKat;@B6*qDR_wguC^CEBX9-r_} zzTroP2^HumB4aQflQIo6F$eRpD9f-iYq23)usyr64+nD;Cvpboa~aoi3wQA#Pw*VC z@D?BNDPQs(zx;H-|L-{YHKQ;V6EX$UF$;6CAWN`3tFbPdur)ieC;M|4$8rj1a}if^ z1GjT8kMJj6;C0^RWB$Rv`GKK7osj?QDFUN2E|V}dGcr5#vItAF5^J&no3kCe@&^v$ zNKW8%&f`+9;b#8G13b>Nyv$$tD}U!-{D&dF3iK0}k@*c1Fgd^Fcl@3OSe)fpm37#d zt=N%0*pEXwhLbsq3%P>pxs7{xn5XzNukj8a@i|}fUxo@B=qWs-F%AO|%pUIe( znVFOMS&U^_g|*p;E!lzH*_T5&nv*z_3%H!?xRtwkh$nfTS9zNc`HZjlo*}~pdJ4y= zjLk$$$@I+1+$_YBtibB5$EIw<&g{hj9L{l^$~j!jRouuO+{dFl&5OLjdwjw_`Gy}E z=F^4Df5+{JjKO$J$~4Tx9L&d}EW^sI#fEIb_Uy(!9L!Oi$Qhi^Wn9ZG+{J@D!E?OA zTYSK$e93qGGD4uAuNj50n2;%$j#-$C1zCdSS&ensgss_$J=vebIF?g5n~S)T8@Qc& zd4xal0 zu`Ro>HwSVA$8#FzatT*+6L)eykMRsI@h0!{H@@Ioei0?m&sU7Zn2gV4Ov}v7$^0zF zvaG_|Y{ZuA!0znJAso#~oXG`T&UM_%-8{sTJkP7V&4+x(SA5Tqp9XXPo!7!KDq}Md zQ!+iXGB*pcBrC8w>#-@@urqsc0EcrNr*aM#a}_so2lw$PPxB&g@E)J=Prl(thKUyF zDI#Mq9+NT+GcgDAu_(*1GHbCRTd+O5u@47x6en^9=W`j?atn9yAW!fdukaQh@F`#N z9lwko=;v!jVJs$O3Z`Qg=3+sXV0l(!T{dBBc4ANdU+vumcoSW^!0{>G;_mKN910X@ zp-`k)p%gEvPzrT{qQ%|a-Cc^iySux)JM1}`|M|Y$(q!4)`|a+1ZqM_C-%RGso0E4Y zlarYY?Tv$QBu>ETI1iWN8r+0C@c81+CKS^+|#$ zF#~4Dd{`7qV?}g8XKa9O*c!dCBZgokM&Uplf#Y!+&c!9T8aLt&+>gibEMCFe_y}L( z2mFo+GU#Fv=Ezy7-FbF$iPwbDwa4b&2*|-Q-;(FYMd+`XK#!Gk;AK-I*hhI^?*W}F_Q(;ET zf%&l*mcdHsh_$gHHp4dPjh!$QyJBw~gd=eRPRDt;6xZM;+=&P9IG)3+cn2TjEBuH* zFrhf{F6)#G(_$9PjfJoTmd7gSg!RxBTVOl%#XyX}9@r0u;uxHavv47& zf~#>O?!f(c4A0^fyp50WC4Ru~m_Yo1LT*P%F%4$MTv!lou^ifC4Xlfeu{nBRdknyE z?2dhL2#&@{I1?A(a$JX7a5o;plXwBI<2`(eZ}2l}IrRD@#uS(yvteE=f~C+7t6?py zk4>=^dZHf&V;Ag&18_Kw!>Kq27vn12fZK5&9>p_w8E@f3e1Y%r8^+J6*U1J`VtG{v$F}H${uqYcun!K#Q8*E2;Cx($YjHE~!h?7M&*L?`i%;-1e!`!a zD3@NRd*#>=hO#~M>%M$Ccvu^5)YO6Z8Su^~3YHt3C=FciCDZybapaRN@qdAJnU z;3nLO2kf1)ALA?hh(9o49=%Sm}GU2Kfa(F5CK0ET0C?2AKiG)}^qxB!>qI^2T0@erQG3wRyx;ZuBrpHa)N*C#Qi z!1S06^I{P!g?3mCYhitCimlKS{V*82U@shi!*Lu=#W}bbSK$WSj{EQ^p25p_3m@VO ze2?ESegVBsHkcYSVNNW7#jz|_#_CuH8=*V4MIZFXFzkkXa4?R-i8ur2<1$=}n{gK& z#1nWPui;&Mg0Jxt{=`HD^*SZTbeI+MU|}qY6|gGSL>Fv=Ezy7-FbF$iPwbDwa4b&2 z*|-Q-;(FYMd+`XK#!Gk;AK-I*hhH&XA-z7v#{J;v4*oS~0yoi7^GH$84Avi(o0V!)jOy>tj=Fg`Vh#!Po_R;Q$Mhez=YUdCJa5MSVX{D$$1>vgih)R+l#VgW3UWwA0=$2!;u-LWnDpg)FTH|&Fh zaTHF(88{!8;ac2`yYL{M!1H(w@8T1Dji2x*CbHG*lpNDxR?LHiu_RW&s#p_UunD$A z19re5?2J9JKMupOI0a|pB3y~ zSP31mHa5g&*ap3^6NX|}?2UtPBu>ETI1iWN8r+0C@cUaW2`rCQ&5RAkq9Ec-uJWj*8xCB?@M%;n> z@fe=PD|j0p;Y<90-!VaHy-rCn4Q9q%SP*To9NJ?Itc#7YIeK7w48U;gj(u?mj>bti z6BpoeT!&k5Hy*;1cmc2DJ$#C9@H1*<^!g;m6qp{fVO}hPrO*zmVJ)nWO|cbvq8|oh z7wm-ta5#>`sW=B0<0{;M+i@Qr#WQ#rZ{b6Hf$#Af#xJYa$p%wnCd`QiusD{*%2*xi zU?X(Lw&;WY7>3=j4-UprI1y*yd|ZZWaWn41gLneZ<26jE@jk-TC{Ftu&##HY|3<}O z0Hb0!U{pNZXl1O9b+8e-V_Wn=e+wYV8~;Xyos=kXfe#V7b0 zKjBYIWTn4eb=`3~=CfiREQ}>lU2j~K`I_j0O|T^zumc8RXY7gnaTuCgkK$)8#`Ppl z3mO%NPmPMNn?}XQve9y=)~6%$wXq>K!@uhJoXKAwn_vs{K(!rpVm<`BU{CCaLr`r` z6PTZdb8r!^z;&p$tDVg6$D?=}FXDAn+t*{}U*ZS+jtN+gNihwo>)LZMUl47v9NJ^t z_3Zlg9CtmtUWd5r+4VZaUC*x9A?|v1y$*5Lv+H$;yPjRIL)`W3dL81fXV>cxcRjma zhq&w6^*Y2|&#u=Y?s|5;4sqAB>vj06uV?>9k28qV!^YzorO*zmVJ%e07n(BP3O&&e zgHat<=*9d19FF5~D$c>hxC%GmcHD>RIKmm`FXJtIh%fLxe#7{D|F^-^m9jnEz2q7V9G7;t4#D*YGYr!Poc+e`2C| z`u33=(_vQ3gN3mqR=}!Q6J4+gwnPJVz##05J+VIy!?8F8XX7GViR*D2?!_Z`8ZY5Z ze1OmK9e%}l@%8#xV=ByuIWRvK!!lS29kDhx#Af)9zOR4xc;$cU_~BgMhf8oZZp0m^ zjvF3h{w!X>+xQ6ozZ@_8zrH>Ev*#z&>rTe{PK#MEHx|MYSRSjO6V^jlRL9NRG4G3k z7=b;o9}dMaI2mW*LR81eqnY1|d+;!xLUnxn2J`pv8NS6YXvKaz38ushm>u(BQ7nxW z(E**Y0lHyp^umr9f{_@7191e7$7whhm*8sLh&ymU9>cSE1#jace2E|MJ0@WNofOkx zW>ni*QtFx-Gh%kki~s2UwgHcG!`A499WewWF$xFb2po^<{LEbD;Td74P6gibEMCFe z_y}L(2mFo+66keGifJ%2=E8z#i{;QBYhYb$jLp#l+hYKRV|VO}LvS=s!kM@Lm*YCz zg1hk$p2Q1y9q-{&e1o4+6FYGE{}?336qp{fVO}hPrO*zmVJ)nWO|cbvqQLmPf7N&} z=I5{a9^%3C`d}xF8yD*9qdEIu4{VPC7>?bsFAl+f*SPR^w;vT3_x)C1zj5Dh^*a1- zf4|Me=d#+~{@eCz>imKFe$kKp-Vhvx6HtBcox}Wp`g_K|Ykd6Qvi|(3dl+`ZJ~$ZF zdi!UO{~aXH2|SP2@Gd^V*Z2v4Vj}kc$uS*f#XMLTOJW7AiZ#&%n_x>cUw;%lVD2B zfY~u07RAz75gpJO8=xDuMlbA$AsC5KI1ooD6N%4Ru`^vPO`>T}r8b&on^-6YW5&Pp zl0ws><$Nkl%P(T$rO~u>a(`m4X_=(r@nxB}lZqJQab2;zotzi>`m@})KNNYFGjBZq zCGwwR-gvxAJkK}gHTk|2&!^djbqxqNcnZTqbvvl3aG%I<&DPrxZqRH!!@@LMd53Ln zM;DJq?yfZ>J)C{Qn+5rY8+?6S4S~KszbvmAXz=v+sbvTYcQz{xM{??mV+ z-2B5s4K6`l8U=On2{o6+a*&=#<#3G%tRLk4Yme#BFJYlR{xr0z{CbYkgZoczCFvXGFMsCg0GYh+wfEf3xip>pitetlYlDW~0g9RmgK$ zV)HfLV#Ya$`&C?33vn(can&ruH8+WKun^~M66a_kPL@FRueyb}9wu=$EX2w8lgj60 zA#S`$TulpcvrXb^S%_P166b6oZj(t|Z3}VxOycTTh&yExSJy(^HIuk{7UCY6#K~>K z+;;WOBu*Z)Fc&BHS89DUun?EbB(9-_xJ)K-jV#2;^P1{;8(WBz<2e;4&;6Qv9rh-1 z^4y5IIC)%KZ@Vu9bzj#U^pBEyP8e#I-Sr%POYDB29d38=Kr8nl>?9Gq&8~U%5yO zPmC>QoO)P6u{4Re{k^ziB1S&O^m#LhdDUcHWOETW(>OUEm%m9+P4zE8++iA*LM(_a zPJWLvjg#jMVvAcBBd(j7xJxnOR*N{fUR4vb#`Z(}Yx=x4qCj$esixxO_a+&qT6+=q zP%RX9s%7%Lk+qn2AaGw3Yi+f-Pkz41+RFOL^-xaSrye6_wfdsqt|oV=N%?yPH7(<2 ziSe4;U#O;*)esY=&l~P$ZR~@5-V)-bo>zX4Q;(53zBGD$)IT?#r>+8>)&vZ zZ?*`M{Zr$x*z!#j`Q+!CYUc74>mb&z2$K06#m(I7eJJw9S4l*invA)Ahl_mjGgIcP zVIkj>jGER_ELY83zHQ;tYu-NidxT9(EGgLKm{VUtpMvD|dvVU&k zW^Vn?7x`|NRoTqXln`l)ePY_B(cW-CpO zt5h?WFWYDvEm#D}*DK@Az20DvuflI^FT+K?4s0)K92Q&u78Mlz6QBL6nd{%X**4lG z5hwd6&v}~bUp(=H#Z4-Sh*Og>>vv52!B2V2Qsy&Q$hSrOU}e8pu9~@g*B07npG1(% z=Ou3D`WIE)N|VP%RWq0G+#*pw`sZUI-;5Ggn*5E3YUc9UFSXG|lh4;ezO$vQwDc;8 zh*Oil)Ni?sCco3j*Xw5?-=or2nr}i8Kr@#w-AWtHPK?=PK6wt?T>To_S!s_|5)r2+ zWA@J_+D3EW^~(3VxqNow2S|Cua@EY`8@|EjkNtCy2sW3mrN}3bd8=kFU$n>!SifSu$$Sywrt(FJ z2dKx$6n&~&Y2)P^o2Hh@^XX!!sX1_eG4Tg<)p)myxKHJi=QHGEN)ng8o|V=~{&8xW zTqbW5W5o4#wAP$d5HT`t9&u{XJ`tBoE}*HGK1gP%RY8)a2g)Tp5u| literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.su b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.su new file mode 100644 index 0000000..b425b1d --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.su @@ -0,0 +1,7 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c:65:10:HAL_PWREx_GetVoltageRange 4 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c:78:6:HAL_PWREx_EnableFastWakeUp 16 static,ignoring_inline_asm +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c:88:6:HAL_PWREx_DisableFastWakeUp 16 static,ignoring_inline_asm +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c:98:6:HAL_PWREx_EnableUltraLowPower 16 static,ignoring_inline_asm +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c:108:6:HAL_PWREx_DisableUltraLowPower 16 static,ignoring_inline_asm +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c:124:6:HAL_PWREx_EnableLowPowerRunMode 24 static,ignoring_inline_asm +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c:135:19:HAL_PWREx_DisableLowPowerRunMode 24 static,ignoring_inline_asm diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.cyclo b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.cyclo new file mode 100644 index 0000000..f4e8746 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.cyclo @@ -0,0 +1,15 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:226:19:HAL_RCC_DeInit 8 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:322:19:HAL_RCC_OscConfig 73 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:797:19:HAL_RCC_ClockConfig 30 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1003:6:HAL_RCC_MCOConfig 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1040:6:HAL_RCC_EnableCSS 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1049:6:HAL_RCC_DisableCSS 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1084:10:HAL_RCC_GetSysClockFreq 6 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1140:10:HAL_RCC_GetHCLKFreq 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1151:10:HAL_RCC_GetPCLK1Freq 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1163:10:HAL_RCC_GetPCLK2Freq 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1176:6:HAL_RCC_GetOscConfig 9 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1272:6:HAL_RCC_GetClockConfig 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1302:6:HAL_RCC_NMI_IRQHandler 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1319:13:HAL_RCC_CSSCallback 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c:1344:26:RCC_SetFlashLatencyFromMSIRange 7 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.d b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.d new file mode 100644 index 0000000..f0cd945 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.d @@ -0,0 +1,52 @@ +Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o: \ + ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h \ + ../Core/Inc/stm32l1xx_hal_conf.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h: +../Core/Inc/stm32l1xx_hal_conf.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h: diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o new file mode 100644 index 0000000000000000000000000000000000000000..edfb03f0c85d977871519c15896e43f34e49fc87 GIT binary patch literal 722580 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

G-Bm6WgmQGJ(=E{4ZD*tOx`GWx+sY-`-rQcT?N= zUK1uxXztbAG_s|4%Y;#_9iy9jquRKZ3C;gsj=lY?_9EN5gzHlARPRXh87-rlu}Il< z>K&IaYcE`I5mAoHgeSH&QyqJG*|^!z|Jy6w+A^~D*ioZ$R-92KU@rXsj|*;JkIvSw zcWv|7rcq}V74iOPrCmC%sWsC!YEuJ|;-XCZ^Ia2UwTQ2~one`iv$T7`LlRMh@J@IOp3C(8$H!?)UK%!6;MKXBv z_KrzNpv0*0?Jey#IGUDOAW@TATASNscQOwsCX?eQb!0$Y&gdhP{L=iwt-Kbi^oj{$}ryy(AbbKtQFqj;Pl4$_Df zX2|JW?b&S!i)YyNZaa5^clp3B2!+VS|K#sLbt>GJN43Q(Ql8?R0 zP=pRS)p>{ zxKg9lZyf43fL=J_GOy#Xyb!>J|1VowxXZ@(%k~7#=jd z??6JVt_K@`lhfZtPX9h-M%N>az+l5e3-m{Y_NQS=?D-QuB3x;B2A3J#A2+-K{6Zfs zglwJkVd%wUsL$U+rv2T^F<4{Y0FQNd?pSNpSofu|7JM7Cga-p1U>rE!a0AZ+#z9!b z(yBk4HNuaN{)fSW<#^8ZGh5hkYA7gmk(=qQxw*l10;k2m(#{O5yU&j6+ zn#$q;p)W>pV9)@@c9txzRK<*dvGimgNwX+ zAe8^pcg4=X)rio{^fykRN2$T{)ZgeWQ~S!t9+>1aXp;AIO!B85VeF&tF{XF#-p3ev zV0nun=I5-#%wQtl-)N9i6QD%Ib}y2O2#~jU)RLhML8#+)|?w zb6;v4$_Tudt+np<))WA(S$!Ucekum2x`E!tA?Ui)uzuh@y^gv09%J^OY?Kc)4lAX? zSP+cAY!+>SAHI%dk@e0YePP!Ie9UMNo4&dR&e2d(;w< zat}7VSl+=z6hJ3D^+wmn`NuJ*8l^PHgK7TsApLYJ3g89>Fn~q_Xx@MUd!X%9xH^*> z6iy{GiD-Q!H8d1XXA%?J{eiN^qI4pjiA0CSBboZPbX(J?=JT%Ar?zT(`YRoOJ|bNR6}iJI^Iz4{~cISU7`_1YfvnciXR`%1S_kC zRQpRxIv~LI%}nlrZUQ}uNF|R4!TMCwBRyh3(p zQEEgg9IMGhho|G=WPqRLnM9agqzwNB@&CpiMbt?+8O+3z(c?0e1PqqpE&KQPJ0O^# z9z~6*>P$3Ik<5hC$xL#%H7&AyE|ja(B;pO3L}Ma?*`~jNpg%v08sdS}MC+r;P;EF= zTbqg2hpKC%5gtZxzvRf0OeWsor|B#YW+wZO?BS(LGG)BZ@`Z9?&N+xCGDG6^kS1lB7Rtz{I-CbNeLy>7=0iUkJLuvQGa8~nZYAcnY9h!A?AWb%#!v@ z#4#j{E=}=vQ z(LPA6R;ahj2dh_%^0p5*)FpWTrqWSt1Yl})C_E(P2l1d49Gp5XNq+(olgiYbIYHcD zCex6viKQ~JhGaNO#3P#aOUgnMoChmP#(~zUVexc$P$oPG`$&=u!tow}g;F&AL|ABG z{&W3S9?A!T=0*=>5)COPcO`)UCXlE@CR&Hhk*tu}708uaxhjd>-Z_%n!2Ci?*g_zy zvi(5c#_U1{X(8(y>oV26&;ee?pqz2)j8{0P5I4%iA`}Z$WN0ztVe_>mr7Vl89eiA} zJcCK^ld0hSt0)+6U<;&Xy|y+K4r3(IL@HhjdXVvh;wE~P2Wo4F6s17_ z5S261Pt6DqvJbsUneAPeVh}p^2{TGsuT$oDXCS(IO=rH^8AMnmISHkP_)DhB72wJD zAI^272`p}=4&Yp>6<}hKrD6eYGmA?}ptPi>zegXja3~m61X7moQABl_y(KfDNF+KJhEeKCc=V8m`F*QK>iX% zAv!6-BdKeML^BPI=|p3i(OV9ew+4e0W;cT7R%F7pL)2>9$Vo29Htn^kXgHPP*E6Yd zCK*q~>mfQsYKWzVYonoLraGQ3A!^ZUKr)?5_GHGx)T1_DAI->Cunxp(B`Sf75d)FT z&XL7)!o#mlqTytw57PtML}h)6tWzt*)M_E2B}oqAUvj>%Th($EE+iKiutYQ&PYj~z zh{RHnIvz((UZ99aQ5znT%-~O%-0wUB!jKfCmb%7F9(z#v+*72wrY_t_qlFB0dl|eCUQayn?wtyEh@pyNeZH7y0IP{JqocJ?^f=>U0DFc1b7uY zzNc+z0=9(%8^O9UJ&_!BC^LKv!(S4t!pld7r8BX{`Y_4)8Je4+po`f4R3cE-SOoPU z7HY)iPBk=wvHJsA78|WA^V|4s88#tC3A8CF0px;;Y!o6|hY1)O&cy4%>w%+%=}1l~ zo=RHs2FzqUkc1p#mv)^HE*wn{0>i;Z7#@qq8ZyI@@pLo;btyhH3Z_|BR>3XDKbk1oXr9tNbWq-tTLtQ zsvA>MX{v3317t#YQtRY!Q)}zUrctM{z9dWJ1B>vYBossEVG$uCVgpr%Uolk&Y8?(GBWjW|aZ~&&0Fh*hXgwC2{+eo( zBa3$fbqBSNRgFk|sN{uqf?|WoMJ5T5NIL!msw9GPGMx-m6-igaH>8h`CL4Gf z3*;-QF+ChxD5RKM*_3igtff3-!m=I5S@eY9hAi;HKG zCBS)uAT{NcMf>2E~)i2mL-O#UsWeT-9xJk&AXc7b%qPKb zBp}*g-$cW;p(GS&)*P%(90E^X?{YFNB3hfkwhRzc1CR4dU@oDRWz^#Lf%H#{4;dN5 z!GaRMfIeQI&OnGr0l_lE;t`OQ42Y#EZ8N$;>Q1F2EIr|;EsL?5Y&L^pK#54Sy0IoY z)G0gVLwPPtje0P!hSt(K^|?^4BGEb##dHDZb05o^1!kVCPhxR9Mur4q>c zQeI$`0GY{`9Q`GIk?#=kmHE+>_=7wyHnc)@j5LO7W0G(YBQiG!$+1;3J6MiAgZMv0g=hHG-V-b4I|;Ycqh_eE~p4t2yBGe zYj`pmQ&LO39>ljk94#?_5c9Joz~WFR*u#JBxd3Df$^7z8@+%;(pf|8NBJH%ZhlXk! zqZw>#v~EkG8OaX0oT*HzRy!}JObv?hlVSt>=_dsdN+kpRiim;4z(4wCK)(DXy(CLf zIicZTC%yczn)6cIWFn_MHy_ILF7d`vsT>xh92l3!T#(LVB5gW3q9j_6zdRl47pB50 z!&#YOvACLv-zgH6mW(iD0y5Q`dNFijw$~CanIIktZTPxygA{-*Wg9txY?djoM(aWe zY~6`)+}<Dt zS6jUduczJE1BBL|1yYI`CY;Re)>%80$g7R4+}hbO_CW6-Kvq}jsPufCo9$hSb+!yi z*liir+yP7eu_Sq%;^19mdt|>y3JPR(I>x>Z^_%AwXdVogo05gnG9qftXz>ey)q-0> z9C-?UUxcF)QtSq|g^Iy{1K4X0=ESnMvj8KZ-1D#=lL#E>TLu|8&^IWBVCiNeA(-@L zxQ%KvwW&tPZ`kxX%@-(O;dmHAhx9juEg?jud7iK_La92rXH0vnX(h6OxV=m!6^g@L zSIA7310mu~?N(+IHJQFld6Qt2V2l_S?*l65v>@3CRPbT=O5 zCrf)qDuutZ#H=*t!j)c@hzyC2kk-zMKxMG1oY)re_y`##$YNXNcP4qdcqNs}*Vm!( z^(Cf<$&seqK5V1)lQ|do333Ib4@*(1oEMH5z#uCJWOI%XgIX6GB#?mUIY3J<~X#k zL}k*)kpt^KXA-R~ClgIP4XJ^IG3PGK12gjRib`fFO;OUj(~y9R3wnEfynbjjnTAa_ zUJoO3W@sYl?+g}i2o_};!Enoi4lNQ|46N6%Jiugu-{Alf=GY)(%Uw~h5RVXB$!4Hu zM{{3V7jrXZfn1zjH!N%h5>DOdTdj`RWwG zZ~%BL<{m9F{>xKM%;==T3J((G%NzOGd(i zFoYMNXGm>f-oEDglVHOzZdMtU6OoANti%Rpi3-+PQ=o#_ZHt;HgO8K>P+>lGKhgfC7O*g*sS1GTqQYxS`Q5Y#(g<0h2a2J=q|j8c1kR zQvVo4Del`8Cn=11NNLr4a(*^;|yjy5vf3_<}86B z9IA&d^m{fRDpAC8ML0&vX-&G?p`PY|c$!&U3ByH4aTv)^eN9w(FBAzNX~qfWYFP#f z%dUfg2FSl`h8ZN_LwD{NC(IfGJE!V~Dq{vVMiL3eev17eJ9k+onyxD|TVu-BqsSyQ z7^U54Zp-E#Xp^v6r-Dpi)wLAi!%Q(ZlY8XNLl)3@og!1x99kuL1qPRjrQzSq4pybP zHuWWa59rGJfnktO(dNN`|6k2apXykI%pn%hl`akx;K66HiuhTsLCaxD?ZnOzfQ1#N zRI<@v1VqCJMYQTiY>h}ILv?DugE39+pw z(=0aiD5{PC@v9?PObS4vz2L~f77RrlmTMag$bp!Ylr=;t{MlXIP7RR}6545I*pS9V zokT?|$!J6<3`_%0#b4{i7&T2dfXrs3!oahRS+bqe1ey3{irj?@F^(|}Zb-qm2>Db! zs~lFQ!X>zJ7D1^HSv^cwH;|J}jASv)hJH;RKdG&G?9o|Mp(2T}%1QsV%`X!J<{s^r zH4q?{jD{l8y!eN88tWV3B`uLv*>tEZhro~Qi0y86Y4ONJhk}z~|hi4;Lw0iYJB*-=fCi}k^9V8Kg zB$=TNwQ16rA(T<9MYy3p7O#Oh4N*QY)u*8Wkbw=tOguJ%GD}dY*MKmPLkUMi8&Yhz zwpW0G0koTfL#vzGo5^Wj#ReP7AbT)nuw63@_alt_A-2<+30?r264L{dz;VG5^SOV9lGa{!Pj<#MPMk$93jClv#~xm(-olU+fwBuON(r`#DWNnKq znNBG0MJLUx?3CmI(nAUVm;>e2P(BSQ_)|7FX-Oa0N{w|&5+?COrg@T>;9KfqpiBKSdLAcLEI;k^f=anwo_foPB3UoDshLxno-o2$3CIA zEg(uovdPIJ?^irsmq~-H;^{yv<-d^{jLl#}l$QMk(R9M*J)o3)2iD<0>(axOV9ma_ zG3}$rhg&C(IxW@Q+B}M`BJf8jFW}51GE5O$FmlmWv>OC)j={FHM9%C1iOTGz@^~b2 z>#6uL_OKSvfwN%NZ`f!NiE{+5`ps<-7DB>}B$;>eFU~jZT8J~NOZ0Pu7UqB?GQprz zJtP668`UOslJ0Cvhs(mbyfxXWI@??$!JYF~Q;{`@sCMehIY4gC5}c|WvCPh3gU$+Z z3*@GRi47Ds7O$nibY#%fIx@3%8$^mwkSkGl`LoE{B#;egvFzG+E=*1tSSNNqVp`4M zQ<;)tPkjW`2Y;m8W2Sg^EGhsS4a~EW2iu~hFkPU|*)JXlI0W%P42*M(mHV-hRlh~w#;x%jt0G}W_B&9f$t^)Na4=YEw z-00BQvbo#~VrfCNGLc~+KPw27Fhd8!QG^;RHM~fM;^m+1K@<>&@#RB`lyMgBqhJpD z+95oQVMH6T0z?$e-$V_Gz1D|ta3|T^G&+-L8r#eQhcheFcVv;AE!N*lNS~6i!%ja) zpKxWk5q=Pwf>3R;4zbJyA~muQ9+|n(<(Z?P1Eq6eT!DxQ5trofhWc8mr(~0iyTsKf zrlc_f+10tP9UyMb+OUx(xdVkvtbHkc-3+gHg1CnaT7}~w*DPtn z@`CVAf@`z3ILSu~hu|{Hv8iHAvZMu0GB3vJ42*j?KVumVY(sJa3h5u%3^EFu%)Vvi zv?DSwlp?YWHY+F~q_^P08pcxTDuKB9$F34vAvJp>fI5ys*oK)0Glf!lE)2Lr(rFG7 z5N#tIW)ama!kw|K8;T_dWkNX1Slcfv6%m?{SrJEXqys1$mUxqCd)->Tp7uMbvwPqzCD2R^gbe z0#KlpsRaPq&-5kPeFV-pDHT?ojg!iYsy26i%#^nrrHrObm&kh)t&8 zV6soeaL|p9gw%jDgI(0rfS1crI?76RmMxAGB(|3!TI84p(rkd6GAf^t(`kuibVVgR zvym}DilqvalQ6_*SS{Ha9wdgTS!Yg792zTGhnUoOG#VwYW*NPMQk5V#B>ux@CQo%Z z5u#ROX?V0w7PTk-fy0zJr|{_1ntFX=m>i``+tU_i zW#wfp^EPFI^^fWi>8R3D>>$dPl8Z7(HQ+^n(QKe1dlb?|eDpCJA5srjcr1*e&`iKf zmMi%<2@N;q5R0VDPsEO_o2RE-poS=rmksPt_Q?8&tv0L#jr2syZv3}un*J!OBE|GF z9pE#sg%o;(L6i1v9yZjQLE55%Zt+x0~u`sWI*LA z@)iNu3uV64j?DFyd?lChWW_&|FBXhbi7Liux|_)0$8H?kOgUj{s_eZ(wEN#h$%Itz zHt%aW=r@E!bKBT0N1(+Ht6naQN0y^>A)+xahnK?4t(D3dpURm>cKCU_nz2 zk<=n37*^0(p`g=#=LDHEhiE~Z{OUA_ZBQY&6rkftm_$NJCUJBE}?oRjEM z&hKeAt>E?Kxl%H)TZfGkwJFG^Lv3bxcCcm5i;2eC+QtNLj%bdN(GFtb4pvoH-ze9Q zr6(wFrcp1I8RRE2KvroP?rGP$Y!r)K=6N`!JYw?J3`P*@z~r3}1UQfO22VT1=r+`= z7&r2AQ`{&lrP0h#9KokhumG~`XpH!x{~a2$;0fuHs0|w@fWc&(2>xyyr@auP2FGJz zRe4q#aN_~!B)t=&u`KB{9Ez)BG;AZWBBQ~>aj1c5v!ZV~Ant)CD=U2m(n;KU;UMP) z3UEa}6k=2Q`@pmyoxota@RqAF5y2utENvSqc8VSMsv9!bN=sAWV%!<;GG(WxL)eXp zw8=@}neHgUn?XRO_oE9iI3ftYRWuO9^(39;t&Zc8h5AT5L`U)}%7XzDeK0DH0#&>e zwkB3krA?LsfBe~>yn{%b;A>5?$NQ|?OgR1!KA&1d>d;b|;bEqmN;r^bz_>_A(`=+We$j?SUgam zbe$w)bhsWbZ41l5CDENkWdI`8Ko%>4p~gtO0oz6$ia~S(sfR2=cUHi@?egy8u~Pvc z5*dt~7x~!z?^)+ELh8ySq0jNm69C&B`ZutbCCiMzeH^ZU1Ike{z^|DTuUY2L3DT4S>NGK=H8cG~z>c}%YQGXU%PW%I z4}28}V!L^B5O>0P9Jo;{J0uCr?&`E6dDeMv;#asWLh%O4y~;5sWXvN|VXnE*G8@*` zvQR?Nw{U5MD-Z`Nah!Y@Z0*Itell}|YUaoHLJrIW7j;Z%Zy7tGc{IQb>S<-KmVB1R=mOt_$@yPxoi=5EFUbfsU*B1O%M;vxg)Bi zMZnq->R<}(8ek;fo+D`)QAxQ6*p`r}36bqy=AfiZv*^Hh5g><+^~+D2)k@iZVJevg z7oz8o5vWtO2g2cs&bEgH@ykh~0P_fVJ0x-Bp%o4q#`5usk`O@@41xqh`3wY;RuZHD zqrZW22b(JZ=H4JEN5aaJo=;5kU~2yOW`|fJS)*ppN;5)d-$0#z$=BWK^%RhY0f~hC z2|--RS3c6jPLo+WU|d}G5X_oh@_VoWxeBd;AAdRRq%@KH+N+Y21f+L0ZSZI0fjk09zBgrBB~7V!&x+Wbf(daotL3# zS?P>-xXFHGcztdWZW*VnaLZC8iohS(d-zg|Kxsu;AlR>OMHOV}ioSt9f#zNnl`-sV zbAtGN%Kzs+C|OULxFOuuLh?fI7zp;ewL2T&{!c~{xC+xEQ+5WH1@j9?T!3goJX11u zD~oXKT$QqJ{Ub8RcajwdF);JFWjWy_NM>*F!VEaWy=3d);dFEp1cTp&HhqB@msnjb zD^hIJ zp3CuT#EypB5)>_OL6j@mN`s2WvQUJEXA=mX15=^ivbtT)R>^_#^f4nv>>|uWY202w zw=Kgn*rE0{S^ffLWUn2BLmOZtbasQ|f%9^uF2(U^2~dngsLaosDx1@gk~%muOum~Z z`%8@!x6fv+16gSH7mpe0TrdnG-Khvt2+Tqokx>W=k>=K>vl1P+vWD(3W4fQ0Yf?7b zwGDJ&&@XXAg(TQ7bs(t4^d&aZIOtanHk#RtYqUuiL2BXb2Nkplr6nbNq7Fm~mm$OJ zje8oPd11+UV*zng6*j&|C%)-e3TN^IWV5gW8wbRKMrv+8lg%ofRKAW`MpnhMGJ5FAK$j%W!pJ0 z``fEn4w7m3^=Ulpu0iB?3Z{L&WQGGL!=VHPCMFRpNx>RS=cJoRnvc{>VFj_F<8^)T zqm#*W6yd?xt{+r)m=d*sdalF(wHm)ujGM`1=u17gzL&mW1oy;fSU7=eAUG7CfSW|s zE>q1pKyp${sj3D66VhwRugLabiTEm#IeQai5GtX0%1Q!d#7XD(Kn5Y^(LIos3?HpC zbs**E=)=SW!Jpuuq1rm-lY=`>+R(tOvoIbwE|*}sM@!bxo*C5CIwsc9+UmFR!SivT zffzLi44XCRE?puAwmWo@tYkAH4j)2wcV3EyesD*Y?cQY$f^(clvLOY`>|pm&ssKX3 zBrd5TVF%gAu@X=!UCj;Z*2USo>AH_g3t^E2ydw)?gf ztSn!jA{H43vQ$HI3&LMO{BA_hzHxFT4$=z>(0DVOS6VKfBbZC+Rn|epY*Ys!fI6y3 zH5eb*5(dvO1VHOfT>I6k@I6tWJ}(Bjq)4zE78)9rVZMByDr*O3KHXb^;IU!hK`;_n zaS$>L!a71O10iw_j#mJuU@u^?F)zN_2~fhFZSDAQ1jjSM)>@Eka(pGfhPi*pIFStx z!B3vif)2#6y*Y;hrXg?g?NQQ-to3rO6I9GRDx3ukXZ7P5_=4hx81)D=!wu|B@quqUiYi zg}QY#$VLiBGz?!cEJRY+9u>6z`S6E>n=`gOtG51P50@nxK z*EbZOP{_S&NbM(Qne2<^dJ`%f3J%Xjei5!NgMyIgA}drJUr)C=llNFAA}jw8b@=y{bjb z20Y5`!YFI|XpDI~FmYi*C#dIA*r$TAtV}Eo2Q|ZovlA^|k2|ZQ$Kg)LIJ8C;DN~k3 zX_$eOnUsDp`(;#j=JVQGIBXsetYQKoMe8te0j4X*A!rcs6@@QjRUivR8&csozD0q9 z-n{3S^)bhhtIP2>GLC!#=*d2izY!}qMUHhLOv+yuo00k zukyJc+9L@P6o6asnDH@6-ZvxN$*M_$eT&bo&SfmNz ze&E?5b90jH>9pVcbn4W`rRmd0k|L1LtMenmwl5zk0>azCie#=}?9V0{h2*Bs71^<) z;a`w@ADw1JLRs*4^(w9_&vvO6_-0YL-66-&)$$GXCGx>U&-{t|G_6t`FRt#=ECh$} z1mQy}E+kZ_kW{{Mj&O$ZV3oq{VU85PGk1d1Fe>26y!Dj`4-sfKrO-lS_~m4zf!SYr zaTwyr=Iu*v56C!Rh`Fx&EQD8Dku`F?(-#tq0}F45l2xO@8pOK zS7mAJ1)w|ukc`U%EDoDoCd+A*3`KCB1Cy@Fb8+g94|Pu###3n;($%29mvBnO*1v=6f6qI5uQ-cKdbqi%JE95c+ zN#~(>wXB**acX(WAtM^e$I@X!Vk3``*#e(wmMg@wPTF~%k&$RY_EZf}%622QBe(;h zq1af&zHp4qc3+DOyTC`-!zH77_($P34L=zqSP#cq;Ziog?YHDNS*uJ%HawZ!(P*89 zYH4iceoE$OY~?gF^wLCBiGU)6!u)AnG;Ghnxb4Le?ZSr)_+n#c)!dSOsi2d!D1o`q z$GUj&I?+|*2;jFVt4K0cnG7()eY^T377seQ6Nx85>`K<)R;jAT2Ez6;GGW*QYHIZN7TrUpf;iQ5o(aD9+Ki4Zu@q$WsC0WD3{VabaF=k>_(m{@3 z1SP1N(j12!fc>O~D7=;Ylz6$_2#Mn|QhZS_pDXmBi$I^EL>Mk8>Yf7Z_< zsH|)z16hBNLv2>}R~6!n;X76AyaUTvQ+$nyT*vCREyYbF)mEWFKq$I!D|={x$P#2x zJ~zNL%1kgx;AP?qZ{%k`Ya4Kf7a6 ze>v6sbf*2oZ_I{?PLXz`J};uANh{4Wji%LI5ILV4?AwUjAXtDz2oz*gz7htDK-^Lq z^-TAYY1G4&Ql?RlCJ-}GVLvWIOdt8SleE@R3Ka#%RitIkApzxIY@L;kBrUB^Llyv2 zpsB*d$pqb{fS57IahY<(kRURGac0lZQiA7$M(&6=DmMjP){J;7V>-e^A`TmtJ)eg} zb1!v2>$5IOBC|udC{a|L4U=cM2+fuHn9b*6Hm<7dg?tGHDk~Z?EJC>Iq*&C31I$g) zvZ}a8nE0SRJEGTfp>mL{l!Fb23#)_-;gTG$N!N_SkQIi=0sliT!t*WUS+F%GI@*ke zvdcmVYgx>bg|=&{rRIujzHsPhSfWndnr_m*tQeXPl*f4!aXQBvmJbYr7#vY1dHle3 zjWogdCML^51_{>sZAH*$b0`o+D$=&^A;|4xn_v3=T<5dT(Cp-ZLc$_z`@S3!JUNb+ z@8mFuZ3gTmc!x_=ps%8o`?G`NG`DZk5nv!;7|#W3J&ckGT4{ADmi*0?ct^-U-eA3Q zst|8u(r$~UvpyYVzx2%k=NX`VDL-Z{zg@$DKE3?5b2%pM;n9-$HeNqCitiYN8q*EX z66t<%x`#|s!Or18C1Sn~Hj$dj3Hr`K8LE{hhaNU0}f9v~-*W<~cKi zYi#nZoMRbkSJBzG6QO;D87SwG_c7YQ)raLoY@9a~*iThRfd(D|Q=m~~LM>DtnA^A5 zEZ-II`+@~CQYoJ2Z&|#X1B7*vk_LrZ$pul9NvM$vDpK}ja&hxH8eI5@SOmoS2VyZO zeX+h05pzUA_3@qDTt;Zyn?c3^3y>Gl&~KW@vg|jXnTOL@%N_RCY2(h%f zXj!QXRW>_O(*D_M-0nm*;H!hO7BuUqJhXQl zd6#ztNNp7io9^`mA4MEX{^j`=%-YP3nc(x2^gc9`N;1luMOla&a7F+^2q*g`7{7Vn zV|h{q4f^H$SZSU!CR?m^(3cuGMLP^`J}hIjL*7n^FN>lPCU%H4me`^`2FtG}B~g~M zvga=GD@Yh;8dK?bF=mEN>+_b&zZ%d2srNe0X62wcRc6@2dzCG;T#+aN#~08|YIe)8 z1HeW3ePx)u`r4;T@Z2z|34tr|SM#L4WF=+f8NS~Ql3y31J5`-aMw4xaa(|{M2VM@V zb3SUAx<8B9(iD^9dBD!)9mZ46$H^P2@rfI{bz5Fa3nv)a8_6eb%LT=tyDn@ewrvC> z2f}=iwbMcA>^XR1ft6^6Evuk1@_cw_7DjbK+yPdV9o$6jC+dtuVpK(wqu8F$SC@yR4hret;Vy!{okK3;mo3bub?Lvl~MO9d&wln+4*SL~%4Q)*)cu)K<`l921*@j#4bwx+GkJQy3T zXu)xlLaIiQAPR<3+F}A9av(=0V(>!F1J;EK@PsL9fXfZS4Jw2~eb*lG8zd^y#mtc4 zY|0^QoA}nc{Nh7CSI>hnZXkeyk7ZfrNHfW+!WJhiaJ}Vbq$7pEPGyT?4`iPEB282Z z{z!fgWxK@{QU8st4R`}nRQ@OEkYDiAbjUB~ol22Ag~?401h@iRhvHngbRNuHLLv^t zWa$|IucfWemL#RM^6o_Ka@xNPB{L|az2$!GwwGY0-dqq#mji!$xy1+ggj>CS2XPiW-yO=DyQG?oXP==dmskHdoeztWwIovBz>|e z%PC`9GCeU%yuaE!iQF4UviWN2aaIKjJSc<69`(<$I)6?o3r1HblT*v+mQbnryI!B9C%akJ3G$-aYoCxy31=@}jwpdm! zW5>X76)R(T3WiJBjF1MVUXleRMsZk`L>=><`S6fLLoGXW967e3&~jr}SYAH6mTiA~ z^N@wzJ|O)pkxEa0~<3w>d%1f#^gPYQkH(IxXV3y~}dX3UXoBPuE9;;o?x^G2?G7+uO`v%tV- zoI&79q+uB3HvYVYX<1O#9BZTCm`iKpB>GD`NqWPi)-Lr(D0VEkD}97C$v~jPin?OL zRh5756~s>k%GnGgCz+e!za*hl#ZE!9_)VMxw^ch2`q+H%g$Od&u{Q@Mpg6mAXPKFn z(oFstYJYYJpk(=Q)C(g@g)K7~(>zCa=H=x=!o+otIE6wVS^)+ZDw1lf_7i0SVakkY zYR@^rp~M5o(t`qlk$z{A(V2)8eZ~`V0$xmN{w2JD>nXN?8B#Jc7*Q*J+wW{uTf}HR z?(#qwR}R5pmP?*f`c^iRhk(3(43h&TxH?0LsajCcKFmx=M<%I0W7qwHaT;H+`>H$I+9%gGPZ&FS9F*9$rU~tckZtFq9|Xnw z(*-v*xZPQ*xG@-{vn+$ov#{`HUO)(H$2yF<2ug`^A(EKsZu%gu9r80uIkFfZ@gj~d zbkZ0c8C(j!u{0Fo!YW8E2s6wU1%%vKi=zk=cB47@99NKEqNtOD2Dz6sf@5$9*2xA~Xe8cPhb|!kNCKS4 zqjMlAYpo`kZE{!JF~glpMJe+(FD9#sHd1K2V(luFCKt+NfW*xPaymm;QUQ(>I1MD` zYkBFrQPl_!w{{lY(@PnW+>tet2&$hMvbqnX3a=$KoUEHWP#WkLEbABS+pn^+tWV!S zu(G*VpBSzcu?8i><77OTEnbepd-x-PeDN@7ch>bR?~h8!%BESg?jnLkR-zKA%G5Yp zZ=<*-Rpygz!Te4jx0Oi^i4K!%Xa+EtHy}_~63j!Dw;zCg#BnovRas?aKh`IeUKgZ~ zr13|~pmN#ofISZJ3Jl^#vKkzI1#q{0ZiXUcDO^*gF81Zv=?veDWO4+?5k<W*)`3lVkTW`d(&V#pPjN=; z5@~!!j<^gwe2va4A+20)&O{kRC5MA`4n)lXadGnnVQpg~t_+84K9agA-KJDdw<$T} z=1hwgA7(V|*Wg?AQD|>DFP{hIuC1NR#~|!G$_e4Zyvd}iFB>G*i3iXmAM&0r+m{ra z?cy*`uu_FE60eF9K1qT~h)=?l<%q_6)ilr{Xt>hoI!fiQ#+SJN`=W%A>_34TRnuvt zFa!CO)$Xgr7K1y+Vj_GXK+!Psw~U?vB}m8kvk?+i_#OhNERBf-j)kbBj^T!Yy10%! zHP(z!Y%?<0PE2>8glg>;JCo1w3*df2%ndckUVe(=X`pk1h#MsLdQ*FQbKB$$qQ9HQ zm!Kft8cBEy6D+k<91*;~2ka&4XmSVZwAkfi!JkUtm36NhVtu~ww( z`5jl;`b+#J6DF#AY@vP->s0oaWD=$u;5fZBjs~i!XLV0?Sf;*7<^*wnOoP-pZuP~B z0AE>+34#tx2RM282)~GK{~y}kwY!ZY$rja5!JQAis2=+)0^m!hAG1IZ6lwDT1E46+ z7c8|*yLCq`c_g`y=Ss9-TlZj&@NXN_||jmZ2m=(5y+LriVt_in<~k( zX^98UKdt6X^#c&Q<1blE%8{`_jo@QAgNnZ$2Onbk@aLAw_E%2gQq4uMLuDDHvdW-4|?_U3h2_!YIWD?}oCsDLAgZ*1U z|0m|zYD{O?Bq2oZ7!lhaY|eN(X=9N!O-QBLwBASo!^5Kr83a)~@8+fki4;t)ZHtU8 zl+|B6~qSpe^5Gqv2Q+J5ofjka7;{xvhF2_G) zg~+k32MD3(5Kfj}^hLNV9~lzf%SVPpR=^`ePTV*8$dK{T=f@oVf=3}0|MNG3#P#_> zXqXArTbmdLl(Rdyw=mOQIK#>@o`s3jsZZKhMC2|w<(+_nO}fenPWYB`odv7Z)4jW( zL=~%3V#pnVecL)CxRG@UO>f3R+cu`e|3u&vj^RyCg>o=aS=RMoo2R2geF@PG@*Ew$ z#kp(J9t`$6j~n3&6tdA&`${v}2c~bPi`FdYKy=GvkOcUjqc`6J`_nnceqL~U^K|r| zRs3UwIXryUp`5NhjKL7bQ$C;y?5g{;T$iSANF|KF8IS^_Q~WLJpEK)dxX4UzG@f48sk^Vn4DzA!&U_dod8r z4lwFyFx(iHz~Hn_6)VY88GWad(oZ~R^|45Jm_rOKtT$dil`xoU+|(2LxTGnTY@%@y zk#gX2Cvp^n^cavzCywydvxmJ6cH!mu7=@gH3VFpXzfryWKzCb7i4?Ag!tkO*l z4hEd_t6StDp=vu$&7oN#V(!``7I9ltMnIk}AlJ(y%4oN9lxIM8iX~=csA50@?B!^% zuNF}%hqfaqZm>^)E?CTmUag#qK#;&LvkDm5K3V!IR5}umm@3{Blqx3X4kMAOTX2Qwqj#YuyuZsB9Bnc9| z{BjD_;_DC%S(M>q&~a!GO$#;#X+QfeZ7xy5iRNqw9kh7OP|0mCen^C<2Oy&MUd}%I zkPsO9kpEd)q2yf%p&Ps`-rSp8r<(cmi{n4}TFG9N{B*~EYD{yeZkJ^0$wWMFLFchq z+@vn1W37@fUze4nLj+U3SRk})2$U+)AEj#a+ap;~u?JX`Ti-!FT<_|BA2GFWh&2rjlzx)q%ib} zGO||Yct{Luxm4O~UE*L&(m+ACP?^zOOO|QZdK89vXdz)SQ7uSQ74~P4GxcWVpQ_`V z9F586o4T8U`Fi&1$tR0*KoN_HMNP7^dJ|is7N#dhm2L{yyVP6Ka|lk|5qcj>P9Y4T zZpj(UU|kR;nc-zqJuhw%$CobDUq^Ug3SM6`=>tVWm;eZj2X)S7Ab&fmU#trJ=w4j+lo(zk2uX;q5={j^!PpDm3pn`McloA9ly`j)*vI-f{YOzvDmb zj^!N>I`4S!cfaF5?2hFfk?r2hRsajvJ+<)HyW~!}EM1 zt2IZb1ckoPc%7PbDwg!XGUeB7L0Nc{UddO=P>~f8X0XcD^^5cEX>^MaS=fv0y^=M+ z1Yv|3LC8KwuV+|6Pe;EUK^}Sv*PLK>m#TjLb_A<66yE%a6PVv9TUc?o8pkopT$n~< zzArnAppk+5K`kC9WOa*XaFb(95#{xo$1FYEBUup=7+Uy24uEMhIIdr?R*ez@b}2-C zVA#YM!cQrBc^9_ddZr4!U7yx7kp3YR2Iq}MFjxt`d9Q!Cbc51lBrZW9%uF}%AqPOR zmJDc6+_EIE5Zb6PTg3g&pn?_@t2tu~;@IWg%mbWFG1OI#_mk3!$hzUYM%+fo&2(`M z2izIN@3ldoSC4s*s<1Q&53lKkm!n0V!Cfc;o^C!M(yy@W#4K|ULGnlVY%=Xsi^85p zAWwe2disU8fxvIX`{EKe?xads!gcy?xOX_E3d*o(9aV7;X(?pUUBhf$ERSzTwi?s; z1kzY8umT2D@Ja%AJ=BEI-i9*!u+rGSF1JnHjN1j5H(*LD`oCbqs%sM5F5Iu`iHYp& z>&r_R6XuJ{7udF|+s*C#7D=8c&Go`MHz-Vq?cS)R-Xp;C^mGq#t=za(a_Q3^W?%Jb zk4VoF9pss9#GYq%D-a&i9XTvblePj|%Q;f@dS|UrECoK62wKgqf$p}MtV%~kxLrel zJd#ikvksXM)y#z{63RnN;6!BssiyiWOG#P9AYc^>+)kRj3@^=L09z7x9WnG2gn%o^ z&*LGoUAQbFEh(1e(1=Ywqj8D|0n#(az`J5F!+=P@+S;t&pMKkl!;$FP5iolaYleUy z#%fslhYDkbThAy0>wfD^Ve@RVl@r)L%=UsD5;nh#5sORP4bvT@8}NlAROwi+Uyk$v z6y$3rO_(73C$#d^i*(^)Jkvf%l((*<@oUH_)F`CmE&Xi zOQ7tXsYAW9#x~u}JSa63n4a5R>Ef2jCa|>b2s~gB;33{K)I_IiJQE*x)ecH1ipj%S z?V(Jn#-STq%V9>gTlxkQ+KJ!G&FbuuJ{L8LFGna6^5qB<4&{!Ezq!3e0Y+AE#-f0) zklC>;`)K0ink&qzYBIWMh09UVCxyJdmRq4w2Go}hC{gkpLa0a^c?di_gN;HrIL9{q zlBsH7vuVclSa@n8&%w#BtL}R4lXZcTp^*l7=;mDjM2wZW_jCE&6 zb1cx|V7VnCMhw6;vvb5=CX$<0u?v!{DdKNs%P=?A>?UMTI8boseeo<5)ufZf*9*D=l_nYN6VMz^nGOuj{6&tr8RoGLBWr=<8;My z2e^aKN;6M}3OFNT*Vaa%ysQcc_x&(JbwQ4@L~6xACuyR36imMEI|@zUruc%(Y2RbQ zL!k@GejsBvNwsMTg~`M!ac67qAwcC0R-tg13RM=%>En?V39JQho1aBGNav_=4}1-6 z++0q>daM+r#(s5E8e4vejxfL#+Ou~6%jC17Jvb2g>=51?Na;_qQr+KK_7k?^{oQ#~ z2s$B-f)TSnu}YZXZ$2lSaj`8Yzc|rP)IywMU`SSG6m42V7<|&G%s7{&*hZO6T?s-s zA}bWtz$CGJd#n@#6`E5e7(Ry#!D$`}yL(O;5X||mS&6Nz(!#X7#s*nBgPpC;KfHSV z>CO9hntPJ-ka1|4?G4fmh;0%KRoHHQ#cyQaNYE1Py$bWQ)kj65iU$i-w8w@vbiAXw!5?q%UOvoQJI1bLk%o%A=BzZLD_(q&p2EWt+D>JVF=$ z@Z+2JWoN_eEuqPmDT%b)_W||S_o$dQ?yh`&1k@F3-WjKxLUKwGrc+11d7 z*l4ltYDFkNqlW->KzjEgPF!A}WarY!lONx{-M&@{Owe6x$@{3;VAqf&F)m?r8dVXI zhawo#LQyFrXpVjg(mc6gh{VYBNP{^s9y>9Hou7Q2IL@RpuSL-Z&YQoCPKf!%ev^^6uZ(!ym3K^xEm6!4#3Vua z^!gQj4t}!0pEVvO3enDk$VY%Q2gHptD7a^*UPOabPgu{8n)|QsdfD_HpzZ=(F9uvH ze#CwESaigsI?RJ?`E^k^-iz<%B#8>rgN#jsH^C$C<{~=~*6?27r)KqP>~jr7cj}74 zN1u^`kyUfwHow`9%tnkCNG+A)NG}93V4Dx-<l$^%S1H zPO6&YByXxrr%iV zAgm2ZnVD;((|W%mn!J7W*N5%;;opCHc=zeetGC%$TK0EsFy|^vPPW%n2QGV}Ie-OCIxI5hk_x)nmy`GK?{mX^Sv#4v+ zixkY?C6 zbX1S@^o_-`p3v7}x+PB2?#7n`HUh5^=xjfJV@hd2J=$3Wy}7IaRJ3XM+6&#<14nC{ z6+8XNb@X~6wz_wrpa0C2U|xe)G8&nm;6-hbuBs2BT46(34B7mx`a+WQm@_b z8zob%`YCLJMi6u_{-e+olpiq>vmI?43Qh)aDn~`P{khJ_eQjVNT+1s;v4c*{e#`h$ zktUKS*40)o#Ntc*>D@>3CW5S{_^-3)o6~WM0pl^;r!K(DY#d~yf6m0yq-GA<+8ek& zNy|&U9W%gx5l)(U<^WiiabnCr({A_zbFPXtT4c(Z67G|GEqZKxV)gB82#gx^_c10BI4k+-u z^dkx=uFLqdnWH&44rp0rM?CYHe}x)}2V4BhIE4eTj`mdDpOFAFF76VaJFQ=W>g&8J z1DT;AR3i5(%1|Mc9!m90I!nue9zKvqgKYZRtL0b%q$W6_o@W~}H!QxoQXfnK4|IDx z?=mMtQ^zUpRRC);^weEIHfjyb~=8>D$&nL!W z?r3*~v{@W{*&36l3qKBgXSR^#cDpsSit*%~3)s8x_lHf)-?afyckG>``5a;8*}`~f=c3a&{b z%LTUa67KM;tJB#{@!0yT43E*&uy`vpEc|bfF;uWdS0U5_dbojt??Ki8-?g3u((L{K ziI|)?VpDX9a%zyYNi~aC=kjD}dk(^%PymEeSTU#CIl{ga0a1a5ELB`ZAM+%8`f~60@7IGPgpF*rcK4z7NpTcnzKtVJlfT>9L{_x^?0mv#C6J0i6Q{+z9hUjUU!j7o-~aUC^#cWUxkD7;?kV~>C&81= z#@_r@KS60AbK16eF~(f)EX3v(~aVqgW6Vt>*Gn!|t5=_;$Q81WZP7o`0`PS*|*N|Rc^xk01_$?-@b z5GgCm>Sf+o`armzj?Xmk&n>%$oh#p zal7wIH*u?kqxzLjrikbTqy^C$MS%!o*>R*#@XS)|QT!UiT@p3v>51to4&KR-#r2+4 zZb^qC^z+0nKW_@fH97QEZ^@@!)HOK%Dbo9{S;nj>dd5dWCNO}$vrvO}#zYnCJl9{C zHzB}aASCXH%|=QI`;wK`-W7v81n%4zcyP>EOA~!Kuf#fNq!VbYdK9V8fD{fPs!HMe z`|OIsL{{wO(nl46TUnew1nTx1e6lGR5#z#a1Es@fJzs=3Q+uOu7~gd(PP9h;4=a(K zU$R)m0JF@5MQGD!mY|_ovRL8WXd=*F@fw~>v}Ov6}@Pbpiq_3>LyM1txbnEtQJ;N%D>ru6oD%q>Q!UfPp5UcsUH$0DdnKhPdY#O^{37B?#E8UQ zb0Yg4=dVy_JO?at_ES~`H!FAFxH(#eAG?8{aUXdc*&1O_gMcG(8zKGnT&jd1Q^m=7 z=zb=h>vW4a1PL&^Xq4MSN-J!m(!R%PNr=1Io*-v{FrtqL10vil73k8+{p{-nV!%7& zQuT)Q5!1|5X*oNg?`f#F*WE`v-OS#Iq)qk!Y$O@L5!gAOpb?X#ZVN)P6S^67$p{Tm z!wZthqQnGL)fKECMgYwcBhxSYb#%+DkO|bh8}*`BB`4~EaK2s7zrJ0JTrZ4cy^!X_ zg}`SfM8uKc5cJSn2XWt~V%0+|!5UHQA{{*|RR@w@o-SdJMjSILCP~;O=J24AWrs&N zS0M1K9{F+%pbj%U!10Fz=BDprO947%0ZmAg2f|XGU;#~@h#to@prGFUw>JomM#9539h5pW70y#_71;dI!`lO-V zg}QA$nXjYmVu&uc$QexF<~H2d%tO*$BPzf2?sQ7Y_oMj$WjK0KG%ZYzpdp6*3iUkS zzIpdxs}|8Lde0mfQ{r6wS_$#f9nxJN7}kJ^ihJ7K`P$gP_$-reBxHH6QHitANz}-1 zix*FhC!5>JiTC{CU34FA&S-RLdy{t;UMnb{Ne)>p)v?GiCIfv$M6eu#60PfkGJ`t+ zGE6dq(+S;^lJeOt_6>f(;)Y#>xdZvZE14l2$_gtnkDpChsPx&PPdYzFpL4MyS;7C$ z7FV-x7iUb!f)7~{>(sv@m@F_ntgl(8;GB zi=wDatSlt=@@>O8SpIE9;;MM#O4E;9TgHw-Hj$9&tOPN1w|<3&257I1C*swsr4p$U zX41iz13)T>Qo*_~?(hN>FUUCgge%bRj);c+ zNY1>8?`3D}rz^_cs~0VoqrG$tEvEoL&NrZ1P*u>=9TF@T4W=PulpT<6F8a*q3{@6} zS8W`o_@vkr9Nx~b%hZ{SB}jh~^|%v9s2%Id4l#GQ0eSKMl*7B_q) z;Z^p)f=vFWqAss>Syyl2hDNWj9!J9a+5q|Nf*wyG&IXPQeC-G|aBH~p`t)mT9HWE~ zAWr4{OZ2{Ldg*VO5GhTplvhm3I^3Spb?|Wf?B;5W2XZxd&Nr4W$h6l1&fgK8XkBXA-Xz#vn41ES)`i7z$^s?9xt ziucQk(Zer%Tq)~%S=VeFto{ooV=~FD`U(ga33`^9=RE(=uX{oC_TLb zZU2X>bb8zIcV&Qv8i#;$28f?(%GDE^#%AxkP-Wz&f#{BnL|s_`X-}p+FTFy%ld(c^ za9+1@MOCGR@q4qlmPyO;N&z%Jq+3y#z5ZgmA|x5+ow9rFP@klAHC*;kMjjxi2Kpct zr^U~-q542v5oiXv7E0YN_Gvvnev`fSV48Rqt}^avj*xyUs29t9mx%kY%iH~8>u0(s z?-q7`*;ajtK)Jp_^>9qC`|xb(nK^-mfQzdk2?ol41#4OAw{o2kmS;Yf{yyH-rwPR~ zYR@<_s!|k?ejj_g>e}HuUbx*1u}g@4yMl)G+_wwrG(3O4So!L3EX`;bpUr6YYMmXX ze(0Jux|ZR01BXljL3piFpNs7CX$r23{des0fCW;VBVfi5*Jfz>;@Yfu_NxA-ZIqM| zfk(!fqE#4quxZzj<0Zx9JBtGs4T8n&4cZCt=tfQ^Dj<4CU-D)vLaJ>cqpRJ*ls!x> znG8JZl2`4py4#H$M}*YGR-l3M%H+_-FB1^vV!ai4exid(UT?hyx9b1~*fP7_EFrOx^C{dIS zM3yfn_Y*fu(^3H|W)n|fvxJC(Q#7inu6!M}K71vr-_GYn&~utg)=^=4PZ96rHG?*l zh1dbGE^`tyA&J=^ECA`CJepZPhwgc6n+q7kCvL5zohUzlB6}fC5+G$wCtvEdrZnw{ zcp4sHLQRS(gb1YdYfgz}RN5!|#ZJ-}nar&S!)r3_GnZF~T_m)?>Hx7CX5v;3Y%p3m zjt*huI65|VO!jJ~A1WH~>rN#mQj(z1$^WWh&A@dnpkcizjpDphI#_5Wy+OWCZ_yBp z6a*Y~kl40zj8R$5runvxZEF3%CshqxVPKx&-nTbbY~{MoP4LXkq}Y5YxZdut9#|if z_nke-c)Iqd^fDMj$>q^#>czHfhvQ~)+9A3xR=Swal%~Wi6a6R_=6ZDhD9W7KgB1{M@Z{l$Ucr{kNwR@CebzWi|$&D2%P_gmRm7saKu` zF9L2W0Cw%wtSCOA9}tkkKO2t3$k=j>X=>^uus*v{e^gY5lUIK`c<_-Vlp4oR&yKdZkQaWZ8z> z4MLKL-4yWDPMRx23zvjU?3hFRaIp9ZDU8|pO+@GrpA2feG&M}#ND4nL0?rk+VM4I`Uy3=Uo`r>viaR@h{luJ&8M8>#h zI^|R)L~?xOaWbVr)0E6nlFX(E#UFk8%a0!(en@?JQkbpDMVv=Igtr3~|D9g~X{9tg z!E~3{+#MI)nG3`oS49$8u(6eH(9;jp>GF2Pj@Hi+oU+{0zf_Oo7xqOnP6MFx*!J<^ z!-Jyh!lQ#CgZ0rtk?V89tJUMoTIQLc zexO$+9fLXV{%-zta(zXc!4{|&1=`7HKS5Ws161JECXYfa^J|1L52av~*2}iPwSVwf zJRMBV1UrQ(m}(x4C5EL`ZMZDK7C{VKel`k65fAi<$+)(-#zSAsVFH;m%0w@J$V&VD z*17D93r;e}*P@oiIvVYQ#-F;|$xP*>WPg8sPMB1ApCT=zey3IF%*B+0Vpr*pQvtVF zjm)QP&Ir9}sKb6uE>Su>pl8T}$fvcPP~>+cQu+~i3AYWS;Tj+QR7xJ?bb%Qzh>Dyt zDSb1C)xZxn*DNSaX8>xBM;xvs4Ch!qAZ|yUgS_A9r)`S3G|>ors*Lo{PHj}S8=5vD)M379T{#qBY9ErESyNV#Z2 zl+f#Tk&x5dRWdt+k91I2QmP>&3?3v65Ra=`5!3;;6@)Mm?K6E$Lc{O?rRySV8s3Q6 z)dmh$%^=YZ5nK@Yui@0)yyOx}tZXDBMp>V>I#7CE4+eZ?GqD@=P?4wzvV$^^Bd4~| zdSdIa5Us*#W}sFU`{^2}@2zHlCVYtJx}6piq`273>ljVHIcqW?2f)6Rq79QE9!9Kt zw4)36{S3rd%tnTG`mN1k1p_ZweMl^qPShC|7Uj>k>w84!Ob}I4DH<`Pa*)4QM#9~G zwTKkgJSHI(PcR~7;3~~Ks{_)!Cb#&xyGG>}ZSq~~m_pJACiS#m zPQ}z#>0jil*5BEZwWj~;V1IHlnI0S+O-~LdCnrY_|2#cmb7$fLmYyYK_kbWnp&Dva z0S(bscC!5n{Ggcs>2Xmg7$_l49{Z>hVh&DlM(mHM>FNs~HNz@Ei$ca2@u6dEC6Ybw zDA@rSLLr8I&RubLqge7x@(~44LenbPmp){1wsc?;*DX|GGq+IxDe1Z>2ZF8|G+s;N zBHuD~%an|(E95psxnq3y`L!l}v`4RkR8_^MGQ9IZVyi`?>R9V8wYh4U=Y1^`r!1Zy+7*naDhn(DGXW}p*Kaz35R^uU^$*tNjpX7=-W4XnP1 z{gnQ{wQ@ExcdOH2+lzY|Y|LXnA$Ic%;8wdu$finfFv7cA{|qXohH-$^31#CIS3|8F zT7L+ZSS3C_Gwl9$bvAO_7|c0V3#ce?7g9=doDfftXD`Rp_6jXwW=Gcd*5=Ri&hbqX$CgH?KN zau#Wa;6f0gj+-Oh**}0=?Eqa!>|qpntu`^*^U@i&*Hi!&;#tTaqFx5#-kx>u6C`HE z*dEaRG(K?ulZs7fH%lK?u-6K;M(WW9A^Us-il(3{b9g#r@=M1eNAY>u%rq_>?ASeF z*)C)BktJ}qAFu0Yfb1|9EM6R){Guq|?o~!lJ(|se71dgq?+tMSf(xX|f!$tVwu%t4 zQi+2|M1=Pd(f|n~{#$^q7@HeQj7|YM^@Jv^qe$P+E}7OSU0R{s@G_Xc(Tw_oQnmX6 z9A?B5`4&HY`1tAS;oT3P{=6MeHXmNS`}qCChmRwXP=N2SIwYYD3)weitU*yd^r0z5(O6>aZ*^?>krSd@Mi$WQ_p1ey2p zN`4Tf-!MYB;)5pxBbjN^XVHmGFsW%^M2D@iSRdttUG)cRpi;lNr#3R^7Ie&R5u^sB z?}9Pn<_?aH*=Bx$iY`#y*-C?mokh}9d@HNU$M;HCuf>R=FJCWF@Fj?tA8TF9tqz+G zKeCGG5$$=$1z;3Jz{F0|4EA8Q>*Y><#_Rc(F474J9OB;_nhY#rh(;O|sM5pu`X0D6 zI5fPhu!zGnae0b-EN|~}N4KkbW|-qO9e5fOC+5hJ9rPvJL6rqO&t#p0g z4M-DbnMf0plAawyNP70nOeV(ExuiufhvWxgojicMjTQ=SPvqLnOSCSrWn_|J1RFEB#VhE`Fh>8z4i!;-!Jd`B31m_fQP-ztUwnUHx z$x><)3%sd)V%4F?8kfM1VL=&S*5JTU+#;F)Vu?F}_({d3x-Nn%Geo%is{rBK(a}Nn)26dR=#( z#HM||1y9D=WZOlpQxFgYYe0HETfC$g1CtlT9o>htMOVlY?fxBjf6wQro)(^+@iQ17 zjcP@K)kymfr>6x4T#4EHZ_TL5um{0WeciIFgp9ifHw0Ci4P>~VH|ev&-3rq5cDJWX zd_*)=lK{a&30O;e$MuV?3BE7|f-kSV!SRkU8sa-<0%LYBfyp+LgY-IX8@fD0s4|7M z7fd%ZMS;7;gK$(;50E@amxsh8weO?|P+{S_A_P+RPdh?h!H20b4or{L(D5>0A+=o zFf8)o2Glp3+%}7w;#B}aVJGLnzCggZS*68F?8Mm4n2=ZkNBe=K2UUzjZB9>&lIV!q zg~o%~k>h3tuVs6vbrN3Y=-g57jK&!!wu*(T=c@PGiZlZQv@&H^y2VxNLl0D)MLzK& zHlVvINob2vPST%;zE-+-XxT4YaJzvoIqc2cqasBrP7Gi6gpQAr|28#t zu|7i_4QMy^(VV|g=LCFlv4M0v2-z$!1LQ^sJ#eP99kGrYRerqw27N-nD>}zo3+jK6 z?pUgDlzs~)X2`?%|;lEV8m$3j~X>X@ixEdWl z%r#oh#%Hy%mZ#9PC-olYAw(Rj8(N%4*VCE}Qcz~KQVSmsd z3;U6g}zG1s|38y zd-MF3c4}eqVVON?rTLtjS(Fz;ynaOEopyhuFt8Y)kE1{Y{s^8h zXKDj&wnbyz4U74MaB}LgiQRhD0_hR$QZ+`-SXB03!gNSFgTE6-V7DlRMYtjf?1B|b z+(;-@6%4oW108N2^#dJNKM)@a)Zk+~vz8(H7Gq>sSr7skLAgJgQ>)wO`U=W}rz`&m z{uG`xp$5g0cNVh%9AqlJf<9rSU=ys)`!t~RLQ*qw#O z2;J3oeu>;Q!bC)Mnn2U?0F-D^EA@{Rw8{bjE;MDJ9uv=}TC0vTULPSXX<1M$5SMfX6HkkkWOKJhpO~0{09^zPO<2hV!A)!5 zq_osMr9v5eN-qa?p#~P#O&!!tq=wZR4iLmS!u-TBg5=1h^O62%L6xxVM>w8R# zYi@p|%Mp|!scdJo^AK20eGjIv3b!yU9LPA>p1obyqHg>2Y)viyh3ONSNd3*Ui$^hPH(|$p#?~U?+4IkT%2x~3`b_9c`OQpF_ zzK$j=UV?CjSp-87KR#Ps!W57S?zxf7?Dw|S8q}BUW12xIfdjp7D=1L_&I{;jo;aTY zSW^H*v{&RC{p}CMo?=ojuQQtmWqES6!*_arsf}0M&sS*Z*(33M)N5xRlj@xpFmabIY-jtxqaLB zfBk^`K8i+nk?-f{^7UW-@$%irPp{s+e)#f_XRBX0aE*bDKF%9=5(4!>^iwR5|2n{3 zV8C*iK9vNGS|@mKmH#A^YEy$ol4ekS^VL$|fitb7e%n$Cn5K{~Lt=z2Yb;|uJH0|R z$7=Z-Mlf6>{BqNrL`7P6uu0)v>3mfeYTvcqYW-knNRkwj#FAVUX~&&&c&cBU0YM-l z;W)!^qv4BeM}g;<58}8x6N%c9-S^D7O(j#3Yr7%P)HMp3j~MEFAvZ(G-cb|2*2W>zkCr z2v&Du2QN(KH}sZNh(3VT7nzRIY{i6t1JG7{j3Aq!v_0uD7~&eC>*&IR=J9L=qXPWE zTy#K!`wO;qGn+D+cySFUsHjbpSS!h0D@*QzdG9I=i!j3@GjDwfE#ilVC&9qHNY_L~ zy0l1;YOYu@CdqEpYUvnVyqvS>mjB@r;+DJYPiand8>&f-{Rk zyG}`Sz98)03Ct`x7VFK|778zP_1TRCi~`gewg$(^2@H-0)6VP0c2l3DB2l*zzhJr} zH*->i+a1#Z>H;lSxB&*EnkrBiXiZpXQpG0YgwwEuzQ> zl~Y6;mXuPWmy=t!Fq-|71UC^1R~FCiAl~H7n$K&>M3W%YTe#Xu<9hDGbU|j$Lji*@ z{8ip;JRfSyX@@{2fbQyD5=_{1{+G~RUhM{GfhM=K?P9sZT1;h*MJ~8p+-pw1i_s0+ z=h-e}+ark!&pdCTN-L9GlWih{q-}0!tmjzo8EPTH8NR%NwGiJrkpkB{i??iRCV`w2 zhe5y}OQ|xoIxOq3+`z8SWj1TX3{1e!JxRtXuONB0IK6`(z?Opqpeh%_+~^R;9(;74*h51_!*OrW+_XF9K&8FoW2G)rO93=QJSVYux35;`6E@&|bskcUzr zPfXOz4Szt4oI<8Y+jJHm#p(I!r0cifIT2Xwc?6=&nuY{wA0B5@BZ4p+6PvhM_?K~e z#TMjFV15&rnL>D+T2Z5}loAGKyl5>|fvindrgF~@#~MLY2U~6v{aBrtSH2U0%o>ov z=uE27i@C}kc>_wv#tw?aAHMsSeryj{2cS$a)E(e{X zm&eR!Rj8EfCr)Y!I4@1p^Gx@8K&>!onFl!c%TfnKBgL3cvOJTh6Og9?wF`_`eoPWV zbS@J2qygCGTU?2*5c-oD7cU2bl*l-Pk*YCfagtmpkQ8*s*ePEPfi3F~iY=^RwHyWy zG<$jt@ETam*IoZg3$vLsiN7tcY(%AmhsE;A!bib{0V~AV>ZvrYGmQ&7?S%tcF5zBg zBW|3)Tw)4MNCCgGjE{qTW_%o);O~KYzGGyXQkgvSPr#0x3+%bmg0hnK%(%wJ#DCa8eM> zh+FK)0y)s7xpda%x_qenXKGZ0HVDn{{15Yl@0~O?&B{FUr94Qa1i)9>ynystzU;K- zi1pPyn@;IdeWt@thhTR-P`+3fRPZO{8or?$(Y>N7{#b$9@}96eVOzkPgydN#gOu;A zT*_BFV(IxB4a`ixxQ*L$_kW%qi0lf96w8ew?!)N-RBgb3Eu*^?aT}1PDj`cH&q#CO z_asYVp?dQ#3kjN}0 zLE)o$uxXYIbW#DE&|Tr9LA0L~hUmQNTCG8}S{%HYF*%ze{B*N=ZunZO!SYcqmN;>4 z49=}J%Eb2+BG{AXVfMt75bwo)9;@Dit=j{;MF$Ti?Sdn0*~wBIC|uK-ryn zWm#B@Wj#^uQ3ET)P_miHr>~qZ*FcX)+7}A8jYnLdQqR{<%IC&aUEbb|NOt_UuD4AB zws?Qpt+>&E3_(mv#tuR^dr6ndSdV%hl%NIE;5MoF^c+EOEGP#vGmX+0&;l>#De4Q| zc=q{5iPB55@)$4xbyuwi!|y4j=lFXC;u4V}>*5-Nwxhi-_y5-+G6MZip|Gxhz&{wa zBPt|T@z41MYC2R(U|7|J5P%w0xWbw`V7a(x5rzjdJ}rW*Og}V`K8z=dJ1j;!3uAifST$Ydu+U;7*$&}WzJ@(giPPMHGVo2f|i)CWd?Pm~EqHHIwHGOCBf zNC16H6lw$>U7j*v1sZ~0$|q_F?vp^#U)vC}DqSH_k6Nwg`gN>#7qI39^2{>u6uGHG z6(Jm;M@METEO{uYp)yN1w;OK?RKh;OlviSx7c1wJX2HQ^yZ(lVkElOq0VY|@YXT68 zBqJ}ds4VI`UL%+blyQA`y?~k;0tGw8O)dNbtWrmu*=%~dKf^*~8&d!2^sPg(KG?H z^hWmg3)ycx_&uO55i^IUA#@4_d$#*-a7cO{icpEoc(QM8?hH=^mlUSB70@qoxL(p5 zvHWs;xC*}%J&IfAeFa5DU!1ws99XNmIAaMNnxZ(cvzm zJ%+uR;e&>POO&nZOlb#L=E$6o3NM!}J%sgO!%Kl|crr5}Q^?j-X3^H)bJc4x)`#nc z5Pi4?CX9K39FV<7>JfK`GaSM_==nkjL%op@CVuhADE{)fd%{5rAEHZ_bYM}H!45=W z)z0(>uB8E*0$a_oR#W;}_k?2_sV)U#RpY;*#}Zsq^fyw8e>$O8<@;9^x~h=)T2LsdW>Hlscl2wR z&(MG}Te|si$+_1r-JJJMVmd4cJH+&`Etm*&w}i1kv??k#Cc-uL&^>t36bWqg+A?n~ zVb})JYq}B)s&^Uz1^lh~k#2wox}8paEigU;qL2S1=x8@$IB8JP!C9f z-Ao!mA}R8Qe?CT*tvDnYFx4Dv)sTMW|HMMTc)`=w_WK;p)5#orrdDzn&E7!H>%r zrXzqi_yjQ+g8#W$2=v?Gnj^Q7P&+^uQnN0@ZXg?x2^;EbOiY2Sfu%KzqyN?;d;YM) zqi`sDP|~s4@Q{nam}fAPhIb1KE6A6wb#)+Vc0^u#g?#CkuspA~-`pX?3Ats|OH%oT zPLQv8^;}CYWT`XApGZFhWjSkG%3701ks2KxM9TSQL zt!H&xM*p6n0uaoE+x1U>q6dZNVk&kgCjJfpiIRo(AQH7NMjrH zFt5=w#+BkTZ8DDdnZm7(Yp1x*J?VXTOuSIAr8${gIS?wz;$YDf-YLU^DUQXLNDQDE zEyR}MK-YzWzPw$RNLKu=_mm(1eB({q+^c^$;J#en%$AVep(zT5eTMsP&N@z?WjG3Q z!-&f$+r2nmTcC6*)%k7KH^(7?O5rmwR{byp6oV)wG&3)H)MqXKAdSB65C`@Zm z-K;V3*d#zOxha%Ij0VmF)q_5r!r%CHd4l_pIzXFVJQY$Q8ee8I$9J)_8q{dcsC5d> zd0(;{zBYoz3)?wnk%-S36*zb2kN6%Mn5M0Ief`Oio`P4cFuks}q$TnIDO&7pVKxOO z3SG|OM&dk9WFg0G$+cj6tQq!EYqf#t9yR9b_GUq!WC?SLc%^1U@_f59IXi#tlGeqh zZj2BNj^I**mD0Kt?tMAlpD=p|F9b}0ZWT<-grQa%0@%J6qlswvJXHT{rzeomVD@R$ zQI>Z|yG9iQpfdz=P7}zyC^b!5^NZs@rMbfvcf%8M?^;_|2c!p7`|D!4zP!TyDZq}G zUmi_ig$02khrQZBHiL!m7G-21zMNl1>O}@zUSFe25Mn=kh|!s3A4A12AwY9Vo7w8F zSPf3jv5V1BtS0^&GIK zel+A^>?+JR<7Fv`RX;+766!ACQ~@pN`~hB{!V!g)l!c(<~ zGO4QMBSK42OZ|JVJv)R1abAk_lI#LxsN(b) zeLQe%oSKx@84TR4LAR^=T48~05quM4tF~K1c5JLokW6&o`Hx!Y46e(ld?*Kefl~He z#?S%kf`kDTH4xab!&(kN68y~GL`mIunbts(A3(Z)(&|7LknV%CX1#%qjA%kcFH1y| z#srlW5yX1z(=@ zn|~ojbYqx9*k@=#{R;9mvt&XlDH;c?7m^e4ic}kn9P{ZEc0@GW#-{2b22c~}RSr7xhuH)2J0f(T^eX#B(ogu14 z95rT)4yaB6#q);Gac47s(+z;M=Ui?Yfi@vw5B9`bs#3~mnkkODCq#xABg`08bJn`x zSY6D0AeKgGhtjXwa0+38?#PJj#dDY`TfZhfkpq5Budb}f$GD;+Y`HR=B&}mS8#Tp% zMp*&Ng}?@&?FOr+J5mDWMFkqeK>=HC-~ip6))YErKBZ|FIjdAbZg+BF*n?X9jGY_# zF_iGmtf}7tW~&|C0UAn0KI3e?+Vc#|#m^6~znHy#{qXVQ^5Mf@-hBM{=KZ@bD48sN z{&fE4;q7-{Tz*{t`PGL9R@A`n`K#A|j^C$0eUDE^&diVj?`hCAxzxlrpPe&z% z5|6|xH%}e)9$SVZ*O$FP_L}z?y-kl`9X8u)hfo-shO3t= zilrsAozoq_Xe;9z9`6nA9?{^DaF&kYK5Isoo_x(!y-{Q3ltI!g$(t^0W^5h;n(WzdP6D%l0Ey`amtlf<=u$1yP@; z-OS{838;xp5>JT&m^8$Hc!VyF)iSvi^B@VfN`y;t?QQJ}?Z+kU%&pu|3eaR*)|$z| zt6uV(8E24+?s=hU zT?CMJM%+oYl<%&f;yBT7WB<}_=4^XC<=x{uEC%r|Zn9A#Ao*@sf|e3V$`O|qD9uUw zO537&kMtTlMx^b)5e%qpco?Ur%nwk$L@?GWL9?7vE7lu{TE1EeFDOXoArGVO3I7uJ z8@+^=XcXQLwPJ^FL><{(cFyNw5=d1%rso3YEtMLi@pd#R)gx#fSYmRsO)vzYfOR)S zQUQQ!!pDwwI4;_uDY$5N)lqO&J2&gI!$b5Xe4j|tuYOY3iCds;znTYozU?~}q_1Ns zytCM_zJ3G}ofP&7YN)0|L=F@OEzF`{FYl@&LPdJ`R+KWJ|ML?Fb*Vi=d^dtXAOoiI zw?0MNF~Vqp0v_QO$^nn+I|X|Y%q`NHE;gO`EkgiH$JN@0L4)tNw)1*DKbGD7pkG`M zLmd=TZ|1G%t7uLy9%r_4Z3dI-VXnmmh@N1O4_}jZN(QbU$9y^QYGFQO?l--j!Ownn z`5gM$;S@X9Ye1ge-oX-&lP6}uQ^X@WQ?4ro)>oCpzv3bqOu>Mk$%`Rjk*w4myHxVU z{4kg7!09^7^Rse20xc&VBwSB$tMHgB`})>BEbYq@K5aLza=Yp`4_%p-*fLF&4v4l7%XEkT7*LQlv)Su~bp>-}+@~#Rk znlQ9zKmRWDiskwvViG)7sYEAq{EVN4=g0iW80F{yzVOXtppXiX!9kk9a6%!n+z_Fw z#i0{iXR`}`XsUpYN2nncwQLK*+1QPQ$c;zX)kT<-O2B~U5tcbn`cvzz(!y}A6q!`% z5F=a_B*j_k&>@3W3^}2%qW0-X5(aRj0|bd`EX*(Qw%rpQ0R#??D&uBcm+bL}(SNHD zQ>u!N((i`mq{G183&(SQCX=Zm-+-NlB@5$IJj^y^IkQE9LOf}TJbbpSf>sY?ysfK% z`r|09P@;Nkh*z|8Rw}{#9Mr*9m+$BmPgAi|ym}3WKpur&n?p_h!DCO?-*(Wc0cpwX zj1?e27KnvAUCq|8k$7dZSztNxw!fJixB0og0UV?|lA1993B}T#(Yr^kb;%K~@r}Aw z!bn1?OycEm#TFoy#gTY!426EeuE>&zlgE}P?Ywemh(Q!xASSKJ?+v7P(V&sc#R0uBMX)5go0VLLbB|N9drii4*V8uBKWQBl{xVt zB|#2>(RI`wiVxNJpS$&Qxfn6mx&Z{cCsw4>da9jYqP;Y{DAvs3%zM8M!3r}}El=`4 z{czmvm&a*`>0_jmL_J@x(?9|UPKM8t*|w&#nM9Iu+bs5TzwdZQG%i3^NHLx| z4Y6GHW_=n+`3|%@+0*yXT6gyFJzbinnp$PJ;3>P;uq z6`eP1j_H+0cl@L$w2udPe!VT{yLO#Xz3sC(`7~C!orrlGgY2fOWxLcYay8AmH3bJ z1Pg|nq1;>BjYaa1v>^h{P5FTHkPLT3MZ|yW)!e;x3gKy@kPf`M4g~GS_^oBk@k--k zlxp4;&?zw4qrzqV*zvXr-GuR&@d~%|uAq>ucpwoy zF`?3A=+=?!#0+jxb_+`yk0Zj1WjcIQO38QocbJu1kndM=CSW!;Y|kIj1sNX}z0J%= zbhuJse8#f~jsj&LOvv@wQ<<|Ok*oO%VkgKBrybYPCFMqI=%*LfNq+JC3y^D14r8l%An&Kq zUthibo#l(+7ixiG{Xx!OUhKgW=mkSH?zc~WgRb=G>I)<89`939z%XqL^w34P#}~UU zjIjN3A#=w-Uo8!XaYf|-HA{V0LfS>`vLVkg+^-JPL}`&3#Y%gV@lfx8Li5-9etG@5 z6zv^DB*axo5OR89zM>8+%DsNU*&^+*J6 zRO0oTxv3xb7Lh$xHjFP-a&{nNl6#oRGI5*x?n6i}f)xR%2{r3jShEg~Xw5o2nI?si zf}n(IkLot{m;78Ruo+3JuGH{<-X_~IoJIL~PJ_`cRz5q0+<=z2z9{L8o=2f^ z4YrN6qka@s2WXEpkxwq#ffDg;At6msumx{fQ4aNdn>1`omSvQi2XrV3Cx5}X3ZxfV zBm_z3RAt-Kkf*ga^3%~Dor7o;g_H1Y96x>fFC#iTCK$fzTf7M)oPBU&EGmg{lGb*xHuT?FZeqJ=QcxL;`hD zCT8kKRYVaPqRES-Fj6MmKs4O2JhSeX&s0{`?;V~IwQ#h~FntMkpM@1%H9I|@*FZhq zl>^k3QN^vE#^C3(JcO`{c45=ET0Bd~wv9c?sNzv05cx@;L{2{u)=HAWz$D{RISNIN zkq1^0n$zK?ifWeU7Xizjb@+GVeccQLj$ysd+x3npf}

wr3I4N@6U5utSB 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

Y9BMYzTjrVdxezY5vAM3 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

y&}n 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

msy%kG+AObdf7X;4uf8~$ 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

Xir-B=21c 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 literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.su b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.su new file mode 100644 index 0000000..6dd7b56 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.su @@ -0,0 +1,55 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:313:19:HAL_SPI_Init 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:446:19:HAL_SPI_DeInit 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:490:13:HAL_SPI_MspInit 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:506:13:HAL_SPI_MspDeInit 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:778:19:HAL_SPI_Transmit 40 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:947:19:HAL_SPI_Receive 40 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1147:19:HAL_SPI_TransmitReceive 48 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1398:19:HAL_SPI_Transmit_IT 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1480:19:HAL_SPI_Receive_IT 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1571:19:HAL_SPI_TransmitReceive_IT 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1658:19:HAL_SPI_Transmit_DMA 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1762:19:HAL_SPI_Receive_DMA 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1872:19:HAL_SPI_TransmitReceive_DMA 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2015:19:HAL_SPI_Abort 40 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2162:19:HAL_SPI_Abort_IT 40 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2325:19:HAL_SPI_DMAPause 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2345:19:HAL_SPI_DMAResume 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2365:19:HAL_SPI_DMAStop 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2407:6:HAL_SPI_IRQHandler 40 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2521:13:HAL_SPI_TxCpltCallback 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2537:13:HAL_SPI_RxCpltCallback 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2553:13:HAL_SPI_TxRxCpltCallback 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2569:13:HAL_SPI_TxHalfCpltCallback 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2585:13:HAL_SPI_RxHalfCpltCallback 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2601:13:HAL_SPI_TxRxHalfCpltCallback 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2617:13:HAL_SPI_ErrorCallback 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2635:13:HAL_SPI_AbortCpltCallback 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2670:22:HAL_SPI_GetState 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2682:10:HAL_SPI_GetError 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2707:13:SPI_DMATransmitCplt 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2764:13:SPI_DMAReceiveCplt 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2853:13:SPI_DMATransmitReceiveCplt 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2933:13:SPI_DMAHalfTransmitCplt 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2951:13:SPI_DMAHalfReceiveCplt 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2969:13:SPI_DMAHalfTransmitReceiveCplt 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2987:13:SPI_DMAError 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3010:13:SPI_DMAAbortOnError 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3032:13:SPI_DMATxAbortCallback 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3099:13:SPI_DMARxAbortCallback 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3160:13:SPI_2linesRxISR_8BIT 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3223:13:SPI_2linesTxISR_8BIT 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3259:13:SPI_2linesRxISR_16BIT 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3315:13:SPI_2linesTxISR_16BIT 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3375:13:SPI_RxISR_8BIT 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3431:13:SPI_RxISR_16BIT 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3464:13:SPI_TxISR_8BIT 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3489:13:SPI_TxISR_16BIT 16 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3519:26:SPI_WaitFlagStateUntilTimeout 40 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3586:26:SPI_EndRxTransaction 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3636:26:SPI_EndRxTxTransaction 40 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3683:13:SPI_CloseRxTx_ISR 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3778:13:SPI_CloseRx_ISR 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3841:13:SPI_CloseTx_ISR 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3902:13:SPI_AbortRx_ISR 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3938:13:SPI_AbortTx_ISR 16 static diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/subdir.mk b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/subdir.mk new file mode 100644 index 0000000..c9f641e --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/subdir.mk @@ -0,0 +1,63 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (13.3.rel1) +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c \ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c + +OBJS += \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +C_DEPS += \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.d \ +./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.d + + +# Each subdirectory must supply rules for building sources it contributes +Drivers/STM32L1xx_HAL_Driver/Src/%.o Drivers/STM32L1xx_HAL_Driver/Src/%.su Drivers/STM32L1xx_HAL_Driver/Src/%.cyclo: ../Drivers/STM32L1xx_HAL_Driver/Src/%.c Drivers/STM32L1xx_HAL_Driver/Src/subdir.mk + arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L152xE -c -I../Core/Inc -I../Drivers/STM32L1xx_HAL_Driver/Inc -I../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L1xx/Include -I../Drivers/CMSIS/Include -I../Drivers/7Seg_MAX7219 -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + +clean: clean-Drivers-2f-STM32L1xx_HAL_Driver-2f-Src + +clean-Drivers-2f-STM32L1xx_HAL_Driver-2f-Src: + -$(RM) ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.su ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.cyclo ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.su + +.PHONY: clean-Drivers-2f-STM32L1xx_HAL_Driver-2f-Src + diff --git a/TP2_ISEN_DISPLAY/Debug/TP2_INIT_DISPLAY.elf b/TP2_ISEN_DISPLAY/Debug/TP2_INIT_DISPLAY.elf new file mode 100755 index 0000000000000000000000000000000000000000..df74ea38c7ecfd7e0a057ce9044eb95f33b84f65 GIT binary patch literal 704044 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%0DUfWI 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 |;yp(p>=t*?bKN5r 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: + 800013c: b510 push {r4, lr} + 800013e: 4c05 ldr r4, [pc, #20] @ (8000154 <__do_global_dtors_aux+0x18>) + 8000140: 7823 ldrb r3, [r4, #0] + 8000142: b933 cbnz r3, 8000152 <__do_global_dtors_aux+0x16> + 8000144: 4b04 ldr r3, [pc, #16] @ (8000158 <__do_global_dtors_aux+0x1c>) + 8000146: b113 cbz r3, 800014e <__do_global_dtors_aux+0x12> + 8000148: 4804 ldr r0, [pc, #16] @ (800015c <__do_global_dtors_aux+0x20>) + 800014a: f3af 8000 nop.w + 800014e: 2301 movs r3, #1 + 8000150: 7023 strb r3, [r4, #0] + 8000152: bd10 pop {r4, pc} + 8000154: 2000000c .word 0x2000000c + 8000158: 00000000 .word 0x00000000 + 800015c: 08002074 .word 0x08002074 + +08000160 : + 8000160: b508 push {r3, lr} + 8000162: 4b03 ldr r3, [pc, #12] @ (8000170 ) + 8000164: b11b cbz r3, 800016e + 8000166: 4903 ldr r1, [pc, #12] @ (8000174 ) + 8000168: 4803 ldr r0, [pc, #12] @ (8000178 ) + 800016a: f3af 8000 nop.w + 800016e: bd08 pop {r3, pc} + 8000170: 00000000 .word 0x00000000 + 8000174: 20000010 .word 0x20000010 + 8000178: 08002074 .word 0x08002074 + +0800017c <__aeabi_uldivmod>: + 800017c: b953 cbnz r3, 8000194 <__aeabi_uldivmod+0x18> + 800017e: b94a cbnz r2, 8000194 <__aeabi_uldivmod+0x18> + 8000180: 2900 cmp r1, #0 + 8000182: bf08 it eq + 8000184: 2800 cmpeq r0, #0 + 8000186: bf1c itt ne + 8000188: f04f 31ff movne.w r1, #4294967295 @ 0xffffffff + 800018c: f04f 30ff movne.w r0, #4294967295 @ 0xffffffff + 8000190: f000 b98c b.w 80004ac <__aeabi_idiv0> + 8000194: f1ad 0c08 sub.w ip, sp, #8 + 8000198: e96d ce04 strd ip, lr, [sp, #-16]! + 800019c: f000 f806 bl 80001ac <__udivmoddi4> + 80001a0: f8dd e004 ldr.w lr, [sp, #4] + 80001a4: e9dd 2302 ldrd r2, r3, [sp, #8] + 80001a8: b004 add sp, #16 + 80001aa: 4770 bx lr + +080001ac <__udivmoddi4>: + 80001ac: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 80001b0: 9d08 ldr r5, [sp, #32] + 80001b2: 468e mov lr, r1 + 80001b4: 4604 mov r4, r0 + 80001b6: 4688 mov r8, r1 + 80001b8: 2b00 cmp r3, #0 + 80001ba: d14a bne.n 8000252 <__udivmoddi4+0xa6> + 80001bc: 428a cmp r2, r1 + 80001be: 4617 mov r7, r2 + 80001c0: d962 bls.n 8000288 <__udivmoddi4+0xdc> + 80001c2: fab2 f682 clz r6, r2 + 80001c6: b14e cbz r6, 80001dc <__udivmoddi4+0x30> + 80001c8: f1c6 0320 rsb r3, r6, #32 + 80001cc: fa01 f806 lsl.w r8, r1, r6 + 80001d0: fa20 f303 lsr.w r3, r0, r3 + 80001d4: 40b7 lsls r7, r6 + 80001d6: ea43 0808 orr.w r8, r3, r8 + 80001da: 40b4 lsls r4, r6 + 80001dc: ea4f 4e17 mov.w lr, r7, lsr #16 + 80001e0: fbb8 f1fe udiv r1, r8, lr + 80001e4: fa1f fc87 uxth.w ip, r7 + 80001e8: fb0e 8811 mls r8, lr, r1, r8 + 80001ec: fb01 f20c mul.w r2, r1, ip + 80001f0: 0c23 lsrs r3, r4, #16 + 80001f2: ea43 4308 orr.w r3, r3, r8, lsl #16 + 80001f6: 429a cmp r2, r3 + 80001f8: d909 bls.n 800020e <__udivmoddi4+0x62> + 80001fa: 18fb adds r3, r7, r3 + 80001fc: f101 30ff add.w r0, r1, #4294967295 @ 0xffffffff + 8000200: f080 80eb bcs.w 80003da <__udivmoddi4+0x22e> + 8000204: 429a cmp r2, r3 + 8000206: f240 80e8 bls.w 80003da <__udivmoddi4+0x22e> + 800020a: 3902 subs r1, #2 + 800020c: 443b add r3, r7 + 800020e: 1a9a subs r2, r3, r2 + 8000210: fbb2 f0fe udiv r0, r2, lr + 8000214: fb0e 2210 mls r2, lr, r0, r2 + 8000218: fb00 fc0c mul.w ip, r0, ip + 800021c: b2a3 uxth r3, r4 + 800021e: ea43 4302 orr.w r3, r3, r2, lsl #16 + 8000222: 459c cmp ip, r3 + 8000224: d909 bls.n 800023a <__udivmoddi4+0x8e> + 8000226: 18fb adds r3, r7, r3 + 8000228: f100 32ff add.w r2, r0, #4294967295 @ 0xffffffff + 800022c: f080 80d7 bcs.w 80003de <__udivmoddi4+0x232> + 8000230: 459c cmp ip, r3 + 8000232: f240 80d4 bls.w 80003de <__udivmoddi4+0x232> + 8000236: 443b add r3, r7 + 8000238: 3802 subs r0, #2 + 800023a: ea40 4001 orr.w r0, r0, r1, lsl #16 + 800023e: 2100 movs r1, #0 + 8000240: eba3 030c sub.w r3, r3, ip + 8000244: b11d cbz r5, 800024e <__udivmoddi4+0xa2> + 8000246: 2200 movs r2, #0 + 8000248: 40f3 lsrs r3, r6 + 800024a: e9c5 3200 strd r3, r2, [r5] + 800024e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8000252: 428b cmp r3, r1 + 8000254: d905 bls.n 8000262 <__udivmoddi4+0xb6> + 8000256: b10d cbz r5, 800025c <__udivmoddi4+0xb0> + 8000258: e9c5 0100 strd r0, r1, [r5] + 800025c: 2100 movs r1, #0 + 800025e: 4608 mov r0, r1 + 8000260: e7f5 b.n 800024e <__udivmoddi4+0xa2> + 8000262: fab3 f183 clz r1, r3 + 8000266: 2900 cmp r1, #0 + 8000268: d146 bne.n 80002f8 <__udivmoddi4+0x14c> + 800026a: 4573 cmp r3, lr + 800026c: d302 bcc.n 8000274 <__udivmoddi4+0xc8> + 800026e: 4282 cmp r2, r0 + 8000270: f200 8108 bhi.w 8000484 <__udivmoddi4+0x2d8> + 8000274: 1a84 subs r4, r0, r2 + 8000276: eb6e 0203 sbc.w r2, lr, r3 + 800027a: 2001 movs r0, #1 + 800027c: 4690 mov r8, r2 + 800027e: 2d00 cmp r5, #0 + 8000280: d0e5 beq.n 800024e <__udivmoddi4+0xa2> + 8000282: e9c5 4800 strd r4, r8, [r5] + 8000286: e7e2 b.n 800024e <__udivmoddi4+0xa2> + 8000288: 2a00 cmp r2, #0 + 800028a: f000 8091 beq.w 80003b0 <__udivmoddi4+0x204> + 800028e: fab2 f682 clz r6, r2 + 8000292: 2e00 cmp r6, #0 + 8000294: f040 80a5 bne.w 80003e2 <__udivmoddi4+0x236> + 8000298: 1a8a subs r2, r1, r2 + 800029a: 2101 movs r1, #1 + 800029c: 0c03 lsrs r3, r0, #16 + 800029e: ea4f 4e17 mov.w lr, r7, lsr #16 + 80002a2: b280 uxth r0, r0 + 80002a4: b2bc uxth r4, r7 + 80002a6: fbb2 fcfe udiv ip, r2, lr + 80002aa: fb0e 221c mls r2, lr, ip, r2 + 80002ae: ea43 4302 orr.w r3, r3, r2, lsl #16 + 80002b2: fb04 f20c mul.w r2, r4, ip + 80002b6: 429a cmp r2, r3 + 80002b8: d907 bls.n 80002ca <__udivmoddi4+0x11e> + 80002ba: 18fb adds r3, r7, r3 + 80002bc: f10c 38ff add.w r8, ip, #4294967295 @ 0xffffffff + 80002c0: d202 bcs.n 80002c8 <__udivmoddi4+0x11c> + 80002c2: 429a cmp r2, r3 + 80002c4: f200 80e3 bhi.w 800048e <__udivmoddi4+0x2e2> + 80002c8: 46c4 mov ip, r8 + 80002ca: 1a9b subs r3, r3, r2 + 80002cc: fbb3 f2fe udiv r2, r3, lr + 80002d0: fb0e 3312 mls r3, lr, r2, r3 + 80002d4: fb02 f404 mul.w r4, r2, r4 + 80002d8: ea40 4303 orr.w r3, r0, r3, lsl #16 + 80002dc: 429c cmp r4, r3 + 80002de: d907 bls.n 80002f0 <__udivmoddi4+0x144> + 80002e0: 18fb adds r3, r7, r3 + 80002e2: f102 30ff add.w r0, r2, #4294967295 @ 0xffffffff + 80002e6: d202 bcs.n 80002ee <__udivmoddi4+0x142> + 80002e8: 429c cmp r4, r3 + 80002ea: f200 80cd bhi.w 8000488 <__udivmoddi4+0x2dc> + 80002ee: 4602 mov r2, r0 + 80002f0: 1b1b subs r3, r3, r4 + 80002f2: ea42 400c orr.w r0, r2, ip, lsl #16 + 80002f6: e7a5 b.n 8000244 <__udivmoddi4+0x98> + 80002f8: f1c1 0620 rsb r6, r1, #32 + 80002fc: 408b lsls r3, r1 + 80002fe: fa22 f706 lsr.w r7, r2, r6 + 8000302: 431f orrs r7, r3 + 8000304: fa2e fa06 lsr.w sl, lr, r6 + 8000308: ea4f 4917 mov.w r9, r7, lsr #16 + 800030c: fbba f8f9 udiv r8, sl, r9 + 8000310: fa0e fe01 lsl.w lr, lr, r1 + 8000314: fa20 f306 lsr.w r3, r0, r6 + 8000318: fb09 aa18 mls sl, r9, r8, sl + 800031c: fa1f fc87 uxth.w ip, r7 + 8000320: ea43 030e orr.w r3, r3, lr + 8000324: fa00 fe01 lsl.w lr, r0, r1 + 8000328: fb08 f00c mul.w r0, r8, ip + 800032c: 0c1c lsrs r4, r3, #16 + 800032e: ea44 440a orr.w r4, r4, sl, lsl #16 + 8000332: 42a0 cmp r0, r4 + 8000334: fa02 f201 lsl.w r2, r2, r1 + 8000338: d90a bls.n 8000350 <__udivmoddi4+0x1a4> + 800033a: 193c adds r4, r7, r4 + 800033c: f108 3aff add.w sl, r8, #4294967295 @ 0xffffffff + 8000340: f080 809e bcs.w 8000480 <__udivmoddi4+0x2d4> + 8000344: 42a0 cmp r0, r4 + 8000346: f240 809b bls.w 8000480 <__udivmoddi4+0x2d4> + 800034a: f1a8 0802 sub.w r8, r8, #2 + 800034e: 443c add r4, r7 + 8000350: 1a24 subs r4, r4, r0 + 8000352: b298 uxth r0, r3 + 8000354: fbb4 f3f9 udiv r3, r4, r9 + 8000358: fb09 4413 mls r4, r9, r3, r4 + 800035c: fb03 fc0c mul.w ip, r3, ip + 8000360: ea40 4404 orr.w r4, r0, r4, lsl #16 + 8000364: 45a4 cmp ip, r4 + 8000366: d909 bls.n 800037c <__udivmoddi4+0x1d0> + 8000368: 193c adds r4, r7, r4 + 800036a: f103 30ff add.w r0, r3, #4294967295 @ 0xffffffff + 800036e: f080 8085 bcs.w 800047c <__udivmoddi4+0x2d0> + 8000372: 45a4 cmp ip, r4 + 8000374: f240 8082 bls.w 800047c <__udivmoddi4+0x2d0> + 8000378: 3b02 subs r3, #2 + 800037a: 443c add r4, r7 + 800037c: ea43 4008 orr.w r0, r3, r8, lsl #16 + 8000380: eba4 040c sub.w r4, r4, ip + 8000384: fba0 8c02 umull r8, ip, r0, r2 + 8000388: 4564 cmp r4, ip + 800038a: 4643 mov r3, r8 + 800038c: 46e1 mov r9, ip + 800038e: d364 bcc.n 800045a <__udivmoddi4+0x2ae> + 8000390: d061 beq.n 8000456 <__udivmoddi4+0x2aa> + 8000392: b15d cbz r5, 80003ac <__udivmoddi4+0x200> + 8000394: ebbe 0203 subs.w r2, lr, r3 + 8000398: eb64 0409 sbc.w r4, r4, r9 + 800039c: fa04 f606 lsl.w r6, r4, r6 + 80003a0: fa22 f301 lsr.w r3, r2, r1 + 80003a4: 431e orrs r6, r3 + 80003a6: 40cc lsrs r4, r1 + 80003a8: e9c5 6400 strd r6, r4, [r5] + 80003ac: 2100 movs r1, #0 + 80003ae: e74e b.n 800024e <__udivmoddi4+0xa2> + 80003b0: fbb1 fcf2 udiv ip, r1, r2 + 80003b4: 0c01 lsrs r1, r0, #16 + 80003b6: ea41 410e orr.w r1, r1, lr, lsl #16 + 80003ba: b280 uxth r0, r0 + 80003bc: ea40 4201 orr.w r2, r0, r1, lsl #16 + 80003c0: 463b mov r3, r7 + 80003c2: fbb1 f1f7 udiv r1, r1, r7 + 80003c6: 4638 mov r0, r7 + 80003c8: 463c mov r4, r7 + 80003ca: 46b8 mov r8, r7 + 80003cc: 46be mov lr, r7 + 80003ce: 2620 movs r6, #32 + 80003d0: eba2 0208 sub.w r2, r2, r8 + 80003d4: ea41 410c orr.w r1, r1, ip, lsl #16 + 80003d8: e765 b.n 80002a6 <__udivmoddi4+0xfa> + 80003da: 4601 mov r1, r0 + 80003dc: e717 b.n 800020e <__udivmoddi4+0x62> + 80003de: 4610 mov r0, r2 + 80003e0: e72b b.n 800023a <__udivmoddi4+0x8e> + 80003e2: f1c6 0120 rsb r1, r6, #32 + 80003e6: fa2e fc01 lsr.w ip, lr, r1 + 80003ea: 40b7 lsls r7, r6 + 80003ec: fa0e fe06 lsl.w lr, lr, r6 + 80003f0: fa20 f101 lsr.w r1, r0, r1 + 80003f4: ea41 010e orr.w r1, r1, lr + 80003f8: ea4f 4e17 mov.w lr, r7, lsr #16 + 80003fc: fbbc f8fe udiv r8, ip, lr + 8000400: b2bc uxth r4, r7 + 8000402: fb0e cc18 mls ip, lr, r8, ip + 8000406: fb08 f904 mul.w r9, r8, r4 + 800040a: 0c0a lsrs r2, r1, #16 + 800040c: ea42 420c orr.w r2, r2, ip, lsl #16 + 8000410: 40b0 lsls r0, r6 + 8000412: 4591 cmp r9, r2 + 8000414: ea4f 4310 mov.w r3, r0, lsr #16 + 8000418: b280 uxth r0, r0 + 800041a: d93e bls.n 800049a <__udivmoddi4+0x2ee> + 800041c: 18ba adds r2, r7, r2 + 800041e: f108 3cff add.w ip, r8, #4294967295 @ 0xffffffff + 8000422: d201 bcs.n 8000428 <__udivmoddi4+0x27c> + 8000424: 4591 cmp r9, r2 + 8000426: d81f bhi.n 8000468 <__udivmoddi4+0x2bc> + 8000428: eba2 0209 sub.w r2, r2, r9 + 800042c: fbb2 f9fe udiv r9, r2, lr + 8000430: fb09 f804 mul.w r8, r9, r4 + 8000434: fb0e 2a19 mls sl, lr, r9, r2 + 8000438: b28a uxth r2, r1 + 800043a: ea42 420a orr.w r2, r2, sl, lsl #16 + 800043e: 4542 cmp r2, r8 + 8000440: d229 bcs.n 8000496 <__udivmoddi4+0x2ea> + 8000442: 18ba adds r2, r7, r2 + 8000444: f109 31ff add.w r1, r9, #4294967295 @ 0xffffffff + 8000448: d2c2 bcs.n 80003d0 <__udivmoddi4+0x224> + 800044a: 4542 cmp r2, r8 + 800044c: d2c0 bcs.n 80003d0 <__udivmoddi4+0x224> + 800044e: f1a9 0102 sub.w r1, r9, #2 + 8000452: 443a add r2, r7 + 8000454: e7bc b.n 80003d0 <__udivmoddi4+0x224> + 8000456: 45c6 cmp lr, r8 + 8000458: d29b bcs.n 8000392 <__udivmoddi4+0x1e6> + 800045a: ebb8 0302 subs.w r3, r8, r2 + 800045e: eb6c 0c07 sbc.w ip, ip, r7 + 8000462: 3801 subs r0, #1 + 8000464: 46e1 mov r9, ip + 8000466: e794 b.n 8000392 <__udivmoddi4+0x1e6> + 8000468: eba7 0909 sub.w r9, r7, r9 + 800046c: 444a add r2, r9 + 800046e: fbb2 f9fe udiv r9, r2, lr + 8000472: f1a8 0c02 sub.w ip, r8, #2 + 8000476: fb09 f804 mul.w r8, r9, r4 + 800047a: e7db b.n 8000434 <__udivmoddi4+0x288> + 800047c: 4603 mov r3, r0 + 800047e: e77d b.n 800037c <__udivmoddi4+0x1d0> + 8000480: 46d0 mov r8, sl + 8000482: e765 b.n 8000350 <__udivmoddi4+0x1a4> + 8000484: 4608 mov r0, r1 + 8000486: e6fa b.n 800027e <__udivmoddi4+0xd2> + 8000488: 443b add r3, r7 + 800048a: 3a02 subs r2, #2 + 800048c: e730 b.n 80002f0 <__udivmoddi4+0x144> + 800048e: f1ac 0c02 sub.w ip, ip, #2 + 8000492: 443b add r3, r7 + 8000494: e719 b.n 80002ca <__udivmoddi4+0x11e> + 8000496: 4649 mov r1, r9 + 8000498: e79a b.n 80003d0 <__udivmoddi4+0x224> + 800049a: eba2 0209 sub.w r2, r2, r9 + 800049e: fbb2 f9fe udiv r9, r2, lr + 80004a2: 46c4 mov ip, r8 + 80004a4: fb09 f804 mul.w r8, r9, r4 + 80004a8: e7c4 b.n 8000434 <__udivmoddi4+0x288> + 80004aa: bf00 nop + +080004ac <__aeabi_idiv0>: + 80004ac: 4770 bx lr + 80004ae: bf00 nop + +080004b0 : + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ +void affiche(uint8_t nombre) { + 80004b0: b580 push {r7, lr} + 80004b2: b084 sub sp, #16 + 80004b4: af00 add r7, sp, #0 + 80004b6: 4603 mov r3, r0 + 80004b8: 71fb strb r3, [r7, #7] + uint8_t compt_uni; + uint8_t compt_diz; + + compt_uni = nombre % 10; + 80004ba: 79fa ldrb r2, [r7, #7] + 80004bc: 4b13 ldr r3, [pc, #76] @ (800050c ) + 80004be: fba3 1302 umull r1, r3, r3, r2 + 80004c2: 08d9 lsrs r1, r3, #3 + 80004c4: 460b mov r3, r1 + 80004c6: 009b lsls r3, r3, #2 + 80004c8: 440b add r3, r1 + 80004ca: 005b lsls r3, r3, #1 + 80004cc: 1ad3 subs r3, r2, r3 + 80004ce: 73fb strb r3, [r7, #15] + compt_diz = nombre / 10; + 80004d0: 79fb ldrb r3, [r7, #7] + 80004d2: 4a0e ldr r2, [pc, #56] @ (800050c ) + 80004d4: fba2 2303 umull r2, r3, r2, r3 + 80004d8: 08db lsrs r3, r3, #3 + 80004da: 73bb strb r3, [r7, #14] + + MAX7219_DisplayChar(1, compt_diz); + 80004dc: 7bbb ldrb r3, [r7, #14] + 80004de: 4619 mov r1, r3 + 80004e0: 2001 movs r0, #1 + 80004e2: f000 fa0d bl 8000900 + MAX7219_DisplayChar(2, compt_uni); + 80004e6: 7bfb ldrb r3, [r7, #15] + 80004e8: 4619 mov r1, r3 + 80004ea: 2002 movs r0, #2 + 80004ec: f000 fa08 bl 8000900 + MAX7219_DisplayChar(3, compt_diz); + 80004f0: 7bbb ldrb r3, [r7, #14] + 80004f2: 4619 mov r1, r3 + 80004f4: 2003 movs r0, #3 + 80004f6: f000 fa03 bl 8000900 + MAX7219_DisplayChar(4, compt_uni); + 80004fa: 7bfb ldrb r3, [r7, #15] + 80004fc: 4619 mov r1, r3 + 80004fe: 2004 movs r0, #4 + 8000500: f000 f9fe bl 8000900 +} + 8000504: bf00 nop + 8000506: 3710 adds r7, #16 + 8000508: 46bd mov sp, r7 + 800050a: bd80 pop {r7, pc} + 800050c: cccccccd .word 0xcccccccd + +08000510

: +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + 8000510: b580 push {r7, lr} + 8000512: b082 sub sp, #8 + 8000514: af00 add r7, sp, #0 + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + 8000516: f000 fa39 bl 800098c + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + 800051a: f000 f81b bl 8000554 + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + 800051e: f000 f895 bl 800064c + MX_SPI1_Init(); + 8000522: f000 f85d bl 80005e0 + /* USER CODE BEGIN 2 */ + MAX7219_Init(); + 8000526: f000 f99e bl 8000866 + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + MAX7219_Clear(); + 800052a: f000 f9d3 bl 80008d4 + uint8_t compteur = 0; + 800052e: 2300 movs r3, #0 + 8000530: 71fb strb r3, [r7, #7] +#ifdef V1 + MAX7219_DisplayChar(1, 3); + MAX7219_DisplayChar(2, 5); +#endif +#ifdef V2 + affiche(compteur); + 8000532: 79fb ldrb r3, [r7, #7] + 8000534: 4618 mov r0, r3 + 8000536: f7ff ffbb bl 80004b0 + compteur++; + 800053a: 79fb ldrb r3, [r7, #7] + 800053c: 3301 adds r3, #1 + 800053e: 71fb strb r3, [r7, #7] + if (compteur >= 100) { + 8000540: 79fb ldrb r3, [r7, #7] + 8000542: 2b63 cmp r3, #99 @ 0x63 + 8000544: d901 bls.n 800054a + compteur = 0; + 8000546: 2300 movs r3, #0 + 8000548: 71fb strb r3, [r7, #7] + } + HAL_Delay(500); + 800054a: f44f 70fa mov.w r0, #500 @ 0x1f4 + 800054e: f000 fa8b bl 8000a68 + affiche(compteur); + 8000552: e7ee b.n 8000532 + +08000554 : +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + 8000554: b580 push {r7, lr} + 8000556: b092 sub sp, #72 @ 0x48 + 8000558: af00 add r7, sp, #0 + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + 800055a: f107 0314 add.w r3, r7, #20 + 800055e: 2234 movs r2, #52 @ 0x34 + 8000560: 2100 movs r1, #0 + 8000562: 4618 mov r0, r3 + 8000564: f001 fd5a bl 800201c + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 8000568: 463b mov r3, r7 + 800056a: 2200 movs r2, #0 + 800056c: 601a str r2, [r3, #0] + 800056e: 605a str r2, [r3, #4] + 8000570: 609a str r2, [r3, #8] + 8000572: 60da str r2, [r3, #12] + 8000574: 611a str r2, [r3, #16] + + /** Configure the main internal regulator output voltage + */ + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + 8000576: 4b19 ldr r3, [pc, #100] @ (80005dc ) + 8000578: 681b ldr r3, [r3, #0] + 800057a: f423 53c0 bic.w r3, r3, #6144 @ 0x1800 + 800057e: 4a17 ldr r2, [pc, #92] @ (80005dc ) + 8000580: f443 6300 orr.w r3, r3, #2048 @ 0x800 + 8000584: 6013 str r3, [r2, #0] + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + 8000586: 2302 movs r3, #2 + 8000588: 617b str r3, [r7, #20] + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + 800058a: 2301 movs r3, #1 + 800058c: 623b str r3, [r7, #32] + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + 800058e: 2310 movs r3, #16 + 8000590: 627b str r3, [r7, #36] @ 0x24 + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; + 8000592: 2300 movs r3, #0 + 8000594: 63bb str r3, [r7, #56] @ 0x38 + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 8000596: f107 0314 add.w r3, r7, #20 + 800059a: 4618 mov r0, r3 + 800059c: f000 fd12 bl 8000fc4 + 80005a0: 4603 mov r3, r0 + 80005a2: 2b00 cmp r3, #0 + 80005a4: d001 beq.n 80005aa + { + Error_Handler(); + 80005a6: f000 f88f bl 80006c8 + } + + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + 80005aa: 230f movs r3, #15 + 80005ac: 603b str r3, [r7, #0] + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; + 80005ae: 2301 movs r3, #1 + 80005b0: 607b str r3, [r7, #4] + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + 80005b2: 2300 movs r3, #0 + 80005b4: 60bb str r3, [r7, #8] + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + 80005b6: 2300 movs r3, #0 + 80005b8: 60fb str r3, [r7, #12] + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 80005ba: 2300 movs r3, #0 + 80005bc: 613b str r3, [r7, #16] + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) + 80005be: 463b mov r3, r7 + 80005c0: 2100 movs r1, #0 + 80005c2: 4618 mov r0, r3 + 80005c4: f001 f82e bl 8001624 + 80005c8: 4603 mov r3, r0 + 80005ca: 2b00 cmp r3, #0 + 80005cc: d001 beq.n 80005d2 + { + Error_Handler(); + 80005ce: f000 f87b bl 80006c8 + } +} + 80005d2: bf00 nop + 80005d4: 3748 adds r7, #72 @ 0x48 + 80005d6: 46bd mov sp, r7 + 80005d8: bd80 pop {r7, pc} + 80005da: bf00 nop + 80005dc: 40007000 .word 0x40007000 + +080005e0 : + * @brief SPI1 Initialization Function + * @param None + * @retval None + */ +static void MX_SPI1_Init(void) +{ + 80005e0: b580 push {r7, lr} + 80005e2: af00 add r7, sp, #0 + + /* USER CODE BEGIN SPI1_Init 1 */ + + /* USER CODE END SPI1_Init 1 */ + /* SPI1 parameter configuration*/ + hspi1.Instance = SPI1; + 80005e4: 4b17 ldr r3, [pc, #92] @ (8000644 ) + 80005e6: 4a18 ldr r2, [pc, #96] @ (8000648 ) + 80005e8: 601a str r2, [r3, #0] + hspi1.Init.Mode = SPI_MODE_MASTER; + 80005ea: 4b16 ldr r3, [pc, #88] @ (8000644 ) + 80005ec: f44f 7282 mov.w r2, #260 @ 0x104 + 80005f0: 605a str r2, [r3, #4] + hspi1.Init.Direction = SPI_DIRECTION_2LINES; + 80005f2: 4b14 ldr r3, [pc, #80] @ (8000644 ) + 80005f4: 2200 movs r2, #0 + 80005f6: 609a str r2, [r3, #8] + hspi1.Init.DataSize = SPI_DATASIZE_8BIT; + 80005f8: 4b12 ldr r3, [pc, #72] @ (8000644 ) + 80005fa: 2200 movs r2, #0 + 80005fc: 60da str r2, [r3, #12] + hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; + 80005fe: 4b11 ldr r3, [pc, #68] @ (8000644 ) + 8000600: 2200 movs r2, #0 + 8000602: 611a str r2, [r3, #16] + hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; + 8000604: 4b0f ldr r3, [pc, #60] @ (8000644 ) + 8000606: 2200 movs r2, #0 + 8000608: 615a str r2, [r3, #20] + hspi1.Init.NSS = SPI_NSS_SOFT; + 800060a: 4b0e ldr r3, [pc, #56] @ (8000644 ) + 800060c: f44f 7200 mov.w r2, #512 @ 0x200 + 8000610: 619a str r2, [r3, #24] + hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + 8000612: 4b0c ldr r3, [pc, #48] @ (8000644 ) + 8000614: 2200 movs r2, #0 + 8000616: 61da str r2, [r3, #28] + hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; + 8000618: 4b0a ldr r3, [pc, #40] @ (8000644 ) + 800061a: 2200 movs r2, #0 + 800061c: 621a str r2, [r3, #32] + hspi1.Init.TIMode = SPI_TIMODE_DISABLE; + 800061e: 4b09 ldr r3, [pc, #36] @ (8000644 ) + 8000620: 2200 movs r2, #0 + 8000622: 625a str r2, [r3, #36] @ 0x24 + hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + 8000624: 4b07 ldr r3, [pc, #28] @ (8000644 ) + 8000626: 2200 movs r2, #0 + 8000628: 629a str r2, [r3, #40] @ 0x28 + hspi1.Init.CRCPolynomial = 10; + 800062a: 4b06 ldr r3, [pc, #24] @ (8000644 ) + 800062c: 220a movs r2, #10 + 800062e: 62da str r2, [r3, #44] @ 0x2c + if (HAL_SPI_Init(&hspi1) != HAL_OK) + 8000630: 4804 ldr r0, [pc, #16] @ (8000644 ) + 8000632: f001 fa49 bl 8001ac8 + 8000636: 4603 mov r3, r0 + 8000638: 2b00 cmp r3, #0 + 800063a: d001 beq.n 8000640 + { + Error_Handler(); + 800063c: f000 f844 bl 80006c8 + } + /* USER CODE BEGIN SPI1_Init 2 */ + + /* USER CODE END SPI1_Init 2 */ + +} + 8000640: bf00 nop + 8000642: bd80 pop {r7, pc} + 8000644: 20000028 .word 0x20000028 + 8000648: 40013000 .word 0x40013000 + +0800064c : + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + 800064c: b580 push {r7, lr} + 800064e: b088 sub sp, #32 + 8000650: af00 add r7, sp, #0 + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 8000652: f107 030c add.w r3, r7, #12 + 8000656: 2200 movs r2, #0 + 8000658: 601a str r2, [r3, #0] + 800065a: 605a str r2, [r3, #4] + 800065c: 609a str r2, [r3, #8] + 800065e: 60da str r2, [r3, #12] + 8000660: 611a str r2, [r3, #16] + /* USER CODE BEGIN MX_GPIO_Init_1 */ + + /* USER CODE END MX_GPIO_Init_1 */ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + 8000662: 4b17 ldr r3, [pc, #92] @ (80006c0 ) + 8000664: 69db ldr r3, [r3, #28] + 8000666: 4a16 ldr r2, [pc, #88] @ (80006c0 ) + 8000668: f043 0304 orr.w r3, r3, #4 + 800066c: 61d3 str r3, [r2, #28] + 800066e: 4b14 ldr r3, [pc, #80] @ (80006c0 ) + 8000670: 69db ldr r3, [r3, #28] + 8000672: f003 0304 and.w r3, r3, #4 + 8000676: 60bb str r3, [r7, #8] + 8000678: 68bb ldr r3, [r7, #8] + __HAL_RCC_GPIOA_CLK_ENABLE(); + 800067a: 4b11 ldr r3, [pc, #68] @ (80006c0 ) + 800067c: 69db ldr r3, [r3, #28] + 800067e: 4a10 ldr r2, [pc, #64] @ (80006c0 ) + 8000680: f043 0301 orr.w r3, r3, #1 + 8000684: 61d3 str r3, [r2, #28] + 8000686: 4b0e ldr r3, [pc, #56] @ (80006c0 ) + 8000688: 69db ldr r3, [r3, #28] + 800068a: f003 0301 and.w r3, r3, #1 + 800068e: 607b str r3, [r7, #4] + 8000690: 687b ldr r3, [r7, #4] + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET); + 8000692: 2200 movs r2, #0 + 8000694: 2101 movs r1, #1 + 8000696: 480b ldr r0, [pc, #44] @ (80006c4 ) + 8000698: f000 fc7c bl 8000f94 + + /*Configure GPIO pin : PC0 */ + GPIO_InitStruct.Pin = GPIO_PIN_0; + 800069c: 2301 movs r3, #1 + 800069e: 60fb str r3, [r7, #12] + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + 80006a0: 2301 movs r3, #1 + 80006a2: 613b str r3, [r7, #16] + GPIO_InitStruct.Pull = GPIO_NOPULL; + 80006a4: 2300 movs r3, #0 + 80006a6: 617b str r3, [r7, #20] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 80006a8: 2300 movs r3, #0 + 80006aa: 61bb str r3, [r7, #24] + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + 80006ac: f107 030c add.w r3, r7, #12 + 80006b0: 4619 mov r1, r3 + 80006b2: 4804 ldr r0, [pc, #16] @ (80006c4 ) + 80006b4: f000 fade bl 8000c74 + + /* USER CODE BEGIN MX_GPIO_Init_2 */ + + /* USER CODE END MX_GPIO_Init_2 */ +} + 80006b8: bf00 nop + 80006ba: 3720 adds r7, #32 + 80006bc: 46bd mov sp, r7 + 80006be: bd80 pop {r7, pc} + 80006c0: 40023800 .word 0x40023800 + 80006c4: 40020800 .word 0x40020800 + +080006c8 : +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + 80006c8: b480 push {r7} + 80006ca: 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"); + 80006cc: b672 cpsid i +} + 80006ce: 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) + 80006d0: bf00 nop + 80006d2: e7fd b.n 80006d0 + +080006d4 : +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + 80006d4: b480 push {r7} + 80006d6: b085 sub sp, #20 + 80006d8: af00 add r7, sp, #0 + + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_COMP_CLK_ENABLE(); + 80006da: 4b14 ldr r3, [pc, #80] @ (800072c ) + 80006dc: 6a5b ldr r3, [r3, #36] @ 0x24 + 80006de: 4a13 ldr r2, [pc, #76] @ (800072c ) + 80006e0: f043 4300 orr.w r3, r3, #2147483648 @ 0x80000000 + 80006e4: 6253 str r3, [r2, #36] @ 0x24 + 80006e6: 4b11 ldr r3, [pc, #68] @ (800072c ) + 80006e8: 6a5b ldr r3, [r3, #36] @ 0x24 + 80006ea: f003 4300 and.w r3, r3, #2147483648 @ 0x80000000 + 80006ee: 60fb str r3, [r7, #12] + 80006f0: 68fb ldr r3, [r7, #12] + __HAL_RCC_SYSCFG_CLK_ENABLE(); + 80006f2: 4b0e ldr r3, [pc, #56] @ (800072c ) + 80006f4: 6a1b ldr r3, [r3, #32] + 80006f6: 4a0d ldr r2, [pc, #52] @ (800072c ) + 80006f8: f043 0301 orr.w r3, r3, #1 + 80006fc: 6213 str r3, [r2, #32] + 80006fe: 4b0b ldr r3, [pc, #44] @ (800072c ) + 8000700: 6a1b ldr r3, [r3, #32] + 8000702: f003 0301 and.w r3, r3, #1 + 8000706: 60bb str r3, [r7, #8] + 8000708: 68bb ldr r3, [r7, #8] + __HAL_RCC_PWR_CLK_ENABLE(); + 800070a: 4b08 ldr r3, [pc, #32] @ (800072c ) + 800070c: 6a5b ldr r3, [r3, #36] @ 0x24 + 800070e: 4a07 ldr r2, [pc, #28] @ (800072c ) + 8000710: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 8000714: 6253 str r3, [r2, #36] @ 0x24 + 8000716: 4b05 ldr r3, [pc, #20] @ (800072c ) + 8000718: 6a5b ldr r3, [r3, #36] @ 0x24 + 800071a: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 800071e: 607b str r3, [r7, #4] + 8000720: 687b ldr r3, [r7, #4] + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + 8000722: bf00 nop + 8000724: 3714 adds r7, #20 + 8000726: 46bd mov sp, r7 + 8000728: bc80 pop {r7} + 800072a: 4770 bx lr + 800072c: 40023800 .word 0x40023800 + +08000730 : + * This function configures the hardware resources used in this example + * @param hspi: SPI handle pointer + * @retval None + */ +void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) +{ + 8000730: b580 push {r7, lr} + 8000732: b08a sub sp, #40 @ 0x28 + 8000734: af00 add r7, sp, #0 + 8000736: 6078 str r0, [r7, #4] + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 8000738: f107 0314 add.w r3, r7, #20 + 800073c: 2200 movs r2, #0 + 800073e: 601a str r2, [r3, #0] + 8000740: 605a str r2, [r3, #4] + 8000742: 609a str r2, [r3, #8] + 8000744: 60da str r2, [r3, #12] + 8000746: 611a str r2, [r3, #16] + if(hspi->Instance==SPI1) + 8000748: 687b ldr r3, [r7, #4] + 800074a: 681b ldr r3, [r3, #0] + 800074c: 4a17 ldr r2, [pc, #92] @ (80007ac ) + 800074e: 4293 cmp r3, r2 + 8000750: d127 bne.n 80007a2 + { + /* USER CODE BEGIN SPI1_MspInit 0 */ + + /* USER CODE END SPI1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_SPI1_CLK_ENABLE(); + 8000752: 4b17 ldr r3, [pc, #92] @ (80007b0 ) + 8000754: 6a1b ldr r3, [r3, #32] + 8000756: 4a16 ldr r2, [pc, #88] @ (80007b0 ) + 8000758: f443 5380 orr.w r3, r3, #4096 @ 0x1000 + 800075c: 6213 str r3, [r2, #32] + 800075e: 4b14 ldr r3, [pc, #80] @ (80007b0 ) + 8000760: 6a1b ldr r3, [r3, #32] + 8000762: f403 5380 and.w r3, r3, #4096 @ 0x1000 + 8000766: 613b str r3, [r7, #16] + 8000768: 693b ldr r3, [r7, #16] + + __HAL_RCC_GPIOA_CLK_ENABLE(); + 800076a: 4b11 ldr r3, [pc, #68] @ (80007b0 ) + 800076c: 69db ldr r3, [r3, #28] + 800076e: 4a10 ldr r2, [pc, #64] @ (80007b0 ) + 8000770: f043 0301 orr.w r3, r3, #1 + 8000774: 61d3 str r3, [r2, #28] + 8000776: 4b0e ldr r3, [pc, #56] @ (80007b0 ) + 8000778: 69db ldr r3, [r3, #28] + 800077a: f003 0301 and.w r3, r3, #1 + 800077e: 60fb str r3, [r7, #12] + 8000780: 68fb ldr r3, [r7, #12] + /**SPI1 GPIO Configuration + PA5 ------> SPI1_SCK + PA6 ------> SPI1_MISO + PA7 ------> SPI1_MOSI + */ + GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7; + 8000782: 23e0 movs r3, #224 @ 0xe0 + 8000784: 617b str r3, [r7, #20] + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 8000786: 2302 movs r3, #2 + 8000788: 61bb str r3, [r7, #24] + GPIO_InitStruct.Pull = GPIO_NOPULL; + 800078a: 2300 movs r3, #0 + 800078c: 61fb str r3, [r7, #28] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + 800078e: 2303 movs r3, #3 + 8000790: 623b str r3, [r7, #32] + GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; + 8000792: 2305 movs r3, #5 + 8000794: 627b str r3, [r7, #36] @ 0x24 + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 8000796: f107 0314 add.w r3, r7, #20 + 800079a: 4619 mov r1, r3 + 800079c: 4805 ldr r0, [pc, #20] @ (80007b4 ) + 800079e: f000 fa69 bl 8000c74 + + /* USER CODE END SPI1_MspInit 1 */ + + } + +} + 80007a2: bf00 nop + 80007a4: 3728 adds r7, #40 @ 0x28 + 80007a6: 46bd mov sp, r7 + 80007a8: bd80 pop {r7, pc} + 80007aa: bf00 nop + 80007ac: 40013000 .word 0x40013000 + 80007b0: 40023800 .word 0x40023800 + 80007b4: 40020000 .word 0x40020000 + +080007b8 : +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + 80007b8: b480 push {r7} + 80007ba: 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) + 80007bc: bf00 nop + 80007be: e7fd b.n 80007bc + +080007c0 : + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + 80007c0: b480 push {r7} + 80007c2: af00 add r7, sp, #0 + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + 80007c4: bf00 nop + 80007c6: e7fd b.n 80007c4 + +080007c8 : + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + 80007c8: b480 push {r7} + 80007ca: af00 add r7, sp, #0 + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + 80007cc: bf00 nop + 80007ce: e7fd b.n 80007cc + +080007d0 : + +/** + * @brief This function handles Pre-fetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + 80007d0: b480 push {r7} + 80007d2: af00 add r7, sp, #0 + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + 80007d4: bf00 nop + 80007d6: e7fd b.n 80007d4 + +080007d8 : + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + 80007d8: b480 push {r7} + 80007da: af00 add r7, sp, #0 + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + 80007dc: bf00 nop + 80007de: e7fd b.n 80007dc + +080007e0 : + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + 80007e0: b480 push {r7} + 80007e2: af00 add r7, sp, #0 + + /* USER CODE END SVC_IRQn 0 */ + /* USER CODE BEGIN SVC_IRQn 1 */ + + /* USER CODE END SVC_IRQn 1 */ +} + 80007e4: bf00 nop + 80007e6: 46bd mov sp, r7 + 80007e8: bc80 pop {r7} + 80007ea: 4770 bx lr + +080007ec : + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + 80007ec: b480 push {r7} + 80007ee: af00 add r7, sp, #0 + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + 80007f0: bf00 nop + 80007f2: 46bd mov sp, r7 + 80007f4: bc80 pop {r7} + 80007f6: 4770 bx lr + +080007f8 : + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + 80007f8: b480 push {r7} + 80007fa: af00 add r7, sp, #0 + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + 80007fc: bf00 nop + 80007fe: 46bd mov sp, r7 + 8000800: bc80 pop {r7} + 8000802: 4770 bx lr + +08000804 : + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + 8000804: b580 push {r7, lr} + 8000806: af00 add r7, sp, #0 + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + 8000808: f000 f912 bl 8000a30 + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + 800080c: bf00 nop + 800080e: bd80 pop {r7, pc} + +08000810 : + * SystemCoreClock variable. + * @param None + * @retval None + */ +void SystemInit (void) +{ + 8000810: b480 push {r7} + 8000812: 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 */ +} + 8000814: bf00 nop + 8000816: 46bd mov sp, r7 + 8000818: bc80 pop {r7} + 800081a: 4770 bx lr + +0800081c : + .type Reset_Handler, %function +Reset_Handler: + + +/* Call the clock system initialization function.*/ + bl SystemInit + 800081c: f7ff fff8 bl 8000810 + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + 8000820: 480b ldr r0, [pc, #44] @ (8000850 ) + ldr r1, =_edata + 8000822: 490c ldr r1, [pc, #48] @ (8000854 ) + ldr r2, =_sidata + 8000824: 4a0c ldr r2, [pc, #48] @ (8000858 ) + movs r3, #0 + 8000826: 2300 movs r3, #0 + b LoopCopyDataInit + 8000828: e002 b.n 8000830 + +0800082a : + +CopyDataInit: + ldr r4, [r2, r3] + 800082a: 58d4 ldr r4, [r2, r3] + str r4, [r0, r3] + 800082c: 50c4 str r4, [r0, r3] + adds r3, r3, #4 + 800082e: 3304 adds r3, #4 + +08000830 : + +LoopCopyDataInit: + adds r4, r0, r3 + 8000830: 18c4 adds r4, r0, r3 + cmp r4, r1 + 8000832: 428c cmp r4, r1 + bcc CopyDataInit + 8000834: d3f9 bcc.n 800082a + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + 8000836: 4a09 ldr r2, [pc, #36] @ (800085c ) + ldr r4, =_ebss + 8000838: 4c09 ldr r4, [pc, #36] @ (8000860 ) + movs r3, #0 + 800083a: 2300 movs r3, #0 + b LoopFillZerobss + 800083c: e001 b.n 8000842 + +0800083e : + +FillZerobss: + str r3, [r2] + 800083e: 6013 str r3, [r2, #0] + adds r2, r2, #4 + 8000840: 3204 adds r2, #4 + +08000842 : + +LoopFillZerobss: + cmp r2, r4 + 8000842: 42a2 cmp r2, r4 + bcc FillZerobss + 8000844: d3fb bcc.n 800083e + +/* Call static constructors */ + bl __libc_init_array + 8000846: f001 fbf1 bl 800202c <__libc_init_array> +/* Call the application's entry point.*/ + bl main + 800084a: f7ff fe61 bl 8000510
+ bx lr + 800084e: 4770 bx lr + ldr r0, =_sdata + 8000850: 20000000 .word 0x20000000 + ldr r1, =_edata + 8000854: 2000000c .word 0x2000000c + ldr r2, =_sidata + 8000858: 080020c8 .word 0x080020c8 + ldr r2, =_sbss + 800085c: 2000000c .word 0x2000000c + ldr r4, =_ebss + 8000860: 20000084 .word 0x20000084 + +08000864 : + * @retval : None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + 8000864: e7fe b.n 8000864 + +08000866 : +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_Init (void) +{ + 8000866: b580 push {r7, lr} + 8000868: af00 add r7, sp, #0 + // configure "LOAD" as output + + MAX7219_Write(REG_SCAN_LIMIT, 7); // set up to scan all eight digits + 800086a: 2107 movs r1, #7 + 800086c: 200b movs r0, #11 + 800086e: f000 f85d bl 800092c + MAX7219_Write(REG_DECODE, 0x00); // set to "no decode" for all digits + 8000872: 2100 movs r1, #0 + 8000874: 2009 movs r0, #9 + 8000876: f000 f859 bl 800092c + MAX7219_ShutdownStop(); // select normal operation (i.e. not shutdown) + 800087a: f000 f809 bl 8000890 + MAX7219_DisplayTestStop(); // select normal operation (i.e. not test mode) + 800087e: f000 f80f bl 80008a0 + MAX7219_Clear(); // clear all digits + 8000882: f000 f827 bl 80008d4 + MAX7219_SetBrightness(INTENSITY_MAX); // set to maximum intensity + 8000886: 200f movs r0, #15 + 8000888: f000 f812 bl 80008b0 +} + 800088c: bf00 nop + 800088e: bd80 pop {r7, pc} + +08000890 : +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_ShutdownStop (void) +{ + 8000890: b580 push {r7, lr} + 8000892: af00 add r7, sp, #0 + MAX7219_Write(REG_SHUTDOWN, 1); // put MAX7219 into "normal" mode + 8000894: 2101 movs r1, #1 + 8000896: 200c movs r0, #12 + 8000898: f000 f848 bl 800092c +} + 800089c: bf00 nop + 800089e: bd80 pop {r7, pc} + +080008a0 : +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_DisplayTestStop (void) +{ + 80008a0: b580 push {r7, lr} + 80008a2: af00 add r7, sp, #0 + MAX7219_Write(REG_DISPLAY_TEST, 0); // put MAX7219 into "normal" mode + 80008a4: 2100 movs r1, #0 + 80008a6: 200f movs r0, #15 + 80008a8: f000 f840 bl 800092c +} + 80008ac: bf00 nop + 80008ae: bd80 pop {r7, pc} + +080008b0 : +* Arguments : brightness (0-15) +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_SetBrightness (char brightness) +{ + 80008b0: b580 push {r7, lr} + 80008b2: b082 sub sp, #8 + 80008b4: af00 add r7, sp, #0 + 80008b6: 4603 mov r3, r0 + 80008b8: 71fb strb r3, [r7, #7] + brightness &= 0x0f; // mask off extra bits + 80008ba: 79fb ldrb r3, [r7, #7] + 80008bc: f003 030f and.w r3, r3, #15 + 80008c0: 71fb strb r3, [r7, #7] + MAX7219_Write(REG_INTENSITY, brightness); // set brightness + 80008c2: 79fb ldrb r3, [r7, #7] + 80008c4: 4619 mov r1, r3 + 80008c6: 200a movs r0, #10 + 80008c8: f000 f830 bl 800092c +} + 80008cc: bf00 nop + 80008ce: 3708 adds r7, #8 + 80008d0: 46bd mov sp, r7 + 80008d2: bd80 pop {r7, pc} + +080008d4 : +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_Clear (void) +{ + 80008d4: b580 push {r7, lr} + 80008d6: b082 sub sp, #8 + 80008d8: af00 add r7, sp, #0 + char i; + for (i=0; i < 8; i++) + 80008da: 2300 movs r3, #0 + 80008dc: 71fb strb r3, [r7, #7] + 80008de: e007 b.n 80008f0 + MAX7219_Write(i, 0x00); // turn all segments off + 80008e0: 79fb ldrb r3, [r7, #7] + 80008e2: 2100 movs r1, #0 + 80008e4: 4618 mov r0, r3 + 80008e6: f000 f821 bl 800092c + for (i=0; i < 8; i++) + 80008ea: 79fb ldrb r3, [r7, #7] + 80008ec: 3301 adds r3, #1 + 80008ee: 71fb strb r3, [r7, #7] + 80008f0: 79fb ldrb r3, [r7, #7] + 80008f2: 2b07 cmp r3, #7 + 80008f4: d9f4 bls.n 80008e0 +} + 80008f6: bf00 nop + 80008f8: bf00 nop + 80008fa: 3708 adds r7, #8 + 80008fc: 46bd mov sp, r7 + 80008fe: bd80 pop {r7, pc} + +08000900 : +* character = character to display (0-9, A-Z) +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_DisplayChar(char digit, char character) +{ + 8000900: b580 push {r7, lr} + 8000902: b082 sub sp, #8 + 8000904: af00 add r7, sp, #0 + 8000906: 4603 mov r3, r0 + 8000908: 460a mov r2, r1 + 800090a: 71fb strb r3, [r7, #7] + 800090c: 4613 mov r3, r2 + 800090e: 71bb strb r3, [r7, #6] + //MAX7219_Write(digit, MAX7219_LookupCode(character)); + MAX7219_Write(digit, conv_7seg[character]); + 8000910: 79bb ldrb r3, [r7, #6] + 8000912: 4a05 ldr r2, [pc, #20] @ (8000928 ) + 8000914: 5cd2 ldrb r2, [r2, r3] + 8000916: 79fb ldrb r3, [r7, #7] + 8000918: 4611 mov r1, r2 + 800091a: 4618 mov r0, r3 + 800091c: f000 f806 bl 800092c +} + 8000920: bf00 nop + 8000922: 3708 adds r7, #8 + 8000924: 46bd mov sp, r7 + 8000926: bd80 pop {r7, pc} + 8000928: 080020a8 .word 0x080020a8 + +0800092c : +* dataout = data to write to MAX7219 +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_Write (unsigned char reg_number, unsigned char dataout) +{ + 800092c: b580 push {r7, lr} + 800092e: b082 sub sp, #8 + 8000930: af00 add r7, sp, #0 + 8000932: 4603 mov r3, r0 + 8000934: 460a mov r2, r1 + 8000936: 71fb strb r3, [r7, #7] + 8000938: 4613 mov r3, r2 + 800093a: 71bb strb r3, [r7, #6] + MAX7219_nCS_PORT->BSRR = (uint32_t)MAX7219_nCS_PIN<<16;// nCS = 0 // take LOAD high to begin + 800093c: 4b09 ldr r3, [pc, #36] @ (8000964 ) + 800093e: f44f 3280 mov.w r2, #65536 @ 0x10000 + 8000942: 619a str r2, [r3, #24] + MAX7219_SendByte(reg_number); // write register number to MAX7219 + 8000944: 79fb ldrb r3, [r7, #7] + 8000946: 4618 mov r0, r3 + 8000948: f000 f80e bl 8000968 + MAX7219_SendByte(dataout); // write data to MAX7219 + 800094c: 79bb ldrb r3, [r7, #6] + 800094e: 4618 mov r0, r3 + 8000950: f000 f80a bl 8000968 + MAX7219_nCS_PORT->BSRR = (uint32_t)MAX7219_nCS_PIN;// nCS = 1 // take LOAD low to latch in data + 8000954: 4b03 ldr r3, [pc, #12] @ (8000964 ) + 8000956: 2201 movs r2, #1 + 8000958: 619a str r2, [r3, #24] + } + 800095a: bf00 nop + 800095c: 3708 adds r7, #8 + 800095e: 46bd mov sp, r7 + 8000960: bd80 pop {r7, pc} + 8000962: bf00 nop + 8000964: 40020800 .word 0x40020800 + +08000968 : +* Returns : none +********************************************************************************************************* +*/ + +static void MAX7219_SendByte (unsigned char dataout) +{ + 8000968: b580 push {r7, lr} + 800096a: b082 sub sp, #8 + 800096c: af00 add r7, sp, #0 + 800096e: 4603 mov r3, r0 + 8000970: 71fb strb r3, [r7, #7] + + HAL_SPI_Transmit(&hspi1, &dataout, 1, 1000); + 8000972: 1df9 adds r1, r7, #7 + 8000974: f44f 737a mov.w r3, #1000 @ 0x3e8 + 8000978: 2201 movs r2, #1 + 800097a: 4803 ldr r0, [pc, #12] @ (8000988 ) + 800097c: f001 f92d bl 8001bda + +} + 8000980: bf00 nop + 8000982: 3708 adds r7, #8 + 8000984: 46bd mov sp, r7 + 8000986: bd80 pop {r7, pc} + 8000988: 20000028 .word 0x20000028 + +0800098c : + * In the default implementation,Systick is used as source of time base. + * the tick variable is incremented each 1ms in its ISR. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_Init(void) +{ + 800098c: b580 push {r7, lr} + 800098e: b082 sub sp, #8 + 8000990: af00 add r7, sp, #0 + HAL_StatusTypeDef status = HAL_OK; + 8000992: 2300 movs r3, #0 + 8000994: 71fb strb r3, [r7, #7] +#if (PREFETCH_ENABLE != 0) + __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); +#endif /* PREFETCH_ENABLE */ + + /* Set Interrupt Group Priority */ + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); + 8000996: 2003 movs r0, #3 + 8000998: f000 f938 bl 8000c0c + + /* Use systick as time base source and configure 1ms tick (default clock after Reset is MSI) */ + if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK) + 800099c: 200f movs r0, #15 + 800099e: f000 f80d bl 80009bc + 80009a2: 4603 mov r3, r0 + 80009a4: 2b00 cmp r3, #0 + 80009a6: d002 beq.n 80009ae + { + status = HAL_ERROR; + 80009a8: 2301 movs r3, #1 + 80009aa: 71fb strb r3, [r7, #7] + 80009ac: e001 b.n 80009b2 + } + else + { + /* Init the low level hardware */ + HAL_MspInit(); + 80009ae: f7ff fe91 bl 80006d4 + } + + /* Return function status */ + return status; + 80009b2: 79fb ldrb r3, [r7, #7] +} + 80009b4: 4618 mov r0, r3 + 80009b6: 3708 adds r7, #8 + 80009b8: 46bd mov sp, r7 + 80009ba: bd80 pop {r7, pc} + +080009bc : + * implementation in user file. + * @param TickPriority Tick interrupt priority. + * @retval HAL status + */ +__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) +{ + 80009bc: b580 push {r7, lr} + 80009be: b084 sub sp, #16 + 80009c0: af00 add r7, sp, #0 + 80009c2: 6078 str r0, [r7, #4] + HAL_StatusTypeDef status = HAL_OK; + 80009c4: 2300 movs r3, #0 + 80009c6: 73fb strb r3, [r7, #15] + + if (uwTickFreq != 0U) + 80009c8: 4b16 ldr r3, [pc, #88] @ (8000a24 ) + 80009ca: 681b ldr r3, [r3, #0] + 80009cc: 2b00 cmp r3, #0 + 80009ce: d022 beq.n 8000a16 + { + /*Configure the SysTick to have interrupt in 1ms time basis*/ + if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) == 0U) + 80009d0: 4b15 ldr r3, [pc, #84] @ (8000a28 ) + 80009d2: 681a ldr r2, [r3, #0] + 80009d4: 4b13 ldr r3, [pc, #76] @ (8000a24 ) + 80009d6: 681b ldr r3, [r3, #0] + 80009d8: f44f 717a mov.w r1, #1000 @ 0x3e8 + 80009dc: fbb1 f3f3 udiv r3, r1, r3 + 80009e0: fbb2 f3f3 udiv r3, r2, r3 + 80009e4: 4618 mov r0, r3 + 80009e6: f000 f938 bl 8000c5a + 80009ea: 4603 mov r3, r0 + 80009ec: 2b00 cmp r3, #0 + 80009ee: d10f bne.n 8000a10 + { + /* Configure the SysTick IRQ priority */ + if (TickPriority < (1UL << __NVIC_PRIO_BITS)) + 80009f0: 687b ldr r3, [r7, #4] + 80009f2: 2b0f cmp r3, #15 + 80009f4: d809 bhi.n 8000a0a + { + HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); + 80009f6: 2200 movs r2, #0 + 80009f8: 6879 ldr r1, [r7, #4] + 80009fa: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff + 80009fe: f000 f910 bl 8000c22 + uwTickPrio = TickPriority; + 8000a02: 4a0a ldr r2, [pc, #40] @ (8000a2c ) + 8000a04: 687b ldr r3, [r7, #4] + 8000a06: 6013 str r3, [r2, #0] + 8000a08: e007 b.n 8000a1a + } + else + { + status = HAL_ERROR; + 8000a0a: 2301 movs r3, #1 + 8000a0c: 73fb strb r3, [r7, #15] + 8000a0e: e004 b.n 8000a1a + } + } + else + { + status = HAL_ERROR; + 8000a10: 2301 movs r3, #1 + 8000a12: 73fb strb r3, [r7, #15] + 8000a14: e001 b.n 8000a1a + } + } + else + { + status = HAL_ERROR; + 8000a16: 2301 movs r3, #1 + 8000a18: 73fb strb r3, [r7, #15] + } + + /* Return function status */ + return status; + 8000a1a: 7bfb ldrb r3, [r7, #15] +} + 8000a1c: 4618 mov r0, r3 + 8000a1e: 3710 adds r7, #16 + 8000a20: 46bd mov sp, r7 + 8000a22: bd80 pop {r7, pc} + 8000a24: 20000008 .word 0x20000008 + 8000a28: 20000000 .word 0x20000000 + 8000a2c: 20000004 .word 0x20000004 + +08000a30 : + * @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) +{ + 8000a30: b480 push {r7} + 8000a32: af00 add r7, sp, #0 + uwTick += uwTickFreq; + 8000a34: 4b05 ldr r3, [pc, #20] @ (8000a4c ) + 8000a36: 681a ldr r2, [r3, #0] + 8000a38: 4b05 ldr r3, [pc, #20] @ (8000a50 ) + 8000a3a: 681b ldr r3, [r3, #0] + 8000a3c: 4413 add r3, r2 + 8000a3e: 4a03 ldr r2, [pc, #12] @ (8000a4c ) + 8000a40: 6013 str r3, [r2, #0] +} + 8000a42: bf00 nop + 8000a44: 46bd mov sp, r7 + 8000a46: bc80 pop {r7} + 8000a48: 4770 bx lr + 8000a4a: bf00 nop + 8000a4c: 20000080 .word 0x20000080 + 8000a50: 20000008 .word 0x20000008 + +08000a54 : + * @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) +{ + 8000a54: b480 push {r7} + 8000a56: af00 add r7, sp, #0 + return uwTick; + 8000a58: 4b02 ldr r3, [pc, #8] @ (8000a64 ) + 8000a5a: 681b ldr r3, [r3, #0] +} + 8000a5c: 4618 mov r0, r3 + 8000a5e: 46bd mov sp, r7 + 8000a60: bc80 pop {r7} + 8000a62: 4770 bx lr + 8000a64: 20000080 .word 0x20000080 + +08000a68 : + * implementations in user file. + * @param Delay specifies the delay time length, in milliseconds. + * @retval None + */ +__weak void HAL_Delay(uint32_t Delay) +{ + 8000a68: b580 push {r7, lr} + 8000a6a: b084 sub sp, #16 + 8000a6c: af00 add r7, sp, #0 + 8000a6e: 6078 str r0, [r7, #4] + uint32_t tickstart = HAL_GetTick(); + 8000a70: f7ff fff0 bl 8000a54 + 8000a74: 60b8 str r0, [r7, #8] + uint32_t wait = Delay; + 8000a76: 687b ldr r3, [r7, #4] + 8000a78: 60fb str r3, [r7, #12] + + /* Add a period to guaranty minimum wait */ + if (wait < HAL_MAX_DELAY) + 8000a7a: 68fb ldr r3, [r7, #12] + 8000a7c: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8000a80: d004 beq.n 8000a8c + { + wait += (uint32_t)(uwTickFreq); + 8000a82: 4b09 ldr r3, [pc, #36] @ (8000aa8 ) + 8000a84: 681b ldr r3, [r3, #0] + 8000a86: 68fa ldr r2, [r7, #12] + 8000a88: 4413 add r3, r2 + 8000a8a: 60fb str r3, [r7, #12] + } + + while((HAL_GetTick() - tickstart) < wait) + 8000a8c: bf00 nop + 8000a8e: f7ff ffe1 bl 8000a54 + 8000a92: 4602 mov r2, r0 + 8000a94: 68bb ldr r3, [r7, #8] + 8000a96: 1ad3 subs r3, r2, r3 + 8000a98: 68fa ldr r2, [r7, #12] + 8000a9a: 429a cmp r2, r3 + 8000a9c: d8f7 bhi.n 8000a8e + { + } +} + 8000a9e: bf00 nop + 8000aa0: bf00 nop + 8000aa2: 3710 adds r7, #16 + 8000aa4: 46bd mov sp, r7 + 8000aa6: bd80 pop {r7, pc} + 8000aa8: 20000008 .word 0x20000008 + +08000aac <__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) +{ + 8000aac: b480 push {r7} + 8000aae: b085 sub sp, #20 + 8000ab0: af00 add r7, sp, #0 + 8000ab2: 6078 str r0, [r7, #4] + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 8000ab4: 687b ldr r3, [r7, #4] + 8000ab6: f003 0307 and.w r3, r3, #7 + 8000aba: 60fb str r3, [r7, #12] + + reg_value = SCB->AIRCR; /* read old register configuration */ + 8000abc: 4b0c ldr r3, [pc, #48] @ (8000af0 <__NVIC_SetPriorityGrouping+0x44>) + 8000abe: 68db ldr r3, [r3, #12] + 8000ac0: 60bb str r3, [r7, #8] + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + 8000ac2: 68ba ldr r2, [r7, #8] + 8000ac4: f64f 03ff movw r3, #63743 @ 0xf8ff + 8000ac8: 4013 ands r3, r2 + 8000aca: 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 */ + 8000acc: 68fb ldr r3, [r7, #12] + 8000ace: 021a lsls r2, r3, #8 + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + 8000ad0: 68bb ldr r3, [r7, #8] + 8000ad2: 4313 orrs r3, r2 + reg_value = (reg_value | + 8000ad4: f043 63bf orr.w r3, r3, #100139008 @ 0x5f80000 + 8000ad8: f443 3300 orr.w r3, r3, #131072 @ 0x20000 + 8000adc: 60bb str r3, [r7, #8] + SCB->AIRCR = reg_value; + 8000ade: 4a04 ldr r2, [pc, #16] @ (8000af0 <__NVIC_SetPriorityGrouping+0x44>) + 8000ae0: 68bb ldr r3, [r7, #8] + 8000ae2: 60d3 str r3, [r2, #12] +} + 8000ae4: bf00 nop + 8000ae6: 3714 adds r7, #20 + 8000ae8: 46bd mov sp, r7 + 8000aea: bc80 pop {r7} + 8000aec: 4770 bx lr + 8000aee: bf00 nop + 8000af0: e000ed00 .word 0xe000ed00 + +08000af4 <__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) +{ + 8000af4: b480 push {r7} + 8000af6: af00 add r7, sp, #0 + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); + 8000af8: 4b04 ldr r3, [pc, #16] @ (8000b0c <__NVIC_GetPriorityGrouping+0x18>) + 8000afa: 68db ldr r3, [r3, #12] + 8000afc: 0a1b lsrs r3, r3, #8 + 8000afe: f003 0307 and.w r3, r3, #7 +} + 8000b02: 4618 mov r0, r3 + 8000b04: 46bd mov sp, r7 + 8000b06: bc80 pop {r7} + 8000b08: 4770 bx lr + 8000b0a: bf00 nop + 8000b0c: e000ed00 .word 0xe000ed00 + +08000b10 <__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) +{ + 8000b10: b480 push {r7} + 8000b12: b083 sub sp, #12 + 8000b14: af00 add r7, sp, #0 + 8000b16: 4603 mov r3, r0 + 8000b18: 6039 str r1, [r7, #0] + 8000b1a: 71fb strb r3, [r7, #7] + if ((int32_t)(IRQn) >= 0) + 8000b1c: f997 3007 ldrsb.w r3, [r7, #7] + 8000b20: 2b00 cmp r3, #0 + 8000b22: db0a blt.n 8000b3a <__NVIC_SetPriority+0x2a> + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 8000b24: 683b ldr r3, [r7, #0] + 8000b26: b2da uxtb r2, r3 + 8000b28: 490c ldr r1, [pc, #48] @ (8000b5c <__NVIC_SetPriority+0x4c>) + 8000b2a: f997 3007 ldrsb.w r3, [r7, #7] + 8000b2e: 0112 lsls r2, r2, #4 + 8000b30: b2d2 uxtb r2, r2 + 8000b32: 440b add r3, r1 + 8000b34: 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); + } +} + 8000b38: e00a b.n 8000b50 <__NVIC_SetPriority+0x40> + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 8000b3a: 683b ldr r3, [r7, #0] + 8000b3c: b2da uxtb r2, r3 + 8000b3e: 4908 ldr r1, [pc, #32] @ (8000b60 <__NVIC_SetPriority+0x50>) + 8000b40: 79fb ldrb r3, [r7, #7] + 8000b42: f003 030f and.w r3, r3, #15 + 8000b46: 3b04 subs r3, #4 + 8000b48: 0112 lsls r2, r2, #4 + 8000b4a: b2d2 uxtb r2, r2 + 8000b4c: 440b add r3, r1 + 8000b4e: 761a strb r2, [r3, #24] +} + 8000b50: bf00 nop + 8000b52: 370c adds r7, #12 + 8000b54: 46bd mov sp, r7 + 8000b56: bc80 pop {r7} + 8000b58: 4770 bx lr + 8000b5a: bf00 nop + 8000b5c: e000e100 .word 0xe000e100 + 8000b60: e000ed00 .word 0xe000ed00 + +08000b64 : + \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) +{ + 8000b64: b480 push {r7} + 8000b66: b089 sub sp, #36 @ 0x24 + 8000b68: af00 add r7, sp, #0 + 8000b6a: 60f8 str r0, [r7, #12] + 8000b6c: 60b9 str r1, [r7, #8] + 8000b6e: 607a str r2, [r7, #4] + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 8000b70: 68fb ldr r3, [r7, #12] + 8000b72: f003 0307 and.w r3, r3, #7 + 8000b76: 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); + 8000b78: 69fb ldr r3, [r7, #28] + 8000b7a: f1c3 0307 rsb r3, r3, #7 + 8000b7e: 2b04 cmp r3, #4 + 8000b80: bf28 it cs + 8000b82: 2304 movcs r3, #4 + 8000b84: 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)); + 8000b86: 69fb ldr r3, [r7, #28] + 8000b88: 3304 adds r3, #4 + 8000b8a: 2b06 cmp r3, #6 + 8000b8c: d902 bls.n 8000b94 + 8000b8e: 69fb ldr r3, [r7, #28] + 8000b90: 3b03 subs r3, #3 + 8000b92: e000 b.n 8000b96 + 8000b94: 2300 movs r3, #0 + 8000b96: 617b str r3, [r7, #20] + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 8000b98: f04f 32ff mov.w r2, #4294967295 @ 0xffffffff + 8000b9c: 69bb ldr r3, [r7, #24] + 8000b9e: fa02 f303 lsl.w r3, r2, r3 + 8000ba2: 43da mvns r2, r3 + 8000ba4: 68bb ldr r3, [r7, #8] + 8000ba6: 401a ands r2, r3 + 8000ba8: 697b ldr r3, [r7, #20] + 8000baa: 409a lsls r2, r3 + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + 8000bac: f04f 31ff mov.w r1, #4294967295 @ 0xffffffff + 8000bb0: 697b ldr r3, [r7, #20] + 8000bb2: fa01 f303 lsl.w r3, r1, r3 + 8000bb6: 43d9 mvns r1, r3 + 8000bb8: 687b ldr r3, [r7, #4] + 8000bba: 400b ands r3, r1 + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 8000bbc: 4313 orrs r3, r2 + ); +} + 8000bbe: 4618 mov r0, r3 + 8000bc0: 3724 adds r7, #36 @ 0x24 + 8000bc2: 46bd mov sp, r7 + 8000bc4: bc80 pop {r7} + 8000bc6: 4770 bx lr + +08000bc8 : + \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) +{ + 8000bc8: b580 push {r7, lr} + 8000bca: b082 sub sp, #8 + 8000bcc: af00 add r7, sp, #0 + 8000bce: 6078 str r0, [r7, #4] + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + 8000bd0: 687b ldr r3, [r7, #4] + 8000bd2: 3b01 subs r3, #1 + 8000bd4: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 + 8000bd8: d301 bcc.n 8000bde + { + return (1UL); /* Reload value impossible */ + 8000bda: 2301 movs r3, #1 + 8000bdc: e00f b.n 8000bfe + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + 8000bde: 4a0a ldr r2, [pc, #40] @ (8000c08 ) + 8000be0: 687b ldr r3, [r7, #4] + 8000be2: 3b01 subs r3, #1 + 8000be4: 6053 str r3, [r2, #4] + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + 8000be6: 210f movs r1, #15 + 8000be8: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff + 8000bec: f7ff ff90 bl 8000b10 <__NVIC_SetPriority> + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + 8000bf0: 4b05 ldr r3, [pc, #20] @ (8000c08 ) + 8000bf2: 2200 movs r2, #0 + 8000bf4: 609a str r2, [r3, #8] + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + 8000bf6: 4b04 ldr r3, [pc, #16] @ (8000c08 ) + 8000bf8: 2207 movs r2, #7 + 8000bfa: 601a str r2, [r3, #0] + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ + 8000bfc: 2300 movs r3, #0 +} + 8000bfe: 4618 mov r0, r3 + 8000c00: 3708 adds r7, #8 + 8000c02: 46bd mov sp, r7 + 8000c04: bd80 pop {r7, pc} + 8000c06: bf00 nop + 8000c08: e000e010 .word 0xe000e010 + +08000c0c : + * @note When the NVIC_PriorityGroup_0 is selected, IRQ pre-emption is no more possible. + * The pending IRQ priority will be managed only by the subpriority. + * @retval None + */ +void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + 8000c0c: b580 push {r7, lr} + 8000c0e: b082 sub sp, #8 + 8000c10: af00 add r7, sp, #0 + 8000c12: 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); + 8000c14: 6878 ldr r0, [r7, #4] + 8000c16: f7ff ff49 bl 8000aac <__NVIC_SetPriorityGrouping> +} + 8000c1a: bf00 nop + 8000c1c: 3708 adds r7, #8 + 8000c1e: 46bd mov sp, r7 + 8000c20: bd80 pop {r7, pc} + +08000c22 : + * 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) +{ + 8000c22: b580 push {r7, lr} + 8000c24: b086 sub sp, #24 + 8000c26: af00 add r7, sp, #0 + 8000c28: 4603 mov r3, r0 + 8000c2a: 60b9 str r1, [r7, #8] + 8000c2c: 607a str r2, [r7, #4] + 8000c2e: 73fb strb r3, [r7, #15] + uint32_t prioritygroup = 0x00; + 8000c30: 2300 movs r3, #0 + 8000c32: 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(); + 8000c34: f7ff ff5e bl 8000af4 <__NVIC_GetPriorityGrouping> + 8000c38: 6178 str r0, [r7, #20] + + NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); + 8000c3a: 687a ldr r2, [r7, #4] + 8000c3c: 68b9 ldr r1, [r7, #8] + 8000c3e: 6978 ldr r0, [r7, #20] + 8000c40: f7ff ff90 bl 8000b64 + 8000c44: 4602 mov r2, r0 + 8000c46: f997 300f ldrsb.w r3, [r7, #15] + 8000c4a: 4611 mov r1, r2 + 8000c4c: 4618 mov r0, r3 + 8000c4e: f7ff ff5f bl 8000b10 <__NVIC_SetPriority> +} + 8000c52: bf00 nop + 8000c54: 3718 adds r7, #24 + 8000c56: 46bd mov sp, r7 + 8000c58: bd80 pop {r7, pc} + +08000c5a : + * @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) +{ + 8000c5a: b580 push {r7, lr} + 8000c5c: b082 sub sp, #8 + 8000c5e: af00 add r7, sp, #0 + 8000c60: 6078 str r0, [r7, #4] + return SysTick_Config(TicksNumb); + 8000c62: 6878 ldr r0, [r7, #4] + 8000c64: f7ff ffb0 bl 8000bc8 + 8000c68: 4603 mov r3, r0 +} + 8000c6a: 4618 mov r0, r3 + 8000c6c: 3708 adds r7, #8 + 8000c6e: 46bd mov sp, r7 + 8000c70: bd80 pop {r7, pc} + ... + +08000c74 : + * @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) +{ + 8000c74: b480 push {r7} + 8000c76: b087 sub sp, #28 + 8000c78: af00 add r7, sp, #0 + 8000c7a: 6078 str r0, [r7, #4] + 8000c7c: 6039 str r1, [r7, #0] + uint32_t position = 0x00; + 8000c7e: 2300 movs r3, #0 + 8000c80: 617b str r3, [r7, #20] + uint32_t iocurrent = 0x00; + 8000c82: 2300 movs r3, #0 + 8000c84: 60fb str r3, [r7, #12] + uint32_t temp = 0x00; + 8000c86: 2300 movs r3, #0 + 8000c88: 613b str r3, [r7, #16] + 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) != 0) + 8000c8a: e160 b.n 8000f4e + { + /* Get current io position */ + iocurrent = (GPIO_Init->Pin) & (1U << position); + 8000c8c: 683b ldr r3, [r7, #0] + 8000c8e: 681a ldr r2, [r3, #0] + 8000c90: 2101 movs r1, #1 + 8000c92: 697b ldr r3, [r7, #20] + 8000c94: fa01 f303 lsl.w r3, r1, r3 + 8000c98: 4013 ands r3, r2 + 8000c9a: 60fb str r3, [r7, #12] + + if (iocurrent) + 8000c9c: 68fb ldr r3, [r7, #12] + 8000c9e: 2b00 cmp r3, #0 + 8000ca0: f000 8152 beq.w 8000f48 + { + /*--------------------- GPIO Mode Configuration ------------------------*/ + /* In case of Output or Alternate function mode selection */ + if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || + 8000ca4: 683b ldr r3, [r7, #0] + 8000ca6: 685b ldr r3, [r3, #4] + 8000ca8: f003 0303 and.w r3, r3, #3 + 8000cac: 2b01 cmp r3, #1 + 8000cae: d005 beq.n 8000cbc + ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) + 8000cb0: 683b ldr r3, [r7, #0] + 8000cb2: 685b ldr r3, [r3, #4] + 8000cb4: f003 0303 and.w r3, r3, #3 + if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || + 8000cb8: 2b02 cmp r3, #2 + 8000cba: d130 bne.n 8000d1e + { + /* Check the Speed parameter */ + assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + /* Configure the IO Speed */ + temp = GPIOx->OSPEEDR; + 8000cbc: 687b ldr r3, [r7, #4] + 8000cbe: 689b ldr r3, [r3, #8] + 8000cc0: 613b str r3, [r7, #16] + CLEAR_BIT(temp, GPIO_OSPEEDER_OSPEEDR0 << (position * 2)); + 8000cc2: 697b ldr r3, [r7, #20] + 8000cc4: 005b lsls r3, r3, #1 + 8000cc6: 2203 movs r2, #3 + 8000cc8: fa02 f303 lsl.w r3, r2, r3 + 8000ccc: 43db mvns r3, r3 + 8000cce: 693a ldr r2, [r7, #16] + 8000cd0: 4013 ands r3, r2 + 8000cd2: 613b str r3, [r7, #16] + SET_BIT(temp, GPIO_Init->Speed << (position * 2)); + 8000cd4: 683b ldr r3, [r7, #0] + 8000cd6: 68da ldr r2, [r3, #12] + 8000cd8: 697b ldr r3, [r7, #20] + 8000cda: 005b lsls r3, r3, #1 + 8000cdc: fa02 f303 lsl.w r3, r2, r3 + 8000ce0: 693a ldr r2, [r7, #16] + 8000ce2: 4313 orrs r3, r2 + 8000ce4: 613b str r3, [r7, #16] + GPIOx->OSPEEDR = temp; + 8000ce6: 687b ldr r3, [r7, #4] + 8000ce8: 693a ldr r2, [r7, #16] + 8000cea: 609a str r2, [r3, #8] + + /* Configure the IO Output Type */ + temp = GPIOx->OTYPER; + 8000cec: 687b ldr r3, [r7, #4] + 8000cee: 685b ldr r3, [r3, #4] + 8000cf0: 613b str r3, [r7, #16] + CLEAR_BIT(temp, GPIO_OTYPER_OT_0 << position) ; + 8000cf2: 2201 movs r2, #1 + 8000cf4: 697b ldr r3, [r7, #20] + 8000cf6: fa02 f303 lsl.w r3, r2, r3 + 8000cfa: 43db mvns r3, r3 + 8000cfc: 693a ldr r2, [r7, #16] + 8000cfe: 4013 ands r3, r2 + 8000d00: 613b str r3, [r7, #16] + SET_BIT(temp, ((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); + 8000d02: 683b ldr r3, [r7, #0] + 8000d04: 685b ldr r3, [r3, #4] + 8000d06: 091b lsrs r3, r3, #4 + 8000d08: f003 0201 and.w r2, r3, #1 + 8000d0c: 697b ldr r3, [r7, #20] + 8000d0e: fa02 f303 lsl.w r3, r2, r3 + 8000d12: 693a ldr r2, [r7, #16] + 8000d14: 4313 orrs r3, r2 + 8000d16: 613b str r3, [r7, #16] + GPIOx->OTYPER = temp; + 8000d18: 687b ldr r3, [r7, #4] + 8000d1a: 693a ldr r2, [r7, #16] + 8000d1c: 605a str r2, [r3, #4] + } + + if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) + 8000d1e: 683b ldr r3, [r7, #0] + 8000d20: 685b ldr r3, [r3, #4] + 8000d22: f003 0303 and.w r3, r3, #3 + 8000d26: 2b03 cmp r3, #3 + 8000d28: d017 beq.n 8000d5a + { + /* Check the Pull parameter */ + assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); + + /* Activate the Pull-up or Pull down resistor for the current IO */ + temp = GPIOx->PUPDR; + 8000d2a: 687b ldr r3, [r7, #4] + 8000d2c: 68db ldr r3, [r3, #12] + 8000d2e: 613b str r3, [r7, #16] + CLEAR_BIT(temp, GPIO_PUPDR_PUPDR0 << (position * 2)); + 8000d30: 697b ldr r3, [r7, #20] + 8000d32: 005b lsls r3, r3, #1 + 8000d34: 2203 movs r2, #3 + 8000d36: fa02 f303 lsl.w r3, r2, r3 + 8000d3a: 43db mvns r3, r3 + 8000d3c: 693a ldr r2, [r7, #16] + 8000d3e: 4013 ands r3, r2 + 8000d40: 613b str r3, [r7, #16] + SET_BIT(temp, (GPIO_Init->Pull) << (position * 2)); + 8000d42: 683b ldr r3, [r7, #0] + 8000d44: 689a ldr r2, [r3, #8] + 8000d46: 697b ldr r3, [r7, #20] + 8000d48: 005b lsls r3, r3, #1 + 8000d4a: fa02 f303 lsl.w r3, r2, r3 + 8000d4e: 693a ldr r2, [r7, #16] + 8000d50: 4313 orrs r3, r2 + 8000d52: 613b str r3, [r7, #16] + GPIOx->PUPDR = temp; + 8000d54: 687b ldr r3, [r7, #4] + 8000d56: 693a ldr r2, [r7, #16] + 8000d58: 60da str r2, [r3, #12] + } + + /* In case of Alternate function mode selection */ + if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) + 8000d5a: 683b ldr r3, [r7, #0] + 8000d5c: 685b ldr r3, [r3, #4] + 8000d5e: f003 0303 and.w r3, r3, #3 + 8000d62: 2b02 cmp r3, #2 + 8000d64: d123 bne.n 8000dae + assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); + assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); + + /* Configure Alternate function mapped with the current IO */ + /* Identify AFRL or AFRH register based on IO position*/ + temp = GPIOx->AFR[position >> 3]; + 8000d66: 697b ldr r3, [r7, #20] + 8000d68: 08da lsrs r2, r3, #3 + 8000d6a: 687b ldr r3, [r7, #4] + 8000d6c: 3208 adds r2, #8 + 8000d6e: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8000d72: 613b str r3, [r7, #16] + CLEAR_BIT(temp, 0xFU << ((uint32_t)(position & 0x07U) * 4)); + 8000d74: 697b ldr r3, [r7, #20] + 8000d76: f003 0307 and.w r3, r3, #7 + 8000d7a: 009b lsls r3, r3, #2 + 8000d7c: 220f movs r2, #15 + 8000d7e: fa02 f303 lsl.w r3, r2, r3 + 8000d82: 43db mvns r3, r3 + 8000d84: 693a ldr r2, [r7, #16] + 8000d86: 4013 ands r3, r2 + 8000d88: 613b str r3, [r7, #16] + SET_BIT(temp, (uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & 0x07U) * 4)); + 8000d8a: 683b ldr r3, [r7, #0] + 8000d8c: 691a ldr r2, [r3, #16] + 8000d8e: 697b ldr r3, [r7, #20] + 8000d90: f003 0307 and.w r3, r3, #7 + 8000d94: 009b lsls r3, r3, #2 + 8000d96: fa02 f303 lsl.w r3, r2, r3 + 8000d9a: 693a ldr r2, [r7, #16] + 8000d9c: 4313 orrs r3, r2 + 8000d9e: 613b str r3, [r7, #16] + GPIOx->AFR[position >> 3] = temp; + 8000da0: 697b ldr r3, [r7, #20] + 8000da2: 08da lsrs r2, r3, #3 + 8000da4: 687b ldr r3, [r7, #4] + 8000da6: 3208 adds r2, #8 + 8000da8: 6939 ldr r1, [r7, #16] + 8000daa: f843 1022 str.w r1, [r3, r2, lsl #2] + } + + /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ + temp = GPIOx->MODER; + 8000dae: 687b ldr r3, [r7, #4] + 8000db0: 681b ldr r3, [r3, #0] + 8000db2: 613b str r3, [r7, #16] + CLEAR_BIT(temp, GPIO_MODER_MODER0 << (position * 2)); + 8000db4: 697b ldr r3, [r7, #20] + 8000db6: 005b lsls r3, r3, #1 + 8000db8: 2203 movs r2, #3 + 8000dba: fa02 f303 lsl.w r3, r2, r3 + 8000dbe: 43db mvns r3, r3 + 8000dc0: 693a ldr r2, [r7, #16] + 8000dc2: 4013 ands r3, r2 + 8000dc4: 613b str r3, [r7, #16] + SET_BIT(temp, (GPIO_Init->Mode & GPIO_MODE) << (position * 2)); + 8000dc6: 683b ldr r3, [r7, #0] + 8000dc8: 685b ldr r3, [r3, #4] + 8000dca: f003 0203 and.w r2, r3, #3 + 8000dce: 697b ldr r3, [r7, #20] + 8000dd0: 005b lsls r3, r3, #1 + 8000dd2: fa02 f303 lsl.w r3, r2, r3 + 8000dd6: 693a ldr r2, [r7, #16] + 8000dd8: 4313 orrs r3, r2 + 8000dda: 613b str r3, [r7, #16] + GPIOx->MODER = temp; + 8000ddc: 687b ldr r3, [r7, #4] + 8000dde: 693a ldr r2, [r7, #16] + 8000de0: 601a str r2, [r3, #0] + + /*--------------------- EXTI Mode Configuration ------------------------*/ + /* Configure the External Interrupt or event for the current IO */ + if ((GPIO_Init->Mode & EXTI_MODE) != 0x00U) + 8000de2: 683b ldr r3, [r7, #0] + 8000de4: 685b ldr r3, [r3, #4] + 8000de6: f403 3340 and.w r3, r3, #196608 @ 0x30000 + 8000dea: 2b00 cmp r3, #0 + 8000dec: f000 80ac beq.w 8000f48 + { + /* Enable SYSCFG Clock */ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + 8000df0: 4b5e ldr r3, [pc, #376] @ (8000f6c ) + 8000df2: 6a1b ldr r3, [r3, #32] + 8000df4: 4a5d ldr r2, [pc, #372] @ (8000f6c ) + 8000df6: f043 0301 orr.w r3, r3, #1 + 8000dfa: 6213 str r3, [r2, #32] + 8000dfc: 4b5b ldr r3, [pc, #364] @ (8000f6c ) + 8000dfe: 6a1b ldr r3, [r3, #32] + 8000e00: f003 0301 and.w r3, r3, #1 + 8000e04: 60bb str r3, [r7, #8] + 8000e06: 68bb ldr r3, [r7, #8] + + temp = SYSCFG->EXTICR[position >> 2]; + 8000e08: 4a59 ldr r2, [pc, #356] @ (8000f70 ) + 8000e0a: 697b ldr r3, [r7, #20] + 8000e0c: 089b lsrs r3, r3, #2 + 8000e0e: 3302 adds r3, #2 + 8000e10: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 8000e14: 613b str r3, [r7, #16] + CLEAR_BIT(temp, (0x0FU) << (4 * (position & 0x03))); + 8000e16: 697b ldr r3, [r7, #20] + 8000e18: f003 0303 and.w r3, r3, #3 + 8000e1c: 009b lsls r3, r3, #2 + 8000e1e: 220f movs r2, #15 + 8000e20: fa02 f303 lsl.w r3, r2, r3 + 8000e24: 43db mvns r3, r3 + 8000e26: 693a ldr r2, [r7, #16] + 8000e28: 4013 ands r3, r2 + 8000e2a: 613b str r3, [r7, #16] + SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03))); + 8000e2c: 687b ldr r3, [r7, #4] + 8000e2e: 4a51 ldr r2, [pc, #324] @ (8000f74 ) + 8000e30: 4293 cmp r3, r2 + 8000e32: d025 beq.n 8000e80 + 8000e34: 687b ldr r3, [r7, #4] + 8000e36: 4a50 ldr r2, [pc, #320] @ (8000f78 ) + 8000e38: 4293 cmp r3, r2 + 8000e3a: d01f beq.n 8000e7c + 8000e3c: 687b ldr r3, [r7, #4] + 8000e3e: 4a4f ldr r2, [pc, #316] @ (8000f7c ) + 8000e40: 4293 cmp r3, r2 + 8000e42: d019 beq.n 8000e78 + 8000e44: 687b ldr r3, [r7, #4] + 8000e46: 4a4e ldr r2, [pc, #312] @ (8000f80 ) + 8000e48: 4293 cmp r3, r2 + 8000e4a: d013 beq.n 8000e74 + 8000e4c: 687b ldr r3, [r7, #4] + 8000e4e: 4a4d ldr r2, [pc, #308] @ (8000f84 ) + 8000e50: 4293 cmp r3, r2 + 8000e52: d00d beq.n 8000e70 + 8000e54: 687b ldr r3, [r7, #4] + 8000e56: 4a4c ldr r2, [pc, #304] @ (8000f88 ) + 8000e58: 4293 cmp r3, r2 + 8000e5a: d007 beq.n 8000e6c + 8000e5c: 687b ldr r3, [r7, #4] + 8000e5e: 4a4b ldr r2, [pc, #300] @ (8000f8c ) + 8000e60: 4293 cmp r3, r2 + 8000e62: d101 bne.n 8000e68 + 8000e64: 2306 movs r3, #6 + 8000e66: e00c b.n 8000e82 + 8000e68: 2307 movs r3, #7 + 8000e6a: e00a b.n 8000e82 + 8000e6c: 2305 movs r3, #5 + 8000e6e: e008 b.n 8000e82 + 8000e70: 2304 movs r3, #4 + 8000e72: e006 b.n 8000e82 + 8000e74: 2303 movs r3, #3 + 8000e76: e004 b.n 8000e82 + 8000e78: 2302 movs r3, #2 + 8000e7a: e002 b.n 8000e82 + 8000e7c: 2301 movs r3, #1 + 8000e7e: e000 b.n 8000e82 + 8000e80: 2300 movs r3, #0 + 8000e82: 697a ldr r2, [r7, #20] + 8000e84: f002 0203 and.w r2, r2, #3 + 8000e88: 0092 lsls r2, r2, #2 + 8000e8a: 4093 lsls r3, r2 + 8000e8c: 693a ldr r2, [r7, #16] + 8000e8e: 4313 orrs r3, r2 + 8000e90: 613b str r3, [r7, #16] + SYSCFG->EXTICR[position >> 2] = temp; + 8000e92: 4937 ldr r1, [pc, #220] @ (8000f70 ) + 8000e94: 697b ldr r3, [r7, #20] + 8000e96: 089b lsrs r3, r3, #2 + 8000e98: 3302 adds r3, #2 + 8000e9a: 693a ldr r2, [r7, #16] + 8000e9c: f841 2023 str.w r2, [r1, r3, lsl #2] + + /* Clear Rising Falling edge configuration */ + temp = EXTI->RTSR; + 8000ea0: 4b3b ldr r3, [pc, #236] @ (8000f90 ) + 8000ea2: 689b ldr r3, [r3, #8] + 8000ea4: 613b str r3, [r7, #16] + CLEAR_BIT(temp, (uint32_t)iocurrent); + 8000ea6: 68fb ldr r3, [r7, #12] + 8000ea8: 43db mvns r3, r3 + 8000eaa: 693a ldr r2, [r7, #16] + 8000eac: 4013 ands r3, r2 + 8000eae: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U) + 8000eb0: 683b ldr r3, [r7, #0] + 8000eb2: 685b ldr r3, [r3, #4] + 8000eb4: f403 1380 and.w r3, r3, #1048576 @ 0x100000 + 8000eb8: 2b00 cmp r3, #0 + 8000eba: d003 beq.n 8000ec4 + { + SET_BIT(temp, iocurrent); + 8000ebc: 693a ldr r2, [r7, #16] + 8000ebe: 68fb ldr r3, [r7, #12] + 8000ec0: 4313 orrs r3, r2 + 8000ec2: 613b str r3, [r7, #16] + } + EXTI->RTSR = temp; + 8000ec4: 4a32 ldr r2, [pc, #200] @ (8000f90 ) + 8000ec6: 693b ldr r3, [r7, #16] + 8000ec8: 6093 str r3, [r2, #8] + + temp = EXTI->FTSR; + 8000eca: 4b31 ldr r3, [pc, #196] @ (8000f90 ) + 8000ecc: 68db ldr r3, [r3, #12] + 8000ece: 613b str r3, [r7, #16] + CLEAR_BIT(temp, (uint32_t)iocurrent); + 8000ed0: 68fb ldr r3, [r7, #12] + 8000ed2: 43db mvns r3, r3 + 8000ed4: 693a ldr r2, [r7, #16] + 8000ed6: 4013 ands r3, r2 + 8000ed8: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U) + 8000eda: 683b ldr r3, [r7, #0] + 8000edc: 685b ldr r3, [r3, #4] + 8000ede: f403 1300 and.w r3, r3, #2097152 @ 0x200000 + 8000ee2: 2b00 cmp r3, #0 + 8000ee4: d003 beq.n 8000eee + { + SET_BIT(temp, iocurrent); + 8000ee6: 693a ldr r2, [r7, #16] + 8000ee8: 68fb ldr r3, [r7, #12] + 8000eea: 4313 orrs r3, r2 + 8000eec: 613b str r3, [r7, #16] + } + EXTI->FTSR = temp; + 8000eee: 4a28 ldr r2, [pc, #160] @ (8000f90 ) + 8000ef0: 693b ldr r3, [r7, #16] + 8000ef2: 60d3 str r3, [r2, #12] + + temp = EXTI->EMR; + 8000ef4: 4b26 ldr r3, [pc, #152] @ (8000f90 ) + 8000ef6: 685b ldr r3, [r3, #4] + 8000ef8: 613b str r3, [r7, #16] + CLEAR_BIT(temp, (uint32_t)iocurrent); + 8000efa: 68fb ldr r3, [r7, #12] + 8000efc: 43db mvns r3, r3 + 8000efe: 693a ldr r2, [r7, #16] + 8000f00: 4013 ands r3, r2 + 8000f02: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & EXTI_EVT) != 0x00U) + 8000f04: 683b ldr r3, [r7, #0] + 8000f06: 685b ldr r3, [r3, #4] + 8000f08: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8000f0c: 2b00 cmp r3, #0 + 8000f0e: d003 beq.n 8000f18 + { + SET_BIT(temp, iocurrent); + 8000f10: 693a ldr r2, [r7, #16] + 8000f12: 68fb ldr r3, [r7, #12] + 8000f14: 4313 orrs r3, r2 + 8000f16: 613b str r3, [r7, #16] + } + EXTI->EMR = temp; + 8000f18: 4a1d ldr r2, [pc, #116] @ (8000f90 ) + 8000f1a: 693b ldr r3, [r7, #16] + 8000f1c: 6053 str r3, [r2, #4] + + /* Clear EXTI line configuration */ + temp = EXTI->IMR; + 8000f1e: 4b1c ldr r3, [pc, #112] @ (8000f90 ) + 8000f20: 681b ldr r3, [r3, #0] + 8000f22: 613b str r3, [r7, #16] + CLEAR_BIT(temp, (uint32_t)iocurrent); + 8000f24: 68fb ldr r3, [r7, #12] + 8000f26: 43db mvns r3, r3 + 8000f28: 693a ldr r2, [r7, #16] + 8000f2a: 4013 ands r3, r2 + 8000f2c: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & EXTI_IT) != 0x00U) + 8000f2e: 683b ldr r3, [r7, #0] + 8000f30: 685b ldr r3, [r3, #4] + 8000f32: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 8000f36: 2b00 cmp r3, #0 + 8000f38: d003 beq.n 8000f42 + { + SET_BIT(temp, iocurrent); + 8000f3a: 693a ldr r2, [r7, #16] + 8000f3c: 68fb ldr r3, [r7, #12] + 8000f3e: 4313 orrs r3, r2 + 8000f40: 613b str r3, [r7, #16] + } + EXTI->IMR = temp; + 8000f42: 4a13 ldr r2, [pc, #76] @ (8000f90 ) + 8000f44: 693b ldr r3, [r7, #16] + 8000f46: 6013 str r3, [r2, #0] + } + } + + position++; + 8000f48: 697b ldr r3, [r7, #20] + 8000f4a: 3301 adds r3, #1 + 8000f4c: 617b str r3, [r7, #20] + while (((GPIO_Init->Pin) >> position) != 0) + 8000f4e: 683b ldr r3, [r7, #0] + 8000f50: 681a ldr r2, [r3, #0] + 8000f52: 697b ldr r3, [r7, #20] + 8000f54: fa22 f303 lsr.w r3, r2, r3 + 8000f58: 2b00 cmp r3, #0 + 8000f5a: f47f ae97 bne.w 8000c8c + } +} + 8000f5e: bf00 nop + 8000f60: bf00 nop + 8000f62: 371c adds r7, #28 + 8000f64: 46bd mov sp, r7 + 8000f66: bc80 pop {r7} + 8000f68: 4770 bx lr + 8000f6a: bf00 nop + 8000f6c: 40023800 .word 0x40023800 + 8000f70: 40010000 .word 0x40010000 + 8000f74: 40020000 .word 0x40020000 + 8000f78: 40020400 .word 0x40020400 + 8000f7c: 40020800 .word 0x40020800 + 8000f80: 40020c00 .word 0x40020c00 + 8000f84: 40021000 .word 0x40021000 + 8000f88: 40021400 .word 0x40021400 + 8000f8c: 40021800 .word 0x40021800 + 8000f90: 40010400 .word 0x40010400 + +08000f94 : + * @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) +{ + 8000f94: b480 push {r7} + 8000f96: b083 sub sp, #12 + 8000f98: af00 add r7, sp, #0 + 8000f9a: 6078 str r0, [r7, #4] + 8000f9c: 460b mov r3, r1 + 8000f9e: 807b strh r3, [r7, #2] + 8000fa0: 4613 mov r3, r2 + 8000fa2: 707b strb r3, [r7, #1] + /* Check the parameters */ + assert_param(IS_GPIO_PIN(GPIO_Pin)); + assert_param(IS_GPIO_PIN_ACTION(PinState)); + + if (PinState != GPIO_PIN_RESET) + 8000fa4: 787b ldrb r3, [r7, #1] + 8000fa6: 2b00 cmp r3, #0 + 8000fa8: d003 beq.n 8000fb2 + { + GPIOx->BSRR = (uint32_t)GPIO_Pin; + 8000faa: 887a ldrh r2, [r7, #2] + 8000fac: 687b ldr r3, [r7, #4] + 8000fae: 619a str r2, [r3, #24] + } + else + { + GPIOx->BSRR = (uint32_t)GPIO_Pin << 16 ; + } +} + 8000fb0: e003 b.n 8000fba + GPIOx->BSRR = (uint32_t)GPIO_Pin << 16 ; + 8000fb2: 887b ldrh r3, [r7, #2] + 8000fb4: 041a lsls r2, r3, #16 + 8000fb6: 687b ldr r3, [r7, #4] + 8000fb8: 619a str r2, [r3, #24] +} + 8000fba: bf00 nop + 8000fbc: 370c adds r7, #12 + 8000fbe: 46bd mov sp, r7 + 8000fc0: bc80 pop {r7} + 8000fc2: 4770 bx lr + +08000fc4 : + * 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) +{ + 8000fc4: b580 push {r7, lr} + 8000fc6: b088 sub sp, #32 + 8000fc8: af00 add r7, sp, #0 + 8000fca: 6078 str r0, [r7, #4] + uint32_t tickstart; + HAL_StatusTypeDef status; + uint32_t sysclk_source, pll_config; + + /* Check the parameters */ + if(RCC_OscInitStruct == NULL) + 8000fcc: 687b ldr r3, [r7, #4] + 8000fce: 2b00 cmp r3, #0 + 8000fd0: d101 bne.n 8000fd6 + { + return HAL_ERROR; + 8000fd2: 2301 movs r3, #1 + 8000fd4: e31d b.n 8001612 + } + + assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); + + sysclk_source = __HAL_RCC_GET_SYSCLK_SOURCE(); + 8000fd6: 4b94 ldr r3, [pc, #592] @ (8001228 ) + 8000fd8: 689b ldr r3, [r3, #8] + 8000fda: f003 030c and.w r3, r3, #12 + 8000fde: 61bb str r3, [r7, #24] + pll_config = __HAL_RCC_GET_PLL_OSCSOURCE(); + 8000fe0: 4b91 ldr r3, [pc, #580] @ (8001228 ) + 8000fe2: 689b ldr r3, [r3, #8] + 8000fe4: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 8000fe8: 617b str r3, [r7, #20] + + /*------------------------------- HSE Configuration ------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) + 8000fea: 687b ldr r3, [r7, #4] + 8000fec: 681b ldr r3, [r3, #0] + 8000fee: f003 0301 and.w r3, r3, #1 + 8000ff2: 2b00 cmp r3, #0 + 8000ff4: d07b beq.n 80010ee + { + /* 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((sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSE) + 8000ff6: 69bb ldr r3, [r7, #24] + 8000ff8: 2b08 cmp r3, #8 + 8000ffa: d006 beq.n 800100a + || ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pll_config == RCC_PLLSOURCE_HSE))) + 8000ffc: 69bb ldr r3, [r7, #24] + 8000ffe: 2b0c cmp r3, #12 + 8001000: d10f bne.n 8001022 + 8001002: 697b ldr r3, [r7, #20] + 8001004: f5b3 3f80 cmp.w r3, #65536 @ 0x10000 + 8001008: d10b bne.n 8001022 + { + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 800100a: 4b87 ldr r3, [pc, #540] @ (8001228 ) + 800100c: 681b ldr r3, [r3, #0] + 800100e: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8001012: 2b00 cmp r3, #0 + 8001014: d06a beq.n 80010ec + 8001016: 687b ldr r3, [r7, #4] + 8001018: 685b ldr r3, [r3, #4] + 800101a: 2b00 cmp r3, #0 + 800101c: d166 bne.n 80010ec + { + return HAL_ERROR; + 800101e: 2301 movs r3, #1 + 8001020: e2f7 b.n 8001612 + } + } + else + { + /* Set the new HSE configuration ---------------------------------------*/ + __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); + 8001022: 687b ldr r3, [r7, #4] + 8001024: 685b ldr r3, [r3, #4] + 8001026: 2b01 cmp r3, #1 + 8001028: d106 bne.n 8001038 + 800102a: 4b7f ldr r3, [pc, #508] @ (8001228 ) + 800102c: 681b ldr r3, [r3, #0] + 800102e: 4a7e ldr r2, [pc, #504] @ (8001228 ) + 8001030: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 8001034: 6013 str r3, [r2, #0] + 8001036: e02d b.n 8001094 + 8001038: 687b ldr r3, [r7, #4] + 800103a: 685b ldr r3, [r3, #4] + 800103c: 2b00 cmp r3, #0 + 800103e: d10c bne.n 800105a + 8001040: 4b79 ldr r3, [pc, #484] @ (8001228 ) + 8001042: 681b ldr r3, [r3, #0] + 8001044: 4a78 ldr r2, [pc, #480] @ (8001228 ) + 8001046: f423 3380 bic.w r3, r3, #65536 @ 0x10000 + 800104a: 6013 str r3, [r2, #0] + 800104c: 4b76 ldr r3, [pc, #472] @ (8001228 ) + 800104e: 681b ldr r3, [r3, #0] + 8001050: 4a75 ldr r2, [pc, #468] @ (8001228 ) + 8001052: f423 2380 bic.w r3, r3, #262144 @ 0x40000 + 8001056: 6013 str r3, [r2, #0] + 8001058: e01c b.n 8001094 + 800105a: 687b ldr r3, [r7, #4] + 800105c: 685b ldr r3, [r3, #4] + 800105e: 2b05 cmp r3, #5 + 8001060: d10c bne.n 800107c + 8001062: 4b71 ldr r3, [pc, #452] @ (8001228 ) + 8001064: 681b ldr r3, [r3, #0] + 8001066: 4a70 ldr r2, [pc, #448] @ (8001228 ) + 8001068: f443 2380 orr.w r3, r3, #262144 @ 0x40000 + 800106c: 6013 str r3, [r2, #0] + 800106e: 4b6e ldr r3, [pc, #440] @ (8001228 ) + 8001070: 681b ldr r3, [r3, #0] + 8001072: 4a6d ldr r2, [pc, #436] @ (8001228 ) + 8001074: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 8001078: 6013 str r3, [r2, #0] + 800107a: e00b b.n 8001094 + 800107c: 4b6a ldr r3, [pc, #424] @ (8001228 ) + 800107e: 681b ldr r3, [r3, #0] + 8001080: 4a69 ldr r2, [pc, #420] @ (8001228 ) + 8001082: f423 3380 bic.w r3, r3, #65536 @ 0x10000 + 8001086: 6013 str r3, [r2, #0] + 8001088: 4b67 ldr r3, [pc, #412] @ (8001228 ) + 800108a: 681b ldr r3, [r3, #0] + 800108c: 4a66 ldr r2, [pc, #408] @ (8001228 ) + 800108e: f423 2380 bic.w r3, r3, #262144 @ 0x40000 + 8001092: 6013 str r3, [r2, #0] + + /* Check the HSE State */ + if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) + 8001094: 687b ldr r3, [r7, #4] + 8001096: 685b ldr r3, [r3, #4] + 8001098: 2b00 cmp r3, #0 + 800109a: d013 beq.n 80010c4 + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800109c: f7ff fcda bl 8000a54 + 80010a0: 6138 str r0, [r7, #16] + + /* Wait till HSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == 0U) + 80010a2: e008 b.n 80010b6 + { + if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) + 80010a4: f7ff fcd6 bl 8000a54 + 80010a8: 4602 mov r2, r0 + 80010aa: 693b ldr r3, [r7, #16] + 80010ac: 1ad3 subs r3, r2, r3 + 80010ae: 2b64 cmp r3, #100 @ 0x64 + 80010b0: d901 bls.n 80010b6 + { + return HAL_TIMEOUT; + 80010b2: 2303 movs r3, #3 + 80010b4: e2ad b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == 0U) + 80010b6: 4b5c ldr r3, [pc, #368] @ (8001228 ) + 80010b8: 681b ldr r3, [r3, #0] + 80010ba: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 80010be: 2b00 cmp r3, #0 + 80010c0: d0f0 beq.n 80010a4 + 80010c2: e014 b.n 80010ee + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80010c4: f7ff fcc6 bl 8000a54 + 80010c8: 6138 str r0, [r7, #16] + + /* Wait till HSE is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) + 80010ca: e008 b.n 80010de + { + if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) + 80010cc: f7ff fcc2 bl 8000a54 + 80010d0: 4602 mov r2, r0 + 80010d2: 693b ldr r3, [r7, #16] + 80010d4: 1ad3 subs r3, r2, r3 + 80010d6: 2b64 cmp r3, #100 @ 0x64 + 80010d8: d901 bls.n 80010de + { + return HAL_TIMEOUT; + 80010da: 2303 movs r3, #3 + 80010dc: e299 b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) + 80010de: 4b52 ldr r3, [pc, #328] @ (8001228 ) + 80010e0: 681b ldr r3, [r3, #0] + 80010e2: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 80010e6: 2b00 cmp r3, #0 + 80010e8: d1f0 bne.n 80010cc + 80010ea: e000 b.n 80010ee + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 80010ec: bf00 nop + } + } + } + } + /*----------------------------- HSI Configuration --------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) + 80010ee: 687b ldr r3, [r7, #4] + 80010f0: 681b ldr r3, [r3, #0] + 80010f2: f003 0302 and.w r3, r3, #2 + 80010f6: 2b00 cmp r3, #0 + 80010f8: d05a beq.n 80011b0 + /* 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((sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSI) + 80010fa: 69bb ldr r3, [r7, #24] + 80010fc: 2b04 cmp r3, #4 + 80010fe: d005 beq.n 800110c + || ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pll_config == RCC_PLLSOURCE_HSI))) + 8001100: 69bb ldr r3, [r7, #24] + 8001102: 2b0c cmp r3, #12 + 8001104: d119 bne.n 800113a + 8001106: 697b ldr r3, [r7, #20] + 8001108: 2b00 cmp r3, #0 + 800110a: d116 bne.n 800113a + { + /* When HSI is used as system clock it will not disabled */ + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) + 800110c: 4b46 ldr r3, [pc, #280] @ (8001228 ) + 800110e: 681b ldr r3, [r3, #0] + 8001110: f003 0302 and.w r3, r3, #2 + 8001114: 2b00 cmp r3, #0 + 8001116: d005 beq.n 8001124 + 8001118: 687b ldr r3, [r7, #4] + 800111a: 68db ldr r3, [r3, #12] + 800111c: 2b01 cmp r3, #1 + 800111e: d001 beq.n 8001124 + { + return HAL_ERROR; + 8001120: 2301 movs r3, #1 + 8001122: e276 b.n 8001612 + } + /* Otherwise, just the calibration is allowed */ + else + { + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 8001124: 4b40 ldr r3, [pc, #256] @ (8001228 ) + 8001126: 685b ldr r3, [r3, #4] + 8001128: f423 52f8 bic.w r2, r3, #7936 @ 0x1f00 + 800112c: 687b ldr r3, [r7, #4] + 800112e: 691b ldr r3, [r3, #16] + 8001130: 021b lsls r3, r3, #8 + 8001132: 493d ldr r1, [pc, #244] @ (8001228 ) + 8001134: 4313 orrs r3, r2 + 8001136: 604b str r3, [r1, #4] + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) + 8001138: e03a b.n 80011b0 + } + } + else + { + /* Check the HSI State */ + if(RCC_OscInitStruct->HSIState != RCC_HSI_OFF) + 800113a: 687b ldr r3, [r7, #4] + 800113c: 68db ldr r3, [r3, #12] + 800113e: 2b00 cmp r3, #0 + 8001140: d020 beq.n 8001184 + { + /* Enable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_ENABLE(); + 8001142: 4b3a ldr r3, [pc, #232] @ (800122c ) + 8001144: 2201 movs r2, #1 + 8001146: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001148: f7ff fc84 bl 8000a54 + 800114c: 6138 str r0, [r7, #16] + + /* Wait till HSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == 0U) + 800114e: e008 b.n 8001162 + { + if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) + 8001150: f7ff fc80 bl 8000a54 + 8001154: 4602 mov r2, r0 + 8001156: 693b ldr r3, [r7, #16] + 8001158: 1ad3 subs r3, r2, r3 + 800115a: 2b02 cmp r3, #2 + 800115c: d901 bls.n 8001162 + { + return HAL_TIMEOUT; + 800115e: 2303 movs r3, #3 + 8001160: e257 b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == 0U) + 8001162: 4b31 ldr r3, [pc, #196] @ (8001228 ) + 8001164: 681b ldr r3, [r3, #0] + 8001166: f003 0302 and.w r3, r3, #2 + 800116a: 2b00 cmp r3, #0 + 800116c: d0f0 beq.n 8001150 + } + } + + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 800116e: 4b2e ldr r3, [pc, #184] @ (8001228 ) + 8001170: 685b ldr r3, [r3, #4] + 8001172: f423 52f8 bic.w r2, r3, #7936 @ 0x1f00 + 8001176: 687b ldr r3, [r7, #4] + 8001178: 691b ldr r3, [r3, #16] + 800117a: 021b lsls r3, r3, #8 + 800117c: 492a ldr r1, [pc, #168] @ (8001228 ) + 800117e: 4313 orrs r3, r2 + 8001180: 604b str r3, [r1, #4] + 8001182: e015 b.n 80011b0 + } + else + { + /* Disable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_DISABLE(); + 8001184: 4b29 ldr r3, [pc, #164] @ (800122c ) + 8001186: 2200 movs r2, #0 + 8001188: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800118a: f7ff fc63 bl 8000a54 + 800118e: 6138 str r0, [r7, #16] + + /* Wait till HSI is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) + 8001190: e008 b.n 80011a4 + { + if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) + 8001192: f7ff fc5f bl 8000a54 + 8001196: 4602 mov r2, r0 + 8001198: 693b ldr r3, [r7, #16] + 800119a: 1ad3 subs r3, r2, r3 + 800119c: 2b02 cmp r3, #2 + 800119e: d901 bls.n 80011a4 + { + return HAL_TIMEOUT; + 80011a0: 2303 movs r3, #3 + 80011a2: e236 b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) + 80011a4: 4b20 ldr r3, [pc, #128] @ (8001228 ) + 80011a6: 681b ldr r3, [r3, #0] + 80011a8: f003 0302 and.w r3, r3, #2 + 80011ac: 2b00 cmp r3, #0 + 80011ae: d1f0 bne.n 8001192 + } + } + } + } + /*----------------------------- MSI Configuration --------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_MSI) == RCC_OSCILLATORTYPE_MSI) + 80011b0: 687b ldr r3, [r7, #4] + 80011b2: 681b ldr r3, [r3, #0] + 80011b4: f003 0310 and.w r3, r3, #16 + 80011b8: 2b00 cmp r3, #0 + 80011ba: f000 80b8 beq.w 800132e + { + /* When the MSI is used as system clock it will not be disabled */ + if(sysclk_source == RCC_CFGR_SWS_MSI) + 80011be: 69bb ldr r3, [r7, #24] + 80011c0: 2b00 cmp r3, #0 + 80011c2: d170 bne.n 80012a6 + { + if((__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != 0U) && (RCC_OscInitStruct->MSIState == RCC_MSI_OFF)) + 80011c4: 4b18 ldr r3, [pc, #96] @ (8001228 ) + 80011c6: 681b ldr r3, [r3, #0] + 80011c8: f403 7300 and.w r3, r3, #512 @ 0x200 + 80011cc: 2b00 cmp r3, #0 + 80011ce: d005 beq.n 80011dc + 80011d0: 687b ldr r3, [r7, #4] + 80011d2: 699b ldr r3, [r3, #24] + 80011d4: 2b00 cmp r3, #0 + 80011d6: d101 bne.n 80011dc + { + return HAL_ERROR; + 80011d8: 2301 movs r3, #1 + 80011da: e21a b.n 8001612 + assert_param(IS_RCC_MSI_CLOCK_RANGE(RCC_OscInitStruct->MSIClockRange)); + + /* To correctly read data from FLASH memory, the number of wait states (LATENCY) + must be correctly programmed according to the frequency of the CPU clock + (HCLK) and the supply voltage of the device. */ + if(RCC_OscInitStruct->MSIClockRange > __HAL_RCC_GET_MSI_RANGE()) + 80011dc: 687b ldr r3, [r7, #4] + 80011de: 6a1a ldr r2, [r3, #32] + 80011e0: 4b11 ldr r3, [pc, #68] @ (8001228 ) + 80011e2: 685b ldr r3, [r3, #4] + 80011e4: f403 4360 and.w r3, r3, #57344 @ 0xe000 + 80011e8: 429a cmp r2, r3 + 80011ea: d921 bls.n 8001230 + { + /* First increase number of wait states update if necessary */ + if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) + 80011ec: 687b ldr r3, [r7, #4] + 80011ee: 6a1b ldr r3, [r3, #32] + 80011f0: 4618 mov r0, r3 + 80011f2: f000 fc09 bl 8001a08 + 80011f6: 4603 mov r3, r0 + 80011f8: 2b00 cmp r3, #0 + 80011fa: d001 beq.n 8001200 + { + return HAL_ERROR; + 80011fc: 2301 movs r3, #1 + 80011fe: e208 b.n 8001612 + } + + /* Selects the Multiple Speed oscillator (MSI) clock range .*/ + __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); + 8001200: 4b09 ldr r3, [pc, #36] @ (8001228 ) + 8001202: 685b ldr r3, [r3, #4] + 8001204: f423 4260 bic.w r2, r3, #57344 @ 0xe000 + 8001208: 687b ldr r3, [r7, #4] + 800120a: 6a1b ldr r3, [r3, #32] + 800120c: 4906 ldr r1, [pc, #24] @ (8001228 ) + 800120e: 4313 orrs r3, r2 + 8001210: 604b str r3, [r1, #4] + /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ + __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); + 8001212: 4b05 ldr r3, [pc, #20] @ (8001228 ) + 8001214: 685b ldr r3, [r3, #4] + 8001216: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 + 800121a: 687b ldr r3, [r7, #4] + 800121c: 69db ldr r3, [r3, #28] + 800121e: 061b lsls r3, r3, #24 + 8001220: 4901 ldr r1, [pc, #4] @ (8001228 ) + 8001222: 4313 orrs r3, r2 + 8001224: 604b str r3, [r1, #4] + 8001226: e020 b.n 800126a + 8001228: 40023800 .word 0x40023800 + 800122c: 42470000 .word 0x42470000 + } + else + { + /* Else, keep current flash latency while decreasing applies */ + /* Selects the Multiple Speed oscillator (MSI) clock range .*/ + __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); + 8001230: 4b99 ldr r3, [pc, #612] @ (8001498 ) + 8001232: 685b ldr r3, [r3, #4] + 8001234: f423 4260 bic.w r2, r3, #57344 @ 0xe000 + 8001238: 687b ldr r3, [r7, #4] + 800123a: 6a1b ldr r3, [r3, #32] + 800123c: 4996 ldr r1, [pc, #600] @ (8001498 ) + 800123e: 4313 orrs r3, r2 + 8001240: 604b str r3, [r1, #4] + /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ + __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); + 8001242: 4b95 ldr r3, [pc, #596] @ (8001498 ) + 8001244: 685b ldr r3, [r3, #4] + 8001246: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 + 800124a: 687b ldr r3, [r7, #4] + 800124c: 69db ldr r3, [r3, #28] + 800124e: 061b lsls r3, r3, #24 + 8001250: 4991 ldr r1, [pc, #580] @ (8001498 ) + 8001252: 4313 orrs r3, r2 + 8001254: 604b str r3, [r1, #4] + + /* Decrease number of wait states update if necessary */ + if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) + 8001256: 687b ldr r3, [r7, #4] + 8001258: 6a1b ldr r3, [r3, #32] + 800125a: 4618 mov r0, r3 + 800125c: f000 fbd4 bl 8001a08 + 8001260: 4603 mov r3, r0 + 8001262: 2b00 cmp r3, #0 + 8001264: d001 beq.n 800126a + { + return HAL_ERROR; + 8001266: 2301 movs r3, #1 + 8001268: e1d3 b.n 8001612 + } + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = (32768U * (1UL << ((RCC_OscInitStruct->MSIClockRange >> RCC_ICSCR_MSIRANGE_Pos) + 1U))) + 800126a: 687b ldr r3, [r7, #4] + 800126c: 6a1b ldr r3, [r3, #32] + 800126e: 0b5b lsrs r3, r3, #13 + 8001270: 3301 adds r3, #1 + 8001272: f44f 4200 mov.w r2, #32768 @ 0x8000 + 8001276: fa02 f303 lsl.w r3, r2, r3 + >> AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)]; + 800127a: 4a87 ldr r2, [pc, #540] @ (8001498 ) + 800127c: 6892 ldr r2, [r2, #8] + 800127e: 0912 lsrs r2, r2, #4 + 8001280: f002 020f and.w r2, r2, #15 + 8001284: 4985 ldr r1, [pc, #532] @ (800149c ) + 8001286: 5c8a ldrb r2, [r1, r2] + 8001288: 40d3 lsrs r3, r2 + SystemCoreClock = (32768U * (1UL << ((RCC_OscInitStruct->MSIClockRange >> RCC_ICSCR_MSIRANGE_Pos) + 1U))) + 800128a: 4a85 ldr r2, [pc, #532] @ (80014a0 ) + 800128c: 6013 str r3, [r2, #0] + + /* Configure the source of time base considering new system clocks settings*/ + status = HAL_InitTick(uwTickPrio); + 800128e: 4b85 ldr r3, [pc, #532] @ (80014a4 ) + 8001290: 681b ldr r3, [r3, #0] + 8001292: 4618 mov r0, r3 + 8001294: f7ff fb92 bl 80009bc + 8001298: 4603 mov r3, r0 + 800129a: 73fb strb r3, [r7, #15] + if(status != HAL_OK) + 800129c: 7bfb ldrb r3, [r7, #15] + 800129e: 2b00 cmp r3, #0 + 80012a0: d045 beq.n 800132e + { + return status; + 80012a2: 7bfb ldrb r3, [r7, #15] + 80012a4: e1b5 b.n 8001612 + { + /* Check MSI State */ + assert_param(IS_RCC_MSI(RCC_OscInitStruct->MSIState)); + + /* Check the MSI State */ + if(RCC_OscInitStruct->MSIState != RCC_MSI_OFF) + 80012a6: 687b ldr r3, [r7, #4] + 80012a8: 699b ldr r3, [r3, #24] + 80012aa: 2b00 cmp r3, #0 + 80012ac: d029 beq.n 8001302 + { + /* Enable the Multi Speed oscillator (MSI). */ + __HAL_RCC_MSI_ENABLE(); + 80012ae: 4b7e ldr r3, [pc, #504] @ (80014a8 ) + 80012b0: 2201 movs r2, #1 + 80012b2: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80012b4: f7ff fbce bl 8000a54 + 80012b8: 6138 str r0, [r7, #16] + + /* Wait till MSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) == 0U) + 80012ba: e008 b.n 80012ce + { + if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) + 80012bc: f7ff fbca bl 8000a54 + 80012c0: 4602 mov r2, r0 + 80012c2: 693b ldr r3, [r7, #16] + 80012c4: 1ad3 subs r3, r2, r3 + 80012c6: 2b02 cmp r3, #2 + 80012c8: d901 bls.n 80012ce + { + return HAL_TIMEOUT; + 80012ca: 2303 movs r3, #3 + 80012cc: e1a1 b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) == 0U) + 80012ce: 4b72 ldr r3, [pc, #456] @ (8001498 ) + 80012d0: 681b ldr r3, [r3, #0] + 80012d2: f403 7300 and.w r3, r3, #512 @ 0x200 + 80012d6: 2b00 cmp r3, #0 + 80012d8: d0f0 beq.n 80012bc + /* Check MSICalibrationValue and MSIClockRange input parameters */ + assert_param(IS_RCC_MSICALIBRATION_VALUE(RCC_OscInitStruct->MSICalibrationValue)); + assert_param(IS_RCC_MSI_CLOCK_RANGE(RCC_OscInitStruct->MSIClockRange)); + + /* Selects the Multiple Speed oscillator (MSI) clock range .*/ + __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); + 80012da: 4b6f ldr r3, [pc, #444] @ (8001498 ) + 80012dc: 685b ldr r3, [r3, #4] + 80012de: f423 4260 bic.w r2, r3, #57344 @ 0xe000 + 80012e2: 687b ldr r3, [r7, #4] + 80012e4: 6a1b ldr r3, [r3, #32] + 80012e6: 496c ldr r1, [pc, #432] @ (8001498 ) + 80012e8: 4313 orrs r3, r2 + 80012ea: 604b str r3, [r1, #4] + /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ + __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); + 80012ec: 4b6a ldr r3, [pc, #424] @ (8001498 ) + 80012ee: 685b ldr r3, [r3, #4] + 80012f0: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 + 80012f4: 687b ldr r3, [r7, #4] + 80012f6: 69db ldr r3, [r3, #28] + 80012f8: 061b lsls r3, r3, #24 + 80012fa: 4967 ldr r1, [pc, #412] @ (8001498 ) + 80012fc: 4313 orrs r3, r2 + 80012fe: 604b str r3, [r1, #4] + 8001300: e015 b.n 800132e + + } + else + { + /* Disable the Multi Speed oscillator (MSI). */ + __HAL_RCC_MSI_DISABLE(); + 8001302: 4b69 ldr r3, [pc, #420] @ (80014a8 ) + 8001304: 2200 movs r2, #0 + 8001306: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001308: f7ff fba4 bl 8000a54 + 800130c: 6138 str r0, [r7, #16] + + /* Wait till MSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != 0U) + 800130e: e008 b.n 8001322 + { + if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) + 8001310: f7ff fba0 bl 8000a54 + 8001314: 4602 mov r2, r0 + 8001316: 693b ldr r3, [r7, #16] + 8001318: 1ad3 subs r3, r2, r3 + 800131a: 2b02 cmp r3, #2 + 800131c: d901 bls.n 8001322 + { + return HAL_TIMEOUT; + 800131e: 2303 movs r3, #3 + 8001320: e177 b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != 0U) + 8001322: 4b5d ldr r3, [pc, #372] @ (8001498 ) + 8001324: 681b ldr r3, [r3, #0] + 8001326: f403 7300 and.w r3, r3, #512 @ 0x200 + 800132a: 2b00 cmp r3, #0 + 800132c: d1f0 bne.n 8001310 + } + } + } + } + /*------------------------------ LSI Configuration -------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) + 800132e: 687b ldr r3, [r7, #4] + 8001330: 681b ldr r3, [r3, #0] + 8001332: f003 0308 and.w r3, r3, #8 + 8001336: 2b00 cmp r3, #0 + 8001338: d030 beq.n 800139c + { + /* Check the parameters */ + assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); + + /* Check the LSI State */ + if(RCC_OscInitStruct->LSIState != RCC_LSI_OFF) + 800133a: 687b ldr r3, [r7, #4] + 800133c: 695b ldr r3, [r3, #20] + 800133e: 2b00 cmp r3, #0 + 8001340: d016 beq.n 8001370 + { + /* Enable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_ENABLE(); + 8001342: 4b5a ldr r3, [pc, #360] @ (80014ac ) + 8001344: 2201 movs r2, #1 + 8001346: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001348: f7ff fb84 bl 8000a54 + 800134c: 6138 str r0, [r7, #16] + + /* Wait till LSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == 0U) + 800134e: e008 b.n 8001362 + { + if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) + 8001350: f7ff fb80 bl 8000a54 + 8001354: 4602 mov r2, r0 + 8001356: 693b ldr r3, [r7, #16] + 8001358: 1ad3 subs r3, r2, r3 + 800135a: 2b02 cmp r3, #2 + 800135c: d901 bls.n 8001362 + { + return HAL_TIMEOUT; + 800135e: 2303 movs r3, #3 + 8001360: e157 b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == 0U) + 8001362: 4b4d ldr r3, [pc, #308] @ (8001498 ) + 8001364: 6b5b ldr r3, [r3, #52] @ 0x34 + 8001366: f003 0302 and.w r3, r3, #2 + 800136a: 2b00 cmp r3, #0 + 800136c: d0f0 beq.n 8001350 + 800136e: e015 b.n 800139c + } + } + else + { + /* Disable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_DISABLE(); + 8001370: 4b4e ldr r3, [pc, #312] @ (80014ac ) + 8001372: 2200 movs r2, #0 + 8001374: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001376: f7ff fb6d bl 8000a54 + 800137a: 6138 str r0, [r7, #16] + + /* Wait till LSI is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != 0U) + 800137c: e008 b.n 8001390 + { + if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) + 800137e: f7ff fb69 bl 8000a54 + 8001382: 4602 mov r2, r0 + 8001384: 693b ldr r3, [r7, #16] + 8001386: 1ad3 subs r3, r2, r3 + 8001388: 2b02 cmp r3, #2 + 800138a: d901 bls.n 8001390 + { + return HAL_TIMEOUT; + 800138c: 2303 movs r3, #3 + 800138e: e140 b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != 0U) + 8001390: 4b41 ldr r3, [pc, #260] @ (8001498 ) + 8001392: 6b5b ldr r3, [r3, #52] @ 0x34 + 8001394: f003 0302 and.w r3, r3, #2 + 8001398: 2b00 cmp r3, #0 + 800139a: d1f0 bne.n 800137e + } + } + } + } + /*------------------------------ LSE Configuration -------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) + 800139c: 687b ldr r3, [r7, #4] + 800139e: 681b ldr r3, [r3, #0] + 80013a0: f003 0304 and.w r3, r3, #4 + 80013a4: 2b00 cmp r3, #0 + 80013a6: f000 80b5 beq.w 8001514 + { + FlagStatus pwrclkchanged = RESET; + 80013aa: 2300 movs r3, #0 + 80013ac: 77fb strb r3, [r7, #31] + /* Check the parameters */ + assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); + + /* Update LSE configuration in Backup Domain control register */ + /* Requires to enable write access to Backup Domain of necessary */ + if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + 80013ae: 4b3a ldr r3, [pc, #232] @ (8001498 ) + 80013b0: 6a5b ldr r3, [r3, #36] @ 0x24 + 80013b2: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 80013b6: 2b00 cmp r3, #0 + 80013b8: d10d bne.n 80013d6 + { + __HAL_RCC_PWR_CLK_ENABLE(); + 80013ba: 4b37 ldr r3, [pc, #220] @ (8001498 ) + 80013bc: 6a5b ldr r3, [r3, #36] @ 0x24 + 80013be: 4a36 ldr r2, [pc, #216] @ (8001498 ) + 80013c0: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 80013c4: 6253 str r3, [r2, #36] @ 0x24 + 80013c6: 4b34 ldr r3, [pc, #208] @ (8001498 ) + 80013c8: 6a5b ldr r3, [r3, #36] @ 0x24 + 80013ca: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 80013ce: 60bb str r3, [r7, #8] + 80013d0: 68bb ldr r3, [r7, #8] + pwrclkchanged = SET; + 80013d2: 2301 movs r3, #1 + 80013d4: 77fb strb r3, [r7, #31] + } + + if(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 80013d6: 4b36 ldr r3, [pc, #216] @ (80014b0 ) + 80013d8: 681b ldr r3, [r3, #0] + 80013da: f403 7380 and.w r3, r3, #256 @ 0x100 + 80013de: 2b00 cmp r3, #0 + 80013e0: d118 bne.n 8001414 + { + /* Enable write access to Backup domain */ + SET_BIT(PWR->CR, PWR_CR_DBP); + 80013e2: 4b33 ldr r3, [pc, #204] @ (80014b0 ) + 80013e4: 681b ldr r3, [r3, #0] + 80013e6: 4a32 ldr r2, [pc, #200] @ (80014b0 ) + 80013e8: f443 7380 orr.w r3, r3, #256 @ 0x100 + 80013ec: 6013 str r3, [r2, #0] + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + 80013ee: f7ff fb31 bl 8000a54 + 80013f2: 6138 str r0, [r7, #16] + + while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 80013f4: e008 b.n 8001408 + { + if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + 80013f6: f7ff fb2d bl 8000a54 + 80013fa: 4602 mov r2, r0 + 80013fc: 693b ldr r3, [r7, #16] + 80013fe: 1ad3 subs r3, r2, r3 + 8001400: 2b64 cmp r3, #100 @ 0x64 + 8001402: d901 bls.n 8001408 + { + return HAL_TIMEOUT; + 8001404: 2303 movs r3, #3 + 8001406: e104 b.n 8001612 + while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 8001408: 4b29 ldr r3, [pc, #164] @ (80014b0 ) + 800140a: 681b ldr r3, [r3, #0] + 800140c: f403 7380 and.w r3, r3, #256 @ 0x100 + 8001410: 2b00 cmp r3, #0 + 8001412: d0f0 beq.n 80013f6 + } + } + } + + /* Set the new LSE configuration -----------------------------------------*/ + __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); + 8001414: 687b ldr r3, [r7, #4] + 8001416: 689b ldr r3, [r3, #8] + 8001418: 2b01 cmp r3, #1 + 800141a: d106 bne.n 800142a + 800141c: 4b1e ldr r3, [pc, #120] @ (8001498 ) + 800141e: 6b5b ldr r3, [r3, #52] @ 0x34 + 8001420: 4a1d ldr r2, [pc, #116] @ (8001498 ) + 8001422: f443 7380 orr.w r3, r3, #256 @ 0x100 + 8001426: 6353 str r3, [r2, #52] @ 0x34 + 8001428: e02d b.n 8001486 + 800142a: 687b ldr r3, [r7, #4] + 800142c: 689b ldr r3, [r3, #8] + 800142e: 2b00 cmp r3, #0 + 8001430: d10c bne.n 800144c + 8001432: 4b19 ldr r3, [pc, #100] @ (8001498 ) + 8001434: 6b5b ldr r3, [r3, #52] @ 0x34 + 8001436: 4a18 ldr r2, [pc, #96] @ (8001498 ) + 8001438: f423 7380 bic.w r3, r3, #256 @ 0x100 + 800143c: 6353 str r3, [r2, #52] @ 0x34 + 800143e: 4b16 ldr r3, [pc, #88] @ (8001498 ) + 8001440: 6b5b ldr r3, [r3, #52] @ 0x34 + 8001442: 4a15 ldr r2, [pc, #84] @ (8001498 ) + 8001444: f423 6380 bic.w r3, r3, #1024 @ 0x400 + 8001448: 6353 str r3, [r2, #52] @ 0x34 + 800144a: e01c b.n 8001486 + 800144c: 687b ldr r3, [r7, #4] + 800144e: 689b ldr r3, [r3, #8] + 8001450: 2b05 cmp r3, #5 + 8001452: d10c bne.n 800146e + 8001454: 4b10 ldr r3, [pc, #64] @ (8001498 ) + 8001456: 6b5b ldr r3, [r3, #52] @ 0x34 + 8001458: 4a0f ldr r2, [pc, #60] @ (8001498 ) + 800145a: f443 6380 orr.w r3, r3, #1024 @ 0x400 + 800145e: 6353 str r3, [r2, #52] @ 0x34 + 8001460: 4b0d ldr r3, [pc, #52] @ (8001498 ) + 8001462: 6b5b ldr r3, [r3, #52] @ 0x34 + 8001464: 4a0c ldr r2, [pc, #48] @ (8001498 ) + 8001466: f443 7380 orr.w r3, r3, #256 @ 0x100 + 800146a: 6353 str r3, [r2, #52] @ 0x34 + 800146c: e00b b.n 8001486 + 800146e: 4b0a ldr r3, [pc, #40] @ (8001498 ) + 8001470: 6b5b ldr r3, [r3, #52] @ 0x34 + 8001472: 4a09 ldr r2, [pc, #36] @ (8001498 ) + 8001474: f423 7380 bic.w r3, r3, #256 @ 0x100 + 8001478: 6353 str r3, [r2, #52] @ 0x34 + 800147a: 4b07 ldr r3, [pc, #28] @ (8001498 ) + 800147c: 6b5b ldr r3, [r3, #52] @ 0x34 + 800147e: 4a06 ldr r2, [pc, #24] @ (8001498 ) + 8001480: f423 6380 bic.w r3, r3, #1024 @ 0x400 + 8001484: 6353 str r3, [r2, #52] @ 0x34 + /* Check the LSE State */ + if(RCC_OscInitStruct->LSEState != RCC_LSE_OFF) + 8001486: 687b ldr r3, [r7, #4] + 8001488: 689b ldr r3, [r3, #8] + 800148a: 2b00 cmp r3, #0 + 800148c: d024 beq.n 80014d8 + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800148e: f7ff fae1 bl 8000a54 + 8001492: 6138 str r0, [r7, #16] + + /* Wait till LSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == 0U) + 8001494: e019 b.n 80014ca + 8001496: bf00 nop + 8001498: 40023800 .word 0x40023800 + 800149c: 08002098 .word 0x08002098 + 80014a0: 20000000 .word 0x20000000 + 80014a4: 20000004 .word 0x20000004 + 80014a8: 42470020 .word 0x42470020 + 80014ac: 42470680 .word 0x42470680 + 80014b0: 40007000 .word 0x40007000 + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + 80014b4: f7ff face bl 8000a54 + 80014b8: 4602 mov r2, r0 + 80014ba: 693b ldr r3, [r7, #16] + 80014bc: 1ad3 subs r3, r2, r3 + 80014be: f241 3288 movw r2, #5000 @ 0x1388 + 80014c2: 4293 cmp r3, r2 + 80014c4: d901 bls.n 80014ca + { + return HAL_TIMEOUT; + 80014c6: 2303 movs r3, #3 + 80014c8: e0a3 b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == 0U) + 80014ca: 4b54 ldr r3, [pc, #336] @ (800161c ) + 80014cc: 6b5b ldr r3, [r3, #52] @ 0x34 + 80014ce: f403 7300 and.w r3, r3, #512 @ 0x200 + 80014d2: 2b00 cmp r3, #0 + 80014d4: d0ee beq.n 80014b4 + 80014d6: e014 b.n 8001502 + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80014d8: f7ff fabc bl 8000a54 + 80014dc: 6138 str r0, [r7, #16] + + /* Wait till LSE is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != 0U) + 80014de: e00a b.n 80014f6 + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + 80014e0: f7ff fab8 bl 8000a54 + 80014e4: 4602 mov r2, r0 + 80014e6: 693b ldr r3, [r7, #16] + 80014e8: 1ad3 subs r3, r2, r3 + 80014ea: f241 3288 movw r2, #5000 @ 0x1388 + 80014ee: 4293 cmp r3, r2 + 80014f0: d901 bls.n 80014f6 + { + return HAL_TIMEOUT; + 80014f2: 2303 movs r3, #3 + 80014f4: e08d b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != 0U) + 80014f6: 4b49 ldr r3, [pc, #292] @ (800161c ) + 80014f8: 6b5b ldr r3, [r3, #52] @ 0x34 + 80014fa: f403 7300 and.w r3, r3, #512 @ 0x200 + 80014fe: 2b00 cmp r3, #0 + 8001500: d1ee bne.n 80014e0 + } + } + } + + /* Require to disable power clock if necessary */ + if(pwrclkchanged == SET) + 8001502: 7ffb ldrb r3, [r7, #31] + 8001504: 2b01 cmp r3, #1 + 8001506: d105 bne.n 8001514 + { + __HAL_RCC_PWR_CLK_DISABLE(); + 8001508: 4b44 ldr r3, [pc, #272] @ (800161c ) + 800150a: 6a5b ldr r3, [r3, #36] @ 0x24 + 800150c: 4a43 ldr r2, [pc, #268] @ (800161c ) + 800150e: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 8001512: 6253 str r3, [r2, #36] @ 0x24 + } + + /*-------------------------------- PLL Configuration -----------------------*/ + /* Check the parameters */ + assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); + if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) + 8001514: 687b ldr r3, [r7, #4] + 8001516: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001518: 2b00 cmp r3, #0 + 800151a: d079 beq.n 8001610 + { + /* Check if the PLL is used as system clock or not */ + if(sysclk_source != RCC_SYSCLKSOURCE_STATUS_PLLCLK) + 800151c: 69bb ldr r3, [r7, #24] + 800151e: 2b0c cmp r3, #12 + 8001520: d056 beq.n 80015d0 + { + if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) + 8001522: 687b ldr r3, [r7, #4] + 8001524: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001526: 2b02 cmp r3, #2 + 8001528: d13b bne.n 80015a2 + assert_param(IS_RCC_PLLSOURCE(RCC_OscInitStruct->PLL.PLLSource)); + assert_param(IS_RCC_PLL_MUL(RCC_OscInitStruct->PLL.PLLMUL)); + assert_param(IS_RCC_PLL_DIV(RCC_OscInitStruct->PLL.PLLDIV)); + + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 800152a: 4b3d ldr r3, [pc, #244] @ (8001620 ) + 800152c: 2200 movs r2, #0 + 800152e: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001530: f7ff fa90 bl 8000a54 + 8001534: 6138 str r0, [r7, #16] + + /* Wait till PLL is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) + 8001536: e008 b.n 800154a + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 8001538: f7ff fa8c bl 8000a54 + 800153c: 4602 mov r2, r0 + 800153e: 693b ldr r3, [r7, #16] + 8001540: 1ad3 subs r3, r2, r3 + 8001542: 2b02 cmp r3, #2 + 8001544: d901 bls.n 800154a + { + return HAL_TIMEOUT; + 8001546: 2303 movs r3, #3 + 8001548: e063 b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) + 800154a: 4b34 ldr r3, [pc, #208] @ (800161c ) + 800154c: 681b ldr r3, [r3, #0] + 800154e: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 8001552: 2b00 cmp r3, #0 + 8001554: d1f0 bne.n 8001538 + } + } + + /* Configure the main PLL clock source, multiplication and division factors. */ + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + 8001556: 4b31 ldr r3, [pc, #196] @ (800161c ) + 8001558: 689b ldr r3, [r3, #8] + 800155a: f423 027d bic.w r2, r3, #16580608 @ 0xfd0000 + 800155e: 687b ldr r3, [r7, #4] + 8001560: 6a99 ldr r1, [r3, #40] @ 0x28 + 8001562: 687b ldr r3, [r7, #4] + 8001564: 6adb ldr r3, [r3, #44] @ 0x2c + 8001566: 4319 orrs r1, r3 + 8001568: 687b ldr r3, [r7, #4] + 800156a: 6b1b ldr r3, [r3, #48] @ 0x30 + 800156c: 430b orrs r3, r1 + 800156e: 492b ldr r1, [pc, #172] @ (800161c ) + 8001570: 4313 orrs r3, r2 + 8001572: 608b str r3, [r1, #8] + RCC_OscInitStruct->PLL.PLLMUL, + RCC_OscInitStruct->PLL.PLLDIV); + /* Enable the main PLL. */ + __HAL_RCC_PLL_ENABLE(); + 8001574: 4b2a ldr r3, [pc, #168] @ (8001620 ) + 8001576: 2201 movs r2, #1 + 8001578: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800157a: f7ff fa6b bl 8000a54 + 800157e: 6138 str r0, [r7, #16] + + /* Wait till PLL is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == 0U) + 8001580: e008 b.n 8001594 + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 8001582: f7ff fa67 bl 8000a54 + 8001586: 4602 mov r2, r0 + 8001588: 693b ldr r3, [r7, #16] + 800158a: 1ad3 subs r3, r2, r3 + 800158c: 2b02 cmp r3, #2 + 800158e: d901 bls.n 8001594 + { + return HAL_TIMEOUT; + 8001590: 2303 movs r3, #3 + 8001592: e03e b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == 0U) + 8001594: 4b21 ldr r3, [pc, #132] @ (800161c ) + 8001596: 681b ldr r3, [r3, #0] + 8001598: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 800159c: 2b00 cmp r3, #0 + 800159e: d0f0 beq.n 8001582 + 80015a0: e036 b.n 8001610 + } + } + else + { + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 80015a2: 4b1f ldr r3, [pc, #124] @ (8001620 ) + 80015a4: 2200 movs r2, #0 + 80015a6: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80015a8: f7ff fa54 bl 8000a54 + 80015ac: 6138 str r0, [r7, #16] + + /* Wait till PLL is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) + 80015ae: e008 b.n 80015c2 + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 80015b0: f7ff fa50 bl 8000a54 + 80015b4: 4602 mov r2, r0 + 80015b6: 693b ldr r3, [r7, #16] + 80015b8: 1ad3 subs r3, r2, r3 + 80015ba: 2b02 cmp r3, #2 + 80015bc: d901 bls.n 80015c2 + { + return HAL_TIMEOUT; + 80015be: 2303 movs r3, #3 + 80015c0: e027 b.n 8001612 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) + 80015c2: 4b16 ldr r3, [pc, #88] @ (800161c ) + 80015c4: 681b ldr r3, [r3, #0] + 80015c6: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 80015ca: 2b00 cmp r3, #0 + 80015cc: d1f0 bne.n 80015b0 + 80015ce: e01f b.n 8001610 + } + } + else + { + /* Check if there is a request to disable the PLL used as System clock source */ + if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) + 80015d0: 687b ldr r3, [r7, #4] + 80015d2: 6a5b ldr r3, [r3, #36] @ 0x24 + 80015d4: 2b01 cmp r3, #1 + 80015d6: d101 bne.n 80015dc + { + return HAL_ERROR; + 80015d8: 2301 movs r3, #1 + 80015da: e01a b.n 8001612 + } + else + { + /* Do not return HAL_ERROR if request repeats the current configuration */ + pll_config = RCC->CFGR; + 80015dc: 4b0f ldr r3, [pc, #60] @ (800161c ) + 80015de: 689b ldr r3, [r3, #8] + 80015e0: 617b str r3, [r7, #20] + if((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 80015e2: 697b ldr r3, [r7, #20] + 80015e4: f403 3280 and.w r2, r3, #65536 @ 0x10000 + 80015e8: 687b ldr r3, [r7, #4] + 80015ea: 6a9b ldr r3, [r3, #40] @ 0x28 + 80015ec: 429a cmp r2, r3 + 80015ee: d10d bne.n 800160c + (READ_BIT(pll_config, RCC_CFGR_PLLMUL) != RCC_OscInitStruct->PLL.PLLMUL) || + 80015f0: 697b ldr r3, [r7, #20] + 80015f2: f403 1270 and.w r2, r3, #3932160 @ 0x3c0000 + 80015f6: 687b ldr r3, [r7, #4] + 80015f8: 6adb ldr r3, [r3, #44] @ 0x2c + if((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 80015fa: 429a cmp r2, r3 + 80015fc: d106 bne.n 800160c + (READ_BIT(pll_config, RCC_CFGR_PLLDIV) != RCC_OscInitStruct->PLL.PLLDIV)) + 80015fe: 697b ldr r3, [r7, #20] + 8001600: f403 0240 and.w r2, r3, #12582912 @ 0xc00000 + 8001604: 687b ldr r3, [r7, #4] + 8001606: 6b1b ldr r3, [r3, #48] @ 0x30 + (READ_BIT(pll_config, RCC_CFGR_PLLMUL) != RCC_OscInitStruct->PLL.PLLMUL) || + 8001608: 429a cmp r2, r3 + 800160a: d001 beq.n 8001610 + { + return HAL_ERROR; + 800160c: 2301 movs r3, #1 + 800160e: e000 b.n 8001612 + } + } + } + } + + return HAL_OK; + 8001610: 2300 movs r3, #0 +} + 8001612: 4618 mov r0, r3 + 8001614: 3720 adds r7, #32 + 8001616: 46bd mov sp, r7 + 8001618: bd80 pop {r7, pc} + 800161a: bf00 nop + 800161c: 40023800 .word 0x40023800 + 8001620: 42470060 .word 0x42470060 + +08001624 : + * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency + * (for more details refer to section above "Initialization/de-initialization functions") + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) +{ + 8001624: b580 push {r7, lr} + 8001626: b084 sub sp, #16 + 8001628: af00 add r7, sp, #0 + 800162a: 6078 str r0, [r7, #4] + 800162c: 6039 str r1, [r7, #0] + uint32_t tickstart; + HAL_StatusTypeDef status; + + /* Check the parameters */ + if(RCC_ClkInitStruct == NULL) + 800162e: 687b ldr r3, [r7, #4] + 8001630: 2b00 cmp r3, #0 + 8001632: d101 bne.n 8001638 + { + return HAL_ERROR; + 8001634: 2301 movs r3, #1 + 8001636: e11a b.n 800186e + /* To correctly read data from FLASH memory, the number of wait states (LATENCY) + must be correctly programmed according to the frequency of the CPU clock + (HCLK) and the supply voltage of the device. */ + + /* Increasing the number of wait states because of higher CPU frequency */ + if(FLatency > __HAL_FLASH_GET_LATENCY()) + 8001638: 4b8f ldr r3, [pc, #572] @ (8001878 ) + 800163a: 681b ldr r3, [r3, #0] + 800163c: f003 0301 and.w r3, r3, #1 + 8001640: 683a ldr r2, [r7, #0] + 8001642: 429a cmp r2, r3 + 8001644: d919 bls.n 800167a + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 8001646: 683b ldr r3, [r7, #0] + 8001648: 2b01 cmp r3, #1 + 800164a: d105 bne.n 8001658 + 800164c: 4b8a ldr r3, [pc, #552] @ (8001878 ) + 800164e: 681b ldr r3, [r3, #0] + 8001650: 4a89 ldr r2, [pc, #548] @ (8001878 ) + 8001652: f043 0304 orr.w r3, r3, #4 + 8001656: 6013 str r3, [r2, #0] + 8001658: 4b87 ldr r3, [pc, #540] @ (8001878 ) + 800165a: 681b ldr r3, [r3, #0] + 800165c: f023 0201 bic.w r2, r3, #1 + 8001660: 4985 ldr r1, [pc, #532] @ (8001878 ) + 8001662: 683b ldr r3, [r7, #0] + 8001664: 4313 orrs r3, r2 + 8001666: 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) + 8001668: 4b83 ldr r3, [pc, #524] @ (8001878 ) + 800166a: 681b ldr r3, [r3, #0] + 800166c: f003 0301 and.w r3, r3, #1 + 8001670: 683a ldr r2, [r7, #0] + 8001672: 429a cmp r2, r3 + 8001674: d001 beq.n 800167a + { + return HAL_ERROR; + 8001676: 2301 movs r3, #1 + 8001678: e0f9 b.n 800186e + } + } + + /*-------------------------- HCLK Configuration --------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + 800167a: 687b ldr r3, [r7, #4] + 800167c: 681b ldr r3, [r3, #0] + 800167e: f003 0302 and.w r3, r3, #2 + 8001682: 2b00 cmp r3, #0 + 8001684: d008 beq.n 8001698 + { + assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); + 8001686: 4b7d ldr r3, [pc, #500] @ (800187c ) + 8001688: 689b ldr r3, [r3, #8] + 800168a: f023 02f0 bic.w r2, r3, #240 @ 0xf0 + 800168e: 687b ldr r3, [r7, #4] + 8001690: 689b ldr r3, [r3, #8] + 8001692: 497a ldr r1, [pc, #488] @ (800187c ) + 8001694: 4313 orrs r3, r2 + 8001696: 608b str r3, [r1, #8] + } + + /*------------------------- SYSCLK Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) + 8001698: 687b ldr r3, [r7, #4] + 800169a: 681b ldr r3, [r3, #0] + 800169c: f003 0301 and.w r3, r3, #1 + 80016a0: 2b00 cmp r3, #0 + 80016a2: f000 808e beq.w 80017c2 + { + assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); + + /* HSE is selected as System Clock Source */ + if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + 80016a6: 687b ldr r3, [r7, #4] + 80016a8: 685b ldr r3, [r3, #4] + 80016aa: 2b02 cmp r3, #2 + 80016ac: d107 bne.n 80016be + { + /* Check the HSE ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == 0U) + 80016ae: 4b73 ldr r3, [pc, #460] @ (800187c ) + 80016b0: 681b ldr r3, [r3, #0] + 80016b2: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 80016b6: 2b00 cmp r3, #0 + 80016b8: d121 bne.n 80016fe + { + return HAL_ERROR; + 80016ba: 2301 movs r3, #1 + 80016bc: e0d7 b.n 800186e + } + } + /* PLL is selected as System Clock Source */ + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + 80016be: 687b ldr r3, [r7, #4] + 80016c0: 685b ldr r3, [r3, #4] + 80016c2: 2b03 cmp r3, #3 + 80016c4: d107 bne.n 80016d6 + { + /* Check the PLL ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == 0U) + 80016c6: 4b6d ldr r3, [pc, #436] @ (800187c ) + 80016c8: 681b ldr r3, [r3, #0] + 80016ca: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 80016ce: 2b00 cmp r3, #0 + 80016d0: d115 bne.n 80016fe + { + return HAL_ERROR; + 80016d2: 2301 movs r3, #1 + 80016d4: e0cb b.n 800186e + } + } + /* HSI is selected as System Clock Source */ + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSI) + 80016d6: 687b ldr r3, [r7, #4] + 80016d8: 685b ldr r3, [r3, #4] + 80016da: 2b01 cmp r3, #1 + 80016dc: d107 bne.n 80016ee + { + /* Check the HSI ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == 0U) + 80016de: 4b67 ldr r3, [pc, #412] @ (800187c ) + 80016e0: 681b ldr r3, [r3, #0] + 80016e2: f003 0302 and.w r3, r3, #2 + 80016e6: 2b00 cmp r3, #0 + 80016e8: d109 bne.n 80016fe + { + return HAL_ERROR; + 80016ea: 2301 movs r3, #1 + 80016ec: e0bf b.n 800186e + } + /* MSI is selected as System Clock Source */ + else + { + /* Check the MSI ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) == 0U) + 80016ee: 4b63 ldr r3, [pc, #396] @ (800187c ) + 80016f0: 681b ldr r3, [r3, #0] + 80016f2: f403 7300 and.w r3, r3, #512 @ 0x200 + 80016f6: 2b00 cmp r3, #0 + 80016f8: d101 bne.n 80016fe + { + return HAL_ERROR; + 80016fa: 2301 movs r3, #1 + 80016fc: e0b7 b.n 800186e + } + } + __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); + 80016fe: 4b5f ldr r3, [pc, #380] @ (800187c ) + 8001700: 689b ldr r3, [r3, #8] + 8001702: f023 0203 bic.w r2, r3, #3 + 8001706: 687b ldr r3, [r7, #4] + 8001708: 685b ldr r3, [r3, #4] + 800170a: 495c ldr r1, [pc, #368] @ (800187c ) + 800170c: 4313 orrs r3, r2 + 800170e: 608b str r3, [r1, #8] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001710: f7ff f9a0 bl 8000a54 + 8001714: 60f8 str r0, [r7, #12] + + if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + 8001716: 687b ldr r3, [r7, #4] + 8001718: 685b ldr r3, [r3, #4] + 800171a: 2b02 cmp r3, #2 + 800171c: d112 bne.n 8001744 + { + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSE) + 800171e: e00a b.n 8001736 + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + 8001720: f7ff f998 bl 8000a54 + 8001724: 4602 mov r2, r0 + 8001726: 68fb ldr r3, [r7, #12] + 8001728: 1ad3 subs r3, r2, r3 + 800172a: f241 3288 movw r2, #5000 @ 0x1388 + 800172e: 4293 cmp r3, r2 + 8001730: d901 bls.n 8001736 + { + return HAL_TIMEOUT; + 8001732: 2303 movs r3, #3 + 8001734: e09b b.n 800186e + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSE) + 8001736: 4b51 ldr r3, [pc, #324] @ (800187c ) + 8001738: 689b ldr r3, [r3, #8] + 800173a: f003 030c and.w r3, r3, #12 + 800173e: 2b08 cmp r3, #8 + 8001740: d1ee bne.n 8001720 + 8001742: e03e b.n 80017c2 + } + } + } + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + 8001744: 687b ldr r3, [r7, #4] + 8001746: 685b ldr r3, [r3, #4] + 8001748: 2b03 cmp r3, #3 + 800174a: d112 bne.n 8001772 + { + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) + 800174c: e00a b.n 8001764 + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + 800174e: f7ff f981 bl 8000a54 + 8001752: 4602 mov r2, r0 + 8001754: 68fb ldr r3, [r7, #12] + 8001756: 1ad3 subs r3, r2, r3 + 8001758: f241 3288 movw r2, #5000 @ 0x1388 + 800175c: 4293 cmp r3, r2 + 800175e: d901 bls.n 8001764 + { + return HAL_TIMEOUT; + 8001760: 2303 movs r3, #3 + 8001762: e084 b.n 800186e + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) + 8001764: 4b45 ldr r3, [pc, #276] @ (800187c ) + 8001766: 689b ldr r3, [r3, #8] + 8001768: f003 030c and.w r3, r3, #12 + 800176c: 2b0c cmp r3, #12 + 800176e: d1ee bne.n 800174e + 8001770: e027 b.n 80017c2 + } + } + } + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSI) + 8001772: 687b ldr r3, [r7, #4] + 8001774: 685b ldr r3, [r3, #4] + 8001776: 2b01 cmp r3, #1 + 8001778: d11d bne.n 80017b6 + { + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSI) + 800177a: e00a b.n 8001792 + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + 800177c: f7ff f96a bl 8000a54 + 8001780: 4602 mov r2, r0 + 8001782: 68fb ldr r3, [r7, #12] + 8001784: 1ad3 subs r3, r2, r3 + 8001786: f241 3288 movw r2, #5000 @ 0x1388 + 800178a: 4293 cmp r3, r2 + 800178c: d901 bls.n 8001792 + { + return HAL_TIMEOUT; + 800178e: 2303 movs r3, #3 + 8001790: e06d b.n 800186e + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSI) + 8001792: 4b3a ldr r3, [pc, #232] @ (800187c ) + 8001794: 689b ldr r3, [r3, #8] + 8001796: f003 030c and.w r3, r3, #12 + 800179a: 2b04 cmp r3, #4 + 800179c: d1ee bne.n 800177c + 800179e: e010 b.n 80017c2 + } + else + { + while(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_MSI) + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + 80017a0: f7ff f958 bl 8000a54 + 80017a4: 4602 mov r2, r0 + 80017a6: 68fb ldr r3, [r7, #12] + 80017a8: 1ad3 subs r3, r2, r3 + 80017aa: f241 3288 movw r2, #5000 @ 0x1388 + 80017ae: 4293 cmp r3, r2 + 80017b0: d901 bls.n 80017b6 + { + return HAL_TIMEOUT; + 80017b2: 2303 movs r3, #3 + 80017b4: e05b b.n 800186e + while(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_MSI) + 80017b6: 4b31 ldr r3, [pc, #196] @ (800187c ) + 80017b8: 689b ldr r3, [r3, #8] + 80017ba: f003 030c and.w r3, r3, #12 + 80017be: 2b00 cmp r3, #0 + 80017c0: d1ee bne.n 80017a0 + } + } + } + } + /* Decreasing the number of wait states because of lower CPU frequency */ + if(FLatency < __HAL_FLASH_GET_LATENCY()) + 80017c2: 4b2d ldr r3, [pc, #180] @ (8001878 ) + 80017c4: 681b ldr r3, [r3, #0] + 80017c6: f003 0301 and.w r3, r3, #1 + 80017ca: 683a ldr r2, [r7, #0] + 80017cc: 429a cmp r2, r3 + 80017ce: d219 bcs.n 8001804 + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 80017d0: 683b ldr r3, [r7, #0] + 80017d2: 2b01 cmp r3, #1 + 80017d4: d105 bne.n 80017e2 + 80017d6: 4b28 ldr r3, [pc, #160] @ (8001878 ) + 80017d8: 681b ldr r3, [r3, #0] + 80017da: 4a27 ldr r2, [pc, #156] @ (8001878 ) + 80017dc: f043 0304 orr.w r3, r3, #4 + 80017e0: 6013 str r3, [r2, #0] + 80017e2: 4b25 ldr r3, [pc, #148] @ (8001878 ) + 80017e4: 681b ldr r3, [r3, #0] + 80017e6: f023 0201 bic.w r2, r3, #1 + 80017ea: 4923 ldr r1, [pc, #140] @ (8001878 ) + 80017ec: 683b ldr r3, [r7, #0] + 80017ee: 4313 orrs r3, r2 + 80017f0: 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) + 80017f2: 4b21 ldr r3, [pc, #132] @ (8001878 ) + 80017f4: 681b ldr r3, [r3, #0] + 80017f6: f003 0301 and.w r3, r3, #1 + 80017fa: 683a ldr r2, [r7, #0] + 80017fc: 429a cmp r2, r3 + 80017fe: d001 beq.n 8001804 + { + return HAL_ERROR; + 8001800: 2301 movs r3, #1 + 8001802: e034 b.n 800186e + } + } + + /*-------------------------- PCLK1 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 8001804: 687b ldr r3, [r7, #4] + 8001806: 681b ldr r3, [r3, #0] + 8001808: f003 0304 and.w r3, r3, #4 + 800180c: 2b00 cmp r3, #0 + 800180e: d008 beq.n 8001822 + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); + 8001810: 4b1a ldr r3, [pc, #104] @ (800187c ) + 8001812: 689b ldr r3, [r3, #8] + 8001814: f423 62e0 bic.w r2, r3, #1792 @ 0x700 + 8001818: 687b ldr r3, [r7, #4] + 800181a: 68db ldr r3, [r3, #12] + 800181c: 4917 ldr r1, [pc, #92] @ (800187c ) + 800181e: 4313 orrs r3, r2 + 8001820: 608b str r3, [r1, #8] + } + + /*-------------------------- PCLK2 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 8001822: 687b ldr r3, [r7, #4] + 8001824: 681b ldr r3, [r3, #0] + 8001826: f003 0308 and.w r3, r3, #8 + 800182a: 2b00 cmp r3, #0 + 800182c: d009 beq.n 8001842 + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); + 800182e: 4b13 ldr r3, [pc, #76] @ (800187c ) + 8001830: 689b ldr r3, [r3, #8] + 8001832: f423 5260 bic.w r2, r3, #14336 @ 0x3800 + 8001836: 687b ldr r3, [r7, #4] + 8001838: 691b ldr r3, [r3, #16] + 800183a: 00db lsls r3, r3, #3 + 800183c: 490f ldr r1, [pc, #60] @ (800187c ) + 800183e: 4313 orrs r3, r2 + 8001840: 608b str r3, [r1, #8] + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_Pos]; + 8001842: f000 f823 bl 800188c + 8001846: 4602 mov r2, r0 + 8001848: 4b0c ldr r3, [pc, #48] @ (800187c ) + 800184a: 689b ldr r3, [r3, #8] + 800184c: 091b lsrs r3, r3, #4 + 800184e: f003 030f and.w r3, r3, #15 + 8001852: 490b ldr r1, [pc, #44] @ (8001880 ) + 8001854: 5ccb ldrb r3, [r1, r3] + 8001856: fa22 f303 lsr.w r3, r2, r3 + 800185a: 4a0a ldr r2, [pc, #40] @ (8001884 ) + 800185c: 6013 str r3, [r2, #0] + + /* Configure the source of time base considering new system clocks settings*/ + status = HAL_InitTick(uwTickPrio); + 800185e: 4b0a ldr r3, [pc, #40] @ (8001888 ) + 8001860: 681b ldr r3, [r3, #0] + 8001862: 4618 mov r0, r3 + 8001864: f7ff f8aa bl 80009bc + 8001868: 4603 mov r3, r0 + 800186a: 72fb strb r3, [r7, #11] + + return status; + 800186c: 7afb ldrb r3, [r7, #11] +} + 800186e: 4618 mov r0, r3 + 8001870: 3710 adds r7, #16 + 8001872: 46bd mov sp, r7 + 8001874: bd80 pop {r7, pc} + 8001876: bf00 nop + 8001878: 40023c00 .word 0x40023c00 + 800187c: 40023800 .word 0x40023800 + 8001880: 08002098 .word 0x08002098 + 8001884: 20000000 .word 0x20000000 + 8001888: 20000004 .word 0x20000004 + +0800188c : + * right SYSCLK value. Otherwise, any configuration based on this function will be incorrect. + * + * @retval SYSCLK frequency + */ +uint32_t HAL_RCC_GetSysClockFreq(void) +{ + 800188c: e92d 4fb0 stmdb sp!, {r4, r5, r7, r8, r9, sl, fp, lr} + 8001890: b08e sub sp, #56 @ 0x38 + 8001892: af00 add r7, sp, #0 + uint32_t tmpreg, pllm, plld, pllvco, msiclkrange, sysclockfreq; + + tmpreg = RCC->CFGR; + 8001894: 4b58 ldr r3, [pc, #352] @ (80019f8 ) + 8001896: 689b ldr r3, [r3, #8] + 8001898: 62fb str r3, [r7, #44] @ 0x2c + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (tmpreg & RCC_CFGR_SWS) + 800189a: 6afb ldr r3, [r7, #44] @ 0x2c + 800189c: f003 030c and.w r3, r3, #12 + 80018a0: 2b0c cmp r3, #12 + 80018a2: d00d beq.n 80018c0 + 80018a4: 2b0c cmp r3, #12 + 80018a6: f200 8092 bhi.w 80019ce + 80018aa: 2b04 cmp r3, #4 + 80018ac: d002 beq.n 80018b4 + 80018ae: 2b08 cmp r3, #8 + 80018b0: d003 beq.n 80018ba + 80018b2: e08c b.n 80019ce + { + case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ + { + sysclockfreq = HSI_VALUE; + 80018b4: 4b51 ldr r3, [pc, #324] @ (80019fc ) + 80018b6: 633b str r3, [r7, #48] @ 0x30 + break; + 80018b8: e097 b.n 80019ea + } + case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock */ + { + sysclockfreq = HSE_VALUE; + 80018ba: 4b51 ldr r3, [pc, #324] @ (8001a00 ) + 80018bc: 633b str r3, [r7, #48] @ 0x30 + break; + 80018be: e094 b.n 80019ea + } + case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock */ + { + pllm = PLLMulTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMUL) >> RCC_CFGR_PLLMUL_Pos]; + 80018c0: 6afb ldr r3, [r7, #44] @ 0x2c + 80018c2: 0c9b lsrs r3, r3, #18 + 80018c4: f003 020f and.w r2, r3, #15 + 80018c8: 4b4e ldr r3, [pc, #312] @ (8001a04 ) + 80018ca: 5c9b ldrb r3, [r3, r2] + 80018cc: 62bb str r3, [r7, #40] @ 0x28 + plld = ((uint32_t)(tmpreg & RCC_CFGR_PLLDIV) >> RCC_CFGR_PLLDIV_Pos) + 1U; + 80018ce: 6afb ldr r3, [r7, #44] @ 0x2c + 80018d0: 0d9b lsrs r3, r3, #22 + 80018d2: f003 0303 and.w r3, r3, #3 + 80018d6: 3301 adds r3, #1 + 80018d8: 627b str r3, [r7, #36] @ 0x24 + if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLSOURCE_HSI) + 80018da: 4b47 ldr r3, [pc, #284] @ (80019f8 ) + 80018dc: 689b ldr r3, [r3, #8] + 80018de: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 80018e2: 2b00 cmp r3, #0 + 80018e4: d021 beq.n 800192a + { + /* HSE used as PLL clock source */ + pllvco = (uint32_t)(((uint64_t)HSE_VALUE * (uint64_t)pllm) / (uint64_t)plld); + 80018e6: 6abb ldr r3, [r7, #40] @ 0x28 + 80018e8: 2200 movs r2, #0 + 80018ea: 61bb str r3, [r7, #24] + 80018ec: 61fa str r2, [r7, #28] + 80018ee: 4b44 ldr r3, [pc, #272] @ (8001a00 ) + 80018f0: e9d7 8906 ldrd r8, r9, [r7, #24] + 80018f4: 464a mov r2, r9 + 80018f6: fb03 f202 mul.w r2, r3, r2 + 80018fa: 2300 movs r3, #0 + 80018fc: 4644 mov r4, r8 + 80018fe: fb04 f303 mul.w r3, r4, r3 + 8001902: 4413 add r3, r2 + 8001904: 4a3e ldr r2, [pc, #248] @ (8001a00 ) + 8001906: 4644 mov r4, r8 + 8001908: fba4 0102 umull r0, r1, r4, r2 + 800190c: 440b add r3, r1 + 800190e: 4619 mov r1, r3 + 8001910: 6a7b ldr r3, [r7, #36] @ 0x24 + 8001912: 2200 movs r2, #0 + 8001914: 613b str r3, [r7, #16] + 8001916: 617a str r2, [r7, #20] + 8001918: e9d7 2304 ldrd r2, r3, [r7, #16] + 800191c: f7fe fc2e bl 800017c <__aeabi_uldivmod> + 8001920: 4602 mov r2, r0 + 8001922: 460b mov r3, r1 + 8001924: 4613 mov r3, r2 + 8001926: 637b str r3, [r7, #52] @ 0x34 + 8001928: e04e b.n 80019c8 + } + else + { + /* HSI used as PLL clock source */ + pllvco = (uint32_t)(((uint64_t)HSI_VALUE * (uint64_t)pllm) / (uint64_t)plld); + 800192a: 6abb ldr r3, [r7, #40] @ 0x28 + 800192c: 2200 movs r2, #0 + 800192e: 469a mov sl, r3 + 8001930: 4693 mov fp, r2 + 8001932: 4652 mov r2, sl + 8001934: 465b mov r3, fp + 8001936: f04f 0000 mov.w r0, #0 + 800193a: f04f 0100 mov.w r1, #0 + 800193e: 0159 lsls r1, r3, #5 + 8001940: ea41 61d2 orr.w r1, r1, r2, lsr #27 + 8001944: 0150 lsls r0, r2, #5 + 8001946: 4602 mov r2, r0 + 8001948: 460b mov r3, r1 + 800194a: ebb2 080a subs.w r8, r2, sl + 800194e: eb63 090b sbc.w r9, r3, fp + 8001952: f04f 0200 mov.w r2, #0 + 8001956: f04f 0300 mov.w r3, #0 + 800195a: ea4f 1389 mov.w r3, r9, lsl #6 + 800195e: ea43 6398 orr.w r3, r3, r8, lsr #26 + 8001962: ea4f 1288 mov.w r2, r8, lsl #6 + 8001966: ebb2 0408 subs.w r4, r2, r8 + 800196a: eb63 0509 sbc.w r5, r3, r9 + 800196e: f04f 0200 mov.w r2, #0 + 8001972: f04f 0300 mov.w r3, #0 + 8001976: 00eb lsls r3, r5, #3 + 8001978: ea43 7354 orr.w r3, r3, r4, lsr #29 + 800197c: 00e2 lsls r2, r4, #3 + 800197e: 4614 mov r4, r2 + 8001980: 461d mov r5, r3 + 8001982: eb14 030a adds.w r3, r4, sl + 8001986: 603b str r3, [r7, #0] + 8001988: eb45 030b adc.w r3, r5, fp + 800198c: 607b str r3, [r7, #4] + 800198e: f04f 0200 mov.w r2, #0 + 8001992: f04f 0300 mov.w r3, #0 + 8001996: e9d7 4500 ldrd r4, r5, [r7] + 800199a: 4629 mov r1, r5 + 800199c: 028b lsls r3, r1, #10 + 800199e: 4620 mov r0, r4 + 80019a0: 4629 mov r1, r5 + 80019a2: 4604 mov r4, r0 + 80019a4: ea43 5394 orr.w r3, r3, r4, lsr #22 + 80019a8: 4601 mov r1, r0 + 80019aa: 028a lsls r2, r1, #10 + 80019ac: 4610 mov r0, r2 + 80019ae: 4619 mov r1, r3 + 80019b0: 6a7b ldr r3, [r7, #36] @ 0x24 + 80019b2: 2200 movs r2, #0 + 80019b4: 60bb str r3, [r7, #8] + 80019b6: 60fa str r2, [r7, #12] + 80019b8: e9d7 2302 ldrd r2, r3, [r7, #8] + 80019bc: f7fe fbde bl 800017c <__aeabi_uldivmod> + 80019c0: 4602 mov r2, r0 + 80019c2: 460b mov r3, r1 + 80019c4: 4613 mov r3, r2 + 80019c6: 637b str r3, [r7, #52] @ 0x34 + } + sysclockfreq = pllvco; + 80019c8: 6b7b ldr r3, [r7, #52] @ 0x34 + 80019ca: 633b str r3, [r7, #48] @ 0x30 + break; + 80019cc: e00d b.n 80019ea + } + case RCC_SYSCLKSOURCE_STATUS_MSI: /* MSI used as system clock source */ + default: /* MSI used as system clock */ + { + msiclkrange = (RCC->ICSCR & RCC_ICSCR_MSIRANGE ) >> RCC_ICSCR_MSIRANGE_Pos; + 80019ce: 4b0a ldr r3, [pc, #40] @ (80019f8 ) + 80019d0: 685b ldr r3, [r3, #4] + 80019d2: 0b5b lsrs r3, r3, #13 + 80019d4: f003 0307 and.w r3, r3, #7 + 80019d8: 623b str r3, [r7, #32] + sysclockfreq = (32768U * (1UL << (msiclkrange + 1U))); + 80019da: 6a3b ldr r3, [r7, #32] + 80019dc: 3301 adds r3, #1 + 80019de: f44f 4200 mov.w r2, #32768 @ 0x8000 + 80019e2: fa02 f303 lsl.w r3, r2, r3 + 80019e6: 633b str r3, [r7, #48] @ 0x30 + break; + 80019e8: bf00 nop + } + } + return sysclockfreq; + 80019ea: 6b3b ldr r3, [r7, #48] @ 0x30 +} + 80019ec: 4618 mov r0, r3 + 80019ee: 3738 adds r7, #56 @ 0x38 + 80019f0: 46bd mov sp, r7 + 80019f2: e8bd 8fb0 ldmia.w sp!, {r4, r5, r7, r8, r9, sl, fp, pc} + 80019f6: bf00 nop + 80019f8: 40023800 .word 0x40023800 + 80019fc: 00f42400 .word 0x00f42400 + 8001a00: 016e3600 .word 0x016e3600 + 8001a04: 0800208c .word 0x0800208c + +08001a08 : + voltage range + * @param MSIrange MSI range value from RCC_MSIRANGE_0 to RCC_MSIRANGE_6 + * @retval HAL status + */ +static HAL_StatusTypeDef RCC_SetFlashLatencyFromMSIRange(uint32_t MSIrange) +{ + 8001a08: b480 push {r7} + 8001a0a: b087 sub sp, #28 + 8001a0c: af00 add r7, sp, #0 + 8001a0e: 6078 str r0, [r7, #4] + uint32_t vos; + uint32_t latency = FLASH_LATENCY_0; /* default value 0WS */ + 8001a10: 2300 movs r3, #0 + 8001a12: 613b str r3, [r7, #16] + + /* HCLK can reach 4 MHz only if AHB prescaler = 1 */ + if (READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) == RCC_SYSCLK_DIV1) + 8001a14: 4b29 ldr r3, [pc, #164] @ (8001abc ) + 8001a16: 689b ldr r3, [r3, #8] + 8001a18: f003 03f0 and.w r3, r3, #240 @ 0xf0 + 8001a1c: 2b00 cmp r3, #0 + 8001a1e: d12c bne.n 8001a7a + { + if(__HAL_RCC_PWR_IS_CLK_ENABLED()) + 8001a20: 4b26 ldr r3, [pc, #152] @ (8001abc ) + 8001a22: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001a24: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8001a28: 2b00 cmp r3, #0 + 8001a2a: d005 beq.n 8001a38 + { + vos = READ_BIT(PWR->CR, PWR_CR_VOS); + 8001a2c: 4b24 ldr r3, [pc, #144] @ (8001ac0 ) + 8001a2e: 681b ldr r3, [r3, #0] + 8001a30: f403 53c0 and.w r3, r3, #6144 @ 0x1800 + 8001a34: 617b str r3, [r7, #20] + 8001a36: e016 b.n 8001a66 + } + else + { + __HAL_RCC_PWR_CLK_ENABLE(); + 8001a38: 4b20 ldr r3, [pc, #128] @ (8001abc ) + 8001a3a: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001a3c: 4a1f ldr r2, [pc, #124] @ (8001abc ) + 8001a3e: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 8001a42: 6253 str r3, [r2, #36] @ 0x24 + 8001a44: 4b1d ldr r3, [pc, #116] @ (8001abc ) + 8001a46: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001a48: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8001a4c: 60fb str r3, [r7, #12] + 8001a4e: 68fb ldr r3, [r7, #12] + vos = READ_BIT(PWR->CR, PWR_CR_VOS); + 8001a50: 4b1b ldr r3, [pc, #108] @ (8001ac0 ) + 8001a52: 681b ldr r3, [r3, #0] + 8001a54: f403 53c0 and.w r3, r3, #6144 @ 0x1800 + 8001a58: 617b str r3, [r7, #20] + __HAL_RCC_PWR_CLK_DISABLE(); + 8001a5a: 4b18 ldr r3, [pc, #96] @ (8001abc ) + 8001a5c: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001a5e: 4a17 ldr r2, [pc, #92] @ (8001abc ) + 8001a60: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 8001a64: 6253 str r3, [r2, #36] @ 0x24 + } + + /* Check if need to set latency 1 only for Range 3 & HCLK = 4MHz */ + if((vos == PWR_REGULATOR_VOLTAGE_SCALE3) && (MSIrange == RCC_MSIRANGE_6)) + 8001a66: 697b ldr r3, [r7, #20] + 8001a68: f5b3 5fc0 cmp.w r3, #6144 @ 0x1800 + 8001a6c: d105 bne.n 8001a7a + 8001a6e: 687b ldr r3, [r7, #4] + 8001a70: f5b3 4f40 cmp.w r3, #49152 @ 0xc000 + 8001a74: d101 bne.n 8001a7a + { + latency = FLASH_LATENCY_1; /* 1WS */ + 8001a76: 2301 movs r3, #1 + 8001a78: 613b str r3, [r7, #16] + } + } + + __HAL_FLASH_SET_LATENCY(latency); + 8001a7a: 693b ldr r3, [r7, #16] + 8001a7c: 2b01 cmp r3, #1 + 8001a7e: d105 bne.n 8001a8c + 8001a80: 4b10 ldr r3, [pc, #64] @ (8001ac4 ) + 8001a82: 681b ldr r3, [r3, #0] + 8001a84: 4a0f ldr r2, [pc, #60] @ (8001ac4 ) + 8001a86: f043 0304 orr.w r3, r3, #4 + 8001a8a: 6013 str r3, [r2, #0] + 8001a8c: 4b0d ldr r3, [pc, #52] @ (8001ac4 ) + 8001a8e: 681b ldr r3, [r3, #0] + 8001a90: f023 0201 bic.w r2, r3, #1 + 8001a94: 490b ldr r1, [pc, #44] @ (8001ac4 ) + 8001a96: 693b ldr r3, [r7, #16] + 8001a98: 4313 orrs r3, r2 + 8001a9a: 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() != latency) + 8001a9c: 4b09 ldr r3, [pc, #36] @ (8001ac4 ) + 8001a9e: 681b ldr r3, [r3, #0] + 8001aa0: f003 0301 and.w r3, r3, #1 + 8001aa4: 693a ldr r2, [r7, #16] + 8001aa6: 429a cmp r2, r3 + 8001aa8: d001 beq.n 8001aae + { + return HAL_ERROR; + 8001aaa: 2301 movs r3, #1 + 8001aac: e000 b.n 8001ab0 + } + + return HAL_OK; + 8001aae: 2300 movs r3, #0 +} + 8001ab0: 4618 mov r0, r3 + 8001ab2: 371c adds r7, #28 + 8001ab4: 46bd mov sp, r7 + 8001ab6: bc80 pop {r7} + 8001ab8: 4770 bx lr + 8001aba: bf00 nop + 8001abc: 40023800 .word 0x40023800 + 8001ac0: 40007000 .word 0x40007000 + 8001ac4: 40023c00 .word 0x40023c00 + +08001ac8 : + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi) +{ + 8001ac8: b580 push {r7, lr} + 8001aca: b082 sub sp, #8 + 8001acc: af00 add r7, sp, #0 + 8001ace: 6078 str r0, [r7, #4] + /* Check the SPI handle allocation */ + if (hspi == NULL) + 8001ad0: 687b ldr r3, [r7, #4] + 8001ad2: 2b00 cmp r3, #0 + 8001ad4: d101 bne.n 8001ada + { + return HAL_ERROR; + 8001ad6: 2301 movs r3, #1 + 8001ad8: e07b b.n 8001bd2 + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + assert_param(IS_SPI_FIRST_BIT(hspi->Init.FirstBit)); + /* TI mode is not supported on all devices in stm32l1xx series. + TIMode parameter is mandatory equal to SPI_TIMODE_DISABLE if TI mode is not supported */ + assert_param(IS_SPI_TIMODE(hspi->Init.TIMode)); + if (hspi->Init.TIMode == SPI_TIMODE_DISABLE) + 8001ada: 687b ldr r3, [r7, #4] + 8001adc: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001ade: 2b00 cmp r3, #0 + 8001ae0: d108 bne.n 8001af4 + { + assert_param(IS_SPI_CPOL(hspi->Init.CLKPolarity)); + assert_param(IS_SPI_CPHA(hspi->Init.CLKPhase)); + + if (hspi->Init.Mode == SPI_MODE_MASTER) + 8001ae2: 687b ldr r3, [r7, #4] + 8001ae4: 685b ldr r3, [r3, #4] + 8001ae6: f5b3 7f82 cmp.w r3, #260 @ 0x104 + 8001aea: d009 beq.n 8001b00 + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + } + else + { + /* Baudrate prescaler not use in Motoraola Slave mode. force to default value */ + hspi->Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + 8001aec: 687b ldr r3, [r7, #4] + 8001aee: 2200 movs r2, #0 + 8001af0: 61da str r2, [r3, #28] + 8001af2: e005 b.n 8001b00 + else + { + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + + /* Force polarity and phase to TI protocaol requirements */ + hspi->Init.CLKPolarity = SPI_POLARITY_LOW; + 8001af4: 687b ldr r3, [r7, #4] + 8001af6: 2200 movs r2, #0 + 8001af8: 611a str r2, [r3, #16] + hspi->Init.CLKPhase = SPI_PHASE_1EDGE; + 8001afa: 687b ldr r3, [r7, #4] + 8001afc: 2200 movs r2, #0 + 8001afe: 615a str r2, [r3, #20] + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + assert_param(IS_SPI_CRC_POLYNOMIAL(hspi->Init.CRCPolynomial)); + } +#else + hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + 8001b00: 687b ldr r3, [r7, #4] + 8001b02: 2200 movs r2, #0 + 8001b04: 629a str r2, [r3, #40] @ 0x28 +#endif /* USE_SPI_CRC */ + + if (hspi->State == HAL_SPI_STATE_RESET) + 8001b06: 687b ldr r3, [r7, #4] + 8001b08: f893 3051 ldrb.w r3, [r3, #81] @ 0x51 + 8001b0c: b2db uxtb r3, r3 + 8001b0e: 2b00 cmp r3, #0 + 8001b10: d106 bne.n 8001b20 + { + /* Allocate lock resource and initialize it */ + hspi->Lock = HAL_UNLOCKED; + 8001b12: 687b ldr r3, [r7, #4] + 8001b14: 2200 movs r2, #0 + 8001b16: f883 2050 strb.w r2, [r3, #80] @ 0x50 + + /* Init the low level hardware : GPIO, CLOCK, NVIC... */ + hspi->MspInitCallback(hspi); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC... */ + HAL_SPI_MspInit(hspi); + 8001b1a: 6878 ldr r0, [r7, #4] + 8001b1c: f7fe fe08 bl 8000730 +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } + + hspi->State = HAL_SPI_STATE_BUSY; + 8001b20: 687b ldr r3, [r7, #4] + 8001b22: 2202 movs r2, #2 + 8001b24: f883 2051 strb.w r2, [r3, #81] @ 0x51 + + /* Disable the selected SPI peripheral */ + __HAL_SPI_DISABLE(hspi); + 8001b28: 687b ldr r3, [r7, #4] + 8001b2a: 681b ldr r3, [r3, #0] + 8001b2c: 681a ldr r2, [r3, #0] + 8001b2e: 687b ldr r3, [r7, #4] + 8001b30: 681b ldr r3, [r3, #0] + 8001b32: f022 0240 bic.w r2, r2, #64 @ 0x40 + 8001b36: 601a str r2, [r3, #0] + + /*----------------------- SPIx CR1 & CR2 Configuration ---------------------*/ + /* Configure : SPI Mode, Communication Mode, Data size, Clock polarity and phase, NSS management, + Communication speed, First bit and CRC calculation state */ + WRITE_REG(hspi->Instance->CR1, ((hspi->Init.Mode & (SPI_CR1_MSTR | SPI_CR1_SSI)) | + 8001b38: 687b ldr r3, [r7, #4] + 8001b3a: 685b ldr r3, [r3, #4] + 8001b3c: f403 7282 and.w r2, r3, #260 @ 0x104 + 8001b40: 687b ldr r3, [r7, #4] + 8001b42: 689b ldr r3, [r3, #8] + 8001b44: f403 4304 and.w r3, r3, #33792 @ 0x8400 + 8001b48: 431a orrs r2, r3 + 8001b4a: 687b ldr r3, [r7, #4] + 8001b4c: 68db ldr r3, [r3, #12] + 8001b4e: f403 6300 and.w r3, r3, #2048 @ 0x800 + 8001b52: 431a orrs r2, r3 + 8001b54: 687b ldr r3, [r7, #4] + 8001b56: 691b ldr r3, [r3, #16] + 8001b58: f003 0302 and.w r3, r3, #2 + 8001b5c: 431a orrs r2, r3 + 8001b5e: 687b ldr r3, [r7, #4] + 8001b60: 695b ldr r3, [r3, #20] + 8001b62: f003 0301 and.w r3, r3, #1 + 8001b66: 431a orrs r2, r3 + 8001b68: 687b ldr r3, [r7, #4] + 8001b6a: 699b ldr r3, [r3, #24] + 8001b6c: f403 7300 and.w r3, r3, #512 @ 0x200 + 8001b70: 431a orrs r2, r3 + 8001b72: 687b ldr r3, [r7, #4] + 8001b74: 69db ldr r3, [r3, #28] + 8001b76: f003 0338 and.w r3, r3, #56 @ 0x38 + 8001b7a: 431a orrs r2, r3 + 8001b7c: 687b ldr r3, [r7, #4] + 8001b7e: 6a1b ldr r3, [r3, #32] + 8001b80: f003 0380 and.w r3, r3, #128 @ 0x80 + 8001b84: ea42 0103 orr.w r1, r2, r3 + 8001b88: 687b ldr r3, [r7, #4] + 8001b8a: 6a9b ldr r3, [r3, #40] @ 0x28 + 8001b8c: f403 5200 and.w r2, r3, #8192 @ 0x2000 + 8001b90: 687b ldr r3, [r7, #4] + 8001b92: 681b ldr r3, [r3, #0] + 8001b94: 430a orrs r2, r1 + 8001b96: 601a str r2, [r3, #0] + (hspi->Init.FirstBit & SPI_CR1_LSBFIRST) | + (hspi->Init.CRCCalculation & SPI_CR1_CRCEN))); + +#if defined(SPI_CR2_FRF) + /* Configure : NSS management, TI Mode */ + WRITE_REG(hspi->Instance->CR2, (((hspi->Init.NSS >> 16U) & SPI_CR2_SSOE) | (hspi->Init.TIMode & SPI_CR2_FRF))); + 8001b98: 687b ldr r3, [r7, #4] + 8001b9a: 699b ldr r3, [r3, #24] + 8001b9c: 0c1b lsrs r3, r3, #16 + 8001b9e: f003 0104 and.w r1, r3, #4 + 8001ba2: 687b ldr r3, [r7, #4] + 8001ba4: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001ba6: f003 0210 and.w r2, r3, #16 + 8001baa: 687b ldr r3, [r7, #4] + 8001bac: 681b ldr r3, [r3, #0] + 8001bae: 430a orrs r2, r1 + 8001bb0: 605a str r2, [r3, #4] + } +#endif /* USE_SPI_CRC */ + +#if defined(SPI_I2SCFGR_I2SMOD) + /* Activate the SPI mode (Make sure that I2SMOD bit in I2SCFGR register is reset) */ + CLEAR_BIT(hspi->Instance->I2SCFGR, SPI_I2SCFGR_I2SMOD); + 8001bb2: 687b ldr r3, [r7, #4] + 8001bb4: 681b ldr r3, [r3, #0] + 8001bb6: 69da ldr r2, [r3, #28] + 8001bb8: 687b ldr r3, [r7, #4] + 8001bba: 681b ldr r3, [r3, #0] + 8001bbc: f422 6200 bic.w r2, r2, #2048 @ 0x800 + 8001bc0: 61da str r2, [r3, #28] +#endif /* SPI_I2SCFGR_I2SMOD */ + + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + 8001bc2: 687b ldr r3, [r7, #4] + 8001bc4: 2200 movs r2, #0 + 8001bc6: 655a str r2, [r3, #84] @ 0x54 + hspi->State = HAL_SPI_STATE_READY; + 8001bc8: 687b ldr r3, [r7, #4] + 8001bca: 2201 movs r2, #1 + 8001bcc: f883 2051 strb.w r2, [r3, #81] @ 0x51 + + return HAL_OK; + 8001bd0: 2300 movs r3, #0 +} + 8001bd2: 4618 mov r0, r3 + 8001bd4: 3708 adds r7, #8 + 8001bd6: 46bd mov sp, r7 + 8001bd8: bd80 pop {r7, pc} + +08001bda : + * @param Size amount of data elements (u8 or u16) to be sent + * @param Timeout Timeout duration in ms + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + 8001bda: b580 push {r7, lr} + 8001bdc: b088 sub sp, #32 + 8001bde: af00 add r7, sp, #0 + 8001be0: 60f8 str r0, [r7, #12] + 8001be2: 60b9 str r1, [r7, #8] + 8001be4: 603b str r3, [r7, #0] + 8001be6: 4613 mov r3, r2 + 8001be8: 80fb strh r3, [r7, #6] + + /* Check Direction parameter */ + assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + 8001bea: f7fe ff33 bl 8000a54 + 8001bee: 61f8 str r0, [r7, #28] + initial_TxXferCount = Size; + 8001bf0: 88fb ldrh r3, [r7, #6] + 8001bf2: 837b strh r3, [r7, #26] + + if (hspi->State != HAL_SPI_STATE_READY) + 8001bf4: 68fb ldr r3, [r7, #12] + 8001bf6: f893 3051 ldrb.w r3, [r3, #81] @ 0x51 + 8001bfa: b2db uxtb r3, r3 + 8001bfc: 2b01 cmp r3, #1 + 8001bfe: d001 beq.n 8001c04 + { + return HAL_BUSY; + 8001c00: 2302 movs r3, #2 + 8001c02: e12a b.n 8001e5a + } + + if ((pData == NULL) || (Size == 0U)) + 8001c04: 68bb ldr r3, [r7, #8] + 8001c06: 2b00 cmp r3, #0 + 8001c08: d002 beq.n 8001c10 + 8001c0a: 88fb ldrh r3, [r7, #6] + 8001c0c: 2b00 cmp r3, #0 + 8001c0e: d101 bne.n 8001c14 + { + return HAL_ERROR; + 8001c10: 2301 movs r3, #1 + 8001c12: e122 b.n 8001e5a + } + + /* Process Locked */ + __HAL_LOCK(hspi); + 8001c14: 68fb ldr r3, [r7, #12] + 8001c16: f893 3050 ldrb.w r3, [r3, #80] @ 0x50 + 8001c1a: 2b01 cmp r3, #1 + 8001c1c: d101 bne.n 8001c22 + 8001c1e: 2302 movs r3, #2 + 8001c20: e11b b.n 8001e5a + 8001c22: 68fb ldr r3, [r7, #12] + 8001c24: 2201 movs r2, #1 + 8001c26: f883 2050 strb.w r2, [r3, #80] @ 0x50 + + /* Set the transaction information */ + hspi->State = HAL_SPI_STATE_BUSY_TX; + 8001c2a: 68fb ldr r3, [r7, #12] + 8001c2c: 2203 movs r2, #3 + 8001c2e: f883 2051 strb.w r2, [r3, #81] @ 0x51 + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + 8001c32: 68fb ldr r3, [r7, #12] + 8001c34: 2200 movs r2, #0 + 8001c36: 655a str r2, [r3, #84] @ 0x54 + hspi->pTxBuffPtr = (const uint8_t *)pData; + 8001c38: 68fb ldr r3, [r7, #12] + 8001c3a: 68ba ldr r2, [r7, #8] + 8001c3c: 631a str r2, [r3, #48] @ 0x30 + hspi->TxXferSize = Size; + 8001c3e: 68fb ldr r3, [r7, #12] + 8001c40: 88fa ldrh r2, [r7, #6] + 8001c42: 869a strh r2, [r3, #52] @ 0x34 + hspi->TxXferCount = Size; + 8001c44: 68fb ldr r3, [r7, #12] + 8001c46: 88fa ldrh r2, [r7, #6] + 8001c48: 86da strh r2, [r3, #54] @ 0x36 + + /*Init field not used in handle to zero */ + hspi->pRxBuffPtr = (uint8_t *)NULL; + 8001c4a: 68fb ldr r3, [r7, #12] + 8001c4c: 2200 movs r2, #0 + 8001c4e: 639a str r2, [r3, #56] @ 0x38 + hspi->RxXferSize = 0U; + 8001c50: 68fb ldr r3, [r7, #12] + 8001c52: 2200 movs r2, #0 + 8001c54: 879a strh r2, [r3, #60] @ 0x3c + hspi->RxXferCount = 0U; + 8001c56: 68fb ldr r3, [r7, #12] + 8001c58: 2200 movs r2, #0 + 8001c5a: 87da strh r2, [r3, #62] @ 0x3e + hspi->TxISR = NULL; + 8001c5c: 68fb ldr r3, [r7, #12] + 8001c5e: 2200 movs r2, #0 + 8001c60: 645a str r2, [r3, #68] @ 0x44 + hspi->RxISR = NULL; + 8001c62: 68fb ldr r3, [r7, #12] + 8001c64: 2200 movs r2, #0 + 8001c66: 641a str r2, [r3, #64] @ 0x40 + + /* Configure communication direction : 1Line */ + if (hspi->Init.Direction == SPI_DIRECTION_1LINE) + 8001c68: 68fb ldr r3, [r7, #12] + 8001c6a: 689b ldr r3, [r3, #8] + 8001c6c: f5b3 4f00 cmp.w r3, #32768 @ 0x8000 + 8001c70: d10f bne.n 8001c92 + { + /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ + __HAL_SPI_DISABLE(hspi); + 8001c72: 68fb ldr r3, [r7, #12] + 8001c74: 681b ldr r3, [r3, #0] + 8001c76: 681a ldr r2, [r3, #0] + 8001c78: 68fb ldr r3, [r7, #12] + 8001c7a: 681b ldr r3, [r3, #0] + 8001c7c: f022 0240 bic.w r2, r2, #64 @ 0x40 + 8001c80: 601a str r2, [r3, #0] + SPI_1LINE_TX(hspi); + 8001c82: 68fb ldr r3, [r7, #12] + 8001c84: 681b ldr r3, [r3, #0] + 8001c86: 681a ldr r2, [r3, #0] + 8001c88: 68fb ldr r3, [r7, #12] + 8001c8a: 681b ldr r3, [r3, #0] + 8001c8c: f442 4280 orr.w r2, r2, #16384 @ 0x4000 + 8001c90: 601a str r2, [r3, #0] + SPI_RESET_CRC(hspi); + } +#endif /* USE_SPI_CRC */ + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + 8001c92: 68fb ldr r3, [r7, #12] + 8001c94: 681b ldr r3, [r3, #0] + 8001c96: 681b ldr r3, [r3, #0] + 8001c98: f003 0340 and.w r3, r3, #64 @ 0x40 + 8001c9c: 2b40 cmp r3, #64 @ 0x40 + 8001c9e: d007 beq.n 8001cb0 + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + 8001ca0: 68fb ldr r3, [r7, #12] + 8001ca2: 681b ldr r3, [r3, #0] + 8001ca4: 681a ldr r2, [r3, #0] + 8001ca6: 68fb ldr r3, [r7, #12] + 8001ca8: 681b ldr r3, [r3, #0] + 8001caa: f042 0240 orr.w r2, r2, #64 @ 0x40 + 8001cae: 601a str r2, [r3, #0] + } + + /* Transmit data in 16 Bit mode */ + if (hspi->Init.DataSize == SPI_DATASIZE_16BIT) + 8001cb0: 68fb ldr r3, [r7, #12] + 8001cb2: 68db ldr r3, [r3, #12] + 8001cb4: f5b3 6f00 cmp.w r3, #2048 @ 0x800 + 8001cb8: d152 bne.n 8001d60 + { + if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) + 8001cba: 68fb ldr r3, [r7, #12] + 8001cbc: 685b ldr r3, [r3, #4] + 8001cbe: 2b00 cmp r3, #0 + 8001cc0: d002 beq.n 8001cc8 + 8001cc2: 8b7b ldrh r3, [r7, #26] + 8001cc4: 2b01 cmp r3, #1 + 8001cc6: d145 bne.n 8001d54 + { + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + 8001cc8: 68fb ldr r3, [r7, #12] + 8001cca: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001ccc: 881a ldrh r2, [r3, #0] + 8001cce: 68fb ldr r3, [r7, #12] + 8001cd0: 681b ldr r3, [r3, #0] + 8001cd2: 60da str r2, [r3, #12] + hspi->pTxBuffPtr += sizeof(uint16_t); + 8001cd4: 68fb ldr r3, [r7, #12] + 8001cd6: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001cd8: 1c9a adds r2, r3, #2 + 8001cda: 68fb ldr r3, [r7, #12] + 8001cdc: 631a str r2, [r3, #48] @ 0x30 + hspi->TxXferCount--; + 8001cde: 68fb ldr r3, [r7, #12] + 8001ce0: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001ce2: b29b uxth r3, r3 + 8001ce4: 3b01 subs r3, #1 + 8001ce6: b29a uxth r2, r3 + 8001ce8: 68fb ldr r3, [r7, #12] + 8001cea: 86da strh r2, [r3, #54] @ 0x36 + } + /* Transmit data in 16 Bit mode */ + while (hspi->TxXferCount > 0U) + 8001cec: e032 b.n 8001d54 + { + /* Wait until TXE flag is set to send data */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) + 8001cee: 68fb ldr r3, [r7, #12] + 8001cf0: 681b ldr r3, [r3, #0] + 8001cf2: 689b ldr r3, [r3, #8] + 8001cf4: f003 0302 and.w r3, r3, #2 + 8001cf8: 2b02 cmp r3, #2 + 8001cfa: d112 bne.n 8001d22 + { + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + 8001cfc: 68fb ldr r3, [r7, #12] + 8001cfe: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001d00: 881a ldrh r2, [r3, #0] + 8001d02: 68fb ldr r3, [r7, #12] + 8001d04: 681b ldr r3, [r3, #0] + 8001d06: 60da str r2, [r3, #12] + hspi->pTxBuffPtr += sizeof(uint16_t); + 8001d08: 68fb ldr r3, [r7, #12] + 8001d0a: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001d0c: 1c9a adds r2, r3, #2 + 8001d0e: 68fb ldr r3, [r7, #12] + 8001d10: 631a str r2, [r3, #48] @ 0x30 + hspi->TxXferCount--; + 8001d12: 68fb ldr r3, [r7, #12] + 8001d14: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001d16: b29b uxth r3, r3 + 8001d18: 3b01 subs r3, #1 + 8001d1a: b29a uxth r2, r3 + 8001d1c: 68fb ldr r3, [r7, #12] + 8001d1e: 86da strh r2, [r3, #54] @ 0x36 + 8001d20: e018 b.n 8001d54 + } + else + { + /* Timeout management */ + if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U)) + 8001d22: f7fe fe97 bl 8000a54 + 8001d26: 4602 mov r2, r0 + 8001d28: 69fb ldr r3, [r7, #28] + 8001d2a: 1ad3 subs r3, r2, r3 + 8001d2c: 683a ldr r2, [r7, #0] + 8001d2e: 429a cmp r2, r3 + 8001d30: d803 bhi.n 8001d3a + 8001d32: 683b ldr r3, [r7, #0] + 8001d34: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8001d38: d102 bne.n 8001d40 + 8001d3a: 683b ldr r3, [r7, #0] + 8001d3c: 2b00 cmp r3, #0 + 8001d3e: d109 bne.n 8001d54 + { + hspi->State = HAL_SPI_STATE_READY; + 8001d40: 68fb ldr r3, [r7, #12] + 8001d42: 2201 movs r2, #1 + 8001d44: f883 2051 strb.w r2, [r3, #81] @ 0x51 + __HAL_UNLOCK(hspi); + 8001d48: 68fb ldr r3, [r7, #12] + 8001d4a: 2200 movs r2, #0 + 8001d4c: f883 2050 strb.w r2, [r3, #80] @ 0x50 + return HAL_TIMEOUT; + 8001d50: 2303 movs r3, #3 + 8001d52: e082 b.n 8001e5a + while (hspi->TxXferCount > 0U) + 8001d54: 68fb ldr r3, [r7, #12] + 8001d56: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001d58: b29b uxth r3, r3 + 8001d5a: 2b00 cmp r3, #0 + 8001d5c: d1c7 bne.n 8001cee + 8001d5e: e053 b.n 8001e08 + } + } + /* Transmit data in 8 Bit mode */ + else + { + if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) + 8001d60: 68fb ldr r3, [r7, #12] + 8001d62: 685b ldr r3, [r3, #4] + 8001d64: 2b00 cmp r3, #0 + 8001d66: d002 beq.n 8001d6e + 8001d68: 8b7b ldrh r3, [r7, #26] + 8001d6a: 2b01 cmp r3, #1 + 8001d6c: d147 bne.n 8001dfe + { + *((__IO uint8_t *)&hspi->Instance->DR) = *((const uint8_t *)hspi->pTxBuffPtr); + 8001d6e: 68fb ldr r3, [r7, #12] + 8001d70: 6b1a ldr r2, [r3, #48] @ 0x30 + 8001d72: 68fb ldr r3, [r7, #12] + 8001d74: 681b ldr r3, [r3, #0] + 8001d76: 330c adds r3, #12 + 8001d78: 7812 ldrb r2, [r2, #0] + 8001d7a: 701a strb r2, [r3, #0] + hspi->pTxBuffPtr += sizeof(uint8_t); + 8001d7c: 68fb ldr r3, [r7, #12] + 8001d7e: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001d80: 1c5a adds r2, r3, #1 + 8001d82: 68fb ldr r3, [r7, #12] + 8001d84: 631a str r2, [r3, #48] @ 0x30 + hspi->TxXferCount--; + 8001d86: 68fb ldr r3, [r7, #12] + 8001d88: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001d8a: b29b uxth r3, r3 + 8001d8c: 3b01 subs r3, #1 + 8001d8e: b29a uxth r2, r3 + 8001d90: 68fb ldr r3, [r7, #12] + 8001d92: 86da strh r2, [r3, #54] @ 0x36 + } + while (hspi->TxXferCount > 0U) + 8001d94: e033 b.n 8001dfe + { + /* Wait until TXE flag is set to send data */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) + 8001d96: 68fb ldr r3, [r7, #12] + 8001d98: 681b ldr r3, [r3, #0] + 8001d9a: 689b ldr r3, [r3, #8] + 8001d9c: f003 0302 and.w r3, r3, #2 + 8001da0: 2b02 cmp r3, #2 + 8001da2: d113 bne.n 8001dcc + { + *((__IO uint8_t *)&hspi->Instance->DR) = *((const uint8_t *)hspi->pTxBuffPtr); + 8001da4: 68fb ldr r3, [r7, #12] + 8001da6: 6b1a ldr r2, [r3, #48] @ 0x30 + 8001da8: 68fb ldr r3, [r7, #12] + 8001daa: 681b ldr r3, [r3, #0] + 8001dac: 330c adds r3, #12 + 8001dae: 7812 ldrb r2, [r2, #0] + 8001db0: 701a strb r2, [r3, #0] + hspi->pTxBuffPtr += sizeof(uint8_t); + 8001db2: 68fb ldr r3, [r7, #12] + 8001db4: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001db6: 1c5a adds r2, r3, #1 + 8001db8: 68fb ldr r3, [r7, #12] + 8001dba: 631a str r2, [r3, #48] @ 0x30 + hspi->TxXferCount--; + 8001dbc: 68fb ldr r3, [r7, #12] + 8001dbe: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001dc0: b29b uxth r3, r3 + 8001dc2: 3b01 subs r3, #1 + 8001dc4: b29a uxth r2, r3 + 8001dc6: 68fb ldr r3, [r7, #12] + 8001dc8: 86da strh r2, [r3, #54] @ 0x36 + 8001dca: e018 b.n 8001dfe + } + else + { + /* Timeout management */ + if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U)) + 8001dcc: f7fe fe42 bl 8000a54 + 8001dd0: 4602 mov r2, r0 + 8001dd2: 69fb ldr r3, [r7, #28] + 8001dd4: 1ad3 subs r3, r2, r3 + 8001dd6: 683a ldr r2, [r7, #0] + 8001dd8: 429a cmp r2, r3 + 8001dda: d803 bhi.n 8001de4 + 8001ddc: 683b ldr r3, [r7, #0] + 8001dde: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8001de2: d102 bne.n 8001dea + 8001de4: 683b ldr r3, [r7, #0] + 8001de6: 2b00 cmp r3, #0 + 8001de8: d109 bne.n 8001dfe + { + hspi->State = HAL_SPI_STATE_READY; + 8001dea: 68fb ldr r3, [r7, #12] + 8001dec: 2201 movs r2, #1 + 8001dee: f883 2051 strb.w r2, [r3, #81] @ 0x51 + __HAL_UNLOCK(hspi); + 8001df2: 68fb ldr r3, [r7, #12] + 8001df4: 2200 movs r2, #0 + 8001df6: f883 2050 strb.w r2, [r3, #80] @ 0x50 + return HAL_TIMEOUT; + 8001dfa: 2303 movs r3, #3 + 8001dfc: e02d b.n 8001e5a + while (hspi->TxXferCount > 0U) + 8001dfe: 68fb ldr r3, [r7, #12] + 8001e00: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001e02: b29b uxth r3, r3 + 8001e04: 2b00 cmp r3, #0 + 8001e06: d1c6 bne.n 8001d96 + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + + /* Check the end of the transaction */ + if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK) + 8001e08: 69fa ldr r2, [r7, #28] + 8001e0a: 6839 ldr r1, [r7, #0] + 8001e0c: 68f8 ldr r0, [r7, #12] + 8001e0e: f000 f8b1 bl 8001f74 + 8001e12: 4603 mov r3, r0 + 8001e14: 2b00 cmp r3, #0 + 8001e16: d002 beq.n 8001e1e + { + hspi->ErrorCode = HAL_SPI_ERROR_FLAG; + 8001e18: 68fb ldr r3, [r7, #12] + 8001e1a: 2220 movs r2, #32 + 8001e1c: 655a str r2, [r3, #84] @ 0x54 + } + + /* Clear overrun flag in 2 Lines communication mode because received is not read */ + if (hspi->Init.Direction == SPI_DIRECTION_2LINES) + 8001e1e: 68fb ldr r3, [r7, #12] + 8001e20: 689b ldr r3, [r3, #8] + 8001e22: 2b00 cmp r3, #0 + 8001e24: d10a bne.n 8001e3c + { + __HAL_SPI_CLEAR_OVRFLAG(hspi); + 8001e26: 2300 movs r3, #0 + 8001e28: 617b str r3, [r7, #20] + 8001e2a: 68fb ldr r3, [r7, #12] + 8001e2c: 681b ldr r3, [r3, #0] + 8001e2e: 68db ldr r3, [r3, #12] + 8001e30: 617b str r3, [r7, #20] + 8001e32: 68fb ldr r3, [r7, #12] + 8001e34: 681b ldr r3, [r3, #0] + 8001e36: 689b ldr r3, [r3, #8] + 8001e38: 617b str r3, [r7, #20] + 8001e3a: 697b ldr r3, [r7, #20] + } + + hspi->State = HAL_SPI_STATE_READY; + 8001e3c: 68fb ldr r3, [r7, #12] + 8001e3e: 2201 movs r2, #1 + 8001e40: f883 2051 strb.w r2, [r3, #81] @ 0x51 + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + 8001e44: 68fb ldr r3, [r7, #12] + 8001e46: 2200 movs r2, #0 + 8001e48: f883 2050 strb.w r2, [r3, #80] @ 0x50 + + if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) + 8001e4c: 68fb ldr r3, [r7, #12] + 8001e4e: 6d5b ldr r3, [r3, #84] @ 0x54 + 8001e50: 2b00 cmp r3, #0 + 8001e52: d001 beq.n 8001e58 + { + return HAL_ERROR; + 8001e54: 2301 movs r3, #1 + 8001e56: e000 b.n 8001e5a + } + else + { + return HAL_OK; + 8001e58: 2300 movs r3, #0 + } +} + 8001e5a: 4618 mov r0, r3 + 8001e5c: 3720 adds r7, #32 + 8001e5e: 46bd mov sp, r7 + 8001e60: bd80 pop {r7, pc} + ... + +08001e64 : + * @param Tickstart tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, FlagStatus State, + uint32_t Timeout, uint32_t Tickstart) +{ + 8001e64: b580 push {r7, lr} + 8001e66: b088 sub sp, #32 + 8001e68: af00 add r7, sp, #0 + 8001e6a: 60f8 str r0, [r7, #12] + 8001e6c: 60b9 str r1, [r7, #8] + 8001e6e: 603b str r3, [r7, #0] + 8001e70: 4613 mov r3, r2 + 8001e72: 71fb strb r3, [r7, #7] + __IO uint32_t count; + uint32_t tmp_timeout; + uint32_t tmp_tickstart; + + /* Adjust Timeout value in case of end of transfer */ + tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); + 8001e74: f7fe fdee bl 8000a54 + 8001e78: 4602 mov r2, r0 + 8001e7a: 6abb ldr r3, [r7, #40] @ 0x28 + 8001e7c: 1a9b subs r3, r3, r2 + 8001e7e: 683a ldr r2, [r7, #0] + 8001e80: 4413 add r3, r2 + 8001e82: 61fb str r3, [r7, #28] + tmp_tickstart = HAL_GetTick(); + 8001e84: f7fe fde6 bl 8000a54 + 8001e88: 61b8 str r0, [r7, #24] + + /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ + count = tmp_timeout * ((SystemCoreClock * 32U) >> 20U); + 8001e8a: 4b39 ldr r3, [pc, #228] @ (8001f70 ) + 8001e8c: 681b ldr r3, [r3, #0] + 8001e8e: 015b lsls r3, r3, #5 + 8001e90: 0d1b lsrs r3, r3, #20 + 8001e92: 69fa ldr r2, [r7, #28] + 8001e94: fb02 f303 mul.w r3, r2, r3 + 8001e98: 617b str r3, [r7, #20] + + while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) + 8001e9a: e054 b.n 8001f46 + { + if (Timeout != HAL_MAX_DELAY) + 8001e9c: 683b ldr r3, [r7, #0] + 8001e9e: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8001ea2: d050 beq.n 8001f46 + { + if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) + 8001ea4: f7fe fdd6 bl 8000a54 + 8001ea8: 4602 mov r2, r0 + 8001eaa: 69bb ldr r3, [r7, #24] + 8001eac: 1ad3 subs r3, r2, r3 + 8001eae: 69fa ldr r2, [r7, #28] + 8001eb0: 429a cmp r2, r3 + 8001eb2: d902 bls.n 8001eba + 8001eb4: 69fb ldr r3, [r7, #28] + 8001eb6: 2b00 cmp r3, #0 + 8001eb8: d13d bne.n 8001f36 + /* Disable the SPI and reset the CRC: the CRC value should be cleared + on both master and slave sides in order to resynchronize the master + and slave for their respective CRC calculation */ + + /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); + 8001eba: 68fb ldr r3, [r7, #12] + 8001ebc: 681b ldr r3, [r3, #0] + 8001ebe: 685a ldr r2, [r3, #4] + 8001ec0: 68fb ldr r3, [r7, #12] + 8001ec2: 681b ldr r3, [r3, #0] + 8001ec4: f022 02e0 bic.w r2, r2, #224 @ 0xe0 + 8001ec8: 605a str r2, [r3, #4] + + if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) + 8001eca: 68fb ldr r3, [r7, #12] + 8001ecc: 685b ldr r3, [r3, #4] + 8001ece: f5b3 7f82 cmp.w r3, #260 @ 0x104 + 8001ed2: d111 bne.n 8001ef8 + 8001ed4: 68fb ldr r3, [r7, #12] + 8001ed6: 689b ldr r3, [r3, #8] + 8001ed8: f5b3 4f00 cmp.w r3, #32768 @ 0x8000 + 8001edc: d004 beq.n 8001ee8 + || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXONLY))) + 8001ede: 68fb ldr r3, [r7, #12] + 8001ee0: 689b ldr r3, [r3, #8] + 8001ee2: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 8001ee6: d107 bne.n 8001ef8 + { + /* Disable SPI peripheral */ + __HAL_SPI_DISABLE(hspi); + 8001ee8: 68fb ldr r3, [r7, #12] + 8001eea: 681b ldr r3, [r3, #0] + 8001eec: 681a ldr r2, [r3, #0] + 8001eee: 68fb ldr r3, [r7, #12] + 8001ef0: 681b ldr r3, [r3, #0] + 8001ef2: f022 0240 bic.w r2, r2, #64 @ 0x40 + 8001ef6: 601a str r2, [r3, #0] + } + + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + 8001ef8: 68fb ldr r3, [r7, #12] + 8001efa: 6a9b ldr r3, [r3, #40] @ 0x28 + 8001efc: f5b3 5f00 cmp.w r3, #8192 @ 0x2000 + 8001f00: d10f bne.n 8001f22 + { + SPI_RESET_CRC(hspi); + 8001f02: 68fb ldr r3, [r7, #12] + 8001f04: 681b ldr r3, [r3, #0] + 8001f06: 681a ldr r2, [r3, #0] + 8001f08: 68fb ldr r3, [r7, #12] + 8001f0a: 681b ldr r3, [r3, #0] + 8001f0c: f422 5200 bic.w r2, r2, #8192 @ 0x2000 + 8001f10: 601a str r2, [r3, #0] + 8001f12: 68fb ldr r3, [r7, #12] + 8001f14: 681b ldr r3, [r3, #0] + 8001f16: 681a ldr r2, [r3, #0] + 8001f18: 68fb ldr r3, [r7, #12] + 8001f1a: 681b ldr r3, [r3, #0] + 8001f1c: f442 5200 orr.w r2, r2, #8192 @ 0x2000 + 8001f20: 601a str r2, [r3, #0] + } + + hspi->State = HAL_SPI_STATE_READY; + 8001f22: 68fb ldr r3, [r7, #12] + 8001f24: 2201 movs r2, #1 + 8001f26: f883 2051 strb.w r2, [r3, #81] @ 0x51 + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + 8001f2a: 68fb ldr r3, [r7, #12] + 8001f2c: 2200 movs r2, #0 + 8001f2e: f883 2050 strb.w r2, [r3, #80] @ 0x50 + + return HAL_TIMEOUT; + 8001f32: 2303 movs r3, #3 + 8001f34: e017 b.n 8001f66 + } + /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop procedure */ + if (count == 0U) + 8001f36: 697b ldr r3, [r7, #20] + 8001f38: 2b00 cmp r3, #0 + 8001f3a: d101 bne.n 8001f40 + { + tmp_timeout = 0U; + 8001f3c: 2300 movs r3, #0 + 8001f3e: 61fb str r3, [r7, #28] + } + count--; + 8001f40: 697b ldr r3, [r7, #20] + 8001f42: 3b01 subs r3, #1 + 8001f44: 617b str r3, [r7, #20] + while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) + 8001f46: 68fb ldr r3, [r7, #12] + 8001f48: 681b ldr r3, [r3, #0] + 8001f4a: 689a ldr r2, [r3, #8] + 8001f4c: 68bb ldr r3, [r7, #8] + 8001f4e: 4013 ands r3, r2 + 8001f50: 68ba ldr r2, [r7, #8] + 8001f52: 429a cmp r2, r3 + 8001f54: bf0c ite eq + 8001f56: 2301 moveq r3, #1 + 8001f58: 2300 movne r3, #0 + 8001f5a: b2db uxtb r3, r3 + 8001f5c: 461a mov r2, r3 + 8001f5e: 79fb ldrb r3, [r7, #7] + 8001f60: 429a cmp r2, r3 + 8001f62: d19b bne.n 8001e9c + } + } + + return HAL_OK; + 8001f64: 2300 movs r3, #0 +} + 8001f66: 4618 mov r0, r3 + 8001f68: 3720 adds r7, #32 + 8001f6a: 46bd mov sp, r7 + 8001f6c: bd80 pop {r7, pc} + 8001f6e: bf00 nop + 8001f70: 20000000 .word 0x20000000 + +08001f74 : + * @param Timeout Timeout duration + * @param Tickstart tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart) +{ + 8001f74: b580 push {r7, lr} + 8001f76: b088 sub sp, #32 + 8001f78: af02 add r7, sp, #8 + 8001f7a: 60f8 str r0, [r7, #12] + 8001f7c: 60b9 str r1, [r7, #8] + 8001f7e: 607a str r2, [r7, #4] + /* Wait until TXE flag */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_TXE, SET, Timeout, Tickstart) != HAL_OK) + 8001f80: 687b ldr r3, [r7, #4] + 8001f82: 9300 str r3, [sp, #0] + 8001f84: 68bb ldr r3, [r7, #8] + 8001f86: 2201 movs r2, #1 + 8001f88: 2102 movs r1, #2 + 8001f8a: 68f8 ldr r0, [r7, #12] + 8001f8c: f7ff ff6a bl 8001e64 + 8001f90: 4603 mov r3, r0 + 8001f92: 2b00 cmp r3, #0 + 8001f94: d007 beq.n 8001fa6 + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + 8001f96: 68fb ldr r3, [r7, #12] + 8001f98: 6d5b ldr r3, [r3, #84] @ 0x54 + 8001f9a: f043 0220 orr.w r2, r3, #32 + 8001f9e: 68fb ldr r3, [r7, #12] + 8001fa0: 655a str r2, [r3, #84] @ 0x54 + return HAL_TIMEOUT; + 8001fa2: 2303 movs r3, #3 + 8001fa4: e032 b.n 800200c + } + + /* Timeout in us */ + __IO uint32_t count = SPI_BSY_FLAG_WORKAROUND_TIMEOUT * (SystemCoreClock / 24U / 1000000U); + 8001fa6: 4b1b ldr r3, [pc, #108] @ (8002014 ) + 8001fa8: 681b ldr r3, [r3, #0] + 8001faa: 4a1b ldr r2, [pc, #108] @ (8002018 ) + 8001fac: fba2 2303 umull r2, r3, r2, r3 + 8001fb0: 0d5b lsrs r3, r3, #21 + 8001fb2: f44f 727a mov.w r2, #1000 @ 0x3e8 + 8001fb6: fb02 f303 mul.w r3, r2, r3 + 8001fba: 617b str r3, [r7, #20] + /* Erratasheet: BSY bit may stay high at the end of a data transfer in Slave mode */ + if (hspi->Init.Mode == SPI_MODE_MASTER) + 8001fbc: 68fb ldr r3, [r7, #12] + 8001fbe: 685b ldr r3, [r3, #4] + 8001fc0: f5b3 7f82 cmp.w r3, #260 @ 0x104 + 8001fc4: d112 bne.n 8001fec + { + /* Control the BSY flag */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) + 8001fc6: 687b ldr r3, [r7, #4] + 8001fc8: 9300 str r3, [sp, #0] + 8001fca: 68bb ldr r3, [r7, #8] + 8001fcc: 2200 movs r2, #0 + 8001fce: 2180 movs r1, #128 @ 0x80 + 8001fd0: 68f8 ldr r0, [r7, #12] + 8001fd2: f7ff ff47 bl 8001e64 + 8001fd6: 4603 mov r3, r0 + 8001fd8: 2b00 cmp r3, #0 + 8001fda: d016 beq.n 800200a + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + 8001fdc: 68fb ldr r3, [r7, #12] + 8001fde: 6d5b ldr r3, [r3, #84] @ 0x54 + 8001fe0: f043 0220 orr.w r2, r3, #32 + 8001fe4: 68fb ldr r3, [r7, #12] + 8001fe6: 655a str r2, [r3, #84] @ 0x54 + return HAL_TIMEOUT; + 8001fe8: 2303 movs r3, #3 + 8001fea: e00f b.n 800200c + * User have to calculate the timeout value to fit with the time of 1 byte transfer. + * This time is directly link with the SPI clock from Master device. + */ + do + { + if (count == 0U) + 8001fec: 697b ldr r3, [r7, #20] + 8001fee: 2b00 cmp r3, #0 + 8001ff0: d00a beq.n 8002008 + { + break; + } + count--; + 8001ff2: 697b ldr r3, [r7, #20] + 8001ff4: 3b01 subs r3, #1 + 8001ff6: 617b str r3, [r7, #20] + } while (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_BSY) != RESET); + 8001ff8: 68fb ldr r3, [r7, #12] + 8001ffa: 681b ldr r3, [r3, #0] + 8001ffc: 689b ldr r3, [r3, #8] + 8001ffe: f003 0380 and.w r3, r3, #128 @ 0x80 + 8002002: 2b80 cmp r3, #128 @ 0x80 + 8002004: d0f2 beq.n 8001fec + 8002006: e000 b.n 800200a + break; + 8002008: bf00 nop + } + + return HAL_OK; + 800200a: 2300 movs r3, #0 +} + 800200c: 4618 mov r0, r3 + 800200e: 3718 adds r7, #24 + 8002010: 46bd mov sp, r7 + 8002012: bd80 pop {r7, pc} + 8002014: 20000000 .word 0x20000000 + 8002018: 165e9f81 .word 0x165e9f81 + +0800201c : + 800201c: 4603 mov r3, r0 + 800201e: 4402 add r2, r0 + 8002020: 4293 cmp r3, r2 + 8002022: d100 bne.n 8002026 + 8002024: 4770 bx lr + 8002026: f803 1b01 strb.w r1, [r3], #1 + 800202a: e7f9 b.n 8002020 + +0800202c <__libc_init_array>: + 800202c: b570 push {r4, r5, r6, lr} + 800202e: 2600 movs r6, #0 + 8002030: 4d0c ldr r5, [pc, #48] @ (8002064 <__libc_init_array+0x38>) + 8002032: 4c0d ldr r4, [pc, #52] @ (8002068 <__libc_init_array+0x3c>) + 8002034: 1b64 subs r4, r4, r5 + 8002036: 10a4 asrs r4, r4, #2 + 8002038: 42a6 cmp r6, r4 + 800203a: d109 bne.n 8002050 <__libc_init_array+0x24> + 800203c: f000 f81a bl 8002074 <_init> + 8002040: 2600 movs r6, #0 + 8002042: 4d0a ldr r5, [pc, #40] @ (800206c <__libc_init_array+0x40>) + 8002044: 4c0a ldr r4, [pc, #40] @ (8002070 <__libc_init_array+0x44>) + 8002046: 1b64 subs r4, r4, r5 + 8002048: 10a4 asrs r4, r4, #2 + 800204a: 42a6 cmp r6, r4 + 800204c: d105 bne.n 800205a <__libc_init_array+0x2e> + 800204e: bd70 pop {r4, r5, r6, pc} + 8002050: f855 3b04 ldr.w r3, [r5], #4 + 8002054: 4798 blx r3 + 8002056: 3601 adds r6, #1 + 8002058: e7ee b.n 8002038 <__libc_init_array+0xc> + 800205a: f855 3b04 ldr.w r3, [r5], #4 + 800205e: 4798 blx r3 + 8002060: 3601 adds r6, #1 + 8002062: e7f2 b.n 800204a <__libc_init_array+0x1e> + 8002064: 080020c0 .word 0x080020c0 + 8002068: 080020c0 .word 0x080020c0 + 800206c: 080020c0 .word 0x080020c0 + 8002070: 080020c4 .word 0x080020c4 + +08002074 <_init>: + 8002074: b5f8 push {r3, r4, r5, r6, r7, lr} + 8002076: bf00 nop + 8002078: bcf8 pop {r3, r4, r5, r6, r7} + 800207a: bc08 pop {r3} + 800207c: 469e mov lr, r3 + 800207e: 4770 bx lr + +08002080 <_fini>: + 8002080: b5f8 push {r3, r4, r5, r6, r7, lr} + 8002082: bf00 nop + 8002084: bcf8 pop {r3, r4, r5, r6, r7} + 8002086: bc08 pop {r3} + 8002088: 469e mov lr, r3 + 800208a: 4770 bx lr diff --git a/TP2_ISEN_DISPLAY/Debug/TP2_INIT_DISPLAY.map b/TP2_ISEN_DISPLAY/Debug/TP2_INIT_DISPLAY.map new file mode 100644 index 0000000..2dfbcb3 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/TP2_INIT_DISPLAY.map @@ -0,0 +1,2896 @@ +Archive member included to satisfy reference by file (symbol) + +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (exit) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) (__stdio_exit_handler) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) (_fwalk_sglue) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (memset) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + ./Core/Src/syscalls.o (__errno) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (__libc_init_array) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) (__retarget_lock_init_recursive) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) (_impure_ptr) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) (_malloc_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) (_fflush_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) (__malloc_lock) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) (__sread) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) (_lseek_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) (_read_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) (_sbrk_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) (_write_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) (_close_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) (errno) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) (_free_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o (__aeabi_uldivmod) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) (__udivmoddi4) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) (__aeabi_ldiv0) + +Discarded input sections + + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + .data 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + .rodata 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + .text 0x00000000 0x7c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.extab 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.exidx 0x00000000 0x10 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.attributes + 0x00000000 0x1b /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .text 0x00000000 0x0 ./Core/Src/main.o + .data 0x00000000 0x0 ./Core/Src/main.o + .bss 0x00000000 0x0 ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .text 0x00000000 0x0 ./Core/Src/stm32l1xx_hal_msp.o + .data 0x00000000 0x0 ./Core/Src/stm32l1xx_hal_msp.o + .bss 0x00000000 0x0 ./Core/Src/stm32l1xx_hal_msp.o + .text.HAL_SPI_MspDeInit + 0x00000000 0x3c ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xacc ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x109 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x2e ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x8e ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x51 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x103 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x6a ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x1df ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x1c ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xbd ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xe49 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x11f ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xb7a1 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x6d ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x34e1 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x190 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x5b ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xe37 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x35b ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x1b8 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xc5 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x21e ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x236 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x115 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x567 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x1e9 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x225 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x170 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x492 ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .text 0x00000000 0x0 ./Core/Src/stm32l1xx_it.o + .data 0x00000000 0x0 ./Core/Src/stm32l1xx_it.o + .bss 0x00000000 0x0 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xacc ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x109 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x2e ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x8e ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x51 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x103 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x6a ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x1df ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x1c ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xbd ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xe49 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x11f ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xb7a1 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x6d ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x34e1 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x190 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x5b ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xe37 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x35b ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x1b8 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xc5 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x21e ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x236 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x115 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x567 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x1e9 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x225 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x170 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x492 ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .text 0x00000000 0x0 ./Core/Src/syscalls.o + .data 0x00000000 0x0 ./Core/Src/syscalls.o + .bss 0x00000000 0x0 ./Core/Src/syscalls.o + .bss.__env 0x00000000 0x4 ./Core/Src/syscalls.o + .data.environ 0x00000000 0x4 ./Core/Src/syscalls.o + .text.initialise_monitor_handles + 0x00000000 0xc ./Core/Src/syscalls.o + .text._getpid 0x00000000 0xe ./Core/Src/syscalls.o + .text._kill 0x00000000 0x20 ./Core/Src/syscalls.o + .text._exit 0x00000000 0x16 ./Core/Src/syscalls.o + .text._read 0x00000000 0x3a ./Core/Src/syscalls.o + .text._write 0x00000000 0x38 ./Core/Src/syscalls.o + .text._close 0x00000000 0x16 ./Core/Src/syscalls.o + .text._fstat 0x00000000 0x1e ./Core/Src/syscalls.o + .text._isatty 0x00000000 0x14 ./Core/Src/syscalls.o + .text._lseek 0x00000000 0x18 ./Core/Src/syscalls.o + .text._open 0x00000000 0x1a ./Core/Src/syscalls.o + .text._wait 0x00000000 0x1e ./Core/Src/syscalls.o + .text._unlink 0x00000000 0x1e ./Core/Src/syscalls.o + .text._times 0x00000000 0x16 ./Core/Src/syscalls.o + .text._stat 0x00000000 0x1e ./Core/Src/syscalls.o + .text._link 0x00000000 0x20 ./Core/Src/syscalls.o + .text._fork 0x00000000 0x16 ./Core/Src/syscalls.o + .text._execve 0x00000000 0x22 ./Core/Src/syscalls.o + .debug_info 0x00000000 0x6a3 ./Core/Src/syscalls.o + .debug_abbrev 0x00000000 0x1b6 ./Core/Src/syscalls.o + .debug_aranges + 0x00000000 0xa8 ./Core/Src/syscalls.o + .debug_rnglists + 0x00000000 0x79 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x274 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0xacc ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x22 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x5b ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x24 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x94 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x43 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x34 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x57 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x190 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x370 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x4a ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x34 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x58 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x8e ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x185 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x3c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x6a ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x52 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x22 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x52 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0xcf ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x3d ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x35 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x12c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x29 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x242 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x146 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x103 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1df ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x18a ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0xce ./Core/Src/syscalls.o + .debug_line 0x00000000 0x845 ./Core/Src/syscalls.o + .debug_str 0x00000000 0x9994 ./Core/Src/syscalls.o + .comment 0x00000000 0x44 ./Core/Src/syscalls.o + .debug_frame 0x00000000 0x2ac ./Core/Src/syscalls.o + .ARM.attributes + 0x00000000 0x2d ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .text 0x00000000 0x0 ./Core/Src/sysmem.o + .data 0x00000000 0x0 ./Core/Src/sysmem.o + .bss 0x00000000 0x0 ./Core/Src/sysmem.o + .bss.__sbrk_heap_end + 0x00000000 0x4 ./Core/Src/sysmem.o + .text._sbrk 0x00000000 0x6c ./Core/Src/sysmem.o + .debug_info 0x00000000 0x168 ./Core/Src/sysmem.o + .debug_abbrev 0x00000000 0xbc ./Core/Src/sysmem.o + .debug_aranges + 0x00000000 0x20 ./Core/Src/sysmem.o + .debug_rnglists + 0x00000000 0x13 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x112 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0xacc ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x10 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x22 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x5b ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x24 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x94 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x43 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x34 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x190 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x57 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x370 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x16 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x4a ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x34 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x10 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x58 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x8e ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x1c ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x185 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x23c ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x103 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x6a ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x1df ./Core/Src/sysmem.o + .debug_line 0x00000000 0x521 ./Core/Src/sysmem.o + .debug_str 0x00000000 0x7732 ./Core/Src/sysmem.o + .comment 0x00000000 0x44 ./Core/Src/sysmem.o + .debug_frame 0x00000000 0x34 ./Core/Src/sysmem.o + .ARM.attributes + 0x00000000 0x2d ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .text 0x00000000 0x0 ./Core/Src/system_stm32l1xx.o + .data 0x00000000 0x0 ./Core/Src/system_stm32l1xx.o + .bss 0x00000000 0x0 ./Core/Src/system_stm32l1xx.o + .rodata.APBPrescTable + 0x00000000 0x8 ./Core/Src/system_stm32l1xx.o + .text.SystemCoreClockUpdate + 0x00000000 0x154 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xacc ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x2e ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x22 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x22 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x8e ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x51 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x103 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x6a ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x1df ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x1c ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x22 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xbd ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xe49 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x11f ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xb7a1 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x6d ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x109 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x34e1 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x190 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x5b ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xe37 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x35b ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x1b8 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xc5 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x21e ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x236 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x115 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x567 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x1e9 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x22 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x225 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x170 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x492 ./Core/Src/system_stm32l1xx.o + .text 0x00000000 0x14 ./Core/Startup/startup_stm32l152retx.o + .data 0x00000000 0x0 ./Core/Startup/startup_stm32l152retx.o + .bss 0x00000000 0x0 ./Core/Startup/startup_stm32l152retx.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .text 0x00000000 0x0 ./Drivers/7Seg_MAX7219/max7219.o + .data 0x00000000 0x0 ./Drivers/7Seg_MAX7219/max7219.o + .bss 0x00000000 0x0 ./Drivers/7Seg_MAX7219/max7219.o + .text.MAX7219_ShutdownStart + 0x00000000 0x10 ./Drivers/7Seg_MAX7219/max7219.o + .text.MAX7219_DisplayTestStart + 0x00000000 0x10 ./Drivers/7Seg_MAX7219/max7219.o + .text.MAX7219_DisplayCharPointOff + 0x00000000 0x2c ./Drivers/7Seg_MAX7219/max7219.o + .text.MAX7219_DisplayCharPointOn + 0x00000000 0x34 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xacc ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x109 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x2e ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x22 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x22 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x8e ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x51 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x103 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x6a ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x1df ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x1c ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x22 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xbd ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xe49 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x11f ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x6d ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x34e1 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x190 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x5b ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xe37 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x35b ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x1b8 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xc5 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x21e ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x236 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x115 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x567 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x1e9 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x22 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x225 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x170 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x492 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x10 ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DeInit + 0x00000000 0x3c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_MspInit + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_MspDeInit + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetTickPrio + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_SetTickFreq + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetTickFreq + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_SuspendTick + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_ResumeTick + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetHalVersion + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetREVID + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetDEVID + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetUIDw0 + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetUIDw1 + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetUIDw2 + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_EnableDBGSleepMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_DisableDBGSleepMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_EnableDBGStopMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_DisableDBGStopMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_EnableDBGStandbyMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_DisableDBGStandbyMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_EnableIRQ + 0x00000000 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_DisableIRQ + 0x00000000 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_GetPendingIRQ + 0x00000000 0x40 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_SetPendingIRQ + 0x00000000 0x3c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_ClearPendingIRQ + 0x00000000 0x3c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_GetActive + 0x00000000 0x40 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_GetPriority + 0x00000000 0x4c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.NVIC_DecodePriority + 0x00000000 0x6c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_SystemReset + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_EnableIRQ + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_DisableIRQ + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_SystemReset + 0x00000000 0x8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_MPU_Enable + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_MPU_Disable + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_MPU_EnableRegion + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_MPU_DisableRegion + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_MPU_ConfigRegion + 0x00000000 0x7c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_GetPriorityGrouping + 0x00000000 0xe ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_GetPriority + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_SetPendingIRQ + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_GetPendingIRQ + 0x00000000 0x1e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_ClearPendingIRQ + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_GetActive + 0x00000000 0x1e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_SYSTICK_CLKSourceConfig + 0x00000000 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_SYSTICK_IRQHandler + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_SYSTICK_Callback + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_Init + 0x00000000 0xe8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_DeInit + 0x00000000 0xdc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_Start + 0x00000000 0x86 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_Start_IT + 0x00000000 0xc0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_Abort + 0x00000000 0x7a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_Abort_IT + 0x00000000 0x82 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_PollForTransfer + 0x00000000 0x14e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_IRQHandler + 0x00000000 0x15e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_RegisterCallback + 0x00000000 0x90 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_UnRegisterCallback + 0x00000000 0xac ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_GetState + 0x00000000 0x1a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_GetError + 0x00000000 0x16 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.DMA_SetConfig + 0x00000000 0x5e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_info 0x00000000 0x6c7 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_abbrev 0x00000000 0x201 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_aranges + 0x00000000 0x80 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_rnglists + 0x00000000 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_line 0x00000000 0xbc1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_str 0x00000000 0x7f97d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_frame 0x00000000 0x204 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_SetConfigLine + 0x00000000 0x14c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_GetConfigLine + 0x00000000 0xf0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_ClearConfigLine + 0x00000000 0xc0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_RegisterCallback + 0x00000000 0x32 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_GetHandle + 0x00000000 0x26 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_IRQHandler + 0x00000000 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_GetPending + 0x00000000 0x40 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_ClearPending + 0x00000000 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_GenerateSWI + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_info 0x00000000 0x4ca ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_abbrev 0x00000000 0x1c7 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_aranges + 0x00000000 0x60 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_rnglists + 0x00000000 0x46 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_line 0x00000000 0x989 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_str 0x00000000 0x7f72e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_frame 0x00000000 0x174 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .bss.pFlash 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_Program + 0x00000000 0x5c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_Program_IT + 0x00000000 0x60 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_IRQHandler + 0x00000000 0x160 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_EndOfOperationCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_OperationErrorCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_Unlock + 0x00000000 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_Lock + 0x00000000 0x20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_OB_Unlock + 0x00000000 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_OB_Lock + 0x00000000 0x20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_OB_Launch + 0x00000000 0x24 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_GetError + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.FLASH_WaitForLastOperation + 0x00000000 0xac ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.FLASH_SetErrorCode + 0x00000000 0xcc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_info 0x00000000 0x46a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_abbrev 0x00000000 0x242 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_aranges + 0x00000000 0x80 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_rnglists + 0x00000000 0x5e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x19c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_line 0x00000000 0x987 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_str 0x00000000 0x7f7f7 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_frame 0x00000000 0x1d8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_Erase + 0x00000000 0xac ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_Erase_IT + 0x00000000 0x80 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBProgram + 0x00000000 0x108 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBGetConfig + 0x00000000 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_AdvOBProgram + 0x00000000 0x32 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_AdvOBGetConfig + 0x00000000 0x3c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_Unlock + 0x00000000 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_Lock + 0x00000000 0x20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_Erase + 0x00000000 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_Program + 0x00000000 0xd8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_RDPConfig + 0x00000000 0x88 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_BORConfig + 0x00000000 0x78 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_GetUser + 0x00000000 0x20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_GetRDP + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_GetBOR + 0x00000000 0x20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_WRPConfig + 0x00000000 0x9c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_WRPConfigWRP1OrPCROP1 + 0x00000000 0xc4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_WRPConfigWRP2OrPCROP2 + 0x00000000 0xc4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_WRPConfigWRP3 + 0x00000000 0xc4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_WRPConfigWRP4 + 0x00000000 0xd4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_UserConfig + 0x00000000 0x9c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_BootConfig + 0x00000000 0x78 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_FastProgramByte + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_FastProgramHalfWord + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_FastProgramWord + 0x00000000 0x4c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_ProgramByte + 0x00000000 0x3e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_ProgramHalfWord + 0x00000000 0x3e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_ProgramWord + 0x00000000 0x3c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_PageErase + 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_info 0x00000000 0xc8d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_abbrev 0x00000000 0x290 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_aranges + 0x00000000 0x110 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_rnglists + 0x00000000 0xd2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_line 0x00000000 0xf2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_str 0x00000000 0x7fc53 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_frame 0x00000000 0x470 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .RamFunc 0x00000000 0x534 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_info 0x00000000 0x623 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_abbrev 0x00000000 0x2b2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_aranges + 0x00000000 0x68 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_rnglists + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_line 0x00000000 0x945 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_str 0x00000000 0x7f880 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_frame 0x00000000 0x178 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_DeInit + 0x00000000 0x1e0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_ReadPin + 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_TogglePin + 0x00000000 0x32 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_LockPin + 0x00000000 0x4e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_EXTI_IRQHandler + 0x00000000 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_EXTI_Callback + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DeInit + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnableBkUpAccess + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DisableBkUpAccess + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_ConfigPVD + 0x00000000 0xbc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnablePVD + 0x00000000 0x34 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DisablePVD + 0x00000000 0x34 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnableWakeUpPin + 0x00000000 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DisableWakeUpPin + 0x00000000 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnterSLEEPMode + 0x00000000 0x4c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnterSTOPMode + 0x00000000 0x58 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnterSTANDBYMode + 0x00000000 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnableSleepOnExit + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DisableSleepOnExit + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnableSEVOnPend + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DisableSEVOnPend + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_PVD_IRQHandler + 0x00000000 0x24 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_PVDCallback + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_info 0x00000000 0x6de ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_abbrev 0x00000000 0x1f2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_aranges + 0x00000000 0xa0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_rnglists + 0x00000000 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x1b3 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_line 0x00000000 0x963 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_str 0x00000000 0x7f88c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_frame 0x00000000 0x274 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_GetVoltageRange + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableFastWakeUp + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableFastWakeUp + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableUltraLowPower + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableUltraLowPower + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableLowPowerRunMode + 0x00000000 0x5a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableLowPowerRunMode + 0x00000000 0x5c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_info 0x00000000 0x2e7 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_abbrev 0x00000000 0x152 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_aranges + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_rnglists + 0x00000000 0x37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_line 0x00000000 0x894 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_str 0x00000000 0x7f66b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_frame 0x00000000 0x120 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_DeInit + 0x00000000 0x114 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_MCOConfig + 0x00000000 0x6c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_EnableCSS + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_DisableCSS + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_GetHCLKFreq + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_GetPCLK1Freq + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_GetPCLK2Freq + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_GetOscConfig + 0x00000000 0x138 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_GetClockConfig + 0x00000000 0x60 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_NMI_IRQHandler + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_CSSCallback + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_PeriphCLKConfig + 0x00000000 0x214 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_GetPeriphCLKConfig + 0x00000000 0x5c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_GetPeriphCLKFreq + 0x00000000 0xd0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_EnableLSECSS + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_DisableLSECSS + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_EnableLSECSS_IT + 0x00000000 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_LSECSS_IRQHandler + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_LSECSS_Callback + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_info 0x00000000 0x3eb ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_abbrev 0x00000000 0x1c9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_aranges + 0x00000000 0x58 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_rnglists + 0x00000000 0x3f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_line 0x00000000 0x8ee ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_str 0x00000000 0x7f79b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_frame 0x00000000 0x120 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_DeInit + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_MspInit + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_MspDeInit + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Receive + 0x00000000 0x232 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TransmitReceive + 0x00000000 0x352 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Transmit_IT + 0x00000000 0x108 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Receive_IT + 0x00000000 0x130 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TransmitReceive_IT + 0x00000000 0x11c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Transmit_DMA + 0x00000000 0x164 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Receive_DMA + 0x00000000 0x188 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TransmitReceive_DMA + 0x00000000 0x1f8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Abort + 0x00000000 0x1d8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Abort_IT + 0x00000000 0x1f4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_DMAPause + 0x00000000 0x42 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_DMAResume + 0x00000000 0x42 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_DMAStop + 0x00000000 0x7e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_IRQHandler + 0x00000000 0x200 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TxCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_RxCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TxRxCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TxHalfCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_RxHalfCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TxRxHalfCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_ErrorCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_AbortCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_GetState + 0x00000000 0x1a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_GetError + 0x00000000 0x16 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMATransmitCplt + 0x00000000 0xa6 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAReceiveCplt + 0x00000000 0xa6 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMATransmitReceiveCplt + 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAHalfTransmitCplt + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAHalfReceiveCplt + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAHalfTransmitReceiveCplt + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAError + 0x00000000 0x40 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAAbortOnError + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMATxAbortCallback + 0x00000000 0xd4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMARxAbortCallback + 0x00000000 0xc0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_2linesRxISR_8BIT + 0x00000000 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_2linesTxISR_8BIT + 0x00000000 0x60 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_2linesRxISR_16BIT + 0x00000000 0x60 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_2linesTxISR_16BIT + 0x00000000 0x5e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_RxISR_8BIT + 0x00000000 0x4a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_RxISR_16BIT + 0x00000000 0x46 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_TxISR_8BIT + 0x00000000 0x46 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_TxISR_16BIT + 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_EndRxTransaction + 0x00000000 0xca ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_CloseRxTx_ISR + 0x00000000 0xe8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_CloseRx_ISR + 0x00000000 0x7e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_CloseTx_ISR + 0x00000000 0xc4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_AbortRx_ISR + 0x00000000 0x8c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_AbortTx_ISR + 0x00000000 0x3a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .text.exit 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .debug_frame 0x00000000 0x28 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.std 0x00000000 0x6c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.stdio_exit_handler + 0x00000000 0x18 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.cleanup_stdio + 0x00000000 0x40 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__fp_lock + 0x00000000 0x18 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__fp_unlock + 0x00000000 0x18 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.global_stdio_init.part.0 + 0x00000000 0x3c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__sfp_lock_acquire + 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__sfp_lock_release + 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__sfp 0x00000000 0xa4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__sinit 0x00000000 0x30 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__fp_lock_all + 0x00000000 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__fp_unlock_all + 0x00000000 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .data.__sglue 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .bss.__sf 0x00000000 0x138 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .bss.__stdio_exit_handler + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .debug_frame 0x00000000 0x144 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .text._fwalk_sglue + 0x00000000 0x3c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .debug_frame 0x00000000 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .text.__errno 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .debug_frame 0x00000000 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_init + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_init_recursive + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_close + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_close_recursive + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_acquire + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_acquire_recursive + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_try_acquire + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_try_acquire_recursive + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_release + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_release_recursive + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___arc4random_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___dd_hash_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___tz_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___env_recursive_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___malloc_recursive_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___at_quick_exit_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___atexit_recursive_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___sfp_recursive_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .debug_frame 0x00000000 0xb0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .data._impure_ptr + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .data._impure_data + 0x00000000 0x4c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .text.sbrk_aligned + 0x00000000 0x44 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .text._malloc_r + 0x00000000 0x100 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .bss.__malloc_sbrk_start + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .bss.__malloc_free_list + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .debug_frame 0x00000000 0x50 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .text.__sflush_r + 0x00000000 0x100 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .text._fflush_r + 0x00000000 0x50 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .text.fflush 0x00000000 0x28 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .debug_frame 0x00000000 0x5c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .text.__malloc_lock + 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .text.__malloc_unlock + 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .debug_frame 0x00000000 0x30 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text.__sread 0x00000000 0x22 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text.__seofread + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text.__swrite + 0x00000000 0x38 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text.__sseek 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text.__sclose + 0x00000000 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .debug_frame 0x00000000 0x88 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .text._lseek_r + 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .debug_frame 0x00000000 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .text._read_r 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .debug_frame 0x00000000 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .text._sbrk_r 0x00000000 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .debug_frame 0x00000000 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .text._write_r + 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .debug_frame 0x00000000 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .text._close_r + 0x00000000 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .debug_frame 0x00000000 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .text._reclaim_reent + 0x00000000 0xbc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .bss.errno 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .debug_frame 0x00000000 0x38 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .text._free_r 0x00000000 0x90 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .debug_frame 0x00000000 0x38 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + .ARM.extab 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .rodata 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .eh_frame 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + +Memory Configuration + +Name Origin Length Attributes +RAM 0x20000000 0x00014000 xrw +FLASH 0x08000000 0x00080000 xr +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o +LOAD ./Core/Src/main.o +LOAD ./Core/Src/stm32l1xx_hal_msp.o +LOAD ./Core/Src/stm32l1xx_it.o +LOAD ./Core/Src/syscalls.o +LOAD ./Core/Src/sysmem.o +LOAD ./Core/Src/system_stm32l1xx.o +LOAD ./Core/Startup/startup_stm32l152retx.o +LOAD ./Drivers/7Seg_MAX7219/max7219.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libm.a +END GROUP +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +END GROUP +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libnosys.a +END GROUP +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libnosys.a +END GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + 0x20014000 _estack = (ORIGIN (RAM) + LENGTH (RAM)) + 0x00000200 _Min_Heap_Size = 0x200 + 0x00000400 _Min_Stack_Size = 0x400 + +.isr_vector 0x08000000 0x13c + 0x08000000 . = ALIGN (0x4) + *(.isr_vector) + .isr_vector 0x08000000 0x13c ./Core/Startup/startup_stm32l152retx.o + 0x08000000 g_pfnVectors + 0x0800013c . = ALIGN (0x4) + +.text 0x0800013c 0x1f50 + 0x0800013c . = ALIGN (0x4) + *(.text) + .text 0x0800013c 0x40 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + .text 0x0800017c 0x30 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + 0x0800017c __aeabi_uldivmod + .text 0x080001ac 0x300 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + 0x080001ac __udivmoddi4 + .text 0x080004ac 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + 0x080004ac __aeabi_ldiv0 + 0x080004ac __aeabi_idiv0 + *(.text*) + .text.affiche 0x080004b0 0x60 ./Core/Src/main.o + 0x080004b0 affiche + .text.main 0x08000510 0x44 ./Core/Src/main.o + 0x08000510 main + .text.SystemClock_Config + 0x08000554 0x8c ./Core/Src/main.o + 0x08000554 SystemClock_Config + .text.MX_SPI1_Init + 0x080005e0 0x6c ./Core/Src/main.o + .text.MX_GPIO_Init + 0x0800064c 0x7c ./Core/Src/main.o + .text.Error_Handler + 0x080006c8 0xc ./Core/Src/main.o + 0x080006c8 Error_Handler + .text.HAL_MspInit + 0x080006d4 0x5c ./Core/Src/stm32l1xx_hal_msp.o + 0x080006d4 HAL_MspInit + .text.HAL_SPI_MspInit + 0x08000730 0x88 ./Core/Src/stm32l1xx_hal_msp.o + 0x08000730 HAL_SPI_MspInit + .text.NMI_Handler + 0x080007b8 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007b8 NMI_Handler + .text.HardFault_Handler + 0x080007c0 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007c0 HardFault_Handler + .text.MemManage_Handler + 0x080007c8 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007c8 MemManage_Handler + .text.BusFault_Handler + 0x080007d0 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007d0 BusFault_Handler + .text.UsageFault_Handler + 0x080007d8 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007d8 UsageFault_Handler + .text.SVC_Handler + 0x080007e0 0xc ./Core/Src/stm32l1xx_it.o + 0x080007e0 SVC_Handler + .text.DebugMon_Handler + 0x080007ec 0xc ./Core/Src/stm32l1xx_it.o + 0x080007ec DebugMon_Handler + .text.PendSV_Handler + 0x080007f8 0xc ./Core/Src/stm32l1xx_it.o + 0x080007f8 PendSV_Handler + .text.SysTick_Handler + 0x08000804 0xc ./Core/Src/stm32l1xx_it.o + 0x08000804 SysTick_Handler + .text.SystemInit + 0x08000810 0xc ./Core/Src/system_stm32l1xx.o + 0x08000810 SystemInit + .text.Reset_Handler + 0x0800081c 0x48 ./Core/Startup/startup_stm32l152retx.o + 0x0800081c Reset_Handler + .text.Default_Handler + 0x08000864 0x2 ./Core/Startup/startup_stm32l152retx.o + 0x08000864 DMA2_Channel3_IRQHandler + 0x08000864 EXTI2_IRQHandler + 0x08000864 COMP_ACQ_IRQHandler + 0x08000864 TIM10_IRQHandler + 0x08000864 USB_HP_IRQHandler + 0x08000864 TIM6_IRQHandler + 0x08000864 PVD_IRQHandler + 0x08000864 EXTI3_IRQHandler + 0x08000864 EXTI0_IRQHandler + 0x08000864 I2C2_EV_IRQHandler + 0x08000864 SPI1_IRQHandler + 0x08000864 USB_FS_WKUP_IRQHandler + 0x08000864 DMA2_Channel2_IRQHandler + 0x08000864 DMA1_Channel4_IRQHandler + 0x08000864 ADC1_IRQHandler + 0x08000864 USART3_IRQHandler + 0x08000864 DMA1_Channel7_IRQHandler + 0x08000864 LCD_IRQHandler + 0x08000864 UART5_IRQHandler + 0x08000864 TIM4_IRQHandler + 0x08000864 DMA2_Channel1_IRQHandler + 0x08000864 I2C1_EV_IRQHandler + 0x08000864 DMA1_Channel6_IRQHandler + 0x08000864 UART4_IRQHandler + 0x08000864 DMA2_Channel4_IRQHandler + 0x08000864 TIM3_IRQHandler + 0x08000864 RCC_IRQHandler + 0x08000864 DMA1_Channel1_IRQHandler + 0x08000864 Default_Handler + 0x08000864 EXTI15_10_IRQHandler + 0x08000864 TIM7_IRQHandler + 0x08000864 TIM5_IRQHandler + 0x08000864 EXTI9_5_IRQHandler + 0x08000864 TIM9_IRQHandler + 0x08000864 TAMPER_STAMP_IRQHandler + 0x08000864 RTC_WKUP_IRQHandler + 0x08000864 SPI2_IRQHandler + 0x08000864 DMA2_Channel5_IRQHandler + 0x08000864 DMA1_Channel5_IRQHandler + 0x08000864 USB_LP_IRQHandler + 0x08000864 EXTI4_IRQHandler + 0x08000864 DMA1_Channel3_IRQHandler + 0x08000864 COMP_IRQHandler + 0x08000864 WWDG_IRQHandler + 0x08000864 TIM2_IRQHandler + 0x08000864 DAC_IRQHandler + 0x08000864 EXTI1_IRQHandler + 0x08000864 TIM11_IRQHandler + 0x08000864 USART2_IRQHandler + 0x08000864 I2C2_ER_IRQHandler + 0x08000864 DMA1_Channel2_IRQHandler + 0x08000864 FLASH_IRQHandler + 0x08000864 USART1_IRQHandler + 0x08000864 SPI3_IRQHandler + 0x08000864 I2C1_ER_IRQHandler + 0x08000864 RTC_Alarm_IRQHandler + .text.MAX7219_Init + 0x08000866 0x2a ./Drivers/7Seg_MAX7219/max7219.o + 0x08000866 MAX7219_Init + .text.MAX7219_ShutdownStop + 0x08000890 0x10 ./Drivers/7Seg_MAX7219/max7219.o + 0x08000890 MAX7219_ShutdownStop + .text.MAX7219_DisplayTestStop + 0x080008a0 0x10 ./Drivers/7Seg_MAX7219/max7219.o + 0x080008a0 MAX7219_DisplayTestStop + .text.MAX7219_SetBrightness + 0x080008b0 0x24 ./Drivers/7Seg_MAX7219/max7219.o + 0x080008b0 MAX7219_SetBrightness + .text.MAX7219_Clear + 0x080008d4 0x2c ./Drivers/7Seg_MAX7219/max7219.o + 0x080008d4 MAX7219_Clear + .text.MAX7219_DisplayChar + 0x08000900 0x2c ./Drivers/7Seg_MAX7219/max7219.o + 0x08000900 MAX7219_DisplayChar + .text.MAX7219_Write + 0x0800092c 0x3c ./Drivers/7Seg_MAX7219/max7219.o + 0x0800092c MAX7219_Write + .text.MAX7219_SendByte + 0x08000968 0x24 ./Drivers/7Seg_MAX7219/max7219.o + .text.HAL_Init + 0x0800098c 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x0800098c HAL_Init + .text.HAL_InitTick + 0x080009bc 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x080009bc HAL_InitTick + .text.HAL_IncTick + 0x08000a30 0x24 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000a30 HAL_IncTick + .text.HAL_GetTick + 0x08000a54 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000a54 HAL_GetTick + .text.HAL_Delay + 0x08000a68 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000a68 HAL_Delay + .text.__NVIC_SetPriorityGrouping + 0x08000aac 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_GetPriorityGrouping + 0x08000af4 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_SetPriority + 0x08000b10 0x54 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.NVIC_EncodePriority + 0x08000b64 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.SysTick_Config + 0x08000bc8 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_SetPriorityGrouping + 0x08000c0c 0x16 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000c0c HAL_NVIC_SetPriorityGrouping + .text.HAL_NVIC_SetPriority + 0x08000c22 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000c22 HAL_NVIC_SetPriority + .text.HAL_SYSTICK_Config + 0x08000c5a 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000c5a HAL_SYSTICK_Config + *fill* 0x08000c72 0x2 + .text.HAL_GPIO_Init + 0x08000c74 0x320 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + 0x08000c74 HAL_GPIO_Init + .text.HAL_GPIO_WritePin + 0x08000f94 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + 0x08000f94 HAL_GPIO_WritePin + .text.HAL_RCC_OscConfig + 0x08000fc4 0x660 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x08000fc4 HAL_RCC_OscConfig + .text.HAL_RCC_ClockConfig + 0x08001624 0x268 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x08001624 HAL_RCC_ClockConfig + .text.HAL_RCC_GetSysClockFreq + 0x0800188c 0x17c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x0800188c HAL_RCC_GetSysClockFreq + .text.RCC_SetFlashLatencyFromMSIRange + 0x08001a08 0xc0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_SPI_Init + 0x08001ac8 0x112 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + 0x08001ac8 HAL_SPI_Init + .text.HAL_SPI_Transmit + 0x08001bda 0x288 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + 0x08001bda HAL_SPI_Transmit + *fill* 0x08001e62 0x2 + .text.SPI_WaitFlagStateUntilTimeout + 0x08001e64 0x110 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_EndRxTxTransaction + 0x08001f74 0xa8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.memset 0x0800201c 0x10 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + 0x0800201c memset + .text.__libc_init_array + 0x0800202c 0x48 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + 0x0800202c __libc_init_array + *(.glue_7) + .glue_7 0x08002074 0x0 linker stubs + *(.glue_7t) + .glue_7t 0x08002074 0x0 linker stubs + *(.eh_frame) + .eh_frame 0x08002074 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + *(.init) + .init 0x08002074 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + 0x08002074 _init + .init 0x08002078 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + *(.fini) + .fini 0x08002080 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + 0x08002080 _fini + .fini 0x08002084 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + 0x0800208c . = ALIGN (0x4) + 0x0800208c _etext = . + +.vfp11_veneer 0x0800208c 0x0 + .vfp11_veneer 0x0800208c 0x0 linker stubs + +.v4_bx 0x0800208c 0x0 + .v4_bx 0x0800208c 0x0 linker stubs + +.iplt 0x0800208c 0x0 + .iplt 0x0800208c 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + +.rodata 0x0800208c 0x2c + 0x0800208c . = ALIGN (0x4) + *(.rodata) + *(.rodata*) + .rodata.PLLMulTable + 0x0800208c 0x9 ./Core/Src/system_stm32l1xx.o + 0x0800208c PLLMulTable + *fill* 0x08002095 0x3 + .rodata.AHBPrescTable + 0x08002098 0x10 ./Core/Src/system_stm32l1xx.o + 0x08002098 AHBPrescTable + .rodata.conv_7seg + 0x080020a8 0x10 ./Drivers/7Seg_MAX7219/max7219.o + 0x080020a8 conv_7seg + 0x080020b8 . = ALIGN (0x4) + +.ARM.extab 0x080020b8 0x0 + 0x080020b8 . = ALIGN (0x4) + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x080020b8 . = ALIGN (0x4) + +.ARM 0x080020b8 0x8 + 0x080020b8 . = ALIGN (0x4) + 0x080020b8 __exidx_start = . + *(.ARM.exidx*) + .ARM.exidx 0x080020b8 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + 0x080020c0 __exidx_end = . + 0x080020c0 . = ALIGN (0x4) + +.preinit_array 0x080020c0 0x0 + 0x080020c0 . = ALIGN (0x4) + 0x080020c0 PROVIDE (__preinit_array_start = .) + *(.preinit_array*) + 0x080020c0 PROVIDE (__preinit_array_end = .) + 0x080020c0 . = ALIGN (0x4) + +.init_array 0x080020c0 0x4 + 0x080020c0 . = ALIGN (0x4) + 0x080020c0 PROVIDE (__init_array_start = .) + *(SORT_BY_NAME(.init_array.*)) + *(.init_array*) + .init_array 0x080020c0 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + 0x080020c4 PROVIDE (__init_array_end = .) + 0x080020c4 . = ALIGN (0x4) + +.fini_array 0x080020c4 0x4 + 0x080020c4 . = ALIGN (0x4) + [!provide] PROVIDE (__fini_array_start = .) + *(SORT_BY_NAME(.fini_array.*)) + *(.fini_array*) + .fini_array 0x080020c4 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + [!provide] PROVIDE (__fini_array_end = .) + 0x080020c8 . = ALIGN (0x4) + 0x080020c8 _sidata = LOADADDR (.data) + +.rel.dyn 0x080020c8 0x0 + .rel.iplt 0x080020c8 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + +.data 0x20000000 0xc load address 0x080020c8 + 0x20000000 . = ALIGN (0x4) + 0x20000000 _sdata = . + *(.data) + *(.data*) + .data.SystemCoreClock + 0x20000000 0x4 ./Core/Src/system_stm32l1xx.o + 0x20000000 SystemCoreClock + .data.uwTickPrio + 0x20000004 0x4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x20000004 uwTickPrio + .data.uwTickFreq + 0x20000008 0x4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x20000008 uwTickFreq + *(.RamFunc) + *(.RamFunc*) + 0x2000000c . = ALIGN (0x4) + 0x2000000c _edata = . + +.igot.plt 0x2000000c 0x0 load address 0x080020d4 + .igot.plt 0x2000000c 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + 0x2000000c . = ALIGN (0x4) + +.bss 0x2000000c 0x78 load address 0x080020d4 + 0x2000000c _sbss = . + 0x2000000c __bss_start__ = _sbss + *(.bss) + .bss 0x2000000c 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + *(.bss*) + .bss.hspi1 0x20000028 0x58 ./Core/Src/main.o + 0x20000028 hspi1 + .bss.uwTick 0x20000080 0x4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x20000080 uwTick + *(COMMON) + 0x20000084 . = ALIGN (0x4) + 0x20000084 _ebss = . + 0x20000084 __bss_end__ = _ebss + +._user_heap_stack + 0x20000084 0x604 load address 0x080020d4 + 0x20000088 . = ALIGN (0x8) + *fill* 0x20000084 0x4 + [!provide] PROVIDE (end = .) + 0x20000088 PROVIDE (_end = .) + 0x20000288 . = (. + _Min_Heap_Size) + *fill* 0x20000088 0x200 + 0x20000688 . = (. + _Min_Stack_Size) + *fill* 0x20000288 0x400 + 0x20000688 . = ALIGN (0x8) + +/DISCARD/ + libc.a(*) + libm.a(*) + libgcc.a(*) + +.ARM.attributes + 0x00000000 0x29 + *(.ARM.attributes) + .ARM.attributes + 0x00000000 0x1d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + .ARM.attributes + 0x0000001d 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + .ARM.attributes + 0x0000004a 0x2d ./Core/Src/main.o + .ARM.attributes + 0x00000077 0x2d ./Core/Src/stm32l1xx_hal_msp.o + .ARM.attributes + 0x000000a4 0x2d ./Core/Src/stm32l1xx_it.o + .ARM.attributes + 0x000000d1 0x2d ./Core/Src/system_stm32l1xx.o + .ARM.attributes + 0x000000fe 0x21 ./Core/Startup/startup_stm32l152retx.o + .ARM.attributes + 0x0000011f 0x2d ./Drivers/7Seg_MAX7219/max7219.o + .ARM.attributes + 0x0000014c 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .ARM.attributes + 0x00000179 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .ARM.attributes + 0x000001a6 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .ARM.attributes + 0x000001d3 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .ARM.attributes + 0x00000200 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .ARM.attributes + 0x0000022d 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .ARM.attributes + 0x0000025a 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .ARM.attributes + 0x00000287 0x1d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + .ARM.attributes + 0x000002a4 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + .ARM.attributes + 0x000002d1 0x1d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + .ARM.attributes + 0x000002ee 0x1d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o +OUTPUT(TP2_INIT_DISPLAY.elf elf32-littlearm) +LOAD linker stubs +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libm.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a + +.debug_info 0x00000000 0x573e + .debug_info 0x00000000 0xb4f ./Core/Src/main.o + .debug_info 0x00000b4f 0x828 ./Core/Src/stm32l1xx_hal_msp.o + .debug_info 0x00001377 0x113 ./Core/Src/stm32l1xx_it.o + .debug_info 0x0000148a 0x27c ./Core/Src/system_stm32l1xx.o + .debug_info 0x00001706 0x30 ./Core/Startup/startup_stm32l152retx.o + .debug_info 0x00001736 0x80e ./Drivers/7Seg_MAX7219/max7219.o + .debug_info 0x00001f44 0x6ef ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_info 0x00002633 0xce5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_info 0x00003318 0x5b2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_info 0x000038ca 0x99b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_info 0x00004265 0x14d9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_abbrev 0x00000000 0x145f + .debug_abbrev 0x00000000 0x27f ./Core/Src/main.o + .debug_abbrev 0x0000027f 0x1ad ./Core/Src/stm32l1xx_hal_msp.o + .debug_abbrev 0x0000042c 0x73 ./Core/Src/stm32l1xx_it.o + .debug_abbrev 0x0000049f 0x11c ./Core/Src/system_stm32l1xx.o + .debug_abbrev 0x000005bb 0x24 ./Core/Startup/startup_stm32l152retx.o + .debug_abbrev 0x000005df 0x1e9 ./Drivers/7Seg_MAX7219/max7219.o + .debug_abbrev 0x000007c8 0x275 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_abbrev 0x00000a3d 0x31c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_abbrev 0x00000d59 0x1d4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_abbrev 0x00000f2d 0x2b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_abbrev 0x000011e5 0x27a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_aranges 0x00000000 0x660 + .debug_aranges + 0x00000000 0x48 ./Core/Src/main.o + .debug_aranges + 0x00000048 0x30 ./Core/Src/stm32l1xx_hal_msp.o + .debug_aranges + 0x00000078 0x60 ./Core/Src/stm32l1xx_it.o + .debug_aranges + 0x000000d8 0x28 ./Core/Src/system_stm32l1xx.o + .debug_aranges + 0x00000100 0x28 ./Core/Startup/startup_stm32l152retx.o + .debug_aranges + 0x00000128 0x78 ./Drivers/7Seg_MAX7219/max7219.o + .debug_aranges + 0x000001a0 0xe0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_aranges + 0x00000280 0x128 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_aranges + 0x000003a8 0x58 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_aranges + 0x00000400 0x90 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_aranges + 0x00000490 0x1d0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_rnglists + 0x00000000 0x4b4 + .debug_rnglists + 0x00000000 0x32 ./Core/Src/main.o + .debug_rnglists + 0x00000032 0x20 ./Core/Src/stm32l1xx_hal_msp.o + .debug_rnglists + 0x00000052 0x43 ./Core/Src/stm32l1xx_it.o + .debug_rnglists + 0x00000095 0x1a ./Core/Src/system_stm32l1xx.o + .debug_rnglists + 0x000000af 0x19 ./Core/Startup/startup_stm32l152retx.o + .debug_rnglists + 0x000000c8 0x55 ./Drivers/7Seg_MAX7219/max7219.o + .debug_rnglists + 0x0000011d 0xa3 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_rnglists + 0x000001c0 0xd9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_rnglists + 0x00000299 0x3f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_rnglists + 0x000002d8 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_rnglists + 0x00000345 0x16f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_macro 0x00000000 0x1499e + .debug_macro 0x00000000 0x1b4 ./Core/Src/main.o + .debug_macro 0x000001b4 0xacc ./Core/Src/main.o + .debug_macro 0x00000c80 0x109 ./Core/Src/main.o + .debug_macro 0x00000d89 0x2e ./Core/Src/main.o + .debug_macro 0x00000db7 0x22 ./Core/Src/main.o + .debug_macro 0x00000dd9 0x22 ./Core/Src/main.o + .debug_macro 0x00000dfb 0x8e ./Core/Src/main.o + .debug_macro 0x00000e89 0x51 ./Core/Src/main.o + .debug_macro 0x00000eda 0x103 ./Core/Src/main.o + .debug_macro 0x00000fdd 0x6a ./Core/Src/main.o + .debug_macro 0x00001047 0x1df ./Core/Src/main.o + .debug_macro 0x00001226 0x1c ./Core/Src/main.o + .debug_macro 0x00001242 0x22 ./Core/Src/main.o + .debug_macro 0x00001264 0xbd ./Core/Src/main.o + .debug_macro 0x00001321 0xe49 ./Core/Src/main.o + .debug_macro 0x0000216a 0x11f ./Core/Src/main.o + .debug_macro 0x00002289 0xb7a1 ./Core/Src/main.o + .debug_macro 0x0000da2a 0x6d ./Core/Src/main.o + .debug_macro 0x0000da97 0x34e1 ./Core/Src/main.o + .debug_macro 0x00010f78 0x190 ./Core/Src/main.o + .debug_macro 0x00011108 0x5b ./Core/Src/main.o + .debug_macro 0x00011163 0xe37 ./Core/Src/main.o + .debug_macro 0x00011f9a 0x35b ./Core/Src/main.o + .debug_macro 0x000122f5 0x1b8 ./Core/Src/main.o + .debug_macro 0x000124ad 0xc5 ./Core/Src/main.o + .debug_macro 0x00012572 0x21e ./Core/Src/main.o + .debug_macro 0x00012790 0x236 ./Core/Src/main.o + .debug_macro 0x000129c6 0x115 ./Core/Src/main.o + .debug_macro 0x00012adb 0x567 ./Core/Src/main.o + .debug_macro 0x00013042 0x1e9 ./Core/Src/main.o + .debug_macro 0x0001322b 0x22 ./Core/Src/main.o + .debug_macro 0x0001324d 0x225 ./Core/Src/main.o + .debug_macro 0x00013472 0x170 ./Core/Src/main.o + .debug_macro 0x000135e2 0x492 ./Core/Src/main.o + .debug_macro 0x00013a74 0x10 ./Core/Src/main.o + .debug_macro 0x00013a84 0x1a5 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00013c29 0x1af ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00013dd8 0x19b ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00013f73 0x1d8 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x0001414b 0x1bf ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x0001430a 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x000144a5 0x1a2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00014647 0x1ad ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x000147f4 0x1aa ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_line 0x00000000 0x6fc2 + .debug_line 0x00000000 0x7c4 ./Core/Src/main.o + .debug_line 0x000007c4 0x6dd ./Core/Src/stm32l1xx_hal_msp.o + .debug_line 0x00000ea1 0x73e ./Core/Src/stm32l1xx_it.o + .debug_line 0x000015df 0x730 ./Core/Src/system_stm32l1xx.o + .debug_line 0x00001d0f 0x79 ./Core/Startup/startup_stm32l152retx.o + .debug_line 0x00001d88 0x7de ./Drivers/7Seg_MAX7219/max7219.o + .debug_line 0x00002566 0x95b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_line 0x00002ec1 0xc2a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_line 0x00003aeb 0x99f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_line 0x0000448a 0xf1e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_line 0x000053a8 0x1c1a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_str 0x00000000 0x81143 + .debug_str 0x00000000 0x81143 ./Core/Src/main.o + 0x7fc9a (size before relaxing) + .debug_str 0x00081143 0x7fa10 ./Core/Src/stm32l1xx_hal_msp.o + .debug_str 0x00081143 0x7f5a7 ./Core/Src/stm32l1xx_it.o + .debug_str 0x00081143 0x7f5f8 ./Core/Src/system_stm32l1xx.o + .debug_str 0x00081143 0x8c ./Core/Startup/startup_stm32l152retx.o + .debug_str 0x00081143 0x7fb54 ./Drivers/7Seg_MAX7219/max7219.o + .debug_str 0x00081143 0x7fd20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_str 0x00081143 0x7fe2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_str 0x00081143 0x7f78b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_str 0x00081143 0x7fab4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_str 0x00081143 0x7ff1a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.comment 0x00000000 0x43 + .comment 0x00000000 0x43 ./Core/Src/main.o + 0x44 (size before relaxing) + .comment 0x00000043 0x44 ./Core/Src/stm32l1xx_hal_msp.o + .comment 0x00000043 0x44 ./Core/Src/stm32l1xx_it.o + .comment 0x00000043 0x44 ./Core/Src/system_stm32l1xx.o + .comment 0x00000043 0x44 ./Drivers/7Seg_MAX7219/max7219.o + .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_frame 0x00000000 0x18ac + .debug_frame 0x00000000 0xd0 ./Core/Src/main.o + .debug_frame 0x000000d0 0x80 ./Core/Src/stm32l1xx_hal_msp.o + .debug_frame 0x00000150 0x104 ./Core/Src/stm32l1xx_it.o + .debug_frame 0x00000254 0x58 ./Core/Src/system_stm32l1xx.o + .debug_frame 0x000002ac 0x198 ./Drivers/7Seg_MAX7219/max7219.o + .debug_frame 0x00000444 0x33c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_frame 0x00000780 0x4e8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_frame 0x00000c68 0x14c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_frame 0x00000db4 0x224 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_frame 0x00000fd8 0x828 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_frame 0x00001800 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .debug_frame 0x00001820 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .debug_frame 0x0000184c 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + .debug_frame 0x00001878 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + +.debug_line_str + 0x00000000 0x70 + .debug_line_str + 0x00000000 0x70 ./Core/Startup/startup_stm32l152retx.o diff --git a/TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.elf b/TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.elf new file mode 100755 index 0000000000000000000000000000000000000000..4e1ff622cbae908b4883a91aa518d8758faac3ee GIT binary patch literal 704176 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õ~Eu8%6OKY$04 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 O_lKLzHHrjIU;hVdr^h}3 literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.list b/TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.list new file mode 100644 index 0000000..e9f61c3 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.list @@ -0,0 +1,5427 @@ + +TP2_ISEN_DISPLAY.elf: file format elf32-littlearm + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .isr_vector 0000013c 08000000 08000000 00001000 2**0 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 1 .text 00001f28 0800013c 0800013c 0000113c 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rodata 0000001c 08002064 08002064 00003064 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 3 .ARM.extab 00000000 08002080 08002080 0000400c 2**0 + CONTENTS, READONLY + 4 .ARM 00000008 08002080 08002080 00003080 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 5 .preinit_array 00000000 08002088 08002088 0000400c 2**0 + CONTENTS, ALLOC, LOAD, DATA + 6 .init_array 00000004 08002088 08002088 00003088 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 7 .fini_array 00000004 0800208c 0800208c 0000308c 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 8 .data 0000000c 20000000 08002090 00004000 2**2 + CONTENTS, ALLOC, LOAD, DATA + 9 .bss 00000078 2000000c 0800209c 0000400c 2**2 + ALLOC + 10 ._user_heap_stack 00000604 20000084 0800209c 00004084 2**0 + ALLOC + 11 .ARM.attributes 00000029 00000000 00000000 0000400c 2**0 + CONTENTS, READONLY + 12 .debug_info 000057a5 00000000 00000000 00004035 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 13 .debug_abbrev 0000148d 00000000 00000000 000097da 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 14 .debug_aranges 00000660 00000000 00000000 0000ac68 2**3 + CONTENTS, READONLY, DEBUGGING, OCTETS + 15 .debug_rnglists 000004b5 00000000 00000000 0000b2c8 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 16 .debug_macro 00014998 00000000 00000000 0000b77d 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 17 .debug_line 00006fed 00000000 00000000 00020115 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 18 .debug_str 0008118d 00000000 00000000 00027102 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + 19 .comment 00000043 00000000 00000000 000a828f 2**0 + CONTENTS, READONLY + 20 .debug_frame 000018a4 00000000 00000000 000a82d4 2**2 + CONTENTS, READONLY, DEBUGGING, OCTETS + 21 .debug_line_str 00000070 00000000 00000000 000a9b78 2**0 + CONTENTS, READONLY, DEBUGGING, OCTETS + +Disassembly of section .text: + +0800013c <__do_global_dtors_aux>: + 800013c: b510 push {r4, lr} + 800013e: 4c05 ldr r4, [pc, #20] @ (8000154 <__do_global_dtors_aux+0x18>) + 8000140: 7823 ldrb r3, [r4, #0] + 8000142: b933 cbnz r3, 8000152 <__do_global_dtors_aux+0x16> + 8000144: 4b04 ldr r3, [pc, #16] @ (8000158 <__do_global_dtors_aux+0x1c>) + 8000146: b113 cbz r3, 800014e <__do_global_dtors_aux+0x12> + 8000148: 4804 ldr r0, [pc, #16] @ (800015c <__do_global_dtors_aux+0x20>) + 800014a: f3af 8000 nop.w + 800014e: 2301 movs r3, #1 + 8000150: 7023 strb r3, [r4, #0] + 8000152: bd10 pop {r4, pc} + 8000154: 2000000c .word 0x2000000c + 8000158: 00000000 .word 0x00000000 + 800015c: 0800204c .word 0x0800204c + +08000160 : + 8000160: b508 push {r3, lr} + 8000162: 4b03 ldr r3, [pc, #12] @ (8000170 ) + 8000164: b11b cbz r3, 800016e + 8000166: 4903 ldr r1, [pc, #12] @ (8000174 ) + 8000168: 4803 ldr r0, [pc, #12] @ (8000178 ) + 800016a: f3af 8000 nop.w + 800016e: bd08 pop {r3, pc} + 8000170: 00000000 .word 0x00000000 + 8000174: 20000010 .word 0x20000010 + 8000178: 0800204c .word 0x0800204c + +0800017c <__aeabi_uldivmod>: + 800017c: b953 cbnz r3, 8000194 <__aeabi_uldivmod+0x18> + 800017e: b94a cbnz r2, 8000194 <__aeabi_uldivmod+0x18> + 8000180: 2900 cmp r1, #0 + 8000182: bf08 it eq + 8000184: 2800 cmpeq r0, #0 + 8000186: bf1c itt ne + 8000188: f04f 31ff movne.w r1, #4294967295 @ 0xffffffff + 800018c: f04f 30ff movne.w r0, #4294967295 @ 0xffffffff + 8000190: f000 b98c b.w 80004ac <__aeabi_idiv0> + 8000194: f1ad 0c08 sub.w ip, sp, #8 + 8000198: e96d ce04 strd ip, lr, [sp, #-16]! + 800019c: f000 f806 bl 80001ac <__udivmoddi4> + 80001a0: f8dd e004 ldr.w lr, [sp, #4] + 80001a4: e9dd 2302 ldrd r2, r3, [sp, #8] + 80001a8: b004 add sp, #16 + 80001aa: 4770 bx lr + +080001ac <__udivmoddi4>: + 80001ac: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 80001b0: 9d08 ldr r5, [sp, #32] + 80001b2: 468e mov lr, r1 + 80001b4: 4604 mov r4, r0 + 80001b6: 4688 mov r8, r1 + 80001b8: 2b00 cmp r3, #0 + 80001ba: d14a bne.n 8000252 <__udivmoddi4+0xa6> + 80001bc: 428a cmp r2, r1 + 80001be: 4617 mov r7, r2 + 80001c0: d962 bls.n 8000288 <__udivmoddi4+0xdc> + 80001c2: fab2 f682 clz r6, r2 + 80001c6: b14e cbz r6, 80001dc <__udivmoddi4+0x30> + 80001c8: f1c6 0320 rsb r3, r6, #32 + 80001cc: fa01 f806 lsl.w r8, r1, r6 + 80001d0: fa20 f303 lsr.w r3, r0, r3 + 80001d4: 40b7 lsls r7, r6 + 80001d6: ea43 0808 orr.w r8, r3, r8 + 80001da: 40b4 lsls r4, r6 + 80001dc: ea4f 4e17 mov.w lr, r7, lsr #16 + 80001e0: fbb8 f1fe udiv r1, r8, lr + 80001e4: fa1f fc87 uxth.w ip, r7 + 80001e8: fb0e 8811 mls r8, lr, r1, r8 + 80001ec: fb01 f20c mul.w r2, r1, ip + 80001f0: 0c23 lsrs r3, r4, #16 + 80001f2: ea43 4308 orr.w r3, r3, r8, lsl #16 + 80001f6: 429a cmp r2, r3 + 80001f8: d909 bls.n 800020e <__udivmoddi4+0x62> + 80001fa: 18fb adds r3, r7, r3 + 80001fc: f101 30ff add.w r0, r1, #4294967295 @ 0xffffffff + 8000200: f080 80eb bcs.w 80003da <__udivmoddi4+0x22e> + 8000204: 429a cmp r2, r3 + 8000206: f240 80e8 bls.w 80003da <__udivmoddi4+0x22e> + 800020a: 3902 subs r1, #2 + 800020c: 443b add r3, r7 + 800020e: 1a9a subs r2, r3, r2 + 8000210: fbb2 f0fe udiv r0, r2, lr + 8000214: fb0e 2210 mls r2, lr, r0, r2 + 8000218: fb00 fc0c mul.w ip, r0, ip + 800021c: b2a3 uxth r3, r4 + 800021e: ea43 4302 orr.w r3, r3, r2, lsl #16 + 8000222: 459c cmp ip, r3 + 8000224: d909 bls.n 800023a <__udivmoddi4+0x8e> + 8000226: 18fb adds r3, r7, r3 + 8000228: f100 32ff add.w r2, r0, #4294967295 @ 0xffffffff + 800022c: f080 80d7 bcs.w 80003de <__udivmoddi4+0x232> + 8000230: 459c cmp ip, r3 + 8000232: f240 80d4 bls.w 80003de <__udivmoddi4+0x232> + 8000236: 443b add r3, r7 + 8000238: 3802 subs r0, #2 + 800023a: ea40 4001 orr.w r0, r0, r1, lsl #16 + 800023e: 2100 movs r1, #0 + 8000240: eba3 030c sub.w r3, r3, ip + 8000244: b11d cbz r5, 800024e <__udivmoddi4+0xa2> + 8000246: 2200 movs r2, #0 + 8000248: 40f3 lsrs r3, r6 + 800024a: e9c5 3200 strd r3, r2, [r5] + 800024e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8000252: 428b cmp r3, r1 + 8000254: d905 bls.n 8000262 <__udivmoddi4+0xb6> + 8000256: b10d cbz r5, 800025c <__udivmoddi4+0xb0> + 8000258: e9c5 0100 strd r0, r1, [r5] + 800025c: 2100 movs r1, #0 + 800025e: 4608 mov r0, r1 + 8000260: e7f5 b.n 800024e <__udivmoddi4+0xa2> + 8000262: fab3 f183 clz r1, r3 + 8000266: 2900 cmp r1, #0 + 8000268: d146 bne.n 80002f8 <__udivmoddi4+0x14c> + 800026a: 4573 cmp r3, lr + 800026c: d302 bcc.n 8000274 <__udivmoddi4+0xc8> + 800026e: 4282 cmp r2, r0 + 8000270: f200 8108 bhi.w 8000484 <__udivmoddi4+0x2d8> + 8000274: 1a84 subs r4, r0, r2 + 8000276: eb6e 0203 sbc.w r2, lr, r3 + 800027a: 2001 movs r0, #1 + 800027c: 4690 mov r8, r2 + 800027e: 2d00 cmp r5, #0 + 8000280: d0e5 beq.n 800024e <__udivmoddi4+0xa2> + 8000282: e9c5 4800 strd r4, r8, [r5] + 8000286: e7e2 b.n 800024e <__udivmoddi4+0xa2> + 8000288: 2a00 cmp r2, #0 + 800028a: f000 8091 beq.w 80003b0 <__udivmoddi4+0x204> + 800028e: fab2 f682 clz r6, r2 + 8000292: 2e00 cmp r6, #0 + 8000294: f040 80a5 bne.w 80003e2 <__udivmoddi4+0x236> + 8000298: 1a8a subs r2, r1, r2 + 800029a: 2101 movs r1, #1 + 800029c: 0c03 lsrs r3, r0, #16 + 800029e: ea4f 4e17 mov.w lr, r7, lsr #16 + 80002a2: b280 uxth r0, r0 + 80002a4: b2bc uxth r4, r7 + 80002a6: fbb2 fcfe udiv ip, r2, lr + 80002aa: fb0e 221c mls r2, lr, ip, r2 + 80002ae: ea43 4302 orr.w r3, r3, r2, lsl #16 + 80002b2: fb04 f20c mul.w r2, r4, ip + 80002b6: 429a cmp r2, r3 + 80002b8: d907 bls.n 80002ca <__udivmoddi4+0x11e> + 80002ba: 18fb adds r3, r7, r3 + 80002bc: f10c 38ff add.w r8, ip, #4294967295 @ 0xffffffff + 80002c0: d202 bcs.n 80002c8 <__udivmoddi4+0x11c> + 80002c2: 429a cmp r2, r3 + 80002c4: f200 80e3 bhi.w 800048e <__udivmoddi4+0x2e2> + 80002c8: 46c4 mov ip, r8 + 80002ca: 1a9b subs r3, r3, r2 + 80002cc: fbb3 f2fe udiv r2, r3, lr + 80002d0: fb0e 3312 mls r3, lr, r2, r3 + 80002d4: fb02 f404 mul.w r4, r2, r4 + 80002d8: ea40 4303 orr.w r3, r0, r3, lsl #16 + 80002dc: 429c cmp r4, r3 + 80002de: d907 bls.n 80002f0 <__udivmoddi4+0x144> + 80002e0: 18fb adds r3, r7, r3 + 80002e2: f102 30ff add.w r0, r2, #4294967295 @ 0xffffffff + 80002e6: d202 bcs.n 80002ee <__udivmoddi4+0x142> + 80002e8: 429c cmp r4, r3 + 80002ea: f200 80cd bhi.w 8000488 <__udivmoddi4+0x2dc> + 80002ee: 4602 mov r2, r0 + 80002f0: 1b1b subs r3, r3, r4 + 80002f2: ea42 400c orr.w r0, r2, ip, lsl #16 + 80002f6: e7a5 b.n 8000244 <__udivmoddi4+0x98> + 80002f8: f1c1 0620 rsb r6, r1, #32 + 80002fc: 408b lsls r3, r1 + 80002fe: fa22 f706 lsr.w r7, r2, r6 + 8000302: 431f orrs r7, r3 + 8000304: fa2e fa06 lsr.w sl, lr, r6 + 8000308: ea4f 4917 mov.w r9, r7, lsr #16 + 800030c: fbba f8f9 udiv r8, sl, r9 + 8000310: fa0e fe01 lsl.w lr, lr, r1 + 8000314: fa20 f306 lsr.w r3, r0, r6 + 8000318: fb09 aa18 mls sl, r9, r8, sl + 800031c: fa1f fc87 uxth.w ip, r7 + 8000320: ea43 030e orr.w r3, r3, lr + 8000324: fa00 fe01 lsl.w lr, r0, r1 + 8000328: fb08 f00c mul.w r0, r8, ip + 800032c: 0c1c lsrs r4, r3, #16 + 800032e: ea44 440a orr.w r4, r4, sl, lsl #16 + 8000332: 42a0 cmp r0, r4 + 8000334: fa02 f201 lsl.w r2, r2, r1 + 8000338: d90a bls.n 8000350 <__udivmoddi4+0x1a4> + 800033a: 193c adds r4, r7, r4 + 800033c: f108 3aff add.w sl, r8, #4294967295 @ 0xffffffff + 8000340: f080 809e bcs.w 8000480 <__udivmoddi4+0x2d4> + 8000344: 42a0 cmp r0, r4 + 8000346: f240 809b bls.w 8000480 <__udivmoddi4+0x2d4> + 800034a: f1a8 0802 sub.w r8, r8, #2 + 800034e: 443c add r4, r7 + 8000350: 1a24 subs r4, r4, r0 + 8000352: b298 uxth r0, r3 + 8000354: fbb4 f3f9 udiv r3, r4, r9 + 8000358: fb09 4413 mls r4, r9, r3, r4 + 800035c: fb03 fc0c mul.w ip, r3, ip + 8000360: ea40 4404 orr.w r4, r0, r4, lsl #16 + 8000364: 45a4 cmp ip, r4 + 8000366: d909 bls.n 800037c <__udivmoddi4+0x1d0> + 8000368: 193c adds r4, r7, r4 + 800036a: f103 30ff add.w r0, r3, #4294967295 @ 0xffffffff + 800036e: f080 8085 bcs.w 800047c <__udivmoddi4+0x2d0> + 8000372: 45a4 cmp ip, r4 + 8000374: f240 8082 bls.w 800047c <__udivmoddi4+0x2d0> + 8000378: 3b02 subs r3, #2 + 800037a: 443c add r4, r7 + 800037c: ea43 4008 orr.w r0, r3, r8, lsl #16 + 8000380: eba4 040c sub.w r4, r4, ip + 8000384: fba0 8c02 umull r8, ip, r0, r2 + 8000388: 4564 cmp r4, ip + 800038a: 4643 mov r3, r8 + 800038c: 46e1 mov r9, ip + 800038e: d364 bcc.n 800045a <__udivmoddi4+0x2ae> + 8000390: d061 beq.n 8000456 <__udivmoddi4+0x2aa> + 8000392: b15d cbz r5, 80003ac <__udivmoddi4+0x200> + 8000394: ebbe 0203 subs.w r2, lr, r3 + 8000398: eb64 0409 sbc.w r4, r4, r9 + 800039c: fa04 f606 lsl.w r6, r4, r6 + 80003a0: fa22 f301 lsr.w r3, r2, r1 + 80003a4: 431e orrs r6, r3 + 80003a6: 40cc lsrs r4, r1 + 80003a8: e9c5 6400 strd r6, r4, [r5] + 80003ac: 2100 movs r1, #0 + 80003ae: e74e b.n 800024e <__udivmoddi4+0xa2> + 80003b0: fbb1 fcf2 udiv ip, r1, r2 + 80003b4: 0c01 lsrs r1, r0, #16 + 80003b6: ea41 410e orr.w r1, r1, lr, lsl #16 + 80003ba: b280 uxth r0, r0 + 80003bc: ea40 4201 orr.w r2, r0, r1, lsl #16 + 80003c0: 463b mov r3, r7 + 80003c2: fbb1 f1f7 udiv r1, r1, r7 + 80003c6: 4638 mov r0, r7 + 80003c8: 463c mov r4, r7 + 80003ca: 46b8 mov r8, r7 + 80003cc: 46be mov lr, r7 + 80003ce: 2620 movs r6, #32 + 80003d0: eba2 0208 sub.w r2, r2, r8 + 80003d4: ea41 410c orr.w r1, r1, ip, lsl #16 + 80003d8: e765 b.n 80002a6 <__udivmoddi4+0xfa> + 80003da: 4601 mov r1, r0 + 80003dc: e717 b.n 800020e <__udivmoddi4+0x62> + 80003de: 4610 mov r0, r2 + 80003e0: e72b b.n 800023a <__udivmoddi4+0x8e> + 80003e2: f1c6 0120 rsb r1, r6, #32 + 80003e6: fa2e fc01 lsr.w ip, lr, r1 + 80003ea: 40b7 lsls r7, r6 + 80003ec: fa0e fe06 lsl.w lr, lr, r6 + 80003f0: fa20 f101 lsr.w r1, r0, r1 + 80003f4: ea41 010e orr.w r1, r1, lr + 80003f8: ea4f 4e17 mov.w lr, r7, lsr #16 + 80003fc: fbbc f8fe udiv r8, ip, lr + 8000400: b2bc uxth r4, r7 + 8000402: fb0e cc18 mls ip, lr, r8, ip + 8000406: fb08 f904 mul.w r9, r8, r4 + 800040a: 0c0a lsrs r2, r1, #16 + 800040c: ea42 420c orr.w r2, r2, ip, lsl #16 + 8000410: 40b0 lsls r0, r6 + 8000412: 4591 cmp r9, r2 + 8000414: ea4f 4310 mov.w r3, r0, lsr #16 + 8000418: b280 uxth r0, r0 + 800041a: d93e bls.n 800049a <__udivmoddi4+0x2ee> + 800041c: 18ba adds r2, r7, r2 + 800041e: f108 3cff add.w ip, r8, #4294967295 @ 0xffffffff + 8000422: d201 bcs.n 8000428 <__udivmoddi4+0x27c> + 8000424: 4591 cmp r9, r2 + 8000426: d81f bhi.n 8000468 <__udivmoddi4+0x2bc> + 8000428: eba2 0209 sub.w r2, r2, r9 + 800042c: fbb2 f9fe udiv r9, r2, lr + 8000430: fb09 f804 mul.w r8, r9, r4 + 8000434: fb0e 2a19 mls sl, lr, r9, r2 + 8000438: b28a uxth r2, r1 + 800043a: ea42 420a orr.w r2, r2, sl, lsl #16 + 800043e: 4542 cmp r2, r8 + 8000440: d229 bcs.n 8000496 <__udivmoddi4+0x2ea> + 8000442: 18ba adds r2, r7, r2 + 8000444: f109 31ff add.w r1, r9, #4294967295 @ 0xffffffff + 8000448: d2c2 bcs.n 80003d0 <__udivmoddi4+0x224> + 800044a: 4542 cmp r2, r8 + 800044c: d2c0 bcs.n 80003d0 <__udivmoddi4+0x224> + 800044e: f1a9 0102 sub.w r1, r9, #2 + 8000452: 443a add r2, r7 + 8000454: e7bc b.n 80003d0 <__udivmoddi4+0x224> + 8000456: 45c6 cmp lr, r8 + 8000458: d29b bcs.n 8000392 <__udivmoddi4+0x1e6> + 800045a: ebb8 0302 subs.w r3, r8, r2 + 800045e: eb6c 0c07 sbc.w ip, ip, r7 + 8000462: 3801 subs r0, #1 + 8000464: 46e1 mov r9, ip + 8000466: e794 b.n 8000392 <__udivmoddi4+0x1e6> + 8000468: eba7 0909 sub.w r9, r7, r9 + 800046c: 444a add r2, r9 + 800046e: fbb2 f9fe udiv r9, r2, lr + 8000472: f1a8 0c02 sub.w ip, r8, #2 + 8000476: fb09 f804 mul.w r8, r9, r4 + 800047a: e7db b.n 8000434 <__udivmoddi4+0x288> + 800047c: 4603 mov r3, r0 + 800047e: e77d b.n 800037c <__udivmoddi4+0x1d0> + 8000480: 46d0 mov r8, sl + 8000482: e765 b.n 8000350 <__udivmoddi4+0x1a4> + 8000484: 4608 mov r0, r1 + 8000486: e6fa b.n 800027e <__udivmoddi4+0xd2> + 8000488: 443b add r3, r7 + 800048a: 3a02 subs r2, #2 + 800048c: e730 b.n 80002f0 <__udivmoddi4+0x144> + 800048e: f1ac 0c02 sub.w ip, ip, #2 + 8000492: 443b add r3, r7 + 8000494: e719 b.n 80002ca <__udivmoddi4+0x11e> + 8000496: 4649 mov r1, r9 + 8000498: e79a b.n 80003d0 <__udivmoddi4+0x224> + 800049a: eba2 0209 sub.w r2, r2, r9 + 800049e: fbb2 f9fe udiv r9, r2, lr + 80004a2: 46c4 mov ip, r8 + 80004a4: fb09 f804 mul.w r8, r9, r4 + 80004a8: e7c4 b.n 8000434 <__udivmoddi4+0x288> + 80004aa: bf00 nop + +080004ac <__aeabi_idiv0>: + 80004ac: 4770 bx lr + 80004ae: bf00 nop + +080004b0 : + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ +void displayScrollingText() { + 80004b0: b580 push {r7, lr} + 80004b2: b086 sub sp, #24 + 80004b4: af00 add r7, sp, #0 + const uint8_t I = 0b00110000; // I + 80004b6: 2330 movs r3, #48 @ 0x30 + 80004b8: 73fb strb r3, [r7, #15] + const uint8_t S = 0b01011011; // S + 80004ba: 235b movs r3, #91 @ 0x5b + 80004bc: 73bb strb r3, [r7, #14] + const uint8_t E = 0b01001111; // E + 80004be: 234f movs r3, #79 @ 0x4f + 80004c0: 737b strb r3, [r7, #13] + const uint8_t N = 0b00110110; // N + 80004c2: 2336 movs r3, #54 @ 0x36 + 80004c4: 733b strb r3, [r7, #12] + const uint8_t SPACE = 0b00000000; // Espace + 80004c6: 2300 movs r3, #0 + 80004c8: 72fb strb r3, [r7, #11] + + const uint8_t symbols[] = {I, S, E, N, SPACE}; + 80004ca: 7bfb ldrb r3, [r7, #15] + 80004cc: 713b strb r3, [r7, #4] + 80004ce: 7bbb ldrb r3, [r7, #14] + 80004d0: 717b strb r3, [r7, #5] + 80004d2: 7b7b ldrb r3, [r7, #13] + 80004d4: 71bb strb r3, [r7, #6] + 80004d6: 7b3b ldrb r3, [r7, #12] + 80004d8: 71fb strb r3, [r7, #7] + 80004da: 7afb ldrb r3, [r7, #11] + 80004dc: 723b strb r3, [r7, #8] + const uint8_t numSymbols = sizeof(symbols) / sizeof(symbols[0]); + 80004de: 2305 movs r3, #5 + 80004e0: 72bb strb r3, [r7, #10] + + while (1) { + for (int i = 0; i < numSymbols; i++) { + 80004e2: 2300 movs r3, #0 + 80004e4: 617b str r3, [r7, #20] + 80004e6: e021 b.n 800052c + for (int j = 0; j < 4; j++) { + 80004e8: 2300 movs r3, #0 + 80004ea: 613b str r3, [r7, #16] + 80004ec: e014 b.n 8000518 + MAX7219_Write(j + 1, symbols[(i + j) % numSymbols]); + 80004ee: 693b ldr r3, [r7, #16] + 80004f0: 1c58 adds r0, r3, #1 + 80004f2: 697a ldr r2, [r7, #20] + 80004f4: 693b ldr r3, [r7, #16] + 80004f6: 4413 add r3, r2 + 80004f8: 7aba ldrb r2, [r7, #10] + 80004fa: fb93 f1f2 sdiv r1, r3, r2 + 80004fe: fb01 f202 mul.w r2, r1, r2 + 8000502: 1a9b subs r3, r3, r2 + 8000504: 3318 adds r3, #24 + 8000506: 443b add r3, r7 + 8000508: f813 3c14 ldrb.w r3, [r3, #-20] + 800050c: 4619 mov r1, r3 + 800050e: f000 f9f9 bl 8000904 + for (int j = 0; j < 4; j++) { + 8000512: 693b ldr r3, [r7, #16] + 8000514: 3301 adds r3, #1 + 8000516: 613b str r3, [r7, #16] + 8000518: 693b ldr r3, [r7, #16] + 800051a: 2b03 cmp r3, #3 + 800051c: dde7 ble.n 80004ee + } + HAL_Delay(500); + 800051e: f44f 70fa mov.w r0, #500 @ 0x1f4 + 8000522: f000 fa8d bl 8000a40 + for (int i = 0; i < numSymbols; i++) { + 8000526: 697b ldr r3, [r7, #20] + 8000528: 3301 adds r3, #1 + 800052a: 617b str r3, [r7, #20] + 800052c: 7abb ldrb r3, [r7, #10] + 800052e: 697a ldr r2, [r7, #20] + 8000530: 429a cmp r2, r3 + 8000532: dbd9 blt.n 80004e8 + 8000534: e7d5 b.n 80004e2 + +08000536
: +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + 8000536: b580 push {r7, lr} + 8000538: af00 add r7, sp, #0 + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + 800053a: f000 fa13 bl 8000964 + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + 800053e: f000 f80b bl 8000558 + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + 8000542: f000 f885 bl 8000650 + MX_SPI1_Init(); + 8000546: f000 f84d bl 80005e4 + /* USER CODE BEGIN 2 */ + MAX7219_Init(); + 800054a: f000 f98e bl 800086a + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + MAX7219_Clear(); + 800054e: f000 f9c3 bl 80008d8 + while (1) + { + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + displayScrollingText(); + 8000552: f7ff ffad bl 80004b0 + 8000556: e7fc b.n 8000552 + +08000558 : +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + 8000558: b580 push {r7, lr} + 800055a: b092 sub sp, #72 @ 0x48 + 800055c: af00 add r7, sp, #0 + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + 800055e: f107 0314 add.w r3, r7, #20 + 8000562: 2234 movs r2, #52 @ 0x34 + 8000564: 2100 movs r1, #0 + 8000566: 4618 mov r0, r3 + 8000568: f001 fd44 bl 8001ff4 + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 800056c: 463b mov r3, r7 + 800056e: 2200 movs r2, #0 + 8000570: 601a str r2, [r3, #0] + 8000572: 605a str r2, [r3, #4] + 8000574: 609a str r2, [r3, #8] + 8000576: 60da str r2, [r3, #12] + 8000578: 611a str r2, [r3, #16] + + /** Configure the main internal regulator output voltage + */ + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + 800057a: 4b19 ldr r3, [pc, #100] @ (80005e0 ) + 800057c: 681b ldr r3, [r3, #0] + 800057e: f423 53c0 bic.w r3, r3, #6144 @ 0x1800 + 8000582: 4a17 ldr r2, [pc, #92] @ (80005e0 ) + 8000584: f443 6300 orr.w r3, r3, #2048 @ 0x800 + 8000588: 6013 str r3, [r2, #0] + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + 800058a: 2302 movs r3, #2 + 800058c: 617b str r3, [r7, #20] + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + 800058e: 2301 movs r3, #1 + 8000590: 623b str r3, [r7, #32] + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + 8000592: 2310 movs r3, #16 + 8000594: 627b str r3, [r7, #36] @ 0x24 + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; + 8000596: 2300 movs r3, #0 + 8000598: 63bb str r3, [r7, #56] @ 0x38 + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 800059a: f107 0314 add.w r3, r7, #20 + 800059e: 4618 mov r0, r3 + 80005a0: f000 fcfc bl 8000f9c + 80005a4: 4603 mov r3, r0 + 80005a6: 2b00 cmp r3, #0 + 80005a8: d001 beq.n 80005ae + { + Error_Handler(); + 80005aa: f000 f88f bl 80006cc + } + + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + 80005ae: 230f movs r3, #15 + 80005b0: 603b str r3, [r7, #0] + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; + 80005b2: 2301 movs r3, #1 + 80005b4: 607b str r3, [r7, #4] + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + 80005b6: 2300 movs r3, #0 + 80005b8: 60bb str r3, [r7, #8] + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + 80005ba: 2300 movs r3, #0 + 80005bc: 60fb str r3, [r7, #12] + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 80005be: 2300 movs r3, #0 + 80005c0: 613b str r3, [r7, #16] + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) + 80005c2: 463b mov r3, r7 + 80005c4: 2100 movs r1, #0 + 80005c6: 4618 mov r0, r3 + 80005c8: f001 f818 bl 80015fc + 80005cc: 4603 mov r3, r0 + 80005ce: 2b00 cmp r3, #0 + 80005d0: d001 beq.n 80005d6 + { + Error_Handler(); + 80005d2: f000 f87b bl 80006cc + } +} + 80005d6: bf00 nop + 80005d8: 3748 adds r7, #72 @ 0x48 + 80005da: 46bd mov sp, r7 + 80005dc: bd80 pop {r7, pc} + 80005de: bf00 nop + 80005e0: 40007000 .word 0x40007000 + +080005e4 : + * @brief SPI1 Initialization Function + * @param None + * @retval None + */ +static void MX_SPI1_Init(void) +{ + 80005e4: b580 push {r7, lr} + 80005e6: af00 add r7, sp, #0 + + /* USER CODE BEGIN SPI1_Init 1 */ + + /* USER CODE END SPI1_Init 1 */ + /* SPI1 parameter configuration*/ + hspi1.Instance = SPI1; + 80005e8: 4b17 ldr r3, [pc, #92] @ (8000648 ) + 80005ea: 4a18 ldr r2, [pc, #96] @ (800064c ) + 80005ec: 601a str r2, [r3, #0] + hspi1.Init.Mode = SPI_MODE_MASTER; + 80005ee: 4b16 ldr r3, [pc, #88] @ (8000648 ) + 80005f0: f44f 7282 mov.w r2, #260 @ 0x104 + 80005f4: 605a str r2, [r3, #4] + hspi1.Init.Direction = SPI_DIRECTION_2LINES; + 80005f6: 4b14 ldr r3, [pc, #80] @ (8000648 ) + 80005f8: 2200 movs r2, #0 + 80005fa: 609a str r2, [r3, #8] + hspi1.Init.DataSize = SPI_DATASIZE_8BIT; + 80005fc: 4b12 ldr r3, [pc, #72] @ (8000648 ) + 80005fe: 2200 movs r2, #0 + 8000600: 60da str r2, [r3, #12] + hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; + 8000602: 4b11 ldr r3, [pc, #68] @ (8000648 ) + 8000604: 2200 movs r2, #0 + 8000606: 611a str r2, [r3, #16] + hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; + 8000608: 4b0f ldr r3, [pc, #60] @ (8000648 ) + 800060a: 2200 movs r2, #0 + 800060c: 615a str r2, [r3, #20] + hspi1.Init.NSS = SPI_NSS_SOFT; + 800060e: 4b0e ldr r3, [pc, #56] @ (8000648 ) + 8000610: f44f 7200 mov.w r2, #512 @ 0x200 + 8000614: 619a str r2, [r3, #24] + hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + 8000616: 4b0c ldr r3, [pc, #48] @ (8000648 ) + 8000618: 2200 movs r2, #0 + 800061a: 61da str r2, [r3, #28] + hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; + 800061c: 4b0a ldr r3, [pc, #40] @ (8000648 ) + 800061e: 2200 movs r2, #0 + 8000620: 621a str r2, [r3, #32] + hspi1.Init.TIMode = SPI_TIMODE_DISABLE; + 8000622: 4b09 ldr r3, [pc, #36] @ (8000648 ) + 8000624: 2200 movs r2, #0 + 8000626: 625a str r2, [r3, #36] @ 0x24 + hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + 8000628: 4b07 ldr r3, [pc, #28] @ (8000648 ) + 800062a: 2200 movs r2, #0 + 800062c: 629a str r2, [r3, #40] @ 0x28 + hspi1.Init.CRCPolynomial = 10; + 800062e: 4b06 ldr r3, [pc, #24] @ (8000648 ) + 8000630: 220a movs r2, #10 + 8000632: 62da str r2, [r3, #44] @ 0x2c + if (HAL_SPI_Init(&hspi1) != HAL_OK) + 8000634: 4804 ldr r0, [pc, #16] @ (8000648 ) + 8000636: f001 fa33 bl 8001aa0 + 800063a: 4603 mov r3, r0 + 800063c: 2b00 cmp r3, #0 + 800063e: d001 beq.n 8000644 + { + Error_Handler(); + 8000640: f000 f844 bl 80006cc + } + /* USER CODE BEGIN SPI1_Init 2 */ + + /* USER CODE END SPI1_Init 2 */ + +} + 8000644: bf00 nop + 8000646: bd80 pop {r7, pc} + 8000648: 20000028 .word 0x20000028 + 800064c: 40013000 .word 0x40013000 + +08000650 : + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + 8000650: b580 push {r7, lr} + 8000652: b088 sub sp, #32 + 8000654: af00 add r7, sp, #0 + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 8000656: f107 030c add.w r3, r7, #12 + 800065a: 2200 movs r2, #0 + 800065c: 601a str r2, [r3, #0] + 800065e: 605a str r2, [r3, #4] + 8000660: 609a str r2, [r3, #8] + 8000662: 60da str r2, [r3, #12] + 8000664: 611a str r2, [r3, #16] + /* USER CODE BEGIN MX_GPIO_Init_1 */ + + /* USER CODE END MX_GPIO_Init_1 */ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + 8000666: 4b17 ldr r3, [pc, #92] @ (80006c4 ) + 8000668: 69db ldr r3, [r3, #28] + 800066a: 4a16 ldr r2, [pc, #88] @ (80006c4 ) + 800066c: f043 0304 orr.w r3, r3, #4 + 8000670: 61d3 str r3, [r2, #28] + 8000672: 4b14 ldr r3, [pc, #80] @ (80006c4 ) + 8000674: 69db ldr r3, [r3, #28] + 8000676: f003 0304 and.w r3, r3, #4 + 800067a: 60bb str r3, [r7, #8] + 800067c: 68bb ldr r3, [r7, #8] + __HAL_RCC_GPIOA_CLK_ENABLE(); + 800067e: 4b11 ldr r3, [pc, #68] @ (80006c4 ) + 8000680: 69db ldr r3, [r3, #28] + 8000682: 4a10 ldr r2, [pc, #64] @ (80006c4 ) + 8000684: f043 0301 orr.w r3, r3, #1 + 8000688: 61d3 str r3, [r2, #28] + 800068a: 4b0e ldr r3, [pc, #56] @ (80006c4 ) + 800068c: 69db ldr r3, [r3, #28] + 800068e: f003 0301 and.w r3, r3, #1 + 8000692: 607b str r3, [r7, #4] + 8000694: 687b ldr r3, [r7, #4] + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET); + 8000696: 2200 movs r2, #0 + 8000698: 2101 movs r1, #1 + 800069a: 480b ldr r0, [pc, #44] @ (80006c8 ) + 800069c: f000 fc66 bl 8000f6c + + /*Configure GPIO pin : PC0 */ + GPIO_InitStruct.Pin = GPIO_PIN_0; + 80006a0: 2301 movs r3, #1 + 80006a2: 60fb str r3, [r7, #12] + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + 80006a4: 2301 movs r3, #1 + 80006a6: 613b str r3, [r7, #16] + GPIO_InitStruct.Pull = GPIO_NOPULL; + 80006a8: 2300 movs r3, #0 + 80006aa: 617b str r3, [r7, #20] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 80006ac: 2300 movs r3, #0 + 80006ae: 61bb str r3, [r7, #24] + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + 80006b0: f107 030c add.w r3, r7, #12 + 80006b4: 4619 mov r1, r3 + 80006b6: 4804 ldr r0, [pc, #16] @ (80006c8 ) + 80006b8: f000 fac8 bl 8000c4c + + /* USER CODE BEGIN MX_GPIO_Init_2 */ + + /* USER CODE END MX_GPIO_Init_2 */ +} + 80006bc: bf00 nop + 80006be: 3720 adds r7, #32 + 80006c0: 46bd mov sp, r7 + 80006c2: bd80 pop {r7, pc} + 80006c4: 40023800 .word 0x40023800 + 80006c8: 40020800 .word 0x40020800 + +080006cc : +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + 80006cc: b480 push {r7} + 80006ce: 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"); + 80006d0: b672 cpsid i +} + 80006d2: 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) + 80006d4: bf00 nop + 80006d6: e7fd b.n 80006d4 + +080006d8 : +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + 80006d8: b480 push {r7} + 80006da: b085 sub sp, #20 + 80006dc: af00 add r7, sp, #0 + + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_COMP_CLK_ENABLE(); + 80006de: 4b14 ldr r3, [pc, #80] @ (8000730 ) + 80006e0: 6a5b ldr r3, [r3, #36] @ 0x24 + 80006e2: 4a13 ldr r2, [pc, #76] @ (8000730 ) + 80006e4: f043 4300 orr.w r3, r3, #2147483648 @ 0x80000000 + 80006e8: 6253 str r3, [r2, #36] @ 0x24 + 80006ea: 4b11 ldr r3, [pc, #68] @ (8000730 ) + 80006ec: 6a5b ldr r3, [r3, #36] @ 0x24 + 80006ee: f003 4300 and.w r3, r3, #2147483648 @ 0x80000000 + 80006f2: 60fb str r3, [r7, #12] + 80006f4: 68fb ldr r3, [r7, #12] + __HAL_RCC_SYSCFG_CLK_ENABLE(); + 80006f6: 4b0e ldr r3, [pc, #56] @ (8000730 ) + 80006f8: 6a1b ldr r3, [r3, #32] + 80006fa: 4a0d ldr r2, [pc, #52] @ (8000730 ) + 80006fc: f043 0301 orr.w r3, r3, #1 + 8000700: 6213 str r3, [r2, #32] + 8000702: 4b0b ldr r3, [pc, #44] @ (8000730 ) + 8000704: 6a1b ldr r3, [r3, #32] + 8000706: f003 0301 and.w r3, r3, #1 + 800070a: 60bb str r3, [r7, #8] + 800070c: 68bb ldr r3, [r7, #8] + __HAL_RCC_PWR_CLK_ENABLE(); + 800070e: 4b08 ldr r3, [pc, #32] @ (8000730 ) + 8000710: 6a5b ldr r3, [r3, #36] @ 0x24 + 8000712: 4a07 ldr r2, [pc, #28] @ (8000730 ) + 8000714: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 8000718: 6253 str r3, [r2, #36] @ 0x24 + 800071a: 4b05 ldr r3, [pc, #20] @ (8000730 ) + 800071c: 6a5b ldr r3, [r3, #36] @ 0x24 + 800071e: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8000722: 607b str r3, [r7, #4] + 8000724: 687b ldr r3, [r7, #4] + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + 8000726: bf00 nop + 8000728: 3714 adds r7, #20 + 800072a: 46bd mov sp, r7 + 800072c: bc80 pop {r7} + 800072e: 4770 bx lr + 8000730: 40023800 .word 0x40023800 + +08000734 : + * This function configures the hardware resources used in this example + * @param hspi: SPI handle pointer + * @retval None + */ +void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) +{ + 8000734: b580 push {r7, lr} + 8000736: b08a sub sp, #40 @ 0x28 + 8000738: af00 add r7, sp, #0 + 800073a: 6078 str r0, [r7, #4] + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 800073c: f107 0314 add.w r3, r7, #20 + 8000740: 2200 movs r2, #0 + 8000742: 601a str r2, [r3, #0] + 8000744: 605a str r2, [r3, #4] + 8000746: 609a str r2, [r3, #8] + 8000748: 60da str r2, [r3, #12] + 800074a: 611a str r2, [r3, #16] + if(hspi->Instance==SPI1) + 800074c: 687b ldr r3, [r7, #4] + 800074e: 681b ldr r3, [r3, #0] + 8000750: 4a17 ldr r2, [pc, #92] @ (80007b0 ) + 8000752: 4293 cmp r3, r2 + 8000754: d127 bne.n 80007a6 + { + /* USER CODE BEGIN SPI1_MspInit 0 */ + + /* USER CODE END SPI1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_SPI1_CLK_ENABLE(); + 8000756: 4b17 ldr r3, [pc, #92] @ (80007b4 ) + 8000758: 6a1b ldr r3, [r3, #32] + 800075a: 4a16 ldr r2, [pc, #88] @ (80007b4 ) + 800075c: f443 5380 orr.w r3, r3, #4096 @ 0x1000 + 8000760: 6213 str r3, [r2, #32] + 8000762: 4b14 ldr r3, [pc, #80] @ (80007b4 ) + 8000764: 6a1b ldr r3, [r3, #32] + 8000766: f403 5380 and.w r3, r3, #4096 @ 0x1000 + 800076a: 613b str r3, [r7, #16] + 800076c: 693b ldr r3, [r7, #16] + + __HAL_RCC_GPIOA_CLK_ENABLE(); + 800076e: 4b11 ldr r3, [pc, #68] @ (80007b4 ) + 8000770: 69db ldr r3, [r3, #28] + 8000772: 4a10 ldr r2, [pc, #64] @ (80007b4 ) + 8000774: f043 0301 orr.w r3, r3, #1 + 8000778: 61d3 str r3, [r2, #28] + 800077a: 4b0e ldr r3, [pc, #56] @ (80007b4 ) + 800077c: 69db ldr r3, [r3, #28] + 800077e: f003 0301 and.w r3, r3, #1 + 8000782: 60fb str r3, [r7, #12] + 8000784: 68fb ldr r3, [r7, #12] + /**SPI1 GPIO Configuration + PA5 ------> SPI1_SCK + PA6 ------> SPI1_MISO + PA7 ------> SPI1_MOSI + */ + GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7; + 8000786: 23e0 movs r3, #224 @ 0xe0 + 8000788: 617b str r3, [r7, #20] + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 800078a: 2302 movs r3, #2 + 800078c: 61bb str r3, [r7, #24] + GPIO_InitStruct.Pull = GPIO_NOPULL; + 800078e: 2300 movs r3, #0 + 8000790: 61fb str r3, [r7, #28] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + 8000792: 2303 movs r3, #3 + 8000794: 623b str r3, [r7, #32] + GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; + 8000796: 2305 movs r3, #5 + 8000798: 627b str r3, [r7, #36] @ 0x24 + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + 800079a: f107 0314 add.w r3, r7, #20 + 800079e: 4619 mov r1, r3 + 80007a0: 4805 ldr r0, [pc, #20] @ (80007b8 ) + 80007a2: f000 fa53 bl 8000c4c + + /* USER CODE END SPI1_MspInit 1 */ + + } + +} + 80007a6: bf00 nop + 80007a8: 3728 adds r7, #40 @ 0x28 + 80007aa: 46bd mov sp, r7 + 80007ac: bd80 pop {r7, pc} + 80007ae: bf00 nop + 80007b0: 40013000 .word 0x40013000 + 80007b4: 40023800 .word 0x40023800 + 80007b8: 40020000 .word 0x40020000 + +080007bc : +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + 80007bc: b480 push {r7} + 80007be: 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) + 80007c0: bf00 nop + 80007c2: e7fd b.n 80007c0 + +080007c4 : + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + 80007c4: b480 push {r7} + 80007c6: af00 add r7, sp, #0 + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + 80007c8: bf00 nop + 80007ca: e7fd b.n 80007c8 + +080007cc : + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + 80007cc: b480 push {r7} + 80007ce: af00 add r7, sp, #0 + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + 80007d0: bf00 nop + 80007d2: e7fd b.n 80007d0 + +080007d4 : + +/** + * @brief This function handles Pre-fetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + 80007d4: b480 push {r7} + 80007d6: af00 add r7, sp, #0 + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + 80007d8: bf00 nop + 80007da: e7fd b.n 80007d8 + +080007dc : + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + 80007dc: b480 push {r7} + 80007de: af00 add r7, sp, #0 + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + 80007e0: bf00 nop + 80007e2: e7fd b.n 80007e0 + +080007e4 : + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + 80007e4: b480 push {r7} + 80007e6: af00 add r7, sp, #0 + + /* USER CODE END SVC_IRQn 0 */ + /* USER CODE BEGIN SVC_IRQn 1 */ + + /* USER CODE END SVC_IRQn 1 */ +} + 80007e8: bf00 nop + 80007ea: 46bd mov sp, r7 + 80007ec: bc80 pop {r7} + 80007ee: 4770 bx lr + +080007f0 : + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + 80007f0: b480 push {r7} + 80007f2: af00 add r7, sp, #0 + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + 80007f4: bf00 nop + 80007f6: 46bd mov sp, r7 + 80007f8: bc80 pop {r7} + 80007fa: 4770 bx lr + +080007fc : + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + 80007fc: b480 push {r7} + 80007fe: af00 add r7, sp, #0 + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + 8000800: bf00 nop + 8000802: 46bd mov sp, r7 + 8000804: bc80 pop {r7} + 8000806: 4770 bx lr + +08000808 : + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + 8000808: b580 push {r7, lr} + 800080a: af00 add r7, sp, #0 + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + 800080c: f000 f8fc bl 8000a08 + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + 8000810: bf00 nop + 8000812: bd80 pop {r7, pc} + +08000814 : + * SystemCoreClock variable. + * @param None + * @retval None + */ +void SystemInit (void) +{ + 8000814: b480 push {r7} + 8000816: 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 */ +} + 8000818: bf00 nop + 800081a: 46bd mov sp, r7 + 800081c: bc80 pop {r7} + 800081e: 4770 bx lr + +08000820 : + .type Reset_Handler, %function +Reset_Handler: + + +/* Call the clock system initialization function.*/ + bl SystemInit + 8000820: f7ff fff8 bl 8000814 + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + 8000824: 480b ldr r0, [pc, #44] @ (8000854 ) + ldr r1, =_edata + 8000826: 490c ldr r1, [pc, #48] @ (8000858 ) + ldr r2, =_sidata + 8000828: 4a0c ldr r2, [pc, #48] @ (800085c ) + movs r3, #0 + 800082a: 2300 movs r3, #0 + b LoopCopyDataInit + 800082c: e002 b.n 8000834 + +0800082e : + +CopyDataInit: + ldr r4, [r2, r3] + 800082e: 58d4 ldr r4, [r2, r3] + str r4, [r0, r3] + 8000830: 50c4 str r4, [r0, r3] + adds r3, r3, #4 + 8000832: 3304 adds r3, #4 + +08000834 : + +LoopCopyDataInit: + adds r4, r0, r3 + 8000834: 18c4 adds r4, r0, r3 + cmp r4, r1 + 8000836: 428c cmp r4, r1 + bcc CopyDataInit + 8000838: d3f9 bcc.n 800082e + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + 800083a: 4a09 ldr r2, [pc, #36] @ (8000860 ) + ldr r4, =_ebss + 800083c: 4c09 ldr r4, [pc, #36] @ (8000864 ) + movs r3, #0 + 800083e: 2300 movs r3, #0 + b LoopFillZerobss + 8000840: e001 b.n 8000846 + +08000842 : + +FillZerobss: + str r3, [r2] + 8000842: 6013 str r3, [r2, #0] + adds r2, r2, #4 + 8000844: 3204 adds r2, #4 + +08000846 : + +LoopFillZerobss: + cmp r2, r4 + 8000846: 42a2 cmp r2, r4 + bcc FillZerobss + 8000848: d3fb bcc.n 8000842 + +/* Call static constructors */ + bl __libc_init_array + 800084a: f001 fbdb bl 8002004 <__libc_init_array> +/* Call the application's entry point.*/ + bl main + 800084e: f7ff fe72 bl 8000536
+ bx lr + 8000852: 4770 bx lr + ldr r0, =_sdata + 8000854: 20000000 .word 0x20000000 + ldr r1, =_edata + 8000858: 2000000c .word 0x2000000c + ldr r2, =_sidata + 800085c: 08002090 .word 0x08002090 + ldr r2, =_sbss + 8000860: 2000000c .word 0x2000000c + ldr r4, =_ebss + 8000864: 20000084 .word 0x20000084 + +08000868 : + * @retval : None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + 8000868: e7fe b.n 8000868 + +0800086a : +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_Init (void) +{ + 800086a: b580 push {r7, lr} + 800086c: af00 add r7, sp, #0 + // configure "LOAD" as output + + MAX7219_Write(REG_SCAN_LIMIT, 7); // set up to scan all eight digits + 800086e: 2107 movs r1, #7 + 8000870: 200b movs r0, #11 + 8000872: f000 f847 bl 8000904 + MAX7219_Write(REG_DECODE, 0x00); // set to "no decode" for all digits + 8000876: 2100 movs r1, #0 + 8000878: 2009 movs r0, #9 + 800087a: f000 f843 bl 8000904 + MAX7219_ShutdownStop(); // select normal operation (i.e. not shutdown) + 800087e: f000 f809 bl 8000894 + MAX7219_DisplayTestStop(); // select normal operation (i.e. not test mode) + 8000882: f000 f80f bl 80008a4 + MAX7219_Clear(); // clear all digits + 8000886: f000 f827 bl 80008d8 + MAX7219_SetBrightness(INTENSITY_MAX); // set to maximum intensity + 800088a: 200f movs r0, #15 + 800088c: f000 f812 bl 80008b4 +} + 8000890: bf00 nop + 8000892: bd80 pop {r7, pc} + +08000894 : +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_ShutdownStop (void) +{ + 8000894: b580 push {r7, lr} + 8000896: af00 add r7, sp, #0 + MAX7219_Write(REG_SHUTDOWN, 1); // put MAX7219 into "normal" mode + 8000898: 2101 movs r1, #1 + 800089a: 200c movs r0, #12 + 800089c: f000 f832 bl 8000904 +} + 80008a0: bf00 nop + 80008a2: bd80 pop {r7, pc} + +080008a4 : +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_DisplayTestStop (void) +{ + 80008a4: b580 push {r7, lr} + 80008a6: af00 add r7, sp, #0 + MAX7219_Write(REG_DISPLAY_TEST, 0); // put MAX7219 into "normal" mode + 80008a8: 2100 movs r1, #0 + 80008aa: 200f movs r0, #15 + 80008ac: f000 f82a bl 8000904 +} + 80008b0: bf00 nop + 80008b2: bd80 pop {r7, pc} + +080008b4 : +* Arguments : brightness (0-15) +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_SetBrightness (char brightness) +{ + 80008b4: b580 push {r7, lr} + 80008b6: b082 sub sp, #8 + 80008b8: af00 add r7, sp, #0 + 80008ba: 4603 mov r3, r0 + 80008bc: 71fb strb r3, [r7, #7] + brightness &= 0x0f; // mask off extra bits + 80008be: 79fb ldrb r3, [r7, #7] + 80008c0: f003 030f and.w r3, r3, #15 + 80008c4: 71fb strb r3, [r7, #7] + MAX7219_Write(REG_INTENSITY, brightness); // set brightness + 80008c6: 79fb ldrb r3, [r7, #7] + 80008c8: 4619 mov r1, r3 + 80008ca: 200a movs r0, #10 + 80008cc: f000 f81a bl 8000904 +} + 80008d0: bf00 nop + 80008d2: 3708 adds r7, #8 + 80008d4: 46bd mov sp, r7 + 80008d6: bd80 pop {r7, pc} + +080008d8 : +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_Clear (void) +{ + 80008d8: b580 push {r7, lr} + 80008da: b082 sub sp, #8 + 80008dc: af00 add r7, sp, #0 + char i; + for (i=0; i < 8; i++) + 80008de: 2300 movs r3, #0 + 80008e0: 71fb strb r3, [r7, #7] + 80008e2: e007 b.n 80008f4 + MAX7219_Write(i, 0x00); // turn all segments off + 80008e4: 79fb ldrb r3, [r7, #7] + 80008e6: 2100 movs r1, #0 + 80008e8: 4618 mov r0, r3 + 80008ea: f000 f80b bl 8000904 + for (i=0; i < 8; i++) + 80008ee: 79fb ldrb r3, [r7, #7] + 80008f0: 3301 adds r3, #1 + 80008f2: 71fb strb r3, [r7, #7] + 80008f4: 79fb ldrb r3, [r7, #7] + 80008f6: 2b07 cmp r3, #7 + 80008f8: d9f4 bls.n 80008e4 +} + 80008fa: bf00 nop + 80008fc: bf00 nop + 80008fe: 3708 adds r7, #8 + 8000900: 46bd mov sp, r7 + 8000902: bd80 pop {r7, pc} + +08000904 : +* dataout = data to write to MAX7219 +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_Write (unsigned char reg_number, unsigned char dataout) +{ + 8000904: b580 push {r7, lr} + 8000906: b082 sub sp, #8 + 8000908: af00 add r7, sp, #0 + 800090a: 4603 mov r3, r0 + 800090c: 460a mov r2, r1 + 800090e: 71fb strb r3, [r7, #7] + 8000910: 4613 mov r3, r2 + 8000912: 71bb strb r3, [r7, #6] + MAX7219_nCS_PORT->BSRR = (uint32_t)MAX7219_nCS_PIN<<16;// nCS = 0 // take LOAD high to begin + 8000914: 4b09 ldr r3, [pc, #36] @ (800093c ) + 8000916: f44f 3280 mov.w r2, #65536 @ 0x10000 + 800091a: 619a str r2, [r3, #24] + MAX7219_SendByte(reg_number); // write register number to MAX7219 + 800091c: 79fb ldrb r3, [r7, #7] + 800091e: 4618 mov r0, r3 + 8000920: f000 f80e bl 8000940 + MAX7219_SendByte(dataout); // write data to MAX7219 + 8000924: 79bb ldrb r3, [r7, #6] + 8000926: 4618 mov r0, r3 + 8000928: f000 f80a bl 8000940 + MAX7219_nCS_PORT->BSRR = (uint32_t)MAX7219_nCS_PIN;// nCS = 1 // take LOAD low to latch in data + 800092c: 4b03 ldr r3, [pc, #12] @ (800093c ) + 800092e: 2201 movs r2, #1 + 8000930: 619a str r2, [r3, #24] + } + 8000932: bf00 nop + 8000934: 3708 adds r7, #8 + 8000936: 46bd mov sp, r7 + 8000938: bd80 pop {r7, pc} + 800093a: bf00 nop + 800093c: 40020800 .word 0x40020800 + +08000940 : +* Returns : none +********************************************************************************************************* +*/ + +static void MAX7219_SendByte (unsigned char dataout) +{ + 8000940: b580 push {r7, lr} + 8000942: b082 sub sp, #8 + 8000944: af00 add r7, sp, #0 + 8000946: 4603 mov r3, r0 + 8000948: 71fb strb r3, [r7, #7] + + HAL_SPI_Transmit(&hspi1, &dataout, 1, 1000); + 800094a: 1df9 adds r1, r7, #7 + 800094c: f44f 737a mov.w r3, #1000 @ 0x3e8 + 8000950: 2201 movs r2, #1 + 8000952: 4803 ldr r0, [pc, #12] @ (8000960 ) + 8000954: f001 f92d bl 8001bb2 + +} + 8000958: bf00 nop + 800095a: 3708 adds r7, #8 + 800095c: 46bd mov sp, r7 + 800095e: bd80 pop {r7, pc} + 8000960: 20000028 .word 0x20000028 + +08000964 : + * In the default implementation,Systick is used as source of time base. + * the tick variable is incremented each 1ms in its ISR. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_Init(void) +{ + 8000964: b580 push {r7, lr} + 8000966: b082 sub sp, #8 + 8000968: af00 add r7, sp, #0 + HAL_StatusTypeDef status = HAL_OK; + 800096a: 2300 movs r3, #0 + 800096c: 71fb strb r3, [r7, #7] +#if (PREFETCH_ENABLE != 0) + __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); +#endif /* PREFETCH_ENABLE */ + + /* Set Interrupt Group Priority */ + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); + 800096e: 2003 movs r0, #3 + 8000970: f000 f938 bl 8000be4 + + /* Use systick as time base source and configure 1ms tick (default clock after Reset is MSI) */ + if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK) + 8000974: 200f movs r0, #15 + 8000976: f000 f80d bl 8000994 + 800097a: 4603 mov r3, r0 + 800097c: 2b00 cmp r3, #0 + 800097e: d002 beq.n 8000986 + { + status = HAL_ERROR; + 8000980: 2301 movs r3, #1 + 8000982: 71fb strb r3, [r7, #7] + 8000984: e001 b.n 800098a + } + else + { + /* Init the low level hardware */ + HAL_MspInit(); + 8000986: f7ff fea7 bl 80006d8 + } + + /* Return function status */ + return status; + 800098a: 79fb ldrb r3, [r7, #7] +} + 800098c: 4618 mov r0, r3 + 800098e: 3708 adds r7, #8 + 8000990: 46bd mov sp, r7 + 8000992: bd80 pop {r7, pc} + +08000994 : + * implementation in user file. + * @param TickPriority Tick interrupt priority. + * @retval HAL status + */ +__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) +{ + 8000994: b580 push {r7, lr} + 8000996: b084 sub sp, #16 + 8000998: af00 add r7, sp, #0 + 800099a: 6078 str r0, [r7, #4] + HAL_StatusTypeDef status = HAL_OK; + 800099c: 2300 movs r3, #0 + 800099e: 73fb strb r3, [r7, #15] + + if (uwTickFreq != 0U) + 80009a0: 4b16 ldr r3, [pc, #88] @ (80009fc ) + 80009a2: 681b ldr r3, [r3, #0] + 80009a4: 2b00 cmp r3, #0 + 80009a6: d022 beq.n 80009ee + { + /*Configure the SysTick to have interrupt in 1ms time basis*/ + if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) == 0U) + 80009a8: 4b15 ldr r3, [pc, #84] @ (8000a00 ) + 80009aa: 681a ldr r2, [r3, #0] + 80009ac: 4b13 ldr r3, [pc, #76] @ (80009fc ) + 80009ae: 681b ldr r3, [r3, #0] + 80009b0: f44f 717a mov.w r1, #1000 @ 0x3e8 + 80009b4: fbb1 f3f3 udiv r3, r1, r3 + 80009b8: fbb2 f3f3 udiv r3, r2, r3 + 80009bc: 4618 mov r0, r3 + 80009be: f000 f938 bl 8000c32 + 80009c2: 4603 mov r3, r0 + 80009c4: 2b00 cmp r3, #0 + 80009c6: d10f bne.n 80009e8 + { + /* Configure the SysTick IRQ priority */ + if (TickPriority < (1UL << __NVIC_PRIO_BITS)) + 80009c8: 687b ldr r3, [r7, #4] + 80009ca: 2b0f cmp r3, #15 + 80009cc: d809 bhi.n 80009e2 + { + HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); + 80009ce: 2200 movs r2, #0 + 80009d0: 6879 ldr r1, [r7, #4] + 80009d2: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff + 80009d6: f000 f910 bl 8000bfa + uwTickPrio = TickPriority; + 80009da: 4a0a ldr r2, [pc, #40] @ (8000a04 ) + 80009dc: 687b ldr r3, [r7, #4] + 80009de: 6013 str r3, [r2, #0] + 80009e0: e007 b.n 80009f2 + } + else + { + status = HAL_ERROR; + 80009e2: 2301 movs r3, #1 + 80009e4: 73fb strb r3, [r7, #15] + 80009e6: e004 b.n 80009f2 + } + } + else + { + status = HAL_ERROR; + 80009e8: 2301 movs r3, #1 + 80009ea: 73fb strb r3, [r7, #15] + 80009ec: e001 b.n 80009f2 + } + } + else + { + status = HAL_ERROR; + 80009ee: 2301 movs r3, #1 + 80009f0: 73fb strb r3, [r7, #15] + } + + /* Return function status */ + return status; + 80009f2: 7bfb ldrb r3, [r7, #15] +} + 80009f4: 4618 mov r0, r3 + 80009f6: 3710 adds r7, #16 + 80009f8: 46bd mov sp, r7 + 80009fa: bd80 pop {r7, pc} + 80009fc: 20000008 .word 0x20000008 + 8000a00: 20000000 .word 0x20000000 + 8000a04: 20000004 .word 0x20000004 + +08000a08 : + * @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) +{ + 8000a08: b480 push {r7} + 8000a0a: af00 add r7, sp, #0 + uwTick += uwTickFreq; + 8000a0c: 4b05 ldr r3, [pc, #20] @ (8000a24 ) + 8000a0e: 681a ldr r2, [r3, #0] + 8000a10: 4b05 ldr r3, [pc, #20] @ (8000a28 ) + 8000a12: 681b ldr r3, [r3, #0] + 8000a14: 4413 add r3, r2 + 8000a16: 4a03 ldr r2, [pc, #12] @ (8000a24 ) + 8000a18: 6013 str r3, [r2, #0] +} + 8000a1a: bf00 nop + 8000a1c: 46bd mov sp, r7 + 8000a1e: bc80 pop {r7} + 8000a20: 4770 bx lr + 8000a22: bf00 nop + 8000a24: 20000080 .word 0x20000080 + 8000a28: 20000008 .word 0x20000008 + +08000a2c : + * @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) +{ + 8000a2c: b480 push {r7} + 8000a2e: af00 add r7, sp, #0 + return uwTick; + 8000a30: 4b02 ldr r3, [pc, #8] @ (8000a3c ) + 8000a32: 681b ldr r3, [r3, #0] +} + 8000a34: 4618 mov r0, r3 + 8000a36: 46bd mov sp, r7 + 8000a38: bc80 pop {r7} + 8000a3a: 4770 bx lr + 8000a3c: 20000080 .word 0x20000080 + +08000a40 : + * implementations in user file. + * @param Delay specifies the delay time length, in milliseconds. + * @retval None + */ +__weak void HAL_Delay(uint32_t Delay) +{ + 8000a40: b580 push {r7, lr} + 8000a42: b084 sub sp, #16 + 8000a44: af00 add r7, sp, #0 + 8000a46: 6078 str r0, [r7, #4] + uint32_t tickstart = HAL_GetTick(); + 8000a48: f7ff fff0 bl 8000a2c + 8000a4c: 60b8 str r0, [r7, #8] + uint32_t wait = Delay; + 8000a4e: 687b ldr r3, [r7, #4] + 8000a50: 60fb str r3, [r7, #12] + + /* Add a period to guaranty minimum wait */ + if (wait < HAL_MAX_DELAY) + 8000a52: 68fb ldr r3, [r7, #12] + 8000a54: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8000a58: d004 beq.n 8000a64 + { + wait += (uint32_t)(uwTickFreq); + 8000a5a: 4b09 ldr r3, [pc, #36] @ (8000a80 ) + 8000a5c: 681b ldr r3, [r3, #0] + 8000a5e: 68fa ldr r2, [r7, #12] + 8000a60: 4413 add r3, r2 + 8000a62: 60fb str r3, [r7, #12] + } + + while((HAL_GetTick() - tickstart) < wait) + 8000a64: bf00 nop + 8000a66: f7ff ffe1 bl 8000a2c + 8000a6a: 4602 mov r2, r0 + 8000a6c: 68bb ldr r3, [r7, #8] + 8000a6e: 1ad3 subs r3, r2, r3 + 8000a70: 68fa ldr r2, [r7, #12] + 8000a72: 429a cmp r2, r3 + 8000a74: d8f7 bhi.n 8000a66 + { + } +} + 8000a76: bf00 nop + 8000a78: bf00 nop + 8000a7a: 3710 adds r7, #16 + 8000a7c: 46bd mov sp, r7 + 8000a7e: bd80 pop {r7, pc} + 8000a80: 20000008 .word 0x20000008 + +08000a84 <__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) +{ + 8000a84: b480 push {r7} + 8000a86: b085 sub sp, #20 + 8000a88: af00 add r7, sp, #0 + 8000a8a: 6078 str r0, [r7, #4] + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 8000a8c: 687b ldr r3, [r7, #4] + 8000a8e: f003 0307 and.w r3, r3, #7 + 8000a92: 60fb str r3, [r7, #12] + + reg_value = SCB->AIRCR; /* read old register configuration */ + 8000a94: 4b0c ldr r3, [pc, #48] @ (8000ac8 <__NVIC_SetPriorityGrouping+0x44>) + 8000a96: 68db ldr r3, [r3, #12] + 8000a98: 60bb str r3, [r7, #8] + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + 8000a9a: 68ba ldr r2, [r7, #8] + 8000a9c: f64f 03ff movw r3, #63743 @ 0xf8ff + 8000aa0: 4013 ands r3, r2 + 8000aa2: 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 */ + 8000aa4: 68fb ldr r3, [r7, #12] + 8000aa6: 021a lsls r2, r3, #8 + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + 8000aa8: 68bb ldr r3, [r7, #8] + 8000aaa: 4313 orrs r3, r2 + reg_value = (reg_value | + 8000aac: f043 63bf orr.w r3, r3, #100139008 @ 0x5f80000 + 8000ab0: f443 3300 orr.w r3, r3, #131072 @ 0x20000 + 8000ab4: 60bb str r3, [r7, #8] + SCB->AIRCR = reg_value; + 8000ab6: 4a04 ldr r2, [pc, #16] @ (8000ac8 <__NVIC_SetPriorityGrouping+0x44>) + 8000ab8: 68bb ldr r3, [r7, #8] + 8000aba: 60d3 str r3, [r2, #12] +} + 8000abc: bf00 nop + 8000abe: 3714 adds r7, #20 + 8000ac0: 46bd mov sp, r7 + 8000ac2: bc80 pop {r7} + 8000ac4: 4770 bx lr + 8000ac6: bf00 nop + 8000ac8: e000ed00 .word 0xe000ed00 + +08000acc <__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) +{ + 8000acc: b480 push {r7} + 8000ace: af00 add r7, sp, #0 + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); + 8000ad0: 4b04 ldr r3, [pc, #16] @ (8000ae4 <__NVIC_GetPriorityGrouping+0x18>) + 8000ad2: 68db ldr r3, [r3, #12] + 8000ad4: 0a1b lsrs r3, r3, #8 + 8000ad6: f003 0307 and.w r3, r3, #7 +} + 8000ada: 4618 mov r0, r3 + 8000adc: 46bd mov sp, r7 + 8000ade: bc80 pop {r7} + 8000ae0: 4770 bx lr + 8000ae2: bf00 nop + 8000ae4: e000ed00 .word 0xe000ed00 + +08000ae8 <__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) +{ + 8000ae8: b480 push {r7} + 8000aea: b083 sub sp, #12 + 8000aec: af00 add r7, sp, #0 + 8000aee: 4603 mov r3, r0 + 8000af0: 6039 str r1, [r7, #0] + 8000af2: 71fb strb r3, [r7, #7] + if ((int32_t)(IRQn) >= 0) + 8000af4: f997 3007 ldrsb.w r3, [r7, #7] + 8000af8: 2b00 cmp r3, #0 + 8000afa: db0a blt.n 8000b12 <__NVIC_SetPriority+0x2a> + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 8000afc: 683b ldr r3, [r7, #0] + 8000afe: b2da uxtb r2, r3 + 8000b00: 490c ldr r1, [pc, #48] @ (8000b34 <__NVIC_SetPriority+0x4c>) + 8000b02: f997 3007 ldrsb.w r3, [r7, #7] + 8000b06: 0112 lsls r2, r2, #4 + 8000b08: b2d2 uxtb r2, r2 + 8000b0a: 440b add r3, r1 + 8000b0c: 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); + } +} + 8000b10: e00a b.n 8000b28 <__NVIC_SetPriority+0x40> + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 8000b12: 683b ldr r3, [r7, #0] + 8000b14: b2da uxtb r2, r3 + 8000b16: 4908 ldr r1, [pc, #32] @ (8000b38 <__NVIC_SetPriority+0x50>) + 8000b18: 79fb ldrb r3, [r7, #7] + 8000b1a: f003 030f and.w r3, r3, #15 + 8000b1e: 3b04 subs r3, #4 + 8000b20: 0112 lsls r2, r2, #4 + 8000b22: b2d2 uxtb r2, r2 + 8000b24: 440b add r3, r1 + 8000b26: 761a strb r2, [r3, #24] +} + 8000b28: bf00 nop + 8000b2a: 370c adds r7, #12 + 8000b2c: 46bd mov sp, r7 + 8000b2e: bc80 pop {r7} + 8000b30: 4770 bx lr + 8000b32: bf00 nop + 8000b34: e000e100 .word 0xe000e100 + 8000b38: e000ed00 .word 0xe000ed00 + +08000b3c : + \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) +{ + 8000b3c: b480 push {r7} + 8000b3e: b089 sub sp, #36 @ 0x24 + 8000b40: af00 add r7, sp, #0 + 8000b42: 60f8 str r0, [r7, #12] + 8000b44: 60b9 str r1, [r7, #8] + 8000b46: 607a str r2, [r7, #4] + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 8000b48: 68fb ldr r3, [r7, #12] + 8000b4a: f003 0307 and.w r3, r3, #7 + 8000b4e: 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); + 8000b50: 69fb ldr r3, [r7, #28] + 8000b52: f1c3 0307 rsb r3, r3, #7 + 8000b56: 2b04 cmp r3, #4 + 8000b58: bf28 it cs + 8000b5a: 2304 movcs r3, #4 + 8000b5c: 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)); + 8000b5e: 69fb ldr r3, [r7, #28] + 8000b60: 3304 adds r3, #4 + 8000b62: 2b06 cmp r3, #6 + 8000b64: d902 bls.n 8000b6c + 8000b66: 69fb ldr r3, [r7, #28] + 8000b68: 3b03 subs r3, #3 + 8000b6a: e000 b.n 8000b6e + 8000b6c: 2300 movs r3, #0 + 8000b6e: 617b str r3, [r7, #20] + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 8000b70: f04f 32ff mov.w r2, #4294967295 @ 0xffffffff + 8000b74: 69bb ldr r3, [r7, #24] + 8000b76: fa02 f303 lsl.w r3, r2, r3 + 8000b7a: 43da mvns r2, r3 + 8000b7c: 68bb ldr r3, [r7, #8] + 8000b7e: 401a ands r2, r3 + 8000b80: 697b ldr r3, [r7, #20] + 8000b82: 409a lsls r2, r3 + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + 8000b84: f04f 31ff mov.w r1, #4294967295 @ 0xffffffff + 8000b88: 697b ldr r3, [r7, #20] + 8000b8a: fa01 f303 lsl.w r3, r1, r3 + 8000b8e: 43d9 mvns r1, r3 + 8000b90: 687b ldr r3, [r7, #4] + 8000b92: 400b ands r3, r1 + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 8000b94: 4313 orrs r3, r2 + ); +} + 8000b96: 4618 mov r0, r3 + 8000b98: 3724 adds r7, #36 @ 0x24 + 8000b9a: 46bd mov sp, r7 + 8000b9c: bc80 pop {r7} + 8000b9e: 4770 bx lr + +08000ba0 : + \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) +{ + 8000ba0: b580 push {r7, lr} + 8000ba2: b082 sub sp, #8 + 8000ba4: af00 add r7, sp, #0 + 8000ba6: 6078 str r0, [r7, #4] + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + 8000ba8: 687b ldr r3, [r7, #4] + 8000baa: 3b01 subs r3, #1 + 8000bac: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 + 8000bb0: d301 bcc.n 8000bb6 + { + return (1UL); /* Reload value impossible */ + 8000bb2: 2301 movs r3, #1 + 8000bb4: e00f b.n 8000bd6 + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + 8000bb6: 4a0a ldr r2, [pc, #40] @ (8000be0 ) + 8000bb8: 687b ldr r3, [r7, #4] + 8000bba: 3b01 subs r3, #1 + 8000bbc: 6053 str r3, [r2, #4] + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + 8000bbe: 210f movs r1, #15 + 8000bc0: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff + 8000bc4: f7ff ff90 bl 8000ae8 <__NVIC_SetPriority> + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + 8000bc8: 4b05 ldr r3, [pc, #20] @ (8000be0 ) + 8000bca: 2200 movs r2, #0 + 8000bcc: 609a str r2, [r3, #8] + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + 8000bce: 4b04 ldr r3, [pc, #16] @ (8000be0 ) + 8000bd0: 2207 movs r2, #7 + 8000bd2: 601a str r2, [r3, #0] + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ + 8000bd4: 2300 movs r3, #0 +} + 8000bd6: 4618 mov r0, r3 + 8000bd8: 3708 adds r7, #8 + 8000bda: 46bd mov sp, r7 + 8000bdc: bd80 pop {r7, pc} + 8000bde: bf00 nop + 8000be0: e000e010 .word 0xe000e010 + +08000be4 : + * @note When the NVIC_PriorityGroup_0 is selected, IRQ pre-emption is no more possible. + * The pending IRQ priority will be managed only by the subpriority. + * @retval None + */ +void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + 8000be4: b580 push {r7, lr} + 8000be6: b082 sub sp, #8 + 8000be8: af00 add r7, sp, #0 + 8000bea: 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); + 8000bec: 6878 ldr r0, [r7, #4] + 8000bee: f7ff ff49 bl 8000a84 <__NVIC_SetPriorityGrouping> +} + 8000bf2: bf00 nop + 8000bf4: 3708 adds r7, #8 + 8000bf6: 46bd mov sp, r7 + 8000bf8: bd80 pop {r7, pc} + +08000bfa : + * 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) +{ + 8000bfa: b580 push {r7, lr} + 8000bfc: b086 sub sp, #24 + 8000bfe: af00 add r7, sp, #0 + 8000c00: 4603 mov r3, r0 + 8000c02: 60b9 str r1, [r7, #8] + 8000c04: 607a str r2, [r7, #4] + 8000c06: 73fb strb r3, [r7, #15] + uint32_t prioritygroup = 0x00; + 8000c08: 2300 movs r3, #0 + 8000c0a: 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(); + 8000c0c: f7ff ff5e bl 8000acc <__NVIC_GetPriorityGrouping> + 8000c10: 6178 str r0, [r7, #20] + + NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); + 8000c12: 687a ldr r2, [r7, #4] + 8000c14: 68b9 ldr r1, [r7, #8] + 8000c16: 6978 ldr r0, [r7, #20] + 8000c18: f7ff ff90 bl 8000b3c + 8000c1c: 4602 mov r2, r0 + 8000c1e: f997 300f ldrsb.w r3, [r7, #15] + 8000c22: 4611 mov r1, r2 + 8000c24: 4618 mov r0, r3 + 8000c26: f7ff ff5f bl 8000ae8 <__NVIC_SetPriority> +} + 8000c2a: bf00 nop + 8000c2c: 3718 adds r7, #24 + 8000c2e: 46bd mov sp, r7 + 8000c30: bd80 pop {r7, pc} + +08000c32 : + * @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) +{ + 8000c32: b580 push {r7, lr} + 8000c34: b082 sub sp, #8 + 8000c36: af00 add r7, sp, #0 + 8000c38: 6078 str r0, [r7, #4] + return SysTick_Config(TicksNumb); + 8000c3a: 6878 ldr r0, [r7, #4] + 8000c3c: f7ff ffb0 bl 8000ba0 + 8000c40: 4603 mov r3, r0 +} + 8000c42: 4618 mov r0, r3 + 8000c44: 3708 adds r7, #8 + 8000c46: 46bd mov sp, r7 + 8000c48: bd80 pop {r7, pc} + ... + +08000c4c : + * @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) +{ + 8000c4c: b480 push {r7} + 8000c4e: b087 sub sp, #28 + 8000c50: af00 add r7, sp, #0 + 8000c52: 6078 str r0, [r7, #4] + 8000c54: 6039 str r1, [r7, #0] + uint32_t position = 0x00; + 8000c56: 2300 movs r3, #0 + 8000c58: 617b str r3, [r7, #20] + uint32_t iocurrent = 0x00; + 8000c5a: 2300 movs r3, #0 + 8000c5c: 60fb str r3, [r7, #12] + uint32_t temp = 0x00; + 8000c5e: 2300 movs r3, #0 + 8000c60: 613b str r3, [r7, #16] + 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) != 0) + 8000c62: e160 b.n 8000f26 + { + /* Get current io position */ + iocurrent = (GPIO_Init->Pin) & (1U << position); + 8000c64: 683b ldr r3, [r7, #0] + 8000c66: 681a ldr r2, [r3, #0] + 8000c68: 2101 movs r1, #1 + 8000c6a: 697b ldr r3, [r7, #20] + 8000c6c: fa01 f303 lsl.w r3, r1, r3 + 8000c70: 4013 ands r3, r2 + 8000c72: 60fb str r3, [r7, #12] + + if (iocurrent) + 8000c74: 68fb ldr r3, [r7, #12] + 8000c76: 2b00 cmp r3, #0 + 8000c78: f000 8152 beq.w 8000f20 + { + /*--------------------- GPIO Mode Configuration ------------------------*/ + /* In case of Output or Alternate function mode selection */ + if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || + 8000c7c: 683b ldr r3, [r7, #0] + 8000c7e: 685b ldr r3, [r3, #4] + 8000c80: f003 0303 and.w r3, r3, #3 + 8000c84: 2b01 cmp r3, #1 + 8000c86: d005 beq.n 8000c94 + ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) + 8000c88: 683b ldr r3, [r7, #0] + 8000c8a: 685b ldr r3, [r3, #4] + 8000c8c: f003 0303 and.w r3, r3, #3 + if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || + 8000c90: 2b02 cmp r3, #2 + 8000c92: d130 bne.n 8000cf6 + { + /* Check the Speed parameter */ + assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + /* Configure the IO Speed */ + temp = GPIOx->OSPEEDR; + 8000c94: 687b ldr r3, [r7, #4] + 8000c96: 689b ldr r3, [r3, #8] + 8000c98: 613b str r3, [r7, #16] + CLEAR_BIT(temp, GPIO_OSPEEDER_OSPEEDR0 << (position * 2)); + 8000c9a: 697b ldr r3, [r7, #20] + 8000c9c: 005b lsls r3, r3, #1 + 8000c9e: 2203 movs r2, #3 + 8000ca0: fa02 f303 lsl.w r3, r2, r3 + 8000ca4: 43db mvns r3, r3 + 8000ca6: 693a ldr r2, [r7, #16] + 8000ca8: 4013 ands r3, r2 + 8000caa: 613b str r3, [r7, #16] + SET_BIT(temp, GPIO_Init->Speed << (position * 2)); + 8000cac: 683b ldr r3, [r7, #0] + 8000cae: 68da ldr r2, [r3, #12] + 8000cb0: 697b ldr r3, [r7, #20] + 8000cb2: 005b lsls r3, r3, #1 + 8000cb4: fa02 f303 lsl.w r3, r2, r3 + 8000cb8: 693a ldr r2, [r7, #16] + 8000cba: 4313 orrs r3, r2 + 8000cbc: 613b str r3, [r7, #16] + GPIOx->OSPEEDR = temp; + 8000cbe: 687b ldr r3, [r7, #4] + 8000cc0: 693a ldr r2, [r7, #16] + 8000cc2: 609a str r2, [r3, #8] + + /* Configure the IO Output Type */ + temp = GPIOx->OTYPER; + 8000cc4: 687b ldr r3, [r7, #4] + 8000cc6: 685b ldr r3, [r3, #4] + 8000cc8: 613b str r3, [r7, #16] + CLEAR_BIT(temp, GPIO_OTYPER_OT_0 << position) ; + 8000cca: 2201 movs r2, #1 + 8000ccc: 697b ldr r3, [r7, #20] + 8000cce: fa02 f303 lsl.w r3, r2, r3 + 8000cd2: 43db mvns r3, r3 + 8000cd4: 693a ldr r2, [r7, #16] + 8000cd6: 4013 ands r3, r2 + 8000cd8: 613b str r3, [r7, #16] + SET_BIT(temp, ((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); + 8000cda: 683b ldr r3, [r7, #0] + 8000cdc: 685b ldr r3, [r3, #4] + 8000cde: 091b lsrs r3, r3, #4 + 8000ce0: f003 0201 and.w r2, r3, #1 + 8000ce4: 697b ldr r3, [r7, #20] + 8000ce6: fa02 f303 lsl.w r3, r2, r3 + 8000cea: 693a ldr r2, [r7, #16] + 8000cec: 4313 orrs r3, r2 + 8000cee: 613b str r3, [r7, #16] + GPIOx->OTYPER = temp; + 8000cf0: 687b ldr r3, [r7, #4] + 8000cf2: 693a ldr r2, [r7, #16] + 8000cf4: 605a str r2, [r3, #4] + } + + if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) + 8000cf6: 683b ldr r3, [r7, #0] + 8000cf8: 685b ldr r3, [r3, #4] + 8000cfa: f003 0303 and.w r3, r3, #3 + 8000cfe: 2b03 cmp r3, #3 + 8000d00: d017 beq.n 8000d32 + { + /* Check the Pull parameter */ + assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); + + /* Activate the Pull-up or Pull down resistor for the current IO */ + temp = GPIOx->PUPDR; + 8000d02: 687b ldr r3, [r7, #4] + 8000d04: 68db ldr r3, [r3, #12] + 8000d06: 613b str r3, [r7, #16] + CLEAR_BIT(temp, GPIO_PUPDR_PUPDR0 << (position * 2)); + 8000d08: 697b ldr r3, [r7, #20] + 8000d0a: 005b lsls r3, r3, #1 + 8000d0c: 2203 movs r2, #3 + 8000d0e: fa02 f303 lsl.w r3, r2, r3 + 8000d12: 43db mvns r3, r3 + 8000d14: 693a ldr r2, [r7, #16] + 8000d16: 4013 ands r3, r2 + 8000d18: 613b str r3, [r7, #16] + SET_BIT(temp, (GPIO_Init->Pull) << (position * 2)); + 8000d1a: 683b ldr r3, [r7, #0] + 8000d1c: 689a ldr r2, [r3, #8] + 8000d1e: 697b ldr r3, [r7, #20] + 8000d20: 005b lsls r3, r3, #1 + 8000d22: fa02 f303 lsl.w r3, r2, r3 + 8000d26: 693a ldr r2, [r7, #16] + 8000d28: 4313 orrs r3, r2 + 8000d2a: 613b str r3, [r7, #16] + GPIOx->PUPDR = temp; + 8000d2c: 687b ldr r3, [r7, #4] + 8000d2e: 693a ldr r2, [r7, #16] + 8000d30: 60da str r2, [r3, #12] + } + + /* In case of Alternate function mode selection */ + if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) + 8000d32: 683b ldr r3, [r7, #0] + 8000d34: 685b ldr r3, [r3, #4] + 8000d36: f003 0303 and.w r3, r3, #3 + 8000d3a: 2b02 cmp r3, #2 + 8000d3c: d123 bne.n 8000d86 + assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); + assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); + + /* Configure Alternate function mapped with the current IO */ + /* Identify AFRL or AFRH register based on IO position*/ + temp = GPIOx->AFR[position >> 3]; + 8000d3e: 697b ldr r3, [r7, #20] + 8000d40: 08da lsrs r2, r3, #3 + 8000d42: 687b ldr r3, [r7, #4] + 8000d44: 3208 adds r2, #8 + 8000d46: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8000d4a: 613b str r3, [r7, #16] + CLEAR_BIT(temp, 0xFU << ((uint32_t)(position & 0x07U) * 4)); + 8000d4c: 697b ldr r3, [r7, #20] + 8000d4e: f003 0307 and.w r3, r3, #7 + 8000d52: 009b lsls r3, r3, #2 + 8000d54: 220f movs r2, #15 + 8000d56: fa02 f303 lsl.w r3, r2, r3 + 8000d5a: 43db mvns r3, r3 + 8000d5c: 693a ldr r2, [r7, #16] + 8000d5e: 4013 ands r3, r2 + 8000d60: 613b str r3, [r7, #16] + SET_BIT(temp, (uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & 0x07U) * 4)); + 8000d62: 683b ldr r3, [r7, #0] + 8000d64: 691a ldr r2, [r3, #16] + 8000d66: 697b ldr r3, [r7, #20] + 8000d68: f003 0307 and.w r3, r3, #7 + 8000d6c: 009b lsls r3, r3, #2 + 8000d6e: fa02 f303 lsl.w r3, r2, r3 + 8000d72: 693a ldr r2, [r7, #16] + 8000d74: 4313 orrs r3, r2 + 8000d76: 613b str r3, [r7, #16] + GPIOx->AFR[position >> 3] = temp; + 8000d78: 697b ldr r3, [r7, #20] + 8000d7a: 08da lsrs r2, r3, #3 + 8000d7c: 687b ldr r3, [r7, #4] + 8000d7e: 3208 adds r2, #8 + 8000d80: 6939 ldr r1, [r7, #16] + 8000d82: f843 1022 str.w r1, [r3, r2, lsl #2] + } + + /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ + temp = GPIOx->MODER; + 8000d86: 687b ldr r3, [r7, #4] + 8000d88: 681b ldr r3, [r3, #0] + 8000d8a: 613b str r3, [r7, #16] + CLEAR_BIT(temp, GPIO_MODER_MODER0 << (position * 2)); + 8000d8c: 697b ldr r3, [r7, #20] + 8000d8e: 005b lsls r3, r3, #1 + 8000d90: 2203 movs r2, #3 + 8000d92: fa02 f303 lsl.w r3, r2, r3 + 8000d96: 43db mvns r3, r3 + 8000d98: 693a ldr r2, [r7, #16] + 8000d9a: 4013 ands r3, r2 + 8000d9c: 613b str r3, [r7, #16] + SET_BIT(temp, (GPIO_Init->Mode & GPIO_MODE) << (position * 2)); + 8000d9e: 683b ldr r3, [r7, #0] + 8000da0: 685b ldr r3, [r3, #4] + 8000da2: f003 0203 and.w r2, r3, #3 + 8000da6: 697b ldr r3, [r7, #20] + 8000da8: 005b lsls r3, r3, #1 + 8000daa: fa02 f303 lsl.w r3, r2, r3 + 8000dae: 693a ldr r2, [r7, #16] + 8000db0: 4313 orrs r3, r2 + 8000db2: 613b str r3, [r7, #16] + GPIOx->MODER = temp; + 8000db4: 687b ldr r3, [r7, #4] + 8000db6: 693a ldr r2, [r7, #16] + 8000db8: 601a str r2, [r3, #0] + + /*--------------------- EXTI Mode Configuration ------------------------*/ + /* Configure the External Interrupt or event for the current IO */ + if ((GPIO_Init->Mode & EXTI_MODE) != 0x00U) + 8000dba: 683b ldr r3, [r7, #0] + 8000dbc: 685b ldr r3, [r3, #4] + 8000dbe: f403 3340 and.w r3, r3, #196608 @ 0x30000 + 8000dc2: 2b00 cmp r3, #0 + 8000dc4: f000 80ac beq.w 8000f20 + { + /* Enable SYSCFG Clock */ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + 8000dc8: 4b5e ldr r3, [pc, #376] @ (8000f44 ) + 8000dca: 6a1b ldr r3, [r3, #32] + 8000dcc: 4a5d ldr r2, [pc, #372] @ (8000f44 ) + 8000dce: f043 0301 orr.w r3, r3, #1 + 8000dd2: 6213 str r3, [r2, #32] + 8000dd4: 4b5b ldr r3, [pc, #364] @ (8000f44 ) + 8000dd6: 6a1b ldr r3, [r3, #32] + 8000dd8: f003 0301 and.w r3, r3, #1 + 8000ddc: 60bb str r3, [r7, #8] + 8000dde: 68bb ldr r3, [r7, #8] + + temp = SYSCFG->EXTICR[position >> 2]; + 8000de0: 4a59 ldr r2, [pc, #356] @ (8000f48 ) + 8000de2: 697b ldr r3, [r7, #20] + 8000de4: 089b lsrs r3, r3, #2 + 8000de6: 3302 adds r3, #2 + 8000de8: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 8000dec: 613b str r3, [r7, #16] + CLEAR_BIT(temp, (0x0FU) << (4 * (position & 0x03))); + 8000dee: 697b ldr r3, [r7, #20] + 8000df0: f003 0303 and.w r3, r3, #3 + 8000df4: 009b lsls r3, r3, #2 + 8000df6: 220f movs r2, #15 + 8000df8: fa02 f303 lsl.w r3, r2, r3 + 8000dfc: 43db mvns r3, r3 + 8000dfe: 693a ldr r2, [r7, #16] + 8000e00: 4013 ands r3, r2 + 8000e02: 613b str r3, [r7, #16] + SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03))); + 8000e04: 687b ldr r3, [r7, #4] + 8000e06: 4a51 ldr r2, [pc, #324] @ (8000f4c ) + 8000e08: 4293 cmp r3, r2 + 8000e0a: d025 beq.n 8000e58 + 8000e0c: 687b ldr r3, [r7, #4] + 8000e0e: 4a50 ldr r2, [pc, #320] @ (8000f50 ) + 8000e10: 4293 cmp r3, r2 + 8000e12: d01f beq.n 8000e54 + 8000e14: 687b ldr r3, [r7, #4] + 8000e16: 4a4f ldr r2, [pc, #316] @ (8000f54 ) + 8000e18: 4293 cmp r3, r2 + 8000e1a: d019 beq.n 8000e50 + 8000e1c: 687b ldr r3, [r7, #4] + 8000e1e: 4a4e ldr r2, [pc, #312] @ (8000f58 ) + 8000e20: 4293 cmp r3, r2 + 8000e22: d013 beq.n 8000e4c + 8000e24: 687b ldr r3, [r7, #4] + 8000e26: 4a4d ldr r2, [pc, #308] @ (8000f5c ) + 8000e28: 4293 cmp r3, r2 + 8000e2a: d00d beq.n 8000e48 + 8000e2c: 687b ldr r3, [r7, #4] + 8000e2e: 4a4c ldr r2, [pc, #304] @ (8000f60 ) + 8000e30: 4293 cmp r3, r2 + 8000e32: d007 beq.n 8000e44 + 8000e34: 687b ldr r3, [r7, #4] + 8000e36: 4a4b ldr r2, [pc, #300] @ (8000f64 ) + 8000e38: 4293 cmp r3, r2 + 8000e3a: d101 bne.n 8000e40 + 8000e3c: 2306 movs r3, #6 + 8000e3e: e00c b.n 8000e5a + 8000e40: 2307 movs r3, #7 + 8000e42: e00a b.n 8000e5a + 8000e44: 2305 movs r3, #5 + 8000e46: e008 b.n 8000e5a + 8000e48: 2304 movs r3, #4 + 8000e4a: e006 b.n 8000e5a + 8000e4c: 2303 movs r3, #3 + 8000e4e: e004 b.n 8000e5a + 8000e50: 2302 movs r3, #2 + 8000e52: e002 b.n 8000e5a + 8000e54: 2301 movs r3, #1 + 8000e56: e000 b.n 8000e5a + 8000e58: 2300 movs r3, #0 + 8000e5a: 697a ldr r2, [r7, #20] + 8000e5c: f002 0203 and.w r2, r2, #3 + 8000e60: 0092 lsls r2, r2, #2 + 8000e62: 4093 lsls r3, r2 + 8000e64: 693a ldr r2, [r7, #16] + 8000e66: 4313 orrs r3, r2 + 8000e68: 613b str r3, [r7, #16] + SYSCFG->EXTICR[position >> 2] = temp; + 8000e6a: 4937 ldr r1, [pc, #220] @ (8000f48 ) + 8000e6c: 697b ldr r3, [r7, #20] + 8000e6e: 089b lsrs r3, r3, #2 + 8000e70: 3302 adds r3, #2 + 8000e72: 693a ldr r2, [r7, #16] + 8000e74: f841 2023 str.w r2, [r1, r3, lsl #2] + + /* Clear Rising Falling edge configuration */ + temp = EXTI->RTSR; + 8000e78: 4b3b ldr r3, [pc, #236] @ (8000f68 ) + 8000e7a: 689b ldr r3, [r3, #8] + 8000e7c: 613b str r3, [r7, #16] + CLEAR_BIT(temp, (uint32_t)iocurrent); + 8000e7e: 68fb ldr r3, [r7, #12] + 8000e80: 43db mvns r3, r3 + 8000e82: 693a ldr r2, [r7, #16] + 8000e84: 4013 ands r3, r2 + 8000e86: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U) + 8000e88: 683b ldr r3, [r7, #0] + 8000e8a: 685b ldr r3, [r3, #4] + 8000e8c: f403 1380 and.w r3, r3, #1048576 @ 0x100000 + 8000e90: 2b00 cmp r3, #0 + 8000e92: d003 beq.n 8000e9c + { + SET_BIT(temp, iocurrent); + 8000e94: 693a ldr r2, [r7, #16] + 8000e96: 68fb ldr r3, [r7, #12] + 8000e98: 4313 orrs r3, r2 + 8000e9a: 613b str r3, [r7, #16] + } + EXTI->RTSR = temp; + 8000e9c: 4a32 ldr r2, [pc, #200] @ (8000f68 ) + 8000e9e: 693b ldr r3, [r7, #16] + 8000ea0: 6093 str r3, [r2, #8] + + temp = EXTI->FTSR; + 8000ea2: 4b31 ldr r3, [pc, #196] @ (8000f68 ) + 8000ea4: 68db ldr r3, [r3, #12] + 8000ea6: 613b str r3, [r7, #16] + CLEAR_BIT(temp, (uint32_t)iocurrent); + 8000ea8: 68fb ldr r3, [r7, #12] + 8000eaa: 43db mvns r3, r3 + 8000eac: 693a ldr r2, [r7, #16] + 8000eae: 4013 ands r3, r2 + 8000eb0: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U) + 8000eb2: 683b ldr r3, [r7, #0] + 8000eb4: 685b ldr r3, [r3, #4] + 8000eb6: f403 1300 and.w r3, r3, #2097152 @ 0x200000 + 8000eba: 2b00 cmp r3, #0 + 8000ebc: d003 beq.n 8000ec6 + { + SET_BIT(temp, iocurrent); + 8000ebe: 693a ldr r2, [r7, #16] + 8000ec0: 68fb ldr r3, [r7, #12] + 8000ec2: 4313 orrs r3, r2 + 8000ec4: 613b str r3, [r7, #16] + } + EXTI->FTSR = temp; + 8000ec6: 4a28 ldr r2, [pc, #160] @ (8000f68 ) + 8000ec8: 693b ldr r3, [r7, #16] + 8000eca: 60d3 str r3, [r2, #12] + + temp = EXTI->EMR; + 8000ecc: 4b26 ldr r3, [pc, #152] @ (8000f68 ) + 8000ece: 685b ldr r3, [r3, #4] + 8000ed0: 613b str r3, [r7, #16] + CLEAR_BIT(temp, (uint32_t)iocurrent); + 8000ed2: 68fb ldr r3, [r7, #12] + 8000ed4: 43db mvns r3, r3 + 8000ed6: 693a ldr r2, [r7, #16] + 8000ed8: 4013 ands r3, r2 + 8000eda: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & EXTI_EVT) != 0x00U) + 8000edc: 683b ldr r3, [r7, #0] + 8000ede: 685b ldr r3, [r3, #4] + 8000ee0: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8000ee4: 2b00 cmp r3, #0 + 8000ee6: d003 beq.n 8000ef0 + { + SET_BIT(temp, iocurrent); + 8000ee8: 693a ldr r2, [r7, #16] + 8000eea: 68fb ldr r3, [r7, #12] + 8000eec: 4313 orrs r3, r2 + 8000eee: 613b str r3, [r7, #16] + } + EXTI->EMR = temp; + 8000ef0: 4a1d ldr r2, [pc, #116] @ (8000f68 ) + 8000ef2: 693b ldr r3, [r7, #16] + 8000ef4: 6053 str r3, [r2, #4] + + /* Clear EXTI line configuration */ + temp = EXTI->IMR; + 8000ef6: 4b1c ldr r3, [pc, #112] @ (8000f68 ) + 8000ef8: 681b ldr r3, [r3, #0] + 8000efa: 613b str r3, [r7, #16] + CLEAR_BIT(temp, (uint32_t)iocurrent); + 8000efc: 68fb ldr r3, [r7, #12] + 8000efe: 43db mvns r3, r3 + 8000f00: 693a ldr r2, [r7, #16] + 8000f02: 4013 ands r3, r2 + 8000f04: 613b str r3, [r7, #16] + if ((GPIO_Init->Mode & EXTI_IT) != 0x00U) + 8000f06: 683b ldr r3, [r7, #0] + 8000f08: 685b ldr r3, [r3, #4] + 8000f0a: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 8000f0e: 2b00 cmp r3, #0 + 8000f10: d003 beq.n 8000f1a + { + SET_BIT(temp, iocurrent); + 8000f12: 693a ldr r2, [r7, #16] + 8000f14: 68fb ldr r3, [r7, #12] + 8000f16: 4313 orrs r3, r2 + 8000f18: 613b str r3, [r7, #16] + } + EXTI->IMR = temp; + 8000f1a: 4a13 ldr r2, [pc, #76] @ (8000f68 ) + 8000f1c: 693b ldr r3, [r7, #16] + 8000f1e: 6013 str r3, [r2, #0] + } + } + + position++; + 8000f20: 697b ldr r3, [r7, #20] + 8000f22: 3301 adds r3, #1 + 8000f24: 617b str r3, [r7, #20] + while (((GPIO_Init->Pin) >> position) != 0) + 8000f26: 683b ldr r3, [r7, #0] + 8000f28: 681a ldr r2, [r3, #0] + 8000f2a: 697b ldr r3, [r7, #20] + 8000f2c: fa22 f303 lsr.w r3, r2, r3 + 8000f30: 2b00 cmp r3, #0 + 8000f32: f47f ae97 bne.w 8000c64 + } +} + 8000f36: bf00 nop + 8000f38: bf00 nop + 8000f3a: 371c adds r7, #28 + 8000f3c: 46bd mov sp, r7 + 8000f3e: bc80 pop {r7} + 8000f40: 4770 bx lr + 8000f42: bf00 nop + 8000f44: 40023800 .word 0x40023800 + 8000f48: 40010000 .word 0x40010000 + 8000f4c: 40020000 .word 0x40020000 + 8000f50: 40020400 .word 0x40020400 + 8000f54: 40020800 .word 0x40020800 + 8000f58: 40020c00 .word 0x40020c00 + 8000f5c: 40021000 .word 0x40021000 + 8000f60: 40021400 .word 0x40021400 + 8000f64: 40021800 .word 0x40021800 + 8000f68: 40010400 .word 0x40010400 + +08000f6c : + * @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) +{ + 8000f6c: b480 push {r7} + 8000f6e: b083 sub sp, #12 + 8000f70: af00 add r7, sp, #0 + 8000f72: 6078 str r0, [r7, #4] + 8000f74: 460b mov r3, r1 + 8000f76: 807b strh r3, [r7, #2] + 8000f78: 4613 mov r3, r2 + 8000f7a: 707b strb r3, [r7, #1] + /* Check the parameters */ + assert_param(IS_GPIO_PIN(GPIO_Pin)); + assert_param(IS_GPIO_PIN_ACTION(PinState)); + + if (PinState != GPIO_PIN_RESET) + 8000f7c: 787b ldrb r3, [r7, #1] + 8000f7e: 2b00 cmp r3, #0 + 8000f80: d003 beq.n 8000f8a + { + GPIOx->BSRR = (uint32_t)GPIO_Pin; + 8000f82: 887a ldrh r2, [r7, #2] + 8000f84: 687b ldr r3, [r7, #4] + 8000f86: 619a str r2, [r3, #24] + } + else + { + GPIOx->BSRR = (uint32_t)GPIO_Pin << 16 ; + } +} + 8000f88: e003 b.n 8000f92 + GPIOx->BSRR = (uint32_t)GPIO_Pin << 16 ; + 8000f8a: 887b ldrh r3, [r7, #2] + 8000f8c: 041a lsls r2, r3, #16 + 8000f8e: 687b ldr r3, [r7, #4] + 8000f90: 619a str r2, [r3, #24] +} + 8000f92: bf00 nop + 8000f94: 370c adds r7, #12 + 8000f96: 46bd mov sp, r7 + 8000f98: bc80 pop {r7} + 8000f9a: 4770 bx lr + +08000f9c : + * 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) +{ + 8000f9c: b580 push {r7, lr} + 8000f9e: b088 sub sp, #32 + 8000fa0: af00 add r7, sp, #0 + 8000fa2: 6078 str r0, [r7, #4] + uint32_t tickstart; + HAL_StatusTypeDef status; + uint32_t sysclk_source, pll_config; + + /* Check the parameters */ + if(RCC_OscInitStruct == NULL) + 8000fa4: 687b ldr r3, [r7, #4] + 8000fa6: 2b00 cmp r3, #0 + 8000fa8: d101 bne.n 8000fae + { + return HAL_ERROR; + 8000faa: 2301 movs r3, #1 + 8000fac: e31d b.n 80015ea + } + + assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); + + sysclk_source = __HAL_RCC_GET_SYSCLK_SOURCE(); + 8000fae: 4b94 ldr r3, [pc, #592] @ (8001200 ) + 8000fb0: 689b ldr r3, [r3, #8] + 8000fb2: f003 030c and.w r3, r3, #12 + 8000fb6: 61bb str r3, [r7, #24] + pll_config = __HAL_RCC_GET_PLL_OSCSOURCE(); + 8000fb8: 4b91 ldr r3, [pc, #580] @ (8001200 ) + 8000fba: 689b ldr r3, [r3, #8] + 8000fbc: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 8000fc0: 617b str r3, [r7, #20] + + /*------------------------------- HSE Configuration ------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) + 8000fc2: 687b ldr r3, [r7, #4] + 8000fc4: 681b ldr r3, [r3, #0] + 8000fc6: f003 0301 and.w r3, r3, #1 + 8000fca: 2b00 cmp r3, #0 + 8000fcc: d07b beq.n 80010c6 + { + /* 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((sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSE) + 8000fce: 69bb ldr r3, [r7, #24] + 8000fd0: 2b08 cmp r3, #8 + 8000fd2: d006 beq.n 8000fe2 + || ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pll_config == RCC_PLLSOURCE_HSE))) + 8000fd4: 69bb ldr r3, [r7, #24] + 8000fd6: 2b0c cmp r3, #12 + 8000fd8: d10f bne.n 8000ffa + 8000fda: 697b ldr r3, [r7, #20] + 8000fdc: f5b3 3f80 cmp.w r3, #65536 @ 0x10000 + 8000fe0: d10b bne.n 8000ffa + { + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 8000fe2: 4b87 ldr r3, [pc, #540] @ (8001200 ) + 8000fe4: 681b ldr r3, [r3, #0] + 8000fe6: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8000fea: 2b00 cmp r3, #0 + 8000fec: d06a beq.n 80010c4 + 8000fee: 687b ldr r3, [r7, #4] + 8000ff0: 685b ldr r3, [r3, #4] + 8000ff2: 2b00 cmp r3, #0 + 8000ff4: d166 bne.n 80010c4 + { + return HAL_ERROR; + 8000ff6: 2301 movs r3, #1 + 8000ff8: e2f7 b.n 80015ea + } + } + else + { + /* Set the new HSE configuration ---------------------------------------*/ + __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); + 8000ffa: 687b ldr r3, [r7, #4] + 8000ffc: 685b ldr r3, [r3, #4] + 8000ffe: 2b01 cmp r3, #1 + 8001000: d106 bne.n 8001010 + 8001002: 4b7f ldr r3, [pc, #508] @ (8001200 ) + 8001004: 681b ldr r3, [r3, #0] + 8001006: 4a7e ldr r2, [pc, #504] @ (8001200 ) + 8001008: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 800100c: 6013 str r3, [r2, #0] + 800100e: e02d b.n 800106c + 8001010: 687b ldr r3, [r7, #4] + 8001012: 685b ldr r3, [r3, #4] + 8001014: 2b00 cmp r3, #0 + 8001016: d10c bne.n 8001032 + 8001018: 4b79 ldr r3, [pc, #484] @ (8001200 ) + 800101a: 681b ldr r3, [r3, #0] + 800101c: 4a78 ldr r2, [pc, #480] @ (8001200 ) + 800101e: f423 3380 bic.w r3, r3, #65536 @ 0x10000 + 8001022: 6013 str r3, [r2, #0] + 8001024: 4b76 ldr r3, [pc, #472] @ (8001200 ) + 8001026: 681b ldr r3, [r3, #0] + 8001028: 4a75 ldr r2, [pc, #468] @ (8001200 ) + 800102a: f423 2380 bic.w r3, r3, #262144 @ 0x40000 + 800102e: 6013 str r3, [r2, #0] + 8001030: e01c b.n 800106c + 8001032: 687b ldr r3, [r7, #4] + 8001034: 685b ldr r3, [r3, #4] + 8001036: 2b05 cmp r3, #5 + 8001038: d10c bne.n 8001054 + 800103a: 4b71 ldr r3, [pc, #452] @ (8001200 ) + 800103c: 681b ldr r3, [r3, #0] + 800103e: 4a70 ldr r2, [pc, #448] @ (8001200 ) + 8001040: f443 2380 orr.w r3, r3, #262144 @ 0x40000 + 8001044: 6013 str r3, [r2, #0] + 8001046: 4b6e ldr r3, [pc, #440] @ (8001200 ) + 8001048: 681b ldr r3, [r3, #0] + 800104a: 4a6d ldr r2, [pc, #436] @ (8001200 ) + 800104c: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 8001050: 6013 str r3, [r2, #0] + 8001052: e00b b.n 800106c + 8001054: 4b6a ldr r3, [pc, #424] @ (8001200 ) + 8001056: 681b ldr r3, [r3, #0] + 8001058: 4a69 ldr r2, [pc, #420] @ (8001200 ) + 800105a: f423 3380 bic.w r3, r3, #65536 @ 0x10000 + 800105e: 6013 str r3, [r2, #0] + 8001060: 4b67 ldr r3, [pc, #412] @ (8001200 ) + 8001062: 681b ldr r3, [r3, #0] + 8001064: 4a66 ldr r2, [pc, #408] @ (8001200 ) + 8001066: f423 2380 bic.w r3, r3, #262144 @ 0x40000 + 800106a: 6013 str r3, [r2, #0] + + /* Check the HSE State */ + if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) + 800106c: 687b ldr r3, [r7, #4] + 800106e: 685b ldr r3, [r3, #4] + 8001070: 2b00 cmp r3, #0 + 8001072: d013 beq.n 800109c + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001074: f7ff fcda bl 8000a2c + 8001078: 6138 str r0, [r7, #16] + + /* Wait till HSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == 0U) + 800107a: e008 b.n 800108e + { + if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) + 800107c: f7ff fcd6 bl 8000a2c + 8001080: 4602 mov r2, r0 + 8001082: 693b ldr r3, [r7, #16] + 8001084: 1ad3 subs r3, r2, r3 + 8001086: 2b64 cmp r3, #100 @ 0x64 + 8001088: d901 bls.n 800108e + { + return HAL_TIMEOUT; + 800108a: 2303 movs r3, #3 + 800108c: e2ad b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == 0U) + 800108e: 4b5c ldr r3, [pc, #368] @ (8001200 ) + 8001090: 681b ldr r3, [r3, #0] + 8001092: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8001096: 2b00 cmp r3, #0 + 8001098: d0f0 beq.n 800107c + 800109a: e014 b.n 80010c6 + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800109c: f7ff fcc6 bl 8000a2c + 80010a0: 6138 str r0, [r7, #16] + + /* Wait till HSE is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) + 80010a2: e008 b.n 80010b6 + { + if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) + 80010a4: f7ff fcc2 bl 8000a2c + 80010a8: 4602 mov r2, r0 + 80010aa: 693b ldr r3, [r7, #16] + 80010ac: 1ad3 subs r3, r2, r3 + 80010ae: 2b64 cmp r3, #100 @ 0x64 + 80010b0: d901 bls.n 80010b6 + { + return HAL_TIMEOUT; + 80010b2: 2303 movs r3, #3 + 80010b4: e299 b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) + 80010b6: 4b52 ldr r3, [pc, #328] @ (8001200 ) + 80010b8: 681b ldr r3, [r3, #0] + 80010ba: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 80010be: 2b00 cmp r3, #0 + 80010c0: d1f0 bne.n 80010a4 + 80010c2: e000 b.n 80010c6 + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 80010c4: bf00 nop + } + } + } + } + /*----------------------------- HSI Configuration --------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) + 80010c6: 687b ldr r3, [r7, #4] + 80010c8: 681b ldr r3, [r3, #0] + 80010ca: f003 0302 and.w r3, r3, #2 + 80010ce: 2b00 cmp r3, #0 + 80010d0: d05a beq.n 8001188 + /* 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((sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSI) + 80010d2: 69bb ldr r3, [r7, #24] + 80010d4: 2b04 cmp r3, #4 + 80010d6: d005 beq.n 80010e4 + || ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pll_config == RCC_PLLSOURCE_HSI))) + 80010d8: 69bb ldr r3, [r7, #24] + 80010da: 2b0c cmp r3, #12 + 80010dc: d119 bne.n 8001112 + 80010de: 697b ldr r3, [r7, #20] + 80010e0: 2b00 cmp r3, #0 + 80010e2: d116 bne.n 8001112 + { + /* When HSI is used as system clock it will not disabled */ + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) + 80010e4: 4b46 ldr r3, [pc, #280] @ (8001200 ) + 80010e6: 681b ldr r3, [r3, #0] + 80010e8: f003 0302 and.w r3, r3, #2 + 80010ec: 2b00 cmp r3, #0 + 80010ee: d005 beq.n 80010fc + 80010f0: 687b ldr r3, [r7, #4] + 80010f2: 68db ldr r3, [r3, #12] + 80010f4: 2b01 cmp r3, #1 + 80010f6: d001 beq.n 80010fc + { + return HAL_ERROR; + 80010f8: 2301 movs r3, #1 + 80010fa: e276 b.n 80015ea + } + /* Otherwise, just the calibration is allowed */ + else + { + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 80010fc: 4b40 ldr r3, [pc, #256] @ (8001200 ) + 80010fe: 685b ldr r3, [r3, #4] + 8001100: f423 52f8 bic.w r2, r3, #7936 @ 0x1f00 + 8001104: 687b ldr r3, [r7, #4] + 8001106: 691b ldr r3, [r3, #16] + 8001108: 021b lsls r3, r3, #8 + 800110a: 493d ldr r1, [pc, #244] @ (8001200 ) + 800110c: 4313 orrs r3, r2 + 800110e: 604b str r3, [r1, #4] + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) + 8001110: e03a b.n 8001188 + } + } + else + { + /* Check the HSI State */ + if(RCC_OscInitStruct->HSIState != RCC_HSI_OFF) + 8001112: 687b ldr r3, [r7, #4] + 8001114: 68db ldr r3, [r3, #12] + 8001116: 2b00 cmp r3, #0 + 8001118: d020 beq.n 800115c + { + /* Enable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_ENABLE(); + 800111a: 4b3a ldr r3, [pc, #232] @ (8001204 ) + 800111c: 2201 movs r2, #1 + 800111e: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001120: f7ff fc84 bl 8000a2c + 8001124: 6138 str r0, [r7, #16] + + /* Wait till HSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == 0U) + 8001126: e008 b.n 800113a + { + if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) + 8001128: f7ff fc80 bl 8000a2c + 800112c: 4602 mov r2, r0 + 800112e: 693b ldr r3, [r7, #16] + 8001130: 1ad3 subs r3, r2, r3 + 8001132: 2b02 cmp r3, #2 + 8001134: d901 bls.n 800113a + { + return HAL_TIMEOUT; + 8001136: 2303 movs r3, #3 + 8001138: e257 b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == 0U) + 800113a: 4b31 ldr r3, [pc, #196] @ (8001200 ) + 800113c: 681b ldr r3, [r3, #0] + 800113e: f003 0302 and.w r3, r3, #2 + 8001142: 2b00 cmp r3, #0 + 8001144: d0f0 beq.n 8001128 + } + } + + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 8001146: 4b2e ldr r3, [pc, #184] @ (8001200 ) + 8001148: 685b ldr r3, [r3, #4] + 800114a: f423 52f8 bic.w r2, r3, #7936 @ 0x1f00 + 800114e: 687b ldr r3, [r7, #4] + 8001150: 691b ldr r3, [r3, #16] + 8001152: 021b lsls r3, r3, #8 + 8001154: 492a ldr r1, [pc, #168] @ (8001200 ) + 8001156: 4313 orrs r3, r2 + 8001158: 604b str r3, [r1, #4] + 800115a: e015 b.n 8001188 + } + else + { + /* Disable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_DISABLE(); + 800115c: 4b29 ldr r3, [pc, #164] @ (8001204 ) + 800115e: 2200 movs r2, #0 + 8001160: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001162: f7ff fc63 bl 8000a2c + 8001166: 6138 str r0, [r7, #16] + + /* Wait till HSI is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) + 8001168: e008 b.n 800117c + { + if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) + 800116a: f7ff fc5f bl 8000a2c + 800116e: 4602 mov r2, r0 + 8001170: 693b ldr r3, [r7, #16] + 8001172: 1ad3 subs r3, r2, r3 + 8001174: 2b02 cmp r3, #2 + 8001176: d901 bls.n 800117c + { + return HAL_TIMEOUT; + 8001178: 2303 movs r3, #3 + 800117a: e236 b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) + 800117c: 4b20 ldr r3, [pc, #128] @ (8001200 ) + 800117e: 681b ldr r3, [r3, #0] + 8001180: f003 0302 and.w r3, r3, #2 + 8001184: 2b00 cmp r3, #0 + 8001186: d1f0 bne.n 800116a + } + } + } + } + /*----------------------------- MSI Configuration --------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_MSI) == RCC_OSCILLATORTYPE_MSI) + 8001188: 687b ldr r3, [r7, #4] + 800118a: 681b ldr r3, [r3, #0] + 800118c: f003 0310 and.w r3, r3, #16 + 8001190: 2b00 cmp r3, #0 + 8001192: f000 80b8 beq.w 8001306 + { + /* When the MSI is used as system clock it will not be disabled */ + if(sysclk_source == RCC_CFGR_SWS_MSI) + 8001196: 69bb ldr r3, [r7, #24] + 8001198: 2b00 cmp r3, #0 + 800119a: d170 bne.n 800127e + { + if((__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != 0U) && (RCC_OscInitStruct->MSIState == RCC_MSI_OFF)) + 800119c: 4b18 ldr r3, [pc, #96] @ (8001200 ) + 800119e: 681b ldr r3, [r3, #0] + 80011a0: f403 7300 and.w r3, r3, #512 @ 0x200 + 80011a4: 2b00 cmp r3, #0 + 80011a6: d005 beq.n 80011b4 + 80011a8: 687b ldr r3, [r7, #4] + 80011aa: 699b ldr r3, [r3, #24] + 80011ac: 2b00 cmp r3, #0 + 80011ae: d101 bne.n 80011b4 + { + return HAL_ERROR; + 80011b0: 2301 movs r3, #1 + 80011b2: e21a b.n 80015ea + assert_param(IS_RCC_MSI_CLOCK_RANGE(RCC_OscInitStruct->MSIClockRange)); + + /* To correctly read data from FLASH memory, the number of wait states (LATENCY) + must be correctly programmed according to the frequency of the CPU clock + (HCLK) and the supply voltage of the device. */ + if(RCC_OscInitStruct->MSIClockRange > __HAL_RCC_GET_MSI_RANGE()) + 80011b4: 687b ldr r3, [r7, #4] + 80011b6: 6a1a ldr r2, [r3, #32] + 80011b8: 4b11 ldr r3, [pc, #68] @ (8001200 ) + 80011ba: 685b ldr r3, [r3, #4] + 80011bc: f403 4360 and.w r3, r3, #57344 @ 0xe000 + 80011c0: 429a cmp r2, r3 + 80011c2: d921 bls.n 8001208 + { + /* First increase number of wait states update if necessary */ + if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) + 80011c4: 687b ldr r3, [r7, #4] + 80011c6: 6a1b ldr r3, [r3, #32] + 80011c8: 4618 mov r0, r3 + 80011ca: f000 fc09 bl 80019e0 + 80011ce: 4603 mov r3, r0 + 80011d0: 2b00 cmp r3, #0 + 80011d2: d001 beq.n 80011d8 + { + return HAL_ERROR; + 80011d4: 2301 movs r3, #1 + 80011d6: e208 b.n 80015ea + } + + /* Selects the Multiple Speed oscillator (MSI) clock range .*/ + __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); + 80011d8: 4b09 ldr r3, [pc, #36] @ (8001200 ) + 80011da: 685b ldr r3, [r3, #4] + 80011dc: f423 4260 bic.w r2, r3, #57344 @ 0xe000 + 80011e0: 687b ldr r3, [r7, #4] + 80011e2: 6a1b ldr r3, [r3, #32] + 80011e4: 4906 ldr r1, [pc, #24] @ (8001200 ) + 80011e6: 4313 orrs r3, r2 + 80011e8: 604b str r3, [r1, #4] + /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ + __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); + 80011ea: 4b05 ldr r3, [pc, #20] @ (8001200 ) + 80011ec: 685b ldr r3, [r3, #4] + 80011ee: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 + 80011f2: 687b ldr r3, [r7, #4] + 80011f4: 69db ldr r3, [r3, #28] + 80011f6: 061b lsls r3, r3, #24 + 80011f8: 4901 ldr r1, [pc, #4] @ (8001200 ) + 80011fa: 4313 orrs r3, r2 + 80011fc: 604b str r3, [r1, #4] + 80011fe: e020 b.n 8001242 + 8001200: 40023800 .word 0x40023800 + 8001204: 42470000 .word 0x42470000 + } + else + { + /* Else, keep current flash latency while decreasing applies */ + /* Selects the Multiple Speed oscillator (MSI) clock range .*/ + __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); + 8001208: 4b99 ldr r3, [pc, #612] @ (8001470 ) + 800120a: 685b ldr r3, [r3, #4] + 800120c: f423 4260 bic.w r2, r3, #57344 @ 0xe000 + 8001210: 687b ldr r3, [r7, #4] + 8001212: 6a1b ldr r3, [r3, #32] + 8001214: 4996 ldr r1, [pc, #600] @ (8001470 ) + 8001216: 4313 orrs r3, r2 + 8001218: 604b str r3, [r1, #4] + /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ + __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); + 800121a: 4b95 ldr r3, [pc, #596] @ (8001470 ) + 800121c: 685b ldr r3, [r3, #4] + 800121e: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 + 8001222: 687b ldr r3, [r7, #4] + 8001224: 69db ldr r3, [r3, #28] + 8001226: 061b lsls r3, r3, #24 + 8001228: 4991 ldr r1, [pc, #580] @ (8001470 ) + 800122a: 4313 orrs r3, r2 + 800122c: 604b str r3, [r1, #4] + + /* Decrease number of wait states update if necessary */ + if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) + 800122e: 687b ldr r3, [r7, #4] + 8001230: 6a1b ldr r3, [r3, #32] + 8001232: 4618 mov r0, r3 + 8001234: f000 fbd4 bl 80019e0 + 8001238: 4603 mov r3, r0 + 800123a: 2b00 cmp r3, #0 + 800123c: d001 beq.n 8001242 + { + return HAL_ERROR; + 800123e: 2301 movs r3, #1 + 8001240: e1d3 b.n 80015ea + } + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = (32768U * (1UL << ((RCC_OscInitStruct->MSIClockRange >> RCC_ICSCR_MSIRANGE_Pos) + 1U))) + 8001242: 687b ldr r3, [r7, #4] + 8001244: 6a1b ldr r3, [r3, #32] + 8001246: 0b5b lsrs r3, r3, #13 + 8001248: 3301 adds r3, #1 + 800124a: f44f 4200 mov.w r2, #32768 @ 0x8000 + 800124e: fa02 f303 lsl.w r3, r2, r3 + >> AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)]; + 8001252: 4a87 ldr r2, [pc, #540] @ (8001470 ) + 8001254: 6892 ldr r2, [r2, #8] + 8001256: 0912 lsrs r2, r2, #4 + 8001258: f002 020f and.w r2, r2, #15 + 800125c: 4985 ldr r1, [pc, #532] @ (8001474 ) + 800125e: 5c8a ldrb r2, [r1, r2] + 8001260: 40d3 lsrs r3, r2 + SystemCoreClock = (32768U * (1UL << ((RCC_OscInitStruct->MSIClockRange >> RCC_ICSCR_MSIRANGE_Pos) + 1U))) + 8001262: 4a85 ldr r2, [pc, #532] @ (8001478 ) + 8001264: 6013 str r3, [r2, #0] + + /* Configure the source of time base considering new system clocks settings*/ + status = HAL_InitTick(uwTickPrio); + 8001266: 4b85 ldr r3, [pc, #532] @ (800147c ) + 8001268: 681b ldr r3, [r3, #0] + 800126a: 4618 mov r0, r3 + 800126c: f7ff fb92 bl 8000994 + 8001270: 4603 mov r3, r0 + 8001272: 73fb strb r3, [r7, #15] + if(status != HAL_OK) + 8001274: 7bfb ldrb r3, [r7, #15] + 8001276: 2b00 cmp r3, #0 + 8001278: d045 beq.n 8001306 + { + return status; + 800127a: 7bfb ldrb r3, [r7, #15] + 800127c: e1b5 b.n 80015ea + { + /* Check MSI State */ + assert_param(IS_RCC_MSI(RCC_OscInitStruct->MSIState)); + + /* Check the MSI State */ + if(RCC_OscInitStruct->MSIState != RCC_MSI_OFF) + 800127e: 687b ldr r3, [r7, #4] + 8001280: 699b ldr r3, [r3, #24] + 8001282: 2b00 cmp r3, #0 + 8001284: d029 beq.n 80012da + { + /* Enable the Multi Speed oscillator (MSI). */ + __HAL_RCC_MSI_ENABLE(); + 8001286: 4b7e ldr r3, [pc, #504] @ (8001480 ) + 8001288: 2201 movs r2, #1 + 800128a: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800128c: f7ff fbce bl 8000a2c + 8001290: 6138 str r0, [r7, #16] + + /* Wait till MSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) == 0U) + 8001292: e008 b.n 80012a6 + { + if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) + 8001294: f7ff fbca bl 8000a2c + 8001298: 4602 mov r2, r0 + 800129a: 693b ldr r3, [r7, #16] + 800129c: 1ad3 subs r3, r2, r3 + 800129e: 2b02 cmp r3, #2 + 80012a0: d901 bls.n 80012a6 + { + return HAL_TIMEOUT; + 80012a2: 2303 movs r3, #3 + 80012a4: e1a1 b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) == 0U) + 80012a6: 4b72 ldr r3, [pc, #456] @ (8001470 ) + 80012a8: 681b ldr r3, [r3, #0] + 80012aa: f403 7300 and.w r3, r3, #512 @ 0x200 + 80012ae: 2b00 cmp r3, #0 + 80012b0: d0f0 beq.n 8001294 + /* Check MSICalibrationValue and MSIClockRange input parameters */ + assert_param(IS_RCC_MSICALIBRATION_VALUE(RCC_OscInitStruct->MSICalibrationValue)); + assert_param(IS_RCC_MSI_CLOCK_RANGE(RCC_OscInitStruct->MSIClockRange)); + + /* Selects the Multiple Speed oscillator (MSI) clock range .*/ + __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); + 80012b2: 4b6f ldr r3, [pc, #444] @ (8001470 ) + 80012b4: 685b ldr r3, [r3, #4] + 80012b6: f423 4260 bic.w r2, r3, #57344 @ 0xe000 + 80012ba: 687b ldr r3, [r7, #4] + 80012bc: 6a1b ldr r3, [r3, #32] + 80012be: 496c ldr r1, [pc, #432] @ (8001470 ) + 80012c0: 4313 orrs r3, r2 + 80012c2: 604b str r3, [r1, #4] + /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ + __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); + 80012c4: 4b6a ldr r3, [pc, #424] @ (8001470 ) + 80012c6: 685b ldr r3, [r3, #4] + 80012c8: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 + 80012cc: 687b ldr r3, [r7, #4] + 80012ce: 69db ldr r3, [r3, #28] + 80012d0: 061b lsls r3, r3, #24 + 80012d2: 4967 ldr r1, [pc, #412] @ (8001470 ) + 80012d4: 4313 orrs r3, r2 + 80012d6: 604b str r3, [r1, #4] + 80012d8: e015 b.n 8001306 + + } + else + { + /* Disable the Multi Speed oscillator (MSI). */ + __HAL_RCC_MSI_DISABLE(); + 80012da: 4b69 ldr r3, [pc, #420] @ (8001480 ) + 80012dc: 2200 movs r2, #0 + 80012de: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80012e0: f7ff fba4 bl 8000a2c + 80012e4: 6138 str r0, [r7, #16] + + /* Wait till MSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != 0U) + 80012e6: e008 b.n 80012fa + { + if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) + 80012e8: f7ff fba0 bl 8000a2c + 80012ec: 4602 mov r2, r0 + 80012ee: 693b ldr r3, [r7, #16] + 80012f0: 1ad3 subs r3, r2, r3 + 80012f2: 2b02 cmp r3, #2 + 80012f4: d901 bls.n 80012fa + { + return HAL_TIMEOUT; + 80012f6: 2303 movs r3, #3 + 80012f8: e177 b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != 0U) + 80012fa: 4b5d ldr r3, [pc, #372] @ (8001470 ) + 80012fc: 681b ldr r3, [r3, #0] + 80012fe: f403 7300 and.w r3, r3, #512 @ 0x200 + 8001302: 2b00 cmp r3, #0 + 8001304: d1f0 bne.n 80012e8 + } + } + } + } + /*------------------------------ LSI Configuration -------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) + 8001306: 687b ldr r3, [r7, #4] + 8001308: 681b ldr r3, [r3, #0] + 800130a: f003 0308 and.w r3, r3, #8 + 800130e: 2b00 cmp r3, #0 + 8001310: d030 beq.n 8001374 + { + /* Check the parameters */ + assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); + + /* Check the LSI State */ + if(RCC_OscInitStruct->LSIState != RCC_LSI_OFF) + 8001312: 687b ldr r3, [r7, #4] + 8001314: 695b ldr r3, [r3, #20] + 8001316: 2b00 cmp r3, #0 + 8001318: d016 beq.n 8001348 + { + /* Enable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_ENABLE(); + 800131a: 4b5a ldr r3, [pc, #360] @ (8001484 ) + 800131c: 2201 movs r2, #1 + 800131e: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001320: f7ff fb84 bl 8000a2c + 8001324: 6138 str r0, [r7, #16] + + /* Wait till LSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == 0U) + 8001326: e008 b.n 800133a + { + if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) + 8001328: f7ff fb80 bl 8000a2c + 800132c: 4602 mov r2, r0 + 800132e: 693b ldr r3, [r7, #16] + 8001330: 1ad3 subs r3, r2, r3 + 8001332: 2b02 cmp r3, #2 + 8001334: d901 bls.n 800133a + { + return HAL_TIMEOUT; + 8001336: 2303 movs r3, #3 + 8001338: e157 b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == 0U) + 800133a: 4b4d ldr r3, [pc, #308] @ (8001470 ) + 800133c: 6b5b ldr r3, [r3, #52] @ 0x34 + 800133e: f003 0302 and.w r3, r3, #2 + 8001342: 2b00 cmp r3, #0 + 8001344: d0f0 beq.n 8001328 + 8001346: e015 b.n 8001374 + } + } + else + { + /* Disable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_DISABLE(); + 8001348: 4b4e ldr r3, [pc, #312] @ (8001484 ) + 800134a: 2200 movs r2, #0 + 800134c: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 800134e: f7ff fb6d bl 8000a2c + 8001352: 6138 str r0, [r7, #16] + + /* Wait till LSI is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != 0U) + 8001354: e008 b.n 8001368 + { + if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) + 8001356: f7ff fb69 bl 8000a2c + 800135a: 4602 mov r2, r0 + 800135c: 693b ldr r3, [r7, #16] + 800135e: 1ad3 subs r3, r2, r3 + 8001360: 2b02 cmp r3, #2 + 8001362: d901 bls.n 8001368 + { + return HAL_TIMEOUT; + 8001364: 2303 movs r3, #3 + 8001366: e140 b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != 0U) + 8001368: 4b41 ldr r3, [pc, #260] @ (8001470 ) + 800136a: 6b5b ldr r3, [r3, #52] @ 0x34 + 800136c: f003 0302 and.w r3, r3, #2 + 8001370: 2b00 cmp r3, #0 + 8001372: d1f0 bne.n 8001356 + } + } + } + } + /*------------------------------ LSE Configuration -------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) + 8001374: 687b ldr r3, [r7, #4] + 8001376: 681b ldr r3, [r3, #0] + 8001378: f003 0304 and.w r3, r3, #4 + 800137c: 2b00 cmp r3, #0 + 800137e: f000 80b5 beq.w 80014ec + { + FlagStatus pwrclkchanged = RESET; + 8001382: 2300 movs r3, #0 + 8001384: 77fb strb r3, [r7, #31] + /* Check the parameters */ + assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); + + /* Update LSE configuration in Backup Domain control register */ + /* Requires to enable write access to Backup Domain of necessary */ + if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + 8001386: 4b3a ldr r3, [pc, #232] @ (8001470 ) + 8001388: 6a5b ldr r3, [r3, #36] @ 0x24 + 800138a: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 800138e: 2b00 cmp r3, #0 + 8001390: d10d bne.n 80013ae + { + __HAL_RCC_PWR_CLK_ENABLE(); + 8001392: 4b37 ldr r3, [pc, #220] @ (8001470 ) + 8001394: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001396: 4a36 ldr r2, [pc, #216] @ (8001470 ) + 8001398: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 800139c: 6253 str r3, [r2, #36] @ 0x24 + 800139e: 4b34 ldr r3, [pc, #208] @ (8001470 ) + 80013a0: 6a5b ldr r3, [r3, #36] @ 0x24 + 80013a2: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 80013a6: 60bb str r3, [r7, #8] + 80013a8: 68bb ldr r3, [r7, #8] + pwrclkchanged = SET; + 80013aa: 2301 movs r3, #1 + 80013ac: 77fb strb r3, [r7, #31] + } + + if(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 80013ae: 4b36 ldr r3, [pc, #216] @ (8001488 ) + 80013b0: 681b ldr r3, [r3, #0] + 80013b2: f403 7380 and.w r3, r3, #256 @ 0x100 + 80013b6: 2b00 cmp r3, #0 + 80013b8: d118 bne.n 80013ec + { + /* Enable write access to Backup domain */ + SET_BIT(PWR->CR, PWR_CR_DBP); + 80013ba: 4b33 ldr r3, [pc, #204] @ (8001488 ) + 80013bc: 681b ldr r3, [r3, #0] + 80013be: 4a32 ldr r2, [pc, #200] @ (8001488 ) + 80013c0: f443 7380 orr.w r3, r3, #256 @ 0x100 + 80013c4: 6013 str r3, [r2, #0] + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + 80013c6: f7ff fb31 bl 8000a2c + 80013ca: 6138 str r0, [r7, #16] + + while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 80013cc: e008 b.n 80013e0 + { + if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + 80013ce: f7ff fb2d bl 8000a2c + 80013d2: 4602 mov r2, r0 + 80013d4: 693b ldr r3, [r7, #16] + 80013d6: 1ad3 subs r3, r2, r3 + 80013d8: 2b64 cmp r3, #100 @ 0x64 + 80013da: d901 bls.n 80013e0 + { + return HAL_TIMEOUT; + 80013dc: 2303 movs r3, #3 + 80013de: e104 b.n 80015ea + while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) + 80013e0: 4b29 ldr r3, [pc, #164] @ (8001488 ) + 80013e2: 681b ldr r3, [r3, #0] + 80013e4: f403 7380 and.w r3, r3, #256 @ 0x100 + 80013e8: 2b00 cmp r3, #0 + 80013ea: d0f0 beq.n 80013ce + } + } + } + + /* Set the new LSE configuration -----------------------------------------*/ + __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); + 80013ec: 687b ldr r3, [r7, #4] + 80013ee: 689b ldr r3, [r3, #8] + 80013f0: 2b01 cmp r3, #1 + 80013f2: d106 bne.n 8001402 + 80013f4: 4b1e ldr r3, [pc, #120] @ (8001470 ) + 80013f6: 6b5b ldr r3, [r3, #52] @ 0x34 + 80013f8: 4a1d ldr r2, [pc, #116] @ (8001470 ) + 80013fa: f443 7380 orr.w r3, r3, #256 @ 0x100 + 80013fe: 6353 str r3, [r2, #52] @ 0x34 + 8001400: e02d b.n 800145e + 8001402: 687b ldr r3, [r7, #4] + 8001404: 689b ldr r3, [r3, #8] + 8001406: 2b00 cmp r3, #0 + 8001408: d10c bne.n 8001424 + 800140a: 4b19 ldr r3, [pc, #100] @ (8001470 ) + 800140c: 6b5b ldr r3, [r3, #52] @ 0x34 + 800140e: 4a18 ldr r2, [pc, #96] @ (8001470 ) + 8001410: f423 7380 bic.w r3, r3, #256 @ 0x100 + 8001414: 6353 str r3, [r2, #52] @ 0x34 + 8001416: 4b16 ldr r3, [pc, #88] @ (8001470 ) + 8001418: 6b5b ldr r3, [r3, #52] @ 0x34 + 800141a: 4a15 ldr r2, [pc, #84] @ (8001470 ) + 800141c: f423 6380 bic.w r3, r3, #1024 @ 0x400 + 8001420: 6353 str r3, [r2, #52] @ 0x34 + 8001422: e01c b.n 800145e + 8001424: 687b ldr r3, [r7, #4] + 8001426: 689b ldr r3, [r3, #8] + 8001428: 2b05 cmp r3, #5 + 800142a: d10c bne.n 8001446 + 800142c: 4b10 ldr r3, [pc, #64] @ (8001470 ) + 800142e: 6b5b ldr r3, [r3, #52] @ 0x34 + 8001430: 4a0f ldr r2, [pc, #60] @ (8001470 ) + 8001432: f443 6380 orr.w r3, r3, #1024 @ 0x400 + 8001436: 6353 str r3, [r2, #52] @ 0x34 + 8001438: 4b0d ldr r3, [pc, #52] @ (8001470 ) + 800143a: 6b5b ldr r3, [r3, #52] @ 0x34 + 800143c: 4a0c ldr r2, [pc, #48] @ (8001470 ) + 800143e: f443 7380 orr.w r3, r3, #256 @ 0x100 + 8001442: 6353 str r3, [r2, #52] @ 0x34 + 8001444: e00b b.n 800145e + 8001446: 4b0a ldr r3, [pc, #40] @ (8001470 ) + 8001448: 6b5b ldr r3, [r3, #52] @ 0x34 + 800144a: 4a09 ldr r2, [pc, #36] @ (8001470 ) + 800144c: f423 7380 bic.w r3, r3, #256 @ 0x100 + 8001450: 6353 str r3, [r2, #52] @ 0x34 + 8001452: 4b07 ldr r3, [pc, #28] @ (8001470 ) + 8001454: 6b5b ldr r3, [r3, #52] @ 0x34 + 8001456: 4a06 ldr r2, [pc, #24] @ (8001470 ) + 8001458: f423 6380 bic.w r3, r3, #1024 @ 0x400 + 800145c: 6353 str r3, [r2, #52] @ 0x34 + /* Check the LSE State */ + if(RCC_OscInitStruct->LSEState != RCC_LSE_OFF) + 800145e: 687b ldr r3, [r7, #4] + 8001460: 689b ldr r3, [r3, #8] + 8001462: 2b00 cmp r3, #0 + 8001464: d024 beq.n 80014b0 + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001466: f7ff fae1 bl 8000a2c + 800146a: 6138 str r0, [r7, #16] + + /* Wait till LSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == 0U) + 800146c: e019 b.n 80014a2 + 800146e: bf00 nop + 8001470: 40023800 .word 0x40023800 + 8001474: 08002070 .word 0x08002070 + 8001478: 20000000 .word 0x20000000 + 800147c: 20000004 .word 0x20000004 + 8001480: 42470020 .word 0x42470020 + 8001484: 42470680 .word 0x42470680 + 8001488: 40007000 .word 0x40007000 + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + 800148c: f7ff face bl 8000a2c + 8001490: 4602 mov r2, r0 + 8001492: 693b ldr r3, [r7, #16] + 8001494: 1ad3 subs r3, r2, r3 + 8001496: f241 3288 movw r2, #5000 @ 0x1388 + 800149a: 4293 cmp r3, r2 + 800149c: d901 bls.n 80014a2 + { + return HAL_TIMEOUT; + 800149e: 2303 movs r3, #3 + 80014a0: e0a3 b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == 0U) + 80014a2: 4b54 ldr r3, [pc, #336] @ (80015f4 ) + 80014a4: 6b5b ldr r3, [r3, #52] @ 0x34 + 80014a6: f403 7300 and.w r3, r3, #512 @ 0x200 + 80014aa: 2b00 cmp r3, #0 + 80014ac: d0ee beq.n 800148c + 80014ae: e014 b.n 80014da + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80014b0: f7ff fabc bl 8000a2c + 80014b4: 6138 str r0, [r7, #16] + + /* Wait till LSE is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != 0U) + 80014b6: e00a b.n 80014ce + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + 80014b8: f7ff fab8 bl 8000a2c + 80014bc: 4602 mov r2, r0 + 80014be: 693b ldr r3, [r7, #16] + 80014c0: 1ad3 subs r3, r2, r3 + 80014c2: f241 3288 movw r2, #5000 @ 0x1388 + 80014c6: 4293 cmp r3, r2 + 80014c8: d901 bls.n 80014ce + { + return HAL_TIMEOUT; + 80014ca: 2303 movs r3, #3 + 80014cc: e08d b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != 0U) + 80014ce: 4b49 ldr r3, [pc, #292] @ (80015f4 ) + 80014d0: 6b5b ldr r3, [r3, #52] @ 0x34 + 80014d2: f403 7300 and.w r3, r3, #512 @ 0x200 + 80014d6: 2b00 cmp r3, #0 + 80014d8: d1ee bne.n 80014b8 + } + } + } + + /* Require to disable power clock if necessary */ + if(pwrclkchanged == SET) + 80014da: 7ffb ldrb r3, [r7, #31] + 80014dc: 2b01 cmp r3, #1 + 80014de: d105 bne.n 80014ec + { + __HAL_RCC_PWR_CLK_DISABLE(); + 80014e0: 4b44 ldr r3, [pc, #272] @ (80015f4 ) + 80014e2: 6a5b ldr r3, [r3, #36] @ 0x24 + 80014e4: 4a43 ldr r2, [pc, #268] @ (80015f4 ) + 80014e6: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 80014ea: 6253 str r3, [r2, #36] @ 0x24 + } + + /*-------------------------------- PLL Configuration -----------------------*/ + /* Check the parameters */ + assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); + if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) + 80014ec: 687b ldr r3, [r7, #4] + 80014ee: 6a5b ldr r3, [r3, #36] @ 0x24 + 80014f0: 2b00 cmp r3, #0 + 80014f2: d079 beq.n 80015e8 + { + /* Check if the PLL is used as system clock or not */ + if(sysclk_source != RCC_SYSCLKSOURCE_STATUS_PLLCLK) + 80014f4: 69bb ldr r3, [r7, #24] + 80014f6: 2b0c cmp r3, #12 + 80014f8: d056 beq.n 80015a8 + { + if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) + 80014fa: 687b ldr r3, [r7, #4] + 80014fc: 6a5b ldr r3, [r3, #36] @ 0x24 + 80014fe: 2b02 cmp r3, #2 + 8001500: d13b bne.n 800157a + assert_param(IS_RCC_PLLSOURCE(RCC_OscInitStruct->PLL.PLLSource)); + assert_param(IS_RCC_PLL_MUL(RCC_OscInitStruct->PLL.PLLMUL)); + assert_param(IS_RCC_PLL_DIV(RCC_OscInitStruct->PLL.PLLDIV)); + + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 8001502: 4b3d ldr r3, [pc, #244] @ (80015f8 ) + 8001504: 2200 movs r2, #0 + 8001506: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001508: f7ff fa90 bl 8000a2c + 800150c: 6138 str r0, [r7, #16] + + /* Wait till PLL is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) + 800150e: e008 b.n 8001522 + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 8001510: f7ff fa8c bl 8000a2c + 8001514: 4602 mov r2, r0 + 8001516: 693b ldr r3, [r7, #16] + 8001518: 1ad3 subs r3, r2, r3 + 800151a: 2b02 cmp r3, #2 + 800151c: d901 bls.n 8001522 + { + return HAL_TIMEOUT; + 800151e: 2303 movs r3, #3 + 8001520: e063 b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) + 8001522: 4b34 ldr r3, [pc, #208] @ (80015f4 ) + 8001524: 681b ldr r3, [r3, #0] + 8001526: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 800152a: 2b00 cmp r3, #0 + 800152c: d1f0 bne.n 8001510 + } + } + + /* Configure the main PLL clock source, multiplication and division factors. */ + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + 800152e: 4b31 ldr r3, [pc, #196] @ (80015f4 ) + 8001530: 689b ldr r3, [r3, #8] + 8001532: f423 027d bic.w r2, r3, #16580608 @ 0xfd0000 + 8001536: 687b ldr r3, [r7, #4] + 8001538: 6a99 ldr r1, [r3, #40] @ 0x28 + 800153a: 687b ldr r3, [r7, #4] + 800153c: 6adb ldr r3, [r3, #44] @ 0x2c + 800153e: 4319 orrs r1, r3 + 8001540: 687b ldr r3, [r7, #4] + 8001542: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001544: 430b orrs r3, r1 + 8001546: 492b ldr r1, [pc, #172] @ (80015f4 ) + 8001548: 4313 orrs r3, r2 + 800154a: 608b str r3, [r1, #8] + RCC_OscInitStruct->PLL.PLLMUL, + RCC_OscInitStruct->PLL.PLLDIV); + /* Enable the main PLL. */ + __HAL_RCC_PLL_ENABLE(); + 800154c: 4b2a ldr r3, [pc, #168] @ (80015f8 ) + 800154e: 2201 movs r2, #1 + 8001550: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001552: f7ff fa6b bl 8000a2c + 8001556: 6138 str r0, [r7, #16] + + /* Wait till PLL is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == 0U) + 8001558: e008 b.n 800156c + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 800155a: f7ff fa67 bl 8000a2c + 800155e: 4602 mov r2, r0 + 8001560: 693b ldr r3, [r7, #16] + 8001562: 1ad3 subs r3, r2, r3 + 8001564: 2b02 cmp r3, #2 + 8001566: d901 bls.n 800156c + { + return HAL_TIMEOUT; + 8001568: 2303 movs r3, #3 + 800156a: e03e b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == 0U) + 800156c: 4b21 ldr r3, [pc, #132] @ (80015f4 ) + 800156e: 681b ldr r3, [r3, #0] + 8001570: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 8001574: 2b00 cmp r3, #0 + 8001576: d0f0 beq.n 800155a + 8001578: e036 b.n 80015e8 + } + } + else + { + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 800157a: 4b1f ldr r3, [pc, #124] @ (80015f8 ) + 800157c: 2200 movs r2, #0 + 800157e: 601a str r2, [r3, #0] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 8001580: f7ff fa54 bl 8000a2c + 8001584: 6138 str r0, [r7, #16] + + /* Wait till PLL is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) + 8001586: e008 b.n 800159a + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 8001588: f7ff fa50 bl 8000a2c + 800158c: 4602 mov r2, r0 + 800158e: 693b ldr r3, [r7, #16] + 8001590: 1ad3 subs r3, r2, r3 + 8001592: 2b02 cmp r3, #2 + 8001594: d901 bls.n 800159a + { + return HAL_TIMEOUT; + 8001596: 2303 movs r3, #3 + 8001598: e027 b.n 80015ea + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) + 800159a: 4b16 ldr r3, [pc, #88] @ (80015f4 ) + 800159c: 681b ldr r3, [r3, #0] + 800159e: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 80015a2: 2b00 cmp r3, #0 + 80015a4: d1f0 bne.n 8001588 + 80015a6: e01f b.n 80015e8 + } + } + else + { + /* Check if there is a request to disable the PLL used as System clock source */ + if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) + 80015a8: 687b ldr r3, [r7, #4] + 80015aa: 6a5b ldr r3, [r3, #36] @ 0x24 + 80015ac: 2b01 cmp r3, #1 + 80015ae: d101 bne.n 80015b4 + { + return HAL_ERROR; + 80015b0: 2301 movs r3, #1 + 80015b2: e01a b.n 80015ea + } + else + { + /* Do not return HAL_ERROR if request repeats the current configuration */ + pll_config = RCC->CFGR; + 80015b4: 4b0f ldr r3, [pc, #60] @ (80015f4 ) + 80015b6: 689b ldr r3, [r3, #8] + 80015b8: 617b str r3, [r7, #20] + if((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 80015ba: 697b ldr r3, [r7, #20] + 80015bc: f403 3280 and.w r2, r3, #65536 @ 0x10000 + 80015c0: 687b ldr r3, [r7, #4] + 80015c2: 6a9b ldr r3, [r3, #40] @ 0x28 + 80015c4: 429a cmp r2, r3 + 80015c6: d10d bne.n 80015e4 + (READ_BIT(pll_config, RCC_CFGR_PLLMUL) != RCC_OscInitStruct->PLL.PLLMUL) || + 80015c8: 697b ldr r3, [r7, #20] + 80015ca: f403 1270 and.w r2, r3, #3932160 @ 0x3c0000 + 80015ce: 687b ldr r3, [r7, #4] + 80015d0: 6adb ldr r3, [r3, #44] @ 0x2c + if((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || + 80015d2: 429a cmp r2, r3 + 80015d4: d106 bne.n 80015e4 + (READ_BIT(pll_config, RCC_CFGR_PLLDIV) != RCC_OscInitStruct->PLL.PLLDIV)) + 80015d6: 697b ldr r3, [r7, #20] + 80015d8: f403 0240 and.w r2, r3, #12582912 @ 0xc00000 + 80015dc: 687b ldr r3, [r7, #4] + 80015de: 6b1b ldr r3, [r3, #48] @ 0x30 + (READ_BIT(pll_config, RCC_CFGR_PLLMUL) != RCC_OscInitStruct->PLL.PLLMUL) || + 80015e0: 429a cmp r2, r3 + 80015e2: d001 beq.n 80015e8 + { + return HAL_ERROR; + 80015e4: 2301 movs r3, #1 + 80015e6: e000 b.n 80015ea + } + } + } + } + + return HAL_OK; + 80015e8: 2300 movs r3, #0 +} + 80015ea: 4618 mov r0, r3 + 80015ec: 3720 adds r7, #32 + 80015ee: 46bd mov sp, r7 + 80015f0: bd80 pop {r7, pc} + 80015f2: bf00 nop + 80015f4: 40023800 .word 0x40023800 + 80015f8: 42470060 .word 0x42470060 + +080015fc : + * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency + * (for more details refer to section above "Initialization/de-initialization functions") + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) +{ + 80015fc: b580 push {r7, lr} + 80015fe: b084 sub sp, #16 + 8001600: af00 add r7, sp, #0 + 8001602: 6078 str r0, [r7, #4] + 8001604: 6039 str r1, [r7, #0] + uint32_t tickstart; + HAL_StatusTypeDef status; + + /* Check the parameters */ + if(RCC_ClkInitStruct == NULL) + 8001606: 687b ldr r3, [r7, #4] + 8001608: 2b00 cmp r3, #0 + 800160a: d101 bne.n 8001610 + { + return HAL_ERROR; + 800160c: 2301 movs r3, #1 + 800160e: e11a b.n 8001846 + /* To correctly read data from FLASH memory, the number of wait states (LATENCY) + must be correctly programmed according to the frequency of the CPU clock + (HCLK) and the supply voltage of the device. */ + + /* Increasing the number of wait states because of higher CPU frequency */ + if(FLatency > __HAL_FLASH_GET_LATENCY()) + 8001610: 4b8f ldr r3, [pc, #572] @ (8001850 ) + 8001612: 681b ldr r3, [r3, #0] + 8001614: f003 0301 and.w r3, r3, #1 + 8001618: 683a ldr r2, [r7, #0] + 800161a: 429a cmp r2, r3 + 800161c: d919 bls.n 8001652 + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 800161e: 683b ldr r3, [r7, #0] + 8001620: 2b01 cmp r3, #1 + 8001622: d105 bne.n 8001630 + 8001624: 4b8a ldr r3, [pc, #552] @ (8001850 ) + 8001626: 681b ldr r3, [r3, #0] + 8001628: 4a89 ldr r2, [pc, #548] @ (8001850 ) + 800162a: f043 0304 orr.w r3, r3, #4 + 800162e: 6013 str r3, [r2, #0] + 8001630: 4b87 ldr r3, [pc, #540] @ (8001850 ) + 8001632: 681b ldr r3, [r3, #0] + 8001634: f023 0201 bic.w r2, r3, #1 + 8001638: 4985 ldr r1, [pc, #532] @ (8001850 ) + 800163a: 683b ldr r3, [r7, #0] + 800163c: 4313 orrs r3, r2 + 800163e: 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) + 8001640: 4b83 ldr r3, [pc, #524] @ (8001850 ) + 8001642: 681b ldr r3, [r3, #0] + 8001644: f003 0301 and.w r3, r3, #1 + 8001648: 683a ldr r2, [r7, #0] + 800164a: 429a cmp r2, r3 + 800164c: d001 beq.n 8001652 + { + return HAL_ERROR; + 800164e: 2301 movs r3, #1 + 8001650: e0f9 b.n 8001846 + } + } + + /*-------------------------- HCLK Configuration --------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + 8001652: 687b ldr r3, [r7, #4] + 8001654: 681b ldr r3, [r3, #0] + 8001656: f003 0302 and.w r3, r3, #2 + 800165a: 2b00 cmp r3, #0 + 800165c: d008 beq.n 8001670 + { + assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); + 800165e: 4b7d ldr r3, [pc, #500] @ (8001854 ) + 8001660: 689b ldr r3, [r3, #8] + 8001662: f023 02f0 bic.w r2, r3, #240 @ 0xf0 + 8001666: 687b ldr r3, [r7, #4] + 8001668: 689b ldr r3, [r3, #8] + 800166a: 497a ldr r1, [pc, #488] @ (8001854 ) + 800166c: 4313 orrs r3, r2 + 800166e: 608b str r3, [r1, #8] + } + + /*------------------------- SYSCLK Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) + 8001670: 687b ldr r3, [r7, #4] + 8001672: 681b ldr r3, [r3, #0] + 8001674: f003 0301 and.w r3, r3, #1 + 8001678: 2b00 cmp r3, #0 + 800167a: f000 808e beq.w 800179a + { + assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); + + /* HSE is selected as System Clock Source */ + if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + 800167e: 687b ldr r3, [r7, #4] + 8001680: 685b ldr r3, [r3, #4] + 8001682: 2b02 cmp r3, #2 + 8001684: d107 bne.n 8001696 + { + /* Check the HSE ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == 0U) + 8001686: 4b73 ldr r3, [pc, #460] @ (8001854 ) + 8001688: 681b ldr r3, [r3, #0] + 800168a: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 800168e: 2b00 cmp r3, #0 + 8001690: d121 bne.n 80016d6 + { + return HAL_ERROR; + 8001692: 2301 movs r3, #1 + 8001694: e0d7 b.n 8001846 + } + } + /* PLL is selected as System Clock Source */ + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + 8001696: 687b ldr r3, [r7, #4] + 8001698: 685b ldr r3, [r3, #4] + 800169a: 2b03 cmp r3, #3 + 800169c: d107 bne.n 80016ae + { + /* Check the PLL ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == 0U) + 800169e: 4b6d ldr r3, [pc, #436] @ (8001854 ) + 80016a0: 681b ldr r3, [r3, #0] + 80016a2: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 80016a6: 2b00 cmp r3, #0 + 80016a8: d115 bne.n 80016d6 + { + return HAL_ERROR; + 80016aa: 2301 movs r3, #1 + 80016ac: e0cb b.n 8001846 + } + } + /* HSI is selected as System Clock Source */ + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSI) + 80016ae: 687b ldr r3, [r7, #4] + 80016b0: 685b ldr r3, [r3, #4] + 80016b2: 2b01 cmp r3, #1 + 80016b4: d107 bne.n 80016c6 + { + /* Check the HSI ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == 0U) + 80016b6: 4b67 ldr r3, [pc, #412] @ (8001854 ) + 80016b8: 681b ldr r3, [r3, #0] + 80016ba: f003 0302 and.w r3, r3, #2 + 80016be: 2b00 cmp r3, #0 + 80016c0: d109 bne.n 80016d6 + { + return HAL_ERROR; + 80016c2: 2301 movs r3, #1 + 80016c4: e0bf b.n 8001846 + } + /* MSI is selected as System Clock Source */ + else + { + /* Check the MSI ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) == 0U) + 80016c6: 4b63 ldr r3, [pc, #396] @ (8001854 ) + 80016c8: 681b ldr r3, [r3, #0] + 80016ca: f403 7300 and.w r3, r3, #512 @ 0x200 + 80016ce: 2b00 cmp r3, #0 + 80016d0: d101 bne.n 80016d6 + { + return HAL_ERROR; + 80016d2: 2301 movs r3, #1 + 80016d4: e0b7 b.n 8001846 + } + } + __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); + 80016d6: 4b5f ldr r3, [pc, #380] @ (8001854 ) + 80016d8: 689b ldr r3, [r3, #8] + 80016da: f023 0203 bic.w r2, r3, #3 + 80016de: 687b ldr r3, [r7, #4] + 80016e0: 685b ldr r3, [r3, #4] + 80016e2: 495c ldr r1, [pc, #368] @ (8001854 ) + 80016e4: 4313 orrs r3, r2 + 80016e6: 608b str r3, [r1, #8] + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + 80016e8: f7ff f9a0 bl 8000a2c + 80016ec: 60f8 str r0, [r7, #12] + + if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + 80016ee: 687b ldr r3, [r7, #4] + 80016f0: 685b ldr r3, [r3, #4] + 80016f2: 2b02 cmp r3, #2 + 80016f4: d112 bne.n 800171c + { + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSE) + 80016f6: e00a b.n 800170e + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + 80016f8: f7ff f998 bl 8000a2c + 80016fc: 4602 mov r2, r0 + 80016fe: 68fb ldr r3, [r7, #12] + 8001700: 1ad3 subs r3, r2, r3 + 8001702: f241 3288 movw r2, #5000 @ 0x1388 + 8001706: 4293 cmp r3, r2 + 8001708: d901 bls.n 800170e + { + return HAL_TIMEOUT; + 800170a: 2303 movs r3, #3 + 800170c: e09b b.n 8001846 + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSE) + 800170e: 4b51 ldr r3, [pc, #324] @ (8001854 ) + 8001710: 689b ldr r3, [r3, #8] + 8001712: f003 030c and.w r3, r3, #12 + 8001716: 2b08 cmp r3, #8 + 8001718: d1ee bne.n 80016f8 + 800171a: e03e b.n 800179a + } + } + } + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + 800171c: 687b ldr r3, [r7, #4] + 800171e: 685b ldr r3, [r3, #4] + 8001720: 2b03 cmp r3, #3 + 8001722: d112 bne.n 800174a + { + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) + 8001724: e00a b.n 800173c + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + 8001726: f7ff f981 bl 8000a2c + 800172a: 4602 mov r2, r0 + 800172c: 68fb ldr r3, [r7, #12] + 800172e: 1ad3 subs r3, r2, r3 + 8001730: f241 3288 movw r2, #5000 @ 0x1388 + 8001734: 4293 cmp r3, r2 + 8001736: d901 bls.n 800173c + { + return HAL_TIMEOUT; + 8001738: 2303 movs r3, #3 + 800173a: e084 b.n 8001846 + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) + 800173c: 4b45 ldr r3, [pc, #276] @ (8001854 ) + 800173e: 689b ldr r3, [r3, #8] + 8001740: f003 030c and.w r3, r3, #12 + 8001744: 2b0c cmp r3, #12 + 8001746: d1ee bne.n 8001726 + 8001748: e027 b.n 800179a + } + } + } + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSI) + 800174a: 687b ldr r3, [r7, #4] + 800174c: 685b ldr r3, [r3, #4] + 800174e: 2b01 cmp r3, #1 + 8001750: d11d bne.n 800178e + { + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSI) + 8001752: e00a b.n 800176a + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + 8001754: f7ff f96a bl 8000a2c + 8001758: 4602 mov r2, r0 + 800175a: 68fb ldr r3, [r7, #12] + 800175c: 1ad3 subs r3, r2, r3 + 800175e: f241 3288 movw r2, #5000 @ 0x1388 + 8001762: 4293 cmp r3, r2 + 8001764: d901 bls.n 800176a + { + return HAL_TIMEOUT; + 8001766: 2303 movs r3, #3 + 8001768: e06d b.n 8001846 + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSI) + 800176a: 4b3a ldr r3, [pc, #232] @ (8001854 ) + 800176c: 689b ldr r3, [r3, #8] + 800176e: f003 030c and.w r3, r3, #12 + 8001772: 2b04 cmp r3, #4 + 8001774: d1ee bne.n 8001754 + 8001776: e010 b.n 800179a + } + else + { + while(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_MSI) + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + 8001778: f7ff f958 bl 8000a2c + 800177c: 4602 mov r2, r0 + 800177e: 68fb ldr r3, [r7, #12] + 8001780: 1ad3 subs r3, r2, r3 + 8001782: f241 3288 movw r2, #5000 @ 0x1388 + 8001786: 4293 cmp r3, r2 + 8001788: d901 bls.n 800178e + { + return HAL_TIMEOUT; + 800178a: 2303 movs r3, #3 + 800178c: e05b b.n 8001846 + while(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_MSI) + 800178e: 4b31 ldr r3, [pc, #196] @ (8001854 ) + 8001790: 689b ldr r3, [r3, #8] + 8001792: f003 030c and.w r3, r3, #12 + 8001796: 2b00 cmp r3, #0 + 8001798: d1ee bne.n 8001778 + } + } + } + } + /* Decreasing the number of wait states because of lower CPU frequency */ + if(FLatency < __HAL_FLASH_GET_LATENCY()) + 800179a: 4b2d ldr r3, [pc, #180] @ (8001850 ) + 800179c: 681b ldr r3, [r3, #0] + 800179e: f003 0301 and.w r3, r3, #1 + 80017a2: 683a ldr r2, [r7, #0] + 80017a4: 429a cmp r2, r3 + 80017a6: d219 bcs.n 80017dc + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 80017a8: 683b ldr r3, [r7, #0] + 80017aa: 2b01 cmp r3, #1 + 80017ac: d105 bne.n 80017ba + 80017ae: 4b28 ldr r3, [pc, #160] @ (8001850 ) + 80017b0: 681b ldr r3, [r3, #0] + 80017b2: 4a27 ldr r2, [pc, #156] @ (8001850 ) + 80017b4: f043 0304 orr.w r3, r3, #4 + 80017b8: 6013 str r3, [r2, #0] + 80017ba: 4b25 ldr r3, [pc, #148] @ (8001850 ) + 80017bc: 681b ldr r3, [r3, #0] + 80017be: f023 0201 bic.w r2, r3, #1 + 80017c2: 4923 ldr r1, [pc, #140] @ (8001850 ) + 80017c4: 683b ldr r3, [r7, #0] + 80017c6: 4313 orrs r3, r2 + 80017c8: 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) + 80017ca: 4b21 ldr r3, [pc, #132] @ (8001850 ) + 80017cc: 681b ldr r3, [r3, #0] + 80017ce: f003 0301 and.w r3, r3, #1 + 80017d2: 683a ldr r2, [r7, #0] + 80017d4: 429a cmp r2, r3 + 80017d6: d001 beq.n 80017dc + { + return HAL_ERROR; + 80017d8: 2301 movs r3, #1 + 80017da: e034 b.n 8001846 + } + } + + /*-------------------------- PCLK1 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 80017dc: 687b ldr r3, [r7, #4] + 80017de: 681b ldr r3, [r3, #0] + 80017e0: f003 0304 and.w r3, r3, #4 + 80017e4: 2b00 cmp r3, #0 + 80017e6: d008 beq.n 80017fa + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); + 80017e8: 4b1a ldr r3, [pc, #104] @ (8001854 ) + 80017ea: 689b ldr r3, [r3, #8] + 80017ec: f423 62e0 bic.w r2, r3, #1792 @ 0x700 + 80017f0: 687b ldr r3, [r7, #4] + 80017f2: 68db ldr r3, [r3, #12] + 80017f4: 4917 ldr r1, [pc, #92] @ (8001854 ) + 80017f6: 4313 orrs r3, r2 + 80017f8: 608b str r3, [r1, #8] + } + + /*-------------------------- PCLK2 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 80017fa: 687b ldr r3, [r7, #4] + 80017fc: 681b ldr r3, [r3, #0] + 80017fe: f003 0308 and.w r3, r3, #8 + 8001802: 2b00 cmp r3, #0 + 8001804: d009 beq.n 800181a + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); + 8001806: 4b13 ldr r3, [pc, #76] @ (8001854 ) + 8001808: 689b ldr r3, [r3, #8] + 800180a: f423 5260 bic.w r2, r3, #14336 @ 0x3800 + 800180e: 687b ldr r3, [r7, #4] + 8001810: 691b ldr r3, [r3, #16] + 8001812: 00db lsls r3, r3, #3 + 8001814: 490f ldr r1, [pc, #60] @ (8001854 ) + 8001816: 4313 orrs r3, r2 + 8001818: 608b str r3, [r1, #8] + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_Pos]; + 800181a: f000 f823 bl 8001864 + 800181e: 4602 mov r2, r0 + 8001820: 4b0c ldr r3, [pc, #48] @ (8001854 ) + 8001822: 689b ldr r3, [r3, #8] + 8001824: 091b lsrs r3, r3, #4 + 8001826: f003 030f and.w r3, r3, #15 + 800182a: 490b ldr r1, [pc, #44] @ (8001858 ) + 800182c: 5ccb ldrb r3, [r1, r3] + 800182e: fa22 f303 lsr.w r3, r2, r3 + 8001832: 4a0a ldr r2, [pc, #40] @ (800185c ) + 8001834: 6013 str r3, [r2, #0] + + /* Configure the source of time base considering new system clocks settings*/ + status = HAL_InitTick(uwTickPrio); + 8001836: 4b0a ldr r3, [pc, #40] @ (8001860 ) + 8001838: 681b ldr r3, [r3, #0] + 800183a: 4618 mov r0, r3 + 800183c: f7ff f8aa bl 8000994 + 8001840: 4603 mov r3, r0 + 8001842: 72fb strb r3, [r7, #11] + + return status; + 8001844: 7afb ldrb r3, [r7, #11] +} + 8001846: 4618 mov r0, r3 + 8001848: 3710 adds r7, #16 + 800184a: 46bd mov sp, r7 + 800184c: bd80 pop {r7, pc} + 800184e: bf00 nop + 8001850: 40023c00 .word 0x40023c00 + 8001854: 40023800 .word 0x40023800 + 8001858: 08002070 .word 0x08002070 + 800185c: 20000000 .word 0x20000000 + 8001860: 20000004 .word 0x20000004 + +08001864 : + * right SYSCLK value. Otherwise, any configuration based on this function will be incorrect. + * + * @retval SYSCLK frequency + */ +uint32_t HAL_RCC_GetSysClockFreq(void) +{ + 8001864: e92d 4fb0 stmdb sp!, {r4, r5, r7, r8, r9, sl, fp, lr} + 8001868: b08e sub sp, #56 @ 0x38 + 800186a: af00 add r7, sp, #0 + uint32_t tmpreg, pllm, plld, pllvco, msiclkrange, sysclockfreq; + + tmpreg = RCC->CFGR; + 800186c: 4b58 ldr r3, [pc, #352] @ (80019d0 ) + 800186e: 689b ldr r3, [r3, #8] + 8001870: 62fb str r3, [r7, #44] @ 0x2c + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (tmpreg & RCC_CFGR_SWS) + 8001872: 6afb ldr r3, [r7, #44] @ 0x2c + 8001874: f003 030c and.w r3, r3, #12 + 8001878: 2b0c cmp r3, #12 + 800187a: d00d beq.n 8001898 + 800187c: 2b0c cmp r3, #12 + 800187e: f200 8092 bhi.w 80019a6 + 8001882: 2b04 cmp r3, #4 + 8001884: d002 beq.n 800188c + 8001886: 2b08 cmp r3, #8 + 8001888: d003 beq.n 8001892 + 800188a: e08c b.n 80019a6 + { + case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ + { + sysclockfreq = HSI_VALUE; + 800188c: 4b51 ldr r3, [pc, #324] @ (80019d4 ) + 800188e: 633b str r3, [r7, #48] @ 0x30 + break; + 8001890: e097 b.n 80019c2 + } + case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock */ + { + sysclockfreq = HSE_VALUE; + 8001892: 4b51 ldr r3, [pc, #324] @ (80019d8 ) + 8001894: 633b str r3, [r7, #48] @ 0x30 + break; + 8001896: e094 b.n 80019c2 + } + case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock */ + { + pllm = PLLMulTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMUL) >> RCC_CFGR_PLLMUL_Pos]; + 8001898: 6afb ldr r3, [r7, #44] @ 0x2c + 800189a: 0c9b lsrs r3, r3, #18 + 800189c: f003 020f and.w r2, r3, #15 + 80018a0: 4b4e ldr r3, [pc, #312] @ (80019dc ) + 80018a2: 5c9b ldrb r3, [r3, r2] + 80018a4: 62bb str r3, [r7, #40] @ 0x28 + plld = ((uint32_t)(tmpreg & RCC_CFGR_PLLDIV) >> RCC_CFGR_PLLDIV_Pos) + 1U; + 80018a6: 6afb ldr r3, [r7, #44] @ 0x2c + 80018a8: 0d9b lsrs r3, r3, #22 + 80018aa: f003 0303 and.w r3, r3, #3 + 80018ae: 3301 adds r3, #1 + 80018b0: 627b str r3, [r7, #36] @ 0x24 + if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLSOURCE_HSI) + 80018b2: 4b47 ldr r3, [pc, #284] @ (80019d0 ) + 80018b4: 689b ldr r3, [r3, #8] + 80018b6: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 80018ba: 2b00 cmp r3, #0 + 80018bc: d021 beq.n 8001902 + { + /* HSE used as PLL clock source */ + pllvco = (uint32_t)(((uint64_t)HSE_VALUE * (uint64_t)pllm) / (uint64_t)plld); + 80018be: 6abb ldr r3, [r7, #40] @ 0x28 + 80018c0: 2200 movs r2, #0 + 80018c2: 61bb str r3, [r7, #24] + 80018c4: 61fa str r2, [r7, #28] + 80018c6: 4b44 ldr r3, [pc, #272] @ (80019d8 ) + 80018c8: e9d7 8906 ldrd r8, r9, [r7, #24] + 80018cc: 464a mov r2, r9 + 80018ce: fb03 f202 mul.w r2, r3, r2 + 80018d2: 2300 movs r3, #0 + 80018d4: 4644 mov r4, r8 + 80018d6: fb04 f303 mul.w r3, r4, r3 + 80018da: 4413 add r3, r2 + 80018dc: 4a3e ldr r2, [pc, #248] @ (80019d8 ) + 80018de: 4644 mov r4, r8 + 80018e0: fba4 0102 umull r0, r1, r4, r2 + 80018e4: 440b add r3, r1 + 80018e6: 4619 mov r1, r3 + 80018e8: 6a7b ldr r3, [r7, #36] @ 0x24 + 80018ea: 2200 movs r2, #0 + 80018ec: 613b str r3, [r7, #16] + 80018ee: 617a str r2, [r7, #20] + 80018f0: e9d7 2304 ldrd r2, r3, [r7, #16] + 80018f4: f7fe fc42 bl 800017c <__aeabi_uldivmod> + 80018f8: 4602 mov r2, r0 + 80018fa: 460b mov r3, r1 + 80018fc: 4613 mov r3, r2 + 80018fe: 637b str r3, [r7, #52] @ 0x34 + 8001900: e04e b.n 80019a0 + } + else + { + /* HSI used as PLL clock source */ + pllvco = (uint32_t)(((uint64_t)HSI_VALUE * (uint64_t)pllm) / (uint64_t)plld); + 8001902: 6abb ldr r3, [r7, #40] @ 0x28 + 8001904: 2200 movs r2, #0 + 8001906: 469a mov sl, r3 + 8001908: 4693 mov fp, r2 + 800190a: 4652 mov r2, sl + 800190c: 465b mov r3, fp + 800190e: f04f 0000 mov.w r0, #0 + 8001912: f04f 0100 mov.w r1, #0 + 8001916: 0159 lsls r1, r3, #5 + 8001918: ea41 61d2 orr.w r1, r1, r2, lsr #27 + 800191c: 0150 lsls r0, r2, #5 + 800191e: 4602 mov r2, r0 + 8001920: 460b mov r3, r1 + 8001922: ebb2 080a subs.w r8, r2, sl + 8001926: eb63 090b sbc.w r9, r3, fp + 800192a: f04f 0200 mov.w r2, #0 + 800192e: f04f 0300 mov.w r3, #0 + 8001932: ea4f 1389 mov.w r3, r9, lsl #6 + 8001936: ea43 6398 orr.w r3, r3, r8, lsr #26 + 800193a: ea4f 1288 mov.w r2, r8, lsl #6 + 800193e: ebb2 0408 subs.w r4, r2, r8 + 8001942: eb63 0509 sbc.w r5, r3, r9 + 8001946: f04f 0200 mov.w r2, #0 + 800194a: f04f 0300 mov.w r3, #0 + 800194e: 00eb lsls r3, r5, #3 + 8001950: ea43 7354 orr.w r3, r3, r4, lsr #29 + 8001954: 00e2 lsls r2, r4, #3 + 8001956: 4614 mov r4, r2 + 8001958: 461d mov r5, r3 + 800195a: eb14 030a adds.w r3, r4, sl + 800195e: 603b str r3, [r7, #0] + 8001960: eb45 030b adc.w r3, r5, fp + 8001964: 607b str r3, [r7, #4] + 8001966: f04f 0200 mov.w r2, #0 + 800196a: f04f 0300 mov.w r3, #0 + 800196e: e9d7 4500 ldrd r4, r5, [r7] + 8001972: 4629 mov r1, r5 + 8001974: 028b lsls r3, r1, #10 + 8001976: 4620 mov r0, r4 + 8001978: 4629 mov r1, r5 + 800197a: 4604 mov r4, r0 + 800197c: ea43 5394 orr.w r3, r3, r4, lsr #22 + 8001980: 4601 mov r1, r0 + 8001982: 028a lsls r2, r1, #10 + 8001984: 4610 mov r0, r2 + 8001986: 4619 mov r1, r3 + 8001988: 6a7b ldr r3, [r7, #36] @ 0x24 + 800198a: 2200 movs r2, #0 + 800198c: 60bb str r3, [r7, #8] + 800198e: 60fa str r2, [r7, #12] + 8001990: e9d7 2302 ldrd r2, r3, [r7, #8] + 8001994: f7fe fbf2 bl 800017c <__aeabi_uldivmod> + 8001998: 4602 mov r2, r0 + 800199a: 460b mov r3, r1 + 800199c: 4613 mov r3, r2 + 800199e: 637b str r3, [r7, #52] @ 0x34 + } + sysclockfreq = pllvco; + 80019a0: 6b7b ldr r3, [r7, #52] @ 0x34 + 80019a2: 633b str r3, [r7, #48] @ 0x30 + break; + 80019a4: e00d b.n 80019c2 + } + case RCC_SYSCLKSOURCE_STATUS_MSI: /* MSI used as system clock source */ + default: /* MSI used as system clock */ + { + msiclkrange = (RCC->ICSCR & RCC_ICSCR_MSIRANGE ) >> RCC_ICSCR_MSIRANGE_Pos; + 80019a6: 4b0a ldr r3, [pc, #40] @ (80019d0 ) + 80019a8: 685b ldr r3, [r3, #4] + 80019aa: 0b5b lsrs r3, r3, #13 + 80019ac: f003 0307 and.w r3, r3, #7 + 80019b0: 623b str r3, [r7, #32] + sysclockfreq = (32768U * (1UL << (msiclkrange + 1U))); + 80019b2: 6a3b ldr r3, [r7, #32] + 80019b4: 3301 adds r3, #1 + 80019b6: f44f 4200 mov.w r2, #32768 @ 0x8000 + 80019ba: fa02 f303 lsl.w r3, r2, r3 + 80019be: 633b str r3, [r7, #48] @ 0x30 + break; + 80019c0: bf00 nop + } + } + return sysclockfreq; + 80019c2: 6b3b ldr r3, [r7, #48] @ 0x30 +} + 80019c4: 4618 mov r0, r3 + 80019c6: 3738 adds r7, #56 @ 0x38 + 80019c8: 46bd mov sp, r7 + 80019ca: e8bd 8fb0 ldmia.w sp!, {r4, r5, r7, r8, r9, sl, fp, pc} + 80019ce: bf00 nop + 80019d0: 40023800 .word 0x40023800 + 80019d4: 00f42400 .word 0x00f42400 + 80019d8: 016e3600 .word 0x016e3600 + 80019dc: 08002064 .word 0x08002064 + +080019e0 : + voltage range + * @param MSIrange MSI range value from RCC_MSIRANGE_0 to RCC_MSIRANGE_6 + * @retval HAL status + */ +static HAL_StatusTypeDef RCC_SetFlashLatencyFromMSIRange(uint32_t MSIrange) +{ + 80019e0: b480 push {r7} + 80019e2: b087 sub sp, #28 + 80019e4: af00 add r7, sp, #0 + 80019e6: 6078 str r0, [r7, #4] + uint32_t vos; + uint32_t latency = FLASH_LATENCY_0; /* default value 0WS */ + 80019e8: 2300 movs r3, #0 + 80019ea: 613b str r3, [r7, #16] + + /* HCLK can reach 4 MHz only if AHB prescaler = 1 */ + if (READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) == RCC_SYSCLK_DIV1) + 80019ec: 4b29 ldr r3, [pc, #164] @ (8001a94 ) + 80019ee: 689b ldr r3, [r3, #8] + 80019f0: f003 03f0 and.w r3, r3, #240 @ 0xf0 + 80019f4: 2b00 cmp r3, #0 + 80019f6: d12c bne.n 8001a52 + { + if(__HAL_RCC_PWR_IS_CLK_ENABLED()) + 80019f8: 4b26 ldr r3, [pc, #152] @ (8001a94 ) + 80019fa: 6a5b ldr r3, [r3, #36] @ 0x24 + 80019fc: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8001a00: 2b00 cmp r3, #0 + 8001a02: d005 beq.n 8001a10 + { + vos = READ_BIT(PWR->CR, PWR_CR_VOS); + 8001a04: 4b24 ldr r3, [pc, #144] @ (8001a98 ) + 8001a06: 681b ldr r3, [r3, #0] + 8001a08: f403 53c0 and.w r3, r3, #6144 @ 0x1800 + 8001a0c: 617b str r3, [r7, #20] + 8001a0e: e016 b.n 8001a3e + } + else + { + __HAL_RCC_PWR_CLK_ENABLE(); + 8001a10: 4b20 ldr r3, [pc, #128] @ (8001a94 ) + 8001a12: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001a14: 4a1f ldr r2, [pc, #124] @ (8001a94 ) + 8001a16: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 8001a1a: 6253 str r3, [r2, #36] @ 0x24 + 8001a1c: 4b1d ldr r3, [pc, #116] @ (8001a94 ) + 8001a1e: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001a20: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8001a24: 60fb str r3, [r7, #12] + 8001a26: 68fb ldr r3, [r7, #12] + vos = READ_BIT(PWR->CR, PWR_CR_VOS); + 8001a28: 4b1b ldr r3, [pc, #108] @ (8001a98 ) + 8001a2a: 681b ldr r3, [r3, #0] + 8001a2c: f403 53c0 and.w r3, r3, #6144 @ 0x1800 + 8001a30: 617b str r3, [r7, #20] + __HAL_RCC_PWR_CLK_DISABLE(); + 8001a32: 4b18 ldr r3, [pc, #96] @ (8001a94 ) + 8001a34: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001a36: 4a17 ldr r2, [pc, #92] @ (8001a94 ) + 8001a38: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 8001a3c: 6253 str r3, [r2, #36] @ 0x24 + } + + /* Check if need to set latency 1 only for Range 3 & HCLK = 4MHz */ + if((vos == PWR_REGULATOR_VOLTAGE_SCALE3) && (MSIrange == RCC_MSIRANGE_6)) + 8001a3e: 697b ldr r3, [r7, #20] + 8001a40: f5b3 5fc0 cmp.w r3, #6144 @ 0x1800 + 8001a44: d105 bne.n 8001a52 + 8001a46: 687b ldr r3, [r7, #4] + 8001a48: f5b3 4f40 cmp.w r3, #49152 @ 0xc000 + 8001a4c: d101 bne.n 8001a52 + { + latency = FLASH_LATENCY_1; /* 1WS */ + 8001a4e: 2301 movs r3, #1 + 8001a50: 613b str r3, [r7, #16] + } + } + + __HAL_FLASH_SET_LATENCY(latency); + 8001a52: 693b ldr r3, [r7, #16] + 8001a54: 2b01 cmp r3, #1 + 8001a56: d105 bne.n 8001a64 + 8001a58: 4b10 ldr r3, [pc, #64] @ (8001a9c ) + 8001a5a: 681b ldr r3, [r3, #0] + 8001a5c: 4a0f ldr r2, [pc, #60] @ (8001a9c ) + 8001a5e: f043 0304 orr.w r3, r3, #4 + 8001a62: 6013 str r3, [r2, #0] + 8001a64: 4b0d ldr r3, [pc, #52] @ (8001a9c ) + 8001a66: 681b ldr r3, [r3, #0] + 8001a68: f023 0201 bic.w r2, r3, #1 + 8001a6c: 490b ldr r1, [pc, #44] @ (8001a9c ) + 8001a6e: 693b ldr r3, [r7, #16] + 8001a70: 4313 orrs r3, r2 + 8001a72: 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() != latency) + 8001a74: 4b09 ldr r3, [pc, #36] @ (8001a9c ) + 8001a76: 681b ldr r3, [r3, #0] + 8001a78: f003 0301 and.w r3, r3, #1 + 8001a7c: 693a ldr r2, [r7, #16] + 8001a7e: 429a cmp r2, r3 + 8001a80: d001 beq.n 8001a86 + { + return HAL_ERROR; + 8001a82: 2301 movs r3, #1 + 8001a84: e000 b.n 8001a88 + } + + return HAL_OK; + 8001a86: 2300 movs r3, #0 +} + 8001a88: 4618 mov r0, r3 + 8001a8a: 371c adds r7, #28 + 8001a8c: 46bd mov sp, r7 + 8001a8e: bc80 pop {r7} + 8001a90: 4770 bx lr + 8001a92: bf00 nop + 8001a94: 40023800 .word 0x40023800 + 8001a98: 40007000 .word 0x40007000 + 8001a9c: 40023c00 .word 0x40023c00 + +08001aa0 : + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi) +{ + 8001aa0: b580 push {r7, lr} + 8001aa2: b082 sub sp, #8 + 8001aa4: af00 add r7, sp, #0 + 8001aa6: 6078 str r0, [r7, #4] + /* Check the SPI handle allocation */ + if (hspi == NULL) + 8001aa8: 687b ldr r3, [r7, #4] + 8001aaa: 2b00 cmp r3, #0 + 8001aac: d101 bne.n 8001ab2 + { + return HAL_ERROR; + 8001aae: 2301 movs r3, #1 + 8001ab0: e07b b.n 8001baa + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + assert_param(IS_SPI_FIRST_BIT(hspi->Init.FirstBit)); + /* TI mode is not supported on all devices in stm32l1xx series. + TIMode parameter is mandatory equal to SPI_TIMODE_DISABLE if TI mode is not supported */ + assert_param(IS_SPI_TIMODE(hspi->Init.TIMode)); + if (hspi->Init.TIMode == SPI_TIMODE_DISABLE) + 8001ab2: 687b ldr r3, [r7, #4] + 8001ab4: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001ab6: 2b00 cmp r3, #0 + 8001ab8: d108 bne.n 8001acc + { + assert_param(IS_SPI_CPOL(hspi->Init.CLKPolarity)); + assert_param(IS_SPI_CPHA(hspi->Init.CLKPhase)); + + if (hspi->Init.Mode == SPI_MODE_MASTER) + 8001aba: 687b ldr r3, [r7, #4] + 8001abc: 685b ldr r3, [r3, #4] + 8001abe: f5b3 7f82 cmp.w r3, #260 @ 0x104 + 8001ac2: d009 beq.n 8001ad8 + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + } + else + { + /* Baudrate prescaler not use in Motoraola Slave mode. force to default value */ + hspi->Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + 8001ac4: 687b ldr r3, [r7, #4] + 8001ac6: 2200 movs r2, #0 + 8001ac8: 61da str r2, [r3, #28] + 8001aca: e005 b.n 8001ad8 + else + { + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + + /* Force polarity and phase to TI protocaol requirements */ + hspi->Init.CLKPolarity = SPI_POLARITY_LOW; + 8001acc: 687b ldr r3, [r7, #4] + 8001ace: 2200 movs r2, #0 + 8001ad0: 611a str r2, [r3, #16] + hspi->Init.CLKPhase = SPI_PHASE_1EDGE; + 8001ad2: 687b ldr r3, [r7, #4] + 8001ad4: 2200 movs r2, #0 + 8001ad6: 615a str r2, [r3, #20] + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + assert_param(IS_SPI_CRC_POLYNOMIAL(hspi->Init.CRCPolynomial)); + } +#else + hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + 8001ad8: 687b ldr r3, [r7, #4] + 8001ada: 2200 movs r2, #0 + 8001adc: 629a str r2, [r3, #40] @ 0x28 +#endif /* USE_SPI_CRC */ + + if (hspi->State == HAL_SPI_STATE_RESET) + 8001ade: 687b ldr r3, [r7, #4] + 8001ae0: f893 3051 ldrb.w r3, [r3, #81] @ 0x51 + 8001ae4: b2db uxtb r3, r3 + 8001ae6: 2b00 cmp r3, #0 + 8001ae8: d106 bne.n 8001af8 + { + /* Allocate lock resource and initialize it */ + hspi->Lock = HAL_UNLOCKED; + 8001aea: 687b ldr r3, [r7, #4] + 8001aec: 2200 movs r2, #0 + 8001aee: f883 2050 strb.w r2, [r3, #80] @ 0x50 + + /* Init the low level hardware : GPIO, CLOCK, NVIC... */ + hspi->MspInitCallback(hspi); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC... */ + HAL_SPI_MspInit(hspi); + 8001af2: 6878 ldr r0, [r7, #4] + 8001af4: f7fe fe1e bl 8000734 +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } + + hspi->State = HAL_SPI_STATE_BUSY; + 8001af8: 687b ldr r3, [r7, #4] + 8001afa: 2202 movs r2, #2 + 8001afc: f883 2051 strb.w r2, [r3, #81] @ 0x51 + + /* Disable the selected SPI peripheral */ + __HAL_SPI_DISABLE(hspi); + 8001b00: 687b ldr r3, [r7, #4] + 8001b02: 681b ldr r3, [r3, #0] + 8001b04: 681a ldr r2, [r3, #0] + 8001b06: 687b ldr r3, [r7, #4] + 8001b08: 681b ldr r3, [r3, #0] + 8001b0a: f022 0240 bic.w r2, r2, #64 @ 0x40 + 8001b0e: 601a str r2, [r3, #0] + + /*----------------------- SPIx CR1 & CR2 Configuration ---------------------*/ + /* Configure : SPI Mode, Communication Mode, Data size, Clock polarity and phase, NSS management, + Communication speed, First bit and CRC calculation state */ + WRITE_REG(hspi->Instance->CR1, ((hspi->Init.Mode & (SPI_CR1_MSTR | SPI_CR1_SSI)) | + 8001b10: 687b ldr r3, [r7, #4] + 8001b12: 685b ldr r3, [r3, #4] + 8001b14: f403 7282 and.w r2, r3, #260 @ 0x104 + 8001b18: 687b ldr r3, [r7, #4] + 8001b1a: 689b ldr r3, [r3, #8] + 8001b1c: f403 4304 and.w r3, r3, #33792 @ 0x8400 + 8001b20: 431a orrs r2, r3 + 8001b22: 687b ldr r3, [r7, #4] + 8001b24: 68db ldr r3, [r3, #12] + 8001b26: f403 6300 and.w r3, r3, #2048 @ 0x800 + 8001b2a: 431a orrs r2, r3 + 8001b2c: 687b ldr r3, [r7, #4] + 8001b2e: 691b ldr r3, [r3, #16] + 8001b30: f003 0302 and.w r3, r3, #2 + 8001b34: 431a orrs r2, r3 + 8001b36: 687b ldr r3, [r7, #4] + 8001b38: 695b ldr r3, [r3, #20] + 8001b3a: f003 0301 and.w r3, r3, #1 + 8001b3e: 431a orrs r2, r3 + 8001b40: 687b ldr r3, [r7, #4] + 8001b42: 699b ldr r3, [r3, #24] + 8001b44: f403 7300 and.w r3, r3, #512 @ 0x200 + 8001b48: 431a orrs r2, r3 + 8001b4a: 687b ldr r3, [r7, #4] + 8001b4c: 69db ldr r3, [r3, #28] + 8001b4e: f003 0338 and.w r3, r3, #56 @ 0x38 + 8001b52: 431a orrs r2, r3 + 8001b54: 687b ldr r3, [r7, #4] + 8001b56: 6a1b ldr r3, [r3, #32] + 8001b58: f003 0380 and.w r3, r3, #128 @ 0x80 + 8001b5c: ea42 0103 orr.w r1, r2, r3 + 8001b60: 687b ldr r3, [r7, #4] + 8001b62: 6a9b ldr r3, [r3, #40] @ 0x28 + 8001b64: f403 5200 and.w r2, r3, #8192 @ 0x2000 + 8001b68: 687b ldr r3, [r7, #4] + 8001b6a: 681b ldr r3, [r3, #0] + 8001b6c: 430a orrs r2, r1 + 8001b6e: 601a str r2, [r3, #0] + (hspi->Init.FirstBit & SPI_CR1_LSBFIRST) | + (hspi->Init.CRCCalculation & SPI_CR1_CRCEN))); + +#if defined(SPI_CR2_FRF) + /* Configure : NSS management, TI Mode */ + WRITE_REG(hspi->Instance->CR2, (((hspi->Init.NSS >> 16U) & SPI_CR2_SSOE) | (hspi->Init.TIMode & SPI_CR2_FRF))); + 8001b70: 687b ldr r3, [r7, #4] + 8001b72: 699b ldr r3, [r3, #24] + 8001b74: 0c1b lsrs r3, r3, #16 + 8001b76: f003 0104 and.w r1, r3, #4 + 8001b7a: 687b ldr r3, [r7, #4] + 8001b7c: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001b7e: f003 0210 and.w r2, r3, #16 + 8001b82: 687b ldr r3, [r7, #4] + 8001b84: 681b ldr r3, [r3, #0] + 8001b86: 430a orrs r2, r1 + 8001b88: 605a str r2, [r3, #4] + } +#endif /* USE_SPI_CRC */ + +#if defined(SPI_I2SCFGR_I2SMOD) + /* Activate the SPI mode (Make sure that I2SMOD bit in I2SCFGR register is reset) */ + CLEAR_BIT(hspi->Instance->I2SCFGR, SPI_I2SCFGR_I2SMOD); + 8001b8a: 687b ldr r3, [r7, #4] + 8001b8c: 681b ldr r3, [r3, #0] + 8001b8e: 69da ldr r2, [r3, #28] + 8001b90: 687b ldr r3, [r7, #4] + 8001b92: 681b ldr r3, [r3, #0] + 8001b94: f422 6200 bic.w r2, r2, #2048 @ 0x800 + 8001b98: 61da str r2, [r3, #28] +#endif /* SPI_I2SCFGR_I2SMOD */ + + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + 8001b9a: 687b ldr r3, [r7, #4] + 8001b9c: 2200 movs r2, #0 + 8001b9e: 655a str r2, [r3, #84] @ 0x54 + hspi->State = HAL_SPI_STATE_READY; + 8001ba0: 687b ldr r3, [r7, #4] + 8001ba2: 2201 movs r2, #1 + 8001ba4: f883 2051 strb.w r2, [r3, #81] @ 0x51 + + return HAL_OK; + 8001ba8: 2300 movs r3, #0 +} + 8001baa: 4618 mov r0, r3 + 8001bac: 3708 adds r7, #8 + 8001bae: 46bd mov sp, r7 + 8001bb0: bd80 pop {r7, pc} + +08001bb2 : + * @param Size amount of data elements (u8 or u16) to be sent + * @param Timeout Timeout duration in ms + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + 8001bb2: b580 push {r7, lr} + 8001bb4: b088 sub sp, #32 + 8001bb6: af00 add r7, sp, #0 + 8001bb8: 60f8 str r0, [r7, #12] + 8001bba: 60b9 str r1, [r7, #8] + 8001bbc: 603b str r3, [r7, #0] + 8001bbe: 4613 mov r3, r2 + 8001bc0: 80fb strh r3, [r7, #6] + + /* Check Direction parameter */ + assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + 8001bc2: f7fe ff33 bl 8000a2c + 8001bc6: 61f8 str r0, [r7, #28] + initial_TxXferCount = Size; + 8001bc8: 88fb ldrh r3, [r7, #6] + 8001bca: 837b strh r3, [r7, #26] + + if (hspi->State != HAL_SPI_STATE_READY) + 8001bcc: 68fb ldr r3, [r7, #12] + 8001bce: f893 3051 ldrb.w r3, [r3, #81] @ 0x51 + 8001bd2: b2db uxtb r3, r3 + 8001bd4: 2b01 cmp r3, #1 + 8001bd6: d001 beq.n 8001bdc + { + return HAL_BUSY; + 8001bd8: 2302 movs r3, #2 + 8001bda: e12a b.n 8001e32 + } + + if ((pData == NULL) || (Size == 0U)) + 8001bdc: 68bb ldr r3, [r7, #8] + 8001bde: 2b00 cmp r3, #0 + 8001be0: d002 beq.n 8001be8 + 8001be2: 88fb ldrh r3, [r7, #6] + 8001be4: 2b00 cmp r3, #0 + 8001be6: d101 bne.n 8001bec + { + return HAL_ERROR; + 8001be8: 2301 movs r3, #1 + 8001bea: e122 b.n 8001e32 + } + + /* Process Locked */ + __HAL_LOCK(hspi); + 8001bec: 68fb ldr r3, [r7, #12] + 8001bee: f893 3050 ldrb.w r3, [r3, #80] @ 0x50 + 8001bf2: 2b01 cmp r3, #1 + 8001bf4: d101 bne.n 8001bfa + 8001bf6: 2302 movs r3, #2 + 8001bf8: e11b b.n 8001e32 + 8001bfa: 68fb ldr r3, [r7, #12] + 8001bfc: 2201 movs r2, #1 + 8001bfe: f883 2050 strb.w r2, [r3, #80] @ 0x50 + + /* Set the transaction information */ + hspi->State = HAL_SPI_STATE_BUSY_TX; + 8001c02: 68fb ldr r3, [r7, #12] + 8001c04: 2203 movs r2, #3 + 8001c06: f883 2051 strb.w r2, [r3, #81] @ 0x51 + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + 8001c0a: 68fb ldr r3, [r7, #12] + 8001c0c: 2200 movs r2, #0 + 8001c0e: 655a str r2, [r3, #84] @ 0x54 + hspi->pTxBuffPtr = (const uint8_t *)pData; + 8001c10: 68fb ldr r3, [r7, #12] + 8001c12: 68ba ldr r2, [r7, #8] + 8001c14: 631a str r2, [r3, #48] @ 0x30 + hspi->TxXferSize = Size; + 8001c16: 68fb ldr r3, [r7, #12] + 8001c18: 88fa ldrh r2, [r7, #6] + 8001c1a: 869a strh r2, [r3, #52] @ 0x34 + hspi->TxXferCount = Size; + 8001c1c: 68fb ldr r3, [r7, #12] + 8001c1e: 88fa ldrh r2, [r7, #6] + 8001c20: 86da strh r2, [r3, #54] @ 0x36 + + /*Init field not used in handle to zero */ + hspi->pRxBuffPtr = (uint8_t *)NULL; + 8001c22: 68fb ldr r3, [r7, #12] + 8001c24: 2200 movs r2, #0 + 8001c26: 639a str r2, [r3, #56] @ 0x38 + hspi->RxXferSize = 0U; + 8001c28: 68fb ldr r3, [r7, #12] + 8001c2a: 2200 movs r2, #0 + 8001c2c: 879a strh r2, [r3, #60] @ 0x3c + hspi->RxXferCount = 0U; + 8001c2e: 68fb ldr r3, [r7, #12] + 8001c30: 2200 movs r2, #0 + 8001c32: 87da strh r2, [r3, #62] @ 0x3e + hspi->TxISR = NULL; + 8001c34: 68fb ldr r3, [r7, #12] + 8001c36: 2200 movs r2, #0 + 8001c38: 645a str r2, [r3, #68] @ 0x44 + hspi->RxISR = NULL; + 8001c3a: 68fb ldr r3, [r7, #12] + 8001c3c: 2200 movs r2, #0 + 8001c3e: 641a str r2, [r3, #64] @ 0x40 + + /* Configure communication direction : 1Line */ + if (hspi->Init.Direction == SPI_DIRECTION_1LINE) + 8001c40: 68fb ldr r3, [r7, #12] + 8001c42: 689b ldr r3, [r3, #8] + 8001c44: f5b3 4f00 cmp.w r3, #32768 @ 0x8000 + 8001c48: d10f bne.n 8001c6a + { + /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ + __HAL_SPI_DISABLE(hspi); + 8001c4a: 68fb ldr r3, [r7, #12] + 8001c4c: 681b ldr r3, [r3, #0] + 8001c4e: 681a ldr r2, [r3, #0] + 8001c50: 68fb ldr r3, [r7, #12] + 8001c52: 681b ldr r3, [r3, #0] + 8001c54: f022 0240 bic.w r2, r2, #64 @ 0x40 + 8001c58: 601a str r2, [r3, #0] + SPI_1LINE_TX(hspi); + 8001c5a: 68fb ldr r3, [r7, #12] + 8001c5c: 681b ldr r3, [r3, #0] + 8001c5e: 681a ldr r2, [r3, #0] + 8001c60: 68fb ldr r3, [r7, #12] + 8001c62: 681b ldr r3, [r3, #0] + 8001c64: f442 4280 orr.w r2, r2, #16384 @ 0x4000 + 8001c68: 601a str r2, [r3, #0] + SPI_RESET_CRC(hspi); + } +#endif /* USE_SPI_CRC */ + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + 8001c6a: 68fb ldr r3, [r7, #12] + 8001c6c: 681b ldr r3, [r3, #0] + 8001c6e: 681b ldr r3, [r3, #0] + 8001c70: f003 0340 and.w r3, r3, #64 @ 0x40 + 8001c74: 2b40 cmp r3, #64 @ 0x40 + 8001c76: d007 beq.n 8001c88 + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + 8001c78: 68fb ldr r3, [r7, #12] + 8001c7a: 681b ldr r3, [r3, #0] + 8001c7c: 681a ldr r2, [r3, #0] + 8001c7e: 68fb ldr r3, [r7, #12] + 8001c80: 681b ldr r3, [r3, #0] + 8001c82: f042 0240 orr.w r2, r2, #64 @ 0x40 + 8001c86: 601a str r2, [r3, #0] + } + + /* Transmit data in 16 Bit mode */ + if (hspi->Init.DataSize == SPI_DATASIZE_16BIT) + 8001c88: 68fb ldr r3, [r7, #12] + 8001c8a: 68db ldr r3, [r3, #12] + 8001c8c: f5b3 6f00 cmp.w r3, #2048 @ 0x800 + 8001c90: d152 bne.n 8001d38 + { + if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) + 8001c92: 68fb ldr r3, [r7, #12] + 8001c94: 685b ldr r3, [r3, #4] + 8001c96: 2b00 cmp r3, #0 + 8001c98: d002 beq.n 8001ca0 + 8001c9a: 8b7b ldrh r3, [r7, #26] + 8001c9c: 2b01 cmp r3, #1 + 8001c9e: d145 bne.n 8001d2c + { + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + 8001ca0: 68fb ldr r3, [r7, #12] + 8001ca2: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001ca4: 881a ldrh r2, [r3, #0] + 8001ca6: 68fb ldr r3, [r7, #12] + 8001ca8: 681b ldr r3, [r3, #0] + 8001caa: 60da str r2, [r3, #12] + hspi->pTxBuffPtr += sizeof(uint16_t); + 8001cac: 68fb ldr r3, [r7, #12] + 8001cae: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001cb0: 1c9a adds r2, r3, #2 + 8001cb2: 68fb ldr r3, [r7, #12] + 8001cb4: 631a str r2, [r3, #48] @ 0x30 + hspi->TxXferCount--; + 8001cb6: 68fb ldr r3, [r7, #12] + 8001cb8: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001cba: b29b uxth r3, r3 + 8001cbc: 3b01 subs r3, #1 + 8001cbe: b29a uxth r2, r3 + 8001cc0: 68fb ldr r3, [r7, #12] + 8001cc2: 86da strh r2, [r3, #54] @ 0x36 + } + /* Transmit data in 16 Bit mode */ + while (hspi->TxXferCount > 0U) + 8001cc4: e032 b.n 8001d2c + { + /* Wait until TXE flag is set to send data */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) + 8001cc6: 68fb ldr r3, [r7, #12] + 8001cc8: 681b ldr r3, [r3, #0] + 8001cca: 689b ldr r3, [r3, #8] + 8001ccc: f003 0302 and.w r3, r3, #2 + 8001cd0: 2b02 cmp r3, #2 + 8001cd2: d112 bne.n 8001cfa + { + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + 8001cd4: 68fb ldr r3, [r7, #12] + 8001cd6: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001cd8: 881a ldrh r2, [r3, #0] + 8001cda: 68fb ldr r3, [r7, #12] + 8001cdc: 681b ldr r3, [r3, #0] + 8001cde: 60da str r2, [r3, #12] + hspi->pTxBuffPtr += sizeof(uint16_t); + 8001ce0: 68fb ldr r3, [r7, #12] + 8001ce2: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001ce4: 1c9a adds r2, r3, #2 + 8001ce6: 68fb ldr r3, [r7, #12] + 8001ce8: 631a str r2, [r3, #48] @ 0x30 + hspi->TxXferCount--; + 8001cea: 68fb ldr r3, [r7, #12] + 8001cec: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001cee: b29b uxth r3, r3 + 8001cf0: 3b01 subs r3, #1 + 8001cf2: b29a uxth r2, r3 + 8001cf4: 68fb ldr r3, [r7, #12] + 8001cf6: 86da strh r2, [r3, #54] @ 0x36 + 8001cf8: e018 b.n 8001d2c + } + else + { + /* Timeout management */ + if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U)) + 8001cfa: f7fe fe97 bl 8000a2c + 8001cfe: 4602 mov r2, r0 + 8001d00: 69fb ldr r3, [r7, #28] + 8001d02: 1ad3 subs r3, r2, r3 + 8001d04: 683a ldr r2, [r7, #0] + 8001d06: 429a cmp r2, r3 + 8001d08: d803 bhi.n 8001d12 + 8001d0a: 683b ldr r3, [r7, #0] + 8001d0c: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8001d10: d102 bne.n 8001d18 + 8001d12: 683b ldr r3, [r7, #0] + 8001d14: 2b00 cmp r3, #0 + 8001d16: d109 bne.n 8001d2c + { + hspi->State = HAL_SPI_STATE_READY; + 8001d18: 68fb ldr r3, [r7, #12] + 8001d1a: 2201 movs r2, #1 + 8001d1c: f883 2051 strb.w r2, [r3, #81] @ 0x51 + __HAL_UNLOCK(hspi); + 8001d20: 68fb ldr r3, [r7, #12] + 8001d22: 2200 movs r2, #0 + 8001d24: f883 2050 strb.w r2, [r3, #80] @ 0x50 + return HAL_TIMEOUT; + 8001d28: 2303 movs r3, #3 + 8001d2a: e082 b.n 8001e32 + while (hspi->TxXferCount > 0U) + 8001d2c: 68fb ldr r3, [r7, #12] + 8001d2e: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001d30: b29b uxth r3, r3 + 8001d32: 2b00 cmp r3, #0 + 8001d34: d1c7 bne.n 8001cc6 + 8001d36: e053 b.n 8001de0 + } + } + /* Transmit data in 8 Bit mode */ + else + { + if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) + 8001d38: 68fb ldr r3, [r7, #12] + 8001d3a: 685b ldr r3, [r3, #4] + 8001d3c: 2b00 cmp r3, #0 + 8001d3e: d002 beq.n 8001d46 + 8001d40: 8b7b ldrh r3, [r7, #26] + 8001d42: 2b01 cmp r3, #1 + 8001d44: d147 bne.n 8001dd6 + { + *((__IO uint8_t *)&hspi->Instance->DR) = *((const uint8_t *)hspi->pTxBuffPtr); + 8001d46: 68fb ldr r3, [r7, #12] + 8001d48: 6b1a ldr r2, [r3, #48] @ 0x30 + 8001d4a: 68fb ldr r3, [r7, #12] + 8001d4c: 681b ldr r3, [r3, #0] + 8001d4e: 330c adds r3, #12 + 8001d50: 7812 ldrb r2, [r2, #0] + 8001d52: 701a strb r2, [r3, #0] + hspi->pTxBuffPtr += sizeof(uint8_t); + 8001d54: 68fb ldr r3, [r7, #12] + 8001d56: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001d58: 1c5a adds r2, r3, #1 + 8001d5a: 68fb ldr r3, [r7, #12] + 8001d5c: 631a str r2, [r3, #48] @ 0x30 + hspi->TxXferCount--; + 8001d5e: 68fb ldr r3, [r7, #12] + 8001d60: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001d62: b29b uxth r3, r3 + 8001d64: 3b01 subs r3, #1 + 8001d66: b29a uxth r2, r3 + 8001d68: 68fb ldr r3, [r7, #12] + 8001d6a: 86da strh r2, [r3, #54] @ 0x36 + } + while (hspi->TxXferCount > 0U) + 8001d6c: e033 b.n 8001dd6 + { + /* Wait until TXE flag is set to send data */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) + 8001d6e: 68fb ldr r3, [r7, #12] + 8001d70: 681b ldr r3, [r3, #0] + 8001d72: 689b ldr r3, [r3, #8] + 8001d74: f003 0302 and.w r3, r3, #2 + 8001d78: 2b02 cmp r3, #2 + 8001d7a: d113 bne.n 8001da4 + { + *((__IO uint8_t *)&hspi->Instance->DR) = *((const uint8_t *)hspi->pTxBuffPtr); + 8001d7c: 68fb ldr r3, [r7, #12] + 8001d7e: 6b1a ldr r2, [r3, #48] @ 0x30 + 8001d80: 68fb ldr r3, [r7, #12] + 8001d82: 681b ldr r3, [r3, #0] + 8001d84: 330c adds r3, #12 + 8001d86: 7812 ldrb r2, [r2, #0] + 8001d88: 701a strb r2, [r3, #0] + hspi->pTxBuffPtr += sizeof(uint8_t); + 8001d8a: 68fb ldr r3, [r7, #12] + 8001d8c: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001d8e: 1c5a adds r2, r3, #1 + 8001d90: 68fb ldr r3, [r7, #12] + 8001d92: 631a str r2, [r3, #48] @ 0x30 + hspi->TxXferCount--; + 8001d94: 68fb ldr r3, [r7, #12] + 8001d96: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001d98: b29b uxth r3, r3 + 8001d9a: 3b01 subs r3, #1 + 8001d9c: b29a uxth r2, r3 + 8001d9e: 68fb ldr r3, [r7, #12] + 8001da0: 86da strh r2, [r3, #54] @ 0x36 + 8001da2: e018 b.n 8001dd6 + } + else + { + /* Timeout management */ + if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U)) + 8001da4: f7fe fe42 bl 8000a2c + 8001da8: 4602 mov r2, r0 + 8001daa: 69fb ldr r3, [r7, #28] + 8001dac: 1ad3 subs r3, r2, r3 + 8001dae: 683a ldr r2, [r7, #0] + 8001db0: 429a cmp r2, r3 + 8001db2: d803 bhi.n 8001dbc + 8001db4: 683b ldr r3, [r7, #0] + 8001db6: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8001dba: d102 bne.n 8001dc2 + 8001dbc: 683b ldr r3, [r7, #0] + 8001dbe: 2b00 cmp r3, #0 + 8001dc0: d109 bne.n 8001dd6 + { + hspi->State = HAL_SPI_STATE_READY; + 8001dc2: 68fb ldr r3, [r7, #12] + 8001dc4: 2201 movs r2, #1 + 8001dc6: f883 2051 strb.w r2, [r3, #81] @ 0x51 + __HAL_UNLOCK(hspi); + 8001dca: 68fb ldr r3, [r7, #12] + 8001dcc: 2200 movs r2, #0 + 8001dce: f883 2050 strb.w r2, [r3, #80] @ 0x50 + return HAL_TIMEOUT; + 8001dd2: 2303 movs r3, #3 + 8001dd4: e02d b.n 8001e32 + while (hspi->TxXferCount > 0U) + 8001dd6: 68fb ldr r3, [r7, #12] + 8001dd8: 8edb ldrh r3, [r3, #54] @ 0x36 + 8001dda: b29b uxth r3, r3 + 8001ddc: 2b00 cmp r3, #0 + 8001dde: d1c6 bne.n 8001d6e + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + + /* Check the end of the transaction */ + if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK) + 8001de0: 69fa ldr r2, [r7, #28] + 8001de2: 6839 ldr r1, [r7, #0] + 8001de4: 68f8 ldr r0, [r7, #12] + 8001de6: f000 f8b1 bl 8001f4c + 8001dea: 4603 mov r3, r0 + 8001dec: 2b00 cmp r3, #0 + 8001dee: d002 beq.n 8001df6 + { + hspi->ErrorCode = HAL_SPI_ERROR_FLAG; + 8001df0: 68fb ldr r3, [r7, #12] + 8001df2: 2220 movs r2, #32 + 8001df4: 655a str r2, [r3, #84] @ 0x54 + } + + /* Clear overrun flag in 2 Lines communication mode because received is not read */ + if (hspi->Init.Direction == SPI_DIRECTION_2LINES) + 8001df6: 68fb ldr r3, [r7, #12] + 8001df8: 689b ldr r3, [r3, #8] + 8001dfa: 2b00 cmp r3, #0 + 8001dfc: d10a bne.n 8001e14 + { + __HAL_SPI_CLEAR_OVRFLAG(hspi); + 8001dfe: 2300 movs r3, #0 + 8001e00: 617b str r3, [r7, #20] + 8001e02: 68fb ldr r3, [r7, #12] + 8001e04: 681b ldr r3, [r3, #0] + 8001e06: 68db ldr r3, [r3, #12] + 8001e08: 617b str r3, [r7, #20] + 8001e0a: 68fb ldr r3, [r7, #12] + 8001e0c: 681b ldr r3, [r3, #0] + 8001e0e: 689b ldr r3, [r3, #8] + 8001e10: 617b str r3, [r7, #20] + 8001e12: 697b ldr r3, [r7, #20] + } + + hspi->State = HAL_SPI_STATE_READY; + 8001e14: 68fb ldr r3, [r7, #12] + 8001e16: 2201 movs r2, #1 + 8001e18: f883 2051 strb.w r2, [r3, #81] @ 0x51 + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + 8001e1c: 68fb ldr r3, [r7, #12] + 8001e1e: 2200 movs r2, #0 + 8001e20: f883 2050 strb.w r2, [r3, #80] @ 0x50 + + if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) + 8001e24: 68fb ldr r3, [r7, #12] + 8001e26: 6d5b ldr r3, [r3, #84] @ 0x54 + 8001e28: 2b00 cmp r3, #0 + 8001e2a: d001 beq.n 8001e30 + { + return HAL_ERROR; + 8001e2c: 2301 movs r3, #1 + 8001e2e: e000 b.n 8001e32 + } + else + { + return HAL_OK; + 8001e30: 2300 movs r3, #0 + } +} + 8001e32: 4618 mov r0, r3 + 8001e34: 3720 adds r7, #32 + 8001e36: 46bd mov sp, r7 + 8001e38: bd80 pop {r7, pc} + ... + +08001e3c : + * @param Tickstart tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, FlagStatus State, + uint32_t Timeout, uint32_t Tickstart) +{ + 8001e3c: b580 push {r7, lr} + 8001e3e: b088 sub sp, #32 + 8001e40: af00 add r7, sp, #0 + 8001e42: 60f8 str r0, [r7, #12] + 8001e44: 60b9 str r1, [r7, #8] + 8001e46: 603b str r3, [r7, #0] + 8001e48: 4613 mov r3, r2 + 8001e4a: 71fb strb r3, [r7, #7] + __IO uint32_t count; + uint32_t tmp_timeout; + uint32_t tmp_tickstart; + + /* Adjust Timeout value in case of end of transfer */ + tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); + 8001e4c: f7fe fdee bl 8000a2c + 8001e50: 4602 mov r2, r0 + 8001e52: 6abb ldr r3, [r7, #40] @ 0x28 + 8001e54: 1a9b subs r3, r3, r2 + 8001e56: 683a ldr r2, [r7, #0] + 8001e58: 4413 add r3, r2 + 8001e5a: 61fb str r3, [r7, #28] + tmp_tickstart = HAL_GetTick(); + 8001e5c: f7fe fde6 bl 8000a2c + 8001e60: 61b8 str r0, [r7, #24] + + /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ + count = tmp_timeout * ((SystemCoreClock * 32U) >> 20U); + 8001e62: 4b39 ldr r3, [pc, #228] @ (8001f48 ) + 8001e64: 681b ldr r3, [r3, #0] + 8001e66: 015b lsls r3, r3, #5 + 8001e68: 0d1b lsrs r3, r3, #20 + 8001e6a: 69fa ldr r2, [r7, #28] + 8001e6c: fb02 f303 mul.w r3, r2, r3 + 8001e70: 617b str r3, [r7, #20] + + while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) + 8001e72: e054 b.n 8001f1e + { + if (Timeout != HAL_MAX_DELAY) + 8001e74: 683b ldr r3, [r7, #0] + 8001e76: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8001e7a: d050 beq.n 8001f1e + { + if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) + 8001e7c: f7fe fdd6 bl 8000a2c + 8001e80: 4602 mov r2, r0 + 8001e82: 69bb ldr r3, [r7, #24] + 8001e84: 1ad3 subs r3, r2, r3 + 8001e86: 69fa ldr r2, [r7, #28] + 8001e88: 429a cmp r2, r3 + 8001e8a: d902 bls.n 8001e92 + 8001e8c: 69fb ldr r3, [r7, #28] + 8001e8e: 2b00 cmp r3, #0 + 8001e90: d13d bne.n 8001f0e + /* Disable the SPI and reset the CRC: the CRC value should be cleared + on both master and slave sides in order to resynchronize the master + and slave for their respective CRC calculation */ + + /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); + 8001e92: 68fb ldr r3, [r7, #12] + 8001e94: 681b ldr r3, [r3, #0] + 8001e96: 685a ldr r2, [r3, #4] + 8001e98: 68fb ldr r3, [r7, #12] + 8001e9a: 681b ldr r3, [r3, #0] + 8001e9c: f022 02e0 bic.w r2, r2, #224 @ 0xe0 + 8001ea0: 605a str r2, [r3, #4] + + if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) + 8001ea2: 68fb ldr r3, [r7, #12] + 8001ea4: 685b ldr r3, [r3, #4] + 8001ea6: f5b3 7f82 cmp.w r3, #260 @ 0x104 + 8001eaa: d111 bne.n 8001ed0 + 8001eac: 68fb ldr r3, [r7, #12] + 8001eae: 689b ldr r3, [r3, #8] + 8001eb0: f5b3 4f00 cmp.w r3, #32768 @ 0x8000 + 8001eb4: d004 beq.n 8001ec0 + || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXONLY))) + 8001eb6: 68fb ldr r3, [r7, #12] + 8001eb8: 689b ldr r3, [r3, #8] + 8001eba: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 8001ebe: d107 bne.n 8001ed0 + { + /* Disable SPI peripheral */ + __HAL_SPI_DISABLE(hspi); + 8001ec0: 68fb ldr r3, [r7, #12] + 8001ec2: 681b ldr r3, [r3, #0] + 8001ec4: 681a ldr r2, [r3, #0] + 8001ec6: 68fb ldr r3, [r7, #12] + 8001ec8: 681b ldr r3, [r3, #0] + 8001eca: f022 0240 bic.w r2, r2, #64 @ 0x40 + 8001ece: 601a str r2, [r3, #0] + } + + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + 8001ed0: 68fb ldr r3, [r7, #12] + 8001ed2: 6a9b ldr r3, [r3, #40] @ 0x28 + 8001ed4: f5b3 5f00 cmp.w r3, #8192 @ 0x2000 + 8001ed8: d10f bne.n 8001efa + { + SPI_RESET_CRC(hspi); + 8001eda: 68fb ldr r3, [r7, #12] + 8001edc: 681b ldr r3, [r3, #0] + 8001ede: 681a ldr r2, [r3, #0] + 8001ee0: 68fb ldr r3, [r7, #12] + 8001ee2: 681b ldr r3, [r3, #0] + 8001ee4: f422 5200 bic.w r2, r2, #8192 @ 0x2000 + 8001ee8: 601a str r2, [r3, #0] + 8001eea: 68fb ldr r3, [r7, #12] + 8001eec: 681b ldr r3, [r3, #0] + 8001eee: 681a ldr r2, [r3, #0] + 8001ef0: 68fb ldr r3, [r7, #12] + 8001ef2: 681b ldr r3, [r3, #0] + 8001ef4: f442 5200 orr.w r2, r2, #8192 @ 0x2000 + 8001ef8: 601a str r2, [r3, #0] + } + + hspi->State = HAL_SPI_STATE_READY; + 8001efa: 68fb ldr r3, [r7, #12] + 8001efc: 2201 movs r2, #1 + 8001efe: f883 2051 strb.w r2, [r3, #81] @ 0x51 + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + 8001f02: 68fb ldr r3, [r7, #12] + 8001f04: 2200 movs r2, #0 + 8001f06: f883 2050 strb.w r2, [r3, #80] @ 0x50 + + return HAL_TIMEOUT; + 8001f0a: 2303 movs r3, #3 + 8001f0c: e017 b.n 8001f3e + } + /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop procedure */ + if (count == 0U) + 8001f0e: 697b ldr r3, [r7, #20] + 8001f10: 2b00 cmp r3, #0 + 8001f12: d101 bne.n 8001f18 + { + tmp_timeout = 0U; + 8001f14: 2300 movs r3, #0 + 8001f16: 61fb str r3, [r7, #28] + } + count--; + 8001f18: 697b ldr r3, [r7, #20] + 8001f1a: 3b01 subs r3, #1 + 8001f1c: 617b str r3, [r7, #20] + while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) + 8001f1e: 68fb ldr r3, [r7, #12] + 8001f20: 681b ldr r3, [r3, #0] + 8001f22: 689a ldr r2, [r3, #8] + 8001f24: 68bb ldr r3, [r7, #8] + 8001f26: 4013 ands r3, r2 + 8001f28: 68ba ldr r2, [r7, #8] + 8001f2a: 429a cmp r2, r3 + 8001f2c: bf0c ite eq + 8001f2e: 2301 moveq r3, #1 + 8001f30: 2300 movne r3, #0 + 8001f32: b2db uxtb r3, r3 + 8001f34: 461a mov r2, r3 + 8001f36: 79fb ldrb r3, [r7, #7] + 8001f38: 429a cmp r2, r3 + 8001f3a: d19b bne.n 8001e74 + } + } + + return HAL_OK; + 8001f3c: 2300 movs r3, #0 +} + 8001f3e: 4618 mov r0, r3 + 8001f40: 3720 adds r7, #32 + 8001f42: 46bd mov sp, r7 + 8001f44: bd80 pop {r7, pc} + 8001f46: bf00 nop + 8001f48: 20000000 .word 0x20000000 + +08001f4c : + * @param Timeout Timeout duration + * @param Tickstart tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart) +{ + 8001f4c: b580 push {r7, lr} + 8001f4e: b088 sub sp, #32 + 8001f50: af02 add r7, sp, #8 + 8001f52: 60f8 str r0, [r7, #12] + 8001f54: 60b9 str r1, [r7, #8] + 8001f56: 607a str r2, [r7, #4] + /* Wait until TXE flag */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_TXE, SET, Timeout, Tickstart) != HAL_OK) + 8001f58: 687b ldr r3, [r7, #4] + 8001f5a: 9300 str r3, [sp, #0] + 8001f5c: 68bb ldr r3, [r7, #8] + 8001f5e: 2201 movs r2, #1 + 8001f60: 2102 movs r1, #2 + 8001f62: 68f8 ldr r0, [r7, #12] + 8001f64: f7ff ff6a bl 8001e3c + 8001f68: 4603 mov r3, r0 + 8001f6a: 2b00 cmp r3, #0 + 8001f6c: d007 beq.n 8001f7e + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + 8001f6e: 68fb ldr r3, [r7, #12] + 8001f70: 6d5b ldr r3, [r3, #84] @ 0x54 + 8001f72: f043 0220 orr.w r2, r3, #32 + 8001f76: 68fb ldr r3, [r7, #12] + 8001f78: 655a str r2, [r3, #84] @ 0x54 + return HAL_TIMEOUT; + 8001f7a: 2303 movs r3, #3 + 8001f7c: e032 b.n 8001fe4 + } + + /* Timeout in us */ + __IO uint32_t count = SPI_BSY_FLAG_WORKAROUND_TIMEOUT * (SystemCoreClock / 24U / 1000000U); + 8001f7e: 4b1b ldr r3, [pc, #108] @ (8001fec ) + 8001f80: 681b ldr r3, [r3, #0] + 8001f82: 4a1b ldr r2, [pc, #108] @ (8001ff0 ) + 8001f84: fba2 2303 umull r2, r3, r2, r3 + 8001f88: 0d5b lsrs r3, r3, #21 + 8001f8a: f44f 727a mov.w r2, #1000 @ 0x3e8 + 8001f8e: fb02 f303 mul.w r3, r2, r3 + 8001f92: 617b str r3, [r7, #20] + /* Erratasheet: BSY bit may stay high at the end of a data transfer in Slave mode */ + if (hspi->Init.Mode == SPI_MODE_MASTER) + 8001f94: 68fb ldr r3, [r7, #12] + 8001f96: 685b ldr r3, [r3, #4] + 8001f98: f5b3 7f82 cmp.w r3, #260 @ 0x104 + 8001f9c: d112 bne.n 8001fc4 + { + /* Control the BSY flag */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) + 8001f9e: 687b ldr r3, [r7, #4] + 8001fa0: 9300 str r3, [sp, #0] + 8001fa2: 68bb ldr r3, [r7, #8] + 8001fa4: 2200 movs r2, #0 + 8001fa6: 2180 movs r1, #128 @ 0x80 + 8001fa8: 68f8 ldr r0, [r7, #12] + 8001faa: f7ff ff47 bl 8001e3c + 8001fae: 4603 mov r3, r0 + 8001fb0: 2b00 cmp r3, #0 + 8001fb2: d016 beq.n 8001fe2 + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + 8001fb4: 68fb ldr r3, [r7, #12] + 8001fb6: 6d5b ldr r3, [r3, #84] @ 0x54 + 8001fb8: f043 0220 orr.w r2, r3, #32 + 8001fbc: 68fb ldr r3, [r7, #12] + 8001fbe: 655a str r2, [r3, #84] @ 0x54 + return HAL_TIMEOUT; + 8001fc0: 2303 movs r3, #3 + 8001fc2: e00f b.n 8001fe4 + * User have to calculate the timeout value to fit with the time of 1 byte transfer. + * This time is directly link with the SPI clock from Master device. + */ + do + { + if (count == 0U) + 8001fc4: 697b ldr r3, [r7, #20] + 8001fc6: 2b00 cmp r3, #0 + 8001fc8: d00a beq.n 8001fe0 + { + break; + } + count--; + 8001fca: 697b ldr r3, [r7, #20] + 8001fcc: 3b01 subs r3, #1 + 8001fce: 617b str r3, [r7, #20] + } while (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_BSY) != RESET); + 8001fd0: 68fb ldr r3, [r7, #12] + 8001fd2: 681b ldr r3, [r3, #0] + 8001fd4: 689b ldr r3, [r3, #8] + 8001fd6: f003 0380 and.w r3, r3, #128 @ 0x80 + 8001fda: 2b80 cmp r3, #128 @ 0x80 + 8001fdc: d0f2 beq.n 8001fc4 + 8001fde: e000 b.n 8001fe2 + break; + 8001fe0: bf00 nop + } + + return HAL_OK; + 8001fe2: 2300 movs r3, #0 +} + 8001fe4: 4618 mov r0, r3 + 8001fe6: 3718 adds r7, #24 + 8001fe8: 46bd mov sp, r7 + 8001fea: bd80 pop {r7, pc} + 8001fec: 20000000 .word 0x20000000 + 8001ff0: 165e9f81 .word 0x165e9f81 + +08001ff4 : + 8001ff4: 4603 mov r3, r0 + 8001ff6: 4402 add r2, r0 + 8001ff8: 4293 cmp r3, r2 + 8001ffa: d100 bne.n 8001ffe + 8001ffc: 4770 bx lr + 8001ffe: f803 1b01 strb.w r1, [r3], #1 + 8002002: e7f9 b.n 8001ff8 + +08002004 <__libc_init_array>: + 8002004: b570 push {r4, r5, r6, lr} + 8002006: 2600 movs r6, #0 + 8002008: 4d0c ldr r5, [pc, #48] @ (800203c <__libc_init_array+0x38>) + 800200a: 4c0d ldr r4, [pc, #52] @ (8002040 <__libc_init_array+0x3c>) + 800200c: 1b64 subs r4, r4, r5 + 800200e: 10a4 asrs r4, r4, #2 + 8002010: 42a6 cmp r6, r4 + 8002012: d109 bne.n 8002028 <__libc_init_array+0x24> + 8002014: f000 f81a bl 800204c <_init> + 8002018: 2600 movs r6, #0 + 800201a: 4d0a ldr r5, [pc, #40] @ (8002044 <__libc_init_array+0x40>) + 800201c: 4c0a ldr r4, [pc, #40] @ (8002048 <__libc_init_array+0x44>) + 800201e: 1b64 subs r4, r4, r5 + 8002020: 10a4 asrs r4, r4, #2 + 8002022: 42a6 cmp r6, r4 + 8002024: d105 bne.n 8002032 <__libc_init_array+0x2e> + 8002026: bd70 pop {r4, r5, r6, pc} + 8002028: f855 3b04 ldr.w r3, [r5], #4 + 800202c: 4798 blx r3 + 800202e: 3601 adds r6, #1 + 8002030: e7ee b.n 8002010 <__libc_init_array+0xc> + 8002032: f855 3b04 ldr.w r3, [r5], #4 + 8002036: 4798 blx r3 + 8002038: 3601 adds r6, #1 + 800203a: e7f2 b.n 8002022 <__libc_init_array+0x1e> + 800203c: 08002088 .word 0x08002088 + 8002040: 08002088 .word 0x08002088 + 8002044: 08002088 .word 0x08002088 + 8002048: 0800208c .word 0x0800208c + +0800204c <_init>: + 800204c: b5f8 push {r3, r4, r5, r6, r7, lr} + 800204e: bf00 nop + 8002050: bcf8 pop {r3, r4, r5, r6, r7} + 8002052: bc08 pop {r3} + 8002054: 469e mov lr, r3 + 8002056: 4770 bx lr + +08002058 <_fini>: + 8002058: b5f8 push {r3, r4, r5, r6, r7, lr} + 800205a: bf00 nop + 800205c: bcf8 pop {r3, r4, r5, r6, r7} + 800205e: bc08 pop {r3} + 8002060: 469e mov lr, r3 + 8002062: 4770 bx lr diff --git a/TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.map b/TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.map new file mode 100644 index 0000000..d61fceb --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/TP2_ISEN_DISPLAY.map @@ -0,0 +1,2895 @@ +Archive member included to satisfy reference by file (symbol) + +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (exit) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) (__stdio_exit_handler) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) (_fwalk_sglue) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (memset) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + ./Core/Src/syscalls.o (__errno) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (__libc_init_array) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) (__retarget_lock_init_recursive) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) (_impure_ptr) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) (_malloc_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) (_fflush_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) (__malloc_lock) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) (__sread) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) (_lseek_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) (_read_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) (_sbrk_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) (_write_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) (_close_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) (errno) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) (_free_r) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o (__aeabi_uldivmod) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) (__udivmoddi4) +/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) (__aeabi_ldiv0) + +Discarded input sections + + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + .data 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + .rodata 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + .text 0x00000000 0x7c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.extab 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.exidx 0x00000000 0x10 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .ARM.attributes + 0x00000000 0x1b /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/main.o + .text 0x00000000 0x0 ./Core/Src/main.o + .data 0x00000000 0x0 ./Core/Src/main.o + .bss 0x00000000 0x0 ./Core/Src/main.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_hal_msp.o + .text 0x00000000 0x0 ./Core/Src/stm32l1xx_hal_msp.o + .data 0x00000000 0x0 ./Core/Src/stm32l1xx_hal_msp.o + .bss 0x00000000 0x0 ./Core/Src/stm32l1xx_hal_msp.o + .text.HAL_SPI_MspDeInit + 0x00000000 0x3c ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xacc ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x109 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x2e ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x8e ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x51 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x103 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x6a ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x1df ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x1c ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xbd ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xe49 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x11f ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xb7a1 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x6d ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x34e1 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x190 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x5b ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xe37 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x35b ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x1b8 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0xc5 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x21e ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x236 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x115 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x567 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x1e9 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x225 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x170 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00000000 0x492 ./Core/Src/stm32l1xx_hal_msp.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/stm32l1xx_it.o + .text 0x00000000 0x0 ./Core/Src/stm32l1xx_it.o + .data 0x00000000 0x0 ./Core/Src/stm32l1xx_it.o + .bss 0x00000000 0x0 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xacc ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x109 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x2e ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x8e ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x51 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x103 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x6a ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x1df ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x1c ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xbd ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xe49 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x11f ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xb7a1 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x6d ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x34e1 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x190 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x5b ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xe37 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x35b ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x1b8 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0xc5 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x21e ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x236 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x115 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x567 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x1e9 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x22 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x225 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x170 ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00000000 0x492 ./Core/Src/stm32l1xx_it.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/syscalls.o + .text 0x00000000 0x0 ./Core/Src/syscalls.o + .data 0x00000000 0x0 ./Core/Src/syscalls.o + .bss 0x00000000 0x0 ./Core/Src/syscalls.o + .bss.__env 0x00000000 0x4 ./Core/Src/syscalls.o + .data.environ 0x00000000 0x4 ./Core/Src/syscalls.o + .text.initialise_monitor_handles + 0x00000000 0xc ./Core/Src/syscalls.o + .text._getpid 0x00000000 0xe ./Core/Src/syscalls.o + .text._kill 0x00000000 0x20 ./Core/Src/syscalls.o + .text._exit 0x00000000 0x16 ./Core/Src/syscalls.o + .text._read 0x00000000 0x3a ./Core/Src/syscalls.o + .text._write 0x00000000 0x38 ./Core/Src/syscalls.o + .text._close 0x00000000 0x16 ./Core/Src/syscalls.o + .text._fstat 0x00000000 0x1e ./Core/Src/syscalls.o + .text._isatty 0x00000000 0x14 ./Core/Src/syscalls.o + .text._lseek 0x00000000 0x18 ./Core/Src/syscalls.o + .text._open 0x00000000 0x1a ./Core/Src/syscalls.o + .text._wait 0x00000000 0x1e ./Core/Src/syscalls.o + .text._unlink 0x00000000 0x1e ./Core/Src/syscalls.o + .text._times 0x00000000 0x16 ./Core/Src/syscalls.o + .text._stat 0x00000000 0x1e ./Core/Src/syscalls.o + .text._link 0x00000000 0x20 ./Core/Src/syscalls.o + .text._fork 0x00000000 0x16 ./Core/Src/syscalls.o + .text._execve 0x00000000 0x22 ./Core/Src/syscalls.o + .debug_info 0x00000000 0x6a3 ./Core/Src/syscalls.o + .debug_abbrev 0x00000000 0x1b6 ./Core/Src/syscalls.o + .debug_aranges + 0x00000000 0xa8 ./Core/Src/syscalls.o + .debug_rnglists + 0x00000000 0x79 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x274 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0xacc ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x22 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x5b ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x24 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x94 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x43 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x34 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x57 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x190 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x370 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x4a ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x34 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x58 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x8e ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x185 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x3c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x6a ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x52 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x22 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x52 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0xcf ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x3d ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x35 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x12c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x29 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x242 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1c ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x10 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x146 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x103 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x1df ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x18a ./Core/Src/syscalls.o + .debug_macro 0x00000000 0x16 ./Core/Src/syscalls.o + .debug_macro 0x00000000 0xce ./Core/Src/syscalls.o + .debug_line 0x00000000 0x845 ./Core/Src/syscalls.o + .debug_str 0x00000000 0x9994 ./Core/Src/syscalls.o + .comment 0x00000000 0x44 ./Core/Src/syscalls.o + .debug_frame 0x00000000 0x2ac ./Core/Src/syscalls.o + .ARM.attributes + 0x00000000 0x2d ./Core/Src/syscalls.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/sysmem.o + .text 0x00000000 0x0 ./Core/Src/sysmem.o + .data 0x00000000 0x0 ./Core/Src/sysmem.o + .bss 0x00000000 0x0 ./Core/Src/sysmem.o + .bss.__sbrk_heap_end + 0x00000000 0x4 ./Core/Src/sysmem.o + .text._sbrk 0x00000000 0x6c ./Core/Src/sysmem.o + .debug_info 0x00000000 0x168 ./Core/Src/sysmem.o + .debug_abbrev 0x00000000 0xbc ./Core/Src/sysmem.o + .debug_aranges + 0x00000000 0x20 ./Core/Src/sysmem.o + .debug_rnglists + 0x00000000 0x13 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x112 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0xacc ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x10 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x22 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x5b ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x24 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x94 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x43 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x34 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x190 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x57 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x370 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x16 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x4a ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x34 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x10 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x58 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x8e ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x1c ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x185 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x23c ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x103 ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x6a ./Core/Src/sysmem.o + .debug_macro 0x00000000 0x1df ./Core/Src/sysmem.o + .debug_line 0x00000000 0x521 ./Core/Src/sysmem.o + .debug_str 0x00000000 0x7732 ./Core/Src/sysmem.o + .comment 0x00000000 0x44 ./Core/Src/sysmem.o + .debug_frame 0x00000000 0x34 ./Core/Src/sysmem.o + .ARM.attributes + 0x00000000 0x2d ./Core/Src/sysmem.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .group 0x00000000 0xc ./Core/Src/system_stm32l1xx.o + .text 0x00000000 0x0 ./Core/Src/system_stm32l1xx.o + .data 0x00000000 0x0 ./Core/Src/system_stm32l1xx.o + .bss 0x00000000 0x0 ./Core/Src/system_stm32l1xx.o + .rodata.APBPrescTable + 0x00000000 0x8 ./Core/Src/system_stm32l1xx.o + .text.SystemCoreClockUpdate + 0x00000000 0x154 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xacc ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x2e ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x22 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x22 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x8e ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x51 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x103 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x6a ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x1df ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x1c ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x22 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xbd ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xe49 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x11f ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xb7a1 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x6d ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x109 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x34e1 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x190 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x5b ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xe37 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x35b ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x1b8 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0xc5 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x21e ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x236 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x115 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x567 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x1e9 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x22 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x225 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x170 ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00000000 0x492 ./Core/Src/system_stm32l1xx.o + .text 0x00000000 0x14 ./Core/Startup/startup_stm32l152retx.o + .data 0x00000000 0x0 ./Core/Startup/startup_stm32l152retx.o + .bss 0x00000000 0x0 ./Core/Startup/startup_stm32l152retx.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/7Seg_MAX7219/max7219.o + .text 0x00000000 0x0 ./Drivers/7Seg_MAX7219/max7219.o + .data 0x00000000 0x0 ./Drivers/7Seg_MAX7219/max7219.o + .bss 0x00000000 0x0 ./Drivers/7Seg_MAX7219/max7219.o + .rodata.conv_7seg + 0x00000000 0x10 ./Drivers/7Seg_MAX7219/max7219.o + .text.MAX7219_ShutdownStart + 0x00000000 0x10 ./Drivers/7Seg_MAX7219/max7219.o + .text.MAX7219_DisplayTestStart + 0x00000000 0x10 ./Drivers/7Seg_MAX7219/max7219.o + .text.MAX7219_DisplayChar + 0x00000000 0x2c ./Drivers/7Seg_MAX7219/max7219.o + .text.MAX7219_DisplayCharPointOff + 0x00000000 0x2c ./Drivers/7Seg_MAX7219/max7219.o + .text.MAX7219_DisplayCharPointOn + 0x00000000 0x34 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xacc ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x109 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x2e ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x22 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x22 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x8e ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x51 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x103 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x6a ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x1df ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x1c ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x22 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xbd ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xe49 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x11f ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x6d ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x34e1 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x190 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x5b ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xe37 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x35b ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x1b8 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0xc5 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x21e ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x236 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x115 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x567 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x1e9 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x22 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x225 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x170 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x492 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00000000 0x10 ./Drivers/7Seg_MAX7219/max7219.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DeInit + 0x00000000 0x3c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_MspInit + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_MspDeInit + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetTickPrio + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_SetTickFreq + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetTickFreq + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_SuspendTick + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_ResumeTick + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetHalVersion + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetREVID + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetDEVID + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetUIDw0 + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetUIDw1 + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_GetUIDw2 + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_EnableDBGSleepMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_DisableDBGSleepMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_EnableDBGStopMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_DisableDBGStopMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_EnableDBGStandbyMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .text.HAL_DBGMCU_DisableDBGStandbyMode + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_EnableIRQ + 0x00000000 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_DisableIRQ + 0x00000000 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_GetPendingIRQ + 0x00000000 0x40 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_SetPendingIRQ + 0x00000000 0x3c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_ClearPendingIRQ + 0x00000000 0x3c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_GetActive + 0x00000000 0x40 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_GetPriority + 0x00000000 0x4c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.NVIC_DecodePriority + 0x00000000 0x6c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_SystemReset + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_EnableIRQ + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_DisableIRQ + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_SystemReset + 0x00000000 0x8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_MPU_Enable + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_MPU_Disable + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_MPU_EnableRegion + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_MPU_DisableRegion + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_MPU_ConfigRegion + 0x00000000 0x7c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_GetPriorityGrouping + 0x00000000 0xe ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_GetPriority + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_SetPendingIRQ + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_GetPendingIRQ + 0x00000000 0x1e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_ClearPendingIRQ + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_GetActive + 0x00000000 0x1e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_SYSTICK_CLKSourceConfig + 0x00000000 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_SYSTICK_IRQHandler + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_SYSTICK_Callback + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_Init + 0x00000000 0xe8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_DeInit + 0x00000000 0xdc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_Start + 0x00000000 0x86 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_Start_IT + 0x00000000 0xc0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_Abort + 0x00000000 0x7a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_Abort_IT + 0x00000000 0x82 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_PollForTransfer + 0x00000000 0x14e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_IRQHandler + 0x00000000 0x15e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_RegisterCallback + 0x00000000 0x90 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_UnRegisterCallback + 0x00000000 0xac ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_GetState + 0x00000000 0x1a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.HAL_DMA_GetError + 0x00000000 0x16 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .text.DMA_SetConfig + 0x00000000 0x5e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_info 0x00000000 0x6c7 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_abbrev 0x00000000 0x201 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_aranges + 0x00000000 0x80 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_rnglists + 0x00000000 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_line 0x00000000 0xbc1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_str 0x00000000 0x7f97d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .debug_frame 0x00000000 0x204 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_SetConfigLine + 0x00000000 0x14c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_GetConfigLine + 0x00000000 0xf0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_ClearConfigLine + 0x00000000 0xc0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_RegisterCallback + 0x00000000 0x32 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_GetHandle + 0x00000000 0x26 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_IRQHandler + 0x00000000 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_GetPending + 0x00000000 0x40 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_ClearPending + 0x00000000 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .text.HAL_EXTI_GenerateSWI + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_info 0x00000000 0x4ca ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_abbrev 0x00000000 0x1c7 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_aranges + 0x00000000 0x60 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_rnglists + 0x00000000 0x46 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_line 0x00000000 0x989 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_str 0x00000000 0x7f72e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .debug_frame 0x00000000 0x174 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .bss.pFlash 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_Program + 0x00000000 0x5c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_Program_IT + 0x00000000 0x60 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_IRQHandler + 0x00000000 0x160 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_EndOfOperationCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_OperationErrorCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_Unlock + 0x00000000 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_Lock + 0x00000000 0x20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_OB_Unlock + 0x00000000 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_OB_Lock + 0x00000000 0x20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_OB_Launch + 0x00000000 0x24 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.HAL_FLASH_GetError + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.FLASH_WaitForLastOperation + 0x00000000 0xac ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .text.FLASH_SetErrorCode + 0x00000000 0xcc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_info 0x00000000 0x46a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_abbrev 0x00000000 0x242 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_aranges + 0x00000000 0x80 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_rnglists + 0x00000000 0x5e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x19c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_line 0x00000000 0x987 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_str 0x00000000 0x7f7f7 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .debug_frame 0x00000000 0x1d8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_Erase + 0x00000000 0xac ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_Erase_IT + 0x00000000 0x80 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBProgram + 0x00000000 0x108 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_OBGetConfig + 0x00000000 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_AdvOBProgram + 0x00000000 0x32 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_AdvOBGetConfig + 0x00000000 0x3c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_Unlock + 0x00000000 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_Lock + 0x00000000 0x20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_Erase + 0x00000000 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_Program + 0x00000000 0xd8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_RDPConfig + 0x00000000 0x88 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_BORConfig + 0x00000000 0x78 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_GetUser + 0x00000000 0x20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_GetRDP + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_GetBOR + 0x00000000 0x20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_WRPConfig + 0x00000000 0x9c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_WRPConfigWRP1OrPCROP1 + 0x00000000 0xc4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_WRPConfigWRP2OrPCROP2 + 0x00000000 0xc4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_WRPConfigWRP3 + 0x00000000 0xc4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_WRPConfigWRP4 + 0x00000000 0xd4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_UserConfig + 0x00000000 0x9c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_OB_BootConfig + 0x00000000 0x78 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_FastProgramByte + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_FastProgramHalfWord + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_FastProgramWord + 0x00000000 0x4c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_ProgramByte + 0x00000000 0x3e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_ProgramHalfWord + 0x00000000 0x3e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_DATAEEPROM_ProgramWord + 0x00000000 0x3c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .text.FLASH_PageErase + 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_info 0x00000000 0xc8d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_abbrev 0x00000000 0x290 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_aranges + 0x00000000 0x110 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_rnglists + 0x00000000 0xd2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_line 0x00000000 0xf2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_str 0x00000000 0x7fc53 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .debug_frame 0x00000000 0x470 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .RamFunc 0x00000000 0x534 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_info 0x00000000 0x623 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_abbrev 0x00000000 0x2b2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_aranges + 0x00000000 0x68 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_rnglists + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_line 0x00000000 0x945 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_str 0x00000000 0x7f880 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .debug_frame 0x00000000 0x178 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_DeInit + 0x00000000 0x1e0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_ReadPin + 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_TogglePin + 0x00000000 0x32 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_LockPin + 0x00000000 0x4e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_EXTI_IRQHandler + 0x00000000 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_EXTI_Callback + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DeInit + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnableBkUpAccess + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DisableBkUpAccess + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_ConfigPVD + 0x00000000 0xbc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnablePVD + 0x00000000 0x34 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DisablePVD + 0x00000000 0x34 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnableWakeUpPin + 0x00000000 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DisableWakeUpPin + 0x00000000 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnterSLEEPMode + 0x00000000 0x4c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnterSTOPMode + 0x00000000 0x58 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnterSTANDBYMode + 0x00000000 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnableSleepOnExit + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DisableSleepOnExit + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_EnableSEVOnPend + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_DisableSEVOnPend + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_PVD_IRQHandler + 0x00000000 0x24 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .text.HAL_PWR_PVDCallback + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_info 0x00000000 0x6de ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_abbrev 0x00000000 0x1f2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_aranges + 0x00000000 0xa0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_rnglists + 0x00000000 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x1b3 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_line 0x00000000 0x963 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_str 0x00000000 0x7f88c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .debug_frame 0x00000000 0x274 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_GetVoltageRange + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableFastWakeUp + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableFastWakeUp + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableUltraLowPower + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableUltraLowPower + 0x00000000 0x36 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_EnableLowPowerRunMode + 0x00000000 0x5a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .text.HAL_PWREx_DisableLowPowerRunMode + 0x00000000 0x5c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_info 0x00000000 0x2e7 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_abbrev 0x00000000 0x152 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_aranges + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_rnglists + 0x00000000 0x37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_line 0x00000000 0x894 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_str 0x00000000 0x7f66b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .debug_frame 0x00000000 0x120 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_DeInit + 0x00000000 0x114 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_MCOConfig + 0x00000000 0x6c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_EnableCSS + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_DisableCSS + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_GetHCLKFreq + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_GetPCLK1Freq + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_GetPCLK2Freq + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_GetOscConfig + 0x00000000 0x138 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_GetClockConfig + 0x00000000 0x60 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_NMI_IRQHandler + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_RCC_CSSCallback + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_PeriphCLKConfig + 0x00000000 0x214 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_GetPeriphCLKConfig + 0x00000000 0x5c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_GetPeriphCLKFreq + 0x00000000 0xd0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_EnableLSECSS + 0x00000000 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_DisableLSECSS + 0x00000000 0x2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_EnableLSECSS_IT + 0x00000000 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_LSECSS_IRQHandler + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .text.HAL_RCCEx_LSECSS_Callback + 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_info 0x00000000 0x3eb ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_abbrev 0x00000000 0x1c9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_aranges + 0x00000000 0x58 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_rnglists + 0x00000000 0x3f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_line 0x00000000 0x8ee ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_str 0x00000000 0x7f79b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .comment 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .debug_frame 0x00000000 0x120 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .ARM.attributes + 0x00000000 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .group 0x00000000 0xc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .data 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .bss 0x00000000 0x0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_DeInit + 0x00000000 0x50 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_MspInit + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_MspDeInit + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Receive + 0x00000000 0x232 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TransmitReceive + 0x00000000 0x352 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Transmit_IT + 0x00000000 0x108 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Receive_IT + 0x00000000 0x130 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TransmitReceive_IT + 0x00000000 0x11c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Transmit_DMA + 0x00000000 0x164 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Receive_DMA + 0x00000000 0x188 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TransmitReceive_DMA + 0x00000000 0x1f8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Abort + 0x00000000 0x1d8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_Abort_IT + 0x00000000 0x1f4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_DMAPause + 0x00000000 0x42 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_DMAResume + 0x00000000 0x42 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_DMAStop + 0x00000000 0x7e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_IRQHandler + 0x00000000 0x200 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TxCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_RxCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TxRxCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TxHalfCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_RxHalfCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_TxRxHalfCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_ErrorCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_AbortCpltCallback + 0x00000000 0x12 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_GetState + 0x00000000 0x1a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.HAL_SPI_GetError + 0x00000000 0x16 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMATransmitCplt + 0x00000000 0xa6 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAReceiveCplt + 0x00000000 0xa6 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMATransmitReceiveCplt + 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAHalfTransmitCplt + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAHalfReceiveCplt + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAHalfTransmitReceiveCplt + 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAError + 0x00000000 0x40 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMAAbortOnError + 0x00000000 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMATxAbortCallback + 0x00000000 0xd4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_DMARxAbortCallback + 0x00000000 0xc0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_2linesRxISR_8BIT + 0x00000000 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_2linesTxISR_8BIT + 0x00000000 0x60 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_2linesRxISR_16BIT + 0x00000000 0x60 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_2linesTxISR_16BIT + 0x00000000 0x5e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_RxISR_8BIT + 0x00000000 0x4a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_RxISR_16BIT + 0x00000000 0x46 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_TxISR_8BIT + 0x00000000 0x46 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_TxISR_16BIT + 0x00000000 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_EndRxTransaction + 0x00000000 0xca ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_CloseRxTx_ISR + 0x00000000 0xe8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_CloseRx_ISR + 0x00000000 0x7e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_CloseTx_ISR + 0x00000000 0xc4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_AbortRx_ISR + 0x00000000 0x8c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_AbortTx_ISR + 0x00000000 0x3a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x8e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x51 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x103 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x6a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x1df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xbd ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xe49 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x11f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xb7a1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x34e1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x190 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x5b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xe37 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x35b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x1b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0xc5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x21e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x236 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x115 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x567 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x22 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x225 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x170 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_macro 0x00000000 0x492 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .text.exit 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .debug_frame 0x00000000 0x28 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-exit.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.std 0x00000000 0x6c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.stdio_exit_handler + 0x00000000 0x18 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.cleanup_stdio + 0x00000000 0x40 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__fp_lock + 0x00000000 0x18 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__fp_unlock + 0x00000000 0x18 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.global_stdio_init.part.0 + 0x00000000 0x3c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__sfp_lock_acquire + 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__sfp_lock_release + 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__sfp 0x00000000 0xa4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__sinit 0x00000000 0x30 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__fp_lock_all + 0x00000000 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text.__fp_unlock_all + 0x00000000 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .data.__sglue 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .bss.__sf 0x00000000 0x138 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .bss.__stdio_exit_handler + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .debug_frame 0x00000000 0x144 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-findfp.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .text._fwalk_sglue + 0x00000000 0x3c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .debug_frame 0x00000000 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fwalk.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .text.__errno 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .debug_frame 0x00000000 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-errno.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_init + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_init_recursive + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_close + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_close_recursive + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_acquire + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_acquire_recursive + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_try_acquire + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_try_acquire_recursive + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_release + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text.__retarget_lock_release_recursive + 0x00000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___arc4random_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___dd_hash_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___tz_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___env_recursive_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___malloc_recursive_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___at_quick_exit_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___atexit_recursive_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .bss.__lock___sfp_recursive_mutex + 0x00000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .debug_frame 0x00000000 0xb0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lock.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .data._impure_ptr + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .data._impure_data + 0x00000000 0x4c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-impure.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .text.sbrk_aligned + 0x00000000 0x44 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .text._malloc_r + 0x00000000 0x100 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .bss.__malloc_sbrk_start + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .bss.__malloc_free_list + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .debug_frame 0x00000000 0x50 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mallocr.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .text.__sflush_r + 0x00000000 0x100 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .text._fflush_r + 0x00000000 0x50 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .text.fflush 0x00000000 0x28 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .debug_frame 0x00000000 0x5c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-fflush.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .text.__malloc_lock + 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .text.__malloc_unlock + 0x00000000 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .debug_frame 0x00000000 0x30 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-mlock.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text.__sread 0x00000000 0x22 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text.__seofread + 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text.__swrite + 0x00000000 0x38 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text.__sseek 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text.__sclose + 0x00000000 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .debug_frame 0x00000000 0x88 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-stdio.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .text._lseek_r + 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .debug_frame 0x00000000 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-lseekr.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .text._read_r 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .debug_frame 0x00000000 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-readr.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .text._sbrk_r 0x00000000 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .debug_frame 0x00000000 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-sbrkr.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .text._write_r + 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .debug_frame 0x00000000 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-writer.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .text._close_r + 0x00000000 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .debug_frame 0x00000000 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-closer.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .text._reclaim_reent + 0x00000000 0xbc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .bss.errno 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .debug_frame 0x00000000 0x38 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-reent.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .text._free_r 0x00000000 0x90 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .debug_frame 0x00000000 0x38 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-freer.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + .ARM.extab 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .rodata 0x00000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .eh_frame 0x00000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .ARM.attributes + 0x00000000 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o + .text 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + .data 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + .bss 0x00000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + +Memory Configuration + +Name Origin Length Attributes +RAM 0x20000000 0x00014000 xrw +FLASH 0x08000000 0x00080000 xr +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o +LOAD ./Core/Src/main.o +LOAD ./Core/Src/stm32l1xx_hal_msp.o +LOAD ./Core/Src/stm32l1xx_it.o +LOAD ./Core/Src/syscalls.o +LOAD ./Core/Src/sysmem.o +LOAD ./Core/Src/system_stm32l1xx.o +LOAD ./Core/Startup/startup_stm32l152retx.o +LOAD ./Drivers/7Seg_MAX7219/max7219.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o +LOAD ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libm.a +END GROUP +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +END GROUP +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libnosys.a +END GROUP +START GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libnosys.a +END GROUP +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtend.o +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + 0x20014000 _estack = (ORIGIN (RAM) + LENGTH (RAM)) + 0x00000200 _Min_Heap_Size = 0x200 + 0x00000400 _Min_Stack_Size = 0x400 + +.isr_vector 0x08000000 0x13c + 0x08000000 . = ALIGN (0x4) + *(.isr_vector) + .isr_vector 0x08000000 0x13c ./Core/Startup/startup_stm32l152retx.o + 0x08000000 g_pfnVectors + 0x0800013c . = ALIGN (0x4) + +.text 0x0800013c 0x1f28 + 0x0800013c . = ALIGN (0x4) + *(.text) + .text 0x0800013c 0x40 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + .text 0x0800017c 0x30 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + 0x0800017c __aeabi_uldivmod + .text 0x080001ac 0x300 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + 0x080001ac __udivmoddi4 + .text 0x080004ac 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + 0x080004ac __aeabi_ldiv0 + 0x080004ac __aeabi_idiv0 + *(.text*) + .text.displayScrollingText + 0x080004b0 0x86 ./Core/Src/main.o + 0x080004b0 displayScrollingText + .text.main 0x08000536 0x22 ./Core/Src/main.o + 0x08000536 main + .text.SystemClock_Config + 0x08000558 0x8c ./Core/Src/main.o + 0x08000558 SystemClock_Config + .text.MX_SPI1_Init + 0x080005e4 0x6c ./Core/Src/main.o + .text.MX_GPIO_Init + 0x08000650 0x7c ./Core/Src/main.o + .text.Error_Handler + 0x080006cc 0xc ./Core/Src/main.o + 0x080006cc Error_Handler + .text.HAL_MspInit + 0x080006d8 0x5c ./Core/Src/stm32l1xx_hal_msp.o + 0x080006d8 HAL_MspInit + .text.HAL_SPI_MspInit + 0x08000734 0x88 ./Core/Src/stm32l1xx_hal_msp.o + 0x08000734 HAL_SPI_MspInit + .text.NMI_Handler + 0x080007bc 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007bc NMI_Handler + .text.HardFault_Handler + 0x080007c4 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007c4 HardFault_Handler + .text.MemManage_Handler + 0x080007cc 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007cc MemManage_Handler + .text.BusFault_Handler + 0x080007d4 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007d4 BusFault_Handler + .text.UsageFault_Handler + 0x080007dc 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007dc UsageFault_Handler + .text.SVC_Handler + 0x080007e4 0xc ./Core/Src/stm32l1xx_it.o + 0x080007e4 SVC_Handler + .text.DebugMon_Handler + 0x080007f0 0xc ./Core/Src/stm32l1xx_it.o + 0x080007f0 DebugMon_Handler + .text.PendSV_Handler + 0x080007fc 0xc ./Core/Src/stm32l1xx_it.o + 0x080007fc PendSV_Handler + .text.SysTick_Handler + 0x08000808 0xc ./Core/Src/stm32l1xx_it.o + 0x08000808 SysTick_Handler + .text.SystemInit + 0x08000814 0xc ./Core/Src/system_stm32l1xx.o + 0x08000814 SystemInit + .text.Reset_Handler + 0x08000820 0x48 ./Core/Startup/startup_stm32l152retx.o + 0x08000820 Reset_Handler + .text.Default_Handler + 0x08000868 0x2 ./Core/Startup/startup_stm32l152retx.o + 0x08000868 DMA2_Channel3_IRQHandler + 0x08000868 EXTI2_IRQHandler + 0x08000868 COMP_ACQ_IRQHandler + 0x08000868 TIM10_IRQHandler + 0x08000868 USB_HP_IRQHandler + 0x08000868 TIM6_IRQHandler + 0x08000868 PVD_IRQHandler + 0x08000868 EXTI3_IRQHandler + 0x08000868 EXTI0_IRQHandler + 0x08000868 I2C2_EV_IRQHandler + 0x08000868 SPI1_IRQHandler + 0x08000868 USB_FS_WKUP_IRQHandler + 0x08000868 DMA2_Channel2_IRQHandler + 0x08000868 DMA1_Channel4_IRQHandler + 0x08000868 ADC1_IRQHandler + 0x08000868 USART3_IRQHandler + 0x08000868 DMA1_Channel7_IRQHandler + 0x08000868 LCD_IRQHandler + 0x08000868 UART5_IRQHandler + 0x08000868 TIM4_IRQHandler + 0x08000868 DMA2_Channel1_IRQHandler + 0x08000868 I2C1_EV_IRQHandler + 0x08000868 DMA1_Channel6_IRQHandler + 0x08000868 UART4_IRQHandler + 0x08000868 DMA2_Channel4_IRQHandler + 0x08000868 TIM3_IRQHandler + 0x08000868 RCC_IRQHandler + 0x08000868 DMA1_Channel1_IRQHandler + 0x08000868 Default_Handler + 0x08000868 EXTI15_10_IRQHandler + 0x08000868 TIM7_IRQHandler + 0x08000868 TIM5_IRQHandler + 0x08000868 EXTI9_5_IRQHandler + 0x08000868 TIM9_IRQHandler + 0x08000868 TAMPER_STAMP_IRQHandler + 0x08000868 RTC_WKUP_IRQHandler + 0x08000868 SPI2_IRQHandler + 0x08000868 DMA2_Channel5_IRQHandler + 0x08000868 DMA1_Channel5_IRQHandler + 0x08000868 USB_LP_IRQHandler + 0x08000868 EXTI4_IRQHandler + 0x08000868 DMA1_Channel3_IRQHandler + 0x08000868 COMP_IRQHandler + 0x08000868 WWDG_IRQHandler + 0x08000868 TIM2_IRQHandler + 0x08000868 DAC_IRQHandler + 0x08000868 EXTI1_IRQHandler + 0x08000868 TIM11_IRQHandler + 0x08000868 USART2_IRQHandler + 0x08000868 I2C2_ER_IRQHandler + 0x08000868 DMA1_Channel2_IRQHandler + 0x08000868 FLASH_IRQHandler + 0x08000868 USART1_IRQHandler + 0x08000868 SPI3_IRQHandler + 0x08000868 I2C1_ER_IRQHandler + 0x08000868 RTC_Alarm_IRQHandler + .text.MAX7219_Init + 0x0800086a 0x2a ./Drivers/7Seg_MAX7219/max7219.o + 0x0800086a MAX7219_Init + .text.MAX7219_ShutdownStop + 0x08000894 0x10 ./Drivers/7Seg_MAX7219/max7219.o + 0x08000894 MAX7219_ShutdownStop + .text.MAX7219_DisplayTestStop + 0x080008a4 0x10 ./Drivers/7Seg_MAX7219/max7219.o + 0x080008a4 MAX7219_DisplayTestStop + .text.MAX7219_SetBrightness + 0x080008b4 0x24 ./Drivers/7Seg_MAX7219/max7219.o + 0x080008b4 MAX7219_SetBrightness + .text.MAX7219_Clear + 0x080008d8 0x2c ./Drivers/7Seg_MAX7219/max7219.o + 0x080008d8 MAX7219_Clear + .text.MAX7219_Write + 0x08000904 0x3c ./Drivers/7Seg_MAX7219/max7219.o + 0x08000904 MAX7219_Write + .text.MAX7219_SendByte + 0x08000940 0x24 ./Drivers/7Seg_MAX7219/max7219.o + .text.HAL_Init + 0x08000964 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000964 HAL_Init + .text.HAL_InitTick + 0x08000994 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000994 HAL_InitTick + .text.HAL_IncTick + 0x08000a08 0x24 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000a08 HAL_IncTick + .text.HAL_GetTick + 0x08000a2c 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000a2c HAL_GetTick + .text.HAL_Delay + 0x08000a40 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000a40 HAL_Delay + .text.__NVIC_SetPriorityGrouping + 0x08000a84 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_GetPriorityGrouping + 0x08000acc 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_SetPriority + 0x08000ae8 0x54 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.NVIC_EncodePriority + 0x08000b3c 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.SysTick_Config + 0x08000ba0 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_SetPriorityGrouping + 0x08000be4 0x16 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000be4 HAL_NVIC_SetPriorityGrouping + .text.HAL_NVIC_SetPriority + 0x08000bfa 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000bfa HAL_NVIC_SetPriority + .text.HAL_SYSTICK_Config + 0x08000c32 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000c32 HAL_SYSTICK_Config + *fill* 0x08000c4a 0x2 + .text.HAL_GPIO_Init + 0x08000c4c 0x320 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + 0x08000c4c HAL_GPIO_Init + .text.HAL_GPIO_WritePin + 0x08000f6c 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + 0x08000f6c HAL_GPIO_WritePin + .text.HAL_RCC_OscConfig + 0x08000f9c 0x660 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x08000f9c HAL_RCC_OscConfig + .text.HAL_RCC_ClockConfig + 0x080015fc 0x268 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x080015fc HAL_RCC_ClockConfig + .text.HAL_RCC_GetSysClockFreq + 0x08001864 0x17c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x08001864 HAL_RCC_GetSysClockFreq + .text.RCC_SetFlashLatencyFromMSIRange + 0x080019e0 0xc0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.HAL_SPI_Init + 0x08001aa0 0x112 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + 0x08001aa0 HAL_SPI_Init + .text.HAL_SPI_Transmit + 0x08001bb2 0x288 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + 0x08001bb2 HAL_SPI_Transmit + *fill* 0x08001e3a 0x2 + .text.SPI_WaitFlagStateUntilTimeout + 0x08001e3c 0x110 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.SPI_EndRxTxTransaction + 0x08001f4c 0xa8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .text.memset 0x08001ff4 0x10 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + 0x08001ff4 memset + .text.__libc_init_array + 0x08002004 0x48 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + 0x08002004 __libc_init_array + *(.glue_7) + .glue_7 0x0800204c 0x0 linker stubs + *(.glue_7t) + .glue_7t 0x0800204c 0x0 linker stubs + *(.eh_frame) + .eh_frame 0x0800204c 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + *(.init) + .init 0x0800204c 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + 0x0800204c _init + .init 0x08002050 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + *(.fini) + .fini 0x08002058 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + 0x08002058 _fini + .fini 0x0800205c 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o + 0x08002064 . = ALIGN (0x4) + 0x08002064 _etext = . + +.vfp11_veneer 0x08002064 0x0 + .vfp11_veneer 0x08002064 0x0 linker stubs + +.v4_bx 0x08002064 0x0 + .v4_bx 0x08002064 0x0 linker stubs + +.iplt 0x08002064 0x0 + .iplt 0x08002064 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + +.rodata 0x08002064 0x1c + 0x08002064 . = ALIGN (0x4) + *(.rodata) + *(.rodata*) + .rodata.PLLMulTable + 0x08002064 0x9 ./Core/Src/system_stm32l1xx.o + 0x08002064 PLLMulTable + *fill* 0x0800206d 0x3 + .rodata.AHBPrescTable + 0x08002070 0x10 ./Core/Src/system_stm32l1xx.o + 0x08002070 AHBPrescTable + 0x08002080 . = ALIGN (0x4) + +.ARM.extab 0x08002080 0x0 + 0x08002080 . = ALIGN (0x4) + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x08002080 . = ALIGN (0x4) + +.ARM 0x08002080 0x8 + 0x08002080 . = ALIGN (0x4) + 0x08002080 __exidx_start = . + *(.ARM.exidx*) + .ARM.exidx 0x08002080 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + 0x08002088 __exidx_end = . + 0x08002088 . = ALIGN (0x4) + +.preinit_array 0x08002088 0x0 + 0x08002088 . = ALIGN (0x4) + 0x08002088 PROVIDE (__preinit_array_start = .) + *(.preinit_array*) + 0x08002088 PROVIDE (__preinit_array_end = .) + 0x08002088 . = ALIGN (0x4) + +.init_array 0x08002088 0x4 + 0x08002088 . = ALIGN (0x4) + 0x08002088 PROVIDE (__init_array_start = .) + *(SORT_BY_NAME(.init_array.*)) + *(.init_array*) + .init_array 0x08002088 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + 0x0800208c PROVIDE (__init_array_end = .) + 0x0800208c . = ALIGN (0x4) + +.fini_array 0x0800208c 0x4 + 0x0800208c . = ALIGN (0x4) + [!provide] PROVIDE (__fini_array_start = .) + *(SORT_BY_NAME(.fini_array.*)) + *(.fini_array*) + .fini_array 0x0800208c 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + [!provide] PROVIDE (__fini_array_end = .) + 0x08002090 . = ALIGN (0x4) + 0x08002090 _sidata = LOADADDR (.data) + +.rel.dyn 0x08002090 0x0 + .rel.iplt 0x08002090 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + +.data 0x20000000 0xc load address 0x08002090 + 0x20000000 . = ALIGN (0x4) + 0x20000000 _sdata = . + *(.data) + *(.data*) + .data.SystemCoreClock + 0x20000000 0x4 ./Core/Src/system_stm32l1xx.o + 0x20000000 SystemCoreClock + .data.uwTickPrio + 0x20000004 0x4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x20000004 uwTickPrio + .data.uwTickFreq + 0x20000008 0x4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x20000008 uwTickFreq + *(.RamFunc) + *(.RamFunc*) + 0x2000000c . = ALIGN (0x4) + 0x2000000c _edata = . + +.igot.plt 0x2000000c 0x0 load address 0x0800209c + .igot.plt 0x2000000c 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + 0x2000000c . = ALIGN (0x4) + +.bss 0x2000000c 0x78 load address 0x0800209c + 0x2000000c _sbss = . + 0x2000000c __bss_start__ = _sbss + *(.bss) + .bss 0x2000000c 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + *(.bss*) + .bss.hspi1 0x20000028 0x58 ./Core/Src/main.o + 0x20000028 hspi1 + .bss.uwTick 0x20000080 0x4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x20000080 uwTick + *(COMMON) + 0x20000084 . = ALIGN (0x4) + 0x20000084 _ebss = . + 0x20000084 __bss_end__ = _ebss + +._user_heap_stack + 0x20000084 0x604 load address 0x0800209c + 0x20000088 . = ALIGN (0x8) + *fill* 0x20000084 0x4 + [!provide] PROVIDE (end = .) + 0x20000088 PROVIDE (_end = .) + 0x20000288 . = (. + _Min_Heap_Size) + *fill* 0x20000088 0x200 + 0x20000688 . = (. + _Min_Stack_Size) + *fill* 0x20000288 0x400 + 0x20000688 . = ALIGN (0x8) + +/DISCARD/ + libc.a(*) + libm.a(*) + libgcc.a(*) + +.ARM.attributes + 0x00000000 0x29 + *(.ARM.attributes) + .ARM.attributes + 0x00000000 0x1d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crti.o + .ARM.attributes + 0x0000001d 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtbegin.o + .ARM.attributes + 0x0000004a 0x2d ./Core/Src/main.o + .ARM.attributes + 0x00000077 0x2d ./Core/Src/stm32l1xx_hal_msp.o + .ARM.attributes + 0x000000a4 0x2d ./Core/Src/stm32l1xx_it.o + .ARM.attributes + 0x000000d1 0x2d ./Core/Src/system_stm32l1xx.o + .ARM.attributes + 0x000000fe 0x21 ./Core/Startup/startup_stm32l152retx.o + .ARM.attributes + 0x0000011f 0x2d ./Drivers/7Seg_MAX7219/max7219.o + .ARM.attributes + 0x0000014c 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .ARM.attributes + 0x00000179 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .ARM.attributes + 0x000001a6 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .ARM.attributes + 0x000001d3 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .ARM.attributes + 0x00000200 0x2d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .ARM.attributes + 0x0000022d 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .ARM.attributes + 0x0000025a 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .ARM.attributes + 0x00000287 0x1d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + .ARM.attributes + 0x000002a4 0x2d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + .ARM.attributes + 0x000002d1 0x1d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_dvmd_tls.o) + .ARM.attributes + 0x000002ee 0x1d /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/crtn.o +OUTPUT(TP2_ISEN_DISPLAY.elf elf32-littlearm) +LOAD linker stubs +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libm.a +LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a + +.debug_info 0x00000000 0x57a5 + .debug_info 0x00000000 0xbb6 ./Core/Src/main.o + .debug_info 0x00000bb6 0x828 ./Core/Src/stm32l1xx_hal_msp.o + .debug_info 0x000013de 0x113 ./Core/Src/stm32l1xx_it.o + .debug_info 0x000014f1 0x27c ./Core/Src/system_stm32l1xx.o + .debug_info 0x0000176d 0x30 ./Core/Startup/startup_stm32l152retx.o + .debug_info 0x0000179d 0x80e ./Drivers/7Seg_MAX7219/max7219.o + .debug_info 0x00001fab 0x6ef ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_info 0x0000269a 0xce5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_info 0x0000337f 0x5b2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_info 0x00003931 0x99b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_info 0x000042cc 0x14d9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_abbrev 0x00000000 0x148d + .debug_abbrev 0x00000000 0x2ad ./Core/Src/main.o + .debug_abbrev 0x000002ad 0x1ad ./Core/Src/stm32l1xx_hal_msp.o + .debug_abbrev 0x0000045a 0x73 ./Core/Src/stm32l1xx_it.o + .debug_abbrev 0x000004cd 0x11c ./Core/Src/system_stm32l1xx.o + .debug_abbrev 0x000005e9 0x24 ./Core/Startup/startup_stm32l152retx.o + .debug_abbrev 0x0000060d 0x1e9 ./Drivers/7Seg_MAX7219/max7219.o + .debug_abbrev 0x000007f6 0x275 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_abbrev 0x00000a6b 0x31c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_abbrev 0x00000d87 0x1d4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_abbrev 0x00000f5b 0x2b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_abbrev 0x00001213 0x27a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_aranges 0x00000000 0x660 + .debug_aranges + 0x00000000 0x48 ./Core/Src/main.o + .debug_aranges + 0x00000048 0x30 ./Core/Src/stm32l1xx_hal_msp.o + .debug_aranges + 0x00000078 0x60 ./Core/Src/stm32l1xx_it.o + .debug_aranges + 0x000000d8 0x28 ./Core/Src/system_stm32l1xx.o + .debug_aranges + 0x00000100 0x28 ./Core/Startup/startup_stm32l152retx.o + .debug_aranges + 0x00000128 0x78 ./Drivers/7Seg_MAX7219/max7219.o + .debug_aranges + 0x000001a0 0xe0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_aranges + 0x00000280 0x128 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_aranges + 0x000003a8 0x58 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_aranges + 0x00000400 0x90 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_aranges + 0x00000490 0x1d0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_rnglists + 0x00000000 0x4b5 + .debug_rnglists + 0x00000000 0x33 ./Core/Src/main.o + .debug_rnglists + 0x00000033 0x20 ./Core/Src/stm32l1xx_hal_msp.o + .debug_rnglists + 0x00000053 0x43 ./Core/Src/stm32l1xx_it.o + .debug_rnglists + 0x00000096 0x1a ./Core/Src/system_stm32l1xx.o + .debug_rnglists + 0x000000b0 0x19 ./Core/Startup/startup_stm32l152retx.o + .debug_rnglists + 0x000000c9 0x55 ./Drivers/7Seg_MAX7219/max7219.o + .debug_rnglists + 0x0000011e 0xa3 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_rnglists + 0x000001c1 0xd9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_rnglists + 0x0000029a 0x3f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_rnglists + 0x000002d9 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_rnglists + 0x00000346 0x16f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_macro 0x00000000 0x14998 + .debug_macro 0x00000000 0x1ae ./Core/Src/main.o + .debug_macro 0x000001ae 0xacc ./Core/Src/main.o + .debug_macro 0x00000c7a 0x109 ./Core/Src/main.o + .debug_macro 0x00000d83 0x2e ./Core/Src/main.o + .debug_macro 0x00000db1 0x22 ./Core/Src/main.o + .debug_macro 0x00000dd3 0x22 ./Core/Src/main.o + .debug_macro 0x00000df5 0x8e ./Core/Src/main.o + .debug_macro 0x00000e83 0x51 ./Core/Src/main.o + .debug_macro 0x00000ed4 0x103 ./Core/Src/main.o + .debug_macro 0x00000fd7 0x6a ./Core/Src/main.o + .debug_macro 0x00001041 0x1df ./Core/Src/main.o + .debug_macro 0x00001220 0x1c ./Core/Src/main.o + .debug_macro 0x0000123c 0x22 ./Core/Src/main.o + .debug_macro 0x0000125e 0xbd ./Core/Src/main.o + .debug_macro 0x0000131b 0xe49 ./Core/Src/main.o + .debug_macro 0x00002164 0x11f ./Core/Src/main.o + .debug_macro 0x00002283 0xb7a1 ./Core/Src/main.o + .debug_macro 0x0000da24 0x6d ./Core/Src/main.o + .debug_macro 0x0000da91 0x34e1 ./Core/Src/main.o + .debug_macro 0x00010f72 0x190 ./Core/Src/main.o + .debug_macro 0x00011102 0x5b ./Core/Src/main.o + .debug_macro 0x0001115d 0xe37 ./Core/Src/main.o + .debug_macro 0x00011f94 0x35b ./Core/Src/main.o + .debug_macro 0x000122ef 0x1b8 ./Core/Src/main.o + .debug_macro 0x000124a7 0xc5 ./Core/Src/main.o + .debug_macro 0x0001256c 0x21e ./Core/Src/main.o + .debug_macro 0x0001278a 0x236 ./Core/Src/main.o + .debug_macro 0x000129c0 0x115 ./Core/Src/main.o + .debug_macro 0x00012ad5 0x567 ./Core/Src/main.o + .debug_macro 0x0001303c 0x1e9 ./Core/Src/main.o + .debug_macro 0x00013225 0x22 ./Core/Src/main.o + .debug_macro 0x00013247 0x225 ./Core/Src/main.o + .debug_macro 0x0001346c 0x170 ./Core/Src/main.o + .debug_macro 0x000135dc 0x492 ./Core/Src/main.o + .debug_macro 0x00013a6e 0x10 ./Core/Src/main.o + .debug_macro 0x00013a7e 0x1a5 ./Core/Src/stm32l1xx_hal_msp.o + .debug_macro 0x00013c23 0x1af ./Core/Src/stm32l1xx_it.o + .debug_macro 0x00013dd2 0x19b ./Core/Src/system_stm32l1xx.o + .debug_macro 0x00013f6d 0x1d8 ./Drivers/7Seg_MAX7219/max7219.o + .debug_macro 0x00014145 0x1bf ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_macro 0x00014304 0x19b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_macro 0x0001449f 0x1a2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_macro 0x00014641 0x1ad ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_macro 0x000147ee 0x1aa ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_line 0x00000000 0x6fed + .debug_line 0x00000000 0x7ef ./Core/Src/main.o + .debug_line 0x000007ef 0x6dd ./Core/Src/stm32l1xx_hal_msp.o + .debug_line 0x00000ecc 0x73e ./Core/Src/stm32l1xx_it.o + .debug_line 0x0000160a 0x730 ./Core/Src/system_stm32l1xx.o + .debug_line 0x00001d3a 0x79 ./Core/Startup/startup_stm32l152retx.o + .debug_line 0x00001db3 0x7de ./Drivers/7Seg_MAX7219/max7219.o + .debug_line 0x00002591 0x95b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_line 0x00002eec 0xc2a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_line 0x00003b16 0x99f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_line 0x000044b5 0xf1e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_line 0x000053d3 0x1c1a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_str 0x00000000 0x8118d + .debug_str 0x00000000 0x8118d ./Core/Src/main.o + 0x7fc96 (size before relaxing) + .debug_str 0x0008118d 0x7fa10 ./Core/Src/stm32l1xx_hal_msp.o + .debug_str 0x0008118d 0x7f5a7 ./Core/Src/stm32l1xx_it.o + .debug_str 0x0008118d 0x7f5f8 ./Core/Src/system_stm32l1xx.o + .debug_str 0x0008118d 0x8c ./Core/Startup/startup_stm32l152retx.o + .debug_str 0x0008118d 0x7fb54 ./Drivers/7Seg_MAX7219/max7219.o + .debug_str 0x0008118d 0x7fd20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_str 0x0008118d 0x7fe2c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_str 0x0008118d 0x7f78b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_str 0x0008118d 0x7fab4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_str 0x0008118d 0x7ff1a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.comment 0x00000000 0x43 + .comment 0x00000000 0x43 ./Core/Src/main.o + 0x44 (size before relaxing) + .comment 0x00000043 0x44 ./Core/Src/stm32l1xx_hal_msp.o + .comment 0x00000043 0x44 ./Core/Src/stm32l1xx_it.o + .comment 0x00000043 0x44 ./Core/Src/system_stm32l1xx.o + .comment 0x00000043 0x44 ./Drivers/7Seg_MAX7219/max7219.o + .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + +.debug_frame 0x00000000 0x18a4 + .debug_frame 0x00000000 0xc8 ./Core/Src/main.o + .debug_frame 0x000000c8 0x80 ./Core/Src/stm32l1xx_hal_msp.o + .debug_frame 0x00000148 0x104 ./Core/Src/stm32l1xx_it.o + .debug_frame 0x0000024c 0x58 ./Core/Src/system_stm32l1xx.o + .debug_frame 0x000002a4 0x198 ./Drivers/7Seg_MAX7219/max7219.o + .debug_frame 0x0000043c 0x33c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_frame 0x00000778 0x4e8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_frame 0x00000c60 0x14c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_frame 0x00000dac 0x224 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_frame 0x00000fd0 0x828 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o + .debug_frame 0x000017f8 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .debug_frame 0x00001818 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .debug_frame 0x00001844 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + .debug_frame 0x00001870 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) + +.debug_line_str + 0x00000000 0x70 + .debug_line_str + 0x00000000 0x70 ./Core/Startup/startup_stm32l152retx.o diff --git a/TP2_ISEN_DISPLAY/Debug/makefile b/TP2_ISEN_DISPLAY/Debug/makefile new file mode 100644 index 0000000..ec52756 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/makefile @@ -0,0 +1,95 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (13.3.rel1) +################################################################################ + +-include ../makefile.init + +RM := rm -rf + +# All of the sources participating in the build are defined here +-include sources.mk +-include Drivers/STM32L1xx_HAL_Driver/Src/subdir.mk +-include Drivers/7Seg_MAX7219/subdir.mk +-include Core/Startup/subdir.mk +-include Core/Src/subdir.mk +-include objects.mk + +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(strip $(S_DEPS)),) +-include $(S_DEPS) +endif +ifneq ($(strip $(S_UPPER_DEPS)),) +-include $(S_UPPER_DEPS) +endif +ifneq ($(strip $(C_DEPS)),) +-include $(C_DEPS) +endif +endif + +-include ../makefile.defs + +OPTIONAL_TOOL_DEPS := \ +$(wildcard ../makefile.defs) \ +$(wildcard ../makefile.init) \ +$(wildcard ../makefile.targets) \ + + +BUILD_ARTIFACT_NAME := TP2_ISEN_DISPLAY +BUILD_ARTIFACT_EXTENSION := elf +BUILD_ARTIFACT_PREFIX := +BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),) + +# Add inputs and outputs from these tool invocations to the build variables +EXECUTABLES += \ +TP2_ISEN_DISPLAY.elf \ + +MAP_FILES += \ +TP2_ISEN_DISPLAY.map \ + +SIZE_OUTPUT += \ +default.size.stdout \ + +OBJDUMP_LIST += \ +TP2_ISEN_DISPLAY.list \ + + +# All Target +all: main-build + +# Main-build Target +main-build: TP2_ISEN_DISPLAY.elf secondary-outputs + +# Tool invocations +TP2_ISEN_DISPLAY.elf TP2_ISEN_DISPLAY.map: $(OBJS) $(USER_OBJS) /Users/felixmarquet/Nextcloud/Programation/STM32/TP2_ISEN_DISPLAY/STM32L152RETX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS) + arm-none-eabi-gcc -o "TP2_ISEN_DISPLAY.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m3 -T"/Users/felixmarquet/Nextcloud/Programation/STM32/TP2_ISEN_DISPLAY/STM32L152RETX_FLASH.ld" --specs=nosys.specs -Wl,-Map="TP2_ISEN_DISPLAY.map" -Wl,--gc-sections -static --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group + @echo 'Finished building target: $@' + @echo ' ' + +default.size.stdout: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS) + arm-none-eabi-size $(EXECUTABLES) + @echo 'Finished building: $@' + @echo ' ' + +TP2_ISEN_DISPLAY.list: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS) + arm-none-eabi-objdump -h -S $(EXECUTABLES) > "TP2_ISEN_DISPLAY.list" + @echo 'Finished building: $@' + @echo ' ' + +# Other Targets +clean: + -$(RM) TP2_ISEN_DISPLAY.elf TP2_ISEN_DISPLAY.list TP2_ISEN_DISPLAY.map default.size.stdout + -@echo ' ' + +secondary-outputs: $(SIZE_OUTPUT) $(OBJDUMP_LIST) + +fail-specified-linker-script-missing: + @echo 'Error: Cannot find the specified linker script. Check the linker settings in the build configuration.' + @exit 2 + +warn-no-linker-script-specified: + @echo 'Warning: No linker script specified. Check the linker settings in the build configuration.' + +.PHONY: all clean dependents main-build fail-specified-linker-script-missing warn-no-linker-script-specified + +-include ../makefile.targets diff --git a/TP2_ISEN_DISPLAY/Debug/objects.list b/TP2_ISEN_DISPLAY/Debug/objects.list new file mode 100644 index 0000000..23f58cf --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/objects.list @@ -0,0 +1,21 @@ +"./Core/Src/main.o" +"./Core/Src/stm32l1xx_hal_msp.o" +"./Core/Src/stm32l1xx_it.o" +"./Core/Src/syscalls.o" +"./Core/Src/sysmem.o" +"./Core/Src/system_stm32l1xx.o" +"./Core/Startup/startup_stm32l152retx.o" +"./Drivers/7Seg_MAX7219/max7219.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.o" +"./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o" diff --git a/TP2_ISEN_DISPLAY/Debug/objects.mk b/TP2_ISEN_DISPLAY/Debug/objects.mk new file mode 100644 index 0000000..b471e98 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/objects.mk @@ -0,0 +1,9 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (13.3.rel1) +################################################################################ + +USER_OBJS := + +LIBS := + diff --git a/TP2_ISEN_DISPLAY/Debug/sources.mk b/TP2_ISEN_DISPLAY/Debug/sources.mk new file mode 100644 index 0000000..0940891 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/sources.mk @@ -0,0 +1,29 @@ +################################################################################ +# Automatically-generated file. Do not edit! +# Toolchain: GNU Tools for STM32 (13.3.rel1) +################################################################################ + +ELF_SRCS := +OBJ_SRCS := +S_SRCS := +C_SRCS := +S_UPPER_SRCS := +O_SRCS := +CYCLO_FILES := +SIZE_OUTPUT := +OBJDUMP_LIST := +SU_FILES := +EXECUTABLES := +OBJS := +MAP_FILES := +S_DEPS := +S_UPPER_DEPS := +C_DEPS := + +# Every subdirectory with source files must be described here +SUBDIRS := \ +Core/Src \ +Core/Startup \ +Drivers/7Seg_MAX7219 \ +Drivers/STM32L1xx_HAL_Driver/Src \ + diff --git a/TP2_ISEN_DISPLAY/Drivers/7Seg_MAX7219/max7219.c b/TP2_ISEN_DISPLAY/Drivers/7Seg_MAX7219/max7219.c new file mode 100644 index 0000000..5a71248 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/7Seg_MAX7219/max7219.c @@ -0,0 +1,269 @@ +/* +********************************************************************************************************* +* Module : MAX7219.C +* Author : Randy Rasa modifié par Alain REBOUX pour STM32 +* Description: MAX7219 LED Display Driver Routines +* +* The Maxim MAX7219 is an LED display driver thant can control up to 64 individual LEDs, or +* eight 7-segment LED digits, or any combination of individual LEDs and digits. It frees the +* host from the chore of constantly multiplexing the 8 rows and 8 columns. In addition, it +* takes care of brightness control (16 steps), and implements display test and display blank +* (shutdown) features. +* +* The host communicates with the MAX7219 using three signals: DATA, CLK, and LOAD. This +* modules bit-bangs them, but Motorola's SPI interface (or similar interface from other +* manufacturers) may also be used to simplify and speed up the data transfer. +* ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ +* DATA _________|D15|D14|D13|D12|D11|D10|D09|D08|D07|D06|D05|D04|D03|D02|D01|D00|______ +* ________ __ __ __ __ __ __ __ __ __ __ ________ +* CLK |__| |__| |__| |__| |__| |__| |__| |__| |__| |__| |__| +* __________________________________________________________________ +* LOAD ______| |__ + +/* +********************************************************************************************************* +* Include Header Files +********************************************************************************************************* +*/ + +/* +********************************************************************************************************* +* Include Header Files +********************************************************************************************************* +*/ + +#include "main.h" +#include "max7219.h" +extern SPI_HandleTypeDef hspi1; + +/*defined in main.h +#define MAX7219_nCS_PORT GPIOC +#define MAX7219_nCS_PIN GPIO_PIN_0 +*/ + +//Constantes + +/* +********************************************************************************************************* +* LED Segments: a +* ---- +* f| |b +* | g | +* ---- +* e| |c +* | | +* ---- o dp +* d +* Register bits: +* bit: 7 6 5 4 3 2 1 0 +* dp a b c d e f g +********************************************************************************************************* +*/ + + +char const conv_7seg[]={0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B,0x77,0x1F,0x4E,0x3D,0x4F,0x47}; + + +// define +#define REG_DECODE 0x09 // "decode mode" register +#define REG_INTENSITY 0x0a // "intensity" register +#define REG_SCAN_LIMIT 0x0b // "scan limit" register +#define REG_SHUTDOWN 0x0c // "shutdown" register +#define REG_DISPLAY_TEST 0x0f // "display test" register + +#define INTENSITY_MIN 0x00 // minimum display intensity +#define INTENSITY_MAX 0x0f // maximum display intensity + + +/* +********************************************************************************************************* +* Private Function Prototypes +********************************************************************************************************* +*/ + void MAX7219_Write (unsigned char reg_number, unsigned char data); +static void MAX7219_SendByte (unsigned char data); + + + +// ...................................... Public Functions .............................................. + + +/* +********************************************************************************************************* +* MAX7219_Init() +* +* Description: Initialize MAX7219 module; must be called before any other MAX7219 functions. +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_Init (void) +{ + // configure "LOAD" as output + + MAX7219_Write(REG_SCAN_LIMIT, 7); // set up to scan all eight digits + MAX7219_Write(REG_DECODE, 0x00); // set to "no decode" for all digits + MAX7219_ShutdownStop(); // select normal operation (i.e. not shutdown) + MAX7219_DisplayTestStop(); // select normal operation (i.e. not test mode) + MAX7219_Clear(); // clear all digits + MAX7219_SetBrightness(INTENSITY_MAX); // set to maximum intensity +} + +/* +********************************************************************************************************* +* MAX7219_ShutdownStart() +* +* Description: Shut down the display. +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_ShutdownStart (void) +{ + MAX7219_Write(REG_SHUTDOWN, 0); // put MAX7219 into "shutdown" mode +} + + +/* +********************************************************************************************************* +* MAX7219_ShutdownStop() +* +* Description: Take the display out of shutdown mode. +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_ShutdownStop (void) +{ + MAX7219_Write(REG_SHUTDOWN, 1); // put MAX7219 into "normal" mode +} +/* +********************************************************************************************************* +* MAX7219_DisplayTestStart() +* +* Description: Start a display test. +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_DisplayTestStart (void) +{ + MAX7219_Write(REG_DISPLAY_TEST, 1); // put MAX7219 into "display test" mode +} + + + +/* +********************************************************************************************************* +* MAX7219_DisplayTestStop() +* +* Description: Stop a display test. +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_DisplayTestStop (void) +{ + MAX7219_Write(REG_DISPLAY_TEST, 0); // put MAX7219 into "normal" mode +} + + +/* +********************************************************************************************************* +* MAX7219_SetBrightness() +* +* Description: Set the LED display brightness +* Arguments : brightness (0-15) +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_SetBrightness (char brightness) +{ + brightness &= 0x0f; // mask off extra bits + MAX7219_Write(REG_INTENSITY, brightness); // set brightness +} + + +/* +********************************************************************************************************* +* MAX7219_Clear() +* +* Description: Clear the display (all digits blank) +* Arguments : none +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_Clear (void) +{ + char i; + for (i=0; i < 8; i++) + MAX7219_Write(i, 0x00); // turn all segments off +} + + +/* +********************************************************************************************************* +* MAX7219_DisplayChar() = MAX7219_DisplayCharPointOff(), MAX7219_DisplayCharPointON() +* +* Description: Display a character on the specified digit. +* Arguments : digit = digit number (0-7) +* character = character to display (0-9, A-Z) +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_DisplayChar(char digit, char character) +{ + //MAX7219_Write(digit, MAX7219_LookupCode(character)); + MAX7219_Write(digit, conv_7seg[character]); +} + +void MAX7219_DisplayCharPointOff (char digit, char character) +{ + //MAX7219_Write(digit, MAX7219_LookupCode(character)); + MAX7219_Write(digit, conv_7seg[character]); +} +void MAX7219_DisplayCharPointOn (char digit, char character) +{ + //MAX7219_Write(digit, MAX7219_LookupCode(character)); + MAX7219_Write(digit, conv_7seg[character]|128); +} + + + +/* +********************************************************************************************************* +* MAX7219_Write() +* +* Description: Write to MAX7219 +* Arguments : reg_number = register to write to +* dataout = data to write to MAX7219 +* Returns : none +********************************************************************************************************* +*/ +void MAX7219_Write (unsigned char reg_number, unsigned char dataout) +{ + MAX7219_nCS_PORT->BSRR = (uint32_t)MAX7219_nCS_PIN<<16;// nCS = 0 // take LOAD high to begin + MAX7219_SendByte(reg_number); // write register number to MAX7219 + MAX7219_SendByte(dataout); // write data to MAX7219 + MAX7219_nCS_PORT->BSRR = (uint32_t)MAX7219_nCS_PIN;// nCS = 1 // take LOAD low to latch in data + } + + +/* +********************************************************************************************************* +* MAX7219_SendByte() +* +* Description: Send one byte to the MAX7219 +* Arguments : dataout = data to send +* Returns : none +********************************************************************************************************* +*/ + +static void MAX7219_SendByte (unsigned char dataout) +{ + + HAL_SPI_Transmit(&hspi1, &dataout, 1, 1000); + +} + + diff --git a/TP2_ISEN_DISPLAY/Drivers/7Seg_MAX7219/max7219.h b/TP2_ISEN_DISPLAY/Drivers/7Seg_MAX7219/max7219.h new file mode 100644 index 0000000..9ce37ee --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/7Seg_MAX7219/max7219.h @@ -0,0 +1,15 @@ +void MAX7219_Init(void); +void MAX7219_ShutdownStart(void); +void MAX7219_ShutdownStop(void); +void MAX7219_DisplayTestStart(void); +void MAX7219_DisplayTestStop(void); +void MAX7219_SetBrightness(char brightness); +void MAX7219_Clear(void); +void MAX7219_DisplayChar(char digit, char character); +void MAX7219_DisplayCharPointOff(char digit, char character); +void MAX7219_DisplayCharPointOn(char digit, char character); + +// ST7735 CS (Chip Select) pin +#define MAX7219_nCS_PORT GPIOC //A +#define MAX7219_nCS_PIN GPIO_PIN_0 //8 + diff --git a/TP2_ISEN_DISPLAY/Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.h new file mode 100644 index 0000000..dbe7432 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.h @@ -0,0 +1,9022 @@ +/** + ****************************************************************************** + * @file stm32l152xe.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 STM32L1xx 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-2021 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32l152xe + * @{ + */ + +#ifndef __STM32L152xE_H +#define __STM32L152xE_H + +#ifdef __cplusplus + extern "C" { +#endif + + + /** @addtogroup Configuration_section_for_CMSIS + * @{ + */ +/** + * @brief Configuration of the Cortex-M3 Processor and Core Peripherals + */ +#define __CM3_REV 0x200U /*!< Cortex-M3 Revision r2p0 */ +#define __MPU_PRESENT 1U /*!< STM32L1xx provides MPU */ +#define __NVIC_PRIO_BITS 4U /*!< STM32L1xx 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 STM32L1xx 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 */ + +/****** STM32L specific Interrupt Numbers ***********************************************************/ + WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */ + PVD_IRQn = 1, /*!< PVD through EXTI Line detection Interrupt */ + TAMPER_STAMP_IRQn = 2, /*!< Tamper and TimeStamp interrupts through the EXTI line */ + RTC_WKUP_IRQn = 3, /*!< RTC Wakeup Timer through EXTI Line 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_IRQn = 18, /*!< ADC1 global Interrupt */ + USB_HP_IRQn = 19, /*!< USB High Priority Interrupt */ + USB_LP_IRQn = 20, /*!< USB Low Priority Interrupt */ + DAC_IRQn = 21, /*!< DAC Interrupt */ + COMP_IRQn = 22, /*!< Comparator through EXTI Line Interrupt */ + EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ + LCD_IRQn = 24, /*!< LCD Interrupt */ + TIM9_IRQn = 25, /*!< TIM9 global Interrupt */ + TIM10_IRQn = 26, /*!< TIM10 global Interrupt */ + TIM11_IRQn = 27, /*!< TIM11 global 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 */ + USB_FS_WKUP_IRQn = 42, /*!< USB FS WakeUp from suspend through EXTI Line Interrupt */ + TIM6_IRQn = 43, /*!< TIM6 global Interrupt */ + TIM7_IRQn = 44, /*!< TIM7 global Interrupt */ + TIM5_IRQn = 46, /*!< TIM5 global Interrupt */ + SPI3_IRQn = 47, /*!< SPI3 global Interrupt */ + UART4_IRQn = 48, /*!< UART4 global Interrupt */ + UART5_IRQn = 49, /*!< UART5 global Interrupt */ + DMA2_Channel1_IRQn = 50, /*!< DMA2 Channel 1 global Interrupt */ + DMA2_Channel2_IRQn = 51, /*!< DMA2 Channel 2 global Interrupt */ + DMA2_Channel3_IRQn = 52, /*!< DMA2 Channel 3 global Interrupt */ + DMA2_Channel4_IRQn = 53, /*!< DMA2 Channel 4 global Interrupt */ + DMA2_Channel5_IRQn = 54, /*!< DMA2 Channel 5 global Interrupt */ + COMP_ACQ_IRQn = 56 /*!< Comparator Channel Acquisition global Interrupt */ +} IRQn_Type; + +/** + * @} + */ + +#include "core_cm3.h" +#include "system_stm32l1xx.h" +#include + +/** @addtogroup Peripheral_registers_structures + * @{ + */ + +/** + * @brief Analog to Digital Converter + */ + +typedef struct +{ + __IO uint32_t SR; /*!< ADC status register, Address offset: 0x00 */ + __IO uint32_t CR1; /*!< ADC control register 1, Address offset: 0x04 */ + __IO uint32_t CR2; /*!< ADC control register 2, Address offset: 0x08 */ + __IO uint32_t SMPR1; /*!< ADC sample time register 1, Address offset: 0x0C */ + __IO uint32_t SMPR2; /*!< ADC sample time register 2, Address offset: 0x10 */ + __IO uint32_t SMPR3; /*!< ADC sample time register 3, Address offset: 0x14 */ + __IO uint32_t JOFR1; /*!< ADC injected channel data offset register 1, Address offset: 0x18 */ + __IO uint32_t JOFR2; /*!< ADC injected channel data offset register 2, Address offset: 0x1C */ + __IO uint32_t JOFR3; /*!< ADC injected channel data offset register 3, Address offset: 0x20 */ + __IO uint32_t JOFR4; /*!< ADC injected channel data offset register 4, Address offset: 0x24 */ + __IO uint32_t HTR; /*!< ADC watchdog higher threshold register, Address offset: 0x28 */ + __IO uint32_t LTR; /*!< ADC watchdog lower threshold register, Address offset: 0x2C */ + __IO uint32_t SQR1; /*!< ADC regular sequence register 1, Address offset: 0x30 */ + __IO uint32_t SQR2; /*!< ADC regular sequence register 2, Address offset: 0x34 */ + __IO uint32_t SQR3; /*!< ADC regular sequence register 3, Address offset: 0x38 */ + __IO uint32_t SQR4; /*!< ADC regular sequence register 4, Address offset: 0x3C */ + __IO uint32_t SQR5; /*!< ADC regular sequence register 5, Address offset: 0x40 */ + __IO uint32_t JSQR; /*!< ADC injected sequence register, Address offset: 0x44 */ + __IO uint32_t JDR1; /*!< ADC injected data register 1, Address offset: 0x48 */ + __IO uint32_t JDR2; /*!< ADC injected data register 2, Address offset: 0x4C */ + __IO uint32_t JDR3; /*!< ADC injected data register 3, Address offset: 0x50 */ + __IO uint32_t JDR4; /*!< ADC injected data register 4, Address offset: 0x54 */ + __IO uint32_t DR; /*!< ADC regular data register, Address offset: 0x58 */ + __IO uint32_t SMPR0; /*!< ADC sample time register 0, Address offset: 0x5C */ +} ADC_TypeDef; + +typedef struct +{ + __IO uint32_t CSR; /*!< ADC common status register, Address offset: ADC1 base address + 0x300 */ + __IO uint32_t CCR; /*!< ADC common control register, Address offset: ADC1 base address + 0x304 */ +} ADC_Common_TypeDef; + +/** + * @brief Comparator + */ + +typedef struct +{ + __IO uint32_t CSR; /*!< COMP control and status register, Address offset: 0x00 */ +} COMP_TypeDef; + +typedef struct +{ + __IO uint32_t CSR; /*!< COMP control and status register, used for bits common to several COMP instances, Address offset: 0x00 */ +} COMP_Common_TypeDef; + +/** + * @brief CRC calculation unit + */ + +typedef struct +{ + __IO uint32_t DR; /*!< CRC Data register, Address offset: 0x00 */ + __IO uint8_t IDR; /*!< CRC Independent data register, Address offset: 0x04 */ + uint8_t RESERVED0; /*!< Reserved, 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; /*!< DAC control register, Address offset: 0x00 */ + __IO uint32_t SWTRIGR; /*!< DAC software trigger register, Address offset: 0x04 */ + __IO uint32_t DHR12R1; /*!< DAC channel1 12-bit right-aligned data holding register, Address offset: 0x08 */ + __IO uint32_t DHR12L1; /*!< DAC channel1 12-bit left aligned data holding register, Address offset: 0x0C */ + __IO uint32_t DHR8R1; /*!< DAC channel1 8-bit right aligned data holding register, Address offset: 0x10 */ + __IO uint32_t DHR12R2; /*!< DAC channel2 12-bit right aligned data holding register, Address offset: 0x14 */ + __IO uint32_t DHR12L2; /*!< DAC channel2 12-bit left aligned data holding register, Address offset: 0x18 */ + __IO uint32_t DHR8R2; /*!< DAC channel2 8-bit right-aligned data holding register, Address offset: 0x1C */ + __IO uint32_t DHR12RD; /*!< Dual DAC 12-bit right-aligned data holding register, Address offset: 0x20 */ + __IO uint32_t DHR12LD; /*!< DUAL DAC 12-bit left aligned data holding register, Address offset: 0x24 */ + __IO uint32_t DHR8RD; /*!< DUAL DAC 8-bit right aligned data holding register, Address offset: 0x28 */ + __IO uint32_t DOR1; /*!< DAC channel1 data output register, Address offset: 0x2C */ + __IO uint32_t DOR2; /*!< DAC channel2 data output register, Address offset: 0x30 */ + __IO uint32_t SR; /*!< DAC status register, Address offset: 0x34 */ +} DAC_TypeDef; + +/** + * @brief Debug MCU + */ + +typedef struct +{ + __IO uint32_t IDCODE; /*!< MCU device ID code, Address offset: 0x00 */ + __IO uint32_t CR; /*!< Debug MCU configuration register, Address offset: 0x04 */ + __IO uint32_t APB1FZ; /*!< Debug MCU APB1 freeze register, Address offset: 0x08 */ + __IO uint32_t APB2FZ; /*!< Debug MCU APB2 freeze register, Address offset: 0x0C */ +}DBGMCU_TypeDef; + +/** + * @brief DMA Controller + */ + +typedef struct +{ + __IO uint32_t CCR; /*!< DMA channel x configuration register */ + __IO uint32_t CNDTR; /*!< DMA channel x number of data register */ + __IO uint32_t CPAR; /*!< DMA channel x peripheral address register */ + __IO uint32_t CMAR; /*!< DMA channel x memory address register */ +} DMA_Channel_TypeDef; + +typedef struct +{ + __IO uint32_t ISR; /*!< DMA interrupt status register, Address offset: 0x00 */ + __IO uint32_t IFCR; /*!< DMA interrupt flag clear register, Address offset: 0x04 */ +} DMA_TypeDef; + +/** + * @brief External Interrupt/Event Controller + */ + +typedef struct +{ + __IO uint32_t IMR; /*! 0x7C */ + __IO uint32_t WRP1213; /*!< write protection register 12 13, Address offset: 0x80 */ + __IO uint32_t WRP1415; /*!< write protection register 14 15, Address offset: 0x84 */ +} OB_TypeDef; + +/** + * @brief Operational Amplifier (OPAMP) + */ +typedef struct +{ + __IO uint32_t CSR; /*!< OPAMP control and status register, Address offset: 0x00 */ + __IO uint32_t OTR; /*!< OPAMP offset trimming register for normal mode, Address offset: 0x04 */ + __IO uint32_t LPOTR; /*!< OPAMP offset trimming register for low power mode, Address offset: 0x08 */ +} OPAMP_TypeDef; + +typedef struct +{ + __IO uint32_t CSR; /*!< OPAMP control and status register, used for bits common to several OPAMP instances, Address offset: 0x00 */ + __IO uint32_t OTR; /*!< OPAMP offset trimming register for normal mode, used for bits common to several OPAMP instances, Address offset: 0x04 */ +} OPAMP_Common_TypeDef; + +/** + * @brief General Purpose IO + */ + +typedef struct +{ + __IO uint32_t MODER; /*!< GPIO port mode register, Address offset: 0x00 */ + __IO uint32_t OTYPER; /*!< GPIO port output type register, Address offset: 0x04 */ + __IO uint32_t OSPEEDR; /*!< GPIO port output speed register, Address offset: 0x08 */ + __IO uint32_t PUPDR; /*!< GPIO port pull-up/pull-down register, Address offset: 0x0C */ + __IO uint32_t IDR; /*!< GPIO port input data register, Address offset: 0x10 */ + __IO uint32_t ODR; /*!< GPIO port output data register, Address offset: 0x14 */ + __IO uint32_t BSRR; /*!< GPIO port bit set/reset registerBSRR, Address offset: 0x18 */ + __IO uint32_t LCKR; /*!< GPIO port configuration lock register, Address offset: 0x1C */ + __IO uint32_t AFR[2]; /*!< GPIO alternate function register, Address offset: 0x20-0x24 */ + __IO uint32_t BRR; /*!< GPIO bit reset register, Address offset: 0x28 */ +} GPIO_TypeDef; + +/** + * @brief SysTem Configuration + */ + +typedef struct +{ + __IO uint32_t MEMRMP; /*!< SYSCFG memory remap register, Address offset: 0x00 */ + __IO uint32_t PMC; /*!< SYSCFG peripheral mode configuration register, Address offset: 0x04 */ + __IO uint32_t EXTICR[4]; /*!< SYSCFG external interrupt configuration registers, Address offset: 0x08-0x14 */ +} SYSCFG_TypeDef; + +/** + * @brief Inter-integrated Circuit Interface + */ + +typedef struct +{ + __IO uint32_t CR1; /*!< I2C Control register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< I2C Control register 2, Address offset: 0x04 */ + __IO uint32_t OAR1; /*!< I2C Own address register 1, Address offset: 0x08 */ + __IO uint32_t OAR2; /*!< I2C Own address register 2, Address offset: 0x0C */ + __IO uint32_t DR; /*!< I2C Data register, Address offset: 0x10 */ + __IO uint32_t SR1; /*!< I2C Status register 1, Address offset: 0x14 */ + __IO uint32_t SR2; /*!< I2C Status register 2, Address offset: 0x18 */ + __IO uint32_t CCR; /*!< I2C Clock control register, Address offset: 0x1C */ + __IO uint32_t TRISE; /*!< I2C TRISE register, Address offset: 0x20 */ +} 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 LCD + */ + +typedef struct +{ + __IO uint32_t CR; /*!< LCD control register, Address offset: 0x00 */ + __IO uint32_t FCR; /*!< LCD frame control register, Address offset: 0x04 */ + __IO uint32_t SR; /*!< LCD status register, Address offset: 0x08 */ + __IO uint32_t CLR; /*!< LCD clear register, Address offset: 0x0C */ + uint32_t RESERVED; /*!< Reserved, Address offset: 0x10 */ + __IO uint32_t RAM[16]; /*!< LCD display memory, Address offset: 0x14-0x50 */ +} LCD_TypeDef; + +/** + * @brief Power Control + */ + +typedef struct +{ + __IO uint32_t CR; /*!< PWR power control register, Address offset: 0x00 */ + __IO uint32_t CSR; /*!< PWR power control/status register, Address offset: 0x04 */ +} PWR_TypeDef; + +/** + * @brief Reset and Clock Control + */ + +typedef struct +{ + __IO uint32_t CR; /*!< RCC clock control register, Address offset: 0x00 */ + __IO uint32_t ICSCR; /*!< RCC Internal clock sources calibration register, Address offset: 0x04 */ + __IO uint32_t CFGR; /*!< RCC Clock configuration register, Address offset: 0x08 */ + __IO uint32_t CIR; /*!< RCC Clock interrupt register, Address offset: 0x0C */ + __IO uint32_t AHBRSTR; /*!< RCC AHB peripheral reset register, Address offset: 0x10 */ + __IO uint32_t APB2RSTR; /*!< RCC APB2 peripheral reset register, Address offset: 0x14 */ + __IO uint32_t APB1RSTR; /*!< RCC APB1 peripheral reset register, Address offset: 0x18 */ + __IO uint32_t AHBENR; /*!< RCC AHB peripheral clock enable register, Address offset: 0x1C */ + __IO uint32_t APB2ENR; /*!< RCC APB2 peripheral clock enable register, Address offset: 0x20 */ + __IO uint32_t APB1ENR; /*!< RCC APB1 peripheral clock enable register, Address offset: 0x24 */ + __IO uint32_t AHBLPENR; /*!< RCC AHB peripheral clock enable in low power mode register, Address offset: 0x28 */ + __IO uint32_t APB2LPENR; /*!< RCC APB2 peripheral clock enable in low power mode register, Address offset: 0x2C */ + __IO uint32_t APB1LPENR; /*!< RCC APB1 peripheral clock enable in low power mode register, Address offset: 0x30 */ + __IO uint32_t CSR; /*!< RCC Control/status register, Address offset: 0x34 */ +} RCC_TypeDef; + +/** + * @brief Routing Interface + */ + +typedef struct +{ + __IO uint32_t ICR; /*!< RI input capture register, Address offset: 0x00 */ + __IO uint32_t ASCR1; /*!< RI analog switches control register, Address offset: 0x04 */ + __IO uint32_t ASCR2; /*!< RI analog switch control register 2, Address offset: 0x08 */ + __IO uint32_t HYSCR1; /*!< RI hysteresis control register, Address offset: 0x0C */ + __IO uint32_t HYSCR2; /*!< RI Hysteresis control register, Address offset: 0x10 */ + __IO uint32_t HYSCR3; /*!< RI Hysteresis control register, Address offset: 0x14 */ + __IO uint32_t HYSCR4; /*!< RI Hysteresis control register, Address offset: 0x18 */ + __IO uint32_t ASMR1; /*!< RI Analog switch mode register 1, Address offset: 0x1C */ + __IO uint32_t CMR1; /*!< RI Channel mask register 1, Address offset: 0x20 */ + __IO uint32_t CICR1; /*!< RI Channel Iden for capture register 1, Address offset: 0x24 */ + __IO uint32_t ASMR2; /*!< RI Analog switch mode register 2, Address offset: 0x28 */ + __IO uint32_t CMR2; /*!< RI Channel mask register 2, Address offset: 0x2C */ + __IO uint32_t CICR2; /*!< RI Channel Iden for capture register 2, Address offset: 0x30 */ + __IO uint32_t ASMR3; /*!< RI Analog switch mode register 3, Address offset: 0x34 */ + __IO uint32_t CMR3; /*!< RI Channel mask register 3, Address offset: 0x38 */ + __IO uint32_t CICR3; /*!< RI Channel Iden for capture register 3, Address offset: 0x3C */ + __IO uint32_t ASMR4; /*!< RI Analog switch mode register 4, Address offset: 0x40 */ + __IO uint32_t CMR4; /*!< RI Channel mask register 4, Address offset: 0x44 */ + __IO uint32_t CICR4; /*!< RI Channel Iden for capture register 4, Address offset: 0x48 */ + __IO uint32_t ASMR5; /*!< RI Analog switch mode register 5, Address offset: 0x4C */ + __IO uint32_t CMR5; /*!< RI Channel mask register 5, Address offset: 0x50 */ + __IO uint32_t CICR5; /*!< RI Channel Iden for capture register 5, Address offset: 0x54 */ +} RI_TypeDef; + +/** + * @brief Real-Time Clock + */ +typedef struct +{ + __IO uint32_t TR; /*!< RTC time register, Address offset: 0x00 */ + __IO uint32_t DR; /*!< RTC date register, Address offset: 0x04 */ + __IO uint32_t CR; /*!< RTC control register, Address offset: 0x08 */ + __IO uint32_t ISR; /*!< RTC initialization and status register, Address offset: 0x0C */ + __IO uint32_t PRER; /*!< RTC prescaler register, Address offset: 0x10 */ + __IO uint32_t WUTR; /*!< RTC wakeup timer register, Address offset: 0x14 */ + __IO uint32_t CALIBR; /*!< RTC calibration register, Address offset: 0x18 */ + __IO uint32_t ALRMAR; /*!< RTC alarm A register, Address offset: 0x1C */ + __IO uint32_t ALRMBR; /*!< RTC alarm B register, Address offset: 0x20 */ + __IO uint32_t WPR; /*!< RTC write protection register, Address offset: 0x24 */ + __IO uint32_t SSR; /*!< RTC sub second register, Address offset: 0x28 */ + __IO uint32_t SHIFTR; /*!< RTC shift control register, Address offset: 0x2C */ + __IO uint32_t TSTR; /*!< RTC time stamp time register, Address offset: 0x30 */ + __IO uint32_t TSDR; /*!< RTC time stamp date register, Address offset: 0x34 */ + __IO uint32_t TSSSR; /*!< RTC time-stamp sub second register, Address offset: 0x38 */ + __IO uint32_t CALR; /*!< RRTC calibration register, Address offset: 0x3C */ + __IO uint32_t TAFCR; /*!< RTC tamper and alternate function configuration register, Address offset: 0x40 */ + __IO uint32_t ALRMASSR; /*!< RTC alarm A sub second register, Address offset: 0x44 */ + __IO uint32_t ALRMBSSR; /*!< RTC alarm B sub second register, Address offset: 0x48 */ + uint32_t RESERVED7; /*!< Reserved, 0x4C */ + __IO uint32_t BKP0R; /*!< RTC backup register 0, Address offset: 0x50 */ + __IO uint32_t BKP1R; /*!< RTC backup register 1, Address offset: 0x54 */ + __IO uint32_t BKP2R; /*!< RTC backup register 2, Address offset: 0x58 */ + __IO uint32_t BKP3R; /*!< RTC backup register 3, Address offset: 0x5C */ + __IO uint32_t BKP4R; /*!< RTC backup register 4, Address offset: 0x60 */ + __IO uint32_t BKP5R; /*!< RTC backup register 5, Address offset: 0x64 */ + __IO uint32_t BKP6R; /*!< RTC backup register 6, Address offset: 0x68 */ + __IO uint32_t BKP7R; /*!< RTC backup register 7, Address offset: 0x6C */ + __IO uint32_t BKP8R; /*!< RTC backup register 8, Address offset: 0x70 */ + __IO uint32_t BKP9R; /*!< RTC backup register 9, Address offset: 0x74 */ + __IO uint32_t BKP10R; /*!< RTC backup register 10, Address offset: 0x78 */ + __IO uint32_t BKP11R; /*!< RTC backup register 11, Address offset: 0x7C */ + __IO uint32_t BKP12R; /*!< RTC backup register 12, Address offset: 0x80 */ + __IO uint32_t BKP13R; /*!< RTC backup register 13, Address offset: 0x84 */ + __IO uint32_t BKP14R; /*!< RTC backup register 14, Address offset: 0x88 */ + __IO uint32_t BKP15R; /*!< RTC backup register 15, Address offset: 0x8C */ + __IO uint32_t BKP16R; /*!< RTC backup register 16, Address offset: 0x90 */ + __IO uint32_t BKP17R; /*!< RTC backup register 17, Address offset: 0x94 */ + __IO uint32_t BKP18R; /*!< RTC backup register 18, Address offset: 0x98 */ + __IO uint32_t BKP19R; /*!< RTC backup register 19, Address offset: 0x9C */ + __IO uint32_t BKP20R; /*!< RTC backup register 20, Address offset: 0xA0 */ + __IO uint32_t BKP21R; /*!< RTC backup register 21, Address offset: 0xA4 */ + __IO uint32_t BKP22R; /*!< RTC backup register 22, Address offset: 0xA8 */ + __IO uint32_t BKP23R; /*!< RTC backup register 23, Address offset: 0xAC */ + __IO uint32_t BKP24R; /*!< RTC backup register 24, Address offset: 0xB0 */ + __IO uint32_t BKP25R; /*!< RTC backup register 25, Address offset: 0xB4 */ + __IO uint32_t BKP26R; /*!< RTC backup register 26, Address offset: 0xB8 */ + __IO uint32_t BKP27R; /*!< RTC backup register 27, Address offset: 0xBC */ + __IO uint32_t BKP28R; /*!< RTC backup register 28, Address offset: 0xC0 */ + __IO uint32_t BKP29R; /*!< RTC backup register 29, Address offset: 0xC4 */ + __IO uint32_t BKP30R; /*!< RTC backup register 30, Address offset: 0xC8 */ + __IO uint32_t BKP31R; /*!< RTC backup register 31, Address offset: 0xCC */ +} RTC_TypeDef; + +/** + * @brief Serial Peripheral Interface + */ + +typedef struct +{ + __IO uint32_t CR1; /*!< SPI Control register 1 (not used in I2S mode), Address offset: 0x00 */ + __IO uint32_t CR2; /*!< SPI Control register 2, Address offset: 0x04 */ + __IO uint32_t SR; /*!< SPI Status register, Address offset: 0x08 */ + __IO uint32_t DR; /*!< SPI data register, Address offset: 0x0C */ + __IO uint32_t CRCPR; /*!< SPI CRC polynomial register (not used in I2S mode), Address offset: 0x10 */ + __IO uint32_t RXCRCR; /*!< SPI Rx CRC register (not used in I2S mode), Address offset: 0x14 */ + __IO uint32_t TXCRCR; /*!< SPI Tx CRC register (not used in I2S mode), Address offset: 0x18 */ + __IO uint32_t I2SCFGR; /*!< SPI_I2S configuration register, Address offset: 0x1C */ + __IO uint32_t I2SPR; /*!< SPI_I2S prescaler register, Address offset: 0x20 */ +} SPI_TypeDef; + +/** + * @brief TIM + */ +typedef struct +{ + __IO uint32_t CR1; /*!< TIM control register 1, Address offset: 0x00 */ + __IO uint32_t CR2; /*!< TIM control register 2, Address offset: 0x04 */ + __IO uint32_t SMCR; /*!< TIM slave Mode Control register, Address offset: 0x08 */ + __IO uint32_t DIER; /*!< TIM DMA/interrupt enable register, Address offset: 0x0C */ + __IO uint32_t SR; /*!< TIM status register, Address offset: 0x10 */ + __IO uint32_t EGR; /*!< TIM event generation register, Address offset: 0x14 */ + __IO uint32_t CCMR1; /*!< TIM capture/compare mode register 1, Address offset: 0x18 */ + __IO uint32_t CCMR2; /*!< TIM capture/compare mode register 2, Address offset: 0x1C */ + __IO uint32_t CCER; /*!< TIM capture/compare enable register, Address offset: 0x20 */ + __IO uint32_t CNT; /*!< TIM counter register, Address offset: 0x24 */ + __IO uint32_t PSC; /*!< TIM prescaler register, Address offset: 0x28 */ + __IO uint32_t ARR; /*!< TIM auto-reload register, Address offset: 0x2C */ + uint32_t RESERVED12; /*!< Reserved, 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 */ + uint32_t RESERVED17; /*!< Reserved, 0x44 */ + __IO uint32_t DCR; /*!< TIM DMA control register, Address offset: 0x48 */ + __IO uint32_t DMAR; /*!< TIM DMA address for full transfer, 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; + +/** + * @brief Universal Serial Bus Full Speed Device + */ +/** + * @} + */ + +/** @addtogroup Peripheral_memory_map + * @{ + */ + +#define FLASH_BASE (0x08000000UL) /*!< FLASH base address in the alias region */ +#define FLASH_EEPROM_BASE (FLASH_BASE + 0x80000UL) /*!< FLASH EEPROM base address in the alias region */ +#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 FLASH_BANK2_BASE (0x08040000UL) /*!< FLASH BANK2 base address in the alias region */ +#define FLASH_BANK1_END (0x0803FFFFUL) /*!< Program end FLASH BANK1 address */ +#define FLASH_BANK2_END (0x0807FFFFUL) /*!< Program end FLASH BANK2 address */ +#define FLASH_END (0x0807FFFFUL) /*!< Program end FLASH address for Cat5 */ +#define FLASH_EEPROM_END (0x08083FFFUL) /*!< FLASH EEPROM end address (16KB) */ + +/*!< Peripheral memory map */ +#define APB1PERIPH_BASE PERIPH_BASE +#define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000UL) +#define AHBPERIPH_BASE (PERIPH_BASE + 0x00020000UL) + +/*!< APB1 peripherals */ +#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 LCD_BASE (APB1PERIPH_BASE + 0x00002400UL) +#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) + +/* 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 */ + +/* USB device FS SRAM */ +#define PWR_BASE (APB1PERIPH_BASE + 0x00007000UL) +#define DAC_BASE (APB1PERIPH_BASE + 0x00007400UL) +#define COMP_BASE (APB1PERIPH_BASE + 0x00007C00UL) +#define RI_BASE (APB1PERIPH_BASE + 0x00007C04UL) +#define OPAMP_BASE (APB1PERIPH_BASE + 0x00007C5CUL) + +/*!< APB2 peripherals */ +#define SYSCFG_BASE (APB2PERIPH_BASE + 0x00000000UL) +#define EXTI_BASE (APB2PERIPH_BASE + 0x00000400UL) +#define TIM9_BASE (APB2PERIPH_BASE + 0x00000800UL) +#define TIM10_BASE (APB2PERIPH_BASE + 0x00000C00UL) +#define TIM11_BASE (APB2PERIPH_BASE + 0x00001000UL) +#define ADC1_BASE (APB2PERIPH_BASE + 0x00002400UL) +#define ADC_BASE (APB2PERIPH_BASE + 0x00002700UL) +#define SPI1_BASE (APB2PERIPH_BASE + 0x00003000UL) +#define USART1_BASE (APB2PERIPH_BASE + 0x00003800UL) + +/*!< AHB peripherals */ +#define GPIOA_BASE (AHBPERIPH_BASE + 0x00000000UL) +#define GPIOB_BASE (AHBPERIPH_BASE + 0x00000400UL) +#define GPIOC_BASE (AHBPERIPH_BASE + 0x00000800UL) +#define GPIOD_BASE (AHBPERIPH_BASE + 0x00000C00UL) +#define GPIOE_BASE (AHBPERIPH_BASE + 0x00001000UL) +#define GPIOH_BASE (AHBPERIPH_BASE + 0x00001400UL) +#define GPIOF_BASE (AHBPERIPH_BASE + 0x00001800UL) +#define GPIOG_BASE (AHBPERIPH_BASE + 0x00001C00UL) +#define CRC_BASE (AHBPERIPH_BASE + 0x00003000UL) +#define RCC_BASE (AHBPERIPH_BASE + 0x00003800UL) +#define FLASH_R_BASE (AHBPERIPH_BASE + 0x00003C00UL) /*!< FLASH registers base address */ +#define OB_BASE (0x1FF80000UL) /*!< FLASH Option Bytes base address */ +#define FLASHSIZE_BASE (0x1FF800CCUL) /*!< FLASH Size register base address for Cat.3, Cat.4, Cat.5 and Cat.6 devices */ +#define UID_BASE (0x1FF800D0UL) /*!< Unique device ID register base address for Cat.3, Cat.4, Cat.5 and Cat.6 devices */ +#define DMA1_BASE (AHBPERIPH_BASE + 0x00006000UL) +#define DMA1_Channel1_BASE (DMA1_BASE + 0x00000008UL) +#define DMA1_Channel2_BASE (DMA1_BASE + 0x0000001CUL) +#define DMA1_Channel3_BASE (DMA1_BASE + 0x00000030UL) +#define DMA1_Channel4_BASE (DMA1_BASE + 0x00000044UL) +#define DMA1_Channel5_BASE (DMA1_BASE + 0x00000058UL) +#define DMA1_Channel6_BASE (DMA1_BASE + 0x0000006CUL) +#define DMA1_Channel7_BASE (DMA1_BASE + 0x00000080UL) +#define DMA2_BASE (AHBPERIPH_BASE + 0x00006400UL) +#define DMA2_Channel1_BASE (DMA2_BASE + 0x00000008UL) +#define DMA2_Channel2_BASE (DMA2_BASE + 0x0000001CUL) +#define DMA2_Channel3_BASE (DMA2_BASE + 0x00000030UL) +#define DMA2_Channel4_BASE (DMA2_BASE + 0x00000044UL) +#define DMA2_Channel5_BASE (DMA2_BASE + 0x00000058UL) +#define DBGMCU_BASE (0xE0042000UL) /*!< Debug MCU registers 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 LCD ((LCD_TypeDef *) LCD_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) +/* USB device FS */ +#define USB ((USB_TypeDef *) USB_BASE) +/* USB device FS SRAM */ +#define PWR ((PWR_TypeDef *) PWR_BASE) + +#define DAC1 ((DAC_TypeDef *) DAC_BASE) +/* Legacy define */ +#define DAC DAC1 + +#define COMP ((COMP_TypeDef *) COMP_BASE) /* COMP generic instance include bits of COMP1 and COMP2 mixed in the same register */ +#define COMP1 ((COMP_TypeDef *) COMP_BASE) /* COMP1 instance definition to differentiate COMP1 and COMP2, not to be used to access comparator register */ +#define COMP2 ((COMP_TypeDef *) (COMP_BASE + 0x00000001U)) /* COMP2 instance definition to differentiate COMP1 and COMP2, not to be used to access comparator register */ +#define COMP12_COMMON ((COMP_Common_TypeDef *) COMP_BASE) /* COMP common instance definition to access comparator register bits used by both comparator instances (window mode) */ + +#define RI ((RI_TypeDef *) RI_BASE) + +#define OPAMP ((OPAMP_TypeDef *) OPAMP_BASE) +#define OPAMP1 ((OPAMP_TypeDef *) OPAMP_BASE) +#define OPAMP2 ((OPAMP_TypeDef *) (OPAMP_BASE + 0x00000001U)) +#define OPAMP12_COMMON ((OPAMP_Common_TypeDef *) OPAMP_BASE) +#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) +#define EXTI ((EXTI_TypeDef *) EXTI_BASE) +#define TIM9 ((TIM_TypeDef *) TIM9_BASE) +#define TIM10 ((TIM_TypeDef *) TIM10_BASE) +#define TIM11 ((TIM_TypeDef *) TIM11_BASE) + +#define ADC1 ((ADC_TypeDef *) ADC1_BASE) +#define ADC1_COMMON ((ADC_Common_TypeDef *) ADC_BASE) +/* Legacy defines */ +#define ADC ADC1_COMMON + +#define SPI1 ((SPI_TypeDef *) SPI1_BASE) +#define USART1 ((USART_TypeDef *) USART1_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 GPIOH ((GPIO_TypeDef *) GPIOH_BASE) +#define GPIOF ((GPIO_TypeDef *) GPIOF_BASE) +#define GPIOG ((GPIO_TypeDef *) GPIOG_BASE) +#define CRC ((CRC_TypeDef *) CRC_BASE) +#define RCC ((RCC_TypeDef *) RCC_BASE) +#define FLASH ((FLASH_TypeDef *) FLASH_R_BASE) +#define OB ((OB_TypeDef *) OB_BASE) +#define DMA1 ((DMA_TypeDef *) DMA1_BASE) +#define DMA1_Channel1 ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE) +#define DMA1_Channel2 ((DMA_Channel_TypeDef *) DMA1_Channel2_BASE) +#define DMA1_Channel3 ((DMA_Channel_TypeDef *) DMA1_Channel3_BASE) +#define DMA1_Channel4 ((DMA_Channel_TypeDef *) DMA1_Channel4_BASE) +#define DMA1_Channel5 ((DMA_Channel_TypeDef *) DMA1_Channel5_BASE) +#define DMA1_Channel6 ((DMA_Channel_TypeDef *) DMA1_Channel6_BASE) +#define DMA1_Channel7 ((DMA_Channel_TypeDef *) DMA1_Channel7_BASE) +#define DMA2 ((DMA_TypeDef *) DMA2_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 DBGMCU ((DBGMCU_TypeDef *) DBGMCU_BASE) + + /** + * @} + */ + +/** @addtogroup Exported_constants + * @{ + */ + + /** @addtogroup Hardware_Constant_Definition + * @{ + */ +#define LSI_STARTUP_TIME 200U /*!< LSI Maximum startup time in us */ + + /** + * @} + */ + +/** @addtogroup Peripheral_Registers_Bits_Definition + * @{ + */ + +/******************************************************************************/ +/* Peripheral Registers Bits Definition */ +/******************************************************************************/ +/******************************************************************************/ +/* */ +/* Analog to Digital Converter (ADC) */ +/* */ +/******************************************************************************/ +#define VREFINT_CAL_ADDR_CMSIS 0x1FF800F8 /*!>= 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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_armclang.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_armclang.h new file mode 100644 index 0000000..162a400 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_compiler.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_compiler.h new file mode 100644 index 0000000..94212eb --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_gcc.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_gcc.h new file mode 100644 index 0000000..2d9db15 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_iccarm.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_iccarm.h new file mode 100644 index 0000000..11c4af0 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_version.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/cmsis_version.h new file mode 100644 index 0000000..660f612 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_armv8mbl.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_armv8mbl.h new file mode 100644 index 0000000..251e4ed --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_armv8mml.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_armv8mml.h new file mode 100644 index 0000000..3a3148e --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm0.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm0.h new file mode 100644 index 0000000..f929bba --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm0plus.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm0plus.h new file mode 100644 index 0000000..424011a --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm1.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm1.h new file mode 100644 index 0000000..0ed678e --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm23.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm23.h new file mode 100644 index 0000000..acbc5df --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm3.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm3.h new file mode 100644 index 0000000..74bff64 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm33.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm33.h new file mode 100644 index 0000000..6cd2db7 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm4.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm4.h new file mode 100644 index 0000000..7d56873 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm7.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_cm7.h new file mode 100644 index 0000000..a14dc62 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_sc000.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_sc000.h new file mode 100644 index 0000000..9b67c92 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_sc300.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/core_sc300.h new file mode 100644 index 0000000..3e8a471 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/mpu_armv7.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/mpu_armv7.h new file mode 100644 index 0000000..0142203 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/mpu_armv8.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/mpu_armv8.h new file mode 100644 index 0000000..62571da --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/tz_context.h b/TP2_ISEN_DISPLAY/Drivers/CMSIS/Include/tz_context.h new file mode 100644 index 0000000..0d09749 --- /dev/null +++ b/TP2_ISEN_DISPLAY/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/TP2_ISEN_DISPLAY/Drivers/CMSIS/LICENSE.txt b/TP2_ISEN_DISPLAY/Drivers/CMSIS/LICENSE.txt new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/CMSIS/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h new file mode 100644 index 0000000..c3b8473 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h @@ -0,0 +1,4422 @@ +/** + ****************************************************************************** + * @file stm32_hal_legacy.h + * @author MCD Application Team + * @brief This file contains aliases definition for the STM32Cube HAL constants + * macros and functions maintained for legacy purpose. + ****************************************************************************** + * @attention + * + * Copyright (c) 2021 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32_HAL_LEGACY +#define STM32_HAL_LEGACY + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup HAL_AES_Aliased_Defines HAL CRYP Aliased Defines maintained for legacy purpose + * @{ + */ +#define AES_FLAG_RDERR CRYP_FLAG_RDERR +#define AES_FLAG_WRERR CRYP_FLAG_WRERR +#define AES_CLEARFLAG_CCF CRYP_CLEARFLAG_CCF +#define AES_CLEARFLAG_RDERR CRYP_CLEARFLAG_RDERR +#define AES_CLEARFLAG_WRERR CRYP_CLEARFLAG_WRERR +#if defined(STM32H7) || defined(STM32MP1) +#define CRYP_DATATYPE_32B CRYP_NO_SWAP +#define CRYP_DATATYPE_16B CRYP_HALFWORD_SWAP +#define CRYP_DATATYPE_8B CRYP_BYTE_SWAP +#define CRYP_DATATYPE_1B CRYP_BIT_SWAP +#endif /* STM32H7 || STM32MP1 */ +/** + * @} + */ + +/** @defgroup HAL_ADC_Aliased_Defines HAL ADC Aliased Defines maintained for legacy purpose + * @{ + */ +#define ADC_RESOLUTION12b ADC_RESOLUTION_12B +#define ADC_RESOLUTION10b ADC_RESOLUTION_10B +#define ADC_RESOLUTION8b ADC_RESOLUTION_8B +#define ADC_RESOLUTION6b ADC_RESOLUTION_6B +#define OVR_DATA_OVERWRITTEN ADC_OVR_DATA_OVERWRITTEN +#define OVR_DATA_PRESERVED ADC_OVR_DATA_PRESERVED +#define EOC_SINGLE_CONV ADC_EOC_SINGLE_CONV +#define EOC_SEQ_CONV ADC_EOC_SEQ_CONV +#define EOC_SINGLE_SEQ_CONV ADC_EOC_SINGLE_SEQ_CONV +#define REGULAR_GROUP ADC_REGULAR_GROUP +#define INJECTED_GROUP ADC_INJECTED_GROUP +#define REGULAR_INJECTED_GROUP ADC_REGULAR_INJECTED_GROUP +#define AWD_EVENT ADC_AWD_EVENT +#define AWD1_EVENT ADC_AWD1_EVENT +#define AWD2_EVENT ADC_AWD2_EVENT +#define AWD3_EVENT ADC_AWD3_EVENT +#define OVR_EVENT ADC_OVR_EVENT +#define JQOVF_EVENT ADC_JQOVF_EVENT +#define ALL_CHANNELS ADC_ALL_CHANNELS +#define REGULAR_CHANNELS ADC_REGULAR_CHANNELS +#define INJECTED_CHANNELS ADC_INJECTED_CHANNELS +#define SYSCFG_FLAG_SENSOR_ADC ADC_FLAG_SENSOR +#define SYSCFG_FLAG_VREF_ADC ADC_FLAG_VREFINT +#define ADC_CLOCKPRESCALER_PCLK_DIV1 ADC_CLOCK_SYNC_PCLK_DIV1 +#define ADC_CLOCKPRESCALER_PCLK_DIV2 ADC_CLOCK_SYNC_PCLK_DIV2 +#define ADC_CLOCKPRESCALER_PCLK_DIV4 ADC_CLOCK_SYNC_PCLK_DIV4 +#define ADC_CLOCKPRESCALER_PCLK_DIV6 ADC_CLOCK_SYNC_PCLK_DIV6 +#define ADC_CLOCKPRESCALER_PCLK_DIV8 ADC_CLOCK_SYNC_PCLK_DIV8 +#define ADC_EXTERNALTRIG0_T6_TRGO ADC_EXTERNALTRIGCONV_T6_TRGO +#define ADC_EXTERNALTRIG1_T21_CC2 ADC_EXTERNALTRIGCONV_T21_CC2 +#define ADC_EXTERNALTRIG2_T2_TRGO ADC_EXTERNALTRIGCONV_T2_TRGO +#define ADC_EXTERNALTRIG3_T2_CC4 ADC_EXTERNALTRIGCONV_T2_CC4 +#define ADC_EXTERNALTRIG4_T22_TRGO ADC_EXTERNALTRIGCONV_T22_TRGO +#define ADC_EXTERNALTRIG7_EXT_IT11 ADC_EXTERNALTRIGCONV_EXT_IT11 +#define ADC_CLOCK_ASYNC ADC_CLOCK_ASYNC_DIV1 +#define ADC_EXTERNALTRIG_EDGE_NONE ADC_EXTERNALTRIGCONVEDGE_NONE +#define ADC_EXTERNALTRIG_EDGE_RISING ADC_EXTERNALTRIGCONVEDGE_RISING +#define ADC_EXTERNALTRIG_EDGE_FALLING ADC_EXTERNALTRIGCONVEDGE_FALLING +#define ADC_EXTERNALTRIG_EDGE_RISINGFALLING ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING +#define ADC_SAMPLETIME_2CYCLE_5 ADC_SAMPLETIME_2CYCLES_5 + +#define HAL_ADC_STATE_BUSY_REG HAL_ADC_STATE_REG_BUSY +#define HAL_ADC_STATE_BUSY_INJ HAL_ADC_STATE_INJ_BUSY +#define HAL_ADC_STATE_EOC_REG HAL_ADC_STATE_REG_EOC +#define HAL_ADC_STATE_EOC_INJ HAL_ADC_STATE_INJ_EOC +#define HAL_ADC_STATE_ERROR HAL_ADC_STATE_ERROR_INTERNAL +#define HAL_ADC_STATE_BUSY HAL_ADC_STATE_BUSY_INTERNAL +#define HAL_ADC_STATE_AWD HAL_ADC_STATE_AWD1 + +#if defined(STM32H7) +#define ADC_CHANNEL_VBAT_DIV4 ADC_CHANNEL_VBAT +#endif /* STM32H7 */ + +#if defined(STM32U5) +#define ADC_SAMPLETIME_5CYCLE ADC_SAMPLETIME_5CYCLES +#define ADC_SAMPLETIME_391CYCLES_5 ADC_SAMPLETIME_391CYCLES +#define ADC4_SAMPLETIME_160CYCLES_5 ADC4_SAMPLETIME_814CYCLES_5 +#endif /* STM32U5 */ + +#if defined(STM32H5) +#define ADC_CHANNEL_VCORE ADC_CHANNEL_VDDCORE +#endif /* STM32H5 */ +/** + * @} + */ + +/** @defgroup HAL_CEC_Aliased_Defines HAL CEC Aliased Defines maintained for legacy purpose + * @{ + */ + +#define __HAL_CEC_GET_IT __HAL_CEC_GET_FLAG + +/** + * @} + */ + +/** @defgroup HAL_COMP_Aliased_Defines HAL COMP Aliased Defines maintained for legacy purpose + * @{ + */ +#define COMP_WINDOWMODE_DISABLED COMP_WINDOWMODE_DISABLE +#define COMP_WINDOWMODE_ENABLED COMP_WINDOWMODE_ENABLE +#define COMP_EXTI_LINE_COMP1_EVENT COMP_EXTI_LINE_COMP1 +#define COMP_EXTI_LINE_COMP2_EVENT COMP_EXTI_LINE_COMP2 +#define COMP_EXTI_LINE_COMP3_EVENT COMP_EXTI_LINE_COMP3 +#define COMP_EXTI_LINE_COMP4_EVENT COMP_EXTI_LINE_COMP4 +#define COMP_EXTI_LINE_COMP5_EVENT COMP_EXTI_LINE_COMP5 +#define COMP_EXTI_LINE_COMP6_EVENT COMP_EXTI_LINE_COMP6 +#define COMP_EXTI_LINE_COMP7_EVENT COMP_EXTI_LINE_COMP7 +#if defined(STM32L0) +#define COMP_LPTIMCONNECTION_ENABLED ((uint32_t)0x00000003U) /*!< COMPX output generic naming: connected to LPTIM + input 1 for COMP1, LPTIM input 2 for COMP2 */ +#endif +#define COMP_OUTPUT_COMP6TIM2OCREFCLR COMP_OUTPUT_COMP6_TIM2OCREFCLR +#if defined(STM32F373xC) || defined(STM32F378xx) +#define COMP_OUTPUT_TIM3IC1 COMP_OUTPUT_COMP1_TIM3IC1 +#define COMP_OUTPUT_TIM3OCREFCLR COMP_OUTPUT_COMP1_TIM3OCREFCLR +#endif /* STM32F373xC || STM32F378xx */ + +#if defined(STM32L0) || defined(STM32L4) +#define COMP_WINDOWMODE_ENABLE COMP_WINDOWMODE_COMP1_INPUT_PLUS_COMMON + +#define COMP_NONINVERTINGINPUT_IO1 COMP_INPUT_PLUS_IO1 +#define COMP_NONINVERTINGINPUT_IO2 COMP_INPUT_PLUS_IO2 +#define COMP_NONINVERTINGINPUT_IO3 COMP_INPUT_PLUS_IO3 +#define COMP_NONINVERTINGINPUT_IO4 COMP_INPUT_PLUS_IO4 +#define COMP_NONINVERTINGINPUT_IO5 COMP_INPUT_PLUS_IO5 +#define COMP_NONINVERTINGINPUT_IO6 COMP_INPUT_PLUS_IO6 + +#define COMP_INVERTINGINPUT_1_4VREFINT COMP_INPUT_MINUS_1_4VREFINT +#define COMP_INVERTINGINPUT_1_2VREFINT COMP_INPUT_MINUS_1_2VREFINT +#define COMP_INVERTINGINPUT_3_4VREFINT COMP_INPUT_MINUS_3_4VREFINT +#define COMP_INVERTINGINPUT_VREFINT COMP_INPUT_MINUS_VREFINT +#define COMP_INVERTINGINPUT_DAC1_CH1 COMP_INPUT_MINUS_DAC1_CH1 +#define COMP_INVERTINGINPUT_DAC1_CH2 COMP_INPUT_MINUS_DAC1_CH2 +#define COMP_INVERTINGINPUT_DAC1 COMP_INPUT_MINUS_DAC1_CH1 +#define COMP_INVERTINGINPUT_DAC2 COMP_INPUT_MINUS_DAC1_CH2 +#define COMP_INVERTINGINPUT_IO1 COMP_INPUT_MINUS_IO1 +#if defined(STM32L0) +/* Issue fixed on STM32L0 COMP driver: only 2 dedicated IO (IO1 and IO2), */ +/* IO2 was wrongly assigned to IO shared with DAC and IO3 was corresponding */ +/* to the second dedicated IO (only for COMP2). */ +#define COMP_INVERTINGINPUT_IO2 COMP_INPUT_MINUS_DAC1_CH2 +#define COMP_INVERTINGINPUT_IO3 COMP_INPUT_MINUS_IO2 +#else +#define COMP_INVERTINGINPUT_IO2 COMP_INPUT_MINUS_IO2 +#define COMP_INVERTINGINPUT_IO3 COMP_INPUT_MINUS_IO3 +#endif +#define COMP_INVERTINGINPUT_IO4 COMP_INPUT_MINUS_IO4 +#define COMP_INVERTINGINPUT_IO5 COMP_INPUT_MINUS_IO5 + +#define COMP_OUTPUTLEVEL_LOW COMP_OUTPUT_LEVEL_LOW +#define COMP_OUTPUTLEVEL_HIGH COMP_OUTPUT_LEVEL_HIGH + +/* Note: Literal "COMP_FLAG_LOCK" kept for legacy purpose. */ +/* To check COMP lock state, use macro "__HAL_COMP_IS_LOCKED()". */ +#if defined(COMP_CSR_LOCK) +#define COMP_FLAG_LOCK COMP_CSR_LOCK +#elif defined(COMP_CSR_COMP1LOCK) +#define COMP_FLAG_LOCK COMP_CSR_COMP1LOCK +#elif defined(COMP_CSR_COMPxLOCK) +#define COMP_FLAG_LOCK COMP_CSR_COMPxLOCK +#endif + +#if defined(STM32L4) +#define COMP_BLANKINGSRCE_TIM1OC5 COMP_BLANKINGSRC_TIM1_OC5_COMP1 +#define COMP_BLANKINGSRCE_TIM2OC3 COMP_BLANKINGSRC_TIM2_OC3_COMP1 +#define COMP_BLANKINGSRCE_TIM3OC3 COMP_BLANKINGSRC_TIM3_OC3_COMP1 +#define COMP_BLANKINGSRCE_TIM3OC4 COMP_BLANKINGSRC_TIM3_OC4_COMP2 +#define COMP_BLANKINGSRCE_TIM8OC5 COMP_BLANKINGSRC_TIM8_OC5_COMP2 +#define COMP_BLANKINGSRCE_TIM15OC1 COMP_BLANKINGSRC_TIM15_OC1_COMP2 +#define COMP_BLANKINGSRCE_NONE COMP_BLANKINGSRC_NONE +#endif + +#if defined(STM32L0) +#define COMP_MODE_HIGHSPEED COMP_POWERMODE_MEDIUMSPEED +#define COMP_MODE_LOWSPEED COMP_POWERMODE_ULTRALOWPOWER +#else +#define COMP_MODE_HIGHSPEED COMP_POWERMODE_HIGHSPEED +#define COMP_MODE_MEDIUMSPEED COMP_POWERMODE_MEDIUMSPEED +#define COMP_MODE_LOWPOWER COMP_POWERMODE_LOWPOWER +#define COMP_MODE_ULTRALOWPOWER COMP_POWERMODE_ULTRALOWPOWER +#endif + +#endif + +#if defined(STM32U5) +#define __HAL_COMP_COMP1_EXTI_CLEAR_RASING_FLAG __HAL_COMP_COMP1_EXTI_CLEAR_RISING_FLAG +#endif + +/** + * @} + */ + +/** @defgroup HAL_CORTEX_Aliased_Defines HAL CORTEX Aliased Defines maintained for legacy purpose + * @{ + */ +#define __HAL_CORTEX_SYSTICKCLK_CONFIG HAL_SYSTICK_CLKSourceConfig +#if defined(STM32U5) +#define MPU_DEVICE_nGnRnE MPU_DEVICE_NGNRNE +#define MPU_DEVICE_nGnRE MPU_DEVICE_NGNRE +#define MPU_DEVICE_nGRE MPU_DEVICE_NGRE +#endif /* STM32U5 */ +/** + * @} + */ + +/** @defgroup CRC_Aliases CRC API aliases + * @{ + */ +#if defined(STM32H5) || defined(STM32C0) +#else +#define HAL_CRC_Input_Data_Reverse HAL_CRCEx_Input_Data_Reverse /*!< Aliased to HAL_CRCEx_Input_Data_Reverse for + inter STM32 series compatibility */ +#define HAL_CRC_Output_Data_Reverse HAL_CRCEx_Output_Data_Reverse /*!< Aliased to HAL_CRCEx_Output_Data_Reverse for + inter STM32 series compatibility */ +#endif +/** + * @} + */ + +/** @defgroup HAL_CRC_Aliased_Defines HAL CRC Aliased Defines maintained for legacy purpose + * @{ + */ + +#define CRC_OUTPUTDATA_INVERSION_DISABLED CRC_OUTPUTDATA_INVERSION_DISABLE +#define CRC_OUTPUTDATA_INVERSION_ENABLED CRC_OUTPUTDATA_INVERSION_ENABLE + +/** + * @} + */ + +/** @defgroup HAL_DAC_Aliased_Defines HAL DAC Aliased Defines maintained for legacy purpose + * @{ + */ + +#define DAC1_CHANNEL_1 DAC_CHANNEL_1 +#define DAC1_CHANNEL_2 DAC_CHANNEL_2 +#define DAC2_CHANNEL_1 DAC_CHANNEL_1 +#define DAC_WAVE_NONE 0x00000000U +#define DAC_WAVE_NOISE DAC_CR_WAVE1_0 +#define DAC_WAVE_TRIANGLE DAC_CR_WAVE1_1 +#define DAC_WAVEGENERATION_NONE DAC_WAVE_NONE +#define DAC_WAVEGENERATION_NOISE DAC_WAVE_NOISE +#define DAC_WAVEGENERATION_TRIANGLE DAC_WAVE_TRIANGLE + +#if defined(STM32G4) || defined(STM32H7) || defined (STM32U5) +#define DAC_CHIPCONNECT_DISABLE DAC_CHIPCONNECT_EXTERNAL +#define DAC_CHIPCONNECT_ENABLE DAC_CHIPCONNECT_INTERNAL +#endif + +#if defined(STM32U5) +#define DAC_TRIGGER_STOP_LPTIM1_OUT DAC_TRIGGER_STOP_LPTIM1_CH1 +#define DAC_TRIGGER_STOP_LPTIM3_OUT DAC_TRIGGER_STOP_LPTIM3_CH1 +#define DAC_TRIGGER_LPTIM1_OUT DAC_TRIGGER_LPTIM1_CH1 +#define DAC_TRIGGER_LPTIM3_OUT DAC_TRIGGER_LPTIM3_CH1 +#endif + +#if defined(STM32H5) +#define DAC_TRIGGER_LPTIM1_OUT DAC_TRIGGER_LPTIM1_CH1 +#define DAC_TRIGGER_LPTIM2_OUT DAC_TRIGGER_LPTIM2_CH1 +#endif + +#if defined(STM32L1) || defined(STM32L4) || defined(STM32G0) || defined(STM32L5) || defined(STM32H7) || \ + defined(STM32F4) || defined(STM32G4) +#define HAL_DAC_MSP_INIT_CB_ID HAL_DAC_MSPINIT_CB_ID +#define HAL_DAC_MSP_DEINIT_CB_ID HAL_DAC_MSPDEINIT_CB_ID +#endif + +/** + * @} + */ + +/** @defgroup HAL_DMA_Aliased_Defines HAL DMA Aliased Defines maintained for legacy purpose + * @{ + */ +#define HAL_REMAPDMA_ADC_DMA_CH2 DMA_REMAP_ADC_DMA_CH2 +#define HAL_REMAPDMA_USART1_TX_DMA_CH4 DMA_REMAP_USART1_TX_DMA_CH4 +#define HAL_REMAPDMA_USART1_RX_DMA_CH5 DMA_REMAP_USART1_RX_DMA_CH5 +#define HAL_REMAPDMA_TIM16_DMA_CH4 DMA_REMAP_TIM16_DMA_CH4 +#define HAL_REMAPDMA_TIM17_DMA_CH2 DMA_REMAP_TIM17_DMA_CH2 +#define HAL_REMAPDMA_USART3_DMA_CH32 DMA_REMAP_USART3_DMA_CH32 +#define HAL_REMAPDMA_TIM16_DMA_CH6 DMA_REMAP_TIM16_DMA_CH6 +#define HAL_REMAPDMA_TIM17_DMA_CH7 DMA_REMAP_TIM17_DMA_CH7 +#define HAL_REMAPDMA_SPI2_DMA_CH67 DMA_REMAP_SPI2_DMA_CH67 +#define HAL_REMAPDMA_USART2_DMA_CH67 DMA_REMAP_USART2_DMA_CH67 +#define HAL_REMAPDMA_I2C1_DMA_CH76 DMA_REMAP_I2C1_DMA_CH76 +#define HAL_REMAPDMA_TIM1_DMA_CH6 DMA_REMAP_TIM1_DMA_CH6 +#define HAL_REMAPDMA_TIM2_DMA_CH7 DMA_REMAP_TIM2_DMA_CH7 +#define HAL_REMAPDMA_TIM3_DMA_CH6 DMA_REMAP_TIM3_DMA_CH6 + +#define IS_HAL_REMAPDMA IS_DMA_REMAP +#define __HAL_REMAPDMA_CHANNEL_ENABLE __HAL_DMA_REMAP_CHANNEL_ENABLE +#define __HAL_REMAPDMA_CHANNEL_DISABLE __HAL_DMA_REMAP_CHANNEL_DISABLE + +#if defined(STM32L4) + +#define HAL_DMAMUX1_REQUEST_GEN_EXTI0 HAL_DMAMUX1_REQ_GEN_EXTI0 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI1 HAL_DMAMUX1_REQ_GEN_EXTI1 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI2 HAL_DMAMUX1_REQ_GEN_EXTI2 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI3 HAL_DMAMUX1_REQ_GEN_EXTI3 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI4 HAL_DMAMUX1_REQ_GEN_EXTI4 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI5 HAL_DMAMUX1_REQ_GEN_EXTI5 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI6 HAL_DMAMUX1_REQ_GEN_EXTI6 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI7 HAL_DMAMUX1_REQ_GEN_EXTI7 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI8 HAL_DMAMUX1_REQ_GEN_EXTI8 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI9 HAL_DMAMUX1_REQ_GEN_EXTI9 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI10 HAL_DMAMUX1_REQ_GEN_EXTI10 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI11 HAL_DMAMUX1_REQ_GEN_EXTI11 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI12 HAL_DMAMUX1_REQ_GEN_EXTI12 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI13 HAL_DMAMUX1_REQ_GEN_EXTI13 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI14 HAL_DMAMUX1_REQ_GEN_EXTI14 +#define HAL_DMAMUX1_REQUEST_GEN_EXTI15 HAL_DMAMUX1_REQ_GEN_EXTI15 +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH0_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH0_EVT +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH1_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH1_EVT +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH2_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH2_EVT +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH3_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH3_EVT +#define HAL_DMAMUX1_REQUEST_GEN_LPTIM1_OUT HAL_DMAMUX1_REQ_GEN_LPTIM1_OUT +#define HAL_DMAMUX1_REQUEST_GEN_LPTIM2_OUT HAL_DMAMUX1_REQ_GEN_LPTIM2_OUT +#define HAL_DMAMUX1_REQUEST_GEN_DSI_TE HAL_DMAMUX1_REQ_GEN_DSI_TE +#define HAL_DMAMUX1_REQUEST_GEN_DSI_EOT HAL_DMAMUX1_REQ_GEN_DSI_EOT +#define HAL_DMAMUX1_REQUEST_GEN_DMA2D_EOT HAL_DMAMUX1_REQ_GEN_DMA2D_EOT +#define HAL_DMAMUX1_REQUEST_GEN_LTDC_IT HAL_DMAMUX1_REQ_GEN_LTDC_IT + +#define HAL_DMAMUX_REQUEST_GEN_NO_EVENT HAL_DMAMUX_REQ_GEN_NO_EVENT +#define HAL_DMAMUX_REQUEST_GEN_RISING HAL_DMAMUX_REQ_GEN_RISING +#define HAL_DMAMUX_REQUEST_GEN_FALLING HAL_DMAMUX_REQ_GEN_FALLING +#define HAL_DMAMUX_REQUEST_GEN_RISING_FALLING HAL_DMAMUX_REQ_GEN_RISING_FALLING + +#if defined(STM32L4R5xx) || defined(STM32L4R9xx) || defined(STM32L4R9xx) || defined(STM32L4S5xx) || \ + defined(STM32L4S7xx) || defined(STM32L4S9xx) +#define DMA_REQUEST_DCMI_PSSI DMA_REQUEST_DCMI +#endif + +#endif /* STM32L4 */ + +#if defined(STM32G0) +#define DMA_REQUEST_DAC1_CHANNEL1 DMA_REQUEST_DAC1_CH1 +#define DMA_REQUEST_DAC1_CHANNEL2 DMA_REQUEST_DAC1_CH2 +#define DMA_REQUEST_TIM16_TRIG_COM DMA_REQUEST_TIM16_COM +#define DMA_REQUEST_TIM17_TRIG_COM DMA_REQUEST_TIM17_COM + +#define LL_DMAMUX_REQ_TIM16_TRIG_COM LL_DMAMUX_REQ_TIM16_COM +#define LL_DMAMUX_REQ_TIM17_TRIG_COM LL_DMAMUX_REQ_TIM17_COM +#endif + +#if defined(STM32H7) + +#define DMA_REQUEST_DAC1 DMA_REQUEST_DAC1_CH1 +#define DMA_REQUEST_DAC2 DMA_REQUEST_DAC1_CH2 + +#define BDMA_REQUEST_LP_UART1_RX BDMA_REQUEST_LPUART1_RX +#define BDMA_REQUEST_LP_UART1_TX BDMA_REQUEST_LPUART1_TX + +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH0_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH0_EVT +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH1_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH1_EVT +#define HAL_DMAMUX1_REQUEST_GEN_DMAMUX1_CH2_EVT HAL_DMAMUX1_REQ_GEN_DMAMUX1_CH2_EVT +#define HAL_DMAMUX1_REQUEST_GEN_LPTIM1_OUT HAL_DMAMUX1_REQ_GEN_LPTIM1_OUT +#define HAL_DMAMUX1_REQUEST_GEN_LPTIM2_OUT HAL_DMAMUX1_REQ_GEN_LPTIM2_OUT +#define HAL_DMAMUX1_REQUEST_GEN_LPTIM3_OUT HAL_DMAMUX1_REQ_GEN_LPTIM3_OUT +#define HAL_DMAMUX1_REQUEST_GEN_EXTI0 HAL_DMAMUX1_REQ_GEN_EXTI0 +#define HAL_DMAMUX1_REQUEST_GEN_TIM12_TRGO HAL_DMAMUX1_REQ_GEN_TIM12_TRGO + +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH0_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH0_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH1_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH1_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH2_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH2_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH3_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH3_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH4_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH4_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH5_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH5_EVT +#define HAL_DMAMUX2_REQUEST_GEN_DMAMUX2_CH6_EVT HAL_DMAMUX2_REQ_GEN_DMAMUX2_CH6_EVT +#define HAL_DMAMUX2_REQUEST_GEN_LPUART1_RX_WKUP HAL_DMAMUX2_REQ_GEN_LPUART1_RX_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_LPUART1_TX_WKUP HAL_DMAMUX2_REQ_GEN_LPUART1_TX_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM2_WKUP HAL_DMAMUX2_REQ_GEN_LPTIM2_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM2_OUT HAL_DMAMUX2_REQ_GEN_LPTIM2_OUT +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM3_WKUP HAL_DMAMUX2_REQ_GEN_LPTIM3_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM3_OUT HAL_DMAMUX2_REQ_GEN_LPTIM3_OUT +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM4_WKUP HAL_DMAMUX2_REQ_GEN_LPTIM4_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_LPTIM5_WKUP HAL_DMAMUX2_REQ_GEN_LPTIM5_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_I2C4_WKUP HAL_DMAMUX2_REQ_GEN_I2C4_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_SPI6_WKUP HAL_DMAMUX2_REQ_GEN_SPI6_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_COMP1_OUT HAL_DMAMUX2_REQ_GEN_COMP1_OUT +#define HAL_DMAMUX2_REQUEST_GEN_COMP2_OUT HAL_DMAMUX2_REQ_GEN_COMP2_OUT +#define HAL_DMAMUX2_REQUEST_GEN_RTC_WKUP HAL_DMAMUX2_REQ_GEN_RTC_WKUP +#define HAL_DMAMUX2_REQUEST_GEN_EXTI0 HAL_DMAMUX2_REQ_GEN_EXTI0 +#define HAL_DMAMUX2_REQUEST_GEN_EXTI2 HAL_DMAMUX2_REQ_GEN_EXTI2 +#define HAL_DMAMUX2_REQUEST_GEN_I2C4_IT_EVT HAL_DMAMUX2_REQ_GEN_I2C4_IT_EVT +#define HAL_DMAMUX2_REQUEST_GEN_SPI6_IT HAL_DMAMUX2_REQ_GEN_SPI6_IT +#define HAL_DMAMUX2_REQUEST_GEN_LPUART1_TX_IT HAL_DMAMUX2_REQ_GEN_LPUART1_TX_IT +#define HAL_DMAMUX2_REQUEST_GEN_LPUART1_RX_IT HAL_DMAMUX2_REQ_GEN_LPUART1_RX_IT +#define HAL_DMAMUX2_REQUEST_GEN_ADC3_IT HAL_DMAMUX2_REQ_GEN_ADC3_IT +#define HAL_DMAMUX2_REQUEST_GEN_ADC3_AWD1_OUT HAL_DMAMUX2_REQ_GEN_ADC3_AWD1_OUT +#define HAL_DMAMUX2_REQUEST_GEN_BDMA_CH0_IT HAL_DMAMUX2_REQ_GEN_BDMA_CH0_IT +#define HAL_DMAMUX2_REQUEST_GEN_BDMA_CH1_IT HAL_DMAMUX2_REQ_GEN_BDMA_CH1_IT + +#define HAL_DMAMUX_REQUEST_GEN_NO_EVENT HAL_DMAMUX_REQ_GEN_NO_EVENT +#define HAL_DMAMUX_REQUEST_GEN_RISING HAL_DMAMUX_REQ_GEN_RISING +#define HAL_DMAMUX_REQUEST_GEN_FALLING HAL_DMAMUX_REQ_GEN_FALLING +#define HAL_DMAMUX_REQUEST_GEN_RISING_FALLING HAL_DMAMUX_REQ_GEN_RISING_FALLING + +#define DFSDM_FILTER_EXT_TRIG_LPTIM1 DFSDM_FILTER_EXT_TRIG_LPTIM1_OUT +#define DFSDM_FILTER_EXT_TRIG_LPTIM2 DFSDM_FILTER_EXT_TRIG_LPTIM2_OUT +#define DFSDM_FILTER_EXT_TRIG_LPTIM3 DFSDM_FILTER_EXT_TRIG_LPTIM3_OUT + +#define DAC_TRIGGER_LP1_OUT DAC_TRIGGER_LPTIM1_OUT +#define DAC_TRIGGER_LP2_OUT DAC_TRIGGER_LPTIM2_OUT + +#endif /* STM32H7 */ + +#if defined(STM32U5) +#define GPDMA1_REQUEST_DCMI GPDMA1_REQUEST_DCMI_PSSI +#endif /* STM32U5 */ +/** + * @} + */ + +/** @defgroup HAL_FLASH_Aliased_Defines HAL FLASH Aliased Defines maintained for legacy purpose + * @{ + */ + +#define TYPEPROGRAM_BYTE FLASH_TYPEPROGRAM_BYTE +#define TYPEPROGRAM_HALFWORD FLASH_TYPEPROGRAM_HALFWORD +#define TYPEPROGRAM_WORD FLASH_TYPEPROGRAM_WORD +#define TYPEPROGRAM_DOUBLEWORD FLASH_TYPEPROGRAM_DOUBLEWORD +#define TYPEERASE_SECTORS FLASH_TYPEERASE_SECTORS +#define TYPEERASE_PAGES FLASH_TYPEERASE_PAGES +#define TYPEERASE_PAGEERASE FLASH_TYPEERASE_PAGES +#define TYPEERASE_MASSERASE FLASH_TYPEERASE_MASSERASE +#define WRPSTATE_DISABLE OB_WRPSTATE_DISABLE +#define WRPSTATE_ENABLE OB_WRPSTATE_ENABLE +#define HAL_FLASH_TIMEOUT_VALUE FLASH_TIMEOUT_VALUE +#define OBEX_PCROP OPTIONBYTE_PCROP +#define OBEX_BOOTCONFIG OPTIONBYTE_BOOTCONFIG +#define PCROPSTATE_DISABLE OB_PCROP_STATE_DISABLE +#define PCROPSTATE_ENABLE OB_PCROP_STATE_ENABLE +#define TYPEERASEDATA_BYTE FLASH_TYPEERASEDATA_BYTE +#define TYPEERASEDATA_HALFWORD FLASH_TYPEERASEDATA_HALFWORD +#define TYPEERASEDATA_WORD FLASH_TYPEERASEDATA_WORD +#define TYPEPROGRAMDATA_BYTE FLASH_TYPEPROGRAMDATA_BYTE +#define TYPEPROGRAMDATA_HALFWORD FLASH_TYPEPROGRAMDATA_HALFWORD +#define TYPEPROGRAMDATA_WORD FLASH_TYPEPROGRAMDATA_WORD +#define TYPEPROGRAMDATA_FASTBYTE FLASH_TYPEPROGRAMDATA_FASTBYTE +#define TYPEPROGRAMDATA_FASTHALFWORD FLASH_TYPEPROGRAMDATA_FASTHALFWORD +#define TYPEPROGRAMDATA_FASTWORD FLASH_TYPEPROGRAMDATA_FASTWORD +#if !defined(STM32F2) && !defined(STM32F4) && !defined(STM32F7) && !defined(STM32H7) && !defined(STM32H5) +#define PAGESIZE FLASH_PAGE_SIZE +#endif /* STM32F2 && STM32F4 && STM32F7 && STM32H7 && STM32H5 */ +#define TYPEPROGRAM_FASTBYTE FLASH_TYPEPROGRAM_BYTE +#define TYPEPROGRAM_FASTHALFWORD FLASH_TYPEPROGRAM_HALFWORD +#define TYPEPROGRAM_FASTWORD FLASH_TYPEPROGRAM_WORD +#define VOLTAGE_RANGE_1 FLASH_VOLTAGE_RANGE_1 +#define VOLTAGE_RANGE_2 FLASH_VOLTAGE_RANGE_2 +#define VOLTAGE_RANGE_3 FLASH_VOLTAGE_RANGE_3 +#define VOLTAGE_RANGE_4 FLASH_VOLTAGE_RANGE_4 +#define TYPEPROGRAM_FAST FLASH_TYPEPROGRAM_FAST +#define TYPEPROGRAM_FAST_AND_LAST FLASH_TYPEPROGRAM_FAST_AND_LAST +#define WRPAREA_BANK1_AREAA OB_WRPAREA_BANK1_AREAA +#define WRPAREA_BANK1_AREAB OB_WRPAREA_BANK1_AREAB +#define WRPAREA_BANK2_AREAA OB_WRPAREA_BANK2_AREAA +#define WRPAREA_BANK2_AREAB OB_WRPAREA_BANK2_AREAB +#define IWDG_STDBY_FREEZE OB_IWDG_STDBY_FREEZE +#define IWDG_STDBY_ACTIVE OB_IWDG_STDBY_RUN +#define IWDG_STOP_FREEZE OB_IWDG_STOP_FREEZE +#define IWDG_STOP_ACTIVE OB_IWDG_STOP_RUN +#define FLASH_ERROR_NONE HAL_FLASH_ERROR_NONE +#define FLASH_ERROR_RD HAL_FLASH_ERROR_RD +#define FLASH_ERROR_PG HAL_FLASH_ERROR_PROG +#define FLASH_ERROR_PGP HAL_FLASH_ERROR_PGS +#define FLASH_ERROR_WRP HAL_FLASH_ERROR_WRP +#define FLASH_ERROR_OPTV HAL_FLASH_ERROR_OPTV +#define FLASH_ERROR_OPTVUSR HAL_FLASH_ERROR_OPTVUSR +#define FLASH_ERROR_PROG HAL_FLASH_ERROR_PROG +#define FLASH_ERROR_OP HAL_FLASH_ERROR_OPERATION +#define FLASH_ERROR_PGA HAL_FLASH_ERROR_PGA +#define FLASH_ERROR_SIZE HAL_FLASH_ERROR_SIZE +#define FLASH_ERROR_SIZ HAL_FLASH_ERROR_SIZE +#define FLASH_ERROR_PGS HAL_FLASH_ERROR_PGS +#define FLASH_ERROR_MIS HAL_FLASH_ERROR_MIS +#define FLASH_ERROR_FAST HAL_FLASH_ERROR_FAST +#define FLASH_ERROR_FWWERR HAL_FLASH_ERROR_FWWERR +#define FLASH_ERROR_NOTZERO HAL_FLASH_ERROR_NOTZERO +#define FLASH_ERROR_OPERATION HAL_FLASH_ERROR_OPERATION +#define FLASH_ERROR_ERS HAL_FLASH_ERROR_ERS +#define OB_WDG_SW OB_IWDG_SW +#define OB_WDG_HW OB_IWDG_HW +#define OB_SDADC12_VDD_MONITOR_SET OB_SDACD_VDD_MONITOR_SET +#define OB_SDADC12_VDD_MONITOR_RESET OB_SDACD_VDD_MONITOR_RESET +#define OB_RAM_PARITY_CHECK_SET OB_SRAM_PARITY_SET +#define OB_RAM_PARITY_CHECK_RESET OB_SRAM_PARITY_RESET +#define IS_OB_SDADC12_VDD_MONITOR IS_OB_SDACD_VDD_MONITOR +#define OB_RDP_LEVEL0 OB_RDP_LEVEL_0 +#define OB_RDP_LEVEL1 OB_RDP_LEVEL_1 +#define OB_RDP_LEVEL2 OB_RDP_LEVEL_2 +#if defined(STM32G0) || defined(STM32C0) +#define OB_BOOT_LOCK_DISABLE OB_BOOT_ENTRY_FORCED_NONE +#define OB_BOOT_LOCK_ENABLE OB_BOOT_ENTRY_FORCED_FLASH +#else +#define OB_BOOT_ENTRY_FORCED_NONE OB_BOOT_LOCK_DISABLE +#define OB_BOOT_ENTRY_FORCED_FLASH OB_BOOT_LOCK_ENABLE +#endif +#if defined(STM32H7) +#define FLASH_FLAG_SNECCE_BANK1RR FLASH_FLAG_SNECCERR_BANK1 +#define FLASH_FLAG_DBECCE_BANK1RR FLASH_FLAG_DBECCERR_BANK1 +#define FLASH_FLAG_STRBER_BANK1R FLASH_FLAG_STRBERR_BANK1 +#define FLASH_FLAG_SNECCE_BANK2RR FLASH_FLAG_SNECCERR_BANK2 +#define FLASH_FLAG_DBECCE_BANK2RR FLASH_FLAG_DBECCERR_BANK2 +#define FLASH_FLAG_STRBER_BANK2R FLASH_FLAG_STRBERR_BANK2 +#define FLASH_FLAG_WDW FLASH_FLAG_WBNE +#define OB_WRP_SECTOR_All OB_WRP_SECTOR_ALL +#endif /* STM32H7 */ +#if defined(STM32H7RS) +#define FLASH_OPTKEY1 FLASH_OPT_KEY1 +#define FLASH_OPTKEY2 FLASH_OPT_KEY2 +#endif /* STM32H7RS */ +#if defined(STM32U5) +#define OB_USER_nRST_STOP OB_USER_NRST_STOP +#define OB_USER_nRST_STDBY OB_USER_NRST_STDBY +#define OB_USER_nRST_SHDW OB_USER_NRST_SHDW +#define OB_USER_nSWBOOT0 OB_USER_NSWBOOT0 +#define OB_USER_nBOOT0 OB_USER_NBOOT0 +#define OB_nBOOT0_RESET OB_NBOOT0_RESET +#define OB_nBOOT0_SET OB_NBOOT0_SET +#define OB_USER_SRAM134_RST OB_USER_SRAM_RST +#define OB_SRAM134_RST_ERASE OB_SRAM_RST_ERASE +#define OB_SRAM134_RST_NOT_ERASE OB_SRAM_RST_NOT_ERASE +#endif /* STM32U5 */ +#if defined(STM32U0) +#define OB_USER_nRST_STOP OB_USER_NRST_STOP +#define OB_USER_nRST_STDBY OB_USER_NRST_STDBY +#define OB_USER_nRST_SHDW OB_USER_NRST_SHDW +#define OB_USER_nBOOT_SEL OB_USER_NBOOT_SEL +#define OB_USER_nBOOT0 OB_USER_NBOOT0 +#define OB_USER_nBOOT1 OB_USER_NBOOT1 +#define OB_nBOOT0_RESET OB_NBOOT0_RESET +#define OB_nBOOT0_SET OB_NBOOT0_SET +#endif /* STM32U0 */ + +/** + * @} + */ + +/** @defgroup HAL_JPEG_Aliased_Macros HAL JPEG Aliased Macros maintained for legacy purpose + * @{ + */ + +#if defined(STM32H7) +#define __HAL_RCC_JPEG_CLK_ENABLE __HAL_RCC_JPGDECEN_CLK_ENABLE +#define __HAL_RCC_JPEG_CLK_DISABLE __HAL_RCC_JPGDECEN_CLK_DISABLE +#define __HAL_RCC_JPEG_FORCE_RESET __HAL_RCC_JPGDECRST_FORCE_RESET +#define __HAL_RCC_JPEG_RELEASE_RESET __HAL_RCC_JPGDECRST_RELEASE_RESET +#define __HAL_RCC_JPEG_CLK_SLEEP_ENABLE __HAL_RCC_JPGDEC_CLK_SLEEP_ENABLE +#define __HAL_RCC_JPEG_CLK_SLEEP_DISABLE __HAL_RCC_JPGDEC_CLK_SLEEP_DISABLE +#endif /* STM32H7 */ + +/** + * @} + */ + +/** @defgroup HAL_SYSCFG_Aliased_Defines HAL SYSCFG Aliased Defines maintained for legacy purpose + * @{ + */ + +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PA9 I2C_FASTMODEPLUS_PA9 +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PA10 I2C_FASTMODEPLUS_PA10 +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PB6 I2C_FASTMODEPLUS_PB6 +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PB7 I2C_FASTMODEPLUS_PB7 +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PB8 I2C_FASTMODEPLUS_PB8 +#define HAL_SYSCFG_FASTMODEPLUS_I2C_PB9 I2C_FASTMODEPLUS_PB9 +#define HAL_SYSCFG_FASTMODEPLUS_I2C1 I2C_FASTMODEPLUS_I2C1 +#define HAL_SYSCFG_FASTMODEPLUS_I2C2 I2C_FASTMODEPLUS_I2C2 +#define HAL_SYSCFG_FASTMODEPLUS_I2C3 I2C_FASTMODEPLUS_I2C3 +#if defined(STM32G4) + +#define HAL_SYSCFG_EnableIOAnalogSwitchBooster HAL_SYSCFG_EnableIOSwitchBooster +#define HAL_SYSCFG_DisableIOAnalogSwitchBooster HAL_SYSCFG_DisableIOSwitchBooster +#define HAL_SYSCFG_EnableIOAnalogSwitchVDD HAL_SYSCFG_EnableIOSwitchVDD +#define HAL_SYSCFG_DisableIOAnalogSwitchVDD HAL_SYSCFG_DisableIOSwitchVDD +#endif /* STM32G4 */ + +#if defined(STM32U5) + +#define HAL_SYSCFG_EnableIOAnalogSwitchBooster HAL_SYSCFG_EnableIOAnalogBooster +#define HAL_SYSCFG_DisableIOAnalogSwitchBooster HAL_SYSCFG_DisableIOAnalogBooster +#define HAL_SYSCFG_EnableIOAnalogSwitchVoltageSelection HAL_SYSCFG_EnableIOAnalogVoltageSelection +#define HAL_SYSCFG_DisableIOAnalogSwitchVoltageSelection HAL_SYSCFG_DisableIOAnalogVoltageSelection + +#endif /* STM32U5 */ + +#if defined(STM32H5) +#define SYSCFG_IT_FPU_IOC SBS_IT_FPU_IOC +#define SYSCFG_IT_FPU_DZC SBS_IT_FPU_DZC +#define SYSCFG_IT_FPU_UFC SBS_IT_FPU_UFC +#define SYSCFG_IT_FPU_OFC SBS_IT_FPU_OFC +#define SYSCFG_IT_FPU_IDC SBS_IT_FPU_IDC +#define SYSCFG_IT_FPU_IXC SBS_IT_FPU_IXC + +#define SYSCFG_BREAK_FLASH_ECC SBS_BREAK_FLASH_ECC +#define SYSCFG_BREAK_PVD SBS_BREAK_PVD +#define SYSCFG_BREAK_SRAM_ECC SBS_BREAK_SRAM_ECC +#define SYSCFG_BREAK_LOCKUP SBS_BREAK_LOCKUP + +#define SYSCFG_VREFBUF_VOLTAGE_SCALE0 VREFBUF_VOLTAGE_SCALE0 +#define SYSCFG_VREFBUF_VOLTAGE_SCALE1 VREFBUF_VOLTAGE_SCALE1 +#define SYSCFG_VREFBUF_VOLTAGE_SCALE2 VREFBUF_VOLTAGE_SCALE2 +#define SYSCFG_VREFBUF_VOLTAGE_SCALE3 VREFBUF_VOLTAGE_SCALE3 + +#define SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE VREFBUF_HIGH_IMPEDANCE_DISABLE +#define SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE VREFBUF_HIGH_IMPEDANCE_ENABLE + +#define SYSCFG_FASTMODEPLUS_PB6 SBS_FASTMODEPLUS_PB6 +#define SYSCFG_FASTMODEPLUS_PB7 SBS_FASTMODEPLUS_PB7 +#define SYSCFG_FASTMODEPLUS_PB8 SBS_FASTMODEPLUS_PB8 +#define SYSCFG_FASTMODEPLUS_PB9 SBS_FASTMODEPLUS_PB9 + +#define SYSCFG_ETH_MII SBS_ETH_MII +#define SYSCFG_ETH_RMII SBS_ETH_RMII +#define IS_SYSCFG_ETHERNET_CONFIG IS_SBS_ETHERNET_CONFIG + +#define SYSCFG_MEMORIES_ERASE_FLAG_IPMEE SBS_MEMORIES_ERASE_FLAG_IPMEE +#define SYSCFG_MEMORIES_ERASE_FLAG_MCLR SBS_MEMORIES_ERASE_FLAG_MCLR +#define IS_SYSCFG_MEMORIES_ERASE_FLAG IS_SBS_MEMORIES_ERASE_FLAG + +#define IS_SYSCFG_CODE_CONFIG IS_SBS_CODE_CONFIG + +#define SYSCFG_MPU_NSEC SBS_MPU_NSEC +#define SYSCFG_VTOR_NSEC SBS_VTOR_NSEC +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +#define SYSCFG_SAU SBS_SAU +#define SYSCFG_MPU_SEC SBS_MPU_SEC +#define SYSCFG_VTOR_AIRCR_SEC SBS_VTOR_AIRCR_SEC +#define SYSCFG_LOCK_ALL SBS_LOCK_ALL +#else +#define SYSCFG_LOCK_ALL SBS_LOCK_ALL +#endif /* __ARM_FEATURE_CMSE */ + +#define SYSCFG_CLK SBS_CLK +#define SYSCFG_CLASSB SBS_CLASSB +#define SYSCFG_FPU SBS_FPU +#define SYSCFG_ALL SBS_ALL + +#define SYSCFG_SEC SBS_SEC +#define SYSCFG_NSEC SBS_NSEC + +#define __HAL_SYSCFG_FPU_INTERRUPT_ENABLE __HAL_SBS_FPU_INTERRUPT_ENABLE +#define __HAL_SYSCFG_FPU_INTERRUPT_DISABLE __HAL_SBS_FPU_INTERRUPT_DISABLE + +#define __HAL_SYSCFG_BREAK_ECC_LOCK __HAL_SBS_BREAK_ECC_LOCK +#define __HAL_SYSCFG_BREAK_LOCKUP_LOCK __HAL_SBS_BREAK_LOCKUP_LOCK +#define __HAL_SYSCFG_BREAK_PVD_LOCK __HAL_SBS_BREAK_PVD_LOCK +#define __HAL_SYSCFG_BREAK_SRAM_ECC_LOCK __HAL_SBS_BREAK_SRAM_ECC_LOCK + +#define __HAL_SYSCFG_FASTMODEPLUS_ENABLE __HAL_SBS_FASTMODEPLUS_ENABLE +#define __HAL_SYSCFG_FASTMODEPLUS_DISABLE __HAL_SBS_FASTMODEPLUS_DISABLE + +#define __HAL_SYSCFG_GET_MEMORIES_ERASE_STATUS __HAL_SBS_GET_MEMORIES_ERASE_STATUS +#define __HAL_SYSCFG_CLEAR_MEMORIES_ERASE_STATUS __HAL_SBS_CLEAR_MEMORIES_ERASE_STATUS + +#define IS_SYSCFG_FPU_INTERRUPT IS_SBS_FPU_INTERRUPT +#define IS_SYSCFG_BREAK_CONFIG IS_SBS_BREAK_CONFIG +#define IS_SYSCFG_VREFBUF_VOLTAGE_SCALE IS_VREFBUF_VOLTAGE_SCALE +#define IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE IS_VREFBUF_HIGH_IMPEDANCE +#define IS_SYSCFG_VREFBUF_TRIMMING IS_VREFBUF_TRIMMING +#define IS_SYSCFG_FASTMODEPLUS IS_SBS_FASTMODEPLUS +#define IS_SYSCFG_ITEMS_ATTRIBUTES IS_SBS_ITEMS_ATTRIBUTES +#define IS_SYSCFG_ATTRIBUTES IS_SBS_ATTRIBUTES +#define IS_SYSCFG_LOCK_ITEMS IS_SBS_LOCK_ITEMS + +#define HAL_SYSCFG_VREFBUF_VoltageScalingConfig HAL_VREFBUF_VoltageScalingConfig +#define HAL_SYSCFG_VREFBUF_HighImpedanceConfig HAL_VREFBUF_HighImpedanceConfig +#define HAL_SYSCFG_VREFBUF_TrimmingConfig HAL_VREFBUF_TrimmingConfig +#define HAL_SYSCFG_EnableVREFBUF HAL_EnableVREFBUF +#define HAL_SYSCFG_DisableVREFBUF HAL_DisableVREFBUF + +#define HAL_SYSCFG_EnableIOAnalogSwitchBooster HAL_SBS_EnableIOAnalogSwitchBooster +#define HAL_SYSCFG_DisableIOAnalogSwitchBooster HAL_SBS_DisableIOAnalogSwitchBooster +#define HAL_SYSCFG_ETHInterfaceSelect HAL_SBS_ETHInterfaceSelect + +#define HAL_SYSCFG_Lock HAL_SBS_Lock +#define HAL_SYSCFG_GetLock HAL_SBS_GetLock + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +#define HAL_SYSCFG_ConfigAttributes HAL_SBS_ConfigAttributes +#define HAL_SYSCFG_GetConfigAttributes HAL_SBS_GetConfigAttributes +#endif /* __ARM_FEATURE_CMSE */ + +#endif /* STM32H5 */ + + +/** + * @} + */ + + +/** @defgroup LL_FMC_Aliased_Defines LL FMC Aliased Defines maintained for compatibility purpose + * @{ + */ +#if defined(STM32L4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4) +#define FMC_NAND_PCC_WAIT_FEATURE_DISABLE FMC_NAND_WAIT_FEATURE_DISABLE +#define FMC_NAND_PCC_WAIT_FEATURE_ENABLE FMC_NAND_WAIT_FEATURE_ENABLE +#define FMC_NAND_PCC_MEM_BUS_WIDTH_8 FMC_NAND_MEM_BUS_WIDTH_8 +#define FMC_NAND_PCC_MEM_BUS_WIDTH_16 FMC_NAND_MEM_BUS_WIDTH_16 +#elif defined(STM32F1) || defined(STM32F2) || defined(STM32F3) || defined(STM32F4) +#define FMC_NAND_WAIT_FEATURE_DISABLE FMC_NAND_PCC_WAIT_FEATURE_DISABLE +#define FMC_NAND_WAIT_FEATURE_ENABLE FMC_NAND_PCC_WAIT_FEATURE_ENABLE +#define FMC_NAND_MEM_BUS_WIDTH_8 FMC_NAND_PCC_MEM_BUS_WIDTH_8 +#define FMC_NAND_MEM_BUS_WIDTH_16 FMC_NAND_PCC_MEM_BUS_WIDTH_16 +#endif +/** + * @} + */ + +/** @defgroup LL_FSMC_Aliased_Defines LL FSMC Aliased Defines maintained for legacy purpose + * @{ + */ + +#define FSMC_NORSRAM_TYPEDEF FSMC_NORSRAM_TypeDef +#define FSMC_NORSRAM_EXTENDED_TYPEDEF FSMC_NORSRAM_EXTENDED_TypeDef +/** + * @} + */ + +/** @defgroup HAL_GPIO_Aliased_Macros HAL GPIO Aliased Macros maintained for legacy purpose + * @{ + */ +#define GET_GPIO_SOURCE GPIO_GET_INDEX +#define GET_GPIO_INDEX GPIO_GET_INDEX + +#if defined(STM32F4) +#define GPIO_AF12_SDMMC GPIO_AF12_SDIO +#define GPIO_AF12_SDMMC1 GPIO_AF12_SDIO +#endif + +#if defined(STM32F7) +#define GPIO_AF12_SDIO GPIO_AF12_SDMMC1 +#define GPIO_AF12_SDMMC GPIO_AF12_SDMMC1 +#endif + +#if defined(STM32L4) +#define GPIO_AF12_SDIO GPIO_AF12_SDMMC1 +#define GPIO_AF12_SDMMC GPIO_AF12_SDMMC1 +#endif + +#if defined(STM32H7) +#define GPIO_AF7_SDIO1 GPIO_AF7_SDMMC1 +#define GPIO_AF8_SDIO1 GPIO_AF8_SDMMC1 +#define GPIO_AF12_SDIO1 GPIO_AF12_SDMMC1 +#define GPIO_AF9_SDIO2 GPIO_AF9_SDMMC2 +#define GPIO_AF10_SDIO2 GPIO_AF10_SDMMC2 +#define GPIO_AF11_SDIO2 GPIO_AF11_SDMMC2 + +#if defined (STM32H743xx) || defined (STM32H753xx) || defined (STM32H750xx) || defined (STM32H742xx) || \ + defined (STM32H745xx) || defined (STM32H755xx) || defined (STM32H747xx) || defined (STM32H757xx) +#define GPIO_AF10_OTG2_HS GPIO_AF10_OTG2_FS +#define GPIO_AF10_OTG1_FS GPIO_AF10_OTG1_HS +#define GPIO_AF12_OTG2_FS GPIO_AF12_OTG1_FS +#endif /*STM32H743xx || STM32H753xx || STM32H750xx || STM32H742xx || STM32H745xx || STM32H755xx || STM32H747xx || \ + STM32H757xx */ +#endif /* STM32H7 */ + +#define GPIO_AF0_LPTIM GPIO_AF0_LPTIM1 +#define GPIO_AF1_LPTIM GPIO_AF1_LPTIM1 +#define GPIO_AF2_LPTIM GPIO_AF2_LPTIM1 + +#if defined(STM32L0) || defined(STM32L4) || defined(STM32F4) || defined(STM32F2) || defined(STM32F7) || \ + defined(STM32G4) || defined(STM32H7) || defined(STM32WB) || defined(STM32U5) +#define GPIO_SPEED_LOW GPIO_SPEED_FREQ_LOW +#define GPIO_SPEED_MEDIUM GPIO_SPEED_FREQ_MEDIUM +#define GPIO_SPEED_FAST GPIO_SPEED_FREQ_HIGH +#define GPIO_SPEED_HIGH GPIO_SPEED_FREQ_VERY_HIGH +#endif /* STM32L0 || STM32L4 || STM32F4 || STM32F2 || STM32F7 || STM32G4 || STM32H7 || STM32WB || STM32U5*/ + +#if defined(STM32L1) +#define GPIO_SPEED_VERY_LOW GPIO_SPEED_FREQ_LOW +#define GPIO_SPEED_LOW GPIO_SPEED_FREQ_MEDIUM +#define GPIO_SPEED_MEDIUM GPIO_SPEED_FREQ_HIGH +#define GPIO_SPEED_HIGH GPIO_SPEED_FREQ_VERY_HIGH +#endif /* STM32L1 */ + +#if defined(STM32F0) || defined(STM32F3) || defined(STM32F1) +#define GPIO_SPEED_LOW GPIO_SPEED_FREQ_LOW +#define GPIO_SPEED_MEDIUM GPIO_SPEED_FREQ_MEDIUM +#define GPIO_SPEED_HIGH GPIO_SPEED_FREQ_HIGH +#endif /* STM32F0 || STM32F3 || STM32F1 */ + +#define GPIO_AF6_DFSDM GPIO_AF6_DFSDM1 + +#if defined(STM32U5) || defined(STM32H5) +#define GPIO_AF0_RTC_50Hz GPIO_AF0_RTC_50HZ +#endif /* STM32U5 || STM32H5 */ +#if defined(STM32U5) +#define GPIO_AF0_S2DSTOP GPIO_AF0_SRDSTOP +#define GPIO_AF11_LPGPIO GPIO_AF11_LPGPIO1 +#endif /* STM32U5 */ + +#if defined(STM32WBA) +#define GPIO_AF11_RF_ANTSW0 GPIO_AF11_RF +#define GPIO_AF11_RF_ANTSW1 GPIO_AF11_RF +#define GPIO_AF11_RF_ANTSW2 GPIO_AF11_RF +#define GPIO_AF11_RF_IO1 GPIO_AF11_RF +#define GPIO_AF11_RF_IO2 GPIO_AF11_RF +#define GPIO_AF11_RF_IO3 GPIO_AF11_RF +#define GPIO_AF11_RF_IO4 GPIO_AF11_RF +#define GPIO_AF11_RF_IO5 GPIO_AF11_RF +#define GPIO_AF11_RF_IO6 GPIO_AF11_RF +#define GPIO_AF11_RF_IO7 GPIO_AF11_RF +#define GPIO_AF11_RF_IO8 GPIO_AF11_RF +#define GPIO_AF11_RF_IO9 GPIO_AF11_RF +#endif /* STM32WBA */ +/** + * @} + */ + +/** @defgroup HAL_GTZC_Aliased_Defines HAL GTZC Aliased Defines maintained for legacy purpose + * @{ + */ +#if defined(STM32U5) +#define GTZC_PERIPH_DCMI GTZC_PERIPH_DCMI_PSSI +#define GTZC_PERIPH_LTDC GTZC_PERIPH_LTDCUSB +#endif /* STM32U5 */ +#if defined(STM32H5) +#define GTZC_PERIPH_DAC12 GTZC_PERIPH_DAC1 +#define GTZC_PERIPH_ADC12 GTZC_PERIPH_ADC +#define GTZC_PERIPH_USBFS GTZC_PERIPH_USB +#endif /* STM32H5 */ +#if defined(STM32H5) || defined(STM32U5) +#define GTZC_MCPBB_NB_VCTR_REG_MAX GTZC_MPCBB_NB_VCTR_REG_MAX +#define GTZC_MCPBB_NB_LCK_VCTR_REG_MAX GTZC_MPCBB_NB_LCK_VCTR_REG_MAX +#define GTZC_MCPBB_SUPERBLOCK_UNLOCKED GTZC_MPCBB_SUPERBLOCK_UNLOCKED +#define GTZC_MCPBB_SUPERBLOCK_LOCKED GTZC_MPCBB_SUPERBLOCK_LOCKED +#define GTZC_MCPBB_BLOCK_NSEC GTZC_MPCBB_BLOCK_NSEC +#define GTZC_MCPBB_BLOCK_SEC GTZC_MPCBB_BLOCK_SEC +#define GTZC_MCPBB_BLOCK_NPRIV GTZC_MPCBB_BLOCK_NPRIV +#define GTZC_MCPBB_BLOCK_PRIV GTZC_MPCBB_BLOCK_PRIV +#define GTZC_MCPBB_LOCK_OFF GTZC_MPCBB_LOCK_OFF +#define GTZC_MCPBB_LOCK_ON GTZC_MPCBB_LOCK_ON +#endif /* STM32H5 || STM32U5 */ +/** + * @} + */ + +/** @defgroup HAL_HRTIM_Aliased_Macros HAL HRTIM Aliased Macros maintained for legacy purpose + * @{ + */ +#define HRTIM_TIMDELAYEDPROTECTION_DISABLED HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDOUT1_EEV68 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_EEV6 +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDOUT2_EEV68 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_EEV6 +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDBOTH_EEV68 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV6 +#define HRTIM_TIMDELAYEDPROTECTION_BALANCED_EEV68 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV6 +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDOUT1_DEEV79 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_DEEV7 +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDOUT2_DEEV79 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_DEEV7 +#define HRTIM_TIMDELAYEDPROTECTION_DELAYEDBOTH_EEV79 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV7 +#define HRTIM_TIMDELAYEDPROTECTION_BALANCED_EEV79 HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV7 + +#define __HAL_HRTIM_SetCounter __HAL_HRTIM_SETCOUNTER +#define __HAL_HRTIM_GetCounter __HAL_HRTIM_GETCOUNTER +#define __HAL_HRTIM_SetPeriod __HAL_HRTIM_SETPERIOD +#define __HAL_HRTIM_GetPeriod __HAL_HRTIM_GETPERIOD +#define __HAL_HRTIM_SetClockPrescaler __HAL_HRTIM_SETCLOCKPRESCALER +#define __HAL_HRTIM_GetClockPrescaler __HAL_HRTIM_GETCLOCKPRESCALER +#define __HAL_HRTIM_SetCompare __HAL_HRTIM_SETCOMPARE +#define __HAL_HRTIM_GetCompare __HAL_HRTIM_GETCOMPARE + +#if defined(STM32F3) || defined(STM32G4) || defined(STM32H7) +#define HRTIMInterruptResquests HRTIMInterruptRequests +#endif /* STM32F3 || STM32G4 || STM32H7 */ + +#if defined(STM32G4) +#define HAL_HRTIM_ExternalEventCounterConfig HAL_HRTIM_ExtEventCounterConfig +#define HAL_HRTIM_ExternalEventCounterEnable HAL_HRTIM_ExtEventCounterEnable +#define HAL_HRTIM_ExternalEventCounterDisable HAL_HRTIM_ExtEventCounterDisable +#define HAL_HRTIM_ExternalEventCounterReset HAL_HRTIM_ExtEventCounterReset +#define HRTIM_TIMEEVENT_A HRTIM_EVENTCOUNTER_A +#define HRTIM_TIMEEVENT_B HRTIM_EVENTCOUNTER_B +#define HRTIM_TIMEEVENTRESETMODE_UNCONDITIONAL HRTIM_EVENTCOUNTER_RSTMODE_UNCONDITIONAL +#define HRTIM_TIMEEVENTRESETMODE_CONDITIONAL HRTIM_EVENTCOUNTER_RSTMODE_CONDITIONAL +#endif /* STM32G4 */ + +#if defined(STM32H7) +#define HRTIM_OUTPUTSET_TIMAEV1_TIMBCMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMAEV2_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMAEV3_TIMCCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMAEV4_TIMCCMP3 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMAEV5_TIMDCMP1 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMAEV6_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMAEV7_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMAEV8_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMAEV9_TIMFCMP4 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTSET_TIMBEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMBEV2_TIMACMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMBEV3_TIMCCMP3 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMBEV4_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMBEV5_TIMDCMP3 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMBEV6_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMBEV7_TIMECMP1 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMBEV8_TIMECMP2 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMBEV9_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTSET_TIMCEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMCEV2_TIMACMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMCEV3_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMCEV4_TIMBCMP3 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMCEV5_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMCEV6_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMCEV7_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMCEV8_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMCEV9_TIMFCMP2 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTSET_TIMDEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMDEV2_TIMACMP4 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMDEV3_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMDEV4_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMDEV5_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMDEV6_TIMECMP1 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMDEV7_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMDEV8_TIMFCMP1 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMDEV9_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTSET_TIMEEV1_TIMACMP4 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMEEV2_TIMBCMP3 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMEEV3_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMEEV4_TIMCCMP1 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMEEV5_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMEEV6_TIMDCMP1 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMEEV7_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMEEV8_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMEEV9_TIMFCMP4 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTSET_TIMFEV1_TIMACMP3 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTSET_TIMFEV2_TIMBCMP1 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTSET_TIMFEV3_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTSET_TIMFEV4_TIMCCMP1 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTSET_TIMFEV5_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTSET_TIMFEV6_TIMDCMP3 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTSET_TIMFEV7_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTSET_TIMFEV8_TIMECMP2 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTSET_TIMFEV9_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_9 + +#define HRTIM_OUTPUTRESET_TIMAEV1_TIMBCMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMAEV2_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMAEV3_TIMCCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMAEV4_TIMCCMP3 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMAEV5_TIMDCMP1 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMAEV6_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMAEV7_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMAEV8_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMAEV9_TIMFCMP4 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTRESET_TIMBEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMBEV2_TIMACMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMBEV3_TIMCCMP3 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMBEV4_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMBEV5_TIMDCMP3 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMBEV6_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMBEV7_TIMECMP1 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMBEV8_TIMECMP2 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMBEV9_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTRESET_TIMCEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMCEV2_TIMACMP2 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMCEV3_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMCEV4_TIMBCMP3 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMCEV5_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMCEV6_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMCEV7_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMCEV8_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMCEV9_TIMFCMP2 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTRESET_TIMDEV1_TIMACMP1 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMDEV2_TIMACMP4 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMDEV3_TIMBCMP2 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMDEV4_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMDEV5_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMDEV6_TIMECMP1 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMDEV7_TIMECMP4 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMDEV8_TIMFCMP1 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMDEV9_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTRESET_TIMEEV1_TIMACMP4 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMEEV2_TIMBCMP3 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMEEV3_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMEEV4_TIMCCMP1 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMEEV5_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMEEV6_TIMDCMP1 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMEEV7_TIMDCMP2 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMEEV8_TIMFCMP3 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMEEV9_TIMFCMP4 HRTIM_OUTPUTSET_TIMEV_9 +#define HRTIM_OUTPUTRESET_TIMFEV1_TIMACMP3 HRTIM_OUTPUTSET_TIMEV_1 +#define HRTIM_OUTPUTRESET_TIMFEV2_TIMBCMP1 HRTIM_OUTPUTSET_TIMEV_2 +#define HRTIM_OUTPUTRESET_TIMFEV3_TIMBCMP4 HRTIM_OUTPUTSET_TIMEV_3 +#define HRTIM_OUTPUTRESET_TIMFEV4_TIMCCMP1 HRTIM_OUTPUTSET_TIMEV_4 +#define HRTIM_OUTPUTRESET_TIMFEV5_TIMCCMP4 HRTIM_OUTPUTSET_TIMEV_5 +#define HRTIM_OUTPUTRESET_TIMFEV6_TIMDCMP3 HRTIM_OUTPUTSET_TIMEV_6 +#define HRTIM_OUTPUTRESET_TIMFEV7_TIMDCMP4 HRTIM_OUTPUTSET_TIMEV_7 +#define HRTIM_OUTPUTRESET_TIMFEV8_TIMECMP2 HRTIM_OUTPUTSET_TIMEV_8 +#define HRTIM_OUTPUTRESET_TIMFEV9_TIMECMP3 HRTIM_OUTPUTSET_TIMEV_9 +#endif /* STM32H7 */ + +#if defined(STM32F3) +/** @brief Constants defining available sources associated to external events. + */ +#define HRTIM_EVENTSRC_1 (0x00000000U) +#define HRTIM_EVENTSRC_2 (HRTIM_EECR1_EE1SRC_0) +#define HRTIM_EVENTSRC_3 (HRTIM_EECR1_EE1SRC_1) +#define HRTIM_EVENTSRC_4 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) + +/** @brief Constants defining the DLL calibration periods (in micro seconds) + */ +#define HRTIM_CALIBRATIONRATE_7300 0x00000000U +#define HRTIM_CALIBRATIONRATE_910 (HRTIM_DLLCR_CALRTE_0) +#define HRTIM_CALIBRATIONRATE_114 (HRTIM_DLLCR_CALRTE_1) +#define HRTIM_CALIBRATIONRATE_14 (HRTIM_DLLCR_CALRTE_1 | HRTIM_DLLCR_CALRTE_0) +#endif /* STM32F3 */ + +/** + * @} + */ + +/** @defgroup HAL_I2C_Aliased_Defines HAL I2C Aliased Defines maintained for legacy purpose + * @{ + */ +#define I2C_DUALADDRESS_DISABLED I2C_DUALADDRESS_DISABLE +#define I2C_DUALADDRESS_ENABLED I2C_DUALADDRESS_ENABLE +#define I2C_GENERALCALL_DISABLED I2C_GENERALCALL_DISABLE +#define I2C_GENERALCALL_ENABLED I2C_GENERALCALL_ENABLE +#define I2C_NOSTRETCH_DISABLED I2C_NOSTRETCH_DISABLE +#define I2C_NOSTRETCH_ENABLED I2C_NOSTRETCH_ENABLE +#define I2C_ANALOGFILTER_ENABLED I2C_ANALOGFILTER_ENABLE +#define I2C_ANALOGFILTER_DISABLED I2C_ANALOGFILTER_DISABLE +#if defined(STM32F0) || defined(STM32F1) || defined(STM32F3) || defined(STM32G0) || defined(STM32L4) || \ + defined(STM32L1) || defined(STM32F7) +#define HAL_I2C_STATE_MEM_BUSY_TX HAL_I2C_STATE_BUSY_TX +#define HAL_I2C_STATE_MEM_BUSY_RX HAL_I2C_STATE_BUSY_RX +#define HAL_I2C_STATE_MASTER_BUSY_TX HAL_I2C_STATE_BUSY_TX +#define HAL_I2C_STATE_MASTER_BUSY_RX HAL_I2C_STATE_BUSY_RX +#define HAL_I2C_STATE_SLAVE_BUSY_TX HAL_I2C_STATE_BUSY_TX +#define HAL_I2C_STATE_SLAVE_BUSY_RX HAL_I2C_STATE_BUSY_RX +#endif +/** + * @} + */ + +/** @defgroup HAL_IRDA_Aliased_Defines HAL IRDA Aliased Defines maintained for legacy purpose + * @{ + */ +#define IRDA_ONE_BIT_SAMPLE_DISABLED IRDA_ONE_BIT_SAMPLE_DISABLE +#define IRDA_ONE_BIT_SAMPLE_ENABLED IRDA_ONE_BIT_SAMPLE_ENABLE + +/** + * @} + */ + +/** @defgroup HAL_IWDG_Aliased_Defines HAL IWDG Aliased Defines maintained for legacy purpose + * @{ + */ +#define KR_KEY_RELOAD IWDG_KEY_RELOAD +#define KR_KEY_ENABLE IWDG_KEY_ENABLE +#define KR_KEY_EWA IWDG_KEY_WRITE_ACCESS_ENABLE +#define KR_KEY_DWA IWDG_KEY_WRITE_ACCESS_DISABLE +/** + * @} + */ + +/** @defgroup HAL_LPTIM_Aliased_Defines HAL LPTIM Aliased Defines maintained for legacy purpose + * @{ + */ + +#define LPTIM_CLOCKSAMPLETIME_DIRECTTRANSISTION LPTIM_CLOCKSAMPLETIME_DIRECTTRANSITION +#define LPTIM_CLOCKSAMPLETIME_2TRANSISTIONS LPTIM_CLOCKSAMPLETIME_2TRANSITIONS +#define LPTIM_CLOCKSAMPLETIME_4TRANSISTIONS LPTIM_CLOCKSAMPLETIME_4TRANSITIONS +#define LPTIM_CLOCKSAMPLETIME_8TRANSISTIONS LPTIM_CLOCKSAMPLETIME_8TRANSITIONS + +#define LPTIM_CLOCKPOLARITY_RISINGEDGE LPTIM_CLOCKPOLARITY_RISING +#define LPTIM_CLOCKPOLARITY_FALLINGEDGE LPTIM_CLOCKPOLARITY_FALLING +#define LPTIM_CLOCKPOLARITY_BOTHEDGES LPTIM_CLOCKPOLARITY_RISING_FALLING + +#define LPTIM_TRIGSAMPLETIME_DIRECTTRANSISTION LPTIM_TRIGSAMPLETIME_DIRECTTRANSITION +#define LPTIM_TRIGSAMPLETIME_2TRANSISTIONS LPTIM_TRIGSAMPLETIME_2TRANSITIONS +#define LPTIM_TRIGSAMPLETIME_4TRANSISTIONS LPTIM_TRIGSAMPLETIME_4TRANSITIONS +#define LPTIM_TRIGSAMPLETIME_8TRANSISTIONS LPTIM_TRIGSAMPLETIME_8TRANSITIONS + +/* The following 3 definition have also been present in a temporary version of lptim.h */ +/* They need to be renamed also to the right name, just in case */ +#define LPTIM_TRIGSAMPLETIME_2TRANSITION LPTIM_TRIGSAMPLETIME_2TRANSITIONS +#define LPTIM_TRIGSAMPLETIME_4TRANSITION LPTIM_TRIGSAMPLETIME_4TRANSITIONS +#define LPTIM_TRIGSAMPLETIME_8TRANSITION LPTIM_TRIGSAMPLETIME_8TRANSITIONS + + +/** @defgroup HAL_LPTIM_Aliased_Defines HAL LPTIM Aliased Defines maintained for legacy purpose + * @{ + */ +#define HAL_LPTIM_ReadCompare HAL_LPTIM_ReadCapturedValue +/** + * @} + */ + +#if defined(STM32U5) +#define LPTIM_ISR_CC1 LPTIM_ISR_CC1IF +#define LPTIM_ISR_CC2 LPTIM_ISR_CC2IF +#define LPTIM_CHANNEL_ALL 0x00000000U +#endif /* STM32U5 */ +/** + * @} + */ + +/** @defgroup HAL_NAND_Aliased_Defines HAL NAND Aliased Defines maintained for legacy purpose + * @{ + */ +#define HAL_NAND_Read_Page HAL_NAND_Read_Page_8b +#define HAL_NAND_Write_Page HAL_NAND_Write_Page_8b +#define HAL_NAND_Read_SpareArea HAL_NAND_Read_SpareArea_8b +#define HAL_NAND_Write_SpareArea HAL_NAND_Write_SpareArea_8b + +#define NAND_AddressTypedef NAND_AddressTypeDef + +#define __ARRAY_ADDRESS ARRAY_ADDRESS +#define __ADDR_1st_CYCLE ADDR_1ST_CYCLE +#define __ADDR_2nd_CYCLE ADDR_2ND_CYCLE +#define __ADDR_3rd_CYCLE ADDR_3RD_CYCLE +#define __ADDR_4th_CYCLE ADDR_4TH_CYCLE +/** + * @} + */ + +/** @defgroup HAL_NOR_Aliased_Defines HAL NOR Aliased Defines maintained for legacy purpose + * @{ + */ +#define NOR_StatusTypedef HAL_NOR_StatusTypeDef +#define NOR_SUCCESS HAL_NOR_STATUS_SUCCESS +#define NOR_ONGOING HAL_NOR_STATUS_ONGOING +#define NOR_ERROR HAL_NOR_STATUS_ERROR +#define NOR_TIMEOUT HAL_NOR_STATUS_TIMEOUT + +#define __NOR_WRITE NOR_WRITE +#define __NOR_ADDR_SHIFT NOR_ADDR_SHIFT +/** + * @} + */ + +/** @defgroup HAL_OPAMP_Aliased_Defines HAL OPAMP Aliased Defines maintained for legacy purpose + * @{ + */ + +#define OPAMP_NONINVERTINGINPUT_VP0 OPAMP_NONINVERTINGINPUT_IO0 +#define OPAMP_NONINVERTINGINPUT_VP1 OPAMP_NONINVERTINGINPUT_IO1 +#define OPAMP_NONINVERTINGINPUT_VP2 OPAMP_NONINVERTINGINPUT_IO2 +#define OPAMP_NONINVERTINGINPUT_VP3 OPAMP_NONINVERTINGINPUT_IO3 + +#define OPAMP_SEC_NONINVERTINGINPUT_VP0 OPAMP_SEC_NONINVERTINGINPUT_IO0 +#define OPAMP_SEC_NONINVERTINGINPUT_VP1 OPAMP_SEC_NONINVERTINGINPUT_IO1 +#define OPAMP_SEC_NONINVERTINGINPUT_VP2 OPAMP_SEC_NONINVERTINGINPUT_IO2 +#define OPAMP_SEC_NONINVERTINGINPUT_VP3 OPAMP_SEC_NONINVERTINGINPUT_IO3 + +#define OPAMP_INVERTINGINPUT_VM0 OPAMP_INVERTINGINPUT_IO0 +#define OPAMP_INVERTINGINPUT_VM1 OPAMP_INVERTINGINPUT_IO1 + +#define IOPAMP_INVERTINGINPUT_VM0 OPAMP_INVERTINGINPUT_IO0 +#define IOPAMP_INVERTINGINPUT_VM1 OPAMP_INVERTINGINPUT_IO1 + +#define OPAMP_SEC_INVERTINGINPUT_VM0 OPAMP_SEC_INVERTINGINPUT_IO0 +#define OPAMP_SEC_INVERTINGINPUT_VM1 OPAMP_SEC_INVERTINGINPUT_IO1 + +#define OPAMP_INVERTINGINPUT_VINM OPAMP_SEC_INVERTINGINPUT_IO1 + +#define OPAMP_PGACONNECT_NO OPAMP_PGA_CONNECT_INVERTINGINPUT_NO +#define OPAMP_PGACONNECT_VM0 OPAMP_PGA_CONNECT_INVERTINGINPUT_IO0 +#define OPAMP_PGACONNECT_VM1 OPAMP_PGA_CONNECT_INVERTINGINPUT_IO1 + +#if defined(STM32L1) || defined(STM32L4) || defined(STM32L5) || defined(STM32H7) || defined(STM32G4) || defined(STM32U5) +#define HAL_OPAMP_MSP_INIT_CB_ID HAL_OPAMP_MSPINIT_CB_ID +#define HAL_OPAMP_MSP_DEINIT_CB_ID HAL_OPAMP_MSPDEINIT_CB_ID +#endif + +#if defined(STM32L4) || defined(STM32L5) +#define OPAMP_POWERMODE_NORMAL OPAMP_POWERMODE_NORMALPOWER +#elif defined(STM32G4) +#define OPAMP_POWERMODE_NORMAL OPAMP_POWERMODE_NORMALSPEED +#endif + +/** + * @} + */ + +/** @defgroup HAL_I2S_Aliased_Defines HAL I2S Aliased Defines maintained for legacy purpose + * @{ + */ +#define I2S_STANDARD_PHILLIPS I2S_STANDARD_PHILIPS + +#if defined(STM32H7) +#define I2S_IT_TXE I2S_IT_TXP +#define I2S_IT_RXNE I2S_IT_RXP + +#define I2S_FLAG_TXE I2S_FLAG_TXP +#define I2S_FLAG_RXNE I2S_FLAG_RXP +#endif + +#if defined(STM32F7) +#define I2S_CLOCK_SYSCLK I2S_CLOCK_PLL +#endif +/** + * @} + */ + +/** @defgroup HAL_PCCARD_Aliased_Defines HAL PCCARD Aliased Defines maintained for legacy purpose + * @{ + */ + +/* Compact Flash-ATA registers description */ +#define CF_DATA ATA_DATA +#define CF_SECTOR_COUNT ATA_SECTOR_COUNT +#define CF_SECTOR_NUMBER ATA_SECTOR_NUMBER +#define CF_CYLINDER_LOW ATA_CYLINDER_LOW +#define CF_CYLINDER_HIGH ATA_CYLINDER_HIGH +#define CF_CARD_HEAD ATA_CARD_HEAD +#define CF_STATUS_CMD ATA_STATUS_CMD +#define CF_STATUS_CMD_ALTERNATE ATA_STATUS_CMD_ALTERNATE +#define CF_COMMON_DATA_AREA ATA_COMMON_DATA_AREA + +/* Compact Flash-ATA commands */ +#define CF_READ_SECTOR_CMD ATA_READ_SECTOR_CMD +#define CF_WRITE_SECTOR_CMD ATA_WRITE_SECTOR_CMD +#define CF_ERASE_SECTOR_CMD ATA_ERASE_SECTOR_CMD +#define CF_IDENTIFY_CMD ATA_IDENTIFY_CMD + +#define PCCARD_StatusTypedef HAL_PCCARD_StatusTypeDef +#define PCCARD_SUCCESS HAL_PCCARD_STATUS_SUCCESS +#define PCCARD_ONGOING HAL_PCCARD_STATUS_ONGOING +#define PCCARD_ERROR HAL_PCCARD_STATUS_ERROR +#define PCCARD_TIMEOUT HAL_PCCARD_STATUS_TIMEOUT +/** + * @} + */ + +/** @defgroup HAL_RTC_Aliased_Defines HAL RTC Aliased Defines maintained for legacy purpose + * @{ + */ + +#define FORMAT_BIN RTC_FORMAT_BIN +#define FORMAT_BCD RTC_FORMAT_BCD + +#define RTC_ALARMSUBSECONDMASK_None RTC_ALARMSUBSECONDMASK_NONE +#define RTC_TAMPERERASEBACKUP_DISABLED RTC_TAMPER_ERASE_BACKUP_DISABLE +#define RTC_TAMPERMASK_FLAG_DISABLED RTC_TAMPERMASK_FLAG_DISABLE +#define RTC_TAMPERMASK_FLAG_ENABLED RTC_TAMPERMASK_FLAG_ENABLE + +#define RTC_MASKTAMPERFLAG_DISABLED RTC_TAMPERMASK_FLAG_DISABLE +#define RTC_MASKTAMPERFLAG_ENABLED RTC_TAMPERMASK_FLAG_ENABLE +#define RTC_TAMPERERASEBACKUP_ENABLED RTC_TAMPER_ERASE_BACKUP_ENABLE +#define RTC_TAMPER1_2_INTERRUPT RTC_ALL_TAMPER_INTERRUPT +#define RTC_TAMPER1_2_3_INTERRUPT RTC_ALL_TAMPER_INTERRUPT + +#define RTC_TIMESTAMPPIN_PC13 RTC_TIMESTAMPPIN_DEFAULT +#define RTC_TIMESTAMPPIN_PA0 RTC_TIMESTAMPPIN_POS1 +#define RTC_TIMESTAMPPIN_PI8 RTC_TIMESTAMPPIN_POS1 +#define RTC_TIMESTAMPPIN_PC1 RTC_TIMESTAMPPIN_POS2 + +#define RTC_OUTPUT_REMAP_PC13 RTC_OUTPUT_REMAP_NONE +#define RTC_OUTPUT_REMAP_PB14 RTC_OUTPUT_REMAP_POS1 +#define RTC_OUTPUT_REMAP_PB2 RTC_OUTPUT_REMAP_POS1 + +#define RTC_TAMPERPIN_PC13 RTC_TAMPERPIN_DEFAULT +#define RTC_TAMPERPIN_PA0 RTC_TAMPERPIN_POS1 +#define RTC_TAMPERPIN_PI8 RTC_TAMPERPIN_POS1 + +#if defined(STM32H5) || defined(STM32H7RS) || defined(STM32N6) +#define TAMP_SECRETDEVICE_ERASE_NONE TAMP_DEVICESECRETS_ERASE_NONE +#define TAMP_SECRETDEVICE_ERASE_BKP_SRAM TAMP_DEVICESECRETS_ERASE_BKPSRAM +#endif /* STM32H5 || STM32H7RS || STM32N6 */ + +#if defined(STM32WBA) +#define TAMP_SECRETDEVICE_ERASE_NONE TAMP_DEVICESECRETS_ERASE_NONE +#define TAMP_SECRETDEVICE_ERASE_SRAM2 TAMP_DEVICESECRETS_ERASE_SRAM2 +#define TAMP_SECRETDEVICE_ERASE_RHUK TAMP_DEVICESECRETS_ERASE_RHUK +#define TAMP_SECRETDEVICE_ERASE_ICACHE TAMP_DEVICESECRETS_ERASE_ICACHE +#define TAMP_SECRETDEVICE_ERASE_SAES_AES_HASH TAMP_DEVICESECRETS_ERASE_SAES_AES_HASH +#define TAMP_SECRETDEVICE_ERASE_PKA_SRAM TAMP_DEVICESECRETS_ERASE_PKA_SRAM +#define TAMP_SECRETDEVICE_ERASE_ALL TAMP_DEVICESECRETS_ERASE_ALL +#endif /* STM32WBA */ + +#if defined(STM32H5) || defined(STM32WBA) || defined(STM32H7RS) || defined(STM32N6) +#define TAMP_SECRETDEVICE_ERASE_DISABLE TAMP_DEVICESECRETS_ERASE_NONE +#define TAMP_SECRETDEVICE_ERASE_ENABLE TAMP_SECRETDEVICE_ERASE_ALL +#endif /* STM32H5 || STM32WBA || STM32H7RS || STM32N6 */ + +#if defined(STM32F7) || defined(STM32WB) +#define RTC_TAMPCR_TAMPXE RTC_TAMPER_ENABLE_BITS_MASK +#define RTC_TAMPCR_TAMPXIE RTC_TAMPER_IT_ENABLE_BITS_MASK +#endif /* STM32F7 || STM32WB */ + +#if defined(STM32H7) +#define RTC_TAMPCR_TAMPXE RTC_TAMPER_X +#define RTC_TAMPCR_TAMPXIE RTC_TAMPER_X_INTERRUPT +#endif /* STM32H7 */ + +#if defined(STM32F7) || defined(STM32H7) || defined(STM32L0) || defined(STM32WB) +#define RTC_TAMPER1_INTERRUPT RTC_IT_TAMP1 +#define RTC_TAMPER2_INTERRUPT RTC_IT_TAMP2 +#define RTC_TAMPER3_INTERRUPT RTC_IT_TAMP3 +#define RTC_ALL_TAMPER_INTERRUPT RTC_IT_TAMP +#endif /* STM32F7 || STM32H7 || STM32L0 || STM32WB */ + +/** + * @} + */ + + +/** @defgroup HAL_SMARTCARD_Aliased_Defines HAL SMARTCARD Aliased Defines maintained for legacy purpose + * @{ + */ +#define SMARTCARD_NACK_ENABLED SMARTCARD_NACK_ENABLE +#define SMARTCARD_NACK_DISABLED SMARTCARD_NACK_DISABLE + +#define SMARTCARD_ONEBIT_SAMPLING_DISABLED SMARTCARD_ONE_BIT_SAMPLE_DISABLE +#define SMARTCARD_ONEBIT_SAMPLING_ENABLED SMARTCARD_ONE_BIT_SAMPLE_ENABLE +#define SMARTCARD_ONEBIT_SAMPLING_DISABLE SMARTCARD_ONE_BIT_SAMPLE_DISABLE +#define SMARTCARD_ONEBIT_SAMPLING_ENABLE SMARTCARD_ONE_BIT_SAMPLE_ENABLE + +#define SMARTCARD_TIMEOUT_DISABLED SMARTCARD_TIMEOUT_DISABLE +#define SMARTCARD_TIMEOUT_ENABLED SMARTCARD_TIMEOUT_ENABLE + +#define SMARTCARD_LASTBIT_DISABLED SMARTCARD_LASTBIT_DISABLE +#define SMARTCARD_LASTBIT_ENABLED SMARTCARD_LASTBIT_ENABLE +/** + * @} + */ + + +/** @defgroup HAL_SMBUS_Aliased_Defines HAL SMBUS Aliased Defines maintained for legacy purpose + * @{ + */ +#define SMBUS_DUALADDRESS_DISABLED SMBUS_DUALADDRESS_DISABLE +#define SMBUS_DUALADDRESS_ENABLED SMBUS_DUALADDRESS_ENABLE +#define SMBUS_GENERALCALL_DISABLED SMBUS_GENERALCALL_DISABLE +#define SMBUS_GENERALCALL_ENABLED SMBUS_GENERALCALL_ENABLE +#define SMBUS_NOSTRETCH_DISABLED SMBUS_NOSTRETCH_DISABLE +#define SMBUS_NOSTRETCH_ENABLED SMBUS_NOSTRETCH_ENABLE +#define SMBUS_ANALOGFILTER_ENABLED SMBUS_ANALOGFILTER_ENABLE +#define SMBUS_ANALOGFILTER_DISABLED SMBUS_ANALOGFILTER_DISABLE +#define SMBUS_PEC_DISABLED SMBUS_PEC_DISABLE +#define SMBUS_PEC_ENABLED SMBUS_PEC_ENABLE +#define HAL_SMBUS_STATE_SLAVE_LISTEN HAL_SMBUS_STATE_LISTEN +/** + * @} + */ + +/** @defgroup HAL_SPI_Aliased_Defines HAL SPI Aliased Defines maintained for legacy purpose + * @{ + */ +#define SPI_TIMODE_DISABLED SPI_TIMODE_DISABLE +#define SPI_TIMODE_ENABLED SPI_TIMODE_ENABLE + +#define SPI_CRCCALCULATION_DISABLED SPI_CRCCALCULATION_DISABLE +#define SPI_CRCCALCULATION_ENABLED SPI_CRCCALCULATION_ENABLE + +#define SPI_NSS_PULSE_DISABLED SPI_NSS_PULSE_DISABLE +#define SPI_NSS_PULSE_ENABLED SPI_NSS_PULSE_ENABLE + +#if defined(STM32H7) + +#define SPI_FLAG_TXE SPI_FLAG_TXP +#define SPI_FLAG_RXNE SPI_FLAG_RXP + +#define SPI_IT_TXE SPI_IT_TXP +#define SPI_IT_RXNE SPI_IT_RXP + +#define SPI_FRLVL_EMPTY SPI_RX_FIFO_0PACKET +#define SPI_FRLVL_QUARTER_FULL SPI_RX_FIFO_1PACKET +#define SPI_FRLVL_HALF_FULL SPI_RX_FIFO_2PACKET +#define SPI_FRLVL_FULL SPI_RX_FIFO_3PACKET + +#endif /* STM32H7 */ + +/** + * @} + */ + +/** @defgroup HAL_TIM_Aliased_Defines HAL TIM Aliased Defines maintained for legacy purpose + * @{ + */ +#define CCER_CCxE_MASK TIM_CCER_CCxE_MASK +#define CCER_CCxNE_MASK TIM_CCER_CCxNE_MASK + +#define TIM_DMABase_CR1 TIM_DMABASE_CR1 +#define TIM_DMABase_CR2 TIM_DMABASE_CR2 +#define TIM_DMABase_SMCR TIM_DMABASE_SMCR +#define TIM_DMABase_DIER TIM_DMABASE_DIER +#define TIM_DMABase_SR TIM_DMABASE_SR +#define TIM_DMABase_EGR TIM_DMABASE_EGR +#define TIM_DMABase_CCMR1 TIM_DMABASE_CCMR1 +#define TIM_DMABase_CCMR2 TIM_DMABASE_CCMR2 +#define TIM_DMABase_CCER TIM_DMABASE_CCER +#define TIM_DMABase_CNT TIM_DMABASE_CNT +#define TIM_DMABase_PSC TIM_DMABASE_PSC +#define TIM_DMABase_ARR TIM_DMABASE_ARR +#define TIM_DMABase_RCR TIM_DMABASE_RCR +#define TIM_DMABase_CCR1 TIM_DMABASE_CCR1 +#define TIM_DMABase_CCR2 TIM_DMABASE_CCR2 +#define TIM_DMABase_CCR3 TIM_DMABASE_CCR3 +#define TIM_DMABase_CCR4 TIM_DMABASE_CCR4 +#define TIM_DMABase_BDTR TIM_DMABASE_BDTR +#define TIM_DMABase_DCR TIM_DMABASE_DCR +#define TIM_DMABase_DMAR TIM_DMABASE_DMAR +#define TIM_DMABase_OR1 TIM_DMABASE_OR1 +#define TIM_DMABase_CCMR3 TIM_DMABASE_CCMR3 +#define TIM_DMABase_CCR5 TIM_DMABASE_CCR5 +#define TIM_DMABase_CCR6 TIM_DMABASE_CCR6 +#define TIM_DMABase_OR2 TIM_DMABASE_OR2 +#define TIM_DMABase_OR3 TIM_DMABASE_OR3 +#define TIM_DMABase_OR TIM_DMABASE_OR + +#define TIM_EventSource_Update TIM_EVENTSOURCE_UPDATE +#define TIM_EventSource_CC1 TIM_EVENTSOURCE_CC1 +#define TIM_EventSource_CC2 TIM_EVENTSOURCE_CC2 +#define TIM_EventSource_CC3 TIM_EVENTSOURCE_CC3 +#define TIM_EventSource_CC4 TIM_EVENTSOURCE_CC4 +#define TIM_EventSource_COM TIM_EVENTSOURCE_COM +#define TIM_EventSource_Trigger TIM_EVENTSOURCE_TRIGGER +#define TIM_EventSource_Break TIM_EVENTSOURCE_BREAK +#define TIM_EventSource_Break2 TIM_EVENTSOURCE_BREAK2 + +#define TIM_DMABurstLength_1Transfer TIM_DMABURSTLENGTH_1TRANSFER +#define TIM_DMABurstLength_2Transfers TIM_DMABURSTLENGTH_2TRANSFERS +#define TIM_DMABurstLength_3Transfers TIM_DMABURSTLENGTH_3TRANSFERS +#define TIM_DMABurstLength_4Transfers TIM_DMABURSTLENGTH_4TRANSFERS +#define TIM_DMABurstLength_5Transfers TIM_DMABURSTLENGTH_5TRANSFERS +#define TIM_DMABurstLength_6Transfers TIM_DMABURSTLENGTH_6TRANSFERS +#define TIM_DMABurstLength_7Transfers TIM_DMABURSTLENGTH_7TRANSFERS +#define TIM_DMABurstLength_8Transfers TIM_DMABURSTLENGTH_8TRANSFERS +#define TIM_DMABurstLength_9Transfers TIM_DMABURSTLENGTH_9TRANSFERS +#define TIM_DMABurstLength_10Transfers TIM_DMABURSTLENGTH_10TRANSFERS +#define TIM_DMABurstLength_11Transfers TIM_DMABURSTLENGTH_11TRANSFERS +#define TIM_DMABurstLength_12Transfers TIM_DMABURSTLENGTH_12TRANSFERS +#define TIM_DMABurstLength_13Transfers TIM_DMABURSTLENGTH_13TRANSFERS +#define TIM_DMABurstLength_14Transfers TIM_DMABURSTLENGTH_14TRANSFERS +#define TIM_DMABurstLength_15Transfers TIM_DMABURSTLENGTH_15TRANSFERS +#define TIM_DMABurstLength_16Transfers TIM_DMABURSTLENGTH_16TRANSFERS +#define TIM_DMABurstLength_17Transfers TIM_DMABURSTLENGTH_17TRANSFERS +#define TIM_DMABurstLength_18Transfers TIM_DMABURSTLENGTH_18TRANSFERS + +#if defined(STM32L0) +#define TIM22_TI1_GPIO1 TIM22_TI1_GPIO +#define TIM22_TI1_GPIO2 TIM22_TI1_GPIO +#endif + +#if defined(STM32F3) +#define IS_TIM_HALL_INTERFACE_INSTANCE IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE +#endif + +#if defined(STM32H7) +#define TIM_TIM1_ETR_COMP1_OUT TIM_TIM1_ETR_COMP1 +#define TIM_TIM1_ETR_COMP2_OUT TIM_TIM1_ETR_COMP2 +#define TIM_TIM8_ETR_COMP1_OUT TIM_TIM8_ETR_COMP1 +#define TIM_TIM8_ETR_COMP2_OUT TIM_TIM8_ETR_COMP2 +#define TIM_TIM2_ETR_COMP1_OUT TIM_TIM2_ETR_COMP1 +#define TIM_TIM2_ETR_COMP2_OUT TIM_TIM2_ETR_COMP2 +#define TIM_TIM3_ETR_COMP1_OUT TIM_TIM3_ETR_COMP1 +#define TIM_TIM1_TI1_COMP1_OUT TIM_TIM1_TI1_COMP1 +#define TIM_TIM8_TI1_COMP2_OUT TIM_TIM8_TI1_COMP2 +#define TIM_TIM2_TI4_COMP1_OUT TIM_TIM2_TI4_COMP1 +#define TIM_TIM2_TI4_COMP2_OUT TIM_TIM2_TI4_COMP2 +#define TIM_TIM2_TI4_COMP1COMP2_OUT TIM_TIM2_TI4_COMP1_COMP2 +#define TIM_TIM3_TI1_COMP1_OUT TIM_TIM3_TI1_COMP1 +#define TIM_TIM3_TI1_COMP2_OUT TIM_TIM3_TI1_COMP2 +#define TIM_TIM3_TI1_COMP1COMP2_OUT TIM_TIM3_TI1_COMP1_COMP2 +#endif + +#if defined(STM32U5) || defined(STM32MP2) +#define OCREF_CLEAR_SELECT_Pos OCREF_CLEAR_SELECT_POS +#define OCREF_CLEAR_SELECT_Msk OCREF_CLEAR_SELECT_MSK +#endif +/** + * @} + */ + +/** @defgroup HAL_TSC_Aliased_Defines HAL TSC Aliased Defines maintained for legacy purpose + * @{ + */ +#define TSC_SYNC_POL_FALL TSC_SYNC_POLARITY_FALLING +#define TSC_SYNC_POL_RISE_HIGH TSC_SYNC_POLARITY_RISING +/** + * @} + */ + +/** @defgroup HAL_UART_Aliased_Defines HAL UART Aliased Defines maintained for legacy purpose + * @{ + */ +#define UART_ONEBIT_SAMPLING_DISABLED UART_ONE_BIT_SAMPLE_DISABLE +#define UART_ONEBIT_SAMPLING_ENABLED UART_ONE_BIT_SAMPLE_ENABLE +#define UART_ONE_BIT_SAMPLE_DISABLED UART_ONE_BIT_SAMPLE_DISABLE +#define UART_ONE_BIT_SAMPLE_ENABLED UART_ONE_BIT_SAMPLE_ENABLE + +#define __HAL_UART_ONEBIT_ENABLE __HAL_UART_ONE_BIT_SAMPLE_ENABLE +#define __HAL_UART_ONEBIT_DISABLE __HAL_UART_ONE_BIT_SAMPLE_DISABLE + +#define __DIV_SAMPLING16 UART_DIV_SAMPLING16 +#define __DIVMANT_SAMPLING16 UART_DIVMANT_SAMPLING16 +#define __DIVFRAQ_SAMPLING16 UART_DIVFRAQ_SAMPLING16 +#define __UART_BRR_SAMPLING16 UART_BRR_SAMPLING16 + +#define __DIV_SAMPLING8 UART_DIV_SAMPLING8 +#define __DIVMANT_SAMPLING8 UART_DIVMANT_SAMPLING8 +#define __DIVFRAQ_SAMPLING8 UART_DIVFRAQ_SAMPLING8 +#define __UART_BRR_SAMPLING8 UART_BRR_SAMPLING8 + +#define __DIV_LPUART UART_DIV_LPUART + +#define UART_WAKEUPMETHODE_IDLELINE UART_WAKEUPMETHOD_IDLELINE +#define UART_WAKEUPMETHODE_ADDRESSMARK UART_WAKEUPMETHOD_ADDRESSMARK + +/** + * @} + */ + + +/** @defgroup HAL_USART_Aliased_Defines HAL USART Aliased Defines maintained for legacy purpose + * @{ + */ + +#define USART_CLOCK_DISABLED USART_CLOCK_DISABLE +#define USART_CLOCK_ENABLED USART_CLOCK_ENABLE + +#define USARTNACK_ENABLED USART_NACK_ENABLE +#define USARTNACK_DISABLED USART_NACK_DISABLE +/** + * @} + */ + +/** @defgroup HAL_WWDG_Aliased_Defines HAL WWDG Aliased Defines maintained for legacy purpose + * @{ + */ +#define CFR_BASE WWDG_CFR_BASE + +/** + * @} + */ + +/** @defgroup HAL_CAN_Aliased_Defines HAL CAN Aliased Defines maintained for legacy purpose + * @{ + */ +#define CAN_FilterFIFO0 CAN_FILTER_FIFO0 +#define CAN_FilterFIFO1 CAN_FILTER_FIFO1 +#define CAN_IT_RQCP0 CAN_IT_TME +#define CAN_IT_RQCP1 CAN_IT_TME +#define CAN_IT_RQCP2 CAN_IT_TME +#define INAK_TIMEOUT CAN_TIMEOUT_VALUE +#define SLAK_TIMEOUT CAN_TIMEOUT_VALUE +#define CAN_TXSTATUS_FAILED ((uint8_t)0x00U) +#define CAN_TXSTATUS_OK ((uint8_t)0x01U) +#define CAN_TXSTATUS_PENDING ((uint8_t)0x02U) + +/** + * @} + */ + +/** @defgroup HAL_ETH_Aliased_Defines HAL ETH Aliased Defines maintained for legacy purpose + * @{ + */ + +#define VLAN_TAG ETH_VLAN_TAG +#define MIN_ETH_PAYLOAD ETH_MIN_ETH_PAYLOAD +#define MAX_ETH_PAYLOAD ETH_MAX_ETH_PAYLOAD +#define JUMBO_FRAME_PAYLOAD ETH_JUMBO_FRAME_PAYLOAD +#define MACMIIAR_CR_MASK ETH_MACMIIAR_CR_MASK +#define MACCR_CLEAR_MASK ETH_MACCR_CLEAR_MASK +#define MACFCR_CLEAR_MASK ETH_MACFCR_CLEAR_MASK +#define DMAOMR_CLEAR_MASK ETH_DMAOMR_CLEAR_MASK + +#define ETH_MMCCR 0x00000100U +#define ETH_MMCRIR 0x00000104U +#define ETH_MMCTIR 0x00000108U +#define ETH_MMCRIMR 0x0000010CU +#define ETH_MMCTIMR 0x00000110U +#define ETH_MMCTGFSCCR 0x0000014CU +#define ETH_MMCTGFMSCCR 0x00000150U +#define ETH_MMCTGFCR 0x00000168U +#define ETH_MMCRFCECR 0x00000194U +#define ETH_MMCRFAECR 0x00000198U +#define ETH_MMCRGUFCR 0x000001C4U + +#define ETH_MAC_TXFIFO_FULL 0x02000000U /* Tx FIFO full */ +#define ETH_MAC_TXFIFONOT_EMPTY 0x01000000U /* Tx FIFO not empty */ +#define ETH_MAC_TXFIFO_WRITE_ACTIVE 0x00400000U /* Tx FIFO write active */ +#define ETH_MAC_TXFIFO_IDLE 0x00000000U /* Tx FIFO read status: Idle */ +#define ETH_MAC_TXFIFO_READ 0x00100000U /* Tx FIFO read status: Read (transferring data to + the MAC transmitter) */ +#define ETH_MAC_TXFIFO_WAITING 0x00200000U /* Tx FIFO read status: Waiting for TxStatus from + MAC transmitter */ +#define ETH_MAC_TXFIFO_WRITING 0x00300000U /* Tx FIFO read status: Writing the received TxStatus + or flushing the TxFIFO */ +#define ETH_MAC_TRANSMISSION_PAUSE 0x00080000U /* MAC transmitter in pause */ +#define ETH_MAC_TRANSMITFRAMECONTROLLER_IDLE 0x00000000U /* MAC transmit frame controller: Idle */ +#define ETH_MAC_TRANSMITFRAMECONTROLLER_WAITING 0x00020000U /* MAC transmit frame controller: Waiting for Status + of previous frame or IFG/backoff period to be over */ +#define ETH_MAC_TRANSMITFRAMECONTROLLER_GENRATING_PCF 0x00040000U /* MAC transmit frame controller: Generating and + transmitting a Pause control frame (in full duplex mode) */ +#define ETH_MAC_TRANSMITFRAMECONTROLLER_TRANSFERRING 0x00060000U /* MAC transmit frame controller: Transferring input + frame for transmission */ +#define ETH_MAC_MII_TRANSMIT_ACTIVE 0x00010000U /* MAC MII transmit engine active */ +#define ETH_MAC_RXFIFO_EMPTY 0x00000000U /* Rx FIFO fill level: empty */ +#define ETH_MAC_RXFIFO_BELOW_THRESHOLD 0x00000100U /* Rx FIFO fill level: fill-level below flow-control + de-activate threshold */ +#define ETH_MAC_RXFIFO_ABOVE_THRESHOLD 0x00000200U /* Rx FIFO fill level: fill-level above flow-control + activate threshold */ +#define ETH_MAC_RXFIFO_FULL 0x00000300U /* Rx FIFO fill level: full */ +#if defined(STM32F1) +#else +#define ETH_MAC_READCONTROLLER_IDLE 0x00000000U /* Rx FIFO read controller IDLE state */ +#define ETH_MAC_READCONTROLLER_READING_DATA 0x00000020U /* Rx FIFO read controller Reading frame data */ +#define ETH_MAC_READCONTROLLER_READING_STATUS 0x00000040U /* Rx FIFO read controller Reading frame status + (or time-stamp) */ +#endif +#define ETH_MAC_READCONTROLLER_FLUSHING 0x00000060U /* Rx FIFO read controller Flushing the frame data and + status */ +#define ETH_MAC_RXFIFO_WRITE_ACTIVE 0x00000010U /* Rx FIFO write controller active */ +#define ETH_MAC_SMALL_FIFO_NOTACTIVE 0x00000000U /* MAC small FIFO read / write controllers not active */ +#define ETH_MAC_SMALL_FIFO_READ_ACTIVE 0x00000002U /* MAC small FIFO read controller active */ +#define ETH_MAC_SMALL_FIFO_WRITE_ACTIVE 0x00000004U /* MAC small FIFO write controller active */ +#define ETH_MAC_SMALL_FIFO_RW_ACTIVE 0x00000006U /* MAC small FIFO read / write controllers active */ +#define ETH_MAC_MII_RECEIVE_PROTOCOL_ACTIVE 0x00000001U /* MAC MII receive protocol engine active */ + +#define ETH_TxPacketConfig ETH_TxPacketConfigTypeDef /* Transmit Packet Configuration structure definition */ + +/** + * @} + */ + +/** @defgroup HAL_DCMI_Aliased_Defines HAL DCMI Aliased Defines maintained for legacy purpose + * @{ + */ +#define HAL_DCMI_ERROR_OVF HAL_DCMI_ERROR_OVR +#define DCMI_IT_OVF DCMI_IT_OVR +#define DCMI_FLAG_OVFRI DCMI_FLAG_OVRRI +#define DCMI_FLAG_OVFMI DCMI_FLAG_OVRMI + +#define HAL_DCMI_ConfigCROP HAL_DCMI_ConfigCrop +#define HAL_DCMI_EnableCROP HAL_DCMI_EnableCrop +#define HAL_DCMI_DisableCROP HAL_DCMI_DisableCrop + +/** + * @} + */ + +#if defined(STM32L4) || defined(STM32F7) || defined(STM32F427xx) || defined(STM32F437xx) \ + || defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F469xx) || defined(STM32F479xx) \ + || defined(STM32H7) +/** @defgroup HAL_DMA2D_Aliased_Defines HAL DMA2D Aliased Defines maintained for legacy purpose + * @{ + */ +#define DMA2D_ARGB8888 DMA2D_OUTPUT_ARGB8888 +#define DMA2D_RGB888 DMA2D_OUTPUT_RGB888 +#define DMA2D_RGB565 DMA2D_OUTPUT_RGB565 +#define DMA2D_ARGB1555 DMA2D_OUTPUT_ARGB1555 +#define DMA2D_ARGB4444 DMA2D_OUTPUT_ARGB4444 + +#define CM_ARGB8888 DMA2D_INPUT_ARGB8888 +#define CM_RGB888 DMA2D_INPUT_RGB888 +#define CM_RGB565 DMA2D_INPUT_RGB565 +#define CM_ARGB1555 DMA2D_INPUT_ARGB1555 +#define CM_ARGB4444 DMA2D_INPUT_ARGB4444 +#define CM_L8 DMA2D_INPUT_L8 +#define CM_AL44 DMA2D_INPUT_AL44 +#define CM_AL88 DMA2D_INPUT_AL88 +#define CM_L4 DMA2D_INPUT_L4 +#define CM_A8 DMA2D_INPUT_A8 +#define CM_A4 DMA2D_INPUT_A4 +/** + * @} + */ +#endif /* STM32L4 || STM32F7 || STM32F4 || STM32H7 */ + +#if defined(STM32L4) || defined(STM32F7) || defined(STM32F427xx) || defined(STM32F437xx) \ + || defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F469xx) || defined(STM32F479xx) \ + || defined(STM32H7) || defined(STM32U5) +/** @defgroup DMA2D_Aliases DMA2D API Aliases + * @{ + */ +#define HAL_DMA2D_DisableCLUT HAL_DMA2D_CLUTLoading_Abort /*!< Aliased to HAL_DMA2D_CLUTLoading_Abort + for compatibility with legacy code */ +/** + * @} + */ + +#endif /* STM32L4 || STM32F7 || STM32F4 || STM32H7 || STM32U5 */ + +/** @defgroup HAL_PPP_Aliased_Defines HAL PPP Aliased Defines maintained for legacy purpose + * @{ + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup HAL_CRYP_Aliased_Functions HAL CRYP Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_CRYP_ComputationCpltCallback HAL_CRYPEx_ComputationCpltCallback +/** + * @} + */ + +/** @defgroup HAL_DCACHE_Aliased_Functions HAL DCACHE Aliased Functions maintained for legacy purpose + * @{ + */ + +#if defined(STM32U5) +#define HAL_DCACHE_CleanInvalidateByAddr HAL_DCACHE_CleanInvalidByAddr +#define HAL_DCACHE_CleanInvalidateByAddr_IT HAL_DCACHE_CleanInvalidByAddr_IT +#endif /* STM32U5 */ + +/** + * @} + */ + +#if !defined(STM32F2) +/** @defgroup HASH_alias HASH API alias + * @{ + */ +#define HAL_HASHEx_IRQHandler HAL_HASH_IRQHandler /*!< Redirection for compatibility with legacy code */ +/** + * + * @} + */ +#endif /* STM32F2 */ +/** @defgroup HAL_HASH_Aliased_Functions HAL HASH Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_HASH_STATETypeDef HAL_HASH_StateTypeDef +#define HAL_HASHPhaseTypeDef HAL_HASH_PhaseTypeDef +#define HAL_HMAC_MD5_Finish HAL_HASH_MD5_Finish +#define HAL_HMAC_SHA1_Finish HAL_HASH_SHA1_Finish +#define HAL_HMAC_SHA224_Finish HAL_HASH_SHA224_Finish +#define HAL_HMAC_SHA256_Finish HAL_HASH_SHA256_Finish + +/*HASH Algorithm Selection*/ + +#define HASH_AlgoSelection_SHA1 HASH_ALGOSELECTION_SHA1 +#define HASH_AlgoSelection_SHA224 HASH_ALGOSELECTION_SHA224 +#define HASH_AlgoSelection_SHA256 HASH_ALGOSELECTION_SHA256 +#define HASH_AlgoSelection_MD5 HASH_ALGOSELECTION_MD5 + +#define HASH_AlgoMode_HASH HASH_ALGOMODE_HASH +#define HASH_AlgoMode_HMAC HASH_ALGOMODE_HMAC + +#define HASH_HMACKeyType_ShortKey HASH_HMAC_KEYTYPE_SHORTKEY +#define HASH_HMACKeyType_LongKey HASH_HMAC_KEYTYPE_LONGKEY + +#if defined(STM32L4) || defined(STM32L5) || defined(STM32F2) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) + +#define HAL_HASH_MD5_Accumulate HAL_HASH_MD5_Accmlt +#define HAL_HASH_MD5_Accumulate_End HAL_HASH_MD5_Accmlt_End +#define HAL_HASH_MD5_Accumulate_IT HAL_HASH_MD5_Accmlt_IT +#define HAL_HASH_MD5_Accumulate_End_IT HAL_HASH_MD5_Accmlt_End_IT + +#define HAL_HASH_SHA1_Accumulate HAL_HASH_SHA1_Accmlt +#define HAL_HASH_SHA1_Accumulate_End HAL_HASH_SHA1_Accmlt_End +#define HAL_HASH_SHA1_Accumulate_IT HAL_HASH_SHA1_Accmlt_IT +#define HAL_HASH_SHA1_Accumulate_End_IT HAL_HASH_SHA1_Accmlt_End_IT + +#define HAL_HASHEx_SHA224_Accumulate HAL_HASHEx_SHA224_Accmlt +#define HAL_HASHEx_SHA224_Accumulate_End HAL_HASHEx_SHA224_Accmlt_End +#define HAL_HASHEx_SHA224_Accumulate_IT HAL_HASHEx_SHA224_Accmlt_IT +#define HAL_HASHEx_SHA224_Accumulate_End_IT HAL_HASHEx_SHA224_Accmlt_End_IT + +#define HAL_HASHEx_SHA256_Accumulate HAL_HASHEx_SHA256_Accmlt +#define HAL_HASHEx_SHA256_Accumulate_End HAL_HASHEx_SHA256_Accmlt_End +#define HAL_HASHEx_SHA256_Accumulate_IT HAL_HASHEx_SHA256_Accmlt_IT +#define HAL_HASHEx_SHA256_Accumulate_End_IT HAL_HASHEx_SHA256_Accmlt_End_IT + +#endif /* STM32L4 || STM32L5 || STM32F2 || STM32F4 || STM32F7 || STM32H7 */ +/** + * @} + */ + +/** @defgroup HAL_Aliased_Functions HAL Generic Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_EnableDBGSleepMode HAL_DBGMCU_EnableDBGSleepMode +#define HAL_DisableDBGSleepMode HAL_DBGMCU_DisableDBGSleepMode +#define HAL_EnableDBGStopMode HAL_DBGMCU_EnableDBGStopMode +#define HAL_DisableDBGStopMode HAL_DBGMCU_DisableDBGStopMode +#define HAL_EnableDBGStandbyMode HAL_DBGMCU_EnableDBGStandbyMode +#define HAL_DisableDBGStandbyMode HAL_DBGMCU_DisableDBGStandbyMode +#define HAL_DBG_LowPowerConfig(Periph, cmd) (((cmd\ + )==ENABLE)? HAL_DBGMCU_DBG_EnableLowPowerConfig(Periph) : \ + HAL_DBGMCU_DBG_DisableLowPowerConfig(Periph)) +#define HAL_VREFINT_OutputSelect HAL_SYSCFG_VREFINT_OutputSelect +#define HAL_Lock_Cmd(cmd) (((cmd)==ENABLE) ? HAL_SYSCFG_Enable_Lock_VREFINT() : HAL_SYSCFG_Disable_Lock_VREFINT()) +#if defined(STM32L0) +#else +#define HAL_VREFINT_Cmd(cmd) (((cmd)==ENABLE)? HAL_SYSCFG_EnableVREFINT() : HAL_SYSCFG_DisableVREFINT()) +#endif +#define HAL_ADC_EnableBuffer_Cmd(cmd) (((cmd)==ENABLE) ? HAL_ADCEx_EnableVREFINT() : HAL_ADCEx_DisableVREFINT()) +#define HAL_ADC_EnableBufferSensor_Cmd(cmd) (((cmd\ + )==ENABLE) ? HAL_ADCEx_EnableVREFINTTempSensor() : \ + HAL_ADCEx_DisableVREFINTTempSensor()) +#if defined(STM32H7A3xx) || defined(STM32H7B3xx) || defined(STM32H7B0xx) || defined(STM32H7A3xxQ) || \ + defined(STM32H7B3xxQ) || defined(STM32H7B0xxQ) +#define HAL_EnableSRDomainDBGStopMode HAL_EnableDomain3DBGStopMode +#define HAL_DisableSRDomainDBGStopMode HAL_DisableDomain3DBGStopMode +#define HAL_EnableSRDomainDBGStandbyMode HAL_EnableDomain3DBGStandbyMode +#define HAL_DisableSRDomainDBGStandbyMode HAL_DisableDomain3DBGStandbyMode +#endif /* STM32H7A3xx || STM32H7B3xx || STM32H7B0xx || STM32H7A3xxQ || STM32H7B3xxQ || STM32H7B0xxQ */ + +/** + * @} + */ + +/** @defgroup HAL_FLASH_Aliased_Functions HAL FLASH Aliased Functions maintained for legacy purpose + * @{ + */ +#define FLASH_HalfPageProgram HAL_FLASHEx_HalfPageProgram +#define FLASH_EnableRunPowerDown HAL_FLASHEx_EnableRunPowerDown +#define FLASH_DisableRunPowerDown HAL_FLASHEx_DisableRunPowerDown +#define HAL_DATA_EEPROMEx_Unlock HAL_FLASHEx_DATAEEPROM_Unlock +#define HAL_DATA_EEPROMEx_Lock HAL_FLASHEx_DATAEEPROM_Lock +#define HAL_DATA_EEPROMEx_Erase HAL_FLASHEx_DATAEEPROM_Erase +#define HAL_DATA_EEPROMEx_Program HAL_FLASHEx_DATAEEPROM_Program + +/** + * @} + */ + +/** @defgroup HAL_I2C_Aliased_Functions HAL I2C Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_I2CEx_AnalogFilter_Config HAL_I2CEx_ConfigAnalogFilter +#define HAL_I2CEx_DigitalFilter_Config HAL_I2CEx_ConfigDigitalFilter +#define HAL_FMPI2CEx_AnalogFilter_Config HAL_FMPI2CEx_ConfigAnalogFilter +#define HAL_FMPI2CEx_DigitalFilter_Config HAL_FMPI2CEx_ConfigDigitalFilter + +#define HAL_I2CFastModePlusConfig(SYSCFG_I2CFastModePlus, cmd) (((cmd) == ENABLE)? \ + HAL_I2CEx_EnableFastModePlus(SYSCFG_I2CFastModePlus): \ + HAL_I2CEx_DisableFastModePlus(SYSCFG_I2CFastModePlus)) + +#if defined(STM32H7) || defined(STM32WB) || defined(STM32G0) || defined(STM32F0) || defined(STM32F1) || \ + defined(STM32F2) || defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32L0) || \ + defined(STM32L4) || defined(STM32L5) || defined(STM32G4) || defined(STM32L1) +#define HAL_I2C_Master_Sequential_Transmit_IT HAL_I2C_Master_Seq_Transmit_IT +#define HAL_I2C_Master_Sequential_Receive_IT HAL_I2C_Master_Seq_Receive_IT +#define HAL_I2C_Slave_Sequential_Transmit_IT HAL_I2C_Slave_Seq_Transmit_IT +#define HAL_I2C_Slave_Sequential_Receive_IT HAL_I2C_Slave_Seq_Receive_IT +#endif /* STM32H7 || STM32WB || STM32G0 || STM32F0 || STM32F1 || STM32F2 || STM32F3 || STM32F4 || STM32F7 || STM32L0 || + STM32L4 || STM32L5 || STM32G4 || STM32L1 */ +#if defined(STM32H7) || defined(STM32WB) || defined(STM32G0) || defined(STM32F4) || defined(STM32F7) || \ + defined(STM32L0) || defined(STM32L4) || defined(STM32L5) || defined(STM32G4)|| defined(STM32L1) +#define HAL_I2C_Master_Sequential_Transmit_DMA HAL_I2C_Master_Seq_Transmit_DMA +#define HAL_I2C_Master_Sequential_Receive_DMA HAL_I2C_Master_Seq_Receive_DMA +#define HAL_I2C_Slave_Sequential_Transmit_DMA HAL_I2C_Slave_Seq_Transmit_DMA +#define HAL_I2C_Slave_Sequential_Receive_DMA HAL_I2C_Slave_Seq_Receive_DMA +#endif /* STM32H7 || STM32WB || STM32G0 || STM32F4 || STM32F7 || STM32L0 || STM32L4 || STM32L5 || STM32G4 || STM32L1 */ + +#if defined(STM32F4) +#define HAL_FMPI2C_Master_Sequential_Transmit_IT HAL_FMPI2C_Master_Seq_Transmit_IT +#define HAL_FMPI2C_Master_Sequential_Receive_IT HAL_FMPI2C_Master_Seq_Receive_IT +#define HAL_FMPI2C_Slave_Sequential_Transmit_IT HAL_FMPI2C_Slave_Seq_Transmit_IT +#define HAL_FMPI2C_Slave_Sequential_Receive_IT HAL_FMPI2C_Slave_Seq_Receive_IT +#define HAL_FMPI2C_Master_Sequential_Transmit_DMA HAL_FMPI2C_Master_Seq_Transmit_DMA +#define HAL_FMPI2C_Master_Sequential_Receive_DMA HAL_FMPI2C_Master_Seq_Receive_DMA +#define HAL_FMPI2C_Slave_Sequential_Transmit_DMA HAL_FMPI2C_Slave_Seq_Transmit_DMA +#define HAL_FMPI2C_Slave_Sequential_Receive_DMA HAL_FMPI2C_Slave_Seq_Receive_DMA +#endif /* STM32F4 */ +/** + * @} + */ + +/** @defgroup HAL_PWR_Aliased HAL PWR Aliased maintained for legacy purpose + * @{ + */ + +#if defined(STM32G0) +#define HAL_PWR_ConfigPVD HAL_PWREx_ConfigPVD +#define HAL_PWR_EnablePVD HAL_PWREx_EnablePVD +#define HAL_PWR_DisablePVD HAL_PWREx_DisablePVD +#define HAL_PWR_PVD_IRQHandler HAL_PWREx_PVD_IRQHandler +#endif +#define HAL_PWR_PVDConfig HAL_PWR_ConfigPVD +#define HAL_PWR_DisableBkUpReg HAL_PWREx_DisableBkUpReg +#define HAL_PWR_DisableFlashPowerDown HAL_PWREx_DisableFlashPowerDown +#define HAL_PWR_DisableVddio2Monitor HAL_PWREx_DisableVddio2Monitor +#define HAL_PWR_EnableBkUpReg HAL_PWREx_EnableBkUpReg +#define HAL_PWR_EnableFlashPowerDown HAL_PWREx_EnableFlashPowerDown +#define HAL_PWR_EnableVddio2Monitor HAL_PWREx_EnableVddio2Monitor +#define HAL_PWR_PVD_PVM_IRQHandler HAL_PWREx_PVD_PVM_IRQHandler +#define HAL_PWR_PVDLevelConfig HAL_PWR_ConfigPVD +#define HAL_PWR_Vddio2Monitor_IRQHandler HAL_PWREx_Vddio2Monitor_IRQHandler +#define HAL_PWR_Vddio2MonitorCallback HAL_PWREx_Vddio2MonitorCallback +#define HAL_PWREx_ActivateOverDrive HAL_PWREx_EnableOverDrive +#define HAL_PWREx_DeactivateOverDrive HAL_PWREx_DisableOverDrive +#define HAL_PWREx_DisableSDADCAnalog HAL_PWREx_DisableSDADC +#define HAL_PWREx_EnableSDADCAnalog HAL_PWREx_EnableSDADC +#define HAL_PWREx_PVMConfig HAL_PWREx_ConfigPVM + +#define PWR_MODE_NORMAL PWR_PVD_MODE_NORMAL +#define PWR_MODE_IT_RISING PWR_PVD_MODE_IT_RISING +#define PWR_MODE_IT_FALLING PWR_PVD_MODE_IT_FALLING +#define PWR_MODE_IT_RISING_FALLING PWR_PVD_MODE_IT_RISING_FALLING +#define PWR_MODE_EVENT_RISING PWR_PVD_MODE_EVENT_RISING +#define PWR_MODE_EVENT_FALLING PWR_PVD_MODE_EVENT_FALLING +#define PWR_MODE_EVENT_RISING_FALLING PWR_PVD_MODE_EVENT_RISING_FALLING + +#define CR_OFFSET_BB PWR_CR_OFFSET_BB +#define CSR_OFFSET_BB PWR_CSR_OFFSET_BB +#define PMODE_BIT_NUMBER VOS_BIT_NUMBER +#define CR_PMODE_BB CR_VOS_BB + +#define DBP_BitNumber DBP_BIT_NUMBER +#define PVDE_BitNumber PVDE_BIT_NUMBER +#define PMODE_BitNumber PMODE_BIT_NUMBER +#define EWUP_BitNumber EWUP_BIT_NUMBER +#define FPDS_BitNumber FPDS_BIT_NUMBER +#define ODEN_BitNumber ODEN_BIT_NUMBER +#define ODSWEN_BitNumber ODSWEN_BIT_NUMBER +#define MRLVDS_BitNumber MRLVDS_BIT_NUMBER +#define LPLVDS_BitNumber LPLVDS_BIT_NUMBER +#define BRE_BitNumber BRE_BIT_NUMBER + +#define PWR_MODE_EVT PWR_PVD_MODE_NORMAL + +#if defined (STM32U5) +#define PWR_SRAM1_PAGE1_STOP_RETENTION PWR_SRAM1_PAGE1_STOP +#define PWR_SRAM1_PAGE2_STOP_RETENTION PWR_SRAM1_PAGE2_STOP +#define PWR_SRAM1_PAGE3_STOP_RETENTION PWR_SRAM1_PAGE3_STOP +#define PWR_SRAM1_PAGE4_STOP_RETENTION PWR_SRAM1_PAGE4_STOP +#define PWR_SRAM1_PAGE5_STOP_RETENTION PWR_SRAM1_PAGE5_STOP +#define PWR_SRAM1_PAGE6_STOP_RETENTION PWR_SRAM1_PAGE6_STOP +#define PWR_SRAM1_PAGE7_STOP_RETENTION PWR_SRAM1_PAGE7_STOP +#define PWR_SRAM1_PAGE8_STOP_RETENTION PWR_SRAM1_PAGE8_STOP +#define PWR_SRAM1_PAGE9_STOP_RETENTION PWR_SRAM1_PAGE9_STOP +#define PWR_SRAM1_PAGE10_STOP_RETENTION PWR_SRAM1_PAGE10_STOP +#define PWR_SRAM1_PAGE11_STOP_RETENTION PWR_SRAM1_PAGE11_STOP +#define PWR_SRAM1_PAGE12_STOP_RETENTION PWR_SRAM1_PAGE12_STOP +#define PWR_SRAM1_FULL_STOP_RETENTION PWR_SRAM1_FULL_STOP + +#define PWR_SRAM2_PAGE1_STOP_RETENTION PWR_SRAM2_PAGE1_STOP +#define PWR_SRAM2_PAGE2_STOP_RETENTION PWR_SRAM2_PAGE2_STOP +#define PWR_SRAM2_FULL_STOP_RETENTION PWR_SRAM2_FULL_STOP + +#define PWR_SRAM3_PAGE1_STOP_RETENTION PWR_SRAM3_PAGE1_STOP +#define PWR_SRAM3_PAGE2_STOP_RETENTION PWR_SRAM3_PAGE2_STOP +#define PWR_SRAM3_PAGE3_STOP_RETENTION PWR_SRAM3_PAGE3_STOP +#define PWR_SRAM3_PAGE4_STOP_RETENTION PWR_SRAM3_PAGE4_STOP +#define PWR_SRAM3_PAGE5_STOP_RETENTION PWR_SRAM3_PAGE5_STOP +#define PWR_SRAM3_PAGE6_STOP_RETENTION PWR_SRAM3_PAGE6_STOP +#define PWR_SRAM3_PAGE7_STOP_RETENTION PWR_SRAM3_PAGE7_STOP +#define PWR_SRAM3_PAGE8_STOP_RETENTION PWR_SRAM3_PAGE8_STOP +#define PWR_SRAM3_PAGE9_STOP_RETENTION PWR_SRAM3_PAGE9_STOP +#define PWR_SRAM3_PAGE10_STOP_RETENTION PWR_SRAM3_PAGE10_STOP +#define PWR_SRAM3_PAGE11_STOP_RETENTION PWR_SRAM3_PAGE11_STOP +#define PWR_SRAM3_PAGE12_STOP_RETENTION PWR_SRAM3_PAGE12_STOP +#define PWR_SRAM3_PAGE13_STOP_RETENTION PWR_SRAM3_PAGE13_STOP +#define PWR_SRAM3_FULL_STOP_RETENTION PWR_SRAM3_FULL_STOP + +#define PWR_SRAM4_FULL_STOP_RETENTION PWR_SRAM4_FULL_STOP + +#define PWR_SRAM5_PAGE1_STOP_RETENTION PWR_SRAM5_PAGE1_STOP +#define PWR_SRAM5_PAGE2_STOP_RETENTION PWR_SRAM5_PAGE2_STOP +#define PWR_SRAM5_PAGE3_STOP_RETENTION PWR_SRAM5_PAGE3_STOP +#define PWR_SRAM5_PAGE4_STOP_RETENTION PWR_SRAM5_PAGE4_STOP +#define PWR_SRAM5_PAGE5_STOP_RETENTION PWR_SRAM5_PAGE5_STOP +#define PWR_SRAM5_PAGE6_STOP_RETENTION PWR_SRAM5_PAGE6_STOP +#define PWR_SRAM5_PAGE7_STOP_RETENTION PWR_SRAM5_PAGE7_STOP +#define PWR_SRAM5_PAGE8_STOP_RETENTION PWR_SRAM5_PAGE8_STOP +#define PWR_SRAM5_PAGE9_STOP_RETENTION PWR_SRAM5_PAGE9_STOP +#define PWR_SRAM5_PAGE10_STOP_RETENTION PWR_SRAM5_PAGE10_STOP +#define PWR_SRAM5_PAGE11_STOP_RETENTION PWR_SRAM5_PAGE11_STOP +#define PWR_SRAM5_PAGE12_STOP_RETENTION PWR_SRAM5_PAGE12_STOP +#define PWR_SRAM5_PAGE13_STOP_RETENTION PWR_SRAM5_PAGE13_STOP +#define PWR_SRAM5_FULL_STOP_RETENTION PWR_SRAM5_FULL_STOP + +#define PWR_SRAM6_PAGE1_STOP_RETENTION PWR_SRAM6_PAGE1_STOP +#define PWR_SRAM6_PAGE2_STOP_RETENTION PWR_SRAM6_PAGE2_STOP +#define PWR_SRAM6_PAGE3_STOP_RETENTION PWR_SRAM6_PAGE3_STOP +#define PWR_SRAM6_PAGE4_STOP_RETENTION PWR_SRAM6_PAGE4_STOP +#define PWR_SRAM6_PAGE5_STOP_RETENTION PWR_SRAM6_PAGE5_STOP +#define PWR_SRAM6_PAGE6_STOP_RETENTION PWR_SRAM6_PAGE6_STOP +#define PWR_SRAM6_PAGE7_STOP_RETENTION PWR_SRAM6_PAGE7_STOP +#define PWR_SRAM6_PAGE8_STOP_RETENTION PWR_SRAM6_PAGE8_STOP +#define PWR_SRAM6_FULL_STOP_RETENTION PWR_SRAM6_FULL_STOP + + +#define PWR_ICACHE_FULL_STOP_RETENTION PWR_ICACHE_FULL_STOP +#define PWR_DCACHE1_FULL_STOP_RETENTION PWR_DCACHE1_FULL_STOP +#define PWR_DCACHE2_FULL_STOP_RETENTION PWR_DCACHE2_FULL_STOP +#define PWR_DMA2DRAM_FULL_STOP_RETENTION PWR_DMA2DRAM_FULL_STOP +#define PWR_PERIPHRAM_FULL_STOP_RETENTION PWR_PERIPHRAM_FULL_STOP +#define PWR_PKA32RAM_FULL_STOP_RETENTION PWR_PKA32RAM_FULL_STOP +#define PWR_GRAPHICPRAM_FULL_STOP_RETENTION PWR_GRAPHICPRAM_FULL_STOP +#define PWR_DSIRAM_FULL_STOP_RETENTION PWR_DSIRAM_FULL_STOP +#define PWR_JPEGRAM_FULL_STOP_RETENTION PWR_JPEGRAM_FULL_STOP + + +#define PWR_SRAM2_PAGE1_STANDBY_RETENTION PWR_SRAM2_PAGE1_STANDBY +#define PWR_SRAM2_PAGE2_STANDBY_RETENTION PWR_SRAM2_PAGE2_STANDBY +#define PWR_SRAM2_FULL_STANDBY_RETENTION PWR_SRAM2_FULL_STANDBY + +#define PWR_SRAM1_FULL_RUN_RETENTION PWR_SRAM1_FULL_RUN +#define PWR_SRAM2_FULL_RUN_RETENTION PWR_SRAM2_FULL_RUN +#define PWR_SRAM3_FULL_RUN_RETENTION PWR_SRAM3_FULL_RUN +#define PWR_SRAM4_FULL_RUN_RETENTION PWR_SRAM4_FULL_RUN +#define PWR_SRAM5_FULL_RUN_RETENTION PWR_SRAM5_FULL_RUN +#define PWR_SRAM6_FULL_RUN_RETENTION PWR_SRAM6_FULL_RUN + +#define PWR_ALL_RAM_RUN_RETENTION_MASK PWR_ALL_RAM_RUN_MASK +#endif + +/** + * @} + */ + +/** @defgroup HAL_RTC_Aliased_Functions HAL RTC Aliased Functions maintained for legacy purpose + * @{ + */ +#if defined(STM32H5) || defined(STM32WBA) || defined(STM32H7RS) || defined(STM32N6) +#define HAL_RTCEx_SetBoothardwareKey HAL_RTCEx_LockBootHardwareKey +#define HAL_RTCEx_BKUPBlock_Enable HAL_RTCEx_BKUPBlock +#define HAL_RTCEx_BKUPBlock_Disable HAL_RTCEx_BKUPUnblock +#define HAL_RTCEx_Erase_SecretDev_Conf HAL_RTCEx_ConfigEraseDeviceSecrets +#endif /* STM32H5 || STM32WBA || STM32H7RS || STM32N6 */ + +/** + * @} + */ + +/** @defgroup HAL_SMBUS_Aliased_Functions HAL SMBUS Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_SMBUS_Slave_Listen_IT HAL_SMBUS_EnableListen_IT +#define HAL_SMBUS_SlaveAddrCallback HAL_SMBUS_AddrCallback +#define HAL_SMBUS_SlaveListenCpltCallback HAL_SMBUS_ListenCpltCallback +/** + * @} + */ + +/** @defgroup HAL_SPI_Aliased_Functions HAL SPI Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_SPI_FlushRxFifo HAL_SPIEx_FlushRxFifo +/** + * @} + */ + +/** @defgroup HAL_TIM_Aliased_Functions HAL TIM Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_TIM_DMADelayPulseCplt TIM_DMADelayPulseCplt +#define HAL_TIM_DMAError TIM_DMAError +#define HAL_TIM_DMACaptureCplt TIM_DMACaptureCplt +#define HAL_TIMEx_DMACommutationCplt TIMEx_DMACommutationCplt +#if defined(STM32H7) || defined(STM32G0) || defined(STM32F0) || defined(STM32F1) || defined(STM32F2) || \ + defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32L0) || defined(STM32L4) +#define HAL_TIM_SlaveConfigSynchronization HAL_TIM_SlaveConfigSynchro +#define HAL_TIM_SlaveConfigSynchronization_IT HAL_TIM_SlaveConfigSynchro_IT +#define HAL_TIMEx_CommutationCallback HAL_TIMEx_CommutCallback +#define HAL_TIMEx_ConfigCommutationEvent HAL_TIMEx_ConfigCommutEvent +#define HAL_TIMEx_ConfigCommutationEvent_IT HAL_TIMEx_ConfigCommutEvent_IT +#define HAL_TIMEx_ConfigCommutationEvent_DMA HAL_TIMEx_ConfigCommutEvent_DMA +#endif /* STM32H7 || STM32G0 || STM32F0 || STM32F1 || STM32F2 || STM32F3 || STM32F4 || STM32F7 || STM32L0 */ +/** + * @} + */ + +/** @defgroup HAL_UART_Aliased_Functions HAL UART Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_UART_WakeupCallback HAL_UARTEx_WakeupCallback +/** + * @} + */ + +/** @defgroup HAL_LTDC_Aliased_Functions HAL LTDC Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_LTDC_LineEvenCallback HAL_LTDC_LineEventCallback +#define HAL_LTDC_Relaod HAL_LTDC_Reload +#define HAL_LTDC_StructInitFromVideoConfig HAL_LTDCEx_StructInitFromVideoConfig +#define HAL_LTDC_StructInitFromAdaptedCommandConfig HAL_LTDCEx_StructInitFromAdaptedCommandConfig +/** + * @} + */ + + +/** @defgroup HAL_PPP_Aliased_Functions HAL PPP Aliased Functions maintained for legacy purpose + * @{ + */ + +/** + * @} + */ + +/* Exported macros ------------------------------------------------------------*/ + +/** @defgroup HAL_AES_Aliased_Macros HAL CRYP Aliased Macros maintained for legacy purpose + * @{ + */ +#define AES_IT_CC CRYP_IT_CC +#define AES_IT_ERR CRYP_IT_ERR +#define AES_FLAG_CCF CRYP_FLAG_CCF +/** + * @} + */ + +/** @defgroup HAL_Aliased_Macros HAL Generic Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_GET_BOOT_MODE __HAL_SYSCFG_GET_BOOT_MODE +#define __HAL_REMAPMEMORY_FLASH __HAL_SYSCFG_REMAPMEMORY_FLASH +#define __HAL_REMAPMEMORY_SYSTEMFLASH __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH +#define __HAL_REMAPMEMORY_SRAM __HAL_SYSCFG_REMAPMEMORY_SRAM +#define __HAL_REMAPMEMORY_FMC __HAL_SYSCFG_REMAPMEMORY_FMC +#define __HAL_REMAPMEMORY_FMC_SDRAM __HAL_SYSCFG_REMAPMEMORY_FMC_SDRAM +#define __HAL_REMAPMEMORY_FSMC __HAL_SYSCFG_REMAPMEMORY_FSMC +#define __HAL_REMAPMEMORY_QUADSPI __HAL_SYSCFG_REMAPMEMORY_QUADSPI +#define __HAL_FMC_BANK __HAL_SYSCFG_FMC_BANK +#define __HAL_GET_FLAG __HAL_SYSCFG_GET_FLAG +#define __HAL_CLEAR_FLAG __HAL_SYSCFG_CLEAR_FLAG +#define __HAL_VREFINT_OUT_ENABLE __HAL_SYSCFG_VREFINT_OUT_ENABLE +#define __HAL_VREFINT_OUT_DISABLE __HAL_SYSCFG_VREFINT_OUT_DISABLE +#define __HAL_SYSCFG_SRAM2_WRP_ENABLE __HAL_SYSCFG_SRAM2_WRP_0_31_ENABLE + +#define SYSCFG_FLAG_VREF_READY SYSCFG_FLAG_VREFINT_READY +#define SYSCFG_FLAG_RC48 RCC_FLAG_HSI48 +#define IS_SYSCFG_FASTMODEPLUS_CONFIG IS_I2C_FASTMODEPLUS +#define UFB_MODE_BitNumber UFB_MODE_BIT_NUMBER +#define CMP_PD_BitNumber CMP_PD_BIT_NUMBER + +/** + * @} + */ + + +/** @defgroup HAL_ADC_Aliased_Macros HAL ADC Aliased Macros maintained for legacy purpose + * @{ + */ +#define __ADC_ENABLE __HAL_ADC_ENABLE +#define __ADC_DISABLE __HAL_ADC_DISABLE +#define __HAL_ADC_ENABLING_CONDITIONS ADC_ENABLING_CONDITIONS +#define __HAL_ADC_DISABLING_CONDITIONS ADC_DISABLING_CONDITIONS +#define __HAL_ADC_IS_ENABLED ADC_IS_ENABLE +#define __ADC_IS_ENABLED ADC_IS_ENABLE +#define __HAL_ADC_IS_SOFTWARE_START_REGULAR ADC_IS_SOFTWARE_START_REGULAR +#define __HAL_ADC_IS_SOFTWARE_START_INJECTED ADC_IS_SOFTWARE_START_INJECTED +#define __HAL_ADC_IS_CONVERSION_ONGOING_REGULAR_INJECTED ADC_IS_CONVERSION_ONGOING_REGULAR_INJECTED +#define __HAL_ADC_IS_CONVERSION_ONGOING_REGULAR ADC_IS_CONVERSION_ONGOING_REGULAR +#define __HAL_ADC_IS_CONVERSION_ONGOING_INJECTED ADC_IS_CONVERSION_ONGOING_INJECTED +#define __HAL_ADC_IS_CONVERSION_ONGOING ADC_IS_CONVERSION_ONGOING +#define __HAL_ADC_CLEAR_ERRORCODE ADC_CLEAR_ERRORCODE + +#define __HAL_ADC_GET_RESOLUTION ADC_GET_RESOLUTION +#define __HAL_ADC_JSQR_RK ADC_JSQR_RK +#define __HAL_ADC_CFGR_AWD1CH ADC_CFGR_AWD1CH_SHIFT +#define __HAL_ADC_CFGR_AWD23CR ADC_CFGR_AWD23CR +#define __HAL_ADC_CFGR_INJECT_AUTO_CONVERSION ADC_CFGR_INJECT_AUTO_CONVERSION +#define __HAL_ADC_CFGR_INJECT_CONTEXT_QUEUE ADC_CFGR_INJECT_CONTEXT_QUEUE +#define __HAL_ADC_CFGR_INJECT_DISCCONTINUOUS ADC_CFGR_INJECT_DISCCONTINUOUS +#define __HAL_ADC_CFGR_REG_DISCCONTINUOUS ADC_CFGR_REG_DISCCONTINUOUS +#define __HAL_ADC_CFGR_DISCONTINUOUS_NUM ADC_CFGR_DISCONTINUOUS_NUM +#define __HAL_ADC_CFGR_AUTOWAIT ADC_CFGR_AUTOWAIT +#define __HAL_ADC_CFGR_CONTINUOUS ADC_CFGR_CONTINUOUS +#define __HAL_ADC_CFGR_OVERRUN ADC_CFGR_OVERRUN +#define __HAL_ADC_CFGR_DMACONTREQ ADC_CFGR_DMACONTREQ +#define __HAL_ADC_CFGR_EXTSEL ADC_CFGR_EXTSEL_SET +#define __HAL_ADC_JSQR_JEXTSEL ADC_JSQR_JEXTSEL_SET +#define __HAL_ADC_OFR_CHANNEL ADC_OFR_CHANNEL +#define __HAL_ADC_DIFSEL_CHANNEL ADC_DIFSEL_CHANNEL +#define __HAL_ADC_CALFACT_DIFF_SET ADC_CALFACT_DIFF_SET +#define __HAL_ADC_CALFACT_DIFF_GET ADC_CALFACT_DIFF_GET +#define __HAL_ADC_TRX_HIGHTHRESHOLD ADC_TRX_HIGHTHRESHOLD + +#define __HAL_ADC_OFFSET_SHIFT_RESOLUTION ADC_OFFSET_SHIFT_RESOLUTION +#define __HAL_ADC_AWD1THRESHOLD_SHIFT_RESOLUTION ADC_AWD1THRESHOLD_SHIFT_RESOLUTION +#define __HAL_ADC_AWD23THRESHOLD_SHIFT_RESOLUTION ADC_AWD23THRESHOLD_SHIFT_RESOLUTION +#define __HAL_ADC_COMMON_REGISTER ADC_COMMON_REGISTER +#define __HAL_ADC_COMMON_CCR_MULTI ADC_COMMON_CCR_MULTI +#define __HAL_ADC_MULTIMODE_IS_ENABLED ADC_MULTIMODE_IS_ENABLE +#define __ADC_MULTIMODE_IS_ENABLED ADC_MULTIMODE_IS_ENABLE +#define __HAL_ADC_NONMULTIMODE_OR_MULTIMODEMASTER ADC_NONMULTIMODE_OR_MULTIMODEMASTER +#define __HAL_ADC_COMMON_ADC_OTHER ADC_COMMON_ADC_OTHER +#define __HAL_ADC_MULTI_SLAVE ADC_MULTI_SLAVE + +#define __HAL_ADC_SQR1_L ADC_SQR1_L_SHIFT +#define __HAL_ADC_JSQR_JL ADC_JSQR_JL_SHIFT +#define __HAL_ADC_JSQR_RK_JL ADC_JSQR_RK_JL +#define __HAL_ADC_CR1_DISCONTINUOUS_NUM ADC_CR1_DISCONTINUOUS_NUM +#define __HAL_ADC_CR1_SCAN ADC_CR1_SCAN_SET +#define __HAL_ADC_CONVCYCLES_MAX_RANGE ADC_CONVCYCLES_MAX_RANGE +#define __HAL_ADC_CLOCK_PRESCALER_RANGE ADC_CLOCK_PRESCALER_RANGE +#define __HAL_ADC_GET_CLOCK_PRESCALER ADC_GET_CLOCK_PRESCALER + +#define __HAL_ADC_SQR1 ADC_SQR1 +#define __HAL_ADC_SMPR1 ADC_SMPR1 +#define __HAL_ADC_SMPR2 ADC_SMPR2 +#define __HAL_ADC_SQR3_RK ADC_SQR3_RK +#define __HAL_ADC_SQR2_RK ADC_SQR2_RK +#define __HAL_ADC_SQR1_RK ADC_SQR1_RK +#define __HAL_ADC_CR2_CONTINUOUS ADC_CR2_CONTINUOUS +#define __HAL_ADC_CR1_DISCONTINUOUS ADC_CR1_DISCONTINUOUS +#define __HAL_ADC_CR1_SCANCONV ADC_CR1_SCANCONV +#define __HAL_ADC_CR2_EOCSelection ADC_CR2_EOCSelection +#define __HAL_ADC_CR2_DMAContReq ADC_CR2_DMAContReq +#define __HAL_ADC_JSQR ADC_JSQR + +#define __HAL_ADC_CHSELR_CHANNEL ADC_CHSELR_CHANNEL +#define __HAL_ADC_CFGR1_REG_DISCCONTINUOUS ADC_CFGR1_REG_DISCCONTINUOUS +#define __HAL_ADC_CFGR1_AUTOOFF ADC_CFGR1_AUTOOFF +#define __HAL_ADC_CFGR1_AUTOWAIT ADC_CFGR1_AUTOWAIT +#define __HAL_ADC_CFGR1_CONTINUOUS ADC_CFGR1_CONTINUOUS +#define __HAL_ADC_CFGR1_OVERRUN ADC_CFGR1_OVERRUN +#define __HAL_ADC_CFGR1_SCANDIR ADC_CFGR1_SCANDIR +#define __HAL_ADC_CFGR1_DMACONTREQ ADC_CFGR1_DMACONTREQ + +/** + * @} + */ + +/** @defgroup HAL_DAC_Aliased_Macros HAL DAC Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_DHR12R1_ALIGNEMENT DAC_DHR12R1_ALIGNMENT +#define __HAL_DHR12R2_ALIGNEMENT DAC_DHR12R2_ALIGNMENT +#define __HAL_DHR12RD_ALIGNEMENT DAC_DHR12RD_ALIGNMENT +#define IS_DAC_GENERATE_WAVE IS_DAC_WAVE + +/** + * @} + */ + +/** @defgroup HAL_DBGMCU_Aliased_Macros HAL DBGMCU Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_FREEZE_TIM1_DBGMCU __HAL_DBGMCU_FREEZE_TIM1 +#define __HAL_UNFREEZE_TIM1_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM1 +#define __HAL_FREEZE_TIM2_DBGMCU __HAL_DBGMCU_FREEZE_TIM2 +#define __HAL_UNFREEZE_TIM2_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM2 +#define __HAL_FREEZE_TIM3_DBGMCU __HAL_DBGMCU_FREEZE_TIM3 +#define __HAL_UNFREEZE_TIM3_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM3 +#define __HAL_FREEZE_TIM4_DBGMCU __HAL_DBGMCU_FREEZE_TIM4 +#define __HAL_UNFREEZE_TIM4_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM4 +#define __HAL_FREEZE_TIM5_DBGMCU __HAL_DBGMCU_FREEZE_TIM5 +#define __HAL_UNFREEZE_TIM5_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM5 +#define __HAL_FREEZE_TIM6_DBGMCU __HAL_DBGMCU_FREEZE_TIM6 +#define __HAL_UNFREEZE_TIM6_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM6 +#define __HAL_FREEZE_TIM7_DBGMCU __HAL_DBGMCU_FREEZE_TIM7 +#define __HAL_UNFREEZE_TIM7_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM7 +#define __HAL_FREEZE_TIM8_DBGMCU __HAL_DBGMCU_FREEZE_TIM8 +#define __HAL_UNFREEZE_TIM8_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM8 + +#define __HAL_FREEZE_TIM9_DBGMCU __HAL_DBGMCU_FREEZE_TIM9 +#define __HAL_UNFREEZE_TIM9_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM9 +#define __HAL_FREEZE_TIM10_DBGMCU __HAL_DBGMCU_FREEZE_TIM10 +#define __HAL_UNFREEZE_TIM10_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM10 +#define __HAL_FREEZE_TIM11_DBGMCU __HAL_DBGMCU_FREEZE_TIM11 +#define __HAL_UNFREEZE_TIM11_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM11 +#define __HAL_FREEZE_TIM12_DBGMCU __HAL_DBGMCU_FREEZE_TIM12 +#define __HAL_UNFREEZE_TIM12_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM12 +#define __HAL_FREEZE_TIM13_DBGMCU __HAL_DBGMCU_FREEZE_TIM13 +#define __HAL_UNFREEZE_TIM13_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM13 +#define __HAL_FREEZE_TIM14_DBGMCU __HAL_DBGMCU_FREEZE_TIM14 +#define __HAL_UNFREEZE_TIM14_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM14 +#define __HAL_FREEZE_CAN2_DBGMCU __HAL_DBGMCU_FREEZE_CAN2 +#define __HAL_UNFREEZE_CAN2_DBGMCU __HAL_DBGMCU_UNFREEZE_CAN2 + + +#define __HAL_FREEZE_TIM15_DBGMCU __HAL_DBGMCU_FREEZE_TIM15 +#define __HAL_UNFREEZE_TIM15_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM15 +#define __HAL_FREEZE_TIM16_DBGMCU __HAL_DBGMCU_FREEZE_TIM16 +#define __HAL_UNFREEZE_TIM16_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM16 +#define __HAL_FREEZE_TIM17_DBGMCU __HAL_DBGMCU_FREEZE_TIM17 +#define __HAL_UNFREEZE_TIM17_DBGMCU __HAL_DBGMCU_UNFREEZE_TIM17 +#define __HAL_FREEZE_RTC_DBGMCU __HAL_DBGMCU_FREEZE_RTC +#define __HAL_UNFREEZE_RTC_DBGMCU __HAL_DBGMCU_UNFREEZE_RTC +#if defined(STM32H7) +#define __HAL_FREEZE_WWDG_DBGMCU __HAL_DBGMCU_FREEZE_WWDG1 +#define __HAL_UNFREEZE_WWDG_DBGMCU __HAL_DBGMCU_UnFreeze_WWDG1 +#define __HAL_FREEZE_IWDG_DBGMCU __HAL_DBGMCU_FREEZE_IWDG1 +#define __HAL_UNFREEZE_IWDG_DBGMCU __HAL_DBGMCU_UnFreeze_IWDG1 +#else +#define __HAL_FREEZE_WWDG_DBGMCU __HAL_DBGMCU_FREEZE_WWDG +#define __HAL_UNFREEZE_WWDG_DBGMCU __HAL_DBGMCU_UNFREEZE_WWDG +#define __HAL_FREEZE_IWDG_DBGMCU __HAL_DBGMCU_FREEZE_IWDG +#define __HAL_UNFREEZE_IWDG_DBGMCU __HAL_DBGMCU_UNFREEZE_IWDG +#endif /* STM32H7 */ +#define __HAL_FREEZE_I2C1_TIMEOUT_DBGMCU __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT +#define __HAL_UNFREEZE_I2C1_TIMEOUT_DBGMCU __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT +#define __HAL_FREEZE_I2C2_TIMEOUT_DBGMCU __HAL_DBGMCU_FREEZE_I2C2_TIMEOUT +#define __HAL_UNFREEZE_I2C2_TIMEOUT_DBGMCU __HAL_DBGMCU_UNFREEZE_I2C2_TIMEOUT +#define __HAL_FREEZE_I2C3_TIMEOUT_DBGMCU __HAL_DBGMCU_FREEZE_I2C3_TIMEOUT +#define __HAL_UNFREEZE_I2C3_TIMEOUT_DBGMCU __HAL_DBGMCU_UNFREEZE_I2C3_TIMEOUT +#define __HAL_FREEZE_CAN1_DBGMCU __HAL_DBGMCU_FREEZE_CAN1 +#define __HAL_UNFREEZE_CAN1_DBGMCU __HAL_DBGMCU_UNFREEZE_CAN1 +#define __HAL_FREEZE_LPTIM1_DBGMCU __HAL_DBGMCU_FREEZE_LPTIM1 +#define __HAL_UNFREEZE_LPTIM1_DBGMCU __HAL_DBGMCU_UNFREEZE_LPTIM1 +#define __HAL_FREEZE_LPTIM2_DBGMCU __HAL_DBGMCU_FREEZE_LPTIM2 +#define __HAL_UNFREEZE_LPTIM2_DBGMCU __HAL_DBGMCU_UNFREEZE_LPTIM2 + +/** + * @} + */ + +/** @defgroup HAL_COMP_Aliased_Macros HAL COMP Aliased Macros maintained for legacy purpose + * @{ + */ +#if defined(STM32F3) +#define COMP_START __HAL_COMP_ENABLE +#define COMP_STOP __HAL_COMP_DISABLE +#define COMP_LOCK __HAL_COMP_LOCK + +#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) || defined(STM32F303x8) || \ + defined(STM32F334x8) || defined(STM32F328xx) +#define __HAL_COMP_EXTI_RISING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_RISING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_RISING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_RISING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_ENABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_IT() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_IT()) +#define __HAL_COMP_EXTI_DISABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_IT() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_IT()) +#define __HAL_COMP_EXTI_GET_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_GET_FLAG() : \ + __HAL_COMP_COMP6_EXTI_GET_FLAG()) +#define __HAL_COMP_EXTI_CLEAR_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_CLEAR_FLAG() : \ + __HAL_COMP_COMP6_EXTI_CLEAR_FLAG()) +#endif +#if defined(STM32F302xE) || defined(STM32F302xC) +#define __HAL_COMP_EXTI_RISING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_RISING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_RISING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_RISING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_ENABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_IT() : \ + __HAL_COMP_COMP6_EXTI_ENABLE_IT()) +#define __HAL_COMP_EXTI_DISABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_IT() : \ + __HAL_COMP_COMP6_EXTI_DISABLE_IT()) +#define __HAL_COMP_EXTI_GET_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_GET_FLAG() : \ + __HAL_COMP_COMP6_EXTI_GET_FLAG()) +#define __HAL_COMP_EXTI_CLEAR_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_CLEAR_FLAG() : \ + __HAL_COMP_COMP6_EXTI_CLEAR_FLAG()) +#endif +#if defined(STM32F303xE) || defined(STM32F398xx) || defined(STM32F303xC) || defined(STM32F358xx) +#define __HAL_COMP_EXTI_RISING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_ENABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_ENABLE_RISING_EDGE() : \ + __HAL_COMP_COMP7_EXTI_ENABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_RISING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_DISABLE_RISING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_DISABLE_RISING_EDGE() : \ + __HAL_COMP_COMP7_EXTI_DISABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_ENABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_ENABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP7_EXTI_ENABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_DISABLE_FALLING_EDGE() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_DISABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP7_EXTI_DISABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_ENABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_ENABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_ENABLE_IT() : \ + __HAL_COMP_COMP7_EXTI_ENABLE_IT()) +#define __HAL_COMP_EXTI_DISABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_DISABLE_IT() : \ + ((__EXTILINE__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_DISABLE_IT() : \ + __HAL_COMP_COMP7_EXTI_DISABLE_IT()) +#define __HAL_COMP_EXTI_GET_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_GET_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_GET_FLAG() : \ + __HAL_COMP_COMP7_EXTI_GET_FLAG()) +#define __HAL_COMP_EXTI_CLEAR_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP2) ? __HAL_COMP_COMP2_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP3) ? __HAL_COMP_COMP3_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP4) ? __HAL_COMP_COMP4_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP5) ? __HAL_COMP_COMP5_EXTI_CLEAR_FLAG() : \ + ((__FLAG__) == COMP_EXTI_LINE_COMP6) ? __HAL_COMP_COMP6_EXTI_CLEAR_FLAG() : \ + __HAL_COMP_COMP7_EXTI_CLEAR_FLAG()) +#endif +#if defined(STM32F373xC) ||defined(STM32F378xx) +#define __HAL_COMP_EXTI_RISING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_RISING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_ENABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_IT() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_IT()) +#define __HAL_COMP_EXTI_DISABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_IT() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_IT()) +#define __HAL_COMP_EXTI_GET_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_GET_FLAG() : \ + __HAL_COMP_COMP2_EXTI_GET_FLAG()) +#define __HAL_COMP_EXTI_CLEAR_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() : \ + __HAL_COMP_COMP2_EXTI_CLEAR_FLAG()) +#endif +#else +#define __HAL_COMP_EXTI_RISING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_RISING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_ENABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_FALLING_IT_DISABLE(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE()) +#define __HAL_COMP_EXTI_ENABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_ENABLE_IT() : \ + __HAL_COMP_COMP2_EXTI_ENABLE_IT()) +#define __HAL_COMP_EXTI_DISABLE_IT(__EXTILINE__) (((__EXTILINE__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_DISABLE_IT() : \ + __HAL_COMP_COMP2_EXTI_DISABLE_IT()) +#define __HAL_COMP_EXTI_GET_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_GET_FLAG() : \ + __HAL_COMP_COMP2_EXTI_GET_FLAG()) +#define __HAL_COMP_EXTI_CLEAR_FLAG(__FLAG__) (((__FLAG__) == COMP_EXTI_LINE_COMP1) ? __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() : \ + __HAL_COMP_COMP2_EXTI_CLEAR_FLAG()) +#endif + +#define __HAL_COMP_GET_EXTI_LINE COMP_GET_EXTI_LINE + +#if defined(STM32L0) || defined(STM32L4) +/* Note: On these STM32 families, the only argument of this macro */ +/* is COMP_FLAG_LOCK. */ +/* This macro is replaced by __HAL_COMP_IS_LOCKED with only HAL handle */ +/* argument. */ +#define __HAL_COMP_GET_FLAG(__HANDLE__, __FLAG__) (__HAL_COMP_IS_LOCKED(__HANDLE__)) +#endif +/** + * @} + */ + +#if defined(STM32L0) || defined(STM32L4) +/** @defgroup HAL_COMP_Aliased_Functions HAL COMP Aliased Functions maintained for legacy purpose + * @{ + */ +#define HAL_COMP_Start_IT HAL_COMP_Start /* Function considered as legacy as EXTI event or IT configuration is + done into HAL_COMP_Init() */ +#define HAL_COMP_Stop_IT HAL_COMP_Stop /* Function considered as legacy as EXTI event or IT configuration is + done into HAL_COMP_Init() */ +/** + * @} + */ +#endif + +/** @defgroup HAL_DAC_Aliased_Macros HAL DAC Aliased Macros maintained for legacy purpose + * @{ + */ + +#define IS_DAC_WAVE(WAVE) (((WAVE) == DAC_WAVE_NONE) || \ + ((WAVE) == DAC_WAVE_NOISE)|| \ + ((WAVE) == DAC_WAVE_TRIANGLE)) + +/** + * @} + */ + +/** @defgroup HAL_FLASH_Aliased_Macros HAL FLASH Aliased Macros maintained for legacy purpose + * @{ + */ + +#define IS_WRPAREA IS_OB_WRPAREA +#define IS_TYPEPROGRAM IS_FLASH_TYPEPROGRAM +#define IS_TYPEPROGRAMFLASH IS_FLASH_TYPEPROGRAM +#define IS_TYPEERASE IS_FLASH_TYPEERASE +#define IS_NBSECTORS IS_FLASH_NBSECTORS +#define IS_OB_WDG_SOURCE IS_OB_IWDG_SOURCE + +/** + * @} + */ + +/** @defgroup HAL_I2C_Aliased_Macros HAL I2C Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __HAL_I2C_RESET_CR2 I2C_RESET_CR2 +#define __HAL_I2C_GENERATE_START I2C_GENERATE_START +#if defined(STM32F1) +#define __HAL_I2C_FREQ_RANGE I2C_FREQRANGE +#else +#define __HAL_I2C_FREQ_RANGE I2C_FREQ_RANGE +#endif /* STM32F1 */ +#define __HAL_I2C_RISE_TIME I2C_RISE_TIME +#define __HAL_I2C_SPEED_STANDARD I2C_SPEED_STANDARD +#define __HAL_I2C_SPEED_FAST I2C_SPEED_FAST +#define __HAL_I2C_SPEED I2C_SPEED +#define __HAL_I2C_7BIT_ADD_WRITE I2C_7BIT_ADD_WRITE +#define __HAL_I2C_7BIT_ADD_READ I2C_7BIT_ADD_READ +#define __HAL_I2C_10BIT_ADDRESS I2C_10BIT_ADDRESS +#define __HAL_I2C_10BIT_HEADER_WRITE I2C_10BIT_HEADER_WRITE +#define __HAL_I2C_10BIT_HEADER_READ I2C_10BIT_HEADER_READ +#define __HAL_I2C_MEM_ADD_MSB I2C_MEM_ADD_MSB +#define __HAL_I2C_MEM_ADD_LSB I2C_MEM_ADD_LSB +#define __HAL_I2C_FREQRANGE I2C_FREQRANGE +/** + * @} + */ + +/** @defgroup HAL_I2S_Aliased_Macros HAL I2S Aliased Macros maintained for legacy purpose + * @{ + */ + +#define IS_I2S_INSTANCE IS_I2S_ALL_INSTANCE +#define IS_I2S_INSTANCE_EXT IS_I2S_ALL_INSTANCE_EXT + +#if defined(STM32H7) +#define __HAL_I2S_CLEAR_FREFLAG __HAL_I2S_CLEAR_TIFREFLAG +#endif + +/** + * @} + */ + +/** @defgroup HAL_IRDA_Aliased_Macros HAL IRDA Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __IRDA_DISABLE __HAL_IRDA_DISABLE +#define __IRDA_ENABLE __HAL_IRDA_ENABLE + +#define __HAL_IRDA_GETCLOCKSOURCE IRDA_GETCLOCKSOURCE +#define __HAL_IRDA_MASK_COMPUTATION IRDA_MASK_COMPUTATION +#define __IRDA_GETCLOCKSOURCE IRDA_GETCLOCKSOURCE +#define __IRDA_MASK_COMPUTATION IRDA_MASK_COMPUTATION + +#define IS_IRDA_ONEBIT_SAMPLE IS_IRDA_ONE_BIT_SAMPLE + + +/** + * @} + */ + + +/** @defgroup HAL_IWDG_Aliased_Macros HAL IWDG Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_IWDG_ENABLE_WRITE_ACCESS IWDG_ENABLE_WRITE_ACCESS +#define __HAL_IWDG_DISABLE_WRITE_ACCESS IWDG_DISABLE_WRITE_ACCESS +/** + * @} + */ + + +/** @defgroup HAL_LPTIM_Aliased_Macros HAL LPTIM Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __HAL_LPTIM_ENABLE_INTERRUPT __HAL_LPTIM_ENABLE_IT +#define __HAL_LPTIM_DISABLE_INTERRUPT __HAL_LPTIM_DISABLE_IT +#define __HAL_LPTIM_GET_ITSTATUS __HAL_LPTIM_GET_IT_SOURCE + +/** + * @} + */ + + +/** @defgroup HAL_OPAMP_Aliased_Macros HAL OPAMP Aliased Macros maintained for legacy purpose + * @{ + */ +#define __OPAMP_CSR_OPAXPD OPAMP_CSR_OPAXPD +#define __OPAMP_CSR_S3SELX OPAMP_CSR_S3SELX +#define __OPAMP_CSR_S4SELX OPAMP_CSR_S4SELX +#define __OPAMP_CSR_S5SELX OPAMP_CSR_S5SELX +#define __OPAMP_CSR_S6SELX OPAMP_CSR_S6SELX +#define __OPAMP_CSR_OPAXCAL_L OPAMP_CSR_OPAXCAL_L +#define __OPAMP_CSR_OPAXCAL_H OPAMP_CSR_OPAXCAL_H +#define __OPAMP_CSR_OPAXLPM OPAMP_CSR_OPAXLPM +#define __OPAMP_CSR_ALL_SWITCHES OPAMP_CSR_ALL_SWITCHES +#define __OPAMP_CSR_ANAWSELX OPAMP_CSR_ANAWSELX +#define __OPAMP_CSR_OPAXCALOUT OPAMP_CSR_OPAXCALOUT +#define __OPAMP_OFFSET_TRIM_BITSPOSITION OPAMP_OFFSET_TRIM_BITSPOSITION +#define __OPAMP_OFFSET_TRIM_SET OPAMP_OFFSET_TRIM_SET + +/** + * @} + */ + + +/** @defgroup HAL_PWR_Aliased_Macros HAL PWR Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_PVD_EVENT_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_EVENT +#define __HAL_PVD_EVENT_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_EVENT +#define __HAL_PVD_EXTI_FALLINGTRIGGER_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE +#define __HAL_PVD_EXTI_FALLINGTRIGGER_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE +#define __HAL_PVD_EXTI_RISINGTRIGGER_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE +#define __HAL_PVD_EXTI_RISINGTRIGGER_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE +#define __HAL_PVM_EVENT_DISABLE __HAL_PWR_PVM_EVENT_DISABLE +#define __HAL_PVM_EVENT_ENABLE __HAL_PWR_PVM_EVENT_ENABLE +#define __HAL_PVM_EXTI_FALLINGTRIGGER_DISABLE __HAL_PWR_PVM_EXTI_FALLINGTRIGGER_DISABLE +#define __HAL_PVM_EXTI_FALLINGTRIGGER_ENABLE __HAL_PWR_PVM_EXTI_FALLINGTRIGGER_ENABLE +#define __HAL_PVM_EXTI_RISINGTRIGGER_DISABLE __HAL_PWR_PVM_EXTI_RISINGTRIGGER_DISABLE +#define __HAL_PVM_EXTI_RISINGTRIGGER_ENABLE __HAL_PWR_PVM_EXTI_RISINGTRIGGER_ENABLE +#define __HAL_PWR_INTERNALWAKEUP_DISABLE HAL_PWREx_DisableInternalWakeUpLine +#define __HAL_PWR_INTERNALWAKEUP_ENABLE HAL_PWREx_EnableInternalWakeUpLine +#define __HAL_PWR_PULL_UP_DOWN_CONFIG_DISABLE HAL_PWREx_DisablePullUpPullDownConfig +#define __HAL_PWR_PULL_UP_DOWN_CONFIG_ENABLE HAL_PWREx_EnablePullUpPullDownConfig +#define __HAL_PWR_PVD_EXTI_CLEAR_EGDE_TRIGGER() do { __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE(); \ + __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE(); \ + } while(0) +#define __HAL_PWR_PVD_EXTI_EVENT_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_EVENT +#define __HAL_PWR_PVD_EXTI_EVENT_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_EVENT +#define __HAL_PWR_PVD_EXTI_FALLINGTRIGGER_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE +#define __HAL_PWR_PVD_EXTI_FALLINGTRIGGER_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE +#define __HAL_PWR_PVD_EXTI_RISINGTRIGGER_DISABLE __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE +#define __HAL_PWR_PVD_EXTI_RISINGTRIGGER_ENABLE __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE +#define __HAL_PWR_PVD_EXTI_SET_FALLING_EGDE_TRIGGER __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE +#define __HAL_PWR_PVD_EXTI_SET_RISING_EDGE_TRIGGER __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE +#define __HAL_PWR_PVM_DISABLE() do { HAL_PWREx_DisablePVM1();HAL_PWREx_DisablePVM2(); \ + HAL_PWREx_DisablePVM3();HAL_PWREx_DisablePVM4(); \ + } while(0) +#define __HAL_PWR_PVM_ENABLE() do { HAL_PWREx_EnablePVM1();HAL_PWREx_EnablePVM2(); \ + HAL_PWREx_EnablePVM3();HAL_PWREx_EnablePVM4(); \ + } while(0) +#define __HAL_PWR_SRAM2CONTENT_PRESERVE_DISABLE HAL_PWREx_DisableSRAM2ContentRetention +#define __HAL_PWR_SRAM2CONTENT_PRESERVE_ENABLE HAL_PWREx_EnableSRAM2ContentRetention +#define __HAL_PWR_VDDIO2_DISABLE HAL_PWREx_DisableVddIO2 +#define __HAL_PWR_VDDIO2_ENABLE HAL_PWREx_EnableVddIO2 +#define __HAL_PWR_VDDIO2_EXTI_CLEAR_EGDE_TRIGGER __HAL_PWR_VDDIO2_EXTI_DISABLE_FALLING_EDGE +#define __HAL_PWR_VDDIO2_EXTI_SET_FALLING_EGDE_TRIGGER __HAL_PWR_VDDIO2_EXTI_ENABLE_FALLING_EDGE +#define __HAL_PWR_VDDUSB_DISABLE HAL_PWREx_DisableVddUSB +#define __HAL_PWR_VDDUSB_ENABLE HAL_PWREx_EnableVddUSB + +#if defined (STM32F4) +#define __HAL_PVD_EXTI_ENABLE_IT(PWR_EXTI_LINE_PVD) __HAL_PWR_PVD_EXTI_ENABLE_IT() +#define __HAL_PVD_EXTI_DISABLE_IT(PWR_EXTI_LINE_PVD) __HAL_PWR_PVD_EXTI_DISABLE_IT() +#define __HAL_PVD_EXTI_GET_FLAG(PWR_EXTI_LINE_PVD) __HAL_PWR_PVD_EXTI_GET_FLAG() +#define __HAL_PVD_EXTI_CLEAR_FLAG(PWR_EXTI_LINE_PVD) __HAL_PWR_PVD_EXTI_CLEAR_FLAG() +#define __HAL_PVD_EXTI_GENERATE_SWIT(PWR_EXTI_LINE_PVD) __HAL_PWR_PVD_EXTI_GENERATE_SWIT() +#else +#define __HAL_PVD_EXTI_CLEAR_FLAG __HAL_PWR_PVD_EXTI_CLEAR_FLAG +#define __HAL_PVD_EXTI_DISABLE_IT __HAL_PWR_PVD_EXTI_DISABLE_IT +#define __HAL_PVD_EXTI_ENABLE_IT __HAL_PWR_PVD_EXTI_ENABLE_IT +#define __HAL_PVD_EXTI_GENERATE_SWIT __HAL_PWR_PVD_EXTI_GENERATE_SWIT +#define __HAL_PVD_EXTI_GET_FLAG __HAL_PWR_PVD_EXTI_GET_FLAG +#endif /* STM32F4 */ +/** + * @} + */ + + +/** @defgroup HAL_RCC_Aliased HAL RCC Aliased maintained for legacy purpose + * @{ + */ + +#define RCC_StopWakeUpClock_MSI RCC_STOP_WAKEUPCLOCK_MSI +#define RCC_StopWakeUpClock_HSI RCC_STOP_WAKEUPCLOCK_HSI + +#define HAL_RCC_CCSCallback HAL_RCC_CSSCallback +#define HAL_RC48_EnableBuffer_Cmd(cmd) (((cmd)==ENABLE) ? \ + HAL_RCCEx_EnableHSI48_VREFINT() : HAL_RCCEx_DisableHSI48_VREFINT()) + +#define __ADC_CLK_DISABLE __HAL_RCC_ADC_CLK_DISABLE +#define __ADC_CLK_ENABLE __HAL_RCC_ADC_CLK_ENABLE +#define __ADC_CLK_SLEEP_DISABLE __HAL_RCC_ADC_CLK_SLEEP_DISABLE +#define __ADC_CLK_SLEEP_ENABLE __HAL_RCC_ADC_CLK_SLEEP_ENABLE +#define __ADC_FORCE_RESET __HAL_RCC_ADC_FORCE_RESET +#define __ADC_RELEASE_RESET __HAL_RCC_ADC_RELEASE_RESET +#define __ADC1_CLK_DISABLE __HAL_RCC_ADC1_CLK_DISABLE +#define __ADC1_CLK_ENABLE __HAL_RCC_ADC1_CLK_ENABLE +#define __ADC1_FORCE_RESET __HAL_RCC_ADC1_FORCE_RESET +#define __ADC1_RELEASE_RESET __HAL_RCC_ADC1_RELEASE_RESET +#define __ADC1_CLK_SLEEP_ENABLE __HAL_RCC_ADC1_CLK_SLEEP_ENABLE +#define __ADC1_CLK_SLEEP_DISABLE __HAL_RCC_ADC1_CLK_SLEEP_DISABLE +#define __ADC2_CLK_DISABLE __HAL_RCC_ADC2_CLK_DISABLE +#define __ADC2_CLK_ENABLE __HAL_RCC_ADC2_CLK_ENABLE +#define __ADC2_FORCE_RESET __HAL_RCC_ADC2_FORCE_RESET +#define __ADC2_RELEASE_RESET __HAL_RCC_ADC2_RELEASE_RESET +#define __ADC3_CLK_DISABLE __HAL_RCC_ADC3_CLK_DISABLE +#define __ADC3_CLK_ENABLE __HAL_RCC_ADC3_CLK_ENABLE +#define __ADC3_FORCE_RESET __HAL_RCC_ADC3_FORCE_RESET +#define __ADC3_RELEASE_RESET __HAL_RCC_ADC3_RELEASE_RESET +#define __AES_CLK_DISABLE __HAL_RCC_AES_CLK_DISABLE +#define __AES_CLK_ENABLE __HAL_RCC_AES_CLK_ENABLE +#define __AES_CLK_SLEEP_DISABLE __HAL_RCC_AES_CLK_SLEEP_DISABLE +#define __AES_CLK_SLEEP_ENABLE __HAL_RCC_AES_CLK_SLEEP_ENABLE +#define __AES_FORCE_RESET __HAL_RCC_AES_FORCE_RESET +#define __AES_RELEASE_RESET __HAL_RCC_AES_RELEASE_RESET +#define __CRYP_CLK_SLEEP_ENABLE __HAL_RCC_CRYP_CLK_SLEEP_ENABLE +#define __CRYP_CLK_SLEEP_DISABLE __HAL_RCC_CRYP_CLK_SLEEP_DISABLE +#define __CRYP_CLK_ENABLE __HAL_RCC_CRYP_CLK_ENABLE +#define __CRYP_CLK_DISABLE __HAL_RCC_CRYP_CLK_DISABLE +#define __CRYP_FORCE_RESET __HAL_RCC_CRYP_FORCE_RESET +#define __CRYP_RELEASE_RESET __HAL_RCC_CRYP_RELEASE_RESET +#define __AFIO_CLK_DISABLE __HAL_RCC_AFIO_CLK_DISABLE +#define __AFIO_CLK_ENABLE __HAL_RCC_AFIO_CLK_ENABLE +#define __AFIO_FORCE_RESET __HAL_RCC_AFIO_FORCE_RESET +#define __AFIO_RELEASE_RESET __HAL_RCC_AFIO_RELEASE_RESET +#define __AHB_FORCE_RESET __HAL_RCC_AHB_FORCE_RESET +#define __AHB_RELEASE_RESET __HAL_RCC_AHB_RELEASE_RESET +#define __AHB1_FORCE_RESET __HAL_RCC_AHB1_FORCE_RESET +#define __AHB1_RELEASE_RESET __HAL_RCC_AHB1_RELEASE_RESET +#define __AHB2_FORCE_RESET __HAL_RCC_AHB2_FORCE_RESET +#define __AHB2_RELEASE_RESET __HAL_RCC_AHB2_RELEASE_RESET +#define __AHB3_FORCE_RESET __HAL_RCC_AHB3_FORCE_RESET +#define __AHB3_RELEASE_RESET __HAL_RCC_AHB3_RELEASE_RESET +#define __APB1_FORCE_RESET __HAL_RCC_APB1_FORCE_RESET +#define __APB1_RELEASE_RESET __HAL_RCC_APB1_RELEASE_RESET +#define __APB2_FORCE_RESET __HAL_RCC_APB2_FORCE_RESET +#define __APB2_RELEASE_RESET __HAL_RCC_APB2_RELEASE_RESET +#if defined(STM32C0) +#define __HAL_RCC_APB1_FORCE_RESET __HAL_RCC_APB1_GRP1_FORCE_RESET +#define __HAL_RCC_APB1_RELEASE_RESET __HAL_RCC_APB1_GRP1_RELEASE_RESET +#define __HAL_RCC_APB2_FORCE_RESET __HAL_RCC_APB1_GRP2_FORCE_RESET +#define __HAL_RCC_APB2_RELEASE_RESET __HAL_RCC_APB1_GRP2_RELEASE_RESET +#endif /* STM32C0 */ +#define __BKP_CLK_DISABLE __HAL_RCC_BKP_CLK_DISABLE +#define __BKP_CLK_ENABLE __HAL_RCC_BKP_CLK_ENABLE +#define __BKP_FORCE_RESET __HAL_RCC_BKP_FORCE_RESET +#define __BKP_RELEASE_RESET __HAL_RCC_BKP_RELEASE_RESET +#define __CAN1_CLK_DISABLE __HAL_RCC_CAN1_CLK_DISABLE +#define __CAN1_CLK_ENABLE __HAL_RCC_CAN1_CLK_ENABLE +#define __CAN1_CLK_SLEEP_DISABLE __HAL_RCC_CAN1_CLK_SLEEP_DISABLE +#define __CAN1_CLK_SLEEP_ENABLE __HAL_RCC_CAN1_CLK_SLEEP_ENABLE +#define __CAN1_FORCE_RESET __HAL_RCC_CAN1_FORCE_RESET +#define __CAN1_RELEASE_RESET __HAL_RCC_CAN1_RELEASE_RESET +#define __CAN_CLK_DISABLE __HAL_RCC_CAN1_CLK_DISABLE +#define __CAN_CLK_ENABLE __HAL_RCC_CAN1_CLK_ENABLE +#define __CAN_FORCE_RESET __HAL_RCC_CAN1_FORCE_RESET +#define __CAN_RELEASE_RESET __HAL_RCC_CAN1_RELEASE_RESET +#define __CAN2_CLK_DISABLE __HAL_RCC_CAN2_CLK_DISABLE +#define __CAN2_CLK_ENABLE __HAL_RCC_CAN2_CLK_ENABLE +#define __CAN2_FORCE_RESET __HAL_RCC_CAN2_FORCE_RESET +#define __CAN2_RELEASE_RESET __HAL_RCC_CAN2_RELEASE_RESET +#define __CEC_CLK_DISABLE __HAL_RCC_CEC_CLK_DISABLE +#define __CEC_CLK_ENABLE __HAL_RCC_CEC_CLK_ENABLE +#define __COMP_CLK_DISABLE __HAL_RCC_COMP_CLK_DISABLE +#define __COMP_CLK_ENABLE __HAL_RCC_COMP_CLK_ENABLE +#define __COMP_FORCE_RESET __HAL_RCC_COMP_FORCE_RESET +#define __COMP_RELEASE_RESET __HAL_RCC_COMP_RELEASE_RESET +#define __COMP_CLK_SLEEP_ENABLE __HAL_RCC_COMP_CLK_SLEEP_ENABLE +#define __COMP_CLK_SLEEP_DISABLE __HAL_RCC_COMP_CLK_SLEEP_DISABLE +#define __CEC_FORCE_RESET __HAL_RCC_CEC_FORCE_RESET +#define __CEC_RELEASE_RESET __HAL_RCC_CEC_RELEASE_RESET +#define __CRC_CLK_DISABLE __HAL_RCC_CRC_CLK_DISABLE +#define __CRC_CLK_ENABLE __HAL_RCC_CRC_CLK_ENABLE +#define __CRC_CLK_SLEEP_DISABLE __HAL_RCC_CRC_CLK_SLEEP_DISABLE +#define __CRC_CLK_SLEEP_ENABLE __HAL_RCC_CRC_CLK_SLEEP_ENABLE +#define __CRC_FORCE_RESET __HAL_RCC_CRC_FORCE_RESET +#define __CRC_RELEASE_RESET __HAL_RCC_CRC_RELEASE_RESET +#define __DAC_CLK_DISABLE __HAL_RCC_DAC_CLK_DISABLE +#define __DAC_CLK_ENABLE __HAL_RCC_DAC_CLK_ENABLE +#define __DAC_FORCE_RESET __HAL_RCC_DAC_FORCE_RESET +#define __DAC_RELEASE_RESET __HAL_RCC_DAC_RELEASE_RESET +#define __DAC1_CLK_DISABLE __HAL_RCC_DAC1_CLK_DISABLE +#define __DAC1_CLK_ENABLE __HAL_RCC_DAC1_CLK_ENABLE +#define __DAC1_CLK_SLEEP_DISABLE __HAL_RCC_DAC1_CLK_SLEEP_DISABLE +#define __DAC1_CLK_SLEEP_ENABLE __HAL_RCC_DAC1_CLK_SLEEP_ENABLE +#define __DAC1_FORCE_RESET __HAL_RCC_DAC1_FORCE_RESET +#define __DAC1_RELEASE_RESET __HAL_RCC_DAC1_RELEASE_RESET +#define __DBGMCU_CLK_ENABLE __HAL_RCC_DBGMCU_CLK_ENABLE +#define __DBGMCU_CLK_DISABLE __HAL_RCC_DBGMCU_CLK_DISABLE +#define __DBGMCU_FORCE_RESET __HAL_RCC_DBGMCU_FORCE_RESET +#define __DBGMCU_RELEASE_RESET __HAL_RCC_DBGMCU_RELEASE_RESET +#define __DFSDM_CLK_DISABLE __HAL_RCC_DFSDM_CLK_DISABLE +#define __DFSDM_CLK_ENABLE __HAL_RCC_DFSDM_CLK_ENABLE +#define __DFSDM_CLK_SLEEP_DISABLE __HAL_RCC_DFSDM_CLK_SLEEP_DISABLE +#define __DFSDM_CLK_SLEEP_ENABLE __HAL_RCC_DFSDM_CLK_SLEEP_ENABLE +#define __DFSDM_FORCE_RESET __HAL_RCC_DFSDM_FORCE_RESET +#define __DFSDM_RELEASE_RESET __HAL_RCC_DFSDM_RELEASE_RESET +#define __DMA1_CLK_DISABLE __HAL_RCC_DMA1_CLK_DISABLE +#define __DMA1_CLK_ENABLE __HAL_RCC_DMA1_CLK_ENABLE +#define __DMA1_CLK_SLEEP_DISABLE __HAL_RCC_DMA1_CLK_SLEEP_DISABLE +#define __DMA1_CLK_SLEEP_ENABLE __HAL_RCC_DMA1_CLK_SLEEP_ENABLE +#define __DMA1_FORCE_RESET __HAL_RCC_DMA1_FORCE_RESET +#define __DMA1_RELEASE_RESET __HAL_RCC_DMA1_RELEASE_RESET +#define __DMA2_CLK_DISABLE __HAL_RCC_DMA2_CLK_DISABLE +#define __DMA2_CLK_ENABLE __HAL_RCC_DMA2_CLK_ENABLE +#define __DMA2_CLK_SLEEP_DISABLE __HAL_RCC_DMA2_CLK_SLEEP_DISABLE +#define __DMA2_CLK_SLEEP_ENABLE __HAL_RCC_DMA2_CLK_SLEEP_ENABLE +#define __DMA2_FORCE_RESET __HAL_RCC_DMA2_FORCE_RESET +#define __DMA2_RELEASE_RESET __HAL_RCC_DMA2_RELEASE_RESET +#define __ETHMAC_CLK_DISABLE __HAL_RCC_ETHMAC_CLK_DISABLE +#define __ETHMAC_CLK_ENABLE __HAL_RCC_ETHMAC_CLK_ENABLE +#define __ETHMAC_FORCE_RESET __HAL_RCC_ETHMAC_FORCE_RESET +#define __ETHMAC_RELEASE_RESET __HAL_RCC_ETHMAC_RELEASE_RESET +#define __ETHMACRX_CLK_DISABLE __HAL_RCC_ETHMACRX_CLK_DISABLE +#define __ETHMACRX_CLK_ENABLE __HAL_RCC_ETHMACRX_CLK_ENABLE +#define __ETHMACTX_CLK_DISABLE __HAL_RCC_ETHMACTX_CLK_DISABLE +#define __ETHMACTX_CLK_ENABLE __HAL_RCC_ETHMACTX_CLK_ENABLE +#define __FIREWALL_CLK_DISABLE __HAL_RCC_FIREWALL_CLK_DISABLE +#define __FIREWALL_CLK_ENABLE __HAL_RCC_FIREWALL_CLK_ENABLE +#define __FLASH_CLK_DISABLE __HAL_RCC_FLASH_CLK_DISABLE +#define __FLASH_CLK_ENABLE __HAL_RCC_FLASH_CLK_ENABLE +#define __FLASH_CLK_SLEEP_DISABLE __HAL_RCC_FLASH_CLK_SLEEP_DISABLE +#define __FLASH_CLK_SLEEP_ENABLE __HAL_RCC_FLASH_CLK_SLEEP_ENABLE +#define __FLASH_FORCE_RESET __HAL_RCC_FLASH_FORCE_RESET +#define __FLASH_RELEASE_RESET __HAL_RCC_FLASH_RELEASE_RESET +#define __FLITF_CLK_DISABLE __HAL_RCC_FLITF_CLK_DISABLE +#define __FLITF_CLK_ENABLE __HAL_RCC_FLITF_CLK_ENABLE +#define __FLITF_FORCE_RESET __HAL_RCC_FLITF_FORCE_RESET +#define __FLITF_RELEASE_RESET __HAL_RCC_FLITF_RELEASE_RESET +#define __FLITF_CLK_SLEEP_ENABLE __HAL_RCC_FLITF_CLK_SLEEP_ENABLE +#define __FLITF_CLK_SLEEP_DISABLE __HAL_RCC_FLITF_CLK_SLEEP_DISABLE +#define __FMC_CLK_DISABLE __HAL_RCC_FMC_CLK_DISABLE +#define __FMC_CLK_ENABLE __HAL_RCC_FMC_CLK_ENABLE +#define __FMC_CLK_SLEEP_DISABLE __HAL_RCC_FMC_CLK_SLEEP_DISABLE +#define __FMC_CLK_SLEEP_ENABLE __HAL_RCC_FMC_CLK_SLEEP_ENABLE +#define __FMC_FORCE_RESET __HAL_RCC_FMC_FORCE_RESET +#define __FMC_RELEASE_RESET __HAL_RCC_FMC_RELEASE_RESET +#define __FSMC_CLK_DISABLE __HAL_RCC_FSMC_CLK_DISABLE +#define __FSMC_CLK_ENABLE __HAL_RCC_FSMC_CLK_ENABLE +#define __GPIOA_CLK_DISABLE __HAL_RCC_GPIOA_CLK_DISABLE +#define __GPIOA_CLK_ENABLE __HAL_RCC_GPIOA_CLK_ENABLE +#define __GPIOA_CLK_SLEEP_DISABLE __HAL_RCC_GPIOA_CLK_SLEEP_DISABLE +#define __GPIOA_CLK_SLEEP_ENABLE __HAL_RCC_GPIOA_CLK_SLEEP_ENABLE +#define __GPIOA_FORCE_RESET __HAL_RCC_GPIOA_FORCE_RESET +#define __GPIOA_RELEASE_RESET __HAL_RCC_GPIOA_RELEASE_RESET +#define __GPIOB_CLK_DISABLE __HAL_RCC_GPIOB_CLK_DISABLE +#define __GPIOB_CLK_ENABLE __HAL_RCC_GPIOB_CLK_ENABLE +#define __GPIOB_CLK_SLEEP_DISABLE __HAL_RCC_GPIOB_CLK_SLEEP_DISABLE +#define __GPIOB_CLK_SLEEP_ENABLE __HAL_RCC_GPIOB_CLK_SLEEP_ENABLE +#define __GPIOB_FORCE_RESET __HAL_RCC_GPIOB_FORCE_RESET +#define __GPIOB_RELEASE_RESET __HAL_RCC_GPIOB_RELEASE_RESET +#define __GPIOC_CLK_DISABLE __HAL_RCC_GPIOC_CLK_DISABLE +#define __GPIOC_CLK_ENABLE __HAL_RCC_GPIOC_CLK_ENABLE +#define __GPIOC_CLK_SLEEP_DISABLE __HAL_RCC_GPIOC_CLK_SLEEP_DISABLE +#define __GPIOC_CLK_SLEEP_ENABLE __HAL_RCC_GPIOC_CLK_SLEEP_ENABLE +#define __GPIOC_FORCE_RESET __HAL_RCC_GPIOC_FORCE_RESET +#define __GPIOC_RELEASE_RESET __HAL_RCC_GPIOC_RELEASE_RESET +#define __GPIOD_CLK_DISABLE __HAL_RCC_GPIOD_CLK_DISABLE +#define __GPIOD_CLK_ENABLE __HAL_RCC_GPIOD_CLK_ENABLE +#define __GPIOD_CLK_SLEEP_DISABLE __HAL_RCC_GPIOD_CLK_SLEEP_DISABLE +#define __GPIOD_CLK_SLEEP_ENABLE __HAL_RCC_GPIOD_CLK_SLEEP_ENABLE +#define __GPIOD_FORCE_RESET __HAL_RCC_GPIOD_FORCE_RESET +#define __GPIOD_RELEASE_RESET __HAL_RCC_GPIOD_RELEASE_RESET +#define __GPIOE_CLK_DISABLE __HAL_RCC_GPIOE_CLK_DISABLE +#define __GPIOE_CLK_ENABLE __HAL_RCC_GPIOE_CLK_ENABLE +#define __GPIOE_CLK_SLEEP_DISABLE __HAL_RCC_GPIOE_CLK_SLEEP_DISABLE +#define __GPIOE_CLK_SLEEP_ENABLE __HAL_RCC_GPIOE_CLK_SLEEP_ENABLE +#define __GPIOE_FORCE_RESET __HAL_RCC_GPIOE_FORCE_RESET +#define __GPIOE_RELEASE_RESET __HAL_RCC_GPIOE_RELEASE_RESET +#define __GPIOF_CLK_DISABLE __HAL_RCC_GPIOF_CLK_DISABLE +#define __GPIOF_CLK_ENABLE __HAL_RCC_GPIOF_CLK_ENABLE +#define __GPIOF_CLK_SLEEP_DISABLE __HAL_RCC_GPIOF_CLK_SLEEP_DISABLE +#define __GPIOF_CLK_SLEEP_ENABLE __HAL_RCC_GPIOF_CLK_SLEEP_ENABLE +#define __GPIOF_FORCE_RESET __HAL_RCC_GPIOF_FORCE_RESET +#define __GPIOF_RELEASE_RESET __HAL_RCC_GPIOF_RELEASE_RESET +#define __GPIOG_CLK_DISABLE __HAL_RCC_GPIOG_CLK_DISABLE +#define __GPIOG_CLK_ENABLE __HAL_RCC_GPIOG_CLK_ENABLE +#define __GPIOG_CLK_SLEEP_DISABLE __HAL_RCC_GPIOG_CLK_SLEEP_DISABLE +#define __GPIOG_CLK_SLEEP_ENABLE __HAL_RCC_GPIOG_CLK_SLEEP_ENABLE +#define __GPIOG_FORCE_RESET __HAL_RCC_GPIOG_FORCE_RESET +#define __GPIOG_RELEASE_RESET __HAL_RCC_GPIOG_RELEASE_RESET +#define __GPIOH_CLK_DISABLE __HAL_RCC_GPIOH_CLK_DISABLE +#define __GPIOH_CLK_ENABLE __HAL_RCC_GPIOH_CLK_ENABLE +#define __GPIOH_CLK_SLEEP_DISABLE __HAL_RCC_GPIOH_CLK_SLEEP_DISABLE +#define __GPIOH_CLK_SLEEP_ENABLE __HAL_RCC_GPIOH_CLK_SLEEP_ENABLE +#define __GPIOH_FORCE_RESET __HAL_RCC_GPIOH_FORCE_RESET +#define __GPIOH_RELEASE_RESET __HAL_RCC_GPIOH_RELEASE_RESET +#define __I2C1_CLK_DISABLE __HAL_RCC_I2C1_CLK_DISABLE +#define __I2C1_CLK_ENABLE __HAL_RCC_I2C1_CLK_ENABLE +#define __I2C1_CLK_SLEEP_DISABLE __HAL_RCC_I2C1_CLK_SLEEP_DISABLE +#define __I2C1_CLK_SLEEP_ENABLE __HAL_RCC_I2C1_CLK_SLEEP_ENABLE +#define __I2C1_FORCE_RESET __HAL_RCC_I2C1_FORCE_RESET +#define __I2C1_RELEASE_RESET __HAL_RCC_I2C1_RELEASE_RESET +#define __I2C2_CLK_DISABLE __HAL_RCC_I2C2_CLK_DISABLE +#define __I2C2_CLK_ENABLE __HAL_RCC_I2C2_CLK_ENABLE +#define __I2C2_CLK_SLEEP_DISABLE __HAL_RCC_I2C2_CLK_SLEEP_DISABLE +#define __I2C2_CLK_SLEEP_ENABLE __HAL_RCC_I2C2_CLK_SLEEP_ENABLE +#define __I2C2_FORCE_RESET __HAL_RCC_I2C2_FORCE_RESET +#define __I2C2_RELEASE_RESET __HAL_RCC_I2C2_RELEASE_RESET +#define __I2C3_CLK_DISABLE __HAL_RCC_I2C3_CLK_DISABLE +#define __I2C3_CLK_ENABLE __HAL_RCC_I2C3_CLK_ENABLE +#define __I2C3_CLK_SLEEP_DISABLE __HAL_RCC_I2C3_CLK_SLEEP_DISABLE +#define __I2C3_CLK_SLEEP_ENABLE __HAL_RCC_I2C3_CLK_SLEEP_ENABLE +#define __I2C3_FORCE_RESET __HAL_RCC_I2C3_FORCE_RESET +#define __I2C3_RELEASE_RESET __HAL_RCC_I2C3_RELEASE_RESET +#define __LCD_CLK_DISABLE __HAL_RCC_LCD_CLK_DISABLE +#define __LCD_CLK_ENABLE __HAL_RCC_LCD_CLK_ENABLE +#define __LCD_CLK_SLEEP_DISABLE __HAL_RCC_LCD_CLK_SLEEP_DISABLE +#define __LCD_CLK_SLEEP_ENABLE __HAL_RCC_LCD_CLK_SLEEP_ENABLE +#define __LCD_FORCE_RESET __HAL_RCC_LCD_FORCE_RESET +#define __LCD_RELEASE_RESET __HAL_RCC_LCD_RELEASE_RESET +#define __LPTIM1_CLK_DISABLE __HAL_RCC_LPTIM1_CLK_DISABLE +#define __LPTIM1_CLK_ENABLE __HAL_RCC_LPTIM1_CLK_ENABLE +#define __LPTIM1_CLK_SLEEP_DISABLE __HAL_RCC_LPTIM1_CLK_SLEEP_DISABLE +#define __LPTIM1_CLK_SLEEP_ENABLE __HAL_RCC_LPTIM1_CLK_SLEEP_ENABLE +#define __LPTIM1_FORCE_RESET __HAL_RCC_LPTIM1_FORCE_RESET +#define __LPTIM1_RELEASE_RESET __HAL_RCC_LPTIM1_RELEASE_RESET +#define __LPTIM2_CLK_DISABLE __HAL_RCC_LPTIM2_CLK_DISABLE +#define __LPTIM2_CLK_ENABLE __HAL_RCC_LPTIM2_CLK_ENABLE +#define __LPTIM2_CLK_SLEEP_DISABLE __HAL_RCC_LPTIM2_CLK_SLEEP_DISABLE +#define __LPTIM2_CLK_SLEEP_ENABLE __HAL_RCC_LPTIM2_CLK_SLEEP_ENABLE +#define __LPTIM2_FORCE_RESET __HAL_RCC_LPTIM2_FORCE_RESET +#define __LPTIM2_RELEASE_RESET __HAL_RCC_LPTIM2_RELEASE_RESET +#define __LPUART1_CLK_DISABLE __HAL_RCC_LPUART1_CLK_DISABLE +#define __LPUART1_CLK_ENABLE __HAL_RCC_LPUART1_CLK_ENABLE +#define __LPUART1_CLK_SLEEP_DISABLE __HAL_RCC_LPUART1_CLK_SLEEP_DISABLE +#define __LPUART1_CLK_SLEEP_ENABLE __HAL_RCC_LPUART1_CLK_SLEEP_ENABLE +#define __LPUART1_FORCE_RESET __HAL_RCC_LPUART1_FORCE_RESET +#define __LPUART1_RELEASE_RESET __HAL_RCC_LPUART1_RELEASE_RESET +#define __OPAMP_CLK_DISABLE __HAL_RCC_OPAMP_CLK_DISABLE +#define __OPAMP_CLK_ENABLE __HAL_RCC_OPAMP_CLK_ENABLE +#define __OPAMP_CLK_SLEEP_DISABLE __HAL_RCC_OPAMP_CLK_SLEEP_DISABLE +#define __OPAMP_CLK_SLEEP_ENABLE __HAL_RCC_OPAMP_CLK_SLEEP_ENABLE +#define __OPAMP_FORCE_RESET __HAL_RCC_OPAMP_FORCE_RESET +#define __OPAMP_RELEASE_RESET __HAL_RCC_OPAMP_RELEASE_RESET +#define __OTGFS_CLK_DISABLE __HAL_RCC_OTGFS_CLK_DISABLE +#define __OTGFS_CLK_ENABLE __HAL_RCC_OTGFS_CLK_ENABLE +#define __OTGFS_CLK_SLEEP_DISABLE __HAL_RCC_OTGFS_CLK_SLEEP_DISABLE +#define __OTGFS_CLK_SLEEP_ENABLE __HAL_RCC_OTGFS_CLK_SLEEP_ENABLE +#define __OTGFS_FORCE_RESET __HAL_RCC_OTGFS_FORCE_RESET +#define __OTGFS_RELEASE_RESET __HAL_RCC_OTGFS_RELEASE_RESET +#define __PWR_CLK_DISABLE __HAL_RCC_PWR_CLK_DISABLE +#define __PWR_CLK_ENABLE __HAL_RCC_PWR_CLK_ENABLE +#define __PWR_CLK_SLEEP_DISABLE __HAL_RCC_PWR_CLK_SLEEP_DISABLE +#define __PWR_CLK_SLEEP_ENABLE __HAL_RCC_PWR_CLK_SLEEP_ENABLE +#define __PWR_FORCE_RESET __HAL_RCC_PWR_FORCE_RESET +#define __PWR_RELEASE_RESET __HAL_RCC_PWR_RELEASE_RESET +#define __QSPI_CLK_DISABLE __HAL_RCC_QSPI_CLK_DISABLE +#define __QSPI_CLK_ENABLE __HAL_RCC_QSPI_CLK_ENABLE +#define __QSPI_CLK_SLEEP_DISABLE __HAL_RCC_QSPI_CLK_SLEEP_DISABLE +#define __QSPI_CLK_SLEEP_ENABLE __HAL_RCC_QSPI_CLK_SLEEP_ENABLE +#define __QSPI_FORCE_RESET __HAL_RCC_QSPI_FORCE_RESET +#define __QSPI_RELEASE_RESET __HAL_RCC_QSPI_RELEASE_RESET + +#if defined(STM32WB) +#define __HAL_RCC_QSPI_CLK_DISABLE __HAL_RCC_QUADSPI_CLK_DISABLE +#define __HAL_RCC_QSPI_CLK_ENABLE __HAL_RCC_QUADSPI_CLK_ENABLE +#define __HAL_RCC_QSPI_CLK_SLEEP_DISABLE __HAL_RCC_QUADSPI_CLK_SLEEP_DISABLE +#define __HAL_RCC_QSPI_CLK_SLEEP_ENABLE __HAL_RCC_QUADSPI_CLK_SLEEP_ENABLE +#define __HAL_RCC_QSPI_FORCE_RESET __HAL_RCC_QUADSPI_FORCE_RESET +#define __HAL_RCC_QSPI_RELEASE_RESET __HAL_RCC_QUADSPI_RELEASE_RESET +#define __HAL_RCC_QSPI_IS_CLK_ENABLED __HAL_RCC_QUADSPI_IS_CLK_ENABLED +#define __HAL_RCC_QSPI_IS_CLK_DISABLED __HAL_RCC_QUADSPI_IS_CLK_DISABLED +#define __HAL_RCC_QSPI_IS_CLK_SLEEP_ENABLED __HAL_RCC_QUADSPI_IS_CLK_SLEEP_ENABLED +#define __HAL_RCC_QSPI_IS_CLK_SLEEP_DISABLED __HAL_RCC_QUADSPI_IS_CLK_SLEEP_DISABLED +#define QSPI_IRQHandler QUADSPI_IRQHandler +#endif /* __HAL_RCC_QUADSPI_CLK_ENABLE */ + +#define __RNG_CLK_DISABLE __HAL_RCC_RNG_CLK_DISABLE +#define __RNG_CLK_ENABLE __HAL_RCC_RNG_CLK_ENABLE +#define __RNG_CLK_SLEEP_DISABLE __HAL_RCC_RNG_CLK_SLEEP_DISABLE +#define __RNG_CLK_SLEEP_ENABLE __HAL_RCC_RNG_CLK_SLEEP_ENABLE +#define __RNG_FORCE_RESET __HAL_RCC_RNG_FORCE_RESET +#define __RNG_RELEASE_RESET __HAL_RCC_RNG_RELEASE_RESET +#define __SAI1_CLK_DISABLE __HAL_RCC_SAI1_CLK_DISABLE +#define __SAI1_CLK_ENABLE __HAL_RCC_SAI1_CLK_ENABLE +#define __SAI1_CLK_SLEEP_DISABLE __HAL_RCC_SAI1_CLK_SLEEP_DISABLE +#define __SAI1_CLK_SLEEP_ENABLE __HAL_RCC_SAI1_CLK_SLEEP_ENABLE +#define __SAI1_FORCE_RESET __HAL_RCC_SAI1_FORCE_RESET +#define __SAI1_RELEASE_RESET __HAL_RCC_SAI1_RELEASE_RESET +#define __SAI2_CLK_DISABLE __HAL_RCC_SAI2_CLK_DISABLE +#define __SAI2_CLK_ENABLE __HAL_RCC_SAI2_CLK_ENABLE +#define __SAI2_CLK_SLEEP_DISABLE __HAL_RCC_SAI2_CLK_SLEEP_DISABLE +#define __SAI2_CLK_SLEEP_ENABLE __HAL_RCC_SAI2_CLK_SLEEP_ENABLE +#define __SAI2_FORCE_RESET __HAL_RCC_SAI2_FORCE_RESET +#define __SAI2_RELEASE_RESET __HAL_RCC_SAI2_RELEASE_RESET +#define __SDIO_CLK_DISABLE __HAL_RCC_SDIO_CLK_DISABLE +#define __SDIO_CLK_ENABLE __HAL_RCC_SDIO_CLK_ENABLE +#define __SDMMC_CLK_DISABLE __HAL_RCC_SDMMC_CLK_DISABLE +#define __SDMMC_CLK_ENABLE __HAL_RCC_SDMMC_CLK_ENABLE +#define __SDMMC_CLK_SLEEP_DISABLE __HAL_RCC_SDMMC_CLK_SLEEP_DISABLE +#define __SDMMC_CLK_SLEEP_ENABLE __HAL_RCC_SDMMC_CLK_SLEEP_ENABLE +#define __SDMMC_FORCE_RESET __HAL_RCC_SDMMC_FORCE_RESET +#define __SDMMC_RELEASE_RESET __HAL_RCC_SDMMC_RELEASE_RESET +#define __SPI1_CLK_DISABLE __HAL_RCC_SPI1_CLK_DISABLE +#define __SPI1_CLK_ENABLE __HAL_RCC_SPI1_CLK_ENABLE +#define __SPI1_CLK_SLEEP_DISABLE __HAL_RCC_SPI1_CLK_SLEEP_DISABLE +#define __SPI1_CLK_SLEEP_ENABLE __HAL_RCC_SPI1_CLK_SLEEP_ENABLE +#define __SPI1_FORCE_RESET __HAL_RCC_SPI1_FORCE_RESET +#define __SPI1_RELEASE_RESET __HAL_RCC_SPI1_RELEASE_RESET +#define __SPI2_CLK_DISABLE __HAL_RCC_SPI2_CLK_DISABLE +#define __SPI2_CLK_ENABLE __HAL_RCC_SPI2_CLK_ENABLE +#define __SPI2_CLK_SLEEP_DISABLE __HAL_RCC_SPI2_CLK_SLEEP_DISABLE +#define __SPI2_CLK_SLEEP_ENABLE __HAL_RCC_SPI2_CLK_SLEEP_ENABLE +#define __SPI2_FORCE_RESET __HAL_RCC_SPI2_FORCE_RESET +#define __SPI2_RELEASE_RESET __HAL_RCC_SPI2_RELEASE_RESET +#define __SPI3_CLK_DISABLE __HAL_RCC_SPI3_CLK_DISABLE +#define __SPI3_CLK_ENABLE __HAL_RCC_SPI3_CLK_ENABLE +#define __SPI3_CLK_SLEEP_DISABLE __HAL_RCC_SPI3_CLK_SLEEP_DISABLE +#define __SPI3_CLK_SLEEP_ENABLE __HAL_RCC_SPI3_CLK_SLEEP_ENABLE +#define __SPI3_FORCE_RESET __HAL_RCC_SPI3_FORCE_RESET +#define __SPI3_RELEASE_RESET __HAL_RCC_SPI3_RELEASE_RESET +#define __SRAM_CLK_DISABLE __HAL_RCC_SRAM_CLK_DISABLE +#define __SRAM_CLK_ENABLE __HAL_RCC_SRAM_CLK_ENABLE +#define __SRAM1_CLK_SLEEP_DISABLE __HAL_RCC_SRAM1_CLK_SLEEP_DISABLE +#define __SRAM1_CLK_SLEEP_ENABLE __HAL_RCC_SRAM1_CLK_SLEEP_ENABLE +#define __SRAM2_CLK_SLEEP_DISABLE __HAL_RCC_SRAM2_CLK_SLEEP_DISABLE +#define __SRAM2_CLK_SLEEP_ENABLE __HAL_RCC_SRAM2_CLK_SLEEP_ENABLE +#define __SWPMI1_CLK_DISABLE __HAL_RCC_SWPMI1_CLK_DISABLE +#define __SWPMI1_CLK_ENABLE __HAL_RCC_SWPMI1_CLK_ENABLE +#define __SWPMI1_CLK_SLEEP_DISABLE __HAL_RCC_SWPMI1_CLK_SLEEP_DISABLE +#define __SWPMI1_CLK_SLEEP_ENABLE __HAL_RCC_SWPMI1_CLK_SLEEP_ENABLE +#define __SWPMI1_FORCE_RESET __HAL_RCC_SWPMI1_FORCE_RESET +#define __SWPMI1_RELEASE_RESET __HAL_RCC_SWPMI1_RELEASE_RESET +#define __SYSCFG_CLK_DISABLE __HAL_RCC_SYSCFG_CLK_DISABLE +#define __SYSCFG_CLK_ENABLE __HAL_RCC_SYSCFG_CLK_ENABLE +#define __SYSCFG_CLK_SLEEP_DISABLE __HAL_RCC_SYSCFG_CLK_SLEEP_DISABLE +#define __SYSCFG_CLK_SLEEP_ENABLE __HAL_RCC_SYSCFG_CLK_SLEEP_ENABLE +#define __SYSCFG_FORCE_RESET __HAL_RCC_SYSCFG_FORCE_RESET +#define __SYSCFG_RELEASE_RESET __HAL_RCC_SYSCFG_RELEASE_RESET +#define __TIM1_CLK_DISABLE __HAL_RCC_TIM1_CLK_DISABLE +#define __TIM1_CLK_ENABLE __HAL_RCC_TIM1_CLK_ENABLE +#define __TIM1_CLK_SLEEP_DISABLE __HAL_RCC_TIM1_CLK_SLEEP_DISABLE +#define __TIM1_CLK_SLEEP_ENABLE __HAL_RCC_TIM1_CLK_SLEEP_ENABLE +#define __TIM1_FORCE_RESET __HAL_RCC_TIM1_FORCE_RESET +#define __TIM1_RELEASE_RESET __HAL_RCC_TIM1_RELEASE_RESET +#define __TIM10_CLK_DISABLE __HAL_RCC_TIM10_CLK_DISABLE +#define __TIM10_CLK_ENABLE __HAL_RCC_TIM10_CLK_ENABLE +#define __TIM10_FORCE_RESET __HAL_RCC_TIM10_FORCE_RESET +#define __TIM10_RELEASE_RESET __HAL_RCC_TIM10_RELEASE_RESET +#define __TIM11_CLK_DISABLE __HAL_RCC_TIM11_CLK_DISABLE +#define __TIM11_CLK_ENABLE __HAL_RCC_TIM11_CLK_ENABLE +#define __TIM11_FORCE_RESET __HAL_RCC_TIM11_FORCE_RESET +#define __TIM11_RELEASE_RESET __HAL_RCC_TIM11_RELEASE_RESET +#define __TIM12_CLK_DISABLE __HAL_RCC_TIM12_CLK_DISABLE +#define __TIM12_CLK_ENABLE __HAL_RCC_TIM12_CLK_ENABLE +#define __TIM12_FORCE_RESET __HAL_RCC_TIM12_FORCE_RESET +#define __TIM12_RELEASE_RESET __HAL_RCC_TIM12_RELEASE_RESET +#define __TIM13_CLK_DISABLE __HAL_RCC_TIM13_CLK_DISABLE +#define __TIM13_CLK_ENABLE __HAL_RCC_TIM13_CLK_ENABLE +#define __TIM13_FORCE_RESET __HAL_RCC_TIM13_FORCE_RESET +#define __TIM13_RELEASE_RESET __HAL_RCC_TIM13_RELEASE_RESET +#define __TIM14_CLK_DISABLE __HAL_RCC_TIM14_CLK_DISABLE +#define __TIM14_CLK_ENABLE __HAL_RCC_TIM14_CLK_ENABLE +#define __TIM14_FORCE_RESET __HAL_RCC_TIM14_FORCE_RESET +#define __TIM14_RELEASE_RESET __HAL_RCC_TIM14_RELEASE_RESET +#define __TIM15_CLK_DISABLE __HAL_RCC_TIM15_CLK_DISABLE +#define __TIM15_CLK_ENABLE __HAL_RCC_TIM15_CLK_ENABLE +#define __TIM15_CLK_SLEEP_DISABLE __HAL_RCC_TIM15_CLK_SLEEP_DISABLE +#define __TIM15_CLK_SLEEP_ENABLE __HAL_RCC_TIM15_CLK_SLEEP_ENABLE +#define __TIM15_FORCE_RESET __HAL_RCC_TIM15_FORCE_RESET +#define __TIM15_RELEASE_RESET __HAL_RCC_TIM15_RELEASE_RESET +#define __TIM16_CLK_DISABLE __HAL_RCC_TIM16_CLK_DISABLE +#define __TIM16_CLK_ENABLE __HAL_RCC_TIM16_CLK_ENABLE +#define __TIM16_CLK_SLEEP_DISABLE __HAL_RCC_TIM16_CLK_SLEEP_DISABLE +#define __TIM16_CLK_SLEEP_ENABLE __HAL_RCC_TIM16_CLK_SLEEP_ENABLE +#define __TIM16_FORCE_RESET __HAL_RCC_TIM16_FORCE_RESET +#define __TIM16_RELEASE_RESET __HAL_RCC_TIM16_RELEASE_RESET +#define __TIM17_CLK_DISABLE __HAL_RCC_TIM17_CLK_DISABLE +#define __TIM17_CLK_ENABLE __HAL_RCC_TIM17_CLK_ENABLE +#define __TIM17_CLK_SLEEP_DISABLE __HAL_RCC_TIM17_CLK_SLEEP_DISABLE +#define __TIM17_CLK_SLEEP_ENABLE __HAL_RCC_TIM17_CLK_SLEEP_ENABLE +#define __TIM17_FORCE_RESET __HAL_RCC_TIM17_FORCE_RESET +#define __TIM17_RELEASE_RESET __HAL_RCC_TIM17_RELEASE_RESET +#define __TIM2_CLK_DISABLE __HAL_RCC_TIM2_CLK_DISABLE +#define __TIM2_CLK_ENABLE __HAL_RCC_TIM2_CLK_ENABLE +#define __TIM2_CLK_SLEEP_DISABLE __HAL_RCC_TIM2_CLK_SLEEP_DISABLE +#define __TIM2_CLK_SLEEP_ENABLE __HAL_RCC_TIM2_CLK_SLEEP_ENABLE +#define __TIM2_FORCE_RESET __HAL_RCC_TIM2_FORCE_RESET +#define __TIM2_RELEASE_RESET __HAL_RCC_TIM2_RELEASE_RESET +#define __TIM3_CLK_DISABLE __HAL_RCC_TIM3_CLK_DISABLE +#define __TIM3_CLK_ENABLE __HAL_RCC_TIM3_CLK_ENABLE +#define __TIM3_CLK_SLEEP_DISABLE __HAL_RCC_TIM3_CLK_SLEEP_DISABLE +#define __TIM3_CLK_SLEEP_ENABLE __HAL_RCC_TIM3_CLK_SLEEP_ENABLE +#define __TIM3_FORCE_RESET __HAL_RCC_TIM3_FORCE_RESET +#define __TIM3_RELEASE_RESET __HAL_RCC_TIM3_RELEASE_RESET +#define __TIM4_CLK_DISABLE __HAL_RCC_TIM4_CLK_DISABLE +#define __TIM4_CLK_ENABLE __HAL_RCC_TIM4_CLK_ENABLE +#define __TIM4_CLK_SLEEP_DISABLE __HAL_RCC_TIM4_CLK_SLEEP_DISABLE +#define __TIM4_CLK_SLEEP_ENABLE __HAL_RCC_TIM4_CLK_SLEEP_ENABLE +#define __TIM4_FORCE_RESET __HAL_RCC_TIM4_FORCE_RESET +#define __TIM4_RELEASE_RESET __HAL_RCC_TIM4_RELEASE_RESET +#define __TIM5_CLK_DISABLE __HAL_RCC_TIM5_CLK_DISABLE +#define __TIM5_CLK_ENABLE __HAL_RCC_TIM5_CLK_ENABLE +#define __TIM5_CLK_SLEEP_DISABLE __HAL_RCC_TIM5_CLK_SLEEP_DISABLE +#define __TIM5_CLK_SLEEP_ENABLE __HAL_RCC_TIM5_CLK_SLEEP_ENABLE +#define __TIM5_FORCE_RESET __HAL_RCC_TIM5_FORCE_RESET +#define __TIM5_RELEASE_RESET __HAL_RCC_TIM5_RELEASE_RESET +#define __TIM6_CLK_DISABLE __HAL_RCC_TIM6_CLK_DISABLE +#define __TIM6_CLK_ENABLE __HAL_RCC_TIM6_CLK_ENABLE +#define __TIM6_CLK_SLEEP_DISABLE __HAL_RCC_TIM6_CLK_SLEEP_DISABLE +#define __TIM6_CLK_SLEEP_ENABLE __HAL_RCC_TIM6_CLK_SLEEP_ENABLE +#define __TIM6_FORCE_RESET __HAL_RCC_TIM6_FORCE_RESET +#define __TIM6_RELEASE_RESET __HAL_RCC_TIM6_RELEASE_RESET +#define __TIM7_CLK_DISABLE __HAL_RCC_TIM7_CLK_DISABLE +#define __TIM7_CLK_ENABLE __HAL_RCC_TIM7_CLK_ENABLE +#define __TIM7_CLK_SLEEP_DISABLE __HAL_RCC_TIM7_CLK_SLEEP_DISABLE +#define __TIM7_CLK_SLEEP_ENABLE __HAL_RCC_TIM7_CLK_SLEEP_ENABLE +#define __TIM7_FORCE_RESET __HAL_RCC_TIM7_FORCE_RESET +#define __TIM7_RELEASE_RESET __HAL_RCC_TIM7_RELEASE_RESET +#define __TIM8_CLK_DISABLE __HAL_RCC_TIM8_CLK_DISABLE +#define __TIM8_CLK_ENABLE __HAL_RCC_TIM8_CLK_ENABLE +#define __TIM8_CLK_SLEEP_DISABLE __HAL_RCC_TIM8_CLK_SLEEP_DISABLE +#define __TIM8_CLK_SLEEP_ENABLE __HAL_RCC_TIM8_CLK_SLEEP_ENABLE +#define __TIM8_FORCE_RESET __HAL_RCC_TIM8_FORCE_RESET +#define __TIM8_RELEASE_RESET __HAL_RCC_TIM8_RELEASE_RESET +#define __TIM9_CLK_DISABLE __HAL_RCC_TIM9_CLK_DISABLE +#define __TIM9_CLK_ENABLE __HAL_RCC_TIM9_CLK_ENABLE +#define __TIM9_FORCE_RESET __HAL_RCC_TIM9_FORCE_RESET +#define __TIM9_RELEASE_RESET __HAL_RCC_TIM9_RELEASE_RESET +#define __TSC_CLK_DISABLE __HAL_RCC_TSC_CLK_DISABLE +#define __TSC_CLK_ENABLE __HAL_RCC_TSC_CLK_ENABLE +#define __TSC_CLK_SLEEP_DISABLE __HAL_RCC_TSC_CLK_SLEEP_DISABLE +#define __TSC_CLK_SLEEP_ENABLE __HAL_RCC_TSC_CLK_SLEEP_ENABLE +#define __TSC_FORCE_RESET __HAL_RCC_TSC_FORCE_RESET +#define __TSC_RELEASE_RESET __HAL_RCC_TSC_RELEASE_RESET +#define __UART4_CLK_DISABLE __HAL_RCC_UART4_CLK_DISABLE +#define __UART4_CLK_ENABLE __HAL_RCC_UART4_CLK_ENABLE +#define __UART4_CLK_SLEEP_DISABLE __HAL_RCC_UART4_CLK_SLEEP_DISABLE +#define __UART4_CLK_SLEEP_ENABLE __HAL_RCC_UART4_CLK_SLEEP_ENABLE +#define __UART4_FORCE_RESET __HAL_RCC_UART4_FORCE_RESET +#define __UART4_RELEASE_RESET __HAL_RCC_UART4_RELEASE_RESET +#define __UART5_CLK_DISABLE __HAL_RCC_UART5_CLK_DISABLE +#define __UART5_CLK_ENABLE __HAL_RCC_UART5_CLK_ENABLE +#define __UART5_CLK_SLEEP_DISABLE __HAL_RCC_UART5_CLK_SLEEP_DISABLE +#define __UART5_CLK_SLEEP_ENABLE __HAL_RCC_UART5_CLK_SLEEP_ENABLE +#define __UART5_FORCE_RESET __HAL_RCC_UART5_FORCE_RESET +#define __UART5_RELEASE_RESET __HAL_RCC_UART5_RELEASE_RESET +#define __USART1_CLK_DISABLE __HAL_RCC_USART1_CLK_DISABLE +#define __USART1_CLK_ENABLE __HAL_RCC_USART1_CLK_ENABLE +#define __USART1_CLK_SLEEP_DISABLE __HAL_RCC_USART1_CLK_SLEEP_DISABLE +#define __USART1_CLK_SLEEP_ENABLE __HAL_RCC_USART1_CLK_SLEEP_ENABLE +#define __USART1_FORCE_RESET __HAL_RCC_USART1_FORCE_RESET +#define __USART1_RELEASE_RESET __HAL_RCC_USART1_RELEASE_RESET +#define __USART2_CLK_DISABLE __HAL_RCC_USART2_CLK_DISABLE +#define __USART2_CLK_ENABLE __HAL_RCC_USART2_CLK_ENABLE +#define __USART2_CLK_SLEEP_DISABLE __HAL_RCC_USART2_CLK_SLEEP_DISABLE +#define __USART2_CLK_SLEEP_ENABLE __HAL_RCC_USART2_CLK_SLEEP_ENABLE +#define __USART2_FORCE_RESET __HAL_RCC_USART2_FORCE_RESET +#define __USART2_RELEASE_RESET __HAL_RCC_USART2_RELEASE_RESET +#define __USART3_CLK_DISABLE __HAL_RCC_USART3_CLK_DISABLE +#define __USART3_CLK_ENABLE __HAL_RCC_USART3_CLK_ENABLE +#define __USART3_CLK_SLEEP_DISABLE __HAL_RCC_USART3_CLK_SLEEP_DISABLE +#define __USART3_CLK_SLEEP_ENABLE __HAL_RCC_USART3_CLK_SLEEP_ENABLE +#define __USART3_FORCE_RESET __HAL_RCC_USART3_FORCE_RESET +#define __USART3_RELEASE_RESET __HAL_RCC_USART3_RELEASE_RESET +#define __USART4_CLK_DISABLE __HAL_RCC_UART4_CLK_DISABLE +#define __USART4_CLK_ENABLE __HAL_RCC_UART4_CLK_ENABLE +#define __USART4_CLK_SLEEP_ENABLE __HAL_RCC_UART4_CLK_SLEEP_ENABLE +#define __USART4_CLK_SLEEP_DISABLE __HAL_RCC_UART4_CLK_SLEEP_DISABLE +#define __USART4_FORCE_RESET __HAL_RCC_UART4_FORCE_RESET +#define __USART4_RELEASE_RESET __HAL_RCC_UART4_RELEASE_RESET +#define __USART5_CLK_DISABLE __HAL_RCC_UART5_CLK_DISABLE +#define __USART5_CLK_ENABLE __HAL_RCC_UART5_CLK_ENABLE +#define __USART5_CLK_SLEEP_ENABLE __HAL_RCC_UART5_CLK_SLEEP_ENABLE +#define __USART5_CLK_SLEEP_DISABLE __HAL_RCC_UART5_CLK_SLEEP_DISABLE +#define __USART5_FORCE_RESET __HAL_RCC_UART5_FORCE_RESET +#define __USART5_RELEASE_RESET __HAL_RCC_UART5_RELEASE_RESET +#define __USART7_CLK_DISABLE __HAL_RCC_UART7_CLK_DISABLE +#define __USART7_CLK_ENABLE __HAL_RCC_UART7_CLK_ENABLE +#define __USART7_FORCE_RESET __HAL_RCC_UART7_FORCE_RESET +#define __USART7_RELEASE_RESET __HAL_RCC_UART7_RELEASE_RESET +#define __USART8_CLK_DISABLE __HAL_RCC_UART8_CLK_DISABLE +#define __USART8_CLK_ENABLE __HAL_RCC_UART8_CLK_ENABLE +#define __USART8_FORCE_RESET __HAL_RCC_UART8_FORCE_RESET +#define __USART8_RELEASE_RESET __HAL_RCC_UART8_RELEASE_RESET +#define __USB_CLK_DISABLE __HAL_RCC_USB_CLK_DISABLE +#define __USB_CLK_ENABLE __HAL_RCC_USB_CLK_ENABLE +#define __USB_FORCE_RESET __HAL_RCC_USB_FORCE_RESET +#define __USB_CLK_SLEEP_ENABLE __HAL_RCC_USB_CLK_SLEEP_ENABLE +#define __USB_CLK_SLEEP_DISABLE __HAL_RCC_USB_CLK_SLEEP_DISABLE +#define __USB_OTG_FS_CLK_DISABLE __HAL_RCC_USB_OTG_FS_CLK_DISABLE +#define __USB_OTG_FS_CLK_ENABLE __HAL_RCC_USB_OTG_FS_CLK_ENABLE +#define __USB_RELEASE_RESET __HAL_RCC_USB_RELEASE_RESET + +#if defined(STM32H7) +#define __HAL_RCC_WWDG_CLK_DISABLE __HAL_RCC_WWDG1_CLK_DISABLE +#define __HAL_RCC_WWDG_CLK_ENABLE __HAL_RCC_WWDG1_CLK_ENABLE +#define __HAL_RCC_WWDG_CLK_SLEEP_DISABLE __HAL_RCC_WWDG1_CLK_SLEEP_DISABLE +#define __HAL_RCC_WWDG_CLK_SLEEP_ENABLE __HAL_RCC_WWDG1_CLK_SLEEP_ENABLE + +#define __HAL_RCC_WWDG_FORCE_RESET ((void)0U) /* Not available on the STM32H7*/ +#define __HAL_RCC_WWDG_RELEASE_RESET ((void)0U) /* Not available on the STM32H7*/ + + +#define __HAL_RCC_WWDG_IS_CLK_ENABLED __HAL_RCC_WWDG1_IS_CLK_ENABLED +#define __HAL_RCC_WWDG_IS_CLK_DISABLED __HAL_RCC_WWDG1_IS_CLK_DISABLED +#define RCC_SPI4CLKSOURCE_D2PCLK1 RCC_SPI4CLKSOURCE_D2PCLK2 +#define RCC_SPI5CLKSOURCE_D2PCLK1 RCC_SPI5CLKSOURCE_D2PCLK2 +#define RCC_SPI45CLKSOURCE_D2PCLK1 RCC_SPI45CLKSOURCE_D2PCLK2 +#define RCC_SPI45CLKSOURCE_CDPCLK1 RCC_SPI45CLKSOURCE_CDPCLK2 +#define RCC_SPI45CLKSOURCE_PCLK1 RCC_SPI45CLKSOURCE_PCLK2 +#endif + +#define __WWDG_CLK_DISABLE __HAL_RCC_WWDG_CLK_DISABLE +#define __WWDG_CLK_ENABLE __HAL_RCC_WWDG_CLK_ENABLE +#define __WWDG_CLK_SLEEP_DISABLE __HAL_RCC_WWDG_CLK_SLEEP_DISABLE +#define __WWDG_CLK_SLEEP_ENABLE __HAL_RCC_WWDG_CLK_SLEEP_ENABLE +#define __WWDG_FORCE_RESET __HAL_RCC_WWDG_FORCE_RESET +#define __WWDG_RELEASE_RESET __HAL_RCC_WWDG_RELEASE_RESET + +#define __TIM21_CLK_ENABLE __HAL_RCC_TIM21_CLK_ENABLE +#define __TIM21_CLK_DISABLE __HAL_RCC_TIM21_CLK_DISABLE +#define __TIM21_FORCE_RESET __HAL_RCC_TIM21_FORCE_RESET +#define __TIM21_RELEASE_RESET __HAL_RCC_TIM21_RELEASE_RESET +#define __TIM21_CLK_SLEEP_ENABLE __HAL_RCC_TIM21_CLK_SLEEP_ENABLE +#define __TIM21_CLK_SLEEP_DISABLE __HAL_RCC_TIM21_CLK_SLEEP_DISABLE +#define __TIM22_CLK_ENABLE __HAL_RCC_TIM22_CLK_ENABLE +#define __TIM22_CLK_DISABLE __HAL_RCC_TIM22_CLK_DISABLE +#define __TIM22_FORCE_RESET __HAL_RCC_TIM22_FORCE_RESET +#define __TIM22_RELEASE_RESET __HAL_RCC_TIM22_RELEASE_RESET +#define __TIM22_CLK_SLEEP_ENABLE __HAL_RCC_TIM22_CLK_SLEEP_ENABLE +#define __TIM22_CLK_SLEEP_DISABLE __HAL_RCC_TIM22_CLK_SLEEP_DISABLE +#define __CRS_CLK_DISABLE __HAL_RCC_CRS_CLK_DISABLE +#define __CRS_CLK_ENABLE __HAL_RCC_CRS_CLK_ENABLE +#define __CRS_CLK_SLEEP_DISABLE __HAL_RCC_CRS_CLK_SLEEP_DISABLE +#define __CRS_CLK_SLEEP_ENABLE __HAL_RCC_CRS_CLK_SLEEP_ENABLE +#define __CRS_FORCE_RESET __HAL_RCC_CRS_FORCE_RESET +#define __CRS_RELEASE_RESET __HAL_RCC_CRS_RELEASE_RESET +#define __RCC_BACKUPRESET_FORCE __HAL_RCC_BACKUPRESET_FORCE +#define __RCC_BACKUPRESET_RELEASE __HAL_RCC_BACKUPRESET_RELEASE + +#define __USB_OTG_FS_FORCE_RESET __HAL_RCC_USB_OTG_FS_FORCE_RESET +#define __USB_OTG_FS_RELEASE_RESET __HAL_RCC_USB_OTG_FS_RELEASE_RESET +#define __USB_OTG_FS_CLK_SLEEP_ENABLE __HAL_RCC_USB_OTG_FS_CLK_SLEEP_ENABLE +#define __USB_OTG_FS_CLK_SLEEP_DISABLE __HAL_RCC_USB_OTG_FS_CLK_SLEEP_DISABLE +#define __USB_OTG_HS_CLK_DISABLE __HAL_RCC_USB_OTG_HS_CLK_DISABLE +#define __USB_OTG_HS_CLK_ENABLE __HAL_RCC_USB_OTG_HS_CLK_ENABLE +#define __USB_OTG_HS_ULPI_CLK_ENABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_ENABLE +#define __USB_OTG_HS_ULPI_CLK_DISABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_DISABLE +#define __TIM9_CLK_SLEEP_ENABLE __HAL_RCC_TIM9_CLK_SLEEP_ENABLE +#define __TIM9_CLK_SLEEP_DISABLE __HAL_RCC_TIM9_CLK_SLEEP_DISABLE +#define __TIM10_CLK_SLEEP_ENABLE __HAL_RCC_TIM10_CLK_SLEEP_ENABLE +#define __TIM10_CLK_SLEEP_DISABLE __HAL_RCC_TIM10_CLK_SLEEP_DISABLE +#define __TIM11_CLK_SLEEP_ENABLE __HAL_RCC_TIM11_CLK_SLEEP_ENABLE +#define __TIM11_CLK_SLEEP_DISABLE __HAL_RCC_TIM11_CLK_SLEEP_DISABLE +#define __ETHMACPTP_CLK_SLEEP_ENABLE __HAL_RCC_ETHMACPTP_CLK_SLEEP_ENABLE +#define __ETHMACPTP_CLK_SLEEP_DISABLE __HAL_RCC_ETHMACPTP_CLK_SLEEP_DISABLE +#define __ETHMACPTP_CLK_ENABLE __HAL_RCC_ETHMACPTP_CLK_ENABLE +#define __ETHMACPTP_CLK_DISABLE __HAL_RCC_ETHMACPTP_CLK_DISABLE +#define __HASH_CLK_ENABLE __HAL_RCC_HASH_CLK_ENABLE +#define __HASH_FORCE_RESET __HAL_RCC_HASH_FORCE_RESET +#define __HASH_RELEASE_RESET __HAL_RCC_HASH_RELEASE_RESET +#define __HASH_CLK_SLEEP_ENABLE __HAL_RCC_HASH_CLK_SLEEP_ENABLE +#define __HASH_CLK_SLEEP_DISABLE __HAL_RCC_HASH_CLK_SLEEP_DISABLE +#define __HASH_CLK_DISABLE __HAL_RCC_HASH_CLK_DISABLE +#define __SPI5_CLK_ENABLE __HAL_RCC_SPI5_CLK_ENABLE +#define __SPI5_CLK_DISABLE __HAL_RCC_SPI5_CLK_DISABLE +#define __SPI5_FORCE_RESET __HAL_RCC_SPI5_FORCE_RESET +#define __SPI5_RELEASE_RESET __HAL_RCC_SPI5_RELEASE_RESET +#define __SPI5_CLK_SLEEP_ENABLE __HAL_RCC_SPI5_CLK_SLEEP_ENABLE +#define __SPI5_CLK_SLEEP_DISABLE __HAL_RCC_SPI5_CLK_SLEEP_DISABLE +#define __SPI6_CLK_ENABLE __HAL_RCC_SPI6_CLK_ENABLE +#define __SPI6_CLK_DISABLE __HAL_RCC_SPI6_CLK_DISABLE +#define __SPI6_FORCE_RESET __HAL_RCC_SPI6_FORCE_RESET +#define __SPI6_RELEASE_RESET __HAL_RCC_SPI6_RELEASE_RESET +#define __SPI6_CLK_SLEEP_ENABLE __HAL_RCC_SPI6_CLK_SLEEP_ENABLE +#define __SPI6_CLK_SLEEP_DISABLE __HAL_RCC_SPI6_CLK_SLEEP_DISABLE +#define __LTDC_CLK_ENABLE __HAL_RCC_LTDC_CLK_ENABLE +#define __LTDC_CLK_DISABLE __HAL_RCC_LTDC_CLK_DISABLE +#define __LTDC_FORCE_RESET __HAL_RCC_LTDC_FORCE_RESET +#define __LTDC_RELEASE_RESET __HAL_RCC_LTDC_RELEASE_RESET +#define __LTDC_CLK_SLEEP_ENABLE __HAL_RCC_LTDC_CLK_SLEEP_ENABLE +#define __ETHMAC_CLK_SLEEP_ENABLE __HAL_RCC_ETHMAC_CLK_SLEEP_ENABLE +#define __ETHMAC_CLK_SLEEP_DISABLE __HAL_RCC_ETHMAC_CLK_SLEEP_DISABLE +#define __ETHMACTX_CLK_SLEEP_ENABLE __HAL_RCC_ETHMACTX_CLK_SLEEP_ENABLE +#define __ETHMACTX_CLK_SLEEP_DISABLE __HAL_RCC_ETHMACTX_CLK_SLEEP_DISABLE +#define __ETHMACRX_CLK_SLEEP_ENABLE __HAL_RCC_ETHMACRX_CLK_SLEEP_ENABLE +#define __ETHMACRX_CLK_SLEEP_DISABLE __HAL_RCC_ETHMACRX_CLK_SLEEP_DISABLE +#define __TIM12_CLK_SLEEP_ENABLE __HAL_RCC_TIM12_CLK_SLEEP_ENABLE +#define __TIM12_CLK_SLEEP_DISABLE __HAL_RCC_TIM12_CLK_SLEEP_DISABLE +#define __TIM13_CLK_SLEEP_ENABLE __HAL_RCC_TIM13_CLK_SLEEP_ENABLE +#define __TIM13_CLK_SLEEP_DISABLE __HAL_RCC_TIM13_CLK_SLEEP_DISABLE +#define __TIM14_CLK_SLEEP_ENABLE __HAL_RCC_TIM14_CLK_SLEEP_ENABLE +#define __TIM14_CLK_SLEEP_DISABLE __HAL_RCC_TIM14_CLK_SLEEP_DISABLE +#define __BKPSRAM_CLK_ENABLE __HAL_RCC_BKPSRAM_CLK_ENABLE +#define __BKPSRAM_CLK_DISABLE __HAL_RCC_BKPSRAM_CLK_DISABLE +#define __BKPSRAM_CLK_SLEEP_ENABLE __HAL_RCC_BKPSRAM_CLK_SLEEP_ENABLE +#define __BKPSRAM_CLK_SLEEP_DISABLE __HAL_RCC_BKPSRAM_CLK_SLEEP_DISABLE +#define __CCMDATARAMEN_CLK_ENABLE __HAL_RCC_CCMDATARAMEN_CLK_ENABLE +#define __CCMDATARAMEN_CLK_DISABLE __HAL_RCC_CCMDATARAMEN_CLK_DISABLE +#define __USART6_CLK_ENABLE __HAL_RCC_USART6_CLK_ENABLE +#define __USART6_CLK_DISABLE __HAL_RCC_USART6_CLK_DISABLE +#define __USART6_FORCE_RESET __HAL_RCC_USART6_FORCE_RESET +#define __USART6_RELEASE_RESET __HAL_RCC_USART6_RELEASE_RESET +#define __USART6_CLK_SLEEP_ENABLE __HAL_RCC_USART6_CLK_SLEEP_ENABLE +#define __USART6_CLK_SLEEP_DISABLE __HAL_RCC_USART6_CLK_SLEEP_DISABLE +#define __SPI4_CLK_ENABLE __HAL_RCC_SPI4_CLK_ENABLE +#define __SPI4_CLK_DISABLE __HAL_RCC_SPI4_CLK_DISABLE +#define __SPI4_FORCE_RESET __HAL_RCC_SPI4_FORCE_RESET +#define __SPI4_RELEASE_RESET __HAL_RCC_SPI4_RELEASE_RESET +#define __SPI4_CLK_SLEEP_ENABLE __HAL_RCC_SPI4_CLK_SLEEP_ENABLE +#define __SPI4_CLK_SLEEP_DISABLE __HAL_RCC_SPI4_CLK_SLEEP_DISABLE +#define __GPIOI_CLK_ENABLE __HAL_RCC_GPIOI_CLK_ENABLE +#define __GPIOI_CLK_DISABLE __HAL_RCC_GPIOI_CLK_DISABLE +#define __GPIOI_FORCE_RESET __HAL_RCC_GPIOI_FORCE_RESET +#define __GPIOI_RELEASE_RESET __HAL_RCC_GPIOI_RELEASE_RESET +#define __GPIOI_CLK_SLEEP_ENABLE __HAL_RCC_GPIOI_CLK_SLEEP_ENABLE +#define __GPIOI_CLK_SLEEP_DISABLE __HAL_RCC_GPIOI_CLK_SLEEP_DISABLE +#define __GPIOJ_CLK_ENABLE __HAL_RCC_GPIOJ_CLK_ENABLE +#define __GPIOJ_CLK_DISABLE __HAL_RCC_GPIOJ_CLK_DISABLE +#define __GPIOJ_FORCE_RESET __HAL_RCC_GPIOJ_FORCE_RESET +#define __GPIOJ_RELEASE_RESET __HAL_RCC_GPIOJ_RELEASE_RESET +#define __GPIOJ_CLK_SLEEP_ENABLE __HAL_RCC_GPIOJ_CLK_SLEEP_ENABLE +#define __GPIOJ_CLK_SLEEP_DISABLE __HAL_RCC_GPIOJ_CLK_SLEEP_DISABLE +#define __GPIOK_CLK_ENABLE __HAL_RCC_GPIOK_CLK_ENABLE +#define __GPIOK_CLK_DISABLE __HAL_RCC_GPIOK_CLK_DISABLE +#define __GPIOK_RELEASE_RESET __HAL_RCC_GPIOK_RELEASE_RESET +#define __GPIOK_CLK_SLEEP_ENABLE __HAL_RCC_GPIOK_CLK_SLEEP_ENABLE +#define __GPIOK_CLK_SLEEP_DISABLE __HAL_RCC_GPIOK_CLK_SLEEP_DISABLE +#define __ETH_CLK_ENABLE __HAL_RCC_ETH_CLK_ENABLE +#define __ETH_CLK_DISABLE __HAL_RCC_ETH_CLK_DISABLE +#define __DCMI_CLK_ENABLE __HAL_RCC_DCMI_CLK_ENABLE +#define __DCMI_CLK_DISABLE __HAL_RCC_DCMI_CLK_DISABLE +#define __DCMI_FORCE_RESET __HAL_RCC_DCMI_FORCE_RESET +#define __DCMI_RELEASE_RESET __HAL_RCC_DCMI_RELEASE_RESET +#define __DCMI_CLK_SLEEP_ENABLE __HAL_RCC_DCMI_CLK_SLEEP_ENABLE +#define __DCMI_CLK_SLEEP_DISABLE __HAL_RCC_DCMI_CLK_SLEEP_DISABLE +#define __UART7_CLK_ENABLE __HAL_RCC_UART7_CLK_ENABLE +#define __UART7_CLK_DISABLE __HAL_RCC_UART7_CLK_DISABLE +#define __UART7_RELEASE_RESET __HAL_RCC_UART7_RELEASE_RESET +#define __UART7_FORCE_RESET __HAL_RCC_UART7_FORCE_RESET +#define __UART7_CLK_SLEEP_ENABLE __HAL_RCC_UART7_CLK_SLEEP_ENABLE +#define __UART7_CLK_SLEEP_DISABLE __HAL_RCC_UART7_CLK_SLEEP_DISABLE +#define __UART8_CLK_ENABLE __HAL_RCC_UART8_CLK_ENABLE +#define __UART8_CLK_DISABLE __HAL_RCC_UART8_CLK_DISABLE +#define __UART8_FORCE_RESET __HAL_RCC_UART8_FORCE_RESET +#define __UART8_RELEASE_RESET __HAL_RCC_UART8_RELEASE_RESET +#define __UART8_CLK_SLEEP_ENABLE __HAL_RCC_UART8_CLK_SLEEP_ENABLE +#define __UART8_CLK_SLEEP_DISABLE __HAL_RCC_UART8_CLK_SLEEP_DISABLE +#define __OTGHS_CLK_SLEEP_ENABLE __HAL_RCC_USB_OTG_HS_CLK_SLEEP_ENABLE +#define __OTGHS_CLK_SLEEP_DISABLE __HAL_RCC_USB_OTG_HS_CLK_SLEEP_DISABLE +#define __OTGHS_FORCE_RESET __HAL_RCC_USB_OTG_HS_FORCE_RESET +#define __OTGHS_RELEASE_RESET __HAL_RCC_USB_OTG_HS_RELEASE_RESET +#define __OTGHSULPI_CLK_SLEEP_ENABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_ENABLE +#define __OTGHSULPI_CLK_SLEEP_DISABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_DISABLE +#define __HAL_RCC_OTGHS_CLK_SLEEP_ENABLE __HAL_RCC_USB_OTG_HS_CLK_SLEEP_ENABLE +#define __HAL_RCC_OTGHS_CLK_SLEEP_DISABLE __HAL_RCC_USB_OTG_HS_CLK_SLEEP_DISABLE +#define __HAL_RCC_OTGHS_IS_CLK_SLEEP_ENABLED __HAL_RCC_USB_OTG_HS_IS_CLK_SLEEP_ENABLED +#define __HAL_RCC_OTGHS_IS_CLK_SLEEP_DISABLED __HAL_RCC_USB_OTG_HS_IS_CLK_SLEEP_DISABLED +#define __HAL_RCC_OTGHS_FORCE_RESET __HAL_RCC_USB_OTG_HS_FORCE_RESET +#define __HAL_RCC_OTGHS_RELEASE_RESET __HAL_RCC_USB_OTG_HS_RELEASE_RESET +#define __HAL_RCC_OTGHSULPI_CLK_SLEEP_ENABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_ENABLE +#define __HAL_RCC_OTGHSULPI_CLK_SLEEP_DISABLE __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_DISABLE +#define __HAL_RCC_OTGHSULPI_IS_CLK_SLEEP_ENABLED __HAL_RCC_USB_OTG_HS_ULPI_IS_CLK_SLEEP_ENABLED +#define __HAL_RCC_OTGHSULPI_IS_CLK_SLEEP_DISABLED __HAL_RCC_USB_OTG_HS_ULPI_IS_CLK_SLEEP_DISABLED +#define __SRAM3_CLK_SLEEP_ENABLE __HAL_RCC_SRAM3_CLK_SLEEP_ENABLE +#define __CAN2_CLK_SLEEP_ENABLE __HAL_RCC_CAN2_CLK_SLEEP_ENABLE +#define __CAN2_CLK_SLEEP_DISABLE __HAL_RCC_CAN2_CLK_SLEEP_DISABLE +#define __DAC_CLK_SLEEP_ENABLE __HAL_RCC_DAC_CLK_SLEEP_ENABLE +#define __DAC_CLK_SLEEP_DISABLE __HAL_RCC_DAC_CLK_SLEEP_DISABLE +#define __ADC2_CLK_SLEEP_ENABLE __HAL_RCC_ADC2_CLK_SLEEP_ENABLE +#define __ADC2_CLK_SLEEP_DISABLE __HAL_RCC_ADC2_CLK_SLEEP_DISABLE +#define __ADC3_CLK_SLEEP_ENABLE __HAL_RCC_ADC3_CLK_SLEEP_ENABLE +#define __ADC3_CLK_SLEEP_DISABLE __HAL_RCC_ADC3_CLK_SLEEP_DISABLE +#define __FSMC_FORCE_RESET __HAL_RCC_FSMC_FORCE_RESET +#define __FSMC_RELEASE_RESET __HAL_RCC_FSMC_RELEASE_RESET +#define __FSMC_CLK_SLEEP_ENABLE __HAL_RCC_FSMC_CLK_SLEEP_ENABLE +#define __FSMC_CLK_SLEEP_DISABLE __HAL_RCC_FSMC_CLK_SLEEP_DISABLE +#define __SDIO_FORCE_RESET __HAL_RCC_SDIO_FORCE_RESET +#define __SDIO_RELEASE_RESET __HAL_RCC_SDIO_RELEASE_RESET +#define __SDIO_CLK_SLEEP_DISABLE __HAL_RCC_SDIO_CLK_SLEEP_DISABLE +#define __SDIO_CLK_SLEEP_ENABLE __HAL_RCC_SDIO_CLK_SLEEP_ENABLE +#define __DMA2D_CLK_ENABLE __HAL_RCC_DMA2D_CLK_ENABLE +#define __DMA2D_CLK_DISABLE __HAL_RCC_DMA2D_CLK_DISABLE +#define __DMA2D_FORCE_RESET __HAL_RCC_DMA2D_FORCE_RESET +#define __DMA2D_RELEASE_RESET __HAL_RCC_DMA2D_RELEASE_RESET +#define __DMA2D_CLK_SLEEP_ENABLE __HAL_RCC_DMA2D_CLK_SLEEP_ENABLE +#define __DMA2D_CLK_SLEEP_DISABLE __HAL_RCC_DMA2D_CLK_SLEEP_DISABLE + +/* alias define maintained for legacy */ +#define __HAL_RCC_OTGFS_FORCE_RESET __HAL_RCC_USB_OTG_FS_FORCE_RESET +#define __HAL_RCC_OTGFS_RELEASE_RESET __HAL_RCC_USB_OTG_FS_RELEASE_RESET + +#define __ADC12_CLK_ENABLE __HAL_RCC_ADC12_CLK_ENABLE +#define __ADC12_CLK_DISABLE __HAL_RCC_ADC12_CLK_DISABLE +#define __ADC34_CLK_ENABLE __HAL_RCC_ADC34_CLK_ENABLE +#define __ADC34_CLK_DISABLE __HAL_RCC_ADC34_CLK_DISABLE +#define __DAC2_CLK_ENABLE __HAL_RCC_DAC2_CLK_ENABLE +#define __DAC2_CLK_DISABLE __HAL_RCC_DAC2_CLK_DISABLE +#define __TIM18_CLK_ENABLE __HAL_RCC_TIM18_CLK_ENABLE +#define __TIM18_CLK_DISABLE __HAL_RCC_TIM18_CLK_DISABLE +#define __TIM19_CLK_ENABLE __HAL_RCC_TIM19_CLK_ENABLE +#define __TIM19_CLK_DISABLE __HAL_RCC_TIM19_CLK_DISABLE +#define __TIM20_CLK_ENABLE __HAL_RCC_TIM20_CLK_ENABLE +#define __TIM20_CLK_DISABLE __HAL_RCC_TIM20_CLK_DISABLE +#define __HRTIM1_CLK_ENABLE __HAL_RCC_HRTIM1_CLK_ENABLE +#define __HRTIM1_CLK_DISABLE __HAL_RCC_HRTIM1_CLK_DISABLE +#define __SDADC1_CLK_ENABLE __HAL_RCC_SDADC1_CLK_ENABLE +#define __SDADC2_CLK_ENABLE __HAL_RCC_SDADC2_CLK_ENABLE +#define __SDADC3_CLK_ENABLE __HAL_RCC_SDADC3_CLK_ENABLE +#define __SDADC1_CLK_DISABLE __HAL_RCC_SDADC1_CLK_DISABLE +#define __SDADC2_CLK_DISABLE __HAL_RCC_SDADC2_CLK_DISABLE +#define __SDADC3_CLK_DISABLE __HAL_RCC_SDADC3_CLK_DISABLE + +#define __ADC12_FORCE_RESET __HAL_RCC_ADC12_FORCE_RESET +#define __ADC12_RELEASE_RESET __HAL_RCC_ADC12_RELEASE_RESET +#define __ADC34_FORCE_RESET __HAL_RCC_ADC34_FORCE_RESET +#define __ADC34_RELEASE_RESET __HAL_RCC_ADC34_RELEASE_RESET +#define __DAC2_FORCE_RESET __HAL_RCC_DAC2_FORCE_RESET +#define __DAC2_RELEASE_RESET __HAL_RCC_DAC2_RELEASE_RESET +#define __TIM18_FORCE_RESET __HAL_RCC_TIM18_FORCE_RESET +#define __TIM18_RELEASE_RESET __HAL_RCC_TIM18_RELEASE_RESET +#define __TIM19_FORCE_RESET __HAL_RCC_TIM19_FORCE_RESET +#define __TIM19_RELEASE_RESET __HAL_RCC_TIM19_RELEASE_RESET +#define __TIM20_FORCE_RESET __HAL_RCC_TIM20_FORCE_RESET +#define __TIM20_RELEASE_RESET __HAL_RCC_TIM20_RELEASE_RESET +#define __HRTIM1_FORCE_RESET __HAL_RCC_HRTIM1_FORCE_RESET +#define __HRTIM1_RELEASE_RESET __HAL_RCC_HRTIM1_RELEASE_RESET +#define __SDADC1_FORCE_RESET __HAL_RCC_SDADC1_FORCE_RESET +#define __SDADC2_FORCE_RESET __HAL_RCC_SDADC2_FORCE_RESET +#define __SDADC3_FORCE_RESET __HAL_RCC_SDADC3_FORCE_RESET +#define __SDADC1_RELEASE_RESET __HAL_RCC_SDADC1_RELEASE_RESET +#define __SDADC2_RELEASE_RESET __HAL_RCC_SDADC2_RELEASE_RESET +#define __SDADC3_RELEASE_RESET __HAL_RCC_SDADC3_RELEASE_RESET + +#define __ADC1_IS_CLK_ENABLED __HAL_RCC_ADC1_IS_CLK_ENABLED +#define __ADC1_IS_CLK_DISABLED __HAL_RCC_ADC1_IS_CLK_DISABLED +#define __ADC12_IS_CLK_ENABLED __HAL_RCC_ADC12_IS_CLK_ENABLED +#define __ADC12_IS_CLK_DISABLED __HAL_RCC_ADC12_IS_CLK_DISABLED +#define __ADC34_IS_CLK_ENABLED __HAL_RCC_ADC34_IS_CLK_ENABLED +#define __ADC34_IS_CLK_DISABLED __HAL_RCC_ADC34_IS_CLK_DISABLED +#define __CEC_IS_CLK_ENABLED __HAL_RCC_CEC_IS_CLK_ENABLED +#define __CEC_IS_CLK_DISABLED __HAL_RCC_CEC_IS_CLK_DISABLED +#define __CRC_IS_CLK_ENABLED __HAL_RCC_CRC_IS_CLK_ENABLED +#define __CRC_IS_CLK_DISABLED __HAL_RCC_CRC_IS_CLK_DISABLED +#define __DAC1_IS_CLK_ENABLED __HAL_RCC_DAC1_IS_CLK_ENABLED +#define __DAC1_IS_CLK_DISABLED __HAL_RCC_DAC1_IS_CLK_DISABLED +#define __DAC2_IS_CLK_ENABLED __HAL_RCC_DAC2_IS_CLK_ENABLED +#define __DAC2_IS_CLK_DISABLED __HAL_RCC_DAC2_IS_CLK_DISABLED +#define __DMA1_IS_CLK_ENABLED __HAL_RCC_DMA1_IS_CLK_ENABLED +#define __DMA1_IS_CLK_DISABLED __HAL_RCC_DMA1_IS_CLK_DISABLED +#define __DMA2_IS_CLK_ENABLED __HAL_RCC_DMA2_IS_CLK_ENABLED +#define __DMA2_IS_CLK_DISABLED __HAL_RCC_DMA2_IS_CLK_DISABLED +#define __FLITF_IS_CLK_ENABLED __HAL_RCC_FLITF_IS_CLK_ENABLED +#define __FLITF_IS_CLK_DISABLED __HAL_RCC_FLITF_IS_CLK_DISABLED +#define __FMC_IS_CLK_ENABLED __HAL_RCC_FMC_IS_CLK_ENABLED +#define __FMC_IS_CLK_DISABLED __HAL_RCC_FMC_IS_CLK_DISABLED +#define __GPIOA_IS_CLK_ENABLED __HAL_RCC_GPIOA_IS_CLK_ENABLED +#define __GPIOA_IS_CLK_DISABLED __HAL_RCC_GPIOA_IS_CLK_DISABLED +#define __GPIOB_IS_CLK_ENABLED __HAL_RCC_GPIOB_IS_CLK_ENABLED +#define __GPIOB_IS_CLK_DISABLED __HAL_RCC_GPIOB_IS_CLK_DISABLED +#define __GPIOC_IS_CLK_ENABLED __HAL_RCC_GPIOC_IS_CLK_ENABLED +#define __GPIOC_IS_CLK_DISABLED __HAL_RCC_GPIOC_IS_CLK_DISABLED +#define __GPIOD_IS_CLK_ENABLED __HAL_RCC_GPIOD_IS_CLK_ENABLED +#define __GPIOD_IS_CLK_DISABLED __HAL_RCC_GPIOD_IS_CLK_DISABLED +#define __GPIOE_IS_CLK_ENABLED __HAL_RCC_GPIOE_IS_CLK_ENABLED +#define __GPIOE_IS_CLK_DISABLED __HAL_RCC_GPIOE_IS_CLK_DISABLED +#define __GPIOF_IS_CLK_ENABLED __HAL_RCC_GPIOF_IS_CLK_ENABLED +#define __GPIOF_IS_CLK_DISABLED __HAL_RCC_GPIOF_IS_CLK_DISABLED +#define __GPIOG_IS_CLK_ENABLED __HAL_RCC_GPIOG_IS_CLK_ENABLED +#define __GPIOG_IS_CLK_DISABLED __HAL_RCC_GPIOG_IS_CLK_DISABLED +#define __GPIOH_IS_CLK_ENABLED __HAL_RCC_GPIOH_IS_CLK_ENABLED +#define __GPIOH_IS_CLK_DISABLED __HAL_RCC_GPIOH_IS_CLK_DISABLED +#define __HRTIM1_IS_CLK_ENABLED __HAL_RCC_HRTIM1_IS_CLK_ENABLED +#define __HRTIM1_IS_CLK_DISABLED __HAL_RCC_HRTIM1_IS_CLK_DISABLED +#define __I2C1_IS_CLK_ENABLED __HAL_RCC_I2C1_IS_CLK_ENABLED +#define __I2C1_IS_CLK_DISABLED __HAL_RCC_I2C1_IS_CLK_DISABLED +#define __I2C2_IS_CLK_ENABLED __HAL_RCC_I2C2_IS_CLK_ENABLED +#define __I2C2_IS_CLK_DISABLED __HAL_RCC_I2C2_IS_CLK_DISABLED +#define __I2C3_IS_CLK_ENABLED __HAL_RCC_I2C3_IS_CLK_ENABLED +#define __I2C3_IS_CLK_DISABLED __HAL_RCC_I2C3_IS_CLK_DISABLED +#define __PWR_IS_CLK_ENABLED __HAL_RCC_PWR_IS_CLK_ENABLED +#define __PWR_IS_CLK_DISABLED __HAL_RCC_PWR_IS_CLK_DISABLED +#define __SYSCFG_IS_CLK_ENABLED __HAL_RCC_SYSCFG_IS_CLK_ENABLED +#define __SYSCFG_IS_CLK_DISABLED __HAL_RCC_SYSCFG_IS_CLK_DISABLED +#define __SPI1_IS_CLK_ENABLED __HAL_RCC_SPI1_IS_CLK_ENABLED +#define __SPI1_IS_CLK_DISABLED __HAL_RCC_SPI1_IS_CLK_DISABLED +#define __SPI2_IS_CLK_ENABLED __HAL_RCC_SPI2_IS_CLK_ENABLED +#define __SPI2_IS_CLK_DISABLED __HAL_RCC_SPI2_IS_CLK_DISABLED +#define __SPI3_IS_CLK_ENABLED __HAL_RCC_SPI3_IS_CLK_ENABLED +#define __SPI3_IS_CLK_DISABLED __HAL_RCC_SPI3_IS_CLK_DISABLED +#define __SPI4_IS_CLK_ENABLED __HAL_RCC_SPI4_IS_CLK_ENABLED +#define __SPI4_IS_CLK_DISABLED __HAL_RCC_SPI4_IS_CLK_DISABLED +#define __SDADC1_IS_CLK_ENABLED __HAL_RCC_SDADC1_IS_CLK_ENABLED +#define __SDADC1_IS_CLK_DISABLED __HAL_RCC_SDADC1_IS_CLK_DISABLED +#define __SDADC2_IS_CLK_ENABLED __HAL_RCC_SDADC2_IS_CLK_ENABLED +#define __SDADC2_IS_CLK_DISABLED __HAL_RCC_SDADC2_IS_CLK_DISABLED +#define __SDADC3_IS_CLK_ENABLED __HAL_RCC_SDADC3_IS_CLK_ENABLED +#define __SDADC3_IS_CLK_DISABLED __HAL_RCC_SDADC3_IS_CLK_DISABLED +#define __SRAM_IS_CLK_ENABLED __HAL_RCC_SRAM_IS_CLK_ENABLED +#define __SRAM_IS_CLK_DISABLED __HAL_RCC_SRAM_IS_CLK_DISABLED +#define __TIM1_IS_CLK_ENABLED __HAL_RCC_TIM1_IS_CLK_ENABLED +#define __TIM1_IS_CLK_DISABLED __HAL_RCC_TIM1_IS_CLK_DISABLED +#define __TIM2_IS_CLK_ENABLED __HAL_RCC_TIM2_IS_CLK_ENABLED +#define __TIM2_IS_CLK_DISABLED __HAL_RCC_TIM2_IS_CLK_DISABLED +#define __TIM3_IS_CLK_ENABLED __HAL_RCC_TIM3_IS_CLK_ENABLED +#define __TIM3_IS_CLK_DISABLED __HAL_RCC_TIM3_IS_CLK_DISABLED +#define __TIM4_IS_CLK_ENABLED __HAL_RCC_TIM4_IS_CLK_ENABLED +#define __TIM4_IS_CLK_DISABLED __HAL_RCC_TIM4_IS_CLK_DISABLED +#define __TIM5_IS_CLK_ENABLED __HAL_RCC_TIM5_IS_CLK_ENABLED +#define __TIM5_IS_CLK_DISABLED __HAL_RCC_TIM5_IS_CLK_DISABLED +#define __TIM6_IS_CLK_ENABLED __HAL_RCC_TIM6_IS_CLK_ENABLED +#define __TIM6_IS_CLK_DISABLED __HAL_RCC_TIM6_IS_CLK_DISABLED +#define __TIM7_IS_CLK_ENABLED __HAL_RCC_TIM7_IS_CLK_ENABLED +#define __TIM7_IS_CLK_DISABLED __HAL_RCC_TIM7_IS_CLK_DISABLED +#define __TIM8_IS_CLK_ENABLED __HAL_RCC_TIM8_IS_CLK_ENABLED +#define __TIM8_IS_CLK_DISABLED __HAL_RCC_TIM8_IS_CLK_DISABLED +#define __TIM12_IS_CLK_ENABLED __HAL_RCC_TIM12_IS_CLK_ENABLED +#define __TIM12_IS_CLK_DISABLED __HAL_RCC_TIM12_IS_CLK_DISABLED +#define __TIM13_IS_CLK_ENABLED __HAL_RCC_TIM13_IS_CLK_ENABLED +#define __TIM13_IS_CLK_DISABLED __HAL_RCC_TIM13_IS_CLK_DISABLED +#define __TIM14_IS_CLK_ENABLED __HAL_RCC_TIM14_IS_CLK_ENABLED +#define __TIM14_IS_CLK_DISABLED __HAL_RCC_TIM14_IS_CLK_DISABLED +#define __TIM15_IS_CLK_ENABLED __HAL_RCC_TIM15_IS_CLK_ENABLED +#define __TIM15_IS_CLK_DISABLED __HAL_RCC_TIM15_IS_CLK_DISABLED +#define __TIM16_IS_CLK_ENABLED __HAL_RCC_TIM16_IS_CLK_ENABLED +#define __TIM16_IS_CLK_DISABLED __HAL_RCC_TIM16_IS_CLK_DISABLED +#define __TIM17_IS_CLK_ENABLED __HAL_RCC_TIM17_IS_CLK_ENABLED +#define __TIM17_IS_CLK_DISABLED __HAL_RCC_TIM17_IS_CLK_DISABLED +#define __TIM18_IS_CLK_ENABLED __HAL_RCC_TIM18_IS_CLK_ENABLED +#define __TIM18_IS_CLK_DISABLED __HAL_RCC_TIM18_IS_CLK_DISABLED +#define __TIM19_IS_CLK_ENABLED __HAL_RCC_TIM19_IS_CLK_ENABLED +#define __TIM19_IS_CLK_DISABLED __HAL_RCC_TIM19_IS_CLK_DISABLED +#define __TIM20_IS_CLK_ENABLED __HAL_RCC_TIM20_IS_CLK_ENABLED +#define __TIM20_IS_CLK_DISABLED __HAL_RCC_TIM20_IS_CLK_DISABLED +#define __TSC_IS_CLK_ENABLED __HAL_RCC_TSC_IS_CLK_ENABLED +#define __TSC_IS_CLK_DISABLED __HAL_RCC_TSC_IS_CLK_DISABLED +#define __UART4_IS_CLK_ENABLED __HAL_RCC_UART4_IS_CLK_ENABLED +#define __UART4_IS_CLK_DISABLED __HAL_RCC_UART4_IS_CLK_DISABLED +#define __UART5_IS_CLK_ENABLED __HAL_RCC_UART5_IS_CLK_ENABLED +#define __UART5_IS_CLK_DISABLED __HAL_RCC_UART5_IS_CLK_DISABLED +#define __USART1_IS_CLK_ENABLED __HAL_RCC_USART1_IS_CLK_ENABLED +#define __USART1_IS_CLK_DISABLED __HAL_RCC_USART1_IS_CLK_DISABLED +#define __USART2_IS_CLK_ENABLED __HAL_RCC_USART2_IS_CLK_ENABLED +#define __USART2_IS_CLK_DISABLED __HAL_RCC_USART2_IS_CLK_DISABLED +#define __USART3_IS_CLK_ENABLED __HAL_RCC_USART3_IS_CLK_ENABLED +#define __USART3_IS_CLK_DISABLED __HAL_RCC_USART3_IS_CLK_DISABLED +#define __USB_IS_CLK_ENABLED __HAL_RCC_USB_IS_CLK_ENABLED +#define __USB_IS_CLK_DISABLED __HAL_RCC_USB_IS_CLK_DISABLED +#define __WWDG_IS_CLK_ENABLED __HAL_RCC_WWDG_IS_CLK_ENABLED +#define __WWDG_IS_CLK_DISABLED __HAL_RCC_WWDG_IS_CLK_DISABLED + +#if defined(STM32L1) +#define __HAL_RCC_CRYP_CLK_DISABLE __HAL_RCC_AES_CLK_DISABLE +#define __HAL_RCC_CRYP_CLK_ENABLE __HAL_RCC_AES_CLK_ENABLE +#define __HAL_RCC_CRYP_CLK_SLEEP_DISABLE __HAL_RCC_AES_CLK_SLEEP_DISABLE +#define __HAL_RCC_CRYP_CLK_SLEEP_ENABLE __HAL_RCC_AES_CLK_SLEEP_ENABLE +#define __HAL_RCC_CRYP_FORCE_RESET __HAL_RCC_AES_FORCE_RESET +#define __HAL_RCC_CRYP_RELEASE_RESET __HAL_RCC_AES_RELEASE_RESET +#endif /* STM32L1 */ + +#if defined(STM32F4) +#define __HAL_RCC_SDMMC1_FORCE_RESET __HAL_RCC_SDIO_FORCE_RESET +#define __HAL_RCC_SDMMC1_RELEASE_RESET __HAL_RCC_SDIO_RELEASE_RESET +#define __HAL_RCC_SDMMC1_CLK_SLEEP_ENABLE __HAL_RCC_SDIO_CLK_SLEEP_ENABLE +#define __HAL_RCC_SDMMC1_CLK_SLEEP_DISABLE __HAL_RCC_SDIO_CLK_SLEEP_DISABLE +#define __HAL_RCC_SDMMC1_CLK_ENABLE __HAL_RCC_SDIO_CLK_ENABLE +#define __HAL_RCC_SDMMC1_CLK_DISABLE __HAL_RCC_SDIO_CLK_DISABLE +#define __HAL_RCC_SDMMC1_IS_CLK_ENABLED __HAL_RCC_SDIO_IS_CLK_ENABLED +#define __HAL_RCC_SDMMC1_IS_CLK_DISABLED __HAL_RCC_SDIO_IS_CLK_DISABLED +#define Sdmmc1ClockSelection SdioClockSelection +#define RCC_PERIPHCLK_SDMMC1 RCC_PERIPHCLK_SDIO +#define RCC_SDMMC1CLKSOURCE_CLK48 RCC_SDIOCLKSOURCE_CK48 +#define RCC_SDMMC1CLKSOURCE_SYSCLK RCC_SDIOCLKSOURCE_SYSCLK +#define __HAL_RCC_SDMMC1_CONFIG __HAL_RCC_SDIO_CONFIG +#define __HAL_RCC_GET_SDMMC1_SOURCE __HAL_RCC_GET_SDIO_SOURCE +#endif + +#if defined(STM32F7) || defined(STM32L4) +#define __HAL_RCC_SDIO_FORCE_RESET __HAL_RCC_SDMMC1_FORCE_RESET +#define __HAL_RCC_SDIO_RELEASE_RESET __HAL_RCC_SDMMC1_RELEASE_RESET +#define __HAL_RCC_SDIO_CLK_SLEEP_ENABLE __HAL_RCC_SDMMC1_CLK_SLEEP_ENABLE +#define __HAL_RCC_SDIO_CLK_SLEEP_DISABLE __HAL_RCC_SDMMC1_CLK_SLEEP_DISABLE +#define __HAL_RCC_SDIO_CLK_ENABLE __HAL_RCC_SDMMC1_CLK_ENABLE +#define __HAL_RCC_SDIO_CLK_DISABLE __HAL_RCC_SDMMC1_CLK_DISABLE +#define __HAL_RCC_SDIO_IS_CLK_ENABLED __HAL_RCC_SDMMC1_IS_CLK_ENABLED +#define __HAL_RCC_SDIO_IS_CLK_DISABLED __HAL_RCC_SDMMC1_IS_CLK_DISABLED +#define SdioClockSelection Sdmmc1ClockSelection +#define RCC_PERIPHCLK_SDIO RCC_PERIPHCLK_SDMMC1 +#define __HAL_RCC_SDIO_CONFIG __HAL_RCC_SDMMC1_CONFIG +#define __HAL_RCC_GET_SDIO_SOURCE __HAL_RCC_GET_SDMMC1_SOURCE +#endif + +#if defined(STM32F7) +#define RCC_SDIOCLKSOURCE_CLK48 RCC_SDMMC1CLKSOURCE_CLK48 +#define RCC_SDIOCLKSOURCE_SYSCLK RCC_SDMMC1CLKSOURCE_SYSCLK +#endif + +#if defined(STM32H7) +#define __HAL_RCC_USB_OTG_HS_CLK_ENABLE() __HAL_RCC_USB1_OTG_HS_CLK_ENABLE() +#define __HAL_RCC_USB_OTG_HS_ULPI_CLK_ENABLE() __HAL_RCC_USB1_OTG_HS_ULPI_CLK_ENABLE() +#define __HAL_RCC_USB_OTG_HS_CLK_DISABLE() __HAL_RCC_USB1_OTG_HS_CLK_DISABLE() +#define __HAL_RCC_USB_OTG_HS_ULPI_CLK_DISABLE() __HAL_RCC_USB1_OTG_HS_ULPI_CLK_DISABLE() +#define __HAL_RCC_USB_OTG_HS_FORCE_RESET() __HAL_RCC_USB1_OTG_HS_FORCE_RESET() +#define __HAL_RCC_USB_OTG_HS_RELEASE_RESET() __HAL_RCC_USB1_OTG_HS_RELEASE_RESET() +#define __HAL_RCC_USB_OTG_HS_CLK_SLEEP_ENABLE() __HAL_RCC_USB1_OTG_HS_CLK_SLEEP_ENABLE() +#define __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_ENABLE() __HAL_RCC_USB1_OTG_HS_ULPI_CLK_SLEEP_ENABLE() +#define __HAL_RCC_USB_OTG_HS_CLK_SLEEP_DISABLE() __HAL_RCC_USB1_OTG_HS_CLK_SLEEP_DISABLE() +#define __HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_DISABLE() __HAL_RCC_USB1_OTG_HS_ULPI_CLK_SLEEP_DISABLE() + +#define __HAL_RCC_USB_OTG_FS_CLK_ENABLE() __HAL_RCC_USB2_OTG_FS_CLK_ENABLE() +#define __HAL_RCC_USB_OTG_FS_ULPI_CLK_ENABLE() __HAL_RCC_USB2_OTG_FS_ULPI_CLK_ENABLE() +#define __HAL_RCC_USB_OTG_FS_CLK_DISABLE() __HAL_RCC_USB2_OTG_FS_CLK_DISABLE() +#define __HAL_RCC_USB_OTG_FS_ULPI_CLK_DISABLE() __HAL_RCC_USB2_OTG_FS_ULPI_CLK_DISABLE() +#define __HAL_RCC_USB_OTG_FS_FORCE_RESET() __HAL_RCC_USB2_OTG_FS_FORCE_RESET() +#define __HAL_RCC_USB_OTG_FS_RELEASE_RESET() __HAL_RCC_USB2_OTG_FS_RELEASE_RESET() +#define __HAL_RCC_USB_OTG_FS_CLK_SLEEP_ENABLE() __HAL_RCC_USB2_OTG_FS_CLK_SLEEP_ENABLE() +#define __HAL_RCC_USB_OTG_FS_ULPI_CLK_SLEEP_ENABLE() __HAL_RCC_USB2_OTG_FS_ULPI_CLK_SLEEP_ENABLE() +#define __HAL_RCC_USB_OTG_FS_CLK_SLEEP_DISABLE() __HAL_RCC_USB2_OTG_FS_CLK_SLEEP_DISABLE() +#define __HAL_RCC_USB_OTG_FS_ULPI_CLK_SLEEP_DISABLE() __HAL_RCC_USB2_OTG_FS_ULPI_CLK_SLEEP_DISABLE() +#endif + +#define __HAL_RCC_I2SCLK __HAL_RCC_I2S_CONFIG +#define __HAL_RCC_I2SCLK_CONFIG __HAL_RCC_I2S_CONFIG + +#define __RCC_PLLSRC RCC_GET_PLL_OSCSOURCE + +#define IS_RCC_MSIRANGE IS_RCC_MSI_CLOCK_RANGE +#define IS_RCC_RTCCLK_SOURCE IS_RCC_RTCCLKSOURCE +#define IS_RCC_SYSCLK_DIV IS_RCC_HCLK +#define IS_RCC_HCLK_DIV IS_RCC_PCLK +#define IS_RCC_PERIPHCLK IS_RCC_PERIPHCLOCK + +#define RCC_IT_HSI14 RCC_IT_HSI14RDY + +#define RCC_IT_CSSLSE RCC_IT_LSECSS +#define RCC_IT_CSSHSE RCC_IT_CSS + +#define RCC_PLLMUL_3 RCC_PLL_MUL3 +#define RCC_PLLMUL_4 RCC_PLL_MUL4 +#define RCC_PLLMUL_6 RCC_PLL_MUL6 +#define RCC_PLLMUL_8 RCC_PLL_MUL8 +#define RCC_PLLMUL_12 RCC_PLL_MUL12 +#define RCC_PLLMUL_16 RCC_PLL_MUL16 +#define RCC_PLLMUL_24 RCC_PLL_MUL24 +#define RCC_PLLMUL_32 RCC_PLL_MUL32 +#define RCC_PLLMUL_48 RCC_PLL_MUL48 + +#define RCC_PLLDIV_2 RCC_PLL_DIV2 +#define RCC_PLLDIV_3 RCC_PLL_DIV3 +#define RCC_PLLDIV_4 RCC_PLL_DIV4 + +#define IS_RCC_MCOSOURCE IS_RCC_MCO1SOURCE +#define __HAL_RCC_MCO_CONFIG __HAL_RCC_MCO1_CONFIG +#define RCC_MCO_NODIV RCC_MCODIV_1 +#define RCC_MCO_DIV1 RCC_MCODIV_1 +#define RCC_MCO_DIV2 RCC_MCODIV_2 +#define RCC_MCO_DIV4 RCC_MCODIV_4 +#define RCC_MCO_DIV8 RCC_MCODIV_8 +#define RCC_MCO_DIV16 RCC_MCODIV_16 +#define RCC_MCO_DIV32 RCC_MCODIV_32 +#define RCC_MCO_DIV64 RCC_MCODIV_64 +#define RCC_MCO_DIV128 RCC_MCODIV_128 +#define RCC_MCOSOURCE_NONE RCC_MCO1SOURCE_NOCLOCK +#define RCC_MCOSOURCE_LSI RCC_MCO1SOURCE_LSI +#define RCC_MCOSOURCE_LSE RCC_MCO1SOURCE_LSE +#define RCC_MCOSOURCE_SYSCLK RCC_MCO1SOURCE_SYSCLK +#define RCC_MCOSOURCE_HSI RCC_MCO1SOURCE_HSI +#define RCC_MCOSOURCE_HSI14 RCC_MCO1SOURCE_HSI14 +#define RCC_MCOSOURCE_HSI48 RCC_MCO1SOURCE_HSI48 +#define RCC_MCOSOURCE_HSE RCC_MCO1SOURCE_HSE +#define RCC_MCOSOURCE_PLLCLK_DIV1 RCC_MCO1SOURCE_PLLCLK +#define RCC_MCOSOURCE_PLLCLK_NODIV RCC_MCO1SOURCE_PLLCLK +#define RCC_MCOSOURCE_PLLCLK_DIV2 RCC_MCO1SOURCE_PLLCLK_DIV2 + +#if defined(STM32U0) +#define RCC_SYSCLKSOURCE_STATUS_PLLR RCC_SYSCLKSOURCE_STATUS_PLLCLK +#endif + +#if defined(STM32L4) || defined(STM32WB) || defined(STM32G0) || defined(STM32G4) || defined(STM32L5) || \ + defined(STM32WL) || defined(STM32C0) || defined(STM32N6) || defined(STM32H7RS) || \ + defined(STM32U0) +#define RCC_RTCCLKSOURCE_NO_CLK RCC_RTCCLKSOURCE_NONE +#else +#define RCC_RTCCLKSOURCE_NONE RCC_RTCCLKSOURCE_NO_CLK +#endif + +#define RCC_USBCLK_PLLSAI1 RCC_USBCLKSOURCE_PLLSAI1 +#define RCC_USBCLK_PLL RCC_USBCLKSOURCE_PLL +#define RCC_USBCLK_MSI RCC_USBCLKSOURCE_MSI +#define RCC_USBCLKSOURCE_PLLCLK RCC_USBCLKSOURCE_PLL +#define RCC_USBPLLCLK_DIV1 RCC_USBCLKSOURCE_PLL +#define RCC_USBPLLCLK_DIV1_5 RCC_USBCLKSOURCE_PLL_DIV1_5 +#define RCC_USBPLLCLK_DIV2 RCC_USBCLKSOURCE_PLL_DIV2 +#define RCC_USBPLLCLK_DIV3 RCC_USBCLKSOURCE_PLL_DIV3 + +#define HSION_BitNumber RCC_HSION_BIT_NUMBER +#define HSION_BITNUMBER RCC_HSION_BIT_NUMBER +#define HSEON_BitNumber RCC_HSEON_BIT_NUMBER +#define HSEON_BITNUMBER RCC_HSEON_BIT_NUMBER +#define MSION_BITNUMBER RCC_MSION_BIT_NUMBER +#define CSSON_BitNumber RCC_CSSON_BIT_NUMBER +#define CSSON_BITNUMBER RCC_CSSON_BIT_NUMBER +#define PLLON_BitNumber RCC_PLLON_BIT_NUMBER +#define PLLON_BITNUMBER RCC_PLLON_BIT_NUMBER +#define PLLI2SON_BitNumber RCC_PLLI2SON_BIT_NUMBER +#define I2SSRC_BitNumber RCC_I2SSRC_BIT_NUMBER +#define RTCEN_BitNumber RCC_RTCEN_BIT_NUMBER +#define RTCEN_BITNUMBER RCC_RTCEN_BIT_NUMBER +#define BDRST_BitNumber RCC_BDRST_BIT_NUMBER +#define BDRST_BITNUMBER RCC_BDRST_BIT_NUMBER +#define RTCRST_BITNUMBER RCC_RTCRST_BIT_NUMBER +#define LSION_BitNumber RCC_LSION_BIT_NUMBER +#define LSION_BITNUMBER RCC_LSION_BIT_NUMBER +#define LSEON_BitNumber RCC_LSEON_BIT_NUMBER +#define LSEON_BITNUMBER RCC_LSEON_BIT_NUMBER +#define LSEBYP_BITNUMBER RCC_LSEBYP_BIT_NUMBER +#define PLLSAION_BitNumber RCC_PLLSAION_BIT_NUMBER +#define TIMPRE_BitNumber RCC_TIMPRE_BIT_NUMBER +#define RMVF_BitNumber RCC_RMVF_BIT_NUMBER +#define RMVF_BITNUMBER RCC_RMVF_BIT_NUMBER +#define RCC_CR2_HSI14TRIM_BitNumber RCC_HSI14TRIM_BIT_NUMBER +#define CR_BYTE2_ADDRESS RCC_CR_BYTE2_ADDRESS +#define CIR_BYTE1_ADDRESS RCC_CIR_BYTE1_ADDRESS +#define CIR_BYTE2_ADDRESS RCC_CIR_BYTE2_ADDRESS +#define BDCR_BYTE0_ADDRESS RCC_BDCR_BYTE0_ADDRESS +#define DBP_TIMEOUT_VALUE RCC_DBP_TIMEOUT_VALUE +#define LSE_TIMEOUT_VALUE RCC_LSE_TIMEOUT_VALUE + +#define CR_HSION_BB RCC_CR_HSION_BB +#define CR_CSSON_BB RCC_CR_CSSON_BB +#define CR_PLLON_BB RCC_CR_PLLON_BB +#define CR_PLLI2SON_BB RCC_CR_PLLI2SON_BB +#define CR_MSION_BB RCC_CR_MSION_BB +#define CSR_LSION_BB RCC_CSR_LSION_BB +#define CSR_LSEON_BB RCC_CSR_LSEON_BB +#define CSR_LSEBYP_BB RCC_CSR_LSEBYP_BB +#define CSR_RTCEN_BB RCC_CSR_RTCEN_BB +#define CSR_RTCRST_BB RCC_CSR_RTCRST_BB +#define CFGR_I2SSRC_BB RCC_CFGR_I2SSRC_BB +#define BDCR_RTCEN_BB RCC_BDCR_RTCEN_BB +#define BDCR_BDRST_BB RCC_BDCR_BDRST_BB +#define CR_HSEON_BB RCC_CR_HSEON_BB +#define CSR_RMVF_BB RCC_CSR_RMVF_BB +#define CR_PLLSAION_BB RCC_CR_PLLSAION_BB +#define DCKCFGR_TIMPRE_BB RCC_DCKCFGR_TIMPRE_BB + +#define __HAL_RCC_CRS_ENABLE_FREQ_ERROR_COUNTER __HAL_RCC_CRS_FREQ_ERROR_COUNTER_ENABLE +#define __HAL_RCC_CRS_DISABLE_FREQ_ERROR_COUNTER __HAL_RCC_CRS_FREQ_ERROR_COUNTER_DISABLE +#define __HAL_RCC_CRS_ENABLE_AUTOMATIC_CALIB __HAL_RCC_CRS_AUTOMATIC_CALIB_ENABLE +#define __HAL_RCC_CRS_DISABLE_AUTOMATIC_CALIB __HAL_RCC_CRS_AUTOMATIC_CALIB_DISABLE +#define __HAL_RCC_CRS_CALCULATE_RELOADVALUE __HAL_RCC_CRS_RELOADVALUE_CALCULATE + +#define __HAL_RCC_GET_IT_SOURCE __HAL_RCC_GET_IT + +#define RCC_CRS_SYNCWARM RCC_CRS_SYNCWARN +#define RCC_CRS_TRIMOV RCC_CRS_TRIMOVF + +#define RCC_PERIPHCLK_CK48 RCC_PERIPHCLK_CLK48 +#define RCC_CK48CLKSOURCE_PLLQ RCC_CLK48CLKSOURCE_PLLQ +#define RCC_CK48CLKSOURCE_PLLSAIP RCC_CLK48CLKSOURCE_PLLSAIP +#define RCC_CK48CLKSOURCE_PLLI2SQ RCC_CLK48CLKSOURCE_PLLI2SQ +#define IS_RCC_CK48CLKSOURCE IS_RCC_CLK48CLKSOURCE +#define RCC_SDIOCLKSOURCE_CK48 RCC_SDIOCLKSOURCE_CLK48 + +#define __HAL_RCC_DFSDM_CLK_ENABLE __HAL_RCC_DFSDM1_CLK_ENABLE +#define __HAL_RCC_DFSDM_CLK_DISABLE __HAL_RCC_DFSDM1_CLK_DISABLE +#define __HAL_RCC_DFSDM_IS_CLK_ENABLED __HAL_RCC_DFSDM1_IS_CLK_ENABLED +#define __HAL_RCC_DFSDM_IS_CLK_DISABLED __HAL_RCC_DFSDM1_IS_CLK_DISABLED +#define __HAL_RCC_DFSDM_FORCE_RESET __HAL_RCC_DFSDM1_FORCE_RESET +#define __HAL_RCC_DFSDM_RELEASE_RESET __HAL_RCC_DFSDM1_RELEASE_RESET +#define __HAL_RCC_DFSDM_CLK_SLEEP_ENABLE __HAL_RCC_DFSDM1_CLK_SLEEP_ENABLE +#define __HAL_RCC_DFSDM_CLK_SLEEP_DISABLE __HAL_RCC_DFSDM1_CLK_SLEEP_DISABLE +#define __HAL_RCC_DFSDM_IS_CLK_SLEEP_ENABLED __HAL_RCC_DFSDM1_IS_CLK_SLEEP_ENABLED +#define __HAL_RCC_DFSDM_IS_CLK_SLEEP_DISABLED __HAL_RCC_DFSDM1_IS_CLK_SLEEP_DISABLED +#define DfsdmClockSelection Dfsdm1ClockSelection +#define RCC_PERIPHCLK_DFSDM RCC_PERIPHCLK_DFSDM1 +#define RCC_DFSDMCLKSOURCE_PCLK RCC_DFSDM1CLKSOURCE_PCLK2 +#define RCC_DFSDMCLKSOURCE_SYSCLK RCC_DFSDM1CLKSOURCE_SYSCLK +#define __HAL_RCC_DFSDM_CONFIG __HAL_RCC_DFSDM1_CONFIG +#define __HAL_RCC_GET_DFSDM_SOURCE __HAL_RCC_GET_DFSDM1_SOURCE +#define RCC_DFSDM1CLKSOURCE_PCLK RCC_DFSDM1CLKSOURCE_PCLK2 +#define RCC_SWPMI1CLKSOURCE_PCLK RCC_SWPMI1CLKSOURCE_PCLK1 +#if !defined(STM32U0) +#define RCC_LPTIM1CLKSOURCE_PCLK RCC_LPTIM1CLKSOURCE_PCLK1 +#define RCC_LPTIM2CLKSOURCE_PCLK RCC_LPTIM2CLKSOURCE_PCLK1 +#endif + +#define RCC_DFSDM1AUDIOCLKSOURCE_I2SAPB1 RCC_DFSDM1AUDIOCLKSOURCE_I2S1 +#define RCC_DFSDM1AUDIOCLKSOURCE_I2SAPB2 RCC_DFSDM1AUDIOCLKSOURCE_I2S2 +#define RCC_DFSDM2AUDIOCLKSOURCE_I2SAPB1 RCC_DFSDM2AUDIOCLKSOURCE_I2S1 +#define RCC_DFSDM2AUDIOCLKSOURCE_I2SAPB2 RCC_DFSDM2AUDIOCLKSOURCE_I2S2 +#define RCC_DFSDM1CLKSOURCE_APB2 RCC_DFSDM1CLKSOURCE_PCLK2 +#define RCC_DFSDM2CLKSOURCE_APB2 RCC_DFSDM2CLKSOURCE_PCLK2 +#define RCC_FMPI2C1CLKSOURCE_APB RCC_FMPI2C1CLKSOURCE_PCLK1 +#if defined(STM32U5) +#define MSIKPLLModeSEL RCC_MSIKPLL_MODE_SEL +#define MSISPLLModeSEL RCC_MSISPLL_MODE_SEL +#define __HAL_RCC_AHB21_CLK_DISABLE __HAL_RCC_AHB2_1_CLK_DISABLE +#define __HAL_RCC_AHB22_CLK_DISABLE __HAL_RCC_AHB2_2_CLK_DISABLE +#define __HAL_RCC_AHB1_CLK_Disable_Clear __HAL_RCC_AHB1_CLK_ENABLE +#define __HAL_RCC_AHB21_CLK_Disable_Clear __HAL_RCC_AHB2_1_CLK_ENABLE +#define __HAL_RCC_AHB22_CLK_Disable_Clear __HAL_RCC_AHB2_2_CLK_ENABLE +#define __HAL_RCC_AHB3_CLK_Disable_Clear __HAL_RCC_AHB3_CLK_ENABLE +#define __HAL_RCC_APB1_CLK_Disable_Clear __HAL_RCC_APB1_CLK_ENABLE +#define __HAL_RCC_APB2_CLK_Disable_Clear __HAL_RCC_APB2_CLK_ENABLE +#define __HAL_RCC_APB3_CLK_Disable_Clear __HAL_RCC_APB3_CLK_ENABLE +#define IS_RCC_MSIPLLModeSelection IS_RCC_MSIPLLMODE_SELECT +#define RCC_PERIPHCLK_CLK48 RCC_PERIPHCLK_ICLK +#define RCC_CLK48CLKSOURCE_HSI48 RCC_ICLK_CLKSOURCE_HSI48 +#define RCC_CLK48CLKSOURCE_PLL2 RCC_ICLK_CLKSOURCE_PLL2 +#define RCC_CLK48CLKSOURCE_PLL1 RCC_ICLK_CLKSOURCE_PLL1 +#define RCC_CLK48CLKSOURCE_MSIK RCC_ICLK_CLKSOURCE_MSIK +#define __HAL_RCC_ADC1_CLK_ENABLE __HAL_RCC_ADC12_CLK_ENABLE +#define __HAL_RCC_ADC1_CLK_DISABLE __HAL_RCC_ADC12_CLK_DISABLE +#define __HAL_RCC_ADC1_IS_CLK_ENABLED __HAL_RCC_ADC12_IS_CLK_ENABLED +#define __HAL_RCC_ADC1_IS_CLK_DISABLED __HAL_RCC_ADC12_IS_CLK_DISABLED +#define __HAL_RCC_ADC1_FORCE_RESET __HAL_RCC_ADC12_FORCE_RESET +#define __HAL_RCC_ADC1_RELEASE_RESET __HAL_RCC_ADC12_RELEASE_RESET +#define __HAL_RCC_ADC1_CLK_SLEEP_ENABLE __HAL_RCC_ADC12_CLK_SLEEP_ENABLE +#define __HAL_RCC_ADC1_CLK_SLEEP_DISABLE __HAL_RCC_ADC12_CLK_SLEEP_DISABLE +#define __HAL_RCC_GET_CLK48_SOURCE __HAL_RCC_GET_ICLK_SOURCE +#define __HAL_RCC_PLLFRACN_ENABLE __HAL_RCC_PLL_FRACN_ENABLE +#define __HAL_RCC_PLLFRACN_DISABLE __HAL_RCC_PLL_FRACN_DISABLE +#define __HAL_RCC_PLLFRACN_CONFIG __HAL_RCC_PLL_FRACN_CONFIG +#define IS_RCC_PLLFRACN_VALUE IS_RCC_PLL_FRACN_VALUE +#endif /* STM32U5 */ + +#if defined(STM32H5) +#define __HAL_RCC_PLLFRACN_ENABLE __HAL_RCC_PLL_FRACN_ENABLE +#define __HAL_RCC_PLLFRACN_DISABLE __HAL_RCC_PLL_FRACN_DISABLE +#define __HAL_RCC_PLLFRACN_CONFIG __HAL_RCC_PLL_FRACN_CONFIG +#define IS_RCC_PLLFRACN_VALUE IS_RCC_PLL_FRACN_VALUE + +#define RCC_PLLSOURCE_NONE RCC_PLL1_SOURCE_NONE +#define RCC_PLLSOURCE_HSI RCC_PLL1_SOURCE_HSI +#define RCC_PLLSOURCE_CSI RCC_PLL1_SOURCE_CSI +#define RCC_PLLSOURCE_HSE RCC_PLL1_SOURCE_HSE +#define RCC_PLLVCIRANGE_0 RCC_PLL1_VCIRANGE_0 +#define RCC_PLLVCIRANGE_1 RCC_PLL1_VCIRANGE_1 +#define RCC_PLLVCIRANGE_2 RCC_PLL1_VCIRANGE_2 +#define RCC_PLLVCIRANGE_3 RCC_PLL1_VCIRANGE_3 +#define RCC_PLL1VCOWIDE RCC_PLL1_VCORANGE_WIDE +#define RCC_PLL1VCOMEDIUM RCC_PLL1_VCORANGE_MEDIUM + +#define IS_RCC_PLLSOURCE IS_RCC_PLL1_SOURCE +#define IS_RCC_PLLRGE_VALUE IS_RCC_PLL1_VCIRGE_VALUE +#define IS_RCC_PLLVCORGE_VALUE IS_RCC_PLL1_VCORGE_VALUE +#define IS_RCC_PLLCLOCKOUT_VALUE IS_RCC_PLL1_CLOCKOUT_VALUE +#define IS_RCC_PLL_FRACN_VALUE IS_RCC_PLL1_FRACN_VALUE +#define IS_RCC_PLLM_VALUE IS_RCC_PLL1_DIVM_VALUE +#define IS_RCC_PLLN_VALUE IS_RCC_PLL1_MULN_VALUE +#define IS_RCC_PLLP_VALUE IS_RCC_PLL1_DIVP_VALUE +#define IS_RCC_PLLQ_VALUE IS_RCC_PLL1_DIVQ_VALUE +#define IS_RCC_PLLR_VALUE IS_RCC_PLL1_DIVR_VALUE + +#define __HAL_RCC_PLL_ENABLE __HAL_RCC_PLL1_ENABLE +#define __HAL_RCC_PLL_DISABLE __HAL_RCC_PLL1_DISABLE +#define __HAL_RCC_PLL_FRACN_ENABLE __HAL_RCC_PLL1_FRACN_ENABLE +#define __HAL_RCC_PLL_FRACN_DISABLE __HAL_RCC_PLL1_FRACN_DISABLE +#define __HAL_RCC_PLL_CONFIG __HAL_RCC_PLL1_CONFIG +#define __HAL_RCC_PLL_PLLSOURCE_CONFIG __HAL_RCC_PLL1_PLLSOURCE_CONFIG +#define __HAL_RCC_PLL_DIVM_CONFIG __HAL_RCC_PLL1_DIVM_CONFIG +#define __HAL_RCC_PLL_FRACN_CONFIG __HAL_RCC_PLL1_FRACN_CONFIG +#define __HAL_RCC_PLL_VCIRANGE __HAL_RCC_PLL1_VCIRANGE +#define __HAL_RCC_PLL_VCORANGE __HAL_RCC_PLL1_VCORANGE +#define __HAL_RCC_GET_PLL_OSCSOURCE __HAL_RCC_GET_PLL1_OSCSOURCE +#define __HAL_RCC_PLLCLKOUT_ENABLE __HAL_RCC_PLL1_CLKOUT_ENABLE +#define __HAL_RCC_PLLCLKOUT_DISABLE __HAL_RCC_PLL1_CLKOUT_DISABLE +#define __HAL_RCC_GET_PLLCLKOUT_CONFIG __HAL_RCC_GET_PLL1_CLKOUT_CONFIG + +#define __HAL_RCC_PLL2FRACN_ENABLE __HAL_RCC_PLL2_FRACN_ENABLE +#define __HAL_RCC_PLL2FRACN_DISABLE __HAL_RCC_PLL2_FRACN_DISABLE +#define __HAL_RCC_PLL2CLKOUT_ENABLE __HAL_RCC_PLL2_CLKOUT_ENABLE +#define __HAL_RCC_PLL2CLKOUT_DISABLE __HAL_RCC_PLL2_CLKOUT_DISABLE +#define __HAL_RCC_PLL2FRACN_CONFIG __HAL_RCC_PLL2_FRACN_CONFIG +#define __HAL_RCC_GET_PLL2CLKOUT_CONFIG __HAL_RCC_GET_PLL2_CLKOUT_CONFIG + +#define __HAL_RCC_PLL3FRACN_ENABLE __HAL_RCC_PLL3_FRACN_ENABLE +#define __HAL_RCC_PLL3FRACN_DISABLE __HAL_RCC_PLL3_FRACN_DISABLE +#define __HAL_RCC_PLL3CLKOUT_ENABLE __HAL_RCC_PLL3_CLKOUT_ENABLE +#define __HAL_RCC_PLL3CLKOUT_DISABLE __HAL_RCC_PLL3_CLKOUT_DISABLE +#define __HAL_RCC_PLL3FRACN_CONFIG __HAL_RCC_PLL3_FRACN_CONFIG +#define __HAL_RCC_GET_PLL3CLKOUT_CONFIG __HAL_RCC_GET_PLL3_CLKOUT_CONFIG + +#define RCC_PLL2VCIRANGE_0 RCC_PLL2_VCIRANGE_0 +#define RCC_PLL2VCIRANGE_1 RCC_PLL2_VCIRANGE_1 +#define RCC_PLL2VCIRANGE_2 RCC_PLL2_VCIRANGE_2 +#define RCC_PLL2VCIRANGE_3 RCC_PLL2_VCIRANGE_3 + +#define RCC_PLL2VCOWIDE RCC_PLL2_VCORANGE_WIDE +#define RCC_PLL2VCOMEDIUM RCC_PLL2_VCORANGE_MEDIUM + +#define RCC_PLL2SOURCE_NONE RCC_PLL2_SOURCE_NONE +#define RCC_PLL2SOURCE_HSI RCC_PLL2_SOURCE_HSI +#define RCC_PLL2SOURCE_CSI RCC_PLL2_SOURCE_CSI +#define RCC_PLL2SOURCE_HSE RCC_PLL2_SOURCE_HSE + +#define RCC_PLL3VCIRANGE_0 RCC_PLL3_VCIRANGE_0 +#define RCC_PLL3VCIRANGE_1 RCC_PLL3_VCIRANGE_1 +#define RCC_PLL3VCIRANGE_2 RCC_PLL3_VCIRANGE_2 +#define RCC_PLL3VCIRANGE_3 RCC_PLL3_VCIRANGE_3 + +#define RCC_PLL3VCOWIDE RCC_PLL3_VCORANGE_WIDE +#define RCC_PLL3VCOMEDIUM RCC_PLL3_VCORANGE_MEDIUM + +#define RCC_PLL3SOURCE_NONE RCC_PLL3_SOURCE_NONE +#define RCC_PLL3SOURCE_HSI RCC_PLL3_SOURCE_HSI +#define RCC_PLL3SOURCE_CSI RCC_PLL3_SOURCE_CSI +#define RCC_PLL3SOURCE_HSE RCC_PLL3_SOURCE_HSE + + +#endif /* STM32H5 */ + +/** + * @} + */ + +/** @defgroup HAL_RNG_Aliased_Macros HAL RNG Aliased Macros maintained for legacy purpose + * @{ + */ +#define HAL_RNG_ReadyCallback(__HANDLE__) HAL_RNG_ReadyDataCallback((__HANDLE__), uint32_t random32bit) + +/** + * @} + */ + +/** @defgroup HAL_RTC_Aliased_Macros HAL RTC Aliased Macros maintained for legacy purpose + * @{ + */ +#if defined (STM32G0) || defined (STM32L5) || defined (STM32L412xx) || defined (STM32L422xx) || \ + defined (STM32L4P5xx)|| defined (STM32L4Q5xx) || defined (STM32G4) || defined (STM32WL) || defined (STM32U5) || \ + defined (STM32WBA) || defined (STM32H5) || \ + defined (STM32C0) || defined (STM32N6) || defined (STM32H7RS) || defined (STM32U0) || defined (STM32U3) +#else +#define __HAL_RTC_CLEAR_FLAG __HAL_RTC_EXTI_CLEAR_FLAG +#endif +#define __HAL_RTC_DISABLE_IT __HAL_RTC_EXTI_DISABLE_IT +#define __HAL_RTC_ENABLE_IT __HAL_RTC_EXTI_ENABLE_IT + +#if defined (STM32F1) +#define __HAL_RTC_EXTI_CLEAR_FLAG(RTC_EXTI_LINE_ALARM_EVENT) __HAL_RTC_ALARM_EXTI_CLEAR_FLAG() + +#define __HAL_RTC_EXTI_ENABLE_IT(RTC_EXTI_LINE_ALARM_EVENT) __HAL_RTC_ALARM_EXTI_ENABLE_IT() + +#define __HAL_RTC_EXTI_DISABLE_IT(RTC_EXTI_LINE_ALARM_EVENT) __HAL_RTC_ALARM_EXTI_DISABLE_IT() + +#define __HAL_RTC_EXTI_GET_FLAG(RTC_EXTI_LINE_ALARM_EVENT) __HAL_RTC_ALARM_EXTI_GET_FLAG() + +#define __HAL_RTC_EXTI_GENERATE_SWIT(RTC_EXTI_LINE_ALARM_EVENT) __HAL_RTC_ALARM_EXTI_GENERATE_SWIT() +#else +#define __HAL_RTC_EXTI_CLEAR_FLAG(__EXTI_LINE__) (((__EXTI_LINE__) == RTC_EXTI_LINE_ALARM_EVENT) ? __HAL_RTC_ALARM_EXTI_CLEAR_FLAG() : \ + (((__EXTI_LINE__) == RTC_EXTI_LINE_WAKEUPTIMER_EVENT) ? __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG() : \ + __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG())) +#define __HAL_RTC_EXTI_ENABLE_IT(__EXTI_LINE__) (((__EXTI_LINE__) == RTC_EXTI_LINE_ALARM_EVENT) ? __HAL_RTC_ALARM_EXTI_ENABLE_IT() : \ + (((__EXTI_LINE__) == RTC_EXTI_LINE_WAKEUPTIMER_EVENT) ? __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT() : \ + __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT())) +#define __HAL_RTC_EXTI_DISABLE_IT(__EXTI_LINE__) (((__EXTI_LINE__) == RTC_EXTI_LINE_ALARM_EVENT) ? __HAL_RTC_ALARM_EXTI_DISABLE_IT() : \ + (((__EXTI_LINE__) == RTC_EXTI_LINE_WAKEUPTIMER_EVENT) ? __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT() : \ + __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT())) +#define __HAL_RTC_EXTI_GET_FLAG(__EXTI_LINE__) (((__EXTI_LINE__) == RTC_EXTI_LINE_ALARM_EVENT) ? __HAL_RTC_ALARM_EXTI_GET_FLAG() : \ + (((__EXTI_LINE__) == RTC_EXTI_LINE_WAKEUPTIMER_EVENT) ? __HAL_RTC_WAKEUPTIMER_EXTI_GET_FLAG() : \ + __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG())) +#define __HAL_RTC_EXTI_GENERATE_SWIT(__EXTI_LINE__) (((__EXTI_LINE__) == RTC_EXTI_LINE_ALARM_EVENT) ? __HAL_RTC_ALARM_EXTI_GENERATE_SWIT() : \ + (((__EXTI_LINE__) == RTC_EXTI_LINE_WAKEUPTIMER_EVENT) ? __HAL_RTC_WAKEUPTIMER_EXTI_GENERATE_SWIT() : \ + __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GENERATE_SWIT())) +#endif /* STM32F1 */ + +#if defined (STM32F0) || defined (STM32F2) || defined (STM32F3) || defined (STM32F4) || defined (STM32F7) || \ + defined (STM32H7) || \ + defined (STM32L0) || defined (STM32L1) || \ + defined (STM32WB) +#define __HAL_RTC_TAMPER_GET_IT __HAL_RTC_TAMPER_GET_FLAG +#endif + +#define IS_ALARM IS_RTC_ALARM +#define IS_ALARM_MASK IS_RTC_ALARM_MASK +#define IS_TAMPER IS_RTC_TAMPER +#define IS_TAMPER_ERASE_MODE IS_RTC_TAMPER_ERASE_MODE +#define IS_TAMPER_FILTER IS_RTC_TAMPER_FILTER +#define IS_TAMPER_INTERRUPT IS_RTC_TAMPER_INTERRUPT +#define IS_TAMPER_MASKFLAG_STATE IS_RTC_TAMPER_MASKFLAG_STATE +#define IS_TAMPER_PRECHARGE_DURATION IS_RTC_TAMPER_PRECHARGE_DURATION +#define IS_TAMPER_PULLUP_STATE IS_RTC_TAMPER_PULLUP_STATE +#define IS_TAMPER_SAMPLING_FREQ IS_RTC_TAMPER_SAMPLING_FREQ +#define IS_TAMPER_TIMESTAMPONTAMPER_DETECTION IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION +#define IS_TAMPER_TRIGGER IS_RTC_TAMPER_TRIGGER +#define IS_WAKEUP_CLOCK IS_RTC_WAKEUP_CLOCK +#define IS_WAKEUP_COUNTER IS_RTC_WAKEUP_COUNTER + +#define __RTC_WRITEPROTECTION_ENABLE __HAL_RTC_WRITEPROTECTION_ENABLE +#define __RTC_WRITEPROTECTION_DISABLE __HAL_RTC_WRITEPROTECTION_DISABLE + +#if defined (STM32H5) +#define __HAL_RCC_RTCAPB_CLK_ENABLE __HAL_RCC_RTC_CLK_ENABLE +#define __HAL_RCC_RTCAPB_CLK_DISABLE __HAL_RCC_RTC_CLK_DISABLE +#endif /* STM32H5 */ + +/** + * @} + */ + +/** @defgroup HAL_SD_Aliased_Macros HAL SD/MMC Aliased Macros maintained for legacy purpose + * @{ + */ + +#define SD_OCR_CID_CSD_OVERWRIETE SD_OCR_CID_CSD_OVERWRITE +#define SD_CMD_SD_APP_STAUS SD_CMD_SD_APP_STATUS + +#if !defined(STM32F1) && !defined(STM32F2) && !defined(STM32F4) && !defined(STM32L1) +#define eMMC_HIGH_VOLTAGE_RANGE EMMC_HIGH_VOLTAGE_RANGE +#define eMMC_DUAL_VOLTAGE_RANGE EMMC_DUAL_VOLTAGE_RANGE +#define eMMC_LOW_VOLTAGE_RANGE EMMC_LOW_VOLTAGE_RANGE + +#define SDMMC_NSpeed_CLK_DIV SDMMC_NSPEED_CLK_DIV +#define SDMMC_HSpeed_CLK_DIV SDMMC_HSPEED_CLK_DIV +#endif + +#if defined(STM32F4) || defined(STM32F2) +#define SD_SDMMC_DISABLED SD_SDIO_DISABLED +#define SD_SDMMC_FUNCTION_BUSY SD_SDIO_FUNCTION_BUSY +#define SD_SDMMC_FUNCTION_FAILED SD_SDIO_FUNCTION_FAILED +#define SD_SDMMC_UNKNOWN_FUNCTION SD_SDIO_UNKNOWN_FUNCTION +#define SD_CMD_SDMMC_SEN_OP_COND SD_CMD_SDIO_SEN_OP_COND +#define SD_CMD_SDMMC_RW_DIRECT SD_CMD_SDIO_RW_DIRECT +#define SD_CMD_SDMMC_RW_EXTENDED SD_CMD_SDIO_RW_EXTENDED +#define __HAL_SD_SDMMC_ENABLE __HAL_SD_SDIO_ENABLE +#define __HAL_SD_SDMMC_DISABLE __HAL_SD_SDIO_DISABLE +#define __HAL_SD_SDMMC_DMA_ENABLE __HAL_SD_SDIO_DMA_ENABLE +#define __HAL_SD_SDMMC_DMA_DISABLE __HAL_SD_SDIO_DMA_DISABL +#define __HAL_SD_SDMMC_ENABLE_IT __HAL_SD_SDIO_ENABLE_IT +#define __HAL_SD_SDMMC_DISABLE_IT __HAL_SD_SDIO_DISABLE_IT +#define __HAL_SD_SDMMC_GET_FLAG __HAL_SD_SDIO_GET_FLAG +#define __HAL_SD_SDMMC_CLEAR_FLAG __HAL_SD_SDIO_CLEAR_FLAG +#define __HAL_SD_SDMMC_GET_IT __HAL_SD_SDIO_GET_IT +#define __HAL_SD_SDMMC_CLEAR_IT __HAL_SD_SDIO_CLEAR_IT +#define SDMMC_STATIC_FLAGS SDIO_STATIC_FLAGS +#define SDMMC_CMD0TIMEOUT SDIO_CMD0TIMEOUT +#define SD_SDMMC_SEND_IF_COND SD_SDIO_SEND_IF_COND +/* alias CMSIS */ +#define SDMMC1_IRQn SDIO_IRQn +#define SDMMC1_IRQHandler SDIO_IRQHandler +#endif + +#if defined(STM32F7) || defined(STM32L4) +#define SD_SDIO_DISABLED SD_SDMMC_DISABLED +#define SD_SDIO_FUNCTION_BUSY SD_SDMMC_FUNCTION_BUSY +#define SD_SDIO_FUNCTION_FAILED SD_SDMMC_FUNCTION_FAILED +#define SD_SDIO_UNKNOWN_FUNCTION SD_SDMMC_UNKNOWN_FUNCTION +#define SD_CMD_SDIO_SEN_OP_COND SD_CMD_SDMMC_SEN_OP_COND +#define SD_CMD_SDIO_RW_DIRECT SD_CMD_SDMMC_RW_DIRECT +#define SD_CMD_SDIO_RW_EXTENDED SD_CMD_SDMMC_RW_EXTENDED +#define __HAL_SD_SDIO_ENABLE __HAL_SD_SDMMC_ENABLE +#define __HAL_SD_SDIO_DISABLE __HAL_SD_SDMMC_DISABLE +#define __HAL_SD_SDIO_DMA_ENABLE __HAL_SD_SDMMC_DMA_ENABLE +#define __HAL_SD_SDIO_DMA_DISABL __HAL_SD_SDMMC_DMA_DISABLE +#define __HAL_SD_SDIO_ENABLE_IT __HAL_SD_SDMMC_ENABLE_IT +#define __HAL_SD_SDIO_DISABLE_IT __HAL_SD_SDMMC_DISABLE_IT +#define __HAL_SD_SDIO_GET_FLAG __HAL_SD_SDMMC_GET_FLAG +#define __HAL_SD_SDIO_CLEAR_FLAG __HAL_SD_SDMMC_CLEAR_FLAG +#define __HAL_SD_SDIO_GET_IT __HAL_SD_SDMMC_GET_IT +#define __HAL_SD_SDIO_CLEAR_IT __HAL_SD_SDMMC_CLEAR_IT +#define SDIO_STATIC_FLAGS SDMMC_STATIC_FLAGS +#define SDIO_CMD0TIMEOUT SDMMC_CMD0TIMEOUT +#define SD_SDIO_SEND_IF_COND SD_SDMMC_SEND_IF_COND +/* alias CMSIS for compatibilities */ +#define SDIO_IRQn SDMMC1_IRQn +#define SDIO_IRQHandler SDMMC1_IRQHandler +#endif + +#if defined(STM32F7) || defined(STM32F4) || defined(STM32F2) || defined(STM32L4) || defined(STM32H7) +#define HAL_SD_CardCIDTypedef HAL_SD_CardCIDTypeDef +#define HAL_SD_CardCSDTypedef HAL_SD_CardCSDTypeDef +#define HAL_SD_CardStatusTypedef HAL_SD_CardStatusTypeDef +#define HAL_SD_CardStateTypedef HAL_SD_CardStateTypeDef +#endif + +#if defined(STM32H7) || defined(STM32L5) +#define HAL_MMCEx_Read_DMADoubleBuffer0CpltCallback HAL_MMCEx_Read_DMADoubleBuf0CpltCallback +#define HAL_MMCEx_Read_DMADoubleBuffer1CpltCallback HAL_MMCEx_Read_DMADoubleBuf1CpltCallback +#define HAL_MMCEx_Write_DMADoubleBuffer0CpltCallback HAL_MMCEx_Write_DMADoubleBuf0CpltCallback +#define HAL_MMCEx_Write_DMADoubleBuffer1CpltCallback HAL_MMCEx_Write_DMADoubleBuf1CpltCallback +#define HAL_SDEx_Read_DMADoubleBuffer0CpltCallback HAL_SDEx_Read_DMADoubleBuf0CpltCallback +#define HAL_SDEx_Read_DMADoubleBuffer1CpltCallback HAL_SDEx_Read_DMADoubleBuf1CpltCallback +#define HAL_SDEx_Write_DMADoubleBuffer0CpltCallback HAL_SDEx_Write_DMADoubleBuf0CpltCallback +#define HAL_SDEx_Write_DMADoubleBuffer1CpltCallback HAL_SDEx_Write_DMADoubleBuf1CpltCallback +#define HAL_SD_DriveTransciver_1_8V_Callback HAL_SD_DriveTransceiver_1_8V_Callback +#endif +/** + * @} + */ + +/** @defgroup HAL_SMARTCARD_Aliased_Macros HAL SMARTCARD Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __SMARTCARD_ENABLE_IT __HAL_SMARTCARD_ENABLE_IT +#define __SMARTCARD_DISABLE_IT __HAL_SMARTCARD_DISABLE_IT +#define __SMARTCARD_ENABLE __HAL_SMARTCARD_ENABLE +#define __SMARTCARD_DISABLE __HAL_SMARTCARD_DISABLE +#define __SMARTCARD_DMA_REQUEST_ENABLE __HAL_SMARTCARD_DMA_REQUEST_ENABLE +#define __SMARTCARD_DMA_REQUEST_DISABLE __HAL_SMARTCARD_DMA_REQUEST_DISABLE + +#define __HAL_SMARTCARD_GETCLOCKSOURCE SMARTCARD_GETCLOCKSOURCE +#define __SMARTCARD_GETCLOCKSOURCE SMARTCARD_GETCLOCKSOURCE + +#define IS_SMARTCARD_ONEBIT_SAMPLING IS_SMARTCARD_ONE_BIT_SAMPLE + +/** + * @} + */ + +/** @defgroup HAL_SMBUS_Aliased_Macros HAL SMBUS Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_SMBUS_RESET_CR1 SMBUS_RESET_CR1 +#define __HAL_SMBUS_RESET_CR2 SMBUS_RESET_CR2 +#define __HAL_SMBUS_GENERATE_START SMBUS_GENERATE_START +#define __HAL_SMBUS_GET_ADDR_MATCH SMBUS_GET_ADDR_MATCH +#define __HAL_SMBUS_GET_DIR SMBUS_GET_DIR +#define __HAL_SMBUS_GET_STOP_MODE SMBUS_GET_STOP_MODE +#define __HAL_SMBUS_GET_PEC_MODE SMBUS_GET_PEC_MODE +#define __HAL_SMBUS_GET_ALERT_ENABLED SMBUS_GET_ALERT_ENABLED +/** + * @} + */ + +/** @defgroup HAL_SPI_Aliased_Macros HAL SPI Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __HAL_SPI_1LINE_TX SPI_1LINE_TX +#define __HAL_SPI_1LINE_RX SPI_1LINE_RX +#define __HAL_SPI_RESET_CRC SPI_RESET_CRC + +/** + * @} + */ + +/** @defgroup HAL_UART_Aliased_Macros HAL UART Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __HAL_UART_GETCLOCKSOURCE UART_GETCLOCKSOURCE +#define __HAL_UART_MASK_COMPUTATION UART_MASK_COMPUTATION +#define __UART_GETCLOCKSOURCE UART_GETCLOCKSOURCE +#define __UART_MASK_COMPUTATION UART_MASK_COMPUTATION + +#define IS_UART_WAKEUPMETHODE IS_UART_WAKEUPMETHOD + +#define IS_UART_ONEBIT_SAMPLE IS_UART_ONE_BIT_SAMPLE +#define IS_UART_ONEBIT_SAMPLING IS_UART_ONE_BIT_SAMPLE + +/** + * @} + */ + + +/** @defgroup HAL_USART_Aliased_Macros HAL USART Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __USART_ENABLE_IT __HAL_USART_ENABLE_IT +#define __USART_DISABLE_IT __HAL_USART_DISABLE_IT +#define __USART_ENABLE __HAL_USART_ENABLE +#define __USART_DISABLE __HAL_USART_DISABLE + +#define __HAL_USART_GETCLOCKSOURCE USART_GETCLOCKSOURCE +#define __USART_GETCLOCKSOURCE USART_GETCLOCKSOURCE + +#if defined(STM32F0) || defined(STM32F3) || defined(STM32F7) +#define USART_OVERSAMPLING_16 0x00000000U +#define USART_OVERSAMPLING_8 USART_CR1_OVER8 + +#define IS_USART_OVERSAMPLING(__SAMPLING__) (((__SAMPLING__) == USART_OVERSAMPLING_16) || \ + ((__SAMPLING__) == USART_OVERSAMPLING_8)) +#endif /* STM32F0 || STM32F3 || STM32F7 */ +/** + * @} + */ + +/** @defgroup HAL_USB_Aliased_Macros HAL USB Aliased Macros maintained for legacy purpose + * @{ + */ +#define USB_EXTI_LINE_WAKEUP USB_WAKEUP_EXTI_LINE + +#define USB_FS_EXTI_TRIGGER_RISING_EDGE USB_OTG_FS_WAKEUP_EXTI_RISING_EDGE +#define USB_FS_EXTI_TRIGGER_FALLING_EDGE USB_OTG_FS_WAKEUP_EXTI_FALLING_EDGE +#define USB_FS_EXTI_TRIGGER_BOTH_EDGE USB_OTG_FS_WAKEUP_EXTI_RISING_FALLING_EDGE +#define USB_FS_EXTI_LINE_WAKEUP USB_OTG_FS_WAKEUP_EXTI_LINE + +#define USB_HS_EXTI_TRIGGER_RISING_EDGE USB_OTG_HS_WAKEUP_EXTI_RISING_EDGE +#define USB_HS_EXTI_TRIGGER_FALLING_EDGE USB_OTG_HS_WAKEUP_EXTI_FALLING_EDGE +#define USB_HS_EXTI_TRIGGER_BOTH_EDGE USB_OTG_HS_WAKEUP_EXTI_RISING_FALLING_EDGE +#define USB_HS_EXTI_LINE_WAKEUP USB_OTG_HS_WAKEUP_EXTI_LINE + +#define __HAL_USB_EXTI_ENABLE_IT __HAL_USB_WAKEUP_EXTI_ENABLE_IT +#define __HAL_USB_EXTI_DISABLE_IT __HAL_USB_WAKEUP_EXTI_DISABLE_IT +#define __HAL_USB_EXTI_GET_FLAG __HAL_USB_WAKEUP_EXTI_GET_FLAG +#define __HAL_USB_EXTI_CLEAR_FLAG __HAL_USB_WAKEUP_EXTI_CLEAR_FLAG +#define __HAL_USB_EXTI_SET_RISING_EDGE_TRIGGER __HAL_USB_WAKEUP_EXTI_ENABLE_RISING_EDGE +#define __HAL_USB_EXTI_SET_FALLING_EDGE_TRIGGER __HAL_USB_WAKEUP_EXTI_ENABLE_FALLING_EDGE +#define __HAL_USB_EXTI_SET_FALLINGRISING_TRIGGER __HAL_USB_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE + +#define __HAL_USB_FS_EXTI_ENABLE_IT __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_IT +#define __HAL_USB_FS_EXTI_DISABLE_IT __HAL_USB_OTG_FS_WAKEUP_EXTI_DISABLE_IT +#define __HAL_USB_FS_EXTI_GET_FLAG __HAL_USB_OTG_FS_WAKEUP_EXTI_GET_FLAG +#define __HAL_USB_FS_EXTI_CLEAR_FLAG __HAL_USB_OTG_FS_WAKEUP_EXTI_CLEAR_FLAG +#define __HAL_USB_FS_EXTI_SET_RISING_EGDE_TRIGGER __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_RISING_EDGE +#define __HAL_USB_FS_EXTI_SET_FALLING_EGDE_TRIGGER __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_FALLING_EDGE +#define __HAL_USB_FS_EXTI_SET_FALLINGRISING_TRIGGER __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE +#define __HAL_USB_FS_EXTI_GENERATE_SWIT __HAL_USB_OTG_FS_WAKEUP_EXTI_GENERATE_SWIT + +#define __HAL_USB_HS_EXTI_ENABLE_IT __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_IT +#define __HAL_USB_HS_EXTI_DISABLE_IT __HAL_USB_OTG_HS_WAKEUP_EXTI_DISABLE_IT +#define __HAL_USB_HS_EXTI_GET_FLAG __HAL_USB_OTG_HS_WAKEUP_EXTI_GET_FLAG +#define __HAL_USB_HS_EXTI_CLEAR_FLAG __HAL_USB_OTG_HS_WAKEUP_EXTI_CLEAR_FLAG +#define __HAL_USB_HS_EXTI_SET_RISING_EGDE_TRIGGER __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_EDGE +#define __HAL_USB_HS_EXTI_SET_FALLING_EGDE_TRIGGER __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_FALLING_EDGE +#define __HAL_USB_HS_EXTI_SET_FALLINGRISING_TRIGGER __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE +#define __HAL_USB_HS_EXTI_GENERATE_SWIT __HAL_USB_OTG_HS_WAKEUP_EXTI_GENERATE_SWIT + +#define HAL_PCD_ActiveRemoteWakeup HAL_PCD_ActivateRemoteWakeup +#define HAL_PCD_DeActiveRemoteWakeup HAL_PCD_DeActivateRemoteWakeup + +#define HAL_PCD_SetTxFiFo HAL_PCDEx_SetTxFiFo +#define HAL_PCD_SetRxFiFo HAL_PCDEx_SetRxFiFo +#if defined(STM32U5) +#define USB_OTG_GOTGCTL_BSESVLD USB_OTG_GOTGCTL_BSVLD +#define USB_OTG_GAHBCFG_GINT USB_OTG_GAHBCFG_GINTMSK +#define USB_OTG_GUSBCFG_PHYLPCS USB_OTG_GUSBCFG_PHYLPC +#define USB_OTG_GRSTCTL_HSRST USB_OTG_GRSTCTL_PSRST +#define USB_OTG_GINTSTS_BOUTNAKEFF USB_OTG_GINTSTS_GONAKEFF +#define USB_OTG_GINTSTS_WKUINT USB_OTG_GINTSTS_WKUPINT +#define USB_OTG_GINTMSK_PXFRM_IISOOXFRM USB_OTG_GINTMSK_IPXFRM_IISOOXFRM +#define USB_OTG_GRXSTSP_EPNUM USB_OTG_GRXSTSP_EPNUM_CHNUM +#define USB_OTG_GLPMCFG_L1ResumeOK USB_OTG_GLPMCFG_L1RSMOK +#define USB_OTG_HPTXFSIZ_PTXFD USB_OTG_HPTXFSIZ_PTXFSIZ +#define USB_OTG_HCCHAR_MC USB_OTG_HCCHAR_MCNT +#define USB_OTG_HCCHAR_MC_0 USB_OTG_HCCHAR_MCNT_0 +#define USB_OTG_HCCHAR_MC_1 USB_OTG_HCCHAR_MCNT_1 +#define USB_OTG_HCINTMSK_AHBERR USB_OTG_HCINTMSK_AHBERRM +#define USB_OTG_HCTSIZ_DOPING USB_OTG_HCTSIZ_DOPNG +#define USB_OTG_DOEPMSK_OPEM USB_OTG_DOEPMSK_OUTPKTERRM +#define USB_OTG_DIEPCTL_SODDFRM USB_OTG_DIEPCTL_SD1PID_SODDFRM +#define USB_OTG_DIEPTSIZ_MULCNT USB_OTG_DIEPTSIZ_MCNT +#define USB_OTG_DOEPCTL_SODDFRM USB_OTG_DOEPCTL_SD1PID_SODDFRM +#define USB_OTG_DOEPCTL_DPID USB_OTG_DOEPCTL_DPID_EONUM +#define USB_OTG_DOEPTSIZ_STUPCNT USB_OTG_DOEPTSIZ_RXDPID +#define USB_OTG_DOEPTSIZ_STUPCNT_0 USB_OTG_DOEPTSIZ_RXDPID_0 +#define USB_OTG_DOEPTSIZ_STUPCNT_1 USB_OTG_DOEPTSIZ_RXDPID_1 +#define USB_OTG_PCGCCTL_STOPCLK USB_OTG_PCGCCTL_STPPCLK +#define USB_OTG_PCGCCTL_GATECLK USB_OTG_PCGCCTL_GATEHCLK +#endif +/** + * @} + */ + +/** @defgroup HAL_TIM_Aliased_Macros HAL TIM Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_TIM_SetICPrescalerValue TIM_SET_ICPRESCALERVALUE +#define __HAL_TIM_ResetICPrescalerValue TIM_RESET_ICPRESCALERVALUE + +#define TIM_GET_ITSTATUS __HAL_TIM_GET_IT_SOURCE +#define TIM_GET_CLEAR_IT __HAL_TIM_CLEAR_IT + +#define __HAL_TIM_GET_ITSTATUS __HAL_TIM_GET_IT_SOURCE + +#define __HAL_TIM_DIRECTION_STATUS __HAL_TIM_IS_TIM_COUNTING_DOWN +#define __HAL_TIM_PRESCALER __HAL_TIM_SET_PRESCALER +#define __HAL_TIM_SetCounter __HAL_TIM_SET_COUNTER +#define __HAL_TIM_GetCounter __HAL_TIM_GET_COUNTER +#define __HAL_TIM_SetAutoreload __HAL_TIM_SET_AUTORELOAD +#define __HAL_TIM_GetAutoreload __HAL_TIM_GET_AUTORELOAD +#define __HAL_TIM_SetClockDivision __HAL_TIM_SET_CLOCKDIVISION +#define __HAL_TIM_GetClockDivision __HAL_TIM_GET_CLOCKDIVISION +#define __HAL_TIM_SetICPrescaler __HAL_TIM_SET_ICPRESCALER +#define __HAL_TIM_GetICPrescaler __HAL_TIM_GET_ICPRESCALER +#define __HAL_TIM_SetCompare __HAL_TIM_SET_COMPARE +#define __HAL_TIM_GetCompare __HAL_TIM_GET_COMPARE + +#define TIM_BREAKINPUTSOURCE_DFSDM TIM_BREAKINPUTSOURCE_DFSDM1 + +#define TIM_OCMODE_ASSYMETRIC_PWM1 TIM_OCMODE_ASYMMETRIC_PWM1 +#define TIM_OCMODE_ASSYMETRIC_PWM2 TIM_OCMODE_ASYMMETRIC_PWM2 +/** + * @} + */ + +/** @defgroup HAL_ETH_Aliased_Macros HAL ETH Aliased Macros maintained for legacy purpose + * @{ + */ + +#define __HAL_ETH_EXTI_ENABLE_IT __HAL_ETH_WAKEUP_EXTI_ENABLE_IT +#define __HAL_ETH_EXTI_DISABLE_IT __HAL_ETH_WAKEUP_EXTI_DISABLE_IT +#define __HAL_ETH_EXTI_GET_FLAG __HAL_ETH_WAKEUP_EXTI_GET_FLAG +#define __HAL_ETH_EXTI_CLEAR_FLAG __HAL_ETH_WAKEUP_EXTI_CLEAR_FLAG +#define __HAL_ETH_EXTI_SET_RISING_EGDE_TRIGGER __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_EDGE_TRIGGER +#define __HAL_ETH_EXTI_SET_FALLING_EGDE_TRIGGER __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLING_EDGE_TRIGGER +#define __HAL_ETH_EXTI_SET_FALLINGRISING_TRIGGER __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLINGRISING_TRIGGER + +#define ETH_PROMISCIOUSMODE_ENABLE ETH_PROMISCUOUS_MODE_ENABLE +#define ETH_PROMISCIOUSMODE_DISABLE ETH_PROMISCUOUS_MODE_DISABLE +#define IS_ETH_PROMISCIOUS_MODE IS_ETH_PROMISCUOUS_MODE +/** + * @} + */ + +/** @defgroup HAL_LTDC_Aliased_Macros HAL LTDC Aliased Macros maintained for legacy purpose + * @{ + */ +#define __HAL_LTDC_LAYER LTDC_LAYER +#define __HAL_LTDC_RELOAD_CONFIG __HAL_LTDC_RELOAD_IMMEDIATE_CONFIG +/** + * @} + */ + +/** @defgroup HAL_SAI_Aliased_Macros HAL SAI Aliased Macros maintained for legacy purpose + * @{ + */ +#define SAI_OUTPUTDRIVE_DISABLED SAI_OUTPUTDRIVE_DISABLE +#define SAI_OUTPUTDRIVE_ENABLED SAI_OUTPUTDRIVE_ENABLE +#define SAI_MASTERDIVIDER_ENABLED SAI_MASTERDIVIDER_ENABLE +#define SAI_MASTERDIVIDER_DISABLED SAI_MASTERDIVIDER_DISABLE +#define SAI_STREOMODE SAI_STEREOMODE +#define SAI_FIFOStatus_Empty SAI_FIFOSTATUS_EMPTY +#define SAI_FIFOStatus_Less1QuarterFull SAI_FIFOSTATUS_LESS1QUARTERFULL +#define SAI_FIFOStatus_1QuarterFull SAI_FIFOSTATUS_1QUARTERFULL +#define SAI_FIFOStatus_HalfFull SAI_FIFOSTATUS_HALFFULL +#define SAI_FIFOStatus_3QuartersFull SAI_FIFOSTATUS_3QUARTERFULL +#define SAI_FIFOStatus_Full SAI_FIFOSTATUS_FULL +#define IS_SAI_BLOCK_MONO_STREO_MODE IS_SAI_BLOCK_MONO_STEREO_MODE +#define SAI_SYNCHRONOUS_EXT SAI_SYNCHRONOUS_EXT_SAI1 +#define SAI_SYNCEXT_IN_ENABLE SAI_SYNCEXT_OUTBLOCKA_ENABLE +/** + * @} + */ + +/** @defgroup HAL_SPDIFRX_Aliased_Macros HAL SPDIFRX Aliased Macros maintained for legacy purpose + * @{ + */ +#if defined(STM32H7) +#define HAL_SPDIFRX_ReceiveControlFlow HAL_SPDIFRX_ReceiveCtrlFlow +#define HAL_SPDIFRX_ReceiveControlFlow_IT HAL_SPDIFRX_ReceiveCtrlFlow_IT +#define HAL_SPDIFRX_ReceiveControlFlow_DMA HAL_SPDIFRX_ReceiveCtrlFlow_DMA +#endif +/** + * @} + */ + +/** @defgroup HAL_HRTIM_Aliased_Functions HAL HRTIM Aliased Functions maintained for legacy purpose + * @{ + */ +#if defined (STM32H7) || defined (STM32G4) || defined (STM32F3) +#define HAL_HRTIM_WaveformCounterStart_IT HAL_HRTIM_WaveformCountStart_IT +#define HAL_HRTIM_WaveformCounterStart_DMA HAL_HRTIM_WaveformCountStart_DMA +#define HAL_HRTIM_WaveformCounterStart HAL_HRTIM_WaveformCountStart +#define HAL_HRTIM_WaveformCounterStop_IT HAL_HRTIM_WaveformCountStop_IT +#define HAL_HRTIM_WaveformCounterStop_DMA HAL_HRTIM_WaveformCountStop_DMA +#define HAL_HRTIM_WaveformCounterStop HAL_HRTIM_WaveformCountStop +#endif +/** + * @} + */ + +/** @defgroup HAL_QSPI_Aliased_Macros HAL QSPI Aliased Macros maintained for legacy purpose + * @{ + */ +#if defined (STM32L4) || defined (STM32F4) || defined (STM32F7) || defined(STM32H7) +#define HAL_QPSI_TIMEOUT_DEFAULT_VALUE HAL_QSPI_TIMEOUT_DEFAULT_VALUE +#endif /* STM32L4 || STM32F4 || STM32F7 */ +/** + * @} + */ + +/** @defgroup HAL_Generic_Aliased_Macros HAL Generic Aliased Macros maintained for legacy purpose + * @{ + */ +#if defined (STM32F7) +#define ART_ACCLERATOR_ENABLE ART_ACCELERATOR_ENABLE +#endif /* STM32F7 */ +/** + * @} + */ + +/** @defgroup HAL_PPP_Aliased_Macros HAL PPP Aliased Macros maintained for legacy purpose + * @{ + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32_HAL_LEGACY */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h new file mode 100644 index 0000000..54d3ad0 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h @@ -0,0 +1,995 @@ +/** + ****************************************************************************** + * @file stm32l1xx_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 is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_H +#define __STM32L1xx_HAL_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_conf.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @addtogroup HAL + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup HAL_Exported_Constants HAL Exported Constants + * @{ + */ + +/** @defgroup HAL_TICK_FREQ Tick Frequency + * @{ + */ +#define HAL_TICK_FREQ_10HZ 100U +#define HAL_TICK_FREQ_100HZ 10U +#define HAL_TICK_FREQ_1KHZ 1U +#define HAL_TICK_FREQ_DEFAULT HAL_TICK_FREQ_1KHZ + +#define IS_TICKFREQ(__FREQ__) (((__FREQ__) == HAL_TICK_FREQ_10HZ) || \ + ((__FREQ__) == HAL_TICK_FREQ_100HZ) || \ + ((__FREQ__) == HAL_TICK_FREQ_1KHZ)) + +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup SYSCFG_Exported_Constants SYSCFG Exported Constants + * @{ + */ + +/** @defgroup SYSCFG_Constants SYSCFG: SYStem ConFiG + * @{ + */ + +/** @defgroup SYSCFG_BootMode Boot Mode + * @{ + */ + +#define SYSCFG_BOOT_MAINFLASH (0x00000000U) +#define SYSCFG_BOOT_SYSTEMFLASH ((uint32_t)SYSCFG_MEMRMP_BOOT_MODE_0) +#if defined(FSMC_R_BASE) +#define SYSCFG_BOOT_FSMC ((uint32_t)SYSCFG_MEMRMP_BOOT_MODE_1) +#endif /* FSMC_R_BASE */ +#define SYSCFG_BOOT_SRAM ((uint32_t)SYSCFG_MEMRMP_BOOT_MODE) + +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup RI_Constants RI: Routing Interface + * @{ + */ + +/** @defgroup RI_InputCapture Input Capture + * @{ + */ + +#define RI_INPUTCAPTURE_IC1 RI_ICR_IC1 /*!< Input Capture 1 */ +#define RI_INPUTCAPTURE_IC2 RI_ICR_IC2 /*!< Input Capture 2 */ +#define RI_INPUTCAPTURE_IC3 RI_ICR_IC3 /*!< Input Capture 3 */ +#define RI_INPUTCAPTURE_IC4 RI_ICR_IC4 /*!< Input Capture 4 */ + +/** + * @} + */ + +/** @defgroup TIM_Select TIM Select + * @{ + */ + +#define TIM_SELECT_NONE (0x00000000U) /*!< None selected */ +#define TIM_SELECT_TIM2 ((uint32_t)RI_ICR_TIM_0) /*!< Timer 2 selected */ +#define TIM_SELECT_TIM3 ((uint32_t)RI_ICR_TIM_1) /*!< Timer 3 selected */ +#define TIM_SELECT_TIM4 ((uint32_t)RI_ICR_TIM) /*!< Timer 4 selected */ + +#define IS_RI_TIM(__TIM__) (((__TIM__) == TIM_SELECT_NONE) || \ + ((__TIM__) == TIM_SELECT_TIM2) || \ + ((__TIM__) == TIM_SELECT_TIM3) || \ + ((__TIM__) == TIM_SELECT_TIM4)) + +/** + * @} + */ + +/** @defgroup RI_InputCaptureRouting Input Capture Routing + * @{ + */ + /* TIMx_IC1 TIMx_IC2 TIMx_IC3 TIMx_IC4 */ +#define RI_INPUTCAPTUREROUTING_0 (0x00000000U) /* PA0 PA1 PA2 PA3 */ +#define RI_INPUTCAPTUREROUTING_1 (0x00000001U) /* PA4 PA5 PA6 PA7 */ +#define RI_INPUTCAPTUREROUTING_2 (0x00000002U) /* PA8 PA9 PA10 PA11 */ +#define RI_INPUTCAPTUREROUTING_3 (0x00000003U) /* PA12 PA13 PA14 PA15 */ +#define RI_INPUTCAPTUREROUTING_4 (0x00000004U) /* PC0 PC1 PC2 PC3 */ +#define RI_INPUTCAPTUREROUTING_5 (0x00000005U) /* PC4 PC5 PC6 PC7 */ +#define RI_INPUTCAPTUREROUTING_6 (0x00000006U) /* PC8 PC9 PC10 PC11 */ +#define RI_INPUTCAPTUREROUTING_7 (0x00000007U) /* PC12 PC13 PC14 PC15 */ +#define RI_INPUTCAPTUREROUTING_8 (0x00000008U) /* PD0 PD1 PD2 PD3 */ +#define RI_INPUTCAPTUREROUTING_9 (0x00000009U) /* PD4 PD5 PD6 PD7 */ +#define RI_INPUTCAPTUREROUTING_10 (0x0000000AU) /* PD8 PD9 PD10 PD11 */ +#define RI_INPUTCAPTUREROUTING_11 (0x0000000BU) /* PD12 PD13 PD14 PD15 */ +#define RI_INPUTCAPTUREROUTING_12 (0x0000000CU) /* PE0 PE1 PE2 PE3 */ +#define RI_INPUTCAPTUREROUTING_13 (0x0000000DU) /* PE4 PE5 PE6 PE7 */ +#define RI_INPUTCAPTUREROUTING_14 (0x0000000EU) /* PE8 PE9 PE10 PE11 */ +#define RI_INPUTCAPTUREROUTING_15 (0x0000000FU) /* PE12 PE13 PE14 PE15 */ + +#define IS_RI_INPUTCAPTURE_ROUTING(__ROUTING__) (((__ROUTING__) == RI_INPUTCAPTUREROUTING_0) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_1) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_2) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_3) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_4) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_5) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_6) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_7) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_8) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_9) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_10) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_11) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_12) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_13) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_14) || \ + ((__ROUTING__) == RI_INPUTCAPTUREROUTING_15)) + +/** + * @} + */ + +/** @defgroup RI_IOSwitch IO Switch + * @{ + */ +#define RI_ASCR1_REGISTER (0x80000000U) +/* ASCR1 I/O switch: bit 31 is set to '1' to indicate that the mask is in ASCR1 register */ +#define RI_IOSWITCH_CH0 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_0) +#define RI_IOSWITCH_CH1 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_1) +#define RI_IOSWITCH_CH2 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_2) +#define RI_IOSWITCH_CH3 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_3) +#define RI_IOSWITCH_CH4 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_4) +#define RI_IOSWITCH_CH5 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_5) +#define RI_IOSWITCH_CH6 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_6) +#define RI_IOSWITCH_CH7 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_7) +#define RI_IOSWITCH_CH8 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_8) +#define RI_IOSWITCH_CH9 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_9) +#define RI_IOSWITCH_CH10 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_10) +#define RI_IOSWITCH_CH11 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_11) +#define RI_IOSWITCH_CH12 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_12) +#define RI_IOSWITCH_CH13 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_13) +#define RI_IOSWITCH_CH14 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_14) +#define RI_IOSWITCH_CH15 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_15) +#define RI_IOSWITCH_CH18 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_18) +#define RI_IOSWITCH_CH19 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_19) +#define RI_IOSWITCH_CH20 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_20) +#define RI_IOSWITCH_CH21 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_21) +#define RI_IOSWITCH_CH22 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_22) +#define RI_IOSWITCH_CH23 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_23) +#define RI_IOSWITCH_CH24 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_24) +#define RI_IOSWITCH_CH25 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_25) +#define RI_IOSWITCH_VCOMP ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_VCOMP) /* VCOMP (ADC channel 26) is an internal switch used to connect selected channel to COMP1 non inverting input */ +#if defined (RI_ASCR2_CH1b) /* STM32L1 devices category Cat.4 and Cat.5 */ +#define RI_IOSWITCH_CH27 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_27) +#define RI_IOSWITCH_CH28 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_28) +#define RI_IOSWITCH_CH29 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_29) +#define RI_IOSWITCH_CH30 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_30) +#define RI_IOSWITCH_CH31 ((uint32_t)RI_ASCR1_REGISTER | RI_ASCR1_CH_31) +#endif /* RI_ASCR2_CH1b */ + +/* ASCR2 IO switch: bit 31 is set to '0' to indicate that the mask is in ASCR2 register */ +#define RI_IOSWITCH_GR10_1 ((uint32_t)RI_ASCR2_GR10_1) +#define RI_IOSWITCH_GR10_2 ((uint32_t)RI_ASCR2_GR10_2) +#define RI_IOSWITCH_GR10_3 ((uint32_t)RI_ASCR2_GR10_3) +#define RI_IOSWITCH_GR10_4 ((uint32_t)RI_ASCR2_GR10_4) +#define RI_IOSWITCH_GR6_1 ((uint32_t)RI_ASCR2_GR6_1) +#define RI_IOSWITCH_GR6_2 ((uint32_t)RI_ASCR2_GR6_2) +#define RI_IOSWITCH_GR5_1 ((uint32_t)RI_ASCR2_GR5_1) +#define RI_IOSWITCH_GR5_2 ((uint32_t)RI_ASCR2_GR5_2) +#define RI_IOSWITCH_GR5_3 ((uint32_t)RI_ASCR2_GR5_3) +#define RI_IOSWITCH_GR4_1 ((uint32_t)RI_ASCR2_GR4_1) +#define RI_IOSWITCH_GR4_2 ((uint32_t)RI_ASCR2_GR4_2) +#define RI_IOSWITCH_GR4_3 ((uint32_t)RI_ASCR2_GR4_3) +#if defined (RI_ASCR2_CH0b) /* STM32L1 devices category Cat.3, Cat.4 and Cat.5 */ +#define RI_IOSWITCH_CH0b ((uint32_t)RI_ASCR2_CH0b) +#if defined (RI_ASCR2_CH1b) /* STM32L1 devices category Cat.4 and Cat.5 */ +#define RI_IOSWITCH_CH1b ((uint32_t)RI_ASCR2_CH1b) +#define RI_IOSWITCH_CH2b ((uint32_t)RI_ASCR2_CH2b) +#define RI_IOSWITCH_CH3b ((uint32_t)RI_ASCR2_CH3b) +#define RI_IOSWITCH_CH6b ((uint32_t)RI_ASCR2_CH6b) +#define RI_IOSWITCH_CH7b ((uint32_t)RI_ASCR2_CH7b) +#define RI_IOSWITCH_CH8b ((uint32_t)RI_ASCR2_CH8b) +#define RI_IOSWITCH_CH9b ((uint32_t)RI_ASCR2_CH9b) +#define RI_IOSWITCH_CH10b ((uint32_t)RI_ASCR2_CH10b) +#define RI_IOSWITCH_CH11b ((uint32_t)RI_ASCR2_CH11b) +#define RI_IOSWITCH_CH12b ((uint32_t)RI_ASCR2_CH12b) +#endif /* RI_ASCR2_CH1b */ +#define RI_IOSWITCH_GR6_3 ((uint32_t)RI_ASCR2_GR6_3) +#define RI_IOSWITCH_GR6_4 ((uint32_t)RI_ASCR2_GR6_4) +#endif /* RI_ASCR2_CH0b */ + + +#if defined (RI_ASCR2_CH1b) /* STM32L1 devices category Cat.4 and Cat.5 */ + +#define IS_RI_IOSWITCH(__IOSWITCH__) (((__IOSWITCH__) == RI_IOSWITCH_CH0) || ((__IOSWITCH__) == RI_IOSWITCH_CH1) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH2) || ((__IOSWITCH__) == RI_IOSWITCH_CH3) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH4) || ((__IOSWITCH__) == RI_IOSWITCH_CH5) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH6) || ((__IOSWITCH__) == RI_IOSWITCH_CH7) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH8) || ((__IOSWITCH__) == RI_IOSWITCH_CH9) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH10) || ((__IOSWITCH__) == RI_IOSWITCH_CH11) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH12) || ((__IOSWITCH__) == RI_IOSWITCH_CH13) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH14) || ((__IOSWITCH__) == RI_IOSWITCH_CH15) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH18) || ((__IOSWITCH__) == RI_IOSWITCH_CH19) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH20) || ((__IOSWITCH__) == RI_IOSWITCH_CH21) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH22) || ((__IOSWITCH__) == RI_IOSWITCH_CH23) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH24) || ((__IOSWITCH__) == RI_IOSWITCH_CH25) || \ + ((__IOSWITCH__) == RI_IOSWITCH_VCOMP) || ((__IOSWITCH__) == RI_IOSWITCH_CH27) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH28) || ((__IOSWITCH__) == RI_IOSWITCH_CH29) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH30) || ((__IOSWITCH__) == RI_IOSWITCH_CH31) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR10_1) || ((__IOSWITCH__) == RI_IOSWITCH_GR10_2) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR10_3) || ((__IOSWITCH__) == RI_IOSWITCH_GR10_4) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR6_1) || ((__IOSWITCH__) == RI_IOSWITCH_GR6_2) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR6_3) || ((__IOSWITCH__) == RI_IOSWITCH_GR6_4) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR5_1) || ((__IOSWITCH__) == RI_IOSWITCH_GR5_2) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR5_3) || ((__IOSWITCH__) == RI_IOSWITCH_GR4_1) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR4_2) || ((__IOSWITCH__) == RI_IOSWITCH_GR4_3) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH0b) || ((__IOSWITCH__) == RI_IOSWITCH_CH1b) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH2b) || ((__IOSWITCH__) == RI_IOSWITCH_CH3b) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH6b) || ((__IOSWITCH__) == RI_IOSWITCH_CH7b) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH8b) || ((__IOSWITCH__) == RI_IOSWITCH_CH9b) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH10b) || ((__IOSWITCH__) == RI_IOSWITCH_CH11b) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH12b)) + +#else /* !RI_ASCR2_CH1b */ + +#if defined (RI_ASCR2_CH0b) /* STM32L1 devices category Cat.3 */ + +#define IS_RI_IOSWITCH(__IOSWITCH__) (((__IOSWITCH__) == RI_IOSWITCH_CH0) || ((__IOSWITCH__) == RI_IOSWITCH_CH1) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH2) || ((__IOSWITCH__) == RI_IOSWITCH_CH3) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH4) || ((__IOSWITCH__) == RI_IOSWITCH_CH5) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH6) || ((__IOSWITCH__) == RI_IOSWITCH_CH7) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH8) || ((__IOSWITCH__) == RI_IOSWITCH_CH9) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH10) || ((__IOSWITCH__) == RI_IOSWITCH_CH11) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH12) || ((__IOSWITCH__) == RI_IOSWITCH_CH13) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH14) || ((__IOSWITCH__) == RI_IOSWITCH_CH15) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH18) || ((__IOSWITCH__) == RI_IOSWITCH_CH19) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH20) || ((__IOSWITCH__) == RI_IOSWITCH_CH21) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH22) || ((__IOSWITCH__) == RI_IOSWITCH_CH23) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH24) || ((__IOSWITCH__) == RI_IOSWITCH_CH25) || \ + ((__IOSWITCH__) == RI_IOSWITCH_VCOMP) || ((__IOSWITCH__) == RI_IOSWITCH_GR10_1) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR10_2) || ((__IOSWITCH__) == RI_IOSWITCH_GR10_3) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR10_4) || ((__IOSWITCH__) == RI_IOSWITCH_GR6_1) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR6_2) || ((__IOSWITCH__) == RI_IOSWITCH_GR5_1) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR5_2) || ((__IOSWITCH__) == RI_IOSWITCH_GR5_3) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR4_1) || ((__IOSWITCH__) == RI_IOSWITCH_GR4_2) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR4_3) || ((__IOSWITCH__) == RI_IOSWITCH_CH0b)) + +#else /* !RI_ASCR2_CH0b */ /* STM32L1 devices category Cat.1 and Cat.2 */ + +#define IS_RI_IOSWITCH(__IOSWITCH__) (((__IOSWITCH__) == RI_IOSWITCH_CH0) || ((__IOSWITCH__) == RI_IOSWITCH_CH1) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH2) || ((__IOSWITCH__) == RI_IOSWITCH_CH3) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH4) || ((__IOSWITCH__) == RI_IOSWITCH_CH5) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH6) || ((__IOSWITCH__) == RI_IOSWITCH_CH7) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH8) || ((__IOSWITCH__) == RI_IOSWITCH_CH9) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH10) || ((__IOSWITCH__) == RI_IOSWITCH_CH11) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH12) || ((__IOSWITCH__) == RI_IOSWITCH_CH13) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH14) || ((__IOSWITCH__) == RI_IOSWITCH_CH15) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH18) || ((__IOSWITCH__) == RI_IOSWITCH_CH19) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH20) || ((__IOSWITCH__) == RI_IOSWITCH_CH21) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH22) || ((__IOSWITCH__) == RI_IOSWITCH_CH23) || \ + ((__IOSWITCH__) == RI_IOSWITCH_CH24) || ((__IOSWITCH__) == RI_IOSWITCH_CH25) || \ + ((__IOSWITCH__) == RI_IOSWITCH_VCOMP) || ((__IOSWITCH__) == RI_IOSWITCH_GR10_1) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR10_2) || ((__IOSWITCH__) == RI_IOSWITCH_GR10_3) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR10_4) || ((__IOSWITCH__) == RI_IOSWITCH_GR6_1) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR6_2) || ((__IOSWITCH__) == RI_IOSWITCH_GR5_1) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR5_2) || ((__IOSWITCH__) == RI_IOSWITCH_GR5_3) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR4_1) || ((__IOSWITCH__) == RI_IOSWITCH_GR4_2) || \ + ((__IOSWITCH__) == RI_IOSWITCH_GR4_3)) + +#endif /* RI_ASCR2_CH0b */ +#endif /* RI_ASCR2_CH1b */ + +/** + * @} + */ + +/** @defgroup RI_Pin PIN define + * @{ + */ +#define RI_PIN_0 ((uint16_t)0x0001) /*!< Pin 0 selected */ +#define RI_PIN_1 ((uint16_t)0x0002) /*!< Pin 1 selected */ +#define RI_PIN_2 ((uint16_t)0x0004) /*!< Pin 2 selected */ +#define RI_PIN_3 ((uint16_t)0x0008) /*!< Pin 3 selected */ +#define RI_PIN_4 ((uint16_t)0x0010) /*!< Pin 4 selected */ +#define RI_PIN_5 ((uint16_t)0x0020) /*!< Pin 5 selected */ +#define RI_PIN_6 ((uint16_t)0x0040) /*!< Pin 6 selected */ +#define RI_PIN_7 ((uint16_t)0x0080) /*!< Pin 7 selected */ +#define RI_PIN_8 ((uint16_t)0x0100) /*!< Pin 8 selected */ +#define RI_PIN_9 ((uint16_t)0x0200) /*!< Pin 9 selected */ +#define RI_PIN_10 ((uint16_t)0x0400) /*!< Pin 10 selected */ +#define RI_PIN_11 ((uint16_t)0x0800) /*!< Pin 11 selected */ +#define RI_PIN_12 ((uint16_t)0x1000) /*!< Pin 12 selected */ +#define RI_PIN_13 ((uint16_t)0x2000) /*!< Pin 13 selected */ +#define RI_PIN_14 ((uint16_t)0x4000) /*!< Pin 14 selected */ +#define RI_PIN_15 ((uint16_t)0x8000) /*!< Pin 15 selected */ +#define RI_PIN_ALL ((uint16_t)0xFFFF) /*!< All pins selected */ + +#define IS_RI_PIN(__PIN__) ((__PIN__) != (uint16_t)0x00) + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ + +/** @defgroup HAL_Exported_Macros HAL Exported Macros + * @{ + */ + +/** @defgroup DBGMCU_Macros DBGMCU: Debug MCU + * @{ + */ + +/** @defgroup DBGMCU_Freeze_Unfreeze Freeze Unfreeze Peripherals in Debug mode + * @brief Freeze/Unfreeze Peripherals in Debug mode + * @{ + */ + +/** + * @brief TIM2 Peripherals Debug mode + */ +#if defined (DBGMCU_APB1_FZ_DBG_TIM2_STOP) +#define __HAL_DBGMCU_FREEZE_TIM2() SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM2_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM2() CLEAR_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM2_STOP) +#endif + +/** + * @brief TIM3 Peripherals Debug mode + */ +#if defined (DBGMCU_APB1_FZ_DBG_TIM3_STOP) +#define __HAL_DBGMCU_FREEZE_TIM3() SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM3_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM3() CLEAR_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM3_STOP) +#endif + +/** + * @brief TIM4 Peripherals Debug mode + */ +#if defined (DBGMCU_APB1_FZ_DBG_TIM4_STOP) +#define __HAL_DBGMCU_FREEZE_TIM4() SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM4_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM4() CLEAR_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM4_STOP) +#endif + +/** + * @brief TIM5 Peripherals Debug mode + */ +#if defined (DBGMCU_APB1_FZ_DBG_TIM5_STOP) +#define __HAL_DBGMCU_FREEZE_TIM5() SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM5_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM5() CLEAR_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM5_STOP) +#endif + +/** + * @brief TIM6 Peripherals Debug mode + */ +#if defined (DBGMCU_APB1_FZ_DBG_TIM6_STOP) +#define __HAL_DBGMCU_FREEZE_TIM6() SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM6_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM6() CLEAR_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM6_STOP) +#endif + +/** + * @brief TIM7 Peripherals Debug mode + */ +#if defined (DBGMCU_APB1_FZ_DBG_TIM7_STOP) +#define __HAL_DBGMCU_FREEZE_TIM7() SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM7_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM7() CLEAR_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM7_STOP) +#endif + +/** + * @brief RTC Peripherals Debug mode + */ +#if defined (DBGMCU_APB1_FZ_DBG_RTC_STOP) +#define __HAL_DBGMCU_FREEZE_RTC() SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_RTC_STOP) +#define __HAL_DBGMCU_UNFREEZE_RTC() CLEAR_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_RTC_STOP) +#endif + +/** + * @brief WWDG Peripherals Debug mode + */ +#if defined (DBGMCU_APB1_FZ_DBG_WWDG_STOP) +#define __HAL_DBGMCU_FREEZE_WWDG() SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_WWDG_STOP) +#define __HAL_DBGMCU_UNFREEZE_WWDG() CLEAR_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_WWDG_STOP) +#endif + +/** + * @brief IWDG Peripherals Debug mode + */ +#if defined (DBGMCU_APB1_FZ_DBG_IWDG_STOP) +#define __HAL_DBGMCU_FREEZE_IWDG() SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_IWDG_STOP) +#define __HAL_DBGMCU_UNFREEZE_IWDG() CLEAR_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_IWDG_STOP) +#endif + +/** + * @brief I2C1 Peripherals Debug mode + */ +#if defined (DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT) +#define __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT() SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT) +#define __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT) +#endif + +/** + * @brief I2C2 Peripherals Debug mode + */ +#if defined (DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT) +#define __HAL_DBGMCU_FREEZE_I2C2_TIMEOUT() SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT) +#define __HAL_DBGMCU_UNFREEZE_I2C2_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT) +#endif + +/** + * @brief TIM9 Peripherals Debug mode + */ +#if defined (DBGMCU_APB2_FZ_DBG_TIM9_STOP) +#define __HAL_DBGMCU_FREEZE_TIM9() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2_FZ_DBG_TIM9_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM9() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2_FZ_DBG_TIM9_STOP) +#endif + +/** + * @brief TIM10 Peripherals Debug mode + */ +#if defined (DBGMCU_APB2_FZ_DBG_TIM10_STOP) +#define __HAL_DBGMCU_FREEZE_TIM10() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2_FZ_DBG_TIM10_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM10() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2_FZ_DBG_TIM10_STOP) +#endif + +/** + * @brief TIM11 Peripherals Debug mode + */ +#if defined (DBGMCU_APB2_FZ_DBG_TIM11_STOP) +#define __HAL_DBGMCU_FREEZE_TIM11() SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2_FZ_DBG_TIM11_STOP) +#define __HAL_DBGMCU_UNFREEZE_TIM11() CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2_FZ_DBG_TIM11_STOP) +#endif + + +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup SYSCFG_Macros SYSCFG: SYStem ConFiG + * @{ + */ + +/** @defgroup SYSCFG_VrefInt VREFINT configuration + * @{ + */ + +/** + * @brief Enables or disables the output of internal reference voltage + * (VrefInt) on I/O pin. + * @note The VrefInt output can be routed to any I/O in group 3: + * - For Cat.1 and Cat.2 devices: CH8 (PB0) or CH9 (PB1). + * - For Cat.3 devices: CH8 (PB0), CH9 (PB1) or CH0b (PB2). + * - For Cat.4 and Cat.5 devices: CH8 (PB0), CH9 (PB1), CH0b (PB2), + * CH1b (PF11) or CH2b (PF12). + * Note: Comparator peripheral clock must be preliminarily enabled, + * either in COMP user function "HAL_COMP_MspInit()" (should be + * done if comparators are used) or by direct clock enable: + * Refer to macro "__HAL_RCC_COMP_CLK_ENABLE()". + * Note: In addition with this macro, VrefInt output buffer must be + * connected to the selected I/O pin. Refer to macro + * "__HAL_RI_IOSWITCH_CLOSE()". + * @note VrefInt output enable: Internal reference voltage connected to I/O group 3 + * VrefInt output disable: Internal reference voltage disconnected from I/O group 3 + * @retval None + */ +#define __HAL_SYSCFG_VREFINT_OUT_ENABLE() SET_BIT(COMP->CSR, COMP_CSR_VREFOUTEN) +#define __HAL_SYSCFG_VREFINT_OUT_DISABLE() CLEAR_BIT(COMP->CSR, COMP_CSR_VREFOUTEN) + +/** + * @} + */ + +/** @defgroup SYSCFG_BootModeConfig Boot Mode Configuration + * @{ + */ + +/** + * @brief Main Flash memory mapped at 0x00000000 + */ +#define __HAL_SYSCFG_REMAPMEMORY_FLASH() CLEAR_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE) + +/** @brief System Flash memory mapped at 0x00000000 + */ +#define __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, SYSCFG_MEMRMP_MEM_MODE_0) + +/** @brief Embedded SRAM mapped at 0x00000000 + */ +#define __HAL_SYSCFG_REMAPMEMORY_SRAM() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, SYSCFG_MEMRMP_MEM_MODE_0 | SYSCFG_MEMRMP_MEM_MODE_1) + +#if defined(FSMC_R_BASE) +/** @brief FSMC Bank1 (NOR/PSRAM 1 and 2) mapped at 0x00000000 + */ +#define __HAL_SYSCFG_REMAPMEMORY_FSMC() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, SYSCFG_MEMRMP_MEM_MODE_1) + +#endif /* FSMC_R_BASE */ + +/** + * @brief Returns the boot mode as configured by user. + * @retval The boot mode as configured by user. The returned value can be one + * of the following values: + * @arg SYSCFG_BOOT_MAINFLASH + * @arg SYSCFG_BOOT_SYSTEMFLASH + * @arg SYSCFG_BOOT_FSMC (available only for STM32L151xD, STM32L152xD & STM32L162xD) + * @arg SYSCFG_BOOT_SRAM + */ +#define __HAL_SYSCFG_GET_BOOT_MODE() READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_BOOT_MODE) + +/** + * @} + */ + +/** @defgroup SYSCFG_USBConfig USB DP line Configuration + * @{ + */ + +/** + * @brief Control the internal pull-up on USB DP line. + */ +#define __HAL_SYSCFG_USBPULLUP_ENABLE() SET_BIT(SYSCFG->PMC, SYSCFG_PMC_USB_PU) + +#define __HAL_SYSCFG_USBPULLUP_DISABLE() CLEAR_BIT(SYSCFG->PMC, SYSCFG_PMC_USB_PU) + +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup RI_Macris RI: Routing Interface + * @{ + */ + +/** @defgroup RI_InputCaputureConfig Input Capture configuration + * @{ + */ + +/** + * @brief Configures the routing interface to map Input Capture 1 of TIMx to a selected I/O pin. + * @param __TIMSELECT__ Timer select. + * This parameter can be one of the following values: + * @arg TIM_SELECT_NONE: No timer selected and default Timer mapping is enabled. + * @arg TIM_SELECT_TIM2: Timer 2 Input Captures to be routed. + * @arg TIM_SELECT_TIM3: Timer 3 Input Captures to be routed. + * @arg TIM_SELECT_TIM4: Timer 4 Input Captures to be routed. + * @param __INPUT__ selects which pin to be routed to Input Capture. + * This parameter must be a value of @ref RI_InputCaptureRouting + * e.g. + * __HAL_RI_REMAP_INPUTCAPTURE1(TIM_SELECT_TIM2, RI_INPUTCAPTUREROUTING_1) + * allows routing of Input capture IC1 of TIM2 to PA4. + * For details about correspondence between RI_INPUTCAPTUREROUTING_x + * and I/O pins refer to the parameters' description in the header file + * or refer to the product reference manual. + * @note Input capture selection bits are not reset by this function. + * To reset input capture selection bits, use SYSCFG_RIDeInit() function. + * @note The I/O should be configured in alternate function mode (AF14) using + * GPIO_PinAFConfig() function. + * @retval None. + */ +#define __HAL_RI_REMAP_INPUTCAPTURE1(__TIMSELECT__, __INPUT__) \ + do {assert_param(IS_RI_TIM(__TIMSELECT__)); \ + assert_param(IS_RI_INPUTCAPTURE_ROUTING(__INPUT__)); \ + MODIFY_REG(RI->ICR, RI_ICR_TIM, (__TIMSELECT__)); \ + SET_BIT(RI->ICR, RI_INPUTCAPTURE_IC1); \ + MODIFY_REG(RI->ICR, RI_ICR_IC1OS, (__INPUT__) << POSITION_VAL(RI_ICR_IC1OS)); \ + }while(0) + +/** + * @brief Configures the routing interface to map Input Capture 2 of TIMx to a selected I/O pin. + * @param __TIMSELECT__ Timer select. + * This parameter can be one of the following values: + * @arg TIM_SELECT_NONE: No timer selected and default Timer mapping is enabled. + * @arg TIM_SELECT_TIM2: Timer 2 Input Captures to be routed. + * @arg TIM_SELECT_TIM3: Timer 3 Input Captures to be routed. + * @arg TIM_SELECT_TIM4: Timer 4 Input Captures to be routed. + * @param __INPUT__ selects which pin to be routed to Input Capture. + * This parameter must be a value of @ref RI_InputCaptureRouting + * @retval None. + */ +#define __HAL_RI_REMAP_INPUTCAPTURE2(__TIMSELECT__, __INPUT__) \ + do {assert_param(IS_RI_TIM(__TIMSELECT__)); \ + assert_param(IS_RI_INPUTCAPTURE_ROUTING(__INPUT__)); \ + MODIFY_REG(RI->ICR, RI_ICR_TIM, (__TIMSELECT__)); \ + SET_BIT(RI->ICR, RI_INPUTCAPTURE_IC2); \ + MODIFY_REG(RI->ICR, RI_ICR_IC2OS, (__INPUT__) << POSITION_VAL(RI_ICR_IC2OS)); \ + }while(0) + +/** + * @brief Configures the routing interface to map Input Capture 3 of TIMx to a selected I/O pin. + * @param __TIMSELECT__ Timer select. + * This parameter can be one of the following values: + * @arg TIM_SELECT_NONE: No timer selected and default Timer mapping is enabled. + * @arg TIM_SELECT_TIM2: Timer 2 Input Captures to be routed. + * @arg TIM_SELECT_TIM3: Timer 3 Input Captures to be routed. + * @arg TIM_SELECT_TIM4: Timer 4 Input Captures to be routed. + * @param __INPUT__ selects which pin to be routed to Input Capture. + * This parameter must be a value of @ref RI_InputCaptureRouting + * @retval None. + */ +#define __HAL_RI_REMAP_INPUTCAPTURE3(__TIMSELECT__, __INPUT__) \ + do {assert_param(IS_RI_TIM(__TIMSELECT__)); \ + assert_param(IS_RI_INPUTCAPTURE_ROUTING(__INPUT__)); \ + MODIFY_REG(RI->ICR, RI_ICR_TIM, (__TIMSELECT__)); \ + SET_BIT(RI->ICR, RI_INPUTCAPTURE_IC3); \ + MODIFY_REG(RI->ICR, RI_ICR_IC3OS, (__INPUT__) << POSITION_VAL(RI_ICR_IC3OS)); \ + }while(0) + +/** + * @brief Configures the routing interface to map Input Capture 4 of TIMx to a selected I/O pin. + * @param __TIMSELECT__ Timer select. + * This parameter can be one of the following values: + * @arg TIM_SELECT_NONE: No timer selected and default Timer mapping is enabled. + * @arg TIM_SELECT_TIM2: Timer 2 Input Captures to be routed. + * @arg TIM_SELECT_TIM3: Timer 3 Input Captures to be routed. + * @arg TIM_SELECT_TIM4: Timer 4 Input Captures to be routed. + * @param __INPUT__ selects which pin to be routed to Input Capture. + * This parameter must be a value of @ref RI_InputCaptureRouting + * @retval None. + */ +#define __HAL_RI_REMAP_INPUTCAPTURE4(__TIMSELECT__, __INPUT__) \ + do {assert_param(IS_RI_TIM(__TIMSELECT__)); \ + assert_param(IS_RI_INPUTCAPTURE_ROUTING(__INPUT__)); \ + MODIFY_REG(RI->ICR, RI_ICR_TIM, (__TIMSELECT__)); \ + SET_BIT(RI->ICR, RI_INPUTCAPTURE_IC4); \ + MODIFY_REG(RI->ICR, RI_ICR_IC4OS, (__INPUT__) << POSITION_VAL(RI_ICR_IC4OS)); \ + }while(0) + +/** + * @} + */ + +/** @defgroup RI_SwitchControlConfig Switch Control configuration + * @{ + */ + +/** + * @brief Enable or disable the switch control mode. + * @note ENABLE: ADC analog switches closed if the corresponding + * I/O switch is also closed. + * When using COMP1, switch control mode must be enabled. + * @note DISABLE: ADC analog switches open or controlled by the ADC interface. + * When using the ADC for acquisition, switch control mode + * must be disabled. + * @note COMP1 comparator and ADC cannot be used at the same time since + * they share the ADC switch matrix. + * @retval None + */ +#define __HAL_RI_SWITCHCONTROLMODE_ENABLE() SET_BIT(RI->ASCR1, RI_ASCR1_SCM) + +#define __HAL_RI_SWITCHCONTROLMODE_DISABLE() CLEAR_BIT(RI->ASCR1, RI_ASCR1_SCM) + +/* + * @brief Close or Open the routing interface Input Output switches. + * @param __IOSWITCH__ selects the I/O analog switch number. + * This parameter must be a value of @ref RI_IOSwitch + * @retval None + */ +#define __HAL_RI_IOSWITCH_CLOSE(__IOSWITCH__) do { assert_param(IS_RI_IOSWITCH(__IOSWITCH__)); \ + if ((__IOSWITCH__) >> 31 != 0 ) \ + { \ + SET_BIT(RI->ASCR1, (__IOSWITCH__) & 0x7FFFFFFF); \ + } \ + else \ + { \ + SET_BIT(RI->ASCR2, (__IOSWITCH__)); \ + } \ + }while(0) + +#define __HAL_RI_IOSWITCH_OPEN(__IOSWITCH__) do { assert_param(IS_RI_IOSWITCH(__IOSWITCH__)); \ + if ((__IOSWITCH__) >> 31 != 0 ) \ + { \ + CLEAR_BIT(RI->ASCR1, (__IOSWITCH__) & 0x7FFFFFFF); \ + } \ + else \ + { \ + CLEAR_BIT(RI->ASCR2, (__IOSWITCH__)); \ + } \ + }while(0) + +#if defined (COMP_CSR_SW1) +/** + * @brief Close or open the internal switch COMP1_SW1. + * This switch connects I/O pin PC3 (can be used as ADC channel 13) + * and OPAMP3 output to ADC switch matrix (ADC channel VCOMP, channel + * 26) and COMP1 non-inverting input. + * Pin PC3 connection depends on another switch setting, refer to + * macro "__HAL_ADC_CHANNEL_SPEED_FAST()". + * @retval None. + */ +#define __HAL_RI_SWITCH_COMP1_SW1_CLOSE() SET_BIT(COMP->CSR, COMP_CSR_SW1) + +#define __HAL_RI_SWITCH_COMP1_SW1_OPEN() CLEAR_BIT(COMP->CSR, COMP_CSR_SW1) +#endif /* COMP_CSR_SW1 */ + +/** + * @} + */ + +/** @defgroup RI_HystConfig Hysteresis Activation and Deactivation + * @{ + */ + +/** + * @brief Enable or disable Hysteresis of the input schmitt trigger of Ports A + * When the I/Os are programmed in input mode by standard I/O port + * registers, the Schmitt trigger and the hysteresis are enabled by default. + * When hysteresis is disabled, it is possible to read the + * corresponding port with a trigger level of VDDIO/2. + * @param __IOPIN__ : Selects the pin(s) on which to enable or disable hysteresis. + * This parameter must be a value of @ref RI_Pin + * @retval None + */ +#define __HAL_RI_HYSTERIS_PORTA_ON(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + CLEAR_BIT(RI->HYSCR1, (__IOPIN__)); \ + } while(0) + +#define __HAL_RI_HYSTERIS_PORTA_OFF(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + SET_BIT(RI->HYSCR1, (__IOPIN__)); \ + } while(0) + +/** + * @brief Enable or disable Hysteresis of the input schmitt trigger of Ports B + * When the I/Os are programmed in input mode by standard I/O port + * registers, the Schmitt trigger and the hysteresis are enabled by default. + * When hysteresis is disabled, it is possible to read the + * corresponding port with a trigger level of VDDIO/2. + * @param __IOPIN__ : Selects the pin(s) on which to enable or disable hysteresis. + * This parameter must be a value of @ref RI_Pin + * @retval None + */ +#define __HAL_RI_HYSTERIS_PORTB_ON(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + CLEAR_BIT(RI->HYSCR1, (__IOPIN__) << 16 ); \ + } while(0) + +#define __HAL_RI_HYSTERIS_PORTB_OFF(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + SET_BIT(RI->HYSCR1, (__IOPIN__) << 16 ); \ + } while(0) + +/** + * @brief Enable or disable Hysteresis of the input schmitt trigger of Ports C + * When the I/Os are programmed in input mode by standard I/O port + * registers, the Schmitt trigger and the hysteresis are enabled by default. + * When hysteresis is disabled, it is possible to read the + * corresponding port with a trigger level of VDDIO/2. + * @param __IOPIN__ : Selects the pin(s) on which to enable or disable hysteresis. + * This parameter must be a value of @ref RI_Pin + * @retval None + */ +#define __HAL_RI_HYSTERIS_PORTC_ON(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + CLEAR_BIT(RI->HYSCR2, (__IOPIN__)); \ + } while(0) + +#define __HAL_RI_HYSTERIS_PORTC_OFF(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + SET_BIT(RI->HYSCR2, (__IOPIN__)); \ + } while(0) + +/** + * @brief Enable or disable Hysteresis of the input schmitt trigger of Ports D + * When the I/Os are programmed in input mode by standard I/O port + * registers, the Schmitt trigger and the hysteresis are enabled by default. + * When hysteresis is disabled, it is possible to read the + * corresponding port with a trigger level of VDDIO/2. + * @param __IOPIN__ : Selects the pin(s) on which to enable or disable hysteresis. + * This parameter must be a value of @ref RI_Pin + * @retval None + */ +#define __HAL_RI_HYSTERIS_PORTD_ON(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + CLEAR_BIT(RI->HYSCR2, (__IOPIN__) << 16 ); \ + } while(0) + +#define __HAL_RI_HYSTERIS_PORTD_OFF(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + SET_BIT(RI->HYSCR2, (__IOPIN__) << 16 ); \ + } while(0) + +#if defined (GPIOE_BASE) + +/** + * @brief Enable or disable Hysteresis of the input schmitt trigger of Ports E + * When the I/Os are programmed in input mode by standard I/O port + * registers, the Schmitt trigger and the hysteresis are enabled by default. + * When hysteresis is disabled, it is possible to read the + * corresponding port with a trigger level of VDDIO/2. + * @param __IOPIN__ : Selects the pin(s) on which to enable or disable hysteresis. + * This parameter must be a value of @ref RI_Pin + * @retval None + */ +#define __HAL_RI_HYSTERIS_PORTE_ON(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + CLEAR_BIT(RI->HYSCR3, (__IOPIN__)); \ + } while(0) + +#define __HAL_RI_HYSTERIS_PORTE_OFF(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + SET_BIT(RI->HYSCR3, (__IOPIN__)); \ + } while(0) + +#endif /* GPIOE_BASE */ + +#if defined(GPIOF_BASE) || defined(GPIOG_BASE) + +/** + * @brief Enable or disable Hysteresis of the input schmitt trigger of Ports F + * When the I/Os are programmed in input mode by standard I/O port + * registers, the Schmitt trigger and the hysteresis are enabled by default. + * When hysteresis is disabled, it is possible to read the + * corresponding port with a trigger level of VDDIO/2. + * @param __IOPIN__ : Selects the pin(s) on which to enable or disable hysteresis. + * This parameter must be a value of @ref RI_Pin + * @retval None + */ +#define __HAL_RI_HYSTERIS_PORTF_ON(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + CLEAR_BIT(RI->HYSCR3, (__IOPIN__) << 16 ); \ + } while(0) + +#define __HAL_RI_HYSTERIS_PORTF_OFF(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + SET_BIT(RI->HYSCR3, (__IOPIN__) << 16 ); \ + } while(0) + +/** + * @brief Enable or disable Hysteresis of the input schmitt trigger of Ports G + * When the I/Os are programmed in input mode by standard I/O port + * registers, the Schmitt trigger and the hysteresis are enabled by default. + * When hysteresis is disabled, it is possible to read the + * corresponding port with a trigger level of VDDIO/2. + * @param __IOPIN__ : Selects the pin(s) on which to enable or disable hysteresis. + * This parameter must be a value of @ref RI_Pin + * @retval None + */ +#define __HAL_RI_HYSTERIS_PORTG_ON(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + CLEAR_BIT(RI->HYSCR4, (__IOPIN__)); \ + } while(0) + +#define __HAL_RI_HYSTERIS_PORTG_OFF(__IOPIN__) do {assert_param(IS_RI_PIN(__IOPIN__)); \ + SET_BIT(RI->HYSCR4, (__IOPIN__)); \ + } while(0) + +#endif /* GPIOF_BASE || GPIOG_BASE */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported variables --------------------------------------------------------*/ +/** @defgroup HAL_Exported_Variables HAL Exported Variables + * @{ + */ +extern __IO uint32_t uwTick; +extern uint32_t uwTickPrio; +extern uint32_t uwTickFreq; +/** + * @} + */ + +/* 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(uint32_t Freq); +uint32_t HAL_GetTickFreq(void); +void HAL_SuspendTick(void); +void HAL_ResumeTick(void); +uint32_t HAL_GetHalVersion(void); +uint32_t HAL_GetREVID(void); +uint32_t HAL_GetDEVID(void); +uint32_t HAL_GetUIDw0(void); +uint32_t HAL_GetUIDw1(void); +uint32_t HAL_GetUIDw2(void); + +/** + * @} + */ + +/** @addtogroup HAL_Exported_Functions_Group3 + * @{ + */ + +/* DBGMCU Peripheral Control functions *****************************************/ +void HAL_DBGMCU_EnableDBGSleepMode(void); +void HAL_DBGMCU_DisableDBGSleepMode(void); +void HAL_DBGMCU_EnableDBGStopMode(void); +void HAL_DBGMCU_DisableDBGStopMode(void); +void HAL_DBGMCU_EnableDBGStandbyMode(void); +void HAL_DBGMCU_DisableDBGStandbyMode(void); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_HAL_H */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h new file mode 100644 index 0000000..0d48123 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h @@ -0,0 +1,437 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_cortex.h + * @author MCD Application Team + * @brief Header file of CORTEX HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_CORTEX_H +#define __STM32L1xx_HAL_CORTEX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @addtogroup CORTEX + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup CORTEX_Exported_Types Cortex Exported Types + * @{ + */ + +#if (__MPU_PRESENT == 1) +/** @defgroup CORTEX_MPU_Region_Initialization_Structure_definition MPU Region Initialization Structure Definition + * @brief MPU Region initialization structure + * @{ + */ +typedef struct +{ + uint8_t Enable; /*!< Specifies the status of the region. + This parameter can be a value of @ref CORTEX_MPU_Region_Enable */ + uint8_t Number; /*!< Specifies the number of the region to protect. + This parameter can be a value of @ref CORTEX_MPU_Region_Number */ + uint32_t BaseAddress; /*!< Specifies the base address of the region to protect. */ + uint8_t Size; /*!< Specifies the size of the region to protect. + This parameter can be a value of @ref CORTEX_MPU_Region_Size */ + uint8_t SubRegionDisable; /*!< Specifies the number of the subregion protection to disable. + This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF */ + uint8_t TypeExtField; /*!< Specifies the TEX field level. + This parameter can be a value of @ref CORTEX_MPU_TEX_Levels */ + uint8_t AccessPermission; /*!< Specifies the region access permission type. + This parameter can be a value of @ref CORTEX_MPU_Region_Permission_Attributes */ + uint8_t DisableExec; /*!< Specifies the instruction access status. + This parameter can be a value of @ref CORTEX_MPU_Instruction_Access */ + uint8_t IsShareable; /*!< Specifies the shareability status of the protected region. + This parameter can be a value of @ref CORTEX_MPU_Access_Shareable */ + uint8_t IsCacheable; /*!< Specifies the cacheable status of the region protected. + This parameter can be a value of @ref CORTEX_MPU_Access_Cacheable */ + uint8_t IsBufferable; /*!< Specifies the bufferable status of the protected region. + This parameter can be a value of @ref CORTEX_MPU_Access_Bufferable */ +}MPU_Region_InitTypeDef; +/** + * @} + */ +#endif /* __MPU_PRESENT */ + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup CORTEX_Exported_Constants CORTEX Exported Constants + * @{ + */ + + +/** @defgroup CORTEX_Preemption_Priority_Group CORTEX Preemption Priority Group + * @{ + */ + +#define NVIC_PRIORITYGROUP_0 (0x00000007U) /*!< 0 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 -----------------------------------------------------------*/ +/** @defgroup CORTEX_Exported_Macros CORTEX Exported Macros + * @{ + */ + +/** @defgroup CORTEX_Preemption_Priority_Group_Macro CORTEX Preemption Priority Group + * @{ + */ +#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) < 0x10) + +#define IS_NVIC_SUB_PRIORITY(PRIORITY) ((PRIORITY) < 0x10) + +#define IS_NVIC_DEVICE_IRQ(IRQ) ((IRQ) >= 0x00) + +/** + * @} + */ + +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/** @defgroup CORTEX_Private_Macros CORTEX Private Macros + * @{ + */ + +/** @defgroup CORTEX_SysTick_clock_source_Macro_Private CORTEX SysTick clock source + * @{ + */ +#define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) == SYSTICK_CLKSOURCE_HCLK) || \ + ((SOURCE) == SYSTICK_CLKSOURCE_HCLK_DIV8)) +/** + * @} + */ + +#if (__MPU_PRESENT == 1) +#define IS_MPU_REGION_ENABLE(STATE) (((STATE) == MPU_REGION_ENABLE) || \ + ((STATE) == MPU_REGION_DISABLE)) + +#define IS_MPU_INSTRUCTION_ACCESS(STATE) (((STATE) == MPU_INSTRUCTION_ACCESS_ENABLE) || \ + ((STATE) == MPU_INSTRUCTION_ACCESS_DISABLE)) + +#define IS_MPU_ACCESS_SHAREABLE(STATE) (((STATE) == MPU_ACCESS_SHAREABLE) || \ + ((STATE) == MPU_ACCESS_NOT_SHAREABLE)) + +#define IS_MPU_ACCESS_CACHEABLE(STATE) (((STATE) == MPU_ACCESS_CACHEABLE) || \ + ((STATE) == MPU_ACCESS_NOT_CACHEABLE)) + +#define IS_MPU_ACCESS_BUFFERABLE(STATE) (((STATE) == MPU_ACCESS_BUFFERABLE) || \ + ((STATE) == MPU_ACCESS_NOT_BUFFERABLE)) + +#define IS_MPU_TEX_LEVEL(TYPE) (((TYPE) == MPU_TEX_LEVEL0) || \ + ((TYPE) == MPU_TEX_LEVEL1) || \ + ((TYPE) == MPU_TEX_LEVEL2)) + +#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 ---------------------------------------------------------*/ +/** @defgroup CORTEX_Private_Functions CORTEX Private Functions + * @brief CORTEX private functions + * @{ + */ + + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup CORTEX_Exported_Functions + * @{ + */ + +/** @addtogroup CORTEX_Exported_Functions_Group1 + * @{ + */ +/* Initialization and de-initialization functions *****************************/ +void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup); +void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority); +void HAL_NVIC_EnableIRQ(IRQn_Type IRQn); +void HAL_NVIC_DisableIRQ(IRQn_Type IRQn); +void HAL_NVIC_SystemReset(void); +uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb); +/** + * @} + */ + +/** @addtogroup CORTEX_Exported_Functions_Group2 + * @{ + */ +/* Peripheral Control functions ***********************************************/ +#if (__MPU_PRESENT == 1) +void HAL_MPU_Enable(uint32_t MPU_Control); +void HAL_MPU_Disable(void); +void HAL_MPU_EnableRegion(uint32_t RegionNumber); +void HAL_MPU_DisableRegion(uint32_t RegionNumber); +void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init); +#endif /* __MPU_PRESENT */ +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); +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_HAL_CORTEX_H */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h new file mode 100644 index 0000000..1c5828a --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h @@ -0,0 +1,199 @@ +/** + ****************************************************************************** + * @file stm32l1xx_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 is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_DEF +#define __STM32L1xx_HAL_DEF + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx.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 ------------------------------------------------------------*/ + +#if !defined(UNUSED) +#define UNUSED(X) (void)X /* To avoid gcc/g++ warnings */ +#endif /* UNUSED */ + +#define HAL_MAX_DELAY 0xFFFFFFFFU + +#define HAL_IS_BIT_SET(REG, BIT) (((REG) & (BIT)) == (BIT)) +#define HAL_IS_BIT_CLR(REG, BIT) (((REG) & (BIT)) == 0U) + +#define __HAL_LINKDMA(__HANDLE__, __PPP_DMA_FIELD_, __DMA_HANDLE_) \ + do{ \ + (__HANDLE__)->__PPP_DMA_FIELD_ = &(__DMA_HANDLE_); \ + (__DMA_HANDLE_).Parent = (__HANDLE__); \ + } while(0) + +/** @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 == 1) + + /* 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 (0) + + #define __HAL_UNLOCK(__HANDLE__) \ + do{ \ + (__HANDLE__)->Lock = HAL_UNLOCKED; \ + }while (0) +#endif /* USE_RTOS */ + +#if 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 (__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 */ + #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 ) +/* ARM Compiler + ------------ + RAM functions are defined using the toolchain options. + Functions that are executed in RAM should reside in a separate source module. + Using the 'Options for File' dialog you can simply change the 'Code / Const' + area of a module to a memory space in physical RAM. + Available memory areas are declared in the 'Target' tab of the 'Options for Target' + dialog. +*/ +#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 ( __GNUC__ ) +/* ARM & GNUCompiler + ---------------- +*/ +#define __NOINLINE __attribute__ ( (noinline) ) + +#elif defined ( __ICCARM__ ) +/* ICCARM Compiler + --------------- +*/ +#define __NOINLINE _Pragma("optimize = no_inline") + +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* ___STM32L1xx_HAL_DEF */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h new file mode 100644 index 0000000..2bdb1fc --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h @@ -0,0 +1,651 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_dma.h + * @author MCD Application Team + * @brief Header file of DMA HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32L1xx_HAL_DMA_H +#define STM32L1xx_HAL_DMA_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_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 */ + + __IO HAL_DMA_StateTypeDef State; /*!< DMA transfer state */ + + void *Parent; /*!< Parent object state */ + + void (* XferCpltCallback)(struct __DMA_HandleTypeDef * hdma); /*!< DMA transfer complete callback */ + + void (* XferHalfCpltCallback)(struct __DMA_HandleTypeDef * hdma); /*!< DMA Half transfer complete callback */ + + void (* XferErrorCallback)(struct __DMA_HandleTypeDef * hdma); /*!< DMA transfer error callback */ + + void (* XferAbortCallback)(struct __DMA_HandleTypeDef * hdma); /*!< DMA transfer abort callback */ + + __IO uint32_t ErrorCode; /*!< DMA Error code */ + + DMA_TypeDef *DmaBaseAddress; /*!< DMA Channel Base Address */ + + uint32_t ChannelIndex; /*!< DMA Channel Index */ + +}DMA_HandleTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup DMA_Exported_Constants DMA Exported Constants + * @{ + */ + +/** @defgroup DMA_Error_Code DMA Error Code + * @{ + */ +#define HAL_DMA_ERROR_NONE 0x00000000U /*!< No error */ +#define HAL_DMA_ERROR_TE 0x00000001U /*!< Transfer error */ +#define HAL_DMA_ERROR_NO_XFER 0x00000004U /*!< Abort requested with no Xfer ongoing */ +#define HAL_DMA_ERROR_TIMEOUT 0x00000020U /*!< Timeout error */ +#define HAL_DMA_ERROR_NOT_SUPPORTED 0x00000100U /*!< Not supported mode */ + +/** + * @} + */ + +/** @defgroup DMA_Data_transfer_direction DMA Data transfer direction + * @{ + */ +#define DMA_PERIPH_TO_MEMORY 0x00000000U /*!< Peripheral to memory direction */ +#define DMA_MEMORY_TO_PERIPH DMA_CCR_DIR /*!< Memory to peripheral direction */ +#define DMA_MEMORY_TO_MEMORY DMA_CCR_MEM2MEM /*!< Memory to memory direction */ +/** + * @} + */ + +/** @defgroup DMA_Peripheral_incremented_mode DMA Peripheral incremented mode + * @{ + */ +#define DMA_PINC_ENABLE DMA_CCR_PINC /*!< Peripheral increment mode Enable */ +#define DMA_PINC_DISABLE 0x00000000U /*!< Peripheral increment mode Disable */ +/** + * @} + */ + +/** @defgroup DMA_Memory_incremented_mode DMA Memory incremented mode + * @{ + */ +#define DMA_MINC_ENABLE DMA_CCR_MINC /*!< Memory increment mode Enable */ +#define DMA_MINC_DISABLE 0x00000000U /*!< Memory increment mode Disable */ +/** + * @} + */ + +/** @defgroup DMA_Peripheral_data_size DMA Peripheral data size + * @{ + */ +#define DMA_PDATAALIGN_BYTE 0x00000000U /*!< Peripheral data alignment : Byte */ +#define DMA_PDATAALIGN_HALFWORD DMA_CCR_PSIZE_0 /*!< Peripheral data alignment : HalfWord */ +#define DMA_PDATAALIGN_WORD DMA_CCR_PSIZE_1 /*!< Peripheral data alignment : Word */ +/** + * @} + */ + +/** @defgroup DMA_Memory_data_size DMA Memory data size + * @{ + */ +#define DMA_MDATAALIGN_BYTE 0x00000000U /*!< Memory data alignment : Byte */ +#define DMA_MDATAALIGN_HALFWORD DMA_CCR_MSIZE_0 /*!< Memory data alignment : HalfWord */ +#define DMA_MDATAALIGN_WORD DMA_CCR_MSIZE_1 /*!< Memory data alignment : Word */ +/** + * @} + */ + +/** @defgroup DMA_mode DMA mode + * @{ + */ +#define DMA_NORMAL 0x00000000U /*!< Normal mode */ +#define DMA_CIRCULAR DMA_CCR_CIRC /*!< Circular mode */ +/** + * @} + */ + +/** @defgroup DMA_Priority_level DMA Priority level + * @{ + */ +#define DMA_PRIORITY_LOW 0x00000000U /*!< Priority level : Low */ +#define DMA_PRIORITY_MEDIUM DMA_CCR_PL_0 /*!< Priority level : Medium */ +#define DMA_PRIORITY_HIGH DMA_CCR_PL_1 /*!< Priority level : High */ +#define DMA_PRIORITY_VERY_HIGH DMA_CCR_PL /*!< Priority level : Very_High */ +/** + * @} + */ + + +/** @defgroup DMA_interrupt_enable_definitions DMA interrupt enable definitions + * @{ + */ +#define DMA_IT_TC DMA_CCR_TCIE +#define DMA_IT_HT DMA_CCR_HTIE +#define DMA_IT_TE DMA_CCR_TEIE +/** + * @} + */ + +/** @defgroup DMA_flag_definitions DMA flag definitions + * @{ + */ +#define DMA_FLAG_GL1 DMA_ISR_GIF1 +#define DMA_FLAG_TC1 DMA_ISR_TCIF1 +#define DMA_FLAG_HT1 DMA_ISR_HTIF1 +#define DMA_FLAG_TE1 DMA_ISR_TEIF1 +#define DMA_FLAG_GL2 DMA_ISR_GIF2 +#define DMA_FLAG_TC2 DMA_ISR_TCIF2 +#define DMA_FLAG_HT2 DMA_ISR_HTIF2 +#define DMA_FLAG_TE2 DMA_ISR_TEIF2 +#define DMA_FLAG_GL3 DMA_ISR_GIF3 +#define DMA_FLAG_TC3 DMA_ISR_TCIF3 +#define DMA_FLAG_HT3 DMA_ISR_HTIF3 +#define DMA_FLAG_TE3 DMA_ISR_TEIF3 +#define DMA_FLAG_GL4 DMA_ISR_GIF4 +#define DMA_FLAG_TC4 DMA_ISR_TCIF4 +#define DMA_FLAG_HT4 DMA_ISR_HTIF4 +#define DMA_FLAG_TE4 DMA_ISR_TEIF4 +#define DMA_FLAG_GL5 DMA_ISR_GIF5 +#define DMA_FLAG_TC5 DMA_ISR_TCIF5 +#define DMA_FLAG_HT5 DMA_ISR_HTIF5 +#define DMA_FLAG_TE5 DMA_ISR_TEIF5 +#define DMA_FLAG_GL6 DMA_ISR_GIF6 +#define DMA_FLAG_TC6 DMA_ISR_TCIF6 +#define DMA_FLAG_HT6 DMA_ISR_HTIF6 +#define DMA_FLAG_TE6 DMA_ISR_TEIF6 +#define DMA_FLAG_GL7 DMA_ISR_GIF7 +#define DMA_FLAG_TC7 DMA_ISR_TCIF7 +#define DMA_FLAG_HT7 DMA_ISR_HTIF7 +#define DMA_FLAG_TE7 DMA_ISR_TEIF7 +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup DMA_Exported_Macros DMA Exported Macros + * @{ + */ + +/** @brief Reset DMA handle state. + * @param __HANDLE__ DMA handle + * @retval None + */ +#define __HAL_DMA_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DMA_STATE_RESET) + +/** + * @brief Enable the specified DMA Channel. + * @param __HANDLE__ DMA handle + * @retval None + */ +#define __HAL_DMA_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CCR |= DMA_CCR_EN) + +/** + * @brief Disable the specified DMA Channel. + * @param __HANDLE__ DMA handle + * @retval None + */ +#define __HAL_DMA_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CCR &= ~DMA_CCR_EN) + + +/* Interrupt & Flag management */ +#if defined(STM32L100xC) || defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \ + defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \ + defined(STM32L151xE) || defined(STM32L151xDX) || defined (STM32L152xE) || defined (STM32L152xDX) || defined (STM32L162xE) || defined (STM32L162xDX) + +/** + * @brief Return 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)DMA2_Channel1))? DMA_FLAG_TC1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_TC2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_TC2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TC3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_TC3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TC4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_TC4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TC5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_FLAG_TC5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TC6 :\ + 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)DMA2_Channel1))? DMA_FLAG_HT1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_HT2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_HT2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_HT3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_HT3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_HT4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_HT4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_HT5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_FLAG_HT5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_HT6 :\ + 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)DMA2_Channel1))? DMA_FLAG_TE1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_TE2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_TE2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TE3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_TE3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TE4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_TE4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TE5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_FLAG_TE5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TE6 :\ + 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_ISR_GIF1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_ISR_GIF1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_ISR_GIF2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_ISR_GIF2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_ISR_GIF3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_ISR_GIF3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_ISR_GIF4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_ISR_GIF4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_ISR_GIF5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel5))? DMA_ISR_GIF5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_ISR_GIF6 :\ + DMA_ISR_GIF7) + +/** + * @brief Get the DMA Channel pending flags. + * @param __HANDLE__ DMA handle + * @param __FLAG__ Get the specified flag. + * This parameter can be any combination of the following values: + * @arg DMA_FLAG_TCx: Transfer complete flag + * @arg DMA_FLAG_HTx: Half transfer complete flag + * @arg DMA_FLAG_TEx: Transfer error flag + * @arg DMA_FLAG_GLx: Global interrupt flag + * Where x can be from 1 to 7 to select the DMA Channel x 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 Clear the DMA Channel pending flags. + * @param __HANDLE__ DMA handle + * @param __FLAG__ specifies the flag to clear. + * This parameter can be any combination of the following values: + * @arg DMA_FLAG_TCx: Transfer complete flag + * @arg DMA_FLAG_HTx: Half transfer complete flag + * @arg DMA_FLAG_TEx: Transfer error flag + * @arg DMA_FLAG_GLx: Global interrupt flag + * Where x can be from 1 to 7 to select the DMA Channel x 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 +/** + * @brief Return 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_ISR_GIF1 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_ISR_GIF2 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_ISR_GIF3 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_ISR_GIF4 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_ISR_GIF5 :\ + ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_ISR_GIF6 :\ + DMA_ISR_GIF7) + +/** + * @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_TCIFx: Transfer complete flag + * @arg DMA_FLAG_HTIFx: Half transfer complete flag + * @arg DMA_FLAG_TEIFx: Transfer error flag + * @arg DMA_ISR_GIFx: Global interrupt flag + * Where x can be from 1 to 7 to select the DMA Channel x 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 from 1 to 7 to select the DMA Channel x flag. + * @retval None + */ +#define __HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__) (DMA1->IFCR = (__FLAG__)) + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +/** + * @brief Enable the specified DMA Channel interrupts. + * @param __HANDLE__ DMA handle + * @param __INTERRUPT__ specifies the DMA interrupt sources to be enabled or disabled. + * This parameter can be any combination of the following values: + * @arg DMA_IT_TC: Transfer complete interrupt mask + * @arg DMA_IT_HT: Half transfer complete interrupt mask + * @arg DMA_IT_TE: Transfer error interrupt mask + * @retval None + */ +#define __HAL_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CCR |= (__INTERRUPT__)) + +/** + * @brief Disable the specified DMA Channel interrupts. + * @param __HANDLE__ DMA handle + * @param __INTERRUPT__ specifies the DMA interrupt sources to be enabled or disabled. + * This parameter can be any combination of the following values: + * @arg DMA_IT_TC: Transfer complete interrupt mask + * @arg DMA_IT_HT: Half transfer complete interrupt mask + * @arg DMA_IT_TE: Transfer error interrupt mask + * @retval None + */ +#define __HAL_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CCR &= ~(__INTERRUPT__)) + +/** + * @brief Check whether the specified DMA Channel interrupt is enabled or not. + * @param __HANDLE__ DMA handle + * @param __INTERRUPT__ specifies the DMA interrupt source to check. + * This parameter can be one of the following values: + * @arg DMA_IT_TC: Transfer complete interrupt mask + * @arg DMA_IT_HT: Half transfer complete interrupt mask + * @arg DMA_IT_TE: Transfer error interrupt mask + * @retval The state of DMA_IT (SET or RESET). + */ +#define __HAL_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CCR & (__INTERRUPT__))) + +/** + * @brief Return the number of remaining data units in the current DMA Channel transfer. + * @param __HANDLE__ DMA handle + * @retval The number of remaining data units in the current DMA Channel transfer. + */ +#define __HAL_DMA_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNDTR) + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup DMA_Exported_Functions + * @{ + */ + +/** @addtogroup DMA_Exported_Functions_Group1 + * @{ + */ +/* Initialization and de-initialization functions *****************************/ +HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMA_DeInit (DMA_HandleTypeDef *hdma); +/** + * @} + */ + +/** @addtogroup DMA_Exported_Functions_Group2 + * @{ + */ +/* IO operation functions *****************************************************/ +HAL_StatusTypeDef HAL_DMA_Start (DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength); +HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength); +HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout); +void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma); +HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void (* pCallback)( DMA_HandleTypeDef * _hdma)); +HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID); + +/** + * @} + */ + +/** @addtogroup DMA_Exported_Functions_Group3 + * @{ + */ +/* Peripheral State and Error functions ***************************************/ +HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma); +uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma); +/** + * @} + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup DMA_Private_Macros DMA Private Macros + * @{ + */ + +#define IS_DMA_DIRECTION(DIRECTION) (((DIRECTION) == DMA_PERIPH_TO_MEMORY ) || \ + ((DIRECTION) == DMA_MEMORY_TO_PERIPH) || \ + ((DIRECTION) == DMA_MEMORY_TO_MEMORY)) + +#define IS_DMA_BUFFER_SIZE(SIZE) (((SIZE) >= 0x1U) && ((SIZE) < 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 /* STM32L1xx_HAL_DMA_H */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h new file mode 100644 index 0000000..69331f9 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h @@ -0,0 +1,315 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_exti.h + * @author MCD Application Team + * @brief Header file of EXTI HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2020 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32L1xx_HAL_EXTI_H +#define STM32L1xx_HAL_EXTI_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @defgroup EXTI EXTI + * @brief EXTI HAL module driver + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup EXTI_Exported_Types EXTI Exported Types + * @{ + */ +typedef enum +{ + HAL_EXTI_COMMON_CB_ID = 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 */ +#define EXTI_LINE_18 (EXTI_CONFIG | 0x12u) /*!< External interrupt line 18 Connected to the USB Device FS Wakeup from suspend event */ +#define EXTI_LINE_19 (EXTI_CONFIG | 0x13u) /*!< External interrupt line 19 Connected to the RTC Tamper and Time Stamp events */ +#define EXTI_LINE_20 (EXTI_CONFIG | 0x14u) /*!< External interrupt line 20 Connected to the RTC Wakeup event */ +#define EXTI_LINE_21 (EXTI_CONFIG | 0x15u) /*!< External interrupt line 21 Connected to the Comparator 1 output */ +#define EXTI_LINE_22 (EXTI_CONFIG | 0x16u) /*!< External interrupt line 22 Connected to the Comparator 2 output */ +#if defined(EXTI_IMR_IM23) +#define EXTI_LINE_23 (EXTI_CONFIG | 0x17u) /*!< External interrupt line 23 Connected to the channel acquisition interrupt */ +#endif /* EXTI_IMR_IM23 */ + +/** + * @} + */ + +/** @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 */ +#define EXTI_GPIOH 0x00000007u + +/** + * @} + */ + +/** + * @} + */ + +/* 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_RESERVED (0x08uL << EXTI_PROPERTY_SHIFT) +#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_IM23) +#define EXTI_LINE_NB 24UL +#else +#define EXTI_LINE_NB 23UL +#endif /* EXTI_IMR_IM23 */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup EXTI_Private_Macros EXTI Private Macros + * @{ + */ +#define IS_EXTI_LINE(__EXTI_LINE__) ((((__EXTI_LINE__) & ~(EXTI_PROPERTY_MASK | EXTI_PIN_MASK)) == 0x00u) && \ + ((((__EXTI_LINE__) & EXTI_PROPERTY_MASK) == EXTI_CONFIG) || \ + (((__EXTI_LINE__) & EXTI_PROPERTY_MASK) == EXTI_GPIO)) && \ + (((__EXTI_LINE__) & EXTI_PIN_MASK) < EXTI_LINE_NB)) + +#define IS_EXTI_MODE(__EXTI_LINE__) ((((__EXTI_LINE__) & EXTI_MODE_MASK) != 0x00u) && \ + (((__EXTI_LINE__) & ~EXTI_MODE_MASK) == 0x00u)) + +#define IS_EXTI_TRIGGER(__EXTI_LINE__) (((__EXTI_LINE__) & ~EXTI_TRIGGER_MASK) == 0x00u) + +#define IS_EXTI_PENDING_EDGE(__EXTI_LINE__) ((__EXTI_LINE__) == EXTI_TRIGGER_RISING_FALLING) + +#define IS_EXTI_CONFIG_LINE(__EXTI_LINE__) (((__EXTI_LINE__) & EXTI_CONFIG) != 0x00u) + +#if !defined (GPIOE) +#define IS_EXTI_GPIO_PORT(__PORT__) (((__PORT__) == EXTI_GPIOA) || \ + ((__PORT__) == EXTI_GPIOB) || \ + ((__PORT__) == EXTI_GPIOC) || \ + ((__PORT__) == EXTI_GPIOD) || \ + ((__PORT__) == EXTI_GPIOH)) +#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_GPIOH)) +#else +#define IS_EXTI_GPIO_PORT(__PORT__) (((__PORT__) == EXTI_GPIOA) || \ + ((__PORT__) == EXTI_GPIOB) || \ + ((__PORT__) == EXTI_GPIOC) || \ + ((__PORT__) == EXTI_GPIOD) || \ + ((__PORT__) == EXTI_GPIOE) || \ + ((__PORT__) == EXTI_GPIOF) || \ + ((__PORT__) == EXTI_GPIOG) || \ + ((__PORT__) == EXTI_GPIOH)) +#endif /* GPIOE */ + +#define IS_EXTI_GPIO_PIN(__PIN__) ((__PIN__) < 16U) +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup EXTI_Exported_Functions EXTI Exported Functions + * @brief EXTI Exported Functions + * @{ + */ + +/** @defgroup EXTI_Exported_Functions_Group1 Configuration functions + * @brief Configuration functions + * @{ + */ +/* Configuration functions ****************************************************/ +HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig); +HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig); +HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti); +HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef CallbackID, void (*pPendingCbfn)(void)); +HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine); +/** + * @} + */ + +/** @defgroup EXTI_Exported_Functions_Group2 IO operation functions + * @brief IO operation functions + * @{ + */ +/* IO operation functions *****************************************************/ +void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti); +uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge); +void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge); +void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32l1xx_HAL_EXTI_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h new file mode 100644 index 0000000..511d469 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h @@ -0,0 +1,411 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_flash.h + * @author MCD Application Team + * @brief Header file of Flash HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_FLASH_H +#define __STM32L1xx_HAL_FLASH_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_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_WORD) + +#define IS_FLASH_LATENCY(__LATENCY__) (((__LATENCY__) == FLASH_LATENCY_0) || \ + ((__LATENCY__) == FLASH_LATENCY_1)) + +/** + * @} + */ + +/* 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_PROGRAM = 2U, +} 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 NbPagesToErase; /*!< Internal variable to save the remaining sectors to erase in IT context*/ + + __IO uint32_t Address; /*!< Internal variable to save address selected for program or erase */ + + __IO uint32_t Page; /*!< Internal variable to define the current page which is erasing */ + + 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_PGA 0x01U /*!< Programming alignment error */ +#define HAL_FLASH_ERROR_WRP 0x02U /*!< Write protection error */ +#define HAL_FLASH_ERROR_OPTV 0x04U /*!< Option validity error */ +#define HAL_FLASH_ERROR_SIZE 0x08U /*!< */ +#define HAL_FLASH_ERROR_RD 0x10U /*!< Read protected error */ +#define HAL_FLASH_ERROR_OPTVUSR 0x20U /*!< Option UserValidity Error. */ +#define HAL_FLASH_ERROR_OPERATION 0x40U /*!< Not used */ + +/** + * @} + */ + +/** @defgroup FLASH_Page_Size FLASH size information + * @{ + */ + +#if defined (FLASH_CUT1) || defined (FLASH_CUT2) +#define FLASH_SIZE_RAW (uint32_t)(*((uint32_t *)FLASHSIZE_BASE)&0xFFU) +#else /*FLASH_CUT3 || FLASH_CUT4 || FLASH_CUT5 || FLASH_CUT6*/ +#define FLASH_SIZE_RAW (uint32_t)(*((uint32_t *)FLASHSIZE_BASE)&0xFFFFU) +#endif +#define FLASH_SIZE (((FLASH_SIZE_RAW) == 0 ? 384 : ((FLASH_SIZE_RAW) == 1 ? 256 : (FLASH_SIZE_RAW))) * 1024) +#define FLASH_PAGE_SIZE (256U) /*!< FLASH Page Size in bytes */ + +/** + * @} + */ + +/** @defgroup FLASH_Type_Program FLASH Type Program + * @{ + */ +#define FLASH_TYPEPROGRAM_WORD (0x02U) /*!PECR), (__INTERRUPT__)) + +/** + * @brief Disable the specified FLASH interrupt. + * @param __INTERRUPT__ FLASH interrupt + * This parameter can be any combination of the following values: + * @arg @ref FLASH_IT_EOP End of FLASH Operation Interrupt + * @arg @ref FLASH_IT_ERR Error Interrupt + * @retval none + */ +#define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) CLEAR_BIT((FLASH->PECR), (uint32_t)(__INTERRUPT__)) + +/** + * @brief Get the specified FLASH flag status. + * @param __FLAG__ specifies the FLASH flag to check. + * This parameter can be one of the following values: + * @arg @ref FLASH_FLAG_BSY FLASH Busy flag + * @arg @ref FLASH_FLAG_EOP FLASH End of Operation flag + * @arg @ref FLASH_FLAG_ENDHV FLASH End of High Voltage flag + * @arg @ref FLASH_FLAG_READY FLASH Ready flag after low power mode + * @arg @ref FLASH_FLAG_PGAERR FLASH Programming Alignment error flag + * @arg @ref FLASH_FLAG_SIZERR FLASH Size error flag + * @arg @ref FLASH_FLAG_OPTVERR FLASH Option validity error error flag +@if STM32L100xB +@elif STM32L100xBA + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) +@elif STM32L151xB +@elif STM32L151xBA + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) +@elif STM32L152xB +@elif STM32L152xBA + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) +@elif STM32L100xC + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) + * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option User validity error +@elif STM32L151xC + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) + * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option User validity error +@elif STM32L152xC + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) + * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option User validity error +@elif STM32L162xC + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) + * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option User validity error +@else + * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option User validity error +@endif + * @arg @ref FLASH_FLAG_WRPERR FLASH Write protected error flag + * @retval The new state of __FLAG__ (SET or RESET). + */ +#define __HAL_FLASH_GET_FLAG(__FLAG__) (((FLASH->SR) & (__FLAG__)) == (__FLAG__)) + +/** + * @brief Clear the specified FLASH flag. + * @param __FLAG__ specifies the FLASH flags to clear. + * This parameter can be any combination of the following values: + * @arg @ref FLASH_FLAG_EOP FLASH End of Operation flag + * @arg @ref FLASH_FLAG_PGAERR FLASH Programming Alignment error flag + * @arg @ref FLASH_FLAG_SIZERR FLASH Size error flag + * @arg @ref FLASH_FLAG_OPTVERR FLASH Option validity error error flag +@if STM32L100xB +@elif STM32L100xBA + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) +@elif STM32L151xB +@elif STM32L151xBA + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) +@elif STM32L152xB +@elif STM32L152xBA + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) +@elif STM32L100xC + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) + * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option User validity error +@elif STM32L151xC + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) + * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option User validity error +@elif STM32L152xC + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) + * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option User validity error +@elif STM32L162xC + * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) + * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option User validity error +@else + * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option User validity error +@endif + * @arg @ref FLASH_FLAG_WRPERR FLASH Write protected error flag + * @retval none + */ +#define __HAL_FLASH_CLEAR_FLAG(__FLAG__) ((FLASH->SR) = (__FLAG__)) + +/** + * @} + */ + +/** + * @} + */ + +/* Include FLASH HAL Extended module */ +#include "stm32l1xx_hal_flash_ex.h" +#include "stm32l1xx_hal_flash_ramfunc.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, uint32_t Data); +HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint32_t Data); + +/* FLASH IRQ handler function */ +void HAL_FLASH_IRQHandler(void); +/* Callbacks in non blocking modes */ +void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue); +void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue); + +/** + * @} + */ + +/** @addtogroup FLASH_Exported_Functions_Group2 + * @{ + */ +/* Peripheral Control functions ***********************************************/ +HAL_StatusTypeDef HAL_FLASH_Unlock(void); +HAL_StatusTypeDef HAL_FLASH_Lock(void); +HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void); +HAL_StatusTypeDef HAL_FLASH_OB_Lock(void); +HAL_StatusTypeDef HAL_FLASH_OB_Launch(void); + +/** + * @} + */ + +/** @addtogroup FLASH_Exported_Functions_Group3 + * @{ + */ +/* Peripheral State and Error functions ***************************************/ +uint32_t HAL_FLASH_GetError(void); + +/** + * @} + */ + +/** + * @} + */ + +/* Private function -------------------------------------------------*/ +/** @addtogroup FLASH_Private_Functions + * @{ + */ +HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_HAL_FLASH_H */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h new file mode 100644 index 0000000..24c4e3b --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h @@ -0,0 +1,965 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_flash_ex.h + * @author MCD Application Team + * @brief Header file of Flash HAL Extended module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_FLASH_EX_H +#define __STM32L1xx_HAL_FLASH_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @addtogroup FLASHEx + * @{ + */ + +/** @addtogroup FLASHEx_Private_Constants + * @{ + */ +#if defined(FLASH_SR_RDERR) && defined(FLASH_SR_OPTVERRUSR) + +#define FLASH_FLAG_MASK ( FLASH_FLAG_EOP | FLASH_FLAG_ENDHV | FLASH_FLAG_WRPERR | \ + FLASH_FLAG_OPTVERR | FLASH_FLAG_PGAERR | FLASH_FLAG_SIZERR | \ + FLASH_FLAG_OPTVERRUSR | FLASH_FLAG_RDERR) + +#elif defined(FLASH_SR_RDERR) + +#define FLASH_FLAG_MASK ( FLASH_FLAG_EOP | FLASH_FLAG_ENDHV | FLASH_FLAG_WRPERR | \ + FLASH_FLAG_OPTVERR | FLASH_FLAG_PGAERR | FLASH_FLAG_SIZERR | \ + FLASH_FLAG_RDERR) + +#elif defined(FLASH_SR_OPTVERRUSR) + +#define FLASH_FLAG_MASK ( FLASH_FLAG_EOP | FLASH_FLAG_ENDHV | FLASH_FLAG_WRPERR | \ + FLASH_FLAG_OPTVERR | FLASH_FLAG_PGAERR | FLASH_FLAG_SIZERR | \ + FLASH_FLAG_OPTVERRUSR) + +#else + +#define FLASH_FLAG_MASK ( FLASH_FLAG_EOP | FLASH_FLAG_ENDHV | FLASH_FLAG_WRPERR | \ + FLASH_FLAG_OPTVERR | FLASH_FLAG_PGAERR | FLASH_FLAG_SIZERR) + +#endif /* FLASH_SR_RDERR & FLASH_SR_OPTVERRUSR */ + +#if defined(STM32L100xB) || defined(STM32L151xB) || defined(STM32L152xB) || defined(STM32L100xBA) \ + || defined(STM32L151xBA) || defined(STM32L152xBA) + +/******* Devices with FLASH 128K *******/ +#define FLASH_NBPAGES_MAX 512U /* 512 pages from page 0 to page 511U */ + +#elif defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC) \ + || defined(STM32L151xCA) || defined(STM32L152xCA) || defined(STM32L162xCA) + +/******* Devices with FLASH 256K *******/ +#define FLASH_NBPAGES_MAX 1024U /* 1024 pages from page 0 to page 1023U */ + +#elif defined(STM32L151xD) || defined(STM32L151xDX) || defined(STM32L152xD) || defined(STM32L152xDX) \ + || defined(STM32L162xD) || defined(STM32L162xDX) + +/******* Devices with FLASH 384K *******/ +#define FLASH_NBPAGES_MAX 1536U /* 1536 pages from page 0 to page 1535U */ + +#elif defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) + +/******* Devices with FLASH 512K *******/ +#define FLASH_NBPAGES_MAX 2048U /* 2048 pages from page 0 to page 2047U */ + +#endif /* STM32L100xB || STM32L151xB || STM32L152xB || STM32L100xBA || STM32L151xBA || STM32L152xBA */ + +#define WRP_MASK_LOW (0x0000FFFFU) +#define WRP_MASK_HIGH (0xFFFF0000U) + +/** + * @} + */ + +/** @addtogroup FLASHEx_Private_Macros + * @{ + */ + +#define IS_FLASH_TYPEERASE(__VALUE__) (((__VALUE__) == FLASH_TYPEERASE_PAGES)) + +#define IS_OPTIONBYTE(__VALUE__) (((__VALUE__) <= (OPTIONBYTE_WRP|OPTIONBYTE_RDP|OPTIONBYTE_USER|OPTIONBYTE_BOR))) + +#define IS_WRPSTATE(__VALUE__) (((__VALUE__) == OB_WRPSTATE_DISABLE) || \ + ((__VALUE__) == OB_WRPSTATE_ENABLE)) + +#define IS_OB_WRP(__PAGE__) (((__PAGE__) != 0x0000000U)) + +#define IS_OB_RDP(__LEVEL__) (((__LEVEL__) == OB_RDP_LEVEL_0) ||\ + ((__LEVEL__) == OB_RDP_LEVEL_1) ||\ + ((__LEVEL__) == OB_RDP_LEVEL_2)) + +#define IS_OB_BOR_LEVEL(__LEVEL__) (((__LEVEL__) == OB_BOR_OFF) || \ + ((__LEVEL__) == OB_BOR_LEVEL1) || \ + ((__LEVEL__) == OB_BOR_LEVEL2) || \ + ((__LEVEL__) == OB_BOR_LEVEL3) || \ + ((__LEVEL__) == OB_BOR_LEVEL4) || \ + ((__LEVEL__) == OB_BOR_LEVEL5)) + +#define IS_OB_IWDG_SOURCE(__SOURCE__) (((__SOURCE__) == OB_IWDG_SW) || ((__SOURCE__) == OB_IWDG_HW)) + +#define IS_OB_STOP_SOURCE(__SOURCE__) (((__SOURCE__) == OB_STOP_NORST) || ((__SOURCE__) == OB_STOP_RST)) + +#define IS_OB_STDBY_SOURCE(__SOURCE__) (((__SOURCE__) == OB_STDBY_NORST) || ((__SOURCE__) == OB_STDBY_RST)) + +#if defined(FLASH_OBR_SPRMOD) && defined(FLASH_OBR_nRST_BFB2) + +#define IS_OBEX(__VALUE__) (((__VALUE__) == OPTIONBYTE_PCROP) || ((__VALUE__) == OPTIONBYTE_BOOTCONFIG)) + +#elif defined(FLASH_OBR_SPRMOD) && !defined(FLASH_OBR_nRST_BFB2) + +#define IS_OBEX(__VALUE__) ((__VALUE__) == OPTIONBYTE_PCROP) + +#elif !defined(FLASH_OBR_SPRMOD) && defined(FLASH_OBR_nRST_BFB2) + +#define IS_OBEX(__VALUE__) ((__VALUE__) == OPTIONBYTE_BOOTCONFIG) + +#endif /* FLASH_OBR_SPRMOD && FLASH_OBR_nRST_BFB2 */ + +#if defined(FLASH_OBR_SPRMOD) + +#define IS_PCROPSTATE(__VALUE__) (((__VALUE__) == OB_PCROP_STATE_DISABLE) || \ + ((__VALUE__) == OB_PCROP_STATE_ENABLE)) + +#define IS_OB_PCROP(__PAGE__) (((__PAGE__) != 0x0000000U)) +#endif /* FLASH_OBR_SPRMOD */ + +#if defined(FLASH_OBR_nRST_BFB2) + +#define IS_OB_BOOT_BANK(__BANK__) (((__BANK__) == OB_BOOT_BANK2) || ((__BANK__) == OB_BOOT_BANK1)) + +#endif /* FLASH_OBR_nRST_BFB2 */ + +#define IS_TYPEERASEDATA(__VALUE__) (((__VALUE__) == FLASH_TYPEERASEDATA_BYTE) || \ + ((__VALUE__) == FLASH_TYPEERASEDATA_HALFWORD) || \ + ((__VALUE__) == FLASH_TYPEERASEDATA_WORD)) +#define IS_TYPEPROGRAMDATA(__VALUE__) (((__VALUE__) == FLASH_TYPEPROGRAMDATA_BYTE) || \ + ((__VALUE__) == FLASH_TYPEPROGRAMDATA_HALFWORD) || \ + ((__VALUE__) == FLASH_TYPEPROGRAMDATA_WORD) || \ + ((__VALUE__) == FLASH_TYPEPROGRAMDATA_FASTBYTE) || \ + ((__VALUE__) == FLASH_TYPEPROGRAMDATA_FASTHALFWORD) || \ + ((__VALUE__) == FLASH_TYPEPROGRAMDATA_FASTWORD)) + + +/** @defgroup FLASHEx_Address FLASHEx Address + * @{ + */ + +#define IS_FLASH_DATA_ADDRESS(__ADDRESS__) (((__ADDRESS__) >= FLASH_EEPROM_BASE) && ((__ADDRESS__) <= FLASH_EEPROM_END)) + +#if defined(STM32L100xB) || defined(STM32L151xB) || defined(STM32L152xB) || defined(STM32L100xBA) \ + || defined(STM32L151xBA) || defined(STM32L152xBA) || defined(STM32L100xC) || defined(STM32L151xC) \ + || defined(STM32L152xC) || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L152xCA) \ + || defined(STM32L162xCA) + +#define IS_FLASH_PROGRAM_ADDRESS(__ADDRESS__) (((__ADDRESS__) >= FLASH_BASE) && ((__ADDRESS__) <= FLASH_END)) + +#else /*STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */ + +#define IS_FLASH_PROGRAM_ADDRESS(__ADDRESS__) (((__ADDRESS__) >= FLASH_BASE) && ((__ADDRESS__) <= FLASH_BANK2_END)) +#define IS_FLASH_PROGRAM_BANK1_ADDRESS(__ADDRESS__) (((__ADDRESS__) >= FLASH_BASE) && ((__ADDRESS__) <= FLASH_BANK1_END)) +#define IS_FLASH_PROGRAM_BANK2_ADDRESS(__ADDRESS__) (((__ADDRESS__) >= FLASH_BANK2_BASE) && ((__ADDRESS__) <= FLASH_BANK2_END)) + +#endif /* STM32L100xB || STM32L151xB || STM32L152xB || (...) || STM32L151xCA || STM32L152xCA || STM32L162xCA */ + +#define IS_NBPAGES(__PAGES__) (((__PAGES__) >= 1U) && ((__PAGES__) <= FLASH_NBPAGES_MAX)) + +/** + * @} + */ + +/** + * @} + */ +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup FLASHEx_Exported_Types FLASHEx Exported Types + * @{ + */ + +/** + * @brief FLASH Erase structure definition + */ +typedef struct +{ + uint32_t TypeErase; /*!< TypeErase: Page Erase only. + This parameter can be a value of @ref FLASHEx_Type_Erase */ + + uint32_t PageAddress; /*!< PageAddress: Initial FLASH address to be erased + This parameter must be a value belonging to FLASH Program address (depending on the devices) */ + + uint32_t NbPages; /*!< NbPages: Number of pages to be erased. + This parameter must be a value between 1 and (max number of pages - value of Initial page)*/ + +} FLASH_EraseInitTypeDef; + +/** + * @brief FLASH Option Bytes PROGRAM structure definition + */ +typedef struct +{ + uint32_t OptionType; /*!< OptionType: Option byte to be configured. + This parameter can be a value of @ref FLASHEx_Option_Type */ + + uint32_t WRPState; /*!< WRPState: Write protection activation or deactivation. + This parameter can be a value of @ref FLASHEx_WRP_State */ + + uint32_t WRPSector0To31; /*!< WRPSector0To31: specifies the sector(s) which are write protected between Sector 0 to 31 + This parameter can be a combination of @ref FLASHEx_Option_Bytes_Write_Protection1 */ + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC) \ + || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L151xDX) || defined(STM32L152xCA) \ + || defined(STM32L152xD) || defined(STM32L152xDX) || defined(STM32L162xCA) || defined(STM32L162xD) \ + || defined(STM32L162xDX) || defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) + uint32_t WRPSector32To63; /*!< WRPSector32To63: specifies the sector(s) which are write protected between Sector 32 to 63 + This parameter can be a combination of @ref FLASHEx_Option_Bytes_Write_Protection2 */ +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || (...) || STM32L151xE || STM32L152xE || STM32L162xE */ + +#if defined(STM32L151xD) || defined(STM32L151xDX) || defined(STM32L152xD) || defined(STM32L152xDX) \ + || defined(STM32L162xD) || defined(STM32L162xDX) || defined(STM32L151xE) || defined(STM32L152xE) \ + || defined(STM32L162xE) + uint32_t WRPSector64To95; /*!< WRPSector64to95: specifies the sector(s) which are write protected between Sector 64 to 95 + This parameter can be a combination of @ref FLASHEx_Option_Bytes_Write_Protection3 */ +#endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */ + +#if defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) || defined(STM32L151xDX) \ + || defined(STM32L152xDX) || defined(STM32L162xDX) + uint32_t WRPSector96To127; /*!< WRPSector96To127: specifies the sector(s) which are write protected between Sector 96 to 127 or + Sectors 96 to 111 for STM32L1xxxDX devices. + This parameter can be a combination of @ref FLASHEx_Option_Bytes_Write_Protection4 */ +#endif /* STM32L151xE || STM32L152xE || STM32L162xE || STM32L151xDX || ... */ + + uint8_t RDPLevel; /*!< RDPLevel: Set the read protection level. + This parameter can be a value of @ref FLASHEx_Option_Bytes_Read_Protection */ + + uint8_t BORLevel; /*!< BORLevel: Set the BOR Level. + This parameter can be a value of @ref FLASHEx_Option_Bytes_BOR_Level */ + + uint8_t USERConfig; /*!< USERConfig: Program the FLASH User Option Byte: IWDG_SW / RST_STOP / RST_STDBY. + This parameter can be a combination of @ref FLASHEx_Option_Bytes_IWatchdog, + @ref FLASHEx_Option_Bytes_nRST_STOP and @ref FLASHEx_Option_Bytes_nRST_STDBY*/ +} FLASH_OBProgramInitTypeDef; + +#if defined(FLASH_OBR_SPRMOD) || defined(FLASH_OBR_nRST_BFB2) +/** + * @brief FLASH Advanced Option Bytes Program structure definition + */ +typedef struct +{ + uint32_t OptionType; /*!< OptionType: Option byte to be configured for extension . + This parameter can be a value of @ref FLASHEx_OptionAdv_Type */ + +#if defined(FLASH_OBR_SPRMOD) + uint32_t PCROPState; /*!< PCROPState: PCROP activation or deactivation. + This parameter can be a value of @ref FLASHEx_PCROP_State */ + + uint32_t PCROPSector0To31; /*!< PCROPSector0To31: specifies the sector(s) set for PCROP + This parameter can be a value of @ref FLASHEx_Option_Bytes_PC_ReadWrite_Protection1 */ + +#if defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC) + uint32_t PCROPSector32To63; /*!< PCROPSector32To63: specifies the sector(s) set for PCROP + This parameter can be a value of @ref FLASHEx_Option_Bytes_PC_ReadWrite_Protection2 */ +#endif /* STM32L151xC || STM32L152xC || STM32L162xC */ +#endif /* FLASH_OBR_SPRMOD */ + +#if defined(FLASH_OBR_nRST_BFB2) + uint16_t BootConfig; /*!< BootConfig: specifies Option bytes for boot config + This parameter can be a value of @ref FLASHEx_Option_Bytes_BOOT */ +#endif /* FLASH_OBR_nRST_BFB2*/ +} FLASH_AdvOBProgramInitTypeDef; + +/** + * @} + */ +#endif /* FLASH_OBR_SPRMOD || FLASH_OBR_nRST_BFB2 */ + +/* Exported constants --------------------------------------------------------*/ + + +/** @defgroup FLASHEx_Exported_Constants FLASHEx Exported Constants + * @{ + */ + +/** @defgroup FLASHEx_Type_Erase FLASHEx_Type_Erase + * @{ + */ +#define FLASH_TYPEERASE_PAGES (0x00U) /*!= 256KB*/ +#define OB_WRP3_PAGES1024TO1039 (0x00000001U) /* Write protection of Sector64 */ +#define OB_WRP3_PAGES1040TO1055 (0x00000002U) /* Write protection of Sector65 */ +#define OB_WRP3_PAGES1056TO1071 (0x00000004U) /* Write protection of Sector66 */ +#define OB_WRP3_PAGES1072TO1087 (0x00000008U) /* Write protection of Sector67 */ +#define OB_WRP3_PAGES1088TO1103 (0x00000010U) /* Write protection of Sector68 */ +#define OB_WRP3_PAGES1104TO1119 (0x00000020U) /* Write protection of Sector69 */ +#define OB_WRP3_PAGES1120TO1135 (0x00000040U) /* Write protection of Sector70 */ +#define OB_WRP3_PAGES1136TO1151 (0x00000080U) /* Write protection of Sector71 */ +#define OB_WRP3_PAGES1152TO1167 (0x00000100U) /* Write protection of Sector72 */ +#define OB_WRP3_PAGES1168TO1183 (0x00000200U) /* Write protection of Sector73 */ +#define OB_WRP3_PAGES1184TO1199 (0x00000400U) /* Write protection of Sector74 */ +#define OB_WRP3_PAGES1200TO1215 (0x00000800U) /* Write protection of Sector75 */ +#define OB_WRP3_PAGES1216TO1231 (0x00001000U) /* Write protection of Sector76 */ +#define OB_WRP3_PAGES1232TO1247 (0x00002000U) /* Write protection of Sector77 */ +#define OB_WRP3_PAGES1248TO1263 (0x00004000U) /* Write protection of Sector78 */ +#define OB_WRP3_PAGES1264TO1279 (0x00008000U) /* Write protection of Sector79 */ +#define OB_WRP3_PAGES1280TO1295 (0x00010000U) /* Write protection of Sector80 */ +#define OB_WRP3_PAGES1296TO1311 (0x00020000U) /* Write protection of Sector81 */ +#define OB_WRP3_PAGES1312TO1327 (0x00040000U) /* Write protection of Sector82 */ +#define OB_WRP3_PAGES1328TO1343 (0x00080000U) /* Write protection of Sector83 */ +#define OB_WRP3_PAGES1344TO1359 (0x00100000U) /* Write protection of Sector84 */ +#define OB_WRP3_PAGES1360TO1375 (0x00200000U) /* Write protection of Sector85 */ +#define OB_WRP3_PAGES1376TO1391 (0x00400000U) /* Write protection of Sector86 */ +#define OB_WRP3_PAGES1392TO1407 (0x00800000U) /* Write protection of Sector87 */ +#define OB_WRP3_PAGES1408TO1423 (0x01000000U) /* Write protection of Sector88 */ +#define OB_WRP3_PAGES1424TO1439 (0x02000000U) /* Write protection of Sector89 */ +#define OB_WRP3_PAGES1440TO1455 (0x04000000U) /* Write protection of Sector90 */ +#define OB_WRP3_PAGES1456TO1471 (0x08000000U) /* Write protection of Sector91 */ +#define OB_WRP3_PAGES1472TO1487 (0x10000000U) /* Write protection of Sector92 */ +#define OB_WRP3_PAGES1488TO1503 (0x20000000U) /* Write protection of Sector93 */ +#define OB_WRP3_PAGES1504TO1519 (0x40000000U) /* Write protection of Sector94 */ +#define OB_WRP3_PAGES1520TO1535 (0x80000000U) /* Write protection of Sector95 */ + +#define OB_WRP3_ALLPAGES ((uint32_t)FLASH_WRPR3_WRP) /*!< Write protection of all Sectors */ + +/** + * @} + */ + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE*/ + +#if defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) || defined(STM32L151xDX) \ + || defined(STM32L152xDX) || defined(STM32L162xDX) + +/** @defgroup FLASHEx_Option_Bytes_Write_Protection4 FLASHEx Option Bytes Write Protection4 + * @{ + */ + +/* Pages for Cat5 devices*/ +#define OB_WRP4_PAGES1536TO1551 (0x00000001U)/* Write protection of Sector96*/ +#define OB_WRP4_PAGES1552TO1567 (0x00000002U)/* Write protection of Sector97*/ +#define OB_WRP4_PAGES1568TO1583 (0x00000004U)/* Write protection of Sector98*/ +#define OB_WRP4_PAGES1584TO1599 (0x00000008U)/* Write protection of Sector99*/ +#define OB_WRP4_PAGES1600TO1615 (0x00000010U) /* Write protection of Sector100*/ +#define OB_WRP4_PAGES1616TO1631 (0x00000020U) /* Write protection of Sector101*/ +#define OB_WRP4_PAGES1632TO1647 (0x00000040U) /* Write protection of Sector102*/ +#define OB_WRP4_PAGES1648TO1663 (0x00000080U) /* Write protection of Sector103*/ +#define OB_WRP4_PAGES1664TO1679 (0x00000100U) /* Write protection of Sector104*/ +#define OB_WRP4_PAGES1680TO1695 (0x00000200U) /* Write protection of Sector105*/ +#define OB_WRP4_PAGES1696TO1711 (0x00000400U) /* Write protection of Sector106*/ +#define OB_WRP4_PAGES1712TO1727 (0x00000800U) /* Write protection of Sector107*/ +#define OB_WRP4_PAGES1728TO1743 (0x00001000U) /* Write protection of Sector108*/ +#define OB_WRP4_PAGES1744TO1759 (0x00002000U) /* Write protection of Sector109*/ +#define OB_WRP4_PAGES1760TO1775 (0x00004000U) /* Write protection of Sector110*/ +#define OB_WRP4_PAGES1776TO1791 (0x00008000U) /* Write protection of Sector111*/ + +#if defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) + +#define OB_WRP4_PAGES1792TO1807 (0x00010000U) /* Write protection of Sector112*/ +#define OB_WRP4_PAGES1808TO1823 (0x00020000U) /* Write protection of Sector113*/ +#define OB_WRP4_PAGES1824TO1839 (0x00040000U) /* Write protection of Sector114*/ +#define OB_WRP4_PAGES1840TO1855 (0x00080000U) /* Write protection of Sector115*/ +#define OB_WRP4_PAGES1856TO1871 (0x00100000U) /* Write protection of Sector116*/ +#define OB_WRP4_PAGES1872TO1887 (0x00200000U) /* Write protection of Sector117*/ +#define OB_WRP4_PAGES1888TO1903 (0x00400000U) /* Write protection of Sector118*/ +#define OB_WRP4_PAGES1904TO1919 (0x00800000U) /* Write protection of Sector119*/ +#define OB_WRP4_PAGES1920TO1935 (0x01000000U) /* Write protection of Sector120*/ +#define OB_WRP4_PAGES1936TO1951 (0x02000000U) /* Write protection of Sector121*/ +#define OB_WRP4_PAGES1952TO1967 (0x04000000U) /* Write protection of Sector122*/ +#define OB_WRP4_PAGES1968TO1983 (0x08000000U) /* Write protection of Sector123*/ +#define OB_WRP4_PAGES1984TO1999 (0x10000000U) /* Write protection of Sector124*/ +#define OB_WRP4_PAGES2000TO2015 (0x20000000U) /* Write protection of Sector125*/ +#define OB_WRP4_PAGES2016TO2031 (0x40000000U) /* Write protection of Sector126*/ +#define OB_WRP4_PAGES2032TO2047 (0x80000000U) /* Write protection of Sector127*/ + +#endif /* STM32L151xE || STM32L152xE || STM32L162xE */ + +#define OB_WRP4_ALLPAGES ((uint32_t)FLASH_WRPR4_WRP) /*!< Write protection of all Sectors */ + +/** + * @} + */ + +#endif /* STM32L151xE || STM32L152xE || STM32L162xE || STM32L151xDX || ... */ + +/** @defgroup FLASHEx_Option_Bytes_Read_Protection FLASHEx Option Bytes Read Protection + * @{ + */ +#define OB_RDP_LEVEL_0 ((uint8_t)0xAAU) +#define OB_RDP_LEVEL_1 ((uint8_t)0xBBU) +#define OB_RDP_LEVEL_2 ((uint8_t)0xCCU) /* Warning: When enabling read protection level 2 + it is no more possible to go back to level 1 or 0 */ + +/** + * @} + */ + +/** @defgroup FLASHEx_Option_Bytes_BOR_Level FLASHEx Option Bytes BOR Level + * @{ + */ + +#define OB_BOR_OFF ((uint8_t)0x00U) /*!< BOR is disabled at power down, the reset is asserted when the VDD + power supply reaches the PDR(Power Down Reset) threshold (1.5V) */ +#define OB_BOR_LEVEL1 ((uint8_t)0x08U) /*!< BOR Reset threshold levels for 1.7V - 1.8V VDD power supply */ +#define OB_BOR_LEVEL2 ((uint8_t)0x09U) /*!< BOR Reset threshold levels for 1.9V - 2.0V VDD power supply */ +#define OB_BOR_LEVEL3 ((uint8_t)0x0AU) /*!< BOR Reset threshold levels for 2.3V - 2.4V VDD power supply */ +#define OB_BOR_LEVEL4 ((uint8_t)0x0BU) /*!< BOR Reset threshold levels for 2.55V - 2.65V VDD power supply */ +#define OB_BOR_LEVEL5 ((uint8_t)0x0CU) /*!< BOR Reset threshold levels for 2.8V - 2.9V VDD power supply */ + +/** + * @} + */ + +/** @defgroup FLASHEx_Option_Bytes_IWatchdog FLASHEx Option Bytes IWatchdog + * @{ + */ + +#define OB_IWDG_SW ((uint8_t)0x10U) /*!< Software WDG selected */ +#define OB_IWDG_HW ((uint8_t)0x00U) /*!< Hardware WDG selected */ + +/** + * @} + */ + +/** @defgroup FLASHEx_Option_Bytes_nRST_STOP FLASHEx Option Bytes nRST_STOP + * @{ + */ + +#define OB_STOP_NORST ((uint8_t)0x20U) /*!< No reset generated when entering in STOP */ +#define OB_STOP_RST ((uint8_t)0x00U) /*!< Reset generated when entering in STOP */ +/** + * @} + */ + +/** @defgroup FLASHEx_Option_Bytes_nRST_STDBY FLASHEx Option Bytes nRST_STDBY + * @{ + */ + +#define OB_STDBY_NORST ((uint8_t)0x40U) /*!< No reset generated when entering in STANDBY */ +#define OB_STDBY_RST ((uint8_t)0x00U) /*!< Reset generated when entering in STANDBY */ + +/** + * @} + */ + +#if defined(FLASH_OBR_SPRMOD) + +/** @defgroup FLASHEx_OptionAdv_Type FLASHEx Option Advanced Type + * @{ + */ + +#define OPTIONBYTE_PCROP (0x01U) /*!> 16U)) /*!< At startup, if boot pins are set in boot from user Flash position + and this parameter is selected the device will boot from Bank1(Default) */ + +/** + * @} + */ +#endif /* FLASH_OBR_nRST_BFB2 */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/** @defgroup FLASHEx_Exported_Macros FLASHEx Exported Macros + * @{ + */ + +/** + * @brief Set the FLASH Latency. + * @param __LATENCY__ FLASH Latency + * This parameter can be one of the following values: + * @arg @ref FLASH_LATENCY_0 FLASH Zero Latency cycle + * @arg @ref FLASH_LATENCY_1 FLASH One Latency cycle + * @retval none + */ +#define __HAL_FLASH_SET_LATENCY(__LATENCY__) do { \ + if ((__LATENCY__) == FLASH_LATENCY_1) {__HAL_FLASH_ACC64_ENABLE();} \ + MODIFY_REG((FLASH->ACR), FLASH_ACR_LATENCY, (__LATENCY__)); \ + } while(0U) + +/** + * @brief Get the FLASH Latency. + * @retval FLASH Latency + * This parameter can be one of the following values: + * @arg @ref FLASH_LATENCY_0 FLASH Zero Latency cycle + * @arg @ref FLASH_LATENCY_1 FLASH One Latency cycle + */ +#define __HAL_FLASH_GET_LATENCY() (READ_BIT((FLASH->ACR), FLASH_ACR_LATENCY)) + +/** + * @brief Enable the FLASH 64-bit access. + * @note Read access 64 bit is used. + * @note This bit cannot be written at the same time as the LATENCY and + * PRFTEN bits. + * @retval none + */ +#define __HAL_FLASH_ACC64_ENABLE() (SET_BIT((FLASH->ACR), FLASH_ACR_ACC64)) + + /** + * @brief Disable the FLASH 64-bit access. + * @note Read access 32 bit is used + * @note To reset this bit, the LATENCY should be zero wait state and the + * prefetch off. + * @retval none + */ +#define __HAL_FLASH_ACC64_DISABLE() (CLEAR_BIT((FLASH->ACR), FLASH_ACR_ACC64)) + +/** + * @brief Enable the FLASH prefetch buffer. + * @retval none + */ +#define __HAL_FLASH_PREFETCH_BUFFER_ENABLE() do { __HAL_FLASH_ACC64_ENABLE(); \ + SET_BIT((FLASH->ACR), FLASH_ACR_PRFTEN); \ + } while(0U) + +/** + * @brief Disable the FLASH prefetch buffer. + * @retval none + */ +#define __HAL_FLASH_PREFETCH_BUFFER_DISABLE() CLEAR_BIT((FLASH->ACR), FLASH_ACR_PRFTEN) + +/** + * @brief Enable the FLASH power down during Sleep mode + * @retval none + */ +#define __HAL_FLASH_SLEEP_POWERDOWN_ENABLE() SET_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD) + +/** + * @brief Disable the FLASH power down during Sleep mode + * @retval none + */ +#define __HAL_FLASH_SLEEP_POWERDOWN_DISABLE() CLEAR_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD) + +/** + * @brief Enable the Flash Run power down mode. + * @note Writing this bit to 0 this bit, automatically the keys are + * loss and a new unlock sequence is necessary to re-write it to 1. + */ +#define __HAL_FLASH_POWER_DOWN_ENABLE() do { FLASH->PDKEYR = FLASH_PDKEY1; \ + FLASH->PDKEYR = FLASH_PDKEY2; \ + SET_BIT((FLASH->ACR), FLASH_ACR_RUN_PD); \ + } while (0U) + +/** + * @brief Disable the Flash Run power down mode. + * @note Writing this bit to 0 this bit, automatically the keys are + * loss and a new unlock sequence is necessary to re-write it to 1. + */ +#define __HAL_FLASH_POWER_DOWN_DISABLE() do { FLASH->PDKEYR = FLASH_PDKEY1; \ + FLASH->PDKEYR = FLASH_PDKEY2; \ + CLEAR_BIT((FLASH->ACR), FLASH_ACR_RUN_PD); \ + } while (0U) + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup FLASHEx_Exported_Functions + * @{ + */ + +/** @addtogroup FLASHEx_Exported_Functions_Group1 + * @{ + */ + +HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError); +HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit); + +/** + * @} + */ + +/** @addtogroup FLASHEx_Exported_Functions_Group2 + * @{ + */ + +HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit); +void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit); + +#if defined(FLASH_OBR_SPRMOD) || defined(FLASH_OBR_nRST_BFB2) + +HAL_StatusTypeDef HAL_FLASHEx_AdvOBProgram (FLASH_AdvOBProgramInitTypeDef *pAdvOBInit); +void HAL_FLASHEx_AdvOBGetConfig(FLASH_AdvOBProgramInitTypeDef *pAdvOBInit); + +#endif /* FLASH_OBR_SPRMOD || FLASH_OBR_nRST_BFB2 */ + +#if defined(FLASH_OBR_SPRMOD) + +HAL_StatusTypeDef HAL_FLASHEx_OB_SelectPCROP(void); +HAL_StatusTypeDef HAL_FLASHEx_OB_DeSelectPCROP(void); + +#endif /* FLASH_OBR_SPRMOD */ + +/** + * @} + */ + +/** @addtogroup FLASHEx_Exported_Functions_Group3 + * @{ + */ + +HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Unlock(void); +HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Lock(void); + +HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Erase(uint32_t TypeErase, uint32_t Address); +HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Program(uint32_t TypeProgram, uint32_t Address, uint32_t Data); +void HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram(void); +void HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram(void); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_HAL_FLASH_EX_H */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h new file mode 100644 index 0000000..86e31fc --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h @@ -0,0 +1,116 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_flash_ramfunc.h + * @author MCD Application Team + * @brief Header file of FLASH RAMFUNC driver. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_FLASH_RAMFUNC_H +#define __STM32L1xx_FLASH_RAMFUNC_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @addtogroup FLASH_RAMFUNC + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + + +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup FLASH_RAMFUNC_Exported_Functions + * @{ + */ + +/* + * @brief FLASH memory functions that should be executed from internal SRAM. + * These functions are defined inside the "stm32l1xx_hal_flash_ramfunc.c" + * file. + */ + +/** @addtogroup FLASH_RAMFUNC_Exported_Functions_Group1 + * @{ + */ + +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_EnableRunPowerDown(void); +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_DisableRunPowerDown(void); + +/** + * @} + */ + +/** @addtogroup FLASH_RAMFUNC_Exported_Functions_Group2 + * @{ + */ + +#if defined(FLASH_PECR_PARALLBANK) + +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_EraseParallelPage(uint32_t Page_Address1, uint32_t Page_Address2); +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_ProgramParallelHalfPage(uint32_t Address1, uint32_t* pBuffer1, uint32_t Address2, uint32_t* pBuffer2); + +#endif /* FLASH_PECR_PARALLBANK */ + +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_HalfPageProgram(uint32_t Address, uint32_t* pBuffer); + +/** + * @} + */ + +/** @addtogroup FLASH_RAMFUNC_Exported_Functions_Group3 + * @{ + */ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_GetError(uint32_t *Error); +/** + * @} + */ + +/** @addtogroup FLASH_RAMFUNC_Exported_Functions_Group4 + * @{ + */ + +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_EraseDoubleWord(uint32_t Address); +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_ProgramDoubleWord(uint32_t Address, uint64_t Data); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_FLASH_RAMFUNC_H */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h new file mode 100644 index 0000000..990e85e --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h @@ -0,0 +1,333 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_gpio.h + * @author MCD Application Team + * @brief Header file of GPIO HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_GPIO_H +#define __STM32L1xx_HAL_GPIO_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @defgroup GPIO GPIO + * @brief GPIO HAL module driver + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup GPIO_Exported_Types GPIO Exported Types + * @{ + */ +/** + * @brief GPIO Init structure definition + */ +typedef struct +{ + uint32_t Pin; /*!< Specifies the GPIO pins to be configured. + This parameter can be any value of @ref GPIO_pins */ + + uint32_t Mode; /*!< Specifies the operating mode for the selected pins. + This parameter can be a value of @ref GPIO_mode */ + + uint32_t Pull; /*!< Specifies the Pull-up or Pull-Down activation for the selected pins. + This parameter can be a value of @ref GPIO_pull */ + + uint32_t Speed; /*!< Specifies the speed for the selected pins. + This parameter can be a value of @ref GPIO_speed */ + + uint32_t Alternate; /*!< Peripheral to be connected to the selected pins + This parameter can be a value of @ref GPIOEx_Alternate_function_selection */ +} GPIO_InitTypeDef; + +/** + * @brief GPIO Bit SET and Bit RESET enumeration + */ +typedef enum +{ + GPIO_PIN_RESET = 0, + GPIO_PIN_SET +} GPIO_PinState; +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup GPIO_Exported_Constants GPIO Exported Constants + * @{ + */ + + +/** @defgroup GPIO_pins GPIO pins + * @{ + */ +#define GPIO_PIN_0 ((uint16_t)0x0001U) /* Pin 0 selected */ +#define GPIO_PIN_1 ((uint16_t)0x0002U) /* Pin 1 selected */ +#define GPIO_PIN_2 ((uint16_t)0x0004U) /* Pin 2 selected */ +#define GPIO_PIN_3 ((uint16_t)0x0008U) /* Pin 3 selected */ +#define GPIO_PIN_4 ((uint16_t)0x0010U) /* Pin 4 selected */ +#define GPIO_PIN_5 ((uint16_t)0x0020U) /* Pin 5 selected */ +#define GPIO_PIN_6 ((uint16_t)0x0040U) /* Pin 6 selected */ +#define GPIO_PIN_7 ((uint16_t)0x0080U) /* Pin 7 selected */ +#define GPIO_PIN_8 ((uint16_t)0x0100U) /* Pin 8 selected */ +#define GPIO_PIN_9 ((uint16_t)0x0200U) /* Pin 9 selected */ +#define GPIO_PIN_10 ((uint16_t)0x0400U) /* Pin 10 selected */ +#define GPIO_PIN_11 ((uint16_t)0x0800U) /* Pin 11 selected */ +#define GPIO_PIN_12 ((uint16_t)0x1000U) /* Pin 12 selected */ +#define GPIO_PIN_13 ((uint16_t)0x2000U) /* Pin 13 selected */ +#define GPIO_PIN_14 ((uint16_t)0x4000U) /* Pin 14 selected */ +#define GPIO_PIN_15 ((uint16_t)0x8000U) /* Pin 15 selected */ +#define GPIO_PIN_All ((uint16_t)0xFFFFU) /* All pins selected */ + +#define GPIO_PIN_MASK (0x0000FFFFU) /* PIN mask for assert test */ +/** + * @} + */ + +/** @defgroup GPIO_mode GPIO mode + * @brief GPIO Configuration Mode + * Elements values convention: 0x00WX00YZ + * - W : EXTI trigger detection on 3 bits + * - X : EXTI mode (IT or Event) on 2 bits + * - Y : Output type (Push Pull or Open Drain) on 1 bit + * - Z : GPIO mode (Input, Output, Alternate or Analog) on 2 bits + * @{ + */ +#define GPIO_MODE_INPUT MODE_INPUT /*!< Input Floating Mode */ +#define GPIO_MODE_OUTPUT_PP (MODE_OUTPUT | OUTPUT_PP) /*!< Output Push Pull Mode */ +#define GPIO_MODE_OUTPUT_OD (MODE_OUTPUT | OUTPUT_OD) /*!< Output Open Drain Mode */ +#define GPIO_MODE_AF_PP (MODE_AF | OUTPUT_PP) /*!< Alternate Function Push Pull Mode */ +#define GPIO_MODE_AF_OD (MODE_AF | OUTPUT_OD) /*!< Alternate Function Open Drain Mode */ + +#define GPIO_MODE_ANALOG MODE_ANALOG /*!< Analog Mode */ + +#define GPIO_MODE_IT_RISING (MODE_INPUT | EXTI_IT | TRIGGER_RISING) /*!< External Interrupt Mode with Rising edge trigger detection */ +#define GPIO_MODE_IT_FALLING (MODE_INPUT | EXTI_IT | TRIGGER_FALLING) /*!< External Interrupt Mode with Falling edge trigger detection */ +#define GPIO_MODE_IT_RISING_FALLING (MODE_INPUT | EXTI_IT | TRIGGER_RISING | TRIGGER_FALLING) /*!< External Interrupt Mode with Rising/Falling edge trigger detection */ + +#define GPIO_MODE_EVT_RISING (MODE_INPUT | EXTI_EVT | TRIGGER_RISING) /*!< External Event Mode with Rising edge trigger detection */ +#define GPIO_MODE_EVT_FALLING (MODE_INPUT | EXTI_EVT | TRIGGER_FALLING) /*!< External Event Mode with Falling edge trigger detection */ +#define GPIO_MODE_EVT_RISING_FALLING (MODE_INPUT | EXTI_EVT | TRIGGER_RISING | TRIGGER_FALLING) /*!< External Event Mode with Rising/Falling edge trigger detection */ + +/** + * @} + */ + +/** @defgroup GPIO_speed GPIO speed + * @brief GPIO Output Maximum frequency + * @{ + */ +#define GPIO_SPEED_FREQ_LOW (0x00000000U) /*!< max: 400 KHz, please refer to the product datasheet */ +#define GPIO_SPEED_FREQ_MEDIUM (0x00000001U) /*!< max: 1 MHz to 2 MHz, please refer to the product datasheet */ +#define GPIO_SPEED_FREQ_HIGH (0x00000002U) /*!< max: 2 MHz to 10 MHz, please refer to the product datasheet */ +#define GPIO_SPEED_FREQ_VERY_HIGH (0x00000003U) /*!< max: 8 MHz to 50 MHz, please refer to the product datasheet */ + +/** + * @} + */ + +/** @defgroup GPIO_pull GPIO pull + * @brief GPIO Pull-Up or Pull-Down Activation + * @{ + */ +#define GPIO_NOPULL (0x00000000U) /*!< No Pull-up or Pull-down activation */ +#define GPIO_PULLUP (0x00000001U) /*!< Pull-up activation */ +#define GPIO_PULLDOWN (0x00000002U) /*!< Pull-down activation */ + +/** + * @} + */ + +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup GPIO_Private_Constants GPIO Private Constants + * @{ + */ +#define GPIO_MODE_Pos 0U +#define GPIO_MODE (0x3UL << GPIO_MODE_Pos) +#define MODE_INPUT (0x0UL << GPIO_MODE_Pos) +#define MODE_OUTPUT (0x1UL << GPIO_MODE_Pos) +#define MODE_AF (0x2UL << GPIO_MODE_Pos) +#define MODE_ANALOG (0x3UL << GPIO_MODE_Pos) +#define OUTPUT_TYPE_Pos 4U +#define OUTPUT_TYPE (0x1UL << OUTPUT_TYPE_Pos) +#define OUTPUT_PP (0x0UL << OUTPUT_TYPE_Pos) +#define OUTPUT_OD (0x1UL << OUTPUT_TYPE_Pos) +#define EXTI_MODE_Pos 16U +#define EXTI_MODE (0x3UL << EXTI_MODE_Pos) +#define EXTI_IT (0x1UL << EXTI_MODE_Pos) +#define EXTI_EVT (0x2UL << EXTI_MODE_Pos) +#define TRIGGER_MODE_Pos 20U +#define TRIGGER_MODE (0x7UL << TRIGGER_MODE_Pos) +#define TRIGGER_RISING (0x1UL << TRIGGER_MODE_Pos) +#define TRIGGER_FALLING (0x2UL << TRIGGER_MODE_Pos) +/** + * @} + */ + +/* 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_PULL(PULL) (((PULL) == GPIO_NOPULL) || ((PULL) == GPIO_PULLUP) || \ + ((PULL) == GPIO_PULLDOWN)) + +#define IS_GPIO_SPEED(SPEED) (((SPEED) == GPIO_SPEED_FREQ_LOW) || ((SPEED) == GPIO_SPEED_FREQ_MEDIUM) || \ + ((SPEED) == GPIO_SPEED_FREQ_HIGH) || ((SPEED) == GPIO_SPEED_FREQ_VERY_HIGH)) + +#define IS_GPIO_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)) + +/** + * @} + */ + +/* 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 "stm32l1xx_hal_gpio_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup GPIO_Exported_Functions GPIO Exported Functions + * @brief GPIO Exported Functions + * @{ + */ + +/** @defgroup GPIO_Exported_Functions_Group1 Initialization and Configuration functions + * @brief Initialization and Configuration functions + * @{ + */ + +/* Initialization and de-initialization functions *****************************/ +void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init); +void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin); + +/** + * @} + */ + +/** @defgroup GPIO_Exported_Functions_Group2 IO operation functions + * @brief IO operation functions + * @{ + */ + +/* IO operation functions *****************************************************/ +GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); +void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState); +void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); +HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); +void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin); +void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_HAL_GPIO_H */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h new file mode 100644 index 0000000..472cf57 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h @@ -0,0 +1,203 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_gpio_ex.h + * @author MCD Application Team + * @brief Header file of GPIO HAL Extension module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_GPIO_EX_H +#define __STM32L1xx_HAL_GPIO_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @defgroup GPIOEx GPIOEx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup GPIOEx_Exported_Constants GPIOEx Exported Constants + * @{ + */ + +/** @defgroup GPIOEx_Alternate_function_selection GPIOEx Alternate function selection + * @{ + */ + +/* AF 0 selection */ +#define GPIO_AF0_MCO ((uint8_t)0x00) /*!< MCO Alternate Function mapping */ +#define GPIO_AF0_TAMPER ((uint8_t)0x00) /*!< TAMPER Alternate Function mapping */ +#define GPIO_AF0_SWJ ((uint8_t)0x00) /*!< SWJ (SWD and JTAG) Alternate Function mapping */ +#define GPIO_AF0_TRACE ((uint8_t)0x00) /*!< TRACE Alternate Function mapping */ +#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /*!< RTC_OUT Alternate Function mapping */ + +/* AF 1 selection */ +#define GPIO_AF1_TIM2 ((uint8_t)0x01) /*!< TIM2 Alternate Function mapping */ + +/* AF 2 selection */ +#define GPIO_AF2_TIM3 ((uint8_t)0x02) /*!< TIM3 Alternate Function mapping */ +#define GPIO_AF2_TIM4 ((uint8_t)0x02) /*!< TIM4 Alternate Function mapping */ +#if defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L151xE) || defined (STM32L151xDX) || defined (STM32L152xE) || defined (STM32L152xDX) || defined (STM32L162xE) || defined (STM32L162xDX) || defined (STM32L162xC) || defined (STM32L152xC) || defined (STM32L151xC) +#define GPIO_AF2_TIM5 ((uint8_t)0x02) /*!< TIM5 Alternate Function mapping */ + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD ...STM32L151xC */ + +/* AF 3 selection */ +#define GPIO_AF3_TIM9 ((uint8_t)0x03) /*!< TIM9 Alternate Function mapping */ +#define GPIO_AF3_TIM10 ((uint8_t)0x03) /*!< TIM10 Alternate Function mapping */ +#define GPIO_AF3_TIM11 ((uint8_t)0x03) /*!< TIM11 Alternate Function mapping */ + + +/* AF 4 selection */ +#define GPIO_AF4_I2C1 ((uint8_t)0x04) /*!< I2C1 Alternate Function mapping */ +#define GPIO_AF4_I2C2 ((uint8_t)0x04) /*!< I2C2 Alternate Function mapping */ + +/* AF 5 selection */ +#define GPIO_AF5_SPI1 ((uint8_t)0x05) /*!< SPI1/I2S1 Alternate Function mapping */ +#define GPIO_AF5_SPI2 ((uint8_t)0x05) /*!< SPI2/I2S2 Alternate Function mapping */ + +/* AF 6 selection */ +#if defined (STM32L100xC) || defined (STM32L151xC) || defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L151xE) || defined (STM32L151xDX) ||\ + defined (STM32L152xC) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\ + defined (STM32L162xC) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX) + +#define GPIO_AF6_SPI3 ((uint8_t)0x06) /*!< SPI3/I2S3 Alternate Function mapping */ + +#endif /* STM32L100xC || STM32L151xC || (...) || STM32L162xD || STM32L162xE || STM32L162xDX */ + + +/* AF 7 selection */ +#define GPIO_AF7_USART1 ((uint8_t)0x07) /*!< USART1 Alternate Function mapping */ +#define GPIO_AF7_USART2 ((uint8_t)0x07) /*!< USART2 Alternate Function mapping */ +#define GPIO_AF7_USART3 ((uint8_t)0x07) /*!< USART3 Alternate Function mapping */ + +/* AF 8 selection */ +#if defined (STM32L151xD) || defined (STM32L151xE) || defined (STM32L151xDX) ||\ + defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\ + defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX) + +#define GPIO_AF8_UART4 ((uint8_t)0x08) /*!< UART4 Alternate Function mapping */ +#define GPIO_AF8_UART5 ((uint8_t)0x08) /*!< UART5 Alternate Function mapping */ + +#endif /* STM32L151xD || STM32L151xE || STM32L151xDX || STM32L152xD || STM32L 152xE || STM32L162xD || STM32L162xE || STM32L162xDX */ + + +/* AF 9 selection */ + +/* AF 10 selection */ + +/* AF 11 selection */ +#if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\ + defined (STM32L152xB) || defined (STM32L152xBA) || defined (STM32L152xC) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\ + defined (STM32L162xC) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX) + +#define GPIO_AF11_LCD ((uint8_t)0x0B) /*!< LCD Alternate Function mapping */ + +#endif /* STM32L100xB || STM32L100xBA || STM32L100xC || (...) || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */ + +/* AF 12 selection */ +#if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD) + +#define GPIO_AF12_FSMC ((uint8_t)0x0C) /*!< FSMC Alternate Function mapping */ +#define GPIO_AF12_SDIO ((uint8_t)0x0C) /*!< SDIO Alternate Function mapping */ + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ +/* AF 13 selection */ + +/* AF 14 selection */ +#define GPIO_AF14_TIM_IC1 ((uint8_t)0x0E) /*!< TIMER INPUT CAPTURE Alternate Function mapping */ +#define GPIO_AF14_TIM_IC2 ((uint8_t)0x0E) /*!< TIMER INPUT CAPTURE Alternate Function mapping */ +#define GPIO_AF14_TIM_IC3 ((uint8_t)0x0E) /*!< TIMER INPUT CAPTURE Alternate Function mapping */ +#define GPIO_AF14_TIM_IC4 ((uint8_t)0x0E) /*!< TIMER INPUT CAPTURE Alternate Function mapping */ + +/* AF 15 selection */ +#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /*!< EVENTOUT Alternate Function mapping */ + +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup GPIOEx_Private_Macros GPIOEx Private Macros + * @{ + */ + + +#define IS_GPIO_AF(AF) ((AF) <= (uint8_t)0x0F) + + +#if defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L151xE) || defined (STM32L151xDX) || defined (STM32L152xE) || defined (STM32L152xDX) || defined (STM32L162xE) || defined (STM32L162xDX) +#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\ + ((__GPIOx__) == (GPIOB))? 1U :\ + ((__GPIOx__) == (GPIOC))? 2U :\ + ((__GPIOx__) == (GPIOD))? 3U :\ + ((__GPIOx__) == (GPIOE))? 4U :\ + ((__GPIOx__) == (GPIOH))? 5U :\ + ((__GPIOx__) == (GPIOF))? 6U : 7U) +#endif + +#if defined (STM32L151xB) || defined (STM32L151xBA) || defined (STM32L151xC) || defined (STM32L152xB) || defined (STM32L152xBA) || defined (STM32L152xC) || defined (STM32L162xC) +#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\ + ((__GPIOx__) == (GPIOB))? 1U :\ + ((__GPIOx__) == (GPIOC))? 2U :\ + ((__GPIOx__) == (GPIOD))? 3U :\ + ((__GPIOx__) == (GPIOE))? 4U : 5U) +#endif + +#if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) +#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\ + ((__GPIOx__) == (GPIOB))? 1U :\ + ((__GPIOx__) == (GPIOC))? 2U :\ + ((__GPIOx__) == (GPIOD))? 3U : 5U) +#endif + + + +/** + * @} + */ + + + +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_HAL_GPIO_EX_H */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h new file mode 100644 index 0000000..7728d4b --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h @@ -0,0 +1,483 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_pwr.h + * @author MCD Application Team + * @brief Header file of PWR HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_PWR_H +#define __STM32L1xx_HAL_PWR_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_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 (0x00010000U) /*!< External interrupt line 16 Connected to the PVD EXTI Line */ + +/** + * @} + */ + + + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup PWR_Exported_Constants PWR Exported Constants + * @{ + */ + +/** @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 0x00 +#define PWR_CSR_OFFSET 0x04 +#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 POSITION_VAL(PWR_CR_LPSDSR) +#define CR_LPSDSR_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32) + (LPSDSR_BIT_NUMBER * 4))) + +/* Alias word address of DBP bit */ +#define DBP_BIT_NUMBER POSITION_VAL(PWR_CR_DBP) +#define CR_DBP_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32) + (DBP_BIT_NUMBER * 4))) + +/* Alias word address of LPRUN bit */ +#define LPRUN_BIT_NUMBER POSITION_VAL(PWR_CR_LPRUN) +#define CR_LPRUN_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32) + (LPRUN_BIT_NUMBER * 4))) + +/* Alias word address of PVDE bit */ +#define PVDE_BIT_NUMBER POSITION_VAL(PWR_CR_PVDE) +#define CR_PVDE_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32) + (PVDE_BIT_NUMBER * 4))) + +/* Alias word address of FWU bit */ +#define FWU_BIT_NUMBER POSITION_VAL(PWR_CR_FWU) +#define CR_FWU_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32) + (FWU_BIT_NUMBER * 4))) + +/* Alias word address of ULP bit */ +#define ULP_BIT_NUMBER POSITION_VAL(PWR_CR_ULP) +#define CR_ULP_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32) + (ULP_BIT_NUMBER * 4))) +/** + * @} + */ + +/** @defgroup PWR_CSR_register_alias PWR CSR Register alias address + * @{ + */ + +/* --- CSR Register ---*/ +/* Alias word address of EWUP1, EWUP2 and EWUP3 bits */ +#define CSR_EWUP_BB(VAL) ((uint32_t)(PERIPH_BB_BASE + (PWR_CSR_OFFSET_BB * 32) + (POSITION_VAL(VAL) * 4))) +/** + * @} + */ + +/** @defgroup PWR_PVD_detection_level PWR PVD detection level + * @{ + */ +#define PWR_PVDLEVEL_0 PWR_CR_PLS_LEV0 +#define PWR_PVDLEVEL_1 PWR_CR_PLS_LEV1 +#define PWR_PVDLEVEL_2 PWR_CR_PLS_LEV2 +#define PWR_PVDLEVEL_3 PWR_CR_PLS_LEV3 +#define PWR_PVDLEVEL_4 PWR_CR_PLS_LEV4 +#define PWR_PVDLEVEL_5 PWR_CR_PLS_LEV5 +#define PWR_PVDLEVEL_6 PWR_CR_PLS_LEV6 +#define PWR_PVDLEVEL_7 PWR_CR_PLS_LEV7 /* External input analog voltage + (Compare internally to VREFINT) */ + +/** + * @} + */ + +/** @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_Regulator_state_in_SLEEP_STOP_mode PWR Regulator state in SLEEP/STOP mode + * @{ + */ +#define PWR_MAINREGULATOR_ON (0x00000000U) +#define PWR_LOWPOWERREGULATOR_ON PWR_CR_LPSDSR + +/** + * @} + */ + +/** @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_Regulator_Voltage_Scale PWR Regulator Voltage Scale + * @{ + */ + +#define PWR_REGULATOR_VOLTAGE_SCALE1 PWR_CR_VOS_0 +#define PWR_REGULATOR_VOLTAGE_SCALE2 PWR_CR_VOS_1 +#define PWR_REGULATOR_VOLTAGE_SCALE3 PWR_CR_VOS + + +/** + * @} + */ + +/** @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 +#define PWR_FLAG_VREFINTRDY PWR_CSR_VREFINTRDYF +#define PWR_FLAG_VOS PWR_CSR_VOSF +#define PWR_FLAG_REGLP PWR_CSR_REGLPF + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup PWR_Exported_Macros PWR Exported Macros + * @{ + */ + +/** @brief macros configure the main internal regulator output voltage. + * @param __REGULATOR__ specifies the regulator output voltage to achieve + * a tradeoff between performance and power consumption when the device does + * not operate at the maximum frequency (refer to the datasheets for more details). + * This parameter can be one of the following values: + * @arg PWR_REGULATOR_VOLTAGE_SCALE1: Regulator voltage output Scale 1 mode, + * System frequency up to 32 MHz. + * @arg PWR_REGULATOR_VOLTAGE_SCALE2: Regulator voltage output Scale 2 mode, + * System frequency up to 16 MHz. + * @arg PWR_REGULATOR_VOLTAGE_SCALE3: Regulator voltage output Scale 3 mode, + * System frequency up to 4.2 MHz + * @retval None + */ +#define __HAL_PWR_VOLTAGESCALING_CONFIG(__REGULATOR__) (MODIFY_REG(PWR->CR, PWR_CR_VOS, (__REGULATOR__))) + +/** @brief Check PWR flag is set or not. + * @param __FLAG__ specifies the flag to check. + * This parameter can be one of the following values: + * @arg PWR_FLAG_WU: Wake Up flag. This flag indicates that a wakeup event + * was received from the WKUP pin or from the RTC alarm (Alarm B), + * RTC Tamper event, RTC TimeStamp event or RTC Wakeup. + * An additional wakeup event is detected if the WKUP pin is enabled + * (by setting the EWUP bit) when the WKUP pin level is already high. + * @arg PWR_FLAG_SB: StandBy flag. This flag indicates that the system was + * resumed from StandBy mode. + * @arg PWR_FLAG_PVDO: PVD Output. This flag is valid only if PVD is enabled + * by the HAL_PWR_EnablePVD() function. The PVD is stopped by Standby mode + * For this reason, this bit is equal to 0 after Standby or reset + * until the PVDE bit is set. + * @arg PWR_FLAG_VREFINTRDY: Internal voltage reference (VREFINT) ready flag. + * This bit indicates the state of the internal voltage reference, VREFINT. + * @arg PWR_FLAG_VOS: Voltage Scaling select flag. A delay is required for + * the internal regulator to be ready after the voltage range is changed. + * The VOSF bit indicates that the regulator has reached the voltage level + * defined with bits VOS of PWR_CR register. + * @arg PWR_FLAG_REGLP: Regulator LP flag. When the MCU exits from Low power run + * mode, this bit stays at 1 until the regulator is ready in main mode. + * A polling on this bit is recommended to wait for the regulator main mode. + * This bit is reset by hardware when the regulator is ready. + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_PWR_GET_FLAG(__FLAG__) ((PWR->CSR & (__FLAG__)) == (__FLAG__)) + +/** @brief Clear the PWR's pending flags. + * @param __FLAG__ specifies the flag to clear. + * This parameter can be one of the following values: + * @arg PWR_FLAG_WU: Wake Up flag + * @arg PWR_FLAG_SB: StandBy flag + */ +#define __HAL_PWR_CLEAR_FLAG(__FLAG__) 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. + * @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() \ + do { \ + __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE(); \ + __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE(); \ + } while(0) + +/** + * @brief Disable the PVD Extended Interrupt Rising & Falling Trigger. + * @retval None. + */ +#define __HAL_PWR_PVD_EXTI_DISABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE(); \ + __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE(); \ + } while(0) + + + +/** + * @brief 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_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) ) + +#define IS_PWR_VOLTAGE_SCALING_RANGE(RANGE) (((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE1) || \ + ((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE2) || \ + ((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE3)) + + +/** + * @} + */ + + + +/* Include PWR HAL Extension module */ +#include "stm32l1xx_hal_pwr_ex.h" + +/* Exported functions --------------------------------------------------------*/ + +/** @addtogroup PWR_Exported_Functions PWR Exported Functions + * @{ + */ + +/** @addtogroup PWR_Exported_Functions_Group1 Initialization and de-initialization functions + * @{ + */ + +/* Initialization and de-initialization functions *******************************/ +void HAL_PWR_DeInit(void); +void HAL_PWR_EnableBkUpAccess(void); +void HAL_PWR_DisableBkUpAccess(void); + +/** + * @} + */ + +/** @addtogroup PWR_Exported_Functions_Group2 Peripheral Control functions + * @{ + */ + +/* Peripheral Control functions ************************************************/ +void HAL_PWR_ConfigPVD(PWR_PVDTypeDef *sConfigPVD); +void HAL_PWR_EnablePVD(void); +void HAL_PWR_DisablePVD(void); + +/* WakeUp pins configuration functions ****************************************/ +void HAL_PWR_EnableWakeUpPin(uint32_t 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 /* __STM32L1xx_HAL_PWR_H */ diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h new file mode 100644 index 0000000..9d98744 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h @@ -0,0 +1,115 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_pwr_ex.h + * @author MCD Application Team + * @brief Header file of PWR HAL Extension module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_PWR_EX_H +#define __STM32L1xx_HAL_PWR_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @addtogroup PWREx + * @{ + */ + + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup PWREx_Exported_Constants PWREx Exported Constants + * @{ + */ + + +/** @defgroup PWREx_WakeUp_Pins PWREx Wakeup Pins + * @{ + */ + +#if defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L151xE) || defined (STM32L151xDX) || defined (STM32L152xE) || defined (STM32L152xDX) || defined (STM32L162xE) || defined (STM32L162xDX) || defined (STM32L151xB) || defined (STM32L151xBA) || defined (STM32L151xC) || defined (STM32L152xB) || defined (STM32L152xBA) || defined (STM32L152xC) || defined (STM32L162xC) + +#define PWR_WAKEUP_PIN1 PWR_CSR_EWUP1 +#define PWR_WAKEUP_PIN2 PWR_CSR_EWUP2 +#define PWR_WAKEUP_PIN3 PWR_CSR_EWUP3 +#define IS_PWR_WAKEUP_PIN(PIN) (((PIN) == PWR_WAKEUP_PIN1) || \ + ((PIN) == PWR_WAKEUP_PIN2) || \ + ((PIN) == PWR_WAKEUP_PIN3)) +#else +#define PWR_WAKEUP_PIN1 PWR_CSR_EWUP1 +#define PWR_WAKEUP_PIN2 PWR_CSR_EWUP2 +#define IS_PWR_WAKEUP_PIN(PIN) (((PIN) == PWR_WAKEUP_PIN1) || \ + ((PIN) == PWR_WAKEUP_PIN2)) +#endif + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup PWREx_Exported_Functions PWREx Exported Functions + * @{ + */ + +/** @addtogroup PWREx_Exported_Functions_Group1 + * @{ + */ + +/* Peripheral Control methods ************************************************/ +uint32_t HAL_PWREx_GetVoltageRange(void); +void HAL_PWREx_EnableFastWakeUp(void); +void HAL_PWREx_DisableFastWakeUp(void); +void HAL_PWREx_EnableUltraLowPower(void); +void HAL_PWREx_DisableUltraLowPower(void); +void HAL_PWREx_EnableLowPowerRunMode(void); +HAL_StatusTypeDef HAL_PWREx_DisableLowPowerRunMode(void); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + + +#endif /* __STM32L1xx_HAL_PWR_EX_H */ diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h new file mode 100644 index 0000000..eb13d65 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h @@ -0,0 +1,1895 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_rcc.h + * @author MCD Application Team + * @brief Header file of RCC HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_RCC_H +#define __STM32L1xx_HAL_RCC_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @addtogroup RCC + * @{ + */ + +/** @addtogroup RCC_Private_Constants + * @{ + */ + +/** @defgroup RCC_Timeout RCC Timeout + * @{ + */ + +/* Disable Backup domain write protection state change timeout */ +#define RCC_DBP_TIMEOUT_VALUE (100U) /* 100 ms */ +/* LSE state change timeout */ +#define RCC_LSE_TIMEOUT_VALUE LSE_STARTUP_TIMEOUT +#define CLOCKSWITCH_TIMEOUT_VALUE (5000U) /* 5 s */ +#define HSE_TIMEOUT_VALUE HSE_STARTUP_TIMEOUT +#define MSI_TIMEOUT_VALUE (2U) /* 2 ms (minimum Tick + 1U) */ +#define HSI_TIMEOUT_VALUE (2U) /* 2 ms (minimum Tick + 1U) */ +#define LSI_TIMEOUT_VALUE (2U) /* 2 ms (minimum Tick + 1U) */ +#define PLL_TIMEOUT_VALUE (2U) /* 2 ms (minimum Tick + 1U) */ +/** + * @} + */ + +/** @defgroup RCC_Register_Offset Register offsets + * @{ + */ +#define RCC_OFFSET (RCC_BASE - PERIPH_BASE) +#define RCC_CR_OFFSET 0x00 +#define RCC_CFGR_OFFSET 0x08 +#define RCC_CIR_OFFSET 0x0C +#define RCC_CSR_OFFSET 0x34 +/** + * @} + */ + +/** @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_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 MSION bit */ +#define RCC_MSION_BIT_NUMBER RCC_CR_MSION_Pos +#define RCC_CR_MSION_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CR_OFFSET_BB * 32U) + (RCC_MSION_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))) + +/* Alias word address of LSEON bit */ +#define RCC_LSEON_BIT_NUMBER RCC_CSR_LSEON_Pos +#define RCC_CSR_LSEON_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CSR_OFFSET_BB * 32U) + (RCC_LSEON_BIT_NUMBER * 4U))) + +/* Alias word address of LSEON bit */ +#define RCC_LSEBYP_BIT_NUMBER RCC_CSR_LSEBYP_Pos +#define RCC_CSR_LSEBYP_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CSR_OFFSET_BB * 32U) + (RCC_LSEBYP_BIT_NUMBER * 4U))) + +/* Alias word address of RTCEN bit */ +#define RCC_RTCEN_BIT_NUMBER RCC_CSR_RTCEN_Pos +#define RCC_CSR_RTCEN_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CSR_OFFSET_BB * 32U) + (RCC_RTCEN_BIT_NUMBER * 4U))) + +/* Alias word address of RTCRST bit */ +#define RCC_RTCRST_BIT_NUMBER RCC_CSR_RTCRST_Pos +#define RCC_CSR_RTCRST_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CSR_OFFSET_BB * 32U) + (RCC_RTCRST_BIT_NUMBER * 4U))) + +/** + * @} + */ + +/* CR register byte 2 (Bits[23:16]) base address */ +#define RCC_CR_BYTE2_ADDRESS ((uint32_t)(RCC_BASE + RCC_CR_OFFSET + 0x02U)) + +/* CIR register byte 1 (Bits[15:8]) base address */ +#define RCC_CIR_BYTE1_ADDRESS ((uint32_t)(RCC_BASE + RCC_CIR_OFFSET + 0x01U)) + +/* CIR register byte 2 (Bits[23:16]) base address */ +#define RCC_CIR_BYTE2_ADDRESS ((uint32_t)(RCC_BASE + RCC_CIR_OFFSET + 0x02U)) + +/* Defines used for Flags */ +#define CR_REG_INDEX ((uint8_t)1U) +#define CSR_REG_INDEX ((uint8_t)2U) + +#define RCC_FLAG_MASK ((uint8_t)0x1FU) + +/** + * @} + */ + +/** @addtogroup RCC_Private_Macros + * @{ + */ +#define IS_RCC_PLLSOURCE(__SOURCE__) (((__SOURCE__) == RCC_PLLSOURCE_HSI) || \ + ((__SOURCE__) == RCC_PLLSOURCE_HSE)) +#define IS_RCC_OSCILLATORTYPE(__OSCILLATOR__) (((__OSCILLATOR__) == RCC_OSCILLATORTYPE_NONE) || \ + (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) || \ + (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) || \ + (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) || \ + (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) || \ + (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_MSI) == RCC_OSCILLATORTYPE_MSI)) +#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_MSICALIBRATION_VALUE(__VALUE__) ((__VALUE__) <= 0xFFU) +#define IS_RCC_MSI_CLOCK_RANGE(__RANGE__) (((__RANGE__) == RCC_MSIRANGE_0) || \ + ((__RANGE__) == RCC_MSIRANGE_1) || \ + ((__RANGE__) == RCC_MSIRANGE_2) || \ + ((__RANGE__) == RCC_MSIRANGE_3) || \ + ((__RANGE__) == RCC_MSIRANGE_4) || \ + ((__RANGE__) == RCC_MSIRANGE_5) || \ + ((__RANGE__) == RCC_MSIRANGE_6)) +#define IS_RCC_LSI(__LSI__) (((__LSI__) == RCC_LSI_OFF) || ((__LSI__) == RCC_LSI_ON)) +#define IS_RCC_MSI(__MSI__) (((__MSI__) == RCC_MSI_OFF) || ((__MSI__) == RCC_MSI_ON)) + +#define IS_RCC_PLL(__PLL__) (((__PLL__) == RCC_PLL_NONE) || ((__PLL__) == RCC_PLL_OFF) || \ + ((__PLL__) == RCC_PLL_ON)) +#define IS_RCC_PLL_DIV(__DIV__) (((__DIV__) == RCC_PLL_DIV2) || \ + ((__DIV__) == RCC_PLL_DIV3) || ((__DIV__) == RCC_PLL_DIV4)) + +#define IS_RCC_PLL_MUL(__MUL__) (((__MUL__) == RCC_PLL_MUL3) || ((__MUL__) == RCC_PLL_MUL4) || \ + ((__MUL__) == RCC_PLL_MUL6) || ((__MUL__) == RCC_PLL_MUL8) || \ + ((__MUL__) == RCC_PLL_MUL12) || ((__MUL__) == RCC_PLL_MUL16) || \ + ((__MUL__) == RCC_PLL_MUL24) || ((__MUL__) == RCC_PLL_MUL32) || \ + ((__MUL__) == RCC_PLL_MUL48)) +#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_MSI) || \ + ((__SOURCE__) == RCC_SYSCLKSOURCE_HSI) || \ + ((__SOURCE__) == RCC_SYSCLKSOURCE_HSE) || \ + ((__SOURCE__) == RCC_SYSCLKSOURCE_PLLCLK)) +#define IS_RCC_SYSCLKSOURCE_STATUS(__SOURCE__) (((__SOURCE__) == RCC_SYSCLKSOURCE_STATUS_MSI) || \ + ((__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) || ((__DIV__) == RCC_MCODIV_2) || \ + ((__DIV__) == RCC_MCODIV_4) || ((__DIV__) == RCC_MCODIV_8) || \ + ((__DIV__) == RCC_MCODIV_16)) +#define IS_RCC_MCO1SOURCE(__SOURCE__) (((__SOURCE__) == RCC_MCO1SOURCE_SYSCLK) || ((__SOURCE__) == RCC_MCO1SOURCE_MSI) \ + || ((__SOURCE__) == RCC_MCO1SOURCE_HSI) || ((__SOURCE__) == RCC_MCO1SOURCE_LSE) \ + || ((__SOURCE__) == RCC_MCO1SOURCE_LSI) || ((__SOURCE__) == RCC_MCO1SOURCE_HSE) \ + || ((__SOURCE__) == RCC_MCO1SOURCE_PLLCLK) || ((__SOURCE__) == RCC_MCO1SOURCE_NOCLOCK)) +#define IS_RCC_RTCCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_RTCCLKSOURCE_NO_CLK) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_LSE) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_LSI) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV2) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV4) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV8) || \ + ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV16)) + +/** + * @} + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup RCC_Exported_Types RCC Exported Types + * @{ + */ + +/** + * @brief RCC PLL configuration structure definition + */ +typedef struct +{ + uint32_t PLLState; /*!< PLLState: The new state of the PLL. + This parameter can be a value of @ref RCC_PLL_Config */ + + uint32_t PLLSource; /*!< PLLSource: PLL entry clock source. + This parameter must be a value of @ref RCC_PLL_Clock_Source */ + + uint32_t PLLMUL; /*!< PLLMUL: Multiplication factor for PLL VCO input clock + This parameter must be a value of @ref RCC_PLL_Multiplication_Factor*/ + + uint32_t PLLDIV; /*!< PLLDIV: Division factor for PLL VCO input clock + This parameter must be a value of @ref RCC_PLL_Division_Factor*/ +} RCC_PLLInitTypeDef; + +/** + * @brief RCC Internal/External Oscillator (HSE, HSI, LSE and LSI) configuration structure definition + */ +typedef struct +{ + uint32_t OscillatorType; /*!< The oscillators to be configured. + This parameter can be a value of @ref RCC_Oscillator_Type */ + + uint32_t HSEState; /*!< The new state of the HSE. + This parameter can be a value of @ref RCC_HSE_Config */ + + uint32_t LSEState; /*!< The new state of the LSE. + This parameter can be a value of @ref RCC_LSE_Config */ + + uint32_t HSIState; /*!< The new state of the HSI. + This parameter can be a value of @ref RCC_HSI_Config */ + + uint32_t HSICalibrationValue; /*!< The HSI calibration trimming value (default is RCC_HSICALIBRATION_DEFAULT). + This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x1FU */ + + uint32_t LSIState; /*!< The new state of the LSI. + This parameter can be a value of @ref RCC_LSI_Config */ + + uint32_t MSIState; /*!< The new state of the MSI. + This parameter can be a value of @ref RCC_MSI_Config */ + + uint32_t MSICalibrationValue; /*!< The MSI calibration trimming value. (default is RCC_MSICALIBRATION_DEFAULT). + This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFFU */ + + uint32_t MSIClockRange; /*!< The MSI frequency range. + This parameter can be a value of @ref RCC_MSI_Clock_Range */ + + RCC_PLLInitTypeDef PLL; /*!< PLL structure parameters */ + +} RCC_OscInitTypeDef; + +/** + * @brief RCC System, AHB and APB busses clock configuration structure definition + */ +typedef struct +{ + uint32_t ClockType; /*!< The clock to be configured. + This parameter can be a value of @ref RCC_System_Clock_Type */ + + uint32_t SYSCLKSource; /*!< The clock source (SYSCLKS) used as system clock. + This parameter can be a value of @ref RCC_System_Clock_Source */ + + uint32_t AHBCLKDivider; /*!< The AHB clock (HCLK) divider. This clock is derived from the system clock (SYSCLK). + This parameter can be a value of @ref RCC_AHB_Clock_Source */ + + uint32_t APB1CLKDivider; /*!< The APB1 clock (PCLK1) divider. This clock is derived from the AHB clock (HCLK). + This parameter can be a value of @ref RCC_APB1_APB2_Clock_Source */ + + uint32_t APB2CLKDivider; /*!< The APB2 clock (PCLK2) divider. This clock is derived from the AHB clock (HCLK). + This parameter can be a value of @ref RCC_APB1_APB2_Clock_Source */ +} RCC_ClkInitTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup RCC_Exported_Constants RCC Exported Constants + * @{ + */ + +/** @defgroup RCC_PLL_Clock_Source PLL Clock Source + * @{ + */ + +#define RCC_PLLSOURCE_HSI RCC_CFGR_PLLSRC_HSI /*!< HSI clock selected as PLL entry clock source */ +#define RCC_PLLSOURCE_HSE RCC_CFGR_PLLSRC_HSE /*!< 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) +#define RCC_OSCILLATORTYPE_MSI (0x00000010U) +/** + * @} + */ + +/** @defgroup RCC_HSE_Config HSE Config + * @{ + */ +#define RCC_HSE_OFF (0x00000000U) /*!< HSE clock deactivation */ +#define RCC_HSE_ON (0x00000001U) /*!< HSE clock activation */ +#define RCC_HSE_BYPASS (0x00000005U) /*!< External clock source for HSE clock */ +/** + * @} + */ + +/** @defgroup RCC_LSE_Config LSE Config + * @{ + */ +#define RCC_LSE_OFF (0x00000000U) /*!< LSE clock deactivation */ +#define RCC_LSE_ON (0x00000001U) /*!< LSE clock activation */ +#define RCC_LSE_BYPASS (0x00000005U) /*!< 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_MSI_Clock_Range MSI Clock Range + * @{ + */ + +#define RCC_MSIRANGE_0 RCC_ICSCR_MSIRANGE_0 /*!< MSI = 65.536 KHz */ +#define RCC_MSIRANGE_1 RCC_ICSCR_MSIRANGE_1 /*!< MSI = 131.072 KHz */ +#define RCC_MSIRANGE_2 RCC_ICSCR_MSIRANGE_2 /*!< MSI = 262.144 KHz */ +#define RCC_MSIRANGE_3 RCC_ICSCR_MSIRANGE_3 /*!< MSI = 524.288 KHz */ +#define RCC_MSIRANGE_4 RCC_ICSCR_MSIRANGE_4 /*!< MSI = 1.048 MHz */ +#define RCC_MSIRANGE_5 RCC_ICSCR_MSIRANGE_5 /*!< MSI = 2.097 MHz */ +#define RCC_MSIRANGE_6 RCC_ICSCR_MSIRANGE_6 /*!< MSI = 4.194 MHz */ + +/** + * @} + */ + +/** @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_MSI_Config MSI Config + * @{ + */ +#define RCC_MSI_OFF (0x00000000U) +#define RCC_MSI_ON (0x00000001U) + +#define RCC_MSICALIBRATION_DEFAULT (0x00000000U) /* Default MSI calibration trimming value */ + +/** + * @} + */ + +/** @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_MSI RCC_CFGR_SW_MSI /*!< MSI selected as system clock */ +#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_MSI RCC_CFGR_SWS_MSI /*!< MSI used as system clock */ +#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_HAL_EC_RTC_HSE_DIV RTC HSE Prescaler + * @{ + */ +#define RCC_RTC_HSE_DIV_2 0x00000000U /*!< HSE is divided by 2 for RTC clock */ +#define RCC_RTC_HSE_DIV_4 RCC_CR_RTCPRE_0 /*!< HSE is divided by 4 for RTC clock */ +#define RCC_RTC_HSE_DIV_8 RCC_CR_RTCPRE_1 /*!< HSE is divided by 8 for RTC clock */ +#define RCC_RTC_HSE_DIV_16 RCC_CR_RTCPRE /*!< HSE is divided by 16 for RTC clock */ +/** + * @} + */ + +/** @defgroup RCC_RTC_LCD_Clock_Source RTC LCD Clock Source + * @{ + */ +#define RCC_RTCCLKSOURCE_NO_CLK (0x00000000U) /*!< No clock */ +#define RCC_RTCCLKSOURCE_LSE RCC_CSR_RTCSEL_LSE /*!< LSE oscillator clock used as RTC clock */ +#define RCC_RTCCLKSOURCE_LSI RCC_CSR_RTCSEL_LSI /*!< LSI oscillator clock used as RTC clock */ +#define RCC_RTCCLKSOURCE_HSE_DIVX RCC_CSR_RTCSEL_HSE /*!< HSE oscillator clock divided by X used as RTC clock */ +#define RCC_RTCCLKSOURCE_HSE_DIV2 (RCC_RTC_HSE_DIV_2 | RCC_CSR_RTCSEL_HSE) /*!< HSE oscillator clock divided by 2 used as RTC clock */ +#define RCC_RTCCLKSOURCE_HSE_DIV4 (RCC_RTC_HSE_DIV_4 | RCC_CSR_RTCSEL_HSE) /*!< HSE oscillator clock divided by 4 used as RTC clock */ +#define RCC_RTCCLKSOURCE_HSE_DIV8 (RCC_RTC_HSE_DIV_8 | RCC_CSR_RTCSEL_HSE) /*!< HSE oscillator clock divided by 8 used as RTC clock */ +#define RCC_RTCCLKSOURCE_HSE_DIV16 (RCC_RTC_HSE_DIV_16 | RCC_CSR_RTCSEL_HSE) /*!< HSE oscillator clock divided by 16 used as RTC clock */ +/** + * @} + */ + +/** @defgroup RCC_PLL_Division_Factor PLL Division Factor + * @{ + */ + +#define RCC_PLL_DIV2 RCC_CFGR_PLLDIV2 +#define RCC_PLL_DIV3 RCC_CFGR_PLLDIV3 +#define RCC_PLL_DIV4 RCC_CFGR_PLLDIV4 + +/** + * @} + */ + +/** @defgroup RCC_PLL_Multiplication_Factor PLL Multiplication Factor + * @{ + */ + +#define RCC_PLL_MUL3 RCC_CFGR_PLLMUL3 +#define RCC_PLL_MUL4 RCC_CFGR_PLLMUL4 +#define RCC_PLL_MUL6 RCC_CFGR_PLLMUL6 +#define RCC_PLL_MUL8 RCC_CFGR_PLLMUL8 +#define RCC_PLL_MUL12 RCC_CFGR_PLLMUL12 +#define RCC_PLL_MUL16 RCC_CFGR_PLLMUL16 +#define RCC_PLL_MUL24 RCC_CFGR_PLLMUL24 +#define RCC_PLL_MUL32 RCC_CFGR_PLLMUL32 +#define RCC_PLL_MUL48 RCC_CFGR_PLLMUL48 + +/** + * @} + */ + +/** @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 ((uint32_t)RCC_CFGR_MCO_DIV1) +#define RCC_MCODIV_2 ((uint32_t)RCC_CFGR_MCO_DIV2) +#define RCC_MCODIV_4 ((uint32_t)RCC_CFGR_MCO_DIV4) +#define RCC_MCODIV_8 ((uint32_t)RCC_CFGR_MCO_DIV8) +#define RCC_MCODIV_16 ((uint32_t)RCC_CFGR_MCO_DIV16) + +/** + * @} + */ + +/** @defgroup RCC_MCO1_Clock_Source MCO1 Clock Source + * @{ + */ +#define RCC_MCO1SOURCE_NOCLOCK RCC_CFGR_MCO_NOCLOCK +#define RCC_MCO1SOURCE_SYSCLK RCC_CFGR_MCO_SYSCLK +#define RCC_MCO1SOURCE_MSI RCC_CFGR_MCO_MSI +#define RCC_MCO1SOURCE_HSI RCC_CFGR_MCO_HSI +#define RCC_MCO1SOURCE_LSE RCC_CFGR_MCO_LSE +#define RCC_MCO1SOURCE_LSI RCC_CFGR_MCO_LSI +#define RCC_MCO1SOURCE_HSE RCC_CFGR_MCO_HSE +#define RCC_MCO1SOURCE_PLLCLK RCC_CFGR_MCO_PLL + +/** + * @} + */ +/** @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_MSIRDY ((uint8_t)RCC_CIR_MSIRDYF) /*!< MSI Ready Interrupt flag */ +#define RCC_IT_LSECSS ((uint8_t)RCC_CIR_LSECSSF) /*!< LSE Clock Security System 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: 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_MSIRDY ((uint8_t)((CR_REG_INDEX << 5U) | RCC_CR_MSIRDY_Pos)) /*!< MSI 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_LSECSS ((uint8_t)((CSR_REG_INDEX << 5U) | RCC_CSR_LSECSSD_Pos)) /*!< CSS on LSE failure Detection */ +#define RCC_FLAG_OBLRST ((uint8_t)((CSR_REG_INDEX << 5U) | RCC_CSR_OBLRSTF_Pos)) /*!< Options bytes loading reset flag */ +#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 */ +#define RCC_FLAG_LSERDY ((uint8_t)((CSR_REG_INDEX << 5U) | RCC_CSR_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_GPIOA_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOAEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOAEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOB_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOBEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOBEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOC_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOCEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOCEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOD_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIODEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIODEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOH_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOHEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOHEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_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_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_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_GPIOA_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOAEN)) +#define __HAL_RCC_GPIOB_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOBEN)) +#define __HAL_RCC_GPIOC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOCEN)) +#define __HAL_RCC_GPIOD_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIODEN)) +#define __HAL_RCC_GPIOH_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOHEN)) + +#define __HAL_RCC_CRC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_CRCEN)) +#define __HAL_RCC_FLITF_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_FLITFEN)) +#define __HAL_RCC_DMA1_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_DMA1EN)) + +/** + * @} + */ + +/** @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_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_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_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_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_USART2_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_USART2EN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_USART2EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_USART3_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_USART3EN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_USART3EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_I2C1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C1EN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C1EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_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_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_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_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_COMP_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_COMPEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_COMPEN);\ + 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_TIM4_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM4EN)) +#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_WWDG_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_WWDGEN)) +#define __HAL_RCC_SPI2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI2EN)) +#define __HAL_RCC_USART2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USART2EN)) +#define __HAL_RCC_USART3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USART3EN)) +#define __HAL_RCC_I2C1_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_I2C1EN)) +#define __HAL_RCC_I2C2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_I2C2EN)) +#define __HAL_RCC_USB_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USBEN)) +#define __HAL_RCC_PWR_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_PWREN)) +#define __HAL_RCC_DAC_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_DACEN)) +#define __HAL_RCC_COMP_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_COMPEN)) + +/** + * @} + */ + +/** @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_SYSCFG_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_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_ADC1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_ADC1EN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_ADC1EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_SPI1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI1EN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SPI1EN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_USART1_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_USART1EN);\ + /* Delay after an RCC peripheral clock enabling */\ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_USART1EN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_SYSCFG_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SYSCFGEN)) +#define __HAL_RCC_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)) +#define __HAL_RCC_ADC1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_ADC1EN)) +#define __HAL_RCC_SPI1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SPI1EN)) +#define __HAL_RCC_USART1_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_USART1EN)) + +/** + * @} + */ + +/** @defgroup RCC_Peripheral_Clock_Force_Release RCC Peripheral Clock Force Release + * @brief Force or release AHB peripheral reset. + * @{ + */ +#define __HAL_RCC_AHB_FORCE_RESET() (RCC->AHBRSTR = 0xFFFFFFFFU) +#define __HAL_RCC_GPIOA_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOARST)) +#define __HAL_RCC_GPIOB_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOBRST)) +#define __HAL_RCC_GPIOC_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOCRST)) +#define __HAL_RCC_GPIOD_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIODRST)) +#define __HAL_RCC_GPIOH_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOHRST)) + +#define __HAL_RCC_CRC_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_CRCRST)) +#define __HAL_RCC_FLITF_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_FLITFRST)) +#define __HAL_RCC_DMA1_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_DMA1RST)) + +#define __HAL_RCC_AHB_RELEASE_RESET() (RCC->AHBRSTR = 0x00000000U) +#define __HAL_RCC_GPIOA_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOARST)) +#define __HAL_RCC_GPIOB_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOBRST)) +#define __HAL_RCC_GPIOC_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOCRST)) +#define __HAL_RCC_GPIOD_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIODRST)) +#define __HAL_RCC_GPIOH_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOHRST)) + +#define __HAL_RCC_CRC_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_CRCRST)) +#define __HAL_RCC_FLITF_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_FLITFRST)) +#define __HAL_RCC_DMA1_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_DMA1RST)) + +/** + * @} + */ + +/** @defgroup RCC_APB1_Force_Release_Reset APB1 Force Release Reset + * @brief Force or release APB1 peripheral reset. + * @{ + */ +#define __HAL_RCC_APB1_FORCE_RESET() (RCC->APB1RSTR = 0xFFFFFFFFU) +#define __HAL_RCC_TIM2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM2RST)) +#define __HAL_RCC_TIM3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM3RST)) +#define __HAL_RCC_TIM4_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM4RST)) +#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_WWDG_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_WWDGRST)) +#define __HAL_RCC_SPI2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_SPI2RST)) +#define __HAL_RCC_USART2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USART2RST)) +#define __HAL_RCC_USART3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USART3RST)) +#define __HAL_RCC_I2C1_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C1RST)) +#define __HAL_RCC_I2C2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C2RST)) +#define __HAL_RCC_USB_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USBRST)) +#define __HAL_RCC_PWR_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_PWRRST)) +#define __HAL_RCC_DAC_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_DACRST)) +#define __HAL_RCC_COMP_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_COMPRST)) + +#define __HAL_RCC_APB1_RELEASE_RESET() (RCC->APB1RSTR = 0x00000000U) +#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_TIM4_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM4RST)) +#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_WWDG_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_WWDGRST)) +#define __HAL_RCC_SPI2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_SPI2RST)) +#define __HAL_RCC_USART2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USART2RST)) +#define __HAL_RCC_USART3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USART3RST)) +#define __HAL_RCC_I2C1_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_I2C1RST)) +#define __HAL_RCC_I2C2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_I2C2RST)) +#define __HAL_RCC_USB_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USBRST)) +#define __HAL_RCC_PWR_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_PWRRST)) +#define __HAL_RCC_DAC_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_DACRST)) +#define __HAL_RCC_COMP_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_COMPRST)) + +/** + * @} + */ + +/** @defgroup RCC_APB2_Force_Release_Reset APB2 Force Release Reset + * @brief Force or release APB1 peripheral reset. + * @{ + */ +#define __HAL_RCC_APB2_FORCE_RESET() (RCC->APB2RSTR = 0xFFFFFFFFU) +#define __HAL_RCC_SYSCFG_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SYSCFGRST)) +#define __HAL_RCC_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_ADC1_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_ADC1RST)) +#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 = 0x00000000U) +#define __HAL_RCC_SYSCFG_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SYSCFGRST)) +#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)) +#define __HAL_RCC_ADC1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_ADC1RST)) +#define __HAL_RCC_SPI1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SPI1RST)) +#define __HAL_RCC_USART1_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_USART1RST)) + +/** + * @} + */ + +/** @defgroup RCC_Peripheral_Clock_Sleep_Enable_Disable RCC Peripheral Clock Sleep Enable Disable + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ +#define __HAL_RCC_GPIOA_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOALPEN)) +#define __HAL_RCC_GPIOB_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOBLPEN)) +#define __HAL_RCC_GPIOC_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOCLPEN)) +#define __HAL_RCC_GPIOD_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIODLPEN)) +#define __HAL_RCC_GPIOH_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOHLPEN)) + +#define __HAL_RCC_CRC_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_CRCLPEN)) +#define __HAL_RCC_FLITF_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_FLITFLPEN)) +#define __HAL_RCC_DMA1_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_DMA1LPEN)) + +#define __HAL_RCC_GPIOA_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOALPEN)) +#define __HAL_RCC_GPIOB_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOBLPEN)) +#define __HAL_RCC_GPIOC_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOCLPEN)) +#define __HAL_RCC_GPIOD_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIODLPEN)) +#define __HAL_RCC_GPIOH_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOHLPEN)) + +#define __HAL_RCC_CRC_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_CRCLPEN)) +#define __HAL_RCC_FLITF_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_FLITFLPEN)) +#define __HAL_RCC_DMA1_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_DMA1LPEN)) + +/** @brief Enable or disable the APB1 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + */ +#define __HAL_RCC_TIM2_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_TIM2LPEN)) +#define __HAL_RCC_TIM3_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_TIM3LPEN)) +#define __HAL_RCC_TIM4_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_TIM4LPEN)) +#define __HAL_RCC_TIM6_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_TIM6LPEN)) +#define __HAL_RCC_TIM7_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_TIM7LPEN)) +#define __HAL_RCC_WWDG_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_WWDGLPEN)) +#define __HAL_RCC_SPI2_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_SPI2LPEN)) +#define __HAL_RCC_USART2_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_USART2LPEN)) +#define __HAL_RCC_USART3_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_USART3LPEN)) +#define __HAL_RCC_I2C1_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_I2C1LPEN)) +#define __HAL_RCC_I2C2_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_I2C2LPEN)) +#define __HAL_RCC_USB_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_USBLPEN)) +#define __HAL_RCC_PWR_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_PWRLPEN)) +#define __HAL_RCC_DAC_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_DACLPEN)) +#define __HAL_RCC_COMP_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_COMPLPEN)) + +#define __HAL_RCC_TIM2_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_TIM2LPEN)) +#define __HAL_RCC_TIM3_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_TIM3LPEN)) +#define __HAL_RCC_TIM4_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_TIM4LPEN)) +#define __HAL_RCC_TIM6_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_TIM6LPEN)) +#define __HAL_RCC_TIM7_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_TIM7LPEN)) +#define __HAL_RCC_WWDG_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_WWDGLPEN)) +#define __HAL_RCC_SPI2_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_SPI2LPEN)) +#define __HAL_RCC_USART2_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_USART2LPEN)) +#define __HAL_RCC_USART3_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_USART3LPEN)) +#define __HAL_RCC_I2C1_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_I2C1LPEN)) +#define __HAL_RCC_I2C2_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_I2C2LPEN)) +#define __HAL_RCC_USB_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_USBLPEN)) +#define __HAL_RCC_PWR_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_PWRLPEN)) +#define __HAL_RCC_DAC_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_DACLPEN)) +#define __HAL_RCC_COMP_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_COMPLPEN)) + +/** @brief Enable or disable the APB2 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + */ +#define __HAL_RCC_SYSCFG_CLK_SLEEP_ENABLE() (RCC->APB2LPENR |= (RCC_APB2LPENR_SYSCFGLPEN)) +#define __HAL_RCC_TIM9_CLK_SLEEP_ENABLE() (RCC->APB2LPENR |= (RCC_APB2LPENR_TIM9LPEN)) +#define __HAL_RCC_TIM10_CLK_SLEEP_ENABLE() (RCC->APB2LPENR |= (RCC_APB2LPENR_TIM10LPEN)) +#define __HAL_RCC_TIM11_CLK_SLEEP_ENABLE() (RCC->APB2LPENR |= (RCC_APB2LPENR_TIM11LPEN)) +#define __HAL_RCC_ADC1_CLK_SLEEP_ENABLE() (RCC->APB2LPENR |= (RCC_APB2LPENR_ADC1LPEN)) +#define __HAL_RCC_SPI1_CLK_SLEEP_ENABLE() (RCC->APB2LPENR |= (RCC_APB2LPENR_SPI1LPEN)) +#define __HAL_RCC_USART1_CLK_SLEEP_ENABLE() (RCC->APB2LPENR |= (RCC_APB2LPENR_USART1LPEN)) + +#define __HAL_RCC_SYSCFG_CLK_SLEEP_DISABLE() (RCC->APB2LPENR &= ~(RCC_APB2LPENR_SYSCFGLPEN)) +#define __HAL_RCC_TIM9_CLK_SLEEP_DISABLE() (RCC->APB2LPENR &= ~(RCC_APB2LPENR_TIM9LPEN)) +#define __HAL_RCC_TIM10_CLK_SLEEP_DISABLE() (RCC->APB2LPENR &= ~(RCC_APB2LPENR_TIM10LPEN)) +#define __HAL_RCC_TIM11_CLK_SLEEP_DISABLE() (RCC->APB2LPENR &= ~(RCC_APB2LPENR_TIM11LPEN)) +#define __HAL_RCC_ADC1_CLK_SLEEP_DISABLE() (RCC->APB2LPENR &= ~(RCC_APB2LPENR_ADC1LPEN)) +#define __HAL_RCC_SPI1_CLK_SLEEP_DISABLE() (RCC->APB2LPENR &= ~(RCC_APB2LPENR_SPI1LPEN)) +#define __HAL_RCC_USART1_CLK_SLEEP_DISABLE() (RCC->APB2LPENR &= ~(RCC_APB2LPENR_USART1LPEN)) + +/** + * @} + */ + +/** @defgroup RCC_AHB_Peripheral_Clock_Enable_Disable_Status AHB Peripheral Clock Enable Disable Status + * @brief Get the enable or disable status of the AHB peripheral clock. + * @note After reset, the peripheral clock (used for registers read/write access) + * is disabled and the application software has to enable this clock before + * using it. + * @{ + */ + +#define __HAL_RCC_GPIOA_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOAEN)) != 0U) +#define __HAL_RCC_GPIOB_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOBEN)) != 0U) +#define __HAL_RCC_GPIOC_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOCEN)) != 0U) +#define __HAL_RCC_GPIOD_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIODEN)) != 0U) +#define __HAL_RCC_GPIOH_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOHEN)) != 0U) +#define __HAL_RCC_CRC_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_CRCEN)) != 0U) +#define __HAL_RCC_FLITF_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_FLITFEN)) != 0U) +#define __HAL_RCC_DMA1_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA1EN)) != 0U) +#define __HAL_RCC_GPIOA_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOAEN)) == 0U) +#define __HAL_RCC_GPIOB_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOBEN)) == 0U) +#define __HAL_RCC_GPIOC_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOCEN)) == 0U) +#define __HAL_RCC_GPIOD_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIODEN)) == 0U) +#define __HAL_RCC_GPIOH_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOHEN)) == 0U) +#define __HAL_RCC_CRC_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_CRCEN)) == 0U) +#define __HAL_RCC_FLITF_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_FLITFEN)) == 0U) +#define __HAL_RCC_DMA1_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA1EN)) == 0U) + +/** + * @} + */ + +/** @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)) != 0U) +#define __HAL_RCC_TIM3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM3EN)) != 0U) +#define __HAL_RCC_TIM4_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM4EN)) != 0U) +#define __HAL_RCC_TIM6_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM6EN)) != 0U) +#define __HAL_RCC_TIM7_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM7EN)) != 0U) +#define __HAL_RCC_WWDG_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_WWDGEN)) != 0U) +#define __HAL_RCC_SPI2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI2EN)) != 0U) +#define __HAL_RCC_USART2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART2EN)) != 0U) +#define __HAL_RCC_USART3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART3EN)) != 0U) +#define __HAL_RCC_I2C1_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C1EN)) != 0U) +#define __HAL_RCC_I2C2_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C2EN)) != 0U) +#define __HAL_RCC_USB_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USBEN)) != 0U) +#define __HAL_RCC_PWR_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_PWREN)) != 0U) +#define __HAL_RCC_DAC_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DACEN)) != 0U) +#define __HAL_RCC_COMP_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_COMPEN)) != 0U) +#define __HAL_RCC_TIM2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM2EN)) == 0U) +#define __HAL_RCC_TIM3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM3EN)) == 0U) +#define __HAL_RCC_TIM4_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM4EN)) == 0U) +#define __HAL_RCC_TIM6_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM6EN)) == 0U) +#define __HAL_RCC_TIM7_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM7EN)) == 0U) +#define __HAL_RCC_WWDG_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_WWDGEN)) == 0U) +#define __HAL_RCC_SPI2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI2EN)) == 0U) +#define __HAL_RCC_USART2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART2EN)) == 0U) +#define __HAL_RCC_USART3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USART3EN)) == 0U) +#define __HAL_RCC_I2C1_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C1EN)) == 0U) +#define __HAL_RCC_I2C2_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_I2C2EN)) == 0U) +#define __HAL_RCC_USB_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_USBEN)) == 0U) +#define __HAL_RCC_PWR_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_PWREN)) == 0U) +#define __HAL_RCC_DAC_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_DACEN)) == 0U) +#define __HAL_RCC_COMP_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_COMPEN)) == 0U) + +/** + * @} + */ + +/** @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_SYSCFG_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SYSCFGEN)) != 0U) +#define __HAL_RCC_TIM9_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM9EN)) != 0U) +#define __HAL_RCC_TIM10_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM10EN)) != 0U) +#define __HAL_RCC_TIM11_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM11EN)) != 0U) +#define __HAL_RCC_ADC1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_ADC1EN)) != 0U) +#define __HAL_RCC_SPI1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SPI1EN)) != 0U) +#define __HAL_RCC_USART1_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_USART1EN)) != 0U) +#define __HAL_RCC_SYSCFG_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SYSCFGEN)) == 0U) +#define __HAL_RCC_TIM9_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM9EN)) == 0U) +#define __HAL_RCC_TIM10_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM10EN)) == 0U) +#define __HAL_RCC_TIM11_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_TIM11EN)) == 0U) +#define __HAL_RCC_ADC1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_ADC1EN)) == 0U) +#define __HAL_RCC_SPI1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SPI1EN)) == 0U) +#define __HAL_RCC_USART1_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_USART1EN)) == 0U) + +/** + * @} + */ + +/** @defgroup RCC_AHB_Clock_Sleep_Enable_Disable_Status AHB Peripheral Clock Sleep Enable Disable Status + * @brief Get the enable or disable status of the AHB peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#define __HAL_RCC_GPIOA_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOALPEN)) != 0U) +#define __HAL_RCC_GPIOB_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOBLPEN)) != 0U) +#define __HAL_RCC_GPIOC_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOCLPEN)) != 0U) +#define __HAL_RCC_GPIOD_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIODLPEN)) != 0U) +#define __HAL_RCC_GPIOH_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOHLPEN)) != 0U) +#define __HAL_RCC_CRC_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_CRCLPEN)) != 0U) +#define __HAL_RCC_FLITF_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_FLITFLPEN)) != 0U) +#define __HAL_RCC_DMA1_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_DMA1LPEN)) != 0U) +#define __HAL_RCC_GPIOA_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOALPEN)) == 0U) +#define __HAL_RCC_GPIOB_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOBLPEN)) == 0U) +#define __HAL_RCC_GPIOC_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOCLPEN)) == 0U) +#define __HAL_RCC_GPIOD_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIODLPEN)) == 0U) +#define __HAL_RCC_GPIOH_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOHLPEN)) == 0U) +#define __HAL_RCC_CRC_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_CRCLPEN)) == 0U) +#define __HAL_RCC_FLITF_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_FLITFLPEN)) == 0U) +#define __HAL_RCC_DMA1_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_DMA1LPEN)) == 0U) + +/** + * @} + */ + +/** @defgroup RCC_APB1_Clock_Sleep_Enable_Disable_Status APB1 Peripheral Clock Sleep Enable Disable Status + * @brief Get the enable or disable status of the APB1 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#define __HAL_RCC_TIM2_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM2LPEN)) != 0U) +#define __HAL_RCC_TIM3_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM3LPEN)) != 0U) +#define __HAL_RCC_TIM4_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM4LPEN)) != 0U) +#define __HAL_RCC_TIM6_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM6LPEN)) != 0U) +#define __HAL_RCC_TIM7_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM7LPEN)) != 0U) +#define __HAL_RCC_WWDG_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_WWDGLPEN)) != 0U) +#define __HAL_RCC_SPI2_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_SPI2LPEN)) != 0U) +#define __HAL_RCC_USART2_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_USART2LPEN)) != 0U) +#define __HAL_RCC_USART3_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_USART3LPEN)) != 0U) +#define __HAL_RCC_I2C1_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_I2C1LPEN)) != 0U) +#define __HAL_RCC_I2C2_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_I2C2LPEN)) != 0U) +#define __HAL_RCC_USB_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_USBLPEN)) != 0U) +#define __HAL_RCC_PWR_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_PWRLPEN)) != 0U) +#define __HAL_RCC_DAC_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_DACLPEN)) != 0U) +#define __HAL_RCC_COMP_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_COMPLPEN)) != 0U) +#define __HAL_RCC_TIM2_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM2LPEN)) == 0U) +#define __HAL_RCC_TIM3_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM3LPEN)) == 0U) +#define __HAL_RCC_TIM4_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM4LPEN)) == 0U) +#define __HAL_RCC_TIM6_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM6LPEN)) == 0U) +#define __HAL_RCC_TIM7_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM7LPEN)) == 0U) +#define __HAL_RCC_WWDG_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_WWDGLPEN)) == 0U) +#define __HAL_RCC_SPI2_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_SPI2LPEN)) == 0U) +#define __HAL_RCC_USART2_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_USART2LPEN)) == 0U) +#define __HAL_RCC_USART3_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_USART3LPEN)) == 0U) +#define __HAL_RCC_I2C1_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_I2C1LPEN)) == 0U) +#define __HAL_RCC_I2C2_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_I2C2LPEN)) == 0U) +#define __HAL_RCC_USB_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_USBLPEN)) == 0U) +#define __HAL_RCC_PWR_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_PWRLPEN)) == 0U) +#define __HAL_RCC_DAC_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_DACLPEN)) == 0U) +#define __HAL_RCC_COMP_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_COMPLPEN)) == 0U) + +/** + * @} + */ + +/** @defgroup RCC_APB2_Clock_Sleep_Enable_Disable_Status APB2 Peripheral Clock Sleep Enable Disable Status + * @brief Get the enable or disable status of the APB2 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#define __HAL_RCC_SYSCFG_IS_CLK_SLEEP_ENABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_SYSCFGLPEN)) != 0U) +#define __HAL_RCC_TIM9_IS_CLK_SLEEP_ENABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_TIM9LPEN)) != 0U) +#define __HAL_RCC_TIM10_IS_CLK_SLEEP_ENABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_TIM10LPEN)) != 0U) +#define __HAL_RCC_TIM11_IS_CLK_SLEEP_ENABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_TIM11LPEN)) != 0U) +#define __HAL_RCC_ADC1_IS_CLK_SLEEP_ENABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_ADC1LPEN)) != 0U) +#define __HAL_RCC_SPI1_IS_CLK_SLEEP_ENABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_SPI1LPEN)) != 0U) +#define __HAL_RCC_USART1_IS_CLK_SLEEP_ENABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_USART1LPEN)) != 0U) +#define __HAL_RCC_SYSCFG_IS_CLK_SLEEP_DISABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_SYSCFGLPEN)) == 0U) +#define __HAL_RCC_TIM9_IS_CLK_SLEEP_DISABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_TIM9LPEN)) == 0U) +#define __HAL_RCC_TIM10_IS_CLK_SLEEP_DISABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_TIM10LPEN)) == 0U) +#define __HAL_RCC_TIM11_IS_CLK_SLEEP_DISABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_TIM11LPEN)) == 0U) +#define __HAL_RCC_ADC1_IS_CLK_SLEEP_DISABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_ADC1LPEN)) == 0U) +#define __HAL_RCC_SPI1_IS_CLK_SLEEP_DISABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_SPI1LPEN)) == 0U) +#define __HAL_RCC_USART1_IS_CLK_SLEEP_DISABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_USART1LPEN)) == 0U) + +/** + * @} + */ + +/** @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->ICSCR, RCC_ICSCR_HSITRIM, (uint32_t)(_HSICALIBRATIONVALUE_) << RCC_ICSCR_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->CSR, RCC_CSR_LSEON); \ + } \ + else if ((__STATE__) == RCC_LSE_OFF) \ + { \ + CLEAR_BIT(RCC->CSR, RCC_CSR_LSEON); \ + CLEAR_BIT(RCC->CSR, RCC_CSR_LSEBYP); \ + } \ + else if ((__STATE__) == RCC_LSE_BYPASS) \ + { \ + SET_BIT(RCC->CSR, RCC_CSR_LSEBYP); \ + SET_BIT(RCC->CSR, RCC_CSR_LSEON); \ + } \ + else \ + { \ + CLEAR_BIT(RCC->CSR, RCC_CSR_LSEON); \ + CLEAR_BIT(RCC->CSR, RCC_CSR_LSEBYP); \ + } \ + }while(0U) + +/** + * @} + */ + +/** @defgroup RCC_MSI_Configuration MSI Configuration + * @{ + */ + +/** @brief Macro to enable Internal Multi Speed oscillator (MSI). + * @note After enabling the MSI, the application software should wait on MSIRDY + * flag to be set indicating that MSI clock is stable and can be used as + * system clock source. + */ +#define __HAL_RCC_MSI_ENABLE() (*(__IO uint32_t *) RCC_CR_MSION_BB = ENABLE) + +/** @brief Macro to disable the Internal Multi Speed oscillator (MSI). + * @note The MSI is stopped by hardware when entering STOP and STANDBY modes. + * It is used (enabled by hardware) as system clock source after startup + * from Reset, wakeup from STOP and STANDBY mode, or in case of failure + * of the HSE used directly or indirectly as system clock (if the Clock + * Security System CSS is enabled). + * @note MSI 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 MSI. + * @note When the MSI is stopped, MSIRDY flag goes low after 6 MSI oscillator + * clock cycles. + */ +#define __HAL_RCC_MSI_DISABLE() (*(__IO uint32_t *) RCC_CR_MSION_BB = DISABLE) + +/** @brief Macro adjusts Internal Multi Speed oscillator (MSI) calibration value. + * @note The calibration is used to compensate for the variations in voltage + * and temperature that influence the frequency of the internal MSI RC. + * @param _MSICALIBRATIONVALUE_ specifies the calibration trimming value. + * (default is RCC_MSICALIBRATION_DEFAULT). + * This parameter must be a number between 0 and 0xFF. + */ +#define __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(_MSICALIBRATIONVALUE_) \ + (MODIFY_REG(RCC->ICSCR, RCC_ICSCR_MSITRIM, (uint32_t)(_MSICALIBRATIONVALUE_) << RCC_ICSCR_MSITRIM_Pos)) + +/* @brief Macro to configures the Internal Multi Speed oscillator (MSI) clock range. + * @note After restart from Reset or wakeup from STANDBY, the MSI clock is + * around 2.097 MHz. The MSI clock does not change after wake-up from + * STOP mode. + * @note The MSI clock range can be modified on the fly. + * @param _MSIRANGEVALUE_ specifies the MSI Clock range. + * This parameter must be one of the following values: + * @arg @ref RCC_MSIRANGE_0 MSI clock is around 65.536 KHz + * @arg @ref RCC_MSIRANGE_1 MSI clock is around 131.072 KHz + * @arg @ref RCC_MSIRANGE_2 MSI clock is around 262.144 KHz + * @arg @ref RCC_MSIRANGE_3 MSI clock is around 524.288 KHz + * @arg @ref RCC_MSIRANGE_4 MSI clock is around 1.048 MHz + * @arg @ref RCC_MSIRANGE_5 MSI clock is around 2.097 MHz (default after Reset or wake-up from STANDBY) + * @arg @ref RCC_MSIRANGE_6 MSI clock is around 4.194 MHz + */ +#define __HAL_RCC_MSI_RANGE_CONFIG(_MSIRANGEVALUE_) (MODIFY_REG(RCC->ICSCR, \ + RCC_ICSCR_MSIRANGE, (uint32_t)(_MSIRANGEVALUE_))) + +/** @brief Macro to get the Internal Multi Speed oscillator (MSI) clock range in run mode + * @retval MSI clock range. + * This parameter must be one of the following values: + * @arg @ref RCC_MSIRANGE_0 MSI clock is around 65.536 KHz + * @arg @ref RCC_MSIRANGE_1 MSI clock is around 131.072 KHz + * @arg @ref RCC_MSIRANGE_2 MSI clock is around 262.144 KHz + * @arg @ref RCC_MSIRANGE_3 MSI clock is around 524.288 KHz + * @arg @ref RCC_MSIRANGE_4 MSI clock is around 1.048 MHz + * @arg @ref RCC_MSIRANGE_5 MSI clock is around 2.097 MHz (default after Reset or wake-up from STANDBY) + * @arg @ref RCC_MSIRANGE_6 MSI clock is around 4.194 MHz + */ +#define __HAL_RCC_GET_MSI_RANGE() (uint32_t)(READ_BIT(RCC->ICSCR, RCC_ICSCR_MSIRANGE)) + +/** + * @} + */ + +/** @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, multiplication and division 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 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_MUL3 PLLVCO = PLL clock entry x 3 + * @arg @ref RCC_PLL_MUL4 PLLVCO = PLL clock entry x 4 + * @arg @ref RCC_PLL_MUL6 PLLVCO = PLL clock entry x 6 + * @arg @ref RCC_PLL_MUL8 PLLVCO = PLL clock entry x 8 + * @arg @ref RCC_PLL_MUL12 PLLVCO = PLL clock entry x 12 + * @arg @ref RCC_PLL_MUL16 PLLVCO = PLL clock entry x 16 + * @arg @ref RCC_PLL_MUL24 PLLVCO = PLL clock entry x 24 + * @arg @ref RCC_PLL_MUL32 PLLVCO = PLL clock entry x 32 + * @arg @ref RCC_PLL_MUL48 PLLVCO = PLL clock entry x 48 + * @note The PLL VCO clock frequency must not exceed 96 MHz when the product is in + * Range 1, 48 MHz when the product is in Range 2 and 24 MHz when the product is + * in Range 3. + * + * @param __PLLDIV__ specifies the division factor for PLL VCO input clock + * This parameter can be one of the following values: + * @arg @ref RCC_PLL_DIV2 PLL clock output = PLLVCO / 2 + * @arg @ref RCC_PLL_DIV3 PLL clock output = PLLVCO / 3 + * @arg @ref RCC_PLL_DIV4 PLL clock output = PLLVCO / 4 + * + */ +#define __HAL_RCC_PLL_CONFIG(__RCC_PLLSOURCE__, __PLLMUL__, __PLLDIV__)\ + MODIFY_REG(RCC->CFGR, (RCC_CFGR_PLLSRC|RCC_CFGR_PLLMUL|RCC_CFGR_PLLDIV),((__RCC_PLLSOURCE__) | (__PLLMUL__) | (__PLLDIV__))) + +/** @brief Get oscillator clock selected as PLL input clock + * @retval The clock source used for PLL entry. The returned value can be one + * of the following: + * @arg @ref RCC_PLLSOURCE_HSI HSI oscillator clock selected as PLL input clock + * @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL input clock + */ +#define __HAL_RCC_GET_PLL_OSCSOURCE() ((uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLSRC))) + +/** + * @} + */ + +/** @defgroup RCC_Get_Clock_source Get Clock source + * @{ + */ + +/** + * @brief Macro to configure the system clock source. + * @param __SYSCLKSOURCE__ specifies the system clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_SYSCLKSOURCE_MSI MSI oscillator is used as system clock source. + * @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_MSI MSI used as system clock + * @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 + * @{ + */ + +/** @brief Macro to configure the MCO clock. + * @param __MCOCLKSOURCE__ specifies the MCO clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_MCO1SOURCE_NOCLOCK No clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_SYSCLK System Clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_HSI HSI oscillator clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_MSI MSI oscillator clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_HSE HSE oscillator clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_PLLCLK PLL clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSI LSI clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSE LSE clock selected as MCO clock + * @param __MCODIV__ specifies the MCO clock prescaler. + * This parameter can be one of the following values: + * @arg @ref RCC_MCODIV_1 MCO clock source is divided by 1 + * @arg @ref RCC_MCODIV_2 MCO clock source is divided by 2 + * @arg @ref RCC_MCODIV_4 MCO clock source is divided by 4 + * @arg @ref RCC_MCODIV_8 MCO clock source is divided by 8 + * @arg @ref RCC_MCODIV_16 MCO clock source is divided by 16 + */ +#define __HAL_RCC_MCO1_CONFIG(__MCOCLKSOURCE__, __MCODIV__) \ + MODIFY_REG(RCC->CFGR, (RCC_CFGR_MCOSEL | RCC_CFGR_MCOPRE), ((__MCOCLKSOURCE__) | (__MCODIV__))) + +/** + * @} + */ + + /** @defgroup RCC_RTC_Clock_Configuration RCC RTC Clock Configuration + * @{ + */ + +/** @brief Macro to configure the RTC clock (RTCCLK). + * @note As the RTC clock configuration bits are in the Backup domain and write + * access is denied to this domain after reset, you have to enable write + * access using the Power Backup Access macro before to configure + * the RTC clock source (to be done once after reset). + * @note Once the RTC clock is configured it cannot be changed unless the + * Backup domain is reset using @ref __HAL_RCC_BACKUPRESET_FORCE() macro, or by + * a Power On Reset (POR). + * @note RTC prescaler cannot be modified if HSE is enabled (HSEON = 1). + * + * @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_DIV2 HSE divided by 2 selected as RTC clock + * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV4 HSE divided by 4 selected as RTC clock + * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV8 HSE divided by 8 selected as RTC clock + * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV16 HSE divided by 16 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_CLKPRESCALER(__RTC_CLKSOURCE__) do { \ + if(((__RTC_CLKSOURCE__) & RCC_CSR_RTCSEL_HSE) == RCC_CSR_RTCSEL_HSE) \ + { \ + MODIFY_REG(RCC->CR, RCC_CR_RTCPRE, ((__RTC_CLKSOURCE__) & RCC_CR_RTCPRE)); \ + } \ + } while (0U) + +#define __HAL_RCC_RTC_CONFIG(__RTC_CLKSOURCE__) do { \ + __HAL_RCC_RTC_CLKPRESCALER(__RTC_CLKSOURCE__); \ + RCC->CSR |= ((__RTC_CLKSOURCE__) & RCC_CSR_RTCSEL); \ + } while (0U) + +/** @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_DIVX HSE divided by X selected as RTC clock (X can be retrieved thanks to @ref __HAL_RCC_GET_RTC_HSE_PRESCALER() + */ +#define __HAL_RCC_GET_RTC_SOURCE() (READ_BIT(RCC->CSR, RCC_CSR_RTCSEL)) + +/** + * @brief Get the RTC and LCD HSE clock divider (RTCCLK / LCDCLK). + * + * @retval Returned value can be one of the following values: + * @arg @ref RCC_RTC_HSE_DIV_2 HSE divided by 2 selected as RTC clock + * @arg @ref RCC_RTC_HSE_DIV_4 HSE divided by 4 selected as RTC clock + * @arg @ref RCC_RTC_HSE_DIV_8 HSE divided by 8 selected as RTC clock + * @arg @ref RCC_RTC_HSE_DIV_16 HSE divided by 16 selected as RTC clock + * + */ +#define __HAL_RCC_GET_RTC_HSE_PRESCALER() ((uint32_t)(READ_BIT(RCC->CR, RCC_CR_RTCPRE))) + +/** @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_CSR_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_CSR_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_CSR register. + * @note The BKPSRAM is not affected by this reset. + */ +#define __HAL_RCC_BACKUPRESET_FORCE() (*(__IO uint32_t *) RCC_CSR_RTCRST_BB = ENABLE) + +/** @brief Macros to release the Backup domain reset. + */ +#define __HAL_RCC_BACKUPRESET_RELEASE() (*(__IO uint32_t *) RCC_CSR_RTCRST_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 + * @arg @ref RCC_IT_MSIRDY MSI ready interrupt + * @arg @ref RCC_IT_LSECSS LSE CSS interrupt (not available for STM32L100xB || STM32L151xB || STM32L152xB devices) + */ +#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 + * @arg @ref RCC_IT_MSIRDY MSI ready interrupt + * @arg @ref RCC_IT_LSECSS LSE CSS interrupt (not available for STM32L100xB || STM32L151xB || STM32L152xB devices) + */ +#define __HAL_RCC_DISABLE_IT(__INTERRUPT__) (*(__IO uint8_t *) RCC_CIR_BYTE1_ADDRESS &= (uint8_t)(~(__INTERRUPT__))) + +/** @brief Clear the RCC's interrupt pending bits. + * @param __INTERRUPT__ specifies the interrupt pending bit to clear. + * This parameter can be any combination of the following values: + * @arg @ref RCC_IT_LSIRDY LSI ready interrupt. + * @arg @ref RCC_IT_LSERDY LSE ready interrupt. + * @arg @ref RCC_IT_HSIRDY HSI ready interrupt. + * @arg @ref RCC_IT_HSERDY HSE ready interrupt. + * @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt. + * @arg @ref RCC_IT_MSIRDY MSI ready interrupt + * @arg @ref RCC_IT_LSECSS LSE CSS interrupt (not available for STM32L100xB || STM32L151xB || STM32L152xB devices) + * @arg @ref RCC_IT_CSS Clock Security System interrupt + */ +#define __HAL_RCC_CLEAR_IT(__INTERRUPT__) (*(__IO uint8_t *) RCC_CIR_BYTE2_ADDRESS = (__INTERRUPT__)) + +/** @brief Check the RCC's interrupt has occurred or not. + * @param __INTERRUPT__ specifies the RCC interrupt source to check. + * This parameter can be one of the following values: + * @arg @ref RCC_IT_LSIRDY LSI ready interrupt. + * @arg @ref RCC_IT_LSERDY LSE ready interrupt. + * @arg @ref RCC_IT_HSIRDY HSI ready interrupt. + * @arg @ref RCC_IT_HSERDY HSE ready interrupt. + * @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt. + * @arg @ref RCC_IT_MSIRDY MSI ready interrupt + * @arg @ref RCC_IT_LSECSS LSE CSS interrupt (not available for STM32L100xB || STM32L151xB || STM32L152xB devices) + * @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() (RCC->CSR |= RCC_CSR_RMVF) + +/** @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_MSIRDY MSI oscillator clock ready. + * @arg @ref RCC_FLAG_HSERDY HSE oscillator clock ready. + * @arg @ref RCC_FLAG_PLLRDY Main PLL clock ready. + * @arg @ref RCC_FLAG_LSERDY LSE oscillator clock ready. + * @arg @ref RCC_FLAG_LSECSS CSS on LSE failure Detection (*) + * @arg @ref RCC_FLAG_LSIRDY LSI oscillator clock ready. + * @arg @ref RCC_FLAG_OBLRST Option Byte Load reset + * @arg @ref RCC_FLAG_PINRST Pin reset. + * @arg @ref RCC_FLAG_PORRST POR/PDR reset. + * @arg @ref RCC_FLAG_SFTRST Software reset. + * @arg @ref RCC_FLAG_IWDGRST Independent Watchdog reset. + * @arg @ref RCC_FLAG_WWDGRST Window Watchdog reset. + * @arg @ref RCC_FLAG_LPWRRST Low Power reset. + * @note (*) This bit is available in high and medium+ density devices only. + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_RCC_GET_FLAG(__FLAG__) (((((__FLAG__) >> 5U) == CR_REG_INDEX)? RCC->CR :RCC->CSR) & (1U << ((__FLAG__) & RCC_FLAG_MASK))) + +/** + * @} + */ + +/** + * @} + */ + +/* Include RCC HAL Extension module */ +#include "stm32l1xx_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(const RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency); + +/** + * @} + */ + +/** @addtogroup RCC_Exported_Functions_Group2 + * @{ + */ + +/* Peripheral Control functions ************************************************/ +void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv); +void HAL_RCC_EnableCSS(void); +/* CSS NMI IRQ handler */ +void HAL_RCC_NMI_IRQHandler(void); +/* User Callbacks in non blocking mode (IT mode) */ +void HAL_RCC_CSSCallback(void); +void HAL_RCC_DisableCSS(void); +uint32_t HAL_RCC_GetSysClockFreq(void); +uint32_t HAL_RCC_GetHCLKFreq(void); +uint32_t HAL_RCC_GetPCLK1Freq(void); +uint32_t HAL_RCC_GetPCLK2Freq(void); +void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct); +void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t *pFLatency); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_HAL_RCC_H */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h new file mode 100644 index 0000000..7339d6d --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h @@ -0,0 +1,1027 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_rcc_ex.h + * @author MCD Application Team + * @brief Header file of RCC HAL Extension module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_RCC_EX_H +#define __STM32L1xx_HAL_RCC_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @addtogroup RCCEx + * @{ + */ + +/** @addtogroup RCCEx_Private_Constants + * @{ + */ + +#if defined(STM32L100xBA) || defined(STM32L151xBA) || defined(STM32L152xBA)\ + || defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX)\ + || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +/* Alias word address of LSECSSON bit */ +#define LSECSSON_BITNUMBER RCC_CSR_LSECSSON_Pos +#define CSR_LSECSSON_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CSR_OFFSET_BB * 32U) + (LSECSSON_BITNUMBER * 4U))) + +#endif /* STM32L100xBA || STM32L151xBA || STM32L152xBA || STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX*/ + +/** + * @} + */ + +/** @addtogroup RCCEx_Private_Macros + * @{ + */ +#if defined(LCD) + +#define IS_RCC_PERIPHCLOCK(__CLK__) ((RCC_PERIPHCLK_RTC <= (__CLK__)) && ((__CLK__) <= RCC_PERIPHCLK_LCD)) + +#else /* Not LCD LINE */ + +#define IS_RCC_PERIPHCLOCK(__CLK__) ((__CLK__) == RCC_PERIPHCLK_RTC) + +#endif /* LCD */ + +/** + * @} + */ + +/* Exported types ------------------------------------------------------------*/ + +/** @defgroup RCCEx_Exported_Types RCCEx Exported Types + * @{ + */ + +/** + * @brief RCC extended clocks structure definition + */ +typedef struct +{ + uint32_t PeriphClockSelection; /*!< The Extended Clock to be configured. + This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */ + + uint32_t RTCClockSelection; /*!< specifies the RTC clock source. + This parameter can be a value of @ref RCC_RTC_LCD_Clock_Source */ + +#if defined(LCD) + + uint32_t LCDClockSelection; /*!< specifies the LCD clock source. + This parameter can be a value of @ref RCC_RTC_LCD_Clock_Source */ + +#endif /* LCD */ +} RCC_PeriphCLKInitTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup RCCEx_Exported_Constants RCCEx Exported Constants + * @{ + */ + +/** @defgroup RCCEx_Periph_Clock_Selection RCCEx Periph Clock Selection + * @{ + */ +#define RCC_PERIPHCLK_RTC (0x00000001U) + +#if defined(LCD) + +#define RCC_PERIPHCLK_LCD (0x00000002U) + +#endif /* LCD */ + +/** + * @} + */ + +#if defined(RCC_LSECSS_SUPPORT) +/** @defgroup RCCEx_EXTI_LINE_LSECSS RCC LSE CSS external interrupt line + * @{ + */ +#define RCC_EXTI_LINE_LSECSS (EXTI_IMR_IM19) /*!< External interrupt line 19 connected to the LSE CSS EXTI Line */ +/** + * @} + */ +#endif /* RCC_LSECSS_SUPPORT */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup RCCEx_Exported_Macros RCCEx Exported Macros + * @{ + */ + +/** @defgroup RCCEx_Peripheral_Clock_Enable_Disable RCCEx_Peripheral_Clock_Enable_Disable + * @brief Enables or disables 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(STM32L151xB) || defined(STM32L152xB) || defined(STM32L151xBA)\ + || defined(STM32L152xBA) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_GPIOE_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOEEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOEEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOE_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOEEN)) + +#endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_GPIOF_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOFEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOFEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_GPIOG_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOGEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOGEN);\ + UNUSED(tmpreg); \ + } while(0U) + +#define __HAL_RCC_GPIOF_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOFEN)) +#define __HAL_RCC_GPIOG_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOGEN)) + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#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 /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_AES_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->AHBENR, RCC_AHBENR_AESEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_AESEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_AES_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_AESEN)) + +#endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) + +#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 /* STM32L151xD || STM32L152xD || STM32L162xD */ + +#if defined(STM32L100xB) || defined(STM32L100xBA) || defined(STM32L100xC)\ + || defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD)\ + || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_LCD_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB1ENR, RCC_APB1ENR_LCDEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_LCDEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_LCD_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_LCDEN)) + +#endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +/** @brief Enables or disables 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(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC)\ + || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#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_TIM5_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM5EN)) + +#endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#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_SPI3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI3EN)) + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#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_UART4_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_UART4EN)) +#define __HAL_RCC_UART5_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_UART5EN)) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD || (...) || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE)\ + || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX)\ + || defined(STM32L162xC) || defined(STM32L152xC) || defined(STM32L151xC) + +#define __HAL_RCC_OPAMP_CLK_ENABLE() __HAL_RCC_COMP_CLK_ENABLE() /* Peripherals COMP and OPAMP share the same clock domain */ +#define __HAL_RCC_OPAMP_CLK_DISABLE() __HAL_RCC_COMP_CLK_DISABLE() /* Peripherals COMP and OPAMP share the same clock domain */ + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || (...) || STM32L162xC || STM32L152xC || STM32L151xC */ + +/** @brief Enables or disables 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(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) + +#define __HAL_RCC_SDIO_CLK_ENABLE() do { \ + __IO uint32_t tmpreg; \ + SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SDIOEN);\ + /* Delay after an RCC peripheral clock enabling */ \ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SDIOEN);\ + UNUSED(tmpreg); \ + } while(0U) +#define __HAL_RCC_SDIO_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SDIOEN)) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +/** + * @} + */ + + +/** @defgroup RCCEx_Force_Release_Peripheral_Reset RCCEx Force Release Peripheral Reset + * @brief Forces or releases AHB peripheral reset. + * @{ + */ +#if defined(STM32L151xB) || defined(STM32L152xB) || defined(STM32L151xBA)\ + || defined(STM32L152xBA) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_GPIOE_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOERST)) +#define __HAL_RCC_GPIOE_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOERST)) + +#endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_GPIOF_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOFRST)) +#define __HAL_RCC_GPIOG_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOGRST)) + +#define __HAL_RCC_GPIOF_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOFRST)) +#define __HAL_RCC_GPIOG_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOGRST)) + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_DMA2_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_DMA2RST)) +#define __HAL_RCC_DMA2_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_DMA2RST)) + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_AES_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_AESRST)) +#define __HAL_RCC_AES_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_AESRST)) + +#endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) + +#define __HAL_RCC_FSMC_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_FSMCRST)) +#define __HAL_RCC_FSMC_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_FSMCRST)) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +#if defined(STM32L100xB) || defined(STM32L100xBA) || defined(STM32L100xC)\ + || defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD)\ + || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_LCD_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_LCDRST)) +#define __HAL_RCC_LCD_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_LCDRST)) + +#endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +/** @brief Forces or releases APB1 peripheral reset. + */ +#if defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC)\ + || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_TIM5_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM5RST)) +#define __HAL_RCC_TIM5_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM5RST)) + +#endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_SPI3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_SPI3RST)) +#define __HAL_RCC_SPI3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_SPI3RST)) + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#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_UART4_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_UART4RST)) +#define __HAL_RCC_UART5_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_UART5RST)) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX)\ + || defined(STM32L162xC) || defined(STM32L152xC) || defined(STM32L151xC) + +#define __HAL_RCC_OPAMP_FORCE_RESET() __HAL_RCC_COMP_FORCE_RESET() /* Peripherals COMP and OPAMP share the same clock domain */ +#define __HAL_RCC_OPAMP_RELEASE_RESET() __HAL_RCC_COMP_RELEASE_RESET() /* Peripherals COMP and OPAMP share the same clock domain */ + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xC || STM32L152xC || STM32L151xC */ + +/** @brief Forces or releases APB2 peripheral reset. + */ +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) + +#define __HAL_RCC_SDIO_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SDIORST)) +#define __HAL_RCC_SDIO_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SDIORST)) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +/** + * @} + */ + +/** @defgroup RCCEx_Peripheral_Clock_Sleep_Enable_Disable RCCEx Peripheral Clock Sleep Enable Disable + * @brief Enables or disables the AHB1 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ +#if defined(STM32L151xB) || defined(STM32L152xB) || defined(STM32L151xBA)\ + || defined(STM32L152xBA) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_GPIOE_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOELPEN)) +#define __HAL_RCC_GPIOE_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOELPEN)) + +#endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_GPIOF_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOFLPEN)) +#define __HAL_RCC_GPIOG_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOGLPEN)) + +#define __HAL_RCC_GPIOF_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOFLPEN)) +#define __HAL_RCC_GPIOG_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOGLPEN)) + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_DMA2_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_DMA2LPEN)) +#define __HAL_RCC_DMA2_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_DMA2LPEN)) + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_AES_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_AESLPEN)) +#define __HAL_RCC_AES_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_AESLPEN)) + +#endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) + +#define __HAL_RCC_FSMC_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_FSMCLPEN)) +#define __HAL_RCC_FSMC_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_FSMCLPEN)) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +#if defined(STM32L100xB) || defined(STM32L100xBA) || defined(STM32L100xC)\ + || defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD)\ + || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_LCD_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_LCDLPEN)) +#define __HAL_RCC_LCD_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_LCDLPEN)) + +#endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +/** @brief Enables or disables the APB1 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + */ +#if defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC)\ + || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_TIM5_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_TIM5LPEN)) +#define __HAL_RCC_TIM5_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_TIM5LPEN)) + +#endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_SPI3_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_SPI3LPEN)) +#define __HAL_RCC_SPI3_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_SPI3LPEN)) + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_UART4_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_UART4LPEN)) +#define __HAL_RCC_UART5_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_UART5LPEN)) + +#define __HAL_RCC_UART4_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_UART4LPEN)) +#define __HAL_RCC_UART5_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_UART5LPEN)) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX)\ + || defined(STM32L162xC) || defined(STM32L152xC) || defined(STM32L151xC) + +#define __HAL_RCC_OPAMP_CLK_SLEEP_ENABLE() __HAL_RCC_COMP_CLK_SLEEP_ENABLE() /* Peripherals COMP and OPAMP share the same clock domain */ +#define __HAL_RCC_OPAMP_CLK_SLEEP_DISABLE() __HAL_RCC_COMP_CLK_SLEEP_DISABLE() /* Peripherals COMP and OPAMP share the same clock domain */ + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xC || STM32L152xC || STM32L151xC */ + +/** @brief Enables or disables the APB2 peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + */ +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) + +#define __HAL_RCC_SDIO_CLK_SLEEP_ENABLE() (RCC->APB2LPENR |= (RCC_APB2LPENR_SDIOLPEN)) +#define __HAL_RCC_SDIO_CLK_SLEEP_DISABLE() (RCC->APB2LPENR &= ~(RCC_APB2LPENR_SDIOLPEN)) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +/** + * @} + */ + +/** @defgroup RCCEx_Peripheral_Clock_Enable_Disable_Status Peripheral Clock Enable Disable Status + * @brief Get the enable or disable status of 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(STM32L151xB) || defined(STM32L152xB) || defined(STM32L151xBA)\ + || defined(STM32L152xBA) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_GPIOE_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOEEN)) != 0U) +#define __HAL_RCC_GPIOE_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOEEN)) == 0U) + +#endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_GPIOF_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOFEN)) != 0U) +#define __HAL_RCC_GPIOG_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOGEN)) != 0U) +#define __HAL_RCC_GPIOF_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOFEN)) == 0U) +#define __HAL_RCC_GPIOG_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOGEN)) == 0U) + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_DMA2_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA2EN)) != 0U) +#define __HAL_RCC_DMA2_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA2EN)) == 0U) + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_AES_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_AESEN)) != 0U) +#define __HAL_RCC_AES_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_AESEN)) == 0U) + +#endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) + +#define __HAL_RCC_FSMC_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_FSMCEN)) != 0U) +#define __HAL_RCC_FSMC_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_FSMCEN)) == 0U) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +#if defined(STM32L100xB) || defined(STM32L100xBA) || defined(STM32L100xC)\ + || defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD)\ + || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_LCD_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_LCDEN)) != 0U) +#define __HAL_RCC_LCD_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_LCDEN)) == 0U) + +#endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC)\ + || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_TIM5_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM5EN)) != 0U) +#define __HAL_RCC_TIM5_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM5EN)) == 0U) + +#endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_SPI3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) != 0U) +#define __HAL_RCC_SPI3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) == 0U) + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_UART4_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART4EN)) != 0U) +#define __HAL_RCC_UART5_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART5EN)) != 0U) +#define __HAL_RCC_UART4_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART4EN)) == 0U) +#define __HAL_RCC_UART5_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART5EN)) == 0U) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX)\ + || defined(STM32L162xC) || defined(STM32L152xC) || defined(STM32L151xC) + +#define __HAL_RCC_OPAMP_IS_CLK_ENABLED() __HAL_RCC_COMP_IS_CLK_ENABLED() +#define __HAL_RCC_OPAMP_IS_CLK_DISABLED() __HAL_RCC_COMP_IS_CLK_DISABLED() + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xC || STM32L152xC || STM32L151xC */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) + +#define __HAL_RCC_SDIO_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SDIOEN)) != 0U) +#define __HAL_RCC_SDIO_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SDIOEN)) == 0U) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +/** + * @} + */ + +/** @defgroup RCCEx_Peripheral_Clock_Sleep_Enable_Disable_Status Peripheral Clock Sleep Enable Disable Status + * @brief Get the enable or disable status of peripheral clock during Low Power (Sleep) mode. + * @note Peripheral clock gating in SLEEP mode can be used to further reduce + * power consumption. + * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. + * @note By default, all peripheral clocks are enabled during SLEEP mode. + * @{ + */ + +#if defined(STM32L151xB) || defined(STM32L152xB) || defined(STM32L151xBA)\ + || defined(STM32L152xBA) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_GPIOE_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOELPEN)) != 0U) +#define __HAL_RCC_GPIOE_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOELPEN)) == 0U) + +#endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_GPIOF_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOFLPEN)) != 0U) +#define __HAL_RCC_GPIOG_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOGLPEN)) != 0U) +#define __HAL_RCC_GPIOF_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOFLPEN)) == 0U) +#define __HAL_RCC_GPIOG_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOGLPEN)) == 0U) + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_DMA2_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_DMA2LPEN)) != 0U) +#define __HAL_RCC_DMA2_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_DMA2LPEN)) == 0U) + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_AES_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_AESLPEN)) != 0U) +#define __HAL_RCC_AES_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_AESLPEN)) == 0U) + +#endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) + +#define __HAL_RCC_FSMC_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_FSMCLPEN)) != 0U) +#define __HAL_RCC_FSMC_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_FSMCLPEN)) == 0U) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +#if defined(STM32L100xB) || defined(STM32L100xBA) || defined(STM32L100xC)\ + || defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD)\ + || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_LCD_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_LCDLPEN)) != 0U) +#define __HAL_RCC_LCD_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_LCDLPEN)) == 0U) + +#endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC)\ + || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_TIM5_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM5LPEN)) != 0U) +#define __HAL_RCC_TIM5_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM5LPEN)) == 0U) + +#endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ + || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ + || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ + || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ + || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_SPI3_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_SPI3LPEN)) != 0U) +#define __HAL_RCC_SPI3_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_SPI3LPEN)) == 0U) + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) + +#define __HAL_RCC_UART4_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_UART4LPEN)) != 0U) +#define __HAL_RCC_UART5_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_UART5LPEN)) != 0U) +#define __HAL_RCC_UART4_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_UART4LPEN)) == 0U) +#define __HAL_RCC_UART5_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_UART5LPEN)) == 0U) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ + +#if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ + || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ + || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX)\ + || defined(STM32L162xC) || defined(STM32L152xC) || defined(STM32L151xC) + +#define __HAL_RCC_OPAMP_IS_CLK_SLEEP_ENABLED() __HAL_RCC_COMP_IS_CLK_SLEEP_ENABLED() +#define __HAL_RCC_OPAMP_IS_CLK_SLEEP_DISABLED() __HAL_RCC_COMP_IS_CLK_SLEEP_DISABLED() + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xC || STM32L152xC || STM32L151xC */ + +#if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) + +#define __HAL_RCC_SDIO_IS_CLK_SLEEP_ENABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_SDIOLPEN)) != 0U) +#define __HAL_RCC_SDIO_IS_CLK_SLEEP_DISABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_SDIOLPEN)) == 0U) + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +/** + * @} + */ + + +#if defined(RCC_LSECSS_SUPPORT) + +/** + * @brief Enable interrupt on RCC LSE CSS EXTI Line 19. + * @retval None + */ +#define __HAL_RCC_LSECSS_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, RCC_EXTI_LINE_LSECSS) + +/** + * @brief Disable interrupt on RCC LSE CSS EXTI Line 19. + * @retval None + */ +#define __HAL_RCC_LSECSS_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, RCC_EXTI_LINE_LSECSS) + +/** + * @brief Enable event on RCC LSE CSS EXTI Line 19. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, RCC_EXTI_LINE_LSECSS) + +/** + * @brief Disable event on RCC LSE CSS EXTI Line 19. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, RCC_EXTI_LINE_LSECSS) + + +/** + * @brief RCC LSE CSS EXTI line configuration: set falling edge trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, RCC_EXTI_LINE_LSECSS) + + +/** + * @brief Disable the RCC LSE CSS Extended Interrupt Falling Trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR, RCC_EXTI_LINE_LSECSS) + + +/** + * @brief RCC LSE CSS EXTI line configuration: set rising edge trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, RCC_EXTI_LINE_LSECSS) + +/** + * @brief Disable the RCC LSE CSS Extended Interrupt Rising Trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, RCC_EXTI_LINE_LSECSS) + +/** + * @brief RCC LSE CSS EXTI line configuration: set rising & falling edge trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_EDGE(); \ + __HAL_RCC_LSECSS_EXTI_ENABLE_FALLING_EDGE(); \ + } while(0U) + +/** + * @brief Disable the RCC LSE CSS Extended Interrupt Rising & Falling Trigger. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_DISABLE_RISING_FALLING_EDGE() \ + do { \ + __HAL_RCC_LSECSS_EXTI_DISABLE_RISING_EDGE(); \ + __HAL_RCC_LSECSS_EXTI_DISABLE_FALLING_EDGE(); \ + } while(0U) + +/** + * @brief Check whether the specified RCC LSE CSS EXTI interrupt flag is set or not. + * @retval EXTI RCC LSE CSS Line Status. + */ +#define __HAL_RCC_LSECSS_EXTI_GET_FLAG() (EXTI->PR & (RCC_EXTI_LINE_LSECSS)) + +/** + * @brief Clear the RCC LSE CSS EXTI flag. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_CLEAR_FLAG() (EXTI->PR = (RCC_EXTI_LINE_LSECSS)) + +/** + * @brief Generate a Software interrupt on selected EXTI line. + * @retval None. + */ +#define __HAL_RCC_LSECSS_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, RCC_EXTI_LINE_LSECSS) + +#endif /* RCC_LSECSS_SUPPORT */ + +#if defined(LCD) + +/** @defgroup RCCEx_LCD_Configuration LCD Configuration + * @brief Macros to configure clock source of LCD peripherals. + * @{ + */ + +/** @brief Macro to configures LCD clock (LCDCLK). + * @note LCD and RTC use the same configuration + * @note LCD can however be used in the Stop low power mode if the LSE or LSI is used as the + * LCD clock source. + * + * @param __LCD_CLKSOURCE__ specifies the LCD clock source. + * This parameter can be one of the following values: + * @arg @ref RCC_RTCCLKSOURCE_LSE LSE selected as LCD clock + * @arg @ref RCC_RTCCLKSOURCE_LSI LSI selected as LCD clock + * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV2 HSE divided by 2 selected as LCD clock + * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV4 HSE divided by 4 selected as LCD clock + * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV8 HSE divided by 8 selected as LCD clock + * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV16 HSE divided by 16 selected as LCD clock + */ +#define __HAL_RCC_LCD_CONFIG(__LCD_CLKSOURCE__) __HAL_RCC_RTC_CONFIG(__LCD_CLKSOURCE__) + +/** @brief Macro to get the LCD clock source. + */ +#define __HAL_RCC_GET_LCD_SOURCE() __HAL_RCC_GET_RTC_SOURCE() + +/** @brief Macro to get the LCD clock pre-scaler. + */ +#define __HAL_RCC_GET_LCD_HSE_PRESCALER() __HAL_RCC_GET_RTC_HSE_PRESCALER() + +/** + * @} + */ + +#endif /* LCD */ + + +/** + * @} + */ + +/* 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(RCC_LSECSS_SUPPORT) + +void HAL_RCCEx_EnableLSECSS(void); +void HAL_RCCEx_DisableLSECSS(void); +void HAL_RCCEx_EnableLSECSS_IT(void); +void HAL_RCCEx_LSECSS_IRQHandler(void); +void HAL_RCCEx_LSECSS_Callback(void); + +#endif /* RCC_LSECSS_SUPPORT */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_HAL_RCC_EX_H */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h new file mode 100644 index 0000000..7b01759 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h @@ -0,0 +1,749 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_spi.h + * @author MCD Application Team + * @brief Header file of SPI HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32L1xx_HAL_SPI_H +#define STM32L1xx_HAL_SPI_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @addtogroup SPI + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup SPI_Exported_Types SPI Exported Types + * @{ + */ + +/** + * @brief SPI Configuration Structure definition + */ +typedef struct +{ + uint32_t Mode; /*!< Specifies the SPI operating mode. + This parameter can be a value of @ref SPI_Mode */ + + uint32_t Direction; /*!< Specifies the SPI bidirectional mode state. + This parameter can be a value of @ref SPI_Direction */ + + uint32_t DataSize; /*!< Specifies the SPI data size. + This parameter can be a value of @ref SPI_Data_Size */ + + uint32_t CLKPolarity; /*!< Specifies the serial clock steady state. + This parameter can be a value of @ref SPI_Clock_Polarity */ + + uint32_t CLKPhase; /*!< Specifies the clock active edge for the bit capture. + This parameter can be a value of @ref SPI_Clock_Phase */ + + uint32_t NSS; /*!< Specifies whether the NSS signal is managed by + hardware (NSS pin) or by software using the SSI bit. + This parameter can be a value of @ref SPI_Slave_Select_management */ + + uint32_t BaudRatePrescaler; /*!< Specifies the Baud Rate prescaler value which will be + used to configure the transmit and receive SCK clock. + This parameter can be a value of @ref SPI_BaudRate_Prescaler + @note The communication clock is derived from the master + clock. The slave clock does not need to be set. */ + + uint32_t FirstBit; /*!< Specifies whether data transfers start from MSB or LSB bit. + This parameter can be a value of @ref SPI_MSB_LSB_transmission */ + + uint32_t TIMode; /*!< Specifies if the TI mode is enabled or not. + This parameter can be a value of @ref SPI_TI_mode */ + + uint32_t CRCCalculation; /*!< Specifies if the CRC calculation is enabled or not. + This parameter can be a value of @ref SPI_CRC_Calculation */ + + uint32_t CRCPolynomial; /*!< Specifies the polynomial used for the CRC calculation. + This parameter must be an odd number between Min_Data = 1 and Max_Data = 65535 */ +} SPI_InitTypeDef; + +/** + * @brief HAL SPI State structure definition + */ +typedef enum +{ + HAL_SPI_STATE_RESET = 0x00U, /*!< Peripheral not Initialized */ + HAL_SPI_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */ + HAL_SPI_STATE_BUSY = 0x02U, /*!< an internal process is ongoing */ + HAL_SPI_STATE_BUSY_TX = 0x03U, /*!< Data Transmission process is ongoing */ + HAL_SPI_STATE_BUSY_RX = 0x04U, /*!< Data Reception process is ongoing */ + HAL_SPI_STATE_BUSY_TX_RX = 0x05U, /*!< Data Transmission and Reception process is ongoing */ + HAL_SPI_STATE_ERROR = 0x06U, /*!< SPI error state */ + HAL_SPI_STATE_ABORT = 0x07U /*!< SPI abort is ongoing */ +} HAL_SPI_StateTypeDef; + +/** + * @brief SPI handle Structure definition + */ +typedef struct __SPI_HandleTypeDef +{ + SPI_TypeDef *Instance; /*!< SPI registers base address */ + + SPI_InitTypeDef Init; /*!< SPI communication parameters */ + + const uint8_t *pTxBuffPtr; /*!< Pointer to SPI Tx transfer Buffer */ + + uint16_t TxXferSize; /*!< SPI Tx Transfer size */ + + __IO uint16_t TxXferCount; /*!< SPI Tx Transfer Counter */ + + uint8_t *pRxBuffPtr; /*!< Pointer to SPI Rx transfer Buffer */ + + uint16_t RxXferSize; /*!< SPI Rx Transfer size */ + + __IO uint16_t RxXferCount; /*!< SPI Rx Transfer Counter */ + + void (*RxISR)(struct __SPI_HandleTypeDef *hspi); /*!< function pointer on Rx ISR */ + + void (*TxISR)(struct __SPI_HandleTypeDef *hspi); /*!< function pointer on Tx ISR */ + + DMA_HandleTypeDef *hdmatx; /*!< SPI Tx DMA Handle parameters */ + + DMA_HandleTypeDef *hdmarx; /*!< SPI Rx DMA Handle parameters */ + + HAL_LockTypeDef Lock; /*!< Locking object */ + + __IO HAL_SPI_StateTypeDef State; /*!< SPI communication state */ + + __IO uint32_t ErrorCode; /*!< SPI Error code */ + +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + void (* TxCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Tx Completed callback */ + void (* RxCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Rx Completed callback */ + void (* TxRxCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI TxRx Completed callback */ + void (* TxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Tx Half Completed callback */ + void (* RxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Rx Half Completed callback */ + void (* TxRxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI TxRx Half Completed callback */ + void (* ErrorCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Error callback */ + void (* AbortCpltCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Abort callback */ + void (* MspInitCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Msp Init callback */ + void (* MspDeInitCallback)(struct __SPI_HandleTypeDef *hspi); /*!< SPI Msp DeInit callback */ + +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +} SPI_HandleTypeDef; + +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) +/** + * @brief HAL SPI Callback ID enumeration definition + */ +typedef enum +{ + HAL_SPI_TX_COMPLETE_CB_ID = 0x00U, /*!< SPI Tx Completed callback ID */ + HAL_SPI_RX_COMPLETE_CB_ID = 0x01U, /*!< SPI Rx Completed callback ID */ + HAL_SPI_TX_RX_COMPLETE_CB_ID = 0x02U, /*!< SPI TxRx Completed callback ID */ + HAL_SPI_TX_HALF_COMPLETE_CB_ID = 0x03U, /*!< SPI Tx Half Completed callback ID */ + HAL_SPI_RX_HALF_COMPLETE_CB_ID = 0x04U, /*!< SPI Rx Half Completed callback ID */ + HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID = 0x05U, /*!< SPI TxRx Half Completed callback ID */ + HAL_SPI_ERROR_CB_ID = 0x06U, /*!< SPI Error callback ID */ + HAL_SPI_ABORT_CB_ID = 0x07U, /*!< SPI Abort callback ID */ + HAL_SPI_MSPINIT_CB_ID = 0x08U, /*!< SPI Msp Init callback ID */ + HAL_SPI_MSPDEINIT_CB_ID = 0x09U /*!< SPI Msp DeInit callback ID */ + +} HAL_SPI_CallbackIDTypeDef; + +/** + * @brief HAL SPI Callback pointer definition + */ +typedef void (*pSPI_CallbackTypeDef)(SPI_HandleTypeDef *hspi); /*!< pointer to an SPI callback function */ + +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup SPI_Exported_Constants SPI Exported Constants + * @{ + */ + +/** @defgroup SPI_Error_Code SPI Error Code + * @{ + */ +#define HAL_SPI_ERROR_NONE (0x00000000U) /*!< No error */ +#define HAL_SPI_ERROR_MODF (0x00000001U) /*!< MODF error */ +#define HAL_SPI_ERROR_CRC (0x00000002U) /*!< CRC error */ +#define HAL_SPI_ERROR_OVR (0x00000004U) /*!< OVR error */ +#define HAL_SPI_ERROR_FRE (0x00000008U) /*!< FRE error */ +#define HAL_SPI_ERROR_DMA (0x00000010U) /*!< DMA transfer error */ +#define HAL_SPI_ERROR_FLAG (0x00000020U) /*!< Error on RXNE/TXE/BSY Flag */ +#define HAL_SPI_ERROR_ABORT (0x00000040U) /*!< Error during SPI Abort procedure */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) +#define HAL_SPI_ERROR_INVALID_CALLBACK (0x00000080U) /*!< Invalid Callback error */ +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +/** + * @} + */ + +/** @defgroup SPI_Mode SPI Mode + * @{ + */ +#define SPI_MODE_SLAVE (0x00000000U) +#define SPI_MODE_MASTER (SPI_CR1_MSTR | SPI_CR1_SSI) +/** + * @} + */ + +/** @defgroup SPI_Direction SPI Direction Mode + * @{ + */ +#define SPI_DIRECTION_2LINES (0x00000000U) +#define SPI_DIRECTION_2LINES_RXONLY SPI_CR1_RXONLY +#define SPI_DIRECTION_1LINE SPI_CR1_BIDIMODE +/** + * @} + */ + +/** @defgroup SPI_Data_Size SPI Data Size + * @{ + */ +#define SPI_DATASIZE_8BIT (0x00000000U) +#define SPI_DATASIZE_16BIT SPI_CR1_DFF +/** + * @} + */ + +/** @defgroup SPI_Clock_Polarity SPI Clock Polarity + * @{ + */ +#define SPI_POLARITY_LOW (0x00000000U) +#define SPI_POLARITY_HIGH SPI_CR1_CPOL +/** + * @} + */ + +/** @defgroup SPI_Clock_Phase SPI Clock Phase + * @{ + */ +#define SPI_PHASE_1EDGE (0x00000000U) +#define SPI_PHASE_2EDGE SPI_CR1_CPHA +/** + * @} + */ + +/** @defgroup SPI_Slave_Select_management SPI Slave Select Management + * @{ + */ +#define SPI_NSS_SOFT SPI_CR1_SSM +#define SPI_NSS_HARD_INPUT (0x00000000U) +#define SPI_NSS_HARD_OUTPUT (SPI_CR2_SSOE << 16U) +/** + * @} + */ + +/** @defgroup SPI_BaudRate_Prescaler SPI BaudRate Prescaler + * @{ + */ +#define SPI_BAUDRATEPRESCALER_2 (0x00000000U) +#define SPI_BAUDRATEPRESCALER_4 (SPI_CR1_BR_0) +#define SPI_BAUDRATEPRESCALER_8 (SPI_CR1_BR_1) +#define SPI_BAUDRATEPRESCALER_16 (SPI_CR1_BR_1 | SPI_CR1_BR_0) +#define SPI_BAUDRATEPRESCALER_32 (SPI_CR1_BR_2) +#define SPI_BAUDRATEPRESCALER_64 (SPI_CR1_BR_2 | SPI_CR1_BR_0) +#define SPI_BAUDRATEPRESCALER_128 (SPI_CR1_BR_2 | SPI_CR1_BR_1) +#define SPI_BAUDRATEPRESCALER_256 (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0) +/** + * @} + */ + +/** @defgroup SPI_MSB_LSB_transmission SPI MSB LSB Transmission + * @{ + */ +#define SPI_FIRSTBIT_MSB (0x00000000U) +#define SPI_FIRSTBIT_LSB SPI_CR1_LSBFIRST +/** + * @} + */ + +/** @defgroup SPI_TI_mode SPI TI Mode + * @brief SPI TI Mode not supported for Category 1 and 2 + * @{ + */ +#define SPI_TIMODE_DISABLE (0x00000000U) +#if defined(SPI_CR2_FRF) +#define SPI_TIMODE_ENABLE SPI_CR2_FRF +#endif /* SPI_CR2_FRF */ +/** + * @} + */ + +/** @defgroup SPI_CRC_Calculation SPI CRC Calculation + * @{ + */ +#define SPI_CRCCALCULATION_DISABLE (0x00000000U) +#define SPI_CRCCALCULATION_ENABLE SPI_CR1_CRCEN +/** + * @} + */ + +/** @defgroup SPI_Interrupt_definition SPI Interrupt Definition + * @{ + */ +#define SPI_IT_TXE SPI_CR2_TXEIE +#define SPI_IT_RXNE SPI_CR2_RXNEIE +#define SPI_IT_ERR SPI_CR2_ERRIE +/** + * @} + */ + +/** @defgroup SPI_Flags_definition SPI Flags Definition + * @{ + */ +#define SPI_FLAG_RXNE SPI_SR_RXNE /* SPI status flag: Rx buffer not empty flag */ +#define SPI_FLAG_TXE SPI_SR_TXE /* SPI status flag: Tx buffer empty flag */ +#define SPI_FLAG_BSY SPI_SR_BSY /* SPI status flag: Busy flag */ +#define SPI_FLAG_CRCERR SPI_SR_CRCERR /* SPI Error flag: CRC error flag */ +#define SPI_FLAG_MODF SPI_SR_MODF /* SPI Error flag: Mode fault flag */ +#define SPI_FLAG_OVR SPI_SR_OVR /* SPI Error flag: Overrun flag */ +#if defined(SPI_CR2_FRF) +#define SPI_FLAG_FRE SPI_SR_FRE /* SPI Error flag: TI mode frame format error flag */ +#define SPI_FLAG_MASK (SPI_SR_RXNE | SPI_SR_TXE | SPI_SR_BSY | SPI_SR_CRCERR\ + | SPI_SR_MODF | SPI_SR_OVR | SPI_SR_FRE) +#else +#define SPI_FLAG_MASK (SPI_SR_RXNE | SPI_SR_TXE | SPI_SR_BSY\ + | SPI_SR_CRCERR | SPI_SR_MODF | SPI_SR_OVR) +#endif /* SPI_CR2_FRF */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup SPI_Exported_Macros SPI Exported Macros + * @{ + */ + +/** @brief Reset SPI handle state. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @retval None + */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) +#define __HAL_SPI_RESET_HANDLE_STATE(__HANDLE__) \ + do{ \ + (__HANDLE__)->State = HAL_SPI_STATE_RESET; \ + (__HANDLE__)->MspInitCallback = NULL; \ + (__HANDLE__)->MspDeInitCallback = NULL; \ + } while(0) +#else +#define __HAL_SPI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SPI_STATE_RESET) +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + +/** @brief Enable the specified SPI interrupts. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @param __INTERRUPT__ specifies the interrupt source to enable. + * This parameter can be one of the following values: + * @arg SPI_IT_TXE: Tx buffer empty interrupt enable + * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable + * @arg SPI_IT_ERR: Error interrupt enable + * @retval None + */ +#define __HAL_SPI_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CR2, (__INTERRUPT__)) + +/** @brief Disable the specified SPI interrupts. + * @param __HANDLE__ specifies the SPI handle. + * This parameter can be SPIx where x: 1, 2, or 3 to select the SPI peripheral. + * @param __INTERRUPT__ specifies the interrupt source to disable. + * This parameter can be one of the following values: + * @arg SPI_IT_TXE: Tx buffer empty interrupt enable + * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable + * @arg SPI_IT_ERR: Error interrupt enable + * @retval None + */ +#define __HAL_SPI_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->CR2, (__INTERRUPT__)) + +/** @brief Check whether the specified SPI interrupt source is enabled or not. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @param __INTERRUPT__ specifies the SPI interrupt source to check. + * This parameter can be one of the following values: + * @arg SPI_IT_TXE: Tx buffer empty interrupt enable + * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable + * @arg SPI_IT_ERR: Error interrupt enable + * @retval The new state of __IT__ (TRUE or FALSE). + */ +#define __HAL_SPI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->CR2\ + & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) + +/** @brief Check whether the specified SPI flag is set or not. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @param __FLAG__ specifies the flag to check. + * This parameter can be one of the following values: + * @arg SPI_FLAG_RXNE: Receive buffer not empty flag + * @arg SPI_FLAG_TXE: Transmit buffer empty flag + * @arg SPI_FLAG_CRCERR: CRC error flag + * @arg SPI_FLAG_MODF: Mode fault flag + * @arg SPI_FLAG_OVR: Overrun flag + * @arg SPI_FLAG_BSY: Busy flag + * @arg SPI_FLAG_FRE: Frame format error flag + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_SPI_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__)) + +/** @brief Clear the SPI CRCERR pending flag. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @retval None + */ +#define __HAL_SPI_CLEAR_CRCERRFLAG(__HANDLE__) ((__HANDLE__)->Instance->SR = (uint16_t)(~SPI_FLAG_CRCERR)) + +/** @brief Clear the SPI MODF pending flag. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @retval None + */ +#define __HAL_SPI_CLEAR_MODFFLAG(__HANDLE__) \ + do{ \ + __IO uint32_t tmpreg_modf = 0x00U; \ + tmpreg_modf = (__HANDLE__)->Instance->SR; \ + CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_SPE); \ + UNUSED(tmpreg_modf); \ + } while(0U) + +/** @brief Clear the SPI OVR pending flag. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @retval None + */ +#define __HAL_SPI_CLEAR_OVRFLAG(__HANDLE__) \ + do{ \ + __IO uint32_t tmpreg_ovr = 0x00U; \ + tmpreg_ovr = (__HANDLE__)->Instance->DR; \ + tmpreg_ovr = (__HANDLE__)->Instance->SR; \ + UNUSED(tmpreg_ovr); \ + } while(0U) + +/** @brief Clear the SPI FRE pending flag. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @retval None + */ +#define __HAL_SPI_CLEAR_FREFLAG(__HANDLE__) \ + do{ \ + __IO uint32_t tmpreg_fre = 0x00U; \ + tmpreg_fre = (__HANDLE__)->Instance->SR; \ + UNUSED(tmpreg_fre); \ + } while(0U) + +/** @brief Enable the SPI peripheral. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @retval None + */ +#define __HAL_SPI_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_SPE) + +/** @brief Disable the SPI peripheral. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @retval None + */ +#define __HAL_SPI_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_SPE) + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup SPI_Private_Macros SPI Private Macros + * @{ + */ + +/** @brief Set the SPI transmit-only mode. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @retval None + */ +#define SPI_1LINE_TX(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_BIDIOE) + +/** @brief Set the SPI receive-only mode. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @retval None + */ +#define SPI_1LINE_RX(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_BIDIOE) + +/** @brief Reset the CRC calculation of the SPI. + * @param __HANDLE__ specifies the SPI Handle. + * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. + * @retval None + */ +#define SPI_RESET_CRC(__HANDLE__) \ + do{ \ + CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN); \ + SET_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN); \ + } while(0U) + +/** @brief Check whether the specified SPI flag is set or not. + * @param __SR__ copy of SPI SR register. + * @param __FLAG__ specifies the flag to check. + * This parameter can be one of the following values: + * @arg SPI_FLAG_RXNE: Receive buffer not empty flag + * @arg SPI_FLAG_TXE: Transmit buffer empty flag + * @arg SPI_FLAG_CRCERR: CRC error flag + * @arg SPI_FLAG_MODF: Mode fault flag + * @arg SPI_FLAG_OVR: Overrun flag + * @arg SPI_FLAG_BSY: Busy flag + * @arg SPI_FLAG_FRE: Frame format error flag + * @retval SET or RESET. + */ +#define SPI_CHECK_FLAG(__SR__, __FLAG__) ((((__SR__) & ((__FLAG__) & SPI_FLAG_MASK)) == \ + ((__FLAG__) & SPI_FLAG_MASK)) ? SET : RESET) + +/** @brief Check whether the specified SPI Interrupt is set or not. + * @param __CR2__ copy of SPI CR2 register. + * @param __INTERRUPT__ specifies the SPI interrupt source to check. + * This parameter can be one of the following values: + * @arg SPI_IT_TXE: Tx buffer empty interrupt enable + * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable + * @arg SPI_IT_ERR: Error interrupt enable + * @retval SET or RESET. + */ +#define SPI_CHECK_IT_SOURCE(__CR2__, __INTERRUPT__) ((((__CR2__) & (__INTERRUPT__)) == \ + (__INTERRUPT__)) ? SET : RESET) + +/** @brief Checks if SPI Mode parameter is in allowed range. + * @param __MODE__ specifies the SPI Mode. + * This parameter can be a value of @ref SPI_Mode + * @retval None + */ +#define IS_SPI_MODE(__MODE__) (((__MODE__) == SPI_MODE_SLAVE) || \ + ((__MODE__) == SPI_MODE_MASTER)) + +/** @brief Checks if SPI Direction Mode parameter is in allowed range. + * @param __MODE__ specifies the SPI Direction Mode. + * This parameter can be a value of @ref SPI_Direction + * @retval None + */ +#define IS_SPI_DIRECTION(__MODE__) (((__MODE__) == SPI_DIRECTION_2LINES) || \ + ((__MODE__) == SPI_DIRECTION_2LINES_RXONLY) || \ + ((__MODE__) == SPI_DIRECTION_1LINE)) + +/** @brief Checks if SPI Direction Mode parameter is 2 lines. + * @param __MODE__ specifies the SPI Direction Mode. + * @retval None + */ +#define IS_SPI_DIRECTION_2LINES(__MODE__) ((__MODE__) == SPI_DIRECTION_2LINES) + +/** @brief Checks if SPI Direction Mode parameter is 1 or 2 lines. + * @param __MODE__ specifies the SPI Direction Mode. + * @retval None + */ +#define IS_SPI_DIRECTION_2LINES_OR_1LINE(__MODE__) (((__MODE__) == SPI_DIRECTION_2LINES) || \ + ((__MODE__) == SPI_DIRECTION_1LINE)) + +/** @brief Checks if SPI Data Size parameter is in allowed range. + * @param __DATASIZE__ specifies the SPI Data Size. + * This parameter can be a value of @ref SPI_Data_Size + * @retval None + */ +#define IS_SPI_DATASIZE(__DATASIZE__) (((__DATASIZE__) == SPI_DATASIZE_16BIT) || \ + ((__DATASIZE__) == SPI_DATASIZE_8BIT)) + +/** @brief Checks if SPI Serial clock steady state parameter is in allowed range. + * @param __CPOL__ specifies the SPI serial clock steady state. + * This parameter can be a value of @ref SPI_Clock_Polarity + * @retval None + */ +#define IS_SPI_CPOL(__CPOL__) (((__CPOL__) == SPI_POLARITY_LOW) || \ + ((__CPOL__) == SPI_POLARITY_HIGH)) + +/** @brief Checks if SPI Clock Phase parameter is in allowed range. + * @param __CPHA__ specifies the SPI Clock Phase. + * This parameter can be a value of @ref SPI_Clock_Phase + * @retval None + */ +#define IS_SPI_CPHA(__CPHA__) (((__CPHA__) == SPI_PHASE_1EDGE) || \ + ((__CPHA__) == SPI_PHASE_2EDGE)) + +/** @brief Checks if SPI Slave Select parameter is in allowed range. + * @param __NSS__ specifies the SPI Slave Select management parameter. + * This parameter can be a value of @ref SPI_Slave_Select_management + * @retval None + */ +#define IS_SPI_NSS(__NSS__) (((__NSS__) == SPI_NSS_SOFT) || \ + ((__NSS__) == SPI_NSS_HARD_INPUT) || \ + ((__NSS__) == SPI_NSS_HARD_OUTPUT)) + +/** @brief Checks if SPI Baudrate prescaler parameter is in allowed range. + * @param __PRESCALER__ specifies the SPI Baudrate prescaler. + * This parameter can be a value of @ref SPI_BaudRate_Prescaler + * @retval None + */ +#define IS_SPI_BAUDRATE_PRESCALER(__PRESCALER__) (((__PRESCALER__) == SPI_BAUDRATEPRESCALER_2) || \ + ((__PRESCALER__) == SPI_BAUDRATEPRESCALER_4) || \ + ((__PRESCALER__) == SPI_BAUDRATEPRESCALER_8) || \ + ((__PRESCALER__) == SPI_BAUDRATEPRESCALER_16) || \ + ((__PRESCALER__) == SPI_BAUDRATEPRESCALER_32) || \ + ((__PRESCALER__) == SPI_BAUDRATEPRESCALER_64) || \ + ((__PRESCALER__) == SPI_BAUDRATEPRESCALER_128) || \ + ((__PRESCALER__) == SPI_BAUDRATEPRESCALER_256)) + +/** @brief Checks if SPI MSB LSB transmission parameter is in allowed range. + * @param __BIT__ specifies the SPI MSB LSB transmission (whether data transfer starts from MSB or LSB bit). + * This parameter can be a value of @ref SPI_MSB_LSB_transmission + * @retval None + */ +#define IS_SPI_FIRST_BIT(__BIT__) (((__BIT__) == SPI_FIRSTBIT_MSB) || \ + ((__BIT__) == SPI_FIRSTBIT_LSB)) + +#if defined(SPI_I2SCFGR_I2SMOD) +/** @brief Checks if SPI TI mode parameter is in allowed range. + * @param __MODE__ specifies the SPI TI mode. + * This parameter can be a value of @ref SPI_TI_mode + * @retval None + */ +#define IS_SPI_TIMODE(__MODE__) (((__MODE__) == SPI_TIMODE_DISABLE) || \ + ((__MODE__) == SPI_TIMODE_ENABLE)) +#else +/** @defgroup SPI_TI_mode SPI TI mode disable + * @brief SPI TI Mode not supported for Category 1 and 2 + * @{ + */ +#define IS_SPI_TIMODE(__MODE__) ((__MODE__) == SPI_TIMODE_DISABLE) + +#endif /* SPI_I2SCFGR_I2SMOD */ +/** @brief Checks if SPI CRC calculation enabled state is in allowed range. + * @param __CALCULATION__ specifies the SPI CRC calculation enable state. + * This parameter can be a value of @ref SPI_CRC_Calculation + * @retval None + */ +#define IS_SPI_CRC_CALCULATION(__CALCULATION__) (((__CALCULATION__) == SPI_CRCCALCULATION_DISABLE) || \ + ((__CALCULATION__) == SPI_CRCCALCULATION_ENABLE)) + +/** @brief Checks if SPI polynomial value to be used for the CRC calculation, is in allowed range. + * @param __POLYNOMIAL__ specifies the SPI polynomial value to be used for the CRC calculation. + * This parameter must be a number between Min_Data = 0 and Max_Data = 65535 + * @retval None + */ +#define IS_SPI_CRC_POLYNOMIAL(__POLYNOMIAL__) (((__POLYNOMIAL__) >= 0x1U) && \ + ((__POLYNOMIAL__) <= 0xFFFFU) && \ + (((__POLYNOMIAL__)&0x1U) != 0U)) + +/** @brief Checks if DMA handle is valid. + * @param __HANDLE__ specifies a DMA Handle. + * @retval None + */ +#define IS_SPI_DMA_HANDLE(__HANDLE__) ((__HANDLE__) != NULL) + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup SPI_Exported_Functions + * @{ + */ + +/** @addtogroup SPI_Exported_Functions_Group1 + * @{ + */ +/* Initialization/de-initialization functions ********************************/ +HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi); +HAL_StatusTypeDef HAL_SPI_DeInit(SPI_HandleTypeDef *hspi); +void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi); +void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi); + +/* Callbacks Register/UnRegister functions ***********************************/ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) +HAL_StatusTypeDef HAL_SPI_RegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID, + pSPI_CallbackTypeDef pCallback); +HAL_StatusTypeDef HAL_SPI_UnRegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +/** + * @} + */ + +/** @addtogroup SPI_Exported_Functions_Group2 + * @{ + */ +/* I/O operation functions ***************************************************/ +HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, + uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, + uint16_t Size); +HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, + uint16_t Size); +HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi); +HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi); +HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi); +/* Transfer Abort functions */ +HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi); +HAL_StatusTypeDef HAL_SPI_Abort_IT(SPI_HandleTypeDef *hspi); + +void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi); +void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi); +void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi); +void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi); +void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi); +void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi); +void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi); +void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi); +void HAL_SPI_AbortCpltCallback(SPI_HandleTypeDef *hspi); +/** + * @} + */ + +/** @addtogroup SPI_Exported_Functions_Group3 + * @{ + */ +/* Peripheral State and Error functions ***************************************/ +HAL_SPI_StateTypeDef HAL_SPI_GetState(const SPI_HandleTypeDef *hspi); +uint32_t HAL_SPI_GetError(const SPI_HandleTypeDef *hspi); +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32L1xx_HAL_SPI_H */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_bus.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_bus.h new file mode 100644 index 0000000..0d05861 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_bus.h @@ -0,0 +1,1100 @@ +/** + ****************************************************************************** + * @file stm32l1xx_ll_bus.h + * @author MCD Application Team + * @brief Header file of BUS LL module. + + @verbatim + ##### RCC Limitations ##### + ============================================================================== + [..] + A delay between an RCC peripheral clock enable and the effective peripheral + enabling should be taken into account in order to manage the peripheral read/write + from/to registers. + (+) This delay depends on the peripheral mapping. + (++) AHB & APB peripherals, 1 dummy read is necessary + + [..] + Workarounds: + (#) For AHB & APB peripherals, a dummy read to the peripheral register has been + inserted in each LL_{BUS}_GRP{x}_EnableClock() function. + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_LL_BUS_H +#define __STM32L1xx_LL_BUS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx.h" + +/** @addtogroup STM32L1xx_LL_Driver + * @{ + */ + +#if defined(RCC) + +/** @defgroup BUS_LL BUS + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ + +/* Private macros ------------------------------------------------------------*/ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup BUS_LL_Exported_Constants BUS Exported Constants + * @{ + */ + +/** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH AHB1 GRP1 PERIPH + * @{ + */ +#define LL_AHB1_GRP1_PERIPH_ALL 0xFFFFFFFFU +#define LL_AHB1_GRP1_PERIPH_GPIOA RCC_AHBENR_GPIOAEN +#define LL_AHB1_GRP1_PERIPH_GPIOB RCC_AHBENR_GPIOBEN +#define LL_AHB1_GRP1_PERIPH_GPIOC RCC_AHBENR_GPIOCEN +#define LL_AHB1_GRP1_PERIPH_GPIOD RCC_AHBENR_GPIODEN +#if defined(GPIOE) +#define LL_AHB1_GRP1_PERIPH_GPIOE RCC_AHBENR_GPIOEEN +#endif/*GPIOE*/ +#define LL_AHB1_GRP1_PERIPH_GPIOH RCC_AHBENR_GPIOHEN +#if defined(GPIOF) +#define LL_AHB1_GRP1_PERIPH_GPIOF RCC_AHBENR_GPIOFEN +#endif/*GPIOF*/ +#if defined(GPIOG) +#define LL_AHB1_GRP1_PERIPH_GPIOG RCC_AHBENR_GPIOGEN +#endif/*GPIOG*/ +#define LL_AHB1_GRP1_PERIPH_SRAM RCC_AHBLPENR_SRAMLPEN +#define LL_AHB1_GRP1_PERIPH_CRC RCC_AHBENR_CRCEN +#define LL_AHB1_GRP1_PERIPH_FLASH RCC_AHBENR_FLITFEN +#define LL_AHB1_GRP1_PERIPH_DMA1 RCC_AHBENR_DMA1EN +#if defined(DMA2) +#define LL_AHB1_GRP1_PERIPH_DMA2 RCC_AHBENR_DMA2EN +#endif/*DMA2*/ +#if defined(AES) +#define LL_AHB1_GRP1_PERIPH_CRYP RCC_AHBENR_AESEN +#endif/*AES*/ +#if defined(FSMC_Bank1) +#define LL_AHB1_GRP1_PERIPH_FSMC RCC_AHBENR_FSMCEN +#endif/*FSMC_Bank1*/ +/** + * @} + */ + +/** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH APB1 GRP1 PERIPH + * @{ + */ +#define LL_APB1_GRP1_PERIPH_ALL 0xFFFFFFFFU +#define LL_APB1_GRP1_PERIPH_TIM2 RCC_APB1ENR_TIM2EN +#define LL_APB1_GRP1_PERIPH_TIM3 RCC_APB1ENR_TIM3EN +#define LL_APB1_GRP1_PERIPH_TIM4 RCC_APB1ENR_TIM4EN +#if defined(TIM5) +#define LL_APB1_GRP1_PERIPH_TIM5 RCC_APB1ENR_TIM5EN +#endif /*TIM5*/ +#define LL_APB1_GRP1_PERIPH_TIM6 RCC_APB1ENR_TIM6EN +#define LL_APB1_GRP1_PERIPH_TIM7 RCC_APB1ENR_TIM7EN +#if defined(LCD) +#define LL_APB1_GRP1_PERIPH_LCD RCC_APB1ENR_LCDEN +#endif /*LCD*/ +#define LL_APB1_GRP1_PERIPH_WWDG RCC_APB1ENR_WWDGEN +#define LL_APB1_GRP1_PERIPH_SPI2 RCC_APB1ENR_SPI2EN +#if defined(SPI3) +#define LL_APB1_GRP1_PERIPH_SPI3 RCC_APB1ENR_SPI3EN +#endif /*SPI3*/ +#define LL_APB1_GRP1_PERIPH_USART2 RCC_APB1ENR_USART2EN +#define LL_APB1_GRP1_PERIPH_USART3 RCC_APB1ENR_USART3EN +#if defined(UART4) +#define LL_APB1_GRP1_PERIPH_UART4 RCC_APB1ENR_UART4EN +#endif /*UART4*/ +#if defined(UART5) +#define LL_APB1_GRP1_PERIPH_UART5 RCC_APB1ENR_UART5EN +#endif /*UART5*/ +#define LL_APB1_GRP1_PERIPH_I2C1 RCC_APB1ENR_I2C1EN +#define LL_APB1_GRP1_PERIPH_I2C2 RCC_APB1ENR_I2C2EN +#define LL_APB1_GRP1_PERIPH_USB RCC_APB1ENR_USBEN +#define LL_APB1_GRP1_PERIPH_PWR RCC_APB1ENR_PWREN +#define LL_APB1_GRP1_PERIPH_DAC1 RCC_APB1ENR_DACEN +#define LL_APB1_GRP1_PERIPH_COMP RCC_APB1ENR_COMPEN +#if defined(OPAMP) +/* Note: Peripherals COMP and OPAMP share the same clock domain */ +#define LL_APB1_GRP1_PERIPH_OPAMP LL_APB1_GRP1_PERIPH_COMP +#endif +/** + * @} + */ + +/** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH APB2 GRP1 PERIPH + * @{ + */ +#define LL_APB2_GRP1_PERIPH_ALL 0xFFFFFFFFU +#define LL_APB2_GRP1_PERIPH_SYSCFG RCC_APB2ENR_SYSCFGEN +#define LL_APB2_GRP1_PERIPH_TIM9 RCC_APB2ENR_TIM9EN +#define LL_APB2_GRP1_PERIPH_TIM10 RCC_APB2ENR_TIM10EN +#define LL_APB2_GRP1_PERIPH_TIM11 RCC_APB2ENR_TIM11EN +#define LL_APB2_GRP1_PERIPH_ADC1 RCC_APB2ENR_ADC1EN +#if defined(SDIO) +#define LL_APB2_GRP1_PERIPH_SDIO RCC_APB2ENR_SDIOEN +#endif /*SDIO*/ +#define LL_APB2_GRP1_PERIPH_SPI1 RCC_APB2ENR_SPI1EN +#define LL_APB2_GRP1_PERIPH_USART1 RCC_APB2ENR_USART1EN +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup BUS_LL_Exported_Functions BUS Exported Functions + * @{ + */ + +/** @defgroup BUS_LL_EF_AHB1 AHB1 + * @{ + */ + +/** + * @brief Enable AHB1 peripherals clock. + * @rmtoll AHBENR GPIOAEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOBEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOCEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIODEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOEEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOHEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOFEN LL_AHB1_GRP1_EnableClock\n + * AHBENR GPIOGEN LL_AHB1_GRP1_EnableClock\n + * AHBENR CRCEN LL_AHB1_GRP1_EnableClock\n + * AHBENR FLITFEN LL_AHB1_GRP1_EnableClock\n + * AHBENR DMA1EN LL_AHB1_GRP1_EnableClock\n + * AHBENR DMA2EN LL_AHB1_GRP1_EnableClock\n + * AHBENR AESEN LL_AHB1_GRP1_EnableClock\n + * AHBENR FSMCEN LL_AHB1_GRP1_EnableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->AHBENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHBENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Check if AHB1 peripheral clock is enabled or not + * @rmtoll AHBENR GPIOAEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOBEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOCEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIODEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOEEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOHEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOFEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR GPIOGEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR CRCEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR FLITFEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR DMA1EN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR DMA2EN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR AESEN LL_AHB1_GRP1_IsEnabledClock\n + * AHBENR FSMCEN LL_AHB1_GRP1_IsEnabledClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*) + * + * (*) value not defined in all devices. + * @retval State of Periphs (1 or 0). +*/ +__STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs) +{ + return ((READ_BIT(RCC->AHBENR, Periphs) == (Periphs)) ? 1UL : 0UL); +} + +/** + * @brief Disable AHB1 peripherals clock. + * @rmtoll AHBENR GPIOAEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOBEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOCEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIODEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOEEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOHEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOFEN LL_AHB1_GRP1_DisableClock\n + * AHBENR GPIOGEN LL_AHB1_GRP1_DisableClock\n + * AHBENR CRCEN LL_AHB1_GRP1_DisableClock\n + * AHBENR FLITFEN LL_AHB1_GRP1_DisableClock\n + * AHBENR DMA1EN LL_AHB1_GRP1_DisableClock\n + * AHBENR DMA2EN LL_AHB1_GRP1_DisableClock\n + * AHBENR AESEN LL_AHB1_GRP1_DisableClock\n + * AHBENR FSMCEN LL_AHB1_GRP1_DisableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHBENR, Periphs); +} + +/** + * @brief Force AHB1 peripherals reset. + * @rmtoll AHBRSTR GPIOARST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOBRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOCRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIODRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOERST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOHRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOFRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR GPIOGRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR CRCRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR FLITFRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR DMA1RST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR DMA2RST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR AESRST LL_AHB1_GRP1_ForceReset\n + * AHBRSTR FSMCRST LL_AHB1_GRP1_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_ALL + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs) +{ + SET_BIT(RCC->AHBRSTR, Periphs); +} + +/** + * @brief Release AHB1 peripherals reset. + * @rmtoll AHBRSTR GPIOARST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOBRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOCRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIODRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOERST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOHRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOFRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR GPIOGRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR CRCRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR FLITFRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR DMA1RST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR DMA2RST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR AESRST LL_AHB1_GRP1_ReleaseReset\n + * AHBRSTR FSMCRST LL_AHB1_GRP1_ReleaseReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_ALL + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHBRSTR, Periphs); +} + +/** + * @brief Enable AHB1 peripherals clock during Low Power (Sleep) mode. + * @rmtoll AHBLPENR GPIOALPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR GPIOBLPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR GPIOCLPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR GPIODLPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR GPIOELPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR GPIOHLPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR GPIOFLPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR GPIOGLPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR CRCLPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR FLITFLPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR SRAMLPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR DMA1LPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR DMA2LPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR AESLPEN LL_AHB1_GRP1_EnableClockSleep\n + * AHBLPENR FSMCLPEN LL_AHB1_GRP1_EnableClockSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_AHB1_GRP1_EnableClockSleep(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->AHBLPENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHBLPENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Disable AHB1 peripherals clock during Low Power (Sleep) mode. + * @rmtoll AHBLPENR GPIOALPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR GPIOBLPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR GPIOCLPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR GPIODLPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR GPIOELPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR GPIOHLPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR GPIOFLPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR GPIOGLPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR CRCLPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR FLITFLPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR SRAMLPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR DMA1LPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR DMA2LPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR AESLPEN LL_AHB1_GRP1_DisableClockSleep\n + * AHBLPENR FSMCLPEN LL_AHB1_GRP1_DisableClockSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRC + * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH + * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 + * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*) + * @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_AHB1_GRP1_DisableClockSleep(uint32_t Periphs) +{ + CLEAR_BIT(RCC->AHBLPENR, Periphs); +} + +/** + * @} + */ + +/** @defgroup BUS_LL_EF_APB1 APB1 + * @{ + */ + +/** + * @brief Enable APB1 peripherals clock. + * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM3EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM4EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM5EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM6EN LL_APB1_GRP1_EnableClock\n + * APB1ENR TIM7EN LL_APB1_GRP1_EnableClock\n + * APB1ENR LCDEN LL_APB1_GRP1_EnableClock\n + * APB1ENR WWDGEN LL_APB1_GRP1_EnableClock\n + * APB1ENR SPI2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR SPI3EN LL_APB1_GRP1_EnableClock\n + * APB1ENR USART2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR USART3EN LL_APB1_GRP1_EnableClock\n + * APB1ENR UART4EN LL_APB1_GRP1_EnableClock\n + * APB1ENR UART5EN LL_APB1_GRP1_EnableClock\n + * APB1ENR I2C1EN LL_APB1_GRP1_EnableClock\n + * APB1ENR I2C2EN LL_APB1_GRP1_EnableClock\n + * APB1ENR USBEN LL_APB1_GRP1_EnableClock\n + * APB1ENR PWREN LL_APB1_GRP1_EnableClock\n + * APB1ENR DACEN LL_APB1_GRP1_EnableClock\n + * APB1ENR COMPEN LL_APB1_GRP1_EnableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_COMP + * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->APB1ENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB1ENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Check if APB1 peripheral clock is enabled or not + * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM3EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM4EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM5EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM6EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR TIM7EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR LCDEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR WWDGEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR SPI2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR SPI3EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR USART2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR USART3EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR UART4EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR UART5EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR I2C1EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR I2C2EN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR USBEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR PWREN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR DACEN LL_APB1_GRP1_IsEnabledClock\n + * APB1ENR COMPEN LL_APB1_GRP1_IsEnabledClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_COMP + * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*) + * + * (*) value not defined in all devices. + * @retval State of Periphs (1 or 0). +*/ +__STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs) +{ + return ((READ_BIT(RCC->APB1ENR, Periphs) == (Periphs)) ? 1UL : 0UL); +} + +/** + * @brief Disable APB1 peripherals clock. + * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM3EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM4EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM5EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM6EN LL_APB1_GRP1_DisableClock\n + * APB1ENR TIM7EN LL_APB1_GRP1_DisableClock\n + * APB1ENR LCDEN LL_APB1_GRP1_DisableClock\n + * APB1ENR WWDGEN LL_APB1_GRP1_DisableClock\n + * APB1ENR SPI2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR SPI3EN LL_APB1_GRP1_DisableClock\n + * APB1ENR USART2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR USART3EN LL_APB1_GRP1_DisableClock\n + * APB1ENR UART4EN LL_APB1_GRP1_DisableClock\n + * APB1ENR UART5EN LL_APB1_GRP1_DisableClock\n + * APB1ENR I2C1EN LL_APB1_GRP1_DisableClock\n + * APB1ENR I2C2EN LL_APB1_GRP1_DisableClock\n + * APB1ENR USBEN LL_APB1_GRP1_DisableClock\n + * APB1ENR PWREN LL_APB1_GRP1_DisableClock\n + * APB1ENR DACEN LL_APB1_GRP1_DisableClock\n + * APB1ENR COMPEN LL_APB1_GRP1_DisableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_COMP + * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB1ENR, Periphs); +} + +/** + * @brief Force APB1 peripherals reset. + * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM3RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM4RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM5RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM6RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR TIM7RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR LCDRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR WWDGRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR SPI2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR SPI3RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR USART2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR USART3RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR UART4RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR UART5RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR I2C1RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR I2C2RST LL_APB1_GRP1_ForceReset\n + * APB1RSTR USBRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR PWRRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR DACRST LL_APB1_GRP1_ForceReset\n + * APB1RSTR COMPRST LL_APB1_GRP1_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_ALL + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_COMP + * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs) +{ + SET_BIT(RCC->APB1RSTR, Periphs); +} + +/** + * @brief Release APB1 peripherals reset. + * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM3RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM4RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM5RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM6RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR TIM7RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR LCDRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR WWDGRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR SPI2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR SPI3RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR USART2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR USART3RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR UART4RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR UART5RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR I2C1RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR I2C2RST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR USBRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR PWRRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR DACRST LL_APB1_GRP1_ReleaseReset\n + * APB1RSTR COMPRST LL_APB1_GRP1_ReleaseReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_ALL + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_COMP + * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB1RSTR, Periphs); +} + +/** + * @brief Enable APB1 peripherals clock during Low Power (Sleep) mode. + * @rmtoll APB1LPENR TIM2LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR TIM3LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR TIM4LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR TIM5LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR TIM6LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR TIM7LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR LCDLPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR WWDGLPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR SPI2LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR SPI3LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR USART2LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR USART3LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR UART4LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR UART5LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR I2C1LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR I2C2LPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR USBLPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR PWRLPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR DACLPEN LL_APB1_GRP1_EnableClockSleep\n + * APB1LPENR COMPLPEN LL_APB1_GRP1_EnableClockSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_COMP + * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB1_GRP1_EnableClockSleep(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->APB1LPENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB1LPENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Disable APB1 peripherals clock during Low Power (Sleep) mode. + * @rmtoll APB1LPENR TIM2LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR TIM3LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR TIM4LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR TIM5LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR TIM6LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR TIM7LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR LCDLPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR WWDGLPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR SPI2LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR SPI3LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR USART2LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR USART3LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR UART4LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR UART5LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR I2C1LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR I2C2LPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR USBLPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR PWRLPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR DACLPEN LL_APB1_GRP1_DisableClockSleep\n + * APB1LPENR COMPLPEN LL_APB1_GRP1_DisableClockSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 + * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 + * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) + * @arg @ref LL_APB1_GRP1_PERIPH_WWDG + * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 + * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_USART2 + * @arg @ref LL_APB1_GRP1_PERIPH_USART3 + * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) + * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 + * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 + * @arg @ref LL_APB1_GRP1_PERIPH_USB + * @arg @ref LL_APB1_GRP1_PERIPH_PWR + * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 + * @arg @ref LL_APB1_GRP1_PERIPH_COMP + * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*) + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB1_GRP1_DisableClockSleep(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB1LPENR, Periphs); +} + +/** + * @} + */ + +/** @defgroup BUS_LL_EF_APB2 APB2 + * @{ + */ + +/** + * @brief Enable APB2 peripherals clock. + * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_EnableClock\n + * APB2ENR TIM9EN LL_APB2_GRP1_EnableClock\n + * APB2ENR TIM10EN LL_APB2_GRP1_EnableClock\n + * APB2ENR TIM11EN LL_APB2_GRP1_EnableClock\n + * APB2ENR ADC1EN LL_APB2_GRP1_EnableClock\n + * APB2ENR SDIOEN LL_APB2_GRP1_EnableClock\n + * APB2ENR SPI1EN LL_APB2_GRP1_EnableClock\n + * APB2ENR USART1EN LL_APB2_GRP1_EnableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM9 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM11 + * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 + * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->APB2ENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB2ENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Check if APB2 peripheral clock is enabled or not + * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR TIM9EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR TIM10EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR TIM11EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR ADC1EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR SDIOEN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR SPI1EN LL_APB2_GRP1_IsEnabledClock\n + * APB2ENR USART1EN LL_APB2_GRP1_IsEnabledClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM9 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM11 + * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 + * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * + * (*) value not defined in all devices. + * @retval State of Periphs (1 or 0). +*/ +__STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs) +{ + return ((READ_BIT(RCC->APB2ENR, Periphs) == (Periphs)) ? 1UL : 0UL); +} + +/** + * @brief Disable APB2 peripherals clock. + * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_DisableClock\n + * APB2ENR TIM9EN LL_APB2_GRP1_DisableClock\n + * APB2ENR TIM10EN LL_APB2_GRP1_DisableClock\n + * APB2ENR TIM11EN LL_APB2_GRP1_DisableClock\n + * APB2ENR ADC1EN LL_APB2_GRP1_DisableClock\n + * APB2ENR SDIOEN LL_APB2_GRP1_DisableClock\n + * APB2ENR SPI1EN LL_APB2_GRP1_DisableClock\n + * APB2ENR USART1EN LL_APB2_GRP1_DisableClock + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM9 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM11 + * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 + * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB2ENR, Periphs); +} + +/** + * @brief Force APB2 peripherals reset. + * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM9RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM10RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR TIM11RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR ADC1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR SDIORST LL_APB2_GRP1_ForceReset\n + * APB2RSTR SPI1RST LL_APB2_GRP1_ForceReset\n + * APB2RSTR USART1RST LL_APB2_GRP1_ForceReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_ALL + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM9 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM11 + * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 + * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs) +{ + SET_BIT(RCC->APB2RSTR, Periphs); +} + +/** + * @brief Release APB2 peripherals reset. + * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR TIM9RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR TIM10RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR TIM11RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR ADC1RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR SDIORST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR SPI1RST LL_APB2_GRP1_ReleaseReset\n + * APB2RSTR USART1RST LL_APB2_GRP1_ReleaseReset + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_ALL + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM9 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM11 + * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 + * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB2RSTR, Periphs); +} + +/** + * @brief Enable APB2 peripherals clock during Low Power (Sleep) mode. + * @rmtoll APB2LPENR SYSCFGLPEN LL_APB2_GRP1_EnableClockSleep\n + * APB2LPENR TIM9LPEN LL_APB2_GRP1_EnableClockSleep\n + * APB2LPENR TIM10LPEN LL_APB2_GRP1_EnableClockSleep\n + * APB2LPENR TIM11LPEN LL_APB2_GRP1_EnableClockSleep\n + * APB2LPENR ADC1LPEN LL_APB2_GRP1_EnableClockSleep\n + * APB2LPENR SDIOLPEN LL_APB2_GRP1_EnableClockSleep\n + * APB2LPENR SPI1LPEN LL_APB2_GRP1_EnableClockSleep\n + * APB2LPENR USART1LPEN LL_APB2_GRP1_EnableClockSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM9 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM11 + * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 + * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB2_GRP1_EnableClockSleep(uint32_t Periphs) +{ + __IO uint32_t tmpreg; + SET_BIT(RCC->APB2LPENR, Periphs); + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB2LPENR, Periphs); + (void)tmpreg; +} + +/** + * @brief Disable APB2 peripherals clock during Low Power (Sleep) mode. + * @rmtoll APB2LPENR SYSCFGLPEN LL_APB2_GRP1_DisableClockSleep\n + * APB2LPENR TIM9LPEN LL_APB2_GRP1_DisableClockSleep\n + * APB2LPENR TIM10LPEN LL_APB2_GRP1_DisableClockSleep\n + * APB2LPENR TIM11LPEN LL_APB2_GRP1_DisableClockSleep\n + * APB2LPENR ADC1LPEN LL_APB2_GRP1_DisableClockSleep\n + * APB2LPENR SDIOLPEN LL_APB2_GRP1_DisableClockSleep\n + * APB2LPENR SPI1LPEN LL_APB2_GRP1_DisableClockSleep\n + * APB2LPENR USART1LPEN LL_APB2_GRP1_DisableClockSleep + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG + * @arg @ref LL_APB2_GRP1_PERIPH_TIM9 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 + * @arg @ref LL_APB2_GRP1_PERIPH_TIM11 + * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 + * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*) + * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 + * @arg @ref LL_APB2_GRP1_PERIPH_USART1 + * + * (*) value not defined in all devices. + * @retval None +*/ +__STATIC_INLINE void LL_APB2_GRP1_DisableClockSleep(uint32_t Periphs) +{ + CLEAR_BIT(RCC->APB2LPENR, Periphs); +} + +/** + * @} + */ + + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined(RCC) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_LL_BUS_H */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_cortex.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_cortex.h new file mode 100644 index 0000000..3fec1a3 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_cortex.h @@ -0,0 +1,637 @@ +/** + ****************************************************************************** + * @file stm32l1xx_ll_cortex.h + * @author MCD Application Team + * @brief Header file of CORTEX LL module. + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The LL CORTEX driver contains a set of generic APIs that can be + used by user: + (+) SYSTICK configuration used by LL_mDelay and LL_Init1msTick + functions + (+) Low power mode configuration (SCB register of Cortex-MCU) + (+) MPU API to configure and enable regions + (+) API to access to MCU info (CPUID register) + (+) API to enable fault handler (SHCSR accesses) + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_LL_CORTEX_H +#define __STM32L1xx_LL_CORTEX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx.h" + +/** @addtogroup STM32L1xx_LL_Driver + * @{ + */ + +/** @defgroup CORTEX_LL CORTEX + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ + +/* Private macros ------------------------------------------------------------*/ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup CORTEX_LL_Exported_Constants CORTEX Exported Constants + * @{ + */ + +/** @defgroup CORTEX_LL_EC_CLKSOURCE_HCLK SYSTICK Clock Source + * @{ + */ +#define LL_SYSTICK_CLKSOURCE_HCLK_DIV8 0x00000000U /*!< AHB clock divided by 8 selected as SysTick clock source.*/ +#define LL_SYSTICK_CLKSOURCE_HCLK SysTick_CTRL_CLKSOURCE_Msk /*!< AHB clock selected as SysTick clock source. */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_FAULT Handler Fault type + * @{ + */ +#define LL_HANDLER_FAULT_USG SCB_SHCSR_USGFAULTENA_Msk /*!< Usage fault */ +#define LL_HANDLER_FAULT_BUS SCB_SHCSR_BUSFAULTENA_Msk /*!< Bus fault */ +#define LL_HANDLER_FAULT_MEM SCB_SHCSR_MEMFAULTENA_Msk /*!< Memory management fault */ +/** + * @} + */ + +#if __MPU_PRESENT + +/** @defgroup CORTEX_LL_EC_CTRL_HFNMI_PRIVDEF MPU Control + * @{ + */ +#define LL_MPU_CTRL_HFNMI_PRIVDEF_NONE 0x00000000U /*!< Disable NMI and privileged SW access */ +#define LL_MPU_CTRL_HARDFAULT_NMI MPU_CTRL_HFNMIENA_Msk /*!< Enables the operation of MPU during hard fault, NMI, and FAULTMASK handlers */ +#define LL_MPU_CTRL_PRIVILEGED_DEFAULT MPU_CTRL_PRIVDEFENA_Msk /*!< Enable privileged software access to default memory map */ +#define LL_MPU_CTRL_HFNMI_PRIVDEF (MPU_CTRL_HFNMIENA_Msk | MPU_CTRL_PRIVDEFENA_Msk) /*!< Enable NMI and privileged SW access */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_REGION MPU Region Number + * @{ + */ +#define LL_MPU_REGION_NUMBER0 0x00U /*!< REGION Number 0 */ +#define LL_MPU_REGION_NUMBER1 0x01U /*!< REGION Number 1 */ +#define LL_MPU_REGION_NUMBER2 0x02U /*!< REGION Number 2 */ +#define LL_MPU_REGION_NUMBER3 0x03U /*!< REGION Number 3 */ +#define LL_MPU_REGION_NUMBER4 0x04U /*!< REGION Number 4 */ +#define LL_MPU_REGION_NUMBER5 0x05U /*!< REGION Number 5 */ +#define LL_MPU_REGION_NUMBER6 0x06U /*!< REGION Number 6 */ +#define LL_MPU_REGION_NUMBER7 0x07U /*!< REGION Number 7 */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_REGION_SIZE MPU Region Size + * @{ + */ +#define LL_MPU_REGION_SIZE_32B (0x04U << MPU_RASR_SIZE_Pos) /*!< 32B Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_64B (0x05U << MPU_RASR_SIZE_Pos) /*!< 64B Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_128B (0x06U << MPU_RASR_SIZE_Pos) /*!< 128B Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_256B (0x07U << MPU_RASR_SIZE_Pos) /*!< 256B Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_512B (0x08U << MPU_RASR_SIZE_Pos) /*!< 512B Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_1KB (0x09U << MPU_RASR_SIZE_Pos) /*!< 1KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_2KB (0x0AU << MPU_RASR_SIZE_Pos) /*!< 2KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_4KB (0x0BU << MPU_RASR_SIZE_Pos) /*!< 4KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_8KB (0x0CU << MPU_RASR_SIZE_Pos) /*!< 8KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_16KB (0x0DU << MPU_RASR_SIZE_Pos) /*!< 16KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_32KB (0x0EU << MPU_RASR_SIZE_Pos) /*!< 32KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_64KB (0x0FU << MPU_RASR_SIZE_Pos) /*!< 64KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_128KB (0x10U << MPU_RASR_SIZE_Pos) /*!< 128KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_256KB (0x11U << MPU_RASR_SIZE_Pos) /*!< 256KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_512KB (0x12U << MPU_RASR_SIZE_Pos) /*!< 512KB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_1MB (0x13U << MPU_RASR_SIZE_Pos) /*!< 1MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_2MB (0x14U << MPU_RASR_SIZE_Pos) /*!< 2MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_4MB (0x15U << MPU_RASR_SIZE_Pos) /*!< 4MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_8MB (0x16U << MPU_RASR_SIZE_Pos) /*!< 8MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_16MB (0x17U << MPU_RASR_SIZE_Pos) /*!< 16MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_32MB (0x18U << MPU_RASR_SIZE_Pos) /*!< 32MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_64MB (0x19U << MPU_RASR_SIZE_Pos) /*!< 64MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_128MB (0x1AU << MPU_RASR_SIZE_Pos) /*!< 128MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_256MB (0x1BU << MPU_RASR_SIZE_Pos) /*!< 256MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_512MB (0x1CU << MPU_RASR_SIZE_Pos) /*!< 512MB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_1GB (0x1DU << MPU_RASR_SIZE_Pos) /*!< 1GB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_2GB (0x1EU << MPU_RASR_SIZE_Pos) /*!< 2GB Size of the MPU protection region */ +#define LL_MPU_REGION_SIZE_4GB (0x1FU << MPU_RASR_SIZE_Pos) /*!< 4GB Size of the MPU protection region */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_REGION_PRIVILEDGES MPU Region Privileges + * @{ + */ +#define LL_MPU_REGION_NO_ACCESS (0x00U << MPU_RASR_AP_Pos) /*!< No access*/ +#define LL_MPU_REGION_PRIV_RW (0x01U << MPU_RASR_AP_Pos) /*!< RW privileged (privileged access only)*/ +#define LL_MPU_REGION_PRIV_RW_URO (0x02U << MPU_RASR_AP_Pos) /*!< RW privileged - RO user (Write in a user program generates a fault) */ +#define LL_MPU_REGION_FULL_ACCESS (0x03U << MPU_RASR_AP_Pos) /*!< RW privileged & user (Full access) */ +#define LL_MPU_REGION_PRIV_RO (0x05U << MPU_RASR_AP_Pos) /*!< RO privileged (privileged read only)*/ +#define LL_MPU_REGION_PRIV_RO_URO (0x06U << MPU_RASR_AP_Pos) /*!< RO privileged & user (read only) */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_TEX MPU TEX Level + * @{ + */ +#define LL_MPU_TEX_LEVEL0 (0x00U << MPU_RASR_TEX_Pos) /*!< b000 for TEX bits */ +#define LL_MPU_TEX_LEVEL1 (0x01U << MPU_RASR_TEX_Pos) /*!< b001 for TEX bits */ +#define LL_MPU_TEX_LEVEL2 (0x02U << MPU_RASR_TEX_Pos) /*!< b010 for TEX bits */ +#define LL_MPU_TEX_LEVEL4 (0x04U << MPU_RASR_TEX_Pos) /*!< b100 for TEX bits */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_INSTRUCTION_ACCESS MPU Instruction Access + * @{ + */ +#define LL_MPU_INSTRUCTION_ACCESS_ENABLE 0x00U /*!< Instruction fetches enabled */ +#define LL_MPU_INSTRUCTION_ACCESS_DISABLE MPU_RASR_XN_Msk /*!< Instruction fetches disabled*/ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_SHAREABLE_ACCESS MPU Shareable Access + * @{ + */ +#define LL_MPU_ACCESS_SHAREABLE MPU_RASR_S_Msk /*!< Shareable memory attribute */ +#define LL_MPU_ACCESS_NOT_SHAREABLE 0x00U /*!< Not Shareable memory attribute */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_CACHEABLE_ACCESS MPU Cacheable Access + * @{ + */ +#define LL_MPU_ACCESS_CACHEABLE MPU_RASR_C_Msk /*!< Cacheable memory attribute */ +#define LL_MPU_ACCESS_NOT_CACHEABLE 0x00U /*!< Not Cacheable memory attribute */ +/** + * @} + */ + +/** @defgroup CORTEX_LL_EC_BUFFERABLE_ACCESS MPU Bufferable Access + * @{ + */ +#define LL_MPU_ACCESS_BUFFERABLE MPU_RASR_B_Msk /*!< Bufferable memory attribute */ +#define LL_MPU_ACCESS_NOT_BUFFERABLE 0x00U /*!< Not Bufferable memory attribute */ +/** + * @} + */ +#endif /* __MPU_PRESENT */ +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup CORTEX_LL_Exported_Functions CORTEX Exported Functions + * @{ + */ + +/** @defgroup CORTEX_LL_EF_SYSTICK SYSTICK + * @{ + */ + +/** + * @brief This function checks if the Systick counter flag is active or not. + * @note It can be used in timeout function on application side. + * @rmtoll STK_CTRL COUNTFLAG LL_SYSTICK_IsActiveCounterFlag + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSTICK_IsActiveCounterFlag(void) +{ + return ((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) == (SysTick_CTRL_COUNTFLAG_Msk)); +} + +/** + * @brief Configures the SysTick clock source + * @rmtoll STK_CTRL CLKSOURCE LL_SYSTICK_SetClkSource + * @param Source This parameter can be one of the following values: + * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK_DIV8 + * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK + * @retval None + */ +__STATIC_INLINE void LL_SYSTICK_SetClkSource(uint32_t Source) +{ + if (Source == LL_SYSTICK_CLKSOURCE_HCLK) + { + SET_BIT(SysTick->CTRL, LL_SYSTICK_CLKSOURCE_HCLK); + } + else + { + CLEAR_BIT(SysTick->CTRL, LL_SYSTICK_CLKSOURCE_HCLK); + } +} + +/** + * @brief Get the SysTick clock source + * @rmtoll STK_CTRL CLKSOURCE LL_SYSTICK_GetClkSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK_DIV8 + * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK + */ +__STATIC_INLINE uint32_t LL_SYSTICK_GetClkSource(void) +{ + return READ_BIT(SysTick->CTRL, LL_SYSTICK_CLKSOURCE_HCLK); +} + +/** + * @brief Enable SysTick exception request + * @rmtoll STK_CTRL TICKINT LL_SYSTICK_EnableIT + * @retval None + */ +__STATIC_INLINE void LL_SYSTICK_EnableIT(void) +{ + SET_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk); +} + +/** + * @brief Disable SysTick exception request + * @rmtoll STK_CTRL TICKINT LL_SYSTICK_DisableIT + * @retval None + */ +__STATIC_INLINE void LL_SYSTICK_DisableIT(void) +{ + CLEAR_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk); +} + +/** + * @brief Checks if the SYSTICK interrupt is enabled or disabled. + * @rmtoll STK_CTRL TICKINT LL_SYSTICK_IsEnabledIT + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SYSTICK_IsEnabledIT(void) +{ + return (READ_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk) == (SysTick_CTRL_TICKINT_Msk)); +} + +/** + * @} + */ + +/** @defgroup CORTEX_LL_EF_LOW_POWER_MODE LOW POWER MODE + * @{ + */ + +/** + * @brief Processor uses sleep as its low power mode + * @rmtoll SCB_SCR SLEEPDEEP LL_LPM_EnableSleep + * @retval None + */ +__STATIC_INLINE void LL_LPM_EnableSleep(void) +{ + /* Clear SLEEPDEEP bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); +} + +/** + * @brief Processor uses deep sleep as its low power mode + * @rmtoll SCB_SCR SLEEPDEEP LL_LPM_EnableDeepSleep + * @retval None + */ +__STATIC_INLINE void LL_LPM_EnableDeepSleep(void) +{ + /* Set SLEEPDEEP bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); +} + +/** + * @brief Configures sleep-on-exit when returning from Handler mode to Thread mode. + * @note Setting this bit to 1 enables an interrupt-driven application to avoid returning to an + * empty main application. + * @rmtoll SCB_SCR SLEEPONEXIT LL_LPM_EnableSleepOnExit + * @retval None + */ +__STATIC_INLINE void LL_LPM_EnableSleepOnExit(void) +{ + /* Set SLEEPONEXIT bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk)); +} + +/** + * @brief Do not sleep when returning to Thread mode. + * @rmtoll SCB_SCR SLEEPONEXIT LL_LPM_DisableSleepOnExit + * @retval None + */ +__STATIC_INLINE void LL_LPM_DisableSleepOnExit(void) +{ + /* Clear SLEEPONEXIT bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk)); +} + +/** + * @brief Enabled events and all interrupts, including disabled interrupts, can wakeup the + * processor. + * @rmtoll SCB_SCR SEVEONPEND LL_LPM_EnableEventOnPend + * @retval None + */ +__STATIC_INLINE void LL_LPM_EnableEventOnPend(void) +{ + /* Set SEVEONPEND bit of Cortex System Control Register */ + SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk)); +} + +/** + * @brief Only enabled interrupts or events can wakeup the processor, disabled interrupts are + * excluded + * @rmtoll SCB_SCR SEVEONPEND LL_LPM_DisableEventOnPend + * @retval None + */ +__STATIC_INLINE void LL_LPM_DisableEventOnPend(void) +{ + /* Clear SEVEONPEND bit of Cortex System Control Register */ + CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk)); +} + +/** + * @} + */ + +/** @defgroup CORTEX_LL_EF_HANDLER HANDLER + * @{ + */ + +/** + * @brief Enable a fault in System handler control register (SHCSR) + * @rmtoll SCB_SHCSR MEMFAULTENA LL_HANDLER_EnableFault + * @param Fault This parameter can be a combination of the following values: + * @arg @ref LL_HANDLER_FAULT_USG + * @arg @ref LL_HANDLER_FAULT_BUS + * @arg @ref LL_HANDLER_FAULT_MEM + * @retval None + */ +__STATIC_INLINE void LL_HANDLER_EnableFault(uint32_t Fault) +{ + /* Enable the system handler fault */ + SET_BIT(SCB->SHCSR, Fault); +} + +/** + * @brief Disable a fault in System handler control register (SHCSR) + * @rmtoll SCB_SHCSR MEMFAULTENA LL_HANDLER_DisableFault + * @param Fault This parameter can be a combination of the following values: + * @arg @ref LL_HANDLER_FAULT_USG + * @arg @ref LL_HANDLER_FAULT_BUS + * @arg @ref LL_HANDLER_FAULT_MEM + * @retval None + */ +__STATIC_INLINE void LL_HANDLER_DisableFault(uint32_t Fault) +{ + /* Disable the system handler fault */ + CLEAR_BIT(SCB->SHCSR, Fault); +} + +/** + * @} + */ + +/** @defgroup CORTEX_LL_EF_MCU_INFO MCU INFO + * @{ + */ + +/** + * @brief Get Implementer code + * @rmtoll SCB_CPUID IMPLEMENTER LL_CPUID_GetImplementer + * @retval Value should be equal to 0x41 for ARM + */ +__STATIC_INLINE uint32_t LL_CPUID_GetImplementer(void) +{ + return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_IMPLEMENTER_Msk) >> SCB_CPUID_IMPLEMENTER_Pos); +} + +/** + * @brief Get Variant number (The r value in the rnpn product revision identifier) + * @rmtoll SCB_CPUID VARIANT LL_CPUID_GetVariant + * @retval Value between 0 and 255 (0x1: revision 1, 0x2: revision 2) + */ +__STATIC_INLINE uint32_t LL_CPUID_GetVariant(void) +{ + return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_VARIANT_Msk) >> SCB_CPUID_VARIANT_Pos); +} + +/** + * @brief Get Constant number + * @rmtoll SCB_CPUID ARCHITECTURE LL_CPUID_GetConstant + * @retval Value should be equal to 0xF for Cortex-M3 devices + */ +__STATIC_INLINE uint32_t LL_CPUID_GetConstant(void) +{ + return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_ARCHITECTURE_Msk) >> SCB_CPUID_ARCHITECTURE_Pos); +} + +/** + * @brief Get Part number + * @rmtoll SCB_CPUID PARTNO LL_CPUID_GetParNo + * @retval Value should be equal to 0xC23 for Cortex-M3 + */ +__STATIC_INLINE uint32_t LL_CPUID_GetParNo(void) +{ + return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_PARTNO_Msk) >> SCB_CPUID_PARTNO_Pos); +} + +/** + * @brief Get Revision number (The p value in the rnpn product revision identifier, indicates patch release) + * @rmtoll SCB_CPUID REVISION LL_CPUID_GetRevision + * @retval Value between 0 and 255 (0x0: patch 0, 0x1: patch 1) + */ +__STATIC_INLINE uint32_t LL_CPUID_GetRevision(void) +{ + return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_REVISION_Msk) >> SCB_CPUID_REVISION_Pos); +} + +/** + * @} + */ + +#if __MPU_PRESENT +/** @defgroup CORTEX_LL_EF_MPU MPU + * @{ + */ + +/** + * @brief Enable MPU with input options + * @rmtoll MPU_CTRL ENABLE LL_MPU_Enable + * @param Options This parameter can be one of the following values: + * @arg @ref LL_MPU_CTRL_HFNMI_PRIVDEF_NONE + * @arg @ref LL_MPU_CTRL_HARDFAULT_NMI + * @arg @ref LL_MPU_CTRL_PRIVILEGED_DEFAULT + * @arg @ref LL_MPU_CTRL_HFNMI_PRIVDEF + * @retval None + */ +__STATIC_INLINE void LL_MPU_Enable(uint32_t Options) +{ + /* Enable the MPU*/ + WRITE_REG(MPU->CTRL, (MPU_CTRL_ENABLE_Msk | Options)); + /* Ensure MPU settings take effects */ + __DSB(); + /* Sequence instruction fetches using update settings */ + __ISB(); +} + +/** + * @brief Disable MPU + * @rmtoll MPU_CTRL ENABLE LL_MPU_Disable + * @retval None + */ +__STATIC_INLINE void LL_MPU_Disable(void) +{ + /* Make sure outstanding transfers are done */ + __DMB(); + /* Disable MPU*/ + WRITE_REG(MPU->CTRL, 0U); +} + +/** + * @brief Check if MPU is enabled or not + * @rmtoll MPU_CTRL ENABLE LL_MPU_IsEnabled + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_MPU_IsEnabled(void) +{ + return (READ_BIT(MPU->CTRL, MPU_CTRL_ENABLE_Msk) == (MPU_CTRL_ENABLE_Msk)); +} + +/** + * @brief Enable a MPU region + * @rmtoll MPU_RASR ENABLE LL_MPU_EnableRegion + * @param Region This parameter can be one of the following values: + * @arg @ref LL_MPU_REGION_NUMBER0 + * @arg @ref LL_MPU_REGION_NUMBER1 + * @arg @ref LL_MPU_REGION_NUMBER2 + * @arg @ref LL_MPU_REGION_NUMBER3 + * @arg @ref LL_MPU_REGION_NUMBER4 + * @arg @ref LL_MPU_REGION_NUMBER5 + * @arg @ref LL_MPU_REGION_NUMBER6 + * @arg @ref LL_MPU_REGION_NUMBER7 + * @retval None + */ +__STATIC_INLINE void LL_MPU_EnableRegion(uint32_t Region) +{ + /* Set Region number */ + WRITE_REG(MPU->RNR, Region); + /* Enable the MPU region */ + SET_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); +} + +/** + * @brief Configure and enable a region + * @rmtoll MPU_RNR REGION LL_MPU_ConfigRegion\n + * MPU_RBAR REGION LL_MPU_ConfigRegion\n + * MPU_RBAR ADDR LL_MPU_ConfigRegion\n + * MPU_RASR XN LL_MPU_ConfigRegion\n + * MPU_RASR AP LL_MPU_ConfigRegion\n + * MPU_RASR S LL_MPU_ConfigRegion\n + * MPU_RASR C LL_MPU_ConfigRegion\n + * MPU_RASR B LL_MPU_ConfigRegion\n + * MPU_RASR SIZE LL_MPU_ConfigRegion + * @param Region This parameter can be one of the following values: + * @arg @ref LL_MPU_REGION_NUMBER0 + * @arg @ref LL_MPU_REGION_NUMBER1 + * @arg @ref LL_MPU_REGION_NUMBER2 + * @arg @ref LL_MPU_REGION_NUMBER3 + * @arg @ref LL_MPU_REGION_NUMBER4 + * @arg @ref LL_MPU_REGION_NUMBER5 + * @arg @ref LL_MPU_REGION_NUMBER6 + * @arg @ref LL_MPU_REGION_NUMBER7 + * @param Address Value of region base address + * @param SubRegionDisable Sub-region disable value between Min_Data = 0x00 and Max_Data = 0xFF + * @param Attributes This parameter can be a combination of the following values: + * @arg @ref LL_MPU_REGION_SIZE_32B or @ref LL_MPU_REGION_SIZE_64B or @ref LL_MPU_REGION_SIZE_128B or @ref LL_MPU_REGION_SIZE_256B or @ref LL_MPU_REGION_SIZE_512B + * or @ref LL_MPU_REGION_SIZE_1KB or @ref LL_MPU_REGION_SIZE_2KB or @ref LL_MPU_REGION_SIZE_4KB or @ref LL_MPU_REGION_SIZE_8KB or @ref LL_MPU_REGION_SIZE_16KB + * or @ref LL_MPU_REGION_SIZE_32KB or @ref LL_MPU_REGION_SIZE_64KB or @ref LL_MPU_REGION_SIZE_128KB or @ref LL_MPU_REGION_SIZE_256KB or @ref LL_MPU_REGION_SIZE_512KB + * or @ref LL_MPU_REGION_SIZE_1MB or @ref LL_MPU_REGION_SIZE_2MB or @ref LL_MPU_REGION_SIZE_4MB or @ref LL_MPU_REGION_SIZE_8MB or @ref LL_MPU_REGION_SIZE_16MB + * or @ref LL_MPU_REGION_SIZE_32MB or @ref LL_MPU_REGION_SIZE_64MB or @ref LL_MPU_REGION_SIZE_128MB or @ref LL_MPU_REGION_SIZE_256MB or @ref LL_MPU_REGION_SIZE_512MB + * or @ref LL_MPU_REGION_SIZE_1GB or @ref LL_MPU_REGION_SIZE_2GB or @ref LL_MPU_REGION_SIZE_4GB + * @arg @ref LL_MPU_REGION_NO_ACCESS or @ref LL_MPU_REGION_PRIV_RW or @ref LL_MPU_REGION_PRIV_RW_URO or @ref LL_MPU_REGION_FULL_ACCESS + * or @ref LL_MPU_REGION_PRIV_RO or @ref LL_MPU_REGION_PRIV_RO_URO + * @arg @ref LL_MPU_TEX_LEVEL0 or @ref LL_MPU_TEX_LEVEL1 or @ref LL_MPU_TEX_LEVEL2 or @ref LL_MPU_TEX_LEVEL4 + * @arg @ref LL_MPU_INSTRUCTION_ACCESS_ENABLE or @ref LL_MPU_INSTRUCTION_ACCESS_DISABLE + * @arg @ref LL_MPU_ACCESS_SHAREABLE or @ref LL_MPU_ACCESS_NOT_SHAREABLE + * @arg @ref LL_MPU_ACCESS_CACHEABLE or @ref LL_MPU_ACCESS_NOT_CACHEABLE + * @arg @ref LL_MPU_ACCESS_BUFFERABLE or @ref LL_MPU_ACCESS_NOT_BUFFERABLE + * @retval None + */ +__STATIC_INLINE void LL_MPU_ConfigRegion(uint32_t Region, uint32_t SubRegionDisable, uint32_t Address, uint32_t Attributes) +{ + /* Set Region number */ + WRITE_REG(MPU->RNR, Region); + /* Set base address */ + WRITE_REG(MPU->RBAR, (Address & 0xFFFFFFE0U)); + /* Configure MPU */ + WRITE_REG(MPU->RASR, (MPU_RASR_ENABLE_Msk | Attributes | (SubRegionDisable << MPU_RASR_SRD_Pos))); +} + +/** + * @brief Disable a region + * @rmtoll MPU_RNR REGION LL_MPU_DisableRegion\n + * MPU_RASR ENABLE LL_MPU_DisableRegion + * @param Region This parameter can be one of the following values: + * @arg @ref LL_MPU_REGION_NUMBER0 + * @arg @ref LL_MPU_REGION_NUMBER1 + * @arg @ref LL_MPU_REGION_NUMBER2 + * @arg @ref LL_MPU_REGION_NUMBER3 + * @arg @ref LL_MPU_REGION_NUMBER4 + * @arg @ref LL_MPU_REGION_NUMBER5 + * @arg @ref LL_MPU_REGION_NUMBER6 + * @arg @ref LL_MPU_REGION_NUMBER7 + * @retval None + */ +__STATIC_INLINE void LL_MPU_DisableRegion(uint32_t Region) +{ + /* Set Region number */ + WRITE_REG(MPU->RNR, Region); + /* Disable the MPU region */ + CLEAR_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); +} + +/** + * @} + */ + +#endif /* __MPU_PRESENT */ +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_LL_CORTEX_H */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_dma.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_dma.h new file mode 100644 index 0000000..ee30c2b --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_dma.h @@ -0,0 +1,1996 @@ +/** + ****************************************************************************** + * @file stm32l1xx_ll_dma.h + * @author MCD Application Team + * @brief Header file of DMA LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_LL_DMA_H +#define __STM32L1xx_LL_DMA_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx.h" + +/** @addtogroup STM32L1xx_LL_Driver + * @{ + */ + +#if defined (DMA1) || defined (DMA2) + +/** @defgroup DMA_LL DMA + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/** @defgroup DMA_LL_Private_Variables DMA Private Variables + * @{ + */ +/* Array used to get the DMA channel register offset versus channel index LL_DMA_CHANNEL_x */ +static const uint8_t CHANNEL_OFFSET_TAB[] = +{ + (uint8_t)(DMA1_Channel1_BASE - DMA1_BASE), + (uint8_t)(DMA1_Channel2_BASE - DMA1_BASE), + (uint8_t)(DMA1_Channel3_BASE - DMA1_BASE), + (uint8_t)(DMA1_Channel4_BASE - DMA1_BASE), + (uint8_t)(DMA1_Channel5_BASE - DMA1_BASE), + (uint8_t)(DMA1_Channel6_BASE - DMA1_BASE), + (uint8_t)(DMA1_Channel7_BASE - DMA1_BASE) +}; +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ + +/* Private macros ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup DMA_LL_Private_Macros DMA Private Macros + * @{ + */ +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup DMA_LL_ES_INIT DMA Exported Init structure + * @{ + */ +typedef struct +{ + uint32_t PeriphOrM2MSrcAddress; /*!< Specifies the peripheral base address for DMA transfer + or as Source base address in case of memory to memory transfer direction. + + This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. */ + + uint32_t MemoryOrM2MDstAddress; /*!< Specifies the memory base address for DMA transfer + or as Destination base address in case of memory to memory transfer direction. + + This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. */ + + uint32_t Direction; /*!< Specifies if the data will be transferred from memory to peripheral, + from memory to memory or from peripheral to memory. + This parameter can be a value of @ref DMA_LL_EC_DIRECTION + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetDataTransferDirection(). */ + + uint32_t Mode; /*!< Specifies the normal or circular operation mode. + This parameter can be a value of @ref DMA_LL_EC_MODE + @note: The circular buffer mode cannot be used if the memory to memory + data transfer direction is configured on the selected Channel + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetMode(). */ + + uint32_t PeriphOrM2MSrcIncMode; /*!< Specifies whether the Peripheral address or Source address in case of memory to memory transfer direction + is incremented or not. + This parameter can be a value of @ref DMA_LL_EC_PERIPH + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetPeriphIncMode(). */ + + uint32_t MemoryOrM2MDstIncMode; /*!< Specifies whether the Memory address or Destination address in case of memory to memory transfer direction + is incremented or not. + This parameter can be a value of @ref DMA_LL_EC_MEMORY + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetMemoryIncMode(). */ + + uint32_t PeriphOrM2MSrcDataSize; /*!< Specifies the Peripheral data size alignment or Source data size alignment (byte, half word, word) + in case of memory to memory transfer direction. + This parameter can be a value of @ref DMA_LL_EC_PDATAALIGN + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetPeriphSize(). */ + + uint32_t MemoryOrM2MDstDataSize; /*!< Specifies the Memory data size alignment or Destination data size alignment (byte, half word, word) + in case of memory to memory transfer direction. + This parameter can be a value of @ref DMA_LL_EC_MDATAALIGN + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetMemorySize(). */ + + uint32_t NbData; /*!< Specifies the number of data to transfer, in data unit. + The data unit is equal to the source buffer configuration set in PeripheralSize + or MemorySize parameters depending in the transfer direction. + This parameter must be a value between Min_Data = 0 and Max_Data = 0x0000FFFF + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetDataLength(). */ + + uint32_t Priority; /*!< Specifies the channel priority level. + This parameter can be a value of @ref DMA_LL_EC_PRIORITY + + This feature can be modified afterwards using unitary function @ref LL_DMA_SetChannelPriorityLevel(). */ + +} LL_DMA_InitTypeDef; +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup DMA_LL_Exported_Constants DMA Exported Constants + * @{ + */ +/** @defgroup DMA_LL_EC_CLEAR_FLAG Clear Flags Defines + * @brief Flags defines which can be used with LL_DMA_WriteReg function + * @{ + */ +#define LL_DMA_IFCR_CGIF1 DMA_IFCR_CGIF1 /*!< Channel 1 global flag */ +#define LL_DMA_IFCR_CTCIF1 DMA_IFCR_CTCIF1 /*!< Channel 1 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF1 DMA_IFCR_CHTIF1 /*!< Channel 1 half transfer flag */ +#define LL_DMA_IFCR_CTEIF1 DMA_IFCR_CTEIF1 /*!< Channel 1 transfer error flag */ +#define LL_DMA_IFCR_CGIF2 DMA_IFCR_CGIF2 /*!< Channel 2 global flag */ +#define LL_DMA_IFCR_CTCIF2 DMA_IFCR_CTCIF2 /*!< Channel 2 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF2 DMA_IFCR_CHTIF2 /*!< Channel 2 half transfer flag */ +#define LL_DMA_IFCR_CTEIF2 DMA_IFCR_CTEIF2 /*!< Channel 2 transfer error flag */ +#define LL_DMA_IFCR_CGIF3 DMA_IFCR_CGIF3 /*!< Channel 3 global flag */ +#define LL_DMA_IFCR_CTCIF3 DMA_IFCR_CTCIF3 /*!< Channel 3 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF3 DMA_IFCR_CHTIF3 /*!< Channel 3 half transfer flag */ +#define LL_DMA_IFCR_CTEIF3 DMA_IFCR_CTEIF3 /*!< Channel 3 transfer error flag */ +#define LL_DMA_IFCR_CGIF4 DMA_IFCR_CGIF4 /*!< Channel 4 global flag */ +#define LL_DMA_IFCR_CTCIF4 DMA_IFCR_CTCIF4 /*!< Channel 4 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF4 DMA_IFCR_CHTIF4 /*!< Channel 4 half transfer flag */ +#define LL_DMA_IFCR_CTEIF4 DMA_IFCR_CTEIF4 /*!< Channel 4 transfer error flag */ +#define LL_DMA_IFCR_CGIF5 DMA_IFCR_CGIF5 /*!< Channel 5 global flag */ +#define LL_DMA_IFCR_CTCIF5 DMA_IFCR_CTCIF5 /*!< Channel 5 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF5 DMA_IFCR_CHTIF5 /*!< Channel 5 half transfer flag */ +#define LL_DMA_IFCR_CTEIF5 DMA_IFCR_CTEIF5 /*!< Channel 5 transfer error flag */ +#define LL_DMA_IFCR_CGIF6 DMA_IFCR_CGIF6 /*!< Channel 6 global flag */ +#define LL_DMA_IFCR_CTCIF6 DMA_IFCR_CTCIF6 /*!< Channel 6 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF6 DMA_IFCR_CHTIF6 /*!< Channel 6 half transfer flag */ +#define LL_DMA_IFCR_CTEIF6 DMA_IFCR_CTEIF6 /*!< Channel 6 transfer error flag */ +#define LL_DMA_IFCR_CGIF7 DMA_IFCR_CGIF7 /*!< Channel 7 global flag */ +#define LL_DMA_IFCR_CTCIF7 DMA_IFCR_CTCIF7 /*!< Channel 7 transfer complete flag */ +#define LL_DMA_IFCR_CHTIF7 DMA_IFCR_CHTIF7 /*!< Channel 7 half transfer flag */ +#define LL_DMA_IFCR_CTEIF7 DMA_IFCR_CTEIF7 /*!< Channel 7 transfer error flag */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_DMA_ReadReg function + * @{ + */ +#define LL_DMA_ISR_GIF1 DMA_ISR_GIF1 /*!< Channel 1 global flag */ +#define LL_DMA_ISR_TCIF1 DMA_ISR_TCIF1 /*!< Channel 1 transfer complete flag */ +#define LL_DMA_ISR_HTIF1 DMA_ISR_HTIF1 /*!< Channel 1 half transfer flag */ +#define LL_DMA_ISR_TEIF1 DMA_ISR_TEIF1 /*!< Channel 1 transfer error flag */ +#define LL_DMA_ISR_GIF2 DMA_ISR_GIF2 /*!< Channel 2 global flag */ +#define LL_DMA_ISR_TCIF2 DMA_ISR_TCIF2 /*!< Channel 2 transfer complete flag */ +#define LL_DMA_ISR_HTIF2 DMA_ISR_HTIF2 /*!< Channel 2 half transfer flag */ +#define LL_DMA_ISR_TEIF2 DMA_ISR_TEIF2 /*!< Channel 2 transfer error flag */ +#define LL_DMA_ISR_GIF3 DMA_ISR_GIF3 /*!< Channel 3 global flag */ +#define LL_DMA_ISR_TCIF3 DMA_ISR_TCIF3 /*!< Channel 3 transfer complete flag */ +#define LL_DMA_ISR_HTIF3 DMA_ISR_HTIF3 /*!< Channel 3 half transfer flag */ +#define LL_DMA_ISR_TEIF3 DMA_ISR_TEIF3 /*!< Channel 3 transfer error flag */ +#define LL_DMA_ISR_GIF4 DMA_ISR_GIF4 /*!< Channel 4 global flag */ +#define LL_DMA_ISR_TCIF4 DMA_ISR_TCIF4 /*!< Channel 4 transfer complete flag */ +#define LL_DMA_ISR_HTIF4 DMA_ISR_HTIF4 /*!< Channel 4 half transfer flag */ +#define LL_DMA_ISR_TEIF4 DMA_ISR_TEIF4 /*!< Channel 4 transfer error flag */ +#define LL_DMA_ISR_GIF5 DMA_ISR_GIF5 /*!< Channel 5 global flag */ +#define LL_DMA_ISR_TCIF5 DMA_ISR_TCIF5 /*!< Channel 5 transfer complete flag */ +#define LL_DMA_ISR_HTIF5 DMA_ISR_HTIF5 /*!< Channel 5 half transfer flag */ +#define LL_DMA_ISR_TEIF5 DMA_ISR_TEIF5 /*!< Channel 5 transfer error flag */ +#define LL_DMA_ISR_GIF6 DMA_ISR_GIF6 /*!< Channel 6 global flag */ +#define LL_DMA_ISR_TCIF6 DMA_ISR_TCIF6 /*!< Channel 6 transfer complete flag */ +#define LL_DMA_ISR_HTIF6 DMA_ISR_HTIF6 /*!< Channel 6 half transfer flag */ +#define LL_DMA_ISR_TEIF6 DMA_ISR_TEIF6 /*!< Channel 6 transfer error flag */ +#define LL_DMA_ISR_GIF7 DMA_ISR_GIF7 /*!< Channel 7 global flag */ +#define LL_DMA_ISR_TCIF7 DMA_ISR_TCIF7 /*!< Channel 7 transfer complete flag */ +#define LL_DMA_ISR_HTIF7 DMA_ISR_HTIF7 /*!< Channel 7 half transfer flag */ +#define LL_DMA_ISR_TEIF7 DMA_ISR_TEIF7 /*!< Channel 7 transfer error flag */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_DMA_ReadReg and LL_DMA_WriteReg functions + * @{ + */ +#define LL_DMA_CCR_TCIE DMA_CCR_TCIE /*!< Transfer complete interrupt */ +#define LL_DMA_CCR_HTIE DMA_CCR_HTIE /*!< Half Transfer interrupt */ +#define LL_DMA_CCR_TEIE DMA_CCR_TEIE /*!< Transfer error interrupt */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_CHANNEL CHANNEL + * @{ + */ +#define LL_DMA_CHANNEL_1 0x00000001U /*!< DMA Channel 1 */ +#define LL_DMA_CHANNEL_2 0x00000002U /*!< DMA Channel 2 */ +#define LL_DMA_CHANNEL_3 0x00000003U /*!< DMA Channel 3 */ +#define LL_DMA_CHANNEL_4 0x00000004U /*!< DMA Channel 4 */ +#define LL_DMA_CHANNEL_5 0x00000005U /*!< DMA Channel 5 */ +#define LL_DMA_CHANNEL_6 0x00000006U /*!< DMA Channel 6 */ +#define LL_DMA_CHANNEL_7 0x00000007U /*!< DMA Channel 7 */ +#if defined(USE_FULL_LL_DRIVER) +#define LL_DMA_CHANNEL_ALL 0xFFFF0000U /*!< DMA Channel all (used only for function @ref LL_DMA_DeInit(). */ +#endif /*USE_FULL_LL_DRIVER*/ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_DIRECTION Transfer Direction + * @{ + */ +#define LL_DMA_DIRECTION_PERIPH_TO_MEMORY 0x00000000U /*!< Peripheral to memory direction */ +#define LL_DMA_DIRECTION_MEMORY_TO_PERIPH DMA_CCR_DIR /*!< Memory to peripheral direction */ +#define LL_DMA_DIRECTION_MEMORY_TO_MEMORY DMA_CCR_MEM2MEM /*!< Memory to memory direction */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_MODE Transfer mode + * @{ + */ +#define LL_DMA_MODE_NORMAL 0x00000000U /*!< Normal Mode */ +#define LL_DMA_MODE_CIRCULAR DMA_CCR_CIRC /*!< Circular Mode */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_PERIPH Peripheral increment mode + * @{ + */ +#define LL_DMA_PERIPH_INCREMENT DMA_CCR_PINC /*!< Peripheral increment mode Enable */ +#define LL_DMA_PERIPH_NOINCREMENT 0x00000000U /*!< Peripheral increment mode Disable */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_MEMORY Memory increment mode + * @{ + */ +#define LL_DMA_MEMORY_INCREMENT DMA_CCR_MINC /*!< Memory increment mode Enable */ +#define LL_DMA_MEMORY_NOINCREMENT 0x00000000U /*!< Memory increment mode Disable */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_PDATAALIGN Peripheral data alignment + * @{ + */ +#define LL_DMA_PDATAALIGN_BYTE 0x00000000U /*!< Peripheral data alignment : Byte */ +#define LL_DMA_PDATAALIGN_HALFWORD DMA_CCR_PSIZE_0 /*!< Peripheral data alignment : HalfWord */ +#define LL_DMA_PDATAALIGN_WORD DMA_CCR_PSIZE_1 /*!< Peripheral data alignment : Word */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_MDATAALIGN Memory data alignment + * @{ + */ +#define LL_DMA_MDATAALIGN_BYTE 0x00000000U /*!< Memory data alignment : Byte */ +#define LL_DMA_MDATAALIGN_HALFWORD DMA_CCR_MSIZE_0 /*!< Memory data alignment : HalfWord */ +#define LL_DMA_MDATAALIGN_WORD DMA_CCR_MSIZE_1 /*!< Memory data alignment : Word */ +/** + * @} + */ + +/** @defgroup DMA_LL_EC_PRIORITY Transfer Priority level + * @{ + */ +#define LL_DMA_PRIORITY_LOW 0x00000000U /*!< Priority level : Low */ +#define LL_DMA_PRIORITY_MEDIUM DMA_CCR_PL_0 /*!< Priority level : Medium */ +#define LL_DMA_PRIORITY_HIGH DMA_CCR_PL_1 /*!< Priority level : High */ +#define LL_DMA_PRIORITY_VERYHIGH DMA_CCR_PL /*!< Priority level : Very_High */ +/** + * @} + */ + + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup DMA_LL_Exported_Macros DMA Exported Macros + * @{ + */ + +/** @defgroup DMA_LL_EM_WRITE_READ Common Write and read registers macros + * @{ + */ +/** + * @brief Write a value in DMA register + * @param __INSTANCE__ DMA Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_DMA_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in DMA register + * @param __INSTANCE__ DMA Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_DMA_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** @defgroup DMA_LL_EM_CONVERT_DMAxCHANNELy Convert DMAxChannely + * @{ + */ +/** + * @brief Convert DMAx_Channely into DMAx + * @param __CHANNEL_INSTANCE__ DMAx_Channely + * @retval DMAx + */ +#if defined(DMA2) +#define __LL_DMA_GET_INSTANCE(__CHANNEL_INSTANCE__) \ +(((uint32_t)(__CHANNEL_INSTANCE__) > ((uint32_t)DMA1_Channel7)) ? DMA2 : DMA1) +#else +#define __LL_DMA_GET_INSTANCE(__CHANNEL_INSTANCE__) (DMA1) +#endif + +/** + * @brief Convert DMAx_Channely into LL_DMA_CHANNEL_y + * @param __CHANNEL_INSTANCE__ DMAx_Channely + * @retval LL_DMA_CHANNEL_y + */ +#if defined (DMA2) +#if defined (DMA2_Channel6) && defined (DMA2_Channel7) +#define __LL_DMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \ +(((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel1)) ? LL_DMA_CHANNEL_1 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel1)) ? LL_DMA_CHANNEL_1 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel2)) ? LL_DMA_CHANNEL_2 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel2)) ? LL_DMA_CHANNEL_2 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel3)) ? LL_DMA_CHANNEL_3 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel3)) ? LL_DMA_CHANNEL_3 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel4)) ? LL_DMA_CHANNEL_4 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel4)) ? LL_DMA_CHANNEL_4 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel5)) ? LL_DMA_CHANNEL_5 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel5)) ? LL_DMA_CHANNEL_5 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel6)) ? LL_DMA_CHANNEL_6 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel6)) ? LL_DMA_CHANNEL_6 : \ + LL_DMA_CHANNEL_7) +#else +#define __LL_DMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \ +(((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel1)) ? LL_DMA_CHANNEL_1 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel1)) ? LL_DMA_CHANNEL_1 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel2)) ? LL_DMA_CHANNEL_2 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel2)) ? LL_DMA_CHANNEL_2 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel3)) ? LL_DMA_CHANNEL_3 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel3)) ? LL_DMA_CHANNEL_3 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel4)) ? LL_DMA_CHANNEL_4 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel4)) ? LL_DMA_CHANNEL_4 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel5)) ? LL_DMA_CHANNEL_5 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA2_Channel5)) ? LL_DMA_CHANNEL_5 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel6)) ? LL_DMA_CHANNEL_6 : \ + LL_DMA_CHANNEL_7) +#endif +#else +#define __LL_DMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \ +(((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel1)) ? LL_DMA_CHANNEL_1 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel2)) ? LL_DMA_CHANNEL_2 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel3)) ? LL_DMA_CHANNEL_3 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel4)) ? LL_DMA_CHANNEL_4 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel5)) ? LL_DMA_CHANNEL_5 : \ + ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)DMA1_Channel6)) ? LL_DMA_CHANNEL_6 : \ + LL_DMA_CHANNEL_7) +#endif + +/** + * @brief Convert DMA Instance DMAx and LL_DMA_CHANNEL_y into DMAx_Channely + * @param __DMA_INSTANCE__ DMAx + * @param __CHANNEL__ LL_DMA_CHANNEL_y + * @retval DMAx_Channely + */ +#if defined (DMA2) +#if defined (DMA2_Channel6) && defined (DMA2_Channel7) +#define __LL_DMA_GET_CHANNEL_INSTANCE(__DMA_INSTANCE__, __CHANNEL__) \ +((((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA1_Channel1 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA2_Channel1 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA1_Channel2 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA2_Channel2 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA1_Channel3 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA2_Channel3 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA1_Channel4 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA2_Channel4 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA1_Channel5 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA2_Channel5 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA1_Channel6 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA2_Channel6 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_7))) ? DMA1_Channel7 : \ + DMA2_Channel7) +#else +#define __LL_DMA_GET_CHANNEL_INSTANCE(__DMA_INSTANCE__, __CHANNEL__) \ +((((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA1_Channel1 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA2_Channel1 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA1_Channel2 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA2_Channel2 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA1_Channel3 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA2_Channel3 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA1_Channel4 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA2_Channel4 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA1_Channel5 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA2_Channel5 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA1_Channel6 : \ + DMA1_Channel7) +#endif +#else +#define __LL_DMA_GET_CHANNEL_INSTANCE(__DMA_INSTANCE__, __CHANNEL__) \ +((((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_1))) ? DMA1_Channel1 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_2))) ? DMA1_Channel2 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_3))) ? DMA1_Channel3 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_4))) ? DMA1_Channel4 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_5))) ? DMA1_Channel5 : \ + (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_DMA_CHANNEL_6))) ? DMA1_Channel6 : \ + DMA1_Channel7) +#endif + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup DMA_LL_Exported_Functions DMA Exported Functions + * @{ + */ + +/** @defgroup DMA_LL_EF_Configuration Configuration + * @{ + */ +/** + * @brief Enable DMA channel. + * @rmtoll CCR EN LL_DMA_EnableChannel + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableChannel(DMA_TypeDef *DMAx, uint32_t Channel) +{ + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_EN); +} + +/** + * @brief Disable DMA channel. + * @rmtoll CCR EN LL_DMA_DisableChannel + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableChannel(DMA_TypeDef *DMAx, uint32_t Channel) +{ + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_EN); +} + +/** + * @brief Check if DMA channel is enabled or disabled. + * @rmtoll CCR EN LL_DMA_IsEnabledChannel + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledChannel(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_EN) == (DMA_CCR_EN)); +} + +/** + * @brief Configure all parameters link to DMA transfer. + * @rmtoll CCR DIR LL_DMA_ConfigTransfer\n + * CCR MEM2MEM LL_DMA_ConfigTransfer\n + * CCR CIRC LL_DMA_ConfigTransfer\n + * CCR PINC LL_DMA_ConfigTransfer\n + * CCR MINC LL_DMA_ConfigTransfer\n + * CCR PSIZE LL_DMA_ConfigTransfer\n + * CCR MSIZE LL_DMA_ConfigTransfer\n + * CCR PL LL_DMA_ConfigTransfer + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param Configuration This parameter must be a combination of all the following values: + * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY or @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH or @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY + * @arg @ref LL_DMA_MODE_NORMAL or @ref LL_DMA_MODE_CIRCULAR + * @arg @ref LL_DMA_PERIPH_INCREMENT or @ref LL_DMA_PERIPH_NOINCREMENT + * @arg @ref LL_DMA_MEMORY_INCREMENT or @ref LL_DMA_MEMORY_NOINCREMENT + * @arg @ref LL_DMA_PDATAALIGN_BYTE or @ref LL_DMA_PDATAALIGN_HALFWORD or @ref LL_DMA_PDATAALIGN_WORD + * @arg @ref LL_DMA_MDATAALIGN_BYTE or @ref LL_DMA_MDATAALIGN_HALFWORD or @ref LL_DMA_MDATAALIGN_WORD + * @arg @ref LL_DMA_PRIORITY_LOW or @ref LL_DMA_PRIORITY_MEDIUM or @ref LL_DMA_PRIORITY_HIGH or @ref LL_DMA_PRIORITY_VERYHIGH + * @retval None + */ +__STATIC_INLINE void LL_DMA_ConfigTransfer(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Configuration) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_DIR | DMA_CCR_MEM2MEM | DMA_CCR_CIRC | DMA_CCR_PINC | DMA_CCR_MINC | DMA_CCR_PSIZE | DMA_CCR_MSIZE | DMA_CCR_PL, + Configuration); +} + +/** + * @brief Set Data transfer direction (read from peripheral or from memory). + * @rmtoll CCR DIR LL_DMA_SetDataTransferDirection\n + * CCR MEM2MEM LL_DMA_SetDataTransferDirection + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param Direction This parameter can be one of the following values: + * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetDataTransferDirection(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Direction) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_DIR | DMA_CCR_MEM2MEM, Direction); +} + +/** + * @brief Get Data transfer direction (read from peripheral or from memory). + * @rmtoll CCR DIR LL_DMA_GetDataTransferDirection\n + * CCR MEM2MEM LL_DMA_GetDataTransferDirection + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY + */ +__STATIC_INLINE uint32_t LL_DMA_GetDataTransferDirection(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_DIR | DMA_CCR_MEM2MEM)); +} + +/** + * @brief Set DMA mode circular or normal. + * @note The circular buffer mode cannot be used if the memory-to-memory + * data transfer is configured on the selected Channel. + * @rmtoll CCR CIRC LL_DMA_SetMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param Mode This parameter can be one of the following values: + * @arg @ref LL_DMA_MODE_NORMAL + * @arg @ref LL_DMA_MODE_CIRCULAR + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Mode) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_CIRC, + Mode); +} + +/** + * @brief Get DMA mode circular or normal. + * @rmtoll CCR CIRC LL_DMA_GetMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_MODE_NORMAL + * @arg @ref LL_DMA_MODE_CIRCULAR + */ +__STATIC_INLINE uint32_t LL_DMA_GetMode(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_CIRC)); +} + +/** + * @brief Set Peripheral increment mode. + * @rmtoll CCR PINC LL_DMA_SetPeriphIncMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param PeriphOrM2MSrcIncMode This parameter can be one of the following values: + * @arg @ref LL_DMA_PERIPH_INCREMENT + * @arg @ref LL_DMA_PERIPH_NOINCREMENT + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetPeriphIncMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphOrM2MSrcIncMode) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_PINC, + PeriphOrM2MSrcIncMode); +} + +/** + * @brief Get Peripheral increment mode. + * @rmtoll CCR PINC LL_DMA_GetPeriphIncMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_PERIPH_INCREMENT + * @arg @ref LL_DMA_PERIPH_NOINCREMENT + */ +__STATIC_INLINE uint32_t LL_DMA_GetPeriphIncMode(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_PINC)); +} + +/** + * @brief Set Memory increment mode. + * @rmtoll CCR MINC LL_DMA_SetMemoryIncMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param MemoryOrM2MDstIncMode This parameter can be one of the following values: + * @arg @ref LL_DMA_MEMORY_INCREMENT + * @arg @ref LL_DMA_MEMORY_NOINCREMENT + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetMemoryIncMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryOrM2MDstIncMode) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_MINC, + MemoryOrM2MDstIncMode); +} + +/** + * @brief Get Memory increment mode. + * @rmtoll CCR MINC LL_DMA_GetMemoryIncMode + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_MEMORY_INCREMENT + * @arg @ref LL_DMA_MEMORY_NOINCREMENT + */ +__STATIC_INLINE uint32_t LL_DMA_GetMemoryIncMode(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_MINC)); +} + +/** + * @brief Set Peripheral size. + * @rmtoll CCR PSIZE LL_DMA_SetPeriphSize + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param PeriphOrM2MSrcDataSize This parameter can be one of the following values: + * @arg @ref LL_DMA_PDATAALIGN_BYTE + * @arg @ref LL_DMA_PDATAALIGN_HALFWORD + * @arg @ref LL_DMA_PDATAALIGN_WORD + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetPeriphSize(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphOrM2MSrcDataSize) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_PSIZE, + PeriphOrM2MSrcDataSize); +} + +/** + * @brief Get Peripheral size. + * @rmtoll CCR PSIZE LL_DMA_GetPeriphSize + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_PDATAALIGN_BYTE + * @arg @ref LL_DMA_PDATAALIGN_HALFWORD + * @arg @ref LL_DMA_PDATAALIGN_WORD + */ +__STATIC_INLINE uint32_t LL_DMA_GetPeriphSize(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_PSIZE)); +} + +/** + * @brief Set Memory size. + * @rmtoll CCR MSIZE LL_DMA_SetMemorySize + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param MemoryOrM2MDstDataSize This parameter can be one of the following values: + * @arg @ref LL_DMA_MDATAALIGN_BYTE + * @arg @ref LL_DMA_MDATAALIGN_HALFWORD + * @arg @ref LL_DMA_MDATAALIGN_WORD + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetMemorySize(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryOrM2MDstDataSize) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_MSIZE, + MemoryOrM2MDstDataSize); +} + +/** + * @brief Get Memory size. + * @rmtoll CCR MSIZE LL_DMA_GetMemorySize + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_MDATAALIGN_BYTE + * @arg @ref LL_DMA_MDATAALIGN_HALFWORD + * @arg @ref LL_DMA_MDATAALIGN_WORD + */ +__STATIC_INLINE uint32_t LL_DMA_GetMemorySize(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_MSIZE)); +} + +/** + * @brief Set Channel priority level. + * @rmtoll CCR PL LL_DMA_SetChannelPriorityLevel + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param Priority This parameter can be one of the following values: + * @arg @ref LL_DMA_PRIORITY_LOW + * @arg @ref LL_DMA_PRIORITY_MEDIUM + * @arg @ref LL_DMA_PRIORITY_HIGH + * @arg @ref LL_DMA_PRIORITY_VERYHIGH + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetChannelPriorityLevel(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Priority) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_PL, + Priority); +} + +/** + * @brief Get Channel priority level. + * @rmtoll CCR PL LL_DMA_GetChannelPriorityLevel + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Returned value can be one of the following values: + * @arg @ref LL_DMA_PRIORITY_LOW + * @arg @ref LL_DMA_PRIORITY_MEDIUM + * @arg @ref LL_DMA_PRIORITY_HIGH + * @arg @ref LL_DMA_PRIORITY_VERYHIGH + */ +__STATIC_INLINE uint32_t LL_DMA_GetChannelPriorityLevel(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_PL)); +} + +/** + * @brief Set Number of data to transfer. + * @note This action has no effect if + * channel is enabled. + * @rmtoll CNDTR NDT LL_DMA_SetDataLength + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param NbData Between Min_Data = 0 and Max_Data = 0x0000FFFF + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetDataLength(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t NbData) +{ + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CNDTR, + DMA_CNDTR_NDT, NbData); +} + +/** + * @brief Get Number of data to transfer. + * @note Once the channel is enabled, the return value indicate the + * remaining bytes to be transmitted. + * @rmtoll CNDTR NDT LL_DMA_GetDataLength + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetDataLength(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CNDTR, + DMA_CNDTR_NDT)); +} + +/** + * @brief Configure the Source and Destination addresses. + * @note This API must not be called when the DMA channel is enabled. + * @note Each IP using DMA provides an API to get directly the register address (LL_PPP_DMA_GetRegAddr). + * @rmtoll CPAR PA LL_DMA_ConfigAddresses\n + * CMAR MA LL_DMA_ConfigAddresses + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param SrcAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @param DstAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @param Direction This parameter can be one of the following values: + * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY + * @retval None + */ +__STATIC_INLINE void LL_DMA_ConfigAddresses(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t SrcAddress, + uint32_t DstAddress, uint32_t Direction) +{ + /* Direction Memory to Periph */ + if (Direction == LL_DMA_DIRECTION_MEMORY_TO_PERIPH) + { + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CMAR, SrcAddress); + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CPAR, DstAddress); + } + /* Direction Periph to Memory and Memory to Memory */ + else + { + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CPAR, SrcAddress); + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CMAR, DstAddress); + } +} + +/** + * @brief Set the Memory address. + * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only. + * @note This API must not be called when the DMA channel is enabled. + * @rmtoll CMAR MA LL_DMA_SetMemoryAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param MemoryAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress) +{ + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CMAR, MemoryAddress); +} + +/** + * @brief Set the Peripheral address. + * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only. + * @note This API must not be called when the DMA channel is enabled. + * @rmtoll CPAR PA LL_DMA_SetPeriphAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param PeriphAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphAddress) +{ + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CPAR, PeriphAddress); +} + +/** + * @brief Get Memory address. + * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only. + * @rmtoll CMAR MA LL_DMA_GetMemoryAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CMAR)); +} + +/** + * @brief Get Peripheral address. + * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only. + * @rmtoll CPAR PA LL_DMA_GetPeriphAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CPAR)); +} + +/** + * @brief Set the Memory to Memory Source address. + * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only. + * @note This API must not be called when the DMA channel is enabled. + * @rmtoll CPAR PA LL_DMA_SetM2MSrcAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param MemoryAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetM2MSrcAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress) +{ + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CPAR, MemoryAddress); +} + +/** + * @brief Set the Memory to Memory Destination address. + * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only. + * @note This API must not be called when the DMA channel is enabled. + * @rmtoll CMAR MA LL_DMA_SetM2MDstAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @param MemoryAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetM2MDstAddress(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryAddress) +{ + WRITE_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CMAR, MemoryAddress); +} + +/** + * @brief Get the Memory to Memory Source address. + * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only. + * @rmtoll CPAR PA LL_DMA_GetM2MSrcAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetM2MSrcAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CPAR)); +} + +/** + * @brief Get the Memory to Memory Destination address. + * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only. + * @rmtoll CMAR MA LL_DMA_GetM2MDstAddress + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF + */ +__STATIC_INLINE uint32_t LL_DMA_GetM2MDstAddress(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CMAR)); +} + + +/** + * @} + */ + +/** @defgroup DMA_LL_EF_FLAG_Management FLAG_Management + * @{ + */ + +/** + * @brief Get Channel 1 global interrupt flag. + * @rmtoll ISR GIF1 LL_DMA_IsActiveFlag_GI1 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI1(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_GIF1) == (DMA_ISR_GIF1)); +} + +/** + * @brief Get Channel 2 global interrupt flag. + * @rmtoll ISR GIF2 LL_DMA_IsActiveFlag_GI2 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI2(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_GIF2) == (DMA_ISR_GIF2)); +} + +/** + * @brief Get Channel 3 global interrupt flag. + * @rmtoll ISR GIF3 LL_DMA_IsActiveFlag_GI3 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI3(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_GIF3) == (DMA_ISR_GIF3)); +} + +/** + * @brief Get Channel 4 global interrupt flag. + * @rmtoll ISR GIF4 LL_DMA_IsActiveFlag_GI4 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI4(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_GIF4) == (DMA_ISR_GIF4)); +} + +/** + * @brief Get Channel 5 global interrupt flag. + * @rmtoll ISR GIF5 LL_DMA_IsActiveFlag_GI5 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI5(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_GIF5) == (DMA_ISR_GIF5)); +} + +/** + * @brief Get Channel 6 global interrupt flag. + * @rmtoll ISR GIF6 LL_DMA_IsActiveFlag_GI6 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI6(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_GIF6) == (DMA_ISR_GIF6)); +} + +/** + * @brief Get Channel 7 global interrupt flag. + * @rmtoll ISR GIF7 LL_DMA_IsActiveFlag_GI7 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_GI7(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_GIF7) == (DMA_ISR_GIF7)); +} + +/** + * @brief Get Channel 1 transfer complete flag. + * @rmtoll ISR TCIF1 LL_DMA_IsActiveFlag_TC1 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC1(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TCIF1) == (DMA_ISR_TCIF1)); +} + +/** + * @brief Get Channel 2 transfer complete flag. + * @rmtoll ISR TCIF2 LL_DMA_IsActiveFlag_TC2 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC2(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TCIF2) == (DMA_ISR_TCIF2)); +} + +/** + * @brief Get Channel 3 transfer complete flag. + * @rmtoll ISR TCIF3 LL_DMA_IsActiveFlag_TC3 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC3(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TCIF3) == (DMA_ISR_TCIF3)); +} + +/** + * @brief Get Channel 4 transfer complete flag. + * @rmtoll ISR TCIF4 LL_DMA_IsActiveFlag_TC4 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC4(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TCIF4) == (DMA_ISR_TCIF4)); +} + +/** + * @brief Get Channel 5 transfer complete flag. + * @rmtoll ISR TCIF5 LL_DMA_IsActiveFlag_TC5 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC5(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TCIF5) == (DMA_ISR_TCIF5)); +} + +/** + * @brief Get Channel 6 transfer complete flag. + * @rmtoll ISR TCIF6 LL_DMA_IsActiveFlag_TC6 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC6(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TCIF6) == (DMA_ISR_TCIF6)); +} + +/** + * @brief Get Channel 7 transfer complete flag. + * @rmtoll ISR TCIF7 LL_DMA_IsActiveFlag_TC7 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC7(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TCIF7) == (DMA_ISR_TCIF7)); +} + +/** + * @brief Get Channel 1 half transfer flag. + * @rmtoll ISR HTIF1 LL_DMA_IsActiveFlag_HT1 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT1(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_HTIF1) == (DMA_ISR_HTIF1)); +} + +/** + * @brief Get Channel 2 half transfer flag. + * @rmtoll ISR HTIF2 LL_DMA_IsActiveFlag_HT2 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT2(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_HTIF2) == (DMA_ISR_HTIF2)); +} + +/** + * @brief Get Channel 3 half transfer flag. + * @rmtoll ISR HTIF3 LL_DMA_IsActiveFlag_HT3 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT3(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_HTIF3) == (DMA_ISR_HTIF3)); +} + +/** + * @brief Get Channel 4 half transfer flag. + * @rmtoll ISR HTIF4 LL_DMA_IsActiveFlag_HT4 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT4(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_HTIF4) == (DMA_ISR_HTIF4)); +} + +/** + * @brief Get Channel 5 half transfer flag. + * @rmtoll ISR HTIF5 LL_DMA_IsActiveFlag_HT5 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT5(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_HTIF5) == (DMA_ISR_HTIF5)); +} + +/** + * @brief Get Channel 6 half transfer flag. + * @rmtoll ISR HTIF6 LL_DMA_IsActiveFlag_HT6 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT6(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_HTIF6) == (DMA_ISR_HTIF6)); +} + +/** + * @brief Get Channel 7 half transfer flag. + * @rmtoll ISR HTIF7 LL_DMA_IsActiveFlag_HT7 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT7(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_HTIF7) == (DMA_ISR_HTIF7)); +} + +/** + * @brief Get Channel 1 transfer error flag. + * @rmtoll ISR TEIF1 LL_DMA_IsActiveFlag_TE1 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE1(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TEIF1) == (DMA_ISR_TEIF1)); +} + +/** + * @brief Get Channel 2 transfer error flag. + * @rmtoll ISR TEIF2 LL_DMA_IsActiveFlag_TE2 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE2(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TEIF2) == (DMA_ISR_TEIF2)); +} + +/** + * @brief Get Channel 3 transfer error flag. + * @rmtoll ISR TEIF3 LL_DMA_IsActiveFlag_TE3 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE3(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TEIF3) == (DMA_ISR_TEIF3)); +} + +/** + * @brief Get Channel 4 transfer error flag. + * @rmtoll ISR TEIF4 LL_DMA_IsActiveFlag_TE4 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE4(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TEIF4) == (DMA_ISR_TEIF4)); +} + +/** + * @brief Get Channel 5 transfer error flag. + * @rmtoll ISR TEIF5 LL_DMA_IsActiveFlag_TE5 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE5(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TEIF5) == (DMA_ISR_TEIF5)); +} + +/** + * @brief Get Channel 6 transfer error flag. + * @rmtoll ISR TEIF6 LL_DMA_IsActiveFlag_TE6 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE6(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TEIF6) == (DMA_ISR_TEIF6)); +} + +/** + * @brief Get Channel 7 transfer error flag. + * @rmtoll ISR TEIF7 LL_DMA_IsActiveFlag_TE7 + * @param DMAx DMAx Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE7(DMA_TypeDef *DMAx) +{ + return (READ_BIT(DMAx->ISR, DMA_ISR_TEIF7) == (DMA_ISR_TEIF7)); +} + +/** + * @brief Clear Channel 1 global interrupt flag. + * @rmtoll IFCR CGIF1 LL_DMA_ClearFlag_GI1 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI1(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CGIF1); +} + +/** + * @brief Clear Channel 2 global interrupt flag. + * @rmtoll IFCR CGIF2 LL_DMA_ClearFlag_GI2 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI2(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CGIF2); +} + +/** + * @brief Clear Channel 3 global interrupt flag. + * @rmtoll IFCR CGIF3 LL_DMA_ClearFlag_GI3 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI3(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CGIF3); +} + +/** + * @brief Clear Channel 4 global interrupt flag. + * @rmtoll IFCR CGIF4 LL_DMA_ClearFlag_GI4 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI4(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CGIF4); +} + +/** + * @brief Clear Channel 5 global interrupt flag. + * @rmtoll IFCR CGIF5 LL_DMA_ClearFlag_GI5 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI5(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CGIF5); +} + +/** + * @brief Clear Channel 6 global interrupt flag. + * @rmtoll IFCR CGIF6 LL_DMA_ClearFlag_GI6 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI6(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CGIF6); +} + +/** + * @brief Clear Channel 7 global interrupt flag. + * @rmtoll IFCR CGIF7 LL_DMA_ClearFlag_GI7 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_GI7(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CGIF7); +} + +/** + * @brief Clear Channel 1 transfer complete flag. + * @rmtoll IFCR CTCIF1 LL_DMA_ClearFlag_TC1 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC1(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTCIF1); +} + +/** + * @brief Clear Channel 2 transfer complete flag. + * @rmtoll IFCR CTCIF2 LL_DMA_ClearFlag_TC2 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC2(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTCIF2); +} + +/** + * @brief Clear Channel 3 transfer complete flag. + * @rmtoll IFCR CTCIF3 LL_DMA_ClearFlag_TC3 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC3(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTCIF3); +} + +/** + * @brief Clear Channel 4 transfer complete flag. + * @rmtoll IFCR CTCIF4 LL_DMA_ClearFlag_TC4 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC4(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTCIF4); +} + +/** + * @brief Clear Channel 5 transfer complete flag. + * @rmtoll IFCR CTCIF5 LL_DMA_ClearFlag_TC5 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC5(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTCIF5); +} + +/** + * @brief Clear Channel 6 transfer complete flag. + * @rmtoll IFCR CTCIF6 LL_DMA_ClearFlag_TC6 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC6(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTCIF6); +} + +/** + * @brief Clear Channel 7 transfer complete flag. + * @rmtoll IFCR CTCIF7 LL_DMA_ClearFlag_TC7 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TC7(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTCIF7); +} + +/** + * @brief Clear Channel 1 half transfer flag. + * @rmtoll IFCR CHTIF1 LL_DMA_ClearFlag_HT1 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT1(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CHTIF1); +} + +/** + * @brief Clear Channel 2 half transfer flag. + * @rmtoll IFCR CHTIF2 LL_DMA_ClearFlag_HT2 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT2(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CHTIF2); +} + +/** + * @brief Clear Channel 3 half transfer flag. + * @rmtoll IFCR CHTIF3 LL_DMA_ClearFlag_HT3 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT3(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CHTIF3); +} + +/** + * @brief Clear Channel 4 half transfer flag. + * @rmtoll IFCR CHTIF4 LL_DMA_ClearFlag_HT4 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT4(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CHTIF4); +} + +/** + * @brief Clear Channel 5 half transfer flag. + * @rmtoll IFCR CHTIF5 LL_DMA_ClearFlag_HT5 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT5(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CHTIF5); +} + +/** + * @brief Clear Channel 6 half transfer flag. + * @rmtoll IFCR CHTIF6 LL_DMA_ClearFlag_HT6 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT6(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CHTIF6); +} + +/** + * @brief Clear Channel 7 half transfer flag. + * @rmtoll IFCR CHTIF7 LL_DMA_ClearFlag_HT7 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_HT7(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CHTIF7); +} + +/** + * @brief Clear Channel 1 transfer error flag. + * @rmtoll IFCR CTEIF1 LL_DMA_ClearFlag_TE1 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE1(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTEIF1); +} + +/** + * @brief Clear Channel 2 transfer error flag. + * @rmtoll IFCR CTEIF2 LL_DMA_ClearFlag_TE2 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE2(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTEIF2); +} + +/** + * @brief Clear Channel 3 transfer error flag. + * @rmtoll IFCR CTEIF3 LL_DMA_ClearFlag_TE3 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE3(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTEIF3); +} + +/** + * @brief Clear Channel 4 transfer error flag. + * @rmtoll IFCR CTEIF4 LL_DMA_ClearFlag_TE4 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE4(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTEIF4); +} + +/** + * @brief Clear Channel 5 transfer error flag. + * @rmtoll IFCR CTEIF5 LL_DMA_ClearFlag_TE5 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE5(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTEIF5); +} + +/** + * @brief Clear Channel 6 transfer error flag. + * @rmtoll IFCR CTEIF6 LL_DMA_ClearFlag_TE6 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE6(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTEIF6); +} + +/** + * @brief Clear Channel 7 transfer error flag. + * @rmtoll IFCR CTEIF7 LL_DMA_ClearFlag_TE7 + * @param DMAx DMAx Instance + * @retval None + */ +__STATIC_INLINE void LL_DMA_ClearFlag_TE7(DMA_TypeDef *DMAx) +{ + SET_BIT(DMAx->IFCR, DMA_IFCR_CTEIF7); +} + +/** + * @} + */ + +/** @defgroup DMA_LL_EF_IT_Management IT_Management + * @{ + */ +/** + * @brief Enable Transfer complete interrupt. + * @rmtoll CCR TCIE LL_DMA_EnableIT_TC + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableIT_TC(DMA_TypeDef *DMAx, uint32_t Channel) +{ + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_TCIE); +} + +/** + * @brief Enable Half transfer interrupt. + * @rmtoll CCR HTIE LL_DMA_EnableIT_HT + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableIT_HT(DMA_TypeDef *DMAx, uint32_t Channel) +{ + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_HTIE); +} + +/** + * @brief Enable Transfer error interrupt. + * @rmtoll CCR TEIE LL_DMA_EnableIT_TE + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval None + */ +__STATIC_INLINE void LL_DMA_EnableIT_TE(DMA_TypeDef *DMAx, uint32_t Channel) +{ + SET_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_TEIE); +} + +/** + * @brief Disable Transfer complete interrupt. + * @rmtoll CCR TCIE LL_DMA_DisableIT_TC + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableIT_TC(DMA_TypeDef *DMAx, uint32_t Channel) +{ + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_TCIE); +} + +/** + * @brief Disable Half transfer interrupt. + * @rmtoll CCR HTIE LL_DMA_DisableIT_HT + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableIT_HT(DMA_TypeDef *DMAx, uint32_t Channel) +{ + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_HTIE); +} + +/** + * @brief Disable Transfer error interrupt. + * @rmtoll CCR TEIE LL_DMA_DisableIT_TE + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval None + */ +__STATIC_INLINE void LL_DMA_DisableIT_TE(DMA_TypeDef *DMAx, uint32_t Channel) +{ + CLEAR_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_TEIE); +} + +/** + * @brief Check if Transfer complete Interrupt is enabled. + * @rmtoll CCR TCIE LL_DMA_IsEnabledIT_TC + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TC(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_TCIE) == (DMA_CCR_TCIE)); +} + +/** + * @brief Check if Half transfer Interrupt is enabled. + * @rmtoll CCR HTIE LL_DMA_IsEnabledIT_HT + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_HT(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_HTIE) == (DMA_CCR_HTIE)); +} + +/** + * @brief Check if Transfer error Interrupt is enabled. + * @rmtoll CCR TEIE LL_DMA_IsEnabledIT_TE + * @param DMAx DMAx Instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_DMA_CHANNEL_1 + * @arg @ref LL_DMA_CHANNEL_2 + * @arg @ref LL_DMA_CHANNEL_3 + * @arg @ref LL_DMA_CHANNEL_4 + * @arg @ref LL_DMA_CHANNEL_5 + * @arg @ref LL_DMA_CHANNEL_6 + * @arg @ref LL_DMA_CHANNEL_7 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TE(DMA_TypeDef *DMAx, uint32_t Channel) +{ + return (READ_BIT(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + DMA_CCR_TEIE) == (DMA_CCR_TEIE)); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup DMA_LL_EF_Init Initialization and de-initialization functions + * @{ + */ + +uint32_t LL_DMA_Init(DMA_TypeDef *DMAx, uint32_t Channel, LL_DMA_InitTypeDef *DMA_InitStruct); +uint32_t LL_DMA_DeInit(DMA_TypeDef *DMAx, uint32_t Channel); +void LL_DMA_StructInit(LL_DMA_InitTypeDef *DMA_InitStruct); + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* DMA1 || DMA2 */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_LL_DMA_H */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_exti.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_exti.h new file mode 100644 index 0000000..77d8e63 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_exti.h @@ -0,0 +1,1015 @@ +/** + ****************************************************************************** + * @file stm32l1xx_ll_exti.h + * @author MCD Application Team + * @brief Header file of EXTI LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32L1xx_LL_EXTI_H +#define STM32L1xx_LL_EXTI_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx.h" + +/** @addtogroup STM32L1xx_LL_Driver + * @{ + */ + +#if defined (EXTI) + +/** @defgroup EXTI_LL EXTI + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private Macros ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup EXTI_LL_Private_Macros EXTI Private Macros + * @{ + */ +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup EXTI_LL_ES_INIT EXTI Exported Init structure + * @{ + */ +typedef struct +{ + + uint32_t Line_0_31; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 0 to 31 + This parameter can be any combination of @ref EXTI_LL_EC_LINE */ + + FunctionalState LineCommand; /*!< Specifies the new state of the selected EXTI lines. + This parameter can be set either to ENABLE or DISABLE */ + + uint8_t Mode; /*!< Specifies the mode for the EXTI lines. + This parameter can be a value of @ref EXTI_LL_EC_MODE. */ + + uint8_t Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines. + This parameter can be a value of @ref EXTI_LL_EC_TRIGGER. */ +} LL_EXTI_InitTypeDef; + +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup EXTI_LL_Exported_Constants EXTI Exported Constants + * @{ + */ + +/** @defgroup EXTI_LL_EC_LINE LINE + * @{ + */ +#define LL_EXTI_LINE_0 EXTI_IMR_IM0 /*!< Extended line 0 */ +#define LL_EXTI_LINE_1 EXTI_IMR_IM1 /*!< Extended line 1 */ +#define LL_EXTI_LINE_2 EXTI_IMR_IM2 /*!< Extended line 2 */ +#define LL_EXTI_LINE_3 EXTI_IMR_IM3 /*!< Extended line 3 */ +#define LL_EXTI_LINE_4 EXTI_IMR_IM4 /*!< Extended line 4 */ +#define LL_EXTI_LINE_5 EXTI_IMR_IM5 /*!< Extended line 5 */ +#define LL_EXTI_LINE_6 EXTI_IMR_IM6 /*!< Extended line 6 */ +#define LL_EXTI_LINE_7 EXTI_IMR_IM7 /*!< Extended line 7 */ +#define LL_EXTI_LINE_8 EXTI_IMR_IM8 /*!< Extended line 8 */ +#define LL_EXTI_LINE_9 EXTI_IMR_IM9 /*!< Extended line 9 */ +#define LL_EXTI_LINE_10 EXTI_IMR_IM10 /*!< Extended line 10 */ +#define LL_EXTI_LINE_11 EXTI_IMR_IM11 /*!< Extended line 11 */ +#define LL_EXTI_LINE_12 EXTI_IMR_IM12 /*!< Extended line 12 */ +#define LL_EXTI_LINE_13 EXTI_IMR_IM13 /*!< Extended line 13 */ +#define LL_EXTI_LINE_14 EXTI_IMR_IM14 /*!< Extended line 14 */ +#define LL_EXTI_LINE_15 EXTI_IMR_IM15 /*!< Extended line 15 */ +#if defined(EXTI_IMR_IM16) +#define LL_EXTI_LINE_16 EXTI_IMR_IM16 /*!< Extended line 16 */ +#endif +#define LL_EXTI_LINE_17 EXTI_IMR_IM17 /*!< Extended line 17 */ +#if defined(EXTI_IMR_IM18) +#define LL_EXTI_LINE_18 EXTI_IMR_IM18 /*!< Extended line 18 */ +#endif +#define LL_EXTI_LINE_19 EXTI_IMR_IM19 /*!< Extended line 19 */ +#if defined(EXTI_IMR_IM20) +#define LL_EXTI_LINE_20 EXTI_IMR_IM20 /*!< Extended line 20 */ +#endif +#if defined(EXTI_IMR_IM21) +#define LL_EXTI_LINE_21 EXTI_IMR_IM21 /*!< Extended line 21 */ +#endif +#if defined(EXTI_IMR_IM22) +#define LL_EXTI_LINE_22 EXTI_IMR_IM22 /*!< Extended line 22 */ +#endif +#define LL_EXTI_LINE_23 EXTI_IMR_IM23 /*!< Extended line 23 */ +#if defined(EXTI_IMR_IM24) +#define LL_EXTI_LINE_24 EXTI_IMR_IM24 /*!< Extended line 24 */ +#endif +#if defined(EXTI_IMR_IM25) +#define LL_EXTI_LINE_25 EXTI_IMR_IM25 /*!< Extended line 25 */ +#endif +#if defined(EXTI_IMR_IM26) +#define LL_EXTI_LINE_26 EXTI_IMR_IM26 /*!< Extended line 26 */ +#endif +#if defined(EXTI_IMR_IM27) +#define LL_EXTI_LINE_27 EXTI_IMR_IM27 /*!< Extended line 27 */ +#endif +#if defined(EXTI_IMR_IM28) +#define LL_EXTI_LINE_28 EXTI_IMR_IM28 /*!< Extended line 28 */ +#endif +#if defined(EXTI_IMR_IM29) +#define LL_EXTI_LINE_29 EXTI_IMR_IM29 /*!< Extended line 29 */ +#endif +#if defined(EXTI_IMR_IM30) +#define LL_EXTI_LINE_30 EXTI_IMR_IM30 /*!< Extended line 30 */ +#endif +#if defined(EXTI_IMR_IM31) +#define LL_EXTI_LINE_31 EXTI_IMR_IM31 /*!< Extended line 31 */ +#endif +#define LL_EXTI_LINE_ALL_0_31 EXTI_IMR_IM /*!< All Extended line not reserved*/ + + +#define LL_EXTI_LINE_ALL (0xFFFFFFFFU) /*!< All Extended line */ + +#if defined(USE_FULL_LL_DRIVER) +#define LL_EXTI_LINE_NONE (0x00000000U) /*!< None Extended line */ +#endif /*USE_FULL_LL_DRIVER*/ + +/** + * @} + */ +#if defined(USE_FULL_LL_DRIVER) + +/** @defgroup EXTI_LL_EC_MODE Mode + * @{ + */ +#define LL_EXTI_MODE_IT ((uint8_t)0x00U) /*!< Interrupt Mode */ +#define LL_EXTI_MODE_EVENT ((uint8_t)0x01U) /*!< Event Mode */ +#define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x02U) /*!< Interrupt & Event Mode */ +/** + * @} + */ + +/** @defgroup EXTI_LL_EC_TRIGGER Edge Trigger + * @{ + */ +#define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00U) /*!< No Trigger Mode */ +#define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01U) /*!< Trigger Rising Mode */ +#define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02U) /*!< Trigger Falling Mode */ +#define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03U) /*!< Trigger Rising & Falling Mode */ + +/** + * @} + */ + + +#endif /*USE_FULL_LL_DRIVER*/ + + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup EXTI_LL_Exported_Macros EXTI Exported Macros + * @{ + */ + +/** @defgroup EXTI_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in EXTI register + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__)) + +/** + * @brief Read a value in EXTI register + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__) +/** + * @} + */ + + +/** + * @} + */ + + + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup EXTI_LL_Exported_Functions EXTI Exported Functions + * @{ + */ +/** @defgroup EXTI_LL_EF_IT_Management IT_Management + * @{ + */ + +/** + * @brief Enable ExtiLine Interrupt request for Lines in range 0 to 31 + * @note The reset value for the direct or internal lines (see RM) + * is set to 1 in order to enable the interrupt by default. + * Bits are set automatically at Power on. + * @rmtoll IMR IMx LL_EXTI_EnableIT_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @arg @ref LL_EXTI_LINE_ALL_0_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine) +{ + SET_BIT(EXTI->IMR, ExtiLine); +} + +/** + * @brief Disable ExtiLine Interrupt request for Lines in range 0 to 31 + * @note The reset value for the direct or internal lines (see RM) + * is set to 1 in order to enable the interrupt by default. + * Bits are set automatically at Power on. + * @rmtoll IMR IMx LL_EXTI_DisableIT_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @arg @ref LL_EXTI_LINE_ALL_0_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->IMR, ExtiLine); +} + + +/** + * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31 + * @note The reset value for the direct or internal lines (see RM) + * is set to 1 in order to enable the interrupt by default. + * Bits are set automatically at Power on. + * @rmtoll IMR IMx LL_EXTI_IsEnabledIT_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @arg @ref LL_EXTI_LINE_ALL_0_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine) +{ + return (READ_BIT(EXTI->IMR, ExtiLine) == (ExtiLine)); +} + + +/** + * @} + */ + +/** @defgroup EXTI_LL_EF_Event_Management Event_Management + * @{ + */ + +/** + * @brief Enable ExtiLine Event request for Lines in range 0 to 31 + * @rmtoll EMR EMx LL_EXTI_EnableEvent_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @arg @ref LL_EXTI_LINE_ALL_0_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine) +{ + SET_BIT(EXTI->EMR, ExtiLine); + +} + + +/** + * @brief Disable ExtiLine Event request for Lines in range 0 to 31 + * @rmtoll EMR EMx LL_EXTI_DisableEvent_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @arg @ref LL_EXTI_LINE_ALL_0_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->EMR, ExtiLine); +} + + +/** + * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31 + * @rmtoll EMR EMx LL_EXTI_IsEnabledEvent_0_31 + * @param ExtiLine This parameter can be one of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_17 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_23 + * @arg @ref LL_EXTI_LINE_24 + * @arg @ref LL_EXTI_LINE_25 + * @arg @ref LL_EXTI_LINE_26 + * @arg @ref LL_EXTI_LINE_27 + * @arg @ref LL_EXTI_LINE_28 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @arg @ref LL_EXTI_LINE_ALL_0_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine) +{ + return (READ_BIT(EXTI->EMR, ExtiLine) == (ExtiLine)); + +} + + +/** + * @} + */ + +/** @defgroup EXTI_LL_EF_Rising_Trigger_Management Rising_Trigger_Management + * @{ + */ + +/** + * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a rising edge on a configurable interrupt + * line occurs during a write operation in the EXTI_RTSR register, the + * pending bit is not set. + * Rising and falling edge triggers can be set for + * the same interrupt line. In this case, both generate a trigger + * condition. + * @rmtoll RTSR RTx LL_EXTI_EnableRisingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine) +{ + SET_BIT(EXTI->RTSR, ExtiLine); + +} + + +/** + * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a rising edge on a configurable interrupt + * line occurs during a write operation in the EXTI_RTSR register, the + * pending bit is not set. + * Rising and falling edge triggers can be set for + * the same interrupt line. In this case, both generate a trigger + * condition. + * @rmtoll RTSR RTx LL_EXTI_DisableRisingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->RTSR, ExtiLine); + +} + + +/** + * @brief Check if rising edge trigger is enabled for Lines in range 0 to 31 + * @rmtoll RTSR RTx LL_EXTI_IsEnabledRisingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine) +{ + return (READ_BIT(EXTI->RTSR, ExtiLine) == (ExtiLine)); +} + + +/** + * @} + */ + +/** @defgroup EXTI_LL_EF_Falling_Trigger_Management Falling_Trigger_Management + * @{ + */ + +/** + * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a falling edge on a configurable interrupt + * line occurs during a write operation in the EXTI_FTSR register, the + * pending bit is not set. + * Rising and falling edge triggers can be set for + * the same interrupt line. In this case, both generate a trigger + * condition. + * @rmtoll FTSR FTx LL_EXTI_EnableFallingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine) +{ + SET_BIT(EXTI->FTSR, ExtiLine); +} + + +/** + * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31 + * @note The configurable wakeup lines are edge-triggered. No glitch must be + * generated on these lines. If a Falling edge on a configurable interrupt + * line occurs during a write operation in the EXTI_FTSR register, the + * pending bit is not set. + * Rising and falling edge triggers can be set for the same interrupt line. + * In this case, both generate a trigger condition. + * @rmtoll FTSR FTx LL_EXTI_DisableFallingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine) +{ + CLEAR_BIT(EXTI->FTSR, ExtiLine); +} + + +/** + * @brief Check if falling edge trigger is enabled for Lines in range 0 to 31 + * @rmtoll FTSR FTx LL_EXTI_IsEnabledFallingTrig_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine) +{ + return (READ_BIT(EXTI->FTSR, ExtiLine) == (ExtiLine)); +} + + +/** + * @} + */ + +/** @defgroup EXTI_LL_EF_Software_Interrupt_Management Software_Interrupt_Management + * @{ + */ + +/** + * @brief Generate a software Interrupt Event for Lines in range 0 to 31 + * @note If the interrupt is enabled on this line in the EXTI_IMR, writing a 1 to + * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR + * resulting in an interrupt request generation. + * This bit is cleared by clearing the corresponding bit in the EXTI_PR + * register (by writing a 1 into the bit) + * @rmtoll SWIER SWIx LL_EXTI_GenerateSWI_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine) +{ + SET_BIT(EXTI->SWIER, ExtiLine); +} + + +/** + * @} + */ + +/** @defgroup EXTI_LL_EF_Flag_Management Flag_Management + * @{ + */ + +/** + * @brief Check if the ExtLine Flag is set or not for Lines in range 0 to 31 + * @note This bit is set when the selected edge event arrives on the interrupt + * line. This bit is cleared by writing a 1 to the bit. + * @rmtoll PR PIFx LL_EXTI_IsActiveFlag_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine) +{ + return (READ_BIT(EXTI->PR, ExtiLine) == (ExtiLine)); +} + + +/** + * @brief Read ExtLine Combination Flag for Lines in range 0 to 31 + * @note This bit is set when the selected edge event arrives on the interrupt + * line. This bit is cleared by writing a 1 to the bit. + * @rmtoll PR PIFx LL_EXTI_ReadFlag_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval @note This bit is set when the selected edge event arrives on the interrupt + */ +__STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine) +{ + return (uint32_t)(READ_BIT(EXTI->PR, ExtiLine)); +} + + +/** + * @brief Clear ExtLine Flags for Lines in range 0 to 31 + * @note This bit is set when the selected edge event arrives on the interrupt + * line. This bit is cleared by writing a 1 to the bit. + * @rmtoll PR PIFx LL_EXTI_ClearFlag_0_31 + * @param ExtiLine This parameter can be a combination of the following values: + * @arg @ref LL_EXTI_LINE_0 + * @arg @ref LL_EXTI_LINE_1 + * @arg @ref LL_EXTI_LINE_2 + * @arg @ref LL_EXTI_LINE_3 + * @arg @ref LL_EXTI_LINE_4 + * @arg @ref LL_EXTI_LINE_5 + * @arg @ref LL_EXTI_LINE_6 + * @arg @ref LL_EXTI_LINE_7 + * @arg @ref LL_EXTI_LINE_8 + * @arg @ref LL_EXTI_LINE_9 + * @arg @ref LL_EXTI_LINE_10 + * @arg @ref LL_EXTI_LINE_11 + * @arg @ref LL_EXTI_LINE_12 + * @arg @ref LL_EXTI_LINE_13 + * @arg @ref LL_EXTI_LINE_14 + * @arg @ref LL_EXTI_LINE_15 + * @arg @ref LL_EXTI_LINE_16 + * @arg @ref LL_EXTI_LINE_18 + * @arg @ref LL_EXTI_LINE_19 + * @arg @ref LL_EXTI_LINE_20 + * @arg @ref LL_EXTI_LINE_21 + * @arg @ref LL_EXTI_LINE_22 + * @arg @ref LL_EXTI_LINE_29 + * @arg @ref LL_EXTI_LINE_30 + * @arg @ref LL_EXTI_LINE_31 + * @note Please check each device line mapping for EXTI Line availability + * @retval None + */ +__STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine) +{ + WRITE_REG(EXTI->PR, ExtiLine); +} + + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup EXTI_LL_EF_Init Initialization and de-initialization functions + * @{ + */ + +uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct); +uint32_t LL_EXTI_DeInit(void); +void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct); + + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* EXTI */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32L1xx_LL_EXTI_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_gpio.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_gpio.h new file mode 100644 index 0000000..2de80e7 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_gpio.h @@ -0,0 +1,987 @@ +/** + ****************************************************************************** + * @file stm32l1xx_ll_gpio.h + * @author MCD Application Team + * @brief Header file of GPIO LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_LL_GPIO_H +#define __STM32L1xx_LL_GPIO_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx.h" + +/** @addtogroup STM32L1xx_LL_Driver + * @{ + */ + +#if defined (GPIOA) || defined (GPIOB) || defined (GPIOC) || defined (GPIOD) || defined (GPIOE) || defined (GPIOF) || defined (GPIOG) || defined (GPIOH) + +/** @defgroup GPIO_LL GPIO + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup GPIO_LL_Private_Macros GPIO Private Macros + * @{ + */ + +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup GPIO_LL_ES_INIT GPIO Exported Init structures + * @{ + */ + +/** + * @brief LL GPIO Init Structure definition + */ +typedef struct +{ + uint32_t Pin; /*!< Specifies the GPIO pins to be configured. + This parameter can be any value of @ref GPIO_LL_EC_PIN */ + + uint32_t Mode; /*!< Specifies the operating mode for the selected pins. + This parameter can be a value of @ref GPIO_LL_EC_MODE. + + GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinMode().*/ + + uint32_t Speed; /*!< Specifies the speed for the selected pins. + This parameter can be a value of @ref GPIO_LL_EC_SPEED. + + GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinSpeed().*/ + + uint32_t OutputType; /*!< Specifies the operating output type for the selected pins. + This parameter can be a value of @ref GPIO_LL_EC_OUTPUT. + + GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinOutputType().*/ + + uint32_t Pull; /*!< Specifies the operating Pull-up/Pull down for the selected pins. + This parameter can be a value of @ref GPIO_LL_EC_PULL. + + GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinPull().*/ + + uint32_t Alternate; /*!< Specifies the Peripheral to be connected to the selected pins. + This parameter can be a value of @ref GPIO_LL_EC_AF. + + GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetAFPin_0_7() and LL_GPIO_SetAFPin_8_15().*/ +} LL_GPIO_InitTypeDef; + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup GPIO_LL_Exported_Constants GPIO Exported Constants + * @{ + */ + +/** @defgroup GPIO_LL_EC_PIN PIN + * @{ + */ +#define LL_GPIO_PIN_0 GPIO_BSRR_BS_0 /*!< Select pin 0 */ +#define LL_GPIO_PIN_1 GPIO_BSRR_BS_1 /*!< Select pin 1 */ +#define LL_GPIO_PIN_2 GPIO_BSRR_BS_2 /*!< Select pin 2 */ +#define LL_GPIO_PIN_3 GPIO_BSRR_BS_3 /*!< Select pin 3 */ +#define LL_GPIO_PIN_4 GPIO_BSRR_BS_4 /*!< Select pin 4 */ +#define LL_GPIO_PIN_5 GPIO_BSRR_BS_5 /*!< Select pin 5 */ +#define LL_GPIO_PIN_6 GPIO_BSRR_BS_6 /*!< Select pin 6 */ +#define LL_GPIO_PIN_7 GPIO_BSRR_BS_7 /*!< Select pin 7 */ +#define LL_GPIO_PIN_8 GPIO_BSRR_BS_8 /*!< Select pin 8 */ +#define LL_GPIO_PIN_9 GPIO_BSRR_BS_9 /*!< Select pin 9 */ +#define LL_GPIO_PIN_10 GPIO_BSRR_BS_10 /*!< Select pin 10 */ +#define LL_GPIO_PIN_11 GPIO_BSRR_BS_11 /*!< Select pin 11 */ +#define LL_GPIO_PIN_12 GPIO_BSRR_BS_12 /*!< Select pin 12 */ +#define LL_GPIO_PIN_13 GPIO_BSRR_BS_13 /*!< Select pin 13 */ +#define LL_GPIO_PIN_14 GPIO_BSRR_BS_14 /*!< Select pin 14 */ +#define LL_GPIO_PIN_15 GPIO_BSRR_BS_15 /*!< Select pin 15 */ +#define LL_GPIO_PIN_ALL (GPIO_BSRR_BS_0 | GPIO_BSRR_BS_1 | GPIO_BSRR_BS_2 | \ + GPIO_BSRR_BS_3 | GPIO_BSRR_BS_4 | GPIO_BSRR_BS_5 | \ + GPIO_BSRR_BS_6 | GPIO_BSRR_BS_7 | GPIO_BSRR_BS_8 | \ + GPIO_BSRR_BS_9 | GPIO_BSRR_BS_10 | GPIO_BSRR_BS_11 | \ + GPIO_BSRR_BS_12 | GPIO_BSRR_BS_13 | GPIO_BSRR_BS_14 | \ + GPIO_BSRR_BS_15) /*!< Select all pins */ +/** + * @} + */ + +/** @defgroup GPIO_LL_EC_MODE Mode + * @{ + */ +#define LL_GPIO_MODE_INPUT (0x00000000U) /*!< Select input mode */ +#define LL_GPIO_MODE_OUTPUT GPIO_MODER_MODER0_0 /*!< Select output mode */ +#define LL_GPIO_MODE_ALTERNATE GPIO_MODER_MODER0_1 /*!< Select alternate function mode */ +#define LL_GPIO_MODE_ANALOG GPIO_MODER_MODER0 /*!< Select analog mode */ +/** + * @} + */ + +/** @defgroup GPIO_LL_EC_OUTPUT Output Type + * @{ + */ +#define LL_GPIO_OUTPUT_PUSHPULL (0x00000000U) /*!< Select push-pull as output type */ +#define LL_GPIO_OUTPUT_OPENDRAIN GPIO_OTYPER_OT_0 /*!< Select open-drain as output type */ +/** + * @} + */ + +/** @defgroup GPIO_LL_EC_SPEED Output Speed + * @{ + */ +#define LL_GPIO_SPEED_FREQ_LOW (0x00000000U) /*!< Select I/O low output speed */ +#define LL_GPIO_SPEED_FREQ_MEDIUM GPIO_OSPEEDER_OSPEEDR0_0 /*!< Select I/O medium output speed */ +#define LL_GPIO_SPEED_FREQ_HIGH GPIO_OSPEEDER_OSPEEDR0_1 /*!< Select I/O fast output speed */ +#define LL_GPIO_SPEED_FREQ_VERY_HIGH GPIO_OSPEEDER_OSPEEDR0 /*!< Select I/O high output speed */ +/** + * @} + */ + +/** @defgroup GPIO_LL_EC_PULL Pull Up Pull Down + * @{ + */ +#define LL_GPIO_PULL_NO (0x00000000U) /*!< Select I/O no pull */ +#define LL_GPIO_PULL_UP GPIO_PUPDR_PUPDR0_0 /*!< Select I/O pull up */ +#define LL_GPIO_PULL_DOWN GPIO_PUPDR_PUPDR0_1 /*!< Select I/O pull down */ +/** + * @} + */ + +/** @defgroup GPIO_LL_EC_AF Alternate Function + * @{ + */ +#define LL_GPIO_AF_0 (0x0000000U) /*!< Select alternate function 0 */ +#define LL_GPIO_AF_1 (0x0000001U) /*!< Select alternate function 1 */ +#define LL_GPIO_AF_2 (0x0000002U) /*!< Select alternate function 2 */ +#define LL_GPIO_AF_3 (0x0000003U) /*!< Select alternate function 3 */ +#define LL_GPIO_AF_4 (0x0000004U) /*!< Select alternate function 4 */ +#define LL_GPIO_AF_5 (0x0000005U) /*!< Select alternate function 5 */ +#define LL_GPIO_AF_6 (0x0000006U) /*!< Select alternate function 6 */ +#define LL_GPIO_AF_7 (0x0000007U) /*!< Select alternate function 7 */ +#define LL_GPIO_AF_8 (0x0000008U) /*!< Select alternate function 8 */ +#define LL_GPIO_AF_9 (0x0000009U) /*!< Select alternate function 9 */ +#define LL_GPIO_AF_10 (0x000000AU) /*!< Select alternate function 10 */ +#define LL_GPIO_AF_11 (0x000000BU) /*!< Select alternate function 11 */ +#define LL_GPIO_AF_12 (0x000000CU) /*!< Select alternate function 12 */ +#define LL_GPIO_AF_13 (0x000000DU) /*!< Select alternate function 13 */ +#define LL_GPIO_AF_14 (0x000000EU) /*!< Select alternate function 14 */ +#define LL_GPIO_AF_15 (0x000000FU) /*!< Select alternate function 15 */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup GPIO_LL_Exported_Macros GPIO Exported Macros + * @{ + */ + +/** @defgroup GPIO_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in GPIO register + * @param __INSTANCE__ GPIO Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_GPIO_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in GPIO register + * @param __INSTANCE__ GPIO Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_GPIO_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup GPIO_LL_Exported_Functions GPIO Exported Functions + * @{ + */ + +/** @defgroup GPIO_LL_EF_Port_Configuration Port Configuration + * @{ + */ + +/** + * @brief Configure gpio mode for a dedicated pin on dedicated port. + * @note I/O mode can be Input mode, General purpose output, Alternate function mode or Analog. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll MODER MODEy LL_GPIO_SetPinMode + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @param Mode This parameter can be one of the following values: + * @arg @ref LL_GPIO_MODE_INPUT + * @arg @ref LL_GPIO_MODE_OUTPUT + * @arg @ref LL_GPIO_MODE_ALTERNATE + * @arg @ref LL_GPIO_MODE_ANALOG + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetPinMode(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Mode) +{ + MODIFY_REG(GPIOx->MODER, (GPIO_MODER_MODER0 << (POSITION_VAL(Pin) * 2U)), (Mode << (POSITION_VAL(Pin) * 2U))); +} + +/** + * @brief Return gpio mode for a dedicated pin on dedicated port. + * @note I/O mode can be Input mode, General purpose output, Alternate function mode or Analog. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll MODER MODEy LL_GPIO_GetPinMode + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_MODE_INPUT + * @arg @ref LL_GPIO_MODE_OUTPUT + * @arg @ref LL_GPIO_MODE_ALTERNATE + * @arg @ref LL_GPIO_MODE_ANALOG + */ +__STATIC_INLINE uint32_t LL_GPIO_GetPinMode(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->MODER, + (GPIO_MODER_MODER0 << (POSITION_VAL(Pin) * 2U))) >> (POSITION_VAL(Pin) * 2U)); +} + +/** + * @brief Configure gpio output type for several pins on dedicated port. + * @note Output type as to be set when gpio pin is in output or + * alternate modes. Possible type are Push-pull or Open-drain. + * @rmtoll OTYPER OTy LL_GPIO_SetPinOutputType + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @param OutputType This parameter can be one of the following values: + * @arg @ref LL_GPIO_OUTPUT_PUSHPULL + * @arg @ref LL_GPIO_OUTPUT_OPENDRAIN + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetPinOutputType(GPIO_TypeDef *GPIOx, uint32_t PinMask, uint32_t OutputType) +{ + MODIFY_REG(GPIOx->OTYPER, PinMask, (PinMask * OutputType)); +} + +/** + * @brief Return gpio output type for several pins on dedicated port. + * @note Output type as to be set when gpio pin is in output or + * alternate modes. Possible type are Push-pull or Open-drain. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll OTYPER OTy LL_GPIO_GetPinOutputType + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_OUTPUT_PUSHPULL + * @arg @ref LL_GPIO_OUTPUT_OPENDRAIN + */ +__STATIC_INLINE uint32_t LL_GPIO_GetPinOutputType(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->OTYPER, Pin) >> POSITION_VAL(Pin)); +} + +/** + * @brief Configure gpio speed for a dedicated pin on dedicated port. + * @note I/O speed can be Low, Medium, Fast or High speed. + * @note Warning: only one pin can be passed as parameter. + * @note Refer to datasheet for frequency specifications and the power + * supply and load conditions for each speed. + * @rmtoll OSPEEDR OSPEEDy LL_GPIO_SetPinSpeed + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @param Speed This parameter can be one of the following values: + * @arg @ref LL_GPIO_SPEED_FREQ_LOW + * @arg @ref LL_GPIO_SPEED_FREQ_MEDIUM + * @arg @ref LL_GPIO_SPEED_FREQ_HIGH + * @arg @ref LL_GPIO_SPEED_FREQ_VERY_HIGH + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetPinSpeed(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Speed) +{ + MODIFY_REG(GPIOx->OSPEEDR, (GPIO_OSPEEDER_OSPEEDR0 << (POSITION_VAL(Pin) * 2U)), + (Speed << (POSITION_VAL(Pin) * 2U))); +} + +/** + * @brief Return gpio speed for a dedicated pin on dedicated port. + * @note I/O speed can be Low, Medium, Fast or High speed. + * @note Warning: only one pin can be passed as parameter. + * @note Refer to datasheet for frequency specifications and the power + * supply and load conditions for each speed. + * @rmtoll OSPEEDR OSPEEDy LL_GPIO_GetPinSpeed + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_SPEED_FREQ_LOW + * @arg @ref LL_GPIO_SPEED_FREQ_MEDIUM + * @arg @ref LL_GPIO_SPEED_FREQ_HIGH + * @arg @ref LL_GPIO_SPEED_FREQ_VERY_HIGH + */ +__STATIC_INLINE uint32_t LL_GPIO_GetPinSpeed(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->OSPEEDR, + (GPIO_OSPEEDER_OSPEEDR0 << (POSITION_VAL(Pin) * 2U))) >> (POSITION_VAL(Pin) * 2U)); +} + +/** + * @brief Configure gpio pull-up or pull-down for a dedicated pin on a dedicated port. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll PUPDR PUPDy LL_GPIO_SetPinPull + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @param Pull This parameter can be one of the following values: + * @arg @ref LL_GPIO_PULL_NO + * @arg @ref LL_GPIO_PULL_UP + * @arg @ref LL_GPIO_PULL_DOWN + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetPinPull(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Pull) +{ + MODIFY_REG(GPIOx->PUPDR, (GPIO_PUPDR_PUPDR0 << (POSITION_VAL(Pin) * 2U)), (Pull << (POSITION_VAL(Pin) * 2U))); +} + +/** + * @brief Return gpio pull-up or pull-down for a dedicated pin on a dedicated port + * @note Warning: only one pin can be passed as parameter. + * @rmtoll PUPDR PUPDy LL_GPIO_GetPinPull + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_PULL_NO + * @arg @ref LL_GPIO_PULL_UP + * @arg @ref LL_GPIO_PULL_DOWN + */ +__STATIC_INLINE uint32_t LL_GPIO_GetPinPull(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->PUPDR, + (GPIO_PUPDR_PUPDR0 << (POSITION_VAL(Pin) * 2U))) >> (POSITION_VAL(Pin) * 2U)); +} + +/** + * @brief Configure gpio alternate function of a dedicated pin from 0 to 7 for a dedicated port. + * @note Possible values are from AF0 to AF15 depending on target. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll AFRL AFSELy LL_GPIO_SetAFPin_0_7 + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @param Alternate This parameter can be one of the following values: + * @arg @ref LL_GPIO_AF_0 + * @arg @ref LL_GPIO_AF_1 + * @arg @ref LL_GPIO_AF_2 + * @arg @ref LL_GPIO_AF_3 + * @arg @ref LL_GPIO_AF_4 + * @arg @ref LL_GPIO_AF_5 + * @arg @ref LL_GPIO_AF_6 + * @arg @ref LL_GPIO_AF_7 + * @arg @ref LL_GPIO_AF_8 + * @arg @ref LL_GPIO_AF_9 + * @arg @ref LL_GPIO_AF_10 + * @arg @ref LL_GPIO_AF_11 + * @arg @ref LL_GPIO_AF_12 + * @arg @ref LL_GPIO_AF_13 + * @arg @ref LL_GPIO_AF_14 + * @arg @ref LL_GPIO_AF_15 + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetAFPin_0_7(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Alternate) +{ + MODIFY_REG(GPIOx->AFR[0], (GPIO_AFRL_AFSEL0 << (POSITION_VAL(Pin) * 4U)), + (Alternate << (POSITION_VAL(Pin) * 4U))); +} + +/** + * @brief Return gpio alternate function of a dedicated pin from 0 to 7 for a dedicated port. + * @rmtoll AFRL AFSELy LL_GPIO_GetAFPin_0_7 + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_AF_0 + * @arg @ref LL_GPIO_AF_1 + * @arg @ref LL_GPIO_AF_2 + * @arg @ref LL_GPIO_AF_3 + * @arg @ref LL_GPIO_AF_4 + * @arg @ref LL_GPIO_AF_5 + * @arg @ref LL_GPIO_AF_6 + * @arg @ref LL_GPIO_AF_7 + * @arg @ref LL_GPIO_AF_8 + * @arg @ref LL_GPIO_AF_9 + * @arg @ref LL_GPIO_AF_10 + * @arg @ref LL_GPIO_AF_11 + * @arg @ref LL_GPIO_AF_12 + * @arg @ref LL_GPIO_AF_13 + * @arg @ref LL_GPIO_AF_14 + * @arg @ref LL_GPIO_AF_15 + */ +__STATIC_INLINE uint32_t LL_GPIO_GetAFPin_0_7(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->AFR[0], + (GPIO_AFRL_AFSEL0 << (POSITION_VAL(Pin) * 4U))) >> (POSITION_VAL(Pin) * 4U)); +} + +/** + * @brief Configure gpio alternate function of a dedicated pin from 8 to 15 for a dedicated port. + * @note Possible values are from AF0 to AF15 depending on target. + * @note Warning: only one pin can be passed as parameter. + * @rmtoll AFRH AFSELy LL_GPIO_SetAFPin_8_15 + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @param Alternate This parameter can be one of the following values: + * @arg @ref LL_GPIO_AF_0 + * @arg @ref LL_GPIO_AF_1 + * @arg @ref LL_GPIO_AF_2 + * @arg @ref LL_GPIO_AF_3 + * @arg @ref LL_GPIO_AF_4 + * @arg @ref LL_GPIO_AF_5 + * @arg @ref LL_GPIO_AF_6 + * @arg @ref LL_GPIO_AF_7 + * @arg @ref LL_GPIO_AF_8 + * @arg @ref LL_GPIO_AF_9 + * @arg @ref LL_GPIO_AF_10 + * @arg @ref LL_GPIO_AF_11 + * @arg @ref LL_GPIO_AF_12 + * @arg @ref LL_GPIO_AF_13 + * @arg @ref LL_GPIO_AF_14 + * @arg @ref LL_GPIO_AF_15 + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetAFPin_8_15(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Alternate) +{ + MODIFY_REG(GPIOx->AFR[1], (GPIO_AFRH_AFSEL8 << (POSITION_VAL(Pin >> 8U) * 4U)), + (Alternate << (POSITION_VAL(Pin >> 8U) * 4U))); +} + +/** + * @brief Return gpio alternate function of a dedicated pin from 8 to 15 for a dedicated port. + * @note Possible values are from AF0 to AF15 depending on target. + * @rmtoll AFRH AFSELy LL_GPIO_GetAFPin_8_15 + * @param GPIOx GPIO Port + * @param Pin This parameter can be one of the following values: + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_GPIO_AF_0 + * @arg @ref LL_GPIO_AF_1 + * @arg @ref LL_GPIO_AF_2 + * @arg @ref LL_GPIO_AF_3 + * @arg @ref LL_GPIO_AF_4 + * @arg @ref LL_GPIO_AF_5 + * @arg @ref LL_GPIO_AF_6 + * @arg @ref LL_GPIO_AF_7 + * @arg @ref LL_GPIO_AF_8 + * @arg @ref LL_GPIO_AF_9 + * @arg @ref LL_GPIO_AF_10 + * @arg @ref LL_GPIO_AF_11 + * @arg @ref LL_GPIO_AF_12 + * @arg @ref LL_GPIO_AF_13 + * @arg @ref LL_GPIO_AF_14 + * @arg @ref LL_GPIO_AF_15 + */ +__STATIC_INLINE uint32_t LL_GPIO_GetAFPin_8_15(GPIO_TypeDef *GPIOx, uint32_t Pin) +{ + return (uint32_t)(READ_BIT(GPIOx->AFR[1], + (GPIO_AFRH_AFSEL8 << (POSITION_VAL(Pin >> 8U) * 4U))) >> (POSITION_VAL(Pin >> 8U) * 4U)); +} + + +/** + * @brief Lock configuration of several pins for a dedicated port. + * @note When the lock sequence has been applied on a port bit, the + * value of this port bit can no longer be modified until the + * next reset. + * @note Each lock bit freezes a specific configuration register + * (control and alternate function registers). + * @rmtoll LCKR LCKK LL_GPIO_LockPin + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + __IO uint32_t temp; + WRITE_REG(GPIOx->LCKR, GPIO_LCKR_LCKK | PinMask); + WRITE_REG(GPIOx->LCKR, PinMask); + WRITE_REG(GPIOx->LCKR, GPIO_LCKR_LCKK | PinMask); + /* Read LCKK register. This read is mandatory to complete key lock sequence */ + temp = READ_REG(GPIOx->LCKR); + (void) temp; +} + +/** + * @brief Return 1 if all pins passed as parameter, of a dedicated port, are locked. else Return 0. + * @rmtoll LCKR LCKy LL_GPIO_IsPinLocked + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_GPIO_IsPinLocked(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + return (READ_BIT(GPIOx->LCKR, PinMask) == (PinMask)); +} + +/** + * @brief Return 1 if one of the pin of a dedicated port is locked. else return 0. + * @rmtoll LCKR LCKK LL_GPIO_IsAnyPinLocked + * @param GPIOx GPIO Port + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_GPIO_IsAnyPinLocked(GPIO_TypeDef *GPIOx) +{ + return (READ_BIT(GPIOx->LCKR, GPIO_LCKR_LCKK) == (GPIO_LCKR_LCKK)); +} + +/** + * @} + */ + +/** @defgroup GPIO_LL_EF_Data_Access Data Access + * @{ + */ + +/** + * @brief Return full input data register value for a dedicated port. + * @rmtoll IDR IDy LL_GPIO_ReadInputPort + * @param GPIOx GPIO Port + * @retval Input data register value of port + */ +__STATIC_INLINE uint32_t LL_GPIO_ReadInputPort(GPIO_TypeDef *GPIOx) +{ + return (uint32_t)(READ_REG(GPIOx->IDR)); +} + +/** + * @brief Return if input data level for several pins of dedicated port is high or low. + * @rmtoll IDR IDy LL_GPIO_IsInputPinSet + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_GPIO_IsInputPinSet(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + return (READ_BIT(GPIOx->IDR, PinMask) == (PinMask)); +} + +/** + * @brief Write output data register for the port. + * @rmtoll ODR ODy LL_GPIO_WriteOutputPort + * @param GPIOx GPIO Port + * @param PortValue Level value for each pin of the port + * @retval None + */ +__STATIC_INLINE void LL_GPIO_WriteOutputPort(GPIO_TypeDef *GPIOx, uint32_t PortValue) +{ + WRITE_REG(GPIOx->ODR, PortValue); +} + +/** + * @brief Return full output data register value for a dedicated port. + * @rmtoll ODR ODy LL_GPIO_ReadOutputPort + * @param GPIOx GPIO Port + * @retval Output data register value of port + */ +__STATIC_INLINE uint32_t LL_GPIO_ReadOutputPort(GPIO_TypeDef *GPIOx) +{ + return (uint32_t)(READ_REG(GPIOx->ODR)); +} + +/** + * @brief Return if input data level for several pins of dedicated port is high or low. + * @rmtoll ODR ODy LL_GPIO_IsOutputPinSet + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_GPIO_IsOutputPinSet(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + return (READ_BIT(GPIOx->ODR, PinMask) == (PinMask)); +} + +/** + * @brief Set several pins to high level on dedicated gpio port. + * @rmtoll BSRR BSy LL_GPIO_SetOutputPin + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_GPIO_SetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + WRITE_REG(GPIOx->BSRR, PinMask); +} + +/** + * @brief Set several pins to low level on dedicated gpio port. + * @rmtoll BRR BRy LL_GPIO_ResetOutputPin\n + * @rmtoll BSRR BRy LL_GPIO_ResetOutputPin + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_GPIO_ResetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ +#if defined(GPIO_BRR_BR_0) + WRITE_REG(GPIOx->BRR, PinMask); +#else + WRITE_REG(GPIOx->BSRR, (PinMask << 16)); +#endif /* GPIO_BRR_BR_0 */ +} + +/** + * @brief Toggle data value for several pin of dedicated port. + * @rmtoll ODR ODy LL_GPIO_TogglePin + * @param GPIOx GPIO Port + * @param PinMask This parameter can be a combination of the following values: + * @arg @ref LL_GPIO_PIN_0 + * @arg @ref LL_GPIO_PIN_1 + * @arg @ref LL_GPIO_PIN_2 + * @arg @ref LL_GPIO_PIN_3 + * @arg @ref LL_GPIO_PIN_4 + * @arg @ref LL_GPIO_PIN_5 + * @arg @ref LL_GPIO_PIN_6 + * @arg @ref LL_GPIO_PIN_7 + * @arg @ref LL_GPIO_PIN_8 + * @arg @ref LL_GPIO_PIN_9 + * @arg @ref LL_GPIO_PIN_10 + * @arg @ref LL_GPIO_PIN_11 + * @arg @ref LL_GPIO_PIN_12 + * @arg @ref LL_GPIO_PIN_13 + * @arg @ref LL_GPIO_PIN_14 + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + uint32_t odr = READ_REG(GPIOx->ODR); + WRITE_REG(GPIOx->BSRR, ((odr & PinMask) << 16u) | (~odr & PinMask)); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup GPIO_LL_EF_Init Initialization and de-initialization functions + * @{ + */ + +ErrorStatus LL_GPIO_DeInit(GPIO_TypeDef *GPIOx); +ErrorStatus LL_GPIO_Init(GPIO_TypeDef *GPIOx, LL_GPIO_InitTypeDef *GPIO_InitStruct); +void LL_GPIO_StructInit(LL_GPIO_InitTypeDef *GPIO_InitStruct); + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined (GPIOA) || defined (GPIOB) || defined (GPIOC) || defined (GPIOD) || defined (GPIOE) || defined (GPIOF) || defined (GPIOG) || defined (GPIOH) */ +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_LL_GPIO_H */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_pwr.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_pwr.h new file mode 100644 index 0000000..f7b5742 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_pwr.h @@ -0,0 +1,718 @@ +/** + ****************************************************************************** + * @file stm32l1xx_ll_pwr.h + * @author MCD Application Team + * @brief Header file of PWR LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_LL_PWR_H +#define __STM32L1xx_LL_PWR_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx.h" + +/** @addtogroup STM32L1xx_LL_Driver + * @{ + */ + +#if defined(PWR) + +/** @defgroup PWR_LL PWR + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup PWR_LL_Exported_Constants PWR Exported Constants + * @{ + */ + +/** @defgroup PWR_LL_EC_CLEAR_FLAG Clear Flags Defines + * @brief Flags defines which can be used with LL_PWR_WriteReg function + * @{ + */ +#define LL_PWR_CR_CSBF PWR_CR_CSBF /*!< Clear standby flag */ +#define LL_PWR_CR_CWUF PWR_CR_CWUF /*!< Clear wakeup flag */ +/** + * @} + */ + +/** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_PWR_ReadReg function + * @{ + */ +#define LL_PWR_CSR_WUF PWR_CSR_WUF /*!< Wakeup flag */ +#define LL_PWR_CSR_SBF PWR_CSR_SBF /*!< Standby flag */ +#if defined(PWR_PVD_SUPPORT) +#define LL_PWR_CSR_PVDO PWR_CSR_PVDO /*!< Power voltage detector output flag */ +#endif /* PWR_PVD_SUPPORT */ +#if defined(PWR_CSR_VREFINTRDYF) +#define LL_PWR_CSR_VREFINTRDYF PWR_CSR_VREFINTRDYF /*!< VREFINT ready flag */ +#endif /* PWR_CSR_VREFINTRDYF */ +#define LL_PWR_CSR_VOS PWR_CSR_VOSF /*!< Voltage scaling select flag */ +#define LL_PWR_CSR_REGLPF PWR_CSR_REGLPF /*!< Regulator low power flag */ +#define LL_PWR_CSR_EWUP1 PWR_CSR_EWUP1 /*!< Enable WKUP pin 1 */ +#define LL_PWR_CSR_EWUP2 PWR_CSR_EWUP2 /*!< Enable WKUP pin 2 */ +#if defined(PWR_CSR_EWUP3) +#define LL_PWR_CSR_EWUP3 PWR_CSR_EWUP3 /*!< Enable WKUP pin 3 */ +#endif /* PWR_CSR_EWUP3 */ +/** + * @} + */ + +/** @defgroup PWR_LL_EC_REGU_VOLTAGE Regulator Voltage + * @{ + */ +#define LL_PWR_REGU_VOLTAGE_SCALE1 (PWR_CR_VOS_0) /*!< 1.8V (range 1) */ +#define LL_PWR_REGU_VOLTAGE_SCALE2 (PWR_CR_VOS_1) /*!< 1.5V (range 2) */ +#define LL_PWR_REGU_VOLTAGE_SCALE3 (PWR_CR_VOS_0 | PWR_CR_VOS_1) /*!< 1.2V (range 3) */ +/** + * @} + */ + +/** @defgroup PWR_LL_EC_MODE_PWR Mode Power + * @{ + */ +#define LL_PWR_MODE_STOP 0x00000000U /*!< Enter Stop mode when the CPU enters deepsleep */ +#define LL_PWR_MODE_STANDBY (PWR_CR_PDDS) /*!< Enter Standby mode when the CPU enters deepsleep */ +/** + * @} + */ + +/** @defgroup PWR_LL_EC_REGU_MODE_LP_MODES Regulator Mode In Low Power Modes + * @{ + */ +#define LL_PWR_REGU_LPMODES_MAIN 0x00000000U /*!< Voltage Regulator in main mode during deepsleep/sleep/low-power run mode */ +#define LL_PWR_REGU_LPMODES_LOW_POWER (PWR_CR_LPSDSR) /*!< Voltage Regulator in low-power mode during deepsleep/sleep/low-power run mode */ +/** + * @} + */ +#if defined(PWR_CR_LPDS) +/** @defgroup PWR_LL_EC_REGU_MODE_DS_MODE Regulator Mode In Deep Sleep Mode + * @{ + */ +#define LL_PWR_REGU_DSMODE_MAIN 0x00000000U /*!< Voltage Regulator in main mode during deepsleep mode */ +#define LL_PWR_REGU_DSMODE_LOW_POWER (PWR_CR_LPDS) /*!< Voltage Regulator in low-power mode during deepsleep mode */ +/** + * @} + */ +#endif /* PWR_CR_LPDS */ + +#if defined(PWR_PVD_SUPPORT) +/** @defgroup PWR_LL_EC_PVDLEVEL Power Voltage Detector Level + * @{ + */ +#define LL_PWR_PVDLEVEL_0 (PWR_CR_PLS_LEV0) /*!< Voltage threshold detected by PVD 1.9 V */ +#define LL_PWR_PVDLEVEL_1 (PWR_CR_PLS_LEV1) /*!< Voltage threshold detected by PVD 2.1 V */ +#define LL_PWR_PVDLEVEL_2 (PWR_CR_PLS_LEV2) /*!< Voltage threshold detected by PVD 2.3 V */ +#define LL_PWR_PVDLEVEL_3 (PWR_CR_PLS_LEV3) /*!< Voltage threshold detected by PVD 2.5 V */ +#define LL_PWR_PVDLEVEL_4 (PWR_CR_PLS_LEV4) /*!< Voltage threshold detected by PVD 2.7 V */ +#define LL_PWR_PVDLEVEL_5 (PWR_CR_PLS_LEV5) /*!< Voltage threshold detected by PVD 2.9 V */ +#define LL_PWR_PVDLEVEL_6 (PWR_CR_PLS_LEV6) /*!< Voltage threshold detected by PVD 3.1 V */ +#define LL_PWR_PVDLEVEL_7 (PWR_CR_PLS_LEV7) /*!< External input analog voltage (Compare internally to VREFINT) */ +/** + * @} + */ +#endif /* PWR_PVD_SUPPORT */ +/** @defgroup PWR_LL_EC_WAKEUP_PIN Wakeup Pins + * @{ + */ +#define LL_PWR_WAKEUP_PIN1 (PWR_CSR_EWUP1) /*!< WKUP pin 1 : PA0 */ +#define LL_PWR_WAKEUP_PIN2 (PWR_CSR_EWUP2) /*!< WKUP pin 2 : PC13 */ +#if defined(PWR_CSR_EWUP3) +#define LL_PWR_WAKEUP_PIN3 (PWR_CSR_EWUP3) /*!< WKUP pin 3 : PE6 or PA2 according to device */ +#endif /* PWR_CSR_EWUP3 */ +/** + * @} + */ + +/** + * @} + */ + + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup PWR_LL_Exported_Macros PWR Exported Macros + * @{ + */ + +/** @defgroup PWR_LL_EM_WRITE_READ Common write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in PWR register + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__)) + +/** + * @brief Read a value in PWR register + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__) +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup PWR_LL_Exported_Functions PWR Exported Functions + * @{ + */ + +/** @defgroup PWR_LL_EF_Configuration Configuration + * @{ + */ +/** + * @brief Switch the Regulator from main mode to low-power mode + * @rmtoll CR LPRUN LL_PWR_EnableLowPowerRunMode + * @note Remind to set the Regulator to low power before enabling + * LowPower run mode (bit @ref LL_PWR_REGU_LPMODES_LOW_POWER). + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableLowPowerRunMode(void) +{ + SET_BIT(PWR->CR, PWR_CR_LPRUN); +} + +/** + * @brief Switch the Regulator from low-power mode to main mode + * @rmtoll CR LPRUN LL_PWR_DisableLowPowerRunMode + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableLowPowerRunMode(void) +{ + CLEAR_BIT(PWR->CR, PWR_CR_LPRUN); +} + +/** + * @brief Check if the Regulator is in low-power mode + * @rmtoll CR LPRUN LL_PWR_IsEnabledLowPowerRunMode + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledLowPowerRunMode(void) +{ + return ((READ_BIT(PWR->CR, PWR_CR_LPRUN) == PWR_CR_LPRUN) ? 1UL : 0UL); +} + +/** + * @brief Set voltage Regulator to low-power and switch from + * run main mode to run low-power mode. + * @rmtoll CR LPSDSR LL_PWR_EnterLowPowerRunMode\n + * CR LPRUN LL_PWR_EnterLowPowerRunMode + * @note This "high level" function is introduced to provide functional + * compatibility with other families. Notice that the two registers + * have to be written sequentially, so this function is not atomic. + * To assure atomicity you can call separately the following functions: + * - @ref LL_PWR_SetRegulModeLP(@ref LL_PWR_REGU_LPMODES_LOW_POWER); + * - @ref LL_PWR_EnableLowPowerRunMode(); + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnterLowPowerRunMode(void) +{ + SET_BIT(PWR->CR, PWR_CR_LPSDSR); /* => LL_PWR_SetRegulModeLP(LL_PWR_REGU_LPMODES_LOW_POWER) */ + SET_BIT(PWR->CR, PWR_CR_LPRUN); /* => LL_PWR_EnableLowPowerRunMode() */ +} + +/** + * @brief Set voltage Regulator to main and switch from + * run main mode to low-power mode. + * @rmtoll CR LPSDSR LL_PWR_ExitLowPowerRunMode\n + * CR LPRUN LL_PWR_ExitLowPowerRunMode + * @note This "high level" function is introduced to provide functional + * compatibility with other families. Notice that the two registers + * have to be written sequentially, so this function is not atomic. + * To assure atomicity you can call separately the following functions: + * - @ref LL_PWR_DisableLowPowerRunMode(); + * - @ref LL_PWR_SetRegulModeLP(@ref LL_PWR_REGU_LPMODES_MAIN); + * @retval None + */ +__STATIC_INLINE void LL_PWR_ExitLowPowerRunMode(void) +{ + CLEAR_BIT(PWR->CR, PWR_CR_LPRUN); /* => LL_PWR_DisableLowPowerRunMode() */ + CLEAR_BIT(PWR->CR, PWR_CR_LPSDSR); /* => LL_PWR_SetRegulModeLP(LL_PWR_REGU_LPMODES_MAIN) */ +} +/** + * @brief Set the main internal Regulator output voltage + * @rmtoll CR VOS LL_PWR_SetRegulVoltageScaling + * @param VoltageScaling This parameter can be one of the following values: + * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1 + * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2 + * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE3 + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetRegulVoltageScaling(uint32_t VoltageScaling) +{ + MODIFY_REG(PWR->CR, PWR_CR_VOS, VoltageScaling); +} + +/** + * @brief Get the main internal Regulator output voltage + * @rmtoll CR VOS LL_PWR_GetRegulVoltageScaling + * @retval Returned value can be one of the following values: + * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1 + * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2 + * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE3 + */ +__STATIC_INLINE uint32_t LL_PWR_GetRegulVoltageScaling(void) +{ + return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_VOS)); +} + +/** + * @brief Enable access to the backup domain + * @rmtoll CR DBP LL_PWR_EnableBkUpAccess + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableBkUpAccess(void) +{ + SET_BIT(PWR->CR, PWR_CR_DBP); +} + +/** + * @brief Disable access to the backup domain + * @rmtoll CR DBP LL_PWR_DisableBkUpAccess + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableBkUpAccess(void) +{ + CLEAR_BIT(PWR->CR, PWR_CR_DBP); +} + +/** + * @brief Check if the backup domain is enabled + * @rmtoll CR DBP LL_PWR_IsEnabledBkUpAccess + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void) +{ + return ((READ_BIT(PWR->CR, PWR_CR_DBP) == PWR_CR_DBP) ? 1UL : 0UL); +} + +/** + * @brief Set voltage Regulator mode during low power modes + * @rmtoll CR LPSDSR LL_PWR_SetRegulModeLP + * @param RegulMode This parameter can be one of the following values: + * @arg @ref LL_PWR_REGU_LPMODES_MAIN + * @arg @ref LL_PWR_REGU_LPMODES_LOW_POWER + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetRegulModeLP(uint32_t RegulMode) +{ + MODIFY_REG(PWR->CR, PWR_CR_LPSDSR, RegulMode); +} + +/** + * @brief Get voltage Regulator mode during low power modes + * @rmtoll CR LPSDSR LL_PWR_GetRegulModeLP + * @retval Returned value can be one of the following values: + * @arg @ref LL_PWR_REGU_LPMODES_MAIN + * @arg @ref LL_PWR_REGU_LPMODES_LOW_POWER + */ +__STATIC_INLINE uint32_t LL_PWR_GetRegulModeLP(void) +{ + return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_LPSDSR)); +} + +#if defined(PWR_CR_LPDS) +/** + * @brief Set voltage Regulator mode during deep sleep mode + * @rmtoll CR LPDS LL_PWR_SetRegulModeDS + * @param RegulMode This parameter can be one of the following values: + * @arg @ref LL_PWR_REGU_DSMODE_MAIN + * @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetRegulModeDS(uint32_t RegulMode) +{ + MODIFY_REG(PWR->CR, PWR_CR_LPDS, RegulMode); +} + +/** + * @brief Get voltage Regulator mode during deep sleep mode + * @rmtoll CR LPDS LL_PWR_GetRegulModeDS + * @retval Returned value can be one of the following values: + * @arg @ref LL_PWR_REGU_DSMODE_MAIN + * @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER + */ +__STATIC_INLINE uint32_t LL_PWR_GetRegulModeDS(void) +{ + return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_LPDS)); +} +#endif /* PWR_CR_LPDS */ + +/** + * @brief Set Power Down mode when CPU enters deepsleep + * @rmtoll CR PDDS LL_PWR_SetPowerMode + * @param PDMode This parameter can be one of the following values: + * @arg @ref LL_PWR_MODE_STOP + * @arg @ref LL_PWR_MODE_STANDBY + * @note Set the Regulator to low power (bit @ref LL_PWR_REGU_LPMODES_LOW_POWER) + * before setting MODE_STOP. If the Regulator remains in "main mode", + * it consumes more power without providing any additional feature. + * In MODE_STANDBY the Regulator is automatically off. + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetPowerMode(uint32_t PDMode) +{ + MODIFY_REG(PWR->CR, PWR_CR_PDDS, PDMode); +} + +/** + * @brief Get Power Down mode when CPU enters deepsleep + * @rmtoll CR PDDS LL_PWR_GetPowerMode + * @retval Returned value can be one of the following values: + * @arg @ref LL_PWR_MODE_STOP + * @arg @ref LL_PWR_MODE_STANDBY + */ +__STATIC_INLINE uint32_t LL_PWR_GetPowerMode(void) +{ + return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_PDDS)); +} + +#if defined(PWR_PVD_SUPPORT) +/** + * @brief Configure the voltage threshold detected by the Power Voltage Detector + * @rmtoll CR PLS LL_PWR_SetPVDLevel + * @param PVDLevel This parameter can be one of the following values: + * @arg @ref LL_PWR_PVDLEVEL_0 + * @arg @ref LL_PWR_PVDLEVEL_1 + * @arg @ref LL_PWR_PVDLEVEL_2 + * @arg @ref LL_PWR_PVDLEVEL_3 + * @arg @ref LL_PWR_PVDLEVEL_4 + * @arg @ref LL_PWR_PVDLEVEL_5 + * @arg @ref LL_PWR_PVDLEVEL_6 + * @arg @ref LL_PWR_PVDLEVEL_7 + * @retval None + */ +__STATIC_INLINE void LL_PWR_SetPVDLevel(uint32_t PVDLevel) +{ + MODIFY_REG(PWR->CR, PWR_CR_PLS, PVDLevel); +} + +/** + * @brief Get the voltage threshold detection + * @rmtoll CR PLS LL_PWR_GetPVDLevel + * @retval Returned value can be one of the following values: + * @arg @ref LL_PWR_PVDLEVEL_0 + * @arg @ref LL_PWR_PVDLEVEL_1 + * @arg @ref LL_PWR_PVDLEVEL_2 + * @arg @ref LL_PWR_PVDLEVEL_3 + * @arg @ref LL_PWR_PVDLEVEL_4 + * @arg @ref LL_PWR_PVDLEVEL_5 + * @arg @ref LL_PWR_PVDLEVEL_6 + * @arg @ref LL_PWR_PVDLEVEL_7 + */ +__STATIC_INLINE uint32_t LL_PWR_GetPVDLevel(void) +{ + return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_PLS)); +} + +/** + * @brief Enable Power Voltage Detector + * @rmtoll CR PVDE LL_PWR_EnablePVD + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnablePVD(void) +{ + SET_BIT(PWR->CR, PWR_CR_PVDE); +} + +/** + * @brief Disable Power Voltage Detector + * @rmtoll CR PVDE LL_PWR_DisablePVD + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisablePVD(void) +{ + CLEAR_BIT(PWR->CR, PWR_CR_PVDE); +} + +/** + * @brief Check if Power Voltage Detector is enabled + * @rmtoll CR PVDE LL_PWR_IsEnabledPVD + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void) +{ + return ((READ_BIT(PWR->CR, PWR_CR_PVDE) == PWR_CR_PVDE) ? 1UL : 0UL); +} +#endif /* PWR_PVD_SUPPORT */ + +/** + * @brief Enable the WakeUp PINx functionality + * @rmtoll CSR EWUP1 LL_PWR_EnableWakeUpPin\n + * @rmtoll CSR EWUP2 LL_PWR_EnableWakeUpPin\n + * @rmtoll CSR EWUP3 LL_PWR_EnableWakeUpPin + * @param WakeUpPin This parameter can be one of the following values: + * @arg @ref LL_PWR_WAKEUP_PIN1 + * @arg @ref LL_PWR_WAKEUP_PIN2 + * @arg @ref LL_PWR_WAKEUP_PIN3 (*) + * + * (*) not available on all devices + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin) +{ + SET_BIT(PWR->CSR, WakeUpPin); +} + +/** + * @brief Disable the WakeUp PINx functionality + * @rmtoll CSR EWUP1 LL_PWR_DisableWakeUpPin\n + * @rmtoll CSR EWUP2 LL_PWR_DisableWakeUpPin\n + * @rmtoll CSR EWUP3 LL_PWR_DisableWakeUpPin + * @param WakeUpPin This parameter can be one of the following values: + * @arg @ref LL_PWR_WAKEUP_PIN1 + * @arg @ref LL_PWR_WAKEUP_PIN2 + * @arg @ref LL_PWR_WAKEUP_PIN3 (*) + * + * (*) not available on all devices + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin) +{ + CLEAR_BIT(PWR->CSR, WakeUpPin); +} + +/** + * @brief Check if the WakeUp PINx functionality is enabled + * @rmtoll CSR EWUP1 LL_PWR_IsEnabledWakeUpPin\n + * @rmtoll CSR EWUP2 LL_PWR_IsEnabledWakeUpPin\n + * @rmtoll CSR EWUP3 LL_PWR_IsEnabledWakeUpPin + * @param WakeUpPin This parameter can be one of the following values: + * @arg @ref LL_PWR_WAKEUP_PIN1 + * @arg @ref LL_PWR_WAKEUP_PIN2 + * @arg @ref LL_PWR_WAKEUP_PIN3 (*) + * + * (*) not available on all devices + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin) +{ + return ((READ_BIT(PWR->CSR, WakeUpPin) == WakeUpPin) ? 1UL : 0UL); +} + +/** + * @brief Enable ultra low-power mode by enabling VREFINT switch off in low-power modes + * @rmtoll CR ULP LL_PWR_EnableUltraLowPower + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableUltraLowPower(void) +{ + SET_BIT(PWR->CR, PWR_CR_ULP); +} + +/** + * @brief Disable ultra low-power mode by disabling VREFINT switch off in low-power modes + * @rmtoll CR ULP LL_PWR_DisableUltraLowPower + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableUltraLowPower(void) +{ + CLEAR_BIT(PWR->CR, PWR_CR_ULP); +} + +/** + * @brief Check if ultra low-power mode is enabled by checking if VREFINT switch off in low-power modes is enabled + * @rmtoll CR ULP LL_PWR_IsEnabledUltraLowPower + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledUltraLowPower(void) +{ + return ((READ_BIT(PWR->CR, PWR_CR_ULP) == PWR_CR_ULP) ? 1UL : 0UL); +} + +/** + * @brief Enable fast wakeup by ignoring VREFINT startup time when exiting from low-power mode + * @rmtoll CR FWU LL_PWR_EnableFastWakeUp + * @note Works in conjunction with ultra low power mode. + * @retval None + */ +__STATIC_INLINE void LL_PWR_EnableFastWakeUp(void) +{ + SET_BIT(PWR->CR, PWR_CR_FWU); +} + +/** + * @brief Disable fast wakeup by waiting VREFINT startup time when exiting from low-power mode + * @rmtoll CR FWU LL_PWR_DisableFastWakeUp + * @note Works in conjunction with ultra low power mode. + * @retval None + */ +__STATIC_INLINE void LL_PWR_DisableFastWakeUp(void) +{ + CLEAR_BIT(PWR->CR, PWR_CR_FWU); +} + +/** + * @brief Check if fast wakeup is enabled by checking if VREFINT startup time when exiting from low-power mode is ignored + * @rmtoll CR FWU LL_PWR_IsEnabledFastWakeUp + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsEnabledFastWakeUp(void) +{ + return ((READ_BIT(PWR->CR, PWR_CR_FWU) == PWR_CR_FWU) ? 1UL : 0UL); +} + + +/** + * @} + */ + +/** @defgroup PWR_LL_EF_FLAG_Management FLAG_Management + * @{ + */ + +/** + * @brief Get Wake-up Flag + * @rmtoll CSR WUF LL_PWR_IsActiveFlag_WU + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU(void) +{ + return ((READ_BIT(PWR->CSR, PWR_CSR_WUF) == PWR_CSR_WUF) ? 1UL : 0UL); +} + +/** + * @brief Get Standby Flag + * @rmtoll CSR SBF LL_PWR_IsActiveFlag_SB + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void) +{ + return ((READ_BIT(PWR->CSR, PWR_CSR_SBF) == PWR_CSR_SBF) ? 1UL : 0UL); +} + +#if defined(PWR_PVD_SUPPORT) +/** + * @brief Indicate whether VDD voltage is below the selected PVD threshold + * @rmtoll CSR PVDO LL_PWR_IsActiveFlag_PVDO + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO(void) +{ + return ((READ_BIT(PWR->CSR, PWR_CSR_PVDO) == PWR_CSR_PVDO) ? 1UL : 0UL); +} +#endif /* PWR_PVD_SUPPORT */ + +#if defined(PWR_CSR_VREFINTRDYF) +/** + * @brief Get Internal Reference VrefInt Flag + * @rmtoll CSR VREFINTRDYF LL_PWR_IsActiveFlag_VREFINTRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VREFINTRDY(void) +{ + return ((READ_BIT(PWR->CSR, PWR_CSR_VREFINTRDYF) == PWR_CSR_VREFINTRDYF) ? 1UL : 0UL); +} +#endif /* PWR_CSR_VREFINTRDYF */ +/** + * @brief Indicate whether the Regulator is ready in the selected voltage range or if its output voltage is still changing to the required voltage level + * @rmtoll CSR VOSF LL_PWR_IsActiveFlag_VOS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VOS(void) +{ + return ((READ_BIT(PWR->CSR, PWR_CSR_VOSF) == PWR_CSR_VOSF) ? 1UL : 0UL); +} +/** + * @brief Indicate whether the Regulator is ready in main mode or is in low-power mode + * @rmtoll CSR REGLPF LL_PWR_IsActiveFlag_REGLPF + * @note Take care, return value "0" means the Regulator is ready. Return value "1" means the output voltage range is still changing. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_REGLPF(void) +{ + return ((READ_BIT(PWR->CSR, PWR_CSR_REGLPF) == PWR_CSR_REGLPF) ? 1UL : 0UL); +} +/** + * @brief Clear Standby Flag + * @rmtoll CR CSBF LL_PWR_ClearFlag_SB + * @retval None + */ +__STATIC_INLINE void LL_PWR_ClearFlag_SB(void) +{ + SET_BIT(PWR->CR, PWR_CR_CSBF); +} + +/** + * @brief Clear Wake-up Flags + * @rmtoll CR CWUF LL_PWR_ClearFlag_WU + * @retval None + */ +__STATIC_INLINE void LL_PWR_ClearFlag_WU(void) +{ + SET_BIT(PWR->CR, PWR_CR_CWUF); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup PWR_LL_EF_Init De-initialization function + * @{ + */ +ErrorStatus LL_PWR_DeInit(void); +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** @defgroup PWR_LL_EF_Legacy_Functions PWR legacy functions name + * @{ + */ +/* Old functions name kept for legacy purpose, to be replaced by the */ +/* current functions name. */ +#define LL_PWR_IsActiveFlag_VOSF LL_PWR_IsActiveFlag_VOS +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined(PWR) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_LL_PWR_H */ diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_rcc.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_rcc.h new file mode 100644 index 0000000..1fdbcd8 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_rcc.h @@ -0,0 +1,1796 @@ +/** + ****************************************************************************** + * @file stm32l1xx_ll_rcc.h + * @author MCD Application Team + * @brief Header file of RCC LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_LL_RCC_H +#define __STM32L1xx_LL_RCC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx.h" + +/** @addtogroup STM32L1xx_LL_Driver + * @{ + */ + +#if defined(RCC) + +/** @defgroup RCC_LL RCC + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup RCC_LL_Exported_Types RCC Exported Types + * @{ + */ + +/** @defgroup LL_ES_CLOCK_FREQ Clocks Frequency Structure + * @{ + */ + +/** + * @brief RCC Clocks Frequency Structure + */ +typedef struct +{ + uint32_t SYSCLK_Frequency; /*!< SYSCLK clock frequency */ + uint32_t HCLK_Frequency; /*!< HCLK clock frequency */ + uint32_t PCLK1_Frequency; /*!< PCLK1 clock frequency */ + uint32_t PCLK2_Frequency; /*!< PCLK2 clock frequency */ +} LL_RCC_ClocksTypeDef; + +/** + * @} + */ + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup RCC_LL_Exported_Constants RCC Exported Constants + * @{ + */ + +/** @defgroup RCC_LL_EC_OSC_VALUES Oscillator Values adaptation + * @brief Defines used to adapt values of different oscillators + * @note These values could be modified in the user environment according to + * HW set-up. + * @{ + */ +#if !defined (HSE_VALUE) +#define HSE_VALUE 8000000U /*!< Value of the HSE oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) +#define HSI_VALUE 16000000U /*!< Value of the HSI oscillator in Hz */ +#endif /* HSI_VALUE */ + +#if !defined (LSE_VALUE) +#define LSE_VALUE 32768U /*!< Value of the LSE oscillator in Hz */ +#endif /* LSE_VALUE */ + +#if !defined (LSI_VALUE) +#define LSI_VALUE 37000U /*!< Value of the LSI oscillator in Hz */ +#endif /* LSI_VALUE */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_CLEAR_FLAG Clear Flags Defines + * @brief Flags defines which can be used with LL_RCC_WriteReg function + * @{ + */ +#define LL_RCC_CIR_LSIRDYC RCC_CIR_LSIRDYC /*!< LSI Ready Interrupt Clear */ +#define LL_RCC_CIR_LSERDYC RCC_CIR_LSERDYC /*!< LSE Ready Interrupt Clear */ +#define LL_RCC_CIR_HSIRDYC RCC_CIR_HSIRDYC /*!< HSI Ready Interrupt Clear */ +#define LL_RCC_CIR_HSERDYC RCC_CIR_HSERDYC /*!< HSE Ready Interrupt Clear */ +#define LL_RCC_CIR_PLLRDYC RCC_CIR_PLLRDYC /*!< PLL Ready Interrupt Clear */ +#define LL_RCC_CIR_MSIRDYC RCC_CIR_MSIRDYC /*!< MSI Ready Interrupt Clear */ +#if defined(RCC_LSECSS_SUPPORT) +#define LL_RCC_CIR_LSECSSC RCC_CIR_LSECSSC /*!< LSE Clock Security System Interrupt Clear */ +#endif /* RCC_LSECSS_SUPPORT */ +#define LL_RCC_CIR_CSSC RCC_CIR_CSSC /*!< Clock Security System Interrupt Clear */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_RCC_ReadReg function + * @{ + */ +#define LL_RCC_CIR_LSIRDYF RCC_CIR_LSIRDYF /*!< LSI Ready Interrupt flag */ +#define LL_RCC_CIR_LSERDYF RCC_CIR_LSERDYF /*!< LSE Ready Interrupt flag */ +#define LL_RCC_CIR_HSIRDYF RCC_CIR_HSIRDYF /*!< HSI Ready Interrupt flag */ +#define LL_RCC_CIR_HSERDYF RCC_CIR_HSERDYF /*!< HSE Ready Interrupt flag */ +#define LL_RCC_CIR_PLLRDYF RCC_CIR_PLLRDYF /*!< PLL Ready Interrupt flag */ +#define LL_RCC_CIR_MSIRDYF RCC_CIR_MSIRDYF /*!< MSI Ready Interrupt flag */ +#if defined(RCC_LSECSS_SUPPORT) +#define LL_RCC_CIR_LSECSSF RCC_CIR_LSECSSF /*!< LSE Clock Security System Interrupt flag */ +#endif /* RCC_LSECSS_SUPPORT */ +#define LL_RCC_CIR_CSSF RCC_CIR_CSSF /*!< Clock Security System Interrupt flag */ +#define LL_RCC_CSR_OBLRSTF RCC_CSR_OBLRSTF /*!< OBL reset flag */ +#define LL_RCC_CSR_PINRSTF RCC_CSR_PINRSTF /*!< PIN reset flag */ +#define LL_RCC_CSR_PORRSTF RCC_CSR_PORRSTF /*!< POR/PDR reset flag */ +#define LL_RCC_CSR_SFTRSTF RCC_CSR_SFTRSTF /*!< Software Reset flag */ +#define LL_RCC_CSR_IWDGRSTF RCC_CSR_IWDGRSTF /*!< Independent Watchdog reset flag */ +#define LL_RCC_CSR_WWDGRSTF RCC_CSR_WWDGRSTF /*!< Window watchdog reset flag */ +#define LL_RCC_CSR_LPWRRSTF RCC_CSR_LPWRRSTF /*!< Low-Power reset flag */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_RCC_ReadReg and LL_RCC_WriteReg functions + * @{ + */ +#define LL_RCC_CIR_LSIRDYIE RCC_CIR_LSIRDYIE /*!< LSI Ready Interrupt Enable */ +#define LL_RCC_CIR_LSERDYIE RCC_CIR_LSERDYIE /*!< LSE Ready Interrupt Enable */ +#define LL_RCC_CIR_HSIRDYIE RCC_CIR_HSIRDYIE /*!< HSI Ready Interrupt Enable */ +#define LL_RCC_CIR_HSERDYIE RCC_CIR_HSERDYIE /*!< HSE Ready Interrupt Enable */ +#define LL_RCC_CIR_PLLRDYIE RCC_CIR_PLLRDYIE /*!< PLL Ready Interrupt Enable */ +#define LL_RCC_CIR_MSIRDYIE RCC_CIR_MSIRDYIE /*!< MSI Ready Interrupt Enable */ +#if defined(RCC_LSECSS_SUPPORT) +#define LL_RCC_CIR_LSECSSIE RCC_CIR_LSECSSIE /*!< LSE CSS Interrupt Enable */ +#endif /* RCC_LSECSS_SUPPORT */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_RTC_HSE_DIV RTC HSE Prescaler + * @{ + */ +#define LL_RCC_RTC_HSE_DIV_2 0x00000000U /*!< HSE is divided by 2 for RTC clock */ +#define LL_RCC_RTC_HSE_DIV_4 RCC_CR_RTCPRE_0 /*!< HSE is divided by 4 for RTC clock */ +#define LL_RCC_RTC_HSE_DIV_8 RCC_CR_RTCPRE_1 /*!< HSE is divided by 8 for RTC clock */ +#define LL_RCC_RTC_HSE_DIV_16 RCC_CR_RTCPRE /*!< HSE is divided by 16 for RTC clock */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_MSIRANGE MSI clock ranges + * @{ + */ +#define LL_RCC_MSIRANGE_0 RCC_ICSCR_MSIRANGE_0 /*!< MSI = 65.536 KHz */ +#define LL_RCC_MSIRANGE_1 RCC_ICSCR_MSIRANGE_1 /*!< MSI = 131.072 KHz*/ +#define LL_RCC_MSIRANGE_2 RCC_ICSCR_MSIRANGE_2 /*!< MSI = 262.144 KHz */ +#define LL_RCC_MSIRANGE_3 RCC_ICSCR_MSIRANGE_3 /*!< MSI = 524.288 KHz */ +#define LL_RCC_MSIRANGE_4 RCC_ICSCR_MSIRANGE_4 /*!< MSI = 1.048 MHz */ +#define LL_RCC_MSIRANGE_5 RCC_ICSCR_MSIRANGE_5 /*!< MSI = 2.097 MHz */ +#define LL_RCC_MSIRANGE_6 RCC_ICSCR_MSIRANGE_6 /*!< MSI = 4.194 MHz */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_SYS_CLKSOURCE System clock switch + * @{ + */ +#define LL_RCC_SYS_CLKSOURCE_MSI RCC_CFGR_SW_MSI /*!< MSI selection as system clock */ +#define LL_RCC_SYS_CLKSOURCE_HSI RCC_CFGR_SW_HSI /*!< HSI selection as system clock */ +#define LL_RCC_SYS_CLKSOURCE_HSE RCC_CFGR_SW_HSE /*!< HSE selection as system clock */ +#define LL_RCC_SYS_CLKSOURCE_PLL RCC_CFGR_SW_PLL /*!< PLL selection as system clock */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_SYS_CLKSOURCE_STATUS System clock switch status + * @{ + */ +#define LL_RCC_SYS_CLKSOURCE_STATUS_MSI RCC_CFGR_SWS_MSI /*!< MSI used as system clock */ +#define LL_RCC_SYS_CLKSOURCE_STATUS_HSI RCC_CFGR_SWS_HSI /*!< HSI used as system clock */ +#define LL_RCC_SYS_CLKSOURCE_STATUS_HSE RCC_CFGR_SWS_HSE /*!< HSE used as system clock */ +#define LL_RCC_SYS_CLKSOURCE_STATUS_PLL RCC_CFGR_SWS_PLL /*!< PLL used as system clock */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_SYSCLK_DIV AHB prescaler + * @{ + */ +#define LL_RCC_SYSCLK_DIV_1 RCC_CFGR_HPRE_DIV1 /*!< SYSCLK not divided */ +#define LL_RCC_SYSCLK_DIV_2 RCC_CFGR_HPRE_DIV2 /*!< SYSCLK divided by 2 */ +#define LL_RCC_SYSCLK_DIV_4 RCC_CFGR_HPRE_DIV4 /*!< SYSCLK divided by 4 */ +#define LL_RCC_SYSCLK_DIV_8 RCC_CFGR_HPRE_DIV8 /*!< SYSCLK divided by 8 */ +#define LL_RCC_SYSCLK_DIV_16 RCC_CFGR_HPRE_DIV16 /*!< SYSCLK divided by 16 */ +#define LL_RCC_SYSCLK_DIV_64 RCC_CFGR_HPRE_DIV64 /*!< SYSCLK divided by 64 */ +#define LL_RCC_SYSCLK_DIV_128 RCC_CFGR_HPRE_DIV128 /*!< SYSCLK divided by 128 */ +#define LL_RCC_SYSCLK_DIV_256 RCC_CFGR_HPRE_DIV256 /*!< SYSCLK divided by 256 */ +#define LL_RCC_SYSCLK_DIV_512 RCC_CFGR_HPRE_DIV512 /*!< SYSCLK divided by 512 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_APB1_DIV APB low-speed prescaler (APB1) + * @{ + */ +#define LL_RCC_APB1_DIV_1 RCC_CFGR_PPRE1_DIV1 /*!< HCLK not divided */ +#define LL_RCC_APB1_DIV_2 RCC_CFGR_PPRE1_DIV2 /*!< HCLK divided by 2 */ +#define LL_RCC_APB1_DIV_4 RCC_CFGR_PPRE1_DIV4 /*!< HCLK divided by 4 */ +#define LL_RCC_APB1_DIV_8 RCC_CFGR_PPRE1_DIV8 /*!< HCLK divided by 8 */ +#define LL_RCC_APB1_DIV_16 RCC_CFGR_PPRE1_DIV16 /*!< HCLK divided by 16 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_APB2_DIV APB high-speed prescaler (APB2) + * @{ + */ +#define LL_RCC_APB2_DIV_1 RCC_CFGR_PPRE2_DIV1 /*!< HCLK not divided */ +#define LL_RCC_APB2_DIV_2 RCC_CFGR_PPRE2_DIV2 /*!< HCLK divided by 2 */ +#define LL_RCC_APB2_DIV_4 RCC_CFGR_PPRE2_DIV4 /*!< HCLK divided by 4 */ +#define LL_RCC_APB2_DIV_8 RCC_CFGR_PPRE2_DIV8 /*!< HCLK divided by 8 */ +#define LL_RCC_APB2_DIV_16 RCC_CFGR_PPRE2_DIV16 /*!< HCLK divided by 16 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_MCO1SOURCE MCO1 SOURCE selection + * @{ + */ +#define LL_RCC_MCO1SOURCE_NOCLOCK RCC_CFGR_MCOSEL_NOCLOCK /*!< MCO output disabled, no clock on MCO */ +#define LL_RCC_MCO1SOURCE_SYSCLK RCC_CFGR_MCOSEL_SYSCLK /*!< SYSCLK selection as MCO source */ +#define LL_RCC_MCO1SOURCE_HSI RCC_CFGR_MCOSEL_HSI /*!< HSI selection as MCO source */ +#define LL_RCC_MCO1SOURCE_MSI RCC_CFGR_MCOSEL_MSI /*!< MSI selection as MCO source */ +#define LL_RCC_MCO1SOURCE_HSE RCC_CFGR_MCOSEL_HSE /*!< HSE selection as MCO source */ +#define LL_RCC_MCO1SOURCE_LSI RCC_CFGR_MCOSEL_LSI /*!< LSI selection as MCO source */ +#define LL_RCC_MCO1SOURCE_LSE RCC_CFGR_MCOSEL_LSE /*!< LSE selection as MCO source */ +#define LL_RCC_MCO1SOURCE_PLLCLK RCC_CFGR_MCOSEL_PLL /*!< PLLCLK selection as MCO source */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_MCO1_DIV MCO1 prescaler + * @{ + */ +#define LL_RCC_MCO1_DIV_1 RCC_CFGR_MCOPRE_DIV1 /*!< MCO Clock divided by 1 */ +#define LL_RCC_MCO1_DIV_2 RCC_CFGR_MCOPRE_DIV2 /*!< MCO Clock divided by 2 */ +#define LL_RCC_MCO1_DIV_4 RCC_CFGR_MCOPRE_DIV4 /*!< MCO Clock divided by 4 */ +#define LL_RCC_MCO1_DIV_8 RCC_CFGR_MCOPRE_DIV8 /*!< MCO Clock divided by 8 */ +#define LL_RCC_MCO1_DIV_16 RCC_CFGR_MCOPRE_DIV16 /*!< MCO Clock divided by 16 */ +/** + * @} + */ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup RCC_LL_EC_PERIPH_FREQUENCY Peripheral clock frequency + * @{ + */ +#define LL_RCC_PERIPH_FREQUENCY_NO 0x00000000U /*!< No clock enabled for the peripheral */ +#define LL_RCC_PERIPH_FREQUENCY_NA 0xFFFFFFFFU /*!< Frequency cannot be provided as external clock */ +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + + + +/** @defgroup RCC_LL_EC_RTC_CLKSOURCE RTC clock source selection + * @{ + */ +#define LL_RCC_RTC_CLKSOURCE_NONE 0x00000000U /*!< No clock used as RTC clock */ +#define LL_RCC_RTC_CLKSOURCE_LSE RCC_CSR_RTCSEL_LSE /*!< LSE oscillator clock used as RTC clock */ +#define LL_RCC_RTC_CLKSOURCE_LSI RCC_CSR_RTCSEL_LSI /*!< LSI oscillator clock used as RTC clock */ +#define LL_RCC_RTC_CLKSOURCE_HSE RCC_CSR_RTCSEL_HSE /*!< HSE oscillator clock divided by a programmable prescaler + (selection through @ref LL_RCC_SetRTC_HSEPrescaler function ) */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PLL_MUL PLL Multiplicator factor + * @{ + */ +#define LL_RCC_PLL_MUL_3 RCC_CFGR_PLLMUL3 /*!< PLL input clock * 3 */ +#define LL_RCC_PLL_MUL_4 RCC_CFGR_PLLMUL4 /*!< PLL input clock * 4 */ +#define LL_RCC_PLL_MUL_6 RCC_CFGR_PLLMUL6 /*!< PLL input clock * 6 */ +#define LL_RCC_PLL_MUL_8 RCC_CFGR_PLLMUL8 /*!< PLL input clock * 8 */ +#define LL_RCC_PLL_MUL_12 RCC_CFGR_PLLMUL12 /*!< PLL input clock * 12 */ +#define LL_RCC_PLL_MUL_16 RCC_CFGR_PLLMUL16 /*!< PLL input clock * 16 */ +#define LL_RCC_PLL_MUL_24 RCC_CFGR_PLLMUL24 /*!< PLL input clock * 24 */ +#define LL_RCC_PLL_MUL_32 RCC_CFGR_PLLMUL32 /*!< PLL input clock * 32 */ +#define LL_RCC_PLL_MUL_48 RCC_CFGR_PLLMUL48 /*!< PLL input clock * 48 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PLL_DIV PLL division factor + * @{ + */ +#define LL_RCC_PLL_DIV_2 RCC_CFGR_PLLDIV2 /*!< PLL clock output = PLLVCO / 2 */ +#define LL_RCC_PLL_DIV_3 RCC_CFGR_PLLDIV3 /*!< PLL clock output = PLLVCO / 3 */ +#define LL_RCC_PLL_DIV_4 RCC_CFGR_PLLDIV4 /*!< PLL clock output = PLLVCO / 4 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PLLSOURCE PLL SOURCE + * @{ + */ +#define LL_RCC_PLLSOURCE_HSI RCC_CFGR_PLLSRC_HSI /*!< HSI clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE RCC_CFGR_PLLSRC_HSE /*!< HSE clock selected as PLL entry clock source */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup RCC_LL_Exported_Macros RCC Exported Macros + * @{ + */ + +/** @defgroup RCC_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in RCC register + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_RCC_WriteReg(__REG__, __VALUE__) WRITE_REG(RCC->__REG__, (__VALUE__)) + +/** + * @brief Read a value in RCC register + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_RCC_ReadReg(__REG__) READ_REG(RCC->__REG__) +/** + * @} + */ + +/** @defgroup RCC_LL_EM_CALC_FREQ Calculate frequencies + * @{ + */ + +/** + * @brief Helper macro to calculate the PLLCLK frequency + * @note ex: @ref __LL_RCC_CALC_PLLCLK_FREQ (HSE_VALUE, + * @ref LL_RCC_PLL_GetMultiplicator (), + * @ref LL_RCC_PLL_GetDivider ()); + * @param __INPUTFREQ__ PLL Input frequency (based on MSI/HSE/HSI) + * @param __PLLMUL__ This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_3 + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_12 + * @arg @ref LL_RCC_PLL_MUL_16 + * @arg @ref LL_RCC_PLL_MUL_24 + * @arg @ref LL_RCC_PLL_MUL_32 + * @arg @ref LL_RCC_PLL_MUL_48 + * @param __PLLDIV__ This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL_DIV_2 + * @arg @ref LL_RCC_PLL_DIV_3 + * @arg @ref LL_RCC_PLL_DIV_4 + * @retval PLL clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PLLCLK_FREQ(__INPUTFREQ__, __PLLMUL__, __PLLDIV__) ((__INPUTFREQ__) * (PLLMulTable[(__PLLMUL__) >> RCC_CFGR_PLLMUL_Pos]) / (((__PLLDIV__) >> RCC_CFGR_PLLDIV_Pos)+1U)) + +/** + * @brief Helper macro to calculate the HCLK frequency + * @note: __AHBPRESCALER__ be retrieved by @ref LL_RCC_GetAHBPrescaler + * ex: __LL_RCC_CALC_HCLK_FREQ(LL_RCC_GetAHBPrescaler()) + * @param __SYSCLKFREQ__ SYSCLK frequency (based on MSI/HSE/HSI/PLLCLK) + * @param __AHBPRESCALER__ This parameter can be one of the following values: + * @arg @ref LL_RCC_SYSCLK_DIV_1 + * @arg @ref LL_RCC_SYSCLK_DIV_2 + * @arg @ref LL_RCC_SYSCLK_DIV_4 + * @arg @ref LL_RCC_SYSCLK_DIV_8 + * @arg @ref LL_RCC_SYSCLK_DIV_16 + * @arg @ref LL_RCC_SYSCLK_DIV_64 + * @arg @ref LL_RCC_SYSCLK_DIV_128 + * @arg @ref LL_RCC_SYSCLK_DIV_256 + * @arg @ref LL_RCC_SYSCLK_DIV_512 + * @retval HCLK clock frequency (in Hz) + */ +#define __LL_RCC_CALC_HCLK_FREQ(__SYSCLKFREQ__, __AHBPRESCALER__) ((__SYSCLKFREQ__) >> AHBPrescTable[((__AHBPRESCALER__) & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos]) + +/** + * @brief Helper macro to calculate the PCLK1 frequency (ABP1) + * @note: __APB1PRESCALER__ be retrieved by @ref LL_RCC_GetAPB1Prescaler + * ex: __LL_RCC_CALC_PCLK1_FREQ(LL_RCC_GetAPB1Prescaler()) + * @param __HCLKFREQ__ HCLK frequency + * @param __APB1PRESCALER__ This parameter can be one of the following values: + * @arg @ref LL_RCC_APB1_DIV_1 + * @arg @ref LL_RCC_APB1_DIV_2 + * @arg @ref LL_RCC_APB1_DIV_4 + * @arg @ref LL_RCC_APB1_DIV_8 + * @arg @ref LL_RCC_APB1_DIV_16 + * @retval PCLK1 clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PCLK1_FREQ(__HCLKFREQ__, __APB1PRESCALER__) ((__HCLKFREQ__) >> APBPrescTable[(__APB1PRESCALER__) >> RCC_CFGR_PPRE1_Pos]) + +/** + * @brief Helper macro to calculate the PCLK2 frequency (ABP2) + * @note: __APB2PRESCALER__ be retrieved by @ref LL_RCC_GetAPB2Prescaler + * ex: __LL_RCC_CALC_PCLK2_FREQ(LL_RCC_GetAPB2Prescaler()) + * @param __HCLKFREQ__ HCLK frequency + * @param __APB2PRESCALER__ This parameter can be one of the following values: + * @arg @ref LL_RCC_APB2_DIV_1 + * @arg @ref LL_RCC_APB2_DIV_2 + * @arg @ref LL_RCC_APB2_DIV_4 + * @arg @ref LL_RCC_APB2_DIV_8 + * @arg @ref LL_RCC_APB2_DIV_16 + * @retval PCLK2 clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PCLK2_FREQ(__HCLKFREQ__, __APB2PRESCALER__) ((__HCLKFREQ__) >> APBPrescTable[(__APB2PRESCALER__) >> RCC_CFGR_PPRE2_Pos]) + +/** + * @brief Helper macro to calculate the MSI frequency (in Hz) + * @note: __MSIRANGE__can be retrieved by @ref LL_RCC_MSI_GetRange + * ex: __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_GetRange()) + * @param __MSIRANGE__ This parameter can be one of the following values: + * @arg @ref LL_RCC_MSIRANGE_0 + * @arg @ref LL_RCC_MSIRANGE_1 + * @arg @ref LL_RCC_MSIRANGE_2 + * @arg @ref LL_RCC_MSIRANGE_3 + * @arg @ref LL_RCC_MSIRANGE_4 + * @arg @ref LL_RCC_MSIRANGE_5 + * @arg @ref LL_RCC_MSIRANGE_6 + * @retval MSI clock frequency (in Hz) + */ +#define __LL_RCC_CALC_MSI_FREQ(__MSIRANGE__) ((32768U * ( 1UL << (((__MSIRANGE__) >> RCC_ICSCR_MSIRANGE_Pos) + 1U)))) + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup RCC_LL_Exported_Functions RCC Exported Functions + * @{ + */ + +/** @defgroup RCC_LL_EF_HSE HSE + * @{ + */ + +/** + * @brief Enable the Clock Security System. + * @rmtoll CR CSSON LL_RCC_HSE_EnableCSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_EnableCSS(void) +{ + SET_BIT(RCC->CR, RCC_CR_CSSON); +} + +/** + * @brief Disable the Clock Security System. + * @note Cannot be disabled in HSE is ready (only by hardware) + * @rmtoll CR CSSON LL_RCC_HSE_DisableCSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_DisableCSS(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_CSSON); +} + +/** + * @brief Enable HSE external oscillator (HSE Bypass) + * @rmtoll CR HSEBYP LL_RCC_HSE_EnableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_EnableBypass(void) +{ + SET_BIT(RCC->CR, RCC_CR_HSEBYP); +} + +/** + * @brief Disable HSE external oscillator (HSE Bypass) + * @rmtoll CR HSEBYP LL_RCC_HSE_DisableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_DisableBypass(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_HSEBYP); +} + +/** + * @brief Enable HSE crystal oscillator (HSE ON) + * @rmtoll CR HSEON LL_RCC_HSE_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_HSEON); +} + +/** + * @brief Disable HSE crystal oscillator (HSE ON) + * @rmtoll CR HSEON LL_RCC_HSE_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_HSEON); +} + +/** + * @brief Check if HSE oscillator Ready + * @rmtoll CR HSERDY LL_RCC_HSE_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_HSE_IsReady(void) +{ + return ((READ_BIT(RCC->CR, RCC_CR_HSERDY) == RCC_CR_HSERDY) ? 1UL : 0UL); +} + +/** + * @brief Configure the RTC prescaler (divider) + * @rmtoll CR RTCPRE LL_RCC_SetRTC_HSEPrescaler + * @param Div This parameter can be one of the following values: + * @arg @ref LL_RCC_RTC_HSE_DIV_2 + * @arg @ref LL_RCC_RTC_HSE_DIV_4 + * @arg @ref LL_RCC_RTC_HSE_DIV_8 + * @arg @ref LL_RCC_RTC_HSE_DIV_16 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetRTC_HSEPrescaler(uint32_t Div) +{ + MODIFY_REG(RCC->CR, RCC_CR_RTCPRE, Div); +} + +/** + * @brief Get the RTC divider (prescaler) + * @rmtoll CR RTCPRE LL_RCC_GetRTC_HSEPrescaler + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_RTC_HSE_DIV_2 + * @arg @ref LL_RCC_RTC_HSE_DIV_4 + * @arg @ref LL_RCC_RTC_HSE_DIV_8 + * @arg @ref LL_RCC_RTC_HSE_DIV_16 + */ +__STATIC_INLINE uint32_t LL_RCC_GetRTC_HSEPrescaler(void) +{ + return (uint32_t)(READ_BIT(RCC->CR, RCC_CR_RTCPRE)); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_HSI HSI + * @{ + */ + +/** + * @brief Enable HSI oscillator + * @rmtoll CR HSION LL_RCC_HSI_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_HSION); +} + +/** + * @brief Disable HSI oscillator + * @rmtoll CR HSION LL_RCC_HSI_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_HSION); +} + +/** + * @brief Check if HSI clock is ready + * @rmtoll CR HSIRDY LL_RCC_HSI_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_HSI_IsReady(void) +{ + return ((READ_BIT(RCC->CR, RCC_CR_HSIRDY) == RCC_CR_HSIRDY) ? 1UL : 0UL); +} + +/** + * @brief Get HSI Calibration value + * @note When HSITRIM is written, HSICAL is updated with the sum of + * HSITRIM and the factory trim value + * @rmtoll ICSCR HSICAL LL_RCC_HSI_GetCalibration + * @retval Between Min_Data = 0x00 and Max_Data = 0xFF + */ +__STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibration(void) +{ + return (uint32_t)(READ_BIT(RCC->ICSCR, RCC_ICSCR_HSICAL) >> RCC_ICSCR_HSICAL_Pos); +} + +/** + * @brief Set HSI Calibration trimming + * @note user-programmable trimming value that is added to the HSICAL + * @note Default value is 16, which, when added to the HSICAL value, + * should trim the HSI to 16 MHz +/- 1 % + * @rmtoll ICSCR HSITRIM LL_RCC_HSI_SetCalibTrimming + * @param Value between Min_Data = 0x00 and Max_Data = 0x1F + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_SetCalibTrimming(uint32_t Value) +{ + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSITRIM, Value << RCC_ICSCR_HSITRIM_Pos); +} + +/** + * @brief Get HSI Calibration trimming + * @rmtoll ICSCR HSITRIM LL_RCC_HSI_GetCalibTrimming + * @retval Between Min_Data = 0x00 and Max_Data = 0x1F + */ +__STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibTrimming(void) +{ + return (uint32_t)(READ_BIT(RCC->ICSCR, RCC_ICSCR_HSITRIM) >> RCC_ICSCR_HSITRIM_Pos); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_LSE LSE + * @{ + */ + +/** + * @brief Enable Low Speed External (LSE) crystal. + * @rmtoll CSR LSEON LL_RCC_LSE_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_Enable(void) +{ + SET_BIT(RCC->CSR, RCC_CSR_LSEON); +} + +/** + * @brief Disable Low Speed External (LSE) crystal. + * @rmtoll CSR LSEON LL_RCC_LSE_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_Disable(void) +{ + CLEAR_BIT(RCC->CSR, RCC_CSR_LSEON); +} + +/** + * @brief Enable external clock source (LSE bypass). + * @rmtoll CSR LSEBYP LL_RCC_LSE_EnableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_EnableBypass(void) +{ + SET_BIT(RCC->CSR, RCC_CSR_LSEBYP); +} + +/** + * @brief Disable external clock source (LSE bypass). + * @rmtoll CSR LSEBYP LL_RCC_LSE_DisableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_DisableBypass(void) +{ + CLEAR_BIT(RCC->CSR, RCC_CSR_LSEBYP); +} + +#if defined(RCC_LSECSS_SUPPORT) +/** + * @brief Enable Clock security system on LSE. + * @rmtoll CSR LSECSSON LL_RCC_LSE_EnableCSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_EnableCSS(void) +{ + SET_BIT(RCC->CSR, RCC_CSR_LSECSSON); +} + +/** + * @brief Disable Clock security system on LSE. + * @note Clock security system can be disabled only after a LSE + * failure detection. In that case it MUST be disabled by software. + * @rmtoll CSR LSECSSON LL_RCC_LSE_DisableCSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_DisableCSS(void) +{ + CLEAR_BIT(RCC->CSR, RCC_CSR_LSECSSON); +} + +#endif /* RCC_LSECSS_SUPPORT */ +/** + * @brief Check if LSE oscillator Ready + * @rmtoll CSR LSERDY LL_RCC_LSE_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_LSE_IsReady(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_LSERDY) == RCC_CSR_LSERDY) ? 1UL : 0UL); +} + +#if defined(RCC_LSECSS_SUPPORT) +/** + * @brief Check if CSS on LSE failure Detection + * @rmtoll CSR LSECSSD LL_RCC_LSE_IsCSSDetected + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_LSE_IsCSSDetected(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_LSECSSD) == RCC_CSR_LSECSSD) ? 1UL : 0UL); +} + +#endif /* RCC_LSECSS_SUPPORT */ +/** + * @} + */ + +/** @defgroup RCC_LL_EF_LSI LSI + * @{ + */ + +/** + * @brief Enable LSI Oscillator + * @rmtoll CSR LSION LL_RCC_LSI_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSI_Enable(void) +{ + SET_BIT(RCC->CSR, RCC_CSR_LSION); +} + +/** + * @brief Disable LSI Oscillator + * @rmtoll CSR LSION LL_RCC_LSI_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSI_Disable(void) +{ + CLEAR_BIT(RCC->CSR, RCC_CSR_LSION); +} + +/** + * @brief Check if LSI is Ready + * @rmtoll CSR LSIRDY LL_RCC_LSI_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_LSI_IsReady(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == RCC_CSR_LSIRDY) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_MSI MSI + * @{ + */ + +/** + * @brief Enable MSI oscillator + * @rmtoll CR MSION LL_RCC_MSI_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_MSI_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_MSION); +} + +/** + * @brief Disable MSI oscillator + * @rmtoll CR MSION LL_RCC_MSI_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_MSI_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_MSION); +} + +/** + * @brief Check if MSI oscillator Ready + * @rmtoll CR MSIRDY LL_RCC_MSI_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_MSI_IsReady(void) +{ + return ((READ_BIT(RCC->CR, RCC_CR_MSIRDY) == RCC_CR_MSIRDY) ? 1UL : 0UL); +} + +/** + * @brief Configure the Internal Multi Speed oscillator (MSI) clock range in run mode. + * @rmtoll ICSCR MSIRANGE LL_RCC_MSI_SetRange + * @param Range This parameter can be one of the following values: + * @arg @ref LL_RCC_MSIRANGE_0 + * @arg @ref LL_RCC_MSIRANGE_1 + * @arg @ref LL_RCC_MSIRANGE_2 + * @arg @ref LL_RCC_MSIRANGE_3 + * @arg @ref LL_RCC_MSIRANGE_4 + * @arg @ref LL_RCC_MSIRANGE_5 + * @arg @ref LL_RCC_MSIRANGE_6 + * @retval None + */ +__STATIC_INLINE void LL_RCC_MSI_SetRange(uint32_t Range) +{ + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_MSIRANGE, Range); +} + +/** + * @brief Get the Internal Multi Speed oscillator (MSI) clock range in run mode. + * @rmtoll ICSCR MSIRANGE LL_RCC_MSI_GetRange + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_MSIRANGE_0 + * @arg @ref LL_RCC_MSIRANGE_1 + * @arg @ref LL_RCC_MSIRANGE_2 + * @arg @ref LL_RCC_MSIRANGE_3 + * @arg @ref LL_RCC_MSIRANGE_4 + * @arg @ref LL_RCC_MSIRANGE_5 + * @arg @ref LL_RCC_MSIRANGE_6 + */ +__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void) +{ + return (uint32_t)(READ_BIT(RCC->ICSCR, RCC_ICSCR_MSIRANGE)); +} + +/** + * @brief Get MSI Calibration value + * @note When MSITRIM is written, MSICAL is updated with the sum of + * MSITRIM and the factory trim value + * @rmtoll ICSCR MSICAL LL_RCC_MSI_GetCalibration + * @retval Between Min_Data = 0x00 and Max_Data = 0xFF + */ +__STATIC_INLINE uint32_t LL_RCC_MSI_GetCalibration(void) +{ + return (uint32_t)(READ_BIT(RCC->ICSCR, RCC_ICSCR_MSICAL) >> RCC_ICSCR_MSICAL_Pos); +} + +/** + * @brief Set MSI Calibration trimming + * @note user-programmable trimming value that is added to the MSICAL + * @rmtoll ICSCR MSITRIM LL_RCC_MSI_SetCalibTrimming + * @param Value between Min_Data = 0x00 and Max_Data = 0xFF + * @retval None + */ +__STATIC_INLINE void LL_RCC_MSI_SetCalibTrimming(uint32_t Value) +{ + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_MSITRIM, Value << RCC_ICSCR_MSITRIM_Pos); +} + +/** + * @brief Get MSI Calibration trimming + * @rmtoll ICSCR MSITRIM LL_RCC_MSI_GetCalibTrimming + * @retval Between Min_Data = 0x00 and Max_Data = 0xFF + */ +__STATIC_INLINE uint32_t LL_RCC_MSI_GetCalibTrimming(void) +{ + return (uint32_t)(READ_BIT(RCC->ICSCR, RCC_ICSCR_MSITRIM) >> RCC_ICSCR_MSITRIM_Pos); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_System System + * @{ + */ + +/** + * @brief Configure the system clock source + * @rmtoll CFGR SW LL_RCC_SetSysClkSource + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_SYS_CLKSOURCE_MSI + * @arg @ref LL_RCC_SYS_CLKSOURCE_HSI + * @arg @ref LL_RCC_SYS_CLKSOURCE_HSE + * @arg @ref LL_RCC_SYS_CLKSOURCE_PLL + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetSysClkSource(uint32_t Source) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, Source); +} + +/** + * @brief Get the system clock source + * @rmtoll CFGR SWS LL_RCC_GetSysClkSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_MSI + * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_HSI + * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_HSE + * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_PLL + */ +__STATIC_INLINE uint32_t LL_RCC_GetSysClkSource(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_SWS)); +} + +/** + * @brief Set AHB prescaler + * @rmtoll CFGR HPRE LL_RCC_SetAHBPrescaler + * @param Prescaler This parameter can be one of the following values: + * @arg @ref LL_RCC_SYSCLK_DIV_1 + * @arg @ref LL_RCC_SYSCLK_DIV_2 + * @arg @ref LL_RCC_SYSCLK_DIV_4 + * @arg @ref LL_RCC_SYSCLK_DIV_8 + * @arg @ref LL_RCC_SYSCLK_DIV_16 + * @arg @ref LL_RCC_SYSCLK_DIV_64 + * @arg @ref LL_RCC_SYSCLK_DIV_128 + * @arg @ref LL_RCC_SYSCLK_DIV_256 + * @arg @ref LL_RCC_SYSCLK_DIV_512 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetAHBPrescaler(uint32_t Prescaler) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, Prescaler); +} + +/** + * @brief Set APB1 prescaler + * @rmtoll CFGR PPRE1 LL_RCC_SetAPB1Prescaler + * @param Prescaler This parameter can be one of the following values: + * @arg @ref LL_RCC_APB1_DIV_1 + * @arg @ref LL_RCC_APB1_DIV_2 + * @arg @ref LL_RCC_APB1_DIV_4 + * @arg @ref LL_RCC_APB1_DIV_8 + * @arg @ref LL_RCC_APB1_DIV_16 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetAPB1Prescaler(uint32_t Prescaler) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, Prescaler); +} + +/** + * @brief Set APB2 prescaler + * @rmtoll CFGR PPRE2 LL_RCC_SetAPB2Prescaler + * @param Prescaler This parameter can be one of the following values: + * @arg @ref LL_RCC_APB2_DIV_1 + * @arg @ref LL_RCC_APB2_DIV_2 + * @arg @ref LL_RCC_APB2_DIV_4 + * @arg @ref LL_RCC_APB2_DIV_8 + * @arg @ref LL_RCC_APB2_DIV_16 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetAPB2Prescaler(uint32_t Prescaler) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, Prescaler); +} + +/** + * @brief Get AHB prescaler + * @rmtoll CFGR HPRE LL_RCC_GetAHBPrescaler + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_SYSCLK_DIV_1 + * @arg @ref LL_RCC_SYSCLK_DIV_2 + * @arg @ref LL_RCC_SYSCLK_DIV_4 + * @arg @ref LL_RCC_SYSCLK_DIV_8 + * @arg @ref LL_RCC_SYSCLK_DIV_16 + * @arg @ref LL_RCC_SYSCLK_DIV_64 + * @arg @ref LL_RCC_SYSCLK_DIV_128 + * @arg @ref LL_RCC_SYSCLK_DIV_256 + * @arg @ref LL_RCC_SYSCLK_DIV_512 + */ +__STATIC_INLINE uint32_t LL_RCC_GetAHBPrescaler(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_HPRE)); +} + +/** + * @brief Get APB1 prescaler + * @rmtoll CFGR PPRE1 LL_RCC_GetAPB1Prescaler + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_APB1_DIV_1 + * @arg @ref LL_RCC_APB1_DIV_2 + * @arg @ref LL_RCC_APB1_DIV_4 + * @arg @ref LL_RCC_APB1_DIV_8 + * @arg @ref LL_RCC_APB1_DIV_16 + */ +__STATIC_INLINE uint32_t LL_RCC_GetAPB1Prescaler(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1)); +} + +/** + * @brief Get APB2 prescaler + * @rmtoll CFGR PPRE2 LL_RCC_GetAPB2Prescaler + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_APB2_DIV_1 + * @arg @ref LL_RCC_APB2_DIV_2 + * @arg @ref LL_RCC_APB2_DIV_4 + * @arg @ref LL_RCC_APB2_DIV_8 + * @arg @ref LL_RCC_APB2_DIV_16 + */ +__STATIC_INLINE uint32_t LL_RCC_GetAPB2Prescaler(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2)); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_MCO MCO + * @{ + */ + +/** + * @brief Configure MCOx + * @rmtoll CFGR MCOSEL LL_RCC_ConfigMCO\n + * CFGR MCOPRE LL_RCC_ConfigMCO + * @param MCOxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_MCO1SOURCE_NOCLOCK + * @arg @ref LL_RCC_MCO1SOURCE_SYSCLK + * @arg @ref LL_RCC_MCO1SOURCE_HSI + * @arg @ref LL_RCC_MCO1SOURCE_MSI + * @arg @ref LL_RCC_MCO1SOURCE_HSE + * @arg @ref LL_RCC_MCO1SOURCE_PLLCLK + * @arg @ref LL_RCC_MCO1SOURCE_LSI + * @arg @ref LL_RCC_MCO1SOURCE_LSE + * @param MCOxPrescaler This parameter can be one of the following values: + * @arg @ref LL_RCC_MCO1_DIV_1 + * @arg @ref LL_RCC_MCO1_DIV_2 + * @arg @ref LL_RCC_MCO1_DIV_4 + * @arg @ref LL_RCC_MCO1_DIV_8 + * @arg @ref LL_RCC_MCO1_DIV_16 + * @retval None + */ +__STATIC_INLINE void LL_RCC_ConfigMCO(uint32_t MCOxSource, uint32_t MCOxPrescaler) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_MCOSEL | RCC_CFGR_MCOPRE, MCOxSource | MCOxPrescaler); +} + +/** + * @} + */ + + + +/** @defgroup RCC_LL_EF_RTC RTC + * @{ + */ + +/** + * @brief Set RTC Clock Source + * @note Once the RTC clock source has been selected, it cannot be changed any more unless + * the Backup domain is reset, or unless a failure is detected on LSE (LSECSSD is + * set). The RTCRST bit can be used to reset them. + * @rmtoll CSR RTCSEL LL_RCC_SetRTCClockSource + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_RTC_CLKSOURCE_NONE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSI + * @arg @ref LL_RCC_RTC_CLKSOURCE_HSE + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetRTCClockSource(uint32_t Source) +{ + MODIFY_REG(RCC->CSR, RCC_CSR_RTCSEL, Source); +} + +/** + * @brief Get RTC Clock Source + * @rmtoll CSR RTCSEL LL_RCC_GetRTCClockSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_RTC_CLKSOURCE_NONE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSI + * @arg @ref LL_RCC_RTC_CLKSOURCE_HSE + */ +__STATIC_INLINE uint32_t LL_RCC_GetRTCClockSource(void) +{ + return (uint32_t)(READ_BIT(RCC->CSR, RCC_CSR_RTCSEL)); +} + +/** + * @brief Enable RTC + * @rmtoll CSR RTCEN LL_RCC_EnableRTC + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableRTC(void) +{ + SET_BIT(RCC->CSR, RCC_CSR_RTCEN); +} + +/** + * @brief Disable RTC + * @rmtoll CSR RTCEN LL_RCC_DisableRTC + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableRTC(void) +{ + CLEAR_BIT(RCC->CSR, RCC_CSR_RTCEN); +} + +/** + * @brief Check if RTC has been enabled or not + * @rmtoll CSR RTCEN LL_RCC_IsEnabledRTC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledRTC(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_RTCEN) == RCC_CSR_RTCEN) ? 1UL : 0UL); +} + +/** + * @brief Force the Backup domain reset + * @rmtoll CSR RTCRST LL_RCC_ForceBackupDomainReset + * @retval None + */ +__STATIC_INLINE void LL_RCC_ForceBackupDomainReset(void) +{ + SET_BIT(RCC->CSR, RCC_CSR_RTCRST); +} + +/** + * @brief Release the Backup domain reset + * @rmtoll CSR RTCRST LL_RCC_ReleaseBackupDomainReset + * @retval None + */ +__STATIC_INLINE void LL_RCC_ReleaseBackupDomainReset(void) +{ + CLEAR_BIT(RCC->CSR, RCC_CSR_RTCRST); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_PLL PLL + * @{ + */ + +/** + * @brief Enable PLL + * @rmtoll CR PLLON LL_RCC_PLL_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_PLLON); +} + +/** + * @brief Disable PLL + * @note Cannot be disabled if the PLL clock is used as the system clock + * @rmtoll CR PLLON LL_RCC_PLL_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_PLLON); +} + +/** + * @brief Check if PLL Ready + * @rmtoll CR PLLRDY LL_RCC_PLL_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_IsReady(void) +{ + return ((READ_BIT(RCC->CR, RCC_CR_PLLRDY) == RCC_CR_PLLRDY) ? 1UL : 0UL); +} + +/** + * @brief Configure PLL used for SYSCLK Domain + * @rmtoll CFGR PLLSRC LL_RCC_PLL_ConfigDomain_SYS\n + * CFGR PLLMUL LL_RCC_PLL_ConfigDomain_SYS\n + * CFGR PLLDIV LL_RCC_PLL_ConfigDomain_SYS + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_HSI + * @arg @ref LL_RCC_PLLSOURCE_HSE + * @param PLLMul This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_3 + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_12 + * @arg @ref LL_RCC_PLL_MUL_16 + * @arg @ref LL_RCC_PLL_MUL_24 + * @arg @ref LL_RCC_PLL_MUL_32 + * @arg @ref LL_RCC_PLL_MUL_48 + * @param PLLDiv This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL_DIV_2 + * @arg @ref LL_RCC_PLL_DIV_3 + * @arg @ref LL_RCC_PLL_DIV_4 + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_ConfigDomain_SYS(uint32_t Source, uint32_t PLLMul, uint32_t PLLDiv) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL | RCC_CFGR_PLLDIV, Source | PLLMul | PLLDiv); +} + +/** + * @brief Configure PLL clock source + * @rmtoll CFGR PLLSRC LL_RCC_PLL_SetMainSource + * @param PLLSource This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_HSI + * @arg @ref LL_RCC_PLLSOURCE_HSE + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_SetMainSource(uint32_t PLLSource) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PLLSRC, PLLSource); +} + +/** + * @brief Get the oscillator used as PLL clock source. + * @rmtoll CFGR PLLSRC LL_RCC_PLL_GetMainSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_HSI + * @arg @ref LL_RCC_PLLSOURCE_HSE + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLSRC)); +} + +/** + * @brief Get PLL multiplication Factor + * @rmtoll CFGR PLLMUL LL_RCC_PLL_GetMultiplicator + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_3 + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_12 + * @arg @ref LL_RCC_PLL_MUL_16 + * @arg @ref LL_RCC_PLL_MUL_24 + * @arg @ref LL_RCC_PLL_MUL_32 + * @arg @ref LL_RCC_PLL_MUL_48 + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetMultiplicator(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLMUL)); +} + +/** + * @brief Get Division factor for the main PLL and other PLL + * @rmtoll CFGR PLLDIV LL_RCC_PLL_GetDivider + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLL_DIV_2 + * @arg @ref LL_RCC_PLL_DIV_3 + * @arg @ref LL_RCC_PLL_DIV_4 + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLDIV)); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_FLAG_Management FLAG Management + * @{ + */ + +/** + * @brief Clear LSI ready interrupt flag + * @rmtoll CIR LSIRDYC LL_RCC_ClearFlag_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_LSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSIRDYC); +} + +/** + * @brief Clear LSE ready interrupt flag + * @rmtoll CIR LSERDYC LL_RCC_ClearFlag_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_LSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSERDYC); +} + +/** + * @brief Clear MSI ready interrupt flag + * @rmtoll CIR MSIRDYC LL_RCC_ClearFlag_MSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_MSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_MSIRDYC); +} + +/** + * @brief Clear HSI ready interrupt flag + * @rmtoll CIR HSIRDYC LL_RCC_ClearFlag_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSIRDYC); +} + +/** + * @brief Clear HSE ready interrupt flag + * @rmtoll CIR HSERDYC LL_RCC_ClearFlag_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSERDYC); +} + +/** + * @brief Clear PLL ready interrupt flag + * @rmtoll CIR PLLRDYC LL_RCC_ClearFlag_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_PLLRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_PLLRDYC); +} + +/** + * @brief Clear Clock security system interrupt flag + * @rmtoll CIR CSSC LL_RCC_ClearFlag_HSECSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSECSS(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_CSSC); +} + +#if defined(RCC_LSECSS_SUPPORT) +/** + * @brief Clear LSE Clock security system interrupt flag + * @rmtoll CIR LSECSSC LL_RCC_ClearFlag_LSECSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_LSECSS(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSECSSC); +} + +#endif /* RCC_LSECSS_SUPPORT */ +/** + * @brief Check if LSI ready interrupt occurred or not + * @rmtoll CIR LSIRDYF LL_RCC_IsActiveFlag_LSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSIRDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_LSIRDYF) == RCC_CIR_LSIRDYF) ? 1UL : 0UL); +} + +/** + * @brief Check if LSE ready interrupt occurred or not + * @rmtoll CIR LSERDYF LL_RCC_IsActiveFlag_LSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSERDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_LSERDYF) == RCC_CIR_LSERDYF) ? 1UL : 0UL); +} + +/** + * @brief Check if MSI ready interrupt occurred or not + * @rmtoll CIR MSIRDYF LL_RCC_IsActiveFlag_MSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_MSIRDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_MSIRDYF) == RCC_CIR_MSIRDYF) ? 1UL : 0UL); +} + +/** + * @brief Check if HSI ready interrupt occurred or not + * @rmtoll CIR HSIRDYF LL_RCC_IsActiveFlag_HSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSIRDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_HSIRDYF) == RCC_CIR_HSIRDYF) ? 1UL : 0UL); +} + +/** + * @brief Check if HSE ready interrupt occurred or not + * @rmtoll CIR HSERDYF LL_RCC_IsActiveFlag_HSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSERDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_HSERDYF) == RCC_CIR_HSERDYF) ? 1UL : 0UL); +} + +/** + * @brief Check if PLL ready interrupt occurred or not + * @rmtoll CIR PLLRDYF LL_RCC_IsActiveFlag_PLLRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLLRDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_PLLRDYF) == RCC_CIR_PLLRDYF) ? 1UL : 0UL); +} + +/** + * @brief Check if Clock security system interrupt occurred or not + * @rmtoll CIR CSSF LL_RCC_IsActiveFlag_HSECSS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSECSS(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_CSSF) == RCC_CIR_CSSF) ? 1UL : 0UL); +} + +#if defined(RCC_LSECSS_SUPPORT) +/** + * @brief Check if LSE Clock security system interrupt occurred or not + * @rmtoll CIR LSECSSF LL_RCC_IsActiveFlag_LSECSS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSECSS(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_LSECSSF) == RCC_CIR_LSECSSF) ? 1UL : 0UL); +} +#endif /* RCC_LSECSS_SUPPORT */ + +/** + * @brief Check if RCC flag Independent Watchdog reset is set or not. + * @rmtoll CSR IWDGRSTF LL_RCC_IsActiveFlag_IWDGRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_IWDGRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_IWDGRSTF) == RCC_CSR_IWDGRSTF) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag Low Power reset is set or not. + * @rmtoll CSR LPWRRSTF LL_RCC_IsActiveFlag_LPWRRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LPWRRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_LPWRRSTF) == RCC_CSR_LPWRRSTF) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag is set or not. + * @rmtoll CSR OBLRSTF LL_RCC_IsActiveFlag_OBLRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_OBLRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_OBLRSTF) == RCC_CSR_OBLRSTF) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag Pin reset is set or not. + * @rmtoll CSR PINRSTF LL_RCC_IsActiveFlag_PINRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PINRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_PINRSTF) == RCC_CSR_PINRSTF) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag POR/PDR reset is set or not. + * @rmtoll CSR PORRSTF LL_RCC_IsActiveFlag_PORRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PORRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_PORRSTF) == RCC_CSR_PORRSTF) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag Software reset is set or not. + * @rmtoll CSR SFTRSTF LL_RCC_IsActiveFlag_SFTRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_SFTRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_SFTRSTF) == RCC_CSR_SFTRSTF) ? 1UL : 0UL); +} + +/** + * @brief Check if RCC flag Window Watchdog reset is set or not. + * @rmtoll CSR WWDGRSTF LL_RCC_IsActiveFlag_WWDGRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_WWDGRST(void) +{ + return ((READ_BIT(RCC->CSR, RCC_CSR_WWDGRSTF) == RCC_CSR_WWDGRSTF) ? 1UL : 0UL); +} + +/** + * @brief Set RMVF bit to clear the reset flags. + * @rmtoll CSR RMVF LL_RCC_ClearResetFlags + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearResetFlags(void) +{ + SET_BIT(RCC->CSR, RCC_CSR_RMVF); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_IT_Management IT Management + * @{ + */ + +/** + * @brief Enable LSI ready interrupt + * @rmtoll CIR LSIRDYIE LL_RCC_EnableIT_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_LSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSIRDYIE); +} + +/** + * @brief Enable LSE ready interrupt + * @rmtoll CIR LSERDYIE LL_RCC_EnableIT_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_LSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSERDYIE); +} + +/** + * @brief Enable MSI ready interrupt + * @rmtoll CIR MSIRDYIE LL_RCC_EnableIT_MSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_MSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_MSIRDYIE); +} + +/** + * @brief Enable HSI ready interrupt + * @rmtoll CIR HSIRDYIE LL_RCC_EnableIT_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_HSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSIRDYIE); +} + +/** + * @brief Enable HSE ready interrupt + * @rmtoll CIR HSERDYIE LL_RCC_EnableIT_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_HSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSERDYIE); +} + +/** + * @brief Enable PLL ready interrupt + * @rmtoll CIR PLLRDYIE LL_RCC_EnableIT_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_PLLRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_PLLRDYIE); +} + +#if defined(RCC_LSECSS_SUPPORT) +/** + * @brief Enable LSE clock security system interrupt + * @rmtoll CIR LSECSSIE LL_RCC_EnableIT_LSECSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_LSECSS(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSECSSIE); +} +#endif /* RCC_LSECSS_SUPPORT */ + +/** + * @brief Disable LSI ready interrupt + * @rmtoll CIR LSIRDYIE LL_RCC_DisableIT_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_LSIRDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_LSIRDYIE); +} + +/** + * @brief Disable LSE ready interrupt + * @rmtoll CIR LSERDYIE LL_RCC_DisableIT_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_LSERDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_LSERDYIE); +} + +/** + * @brief Disable MSI ready interrupt + * @rmtoll CIR MSIRDYIE LL_RCC_DisableIT_MSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_MSIRDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_MSIRDYIE); +} + +/** + * @brief Disable HSI ready interrupt + * @rmtoll CIR HSIRDYIE LL_RCC_DisableIT_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_HSIRDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_HSIRDYIE); +} + +/** + * @brief Disable HSE ready interrupt + * @rmtoll CIR HSERDYIE LL_RCC_DisableIT_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_HSERDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_HSERDYIE); +} + +/** + * @brief Disable PLL ready interrupt + * @rmtoll CIR PLLRDYIE LL_RCC_DisableIT_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_PLLRDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_PLLRDYIE); +} + +#if defined(RCC_LSECSS_SUPPORT) +/** + * @brief Disable LSE clock security system interrupt + * @rmtoll CIR LSECSSIE LL_RCC_DisableIT_LSECSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_LSECSS(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_LSECSSIE); +} +#endif /* RCC_LSECSS_SUPPORT */ + +/** + * @brief Checks if LSI ready interrupt source is enabled or disabled. + * @rmtoll CIR LSIRDYIE LL_RCC_IsEnabledIT_LSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSIRDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_LSIRDYIE) == RCC_CIR_LSIRDYIE) ? 1UL : 0UL); +} + +/** + * @brief Checks if LSE ready interrupt source is enabled or disabled. + * @rmtoll CIR LSERDYIE LL_RCC_IsEnabledIT_LSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSERDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_LSERDYIE) == RCC_CIR_LSERDYIE) ? 1UL : 0UL); +} + +/** + * @brief Checks if MSI ready interrupt source is enabled or disabled. + * @rmtoll CIR MSIRDYIE LL_RCC_IsEnabledIT_MSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_MSIRDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_MSIRDYIE) == RCC_CIR_MSIRDYIE) ? 1UL : 0UL); +} + +/** + * @brief Checks if HSI ready interrupt source is enabled or disabled. + * @rmtoll CIR HSIRDYIE LL_RCC_IsEnabledIT_HSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSIRDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_HSIRDYIE) == RCC_CIR_HSIRDYIE) ? 1UL : 0UL); +} + +/** + * @brief Checks if HSE ready interrupt source is enabled or disabled. + * @rmtoll CIR HSERDYIE LL_RCC_IsEnabledIT_HSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSERDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_HSERDYIE) == RCC_CIR_HSERDYIE) ? 1UL : 0UL); +} + +/** + * @brief Checks if PLL ready interrupt source is enabled or disabled. + * @rmtoll CIR PLLRDYIE LL_RCC_IsEnabledIT_PLLRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLLRDY(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_PLLRDYIE) == RCC_CIR_PLLRDYIE) ? 1UL : 0UL); +} + +#if defined(RCC_LSECSS_SUPPORT) +/** + * @brief Checks if LSECSS interrupt source is enabled or disabled. + * @rmtoll CIR LSECSSIE LL_RCC_IsEnabledIT_LSECSS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSECSS(void) +{ + return ((READ_BIT(RCC->CIR, RCC_CIR_LSECSSIE) == RCC_CIR_LSECSSIE) ? 1UL : 0UL); +} +#endif /* RCC_LSECSS_SUPPORT */ + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup RCC_LL_EF_Init De-initialization function + * @{ + */ +ErrorStatus LL_RCC_DeInit(void); +/** + * @} + */ + +/** @defgroup RCC_LL_EF_Get_Freq Get system and peripherals clocks frequency functions + * @{ + */ +void LL_RCC_GetSystemClocksFreq(LL_RCC_ClocksTypeDef *RCC_Clocks); +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* RCC */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_LL_RCC_H */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_spi.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_spi.h new file mode 100644 index 0000000..a61f40c --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_spi.h @@ -0,0 +1,2015 @@ +/** + ****************************************************************************** + * @file stm32l1xx_ll_spi.h + * @author MCD Application Team + * @brief Header file of SPI LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32L1xx_LL_SPI_H +#define STM32L1xx_LL_SPI_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx.h" + +/** @addtogroup STM32L1xx_LL_Driver + * @{ + */ + +#if defined (SPI1) || defined (SPI2) || defined (SPI3) + +/** @defgroup SPI_LL SPI + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup SPI_LL_ES_INIT SPI Exported Init structure + * @{ + */ + +/** + * @brief SPI Init structures definition + */ +typedef struct +{ + uint32_t TransferDirection; /*!< Specifies the SPI unidirectional or bidirectional data mode. + This parameter can be a value of @ref SPI_LL_EC_TRANSFER_MODE. + + This feature can be modified afterwards using unitary + function @ref LL_SPI_SetTransferDirection().*/ + + uint32_t Mode; /*!< Specifies the SPI mode (Master/Slave). + This parameter can be a value of @ref SPI_LL_EC_MODE. + + This feature can be modified afterwards using unitary + function @ref LL_SPI_SetMode().*/ + + uint32_t DataWidth; /*!< Specifies the SPI data width. + This parameter can be a value of @ref SPI_LL_EC_DATAWIDTH. + + This feature can be modified afterwards using unitary + function @ref LL_SPI_SetDataWidth().*/ + + uint32_t ClockPolarity; /*!< Specifies the serial clock steady state. + This parameter can be a value of @ref SPI_LL_EC_POLARITY. + + This feature can be modified afterwards using unitary + function @ref LL_SPI_SetClockPolarity().*/ + + uint32_t ClockPhase; /*!< Specifies the clock active edge for the bit capture. + This parameter can be a value of @ref SPI_LL_EC_PHASE. + + This feature can be modified afterwards using unitary + function @ref LL_SPI_SetClockPhase().*/ + + uint32_t NSS; /*!< Specifies whether the NSS signal is managed by hardware (NSS pin) + or by software using the SSI bit. + This parameter can be a value of @ref SPI_LL_EC_NSS_MODE. + + This feature can be modified afterwards using unitary + function @ref LL_SPI_SetNSSMode().*/ + + uint32_t BaudRate; /*!< Specifies the BaudRate prescaler value which will be used + to configure the transmit and receive SCK clock. + This parameter can be a value of @ref SPI_LL_EC_BAUDRATEPRESCALER. + @note The communication clock is derived from the master clock. + The slave clock does not need to be set. + + This feature can be modified afterwards using unitary + function @ref LL_SPI_SetBaudRatePrescaler().*/ + + uint32_t BitOrder; /*!< Specifies whether data transfers start from MSB or LSB bit. + This parameter can be a value of @ref SPI_LL_EC_BIT_ORDER. + + This feature can be modified afterwards using unitary + function @ref LL_SPI_SetTransferBitOrder().*/ + + uint32_t CRCCalculation; /*!< Specifies if the CRC calculation is enabled or not. + This parameter can be a value of @ref SPI_LL_EC_CRC_CALCULATION. + + This feature can be modified afterwards using unitary + functions @ref LL_SPI_EnableCRC() and @ref LL_SPI_DisableCRC().*/ + + uint32_t CRCPoly; /*!< Specifies the polynomial used for the CRC calculation. + This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFFFF. + + This feature can be modified afterwards using unitary + function @ref LL_SPI_SetCRCPolynomial().*/ + +} LL_SPI_InitTypeDef; + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup SPI_LL_Exported_Constants SPI Exported Constants + * @{ + */ + +/** @defgroup SPI_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_SPI_ReadReg function + * @{ + */ +#define LL_SPI_SR_RXNE SPI_SR_RXNE /*!< Rx buffer not empty flag */ +#define LL_SPI_SR_TXE SPI_SR_TXE /*!< Tx buffer empty flag */ +#define LL_SPI_SR_BSY SPI_SR_BSY /*!< Busy flag */ +#define LL_SPI_SR_CRCERR SPI_SR_CRCERR /*!< CRC error flag */ +#define LL_SPI_SR_MODF SPI_SR_MODF /*!< Mode fault flag */ +#define LL_SPI_SR_OVR SPI_SR_OVR /*!< Overrun flag */ +#define LL_SPI_SR_FRE SPI_SR_FRE /*!< TI mode frame format error flag */ +/** + * @} + */ + +/** @defgroup SPI_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_SPI_ReadReg and LL_SPI_WriteReg functions + * @{ + */ +#define LL_SPI_CR2_RXNEIE SPI_CR2_RXNEIE /*!< Rx buffer not empty interrupt enable */ +#define LL_SPI_CR2_TXEIE SPI_CR2_TXEIE /*!< Tx buffer empty interrupt enable */ +#define LL_SPI_CR2_ERRIE SPI_CR2_ERRIE /*!< Error interrupt enable */ +/** + * @} + */ + +/** @defgroup SPI_LL_EC_MODE Operation Mode + * @{ + */ +#define LL_SPI_MODE_MASTER (SPI_CR1_MSTR | SPI_CR1_SSI) /*!< Master configuration */ +#define LL_SPI_MODE_SLAVE 0x00000000U /*!< Slave configuration */ +/** + * @} + */ + +/** @defgroup SPI_LL_EC_PROTOCOL Serial Protocol + * @brief SPI TI Mode not supported for Category 1 and 2 + * @{ + */ +#define LL_SPI_PROTOCOL_MOTOROLA 0x00000000U /*!< Motorola mode. Used as default value */ +#if defined(SPI_CR2_FRF) +#define LL_SPI_PROTOCOL_TI (SPI_CR2_FRF) /*!< TI mode */ +#endif /* SPI_CR2_FRF */ +/** + * @} + */ + +/** @defgroup SPI_LL_EC_PHASE Clock Phase + * @{ + */ +#define LL_SPI_PHASE_1EDGE 0x00000000U /*!< First clock transition is the first data capture edge */ +#define LL_SPI_PHASE_2EDGE (SPI_CR1_CPHA) /*!< Second clock transition is the first data capture edge */ +/** + * @} + */ + +/** @defgroup SPI_LL_EC_POLARITY Clock Polarity + * @{ + */ +#define LL_SPI_POLARITY_LOW 0x00000000U /*!< Clock to 0 when idle */ +#define LL_SPI_POLARITY_HIGH (SPI_CR1_CPOL) /*!< Clock to 1 when idle */ +/** + * @} + */ + +/** @defgroup SPI_LL_EC_BAUDRATEPRESCALER Baud Rate Prescaler + * @{ + */ +#define LL_SPI_BAUDRATEPRESCALER_DIV2 0x00000000U /*!< BaudRate control equal to fPCLK/2 */ +#define LL_SPI_BAUDRATEPRESCALER_DIV4 (SPI_CR1_BR_0) /*!< BaudRate control equal to fPCLK/4 */ +#define LL_SPI_BAUDRATEPRESCALER_DIV8 (SPI_CR1_BR_1) /*!< BaudRate control equal to fPCLK/8 */ +#define LL_SPI_BAUDRATEPRESCALER_DIV16 (SPI_CR1_BR_1 | SPI_CR1_BR_0) /*!< BaudRate control equal to fPCLK/16 */ +#define LL_SPI_BAUDRATEPRESCALER_DIV32 (SPI_CR1_BR_2) /*!< BaudRate control equal to fPCLK/32 */ +#define LL_SPI_BAUDRATEPRESCALER_DIV64 (SPI_CR1_BR_2 | SPI_CR1_BR_0) /*!< BaudRate control equal to fPCLK/64 */ +#define LL_SPI_BAUDRATEPRESCALER_DIV128 (SPI_CR1_BR_2 | SPI_CR1_BR_1) /*!< BaudRate control equal to fPCLK/128 */ +#define LL_SPI_BAUDRATEPRESCALER_DIV256 (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0) /*!< BaudRate control equal to fPCLK/256 */ +/** + * @} + */ + +/** @defgroup SPI_LL_EC_BIT_ORDER Transmission Bit Order + * @{ + */ +#define LL_SPI_LSB_FIRST (SPI_CR1_LSBFIRST) /*!< Data is transmitted/received with the LSB first */ +#define LL_SPI_MSB_FIRST 0x00000000U /*!< Data is transmitted/received with the MSB first */ +/** + * @} + */ + +/** @defgroup SPI_LL_EC_TRANSFER_MODE Transfer Mode + * @{ + */ +#define LL_SPI_FULL_DUPLEX 0x00000000U /*!< Full-Duplex mode. Rx and Tx transfer on 2 lines */ +#define LL_SPI_SIMPLEX_RX (SPI_CR1_RXONLY) /*!< Simplex Rx mode. Rx transfer only on 1 line */ +#define LL_SPI_HALF_DUPLEX_RX (SPI_CR1_BIDIMODE) /*!< Half-Duplex Rx mode. Rx transfer on 1 line */ +#define LL_SPI_HALF_DUPLEX_TX (SPI_CR1_BIDIMODE | SPI_CR1_BIDIOE) /*!< Half-Duplex Tx mode. Tx transfer on 1 line */ +/** + * @} + */ + +/** @defgroup SPI_LL_EC_NSS_MODE Slave Select Pin Mode + * @{ + */ +#define LL_SPI_NSS_SOFT (SPI_CR1_SSM) /*!< NSS managed internally. NSS pin not used and free */ +#define LL_SPI_NSS_HARD_INPUT 0x00000000U /*!< NSS pin used in Input. Only used in Master mode */ +#define LL_SPI_NSS_HARD_OUTPUT (((uint32_t)SPI_CR2_SSOE << 16U)) /*!< NSS pin used in Output. Only used in Slave mode as chip select */ +/** + * @} + */ + +/** @defgroup SPI_LL_EC_DATAWIDTH Datawidth + * @{ + */ +#define LL_SPI_DATAWIDTH_8BIT 0x00000000U /*!< Data length for SPI transfer: 8 bits */ +#define LL_SPI_DATAWIDTH_16BIT (SPI_CR1_DFF) /*!< Data length for SPI transfer: 16 bits */ +/** + * @} + */ +#if defined(USE_FULL_LL_DRIVER) + +/** @defgroup SPI_LL_EC_CRC_CALCULATION CRC Calculation + * @{ + */ +#define LL_SPI_CRCCALCULATION_DISABLE 0x00000000U /*!< CRC calculation disabled */ +#define LL_SPI_CRCCALCULATION_ENABLE (SPI_CR1_CRCEN) /*!< CRC calculation enabled */ +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup SPI_LL_Exported_Macros SPI Exported Macros + * @{ + */ + +/** @defgroup SPI_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in SPI register + * @param __INSTANCE__ SPI Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_SPI_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in SPI register + * @param __INSTANCE__ SPI Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_SPI_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup SPI_LL_Exported_Functions SPI Exported Functions + * @{ + */ + +/** @defgroup SPI_LL_EF_Configuration Configuration + * @{ + */ + +/** + * @brief Enable SPI peripheral + * @rmtoll CR1 SPE LL_SPI_Enable + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_Enable(SPI_TypeDef *SPIx) +{ + SET_BIT(SPIx->CR1, SPI_CR1_SPE); +} + +/** + * @brief Disable SPI peripheral + * @note When disabling the SPI, follow the procedure described in the Reference Manual. + * @rmtoll CR1 SPE LL_SPI_Disable + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_Disable(SPI_TypeDef *SPIx) +{ + CLEAR_BIT(SPIx->CR1, SPI_CR1_SPE); +} + +/** + * @brief Check if SPI peripheral is enabled + * @rmtoll CR1 SPE LL_SPI_IsEnabled + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsEnabled(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->CR1, SPI_CR1_SPE) == (SPI_CR1_SPE)) ? 1UL : 0UL); +} + +/** + * @brief Set SPI operation mode to Master or Slave + * @note This bit should not be changed when communication is ongoing. + * @rmtoll CR1 MSTR LL_SPI_SetMode\n + * CR1 SSI LL_SPI_SetMode + * @param SPIx SPI Instance + * @param Mode This parameter can be one of the following values: + * @arg @ref LL_SPI_MODE_MASTER + * @arg @ref LL_SPI_MODE_SLAVE + * @retval None + */ +__STATIC_INLINE void LL_SPI_SetMode(SPI_TypeDef *SPIx, uint32_t Mode) +{ + MODIFY_REG(SPIx->CR1, SPI_CR1_MSTR | SPI_CR1_SSI, Mode); +} + +/** + * @brief Get SPI operation mode (Master or Slave) + * @rmtoll CR1 MSTR LL_SPI_GetMode\n + * CR1 SSI LL_SPI_GetMode + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_SPI_MODE_MASTER + * @arg @ref LL_SPI_MODE_SLAVE + */ +__STATIC_INLINE uint32_t LL_SPI_GetMode(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->CR1, SPI_CR1_MSTR | SPI_CR1_SSI)); +} + +#if defined(SPI_CR2_FRF) +/** + * @brief Set serial protocol used. TI Mode not supported for Category 1 and 2. + * @note This bit should be written only when SPI is disabled (SPE = 0) for correct operation. + * @rmtoll CR2 FRF LL_SPI_SetStandard + * @param SPIx SPI Instance + * @param Standard This parameter can be one of the following values: + * @arg @ref LL_SPI_PROTOCOL_MOTOROLA + * @arg @ref LL_SPI_PROTOCOL_TI + * @retval None + */ +__STATIC_INLINE void LL_SPI_SetStandard(SPI_TypeDef *SPIx, uint32_t Standard) +{ + MODIFY_REG(SPIx->CR2, SPI_CR2_FRF, Standard); +} + +/** + * @brief Get serial protocol used + * @rmtoll CR2 FRF LL_SPI_GetStandard + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_SPI_PROTOCOL_MOTOROLA + * @arg @ref LL_SPI_PROTOCOL_TI + */ +__STATIC_INLINE uint32_t LL_SPI_GetStandard(SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->CR2, SPI_CR2_FRF)); +} +#endif /* SPI_CR2_FRF */ + +/** + * @brief Set clock phase + * @note This bit should not be changed when communication is ongoing. + * This bit is not used in SPI TI mode. + * @rmtoll CR1 CPHA LL_SPI_SetClockPhase + * @param SPIx SPI Instance + * @param ClockPhase This parameter can be one of the following values: + * @arg @ref LL_SPI_PHASE_1EDGE + * @arg @ref LL_SPI_PHASE_2EDGE + * @retval None + */ +__STATIC_INLINE void LL_SPI_SetClockPhase(SPI_TypeDef *SPIx, uint32_t ClockPhase) +{ + MODIFY_REG(SPIx->CR1, SPI_CR1_CPHA, ClockPhase); +} + +/** + * @brief Get clock phase + * @rmtoll CR1 CPHA LL_SPI_GetClockPhase + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_SPI_PHASE_1EDGE + * @arg @ref LL_SPI_PHASE_2EDGE + */ +__STATIC_INLINE uint32_t LL_SPI_GetClockPhase(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->CR1, SPI_CR1_CPHA)); +} + +/** + * @brief Set clock polarity + * @note This bit should not be changed when communication is ongoing. + * This bit is not used in SPI TI mode. + * @rmtoll CR1 CPOL LL_SPI_SetClockPolarity + * @param SPIx SPI Instance + * @param ClockPolarity This parameter can be one of the following values: + * @arg @ref LL_SPI_POLARITY_LOW + * @arg @ref LL_SPI_POLARITY_HIGH + * @retval None + */ +__STATIC_INLINE void LL_SPI_SetClockPolarity(SPI_TypeDef *SPIx, uint32_t ClockPolarity) +{ + MODIFY_REG(SPIx->CR1, SPI_CR1_CPOL, ClockPolarity); +} + +/** + * @brief Get clock polarity + * @rmtoll CR1 CPOL LL_SPI_GetClockPolarity + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_SPI_POLARITY_LOW + * @arg @ref LL_SPI_POLARITY_HIGH + */ +__STATIC_INLINE uint32_t LL_SPI_GetClockPolarity(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->CR1, SPI_CR1_CPOL)); +} + +/** + * @brief Set baud rate prescaler + * @note These bits should not be changed when communication is ongoing. SPI BaudRate = fPCLK/Prescaler. + * @rmtoll CR1 BR LL_SPI_SetBaudRatePrescaler + * @param SPIx SPI Instance + * @param BaudRate This parameter can be one of the following values: + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV2 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV4 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV8 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV16 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV32 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV64 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV128 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV256 + * @retval None + */ +__STATIC_INLINE void LL_SPI_SetBaudRatePrescaler(SPI_TypeDef *SPIx, uint32_t BaudRate) +{ + MODIFY_REG(SPIx->CR1, SPI_CR1_BR, BaudRate); +} + +/** + * @brief Get baud rate prescaler + * @rmtoll CR1 BR LL_SPI_GetBaudRatePrescaler + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV2 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV4 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV8 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV16 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV32 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV64 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV128 + * @arg @ref LL_SPI_BAUDRATEPRESCALER_DIV256 + */ +__STATIC_INLINE uint32_t LL_SPI_GetBaudRatePrescaler(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->CR1, SPI_CR1_BR)); +} + +/** + * @brief Set transfer bit order + * @note This bit should not be changed when communication is ongoing. This bit is not used in SPI TI mode. + * @rmtoll CR1 LSBFIRST LL_SPI_SetTransferBitOrder + * @param SPIx SPI Instance + * @param BitOrder This parameter can be one of the following values: + * @arg @ref LL_SPI_LSB_FIRST + * @arg @ref LL_SPI_MSB_FIRST + * @retval None + */ +__STATIC_INLINE void LL_SPI_SetTransferBitOrder(SPI_TypeDef *SPIx, uint32_t BitOrder) +{ + MODIFY_REG(SPIx->CR1, SPI_CR1_LSBFIRST, BitOrder); +} + +/** + * @brief Get transfer bit order + * @rmtoll CR1 LSBFIRST LL_SPI_GetTransferBitOrder + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_SPI_LSB_FIRST + * @arg @ref LL_SPI_MSB_FIRST + */ +__STATIC_INLINE uint32_t LL_SPI_GetTransferBitOrder(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->CR1, SPI_CR1_LSBFIRST)); +} + +/** + * @brief Set transfer direction mode + * @note For Half-Duplex mode, Rx Direction is set by default. + * In master mode, the MOSI pin is used and in slave mode, the MISO pin is used for Half-Duplex. + * @rmtoll CR1 RXONLY LL_SPI_SetTransferDirection\n + * CR1 BIDIMODE LL_SPI_SetTransferDirection\n + * CR1 BIDIOE LL_SPI_SetTransferDirection + * @param SPIx SPI Instance + * @param TransferDirection This parameter can be one of the following values: + * @arg @ref LL_SPI_FULL_DUPLEX + * @arg @ref LL_SPI_SIMPLEX_RX + * @arg @ref LL_SPI_HALF_DUPLEX_RX + * @arg @ref LL_SPI_HALF_DUPLEX_TX + * @retval None + */ +__STATIC_INLINE void LL_SPI_SetTransferDirection(SPI_TypeDef *SPIx, uint32_t TransferDirection) +{ + MODIFY_REG(SPIx->CR1, SPI_CR1_RXONLY | SPI_CR1_BIDIMODE | SPI_CR1_BIDIOE, TransferDirection); +} + +/** + * @brief Get transfer direction mode + * @rmtoll CR1 RXONLY LL_SPI_GetTransferDirection\n + * CR1 BIDIMODE LL_SPI_GetTransferDirection\n + * CR1 BIDIOE LL_SPI_GetTransferDirection + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_SPI_FULL_DUPLEX + * @arg @ref LL_SPI_SIMPLEX_RX + * @arg @ref LL_SPI_HALF_DUPLEX_RX + * @arg @ref LL_SPI_HALF_DUPLEX_TX + */ +__STATIC_INLINE uint32_t LL_SPI_GetTransferDirection(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->CR1, SPI_CR1_RXONLY | SPI_CR1_BIDIMODE | SPI_CR1_BIDIOE)); +} + +/** + * @brief Set frame data width + * @rmtoll CR1 DFF LL_SPI_SetDataWidth + * @param SPIx SPI Instance + * @param DataWidth This parameter can be one of the following values: + * @arg @ref LL_SPI_DATAWIDTH_8BIT + * @arg @ref LL_SPI_DATAWIDTH_16BIT + * @retval None + */ +__STATIC_INLINE void LL_SPI_SetDataWidth(SPI_TypeDef *SPIx, uint32_t DataWidth) +{ + MODIFY_REG(SPIx->CR1, SPI_CR1_DFF, DataWidth); +} + +/** + * @brief Get frame data width + * @rmtoll CR1 DFF LL_SPI_GetDataWidth + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_SPI_DATAWIDTH_8BIT + * @arg @ref LL_SPI_DATAWIDTH_16BIT + */ +__STATIC_INLINE uint32_t LL_SPI_GetDataWidth(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->CR1, SPI_CR1_DFF)); +} + +/** + * @} + */ + +/** @defgroup SPI_LL_EF_CRC_Management CRC Management + * @{ + */ + +/** + * @brief Enable CRC + * @note This bit should be written only when SPI is disabled (SPE = 0) for correct operation. + * @rmtoll CR1 CRCEN LL_SPI_EnableCRC + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_EnableCRC(SPI_TypeDef *SPIx) +{ + SET_BIT(SPIx->CR1, SPI_CR1_CRCEN); +} + +/** + * @brief Disable CRC + * @note This bit should be written only when SPI is disabled (SPE = 0) for correct operation. + * @rmtoll CR1 CRCEN LL_SPI_DisableCRC + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_DisableCRC(SPI_TypeDef *SPIx) +{ + CLEAR_BIT(SPIx->CR1, SPI_CR1_CRCEN); +} + +/** + * @brief Check if CRC is enabled + * @note This bit should be written only when SPI is disabled (SPE = 0) for correct operation. + * @rmtoll CR1 CRCEN LL_SPI_IsEnabledCRC + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsEnabledCRC(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->CR1, SPI_CR1_CRCEN) == (SPI_CR1_CRCEN)) ? 1UL : 0UL); +} + +/** + * @brief Set CRCNext to transfer CRC on the line + * @note This bit has to be written as soon as the last data is written in the SPIx_DR register. + * @rmtoll CR1 CRCNEXT LL_SPI_SetCRCNext + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_SetCRCNext(SPI_TypeDef *SPIx) +{ + SET_BIT(SPIx->CR1, SPI_CR1_CRCNEXT); +} + +/** + * @brief Set polynomial for CRC calculation + * @rmtoll CRCPR CRCPOLY LL_SPI_SetCRCPolynomial + * @param SPIx SPI Instance + * @param CRCPoly This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFFFF + * @retval None + */ +__STATIC_INLINE void LL_SPI_SetCRCPolynomial(SPI_TypeDef *SPIx, uint32_t CRCPoly) +{ + WRITE_REG(SPIx->CRCPR, (uint16_t)CRCPoly); +} + +/** + * @brief Get polynomial for CRC calculation + * @rmtoll CRCPR CRCPOLY LL_SPI_GetCRCPolynomial + * @param SPIx SPI Instance + * @retval Returned value is a number between Min_Data = 0x00 and Max_Data = 0xFFFF + */ +__STATIC_INLINE uint32_t LL_SPI_GetCRCPolynomial(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_REG(SPIx->CRCPR)); +} + +/** + * @brief Get Rx CRC + * @rmtoll RXCRCR RXCRC LL_SPI_GetRxCRC + * @param SPIx SPI Instance + * @retval Returned value is a number between Min_Data = 0x00 and Max_Data = 0xFFFF + */ +__STATIC_INLINE uint32_t LL_SPI_GetRxCRC(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_REG(SPIx->RXCRCR)); +} + +/** + * @brief Get Tx CRC + * @rmtoll TXCRCR TXCRC LL_SPI_GetTxCRC + * @param SPIx SPI Instance + * @retval Returned value is a number between Min_Data = 0x00 and Max_Data = 0xFFFF + */ +__STATIC_INLINE uint32_t LL_SPI_GetTxCRC(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_REG(SPIx->TXCRCR)); +} + +/** + * @} + */ + +/** @defgroup SPI_LL_EF_NSS_Management Slave Select Pin Management + * @{ + */ + +/** + * @brief Set NSS mode + * @note LL_SPI_NSS_SOFT Mode is not used in SPI TI mode. + * @rmtoll CR1 SSM LL_SPI_SetNSSMode\n + * @rmtoll CR2 SSOE LL_SPI_SetNSSMode + * @param SPIx SPI Instance + * @param NSS This parameter can be one of the following values: + * @arg @ref LL_SPI_NSS_SOFT + * @arg @ref LL_SPI_NSS_HARD_INPUT + * @arg @ref LL_SPI_NSS_HARD_OUTPUT + * @retval None + */ +__STATIC_INLINE void LL_SPI_SetNSSMode(SPI_TypeDef *SPIx, uint32_t NSS) +{ + MODIFY_REG(SPIx->CR1, SPI_CR1_SSM, NSS); + MODIFY_REG(SPIx->CR2, SPI_CR2_SSOE, ((uint32_t)(NSS >> 16U))); +} + +/** + * @brief Get NSS mode + * @rmtoll CR1 SSM LL_SPI_GetNSSMode\n + * @rmtoll CR2 SSOE LL_SPI_GetNSSMode + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_SPI_NSS_SOFT + * @arg @ref LL_SPI_NSS_HARD_INPUT + * @arg @ref LL_SPI_NSS_HARD_OUTPUT + */ +__STATIC_INLINE uint32_t LL_SPI_GetNSSMode(const SPI_TypeDef *SPIx) +{ + uint32_t Ssm = (READ_BIT(SPIx->CR1, SPI_CR1_SSM)); + uint32_t Ssoe = (READ_BIT(SPIx->CR2, SPI_CR2_SSOE) << 16U); + return (Ssm | Ssoe); +} + +/** + * @} + */ + +/** @defgroup SPI_LL_EF_FLAG_Management FLAG Management + * @{ + */ + +/** + * @brief Check if Rx buffer is not empty + * @rmtoll SR RXNE LL_SPI_IsActiveFlag_RXNE + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_RXNE(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->SR, SPI_SR_RXNE) == (SPI_SR_RXNE)) ? 1UL : 0UL); +} + +/** + * @brief Check if Tx buffer is empty + * @rmtoll SR TXE LL_SPI_IsActiveFlag_TXE + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_TXE(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->SR, SPI_SR_TXE) == (SPI_SR_TXE)) ? 1UL : 0UL); +} + +/** + * @brief Get CRC error flag + * @rmtoll SR CRCERR LL_SPI_IsActiveFlag_CRCERR + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_CRCERR(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->SR, SPI_SR_CRCERR) == (SPI_SR_CRCERR)) ? 1UL : 0UL); +} + +/** + * @brief Get mode fault error flag + * @rmtoll SR MODF LL_SPI_IsActiveFlag_MODF + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_MODF(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->SR, SPI_SR_MODF) == (SPI_SR_MODF)) ? 1UL : 0UL); +} + +/** + * @brief Get overrun error flag + * @rmtoll SR OVR LL_SPI_IsActiveFlag_OVR + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_OVR(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->SR, SPI_SR_OVR) == (SPI_SR_OVR)) ? 1UL : 0UL); +} + +/** + * @brief Get busy flag + * @note The BSY flag is cleared under any one of the following conditions: + * -When the SPI is correctly disabled + * -When a fault is detected in Master mode (MODF bit set to 1) + * -In Master mode, when it finishes a data transmission and no new data is ready to be + * sent + * -In Slave mode, when the BSY flag is set to '0' for at least one SPI clock cycle between + * each data transfer. + * @rmtoll SR BSY LL_SPI_IsActiveFlag_BSY + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_BSY(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->SR, SPI_SR_BSY) == (SPI_SR_BSY)) ? 1UL : 0UL); +} + +#if defined(SPI_CR2_FRF) +/** + * @brief Get frame format error flag + * @rmtoll SR FRE LL_SPI_IsActiveFlag_FRE + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_FRE(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->SR, SPI_SR_FRE) == (SPI_SR_FRE)) ? 1UL : 0UL); +} +#endif /* SPI_CR2_FRF */ + +/** + * @brief Clear CRC error flag + * @rmtoll SR CRCERR LL_SPI_ClearFlag_CRCERR + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_ClearFlag_CRCERR(SPI_TypeDef *SPIx) +{ + CLEAR_BIT(SPIx->SR, SPI_SR_CRCERR); +} + +/** + * @brief Clear mode fault error flag + * @note Clearing this flag is done by a read access to the SPIx_SR + * register followed by a write access to the SPIx_CR1 register + * @rmtoll SR MODF LL_SPI_ClearFlag_MODF + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_ClearFlag_MODF(SPI_TypeDef *SPIx) +{ + __IO uint32_t tmpreg_sr; + tmpreg_sr = SPIx->SR; + (void) tmpreg_sr; + CLEAR_BIT(SPIx->CR1, SPI_CR1_SPE); +} + +/** + * @brief Clear overrun error flag + * @note Clearing this flag is done by a read access to the SPIx_DR + * register followed by a read access to the SPIx_SR register + * @rmtoll SR OVR LL_SPI_ClearFlag_OVR + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_ClearFlag_OVR(const SPI_TypeDef *SPIx) +{ + __IO uint32_t tmpreg; + tmpreg = SPIx->DR; + (void) tmpreg; + tmpreg = SPIx->SR; + (void) tmpreg; +} + +/** + * @brief Clear frame format error flag + * @note Clearing this flag is done by reading SPIx_SR register + * @rmtoll SR FRE LL_SPI_ClearFlag_FRE + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_ClearFlag_FRE(const SPI_TypeDef *SPIx) +{ + __IO uint32_t tmpreg; + tmpreg = SPIx->SR; + (void) tmpreg; +} + +/** + * @} + */ + +/** @defgroup SPI_LL_EF_IT_Management Interrupt Management + * @{ + */ + +/** + * @brief Enable error interrupt + * @note This bit controls the generation of an interrupt when an error condition + * occurs (CRCERR, OVR, MODF in SPI mode, FRE at TI mode). + * @rmtoll CR2 ERRIE LL_SPI_EnableIT_ERR + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_EnableIT_ERR(SPI_TypeDef *SPIx) +{ + SET_BIT(SPIx->CR2, SPI_CR2_ERRIE); +} + +/** + * @brief Enable Rx buffer not empty interrupt + * @rmtoll CR2 RXNEIE LL_SPI_EnableIT_RXNE + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_EnableIT_RXNE(SPI_TypeDef *SPIx) +{ + SET_BIT(SPIx->CR2, SPI_CR2_RXNEIE); +} + +/** + * @brief Enable Tx buffer empty interrupt + * @rmtoll CR2 TXEIE LL_SPI_EnableIT_TXE + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_EnableIT_TXE(SPI_TypeDef *SPIx) +{ + SET_BIT(SPIx->CR2, SPI_CR2_TXEIE); +} + +/** + * @brief Disable error interrupt + * @note This bit controls the generation of an interrupt when an error condition + * occurs (CRCERR, OVR, MODF in SPI mode, FRE at TI mode). + * @rmtoll CR2 ERRIE LL_SPI_DisableIT_ERR + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_DisableIT_ERR(SPI_TypeDef *SPIx) +{ + CLEAR_BIT(SPIx->CR2, SPI_CR2_ERRIE); +} + +/** + * @brief Disable Rx buffer not empty interrupt + * @rmtoll CR2 RXNEIE LL_SPI_DisableIT_RXNE + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_DisableIT_RXNE(SPI_TypeDef *SPIx) +{ + CLEAR_BIT(SPIx->CR2, SPI_CR2_RXNEIE); +} + +/** + * @brief Disable Tx buffer empty interrupt + * @rmtoll CR2 TXEIE LL_SPI_DisableIT_TXE + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_DisableIT_TXE(SPI_TypeDef *SPIx) +{ + CLEAR_BIT(SPIx->CR2, SPI_CR2_TXEIE); +} + +/** + * @brief Check if error interrupt is enabled + * @rmtoll CR2 ERRIE LL_SPI_IsEnabledIT_ERR + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsEnabledIT_ERR(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->CR2, SPI_CR2_ERRIE) == (SPI_CR2_ERRIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if Rx buffer not empty interrupt is enabled + * @rmtoll CR2 RXNEIE LL_SPI_IsEnabledIT_RXNE + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsEnabledIT_RXNE(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->CR2, SPI_CR2_RXNEIE) == (SPI_CR2_RXNEIE)) ? 1UL : 0UL); +} + +/** + * @brief Check if Tx buffer empty interrupt + * @rmtoll CR2 TXEIE LL_SPI_IsEnabledIT_TXE + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsEnabledIT_TXE(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->CR2, SPI_CR2_TXEIE) == (SPI_CR2_TXEIE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup SPI_LL_EF_DMA_Management DMA Management + * @{ + */ + +/** + * @brief Enable DMA Rx + * @rmtoll CR2 RXDMAEN LL_SPI_EnableDMAReq_RX + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_EnableDMAReq_RX(SPI_TypeDef *SPIx) +{ + SET_BIT(SPIx->CR2, SPI_CR2_RXDMAEN); +} + +/** + * @brief Disable DMA Rx + * @rmtoll CR2 RXDMAEN LL_SPI_DisableDMAReq_RX + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_DisableDMAReq_RX(SPI_TypeDef *SPIx) +{ + CLEAR_BIT(SPIx->CR2, SPI_CR2_RXDMAEN); +} + +/** + * @brief Check if DMA Rx is enabled + * @rmtoll CR2 RXDMAEN LL_SPI_IsEnabledDMAReq_RX + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsEnabledDMAReq_RX(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->CR2, SPI_CR2_RXDMAEN) == (SPI_CR2_RXDMAEN)) ? 1UL : 0UL); +} + +/** + * @brief Enable DMA Tx + * @rmtoll CR2 TXDMAEN LL_SPI_EnableDMAReq_TX + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_EnableDMAReq_TX(SPI_TypeDef *SPIx) +{ + SET_BIT(SPIx->CR2, SPI_CR2_TXDMAEN); +} + +/** + * @brief Disable DMA Tx + * @rmtoll CR2 TXDMAEN LL_SPI_DisableDMAReq_TX + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_SPI_DisableDMAReq_TX(SPI_TypeDef *SPIx) +{ + CLEAR_BIT(SPIx->CR2, SPI_CR2_TXDMAEN); +} + +/** + * @brief Check if DMA Tx is enabled + * @rmtoll CR2 TXDMAEN LL_SPI_IsEnabledDMAReq_TX + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_SPI_IsEnabledDMAReq_TX(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->CR2, SPI_CR2_TXDMAEN) == (SPI_CR2_TXDMAEN)) ? 1UL : 0UL); +} + +/** + * @brief Get the data register address used for DMA transfer + * @rmtoll DR DR LL_SPI_DMA_GetRegAddr + * @param SPIx SPI Instance + * @retval Address of data register + */ +__STATIC_INLINE uint32_t LL_SPI_DMA_GetRegAddr(const SPI_TypeDef *SPIx) +{ + return (uint32_t) &(SPIx->DR); +} + +/** + * @} + */ + +/** @defgroup SPI_LL_EF_DATA_Management DATA Management + * @{ + */ + +/** + * @brief Read 8-Bits in the data register + * @rmtoll DR DR LL_SPI_ReceiveData8 + * @param SPIx SPI Instance + * @retval RxData Value between Min_Data=0x00 and Max_Data=0xFF + */ +__STATIC_INLINE uint8_t LL_SPI_ReceiveData8(SPI_TypeDef *SPIx) +{ + return (*((__IO uint8_t *)&SPIx->DR)); +} + +/** + * @brief Read 16-Bits in the data register + * @rmtoll DR DR LL_SPI_ReceiveData16 + * @param SPIx SPI Instance + * @retval RxData Value between Min_Data=0x00 and Max_Data=0xFFFF + */ +__STATIC_INLINE uint16_t LL_SPI_ReceiveData16(SPI_TypeDef *SPIx) +{ + return (uint16_t)(READ_REG(SPIx->DR)); +} + +/** + * @brief Write 8-Bits in the data register + * @rmtoll DR DR LL_SPI_TransmitData8 + * @param SPIx SPI Instance + * @param TxData Value between Min_Data=0x00 and Max_Data=0xFF + * @retval None + */ +__STATIC_INLINE void LL_SPI_TransmitData8(SPI_TypeDef *SPIx, uint8_t TxData) +{ +#if defined (__GNUC__) + __IO uint8_t *spidr = ((__IO uint8_t *)&SPIx->DR); + *spidr = TxData; +#else + *((__IO uint8_t *)&SPIx->DR) = TxData; +#endif /* __GNUC__ */ +} + +/** + * @brief Write 16-Bits in the data register + * @rmtoll DR DR LL_SPI_TransmitData16 + * @param SPIx SPI Instance + * @param TxData Value between Min_Data=0x00 and Max_Data=0xFFFF + * @retval None + */ +__STATIC_INLINE void LL_SPI_TransmitData16(SPI_TypeDef *SPIx, uint16_t TxData) +{ +#if defined (__GNUC__) + __IO uint16_t *spidr = ((__IO uint16_t *)&SPIx->DR); + *spidr = TxData; +#else + SPIx->DR = TxData; +#endif /* __GNUC__ */ +} + +/** + * @} + */ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup SPI_LL_EF_Init Initialization and de-initialization functions + * @{ + */ + +ErrorStatus LL_SPI_DeInit(const SPI_TypeDef *SPIx); +ErrorStatus LL_SPI_Init(SPI_TypeDef *SPIx, LL_SPI_InitTypeDef *SPI_InitStruct); +void LL_SPI_StructInit(LL_SPI_InitTypeDef *SPI_InitStruct); + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ +/** + * @} + */ + +/** + * @} + */ + +#if defined(SPI_I2S_SUPPORT) +/** @defgroup I2S_LL I2S + * @{ + */ + +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup I2S_LL_ES_INIT I2S Exported Init structure + * @{ + */ + +/** + * @brief I2S Init structure definition + */ + +typedef struct +{ + uint32_t Mode; /*!< Specifies the I2S operating mode. + This parameter can be a value of @ref I2S_LL_EC_MODE + + This feature can be modified afterwards using unitary function @ref LL_I2S_SetTransferMode().*/ + + uint32_t Standard; /*!< Specifies the standard used for the I2S communication. + This parameter can be a value of @ref I2S_LL_EC_STANDARD + + This feature can be modified afterwards using unitary function @ref LL_I2S_SetStandard().*/ + + + uint32_t DataFormat; /*!< Specifies the data format for the I2S communication. + This parameter can be a value of @ref I2S_LL_EC_DATA_FORMAT + + This feature can be modified afterwards using unitary function @ref LL_I2S_SetDataFormat().*/ + + + uint32_t MCLKOutput; /*!< Specifies whether the I2S MCLK output is enabled or not. + This parameter can be a value of @ref I2S_LL_EC_MCLK_OUTPUT + + This feature can be modified afterwards using unitary functions @ref LL_I2S_EnableMasterClock() or @ref LL_I2S_DisableMasterClock.*/ + + + uint32_t AudioFreq; /*!< Specifies the frequency selected for the I2S communication. + This parameter can be a value of @ref I2S_LL_EC_AUDIO_FREQ + + Audio Frequency can be modified afterwards using Reference manual formulas to calculate Prescaler Linear, Parity + and unitary functions @ref LL_I2S_SetPrescalerLinear() and @ref LL_I2S_SetPrescalerParity() to set it.*/ + + + uint32_t ClockPolarity; /*!< Specifies the idle state of the I2S clock. + This parameter can be a value of @ref I2S_LL_EC_POLARITY + + This feature can be modified afterwards using unitary function @ref LL_I2S_SetClockPolarity().*/ + +} LL_I2S_InitTypeDef; + +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup I2S_LL_Exported_Constants I2S Exported Constants + * @{ + */ + +/** @defgroup I2S_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_I2S_ReadReg function + * @{ + */ +#define LL_I2S_SR_RXNE LL_SPI_SR_RXNE /*!< Rx buffer not empty flag */ +#define LL_I2S_SR_TXE LL_SPI_SR_TXE /*!< Tx buffer empty flag */ +#define LL_I2S_SR_BSY LL_SPI_SR_BSY /*!< Busy flag */ +#define LL_I2S_SR_UDR SPI_SR_UDR /*!< Underrun flag */ +#define LL_I2S_SR_OVR LL_SPI_SR_OVR /*!< Overrun flag */ +#define LL_I2S_SR_FRE LL_SPI_SR_FRE /*!< TI mode frame format error flag */ +/** + * @} + */ + +/** @defgroup SPI_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_SPI_ReadReg and LL_SPI_WriteReg functions + * @{ + */ +#define LL_I2S_CR2_RXNEIE LL_SPI_CR2_RXNEIE /*!< Rx buffer not empty interrupt enable */ +#define LL_I2S_CR2_TXEIE LL_SPI_CR2_TXEIE /*!< Tx buffer empty interrupt enable */ +#define LL_I2S_CR2_ERRIE LL_SPI_CR2_ERRIE /*!< Error interrupt enable */ +/** + * @} + */ + +/** @defgroup I2S_LL_EC_DATA_FORMAT Data format + * @{ + */ +#define LL_I2S_DATAFORMAT_16B 0x00000000U /*!< Data length 16 bits, Channel length 16bit */ +#define LL_I2S_DATAFORMAT_16B_EXTENDED (SPI_I2SCFGR_CHLEN) /*!< Data length 16 bits, Channel length 32bit */ +#define LL_I2S_DATAFORMAT_24B (SPI_I2SCFGR_CHLEN | SPI_I2SCFGR_DATLEN_0) /*!< Data length 24 bits, Channel length 32bit */ +#define LL_I2S_DATAFORMAT_32B (SPI_I2SCFGR_CHLEN | SPI_I2SCFGR_DATLEN_1) /*!< Data length 16 bits, Channel length 32bit */ +/** + * @} + */ + +/** @defgroup I2S_LL_EC_POLARITY Clock Polarity + * @{ + */ +#define LL_I2S_POLARITY_LOW 0x00000000U /*!< Clock steady state is low level */ +#define LL_I2S_POLARITY_HIGH (SPI_I2SCFGR_CKPOL) /*!< Clock steady state is high level */ +/** + * @} + */ + +/** @defgroup I2S_LL_EC_STANDARD I2s Standard + * @{ + */ +#define LL_I2S_STANDARD_PHILIPS 0x00000000U /*!< I2S standard philips */ +#define LL_I2S_STANDARD_MSB (SPI_I2SCFGR_I2SSTD_0) /*!< MSB justified standard (left justified) */ +#define LL_I2S_STANDARD_LSB (SPI_I2SCFGR_I2SSTD_1) /*!< LSB justified standard (right justified) */ +#define LL_I2S_STANDARD_PCM_SHORT (SPI_I2SCFGR_I2SSTD_0 | SPI_I2SCFGR_I2SSTD_1) /*!< PCM standard, short frame synchronization */ +#define LL_I2S_STANDARD_PCM_LONG (SPI_I2SCFGR_I2SSTD_0 | SPI_I2SCFGR_I2SSTD_1 | SPI_I2SCFGR_PCMSYNC) /*!< PCM standard, long frame synchronization */ +/** + * @} + */ + +/** @defgroup I2S_LL_EC_MODE Operation Mode + * @{ + */ +#define LL_I2S_MODE_SLAVE_TX 0x00000000U /*!< Slave Tx configuration */ +#define LL_I2S_MODE_SLAVE_RX (SPI_I2SCFGR_I2SCFG_0) /*!< Slave Rx configuration */ +#define LL_I2S_MODE_MASTER_TX (SPI_I2SCFGR_I2SCFG_1) /*!< Master Tx configuration */ +#define LL_I2S_MODE_MASTER_RX (SPI_I2SCFGR_I2SCFG_0 | SPI_I2SCFGR_I2SCFG_1) /*!< Master Rx configuration */ +/** + * @} + */ + +/** @defgroup I2S_LL_EC_PRESCALER_FACTOR Prescaler Factor + * @{ + */ +#define LL_I2S_PRESCALER_PARITY_EVEN 0x00000000U /*!< Odd factor: Real divider value is = I2SDIV * 2 */ +#define LL_I2S_PRESCALER_PARITY_ODD (SPI_I2SPR_ODD >> 8U) /*!< Odd factor: Real divider value is = (I2SDIV * 2)+1 */ +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) + +/** @defgroup I2S_LL_EC_MCLK_OUTPUT MCLK Output + * @{ + */ +#define LL_I2S_MCLK_OUTPUT_DISABLE 0x00000000U /*!< Master clock output is disabled */ +#define LL_I2S_MCLK_OUTPUT_ENABLE (SPI_I2SPR_MCKOE) /*!< Master clock output is enabled */ +/** + * @} + */ + +/** @defgroup I2S_LL_EC_AUDIO_FREQ Audio Frequency + * @{ + */ + +#define LL_I2S_AUDIOFREQ_192K 192000U /*!< Audio Frequency configuration 192000 Hz */ +#define LL_I2S_AUDIOFREQ_96K 96000U /*!< Audio Frequency configuration 96000 Hz */ +#define LL_I2S_AUDIOFREQ_48K 48000U /*!< Audio Frequency configuration 48000 Hz */ +#define LL_I2S_AUDIOFREQ_44K 44100U /*!< Audio Frequency configuration 44100 Hz */ +#define LL_I2S_AUDIOFREQ_32K 32000U /*!< Audio Frequency configuration 32000 Hz */ +#define LL_I2S_AUDIOFREQ_22K 22050U /*!< Audio Frequency configuration 22050 Hz */ +#define LL_I2S_AUDIOFREQ_16K 16000U /*!< Audio Frequency configuration 16000 Hz */ +#define LL_I2S_AUDIOFREQ_11K 11025U /*!< Audio Frequency configuration 11025 Hz */ +#define LL_I2S_AUDIOFREQ_8K 8000U /*!< Audio Frequency configuration 8000 Hz */ +#define LL_I2S_AUDIOFREQ_DEFAULT 2U /*!< Audio Freq not specified. Register I2SDIV = 2 */ +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup I2S_LL_Exported_Macros I2S Exported Macros + * @{ + */ + +/** @defgroup I2S_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in I2S register + * @param __INSTANCE__ I2S Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_I2S_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in I2S register + * @param __INSTANCE__ I2S Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_I2S_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** + * @} + */ + + +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup I2S_LL_Exported_Functions I2S Exported Functions + * @{ + */ + +/** @defgroup I2S_LL_EF_Configuration Configuration + * @{ + */ + +/** + * @brief Select I2S mode and Enable I2S peripheral + * @rmtoll I2SCFGR I2SMOD LL_I2S_Enable\n + * I2SCFGR I2SE LL_I2S_Enable + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_Enable(SPI_TypeDef *SPIx) +{ + SET_BIT(SPIx->I2SCFGR, SPI_I2SCFGR_I2SMOD | SPI_I2SCFGR_I2SE); +} + +/** + * @brief Disable I2S peripheral + * @rmtoll I2SCFGR I2SE LL_I2S_Disable + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_Disable(SPI_TypeDef *SPIx) +{ + CLEAR_BIT(SPIx->I2SCFGR, SPI_I2SCFGR_I2SMOD | SPI_I2SCFGR_I2SE); +} + +/** + * @brief Check if I2S peripheral is enabled + * @rmtoll I2SCFGR I2SE LL_I2S_IsEnabled + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsEnabled(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->I2SCFGR, SPI_I2SCFGR_I2SE) == (SPI_I2SCFGR_I2SE)) ? 1UL : 0UL); +} + +/** + * @brief Set I2S data frame length + * @rmtoll I2SCFGR DATLEN LL_I2S_SetDataFormat\n + * I2SCFGR CHLEN LL_I2S_SetDataFormat + * @param SPIx SPI Instance + * @param DataFormat This parameter can be one of the following values: + * @arg @ref LL_I2S_DATAFORMAT_16B + * @arg @ref LL_I2S_DATAFORMAT_16B_EXTENDED + * @arg @ref LL_I2S_DATAFORMAT_24B + * @arg @ref LL_I2S_DATAFORMAT_32B + * @retval None + */ +__STATIC_INLINE void LL_I2S_SetDataFormat(SPI_TypeDef *SPIx, uint32_t DataFormat) +{ + MODIFY_REG(SPIx->I2SCFGR, SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN, DataFormat); +} + +/** + * @brief Get I2S data frame length + * @rmtoll I2SCFGR DATLEN LL_I2S_GetDataFormat\n + * I2SCFGR CHLEN LL_I2S_GetDataFormat + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_I2S_DATAFORMAT_16B + * @arg @ref LL_I2S_DATAFORMAT_16B_EXTENDED + * @arg @ref LL_I2S_DATAFORMAT_24B + * @arg @ref LL_I2S_DATAFORMAT_32B + */ +__STATIC_INLINE uint32_t LL_I2S_GetDataFormat(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->I2SCFGR, SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN)); +} + +/** + * @brief Set I2S clock polarity + * @rmtoll I2SCFGR CKPOL LL_I2S_SetClockPolarity + * @param SPIx SPI Instance + * @param ClockPolarity This parameter can be one of the following values: + * @arg @ref LL_I2S_POLARITY_LOW + * @arg @ref LL_I2S_POLARITY_HIGH + * @retval None + */ +__STATIC_INLINE void LL_I2S_SetClockPolarity(SPI_TypeDef *SPIx, uint32_t ClockPolarity) +{ + SET_BIT(SPIx->I2SCFGR, ClockPolarity); +} + +/** + * @brief Get I2S clock polarity + * @rmtoll I2SCFGR CKPOL LL_I2S_GetClockPolarity + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_I2S_POLARITY_LOW + * @arg @ref LL_I2S_POLARITY_HIGH + */ +__STATIC_INLINE uint32_t LL_I2S_GetClockPolarity(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->I2SCFGR, SPI_I2SCFGR_CKPOL)); +} + +/** + * @brief Set I2S standard protocol + * @rmtoll I2SCFGR I2SSTD LL_I2S_SetStandard\n + * I2SCFGR PCMSYNC LL_I2S_SetStandard + * @param SPIx SPI Instance + * @param Standard This parameter can be one of the following values: + * @arg @ref LL_I2S_STANDARD_PHILIPS + * @arg @ref LL_I2S_STANDARD_MSB + * @arg @ref LL_I2S_STANDARD_LSB + * @arg @ref LL_I2S_STANDARD_PCM_SHORT + * @arg @ref LL_I2S_STANDARD_PCM_LONG + * @retval None + */ +__STATIC_INLINE void LL_I2S_SetStandard(SPI_TypeDef *SPIx, uint32_t Standard) +{ + MODIFY_REG(SPIx->I2SCFGR, SPI_I2SCFGR_I2SSTD | SPI_I2SCFGR_PCMSYNC, Standard); +} + +/** + * @brief Get I2S standard protocol + * @rmtoll I2SCFGR I2SSTD LL_I2S_GetStandard\n + * I2SCFGR PCMSYNC LL_I2S_GetStandard + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_I2S_STANDARD_PHILIPS + * @arg @ref LL_I2S_STANDARD_MSB + * @arg @ref LL_I2S_STANDARD_LSB + * @arg @ref LL_I2S_STANDARD_PCM_SHORT + * @arg @ref LL_I2S_STANDARD_PCM_LONG + */ +__STATIC_INLINE uint32_t LL_I2S_GetStandard(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->I2SCFGR, SPI_I2SCFGR_I2SSTD | SPI_I2SCFGR_PCMSYNC)); +} + +/** + * @brief Set I2S transfer mode + * @rmtoll I2SCFGR I2SCFG LL_I2S_SetTransferMode + * @param SPIx SPI Instance + * @param Mode This parameter can be one of the following values: + * @arg @ref LL_I2S_MODE_SLAVE_TX + * @arg @ref LL_I2S_MODE_SLAVE_RX + * @arg @ref LL_I2S_MODE_MASTER_TX + * @arg @ref LL_I2S_MODE_MASTER_RX + * @retval None + */ +__STATIC_INLINE void LL_I2S_SetTransferMode(SPI_TypeDef *SPIx, uint32_t Mode) +{ + MODIFY_REG(SPIx->I2SCFGR, SPI_I2SCFGR_I2SCFG, Mode); +} + +/** + * @brief Get I2S transfer mode + * @rmtoll I2SCFGR I2SCFG LL_I2S_GetTransferMode + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_I2S_MODE_SLAVE_TX + * @arg @ref LL_I2S_MODE_SLAVE_RX + * @arg @ref LL_I2S_MODE_MASTER_TX + * @arg @ref LL_I2S_MODE_MASTER_RX + */ +__STATIC_INLINE uint32_t LL_I2S_GetTransferMode(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->I2SCFGR, SPI_I2SCFGR_I2SCFG)); +} + +/** + * @brief Set I2S linear prescaler + * @rmtoll I2SPR I2SDIV LL_I2S_SetPrescalerLinear + * @param SPIx SPI Instance + * @param PrescalerLinear Value between Min_Data=0x02 and Max_Data=0xFF + * @retval None + */ +__STATIC_INLINE void LL_I2S_SetPrescalerLinear(SPI_TypeDef *SPIx, uint8_t PrescalerLinear) +{ + MODIFY_REG(SPIx->I2SPR, SPI_I2SPR_I2SDIV, PrescalerLinear); +} + +/** + * @brief Get I2S linear prescaler + * @rmtoll I2SPR I2SDIV LL_I2S_GetPrescalerLinear + * @param SPIx SPI Instance + * @retval PrescalerLinear Value between Min_Data=0x02 and Max_Data=0xFF + */ +__STATIC_INLINE uint32_t LL_I2S_GetPrescalerLinear(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->I2SPR, SPI_I2SPR_I2SDIV)); +} + +/** + * @brief Set I2S parity prescaler + * @rmtoll I2SPR ODD LL_I2S_SetPrescalerParity + * @param SPIx SPI Instance + * @param PrescalerParity This parameter can be one of the following values: + * @arg @ref LL_I2S_PRESCALER_PARITY_EVEN + * @arg @ref LL_I2S_PRESCALER_PARITY_ODD + * @retval None + */ +__STATIC_INLINE void LL_I2S_SetPrescalerParity(SPI_TypeDef *SPIx, uint32_t PrescalerParity) +{ + MODIFY_REG(SPIx->I2SPR, SPI_I2SPR_ODD, PrescalerParity << 8U); +} + +/** + * @brief Get I2S parity prescaler + * @rmtoll I2SPR ODD LL_I2S_GetPrescalerParity + * @param SPIx SPI Instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_I2S_PRESCALER_PARITY_EVEN + * @arg @ref LL_I2S_PRESCALER_PARITY_ODD + */ +__STATIC_INLINE uint32_t LL_I2S_GetPrescalerParity(const SPI_TypeDef *SPIx) +{ + return (uint32_t)(READ_BIT(SPIx->I2SPR, SPI_I2SPR_ODD) >> 8U); +} + +/** + * @brief Enable the master clock output (Pin MCK) + * @rmtoll I2SPR MCKOE LL_I2S_EnableMasterClock + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_EnableMasterClock(SPI_TypeDef *SPIx) +{ + SET_BIT(SPIx->I2SPR, SPI_I2SPR_MCKOE); +} + +/** + * @brief Disable the master clock output (Pin MCK) + * @rmtoll I2SPR MCKOE LL_I2S_DisableMasterClock + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_DisableMasterClock(SPI_TypeDef *SPIx) +{ + CLEAR_BIT(SPIx->I2SPR, SPI_I2SPR_MCKOE); +} + +/** + * @brief Check if the master clock output (Pin MCK) is enabled + * @rmtoll I2SPR MCKOE LL_I2S_IsEnabledMasterClock + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsEnabledMasterClock(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->I2SPR, SPI_I2SPR_MCKOE) == (SPI_I2SPR_MCKOE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup I2S_LL_EF_FLAG FLAG Management + * @{ + */ + +/** + * @brief Check if Rx buffer is not empty + * @rmtoll SR RXNE LL_I2S_IsActiveFlag_RXNE + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsActiveFlag_RXNE(const SPI_TypeDef *SPIx) +{ + return LL_SPI_IsActiveFlag_RXNE(SPIx); +} + +/** + * @brief Check if Tx buffer is empty + * @rmtoll SR TXE LL_I2S_IsActiveFlag_TXE + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsActiveFlag_TXE(const SPI_TypeDef *SPIx) +{ + return LL_SPI_IsActiveFlag_TXE(SPIx); +} + +/** + * @brief Get busy flag + * @rmtoll SR BSY LL_I2S_IsActiveFlag_BSY + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsActiveFlag_BSY(const SPI_TypeDef *SPIx) +{ + return LL_SPI_IsActiveFlag_BSY(SPIx); +} + +/** + * @brief Get overrun error flag + * @rmtoll SR OVR LL_I2S_IsActiveFlag_OVR + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsActiveFlag_OVR(const SPI_TypeDef *SPIx) +{ + return LL_SPI_IsActiveFlag_OVR(SPIx); +} + +/** + * @brief Get underrun error flag + * @rmtoll SR UDR LL_I2S_IsActiveFlag_UDR + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsActiveFlag_UDR(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->SR, SPI_SR_UDR) == (SPI_SR_UDR)) ? 1UL : 0UL); +} + +#if defined(SPI_CR2_FRF) +/** + * @brief Get frame format error flag + * @rmtoll SR FRE LL_I2S_IsActiveFlag_FRE + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsActiveFlag_FRE(const SPI_TypeDef *SPIx) +{ + return LL_SPI_IsActiveFlag_FRE(SPIx); +} +#endif /* SPI_CR2_FRF */ + +/** + * @brief Get channel side flag. + * @note 0: Channel Left has to be transmitted or has been received\n + * 1: Channel Right has to be transmitted or has been received\n + * It has no significance in PCM mode. + * @rmtoll SR CHSIDE LL_I2S_IsActiveFlag_CHSIDE + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsActiveFlag_CHSIDE(const SPI_TypeDef *SPIx) +{ + return ((READ_BIT(SPIx->SR, SPI_SR_CHSIDE) == (SPI_SR_CHSIDE)) ? 1UL : 0UL); +} + +/** + * @brief Clear overrun error flag + * @rmtoll SR OVR LL_I2S_ClearFlag_OVR + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_ClearFlag_OVR(SPI_TypeDef *SPIx) +{ + LL_SPI_ClearFlag_OVR(SPIx); +} + +/** + * @brief Clear underrun error flag + * @rmtoll SR UDR LL_I2S_ClearFlag_UDR + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_ClearFlag_UDR(const SPI_TypeDef *SPIx) +{ + __IO uint32_t tmpreg; + tmpreg = SPIx->SR; + (void)tmpreg; +} + +/** + * @brief Clear frame format error flag + * @rmtoll SR FRE LL_I2S_ClearFlag_FRE + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_ClearFlag_FRE(const SPI_TypeDef *SPIx) +{ + LL_SPI_ClearFlag_FRE(SPIx); +} + +/** + * @} + */ + +/** @defgroup I2S_LL_EF_IT Interrupt Management + * @{ + */ + +/** + * @brief Enable error IT + * @note This bit controls the generation of an interrupt when an error condition occurs (OVR, UDR and FRE in I2S mode). + * @rmtoll CR2 ERRIE LL_I2S_EnableIT_ERR + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_EnableIT_ERR(SPI_TypeDef *SPIx) +{ + LL_SPI_EnableIT_ERR(SPIx); +} + +/** + * @brief Enable Rx buffer not empty IT + * @rmtoll CR2 RXNEIE LL_I2S_EnableIT_RXNE + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_EnableIT_RXNE(SPI_TypeDef *SPIx) +{ + LL_SPI_EnableIT_RXNE(SPIx); +} + +/** + * @brief Enable Tx buffer empty IT + * @rmtoll CR2 TXEIE LL_I2S_EnableIT_TXE + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_EnableIT_TXE(SPI_TypeDef *SPIx) +{ + LL_SPI_EnableIT_TXE(SPIx); +} + +/** + * @brief Disable error IT + * @note This bit controls the generation of an interrupt when an error condition occurs (OVR, UDR and FRE in I2S mode). + * @rmtoll CR2 ERRIE LL_I2S_DisableIT_ERR + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_DisableIT_ERR(SPI_TypeDef *SPIx) +{ + LL_SPI_DisableIT_ERR(SPIx); +} + +/** + * @brief Disable Rx buffer not empty IT + * @rmtoll CR2 RXNEIE LL_I2S_DisableIT_RXNE + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_DisableIT_RXNE(SPI_TypeDef *SPIx) +{ + LL_SPI_DisableIT_RXNE(SPIx); +} + +/** + * @brief Disable Tx buffer empty IT + * @rmtoll CR2 TXEIE LL_I2S_DisableIT_TXE + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_DisableIT_TXE(SPI_TypeDef *SPIx) +{ + LL_SPI_DisableIT_TXE(SPIx); +} + +/** + * @brief Check if ERR IT is enabled + * @rmtoll CR2 ERRIE LL_I2S_IsEnabledIT_ERR + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsEnabledIT_ERR(const SPI_TypeDef *SPIx) +{ + return LL_SPI_IsEnabledIT_ERR(SPIx); +} + +/** + * @brief Check if RXNE IT is enabled + * @rmtoll CR2 RXNEIE LL_I2S_IsEnabledIT_RXNE + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsEnabledIT_RXNE(const SPI_TypeDef *SPIx) +{ + return LL_SPI_IsEnabledIT_RXNE(SPIx); +} + +/** + * @brief Check if TXE IT is enabled + * @rmtoll CR2 TXEIE LL_I2S_IsEnabledIT_TXE + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsEnabledIT_TXE(const SPI_TypeDef *SPIx) +{ + return LL_SPI_IsEnabledIT_TXE(SPIx); +} + +/** + * @} + */ + +/** @defgroup I2S_LL_EF_DMA DMA Management + * @{ + */ + +/** + * @brief Enable DMA Rx + * @rmtoll CR2 RXDMAEN LL_I2S_EnableDMAReq_RX + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_EnableDMAReq_RX(SPI_TypeDef *SPIx) +{ + LL_SPI_EnableDMAReq_RX(SPIx); +} + +/** + * @brief Disable DMA Rx + * @rmtoll CR2 RXDMAEN LL_I2S_DisableDMAReq_RX + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_DisableDMAReq_RX(SPI_TypeDef *SPIx) +{ + LL_SPI_DisableDMAReq_RX(SPIx); +} + +/** + * @brief Check if DMA Rx is enabled + * @rmtoll CR2 RXDMAEN LL_I2S_IsEnabledDMAReq_RX + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsEnabledDMAReq_RX(const SPI_TypeDef *SPIx) +{ + return LL_SPI_IsEnabledDMAReq_RX(SPIx); +} + +/** + * @brief Enable DMA Tx + * @rmtoll CR2 TXDMAEN LL_I2S_EnableDMAReq_TX + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_EnableDMAReq_TX(SPI_TypeDef *SPIx) +{ + LL_SPI_EnableDMAReq_TX(SPIx); +} + +/** + * @brief Disable DMA Tx + * @rmtoll CR2 TXDMAEN LL_I2S_DisableDMAReq_TX + * @param SPIx SPI Instance + * @retval None + */ +__STATIC_INLINE void LL_I2S_DisableDMAReq_TX(SPI_TypeDef *SPIx) +{ + LL_SPI_DisableDMAReq_TX(SPIx); +} + +/** + * @brief Check if DMA Tx is enabled + * @rmtoll CR2 TXDMAEN LL_I2S_IsEnabledDMAReq_TX + * @param SPIx SPI Instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2S_IsEnabledDMAReq_TX(const SPI_TypeDef *SPIx) +{ + return LL_SPI_IsEnabledDMAReq_TX(SPIx); +} + +/** + * @} + */ + +/** @defgroup I2S_LL_EF_DATA DATA Management + * @{ + */ + +/** + * @brief Read 16-Bits in data register + * @rmtoll DR DR LL_I2S_ReceiveData16 + * @param SPIx SPI Instance + * @retval RxData Value between Min_Data=0x0000 and Max_Data=0xFFFF + */ +__STATIC_INLINE uint16_t LL_I2S_ReceiveData16(SPI_TypeDef *SPIx) +{ + return LL_SPI_ReceiveData16(SPIx); +} + +/** + * @brief Write 16-Bits in data register + * @rmtoll DR DR LL_I2S_TransmitData16 + * @param SPIx SPI Instance + * @param TxData Value between Min_Data=0x0000 and Max_Data=0xFFFF + * @retval None + */ +__STATIC_INLINE void LL_I2S_TransmitData16(SPI_TypeDef *SPIx, uint16_t TxData) +{ + LL_SPI_TransmitData16(SPIx, TxData); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup I2S_LL_EF_Init Initialization and de-initialization functions + * @{ + */ + +ErrorStatus LL_I2S_DeInit(const SPI_TypeDef *SPIx); +ErrorStatus LL_I2S_Init(SPI_TypeDef *SPIx, LL_I2S_InitTypeDef *I2S_InitStruct); +void LL_I2S_StructInit(LL_I2S_InitTypeDef *I2S_InitStruct); +void LL_I2S_ConfigPrescaler(SPI_TypeDef *SPIx, uint32_t PrescalerLinear, uint32_t PrescalerParity); + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ +#endif /* SPI_I2S_SUPPORT */ + +#endif /* defined (SPI1) || defined (SPI2) || defined (SPI3) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32L1xx_LL_SPI_H */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_system.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_system.h new file mode 100644 index 0000000..806a57e --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_system.h @@ -0,0 +1,2007 @@ +/** + ****************************************************************************** + * @file stm32l1xx_ll_system.h + * @author MCD Application Team + * @brief Header file of SYSTEM LL module. + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The LL SYSTEM driver contains a set of generic APIs that can be + used by user: + (+) Some of the FLASH features need to be handled in the SYSTEM file. + (+) Access to DBGCMU registers + (+) Access to SYSCFG registers + (+) Access to Routing Interfaces registers + + @endverbatim + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_LL_SYSTEM_H +#define __STM32L1xx_LL_SYSTEM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx.h" + +/** @addtogroup STM32L1xx_LL_Driver + * @{ + */ + +#if defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) || defined(RI) + +/** @defgroup SYSTEM_LL SYSTEM + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants + * @{ + */ + +/** + * @brief Power-down in Run mode Flash key + */ +#define FLASH_PDKEY1 (0x04152637U) /*!< Flash power down key1 */ +#define FLASH_PDKEY2 (0xFAFBFCFDU) /*!< Flash power down key2: used with FLASH_PDKEY1 + to unlock the RUN_PD bit in FLASH_ACR */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup SYSTEM_LL_Exported_Constants SYSTEM Exported Constants + * @{ + */ + +/** @defgroup SYSTEM_LL_EC_REMAP SYSCFG REMAP +* @{ +*/ +#define LL_SYSCFG_REMAP_FLASH (0x00000000U) /*MEMRMP, SYSCFG_MEMRMP_MEM_MODE, Memory); +} + +/** + * @brief Get memory mapping at address 0x00000000 + * @rmtoll SYSCFG_MEMRMP MEM_MODE LL_SYSCFG_GetRemapMemory + * @retval Returned value can be one of the following values: + * @arg @ref LL_SYSCFG_REMAP_FLASH + * @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH + * @arg @ref LL_SYSCFG_REMAP_SRAM + * @arg @ref LL_SYSCFG_REMAP_FMC (*) + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_SYSCFG_GetRemapMemory(void) +{ + return (uint32_t)(READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE)); +} + +/** + * @brief Return the boot mode as configured by user. + * @rmtoll SYSCFG_MEMRMP BOOT_MODE LL_SYSCFG_GetBootMode + * @retval Returned value can be one of the following values: + * @arg @ref LL_SYSCFG_BOOTMODE_FLASH + * @arg @ref LL_SYSCFG_BOOTMODE_SYSTEMFLASH + * @arg @ref LL_SYSCFG_BOOTMODE_FSMC (*) + * @arg @ref LL_SYSCFG_BOOTMODE_SRAM + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_SYSCFG_GetBootMode(void) +{ + return (uint32_t)(READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_BOOT_MODE)); +} + +/** + * @brief Enable internal pull-up on USB DP line. + * @rmtoll SYSCFG_PMC USB_PU LL_SYSCFG_EnableUSBPullUp + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableUSBPullUp(void) +{ + SET_BIT(SYSCFG->PMC, SYSCFG_PMC_USB_PU); +} + +/** + * @brief Disable internal pull-up on USB DP line. + * @rmtoll SYSCFG_PMC USB_PU LL_SYSCFG_DisableUSBPullUp + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableUSBPullUp(void) +{ + CLEAR_BIT(SYSCFG->PMC, SYSCFG_PMC_USB_PU); +} + +#if defined(LCD) +/** + * @brief Enable decoupling capacitance connection. + * @rmtoll SYSCFG_PMC LCD_CAPA LL_SYSCFG_EnableLCDCapacitanceConnection + * @param Pin This parameter can be a combination of the following values: + * @arg @ref LL_SYSCFG_LCDCAPA_PB2 + * @arg @ref LL_SYSCFG_LCDCAPA_PB12 + * @arg @ref LL_SYSCFG_LCDCAPA_PB0 + * @arg @ref LL_SYSCFG_LCDCAPA_PE11 + * @arg @ref LL_SYSCFG_LCDCAPA_PE12 + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_EnableLCDCapacitanceConnection(uint32_t Pin) +{ + SET_BIT(SYSCFG->PMC, Pin); +} + +/** + * @brief DIsable decoupling capacitance connection. + * @rmtoll SYSCFG_PMC LCD_CAPA LL_SYSCFG_DisableLCDCapacitanceConnection + * @param Pin This parameter can be a combination of the following values: + * @arg @ref LL_SYSCFG_LCDCAPA_PB2 + * @arg @ref LL_SYSCFG_LCDCAPA_PB12 + * @arg @ref LL_SYSCFG_LCDCAPA_PB0 + * @arg @ref LL_SYSCFG_LCDCAPA_PE11 + * @arg @ref LL_SYSCFG_LCDCAPA_PE12 + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_DisableLCDCapacitanceConnection(uint32_t Pin) +{ + CLEAR_BIT(SYSCFG->PMC, Pin); +} +#endif /* LCD */ + +/** + * @brief Configure source input for the EXTI external interrupt. + * @rmtoll SYSCFG_EXTICR1 EXTI0 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI1 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI2 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI3 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI4 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI5 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI6 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI7 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI8 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI9 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI10 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI11 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI12 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI13 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI14 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR1 EXTI15 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI0 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI1 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI2 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI3 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI4 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI5 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI6 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI7 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI8 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI9 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI10 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI11 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI12 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI13 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI14 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR2 EXTI15 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI0 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI1 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI2 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI3 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI4 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI5 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI6 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI7 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI8 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI9 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI10 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI11 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI12 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI13 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI14 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR3 EXTI15 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI0 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI1 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI2 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI3 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI4 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI5 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI6 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI7 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI8 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI9 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI10 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI11 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI12 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI13 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI14 LL_SYSCFG_SetEXTISource\n + * SYSCFG_EXTICR4 EXTI15 LL_SYSCFG_SetEXTISource + * @param Port This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_EXTI_PORTA + * @arg @ref LL_SYSCFG_EXTI_PORTB + * @arg @ref LL_SYSCFG_EXTI_PORTC + * @arg @ref LL_SYSCFG_EXTI_PORTD + * @arg @ref LL_SYSCFG_EXTI_PORTE (*) + * @arg @ref LL_SYSCFG_EXTI_PORTF (*) + * @arg @ref LL_SYSCFG_EXTI_PORTG (*) + * @arg @ref LL_SYSCFG_EXTI_PORTH + * + * (*) value not defined in all devices. + * @param Line This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_EXTI_LINE0 + * @arg @ref LL_SYSCFG_EXTI_LINE1 + * @arg @ref LL_SYSCFG_EXTI_LINE2 + * @arg @ref LL_SYSCFG_EXTI_LINE3 + * @arg @ref LL_SYSCFG_EXTI_LINE4 + * @arg @ref LL_SYSCFG_EXTI_LINE5 + * @arg @ref LL_SYSCFG_EXTI_LINE6 + * @arg @ref LL_SYSCFG_EXTI_LINE7 + * @arg @ref LL_SYSCFG_EXTI_LINE8 + * @arg @ref LL_SYSCFG_EXTI_LINE9 + * @arg @ref LL_SYSCFG_EXTI_LINE10 + * @arg @ref LL_SYSCFG_EXTI_LINE11 + * @arg @ref LL_SYSCFG_EXTI_LINE12 + * @arg @ref LL_SYSCFG_EXTI_LINE13 + * @arg @ref LL_SYSCFG_EXTI_LINE14 + * @arg @ref LL_SYSCFG_EXTI_LINE15 + * @retval None + */ +__STATIC_INLINE void LL_SYSCFG_SetEXTISource(uint32_t Port, uint32_t Line) +{ + MODIFY_REG(SYSCFG->EXTICR[Line & 0x3U], (Line >> 16), Port << POSITION_VAL((Line >> 16))); +} + +/** + * @brief Get the configured defined for specific EXTI Line + * @rmtoll SYSCFG_EXTICR1 EXTI0 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI1 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI2 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI3 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI4 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI5 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI6 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI7 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI8 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI9 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI10 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI11 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI12 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI13 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI14 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR1 EXTI15 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI0 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI1 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI2 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI3 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI4 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI5 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI6 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI7 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI8 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI9 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI10 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI11 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI12 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI13 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI14 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR2 EXTI15 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI0 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI1 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI2 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI3 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI4 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI5 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI6 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI7 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI8 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI9 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI10 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI11 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI12 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI13 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI14 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR3 EXTI15 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI0 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI1 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI2 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI3 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI4 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI5 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI6 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI7 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI8 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI9 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI10 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI11 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI12 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI13 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI14 LL_SYSCFG_GetEXTISource\n + * SYSCFG_EXTICR4 EXTI15 LL_SYSCFG_GetEXTISource + * @param Line This parameter can be one of the following values: + * @arg @ref LL_SYSCFG_EXTI_LINE0 + * @arg @ref LL_SYSCFG_EXTI_LINE1 + * @arg @ref LL_SYSCFG_EXTI_LINE2 + * @arg @ref LL_SYSCFG_EXTI_LINE3 + * @arg @ref LL_SYSCFG_EXTI_LINE4 + * @arg @ref LL_SYSCFG_EXTI_LINE5 + * @arg @ref LL_SYSCFG_EXTI_LINE6 + * @arg @ref LL_SYSCFG_EXTI_LINE7 + * @arg @ref LL_SYSCFG_EXTI_LINE8 + * @arg @ref LL_SYSCFG_EXTI_LINE9 + * @arg @ref LL_SYSCFG_EXTI_LINE10 + * @arg @ref LL_SYSCFG_EXTI_LINE11 + * @arg @ref LL_SYSCFG_EXTI_LINE12 + * @arg @ref LL_SYSCFG_EXTI_LINE13 + * @arg @ref LL_SYSCFG_EXTI_LINE14 + * @arg @ref LL_SYSCFG_EXTI_LINE15 + * @retval Returned value can be one of the following values: + * @arg @ref LL_SYSCFG_EXTI_PORTA + * @arg @ref LL_SYSCFG_EXTI_PORTB + * @arg @ref LL_SYSCFG_EXTI_PORTC + * @arg @ref LL_SYSCFG_EXTI_PORTD + * @arg @ref LL_SYSCFG_EXTI_PORTE (*) + * @arg @ref LL_SYSCFG_EXTI_PORTF (*) + * @arg @ref LL_SYSCFG_EXTI_PORTG (*) + * @arg @ref LL_SYSCFG_EXTI_PORTH + * + * (*) value not defined in all devices. + */ +__STATIC_INLINE uint32_t LL_SYSCFG_GetEXTISource(uint32_t Line) +{ + return (uint32_t)(READ_BIT(SYSCFG->EXTICR[Line & 0x3U], (Line >> 16)) >> POSITION_VAL(Line >> 16)); +} + +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EF_DBGMCU DBGMCU + * @{ + */ + +/** + * @brief Return the device identifier + * @note 0x416: Cat.1 device\n + * 0x429: Cat.2 device\n + * 0x427: Cat.3 device\n + * 0x436: Cat.4 device or Cat.3 device(1)\n + * 0x437: Cat.5 device\n + * + * (1) Cat.3 devices: STM32L15xxC or STM3216xxC devices with + * RPN ending with letter 'A', in WLCSP64 packages or with more then 100 pin. + * @rmtoll DBGMCU_IDCODE DEV_ID LL_DBGMCU_GetDeviceID + * @retval Values between Min_Data=0x00 and Max_Data=0xFFF + */ +__STATIC_INLINE uint32_t LL_DBGMCU_GetDeviceID(void) +{ + return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_DEV_ID)); +} + +/** + * @brief Return the device revision identifier + * @note This field indicates the revision of the device. + For example, it is read as Cat.1 RevA -> 0x1000, Cat.2 Rev Z -> 0x1018... + * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID + * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF + */ +__STATIC_INLINE uint32_t LL_DBGMCU_GetRevisionID(void) +{ + return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_REV_ID) >> DBGMCU_IDCODE_REV_ID_Pos); +} + +/** + * @brief Enable the Debug Module during SLEEP mode + * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_EnableDBGSleepMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_EnableDBGSleepMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); +} + +/** + * @brief Disable the Debug Module during SLEEP mode + * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_DisableDBGSleepMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_DisableDBGSleepMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); +} + +/** + * @brief Enable the Debug Module during STOP mode + * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_EnableDBGStopMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_EnableDBGStopMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Disable the Debug Module during STOP mode + * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_DisableDBGStopMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_DisableDBGStopMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Enable the Debug Module during STANDBY mode + * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_EnableDBGStandbyMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_EnableDBGStandbyMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @brief Disable the Debug Module during STANDBY mode + * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_DisableDBGStandbyMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_DisableDBGStandbyMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @brief Set Trace pin assignment control + * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_SetTracePinAssignment\n + * DBGMCU_CR TRACE_MODE LL_DBGMCU_SetTracePinAssignment + * @param PinAssignment This parameter can be one of the following values: + * @arg @ref LL_DBGMCU_TRACE_NONE + * @arg @ref LL_DBGMCU_TRACE_ASYNCH + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4 + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_SetTracePinAssignment(uint32_t PinAssignment) +{ + MODIFY_REG(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE, PinAssignment); +} + +/** + * @brief Get Trace pin assignment control + * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_GetTracePinAssignment\n + * DBGMCU_CR TRACE_MODE LL_DBGMCU_GetTracePinAssignment + * @retval Returned value can be one of the following values: + * @arg @ref LL_DBGMCU_TRACE_NONE + * @arg @ref LL_DBGMCU_TRACE_ASYNCH + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4 + */ +__STATIC_INLINE uint32_t LL_DBGMCU_GetTracePinAssignment(void) +{ + return (uint32_t)(READ_BIT(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE)); +} + +/** + * @brief Freeze APB1 peripherals (group1 peripherals) + * @rmtoll APB1_FZ DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * APB1_FZ DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs) +{ + SET_BIT(DBGMCU->APB1FZ, Periphs); +} + +/** + * @brief Unfreeze APB1 peripherals (group1 peripherals) + * @rmtoll APB1_FZ DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * APB1_FZ DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs) +{ + CLEAR_BIT(DBGMCU->APB1FZ, Periphs); +} + +/** + * @brief Freeze APB2 peripherals + * @rmtoll APB2_FZ DBG_TIM9_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * APB2_FZ DBG_TIM10_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * APB2_FZ DBG_TIM11_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB2_GRP1_FreezePeriph(uint32_t Periphs) +{ + SET_BIT(DBGMCU->APB2FZ, Periphs); +} + +/** + * @brief Unfreeze APB2 peripherals + * @rmtoll APB2_FZ DBG_TIM9_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n + * APB2_FZ DBG_TIM10_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n + * APB2_FZ DBG_TIM11_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB2_GRP1_UnFreezePeriph(uint32_t Periphs) +{ + CLEAR_BIT(DBGMCU->APB2FZ, Periphs); +} + +/** + * @} + */ + +#if defined(COMP_CSR_VREFOUTEN) +/** @defgroup SYSTEM_LL_EF_VREFOUT VREFOUT + * @{ + */ + +/** + * @brief Enable the output of internal reference voltage (VrefInt) on I/O pin. + * @note The VrefInt output can be routed to any I/O in group 3: + * - For Cat.1 and Cat.2 devices: CH8 (PB0) or CH9 (PB1). + * - For Cat.3 devices: CH8 (PB0), CH9 (PB1) or CH0b (PB2). + * - For Cat.4 and Cat.5 devices: CH8 (PB0), CH9 (PB1), CH0b (PB2), + * CH1b (PF11) or CH2b (PF12). + * Note: Comparator peripheral clock must be preliminarily enabled. + * Refer to function "LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_COMP)". + * Note: In addition with this macro, VrefInt output buffer must be + * connected to the selected I/O pin. Refer to functions + * "LL_RI_EnableSwitchControlMode()" and "LL_RI_CloseIOSwitchLinkedToADC()". + * @note VrefInt output enable: Internal reference voltage connected to I/O group 3 + * VrefInt output disable: Internal reference voltage disconnected from I/O group 3 + * @rmtoll COMP_CSR VREFOUTEN LL_VREFOUT_Enable + * @retval None + */ +__STATIC_INLINE void LL_VREFOUT_Enable(void) +{ + SET_BIT(COMP->CSR, COMP_CSR_VREFOUTEN); +} + +/** + * @brief Disable the output of internal reference voltage (VrefInt) on I/O pin. + * @rmtoll COMP_CSR VREFOUTEN LL_VREFOUT_Disable + * @retval None + */ +__STATIC_INLINE void LL_VREFOUT_Disable(void) +{ + CLEAR_BIT(COMP->CSR, COMP_CSR_VREFOUTEN); +} + +/** + * @brief Check if output of internal reference voltage (VrefInt) is connected to I/O pin. + * @rmtoll COMP_CSR VREFOUTEN LL_VREFOUT_IsEnabled + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_VREFOUT_IsEnabled(void) +{ + return ((READ_BIT(COMP->CSR, COMP_CSR_VREFOUTEN) == COMP_CSR_VREFOUTEN) ? 1UL : 0UL); +} + +/** + * @} + */ +#endif /* COMP_CSR_VREFOUTEN */ + +/** @defgroup SYSTEM_LL_EF_RI RI + * @{ + */ + +/** + * @brief Configures the routing interface to map Input Capture x of TIMx to a selected I/O pin. + * @rmtoll RI_ICR IC1OS LL_RI_SetRemapInputCapture_TIM\n + * RI_ICR IC2OS LL_RI_SetRemapInputCapture_TIM\n + * RI_ICR IC3OS LL_RI_SetRemapInputCapture_TIM\n + * RI_ICR IC4OS LL_RI_SetRemapInputCapture_TIM\n + * RI_ICR TIM LL_RI_SetRemapInputCapture_TIM\n + * RI_ICR IC1 LL_RI_SetRemapInputCapture_TIM\n + * RI_ICR IC2 LL_RI_SetRemapInputCapture_TIM\n + * RI_ICR IC3 LL_RI_SetRemapInputCapture_TIM\n + * RI_ICR IC4 LL_RI_SetRemapInputCapture_TIM + * @param TIM_Select This parameter can be one of the following values: + * @arg @ref LL_RI_TIM_SELECT_NONE + * @arg @ref LL_RI_TIM_SELECT_TIM2 + * @arg @ref LL_RI_TIM_SELECT_TIM3 + * @arg @ref LL_RI_TIM_SELECT_TIM4 + * @param InputCaptureChannel This parameter can be one of the following values: + * @arg @ref LL_RI_INPUTCAPTURE_1 + * @arg @ref LL_RI_INPUTCAPTURE_2 + * @arg @ref LL_RI_INPUTCAPTURE_3 + * @arg @ref LL_RI_INPUTCAPTURE_4 + * @param Input This parameter can be one of the following values: + * @arg @ref LL_RI_INPUTCAPTUREROUTING_0 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_1 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_2 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_3 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_4 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_5 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_6 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_7 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_8 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_9 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_10 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_11 + * @arg @ref LL_RI_INPUTCAPTUREROUTING_12 (*) + * @arg @ref LL_RI_INPUTCAPTUREROUTING_13 (*) + * @arg @ref LL_RI_INPUTCAPTUREROUTING_14 (*) + * @arg @ref LL_RI_INPUTCAPTUREROUTING_15 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RI_SetRemapInputCapture_TIM(uint32_t TIM_Select, uint32_t InputCaptureChannel, uint32_t Input) +{ + MODIFY_REG(RI->ICR, + RI_ICR_TIM | (InputCaptureChannel & (RI_ICR_IC4 | RI_ICR_IC3 | RI_ICR_IC2 | RI_ICR_IC1)) | (InputCaptureChannel & (RI_ICR_IC4OS | RI_ICR_IC3OS | RI_ICR_IC2OS | RI_ICR_IC1OS)), + TIM_Select | (InputCaptureChannel & (RI_ICR_IC4 | RI_ICR_IC3 | RI_ICR_IC2 | RI_ICR_IC1)) | (Input << POSITION_VAL(InputCaptureChannel))); +} + +/** + * @brief Disable the TIM Input capture remap (select the standard AF) + * @rmtoll RI_ICR IC1 LL_RI_DisableRemapInputCapture_TIM\n + * RI_ICR IC2 LL_RI_DisableRemapInputCapture_TIM\n + * RI_ICR IC3 LL_RI_DisableRemapInputCapture_TIM\n + * RI_ICR IC4 LL_RI_DisableRemapInputCapture_TIM + * @param InputCaptureChannel This parameter can be a combination of the following values: + * @arg @ref LL_RI_INPUTCAPTURE_1 + * @arg @ref LL_RI_INPUTCAPTURE_2 + * @arg @ref LL_RI_INPUTCAPTURE_3 + * @arg @ref LL_RI_INPUTCAPTURE_4 + * @retval None + */ +__STATIC_INLINE void LL_RI_DisableRemapInputCapture_TIM(uint32_t InputCaptureChannel) +{ + CLEAR_BIT(RI->ICR, (InputCaptureChannel & (RI_ICR_IC4 | RI_ICR_IC3 | RI_ICR_IC2 | RI_ICR_IC1))); +} + +/** + * @brief Close the routing interface Input Output switches linked to ADC. + * @rmtoll RI_ASCR1 CH LL_RI_CloseIOSwitchLinkedToADC\n + * RI_ASCR1 VCOMP LL_RI_CloseIOSwitchLinkedToADC + * @param IOSwitch This parameter can be a combination of the following values: + * @arg @ref LL_RI_IOSWITCH_CH0 + * @arg @ref LL_RI_IOSWITCH_CH1 + * @arg @ref LL_RI_IOSWITCH_CH2 + * @arg @ref LL_RI_IOSWITCH_CH3 + * @arg @ref LL_RI_IOSWITCH_CH4 + * @arg @ref LL_RI_IOSWITCH_CH5 + * @arg @ref LL_RI_IOSWITCH_CH6 + * @arg @ref LL_RI_IOSWITCH_CH7 + * @arg @ref LL_RI_IOSWITCH_CH8 + * @arg @ref LL_RI_IOSWITCH_CH9 + * @arg @ref LL_RI_IOSWITCH_CH10 + * @arg @ref LL_RI_IOSWITCH_CH11 + * @arg @ref LL_RI_IOSWITCH_CH12 + * @arg @ref LL_RI_IOSWITCH_CH13 + * @arg @ref LL_RI_IOSWITCH_CH14 + * @arg @ref LL_RI_IOSWITCH_CH15 + * @arg @ref LL_RI_IOSWITCH_CH18 + * @arg @ref LL_RI_IOSWITCH_CH19 + * @arg @ref LL_RI_IOSWITCH_CH20 + * @arg @ref LL_RI_IOSWITCH_CH21 + * @arg @ref LL_RI_IOSWITCH_CH22 + * @arg @ref LL_RI_IOSWITCH_CH23 + * @arg @ref LL_RI_IOSWITCH_CH24 + * @arg @ref LL_RI_IOSWITCH_CH25 + * @arg @ref LL_RI_IOSWITCH_VCOMP + * @arg @ref LL_RI_IOSWITCH_CH27 (*) + * @arg @ref LL_RI_IOSWITCH_CH28 (*) + * @arg @ref LL_RI_IOSWITCH_CH29 (*) + * @arg @ref LL_RI_IOSWITCH_CH30 (*) + * @arg @ref LL_RI_IOSWITCH_CH31 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RI_CloseIOSwitchLinkedToADC(uint32_t IOSwitch) +{ + SET_BIT(RI->ASCR1, IOSwitch); +} + +/** + * @brief Open the routing interface Input Output switches linked to ADC. + * @rmtoll RI_ASCR1 CH LL_RI_OpenIOSwitchLinkedToADC\n + * RI_ASCR1 VCOMP LL_RI_OpenIOSwitchLinkedToADC + * @param IOSwitch This parameter can be a combination of the following values: + * @arg @ref LL_RI_IOSWITCH_CH0 + * @arg @ref LL_RI_IOSWITCH_CH1 + * @arg @ref LL_RI_IOSWITCH_CH2 + * @arg @ref LL_RI_IOSWITCH_CH3 + * @arg @ref LL_RI_IOSWITCH_CH4 + * @arg @ref LL_RI_IOSWITCH_CH5 + * @arg @ref LL_RI_IOSWITCH_CH6 + * @arg @ref LL_RI_IOSWITCH_CH7 + * @arg @ref LL_RI_IOSWITCH_CH8 + * @arg @ref LL_RI_IOSWITCH_CH9 + * @arg @ref LL_RI_IOSWITCH_CH10 + * @arg @ref LL_RI_IOSWITCH_CH11 + * @arg @ref LL_RI_IOSWITCH_CH12 + * @arg @ref LL_RI_IOSWITCH_CH13 + * @arg @ref LL_RI_IOSWITCH_CH14 + * @arg @ref LL_RI_IOSWITCH_CH15 + * @arg @ref LL_RI_IOSWITCH_CH18 + * @arg @ref LL_RI_IOSWITCH_CH19 + * @arg @ref LL_RI_IOSWITCH_CH20 + * @arg @ref LL_RI_IOSWITCH_CH21 + * @arg @ref LL_RI_IOSWITCH_CH22 + * @arg @ref LL_RI_IOSWITCH_CH23 + * @arg @ref LL_RI_IOSWITCH_CH24 + * @arg @ref LL_RI_IOSWITCH_CH25 + * @arg @ref LL_RI_IOSWITCH_VCOMP + * @arg @ref LL_RI_IOSWITCH_CH27 (*) + * @arg @ref LL_RI_IOSWITCH_CH28 (*) + * @arg @ref LL_RI_IOSWITCH_CH29 (*) + * @arg @ref LL_RI_IOSWITCH_CH30 (*) + * @arg @ref LL_RI_IOSWITCH_CH31 (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RI_OpenIOSwitchLinkedToADC(uint32_t IOSwitch) +{ + CLEAR_BIT(RI->ASCR1, IOSwitch); +} + +/** + * @brief Enable the switch control mode. + * @rmtoll RI_ASCR1 SCM LL_RI_EnableSwitchControlMode + * @retval None + */ +__STATIC_INLINE void LL_RI_EnableSwitchControlMode(void) +{ + SET_BIT(RI->ASCR1, RI_ASCR1_SCM); +} + +/** + * @brief Disable the switch control mode. + * @rmtoll RI_ASCR1 SCM LL_RI_DisableSwitchControlMode + * @retval None + */ +__STATIC_INLINE void LL_RI_DisableSwitchControlMode(void) +{ + CLEAR_BIT(RI->ASCR1, RI_ASCR1_SCM); +} + +/** + * @brief Close the routing interface Input Output switches not linked to ADC. + * @rmtoll RI_ASCR2 GR10_1 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR10_2 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR10_3 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR10_4 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR6_1 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR6_2 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR5_1 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR5_2 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR5_3 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR4_1 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR4_2 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR4_3 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR4_4 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH0b LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH1b LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH2b LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH3b LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH6b LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH7b LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH8b LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH9b LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH10b LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH11b LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH12b LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR6_3 LL_RI_CloseIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR6_4 LL_RI_CloseIOSwitchNotLinkedToADC + * @param IOSwitch This parameter can be a combination of the following values: + * @arg @ref LL_RI_IOSWITCH_GR10_1 + * @arg @ref LL_RI_IOSWITCH_GR10_2 + * @arg @ref LL_RI_IOSWITCH_GR10_3 + * @arg @ref LL_RI_IOSWITCH_GR10_4 + * @arg @ref LL_RI_IOSWITCH_GR6_1 + * @arg @ref LL_RI_IOSWITCH_GR6_2 + * @arg @ref LL_RI_IOSWITCH_GR5_1 + * @arg @ref LL_RI_IOSWITCH_GR5_2 + * @arg @ref LL_RI_IOSWITCH_GR5_3 + * @arg @ref LL_RI_IOSWITCH_GR4_1 + * @arg @ref LL_RI_IOSWITCH_GR4_2 + * @arg @ref LL_RI_IOSWITCH_GR4_3 + * @arg @ref LL_RI_IOSWITCH_CH0b (*) + * @arg @ref LL_RI_IOSWITCH_CH1b (*) + * @arg @ref LL_RI_IOSWITCH_CH2b (*) + * @arg @ref LL_RI_IOSWITCH_CH3b (*) + * @arg @ref LL_RI_IOSWITCH_CH6b (*) + * @arg @ref LL_RI_IOSWITCH_CH7b (*) + * @arg @ref LL_RI_IOSWITCH_CH8b (*) + * @arg @ref LL_RI_IOSWITCH_CH9b (*) + * @arg @ref LL_RI_IOSWITCH_CH10b (*) + * @arg @ref LL_RI_IOSWITCH_CH11b (*) + * @arg @ref LL_RI_IOSWITCH_CH12b (*) + * @arg @ref LL_RI_IOSWITCH_GR6_3 + * @arg @ref LL_RI_IOSWITCH_GR6_4 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RI_CloseIOSwitchNotLinkedToADC(uint32_t IOSwitch) +{ + SET_BIT(RI->ASCR2, IOSwitch); +} + +/** + * @brief Open the routing interface Input Output switches not linked to ADC. + * @rmtoll RI_ASCR2 GR10_1 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR10_2 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR10_3 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR10_4 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR6_1 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR6_2 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR5_1 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR5_2 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR5_3 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR4_1 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR4_2 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR4_3 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR4_4 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH0b LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH1b LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH2b LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH3b LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH6b LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH7b LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH8b LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH9b LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH10b LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH11b LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 CH12b LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR6_3 LL_RI_OpenIOSwitchNotLinkedToADC\n + * RI_ASCR2 GR6_4 LL_RI_OpenIOSwitchNotLinkedToADC + * @param IOSwitch This parameter can be a combination of the following values: + * @arg @ref LL_RI_IOSWITCH_GR10_1 + * @arg @ref LL_RI_IOSWITCH_GR10_2 + * @arg @ref LL_RI_IOSWITCH_GR10_3 + * @arg @ref LL_RI_IOSWITCH_GR10_4 + * @arg @ref LL_RI_IOSWITCH_GR6_1 + * @arg @ref LL_RI_IOSWITCH_GR6_2 + * @arg @ref LL_RI_IOSWITCH_GR5_1 + * @arg @ref LL_RI_IOSWITCH_GR5_2 + * @arg @ref LL_RI_IOSWITCH_GR5_3 + * @arg @ref LL_RI_IOSWITCH_GR4_1 + * @arg @ref LL_RI_IOSWITCH_GR4_2 + * @arg @ref LL_RI_IOSWITCH_GR4_3 + * @arg @ref LL_RI_IOSWITCH_CH0b (*) + * @arg @ref LL_RI_IOSWITCH_CH1b (*) + * @arg @ref LL_RI_IOSWITCH_CH2b (*) + * @arg @ref LL_RI_IOSWITCH_CH3b (*) + * @arg @ref LL_RI_IOSWITCH_CH6b (*) + * @arg @ref LL_RI_IOSWITCH_CH7b (*) + * @arg @ref LL_RI_IOSWITCH_CH8b (*) + * @arg @ref LL_RI_IOSWITCH_CH9b (*) + * @arg @ref LL_RI_IOSWITCH_CH10b (*) + * @arg @ref LL_RI_IOSWITCH_CH11b (*) + * @arg @ref LL_RI_IOSWITCH_CH12b (*) + * @arg @ref LL_RI_IOSWITCH_GR6_3 + * @arg @ref LL_RI_IOSWITCH_GR6_4 + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_RI_OpenIOSwitchNotLinkedToADC(uint32_t IOSwitch) +{ + CLEAR_BIT(RI->ASCR2, IOSwitch); +} + +/** + * @brief Enable Hysteresis of the input schmitt trigger of the port X + * @rmtoll RI_HYSCR1 PA LL_RI_EnableHysteresis\n + * RI_HYSCR1 PB LL_RI_EnableHysteresis\n + * RI_HYSCR1 PC LL_RI_EnableHysteresis\n + * RI_HYSCR1 PD LL_RI_EnableHysteresis\n + * RI_HYSCR1 PE LL_RI_EnableHysteresis\n + * RI_HYSCR1 PF LL_RI_EnableHysteresis\n + * RI_HYSCR1 PG LL_RI_EnableHysteresis\n + * RI_HYSCR2 PA LL_RI_EnableHysteresis\n + * RI_HYSCR2 PB LL_RI_EnableHysteresis\n + * RI_HYSCR2 PC LL_RI_EnableHysteresis\n + * RI_HYSCR2 PD LL_RI_EnableHysteresis\n + * RI_HYSCR2 PE LL_RI_EnableHysteresis\n + * RI_HYSCR2 PF LL_RI_EnableHysteresis\n + * RI_HYSCR2 PG LL_RI_EnableHysteresis\n + * RI_HYSCR3 PA LL_RI_EnableHysteresis\n + * RI_HYSCR3 PB LL_RI_EnableHysteresis\n + * RI_HYSCR3 PC LL_RI_EnableHysteresis\n + * RI_HYSCR3 PD LL_RI_EnableHysteresis\n + * RI_HYSCR3 PE LL_RI_EnableHysteresis\n + * RI_HYSCR3 PF LL_RI_EnableHysteresis\n + * RI_HYSCR3 PG LL_RI_EnableHysteresis\n + * RI_HYSCR4 PA LL_RI_EnableHysteresis\n + * RI_HYSCR4 PB LL_RI_EnableHysteresis\n + * RI_HYSCR4 PC LL_RI_EnableHysteresis\n + * RI_HYSCR4 PD LL_RI_EnableHysteresis\n + * RI_HYSCR4 PE LL_RI_EnableHysteresis\n + * RI_HYSCR4 PF LL_RI_EnableHysteresis\n + * RI_HYSCR4 PG LL_RI_EnableHysteresis + * @param Port This parameter can be one of the following values: + * @arg @ref LL_RI_HSYTERESIS_PORT_A + * @arg @ref LL_RI_HSYTERESIS_PORT_B + * @arg @ref LL_RI_HSYTERESIS_PORT_C + * @arg @ref LL_RI_HSYTERESIS_PORT_D + * @arg @ref LL_RI_HSYTERESIS_PORT_E (*) + * @arg @ref LL_RI_HSYTERESIS_PORT_F (*) + * @arg @ref LL_RI_HSYTERESIS_PORT_G (*) + * + * (*) value not defined in all devices. + * @param Pin This parameter can be a combination of the following values: + * @arg @ref LL_RI_PIN_0 + * @arg @ref LL_RI_PIN_1 + * @arg @ref LL_RI_PIN_2 + * @arg @ref LL_RI_PIN_3 + * @arg @ref LL_RI_PIN_4 + * @arg @ref LL_RI_PIN_5 + * @arg @ref LL_RI_PIN_6 + * @arg @ref LL_RI_PIN_7 + * @arg @ref LL_RI_PIN_8 + * @arg @ref LL_RI_PIN_9 + * @arg @ref LL_RI_PIN_10 + * @arg @ref LL_RI_PIN_11 + * @arg @ref LL_RI_PIN_12 + * @arg @ref LL_RI_PIN_13 + * @arg @ref LL_RI_PIN_14 + * @arg @ref LL_RI_PIN_15 + * @arg @ref LL_RI_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_RI_EnableHysteresis(uint32_t Port, uint32_t Pin) +{ + __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->HYSCR1) + (Port >> 1U)); + CLEAR_BIT(*reg, Pin << (16U * (Port & 1U))); +} + +/** + * @brief Disable Hysteresis of the input schmitt trigger of the port X + * @rmtoll RI_HYSCR1 PA LL_RI_DisableHysteresis\n + * RI_HYSCR1 PB LL_RI_DisableHysteresis\n + * RI_HYSCR1 PC LL_RI_DisableHysteresis\n + * RI_HYSCR1 PD LL_RI_DisableHysteresis\n + * RI_HYSCR1 PE LL_RI_DisableHysteresis\n + * RI_HYSCR1 PF LL_RI_DisableHysteresis\n + * RI_HYSCR1 PG LL_RI_DisableHysteresis\n + * RI_HYSCR2 PA LL_RI_DisableHysteresis\n + * RI_HYSCR2 PB LL_RI_DisableHysteresis\n + * RI_HYSCR2 PC LL_RI_DisableHysteresis\n + * RI_HYSCR2 PD LL_RI_DisableHysteresis\n + * RI_HYSCR2 PE LL_RI_DisableHysteresis\n + * RI_HYSCR2 PF LL_RI_DisableHysteresis\n + * RI_HYSCR2 PG LL_RI_DisableHysteresis\n + * RI_HYSCR3 PA LL_RI_DisableHysteresis\n + * RI_HYSCR3 PB LL_RI_DisableHysteresis\n + * RI_HYSCR3 PC LL_RI_DisableHysteresis\n + * RI_HYSCR3 PD LL_RI_DisableHysteresis\n + * RI_HYSCR3 PE LL_RI_DisableHysteresis\n + * RI_HYSCR3 PF LL_RI_DisableHysteresis\n + * RI_HYSCR3 PG LL_RI_DisableHysteresis\n + * RI_HYSCR4 PA LL_RI_DisableHysteresis\n + * RI_HYSCR4 PB LL_RI_DisableHysteresis\n + * RI_HYSCR4 PC LL_RI_DisableHysteresis\n + * RI_HYSCR4 PD LL_RI_DisableHysteresis\n + * RI_HYSCR4 PE LL_RI_DisableHysteresis\n + * RI_HYSCR4 PF LL_RI_DisableHysteresis\n + * RI_HYSCR4 PG LL_RI_DisableHysteresis + * @param Port This parameter can be one of the following values: + * @arg @ref LL_RI_HSYTERESIS_PORT_A + * @arg @ref LL_RI_HSYTERESIS_PORT_B + * @arg @ref LL_RI_HSYTERESIS_PORT_C + * @arg @ref LL_RI_HSYTERESIS_PORT_D + * @arg @ref LL_RI_HSYTERESIS_PORT_E (*) + * @arg @ref LL_RI_HSYTERESIS_PORT_F (*) + * @arg @ref LL_RI_HSYTERESIS_PORT_G (*) + * + * (*) value not defined in all devices. + * @param Pin This parameter can be a combination of the following values: + * @arg @ref LL_RI_PIN_0 + * @arg @ref LL_RI_PIN_1 + * @arg @ref LL_RI_PIN_2 + * @arg @ref LL_RI_PIN_3 + * @arg @ref LL_RI_PIN_4 + * @arg @ref LL_RI_PIN_5 + * @arg @ref LL_RI_PIN_6 + * @arg @ref LL_RI_PIN_7 + * @arg @ref LL_RI_PIN_8 + * @arg @ref LL_RI_PIN_9 + * @arg @ref LL_RI_PIN_10 + * @arg @ref LL_RI_PIN_11 + * @arg @ref LL_RI_PIN_12 + * @arg @ref LL_RI_PIN_13 + * @arg @ref LL_RI_PIN_14 + * @arg @ref LL_RI_PIN_15 + * @arg @ref LL_RI_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_RI_DisableHysteresis(uint32_t Port, uint32_t Pin) +{ + __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->HYSCR1) + ((Port >> 1U) << 2U)); + SET_BIT(*reg, Pin << (16U * (Port & 1U))); +} + +#if defined(RI_ASMR1_PA) +/** + * @brief Control analog switches of port X through the ADC interface or RI_ASCRx registers. + * @rmtoll RI_ASMR1 PA LL_RI_ControlSwitchByADC\n + * RI_ASMR1 PB LL_RI_ControlSwitchByADC\n + * RI_ASMR1 PC LL_RI_ControlSwitchByADC\n + * RI_ASMR1 PF LL_RI_ControlSwitchByADC\n + * RI_ASMR1 PG LL_RI_ControlSwitchByADC\n + * RI_ASMR2 PA LL_RI_ControlSwitchByADC\n + * RI_ASMR2 PB LL_RI_ControlSwitchByADC\n + * RI_ASMR2 PC LL_RI_ControlSwitchByADC\n + * RI_ASMR2 PF LL_RI_ControlSwitchByADC\n + * RI_ASMR2 PG LL_RI_ControlSwitchByADC\n + * RI_ASMR3 PA LL_RI_ControlSwitchByADC\n + * RI_ASMR3 PB LL_RI_ControlSwitchByADC\n + * RI_ASMR3 PC LL_RI_ControlSwitchByADC\n + * RI_ASMR3 PF LL_RI_ControlSwitchByADC\n + * RI_ASMR3 PG LL_RI_ControlSwitchByADC\n + * RI_ASMR4 PA LL_RI_ControlSwitchByADC\n + * RI_ASMR4 PB LL_RI_ControlSwitchByADC\n + * RI_ASMR4 PC LL_RI_ControlSwitchByADC\n + * RI_ASMR4 PF LL_RI_ControlSwitchByADC\n + * RI_ASMR4 PG LL_RI_ControlSwitchByADC\n + * RI_ASMR5 PA LL_RI_ControlSwitchByADC\n + * RI_ASMR5 PB LL_RI_ControlSwitchByADC\n + * RI_ASMR5 PC LL_RI_ControlSwitchByADC\n + * RI_ASMR5 PF LL_RI_ControlSwitchByADC\n + * RI_ASMR5 PG LL_RI_ControlSwitchByADC + * @param Port This parameter can be one of the following values: + * @arg @ref LL_RI_PORT_A + * @arg @ref LL_RI_PORT_B + * @arg @ref LL_RI_PORT_C + * @arg @ref LL_RI_PORT_F (*) + * @arg @ref LL_RI_PORT_G (*) + * + * (*) value not defined in all devices. + * @param Pin This parameter can be a combination of the following values: + * @arg @ref LL_RI_PIN_0 + * @arg @ref LL_RI_PIN_1 + * @arg @ref LL_RI_PIN_2 + * @arg @ref LL_RI_PIN_3 + * @arg @ref LL_RI_PIN_4 + * @arg @ref LL_RI_PIN_5 + * @arg @ref LL_RI_PIN_6 + * @arg @ref LL_RI_PIN_7 + * @arg @ref LL_RI_PIN_8 + * @arg @ref LL_RI_PIN_9 + * @arg @ref LL_RI_PIN_10 + * @arg @ref LL_RI_PIN_11 + * @arg @ref LL_RI_PIN_12 + * @arg @ref LL_RI_PIN_13 + * @arg @ref LL_RI_PIN_14 + * @arg @ref LL_RI_PIN_15 + * @arg @ref LL_RI_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_RI_ControlSwitchByADC(uint32_t Port, uint32_t Pin) +{ + __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->ASMR1) + ((Port * 3U) << 2)); + CLEAR_BIT(*reg, Pin); +} +#endif /* RI_ASMR1_PA */ + +#if defined(RI_ASMR1_PA) +/** + * @brief Control analog switches of port X by the timer OC. + * @rmtoll RI_ASMR1 PA LL_RI_ControlSwitchByTIM\n + * RI_ASMR1 PB LL_RI_ControlSwitchByTIM\n + * RI_ASMR1 PC LL_RI_ControlSwitchByTIM\n + * RI_ASMR1 PF LL_RI_ControlSwitchByTIM\n + * RI_ASMR1 PG LL_RI_ControlSwitchByTIM\n + * RI_ASMR2 PA LL_RI_ControlSwitchByTIM\n + * RI_ASMR2 PB LL_RI_ControlSwitchByTIM\n + * RI_ASMR2 PC LL_RI_ControlSwitchByTIM\n + * RI_ASMR2 PF LL_RI_ControlSwitchByTIM\n + * RI_ASMR2 PG LL_RI_ControlSwitchByTIM\n + * RI_ASMR3 PA LL_RI_ControlSwitchByTIM\n + * RI_ASMR3 PB LL_RI_ControlSwitchByTIM\n + * RI_ASMR3 PC LL_RI_ControlSwitchByTIM\n + * RI_ASMR3 PF LL_RI_ControlSwitchByTIM\n + * RI_ASMR3 PG LL_RI_ControlSwitchByTIM\n + * RI_ASMR4 PA LL_RI_ControlSwitchByTIM\n + * RI_ASMR4 PB LL_RI_ControlSwitchByTIM\n + * RI_ASMR4 PC LL_RI_ControlSwitchByTIM\n + * RI_ASMR4 PF LL_RI_ControlSwitchByTIM\n + * RI_ASMR4 PG LL_RI_ControlSwitchByTIM\n + * RI_ASMR5 PA LL_RI_ControlSwitchByTIM\n + * RI_ASMR5 PB LL_RI_ControlSwitchByTIM\n + * RI_ASMR5 PC LL_RI_ControlSwitchByTIM\n + * RI_ASMR5 PF LL_RI_ControlSwitchByTIM\n + * RI_ASMR5 PG LL_RI_ControlSwitchByTIM + * @param Port This parameter can be one of the following values: + * @arg @ref LL_RI_PORT_A + * @arg @ref LL_RI_PORT_B + * @arg @ref LL_RI_PORT_C + * @arg @ref LL_RI_PORT_F (*) + * @arg @ref LL_RI_PORT_G (*) + * + * (*) value not defined in all devices. + * @param Pin This parameter can be a combination of the following values: + * @arg @ref LL_RI_PIN_0 + * @arg @ref LL_RI_PIN_1 + * @arg @ref LL_RI_PIN_2 + * @arg @ref LL_RI_PIN_3 + * @arg @ref LL_RI_PIN_4 + * @arg @ref LL_RI_PIN_5 + * @arg @ref LL_RI_PIN_6 + * @arg @ref LL_RI_PIN_7 + * @arg @ref LL_RI_PIN_8 + * @arg @ref LL_RI_PIN_9 + * @arg @ref LL_RI_PIN_10 + * @arg @ref LL_RI_PIN_11 + * @arg @ref LL_RI_PIN_12 + * @arg @ref LL_RI_PIN_13 + * @arg @ref LL_RI_PIN_14 + * @arg @ref LL_RI_PIN_15 + * @arg @ref LL_RI_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_RI_ControlSwitchByTIM(uint32_t Port, uint32_t Pin) +{ + __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->ASMR1) + ((Port * 3U) << 2)); + SET_BIT(*reg, Pin); +} +#endif /* RI_ASMR1_PA */ + +#if defined(RI_CMR1_PA) +/** + * @brief Mask the input of port X during the capacitive sensing acquisition. + * @rmtoll RI_CMR1 PA LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR1 PB LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR1 PC LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR1 PF LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR1 PG LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR2 PA LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR2 PB LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR2 PC LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR2 PF LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR2 PG LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR3 PA LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR3 PB LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR3 PC LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR3 PF LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR3 PG LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR4 PA LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR4 PB LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR4 PC LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR4 PF LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR4 PG LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR5 PA LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR5 PB LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR5 PC LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR5 PF LL_RI_MaskChannelDuringAcquisition\n + * RI_CMR5 PG LL_RI_MaskChannelDuringAcquisition + * @param Port This parameter can be one of the following values: + * @arg @ref LL_RI_PORT_A + * @arg @ref LL_RI_PORT_B + * @arg @ref LL_RI_PORT_C + * @arg @ref LL_RI_PORT_F (*) + * @arg @ref LL_RI_PORT_G (*) + * + * (*) value not defined in all devices. + * @param Pin This parameter can be a combination of the following values: + * @arg @ref LL_RI_PIN_0 + * @arg @ref LL_RI_PIN_1 + * @arg @ref LL_RI_PIN_2 + * @arg @ref LL_RI_PIN_3 + * @arg @ref LL_RI_PIN_4 + * @arg @ref LL_RI_PIN_5 + * @arg @ref LL_RI_PIN_6 + * @arg @ref LL_RI_PIN_7 + * @arg @ref LL_RI_PIN_8 + * @arg @ref LL_RI_PIN_9 + * @arg @ref LL_RI_PIN_10 + * @arg @ref LL_RI_PIN_11 + * @arg @ref LL_RI_PIN_12 + * @arg @ref LL_RI_PIN_13 + * @arg @ref LL_RI_PIN_14 + * @arg @ref LL_RI_PIN_15 + * @arg @ref LL_RI_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_RI_MaskChannelDuringAcquisition(uint32_t Port, uint32_t Pin) +{ + __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CMR1) + ((Port * 3U) << 2)); + CLEAR_BIT(*reg, Pin); +} +#endif /* RI_CMR1_PA */ + +#if defined(RI_CMR1_PA) +/** + * @brief Unmask the input of port X during the capacitive sensing acquisition. + * @rmtoll RI_CMR1 PA LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR1 PB LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR1 PC LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR1 PF LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR1 PG LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR2 PA LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR2 PB LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR2 PC LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR2 PF LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR2 PG LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR3 PA LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR3 PB LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR3 PC LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR3 PF LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR3 PG LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR4 PA LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR4 PB LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR4 PC LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR4 PF LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR4 PG LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR5 PA LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR5 PB LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR5 PC LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR5 PF LL_RI_UnmaskChannelDuringAcquisition\n + * RI_CMR5 PG LL_RI_UnmaskChannelDuringAcquisition + * @param Port This parameter can be one of the following values: + * @arg @ref LL_RI_PORT_A + * @arg @ref LL_RI_PORT_B + * @arg @ref LL_RI_PORT_C + * @arg @ref LL_RI_PORT_F (*) + * @arg @ref LL_RI_PORT_G (*) + * + * (*) value not defined in all devices. + * @param Pin This parameter can be a combination of the following values: + * @arg @ref LL_RI_PIN_0 + * @arg @ref LL_RI_PIN_1 + * @arg @ref LL_RI_PIN_2 + * @arg @ref LL_RI_PIN_3 + * @arg @ref LL_RI_PIN_4 + * @arg @ref LL_RI_PIN_5 + * @arg @ref LL_RI_PIN_6 + * @arg @ref LL_RI_PIN_7 + * @arg @ref LL_RI_PIN_8 + * @arg @ref LL_RI_PIN_9 + * @arg @ref LL_RI_PIN_10 + * @arg @ref LL_RI_PIN_11 + * @arg @ref LL_RI_PIN_12 + * @arg @ref LL_RI_PIN_13 + * @arg @ref LL_RI_PIN_14 + * @arg @ref LL_RI_PIN_15 + * @arg @ref LL_RI_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_RI_UnmaskChannelDuringAcquisition(uint32_t Port, uint32_t Pin) +{ + __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CMR1) + ((Port * 3U) << 2)); + SET_BIT(*reg, Pin); +} +#endif /* RI_CMR1_PA */ + +#if defined(RI_CICR1_PA) +/** + * @brief Identify channel for timer input capture + * @rmtoll RI_CICR1 PA LL_RI_IdentifyChannelIO\n + * RI_CICR1 PB LL_RI_IdentifyChannelIO\n + * RI_CICR1 PC LL_RI_IdentifyChannelIO\n + * RI_CICR1 PF LL_RI_IdentifyChannelIO\n + * RI_CICR1 PG LL_RI_IdentifyChannelIO\n + * RI_CICR2 PA LL_RI_IdentifyChannelIO\n + * RI_CICR2 PB LL_RI_IdentifyChannelIO\n + * RI_CICR2 PC LL_RI_IdentifyChannelIO\n + * RI_CICR2 PF LL_RI_IdentifyChannelIO\n + * RI_CICR2 PG LL_RI_IdentifyChannelIO\n + * RI_CICR3 PA LL_RI_IdentifyChannelIO\n + * RI_CICR3 PB LL_RI_IdentifyChannelIO\n + * RI_CICR3 PC LL_RI_IdentifyChannelIO\n + * RI_CICR3 PF LL_RI_IdentifyChannelIO\n + * RI_CICR3 PG LL_RI_IdentifyChannelIO\n + * RI_CICR4 PA LL_RI_IdentifyChannelIO\n + * RI_CICR4 PB LL_RI_IdentifyChannelIO\n + * RI_CICR4 PC LL_RI_IdentifyChannelIO\n + * RI_CICR4 PF LL_RI_IdentifyChannelIO\n + * RI_CICR4 PG LL_RI_IdentifyChannelIO\n + * RI_CICR5 PA LL_RI_IdentifyChannelIO\n + * RI_CICR5 PB LL_RI_IdentifyChannelIO\n + * RI_CICR5 PC LL_RI_IdentifyChannelIO\n + * RI_CICR5 PF LL_RI_IdentifyChannelIO\n + * RI_CICR5 PG LL_RI_IdentifyChannelIO + * @param Port This parameter can be one of the following values: + * @arg @ref LL_RI_PORT_A + * @arg @ref LL_RI_PORT_B + * @arg @ref LL_RI_PORT_C + * @arg @ref LL_RI_PORT_F (*) + * @arg @ref LL_RI_PORT_G (*) + * + * (*) value not defined in all devices. + * @param Pin This parameter can be a combination of the following values: + * @arg @ref LL_RI_PIN_0 + * @arg @ref LL_RI_PIN_1 + * @arg @ref LL_RI_PIN_2 + * @arg @ref LL_RI_PIN_3 + * @arg @ref LL_RI_PIN_4 + * @arg @ref LL_RI_PIN_5 + * @arg @ref LL_RI_PIN_6 + * @arg @ref LL_RI_PIN_7 + * @arg @ref LL_RI_PIN_8 + * @arg @ref LL_RI_PIN_9 + * @arg @ref LL_RI_PIN_10 + * @arg @ref LL_RI_PIN_11 + * @arg @ref LL_RI_PIN_12 + * @arg @ref LL_RI_PIN_13 + * @arg @ref LL_RI_PIN_14 + * @arg @ref LL_RI_PIN_15 + * @arg @ref LL_RI_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_RI_IdentifyChannelIO(uint32_t Port, uint32_t Pin) +{ + __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CICR1) + ((Port * 3U) << 2)); + CLEAR_BIT(*reg, Pin); +} +#endif /* RI_CICR1_PA */ + +#if defined(RI_CICR1_PA) +/** + * @brief Identify sampling capacitor for timer input capture + * @rmtoll RI_CICR1 PA LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR1 PB LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR1 PC LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR1 PF LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR1 PG LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR2 PA LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR2 PB LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR2 PC LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR2 PF LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR2 PG LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR3 PA LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR3 PB LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR3 PC LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR3 PF LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR3 PG LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR4 PA LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR4 PB LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR4 PC LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR4 PF LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR4 PG LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR5 PA LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR5 PB LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR5 PC LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR5 PF LL_RI_IdentifySamplingCapacitorIO\n + * RI_CICR5 PG LL_RI_IdentifySamplingCapacitorIO + * @param Port This parameter can be one of the following values: + * @arg @ref LL_RI_PORT_A + * @arg @ref LL_RI_PORT_B + * @arg @ref LL_RI_PORT_C + * @arg @ref LL_RI_PORT_F (*) + * @arg @ref LL_RI_PORT_G (*) + * + * (*) value not defined in all devices. + * @param Pin This parameter can be a combination of the following values: + * @arg @ref LL_RI_PIN_0 + * @arg @ref LL_RI_PIN_1 + * @arg @ref LL_RI_PIN_2 + * @arg @ref LL_RI_PIN_3 + * @arg @ref LL_RI_PIN_4 + * @arg @ref LL_RI_PIN_5 + * @arg @ref LL_RI_PIN_6 + * @arg @ref LL_RI_PIN_7 + * @arg @ref LL_RI_PIN_8 + * @arg @ref LL_RI_PIN_9 + * @arg @ref LL_RI_PIN_10 + * @arg @ref LL_RI_PIN_11 + * @arg @ref LL_RI_PIN_12 + * @arg @ref LL_RI_PIN_13 + * @arg @ref LL_RI_PIN_14 + * @arg @ref LL_RI_PIN_15 + * @arg @ref LL_RI_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_RI_IdentifySamplingCapacitorIO(uint32_t Port, uint32_t Pin) +{ + __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CICR1) + ((Port * 3U) << 2)); + SET_BIT(*reg, Pin); +} +#endif /* RI_CICR1_PA */ + +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EF_FLASH FLASH + * @{ + */ + +/** + * @brief Set FLASH Latency + * @note Latetency can be modified only when ACC64 is set. (through function @ref LL_FLASH_Enable64bitAccess) + * @rmtoll FLASH_ACR LATENCY LL_FLASH_SetLatency + * @param Latency This parameter can be one of the following values: + * @arg @ref LL_FLASH_LATENCY_0 + * @arg @ref LL_FLASH_LATENCY_1 + * @retval None + */ +__STATIC_INLINE void LL_FLASH_SetLatency(uint32_t Latency) +{ + MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, Latency); +} + +/** + * @brief Get FLASH Latency + * @rmtoll FLASH_ACR LATENCY LL_FLASH_GetLatency + * @retval Returned value can be one of the following values: + * @arg @ref LL_FLASH_LATENCY_0 + * @arg @ref LL_FLASH_LATENCY_1 + */ +__STATIC_INLINE uint32_t LL_FLASH_GetLatency(void) +{ + return (uint32_t)(READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY)); +} + +/** + * @brief Enable Prefetch + * @note Prefetch can be enabled only when ACC64 is set. (through function @ref LL_FLASH_Enable64bitAccess) + * @rmtoll FLASH_ACR PRFTEN LL_FLASH_EnablePrefetch + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnablePrefetch(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_PRFTEN); +} + +/** + * @brief Disable Prefetch + * @note Prefetch can be disabled only when ACC64 is set. (through function @ref LL_FLASH_Enable64bitAccess) + * @rmtoll FLASH_ACR PRFTEN LL_FLASH_DisablePrefetch + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisablePrefetch(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTEN); +} + +/** + * @brief Check if Prefetch buffer is enabled + * @rmtoll FLASH_ACR PRFTEN LL_FLASH_IsPrefetchEnabled + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_FLASH_IsPrefetchEnabled(void) +{ + return ((READ_BIT(FLASH->ACR, FLASH_ACR_PRFTEN) == FLASH_ACR_PRFTEN) ? 1UL : 0UL); +} + +/** + * @brief Enable 64-bit access + * @rmtoll FLASH_ACR ACC64 LL_FLASH_Enable64bitAccess + * @retval None + */ +__STATIC_INLINE void LL_FLASH_Enable64bitAccess(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_ACC64); +} + +/** + * @brief Disable 64-bit access + * @rmtoll FLASH_ACR ACC64 LL_FLASH_Disable64bitAccess + * @retval None + */ +__STATIC_INLINE void LL_FLASH_Disable64bitAccess(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_ACC64); +} + +/** + * @brief Check if 64-bit access is enabled + * @rmtoll FLASH_ACR ACC64 LL_FLASH_Is64bitAccessEnabled + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_FLASH_Is64bitAccessEnabled(void) +{ + return ((READ_BIT(FLASH->ACR, FLASH_ACR_ACC64) == FLASH_ACR_ACC64) ? 1UL : 0UL); +} + + +/** + * @brief Enable Flash Power-down mode during run mode or Low-power run mode + * @note Flash memory can be put in power-down mode only when the code is executed + * from RAM + * @note Flash must not be accessed when power down is enabled + * @note Flash must not be put in power-down while a program or an erase operation + * is on-going + * @rmtoll FLASH_ACR RUN_PD LL_FLASH_EnableRunPowerDown\n + * FLASH_PDKEYR PDKEY1 LL_FLASH_EnableRunPowerDown\n + * FLASH_PDKEYR PDKEY2 LL_FLASH_EnableRunPowerDown + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnableRunPowerDown(void) +{ + /* Following values must be written consecutively to unlock the RUN_PD bit in + FLASH_ACR */ + WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY1); + WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY2); + SET_BIT(FLASH->ACR, FLASH_ACR_RUN_PD); +} + +/** + * @brief Disable Flash Power-down mode during run mode or Low-power run mode + * @rmtoll FLASH_ACR RUN_PD LL_FLASH_DisableRunPowerDown\n + * FLASH_PDKEYR PDKEY1 LL_FLASH_DisableRunPowerDown\n + * FLASH_PDKEYR PDKEY2 LL_FLASH_DisableRunPowerDown + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisableRunPowerDown(void) +{ + /* Following values must be written consecutively to unlock the RUN_PD bit in + FLASH_ACR */ + WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY1); + WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY2); + CLEAR_BIT(FLASH->ACR, FLASH_ACR_RUN_PD); +} + +/** + * @brief Enable Flash Power-down mode during Sleep or Low-power sleep mode + * @note Flash must not be put in power-down while a program or an erase operation + * is on-going + * @rmtoll FLASH_ACR SLEEP_PD LL_FLASH_EnableSleepPowerDown + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnableSleepPowerDown(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD); +} + +/** + * @brief Disable Flash Power-down mode during Sleep or Low-power sleep mode + * @rmtoll FLASH_ACR SLEEP_PD LL_FLASH_DisableSleepPowerDown + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisableSleepPowerDown(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD); +} + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) || defined(RI) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_LL_SYSTEM_H */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_utils.h b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_utils.h new file mode 100644 index 0000000..262bdf1 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_ll_utils.h @@ -0,0 +1,270 @@ +/** + ****************************************************************************** + * @file stm32l1xx_ll_utils.h + * @author MCD Application Team + * @brief Header file of UTILS LL module. + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The LL UTILS driver contains a set of generic APIs that can be + used by user: + (+) Device electronic signature + (+) Timing functions + (+) PLL configuration functions + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_LL_UTILS_H +#define __STM32L1xx_LL_UTILS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx.h" + +/** @addtogroup STM32L1xx_LL_Driver + * @{ + */ + +/** @defgroup UTILS_LL UTILS + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup UTILS_LL_Private_Constants UTILS Private Constants + * @{ + */ + +/* Max delay can be used in LL_mDelay */ +#define LL_MAX_DELAY 0xFFFFFFFFU + +/** + * @brief Unique device ID register base address + */ +#define UID_BASE_ADDRESS UID_BASE + +/** + * @brief Flash size data register base address + */ +#define FLASHSIZE_BASE_ADDRESS FLASHSIZE_BASE + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup UTILS_LL_Private_Macros UTILS Private Macros + * @{ + */ +/** + * @} + */ +/* Exported types ------------------------------------------------------------*/ +/** @defgroup UTILS_LL_ES_INIT UTILS Exported structures + * @{ + */ +/** + * @brief UTILS PLL structure definition + */ +typedef struct +{ + uint32_t PLLMul; /*!< Multiplication factor for PLL VCO input clock. + This parameter can be a value of @ref RCC_LL_EC_PLL_MUL + + This feature can be modified afterwards using unitary function + @ref LL_RCC_PLL_ConfigDomain_SYS(). */ + + uint32_t PLLDiv; /*!< Division factor for PLL VCO output clock. + This parameter can be a value of @ref RCC_LL_EC_PLL_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_PLL_ConfigDomain_SYS(). */ +} LL_UTILS_PLLInitTypeDef; + +/** + * @brief UTILS System, AHB and APB buses clock configuration structure definition + */ +typedef struct +{ + uint32_t AHBCLKDivider; /*!< The AHB clock (HCLK) divider. This clock is derived from the system clock (SYSCLK). + This parameter can be a value of @ref RCC_LL_EC_SYSCLK_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_SetAHBPrescaler(). */ + + uint32_t APB1CLKDivider; /*!< The APB1 clock (PCLK1) divider. This clock is derived from the AHB clock (HCLK). + This parameter can be a value of @ref RCC_LL_EC_APB1_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_SetAPB1Prescaler(). */ + + uint32_t APB2CLKDivider; /*!< The APB2 clock (PCLK2) divider. This clock is derived from the AHB clock (HCLK). + This parameter can be a value of @ref RCC_LL_EC_APB2_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_SetAPB2Prescaler(). */ + +} LL_UTILS_ClkInitTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup UTILS_LL_Exported_Constants UTILS Exported Constants + * @{ + */ + +/** @defgroup UTILS_EC_HSE_BYPASS HSE Bypass activation + * @{ + */ +#define LL_UTILS_HSEBYPASS_OFF 0x00000000U /*!< HSE Bypass is not enabled */ +#define LL_UTILS_HSEBYPASS_ON 0x00000001U /*!< HSE Bypass is enabled */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup UTILS_LL_Exported_Functions UTILS Exported Functions + * @{ + */ + +/** @defgroup UTILS_EF_DEVICE_ELECTRONIC_SIGNATURE DEVICE ELECTRONIC SIGNATURE + * @{ + */ + +/** + * @brief Get Word0 of the unique device identifier (UID based on 96 bits) + * @retval UID[31:0] + */ +__STATIC_INLINE uint32_t LL_GetUID_Word0(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)UID_BASE_ADDRESS))); +} + +/** + * @brief Get Word1 of the unique device identifier (UID based on 96 bits) + * @retval UID[63:32] + */ +__STATIC_INLINE uint32_t LL_GetUID_Word1(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)(UID_BASE_ADDRESS + 0x04U)))); +} + +/** + * @brief Get Word2 of the unique device identifier (UID based on 96 bits) + * @retval UID[95:64] + */ +__STATIC_INLINE uint32_t LL_GetUID_Word2(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)(UID_BASE_ADDRESS + 0x14U)))); +} + +/** + * @brief Get Flash memory size + * @note For DEV_ID = 0x416 or 0x427 or 0x429 or 0x437, this field value indicates the Flash memory + * size of the device in Kbytes.\n + * Example: 0x0080 = 128 Kbytes.\n + * For DEV_ID = 0x436, the field value can be '0' or '1', with '0' for 384 Kbytes and '1' for 256 Kbytes. + * @note For DEV_ID = 0x429, only LSB part of F_SIZE: F_SIZE[7:0] is valid. The MSB part + * F_SIZE[15:8] is reserved and must be ignored. + * @retval FLASH_SIZE[15:0]: Flash memory size + */ +__STATIC_INLINE uint32_t LL_GetFlashSize(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)FLASHSIZE_BASE_ADDRESS)) & 0xFFFFU); +} + + +/** + * @} + */ + +/** @defgroup UTILS_LL_EF_DELAY DELAY + * @{ + */ + +/** + * @brief This function configures the Cortex-M SysTick source of the time base. + * @param HCLKFrequency HCLK frequency in Hz (can be calculated thanks to RCC helper macro) + * @note When a RTOS is used, it is recommended to avoid changing the SysTick + * configuration by calling this function, for a delay use rather osDelay RTOS service. + * @param Ticks Frequency of Ticks (Hz) + * @retval None + */ +__STATIC_INLINE void LL_InitTick(uint32_t HCLKFrequency, uint32_t Ticks) +{ + /* Configure the SysTick to have interrupt in 1ms time base */ + SysTick->LOAD = (uint32_t)((HCLKFrequency / Ticks) - 1UL); /* set reload register */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable the Systick Timer */ +} + +void LL_Init1msTick(uint32_t HCLKFrequency); +void LL_mDelay(uint32_t Delay); + +/** + * @} + */ + +/** @defgroup UTILS_EF_SYSTEM SYSTEM + * @{ + */ + +void LL_SetSystemCoreClock(uint32_t HCLKFrequency); +ErrorStatus LL_PLL_ConfigSystemClock_HSI(LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, + LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct); +ErrorStatus LL_PLL_ConfigSystemClock_HSE(uint32_t HSEFrequency, uint32_t HSEBypass, + LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct); +#if defined(FLASH_ACR_LATENCY) +ErrorStatus LL_SetFlashLatency(uint32_t Frequency); +#endif /* FLASH_ACR_LATENCY */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L1xx_LL_UTILS_H */ diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/LICENSE.txt b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/LICENSE.txt new file mode 100644 index 0000000..3edc4d1 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/LICENSE.txt @@ -0,0 +1,6 @@ +This software component is provided to you as part of a software package and +applicable license terms are in the Package_license file. If you received this +software component outside of a package or without applicable license terms, +the terms of the BSD-3-Clause license shall apply. +You may obtain a copy of the BSD-3-Clause at: +https://opensource.org/licenses/BSD-3-Clause diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/License.md b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/License.md new file mode 100644 index 0000000..f8a5385 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/License.md @@ -0,0 +1,3 @@ +# Copyright (c) 2017 STMicroelectronics + +This software component is licensed by STMicroelectronics under the **BSD 3-Clause** license. You may not use this file except in compliance with this license. You may obtain a copy of the license [here](https://opensource.org/licenses/BSD-3-Clause). \ No newline at end of file diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.c new file mode 100644 index 0000000..cf8ec0d --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.c @@ -0,0 +1,570 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal.c + * @author MCD Application Team + * @brief HAL module driver. + * This is the common part of the HAL initialization + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The common HAL driver contains a set of generic and common APIs that can be + used by the PPP peripheral drivers and the user to start using the HAL. + [..] + The HAL contains two APIs categories: + (+) Common HAL APIs + (+) Services HAL APIs + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @defgroup HAL HAL + * @brief HAL module driver. + * @{ + */ + +#ifdef HAL_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ + +/** @defgroup HAL_Private_Defines HAL Private Defines + * @{ + */ + +/** + * @brief STM32L1xx HAL Driver version number + */ +#define __STM32L1xx_HAL_VERSION_MAIN (0x01) /*!< [31:24] main version */ +#define __STM32L1xx_HAL_VERSION_SUB1 (0x04) /*!< [23:16] sub1 version */ +#define __STM32L1xx_HAL_VERSION_SUB2 (0x06) /*!< [15:8] sub2 version */ +#define __STM32L1xx_HAL_VERSION_RC (0x00) /*!< [7:0] release candidate */ +#define __STM32L1xx_HAL_VERSION ((__STM32L1xx_HAL_VERSION_MAIN << 24)\ + |(__STM32L1xx_HAL_VERSION_SUB1 << 16)\ + |(__STM32L1xx_HAL_VERSION_SUB2 << 8 )\ + |(__STM32L1xx_HAL_VERSION_RC)) + +#define IDCODE_DEVID_MASK (0x00000FFFU) + +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/* Exported variables --------------------------------------------------------*/ +/** @addtogroup HAL_Exported_Variables + * @{ + */ +__IO uint32_t uwTick; +uint32_t uwTickPrio = (1UL << __NVIC_PRIO_BITS); /* Invalid priority */ +uint32_t uwTickFreq = HAL_TICK_FREQ_DEFAULT; /* 1KHz */ +/** + * @} + */ + +/* 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: + (+) Initialize the Flash interface, the NVIC allocation and initial clock + configuration. It initializes the source of time base also when timeout + is needed and the backup domain when enabled. + (+) De-initialize common part of the HAL. + (+) Configure the time base source to have 1ms time base with a dedicated + Tick interrupt priority. + (++) SysTick timer is used by default as source of time base, but user + can eventually implement his proper time base source (a general purpose + timer for example or other time source), keeping in mind that Time base + duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and + handled in milliseconds basis. + (++) Time base configuration function (HAL_InitTick ()) is called automatically + at the beginning of the program after reset by HAL_Init() or at any time + when clock is configured, by HAL_RCC_ClockConfig(). + (++) Source of time base is configured to generate interrupts at regular + time intervals. Care must be taken if HAL_Delay() is called from a + peripheral ISR process, the Tick interrupt line must have higher priority + (numerically lower) than the peripheral interrupt. Otherwise the caller + ISR process will be blocked. + (++) functions affecting time base configurations are declared as __weak + to make override possible in case of other implementations in user file. + +@endverbatim + * @{ + */ + +/** + * @brief This function configures the Flash prefetch, + * configures time base source, NVIC and Low level hardware + * @note This function is called at the beginning of program after reset and before + * the clock configuration + * @note The time base configuration is based on MSI clock when exiting from Reset. + * Once done, time base tick start incrementing. + * In the default implementation,Systick is used as source of time base. + * the tick variable is incremented each 1ms in its ISR. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_Init(void) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Configure Flash prefetch */ +#if (PREFETCH_ENABLE != 0) + __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); +#endif /* PREFETCH_ENABLE */ + + /* Set Interrupt Group Priority */ + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); + + /* Use systick as time base source and configure 1ms tick (default clock after Reset is MSI) */ + if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK) + { + status = HAL_ERROR; + } + else + { + /* Init the low level hardware */ + HAL_MspInit(); + } + + /* Return function status */ + return status; +} + +/** + * @brief This function de-initializes common part of the HAL and stops the source + * of time base. + * @note This function is optional. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DeInit(void) +{ + /* Reset of all peripherals */ + __HAL_RCC_APB1_FORCE_RESET(); + __HAL_RCC_APB1_RELEASE_RESET(); + + __HAL_RCC_APB2_FORCE_RESET(); + __HAL_RCC_APB2_RELEASE_RESET(); + + __HAL_RCC_AHB_FORCE_RESET(); + __HAL_RCC_AHB_RELEASE_RESET(); + + /* De-Init the low level hardware */ + HAL_MspDeInit(); + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Initialize the MSP. + * @retval None + */ +__weak void HAL_MspInit(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitialize the MSP. + * @retval None + */ +__weak void HAL_MspDeInit(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_MspDeInit could be implemented in the user file + */ +} + +/** + * @brief This function configures the source of the time base: + * The time source is configured to have 1ms time base with a dedicated + * Tick interrupt priority. + * @note This function is called automatically at the beginning of program after + * reset by HAL_Init() or at any time when clock is reconfigured by HAL_RCC_ClockConfig(). + * @note In the default implementation, SysTick timer is the source of time base. + * It is used to generate interrupts at regular time intervals. + * Care must be taken if HAL_Delay() is called from a peripheral ISR process, + * The SysTick interrupt must have higher priority (numerically lower) + * than the peripheral interrupt. Otherwise the caller ISR process will be blocked. + * The function is declared as __weak to be overwritten in case of other + * implementation in user file. + * @param TickPriority Tick interrupt priority. + * @retval HAL status + */ +__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (uwTickFreq != 0U) + { + /*Configure the SysTick to have interrupt in 1ms time basis*/ + if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) == 0U) + { + /* Configure the SysTick IRQ priority */ + if (TickPriority < (1UL << __NVIC_PRIO_BITS)) + { + HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); + uwTickPrio = TickPriority; + } + else + { + status = HAL_ERROR; + } + } + else + { + status = HAL_ERROR; + } + } + else + { + status = HAL_ERROR; + } + + /* Return function status */ + return status; +} + +/** + * @} + */ + +/** @defgroup HAL_Exported_Functions_Group2 HAL Control functions + * @brief HAL Control functions + * +@verbatim + =============================================================================== + ##### HAL Control functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Provide a tick value in millisecond + (+) Provide a blocking delay in millisecond + (+) Suspend the time base source interrupt + (+) Resume the time base source interrupt + (+) Get the HAL API driver version + (+) Get the device identifier + (+) Get the device revision identifier + (+) Get the unique device identifier + +@endverbatim + * @{ + */ + +/** + * @brief This function is called to increment a global variable "uwTick" + * used as application time base. + * @note In the default implementation, this variable is incremented each 1ms + * in SysTick ISR. + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval None + */ +__weak void HAL_IncTick(void) +{ + uwTick += uwTickFreq; +} + +/** + * @brief Provide 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. + * @param Freq tick frequency + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SetTickFreq(uint32_t Freq) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t prevTickFreq; + + assert_param(IS_TICKFREQ(Freq)); + + if (uwTickFreq != Freq) + { + /* Back up uwTickFreq frequency */ + prevTickFreq = uwTickFreq; + + /* Update uwTickFreq global variable used by HAL_InitTick() */ + uwTickFreq = Freq; + + /* Apply the new tick Freq */ + status = HAL_InitTick(uwTickPrio); + + if (status != HAL_OK) + { + /* Restore previous tick frequency */ + uwTickFreq = prevTickFreq; + } + } + + return status; +} + +/** + * @brief Return tick frequency. + * @retval Tick frequency. + * Value of @ref HAL_TickFreqTypeDef. + */ +uint32_t HAL_GetTickFreq(void) +{ + return uwTickFreq; +} + +/** + * @brief This function provides minimum delay (in milliseconds) based + * on variable incremented. + * @note In the default implementation , SysTick timer is the source of time base. + * It is used to generate interrupts at regular time intervals where uwTick + * is incremented. + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @param Delay specifies the delay time length, in milliseconds. + * @retval None + */ +__weak void HAL_Delay(uint32_t Delay) +{ + uint32_t tickstart = HAL_GetTick(); + uint32_t wait = Delay; + + /* Add a period to guaranty minimum wait */ + if (wait < HAL_MAX_DELAY) + { + wait += (uint32_t)(uwTickFreq); + } + + while((HAL_GetTick() - tickstart) < wait) + { + } +} + +/** + * @brief Suspend the 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 the 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 Return the HAL revision + * @retval version: 0xXYZR (8bits for each decimal, R for RC) + */ +uint32_t HAL_GetHalVersion(void) +{ + return __STM32L1xx_HAL_VERSION; +} + +/** + * @brief Return the device revision identifier. + * @retval Device revision identifier + */ +uint32_t HAL_GetREVID(void) +{ + return((DBGMCU->IDCODE) >> 16U); +} + +/** + * @brief Return the device identifier. + * @retval Device identifier + */ +uint32_t HAL_GetDEVID(void) +{ + return((DBGMCU->IDCODE) & IDCODE_DEVID_MASK); +} + +/** + * @brief Return the first word of the unique device identifier (UID based on 96 bits) + * @retval Device identifier 31:0 bits + */ +uint32_t HAL_GetUIDw0(void) +{ + return(READ_REG(*((uint32_t *)UID_BASE))); +} + +/** + * @brief Return the second word of the unique device identifier (UID based on 96 bits) + * @retval Device identifier 63:32 bits + */ +uint32_t HAL_GetUIDw1(void) +{ + return(READ_REG(*((uint32_t *)(UID_BASE + 0x4U)))); +} + +/** + * @brief Return the third word of the unique device identifier (UID based on 96 bits) + * @retval Device identifier 95:64 bits + */ +uint32_t HAL_GetUIDw2(void) +{ + return(READ_REG(*((uint32_t *)(UID_BASE + 0x14U)))); +} + +/** + * @} + */ + +/** @defgroup HAL_Exported_Functions_Group3 DBGMCU Peripheral Control functions + * @brief DBGMCU Peripheral Control functions + * +@verbatim + =============================================================================== + ##### DBGMCU Peripheral Control functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Enable/Disable Debug module during SLEEP mode + (+) Enable/Disable Debug module during STOP mode + (+) Enable/Disable Debug module during STANDBY mode + +@endverbatim + * @{ + */ + +/** + * @brief Enable the Debug Module during SLEEP mode + * @retval None + */ +void HAL_DBGMCU_EnableDBGSleepMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); +} + +/** + * @brief Disable the Debug Module during SLEEP mode + * @retval None + */ +void HAL_DBGMCU_DisableDBGSleepMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); +} + +/** + * @brief Enable the Debug Module during STOP mode + * @retval None + */ +void HAL_DBGMCU_EnableDBGStopMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Disable the Debug Module during STOP mode + * @retval None + */ +void HAL_DBGMCU_DisableDBGStopMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Enable the Debug Module during STANDBY mode + * @retval None + */ +void HAL_DBGMCU_EnableDBGStandbyMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @brief Disable the Debug Module during STANDBY mode + * @retval None + */ +void HAL_DBGMCU_DisableDBGStandbyMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c new file mode 100644 index 0000000..37fb751 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c @@ -0,0 +1,537 @@ +/** + ****************************************************************************** + * @file stm32l1xx_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 provide 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 + + (#) Configure the priority of the selected IRQ Channels using HAL_NVIC_SetPriority() + + (#) Enable the selected IRQ Channels using HAL_NVIC_EnableIRQ() + + + -@- When the NVIC_PRIORITYGROUP_0 is selected, IRQ pre-emption is no more possible. + The pending IRQ priority will be managed only by the sub priority. + + -@- IRQ priority order (sorted by highest to lowest priority): + (+@) Lowest pre-emption priority + (+@) Lowest sub priority + (+@) Lowest hardware priority (IRQ number) + + [..] + *** How to configure Systick using Cortex HAL driver *** + ======================================================== + [..] + Setup SysTick Timer for 1 msec interrupts. + + (+) 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 stm32l1xx_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 is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* + Additional Tables: CORTEX_NVIC_Priority_Table + The table below gives the allowed values of the pre-emption priority and subpriority according + to the Priority Grouping configuration performed by HAL_NVIC_SetPriorityGrouping() function. + ========================================================================================================================== + NVIC_PriorityGroup | NVIC_IRQChannelPreemptionPriority | NVIC_IRQChannelSubPriority | Description + ========================================================================================================================== + NVIC_PRIORITYGROUP_0 | 0 | 0-15 | 0 bits for pre-emption priority + | | | 4 bits for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_1 | 0-1 | 0-7 | 1 bits for pre-emption priority + | | | 3 bits for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_2 | 0-3 | 0-3 | 2 bits for pre-emption priority + | | | 2 bits for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_3 | 0-7 | 0-1 | 3 bits for pre-emption priority + | | | 1 bits for subpriority + -------------------------------------------------------------------------------------------------------------------------- + NVIC_PRIORITYGROUP_4 | 0-15 | 0 | 4 bits for pre-emption priority + | | | 0 bits for subpriority + ========================================================================================================================== +*/ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @defgroup CORTEX CORTEX + * @brief CORTEX HAL module driver + * @{ + */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private 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 provide the Cortex HAL driver functions allowing to configure Interrupts + Systick functionalities + +@endverbatim + * @{ + */ + + +/** + * @brief Sets the priority grouping field (pre-emption priority and subpriority) + * using the required unlock sequence. + * @param PriorityGroup The priority grouping bits length. + * This parameter can be one of the following values: + * @arg NVIC_PRIORITYGROUP_0: 0 bits for pre-emption priority + * 4 bits for subpriority + * @arg NVIC_PRIORITYGROUP_1: 1 bits for pre-emption priority + * 3 bits for subpriority + * @arg NVIC_PRIORITYGROUP_2: 2 bits for pre-emption priority + * 2 bits for subpriority + * @arg NVIC_PRIORITYGROUP_3: 3 bits for pre-emption priority + * 1 bits for subpriority + * @arg NVIC_PRIORITYGROUP_4: 4 bits for pre-emption priority + * 0 bits for subpriority + * @note When the NVIC_PriorityGroup_0 is selected, IRQ pre-emption is no more possible. + * The pending IRQ priority will be managed only by the subpriority. + * @retval None + */ +void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + /* Check the parameters */ + assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); + + /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ + NVIC_SetPriorityGrouping(PriorityGroup); +} + +/** + * @brief Sets the priority of an interrupt. + * @param IRQn External interrupt number + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32l1xx.h)) + * @param PreemptPriority The pre-emption priority for the IRQn channel. + * This parameter can be a value between 0 and 15 + * A lower priority value indicates a higher priority + * @param SubPriority the subpriority level for the IRQ channel. + * This parameter can be a value between 0 and 15 + * A lower priority value indicates a higher priority. + * @retval None + */ +void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t prioritygroup = 0x00; + + /* 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 (stm32l1xx.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 (stm32l1xxxx.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 == 1) +/** + * @brief Enable the MPU. + * @param MPU_Control Specifies the control mode of the MPU during hard fault, + * NMI, FAULTMASK and privileged accessto the default memory + * This parameter can be one of the following values: + * @arg MPU_HFNMI_PRIVDEF_NONE + * @arg MPU_HARDFAULT_NMI + * @arg MPU_PRIVILEGED_DEFAULT + * @arg MPU_HFNMI_PRIVDEF + * @retval None + */ +void HAL_MPU_Enable(uint32_t MPU_Control) +{ + /* Enable the MPU */ + MPU->CTRL = (MPU_Control | MPU_CTRL_ENABLE_Msk); + + /* Ensure MPU setting take effects */ + __DSB(); + __ISB(); +} + +/** + * @brief Disable the MPU. + * @retval None + */ +void HAL_MPU_Disable(void) +{ + /* Make sure outstanding transfers are done */ + __DMB(); + + /* Disable the MPU and clear the control register*/ + MPU->CTRL = 0; +} + +/** + * @brief Enable the MPU Region. + * @retval None + */ +void HAL_MPU_EnableRegion(uint32_t RegionNumber) +{ + /* Check the parameters */ + assert_param(IS_MPU_REGION_NUMBER(RegionNumber)); + + /* Set the Region number */ + MPU->RNR = RegionNumber; + + /* Enable the Region */ + SET_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); +} + +/** + * @brief Disable the MPU Region. + * @retval None + */ +void HAL_MPU_DisableRegion(uint32_t RegionNumber) +{ + /* Check the parameters */ + assert_param(IS_MPU_REGION_NUMBER(RegionNumber)); + + /* Set the Region number */ + MPU->RNR = RegionNumber; + + /* Disable the Region */ + CLEAR_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); +} + +/** + * @brief Initialize and configure the Region and the memory to be protected. + * @param MPU_Init Pointer to a MPU_Region_InitTypeDef structure that contains + * the initialization and configuration information. + * @retval None + */ +void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init) +{ + /* Check the parameters */ + assert_param(IS_MPU_REGION_NUMBER(MPU_Init->Number)); + assert_param(IS_MPU_REGION_ENABLE(MPU_Init->Enable)); + assert_param(IS_MPU_INSTRUCTION_ACCESS(MPU_Init->DisableExec)); + assert_param(IS_MPU_REGION_PERMISSION_ATTRIBUTE(MPU_Init->AccessPermission)); + assert_param(IS_MPU_TEX_LEVEL(MPU_Init->TypeExtField)); + assert_param(IS_MPU_ACCESS_SHAREABLE(MPU_Init->IsShareable)); + assert_param(IS_MPU_ACCESS_CACHEABLE(MPU_Init->IsCacheable)); + assert_param(IS_MPU_ACCESS_BUFFERABLE(MPU_Init->IsBufferable)); + assert_param(IS_MPU_SUB_REGION_DISABLE(MPU_Init->SubRegionDisable)); + assert_param(IS_MPU_REGION_SIZE(MPU_Init->Size)); + + /* Set the Region number */ + MPU->RNR = MPU_Init->Number; + + /* Disable the Region */ + CLEAR_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); + + /* Apply configuration */ + MPU->RBAR = MPU_Init->BaseAddress; + MPU->RASR = ((uint32_t)MPU_Init->DisableExec << MPU_RASR_XN_Pos) | + ((uint32_t)MPU_Init->AccessPermission << MPU_RASR_AP_Pos) | + ((uint32_t)MPU_Init->TypeExtField << MPU_RASR_TEX_Pos) | + ((uint32_t)MPU_Init->IsShareable << MPU_RASR_S_Pos) | + ((uint32_t)MPU_Init->IsCacheable << MPU_RASR_C_Pos) | + ((uint32_t)MPU_Init->IsBufferable << MPU_RASR_B_Pos) | + ((uint32_t)MPU_Init->SubRegionDisable << MPU_RASR_SRD_Pos) | + ((uint32_t)MPU_Init->Size << MPU_RASR_SIZE_Pos) | + ((uint32_t)MPU_Init->Enable << MPU_RASR_ENABLE_Pos); +} +#endif /* __MPU_PRESENT */ + +/** + * @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 (stm32l1xxxx.h)) + * @param PriorityGroup the priority grouping bits length. + * This parameter can be one of the following values: + * @arg NVIC_PRIORITYGROUP_0: 0 bits for pre-emption priority + * 4 bits for subpriority + * @arg NVIC_PRIORITYGROUP_1: 1 bits for pre-emption priority + * 3 bits for subpriority + * @arg NVIC_PRIORITYGROUP_2: 2 bits for pre-emption priority + * 2 bits for subpriority + * @arg NVIC_PRIORITYGROUP_3: 3 bits for pre-emption priority + * 1 bits for subpriority + * @arg NVIC_PRIORITYGROUP_4: 4 bits for pre-emption priority + * 0 bits for subpriority + * @param pPreemptPriority Pointer on the Preemptive priority value (starting from 0). + * @param pSubPriority Pointer on the Subpriority value (starting from 0). + * @retval None + */ +void HAL_NVIC_GetPriority(IRQn_Type IRQn, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority) +{ + /* Check the parameters */ + assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); + /* Get priority for Cortex-M system or device specific interrupts */ + NVIC_DecodePriority(NVIC_GetPriority(IRQn), PriorityGroup, pPreemptPriority, pSubPriority); +} + +/** + * @brief Sets Pending bit of an external interrupt. + * @param IRQn External interrupt number + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32l1xxxx.h)) + * @retval None + */ +void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + /* Set interrupt pending */ + NVIC_SetPendingIRQ(IRQn); +} + +/** + * @brief Gets Pending Interrupt (reads the pending register in the NVIC + * and returns the pending bit for the specified interrupt). + * @param IRQn External interrupt number + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32l1xxxx.h)) + * @retval status: - 0 Interrupt status is not pending. + * - 1 Interrupt status is pending. + */ +uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + /* Return 1 if pending else 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 (stm32l1xxxx.h)) + * @retval None + */ +void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + /* Clear pending interrupt */ + NVIC_ClearPendingIRQ(IRQn); +} + +/** + * @brief Gets active interrupt ( reads the active register in NVIC and returns the active bit). + * @param IRQn External interrupt number + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32l1xxxx.h)) + * @retval status: - 0 Interrupt status is not pending. + * - 1 Interrupt status is pending. + */ +uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn) +{ + /* Return 1 if active else 0 */ + return NVIC_GetActive(IRQn); +} + +/** + * @brief Configures the SysTick clock source. + * @param CLKSource specifies the SysTick clock source. + * This parameter can be one of the following values: + * @arg SYSTICK_CLKSOURCE_HCLK_DIV8: AHB clock divided by 8 selected as SysTick clock source. + * @arg SYSTICK_CLKSOURCE_HCLK: AHB clock selected as SysTick clock source. + * @retval None + */ +void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource) +{ + /* Check the parameters */ + assert_param(IS_SYSTICK_CLK_SOURCE(CLKSource)); + if (CLKSource == SYSTICK_CLKSOURCE_HCLK) + { + SysTick->CTRL |= SYSTICK_CLKSOURCE_HCLK; + } + else + { + SysTick->CTRL &= ~SYSTICK_CLKSOURCE_HCLK; + } +} + +/** + * @brief This function handles SYSTICK interrupt request. + * @retval None + */ +void HAL_SYSTICK_IRQHandler(void) +{ + HAL_SYSTICK_Callback(); +} + +/** + * @brief SYSTICK callback. + * @retval None + */ +__weak void HAL_SYSTICK_Callback(void) +{ + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_SYSTICK_Callback could be implemented in the user file + */ +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_CORTEX_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c new file mode 100644 index 0000000..2c476a4 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c @@ -0,0 +1,909 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_dma.c + * @author MCD Application Team + * @brief DMA HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Direct Memory Access (DMA) peripheral: + * + Initialization and de-initialization functions + * + IO operation functions + * + Peripheral State and errors functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + (#) Enable and configure the peripheral to be connected to the DMA Channel + (except for internal SRAM / FLASH memories: no initialization is + necessary). Please refer to the Reference manual for connection between peripherals + and DMA requests. + + (#) For a given Channel, program the required configuration through the following parameters: + Channel request, Transfer Direction, Source and Destination data formats, + Circular or Normal mode, Channel Priority level, Source and Destination Increment mode + using HAL_DMA_Init() function. + + (#) Use HAL_DMA_GetState() function to return the DMA state and HAL_DMA_GetError() in case of error + detection. + + (#) Use HAL_DMA_Abort() function to abort the current transfer + + -@- In Memory-to-Memory transfer mode, Circular mode is not allowed. + *** Polling mode IO operation *** + ================================= + [..] + (+) Use HAL_DMA_Start() to start DMA transfer after the configuration of Source + address and destination address and the Length of data to be transferred + (+) Use HAL_DMA_PollForTransfer() to poll for the end of current transfer, in this + case a fixed Timeout can be configured by User depending from his application. + + *** Interrupt mode IO operation *** + =================================== + [..] + (+) Configure the DMA interrupt priority using HAL_NVIC_SetPriority() + (+) Enable the DMA IRQ handler using HAL_NVIC_EnableIRQ() + (+) Use HAL_DMA_Start_IT() to start DMA transfer after the configuration of + Source address and destination address and the Length of data to be transferred. + In this case the DMA interrupt is configured + (+) Use HAL_DMA_IRQHandler() called under DMA_IRQHandler() Interrupt subroutine + (+) At the end of data transfer HAL_DMA_IRQHandler() function is executed and user can + add his own function to register callbacks with HAL_DMA_RegisterCallback(). + + *** DMA HAL driver macros list *** + ============================================= + [..] + Below the list of macros in DMA HAL driver. + + (+) __HAL_DMA_ENABLE: Enable the specified DMA Channel. + (+) __HAL_DMA_DISABLE: Disable the specified DMA Channel. + (+) __HAL_DMA_GET_FLAG: Get the DMA Channel pending flags. + (+) __HAL_DMA_CLEAR_FLAG: Clear the DMA Channel pending flags. + (+) __HAL_DMA_ENABLE_IT: Enable the specified DMA Channel interrupts. + (+) __HAL_DMA_DISABLE_IT: Disable the specified DMA Channel interrupts. + (+) __HAL_DMA_GET_IT_SOURCE: Check whether the specified DMA Channel interrupt is enabled or not. + + [..] + (@) You can refer to the DMA HAL driver header file for more useful macros + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_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; + + /* 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) + /* Compute the channel index */ + if ((uint32_t)(hdma->Instance) < (uint32_t)(DMA2_Channel1)) + { + /* DMA1 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2U; + hdma->DmaBaseAddress = DMA1; + } + else + { + /* DMA2 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Channel2 - (uint32_t)DMA2_Channel1)) << 2U; + hdma->DmaBaseAddress = DMA2; + } +#else + /* calculation of the channel index */ + /* DMA1 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2U; + hdma->DmaBaseAddress = DMA1; +#endif + + /* Change DMA peripheral state */ + hdma->State = HAL_DMA_STATE_BUSY; + + /* Get the CR register value */ + tmp = hdma->Instance->CCR; + + /* Clear PL, MSIZE, PSIZE, MINC, PINC, CIRC, DIR and MEM2MEM bits */ + tmp &= ((uint32_t)~(DMA_CCR_PL | DMA_CCR_MSIZE | DMA_CCR_PSIZE | + DMA_CCR_MINC | DMA_CCR_PINC | DMA_CCR_CIRC | + DMA_CCR_DIR | DMA_CCR_MEM2MEM)); + + /* Prepare the DMA Channel configuration */ + tmp |= hdma->Init.Direction | + hdma->Init.PeriphInc | hdma->Init.MemInc | + hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | + hdma->Init.Mode | hdma->Init.Priority; + + /* Write to DMA Channel CR register */ + hdma->Instance->CCR = tmp; + + /* Initialise the error code */ + hdma->ErrorCode = HAL_DMA_ERROR_NONE; + + /* Initialize the DMA state*/ + hdma->State = HAL_DMA_STATE_READY; + + /* Allocate lock resource and initialize it */ + hdma->Lock = HAL_UNLOCKED; + + return HAL_OK; +} + +/** + * @brief DeInitialize the DMA peripheral. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma) +{ + + /* Check the DMA handle allocation */ + if (NULL == hdma ) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); + + /* Disable the selected DMA Channelx */ + __HAL_DMA_DISABLE(hdma); + +#if defined (DMA2) + /* Compute the channel index */ + if ((uint32_t)(hdma->Instance) < (uint32_t)(DMA2_Channel1)) + { + /* DMA1 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2U; + hdma->DmaBaseAddress = DMA1; + } + else + { + /* DMA2 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Channel2 - (uint32_t)DMA2_Channel1)) << 2U; + hdma->DmaBaseAddress = DMA2; + } +#else + /* calculation of the channel index */ + /* DMA1 */ + hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2U; + hdma->DmaBaseAddress = DMA1; +#endif + + /* Reset DMA Channel CR register */ + hdma->Instance->CCR = 0U; + + /* Clear all flags */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1CU)); + + /* Clean callbacks */ + hdma->XferCpltCallback = NULL; + hdma->XferHalfCpltCallback = NULL; + hdma->XferErrorCallback = NULL; + hdma->XferAbortCallback = NULL; + + /* Initialise the error code */ + hdma->ErrorCode = HAL_DMA_ERROR_NONE; + + /* Initialize the DMA state */ + hdma->State = HAL_DMA_STATE_RESET; + + /* Release Lock */ + __HAL_UNLOCK(hdma); + + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup DMA_Exported_Functions_Group2 Input and Output operation functions + * @brief Input and Output operation functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Configure the source, destination address and data length and Start DMA transfer + (+) Configure the source, destination address and data length and + Start DMA transfer with interrupt + (+) Abort DMA transfer + (+) Poll for transfer complete + (+) Handle DMA interrupt request + +@endverbatim + * @{ + */ + +/** + * @brief Start the DMA Transfer. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param SrcAddress The source memory Buffer address + * @param DstAddress The destination memory Buffer address + * @param DataLength The length of data to be transferred from source to destination + * @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; + + /* Check the DMA peripheral state */ + if(hdma->State != HAL_DMA_STATE_BUSY) + { + 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 & 0x1CU)); + + /* 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 */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1CU)); + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + /* Call User Abort callback */ + if(hdma->XferAbortCallback != NULL) + { + hdma->XferAbortCallback(hdma); + } + } + return status; +} + +/** + * @brief Polling for transfer complete. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param CompleteLevel Specifies the DMA level complete. + * @param Timeout Timeout duration. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout) +{ + uint32_t temp; + uint32_t tickstart; + + if(HAL_DMA_STATE_BUSY != hdma->State) + { + /* no transfer ongoing */ + hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + __HAL_UNLOCK(hdma); + return HAL_ERROR; + } + + /* Polling mode not supported in circular mode */ + if ((hdma->Instance->CCR & DMA_CCR_CIRC) != 0U) + { + hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED; + return HAL_ERROR; + } + + /* Get the level transfer complete flag */ + if (HAL_DMA_FULL_TRANSFER == CompleteLevel) + { + /* Transfer Complete flag */ + temp = DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1CU); + } + else + { + /* Half Transfer Complete flag */ + temp = DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1CU); + } + + /* Get tick */ + tickstart = HAL_GetTick(); + + while((hdma->DmaBaseAddress->ISR & temp) == 0U) + { + if((hdma->DmaBaseAddress->ISR & (DMA_FLAG_TE1 << (hdma->ChannelIndex& 0x1CU))) != 0U) + { + /* 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 & 0x1CU)); + + /* Update error code */ + hdma->ErrorCode = HAL_DMA_ERROR_TE; + + /* Change the DMA state */ + hdma->State= HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + return HAL_ERROR; + } + /* Check for the Timeout */ + if(Timeout != HAL_MAX_DELAY) + { + if(((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) + { + /* Update error code */ + hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + return HAL_ERROR; + } + } + } + + if(HAL_DMA_FULL_TRANSFER == CompleteLevel) + { + /* Clear the transfer complete flag */ + hdma->DmaBaseAddress->IFCR = (DMA_FLAG_TC1 << (hdma->ChannelIndex& 0x1CU)); + + /* The selected Channelx EN bit is cleared (DMA is disabled and + all transfers are complete) */ + hdma->State = HAL_DMA_STATE_READY; + } + else + { + /* Clear the half transfer complete flag */ + hdma->DmaBaseAddress->IFCR = (DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1CU)); + } + + /* Process unlocked */ + __HAL_UNLOCK(hdma); + + return HAL_OK; +} + +/** + * @brief Handle DMA interrupt request. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @retval None + */ +void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) +{ + uint32_t flag_it = hdma->DmaBaseAddress->ISR; + uint32_t source_it = hdma->Instance->CCR; + + /* Half Transfer Complete Interrupt management ******************************/ + if (((flag_it & (DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1CU))) != 0U) && ((source_it & DMA_IT_HT) != 0U)) + { + /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */ + if((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U) + { + /* Disable the half transfer interrupt */ + __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT); + } + /* Clear the half transfer complete flag */ + hdma->DmaBaseAddress->IFCR = DMA_ISR_HTIF1 << (hdma->ChannelIndex & 0x1CU); + + /* 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 & 0x1CU))) != 0U) && ((source_it & DMA_IT_TC) != 0U)) + { + + if((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U) + { + /* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */ + /* Disable the transfer complete and error interrupt */ + /* if the DMA mode is not CIRCULAR */ + __HAL_DMA_DISABLE_IT(hdma, DMA_IT_TE | DMA_IT_TC); + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + } + /* Clear the transfer complete flag */ + hdma->DmaBaseAddress->IFCR = (DMA_ISR_TCIF1 << (hdma->ChannelIndex & 0x1CU)); + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + if(hdma->XferCpltCallback != NULL) + { + /* Transfer complete callback */ + hdma->XferCpltCallback(hdma); + } + } + + /* Transfer Error Interrupt management **************************************/ + else if (((flag_it & (DMA_FLAG_TE1 << (hdma->ChannelIndex & 0x1CU))) != 0U) && ((source_it & DMA_IT_TE) != 0U)) + { + /* 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 & 0x1CU)); + + /* Update error code */ + hdma->ErrorCode = HAL_DMA_ERROR_TE; + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + + if (hdma->XferErrorCallback != NULL) + { + /* Transfer error callback */ + hdma->XferErrorCallback(hdma); + } + } + else + { + /* Nothing To Do */ + } + return; +} + +/** + * @brief Register callbacks + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param CallbackID User Callback identifier + * a HAL_DMA_CallbackIDTypeDef ENUM as parameter. + * @param pCallback pointer to private callback function which has pointer to + * a DMA_HandleTypeDef structure as parameter. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void (* pCallback)( DMA_HandleTypeDef * _hdma)) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hdma); + + if(HAL_DMA_STATE_READY == hdma->State) + { + switch (CallbackID) + { + case HAL_DMA_XFER_CPLT_CB_ID: + hdma->XferCpltCallback = pCallback; + break; + + case HAL_DMA_XFER_HALFCPLT_CB_ID: + hdma->XferHalfCpltCallback = pCallback; + break; + + case HAL_DMA_XFER_ERROR_CB_ID: + hdma->XferErrorCallback = pCallback; + break; + + case HAL_DMA_XFER_ABORT_CB_ID: + hdma->XferAbortCallback = pCallback; + break; + + default: + status = HAL_ERROR; + break; + } + } + else + { + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hdma); + + return status; +} + +/** + * @brief UnRegister callbacks + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Channel. + * @param CallbackID User Callback identifier + * a HAL_DMA_CallbackIDTypeDef ENUM as parameter. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hdma); + + if(HAL_DMA_STATE_READY == hdma->State) + { + switch (CallbackID) + { + case HAL_DMA_XFER_CPLT_CB_ID: + hdma->XferCpltCallback = NULL; + break; + + case HAL_DMA_XFER_HALFCPLT_CB_ID: + hdma->XferHalfCpltCallback = NULL; + break; + + case HAL_DMA_XFER_ERROR_CB_ID: + hdma->XferErrorCallback = NULL; + break; + + case HAL_DMA_XFER_ABORT_CB_ID: + hdma->XferAbortCallback = NULL; + break; + + case HAL_DMA_XFER_ALL_CB_ID: + hdma->XferCpltCallback = NULL; + hdma->XferHalfCpltCallback = NULL; + hdma->XferErrorCallback = NULL; + hdma->XferAbortCallback = NULL; + break; + + default: + status = HAL_ERROR; + break; + } + } + else + { + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hdma); + + return status; +} + +/** + * @} + */ + + + +/** @defgroup DMA_Exported_Functions_Group3 Peripheral State and Errors functions + * @brief Peripheral State and Errors functions + * +@verbatim + =============================================================================== + ##### Peripheral State and Errors functions ##### + =============================================================================== + [..] + This subsection provides functions allowing to + (+) Check the DMA state + (+) Get error code + +@endverbatim + * @{ + */ + +/** + * @brief Return the DMA handle 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 & 0x1CU)); + + /* 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 */ +/** + * @} + */ + +/** + * @} + */ + + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c new file mode 100644 index 0000000..a28531e --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c @@ -0,0 +1,547 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_exti.c + * @author MCD Application Team + * @brief EXTI HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Extended Interrupts and events controller (EXTI) peripheral: + * + Initialization and de-initialization functions + * + IO operation functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2018 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### EXTI Peripheral features ##### + ============================================================================== + [..] + (+) Each Exti line can be configured within this driver. + + (+) Exti line can be configured in 3 different modes + (++) Interrupt + (++) Event + (++) Both of them + + (+) Configurable Exti lines can be configured with 3 different triggers + (++) Rising + (++) Falling + (++) Both of them + + (+) When set in interrupt mode, configurable Exti lines have two different + interrupts pending registers which allow to distinguish which transition + occurs: + (++) Rising edge pending interrupt + (++) Falling + + (+) Exti lines 0 to 15 are linked to gpio pin number 0 to 15. Gpio port can + be selected through multiplexer. + + ##### How to use this driver ##### + ============================================================================== + [..] + + (#) Configure the EXTI line using HAL_EXTI_SetConfigLine(). + (++) Choose the interrupt line number by setting "Line" member from + EXTI_ConfigTypeDef structure. + (++) Configure the interrupt and/or event mode using "Mode" member from + EXTI_ConfigTypeDef structure. + (++) For configurable lines, configure rising and/or falling trigger + "Trigger" member from EXTI_ConfigTypeDef structure. + (++) For Exti lines linked to gpio, choose gpio port using "GPIOSel" + member from GPIO_InitTypeDef structure. + + (#) Get current Exti configuration of a dedicated line using + HAL_EXTI_GetConfigLine(). + (++) Provide exiting handle as parameter. + (++) Provide pointer on EXTI_ConfigTypeDef structure as second parameter. + + (#) Clear Exti configuration of a dedicated line using HAL_EXTI_ClearConfigLine(). + (++) Provide exiting handle as parameter. + + (#) Register callback to treat Exti interrupts using HAL_EXTI_RegisterCallback(). + (++) Provide exiting handle as first parameter. + (++) Provide which callback will be registered using one value from + EXTI_CallbackIDTypeDef. + (++) Provide callback function pointer. + + (#) Get interrupt pending bit using HAL_EXTI_GetPending(). + + (#) Clear interrupt pending bit using HAL_EXTI_ClearPending(). + + (#) Generate software interrupt using HAL_EXTI_GenerateSWI(). + + @endverbatim + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_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 = SYSCFG->EXTICR[linepos >> 2u]; + regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + SYSCFG->EXTICR[linepos >> 2u] = regval; + } + } + + /* Configure interrupt mode : read current mode */ + /* Mask or set line */ + if ((pExtiConfig->Mode & EXTI_MODE_INTERRUPT) != 0x00u) + { + EXTI->IMR |= maskline; + } + else + { + EXTI->IMR &= ~maskline; + } + + /* Configure event mode : read current mode */ + /* Mask or set line */ + if ((pExtiConfig->Mode & EXTI_MODE_EVENT) != 0x00u) + { + EXTI->EMR |= maskline; + } + else + { + EXTI->EMR &= ~maskline; + } + + return HAL_OK; +} + +/** + * @brief Get configuration of a dedicated Exti line. + * @param hexti Exti handle. + * @param pExtiConfig Pointer on structure to store Exti configuration. + * @retval HAL Status. + */ +HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig) +{ + uint32_t regval; + uint32_t linepos; + uint32_t maskline; + + /* Check null pointer */ + if ((hexti == NULL) || (pExtiConfig == NULL)) + { + return HAL_ERROR; + } + + /* Check the parameter */ + assert_param(IS_EXTI_LINE(hexti->Line)); + + /* Store handle line number to configuration structure */ + pExtiConfig->Line = hexti->Line; + + /* Compute line mask */ + linepos = (pExtiConfig->Line & EXTI_PIN_MASK); + maskline = (1uL << linepos); + + /* 1] Get core mode : interrupt */ + + /* Check if selected line is enable */ + if ((EXTI->IMR & maskline) != 0x00u) + { + pExtiConfig->Mode = EXTI_MODE_INTERRUPT; + } + else + { + pExtiConfig->Mode = EXTI_MODE_NONE; + } + + /* Get event mode */ + /* Check if selected line is enable */ + if ((EXTI->EMR & maskline) != 0x00u) + { + pExtiConfig->Mode |= EXTI_MODE_EVENT; + } + + /* Get default Trigger and GPIOSel configuration */ + pExtiConfig->Trigger = EXTI_TRIGGER_NONE; + pExtiConfig->GPIOSel = 0x00u; + + /* 2] Get trigger for configurable lines : rising */ + if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) + { + /* Check if configuration of selected line is enable */ + if ((EXTI->RTSR & maskline) != 0x00u) + { + pExtiConfig->Trigger = EXTI_TRIGGER_RISING; + } + + /* Get falling configuration */ + /* Check if configuration of selected line is enable */ + if ((EXTI->FTSR & maskline) != 0x00u) + { + pExtiConfig->Trigger |= EXTI_TRIGGER_FALLING; + } + + /* Get Gpio port selection for gpio lines */ + if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) + { + assert_param(IS_EXTI_GPIO_PIN(linepos)); + + regval = SYSCFG->EXTICR[linepos >> 2u]; + pExtiConfig->GPIOSel = (regval >> (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))) & SYSCFG_EXTICR1_EXTI0; + } + } + + return HAL_OK; +} + +/** + * @brief Clear whole configuration of a dedicated Exti line. + * @param hexti Exti handle. + * @retval HAL Status. + */ +HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti) +{ + 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 = SYSCFG->EXTICR[linepos >> 2u]; + regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); + SYSCFG->EXTICR[linepos >> 2u] = regval; + } + } + + return HAL_OK; +} + +/** + * @brief Register callback for a dedicated Exti line. + * @param hexti Exti handle. + * @param CallbackID User callback identifier. + * This parameter can be one of @arg @ref EXTI_CallbackIDTypeDef values. + * @param pPendingCbfn function pointer to be stored as callback. + * @retval HAL Status. + */ +HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef CallbackID, void (*pPendingCbfn)(void)) +{ + HAL_StatusTypeDef status = HAL_OK; + + switch (CallbackID) + { + case HAL_EXTI_COMMON_CB_ID: + hexti->PendingCallback = pPendingCbfn; + break; + + default: + status = HAL_ERROR; + break; + } + + return status; +} + +/** + * @brief Store line number as handle private field. + * @param hexti Exti handle. + * @param ExtiLine Exti line number. + * This parameter can be from 0 to @ref EXTI_LINE_NB. + * @retval HAL Status. + */ +HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine) +{ + /* Check the parameters */ + assert_param(IS_EXTI_LINE(ExtiLine)); + + /* Check null pointer */ + if (hexti == NULL) + { + return HAL_ERROR; + } + else + { + /* Store line number as handle private field */ + hexti->Line = ExtiLine; + + return HAL_OK; + } +} + +/** + * @} + */ + +/** @addtogroup EXTI_Exported_Functions_Group2 + * @brief EXTI IO functions. + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + +@endverbatim + * @{ + */ + +/** + * @brief Handle EXTI interrupt request. + * @param hexti Exti handle. + * @retval none. + */ +void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti) +{ + 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 linepos; + 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 */ + 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 */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c new file mode 100644 index 0000000..daae63e --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c @@ -0,0 +1,723 @@ +/** + ****************************************************************************** + * @file stm32l1xx_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 STM32L1xx 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 + (++) Program functions: Fast Word and Half Page(should be + executed from internal SRAM). + + (#) DATA EEPROM Programming functions: this group includes all + needed functions to erase and program the DATA EEPROM memory: + (++) Lock and Unlock the DATA EEPROM interface. + (++) Erase function: Erase Byte, erase HalfWord, erase Word, erase + Double Word (should be executed from internal SRAM). + (++) Program functions: Fast Program Byte, Fast Program Half-Word, + FastProgramWord, Program Byte, Program Half-Word, + Program Word and Program Double-Word (should be executed + from internal SRAM). + + (#) 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 + (++) Set/Get the Read protection Level. + (++) Set/Get the BOR level. + (++) 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 + + (#) FLASH Interface configuration functions: this group includes + the management of following features: + (++) Enable/Disable the RUN PowerDown mode. + (++) Enable/Disable the SLEEP PowerDown mode. + + (#) FLASH Peripheral State methods: this group includes + the management of following features: + (++) Wait for the FLASH operation + (++) Get the specific FLASH error flag + + [..] 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 64 bit Read Access. + (+) Enable/Disable the Flash power-down + (+) Enable/Disable the FLASH interrupts + (+) Monitor the FLASH flags status + + ##### Programming operation functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to manage the FLASH + program operations. + + [..] The FLASH Memory Programming functions, includes the following functions: + (+) HAL_FLASH_Unlock(void); + (+) HAL_FLASH_Lock(void); + (+) HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint32_t Data) + (+) HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint32_t Data) + + [..] Any operation of erase or program should follow these steps: + (#) Call the HAL_FLASH_Unlock() function to enable the flash control register and + program memory access. + (#) Call the desired function to erase page or program data. + (#) Call the HAL_FLASH_Lock() to disable the flash program memory access + (recommended to protect the FLASH memory against possible unwanted operation). + + ##### Option Bytes Programming functions ##### + ============================================================================== + + [..] The FLASH_Option Bytes Programming_functions, includes the following functions: + (+) HAL_FLASH_OB_Unlock(void); + (+) HAL_FLASH_OB_Lock(void); + (+) HAL_FLASH_OB_Launch(void); + (+) HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit); + (+) HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit); + + [..] Any operation of erase or program should follow these steps: + (#) Call the HAL_FLASH_OB_Unlock() function to enable the Flash option control + register access. + (#) Call the following functions to program the desired option bytes. + (++) HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit); + (#) Once all needed option bytes to be programmed are correctly written, call the + HAL_FLASH_OB_Launch(void) function to launch the Option Bytes programming process. + (#) Call the HAL_FLASH_OB_Lock() to disable the Flash option control register access (recommended + to protect the option Bytes against possible unwanted operations). + + [..] Proprietary code Read Out Protection (PcROP): + (#) The PcROP sector is selected by using the same option bytes as the Write + protection. As a result, these 2 options are exclusive each other. + (#) To activate PCROP mode for Flash sectors(s), you need to follow the sequence below: + (++) Use this function HAL_FLASHEx_AdvOBProgram with PCROPState = OB_PCROP_STATE_ENABLE. + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_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_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 word at a specified address + * @note To correctly run this function, the HAL_FLASH_Unlock() function + * must be called before. + * Call the HAL_FLASH_Lock() to disable the flash memory access + * (recommended to protect the FLASH memory against possible unwanted operation). + * + * @param TypeProgram Indicate the way to program at a specified address. + * This parameter can be a value of @ref FLASH_Type_Program + * @param Address Specifie the address to be programmed. + * @param Data Specifie the data to be programmed + * + * @retval HAL_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint32_t Data) +{ + HAL_StatusTypeDef status; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Check the parameters */ + assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); + assert_param(IS_FLASH_PROGRAM_ADDRESS(Address)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /*Program word (32-bit) at a specified address.*/ + *(__IO uint32_t *)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + + return status; +} + +/** + * @brief Program word at a specified address with interrupt enabled. + * + * @param TypeProgram Indicate the way to program at a specified address. + * This parameter can be a value of @ref FLASH_Type_Program + * @param Address Specifie the address to be programmed. + * @param Data Specifie the data to be programmed + * + * @retval HAL_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint32_t Data) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Check the parameters */ + assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); + assert_param(IS_FLASH_PROGRAM_ADDRESS(Address)); + + /* Enable End of FLASH Operation and Error source interrupts */ + __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR); + + pFlash.Address = Address; + pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM; + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + if(TypeProgram == FLASH_TYPEPROGRAM_WORD) + { + /* Program word (32-bit) at a specified address. */ + *(__IO uint32_t *)Address = Data; + } + return status; +} + +/** + * @brief This function handles FLASH interrupt request. + * @retval None + */ +void HAL_FLASH_IRQHandler(void) +{ + uint32_t addresstmp = 0U; + + /* Check FLASH operation error flags */ + if( __HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) || + __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) || + __HAL_FLASH_GET_FLAG(FLASH_FLAG_SIZERR) || +#if defined(FLASH_SR_RDERR) + __HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR) || +#endif /* FLASH_SR_RDERR */ +#if defined(FLASH_SR_OPTVERRUSR) + __HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERRUSR) || +#endif /* FLASH_SR_OPTVERRUSR */ + __HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERR) ) + { + if(pFlash.ProcedureOnGoing == FLASH_PROC_PAGEERASE) + { + /* Return the faulty sector */ + addresstmp = pFlash.Page; + pFlash.Page = 0xFFFFFFFFU; + } + else + { + /* Return the faulty address */ + addresstmp = pFlash.Address; + } + /* Save the Error code */ + FLASH_SetErrorCode(); + + /* FLASH error interrupt user callback */ + HAL_FLASH_OperationErrorCallback(addresstmp); + + /* Stop the procedure ongoing */ + pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + } + + /* Check FLASH End of Operation flag */ + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP)) + { + /* Clear FLASH End of Operation pending bit */ + __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); + + /* Process can continue only if no error detected */ + if(pFlash.ProcedureOnGoing != FLASH_PROC_NONE) + { + if(pFlash.ProcedureOnGoing == FLASH_PROC_PAGEERASE) + { + /* Nb of pages to erased can be decreased */ + pFlash.NbPagesToErase--; + + /* Check if there are still pages to erase */ + if(pFlash.NbPagesToErase != 0U) + { + addresstmp = pFlash.Page; + /*Indicate user which sector has been erased */ + HAL_FLASH_EndOfOperationCallback(addresstmp); + + /*Increment sector number*/ + addresstmp = pFlash.Page + FLASH_PAGE_SIZE; + pFlash.Page = addresstmp; + + /* If the erase operation is completed, disable the ERASE Bit */ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_ERASE); + + FLASH_PageErase(addresstmp); + } + else + { + /* No more pages to Erase, user callback can be called. */ + /* Reset Sector and stop Erase pages procedure */ + pFlash.Page = addresstmp = 0xFFFFFFFFU; + pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + /* FLASH EOP interrupt user callback */ + HAL_FLASH_EndOfOperationCallback(addresstmp); + } + } + else + { + /* If the program operation is completed, disable the PROG Bit */ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_PROG); + + /* Program ended. Return the selected address */ + /* FLASH EOP interrupt user callback */ + HAL_FLASH_EndOfOperationCallback(pFlash.Address); + + /* Reset Address and stop Program procedure */ + pFlash.Address = 0xFFFFFFFFU; + pFlash.ProcedureOnGoing = FLASH_PROC_NONE; + } + } + } + + + if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE) + { + /* Operation is completed, disable the PROG and ERASE */ + CLEAR_BIT(FLASH->PECR, (FLASH_PECR_ERASE | FLASH_PECR_PROG)); + + /* Disable End of FLASH Operation and Error source interrupts */ + __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR); + + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + } +} + +/** + * @brief FLASH end of operation interrupt callback + * @param ReturnValue The value saved in this parameter depends on the ongoing procedure + * - 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 + * - 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) +{ + if (HAL_IS_BIT_SET(FLASH->PECR, FLASH_PECR_PRGLOCK)) + { + /* Unlocking FLASH_PECR register access*/ + if(HAL_IS_BIT_SET(FLASH->PECR, FLASH_PECR_PELOCK)) + { + WRITE_REG(FLASH->PEKEYR, FLASH_PEKEY1); + WRITE_REG(FLASH->PEKEYR, FLASH_PEKEY2); + + /* Verify that PELOCK is unlocked */ + if(HAL_IS_BIT_SET(FLASH->PECR, FLASH_PECR_PELOCK)) + { + return HAL_ERROR; + } + } + + /* Unlocking the program memory access */ + WRITE_REG(FLASH->PRGKEYR, FLASH_PRGKEY1); + WRITE_REG(FLASH->PRGKEYR, FLASH_PRGKEY2); + + /* Verify that PRGLOCK is unlocked */ + if (HAL_IS_BIT_SET(FLASH->PECR, FLASH_PECR_PRGLOCK)) + { + return HAL_ERROR; + } + } + + return HAL_OK; +} + +/** + * @brief Locks the FLASH control register access + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_FLASH_Lock(void) +{ + /* Set the PRGLOCK Bit to lock the FLASH Registers access */ + SET_BIT(FLASH->PECR, FLASH_PECR_PRGLOCK); + + 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_SET(FLASH->PECR, FLASH_PECR_OPTLOCK)) + { + /* Unlocking FLASH_PECR register access*/ + if(HAL_IS_BIT_SET(FLASH->PECR, FLASH_PECR_PELOCK)) + { + /* Unlocking FLASH_PECR register access*/ + WRITE_REG(FLASH->PEKEYR, FLASH_PEKEY1); + WRITE_REG(FLASH->PEKEYR, FLASH_PEKEY2); + + /* Verify that PELOCK is unlocked */ + if(HAL_IS_BIT_SET(FLASH->PECR, FLASH_PECR_PELOCK)) + { + return HAL_ERROR; + } + } + + /* Unlocking the option bytes block access */ + WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1); + WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2); + + /* Verify that OPTLOCK is unlocked */ + if (HAL_IS_BIT_SET(FLASH->PECR, FLASH_PECR_OPTLOCK)) + { + return HAL_ERROR; + } + } + + return HAL_OK; +} + +/** + * @brief Lock the FLASH Option Control Registers access. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_FLASH_OB_Lock(void) +{ + /* Set the OPTLOCK Bit to lock the option bytes block access */ + SET_BIT(FLASH->PECR, FLASH_PECR_OPTLOCK); + + return HAL_OK; +} + +/** + * @brief Launch the option byte loading. + * @note This function will reset automatically the MCU. + * @retval HAL Status + */ +HAL_StatusTypeDef HAL_FLASH_OB_Launch(void) +{ + /* Set the OBL_Launch bit to launch the option byte loading */ + SET_BIT(FLASH->PECR, FLASH_PECR_OBL_LAUNCH); + + /* Wait for last operation to be completed */ + return(FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE)); +} + +/** + * @} + */ + +/** @defgroup FLASH_Exported_Functions_Group3 Peripheral errors functions + * @brief Peripheral errors functions + * +@verbatim + =============================================================================== + ##### Peripheral Errors functions ##### + =============================================================================== + [..] + This subsection permit to get in run-time errors of the FLASH peripheral. + +@endverbatim + * @{ + */ + +/** + * @brief Get the specific FLASH error flag. + * @retval FLASH_ErrorCode The returned value can be: + * @ref FLASH_Error_Codes + */ +uint32_t HAL_FLASH_GetError(void) +{ + return pFlash.ErrorCode; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup FLASH_Private_Functions + * @{ + */ + +/** + * @brief 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) || +#if defined(FLASH_SR_RDERR) + __HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR) || +#endif /* FLASH_SR_RDERR */ +#if defined(FLASH_SR_OPTVERRUSR) + __HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERRUSR) || +#endif /* FLASH_SR_OPTVERRUSR */ + __HAL_FLASH_GET_FLAG(FLASH_FLAG_SIZERR) || + __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR)) + { + /*Save the error code*/ + FLASH_SetErrorCode(); + return HAL_ERROR; + } + + /* There is no error flag set */ + return HAL_OK; +} + + +/** + * @brief Set the specific FLASH error flag. + * @retval None + */ +static void FLASH_SetErrorCode(void) +{ + uint32_t flags = 0U; + + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP; + flags |= FLASH_FLAG_WRPERR; + } + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA; + flags |= FLASH_FLAG_PGAERR; + } + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_OPTV; + flags |= FLASH_FLAG_OPTVERR; + } + +#if defined(FLASH_SR_RDERR) + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_RD; + flags |= FLASH_FLAG_RDERR; + } +#endif /* FLASH_SR_RDERR */ +#if defined(FLASH_SR_OPTVERRUSR) + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERRUSR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_OPTVUSR; + flags |= FLASH_FLAG_OPTVERRUSR; + } +#endif /* FLASH_SR_OPTVERRUSR */ + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_SIZERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_SIZE; + flags |= FLASH_FLAG_SIZERR; + } + /* Clear FLASH error pending bits */ + __HAL_FLASH_CLEAR_FLAG(flags); +} +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_FLASH_MODULE_ENABLED */ + +/** + * @} + */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.c new file mode 100644 index 0000000..d698393 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.c @@ -0,0 +1,1870 @@ +/** + ****************************************************************************** + * @file stm32l1xx_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 internal FLASH memory: + * + FLASH Interface configuration + * + FLASH Memory Erasing + * + DATA EEPROM Programming/Erasing + * + Option Bytes Programming + * + Interrupts management + * + @verbatim + ============================================================================== + ##### Flash peripheral Extended features ##### + ============================================================================== + + [..] Comparing to other products, the FLASH interface for STM32L1xx + devices contains the following additional features + (+) Erase functions + (+) DATA_EEPROM memory management + (+) BOOT option bit configuration + (+) PCROP protection for all sectors + + ##### How to use this driver ##### + ============================================================================== + [..] This driver provides functions to configure and program the FLASH memory + of all STM32L1xx. It includes: + (+) Full DATA_EEPROM erase and program management + (+) Boot activation + (+) PCROP protection configuration and control for all pages + + @endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_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 + * @{ + */ +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/** @defgroup FLASHEx_Private_Macros FLASHEx Private Macros + * @{ + */ +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup FLASHEx_Private_Functions FLASHEx Private Functions + * @{ + */ +void FLASH_PageErase(uint32_t PageAddress); +static HAL_StatusTypeDef FLASH_OB_WRPConfig(FLASH_OBProgramInitTypeDef *pOBInit, FunctionalState NewState); +static void FLASH_OB_WRPConfigWRP1OrPCROP1(uint32_t WRP1OrPCROP1, FunctionalState NewState); +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC) \ + || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L151xDX) || defined(STM32L152xCA) \ + || defined(STM32L152xD) || defined(STM32L152xDX) || defined(STM32L162xCA) || defined(STM32L162xD) \ + || defined(STM32L162xDX) || defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) +static void FLASH_OB_WRPConfigWRP2OrPCROP2(uint32_t WRP2OrPCROP2, FunctionalState NewState); +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || (...) || STM32L151xE || STM32L152xE || STM32L162xE */ +#if defined(STM32L151xD) || defined(STM32L151xDX) || defined(STM32L152xD) || defined(STM32L152xDX) \ + || defined(STM32L162xD) || defined(STM32L162xDX) || defined(STM32L151xE) || defined(STM32L152xE) \ + || defined(STM32L162xE) +static void FLASH_OB_WRPConfigWRP3(uint32_t WRP3, FunctionalState NewState); +#endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */ +#if defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) || defined(STM32L151xDX) \ + || defined(STM32L152xDX) || defined(STM32L162xDX) +static void FLASH_OB_WRPConfigWRP4(uint32_t WRP4, FunctionalState NewState); +#endif /* STM32L151xE || STM32L152xE || STM32L151xDX || ... */ +#if defined(FLASH_OBR_SPRMOD) +static HAL_StatusTypeDef FLASH_OB_PCROPConfig(FLASH_AdvOBProgramInitTypeDef *pAdvOBInit, FunctionalState NewState); +#endif /* FLASH_OBR_SPRMOD */ +#if defined(FLASH_OBR_nRST_BFB2) +static HAL_StatusTypeDef FLASH_OB_BootConfig(uint8_t OB_BOOT); +#endif /* FLASH_OBR_nRST_BFB2 */ +static HAL_StatusTypeDef FLASH_OB_RDPConfig(uint8_t OB_RDP); +static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t OB_IWDG, uint8_t OB_STOP, uint8_t OB_STDBY); +static HAL_StatusTypeDef FLASH_OB_BORConfig(uint8_t OB_BOR); +static uint8_t FLASH_OB_GetRDP(void); +static uint8_t FLASH_OB_GetUser(void); +static uint8_t FLASH_OB_GetBOR(void); +static HAL_StatusTypeDef FLASH_DATAEEPROM_FastProgramByte(uint32_t Address, uint8_t Data); +static HAL_StatusTypeDef FLASH_DATAEEPROM_FastProgramHalfWord(uint32_t Address, uint16_t Data); +static HAL_StatusTypeDef FLASH_DATAEEPROM_FastProgramWord(uint32_t Address, uint32_t Data); +static HAL_StatusTypeDef FLASH_DATAEEPROM_ProgramWord(uint32_t Address, uint32_t Data); +static HAL_StatusTypeDef FLASH_DATAEEPROM_ProgramHalfWord(uint32_t Address, uint16_t Data); +static HAL_StatusTypeDef FLASH_DATAEEPROM_ProgramByte(uint32_t Address, uint8_t Data); +/** + * @} + */ + +/* Exported functions ---------------------------------------------------------*/ +/** @defgroup FLASHEx_Exported_Functions FLASHEx Exported Functions + * @{ + */ + +/** @defgroup FLASHEx_Exported_Functions_Group1 FLASHEx Memory Erasing functions + * @brief FLASH Memory Erasing functions + * +@verbatim + ============================================================================== + ##### FLASH Erasing Programming functions ##### + ============================================================================== + + [..] The FLASH Memory Erasing functions, includes the following functions: + (+) HAL_FLASHEx_Erase: return only when erase has been done + (+) HAL_FLASHEx_Erase_IT: end of erase is done when HAL_FLASH_EndOfOperationCallback + is called with parameter 0xFFFFFFFF + + [..] Any operation of erase should follow these steps: + (#) Call the HAL_FLASH_Unlock() function to enable the flash control register and + program memory access. + (#) Call the desired function to erase page. + (#) Call the HAL_FLASH_Lock() to disable the flash program memory access + (recommended to protect the FLASH memory against possible unwanted operation). + +@endverbatim + * @{ + */ + +/** + * @brief 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) + * @note For STM32L151xDX/STM32L152xDX/STM32L162xDX, as memory is not continuous between + * 2 banks, user should perform pages erase by bank only. + * @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; + uint32_t address = 0U; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if (status == HAL_OK) + { + /*Initialization of PageError variable*/ + *PageError = 0xFFFFFFFFU; + + /* Check the parameters */ + assert_param(IS_NBPAGES(pEraseInit->NbPages)); + assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); + assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress)); + assert_param(IS_FLASH_PROGRAM_ADDRESS((pEraseInit->PageAddress & ~(FLASH_PAGE_SIZE - 1U)) + pEraseInit->NbPages * FLASH_PAGE_SIZE - 1U)); + +#if defined(STM32L151xDX) || defined(STM32L152xDX) || defined(STM32L162xDX) + /* Check on which bank belongs the 1st address to erase */ + if (pEraseInit->PageAddress < FLASH_BANK2_BASE) + { + /* BANK1 */ + /* Check that last page to erase still belongs to BANK1 */ + if (((pEraseInit->PageAddress & ~(FLASH_PAGE_SIZE - 1U)) + pEraseInit->NbPages * FLASH_PAGE_SIZE - 1U) > FLASH_BANK1_END) + { + /* Last page does not belong to BANK1, erase procedure cannot be performed because memory is not + continuous */ + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + return HAL_ERROR; + } + } + else + { + /* BANK2 */ + /* Check that last page to erase still belongs to BANK2 */ + if (((pEraseInit->PageAddress & ~(FLASH_PAGE_SIZE - 1U)) + pEraseInit->NbPages * FLASH_PAGE_SIZE - 1U) > FLASH_BANK2_END) + { + /* Last page does not belong to BANK2, erase procedure cannot be performed because memory is not + continuous */ + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + return HAL_ERROR; + } + } +#endif /* STM32L151xDX || STM32L152xDX || STM32L162xDX */ + + /* 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(FLASH_TIMEOUT_VALUE); + + /* If the erase operation is completed, disable the ERASE Bit */ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_PROG); + CLEAR_BIT(FLASH->PECR, FLASH_PECR_ERASE); + + 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 page erase of 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) + * End of erase is done when @ref HAL_FLASH_EndOfOperationCallback is called with parameter + * 0xFFFFFFFF + * @note For STM32L151xDX/STM32L152xDX/STM32L162xDX, as memory is not continuous between + * 2 banks, user should perform pages erase by bank only. + * @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; + + /* If procedure already ongoing, reject the next one */ + if (pFlash.ProcedureOnGoing != FLASH_PROC_NONE) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_NBPAGES(pEraseInit->NbPages)); + assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); + assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress)); + assert_param(IS_FLASH_PROGRAM_ADDRESS((pEraseInit->PageAddress & ~(FLASH_PAGE_SIZE - 1U)) + pEraseInit->NbPages * FLASH_PAGE_SIZE - 1U)); + + /* Process Locked */ + __HAL_LOCK(&pFlash); + +#if defined(STM32L151xDX) || defined(STM32L152xDX) || defined(STM32L162xDX) + /* Check on which bank belongs the 1st address to erase */ + if (pEraseInit->PageAddress < FLASH_BANK2_BASE) + { + /* BANK1 */ + /* Check that last page to erase still belongs to BANK1 */ + if (((pEraseInit->PageAddress & ~(FLASH_PAGE_SIZE - 1U)) + pEraseInit->NbPages * FLASH_PAGE_SIZE - 1U) > FLASH_BANK1_END) + { + /* Last page does not belong to BANK1, erase procedure cannot be performed because memory is not + continuous */ + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + return HAL_ERROR; + } + } + else + { + /* BANK2 */ + /* Check that last page to erase still belongs to BANK2 */ + if (((pEraseInit->PageAddress & ~(FLASH_PAGE_SIZE - 1U)) + pEraseInit->NbPages * FLASH_PAGE_SIZE - 1U) > FLASH_BANK2_END) + { + /* Last page does not belong to BANK2, erase procedure cannot be performed because memory is not + continuous */ + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + return HAL_ERROR; + } + } +#endif /* STM32L151xDX || STM32L152xDX || STM32L162xDX */ + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if (status == HAL_OK) + { + /* Enable End of FLASH Operation and Error source interrupts */ + __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR); + + pFlash.ProcedureOnGoing = FLASH_PROC_PAGEERASE; + pFlash.NbPagesToErase = pEraseInit->NbPages; + pFlash.Page = pEraseInit->PageAddress; + + /*Erase 1st page and wait for IT*/ + FLASH_PageErase(pEraseInit->PageAddress); + } + else + { + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + } + + return status; +} + +/** + * @} + */ + +/** @defgroup FLASHEx_Exported_Functions_Group2 Option Bytes Programming functions + * @brief Option Bytes Programming functions + * +@verbatim + ============================================================================== + ##### Option Bytes Programming functions ##### + ============================================================================== + + [..] Any operation of erase or program should follow these steps: + (#) Call the HAL_FLASH_OB_Unlock() function to enable the Flash option control + register access. + (#) Call following function to program the desired option bytes. + (++) HAL_FLASHEx_OBProgram: + - To Enable/Disable the desired sector write protection. + - To set the desired read Protection Level. + - To configure the user option Bytes: IWDG, STOP and the Standby. + - To Set the BOR level. + (#) Once all needed option bytes to be programmed are correctly written, call the + HAL_FLASH_OB_Launch(void) function to launch the Option Bytes programming process. + (#) Call the HAL_FLASH_OB_Lock() to disable the Flash option control register access (recommended + to protect the option Bytes against possible unwanted operations). + + [..] Proprietary code Read Out Protection (PcROP): + (#) The PcROP sector is selected by using the same option bytes as the Write + protection (nWRPi bits). As a result, these 2 options are exclusive each other. + (#) In order to activate the PcROP (change the function of the nWRPi option bits), + the SPRMOD option bit must be activated. + (#) The active value of nWRPi bits is inverted when PCROP mode is active, this + means: if SPRMOD = 1 and nWRPi = 1 (default value), then the user sector "i" + is read/write protected. + (#) To activate PCROP mode for Flash sector(s), you need to call the following function: + (++) HAL_FLASHEx_AdvOBProgram in selecting sectors to be read/write protected + (++) HAL_FLASHEx_OB_SelectPCROP to enable the read/write protection + (#) PcROP is available only in STM32L151xBA, STM32L152xBA, STM32L151xC, STM32L152xC & STM32L162xC devices. + +@endverbatim + * @{ + */ + +/** + * @brief Program option bytes + * @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 Sector*/ + status = FLASH_OB_WRPConfig(pOBInit, ENABLE); + } + else + { + /* Disable of Write protection on the selected Sector*/ + status = FLASH_OB_WRPConfig(pOBInit, DISABLE); + } + if (status != HAL_OK) + { + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + return status; + } + } + + /* Read protection configuration*/ + if((pOBInit->OptionType & OPTIONBYTE_RDP) == OPTIONBYTE_RDP) + { + status = FLASH_OB_RDPConfig(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 & OB_IWDG_SW, + pOBInit->USERConfig & OB_STOP_NORST, + pOBInit->USERConfig & OB_STDBY_NORST); + if (status != HAL_OK) + { + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + return status; + } + } + + /* BOR Level configuration*/ + if((pOBInit->OptionType & OPTIONBYTE_BOR) == OPTIONBYTE_BOR) + { + status = FLASH_OB_BORConfig(pOBInit->BORLevel); + 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 | OPTIONBYTE_BOR; + + /*Get WRP1*/ + pOBInit->WRPSector0To31 = (uint32_t)(FLASH->WRPR1); + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC) \ + || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L151xDX) || defined(STM32L152xCA) \ + || defined(STM32L152xD) || defined(STM32L152xDX) || defined(STM32L162xCA) || defined(STM32L162xD) \ + || defined(STM32L162xDX) || defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) + + /*Get WRP2*/ + pOBInit->WRPSector32To63 = (uint32_t)(FLASH->WRPR2); + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || (...) || STM32L151xE || STM32L152xE || STM32L162xE */ + +#if defined(STM32L151xD) || defined(STM32L151xDX) || defined(STM32L152xD) || defined(STM32L152xDX) \ + || defined(STM32L162xD) || defined(STM32L162xDX) || defined(STM32L151xE) || defined(STM32L152xE) \ + || defined(STM32L162xE) + + /*Get WRP3*/ + pOBInit->WRPSector64To95 = (uint32_t)(FLASH->WRPR3); + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */ + +#if defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) || defined(STM32L151xDX) \ + || defined(STM32L152xDX) || defined(STM32L162xDX) + + /*Get WRP4*/ + pOBInit->WRPSector96To127 = (uint32_t)(FLASH->WRPR4); + +#endif /* STM32L151xE || STM32L152xE || STM32L162xE || STM32L151xDX || ... */ + + /*Get RDP Level*/ + pOBInit->RDPLevel = FLASH_OB_GetRDP(); + + /*Get USER*/ + pOBInit->USERConfig = FLASH_OB_GetUser(); + + /*Get BOR Level*/ + pOBInit->BORLevel = FLASH_OB_GetBOR(); +} + +#if defined(FLASH_OBR_SPRMOD) || defined(FLASH_OBR_nRST_BFB2) + +/** + * @brief Program option bytes + * @note This function can be used only for Cat2 & Cat3 devices for PCROP and Cat4 & Cat5 for BFB2. + * @param pAdvOBInit pointer to an FLASH_AdvOBProgramInitTypeDef structure that + * contains the configuration information for the programming. + * + * @retval HAL_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef HAL_FLASHEx_AdvOBProgram (FLASH_AdvOBProgramInitTypeDef *pAdvOBInit) +{ + HAL_StatusTypeDef status = HAL_ERROR; + + /* Check the parameters */ + assert_param(IS_OBEX(pAdvOBInit->OptionType)); + +#if defined(FLASH_OBR_SPRMOD) + + /* Program PCROP option byte*/ + if ((pAdvOBInit->OptionType & OPTIONBYTE_PCROP) == OPTIONBYTE_PCROP) + { + /* Check the parameters */ + assert_param(IS_PCROPSTATE(pAdvOBInit->PCROPState)); + if (pAdvOBInit->PCROPState == OB_PCROP_STATE_ENABLE) + { + /*Enable of Write protection on the selected Sector*/ + status = FLASH_OB_PCROPConfig(pAdvOBInit, ENABLE); + if (status != HAL_OK) + { + return status; + } + } + else + { + /* Disable of Write protection on the selected Sector*/ + status = FLASH_OB_PCROPConfig(pAdvOBInit, DISABLE); + if (status != HAL_OK) + { + return status; + } + } + } + +#endif /* FLASH_OBR_SPRMOD */ + +#if defined(FLASH_OBR_nRST_BFB2) + + /* Program BOOT config option byte */ + if ((pAdvOBInit->OptionType & OPTIONBYTE_BOOTCONFIG) == OPTIONBYTE_BOOTCONFIG) + { + status = FLASH_OB_BootConfig(pAdvOBInit->BootConfig); + } + +#endif /* FLASH_OBR_nRST_BFB2 */ + + return status; +} + +/** + * @brief Get the OBEX byte configuration + * @note This function can be used only for Cat2 & Cat3 devices for PCROP and Cat4 & Cat5 for BFB2. + * @param pAdvOBInit pointer to an FLASH_AdvOBProgramInitTypeDef structure that + * contains the configuration information for the programming. + * + * @retval None + */ +void HAL_FLASHEx_AdvOBGetConfig(FLASH_AdvOBProgramInitTypeDef *pAdvOBInit) +{ + pAdvOBInit->OptionType = 0U; + +#if defined(FLASH_OBR_SPRMOD) + + pAdvOBInit->OptionType |= OPTIONBYTE_PCROP; + + /*Get PCROP state */ + pAdvOBInit->PCROPState = (FLASH->OBR & FLASH_OBR_SPRMOD) >> POSITION_VAL(FLASH_OBR_SPRMOD); + + /*Get PCROP protected sector from 0 to 31 */ + pAdvOBInit->PCROPSector0To31 = FLASH->WRPR1; + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC) + + /*Get PCROP protected sector from 32 to 63 */ + pAdvOBInit->PCROPSector32To63 = FLASH->WRPR2; + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC */ +#endif /* FLASH_OBR_SPRMOD */ + +#if defined(FLASH_OBR_nRST_BFB2) + + pAdvOBInit->OptionType |= OPTIONBYTE_BOOTCONFIG; + + /* Get Boot config OB */ + pAdvOBInit->BootConfig = (FLASH->OBR & FLASH_OBR_nRST_BFB2) >> 16U; + +#endif /* FLASH_OBR_nRST_BFB2 */ +} + +#endif /* FLASH_OBR_SPRMOD || FLASH_OBR_nRST_BFB2 */ + +#if defined(FLASH_OBR_SPRMOD) + +/** + * @brief Select the Protection Mode (SPRMOD). + * @note This function can be used only for STM32L151xBA, STM32L152xBA, STM32L151xC, STM32L152xC & STM32L162xC devices + * @note Once SPRMOD bit is active, unprotection of a protected sector is not possible + * @note Read a protected sector will set RDERR Flag and write a protected sector will set WRPERR Flag + * @retval HAL status + */ +HAL_StatusTypeDef HAL_FLASHEx_OB_SelectPCROP(void) +{ + HAL_StatusTypeDef status = HAL_OK; + uint16_t tmp1 = 0U; + uint32_t tmp2 = 0U; + uint8_t optiontmp = 0U; + uint16_t optiontmp2 = 0U; + + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + /* Mask RDP Byte */ + optiontmp = (uint8_t)(*(__IO uint8_t *)(OB_BASE)); + + /* Update Option Byte */ + optiontmp2 = (uint16_t)(OB_PCROP_SELECTED | optiontmp); + + /* calculate the option byte to write */ + tmp1 = (uint16_t)(~(optiontmp2 )); + tmp2 = (uint32_t)(((uint32_t)((uint32_t)(tmp1) << 16U)) | ((uint32_t)optiontmp2)); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* program PCRop */ + OB->RDP = tmp2; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + + /* Return the Read protection operation Status */ + return status; +} + +/** + * @brief Deselect the Protection Mode (SPRMOD). + * @note This function can be used only for STM32L151xBA, STM32L152xBA, STM32L151xC, STM32L152xC & STM32L162xC devices + * @note Once SPRMOD bit is active, unprotection of a protected sector is not possible + * @note Read a protected sector will set RDERR Flag and write a protected sector will set WRPERR Flag + * @retval HAL status + */ +HAL_StatusTypeDef HAL_FLASHEx_OB_DeSelectPCROP(void) +{ + HAL_StatusTypeDef status = HAL_OK; + uint16_t tmp1 = 0U; + uint32_t tmp2 = 0U; + uint8_t optiontmp = 0U; + uint16_t optiontmp2 = 0U; + + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + /* Mask RDP Byte */ + optiontmp = (uint8_t)(*(__IO uint8_t *)(OB_BASE)); + + /* Update Option Byte */ + optiontmp2 = (uint16_t)(OB_PCROP_DESELECTED | optiontmp); + + /* calculate the option byte to write */ + tmp1 = (uint16_t)(~(optiontmp2 )); + tmp2 = (uint32_t)(((uint32_t)((uint32_t)(tmp1) << 16U)) | ((uint32_t)optiontmp2)); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* program PCRop */ + OB->RDP = tmp2; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + + /* Return the Read protection operation Status */ + return status; +} + +#endif /* FLASH_OBR_SPRMOD */ + +/** + * @} + */ + +/** @defgroup FLASHEx_Exported_Functions_Group3 DATA EEPROM Programming functions + * @brief DATA EEPROM Programming functions + * +@verbatim + =============================================================================== + ##### DATA EEPROM Programming functions ##### + =============================================================================== + + [..] Any operation of erase or program should follow these steps: + (#) Call the HAL_FLASHEx_DATAEEPROM_Unlock() function to enable the data EEPROM access + and Flash program erase control register access. + (#) Call the desired function to erase or program data. + (#) Call the HAL_FLASHEx_DATAEEPROM_Lock() to disable the data EEPROM access + and Flash program erase control register access(recommended + to protect the DATA_EEPROM against possible unwanted operation). + +@endverbatim + * @{ + */ + +/** + * @brief Unlocks the data memory and FLASH_PECR register access. + * @retval HAL_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Unlock(void) +{ + if((FLASH->PECR & FLASH_PECR_PELOCK) != RESET) + { + /* Unlocking the Data memory and FLASH_PECR register access*/ + FLASH->PEKEYR = FLASH_PEKEY1; + FLASH->PEKEYR = FLASH_PEKEY2; + } + else + { + return HAL_ERROR; + } + return HAL_OK; +} + +/** + * @brief Locks the Data memory and FLASH_PECR register access. + * @retval HAL_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Lock(void) +{ + /* Set the PELOCK Bit to lock the data memory and FLASH_PECR register access */ + SET_BIT(FLASH->PECR, FLASH_PECR_PELOCK); + + return HAL_OK; +} + +/** + * @brief Erase a word in data memory. + * @param Address specifies the address to be erased. + * @param TypeErase Indicate the way to erase at a specified address. + * This parameter can be a value of @ref FLASH_Type_Program + * @note To correctly run this function, the @ref HAL_FLASHEx_DATAEEPROM_Unlock() function + * must be called before. + * Call the @ref HAL_FLASHEx_DATAEEPROM_Lock() to the data EEPROM access + * and Flash program erase control register access(recommended to protect + * the DATA_EEPROM against possible unwanted operation). + * @retval HAL_StatusTypeDef HAL Status + */ +HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Erase(uint32_t TypeErase, uint32_t Address) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_TYPEERASEDATA(TypeErase)); + assert_param(IS_FLASH_DATA_ADDRESS(Address)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + if(TypeErase == FLASH_TYPEERASEDATA_WORD) + { + /* Write 00000000h to valid address in the data memory */ + *(__IO uint32_t *) Address = 0x00000000U; + } + + if(TypeErase == FLASH_TYPEERASEDATA_HALFWORD) + { + /* Write 0000h to valid address in the data memory */ + *(__IO uint16_t *) Address = (uint16_t)0x0000; + } + + if(TypeErase == FLASH_TYPEERASEDATA_BYTE) + { + /* Write 00h to valid address in the data memory */ + *(__IO uint8_t *) Address = (uint8_t)0x00; + } + + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + + /* Return the erase status */ + return status; +} + +/** + * @brief Program word at a specified address + * @note To correctly run this function, the @ref HAL_FLASHEx_DATAEEPROM_Unlock() function + * must be called before. + * Call the @ref HAL_FLASHEx_DATAEEPROM_Unlock() to he data EEPROM access + * and Flash program erase control register access(recommended to protect + * the DATA_EEPROM against possible unwanted operation). + * @note The function @ref HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram() can be called before + * this function to configure the Fixed Time Programming. + * @param TypeProgram Indicate the way to program at a specified address. + * This parameter can be a value of @ref FLASHEx_Type_Program_Data + * @param Address specifie the address to be programmed. + * @param Data specifie the data to be programmed + * + * @retval HAL_StatusTypeDef HAL Status + */ + +HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Program(uint32_t TypeProgram, uint32_t Address, uint32_t Data) +{ + HAL_StatusTypeDef status; + + /* Process Locked */ + __HAL_LOCK(&pFlash); + + /* Check the parameters */ + assert_param(IS_TYPEPROGRAMDATA(TypeProgram)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + if(TypeProgram == FLASH_TYPEPROGRAMDATA_WORD) + { + /* Program word (32-bit) at a specified address.*/ + status = FLASH_DATAEEPROM_ProgramWord(Address, (uint32_t) Data); + } + else if(TypeProgram == FLASH_TYPEPROGRAMDATA_HALFWORD) + { + /* Program halfword (16-bit) at a specified address.*/ + status = FLASH_DATAEEPROM_ProgramHalfWord(Address, (uint16_t) Data); + } + else if(TypeProgram == FLASH_TYPEPROGRAMDATA_BYTE) + { + /* Program byte (8-bit) at a specified address.*/ + status = FLASH_DATAEEPROM_ProgramByte(Address, (uint8_t) Data); + } + else if(TypeProgram == FLASH_TYPEPROGRAMDATA_FASTBYTE) + { + /*Program word (8-bit) at a specified address.*/ + status = FLASH_DATAEEPROM_FastProgramByte(Address, (uint8_t) Data); + } + else if(TypeProgram == FLASH_TYPEPROGRAMDATA_FASTHALFWORD) + { + /* Program halfword (16-bit) at a specified address.*/ + status = FLASH_DATAEEPROM_FastProgramHalfWord(Address, (uint16_t) Data); + } + else if(TypeProgram == FLASH_TYPEPROGRAMDATA_FASTWORD) + { + /* Program word (32-bit) at a specified address.*/ + status = FLASH_DATAEEPROM_FastProgramWord(Address, (uint32_t) Data); + } + else + { + status = HAL_ERROR; + } + + } + + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + + return status; +} + +/** + * @brief Enable DATA EEPROM fixed Time programming (2*Tprog). + * @retval None + */ +void HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram(void) +{ + SET_BIT(FLASH->PECR, FLASH_PECR_FTDW); +} + +/** + * @brief Disables DATA EEPROM fixed Time programming (2*Tprog). + * @retval None + */ +void HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram(void) +{ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_FTDW); +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup FLASHEx_Private_Functions + * @{ + */ + +/* +============================================================================== + OPTIONS BYTES +============================================================================== +*/ +/** + * @brief Enables or disables the read out protection. + * @note To correctly run this function, the @ref HAL_FLASH_OB_Unlock() function + * must be called before. + * @param OB_RDP specifies the read protection level. + * This parameter can be: + * @arg @ref OB_RDP_LEVEL_0 No protection + * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory + * @arg @ref OB_RDP_LEVEL_2 Chip protection + * + * !!!Warning!!! When enabling OB_RDP_LEVEL_2 it's no more possible to go back to level 1 or 0 + * + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_OB_RDPConfig(uint8_t OB_RDP) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmp1 = 0U, tmp2 = 0U, tmp3 = 0U; + + /* Check the parameters */ + assert_param(IS_OB_RDP(OB_RDP)); + + tmp1 = (uint32_t)(OB->RDP & FLASH_OBR_RDPRT); + + /* According to errata sheet, DocID022054 Rev 5, par2.1.5 + Before setting Level0 in the RDP register, check that the current level is not equal to Level0. + If the current level is not equal to Level0, Level0 can be activated. + If the current level is Level0 then the RDP register must not be written again with Level0. */ + + if ((tmp1 == OB_RDP_LEVEL_0) && (OB_RDP == OB_RDP_LEVEL_0)) + { + /*current level is Level0 then the RDP register must not be written again with Level0. */ + status = HAL_ERROR; + } + else + { +#if defined(FLASH_OBR_SPRMOD) + /* Mask SPRMOD bit */ + tmp3 = (uint32_t)(OB->RDP & FLASH_OBR_SPRMOD); +#endif + + /* calculate the option byte to write */ + tmp1 = (~((uint32_t)(OB_RDP | tmp3))); + tmp2 = (uint32_t)(((uint32_t)((uint32_t)(tmp1) << 16U)) | ((uint32_t)(OB_RDP | tmp3))); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* program read protection level */ + OB->RDP = tmp2; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + } + + /* Return the Read protection operation Status */ + return status; +} + +/** + * @brief Programs the FLASH brownout reset threshold level Option Byte. + * @param OB_BOR Selects the brownout reset threshold level. + * This parameter can be one of the following values: + * @arg @ref OB_BOR_OFF BOR is disabled at power down, the reset is asserted when the VDD + * power supply reaches the PDR(Power Down Reset) threshold (1.5V) + * @arg @ref OB_BOR_LEVEL1 BOR Reset threshold levels for 1.7V - 1.8V VDD power supply + * @arg @ref OB_BOR_LEVEL2 BOR Reset threshold levels for 1.9V - 2.0V VDD power supply + * @arg @ref OB_BOR_LEVEL3 BOR Reset threshold levels for 2.3V - 2.4V VDD power supply + * @arg @ref OB_BOR_LEVEL4 BOR Reset threshold levels for 2.55V - 2.65V VDD power supply + * @arg @ref OB_BOR_LEVEL5 BOR Reset threshold levels for 2.8V - 2.9V VDD power supply + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_OB_BORConfig(uint8_t OB_BOR) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmp = 0U, tmp1 = 0U; + + /* Check the parameters */ + assert_param(IS_OB_BOR_LEVEL(OB_BOR)); + + /* Get the User Option byte register */ + tmp1 = OB->USER & ((~FLASH_OBR_BOR_LEV) >> 16U); + + /* Calculate the option byte to write - [0xFFU | nUSER | 0x00U | USER]*/ + tmp = (uint32_t)~((OB_BOR | tmp1)) << 16U; + tmp |= (OB_BOR | tmp1); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Write the BOR Option Byte */ + OB->USER = tmp; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + + /* Return the Option Byte BOR Programming Status */ + return status; +} + +/** + * @brief Returns the FLASH User Option Bytes values. + * @retval The FLASH User Option Bytes. + */ +static uint8_t FLASH_OB_GetUser(void) +{ + /* Return the User Option Byte */ + return (uint8_t)((FLASH->OBR & (FLASH_OBR_IWDG_SW | FLASH_OBR_nRST_STOP | FLASH_OBR_nRST_STDBY)) >> 16U); +} + +/** + * @brief Returns the FLASH Read Protection level. + * @retval FLASH RDP level + * This parameter can be one of the following values: + * @arg @ref OB_RDP_LEVEL_0 No protection + * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory + * @arg @ref OB_RDP_LEVEL_2 Full chip protection + */ +static uint8_t FLASH_OB_GetRDP(void) +{ + uint8_t rdp_level = (uint8_t)(FLASH->OBR & FLASH_OBR_RDPRT); + + if ((rdp_level != OB_RDP_LEVEL_0) && (rdp_level != OB_RDP_LEVEL_2)) + { + return (OB_RDP_LEVEL_1); + } + else + { + return (rdp_level); + } +} + +/** + * @brief Returns the FLASH BOR level. + * @retval The BOR level Option Bytes. + */ +static uint8_t FLASH_OB_GetBOR(void) +{ + /* Return the BOR level */ + return (uint8_t)((FLASH->OBR & (uint32_t)FLASH_OBR_BOR_LEV) >> 16U); +} + +/** + * @brief Write protects the desired pages of the first 64KB of the Flash. + * @param pOBInit pointer to an FLASH_OBInitStruct structure that + * contains WRP parameters. + * @param NewState new state of the specified FLASH Pages Wtite protection. + * This parameter can be: ENABLE or DISABLE. + * @retval HAL_StatusTypeDef + */ +static HAL_StatusTypeDef FLASH_OB_WRPConfig(FLASH_OBProgramInitTypeDef *pOBInit, FunctionalState NewState) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* WRP for sector between 0 to 31 */ + if (pOBInit->WRPSector0To31 != 0U) + { + FLASH_OB_WRPConfigWRP1OrPCROP1(pOBInit->WRPSector0To31, NewState); + } + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC) \ + || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L151xDX) || defined(STM32L152xCA) \ + || defined(STM32L152xD) || defined(STM32L152xDX) || defined(STM32L162xCA) || defined(STM32L162xD) \ + || defined(STM32L162xDX) || defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) + + /* Pages for Cat3, Cat4 & Cat5 devices*/ + /* WRP for sector between 32 to 63 */ + if (pOBInit->WRPSector32To63 != 0U) + { + FLASH_OB_WRPConfigWRP2OrPCROP2(pOBInit->WRPSector32To63, NewState); + } + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || (...) || STM32L151xE || STM32L152xE || STM32L162xE */ + +#if defined(STM32L151xD) || defined(STM32L151xDX) || defined(STM32L152xD) || defined(STM32L152xDX) \ + || defined(STM32L162xD) || defined(STM32L162xDX) || defined(STM32L151xE) || defined(STM32L152xE) \ + || defined(STM32L162xE) + + /* Pages for devices with FLASH >= 256KB*/ + /* WRP for sector between 64 to 95 */ + if (pOBInit->WRPSector64To95 != 0U) + { + FLASH_OB_WRPConfigWRP3(pOBInit->WRPSector64To95, NewState); + } + +#endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */ + +#if defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) || defined(STM32L151xDX) \ + || defined(STM32L152xDX) || defined(STM32L162xDX) + + /* Pages for Cat5 devices*/ + /* WRP for sector between 96 to 127 */ + if (pOBInit->WRPSector96To127 != 0U) + { + FLASH_OB_WRPConfigWRP4(pOBInit->WRPSector96To127, NewState); + } + +#endif /* STM32L151xE || STM32L152xE || STM32L162xE || STM32L151xDX || ... */ + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + + /* Return the write protection operation Status */ + return status; +} + +#if defined(STM32L151xBA) || defined(STM32L152xBA) || defined(STM32L151xC) || defined(STM32L152xC) \ + || defined(STM32L162xC) +/** + * @brief Enables the read/write protection (PCROP) of the desired + * sectors. + * @note This function can be used only for Cat2 & Cat3 devices + * @param pAdvOBInit pointer to an FLASH_AdvOBProgramInitTypeDef structure that + * contains PCROP parameters. + * @param NewState new state of the specified FLASH Pages read/Write protection. + * This parameter can be: ENABLE or DISABLE. + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_OB_PCROPConfig(FLASH_AdvOBProgramInitTypeDef *pAdvOBInit, FunctionalState NewState) +{ + HAL_StatusTypeDef status = HAL_OK; + FunctionalState pcropstate = DISABLE; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + /* Invert state to use same function of WRP */ + if (NewState == DISABLE) + { + pcropstate = ENABLE; + } + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Pages for Cat2 devices*/ + /* PCROP for sector between 0 to 31 */ + if (pAdvOBInit->PCROPSector0To31 != 0U) + { + FLASH_OB_WRPConfigWRP1OrPCROP1(pAdvOBInit->PCROPSector0To31, pcropstate); + } + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC) + + /* Pages for Cat3 devices*/ + /* WRP for sector between 32 to 63 */ + if (pAdvOBInit->PCROPSector32To63 != 0U) + { + FLASH_OB_WRPConfigWRP2OrPCROP2(pAdvOBInit->PCROPSector32To63, pcropstate); + } + +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC */ + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + + /* Return the write protection operation Status */ + return status; +} +#endif /* STM32L151xBA || STM32L152xBA || STM32L151xC || STM32L152xC || STM32L162xC */ + +/** + * @brief Write protects the desired pages of the first 128KB of the Flash. + * @param WRP1OrPCROP1 specifies the address of the pages to be write protected. + * This parameter can be a combination of @ref FLASHEx_Option_Bytes_Write_Protection1 + * @param NewState new state of the specified FLASH Pages Write protection. + * This parameter can be: ENABLE or DISABLE. + * @retval None + */ +static void FLASH_OB_WRPConfigWRP1OrPCROP1(uint32_t WRP1OrPCROP1, FunctionalState NewState) +{ + uint32_t wrp01data = 0U, wrp23data = 0U; + + uint32_t tmp1 = 0U, tmp2 = 0U; + + /* Check the parameters */ + assert_param(IS_OB_WRP(WRP1OrPCROP1)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + wrp01data = (uint16_t)(((WRP1OrPCROP1 & WRP_MASK_LOW) | OB->WRP01)); + wrp23data = (uint16_t)((((WRP1OrPCROP1 & WRP_MASK_HIGH)>>16U | OB->WRP23))); + tmp1 = (uint32_t)(~(wrp01data) << 16U)|(wrp01data); + OB->WRP01 = tmp1; + + tmp2 = (uint32_t)(~(wrp23data) << 16U)|(wrp23data); + OB->WRP23 = tmp2; + } + else + { + wrp01data = (uint16_t)(~WRP1OrPCROP1 & (WRP_MASK_LOW & OB->WRP01)); + wrp23data = (uint16_t)((((~WRP1OrPCROP1 & WRP_MASK_HIGH)>>16U & OB->WRP23))); + + tmp1 = (uint32_t)((~wrp01data) << 16U)|(wrp01data); + OB->WRP01 = tmp1; + + tmp2 = (uint32_t)((~wrp23data) << 16U)|(wrp23data); + OB->WRP23 = tmp2; + } +} + +#if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC) \ + || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L151xDX) || defined(STM32L152xCA) \ + || defined(STM32L152xD) || defined(STM32L152xDX) || defined(STM32L162xCA) || defined(STM32L162xD) \ + || defined(STM32L162xDX) || defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) +/** + * @brief Enable Write protects the desired pages of the second 128KB of the Flash. + * @note This function can be used only for Cat3, Cat4 & Cat5 devices. + * @param WRP2OrPCROP2 specifies the address of the pages to be write protected. + * This parameter can be a combination of @ref FLASHEx_Option_Bytes_Write_Protection2 + * @param NewState new state of the specified FLASH Pages Wtite protection. + * This parameter can be: ENABLE or DISABLE. + * @retval None + */ +static void FLASH_OB_WRPConfigWRP2OrPCROP2(uint32_t WRP2OrPCROP2, FunctionalState NewState) +{ + uint32_t wrp45data = 0U, wrp67data = 0U; + + uint32_t tmp1 = 0U, tmp2 = 0U; + + /* Check the parameters */ + assert_param(IS_OB_WRP(WRP2OrPCROP2)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + wrp45data = (uint16_t)(((WRP2OrPCROP2 & WRP_MASK_LOW) | OB->WRP45)); + wrp67data = (uint16_t)((((WRP2OrPCROP2 & WRP_MASK_HIGH)>>16U | OB->WRP67))); + tmp1 = (uint32_t)(~(wrp45data) << 16U)|(wrp45data); + OB->WRP45 = tmp1; + + tmp2 = (uint32_t)(~(wrp67data) << 16U)|(wrp67data); + OB->WRP67 = tmp2; + } + else + { + wrp45data = (uint16_t)(~WRP2OrPCROP2 & (WRP_MASK_LOW & OB->WRP45)); + wrp67data = (uint16_t)((((~WRP2OrPCROP2 & WRP_MASK_HIGH)>>16U & OB->WRP67))); + + tmp1 = (uint32_t)((~wrp45data) << 16U)|(wrp45data); + OB->WRP45 = tmp1; + + tmp2 = (uint32_t)((~wrp67data) << 16U)|(wrp67data); + OB->WRP67 = tmp2; + } +} +#endif /* STM32L100xC || STM32L151xC || STM32L152xC || (...) || STM32L151xE || STM32L152xE || STM32L162xE */ + +#if defined(STM32L151xD) || defined(STM32L151xDX) || defined(STM32L152xD) || defined(STM32L152xDX) \ + || defined(STM32L162xD) || defined(STM32L162xDX) || defined(STM32L151xE) || defined(STM32L152xE) \ + || defined(STM32L162xE) +/** + * @brief Enable Write protects the desired pages of the third 128KB of the Flash. + * @note This function can be used only for STM32L151xD, STM32L152xD, STM32L162xD & Cat5 devices. + * @param WRP3 specifies the address of the pages to be write protected. + * This parameter can be a combination of @ref FLASHEx_Option_Bytes_Write_Protection3 + * @param NewState new state of the specified FLASH Pages Wtite protection. + * This parameter can be: ENABLE or DISABLE. + * @retval None + */ +static void FLASH_OB_WRPConfigWRP3(uint32_t WRP3, FunctionalState NewState) +{ + uint32_t wrp89data = 0U, wrp1011data = 0U; + + uint32_t tmp1 = 0U, tmp2 = 0U; + + /* Check the parameters */ + assert_param(IS_OB_WRP(WRP3)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + wrp89data = (uint16_t)(((WRP3 & WRP_MASK_LOW) | OB->WRP89)); + wrp1011data = (uint16_t)((((WRP3 & WRP_MASK_HIGH)>>16U | OB->WRP1011))); + tmp1 = (uint32_t)(~(wrp89data) << 16U)|(wrp89data); + OB->WRP89 = tmp1; + + tmp2 = (uint32_t)(~(wrp1011data) << 16U)|(wrp1011data); + OB->WRP1011 = tmp2; + } + else + { + wrp89data = (uint16_t)(~WRP3 & (WRP_MASK_LOW & OB->WRP89)); + wrp1011data = (uint16_t)((((~WRP3 & WRP_MASK_HIGH)>>16U & OB->WRP1011))); + + tmp1 = (uint32_t)((~wrp89data) << 16U)|(wrp89data); + OB->WRP89 = tmp1; + + tmp2 = (uint32_t)((~wrp1011data) << 16U)|(wrp1011data); + OB->WRP1011 = tmp2; + } +} +#endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */ + +#if defined(STM32L151xE) || defined(STM32L152xE) || defined(STM32L162xE) || defined(STM32L151xDX) \ + || defined(STM32L152xDX) || defined(STM32L162xDX) +/** + * @brief Enable Write protects the desired pages of the Fourth 128KB of the Flash. + * @note This function can be used only for Cat5 & STM32L1xxDX devices. + * @param WRP4 specifies the address of the pages to be write protected. + * This parameter can be a combination of @ref FLASHEx_Option_Bytes_Write_Protection4 + * @param NewState new state of the specified FLASH Pages Wtite protection. + * This parameter can be: ENABLE or DISABLE. + * @retval None + */ +static void FLASH_OB_WRPConfigWRP4(uint32_t WRP4, FunctionalState NewState) +{ + uint32_t wrp1213data = 0U, wrp1415data = 0U; + + uint32_t tmp1 = 0U, tmp2 = 0U; + + /* Check the parameters */ + assert_param(IS_OB_WRP(WRP4)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + wrp1213data = (uint16_t)(((WRP4 & WRP_MASK_LOW) | OB->WRP1213)); + wrp1415data = (uint16_t)((((WRP4 & WRP_MASK_HIGH)>>16U | OB->WRP1415))); + tmp1 = (uint32_t)(~(wrp1213data) << 16U)|(wrp1213data); + OB->WRP1213 = tmp1; + + tmp2 = (uint32_t)(~(wrp1415data) << 16U)|(wrp1415data); + OB->WRP1415 = tmp2; + } + else + { + wrp1213data = (uint16_t)(~WRP4 & (WRP_MASK_LOW & OB->WRP1213)); + wrp1415data = (uint16_t)((((~WRP4 & WRP_MASK_HIGH)>>16U & OB->WRP1415))); + + tmp1 = (uint32_t)((~wrp1213data) << 16U)|(wrp1213data); + OB->WRP1213 = tmp1; + + tmp2 = (uint32_t)((~wrp1415data) << 16U)|(wrp1415data); + OB->WRP1415 = tmp2; + } +} +#endif /* STM32L151xE || STM32L152xE || STM32L162xE || STM32L151xDX || ... */ + +/** + * @brief Programs the FLASH User Option Byte: IWDG_SW / RST_STOP / RST_STDBY. + * @param OB_IWDG Selects the WDG mode. + * This parameter can be one of the following values: + * @arg @ref OB_IWDG_SW Software WDG selected + * @arg @ref OB_IWDG_HW Hardware WDG selected + * @param OB_STOP Reset event when entering STOP mode. + * This parameter can be one of the following values: + * @arg @ref OB_STOP_NORST No reset generated when entering in STOP + * @arg @ref OB_STOP_RST Reset generated when entering in STOP + * @param OB_STDBY Reset event when entering Standby mode. + * This parameter can be one of the following values: + * @arg @ref OB_STDBY_NORST No reset generated when entering in STANDBY + * @arg @ref OB_STDBY_RST Reset generated when entering in STANDBY + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t OB_IWDG, uint8_t OB_STOP, uint8_t OB_STDBY) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmp = 0U, tmp1 = 0U; + + /* Check the parameters */ + assert_param(IS_OB_IWDG_SOURCE(OB_IWDG)); + assert_param(IS_OB_STOP_SOURCE(OB_STOP)); + assert_param(IS_OB_STDBY_SOURCE(OB_STDBY)); + + /* Get the User Option byte register */ + tmp1 = OB->USER & ((~(FLASH_OBR_IWDG_SW | FLASH_OBR_nRST_STOP | FLASH_OBR_nRST_STDBY)) >> 16U); + + /* Calculate the user option byte to write */ + tmp = (uint32_t)(((uint32_t)~((uint32_t)((uint32_t)(OB_IWDG) | (uint32_t)(OB_STOP) | (uint32_t)(OB_STDBY) | tmp1))) << 16U); + tmp |= ((uint32_t)(OB_IWDG) | ((uint32_t)OB_STOP) | (uint32_t)(OB_STDBY) | tmp1); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Write the User Option Byte */ + OB->USER = tmp; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + + /* Return the Option Byte program Status */ + return status; +} + +#if defined(FLASH_OBR_nRST_BFB2) +/** + * @brief Configures to boot from Bank1 or Bank2. + * @param OB_BOOT select the FLASH Bank to boot from. + * This parameter can be one of the following values: + * @arg @ref OB_BOOT_BANK2 At startup, if boot pins are set in boot from user Flash + * position and this parameter is selected the device will boot from Bank2 or Bank1, + * depending on the activation of the bank. The active banks are checked in + * the following order: Bank2, followed by Bank1. + * The active bank is recognized by the value programmed at the base address + * of the respective bank (corresponding to the initial stack pointer value + * in the interrupt vector table). + * @arg @ref OB_BOOT_BANK1 At startup, if boot pins are set in boot from user Flash + * position and this parameter is selected the device will boot from Bank1(Default). + * For more information, please refer to AN2606 from www.st.com. + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_OB_BootConfig(uint8_t OB_BOOT) +{ + HAL_StatusTypeDef status = HAL_OK; + uint32_t tmp = 0U, tmp1 = 0U; + + /* Check the parameters */ + assert_param(IS_OB_BOOT_BANK(OB_BOOT)); + + /* Get the User Option byte register and BOR Level*/ + tmp1 = OB->USER & ((~FLASH_OBR_nRST_BFB2) >> 16U); + + /* Calculate the option byte to write */ + tmp = (uint32_t)~(OB_BOOT | tmp1) << 16U; + tmp |= (OB_BOOT | tmp1); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Write the BOOT Option Byte */ + OB->USER = tmp; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + + /* Return the Option Byte program Status */ + return status; +} + +#endif /* FLASH_OBR_nRST_BFB2 */ + +/* +============================================================================== + DATA +============================================================================== +*/ + +/** + * @brief Write a Byte at a specified address in data memory. + * @param Address specifies the address to be written. + * @param Data specifies the data to be written. + * @note This function assumes that the is data word is already erased. + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_DATAEEPROM_FastProgramByte(uint32_t Address, uint8_t Data) +{ + HAL_StatusTypeDef status = HAL_OK; +#if defined(STM32L100xB) || defined(STM32L151xB) || defined(STM32L152xB) + uint32_t tmp = 0U, tmpaddr = 0U; +#endif /* STM32L100xB || STM32L151xB || STM32L152xB */ + + /* Check the parameters */ + assert_param(IS_FLASH_DATA_ADDRESS(Address)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clear the FTDW bit */ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_FTDW); + +#if defined(STM32L100xB) || defined(STM32L151xB) || defined(STM32L152xB) + /* Possible only on Cat1 devices */ + if(Data != (uint8_t)0x00U) + { + /* If the previous operation is completed, proceed to write the new Data */ + *(__IO uint8_t *)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + else + { + tmpaddr = Address & 0xFFFFFFFCU; + tmp = * (__IO uint32_t *) tmpaddr; + tmpaddr = 0xFFU << ((uint32_t) (0x8U * (Address & 0x3U))); + tmp &= ~tmpaddr; + status = HAL_FLASHEx_DATAEEPROM_Erase(FLASH_TYPEERASEDATA_WORD, Address & 0xFFFFFFFCU); + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + status = HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_FASTWORD, (Address & 0xFFFFFFFCU), tmp); + /* Process Locked */ + __HAL_LOCK(&pFlash); + } +#else /*!Cat1*/ + /* If the previous operation is completed, proceed to write the new Data */ + *(__IO uint8_t *)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); +#endif /* STM32L100xB || STM32L151xB || STM32L152xB */ + } + /* Return the Write Status */ + return status; +} + +/** + * @brief Writes a half word at a specified address in data memory. + * @param Address specifies the address to be written. + * @param Data specifies the data to be written. + * @note This function assumes that the is data word is already erased. + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_DATAEEPROM_FastProgramHalfWord(uint32_t Address, uint16_t Data) +{ + HAL_StatusTypeDef status = HAL_OK; +#if defined(STM32L100xB) || defined(STM32L151xB) || defined(STM32L152xB) + uint32_t tmp = 0U, tmpaddr = 0U; +#endif /* STM32L100xB || STM32L151xB || STM32L152xB */ + + /* Check the parameters */ + assert_param(IS_FLASH_DATA_ADDRESS(Address)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clear the FTDW bit */ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_FTDW); + +#if defined(STM32L100xB) || defined(STM32L151xB) || defined(STM32L152xB) + /* Possible only on Cat1 devices */ + if(Data != (uint16_t)0x0000U) + { + /* If the previous operation is completed, proceed to write the new data */ + *(__IO uint16_t *)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + else + { + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + if((Address & 0x3U) != 0x3U) + { + tmpaddr = Address & 0xFFFFFFFCU; + tmp = * (__IO uint32_t *) tmpaddr; + tmpaddr = 0xFFFFU << ((uint32_t) (0x8U * (Address & 0x3U))); + tmp &= ~tmpaddr; + status = HAL_FLASHEx_DATAEEPROM_Erase(FLASH_TYPEERASEDATA_WORD, Address & 0xFFFFFFFCU); + status = HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_FASTWORD, (Address & 0xFFFFFFFCU), tmp); + } + else + { + HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_FASTBYTE, Address, 0x00U); + HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_FASTBYTE, Address + 1U, 0x00U); + } + /* Process Locked */ + __HAL_LOCK(&pFlash); + } +#else /* !Cat1 */ + /* If the previous operation is completed, proceed to write the new data */ + *(__IO uint16_t *)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); +#endif /* STM32L100xB || STM32L151xB || STM32L152xB */ + } + /* Return the Write Status */ + return status; +} + +/** + * @brief Programs a word at a specified address in data memory. + * @param Address specifies the address to be written. + * @param Data specifies the data to be written. + * @note This function assumes that the is data word is already erased. + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_DATAEEPROM_FastProgramWord(uint32_t Address, uint32_t Data) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_FLASH_DATA_ADDRESS(Address)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Clear the FTDW bit */ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_FTDW); + + /* If the previous operation is completed, proceed to program the new data */ + *(__IO uint32_t *)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + /* Return the Write Status */ + return status; +} + +/** + * @brief Write a Byte at a specified address in data memory without erase. + * @param Address specifies the address to be written. + * @param Data specifies the data to be written. + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_DATAEEPROM_ProgramByte(uint32_t Address, uint8_t Data) +{ + HAL_StatusTypeDef status = HAL_OK; +#if defined(STM32L100xB) || defined(STM32L151xB) || defined(STM32L152xB) + uint32_t tmp = 0U, tmpaddr = 0U; +#endif /* STM32L100xB || STM32L151xB || STM32L152xB */ + + /* Check the parameters */ + assert_param(IS_FLASH_DATA_ADDRESS(Address)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { +#if defined(STM32L100xB) || defined(STM32L151xB) || defined(STM32L152xB) + if(Data != (uint8_t) 0x00U) + { + *(__IO uint8_t *)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + } + else + { + tmpaddr = Address & 0xFFFFFFFCU; + tmp = * (__IO uint32_t *) tmpaddr; + tmpaddr = 0xFFU << ((uint32_t) (0x8U * (Address & 0x3U))); + tmp &= ~tmpaddr; + status = HAL_FLASHEx_DATAEEPROM_Erase(FLASH_TYPEERASEDATA_WORD, Address & 0xFFFFFFFCU); + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + status = HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_FASTWORD, (Address & 0xFFFFFFFCU), tmp); + /* Process Locked */ + __HAL_LOCK(&pFlash); + } +#else /* Not Cat1*/ + *(__IO uint8_t *)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); +#endif /* STM32L100xB || STM32L151xB || STM32L152xB */ + } + /* Return the Write Status */ + return status; +} + +/** + * @brief Writes a half word at a specified address in data memory without erase. + * @param Address specifies the address to be written. + * @param Data specifies the data to be written. + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_DATAEEPROM_ProgramHalfWord(uint32_t Address, uint16_t Data) +{ + HAL_StatusTypeDef status = HAL_OK; +#if defined(STM32L100xB) || defined(STM32L151xB) || defined(STM32L152xB) + uint32_t tmp = 0U, tmpaddr = 0U; +#endif /* STM32L100xB || STM32L151xB || STM32L152xB */ + + /* Check the parameters */ + assert_param(IS_FLASH_DATA_ADDRESS(Address)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { +#if defined(STM32L100xB) || defined(STM32L151xB) || defined(STM32L152xB) + if(Data != (uint16_t)0x0000U) + { + *(__IO uint16_t *)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + else + { + /* Process Unlocked */ + __HAL_UNLOCK(&pFlash); + if((Address & 0x3U) != 0x3U) + { + tmpaddr = Address & 0xFFFFFFFCU; + tmp = * (__IO uint32_t *) tmpaddr; + tmpaddr = 0xFFFFU << ((uint32_t) (0x8U * (Address & 0x3U))); + tmp &= ~tmpaddr; + status = HAL_FLASHEx_DATAEEPROM_Erase(FLASH_TYPEERASEDATA_WORD, Address & 0xFFFFFFFCU); + status = HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_FASTWORD, (Address & 0xFFFFFFFCU), tmp); + } + else + { + HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_FASTBYTE, Address, 0x00U); + HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_FASTBYTE, Address + 1U, 0x00U); + } + /* Process Locked */ + __HAL_LOCK(&pFlash); + } +#else /* Not Cat1*/ + *(__IO uint16_t *)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); +#endif /* STM32L100xB || STM32L151xB || STM32L152xB */ + } + /* Return the Write Status */ + return status; +} + +/** + * @brief Programs a word at a specified address in data memory without erase. + * @param Address specifies the address to be written. + * @param Data specifies the data to be written. + * @retval HAL status + */ +static HAL_StatusTypeDef FLASH_DATAEEPROM_ProgramWord(uint32_t Address, uint32_t Data) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Check the parameters */ + assert_param(IS_FLASH_DATA_ADDRESS(Address)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + *(__IO uint32_t *)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + } + /* Return the Write Status */ + return status; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup FLASH + * @{ + */ + + +/** @addtogroup FLASH_Private_Functions + * @{ + */ + +/** + * @brief Erases a specified page in program memory. + * @param PageAddress The page address in program memory to be erased. + * @note A Page is erased in the Program memory only if the address to load + * is the start address of a page (multiple of @ref FLASH_PAGE_SIZE bytes). + * @retval None + */ +void FLASH_PageErase(uint32_t PageAddress) +{ + /* Clean the error context */ + pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; + + /* Set the ERASE bit */ + SET_BIT(FLASH->PECR, FLASH_PECR_ERASE); + + /* Set PROG bit */ + SET_BIT(FLASH->PECR, FLASH_PECR_PROG); + + /* Write 00000000h to the first word of the program page to erase */ + *(__IO uint32_t *)(uint32_t)(PageAddress & ~(FLASH_PAGE_SIZE - 1)) = 0x00000000; +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_FLASH_MODULE_ENABLED */ +/** + * @} + */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c new file mode 100644 index 0000000..a3b3d3d --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c @@ -0,0 +1,640 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_flash_ramfunc.c + * @author MCD Application Team + * @brief FLASH RAMFUNC driver. + * This file provides a Flash firmware functions which should be + * executed from internal SRAM + * + * @verbatim + + *** ARM Compiler *** + -------------------- + [..] RAM functions are defined using the toolchain options. + Functions that are be executed in RAM should reside in a separate + source module. Using the 'Options for File' dialog you can simply change + the 'Code / Const' area of a module to a memory space in physical RAM. + Available memory areas are declared in the 'Target' tab of the + Options for Target' dialog. + + *** ICCARM Compiler *** + ----------------------- + [..] RAM functions are defined using a specific toolchain keyword "__ramfunc". + + *** GNU Compiler *** + -------------------- + [..] RAM functions are defined using a specific toolchain attribute + "__attribute__((section(".RamFunc")))". + +@endverbatim + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +#ifdef HAL_FLASH_MODULE_ENABLED + +/** @addtogroup FLASH + * @{ + */ +/** @addtogroup FLASH_Private_Variables + * @{ + */ +extern FLASH_ProcessTypeDef pFlash; +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup FLASH_RAMFUNC FLASH_RAMFUNC + * @brief FLASH functions executed from RAM + * @{ + */ + + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup FLASH_RAMFUNC_Private_Functions FLASH RAM Private Functions + * @{ + */ + +static __RAM_FUNC HAL_StatusTypeDef FLASHRAM_WaitForLastOperation(uint32_t Timeout); +static __RAM_FUNC HAL_StatusTypeDef FLASHRAM_SetErrorCode(void); + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ + +/** @defgroup FLASH_RAMFUNC_Exported_Functions FLASH RAM Exported Functions + * +@verbatim + =============================================================================== + ##### ramfunc functions ##### + =============================================================================== + [..] + This subsection provides a set of functions that should be executed from RAM + transfers. + +@endverbatim + * @{ + */ + +/** @defgroup FLASH_RAMFUNC_Exported_Functions_Group1 Peripheral features functions + * @{ + */ + +/** + * @brief Enable the power down mode during RUN mode. + * @note This function can be used only when the user code is running from Internal SRAM. + * @retval HAL status + */ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_EnableRunPowerDown(void) +{ + /* Enable the Power Down in Run mode*/ + __HAL_FLASH_POWER_DOWN_ENABLE(); + + return HAL_OK; +} + +/** + * @brief Disable the power down mode during RUN mode. + * @note This function can be used only when the user code is running from Internal SRAM. + * @retval HAL status + */ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_DisableRunPowerDown(void) +{ + /* Disable the Power Down in Run mode*/ + __HAL_FLASH_POWER_DOWN_DISABLE(); + + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup FLASH_RAMFUNC_Exported_Functions_Group2 Programming and erasing operation functions + * +@verbatim +@endverbatim + * @{ + */ + +#if defined(FLASH_PECR_PARALLBANK) +/** + * @brief Erases a specified 2 pages in program memory in parallel. + * @note This function can be used only for STM32L151xD, STM32L152xD), STM32L162xD and Cat5 devices. + * 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 Page_Address1: The page address in program memory to be erased in + * the first Bank (BANK1). This parameter should be between FLASH_BASE + * and FLASH_BANK1_END. + * @param Page_Address2: The page address in program memory to be erased in + * the second Bank (BANK2). This parameter should be between FLASH_BANK2_BASE + * and FLASH_BANK2_END. + * @note A Page is erased in the Program memory only if the address to load + * is the start address of a page (multiple of @ref FLASH_PAGE_SIZE bytes). + * @retval HAL status + */ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_EraseParallelPage(uint32_t Page_Address1, uint32_t Page_Address2) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Wait for last operation to be completed */ + status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Proceed to erase the page */ + SET_BIT(FLASH->PECR, FLASH_PECR_PARALLBANK); + SET_BIT(FLASH->PECR, FLASH_PECR_ERASE); + SET_BIT(FLASH->PECR, FLASH_PECR_PROG); + + /* Write 00000000h to the first word of the first program page to erase */ + *(__IO uint32_t *)Page_Address1 = 0x00000000U; + /* Write 00000000h to the first word of the second program page to erase */ + *(__IO uint32_t *)Page_Address2 = 0x00000000U; + + /* Wait for last operation to be completed */ + status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + /* If the erase operation is completed, disable the ERASE, PROG and PARALLBANK bits */ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_PROG); + CLEAR_BIT(FLASH->PECR, FLASH_PECR_ERASE); + CLEAR_BIT(FLASH->PECR, FLASH_PECR_PARALLBANK); + } + /* Return the Erase Status */ + return status; +} + +/** + * @brief Program 2 half pages in program memory in parallel (half page size is 32 Words). + * @note This function can be used only for STM32L151xD, STM32L152xD), STM32L162xD and Cat5 devices. + * @param Address1: specifies the first address to be written in the first bank + * (BANK1). This parameter should be between FLASH_BASE and (FLASH_BANK1_END - FLASH_PAGE_SIZE). + * @param pBuffer1: pointer to the buffer containing the data to be written + * to the first half page in the first bank. + * @param Address2: specifies the second address to be written in the second bank + * (BANK2). This parameter should be between FLASH_BANK2_BASE and (FLASH_BANK2_END - FLASH_PAGE_SIZE). + * @param pBuffer2: pointer to the buffer containing the data to be written + * to the second half page in the second bank. + * @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). + * @note Half page write is possible only from SRAM. + * @note If there are more than 32 words to write, after 32 words another + * Half Page programming operation starts and has to be finished. + * @note A half page is written to the program memory only if the first + * address to load is the start address of a half page (multiple of 128 + * bytes) and the 31 remaining words to load are in the same half page. + * @note During the Program memory half page write all read operations are + * forbidden (this includes DMA read operations and debugger read + * operations such as breakpoints, periodic updates, etc.). + * @note If a PGAERR is set during a Program memory half page write, the + * complete write operation is aborted. Software should then reset the + * FPRG and PROG/DATA bits and restart the write operation from the + * beginning. + * @retval HAL status + */ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_ProgramParallelHalfPage(uint32_t Address1, uint32_t* pBuffer1, uint32_t Address2, uint32_t* pBuffer2) +{ + uint32_t primask_bit; + uint32_t count = 0U; + HAL_StatusTypeDef status = HAL_OK; + + /* Wait for last operation to be completed */ + status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Disable all IRQs */ + primask_bit = __get_PRIMASK(); + __disable_irq(); + + /* Proceed to program the new half page */ + SET_BIT(FLASH->PECR, FLASH_PECR_PARALLBANK); + SET_BIT(FLASH->PECR, FLASH_PECR_FPRG); + SET_BIT(FLASH->PECR, FLASH_PECR_PROG); + + /* Write the first half page directly with 32 different words */ + while(count < 32U) + { + *(__IO uint32_t*) ((uint32_t)(Address1 + (4 * count))) = *pBuffer1; + pBuffer1++; + count ++; + } + + /* Write the second half page directly with 32 different words */ + count = 0U; + while(count < 32U) + { + *(__IO uint32_t*) ((uint32_t)(Address2 + (4 * count))) = *pBuffer2; + pBuffer2++; + count ++; + } + + /* Wait for last operation to be completed */ + status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + /* if the write operation is completed, disable the PROG, FPRG and PARALLBANK bits */ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_PROG); + CLEAR_BIT(FLASH->PECR, FLASH_PECR_FPRG); + CLEAR_BIT(FLASH->PECR, FLASH_PECR_PARALLBANK); + + /* Enable IRQs */ + __set_PRIMASK(primask_bit); + } + + /* Return the Write Status */ + return status; +} +#endif /* FLASH_PECR_PARALLBANK */ + +/** + * @brief Program a half page in program memory. + * @param Address specifies the address to be written. + * @param pBuffer pointer to the buffer containing the data to be written to + * the half page. + * @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) + * @note Half page write is possible only from SRAM. + * @note If there are more than 32 words to write, after 32 words another + * Half Page programming operation starts and has to be finished. + * @note A half page is written to the program memory only if the first + * address to load is the start address of a half page (multiple of 128 + * bytes) and the 31 remaining words to load are in the same half page. + * @note During the Program memory half page write all read operations are + * forbidden (this includes DMA read operations and debugger read + * operations such as breakpoints, periodic updates, etc.). + * @note If a PGAERR is set during a Program memory half page write, the + * complete write operation is aborted. Software should then reset the + * FPRG and PROG/DATA bits and restart the write operation from the + * beginning. + * @retval HAL status + */ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_HalfPageProgram(uint32_t Address, uint32_t* pBuffer) +{ + uint32_t primask_bit; + uint32_t count = 0U; + HAL_StatusTypeDef status = HAL_OK; + + /* Wait for last operation to be completed */ + status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Disable all IRQs */ + primask_bit = __get_PRIMASK(); + __disable_irq(); + + /* Proceed to program the new half page */ + SET_BIT(FLASH->PECR, FLASH_PECR_FPRG); + SET_BIT(FLASH->PECR, FLASH_PECR_PROG); + + /* Write one half page directly with 32 different words */ + while(count < 32U) + { + *(__IO uint32_t*) ((uint32_t)(Address + (4 * count))) = *pBuffer; + pBuffer++; + count ++; + } + + /* Wait for last operation to be completed */ + status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + /* If the write operation is completed, disable the PROG and FPRG bits */ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_PROG); + CLEAR_BIT(FLASH->PECR, FLASH_PECR_FPRG); + + /* Enable IRQs */ + __set_PRIMASK(primask_bit); + } + + /* Return the Write Status */ + return status; +} + +/** + * @} + */ + +/** @defgroup FLASH_RAMFUNC_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 errors flag. + * @param Error pointer is the error value. It can be a mixed of: +@if STM32L100xB +@elif STM32L100xBA + * @arg @ref HAL_FLASH_ERROR_RD FLASH Read Protection error flag (PCROP) +@elif STM32L151xB +@elif STM32L151xBA + * @arg @ref HAL_FLASH_ERROR_RD FLASH Read Protection error flag (PCROP) +@elif STM32L152xB +@elif STM32L152xBA + * @arg @ref HAL_FLASH_ERROR_RD FLASH Read Protection error flag (PCROP) +@elif STM32L100xC + * @arg @ref HAL_FLASH_ERROR_RD FLASH Read Protection error flag (PCROP) + * @arg @ref HAL_FLASH_ERROR_OPTVUSR FLASH Option User validity error +@elif STM32L151xC + * @arg @ref HAL_FLASH_ERROR_RD FLASH Read Protection error flag (PCROP) + * @arg @ref HAL_FLASH_ERROR_OPTVUSR FLASH Option User validity error +@elif STM32L152xC + * @arg @ref HAL_FLASH_ERROR_RD FLASH Read Protection error flag (PCROP) + * @arg @ref HAL_FLASH_ERROR_OPTVUSR FLASH Option User validity error +@elif STM32L162xC + * @arg @ref HAL_FLASH_ERROR_RD FLASH Read Protection error flag (PCROP) + * @arg @ref HAL_FLASH_ERROR_OPTVUSR FLASH Option User validity error +@else + * @arg @ref HAL_FLASH_ERROR_OPTVUSR FLASH Option User validity error +@endif + * @arg @ref HAL_FLASH_ERROR_PGA FLASH Programming Alignment error flag + * @arg @ref HAL_FLASH_ERROR_WRP FLASH Write protected error flag + * @arg @ref HAL_FLASH_ERROR_OPTV FLASH Option valid error flag + * @retval HAL Status + */ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_GetError(uint32_t * Error) +{ + *Error = pFlash.ErrorCode; + return HAL_OK; +} + +/** + * @} + */ + +/** @defgroup FLASH_RAMFUNC_Exported_Functions_Group4 DATA EEPROM functions + * + * @{ + */ + +/** + * @brief Erase a double word in data memory. + * @param Address specifies the address to be erased. + * @note To correctly run this function, the HAL_FLASH_EEPROM_Unlock() function + * must be called before. + * Call the HAL_FLASH_EEPROM_Lock() to he data EEPROM access + * and Flash program erase control register access(recommended to protect + * the DATA_EEPROM against possible unwanted operation). + * @note Data memory double word erase is possible only from SRAM. + * @note A double word is erased to the data memory only if the first address + * to load is the start address of a double word (multiple of 8 bytes). + * @note During the Data memory double word erase, all read operations are + * forbidden (this includes DMA read operations and debugger read + * operations such as breakpoints, periodic updates, etc.). + * @retval HAL status + */ + +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_EraseDoubleWord(uint32_t Address) +{ + uint32_t primask_bit; + HAL_StatusTypeDef status = HAL_OK; + + /* Wait for last operation to be completed */ + status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Disable all IRQs */ + primask_bit = __get_PRIMASK(); + __disable_irq(); + + /* If the previous operation is completed, proceed to erase the next double word */ + /* Set the ERASE bit */ + SET_BIT(FLASH->PECR, FLASH_PECR_ERASE); + + /* Set DATA bit */ + SET_BIT(FLASH->PECR, FLASH_PECR_DATA); + + /* Write 00000000h to the 2 words to erase */ + *(__IO uint32_t *)Address = 0x00000000U; + Address += 4U; + *(__IO uint32_t *)Address = 0x00000000U; + + /* Wait for last operation to be completed */ + status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + /* If the erase operation is completed, disable the ERASE and DATA bits */ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_ERASE); + CLEAR_BIT(FLASH->PECR, FLASH_PECR_DATA); + + /* Enable IRQs */ + __set_PRIMASK(primask_bit); + + } + + /* Return the erase status */ + return status; +} + +/** + * @brief Write a double word in data memory without erase. + * @param Address specifies the address to be written. + * @param Data specifies the data to be written. + * @note To correctly run this function, the HAL_FLASH_EEPROM_Unlock() function + * must be called before. + * Call the HAL_FLASH_EEPROM_Lock() to he data EEPROM access + * and Flash program erase control register access(recommended to protect + * the DATA_EEPROM against possible unwanted operation). + * @note Data memory double word write is possible only from SRAM. + * @note A data memory double word is written to the data memory only if the + * first address to load is the start address of a double word (multiple + * of double word). + * @note During the Data memory double word write, all read operations are + * forbidden (this includes DMA read operations and debugger read + * operations such as breakpoints, periodic updates, etc.). + * @retval HAL status + */ +__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_ProgramDoubleWord(uint32_t Address, uint64_t Data) +{ + uint32_t primask_bit; + HAL_StatusTypeDef status = HAL_OK; + + /* Wait for last operation to be completed */ + status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + if(status == HAL_OK) + { + /* Disable all IRQs */ + primask_bit = __get_PRIMASK(); + __disable_irq(); + + /* If the previous operation is completed, proceed to program the new data*/ + SET_BIT(FLASH->PECR, FLASH_PECR_FPRG); + SET_BIT(FLASH->PECR, FLASH_PECR_DATA); + + /* Write the 2 words */ + *(__IO uint32_t *)Address = (uint32_t) Data; + Address += 4U; + *(__IO uint32_t *)Address = (uint32_t) (Data >> 32); + + /* Wait for last operation to be completed */ + status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE); + + /* If the write operation is completed, disable the FPRG and DATA bits */ + CLEAR_BIT(FLASH->PECR, FLASH_PECR_FPRG); + CLEAR_BIT(FLASH->PECR, FLASH_PECR_DATA); + + /* Enable IRQs */ + __set_PRIMASK(primask_bit); + } + + /* Return the Write Status */ + return status; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup FLASH_RAMFUNC_Private_Functions + * @{ + */ + +/** + * @brief Set the specific FLASH error flag. + * @retval HAL Status + */ +static __RAM_FUNC HAL_StatusTypeDef FLASHRAM_SetErrorCode(void) +{ + uint32_t flags = 0U; + + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP; + flags |= FLASH_FLAG_WRPERR; + } + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA; + flags |= FLASH_FLAG_PGAERR; + } + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_OPTV; + flags |= FLASH_FLAG_OPTVERR; + } + +#if defined(FLASH_SR_RDERR) + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_RD; + flags |= FLASH_FLAG_RDERR; + } +#endif /* FLASH_SR_RDERR */ +#if defined(FLASH_SR_OPTVERRUSR) + if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERRUSR)) + { + pFlash.ErrorCode |= HAL_FLASH_ERROR_OPTVUSR; + flags |= FLASH_FLAG_OPTVERRUSR; + } +#endif /* FLASH_SR_OPTVERRUSR */ + + /* Clear FLASH error pending bits */ + __HAL_FLASH_CLEAR_FLAG(flags); + + return HAL_OK; +} + +/** + * @brief Wait for a FLASH operation to complete. + * @param Timeout maximum flash operationtimeout + * @retval HAL status + */ +static __RAM_FUNC HAL_StatusTypeDef FLASHRAM_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 */ + + while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) && (Timeout != 0x00U)) + { + Timeout--; + } + + if(Timeout == 0x00U) + { + 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) || +#if defined(FLASH_SR_RDERR) + __HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR) || +#endif /* FLASH_SR_RDERR */ +#if defined(FLASH_SR_OPTVERRUSR) + __HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERRUSR) || +#endif /* FLASH_SR_OPTVERRUSR */ + __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR)) + { + /*Save the error code*/ + FLASHRAM_SetErrorCode(); + return HAL_ERROR; + } + + /* There is no error flag set */ + return HAL_OK; +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_FLASH_MODULE_ENABLED */ +/** + * @} + */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c new file mode 100644 index 0000000..9e75b40 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c @@ -0,0 +1,546 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_gpio.c + * @author MCD Application Team + * @brief GPIO HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the General Purpose Input/Output (GPIO) peripheral: + * + Initialization and de-initialization functions + * + IO operation functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### GPIO Peripheral features ##### + ============================================================================== + [..] + Each port bit of the general-purpose I/O (GPIO) ports can be individually + configured by software in several modes: + (+) Input mode + (+) Analog mode + (+) Output mode + (+) Alternate function mode + (+) External interrupt/event lines + + [..] + During and just after reset, the alternate functions and external interrupt + lines are not active and the I/O ports are configured in input floating mode. + + [..] + All GPIO pins have weak internal pull-up and pull-down resistors, which can be + activated or not. + + [..] + In Output or Alternate mode, each IO can be configured on open-drain or push-pull + type and the IO speed can be selected depending on the VDD value. + + [..] + The microcontroller IO pins are connected to onboard peripherals/modules through a + multiplexer that allows only one peripheral s alternate function (AF) connected + to an IO pin at a time. In this way, there can be no conflict between peripherals + sharing the same IO pin. + + [..] + All ports have external interrupt/event capability. To use external interrupt + lines, the port must be configured in input mode. All available GPIO pins are + connected to the 16 external interrupt/event lines from EXTI0 to EXTI15. + + [..] + The external interrupt/event controller consists of up to 28 edge detectors + (depending on products 16 lines are connected to GPIO) for generating event/interrupt + requests (each input line can be independently configured to select the type + (interrupt or event) and the corresponding trigger event (rising or falling or both). + Each line can also be masked independently. + + ##### How to use this driver ##### + ============================================================================== + [..] + (#) Enable the GPIO AHB clock using the following function : __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, + the speed is configurable: Low, Medium and High. + (++) If alternate mode is selected, the alternate function connected to the IO + is configured through "Alternate" member from GPIO_InitTypeDef structure + (++) Analog mode is required when a pin is to be used as ADC channel + or DAC output. + (++) In case of external interrupt/event selection the "Mode" member from + GPIO_InitTypeDef structure select the type (interrupt or event) and + the corresponding trigger event (rising or falling or both). + + (#) In case of external interrupt/event mode selection, configure NVIC IRQ priority + mapped to the EXTI line using HAL_NVIC_SetPriority() and enable it using + HAL_NVIC_EnableIRQ(). + + (#) HAL_GPIO_DeInit allows to set register values to their reset value. It's also + recommended to use it to unconfigure pin which was used as an external interrupt + or in event mode. That's the only way to reset corresponding bit in EXTI & SYSCFG + registers. + + (#) 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 PH0 and PH1, respectively, when the HSE oscillator is off. + The HSE has priority over the GPIO function. + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @addtogroup GPIO + * @brief GPIO HAL module driver + * @{ + */ + +#ifdef HAL_GPIO_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @addtogroup GPIO_Private_Constants + * @{ + */ +#define GPIO_NUMBER (16U) + +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions ---------------------------------------------------------*/ + +/** @addtogroup GPIO_Exported_Functions + * @{ + */ + +/** @addtogroup GPIO_Exported_Functions_Group1 + * @brief Initialization and Configuration functions + * +@verbatim + =============================================================================== + ##### Initialization and Configuration functions ##### + =============================================================================== + +@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 for STM32L1XX family devices + * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains + * the configuration information for the specified GPIO peripheral. + * @retval None + */ +void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) +{ + uint32_t position = 0x00; + uint32_t iocurrent = 0x00; + uint32_t temp = 0x00; + + /* 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) != 0) + { + /* Get current io position */ + iocurrent = (GPIO_Init->Pin) & (1U << position); + + if (iocurrent) + { + /*--------------------- GPIO Mode Configuration ------------------------*/ + /* In case of Output or Alternate function mode selection */ + if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || + ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) + { + /* Check the Speed parameter */ + assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + /* Configure the IO Speed */ + temp = GPIOx->OSPEEDR; + CLEAR_BIT(temp, GPIO_OSPEEDER_OSPEEDR0 << (position * 2)); + SET_BIT(temp, GPIO_Init->Speed << (position * 2)); + GPIOx->OSPEEDR = temp; + + /* Configure the IO Output Type */ + temp = GPIOx->OTYPER; + CLEAR_BIT(temp, GPIO_OTYPER_OT_0 << position) ; + SET_BIT(temp, ((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); + GPIOx->OTYPER = temp; + } + + if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) + { + /* Check the Pull parameter */ + assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); + + /* Activate the Pull-up or Pull down resistor for the current IO */ + temp = GPIOx->PUPDR; + CLEAR_BIT(temp, GPIO_PUPDR_PUPDR0 << (position * 2)); + SET_BIT(temp, (GPIO_Init->Pull) << (position * 2)); + GPIOx->PUPDR = temp; + } + + /* In case of Alternate function mode selection */ + if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) + { + /* Check the Alternate function parameters */ + assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); + assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); + + /* Configure Alternate function mapped with the current IO */ + /* Identify AFRL or AFRH register based on IO position*/ + temp = GPIOx->AFR[position >> 3]; + CLEAR_BIT(temp, 0xFU << ((uint32_t)(position & 0x07U) * 4)); + SET_BIT(temp, (uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & 0x07U) * 4)); + GPIOx->AFR[position >> 3] = temp; + } + + /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ + temp = GPIOx->MODER; + CLEAR_BIT(temp, GPIO_MODER_MODER0 << (position * 2)); + SET_BIT(temp, (GPIO_Init->Mode & GPIO_MODE) << (position * 2)); + GPIOx->MODER = temp; + + /*--------------------- EXTI Mode Configuration ------------------------*/ + /* Configure the External Interrupt or event for the current IO */ + if ((GPIO_Init->Mode & EXTI_MODE) != 0x00U) + { + /* Enable SYSCFG Clock */ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + + temp = SYSCFG->EXTICR[position >> 2]; + CLEAR_BIT(temp, (0x0FU) << (4 * (position & 0x03))); + SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03))); + SYSCFG->EXTICR[position >> 2] = temp; + + /* Clear Rising Falling edge configuration */ + temp = EXTI->RTSR; + CLEAR_BIT(temp, (uint32_t)iocurrent); + if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U) + { + SET_BIT(temp, iocurrent); + } + EXTI->RTSR = temp; + + temp = EXTI->FTSR; + CLEAR_BIT(temp, (uint32_t)iocurrent); + if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U) + { + SET_BIT(temp, iocurrent); + } + EXTI->FTSR = temp; + + temp = EXTI->EMR; + CLEAR_BIT(temp, (uint32_t)iocurrent); + if ((GPIO_Init->Mode & EXTI_EVT) != 0x00U) + { + SET_BIT(temp, iocurrent); + } + EXTI->EMR = temp; + + /* Clear EXTI line configuration */ + temp = EXTI->IMR; + CLEAR_BIT(temp, (uint32_t)iocurrent); + if ((GPIO_Init->Mode & EXTI_IT) != 0x00U) + { + SET_BIT(temp, iocurrent); + } + EXTI->IMR = temp; + } + } + + 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 for STM32L1XX family devices + * @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 = 0x00; + uint32_t iocurrent = 0x00; + uint32_t tmp = 0x00; + + /* 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) != 0) + { + /* Get current io position */ + iocurrent = (GPIO_Pin) & (1U << position); + + if (iocurrent) + { + /*------------------------- EXTI Mode Configuration --------------------*/ + /* Clear the External Interrupt or Event for the current IO */ + + tmp = SYSCFG->EXTICR[position >> 2]; + tmp &= ((0x0FU) << (4 * (position & 0x03))); + if (tmp == (GPIO_GET_INDEX(GPIOx) << (4 * (position & 0x03)))) + { + /* 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->FTSR, (uint32_t)iocurrent); + CLEAR_BIT(EXTI->RTSR, (uint32_t)iocurrent); + + tmp = (0x0FU) << (4 * (position & 0x03)); + CLEAR_BIT(SYSCFG->EXTICR[position >> 2], tmp); + } + + /*------------------------- GPIO Mode Configuration --------------------*/ + /* Configure IO Direction in Input Floating Mode */ + CLEAR_BIT(GPIOx->MODER, GPIO_MODER_MODER0 << (position * 2)); + + /* Configure the default Alternate Function in current IO */ + CLEAR_BIT(GPIOx->AFR[position >> 3], 0xFU << ((uint32_t)(position & 0x07U) * 4)) ; + /* Deactivate the Pull-up oand Pull-down resistor for the current IO */ + CLEAR_BIT(GPIOx->PUPDR, GPIO_PUPDR_PUPDR0 << (position * 2)); + + /* Configure the default value IO Output Type */ + CLEAR_BIT(GPIOx->OTYPER, GPIO_OTYPER_OT_0 << position) ; + + /* Configure the default value for IO Speed */ + CLEAR_BIT(GPIOx->OSPEEDR, GPIO_OSPEEDER_OSPEEDR0 << (position * 2)); + } + + position++; + } +} + +/** + * @} + */ + +/** @addtogroup GPIO_Exported_Functions_Group2 + * @brief GPIO Read, Write, Toggle, Lock and EXTI management functions. + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + +@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 for STM32L1XX family devices + * @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 for STM32L1XX family devices + * @param GPIO_Pin specifies the port bit to be written. + * This parameter can be one of GPIO_PIN_x where x can be (0..15). + * @param PinState specifies the value to be written to the selected bit. + * This parameter can be one of the GPIO_PinState enum values: + * @arg GPIO_PIN_RESET: to clear the port pin + * @arg GPIO_PIN_SET: to set the port pin + * @retval None + */ +void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) +{ + /* Check the parameters */ + assert_param(IS_GPIO_PIN(GPIO_Pin)); + assert_param(IS_GPIO_PIN_ACTION(PinState)); + + if (PinState != GPIO_PIN_RESET) + { + GPIOx->BSRR = (uint32_t)GPIO_Pin; + } + else + { + GPIOx->BSRR = (uint32_t)GPIO_Pin << 16 ; + } +} + +/** + * @brief Toggles the specified GPIO pin + * @param GPIOx where x can be (A..G depending on device used) to select the GPIO peripheral for STM32L1XX family devices + * @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 Output Data Register value */ + odr = GPIOx->ODR; + + /* Set selected pins that were at low level, and reset ones that were high */ + GPIOx->BSRR = ((odr & GPIO_Pin) << GPIO_NUMBER) | (~odr & GPIO_Pin); +} + +/** +* @brief Locks GPIO Pins configuration registers. +* @note The locked registers are GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, +* GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH. +* @note The configuration of the locked GPIO pins can no longer be modified +* until the next reset. +* @note Limitation concerning GPIOx_OTYPER: Locking of GPIOx_OTYPER[i] with i = 15..8 +* depends from setting of GPIOx_LCKR[i-8] and not from GPIOx_LCKR[i]. +* GPIOx_LCKR[i-8] is locking GPIOx_OTYPER[i] together with GPIOx_OTYPER[i-8]. +* It is not possible to lock GPIOx_OTYPER[i] with i = 15..8, without locking also +* GPIOx_OTYPER[i-8]. +* Workaround: When calling HAL_GPIO_LockPin with GPIO_Pin from GPIO_PIN_8 to GPIO_PIN_15, +* you must call also HAL_GPIO_LockPin with GPIO_Pin - 8. +* (When locking a pin from GPIO_PIN_8 to GPIO_PIN_15, you must lock also the corresponding +* GPIO_PIN_0 to GPIO_PIN_7). +* @param GPIOx where x can be (A..G depending on device used) to select the GPIO peripheral for STM32L1XX family devices +* @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 ((GPIOx->LCKR & GPIO_LCKR_LCKK) != RESET) + { + return HAL_OK; + } + else + { + return HAL_ERROR; + } +} + +/** + * @brief This function handles EXTI interrupt request. + * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line. + * @retval None + */ +void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) +{ + /* EXTI line interrupt detected */ + if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) + { + __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); + HAL_GPIO_EXTI_Callback(GPIO_Pin); + } +} + +/** + * @brief EXTI line detection callbacks. + * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line. + * @retval None + */ +__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(GPIO_Pin); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_GPIO_EXTI_Callback could be implemented in the user file + */ +} + +/** + * @} + */ + + +/** + * @} + */ + +#endif /* HAL_GPIO_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c new file mode 100644 index 0000000..c3a342f --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c @@ -0,0 +1,650 @@ +/** + ****************************************************************************** + * @file stm32l1xx_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) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @defgroup PWR PWR + * @brief PWR HAL module driver + * @{ + */ + +#ifdef HAL_PWR_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +#define PVD_MODE_IT (0x00010000U) +#define PVD_MODE_EVT (0x00020000U) +#define PVD_RISING_EDGE (0x00000001U) +#define PVD_FALLING_EDGE (0x00000002U) + +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/** @defgroup PWR_Exported_Functions PWR Exported Functions + * @{ + */ + +/** @defgroup PWR_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and de-initialization functions + * +@verbatim + =============================================================================== + ##### Initialization and de-initialization functions ##### + =============================================================================== + [..] + After reset, the backup domain (RTC registers, RTC backup data + registers) 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. + * @note Before calling this function, the VOS[1:0] bits should be configured + * to "10" and the system frequency has to be configured accordingly. + * To configure the VOS[1:0] bits, use the PWR_VoltageScalingConfig() + * function. + * @note ULP and FWU bits are not reset by this function. + * @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 2, 4, 8 or 16 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 2, 4, 8 or 16 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). + (+) The PVD can use an external input analog voltage (PVD_IN) which is compared + internally to VREFINT. The PVD_IN (PB7) has to be configured in Analog mode + when PWR_PVDLevel_7 is selected (PLS[2:0] = 111). + + (+) A PVDO flag is available to indicate if VDD/VDDA is higher or lower + than the PVD threshold. This event is internally connected to the EXTI + line16 and can generate an interrupt if enabled. This is done through + __HAL_PWR_PVD_EXTI_ENABLE_IT() macro. + (+) The PVD is stopped in Standby mode. + + *** 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 are two or three WakeUp pins: + WakeUp Pin 1 on PA.00. + WakeUp Pin 2 on PC.13. + WakeUp Pin 3 on PE.06. : Only on product with GPIOE available + + [..] + *** Main and Backup Regulators configuration *** + ================================================ + + (+) The main internal regulator can be configured to have a tradeoff between + performance and power consumption when the device does not operate at + the maximum frequency. This is done through __HAL_PWR_VOLTAGESCALING_CONFIG() + macro which configure VOS bit in PWR_CR register: + (++) When this bit is set (Regulator voltage output Scale 1 mode selected) + the System frequency can go up to 32 MHz. + (++) When this bit is reset (Regulator voltage output Scale 2 mode selected) + the System frequency can go up to 16 MHz. + (++) When this bit is reset (Regulator voltage output Scale 3 mode selected) + the System frequency can go up to 4.2 MHz. + + Refer to the datasheets for more details. + + *** Low Power modes configuration *** + ===================================== + [..] + The device features 5 low-power modes: + (+) Low power run mode: regulator in low power mode, limited clock frequency, + limited number of peripherals running. + (+) Sleep mode: Cortex-M3 core stopped, peripherals kept running. + (+) Low power sleep mode: Cortex-M3 core stopped, limited clock frequency, + limited number of peripherals running, regulator in low power mode. + (+) Stop mode: All clocks are stopped, regulator running, regulator in low power mode. + (+) Standby mode: VCORE domain powered off + + *** Low power run mode *** + ========================= + [..] + To further reduce the consumption when the system is in Run mode, the regulator can be + configured in low power mode. In this mode, the system frequency should not exceed + MSI frequency range1. + In Low power run mode, all I/O pins keep the same state as in Run mode. + + (+) Entry: + (++) VCORE in range2 + (++) Decrease the system frequency tonot exceed the frequency of MSI frequency range1. + (++) The regulator is forced in low power mode using the HAL_PWREx_EnableLowPowerRunMode() + function. + (+) Exit: + (++) The regulator is forced in Main regulator mode using the HAL_PWREx_DisableLowPowerRunMode() + function. + (++) Increase the system frequency if needed. + + *** Sleep mode *** + ================== + [..] + (+) Entry: + The Sleep mode is entered by using the HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFx) + functions with + (++) PWR_SLEEPENTRY_WFI: enter SLEEP mode with WFI instruction + (++) PWR_SLEEPENTRY_WFE: enter SLEEP mode with WFE instruction + + (+) Exit: + (++) Any peripheral interrupt acknowledged by the nested vectored interrupt + controller (NVIC) can wake up the device from Sleep mode. + + *** Low power sleep mode *** + ============================ + [..] + (+) Entry: + The Low power sleep mode is entered by using the HAL_PWR_EnterSLEEPMode(PWR_LOWPOWERREGULATOR_ON, PWR_SLEEPENTRY_WFx) + functions with + (++) PWR_SLEEPENTRY_WFI: enter SLEEP mode with WFI instruction + (++) PWR_SLEEPENTRY_WFE: enter SLEEP mode with WFE instruction + (+) The Flash memory can be switched off by using the control bits (SLEEP_PD in the FLASH_ACR register. + This reduces power consumption but increases the wake-up time. + + (+) Exit: + (++) If the WFI instruction was used to enter Low power sleep mode, any peripheral interrupt + acknowledged by the nested vectored interrupt controller (NVIC) can wake up the device + from Low power sleep mode. If the WFE instruction was used to enter Low power sleep mode, + the MCU exits Sleep mode as soon as an event occurs. + + *** 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 VCORE domain are stopped, the PLL, the MSI, the HSI and + the HSE RC oscillators are disabled. Internal SRAM and register contents are preserved. + To get the lowest consumption in Stop mode, the internal Flash memory also enters low + power mode. When the Flash memory is in power-down mode, an additional startup delay is + incurred when waking up from Stop mode. + To minimize the consumption In Stop mode, VREFINT, the BOR, PVD, and temperature + sensor can be switched off before entering Stop mode. They can be switched on again by + software after exiting Stop mode using the ULP bit in the PWR_CR register. + 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_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI ) + function with: + (++) Main regulator ON. + (++) Low Power regulator ON. + (++) PWR_SLEEPENTRY_WFI: enter SLEEP mode with WFI instruction + (++) PWR_SLEEPENTRY_WFE: enter SLEEP mode with WFE instruction + (+) Exit: + (++) By issuing an interrupt or a wakeup event, the MSI RC oscillator is selected as system clock. + + *** 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 VCORE domain is + consequently powered off. The PLL, the MSI, the HSI oscillator and the HSE oscillator are + also switched off. SRAM and register contents are lost except for the RTC registers, RTC + backup registers and Standby circuitry. + + To minimize the consumption In Standby mode, VREFINT, the BOR, PVD, and temperature + sensor can be switched off before entering the Standby mode. They can be switched + on again by software after exiting the Standby mode. + function. + + (+) Entry: + (++) The Standby mode is entered using the HAL_PWR_EnterSTANDBYMode() function. + (+) Exit: + (++) WKUP pin rising edge, RTC alarm (Alarm A and Alarm B), RTC wakeup, + tamper event, time-stamp event, external reset in NRST pin, IWDG reset. + + *** Auto-wakeup (AWU) from low-power mode *** + ============================================= + [..] + The MCU can be woken up from low-power mode by an RTC Alarm event, an RTC + Wakeup event, a tamper event, a time-stamp event, or a comparator event, + without depending on an external interrupt (Auto-wakeup mode). + + (+) RTC auto-wakeup (AWU) from the Stop mode + (++) To wake up from the Stop mode with an RTC alarm event, it is necessary to: + (+++) Configure the EXTI Line 17 to be sensitive to rising edges (Interrupt + or Event modes) and Enable the RTC Alarm Interrupt using the HAL_RTC_SetAlarm_IT() + function + (+++) Configure the RTC to generate the RTC alarm using the HAL_RTC_Init() + and HAL_RTC_SetTime() functions. + (++) To wake up from the Stop mode with an RTC Tamper or time stamp event, it + is necessary to: + (+++) Configure the EXTI Line 19 to be sensitive to rising edges (Interrupt or Event modes) and + Enable the RTC Tamper or time stamp Interrupt using the HAL_RTCEx_SetTamper_IT() + or HAL_RTCEx_SetTimeStamp_IT() functions. + (++) To wake up from the Stop mode with an RTC WakeUp event, it is necessary to: + (+++) Configure the EXTI Line 20 to be sensitive to rising edges (Interrupt or Event modes) and + Enable the RTC WakeUp Interrupt using the HAL_RTCEx_SetWakeUpTimer_IT() function. + (+++) Configure the RTC to generate the RTC WakeUp event using the HAL_RTCEx_SetWakeUpTimer() + function. + + (+) RTC auto-wakeup (AWU) from the Standby mode + (++) To wake up from the Standby mode with an RTC alarm event, it is necessary to: + (+++) Enable the RTC Alarm Interrupt using the HAL_RTC_SetAlarm_IT() function. + (+++) Configure the RTC to generate the RTC alarm using the HAL_RTC_Init() + and HAL_RTC_SetTime() functions. + (++) To wake up from the Standby mode with an RTC Tamper or time stamp event, it + is necessary to: + (+++) Enable the RTC Tamper or time stamp Interrupt and Configure the RTC to + detect the tamper or time stamp event using the HAL_RTCEx_SetTimeStamp_IT() + or HAL_RTCEx_SetTamper_IT()functions. + (++) To wake up from the Standby mode with an RTC WakeUp event, it is necessary to: + (+++) Enable the RTC WakeUp Interrupt and Configure the RTC to generate the RTC WakeUp event + using the HAL_RTCEx_SetWakeUpTimer_IT() and HAL_RTCEx_SetWakeUpTimer() functions. + + (+) Comparator auto-wakeup (AWU) from the Stop mode + (++) To wake up from the Stop mode with an comparator 1 or comparator 2 wakeup + event, it is necessary to: + (+++) Configure the EXTI Line 21 or EXTI Line 22 for comparator to be sensitive to to the + selected edges (falling, rising or falling and rising) (Interrupt or Event modes) using + the COMP functions. + (+++) Configure the comparator to generate the event. + + + +@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_RISING_FALLING_EDGE(); + + /* Configure interrupt mode */ + if((sConfigPVD->Mode & PVD_MODE_IT) == PVD_MODE_IT) + { + __HAL_PWR_PVD_EXTI_ENABLE_IT(); + } + + /* Configure event mode */ + if((sConfigPVD->Mode & PVD_MODE_EVT) == PVD_MODE_EVT) + { + __HAL_PWR_PVD_EXTI_ENABLE_EVENT(); + } + + /* Configure the edge */ + if((sConfigPVD->Mode & PVD_RISING_EDGE) == PVD_RISING_EDGE) + { + __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE(); + } + + if((sConfigPVD->Mode & PVD_FALLING_EDGE) == PVD_FALLING_EDGE) + { + __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE(); + } +} + +/** + * @brief Enables the Power Voltage Detector(PVD). + * @retval None + */ +void HAL_PWR_EnablePVD(void) +{ + /* 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 + * @arg PWR_WAKEUP_PIN2 + * @arg PWR_WAKEUP_PIN3: Only on product with GPIOE available + * @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 + * @arg PWR_WAKEUP_PIN2 + * @arg PWR_WAKEUP_PIN3: Only on product with GPIOE available + * @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: Specifies the regulator state in SLEEP mode. + * This parameter can be one of the following values: + * @arg PWR_MAINREGULATOR_ON: SLEEP mode with regulator ON + * @arg PWR_LOWPOWERREGULATOR_ON: SLEEP mode with low power regulator ON + * @param SLEEPEntry: Specifies if SLEEP mode is entered with WFI or WFE instruction. + * When WFI entry is used, tick interrupt have to be disabled if not desired as + * the interrupt wake up source. + * This parameter can be one of the following values: + * @arg PWR_SLEEPENTRY_WFI: enter SLEEP mode with WFI instruction + * @arg PWR_SLEEPENTRY_WFE: enter SLEEP mode with WFE instruction + * @retval None + */ +void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry) +{ + /* Check the parameters */ + assert_param(IS_PWR_REGULATOR(Regulator)); + assert_param(IS_PWR_SLEEP_ENTRY(SLEEPEntry)); + + /* Select the regulator state in Sleep mode: Set PDDS and LPSDSR bit according to PWR_Regulator value */ + MODIFY_REG(PWR->CR, (PWR_CR_PDDS | PWR_CR_LPSDSR), Regulator); + + /* 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(); + } + + /* Additional NOP() instruction to ensure that all pending instructions are flushed before entering sleep mode */ + __NOP(); +} + +/** + * @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, + * MSI 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)); + + /* Select the regulator state in Stop mode: Set PDDS and LPSDSR bit according to PWR_Regulator value */ + MODIFY_REG(PWR->CR, (PWR_CR_PDDS | PWR_CR_LPSDSR), 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(); + __WFE(); + __WFE(); + } + /* 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) + * - RTC_AF1 pin (PC13) if configured for tamper, time-stamp, RTC + * Alarm out, or RTC clock calibration out. + * - WKUP pin 1 (PA0) if enabled. + * - WKUP pin 2 (PC13) if enabled. + * - WKUP pin 3 (PE6) 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 */ +/** + * @} + */ + +/** + * @} + */ diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c new file mode 100644 index 0000000..b1e4aab --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c @@ -0,0 +1,158 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_pwr_ex.c + * @author MCD Application Team + * @brief Extended PWR HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Power Controller (PWR) peripheral: + * + Extended Initialization and de-initialization functions + * + Extended Peripheral Control functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @defgroup PWREx PWREx + * @brief PWR HAL module driver + * @{ + */ + +#ifdef HAL_PWR_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/** @defgroup PWREx_Exported_Functions PWREx Exported Functions + * @{ + */ + +/** @defgroup PWREx_Exported_Functions_Group1 Peripheral Extended Features Functions + * @brief Low Power modes configuration functions + * +@verbatim + + =============================================================================== + ##### Peripheral extended features functions ##### + =============================================================================== +@endverbatim + * @{ + */ + +/** + * @brief Return Voltage Scaling Range. + * @retval VOS bit field (PWR_REGULATOR_VOLTAGE_SCALE1, PWR_REGULATOR_VOLTAGE_SCALE2 or PWR_REGULATOR_VOLTAGE_SCALE3) + */ +uint32_t HAL_PWREx_GetVoltageRange(void) +{ + return (PWR->CR & PWR_CR_VOS); +} + + +/** + * @brief Enables the Fast WakeUp from Ultra Low Power mode. + * @note This bit works in conjunction with ULP bit. + * Means, when ULP = 1 and FWU = 1 :VREFINT startup time is ignored when + * exiting from low power mode. + * @retval None + */ +void HAL_PWREx_EnableFastWakeUp(void) +{ + /* Enable the fast wake up */ + *(__IO uint32_t *) CR_FWU_BB = (uint32_t)ENABLE; +} + +/** + * @brief Disables the Fast WakeUp from Ultra Low Power mode. + * @retval None + */ +void HAL_PWREx_DisableFastWakeUp(void) +{ + /* Disable the fast wake up */ + *(__IO uint32_t *) CR_FWU_BB = (uint32_t)DISABLE; +} + +/** + * @brief Enables the Ultra Low Power mode + * @retval None + */ +void HAL_PWREx_EnableUltraLowPower(void) +{ + /* Enable the Ultra Low Power mode */ + *(__IO uint32_t *) CR_ULP_BB = (uint32_t)ENABLE; +} + +/** + * @brief Disables the Ultra Low Power mode + * @retval None + */ +void HAL_PWREx_DisableUltraLowPower(void) +{ + /* Disable the Ultra Low Power mode */ + *(__IO uint32_t *) CR_ULP_BB = (uint32_t)DISABLE; +} + +/** + * @brief Enters the Low Power Run mode. + * @note Low power run mode can only be entered when VCORE is in range 2. + * In addition, the dynamic voltage scaling must not be used when Low + * power run mode is selected. Only Stop and Sleep modes with regulator + * configured in Low power mode is allowed when Low power run mode is + * selected. + * @note In Low power run mode, all I/O pins keep the same state as in Run mode. + * @retval None + */ +void HAL_PWREx_EnableLowPowerRunMode(void) +{ + /* Enters the Low Power Run mode */ + *(__IO uint32_t *) CR_LPSDSR_BB = (uint32_t)ENABLE; + *(__IO uint32_t *) CR_LPRUN_BB = (uint32_t)ENABLE; +} + +/** + * @brief Exits the Low Power Run mode. + * @retval None + */ +HAL_StatusTypeDef HAL_PWREx_DisableLowPowerRunMode(void) +{ + /* Exits the Low Power Run mode */ + *(__IO uint32_t *) CR_LPRUN_BB = (uint32_t)DISABLE; + *(__IO uint32_t *) CR_LPSDSR_BB = (uint32_t)DISABLE; + return HAL_OK; +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_PWR_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c new file mode 100644 index 0000000..c52899b --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c @@ -0,0 +1,1394 @@ +/** + ****************************************************************************** + * @file stm32l1xx_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 multispeed internal oscillator clock + (MSI 2.097MHz) with Flash 0 wait state and Flash prefetch buffer is disabled, + 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 MSI 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/SDIO/RNG) + (*) SDIO only for STM32L1xxxD devices + + ##### 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) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @defgroup RCC RCC +* @brief RCC HAL module driver + * @{ + */ + +#ifdef HAL_RCC_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* 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 + * @{ + */ +extern const uint8_t PLLMulTable[]; /* Defined in CMSIS (system_stm32l0xx.c)*/ +/** + * @} + */ + +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup RCC_Private_Functions RCC Private Functions + * @{ + */ +static HAL_StatusTypeDef RCC_SetFlashLatencyFromMSIRange(uint32_t MSIrange); +/** + * @} + */ + +/* 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 + (MSI, HSE, HSI, LSE, LSI, PLL, CSS and MCO) and the System buses clocks (SYSCLK, AHB, APB1 + and APB2). + + [..] Internal/external clock and PLL configuration + (#) MSI (Multispeed internal), Seven frequency ranges are available: 65.536 kHz, + 131.072 kHz, 262.144 kHz, 524.288 kHz, 1.048 MHz, 2.097 MHz (default value) and 4.194 MHz. + + (#) HSI (high-speed internal), 16 MHz factory-trimmed RC used directly or through + the PLL as System clock source. + (#) LSI (low-speed internal), ~37 KHz low consumption RC used as IWDG and/or RTC + clock source. + + (#) HSE (high-speed external), 1 to 24 MHz crystal oscillator used directly or + through the PLL as System clock source. Can be used also as RTC clock source. + + (#) LSE (low-speed external), 32 KHz oscillator used as RTC clock source. + + (#) PLL (clocked by HSI or HSE), featuring different output clocks: + (++) The first output is used to generate the high speed system clock (up to 32 MHz) + (++) 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 MSI 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, LSI, MSI, LSE, + HSE or PLL clock (through a configurable prescaler) on PA8 pin. + + [..] System, AHB and APB buses clocks configuration + (#) Several clock sources can be used to drive the System clock (SYSCLK): MSI, HSI, + HSE and PLL. + The AHB clock (HCLK) is derived from System clock through configurable + prescaler and used to clock the CPU, memory and peripherals mapped + on AHB bus (DMA, GPIO...). APB1 (PCLK1) and APB2 (PCLK2) clocks are derived + from AHB clock through configurable prescalers and used to clock + the peripherals mapped on these buses. You can use + "HAL_RCC_GetSysClockFreq()" function to retrieve the frequencies of these clocks. + + -@- All the peripheral clocks are derived from the System clock (SYSCLK) except: + (+@) RTC: RTC clock can be derived either from the LSI, LSE or HSE clock + divided by 2 to 16. You have to use __HAL_RCC_RTC_CONFIG() and __HAL_RCC_RTC_ENABLE() + macros to configure this clock. + (+@) LCD: LCD clock can be derived either from the LSI, LSE or HSE clock + divided by 2 to 16. You have to use __HAL_RCC_LCD_CONFIG() + macros to configure this clock. + (+@) USB OTG FS: USB OTG FS require a frequency equal to 48 MHz + to work correctly. This clock is derived of the main PLL through PLL Multiplier. + + (+@) IWDG clock which is always the LSI clock. + + (#) The maximum frequency of the SYSCLK and HCLK is 32 MHz, PCLK2 32 MHz + and PCLK1 32 MHz. Depending on the device voltage range, the maximum + frequency should be adapted accordingly. + @endverbatim + * @{ + */ + +/* + Additional consideration on the HCLK based on Latency settings: + +----------------------------------------------------------------------+ + | Latency | HCLK clock frequency (MHz) | + | |------------------------------------------------------| + | | voltage range 1 | voltage range 2 | voltage range 3 | + | | 1.8 V | 1.5 V | 1.2 V | + |---------------|------------------|-----------------|-----------------| + |0WS(1CPU cycle)| 0 < HCLK <= 16 | 0 < HCLK <= 8 | 0 < HCLK <= 2 | + |---------------|------------------|-----------------|-----------------| + |1WS(2CPU cycle)| 16 < HCLK <= 32 | 8 < HCLK <= 16 | 2 < HCLK <= 4 | + +----------------------------------------------------------------------+ + + The following table gives the different clock source frequencies depending on the product + voltage range: + +------------------------------------------------------------------------------------------+ + | Product voltage | Clock frequency | + | |------------------|-----------------------------|-----------------------| + | range | MSI | HSI | HSE | PLL | + |-----------------|---------|--------|-----------------------------|-----------------------| + | Range 1 (1.8 V) | 4.2 MHz | 16 MHz | HSE 32 MHz (external clock) | 32 MHz | + | | | | or 24 MHz (crystal) | (PLLVCO max = 96 MHz) | + |-----------------|---------|--------|-----------------------------|-----------------------| + | Range 2 (1.5 V) | 4.2 MHz | 16 MHz | 16 MHz | 16 MHz | + | | | | | (PLLVCO max = 48 MHz) | + |-----------------|---------|--------|-----------------------------|-----------------------| + | Range 3 (1.2 V) | 4.2 MHz | NA | 8 MHz | 4 MHz | + | | | | | (PLLVCO max = 24 MHz) | + +------------------------------------------------------------------------------------------+ + */ + +/** + * @brief Resets the RCC clock configuration to the default reset state. + * @note The default reset state of the clock configuration is given below: + * - MSI ON and used as system clock source + * - HSI, HSE and PLL OFF + * - AHB, APB1 and APB2 prescaler set to 1. + * - CSS and MCO1 OFF + * - All interrupts disabled + * @note This function does not modify the configuration of the + * - Peripheral clocks + * - LSI, LSE and RTC clocks + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_DeInit(void) +{ + uint32_t tickstart; + HAL_StatusTypeDef status; + + /* Set MSIClockRange, HSITRIM and MSITRIM bits to the reset values */ + MODIFY_REG(RCC->ICSCR, (RCC_ICSCR_MSITRIM | RCC_ICSCR_HSITRIM | RCC_ICSCR_MSIRANGE), \ + ((RCC_MSICALIBRATION_DEFAULT << RCC_ICSCR_MSITRIM_Pos) | (RCC_HSICALIBRATION_DEFAULT << RCC_ICSCR_HSITRIM_Pos) | RCC_ICSCR_MSIRANGE_5)); + + /* Set MSION bit */ + SET_BIT(RCC->CR, RCC_CR_MSION); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till MSI is ready */ + while (READ_BIT(RCC->CR, RCC_CR_MSIRDY) == 0U) + { + if ((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Switch SYSCLK to MSI*/ + CLEAR_BIT(RCC->CFGR, RCC_CFGR_SW); + + /* Wait till MSI as SYSCLK status is ready */ + while (READ_BIT(RCC->CFGR, RCC_CFGR_SWS) != 0U) + { + if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = MSI_VALUE; + + /* Configure the source of time base considering new system clock settings */ + status = HAL_InitTick(uwTickPrio); + if(status != HAL_OK) + { + return status; + } + + /* Reset HSION, HSEON, CSSON & PLLON bits */ + CLEAR_BIT(RCC->CR, RCC_CR_HSION | RCC_CR_HSEON | RCC_CR_CSSON | RCC_CR_PLLON); + /* Reset HSEBYP bit */ + CLEAR_BIT(RCC->CR, RCC_CR_HSEBYP); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till PLL is not ready */ + while (READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) + { + if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Reset CFGR register */ + CLEAR_REG(RCC->CFGR); + + /* Disable all interrupts */ + CLEAR_REG(RCC->CIR); + + /* Clear all flags */ +#if defined(RCC_LSECSS_SUPPORT) + WRITE_REG(RCC->CIR, RCC_CIR_LSIRDYC | RCC_CIR_LSERDYC | RCC_CIR_HSIRDYC | RCC_CIR_HSERDYC | RCC_CIR_PLLRDYC | RCC_CIR_MSIRDYC | RCC_CIR_LSECSSC | RCC_CIR_CSSC); +#else + WRITE_REG(RCC->CIR, RCC_CIR_LSIRDYC | RCC_CIR_LSERDYC | RCC_CIR_HSIRDYC | RCC_CIR_HSERDYC | RCC_CIR_PLLRDYC | RCC_CIR_MSIRDYC | RCC_CIR_CSSC); +#endif + + /* Clear all reset flags */ + SET_BIT(RCC->CSR, RCC_CSR_RMVF); + + return HAL_OK; +} + +/** + * @brief Initializes the RCC Oscillators according to the specified parameters in the + * RCC_OscInitTypeDef. + * @param RCC_OscInitStruct pointer to an RCC_OscInitTypeDef structure that + * contains the configuration information for the RCC Oscillators. + * @note The PLL is not disabled when used as system clock. + * @note Transitions LSE Bypass to LSE On and LSE On to LSE Bypass are not + * supported by this macro. User should request a transition to LSE Off + * first and then LSE On or LSE Bypass. + * @note Transition HSE Bypass to HSE On and HSE On to HSE Bypass are not + * supported by this macro. User should request a transition to HSE Off + * first and then HSE On or HSE Bypass. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) +{ + uint32_t tickstart; + HAL_StatusTypeDef status; + uint32_t sysclk_source, pll_config; + + /* Check the parameters */ + if(RCC_OscInitStruct == NULL) + { + return HAL_ERROR; + } + + assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); + + sysclk_source = __HAL_RCC_GET_SYSCLK_SOURCE(); + pll_config = __HAL_RCC_GET_PLL_OSCSOURCE(); + + /*------------------------------- 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((sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSE) + || ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pll_config == RCC_PLLSOURCE_HSE))) + { + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + { + return HAL_ERROR; + } + } + else + { + /* Set the new HSE configuration ---------------------------------------*/ + __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); + + /* Check the HSE State */ + if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till HSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == 0U) + { + if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till HSE is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) + { + if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } + } + /*----------------------------- HSI Configuration --------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) + { + /* Check the parameters */ + assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); + assert_param(IS_RCC_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((sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSI) + || ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pll_config == RCC_PLLSOURCE_HSI))) + { + /* When HSI is used as system clock it will not disabled */ + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) && (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) == 0U) + { + if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + } + else + { + /* Disable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_DISABLE(); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till HSI is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) + { + if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } + } + /*----------------------------- MSI Configuration --------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_MSI) == RCC_OSCILLATORTYPE_MSI) + { + /* When the MSI is used as system clock it will not be disabled */ + if(sysclk_source == RCC_CFGR_SWS_MSI) + { + if((__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != 0U) && (RCC_OscInitStruct->MSIState == RCC_MSI_OFF)) + { + return HAL_ERROR; + } + /* Otherwise, just the calibration and MSI range change are allowed */ + else + { + /* Check MSICalibrationValue and MSIClockRange input parameters */ + assert_param(IS_RCC_MSICALIBRATION_VALUE(RCC_OscInitStruct->MSICalibrationValue)); + assert_param(IS_RCC_MSI_CLOCK_RANGE(RCC_OscInitStruct->MSIClockRange)); + + /* To correctly read data from FLASH memory, the number of wait states (LATENCY) + must be correctly programmed according to the frequency of the CPU clock + (HCLK) and the supply voltage of the device. */ + if(RCC_OscInitStruct->MSIClockRange > __HAL_RCC_GET_MSI_RANGE()) + { + /* First increase number of wait states update if necessary */ + if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) + { + return HAL_ERROR; + } + + /* Selects the Multiple Speed oscillator (MSI) clock range .*/ + __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); + /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ + __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); + } + else + { + /* Else, keep current flash latency while decreasing applies */ + /* Selects the Multiple Speed oscillator (MSI) clock range .*/ + __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); + /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ + __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); + + /* Decrease number of wait states update if necessary */ + if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) + { + return HAL_ERROR; + } + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = (32768U * (1UL << ((RCC_OscInitStruct->MSIClockRange >> RCC_ICSCR_MSIRANGE_Pos) + 1U))) + >> AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)]; + + /* Configure the source of time base considering new system clocks settings*/ + status = HAL_InitTick(uwTickPrio); + if(status != HAL_OK) + { + return status; + } + } + } + else + { + /* Check MSI State */ + assert_param(IS_RCC_MSI(RCC_OscInitStruct->MSIState)); + + /* Check the MSI State */ + if(RCC_OscInitStruct->MSIState != RCC_MSI_OFF) + { + /* Enable the Multi Speed oscillator (MSI). */ + __HAL_RCC_MSI_ENABLE(); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till MSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) == 0U) + { + if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + /* Check MSICalibrationValue and MSIClockRange input parameters */ + assert_param(IS_RCC_MSICALIBRATION_VALUE(RCC_OscInitStruct->MSICalibrationValue)); + assert_param(IS_RCC_MSI_CLOCK_RANGE(RCC_OscInitStruct->MSIClockRange)); + + /* Selects the Multiple Speed oscillator (MSI) clock range .*/ + __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); + /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ + __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); + + } + else + { + /* Disable the Multi Speed oscillator (MSI). */ + __HAL_RCC_MSI_DISABLE(); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till MSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != 0U) + { + if((HAL_GetTick() - tickstart) > MSI_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) == 0U) + { + if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Disable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_DISABLE(); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till LSI is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != 0U) + { + if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } + /*------------------------------ LSE Configuration -------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) + { + FlagStatus pwrclkchanged = RESET; + + /* Check the parameters */ + assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); + + /* Update LSE configuration in Backup Domain control register */ + /* Requires to enable write access to Backup Domain 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) == 0U) + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till LSE is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != 0U) + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + + /* Require to disable power clock if necessary */ + if(pwrclkchanged == SET) + { + __HAL_RCC_PWR_CLK_DISABLE(); + } + } + + /*-------------------------------- PLL Configuration -----------------------*/ + /* Check the parameters */ + assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); + if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) + { + /* Check if the PLL is used as system clock or not */ + if(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)); + assert_param(IS_RCC_PLL_DIV(RCC_OscInitStruct->PLL.PLLDIV)); + + /* 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) != 0U) + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + + /* Configure the main PLL clock source, multiplication and division factors. */ + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + RCC_OscInitStruct->PLL.PLLMUL, + RCC_OscInitStruct->PLL.PLLDIV); + /* 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) == 0U) + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till PLL is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) + { + 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_PLLMUL) != RCC_OscInitStruct->PLL.PLLMUL) || + (READ_BIT(pll_config, RCC_CFGR_PLLDIV) != RCC_OscInitStruct->PLL.PLLDIV)) + { + 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 MSI 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. + * @note Depending on the device voltage range, the software has to set correctly + * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency + * (for more details refer to section above "Initialization/de-initialization functions") + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) +{ + uint32_t tickstart; + HAL_StatusTypeDef status; + + /* Check the parameters */ + if(RCC_ClkInitStruct == NULL) + { + return HAL_ERROR; + } + + assert_param(IS_FLASH_LATENCY(FLatency)); + + /* To correctly read data from FLASH memory, the number of wait states (LATENCY) + must be correctly programmed according to the frequency of the CPU clock + (HCLK) and the supply voltage of the device. */ + + /* Increasing the number of wait states because of higher CPU frequency */ + if(FLatency > __HAL_FLASH_GET_LATENCY()) + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + + /* Check that the new number of wait states is taken into account to access the Flash + memory by reading the FLASH_ACR register */ + if(__HAL_FLASH_GET_LATENCY() != FLatency) + { + return HAL_ERROR; + } + } + + /*-------------------------- HCLK Configuration --------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + { + assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); + } + + /*------------------------- SYSCLK Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) + { + assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); + + /* HSE is selected as System Clock Source */ + if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + { + /* Check the HSE ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == 0U) + { + 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) == 0U) + { + return HAL_ERROR; + } + } + /* HSI is selected as System Clock Source */ + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSI) + { + /* Check the HSI ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == 0U) + { + return HAL_ERROR; + } + } + /* MSI is selected as System Clock Source */ + else + { + /* Check the MSI ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) == 0U) + { + return HAL_ERROR; + } + } + __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); + + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + { + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSE) + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + { + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSI) + { + while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSI) + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + else + { + while(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_MSI) + { + if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } + /* Decreasing the number of wait states because of lower CPU frequency */ + if(FLatency < __HAL_FLASH_GET_LATENCY()) + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + + /* Check that the new number of wait states is taken into account to access the Flash + memory by reading the FLASH_ACR register */ + if(__HAL_FLASH_GET_LATENCY() != FLatency) + { + return HAL_ERROR; + } + } + + /*-------------------------- PCLK1 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); + } + + /*-------------------------- PCLK2 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_Pos]; + + /* Configure the source of time base considering new system clocks settings*/ + status = HAL_InitTick(uwTickPrio); + + return status; +} + +/** + * @} + */ + +/** @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 + * @arg @ref RCC_MCO1SOURCE_MSI MSI oscillator clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_PLLCLK PLL clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSI LSI clock selected as MCO clock + * @arg @ref RCC_MCO1SOURCE_LSE LSE clock selected as MCO clock + * @param RCC_MCODiv specifies the MCO DIV. + * This parameter can be one of the following values: + * @arg @ref RCC_MCODIV_1 no division applied to MCO clock + * @arg @ref RCC_MCODIV_2 division by 2 applied to MCO clock + * @arg @ref RCC_MCODIV_4 division by 4 applied to MCO clock + * @arg @ref RCC_MCODIV_8 division by 8 applied to MCO clock + * @arg @ref RCC_MCODIV_16 division by 16 applied to MCO clock + * @retval None + */ +void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv) +{ + GPIO_InitTypeDef gpio; + + /* Check the parameters */ + assert_param(IS_RCC_MCO(RCC_MCOx)); + assert_param(IS_RCC_MCODIV(RCC_MCODiv)); + assert_param(IS_RCC_MCO1SOURCE(RCC_MCOSource)); + + /* Prevent unused argument(s) compilation warning */ + UNUSED(RCC_MCOx); + + /* Configure the MCO1 pin in alternate function mode */ + gpio.Mode = GPIO_MODE_AF_PP; + gpio.Speed = GPIO_SPEED_FREQ_HIGH; + gpio.Pull = GPIO_NOPULL; + gpio.Pin = MCO1_PIN; + gpio.Alternate = GPIO_AF0_MCO; + + /* MCO1 Clock Enable */ + MCO1_CLK_ENABLE(); + + HAL_GPIO_Init(MCO1_GPIO_PORT, &gpio); + + /* Configure the MCO clock source */ + __HAL_RCC_MCO1_CONFIG(RCC_MCOSource, RCC_MCODiv); +} + +/** + * @brief Enables the Clock Security System. + * @note If a failure is detected on the HSE oscillator clock, this oscillator + * is automatically disabled and an interrupt is generated to inform the + * software about the failure (Clock Security System Interrupt, CSSI), + * allowing the MCU to perform rescue operations. The CSSI is linked to + * the Cortex-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 MSI, function returns a value based on MSI + * Value as defined by the MSI range. + * @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(**) + * @note If SYSCLK source is PLL, function returns a value based on HSE_VALUE(**) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * @note (*) HSI_VALUE is a constant defined in stm32l1xx_hal_conf.h file (default value + * 16 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * @note (**) HSE_VALUE is a constant defined in stm32l1xx_hal_conf.h file (default value + * 8 MHz), user has to ensure that HSE_VALUE is same as the real + * frequency of the crystal used. Otherwise, this function may + * have wrong result. + * + * @note The result of this function could be not correct when using fractional + * value for HSE crystal. + * + * @note This function can be used by the user application to compute the + * baud-rate for the communication peripherals or configure other parameters. + * + * @note Each time SYSCLK changes, this function must be called to update the + * right SYSCLK value. Otherwise, any configuration based on this function will be incorrect. + * + * @retval SYSCLK frequency + */ +uint32_t HAL_RCC_GetSysClockFreq(void) +{ + uint32_t tmpreg, pllm, plld, pllvco, msiclkrange, sysclockfreq; + + tmpreg = RCC->CFGR; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (tmpreg & RCC_CFGR_SWS) + { + case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ + { + sysclockfreq = HSI_VALUE; + break; + } + case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock */ + { + sysclockfreq = HSE_VALUE; + break; + } + case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock */ + { + pllm = PLLMulTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMUL) >> RCC_CFGR_PLLMUL_Pos]; + plld = ((uint32_t)(tmpreg & RCC_CFGR_PLLDIV) >> RCC_CFGR_PLLDIV_Pos) + 1U; + if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLSOURCE_HSI) + { + /* HSE used as PLL clock source */ + pllvco = (uint32_t)(((uint64_t)HSE_VALUE * (uint64_t)pllm) / (uint64_t)plld); + } + else + { + /* HSI used as PLL clock source */ + pllvco = (uint32_t)(((uint64_t)HSI_VALUE * (uint64_t)pllm) / (uint64_t)plld); + } + sysclockfreq = pllvco; + break; + } + case RCC_SYSCLKSOURCE_STATUS_MSI: /* MSI used as system clock source */ + default: /* MSI used as system clock */ + { + msiclkrange = (RCC->ICSCR & RCC_ICSCR_MSIRANGE ) >> RCC_ICSCR_MSIRANGE_Pos; + sysclockfreq = (32768U * (1UL << (msiclkrange + 1U))); + 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 != (void *)NULL); + + /* Set all possible values for the Oscillator type parameter ---------------*/ + RCC_OscInitStruct->OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI \ + | RCC_OSCILLATORTYPE_LSE | RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_MSI; + + + /* 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; + } + + /* 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->ICSCR & RCC_ICSCR_HSITRIM) >> RCC_ICSCR_HSITRIM_Pos); + + /* Get the MSI configuration -----------------------------------------------*/ + if((RCC->CR &RCC_CR_MSION) == RCC_CR_MSION) + { + RCC_OscInitStruct->MSIState = RCC_MSI_ON; + } + else + { + RCC_OscInitStruct->MSIState = RCC_MSI_OFF; + } + + RCC_OscInitStruct->MSICalibrationValue = (uint32_t)((RCC->ICSCR & RCC_ICSCR_MSITRIM) >> RCC_ICSCR_MSITRIM_Pos); + RCC_OscInitStruct->MSIClockRange = (uint32_t)((RCC->ICSCR & RCC_ICSCR_MSIRANGE)); + + /* Get the LSE configuration -----------------------------------------------*/ + if((RCC->CSR &RCC_CSR_LSEBYP) == RCC_CSR_LSEBYP) + { + RCC_OscInitStruct->LSEState = RCC_LSE_BYPASS; + } + else if((RCC->CSR &RCC_CSR_LSEON) == RCC_CSR_LSEON) + { + RCC_OscInitStruct->LSEState = RCC_LSE_ON; + } + else + { + RCC_OscInitStruct->LSEState = RCC_LSE_OFF; + } + + /* Get the LSI configuration -----------------------------------------------*/ + if((RCC->CSR &RCC_CSR_LSION) == RCC_CSR_LSION) + { + RCC_OscInitStruct->LSIState = RCC_LSI_ON; + } + else + { + RCC_OscInitStruct->LSIState = RCC_LSI_OFF; + } + + + /* Get the PLL configuration -----------------------------------------------*/ + if((RCC->CR &RCC_CR_PLLON) == RCC_CR_PLLON) + { + RCC_OscInitStruct->PLL.PLLState = RCC_PLL_ON; + } + else + { + RCC_OscInitStruct->PLL.PLLState = RCC_PLL_OFF; + } + RCC_OscInitStruct->PLL.PLLSource = (uint32_t)(RCC->CFGR & RCC_CFGR_PLLSRC); + RCC_OscInitStruct->PLL.PLLMUL = (uint32_t)(RCC->CFGR & RCC_CFGR_PLLMUL); + RCC_OscInitStruct->PLL.PLLDIV = (uint32_t)(RCC->CFGR & RCC_CFGR_PLLDIV); +} + +/** + * @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 != (void *)NULL); + assert_param(pFLatency != (void *)NULL); + + /* Set all possible values for the Clock type parameter --------------------*/ + RCC_ClkInitStruct->ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; + + /* Get the SYSCLK configuration --------------------------------------------*/ + RCC_ClkInitStruct->SYSCLKSource = (uint32_t)(RCC->CFGR & RCC_CFGR_SW); + + /* Get the HCLK configuration ----------------------------------------------*/ + RCC_ClkInitStruct->AHBCLKDivider = (uint32_t)(RCC->CFGR & RCC_CFGR_HPRE); + + /* Get the APB1 configuration ----------------------------------------------*/ + RCC_ClkInitStruct->APB1CLKDivider = (uint32_t)(RCC->CFGR & RCC_CFGR_PPRE1); + + /* Get the APB2 configuration ----------------------------------------------*/ + RCC_ClkInitStruct->APB2CLKDivider = (uint32_t)((RCC->CFGR & RCC_CFGR_PPRE2) >> 3U); + + /* Get the Flash Wait State (Latency) configuration ------------------------*/ + *pFLatency = __HAL_FLASH_GET_LATENCY(); +} + +/** + * @brief This function handles the RCC CSS interrupt request. + * @note This API should be called under the NMI_Handler(). + * @retval None + */ +void HAL_RCC_NMI_IRQHandler(void) +{ + /* Check RCC CSSF flag */ + if(__HAL_RCC_GET_IT(RCC_IT_CSS)) + { + /* RCC Clock Security System interrupt user callback */ + HAL_RCC_CSSCallback(); + + /* Clear RCC CSS pending bit */ + __HAL_RCC_CLEAR_IT(RCC_IT_CSS); + } +} + +/** + * @brief RCC Clock Security System interrupt callback + * @retval none + */ +__weak void HAL_RCC_CSSCallback(void) +{ + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_RCC_CSSCallback could be implemented in the user file + */ +} + +/** + * @} + */ + +/** + * @} + */ + +/* Private function prototypes -----------------------------------------------*/ +/** @addtogroup RCC_Private_Functions + * @{ + */ +/** + * @brief Update number of Flash wait states in line with MSI range and current + voltage range + * @param MSIrange MSI range value from RCC_MSIRANGE_0 to RCC_MSIRANGE_6 + * @retval HAL status + */ +static HAL_StatusTypeDef RCC_SetFlashLatencyFromMSIRange(uint32_t MSIrange) +{ + uint32_t vos; + uint32_t latency = FLASH_LATENCY_0; /* default value 0WS */ + + /* HCLK can reach 4 MHz only if AHB prescaler = 1 */ + if (READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) == RCC_SYSCLK_DIV1) + { + if(__HAL_RCC_PWR_IS_CLK_ENABLED()) + { + vos = READ_BIT(PWR->CR, PWR_CR_VOS); + } + else + { + __HAL_RCC_PWR_CLK_ENABLE(); + vos = READ_BIT(PWR->CR, PWR_CR_VOS); + __HAL_RCC_PWR_CLK_DISABLE(); + } + + /* Check if need to set latency 1 only for Range 3 & HCLK = 4MHz */ + if((vos == PWR_REGULATOR_VOLTAGE_SCALE3) && (MSIrange == RCC_MSIRANGE_6)) + { + latency = FLASH_LATENCY_1; /* 1WS */ + } + } + + __HAL_FLASH_SET_LATENCY(latency); + + /* 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() != latency) + { + return HAL_ERROR; + } + + return HAL_OK; +} + +/** + * @} + */ + +#endif /* HAL_RCC_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c new file mode 100644 index 0000000..b6cbb68 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c @@ -0,0 +1,447 @@ +/** + ****************************************************************************** + * @file stm32l1xx_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) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file in + * the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_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 Extended Peripheral Control functions + * @brief Extended Peripheral Control functions + * +@verbatim + =============================================================================== + ##### Extended Peripheral Control functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to control the RCC Clocks + frequencies. + [..] + (@) Important note: Care must be taken when HAL_RCCEx_PeriphCLKConfig() is used to + select the RTC clock source; in this case the Backup domain will be reset in + order to modify the RTC Clock source, as consequence RTC registers (including + the backup registers) are set to their reset values. + +@endverbatim + * @{ + */ + +/** + * @brief Initializes the RCC extended peripherals clocks according to the specified + * parameters in the RCC_PeriphCLKInitTypeDef. + * @param PeriphClkInit pointer to an RCC_PeriphCLKInitTypeDef structure that + * contains the configuration information for the Extended Peripherals clocks(RTC/LCD clock). + * @retval HAL status + * @note If HAL_ERROR returned, first switch-OFF HSE clock oscillator with @ref HAL_RCC_OscConfig() + * to possibly update HSE divider. + */ +HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) +{ + uint32_t tickstart; + uint32_t temp_reg; + + /* Check the parameters */ + assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); + + /*------------------------------- RTC/LCD Configuration ------------------------*/ + if ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) +#if defined(LCD) + || (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LCD) == RCC_PERIPHCLK_LCD) +#endif /* LCD */ + ) + { + /* check for RTC Parameters used to output RTCCLK */ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) + { + assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); + } + +#if defined(LCD) + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LCD) == RCC_PERIPHCLK_LCD) + { + assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->LCDClockSelection)); + } +#endif /* LCD */ + + 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; + } + } + } + + /* Check if user wants to change HSE RTC prescaler whereas HSE is enabled */ + temp_reg = (RCC->CR & RCC_CR_RTCPRE); + if ((temp_reg != (PeriphClkInit->RTCClockSelection & RCC_CR_RTCPRE)) +#if defined (LCD) + || (temp_reg != (PeriphClkInit->LCDClockSelection & RCC_CR_RTCPRE)) +#endif /* LCD */ + ) + { /* Check HSE State */ + if ((PeriphClkInit->RTCClockSelection & RCC_CSR_RTCSEL) == RCC_CSR_RTCSEL_HSE) + { + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSERDY)) + { + /* To update HSE divider, first switch-OFF HSE clock oscillator*/ + return HAL_ERROR; + } + } + } + + /* Reset the Backup domain only if the RTC Clock source selection is modified from reset value */ + temp_reg = (RCC->CSR & RCC_CSR_RTCSEL); + + if((temp_reg != 0x00000000U) && (((temp_reg != (PeriphClkInit->RTCClockSelection & RCC_CSR_RTCSEL)) \ + && (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC)) +#if defined(LCD) + || ((temp_reg != (PeriphClkInit->LCDClockSelection & RCC_CSR_RTCSEL)) \ + && (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LCD) == RCC_PERIPHCLK_LCD)) +#endif /* LCD */ + )) + { + /* Store the content of CSR register before the reset of Backup Domain */ + temp_reg = (RCC->CSR & ~(RCC_CSR_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 CSR register */ + RCC->CSR = temp_reg; + + /* Wait for LSERDY if LSE was enabled */ + if (HAL_IS_BIT_SET(temp_reg, RCC_CSR_LSEON)) + { + /* Get Start Tick */ + tickstart = HAL_GetTick(); + + /* Wait till LSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == 0U) + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } + } + } +#if defined(LCD) + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LCD) == RCC_PERIPHCLK_LCD) + { + __HAL_RCC_LCD_CONFIG(PeriphClkInit->LCDClockSelection); + } +#endif /* LCD */ + + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) + { + __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); + } + + /* Require to disable power clock if necessary */ + if(pwrclkchanged == SET) + { + __HAL_RCC_PWR_CLK_DISABLE(); + } + } + + 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/LCD clocks). + * @retval None + */ +void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) +{ + uint32_t srcclk; + + /* Set all possible values for the extended clock type parameter------------*/ + PeriphClkInit->PeriphClockSelection = RCC_PERIPHCLK_RTC; +#if defined(LCD) + PeriphClkInit->PeriphClockSelection |= RCC_PERIPHCLK_LCD; +#endif /* LCD */ + + /* Get the RTC/LCD configuration -----------------------------------------------*/ + srcclk = __HAL_RCC_GET_RTC_SOURCE(); + if (srcclk != RCC_RTCCLKSOURCE_HSE_DIV2) + { + /* Source clock is LSE or LSI*/ + PeriphClkInit->RTCClockSelection = srcclk; + } + else + { + /* Source clock is HSE. Need to get the prescaler value*/ + PeriphClkInit->RTCClockSelection = srcclk | (READ_BIT(RCC->CR, RCC_CR_RTCPRE)); + } +#if defined(LCD) + PeriphClkInit->LCDClockSelection = PeriphClkInit->RTCClockSelection; +#endif /* LCD */ +} + +/** + * @brief Return the peripheral clock frequency + * @note Return 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_LCD LCD peripheral clock (*) + * @note (*) means that this peripheral is not present on all the devices + * @retval Frequency in Hz (0: means that no available frequency for the peripheral) + */ +uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint32_t PeriphClk) +{ + uint32_t frequency = 0; + uint32_t srcclk; + + /* Check the parameters */ + assert_param(IS_RCC_PERIPHCLOCK(PeriphClk)); + + switch (PeriphClk) + { + case RCC_PERIPHCLK_RTC: +#if defined(LCD) + case RCC_PERIPHCLK_LCD: +#endif /* LCD */ + { + /* Get the current RTC source */ + srcclk = __HAL_RCC_GET_RTC_SOURCE(); + + /* Check if LSE is ready if RTC clock selection is LSE */ + if (srcclk == RCC_RTCCLKSOURCE_LSE) + { + if (HAL_IS_BIT_SET(RCC->CSR, RCC_CSR_LSERDY)) + { + frequency = LSE_VALUE; + } + } + /* Check if LSI is ready if RTC clock selection is LSI */ + else if (srcclk == RCC_RTCCLKSOURCE_LSI) + { + if (HAL_IS_BIT_SET(RCC->CSR, RCC_CSR_LSIRDY)) + { + frequency = LSI_VALUE; + } + } + /* Check if HSE is ready and if RTC clock selection is HSE */ + else if (srcclk == RCC_RTCCLKSOURCE_HSE_DIVX) + { + if (HAL_IS_BIT_SET(RCC->CR, RCC_CR_HSERDY)) + { + /* Get the current HSE clock divider */ + switch (__HAL_RCC_GET_RTC_HSE_PRESCALER()) + { + case RCC_RTC_HSE_DIV_16: /* HSE DIV16 has been selected */ + { + frequency = HSE_VALUE / 16U; + break; + } + case RCC_RTC_HSE_DIV_8: /* HSE DIV8 has been selected */ + { + frequency = HSE_VALUE / 8U; + break; + } + case RCC_RTC_HSE_DIV_4: /* HSE DIV4 has been selected */ + { + frequency = HSE_VALUE / 4U; + break; + } + default: /* HSE DIV2 has been selected */ + { + frequency = HSE_VALUE / 2U; + break; + } + } + } + } + else + { + /* No clock source, frequency default init at 0 */ + } + break; + } + + default: + break; + } + + return(frequency); +} + +#if defined(RCC_LSECSS_SUPPORT) +/** + * @brief Enables the LSE Clock Security System. + * @note If a failure is detected on the external 32 kHz oscillator, the LSE clock is no longer supplied + * to the RTC but no hardware action is made to the registers. + * In Standby mode a wakeup is generated. In other modes an interrupt can be sent to wakeup + * the software (see Section 5.3.4: Clock interrupt register (RCC_CIR) on page 104). + * The software MUST then disable the LSECSSON bit, stop the defective 32 kHz oscillator + * (disabling LSEON), and can change the RTC clock source (no clock or LSI or HSE, with + * RTCSEL), or take any required action to secure the application. + * @note LSE CSS available only for high density and medium+ devices + * @retval None + */ +void HAL_RCCEx_EnableLSECSS(void) +{ + *(__IO uint32_t *) CSR_LSECSSON_BB = (uint32_t)ENABLE; +} + +/** + * @brief Disables the LSE Clock Security System. + * @note Once enabled this bit cannot be disabled, except after an LSE failure detection + * (LSECSSD=1). In that case the software MUST disable the LSECSSON bit. + * Reset by power on reset and RTC software reset (RTCRST bit). + * @note LSE CSS available only for high density and medium+ devices + * @retval None + */ +void HAL_RCCEx_DisableLSECSS(void) +{ + /* Disable LSE CSS */ + *(__IO uint32_t *) CSR_LSECSSON_BB = (uint32_t)DISABLE; + + /* Disable LSE CSS IT */ + __HAL_RCC_DISABLE_IT(RCC_IT_LSECSS); +} + +/** + * @brief Enable the LSE Clock Security System IT & corresponding EXTI line. + * @note LSE Clock Security System IT is mapped on RTC EXTI line 19 + * @retval None + */ +void HAL_RCCEx_EnableLSECSS_IT(void) +{ + /* Enable LSE CSS */ + *(__IO uint32_t *) CSR_LSECSSON_BB = (uint32_t)ENABLE; + + /* Enable LSE CSS IT */ + __HAL_RCC_ENABLE_IT(RCC_IT_LSECSS); + + /* Enable IT on EXTI Line 19 */ + __HAL_RCC_LSECSS_EXTI_ENABLE_IT(); + __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_EDGE(); +} + +/** + * @brief Handle the RCC LSE Clock Security System interrupt request. + * @retval None + */ +void HAL_RCCEx_LSECSS_IRQHandler(void) +{ + /* Check RCC LSE CSSF flag */ + if(__HAL_RCC_GET_IT(RCC_IT_LSECSS)) + { + /* RCC LSE Clock Security System interrupt user callback */ + HAL_RCCEx_LSECSS_Callback(); + + /* Clear RCC LSE CSS pending bit */ + __HAL_RCC_CLEAR_IT(RCC_IT_LSECSS); + } +} + +/** + * @brief RCCEx LSE Clock Security System interrupt callback. + * @retval none + */ +__weak void HAL_RCCEx_LSECSS_Callback(void) +{ + /* NOTE : This function should not be modified, when the callback is needed, + the @ref HAL_RCCEx_LSECSS_Callback should be implemented in the user file + */ +} +#endif /* RCC_LSECSS_SUPPORT */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_RCC_MODULE_ENABLED */ +/** + * @} + */ + diff --git a/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c new file mode 100644 index 0000000..13af2fb --- /dev/null +++ b/TP2_ISEN_DISPLAY/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c @@ -0,0 +1,3962 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_spi.c + * @author MCD Application Team + * @brief SPI HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Serial Peripheral Interface (SPI) peripheral: + * + Initialization and de-initialization functions + * + IO operation functions + * + Peripheral Control functions + * + Peripheral State functions + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The SPI HAL driver can be used as follows: + + (#) Declare a SPI_HandleTypeDef handle structure, for example: + SPI_HandleTypeDef hspi; + + (#)Initialize the SPI low level resources by implementing the HAL_SPI_MspInit() API: + (##) Enable the SPIx interface clock + (##) SPI pins configuration + (+++) Enable the clock for the SPI GPIOs + (+++) Configure these SPI pins as alternate function push-pull + (##) NVIC configuration if you need to use interrupt process + (+++) Configure the SPIx interrupt priority + (+++) Enable the NVIC SPI IRQ handle + (##) DMA Configuration if you need to use DMA process + (+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive Stream/Channel + (+++) Enable the DMAx clock + (+++) Configure the DMA handle parameters + (+++) Configure the DMA Tx or Rx Stream/Channel + (+++) Associate the initialized hdma_tx(or _rx) handle to the hspi DMA Tx or Rx handle + (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on the DMA Tx + or Rx Stream/Channel + + (#) Program the Mode, BidirectionalMode , Data size, Baudrate Prescaler, NSS + management, Clock polarity and phase, FirstBit and CRC configuration in the hspi Init structure. + + (#) Initialize the SPI registers by calling the HAL_SPI_Init() API: + (++) This API configures also the low level Hardware GPIO, CLOCK, CORTEX...etc) + by calling the customized HAL_SPI_MspInit() API. + [..] + Circular mode restriction: + (#) The DMA circular mode cannot be used when the SPI is configured in these modes: + (##) Master 2Lines RxOnly + (##) Master 1Line Rx + (#) The CRC feature is not managed when the DMA circular mode is enabled + (#) When the SPI DMA Pause/Stop features are used, we must use the following APIs + the HAL_SPI_DMAPause()/ HAL_SPI_DMAStop() only under the SPI callbacks + [..] + Master Receive mode restriction: + (#) In Master unidirectional receive-only mode (MSTR =1, BIDIMODE=0, RXONLY=1) or + bidirectional receive mode (MSTR=1, BIDIMODE=1, BIDIOE=0), to ensure that the SPI + does not initiate a new transfer the following procedure has to be respected: + (##) HAL_SPI_DeInit() + (##) HAL_SPI_Init() + [..] + Callback registration: + + (#) The compilation flag USE_HAL_SPI_REGISTER_CALLBACKS when set to 1U + allows the user to configure dynamically the driver callbacks. + Use Functions HAL_SPI_RegisterCallback() to register an interrupt callback. + + Function HAL_SPI_RegisterCallback() allows to register following callbacks: + (++) TxCpltCallback : SPI Tx Completed callback + (++) RxCpltCallback : SPI Rx Completed callback + (++) TxRxCpltCallback : SPI TxRx Completed callback + (++) TxHalfCpltCallback : SPI Tx Half Completed callback + (++) RxHalfCpltCallback : SPI Rx Half Completed callback + (++) TxRxHalfCpltCallback : SPI TxRx Half Completed callback + (++) ErrorCallback : SPI Error callback + (++) AbortCpltCallback : SPI Abort callback + (++) MspInitCallback : SPI Msp Init callback + (++) MspDeInitCallback : SPI Msp DeInit callback + This function takes as parameters the HAL peripheral handle, the Callback ID + and a pointer to the user callback function. + + + (#) Use function HAL_SPI_UnRegisterCallback to reset a callback to the default + weak function. + HAL_SPI_UnRegisterCallback takes as parameters the HAL peripheral handle, + and the Callback ID. + This function allows to reset following callbacks: + (++) TxCpltCallback : SPI Tx Completed callback + (++) RxCpltCallback : SPI Rx Completed callback + (++) TxRxCpltCallback : SPI TxRx Completed callback + (++) TxHalfCpltCallback : SPI Tx Half Completed callback + (++) RxHalfCpltCallback : SPI Rx Half Completed callback + (++) TxRxHalfCpltCallback : SPI TxRx Half Completed callback + (++) ErrorCallback : SPI Error callback + (++) AbortCpltCallback : SPI Abort callback + (++) MspInitCallback : SPI Msp Init callback + (++) MspDeInitCallback : SPI Msp DeInit callback + + [..] + By default, after the HAL_SPI_Init() and when the state is HAL_SPI_STATE_RESET + all callbacks are set to the corresponding weak functions: + examples HAL_SPI_MasterTxCpltCallback(), HAL_SPI_MasterRxCpltCallback(). + Exception done for MspInit and MspDeInit functions that are + reset to the legacy weak functions in the HAL_SPI_Init()/ HAL_SPI_DeInit() only when + these callbacks are null (not registered beforehand). + If MspInit or MspDeInit are not null, the HAL_SPI_Init()/ HAL_SPI_DeInit() + keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. + + [..] + Callbacks can be registered/unregistered in HAL_SPI_STATE_READY state only. + Exception done MspInit/MspDeInit functions that can be registered/unregistered + in HAL_SPI_STATE_READY or HAL_SPI_STATE_RESET state, + thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. + Then, the user first registers the MspInit/MspDeInit user callbacks + using HAL_SPI_RegisterCallback() before calling HAL_SPI_DeInit() + or HAL_SPI_Init() function. + + [..] + When the compilation define USE_HAL_PPP_REGISTER_CALLBACKS is set to 0 or + not defined, the callback registering feature is not available + and weak (surcharged) callbacks are used. + + [..] + Using the HAL it is not possible to reach all supported SPI frequency with the different SPI Modes, + the following table resume the max SPI frequency reached with data size 8bits/16bits, + according to frequency of the APBx Peripheral Clock (fPCLK) used by the SPI instance. + + @endverbatim + + Additional table : + + DataSize = SPI_DATASIZE_8BIT: + +----------------------------------------------------------------------------------------------+ + | | | 2Lines Fullduplex | 2Lines RxOnly | 1Line | + | Process | Transfer mode |---------------------|----------------------|----------------------| + | | | Master | Slave | Master | Slave | Master | Slave | + |==============================================================================================| + | T | Polling | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA | + | X |----------------|----------|----------|-----------|----------|-----------|----------| + | / | Interrupt | Fpclk/4 | Fpclk/8 | NA | NA | NA | NA | + | R |----------------|----------|----------|-----------|----------|-----------|----------| + | X | DMA | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA | + |=========|================|==========|==========|===========|==========|===========|==========| + | | Polling | Fpclk/2 | Fpclk/2 | Fpclk/64 | Fpclk/2 | Fpclk/64 | Fpclk/2 | + | |----------------|----------|----------|-----------|----------|-----------|----------| + | R | Interrupt | Fpclk/8 | Fpclk/8 | Fpclk/64 | Fpclk/2 | Fpclk/64 | Fpclk/2 | + | X |----------------|----------|----------|-----------|----------|-----------|----------| + | | DMA | Fpclk/2 | Fpclk/2 | Fpclk/64 | Fpclk/2 | Fpclk/128 | Fpclk/2 | + |=========|================|==========|==========|===========|==========|===========|==========| + | | Polling | Fpclk/2 | Fpclk/4 | NA | NA | Fpclk/2 | Fpclk/64 | + | |----------------|----------|----------|-----------|----------|-----------|----------| + | T | Interrupt | Fpclk/2 | Fpclk/4 | NA | NA | Fpclk/2 | Fpclk/64 | + | X |----------------|----------|----------|-----------|----------|-----------|----------| + | | DMA | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/2 | Fpclk/128| + +----------------------------------------------------------------------------------------------+ + + DataSize = SPI_DATASIZE_16BIT: + +----------------------------------------------------------------------------------------------+ + | | | 2Lines Fullduplex | 2Lines RxOnly | 1Line | + | Process | Transfer mode |---------------------|----------------------|----------------------| + | | | Master | Slave | Master | Slave | Master | Slave | + |==============================================================================================| + | T | Polling | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA | + | X |----------------|----------|----------|-----------|----------|-----------|----------| + | / | Interrupt | Fpclk/4 | Fpclk/4 | NA | NA | NA | NA | + | R |----------------|----------|----------|-----------|----------|-----------|----------| + | X | DMA | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA | + |=========|================|==========|==========|===========|==========|===========|==========| + | | Polling | Fpclk/2 | Fpclk/2 | Fpclk/64 | Fpclk/2 | Fpclk/32 | Fpclk/2 | + | |----------------|----------|----------|-----------|----------|-----------|----------| + | R | Interrupt | Fpclk/4 | Fpclk/4 | Fpclk/64 | Fpclk/2 | Fpclk/64 | Fpclk/2 | + | X |----------------|----------|----------|-----------|----------|-----------|----------| + | | DMA | Fpclk/2 | Fpclk/2 | Fpclk/64 | Fpclk/2 | Fpclk/128 | Fpclk/2 | + |=========|================|==========|==========|===========|==========|===========|==========| + | | Polling | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/2 | Fpclk/32 | + | |----------------|----------|----------|-----------|----------|-----------|----------| + | T | Interrupt | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/2 | Fpclk/64 | + | X |----------------|----------|----------|-----------|----------|-----------|----------| + | | DMA | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/2 | Fpclk/128| + +----------------------------------------------------------------------------------------------+ + @note The max SPI frequency depend on SPI data size (8bits, 16bits), + SPI mode(2 Lines fullduplex, 2 lines RxOnly, 1 line TX/RX) and Process mode (Polling, IT, DMA). + @note + (#) TX/RX processes are HAL_SPI_TransmitReceive(), HAL_SPI_TransmitReceive_IT() and + HAL_SPI_TransmitReceive_DMA() + (#) RX processes are HAL_SPI_Receive(), HAL_SPI_Receive_IT() and HAL_SPI_Receive_DMA() + (#) TX processes are HAL_SPI_Transmit(), HAL_SPI_Transmit_IT() and HAL_SPI_Transmit_DMA() + + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @defgroup SPI SPI + * @brief SPI HAL module driver + * @{ + */ +#ifdef HAL_SPI_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private defines -----------------------------------------------------------*/ +/** @defgroup SPI_Private_Constants SPI Private Constants + * @{ + */ +#define SPI_DEFAULT_TIMEOUT 100U +#define SPI_BSY_FLAG_WORKAROUND_TIMEOUT 1000U /*!< Timeout 1000 us */ +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup SPI_Private_Functions SPI Private Functions + * @{ + */ +static void SPI_DMATransmitCplt(DMA_HandleTypeDef *hdma); +static void SPI_DMAReceiveCplt(DMA_HandleTypeDef *hdma); +static void SPI_DMATransmitReceiveCplt(DMA_HandleTypeDef *hdma); +static void SPI_DMAHalfTransmitCplt(DMA_HandleTypeDef *hdma); +static void SPI_DMAHalfReceiveCplt(DMA_HandleTypeDef *hdma); +static void SPI_DMAHalfTransmitReceiveCplt(DMA_HandleTypeDef *hdma); +static void SPI_DMAError(DMA_HandleTypeDef *hdma); +static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma); +static void SPI_DMATxAbortCallback(DMA_HandleTypeDef *hdma); +static void SPI_DMARxAbortCallback(DMA_HandleTypeDef *hdma); +static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, FlagStatus State, + uint32_t Timeout, uint32_t Tickstart); +static void SPI_TxISR_8BIT(struct __SPI_HandleTypeDef *hspi); +static void SPI_TxISR_16BIT(struct __SPI_HandleTypeDef *hspi); +static void SPI_RxISR_8BIT(struct __SPI_HandleTypeDef *hspi); +static void SPI_RxISR_16BIT(struct __SPI_HandleTypeDef *hspi); +static void SPI_2linesRxISR_8BIT(struct __SPI_HandleTypeDef *hspi); +static void SPI_2linesTxISR_8BIT(struct __SPI_HandleTypeDef *hspi); +static void SPI_2linesTxISR_16BIT(struct __SPI_HandleTypeDef *hspi); +static void SPI_2linesRxISR_16BIT(struct __SPI_HandleTypeDef *hspi); +#if (USE_SPI_CRC != 0U) +static void SPI_RxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi); +static void SPI_RxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi); +static void SPI_2linesRxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi); +static void SPI_2linesRxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi); +#endif /* USE_SPI_CRC */ +static void SPI_AbortRx_ISR(SPI_HandleTypeDef *hspi); +static void SPI_AbortTx_ISR(SPI_HandleTypeDef *hspi); +static void SPI_CloseRxTx_ISR(SPI_HandleTypeDef *hspi); +static void SPI_CloseRx_ISR(SPI_HandleTypeDef *hspi); +static void SPI_CloseTx_ISR(SPI_HandleTypeDef *hspi); +static HAL_StatusTypeDef SPI_EndRxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart); +static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart); +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup SPI_Exported_Functions SPI Exported Functions + * @{ + */ + +/** @defgroup SPI_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and Configuration functions + * +@verbatim + =============================================================================== + ##### Initialization and de-initialization functions ##### + =============================================================================== + [..] This subsection provides a set of functions allowing to initialize and + de-initialize the SPIx peripheral: + + (+) User must implement HAL_SPI_MspInit() function in which he configures + all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). + + (+) Call the function HAL_SPI_Init() to configure the selected device with + the selected configuration: + (++) Mode + (++) Direction + (++) Data Size + (++) Clock Polarity and Phase + (++) NSS Management + (++) BaudRate Prescaler + (++) FirstBit + (++) TIMode + (++) CRC Calculation + (++) CRC Polynomial if CRC enabled + + (+) Call the function HAL_SPI_DeInit() to restore the default configuration + of the selected SPIx peripheral. + +@endverbatim + * @{ + */ + +/** + * @brief Initialize the SPI according to the specified parameters + * in the SPI_InitTypeDef and initialize the associated handle. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi) +{ + /* Check the SPI handle allocation */ + if (hspi == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_SPI_ALL_INSTANCE(hspi->Instance)); + assert_param(IS_SPI_MODE(hspi->Init.Mode)); + assert_param(IS_SPI_DIRECTION(hspi->Init.Direction)); + assert_param(IS_SPI_DATASIZE(hspi->Init.DataSize)); + assert_param(IS_SPI_NSS(hspi->Init.NSS)); + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + assert_param(IS_SPI_FIRST_BIT(hspi->Init.FirstBit)); + /* TI mode is not supported on all devices in stm32l1xx series. + TIMode parameter is mandatory equal to SPI_TIMODE_DISABLE if TI mode is not supported */ + assert_param(IS_SPI_TIMODE(hspi->Init.TIMode)); + if (hspi->Init.TIMode == SPI_TIMODE_DISABLE) + { + assert_param(IS_SPI_CPOL(hspi->Init.CLKPolarity)); + assert_param(IS_SPI_CPHA(hspi->Init.CLKPhase)); + + if (hspi->Init.Mode == SPI_MODE_MASTER) + { + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + } + else + { + /* Baudrate prescaler not use in Motoraola Slave mode. force to default value */ + hspi->Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + } + } + else + { + assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); + + /* Force polarity and phase to TI protocaol requirements */ + hspi->Init.CLKPolarity = SPI_POLARITY_LOW; + hspi->Init.CLKPhase = SPI_PHASE_1EDGE; + } +#if (USE_SPI_CRC != 0U) + assert_param(IS_SPI_CRC_CALCULATION(hspi->Init.CRCCalculation)); + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + assert_param(IS_SPI_CRC_POLYNOMIAL(hspi->Init.CRCPolynomial)); + } +#else + hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; +#endif /* USE_SPI_CRC */ + + if (hspi->State == HAL_SPI_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + hspi->Lock = HAL_UNLOCKED; + +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + /* Init the SPI Callback settings */ + hspi->TxCpltCallback = HAL_SPI_TxCpltCallback; /* Legacy weak TxCpltCallback */ + hspi->RxCpltCallback = HAL_SPI_RxCpltCallback; /* Legacy weak RxCpltCallback */ + hspi->TxRxCpltCallback = HAL_SPI_TxRxCpltCallback; /* Legacy weak TxRxCpltCallback */ + hspi->TxHalfCpltCallback = HAL_SPI_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallback */ + hspi->RxHalfCpltCallback = HAL_SPI_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback */ + hspi->TxRxHalfCpltCallback = HAL_SPI_TxRxHalfCpltCallback; /* Legacy weak TxRxHalfCpltCallback */ + hspi->ErrorCallback = HAL_SPI_ErrorCallback; /* Legacy weak ErrorCallback */ + hspi->AbortCpltCallback = HAL_SPI_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ + + if (hspi->MspInitCallback == NULL) + { + hspi->MspInitCallback = HAL_SPI_MspInit; /* Legacy weak MspInit */ + } + + /* Init the low level hardware : GPIO, CLOCK, NVIC... */ + hspi->MspInitCallback(hspi); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC... */ + HAL_SPI_MspInit(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } + + hspi->State = HAL_SPI_STATE_BUSY; + + /* Disable the selected SPI peripheral */ + __HAL_SPI_DISABLE(hspi); + + /*----------------------- SPIx CR1 & CR2 Configuration ---------------------*/ + /* Configure : SPI Mode, Communication Mode, Data size, Clock polarity and phase, NSS management, + Communication speed, First bit and CRC calculation state */ + WRITE_REG(hspi->Instance->CR1, ((hspi->Init.Mode & (SPI_CR1_MSTR | SPI_CR1_SSI)) | + (hspi->Init.Direction & (SPI_CR1_RXONLY | SPI_CR1_BIDIMODE)) | + (hspi->Init.DataSize & SPI_CR1_DFF) | + (hspi->Init.CLKPolarity & SPI_CR1_CPOL) | + (hspi->Init.CLKPhase & SPI_CR1_CPHA) | + (hspi->Init.NSS & SPI_CR1_SSM) | + (hspi->Init.BaudRatePrescaler & SPI_CR1_BR_Msk) | + (hspi->Init.FirstBit & SPI_CR1_LSBFIRST) | + (hspi->Init.CRCCalculation & SPI_CR1_CRCEN))); + +#if defined(SPI_CR2_FRF) + /* Configure : NSS management, TI Mode */ + WRITE_REG(hspi->Instance->CR2, (((hspi->Init.NSS >> 16U) & SPI_CR2_SSOE) | (hspi->Init.TIMode & SPI_CR2_FRF))); +#else + /* Configure : NSS management */ + WRITE_REG(hspi->Instance->CR2, ((hspi->Init.NSS >> 16U) & SPI_CR2_SSOE)); +#endif /* SPI_CR2_FRF */ + +#if (USE_SPI_CRC != 0U) + /*---------------------------- SPIx CRCPOLY Configuration ------------------*/ + /* Configure : CRC Polynomial */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + WRITE_REG(hspi->Instance->CRCPR, (hspi->Init.CRCPolynomial & SPI_CRCPR_CRCPOLY_Msk)); + } +#endif /* USE_SPI_CRC */ + +#if defined(SPI_I2SCFGR_I2SMOD) + /* Activate the SPI mode (Make sure that I2SMOD bit in I2SCFGR register is reset) */ + CLEAR_BIT(hspi->Instance->I2SCFGR, SPI_I2SCFGR_I2SMOD); +#endif /* SPI_I2SCFGR_I2SMOD */ + + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + hspi->State = HAL_SPI_STATE_READY; + + return HAL_OK; +} + +/** + * @brief De-Initialize the SPI peripheral. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_DeInit(SPI_HandleTypeDef *hspi) +{ + /* Check the SPI handle allocation */ + if (hspi == NULL) + { + return HAL_ERROR; + } + + /* Check SPI Instance parameter */ + assert_param(IS_SPI_ALL_INSTANCE(hspi->Instance)); + + hspi->State = HAL_SPI_STATE_BUSY; + + /* Disable the SPI Peripheral Clock */ + __HAL_SPI_DISABLE(hspi); + +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + if (hspi->MspDeInitCallback == NULL) + { + hspi->MspDeInitCallback = HAL_SPI_MspDeInit; /* Legacy weak MspDeInit */ + } + + /* DeInit the low level hardware: GPIO, CLOCK, NVIC... */ + hspi->MspDeInitCallback(hspi); +#else + /* DeInit the low level hardware: GPIO, CLOCK, NVIC... */ + HAL_SPI_MspDeInit(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + hspi->State = HAL_SPI_STATE_RESET; + + /* Release Lock */ + __HAL_UNLOCK(hspi); + + return HAL_OK; +} + +/** + * @brief Initialize the SPI MSP. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +__weak void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hspi); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_SPI_MspInit should be implemented in the user file + */ +} + +/** + * @brief De-Initialize the SPI MSP. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +__weak void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hspi); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_SPI_MspDeInit should be implemented in the user file + */ +} + +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) +/** + * @brief Register a User SPI Callback + * To be used instead of the weak predefined callback + * @param hspi Pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for the specified SPI. + * @param CallbackID ID of the callback to be registered + * @param pCallback pointer to the Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_RegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID, + pSPI_CallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hspi->ErrorCode |= HAL_SPI_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + /* Process locked */ + __HAL_LOCK(hspi); + + if (HAL_SPI_STATE_READY == hspi->State) + { + switch (CallbackID) + { + case HAL_SPI_TX_COMPLETE_CB_ID : + hspi->TxCpltCallback = pCallback; + break; + + case HAL_SPI_RX_COMPLETE_CB_ID : + hspi->RxCpltCallback = pCallback; + break; + + case HAL_SPI_TX_RX_COMPLETE_CB_ID : + hspi->TxRxCpltCallback = pCallback; + break; + + case HAL_SPI_TX_HALF_COMPLETE_CB_ID : + hspi->TxHalfCpltCallback = pCallback; + break; + + case HAL_SPI_RX_HALF_COMPLETE_CB_ID : + hspi->RxHalfCpltCallback = pCallback; + break; + + case HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID : + hspi->TxRxHalfCpltCallback = pCallback; + break; + + case HAL_SPI_ERROR_CB_ID : + hspi->ErrorCallback = pCallback; + break; + + case HAL_SPI_ABORT_CB_ID : + hspi->AbortCpltCallback = pCallback; + break; + + case HAL_SPI_MSPINIT_CB_ID : + hspi->MspInitCallback = pCallback; + break; + + case HAL_SPI_MSPDEINIT_CB_ID : + hspi->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (HAL_SPI_STATE_RESET == hspi->State) + { + switch (CallbackID) + { + case HAL_SPI_MSPINIT_CB_ID : + hspi->MspInitCallback = pCallback; + break; + + case HAL_SPI_MSPDEINIT_CB_ID : + hspi->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hspi); + return status; +} + +/** + * @brief Unregister an SPI Callback + * SPI callback is redirected to the weak predefined callback + * @param hspi Pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for the specified SPI. + * @param CallbackID ID of the callback to be unregistered + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_UnRegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hspi); + + if (HAL_SPI_STATE_READY == hspi->State) + { + switch (CallbackID) + { + case HAL_SPI_TX_COMPLETE_CB_ID : + hspi->TxCpltCallback = HAL_SPI_TxCpltCallback; /* Legacy weak TxCpltCallback */ + break; + + case HAL_SPI_RX_COMPLETE_CB_ID : + hspi->RxCpltCallback = HAL_SPI_RxCpltCallback; /* Legacy weak RxCpltCallback */ + break; + + case HAL_SPI_TX_RX_COMPLETE_CB_ID : + hspi->TxRxCpltCallback = HAL_SPI_TxRxCpltCallback; /* Legacy weak TxRxCpltCallback */ + break; + + case HAL_SPI_TX_HALF_COMPLETE_CB_ID : + hspi->TxHalfCpltCallback = HAL_SPI_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallback */ + break; + + case HAL_SPI_RX_HALF_COMPLETE_CB_ID : + hspi->RxHalfCpltCallback = HAL_SPI_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback */ + break; + + case HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID : + hspi->TxRxHalfCpltCallback = HAL_SPI_TxRxHalfCpltCallback; /* Legacy weak TxRxHalfCpltCallback */ + break; + + case HAL_SPI_ERROR_CB_ID : + hspi->ErrorCallback = HAL_SPI_ErrorCallback; /* Legacy weak ErrorCallback */ + break; + + case HAL_SPI_ABORT_CB_ID : + hspi->AbortCpltCallback = HAL_SPI_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ + break; + + case HAL_SPI_MSPINIT_CB_ID : + hspi->MspInitCallback = HAL_SPI_MspInit; /* Legacy weak MspInit */ + break; + + case HAL_SPI_MSPDEINIT_CB_ID : + hspi->MspDeInitCallback = HAL_SPI_MspDeInit; /* Legacy weak MspDeInit */ + break; + + default : + /* Update the error code */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (HAL_SPI_STATE_RESET == hspi->State) + { + switch (CallbackID) + { + case HAL_SPI_MSPINIT_CB_ID : + hspi->MspInitCallback = HAL_SPI_MspInit; /* Legacy weak MspInit */ + break; + + case HAL_SPI_MSPDEINIT_CB_ID : + hspi->MspDeInitCallback = HAL_SPI_MspDeInit; /* Legacy weak MspDeInit */ + break; + + default : + /* Update the error code */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hspi); + return status; +} +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +/** + * @} + */ + +/** @defgroup SPI_Exported_Functions_Group2 IO operation functions + * @brief Data transfers functions + * +@verbatim + ============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to manage the SPI + data transfers. + + [..] The SPI supports master and slave mode : + + (#) There are two modes of transfer: + (++) Blocking mode: The communication is performed in polling mode. + The HAL status of all data processing is returned by the same function + after finishing transfer. + (++) No-Blocking mode: The communication is performed using Interrupts + or DMA, These APIs return the HAL status. + The end of the data processing will be indicated through the + dedicated SPI IRQ when using Interrupt mode or the DMA IRQ when + using DMA mode. + The HAL_SPI_TxCpltCallback(), HAL_SPI_RxCpltCallback() and HAL_SPI_TxRxCpltCallback() user callbacks + will be executed respectively at the end of the transmit or Receive process + The HAL_SPI_ErrorCallback()user callback will be executed when a communication error is detected + + (#) APIs provided for these 2 transfer modes (Blocking mode or Non blocking mode using either Interrupt or DMA) + exist for 1Line (simplex) and 2Lines (full duplex) modes. + +@endverbatim + * @{ + */ + +/** + * @brief Transmit an amount of data in blocking mode. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @param pData pointer to data buffer (u8 or u16 data elements) + * @param Size amount of data elements (u8 or u16) to be sent + * @param Timeout Timeout duration in ms + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + uint32_t tickstart; + uint16_t initial_TxXferCount; + + /* Check Direction parameter */ + assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + initial_TxXferCount = Size; + + if (hspi->State != HAL_SPI_STATE_READY) + { + return HAL_BUSY; + } + + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hspi); + + /* Set the transaction information */ + hspi->State = HAL_SPI_STATE_BUSY_TX; + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + hspi->pTxBuffPtr = (const uint8_t *)pData; + hspi->TxXferSize = Size; + hspi->TxXferCount = Size; + + /*Init field not used in handle to zero */ + hspi->pRxBuffPtr = (uint8_t *)NULL; + hspi->RxXferSize = 0U; + hspi->RxXferCount = 0U; + hspi->TxISR = NULL; + hspi->RxISR = NULL; + + /* Configure communication direction : 1Line */ + if (hspi->Init.Direction == SPI_DIRECTION_1LINE) + { + /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ + __HAL_SPI_DISABLE(hspi); + SPI_1LINE_TX(hspi); + } + +#if (USE_SPI_CRC != 0U) + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + SPI_RESET_CRC(hspi); + } +#endif /* USE_SPI_CRC */ + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + } + + /* Transmit data in 16 Bit mode */ + if (hspi->Init.DataSize == SPI_DATASIZE_16BIT) + { + if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) + { + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr += sizeof(uint16_t); + hspi->TxXferCount--; + } + /* Transmit data in 16 Bit mode */ + while (hspi->TxXferCount > 0U) + { + /* Wait until TXE flag is set to send data */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) + { + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr += sizeof(uint16_t); + hspi->TxXferCount--; + } + else + { + /* Timeout management */ + if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U)) + { + hspi->State = HAL_SPI_STATE_READY; + __HAL_UNLOCK(hspi); + return HAL_TIMEOUT; + } + } + } + } + /* Transmit data in 8 Bit mode */ + else + { + if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) + { + *((__IO uint8_t *)&hspi->Instance->DR) = *((const uint8_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr += sizeof(uint8_t); + hspi->TxXferCount--; + } + while (hspi->TxXferCount > 0U) + { + /* Wait until TXE flag is set to send data */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) + { + *((__IO uint8_t *)&hspi->Instance->DR) = *((const uint8_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr += sizeof(uint8_t); + hspi->TxXferCount--; + } + else + { + /* Timeout management */ + if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U)) + { + hspi->State = HAL_SPI_STATE_READY; + __HAL_UNLOCK(hspi); + return HAL_TIMEOUT; + } + } + } + } +#if (USE_SPI_CRC != 0U) + /* Enable CRC Transmission */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + + /* Check the end of the transaction */ + if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK) + { + hspi->ErrorCode = HAL_SPI_ERROR_FLAG; + } + + /* Clear overrun flag in 2 Lines communication mode because received is not read */ + if (hspi->Init.Direction == SPI_DIRECTION_2LINES) + { + __HAL_SPI_CLEAR_OVRFLAG(hspi); + } + + hspi->State = HAL_SPI_STATE_READY; + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + + if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) + { + return HAL_ERROR; + } + else + { + return HAL_OK; + } +} + +/** + * @brief Receive an amount of data in blocking mode. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @param pData pointer to data buffer (u8 or u16 data elements) + * @param Size amount of data elements (u8 or u16) to be received + * @param Timeout Timeout duration in ms + * @retval HAL status + * @note In master mode, if the direction is set to SPI_DIRECTION_2LINES + * the receive buffer is written to data register (DR) to generate + * clock pulses and receive data + */ +HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ +#if (USE_SPI_CRC != 0U) + __IO uint32_t tmpreg = 0U; +#endif /* USE_SPI_CRC */ + uint32_t tickstart; + + if (hspi->State != HAL_SPI_STATE_READY) + { + return HAL_BUSY; + } + + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + if ((hspi->Init.Mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES)) + { + hspi->State = HAL_SPI_STATE_BUSY_RX; + /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line */ + return HAL_SPI_TransmitReceive(hspi, pData, pData, Size, Timeout); + } + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + /* Process Locked */ + __HAL_LOCK(hspi); + + /* Set the transaction information */ + hspi->State = HAL_SPI_STATE_BUSY_RX; + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + hspi->pRxBuffPtr = (uint8_t *)pData; + hspi->RxXferSize = Size; + hspi->RxXferCount = Size; + + /*Init field not used in handle to zero */ + hspi->pTxBuffPtr = (uint8_t *)NULL; + hspi->TxXferSize = 0U; + hspi->TxXferCount = 0U; + hspi->RxISR = NULL; + hspi->TxISR = NULL; + +#if (USE_SPI_CRC != 0U) + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + SPI_RESET_CRC(hspi); + /* this is done to handle the CRCNEXT before the latest data */ + hspi->RxXferCount--; + } +#endif /* USE_SPI_CRC */ + + /* Configure communication direction: 1Line */ + if (hspi->Init.Direction == SPI_DIRECTION_1LINE) + { + /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ + __HAL_SPI_DISABLE(hspi); + SPI_1LINE_RX(hspi); + } + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + } + + /* Receive data in 8 Bit mode */ + if (hspi->Init.DataSize == SPI_DATASIZE_8BIT) + { + /* Transfer loop */ + while (hspi->RxXferCount > 0U) + { + /* Check the RXNE flag */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) + { + /* read the received data */ + (* (uint8_t *)hspi->pRxBuffPtr) = *(__IO uint8_t *)&hspi->Instance->DR; + hspi->pRxBuffPtr += sizeof(uint8_t); + hspi->RxXferCount--; + } + else + { + /* Timeout management */ + if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U)) + { + hspi->State = HAL_SPI_STATE_READY; + __HAL_UNLOCK(hspi); + return HAL_TIMEOUT; + } + } + } + } + else + { + /* Transfer loop */ + while (hspi->RxXferCount > 0U) + { + /* Check the RXNE flag */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) + { + *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; + hspi->pRxBuffPtr += sizeof(uint16_t); + hspi->RxXferCount--; + } + else + { + /* Timeout management */ + if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U)) + { + hspi->State = HAL_SPI_STATE_READY; + __HAL_UNLOCK(hspi); + return HAL_TIMEOUT; + } + } + } + } + +#if (USE_SPI_CRC != 0U) + /* Handle the CRC Transmission */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + /* freeze the CRC before the latest data */ + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + + /* Read the latest data */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) + { + /* the latest data has not been received */ + __HAL_UNLOCK(hspi); + return HAL_TIMEOUT; + } + + /* Receive last data in 16 Bit mode */ + if (hspi->Init.DataSize == SPI_DATASIZE_16BIT) + { + *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; + } + /* Receive last data in 8 Bit mode */ + else + { + (*(uint8_t *)hspi->pRxBuffPtr) = *(__IO uint8_t *)&hspi->Instance->DR; + } + + /* Wait the CRC data */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); + hspi->State = HAL_SPI_STATE_READY; + __HAL_UNLOCK(hspi); + return HAL_TIMEOUT; + } + + /* Read CRC to Flush DR and RXNE flag */ + tmpreg = READ_REG(hspi->Instance->DR); + /* To avoid GCC warning */ + UNUSED(tmpreg); + } +#endif /* USE_SPI_CRC */ + + /* Check the end of the transaction */ + if (SPI_EndRxTransaction(hspi, Timeout, tickstart) != HAL_OK) + { + hspi->ErrorCode = HAL_SPI_ERROR_FLAG; + } + +#if (USE_SPI_CRC != 0U) + /* Check if CRC error occurred */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); + __HAL_SPI_CLEAR_CRCERRFLAG(hspi); + } +#endif /* USE_SPI_CRC */ + + hspi->State = HAL_SPI_STATE_READY; + /* Unlock the process */ + __HAL_UNLOCK(hspi); + if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) + { + return HAL_ERROR; + } + else + { + return HAL_OK; + } +} + +/** + * @brief Transmit and Receive an amount of data in blocking mode. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @param pTxData pointer to transmission data buffer (u8 or u16 data elements) + * @param pRxData pointer to reception data buffer (u8 or u16 data elements) + * @param Size amount of data elements (u8 or u16) to be sent and received + * @param Timeout Timeout duration in ms + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, + uint16_t Size, uint32_t Timeout) +{ + uint16_t initial_TxXferCount; + uint32_t tmp_mode; + HAL_SPI_StateTypeDef tmp_state; + uint32_t tickstart; +#if (USE_SPI_CRC != 0U) + __IO uint32_t tmpreg = 0U; +#endif /* USE_SPI_CRC */ + + /* Variable used to alternate Rx and Tx during transfer */ + uint32_t txallowed = 1U; + + /* Check Direction parameter */ + assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + /* Init temporary variables */ + tmp_state = hspi->State; + tmp_mode = hspi->Init.Mode; + initial_TxXferCount = Size; + + if (!((tmp_state == HAL_SPI_STATE_READY) || \ + ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && + (tmp_state == HAL_SPI_STATE_BUSY_RX)))) + { + return HAL_BUSY; + } + + if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hspi); + + /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ + if (hspi->State != HAL_SPI_STATE_BUSY_RX) + { + hspi->State = HAL_SPI_STATE_BUSY_TX_RX; + } + + /* Set the transaction information */ + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + hspi->pRxBuffPtr = (uint8_t *)pRxData; + hspi->RxXferCount = Size; + hspi->RxXferSize = Size; + hspi->pTxBuffPtr = (const uint8_t *)pTxData; + hspi->TxXferCount = Size; + hspi->TxXferSize = Size; + + /*Init field not used in handle to zero */ + hspi->RxISR = NULL; + hspi->TxISR = NULL; + +#if (USE_SPI_CRC != 0U) + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + SPI_RESET_CRC(hspi); + } +#endif /* USE_SPI_CRC */ + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + } + + /* Transmit and Receive data in 16 Bit mode */ + if (hspi->Init.DataSize == SPI_DATASIZE_16BIT) + { + if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) + { + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr += sizeof(uint16_t); + hspi->TxXferCount--; + +#if (USE_SPI_CRC != 0U) + /* Enable CRC Transmission */ + if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) + { + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + + } + while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U)) + { + /* Check TXE flag */ + if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U)) + { + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr += sizeof(uint16_t); + hspi->TxXferCount--; + /* Next Data is a reception (Rx). Tx not allowed */ + txallowed = 0U; + +#if (USE_SPI_CRC != 0U) + /* Enable CRC Transmission */ + if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) + { + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + } + + /* Check RXNE flag */ + if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U)) + { + *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; + hspi->pRxBuffPtr += sizeof(uint16_t); + hspi->RxXferCount--; + /* Next Data is a Transmission (Tx). Tx is allowed */ + txallowed = 1U; + } + if (((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) + { + hspi->State = HAL_SPI_STATE_READY; + __HAL_UNLOCK(hspi); + return HAL_TIMEOUT; + } + } + } + /* Transmit and Receive data in 8 Bit mode */ + else + { + if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) + { + *((__IO uint8_t *)&hspi->Instance->DR) = *((const uint8_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr += sizeof(uint8_t); + hspi->TxXferCount--; + +#if (USE_SPI_CRC != 0U) + /* Enable CRC Transmission */ + if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) + { + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + } + while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U)) + { + /* Check TXE flag */ + if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U)) + { + *(__IO uint8_t *)&hspi->Instance->DR = *((const uint8_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr++; + hspi->TxXferCount--; + /* Next Data is a reception (Rx). Tx not allowed */ + txallowed = 0U; + +#if (USE_SPI_CRC != 0U) + /* Enable CRC Transmission */ + if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) + { + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + } + + /* Wait until RXNE flag is reset */ + if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U)) + { + (*(uint8_t *)hspi->pRxBuffPtr) = hspi->Instance->DR; + hspi->pRxBuffPtr++; + hspi->RxXferCount--; + /* Next Data is a Transmission (Tx). Tx is allowed */ + txallowed = 1U; + } + if ((((HAL_GetTick() - tickstart) >= Timeout) && ((Timeout != HAL_MAX_DELAY))) || (Timeout == 0U)) + { + hspi->State = HAL_SPI_STATE_READY; + __HAL_UNLOCK(hspi); + return HAL_TIMEOUT; + } + } + } + +#if (USE_SPI_CRC != 0U) + /* Read CRC from DR to close CRC calculation process */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + /* Wait until TXE flag */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) + { + /* Error on the CRC reception */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); + hspi->State = HAL_SPI_STATE_READY; + __HAL_UNLOCK(hspi); + return HAL_TIMEOUT; + } + /* Read CRC */ + tmpreg = READ_REG(hspi->Instance->DR); + /* To avoid GCC warning */ + UNUSED(tmpreg); + } + + /* Check if CRC error occurred */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); + /* Clear CRC Flag */ + __HAL_SPI_CLEAR_CRCERRFLAG(hspi); + __HAL_UNLOCK(hspi); + return HAL_ERROR; + } +#endif /* USE_SPI_CRC */ + + /* Check the end of the transaction */ + if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK) + { + hspi->ErrorCode = HAL_SPI_ERROR_FLAG; + __HAL_UNLOCK(hspi); + return HAL_ERROR; + } + + /* Clear overrun flag in 2 Lines communication mode because received is not read */ + if (hspi->Init.Direction == SPI_DIRECTION_2LINES) + { + __HAL_SPI_CLEAR_OVRFLAG(hspi); + } + + + hspi->State = HAL_SPI_STATE_READY; + /* Unlock the process */ + __HAL_UNLOCK(hspi); + + if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) + { + return HAL_ERROR; + } + else + { + return HAL_OK; + } +} + +/** + * @brief Transmit an amount of data in non-blocking mode with Interrupt. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @param pData pointer to data buffer (u8 or u16 data elements) + * @param Size amount of data elements (u8 or u16) to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size) +{ + + /* Check Direction parameter */ + assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); + + + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + if (hspi->State != HAL_SPI_STATE_READY) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hspi); + + /* Set the transaction information */ + hspi->State = HAL_SPI_STATE_BUSY_TX; + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + hspi->pTxBuffPtr = (const uint8_t *)pData; + hspi->TxXferSize = Size; + hspi->TxXferCount = Size; + + /* Init field not used in handle to zero */ + hspi->pRxBuffPtr = (uint8_t *)NULL; + hspi->RxXferSize = 0U; + hspi->RxXferCount = 0U; + hspi->RxISR = NULL; + + /* Set the function for IT treatment */ + if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) + { + hspi->TxISR = SPI_TxISR_16BIT; + } + else + { + hspi->TxISR = SPI_TxISR_8BIT; + } + + /* Configure communication direction : 1Line */ + if (hspi->Init.Direction == SPI_DIRECTION_1LINE) + { + /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ + __HAL_SPI_DISABLE(hspi); + SPI_1LINE_TX(hspi); + } + +#if (USE_SPI_CRC != 0U) + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + SPI_RESET_CRC(hspi); + } +#endif /* USE_SPI_CRC */ + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + /* Enable TXE and ERR interrupt */ + __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); + + return HAL_OK; +} + +/** + * @brief Receive an amount of data in non-blocking mode with Interrupt. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @param pData pointer to data buffer (u8 or u16 data elements) + * @param Size amount of data elements (u8 or u16) to be received + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) +{ + + if (hspi->State != HAL_SPI_STATE_READY) + { + return HAL_BUSY; + } + + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) + { + hspi->State = HAL_SPI_STATE_BUSY_RX; + /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line */ + return HAL_SPI_TransmitReceive_IT(hspi, pData, pData, Size); + } + + + /* Process Locked */ + __HAL_LOCK(hspi); + + /* Set the transaction information */ + hspi->State = HAL_SPI_STATE_BUSY_RX; + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + hspi->pRxBuffPtr = (uint8_t *)pData; + hspi->RxXferSize = Size; + hspi->RxXferCount = Size; + + /* Init field not used in handle to zero */ + hspi->pTxBuffPtr = (uint8_t *)NULL; + hspi->TxXferSize = 0U; + hspi->TxXferCount = 0U; + hspi->TxISR = NULL; + + /* Set the function for IT treatment */ + if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) + { + hspi->RxISR = SPI_RxISR_16BIT; + } + else + { + hspi->RxISR = SPI_RxISR_8BIT; + } + + /* Configure communication direction : 1Line */ + if (hspi->Init.Direction == SPI_DIRECTION_1LINE) + { + /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ + __HAL_SPI_DISABLE(hspi); + SPI_1LINE_RX(hspi); + } + +#if (USE_SPI_CRC != 0U) + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + SPI_RESET_CRC(hspi); + } +#endif /* USE_SPI_CRC */ + + /* Note : The SPI must be enabled after unlocking current process + to avoid the risk of SPI interrupt handle execution before current + process unlock */ + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + /* Enable RXNE and ERR interrupt */ + __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); + + return HAL_OK; +} + +/** + * @brief Transmit and Receive an amount of data in non-blocking mode with Interrupt. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @param pTxData pointer to transmission data buffer (u8 or u16 data elements) + * @param pRxData pointer to reception data buffer (u8 or u16 data elements) + * @param Size amount of data elements (u8 or u16) to be sent and received + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, + uint16_t Size) +{ + uint32_t tmp_mode; + HAL_SPI_StateTypeDef tmp_state; + + /* Check Direction parameter */ + assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); + + /* Init temporary variables */ + tmp_state = hspi->State; + tmp_mode = hspi->Init.Mode; + + if (!((tmp_state == HAL_SPI_STATE_READY) || \ + ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && + (tmp_state == HAL_SPI_STATE_BUSY_RX)))) + { + return HAL_BUSY; + } + + if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process locked */ + __HAL_LOCK(hspi); + + /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ + if (hspi->State != HAL_SPI_STATE_BUSY_RX) + { + hspi->State = HAL_SPI_STATE_BUSY_TX_RX; + } + + /* Set the transaction information */ + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + hspi->pTxBuffPtr = (const uint8_t *)pTxData; + hspi->TxXferSize = Size; + hspi->TxXferCount = Size; + hspi->pRxBuffPtr = (uint8_t *)pRxData; + hspi->RxXferSize = Size; + hspi->RxXferCount = Size; + + /* Set the function for IT treatment */ + if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) + { + hspi->RxISR = SPI_2linesRxISR_16BIT; + hspi->TxISR = SPI_2linesTxISR_16BIT; + } + else + { + hspi->RxISR = SPI_2linesRxISR_8BIT; + hspi->TxISR = SPI_2linesTxISR_8BIT; + } + +#if (USE_SPI_CRC != 0U) + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + SPI_RESET_CRC(hspi); + } +#endif /* USE_SPI_CRC */ + + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + /* Enable TXE, RXNE and ERR interrupt */ + __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); + + return HAL_OK; +} + +/** + * @brief Transmit an amount of data in non-blocking mode with DMA. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @param pData pointer to data buffer (u8 or u16 data elements) + * @param Size amount of data elements (u8 or u16) to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size) +{ + + /* Check tx dma handle */ + assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); + + /* Check Direction parameter */ + assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); + + if (hspi->State != HAL_SPI_STATE_READY) + { + return HAL_BUSY; + } + + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hspi); + + /* Set the transaction information */ + hspi->State = HAL_SPI_STATE_BUSY_TX; + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + hspi->pTxBuffPtr = (const uint8_t *)pData; + hspi->TxXferSize = Size; + hspi->TxXferCount = Size; + + /* Init field not used in handle to zero */ + hspi->pRxBuffPtr = (uint8_t *)NULL; + hspi->TxISR = NULL; + hspi->RxISR = NULL; + hspi->RxXferSize = 0U; + hspi->RxXferCount = 0U; + + /* Configure communication direction : 1Line */ + if (hspi->Init.Direction == SPI_DIRECTION_1LINE) + { + /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ + __HAL_SPI_DISABLE(hspi); + SPI_1LINE_TX(hspi); + } + +#if (USE_SPI_CRC != 0U) + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + SPI_RESET_CRC(hspi); + } +#endif /* USE_SPI_CRC */ + + /* Set the SPI TxDMA Half transfer complete callback */ + hspi->hdmatx->XferHalfCpltCallback = SPI_DMAHalfTransmitCplt; + + /* Set the SPI TxDMA transfer complete callback */ + hspi->hdmatx->XferCpltCallback = SPI_DMATransmitCplt; + + /* Set the DMA error callback */ + hspi->hdmatx->XferErrorCallback = SPI_DMAError; + + /* Set the DMA AbortCpltCallback */ + hspi->hdmatx->XferAbortCallback = NULL; + + /* Enable the Tx DMA Stream/Channel */ + if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmatx, (uint32_t)hspi->pTxBuffPtr, (uint32_t)&hspi->Instance->DR, + hspi->TxXferCount)) + { + /* Update SPI error code */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + return HAL_ERROR; + } + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + + /* Enable the SPI Error Interrupt Bit */ + __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); + + /* Enable Tx DMA Request */ + SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); + + return HAL_OK; +} + +/** + * @brief Receive an amount of data in non-blocking mode with DMA. + * @note In case of MASTER mode and SPI_DIRECTION_2LINES direction, hdmatx shall be defined. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @param pData pointer to data buffer (u8 or u16 data elements) + * @note When the CRC feature is enabled the pData Length must be Size + 1. + * @param Size amount of data elements (u8 or u16) to be received + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) +{ + /* Check rx dma handle */ + assert_param(IS_SPI_DMA_HANDLE(hspi->hdmarx)); + + if (hspi->State != HAL_SPI_STATE_READY) + { + return HAL_BUSY; + } + + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) + { + hspi->State = HAL_SPI_STATE_BUSY_RX; + + /* Check tx dma handle */ + assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); + + /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line */ + return HAL_SPI_TransmitReceive_DMA(hspi, pData, pData, Size); + } + + /* Process Locked */ + __HAL_LOCK(hspi); + + /* Set the transaction information */ + hspi->State = HAL_SPI_STATE_BUSY_RX; + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + hspi->pRxBuffPtr = (uint8_t *)pData; + hspi->RxXferSize = Size; + hspi->RxXferCount = Size; + + /*Init field not used in handle to zero */ + hspi->RxISR = NULL; + hspi->TxISR = NULL; + hspi->TxXferSize = 0U; + hspi->TxXferCount = 0U; + + /* Configure communication direction : 1Line */ + if (hspi->Init.Direction == SPI_DIRECTION_1LINE) + { + /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ + __HAL_SPI_DISABLE(hspi); + SPI_1LINE_RX(hspi); + } + +#if (USE_SPI_CRC != 0U) + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + SPI_RESET_CRC(hspi); + } +#endif /* USE_SPI_CRC */ + + /* Set the SPI RxDMA Half transfer complete callback */ + hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt; + + /* Set the SPI Rx DMA transfer complete callback */ + hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; + + /* Set the DMA error callback */ + hspi->hdmarx->XferErrorCallback = SPI_DMAError; + + /* Set the DMA AbortCpltCallback */ + hspi->hdmarx->XferAbortCallback = NULL; + + /* Enable the Rx DMA Stream/Channel */ + if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmarx, (uint32_t)&hspi->Instance->DR, (uint32_t)hspi->pRxBuffPtr, + hspi->RxXferCount)) + { + /* Update SPI error code */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + return HAL_ERROR; + } + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + + /* Enable the SPI Error Interrupt Bit */ + __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); + + /* Enable Rx DMA Request */ + SET_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); + + return HAL_OK; +} + +/** + * @brief Transmit and Receive an amount of data in non-blocking mode with DMA. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @param pTxData pointer to transmission data buffer (u8 or u16 data elements) + * @param pRxData pointer to reception data buffer (u8 or u16 data elements) + * @note When the CRC feature is enabled the pRxData Length must be Size + 1 + * @param Size amount of data elements (u8 or u16) to be sent and received + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, + uint16_t Size) +{ + uint32_t tmp_mode; + HAL_SPI_StateTypeDef tmp_state; + + /* Check rx & tx dma handles */ + assert_param(IS_SPI_DMA_HANDLE(hspi->hdmarx)); + assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); + + /* Check Direction parameter */ + assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); + + /* Init temporary variables */ + tmp_state = hspi->State; + tmp_mode = hspi->Init.Mode; + + if (!((tmp_state == HAL_SPI_STATE_READY) || + ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && + (tmp_state == HAL_SPI_STATE_BUSY_RX)))) + { + return HAL_BUSY; + } + + if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process locked */ + __HAL_LOCK(hspi); + + /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ + if (hspi->State != HAL_SPI_STATE_BUSY_RX) + { + hspi->State = HAL_SPI_STATE_BUSY_TX_RX; + } + + /* Set the transaction information */ + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + hspi->pTxBuffPtr = (const uint8_t *)pTxData; + hspi->TxXferSize = Size; + hspi->TxXferCount = Size; + hspi->pRxBuffPtr = (uint8_t *)pRxData; + hspi->RxXferSize = Size; + hspi->RxXferCount = Size; + + /* Init field not used in handle to zero */ + hspi->RxISR = NULL; + hspi->TxISR = NULL; + +#if (USE_SPI_CRC != 0U) + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + SPI_RESET_CRC(hspi); + } +#endif /* USE_SPI_CRC */ + + /* Check if we are in Rx only or in Rx/Tx Mode and configure the DMA transfer complete callback */ + if (hspi->State == HAL_SPI_STATE_BUSY_RX) + { + /* Set the SPI Rx DMA Half transfer complete callback */ + hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt; + hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; + } + else + { + /* Set the SPI Tx/Rx DMA Half transfer complete callback */ + hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfTransmitReceiveCplt; + hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; + } + + /* Set the DMA error callback */ + hspi->hdmarx->XferErrorCallback = SPI_DMAError; + + /* Set the DMA AbortCpltCallback */ + hspi->hdmarx->XferAbortCallback = NULL; + + /* Enable the Rx DMA Stream/Channel */ + if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmarx, (uint32_t)&hspi->Instance->DR, (uint32_t)hspi->pRxBuffPtr, + hspi->RxXferCount)) + { + /* Update SPI error code */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + return HAL_ERROR; + } + + /* Enable Rx DMA Request */ + SET_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); + + /* Set the SPI Tx DMA transfer complete callback as NULL because the communication closing + is performed in DMA reception complete callback */ + hspi->hdmatx->XferHalfCpltCallback = NULL; + hspi->hdmatx->XferCpltCallback = NULL; + hspi->hdmatx->XferErrorCallback = NULL; + hspi->hdmatx->XferAbortCallback = NULL; + + /* Enable the Tx DMA Stream/Channel */ + if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmatx, (uint32_t)hspi->pTxBuffPtr, (uint32_t)&hspi->Instance->DR, + hspi->TxXferCount)) + { + /* Update SPI error code */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + return HAL_ERROR; + } + + /* Check if the SPI is already enabled */ + if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) + { + /* Enable SPI peripheral */ + __HAL_SPI_ENABLE(hspi); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + + /* Enable the SPI Error Interrupt Bit */ + __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); + + /* Enable Tx DMA Request */ + SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); + + return HAL_OK; +} + +/** + * @brief Abort ongoing transfer (blocking mode). + * @param hspi SPI handle. + * @note This procedure could be used for aborting any ongoing transfer (Tx and Rx), + * started in Interrupt or DMA mode. + * This procedure performs following operations : + * - Disable SPI Interrupts (depending of transfer direction) + * - Disable the DMA transfer in the peripheral register (if enabled) + * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) + * - Set handle State to READY + * @note This procedure is executed in blocking mode : when exiting function, Abort is considered as completed. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi) +{ + HAL_StatusTypeDef errorcode; + __IO uint32_t count; + __IO uint32_t resetcount; + + /* Initialized local variable */ + errorcode = HAL_OK; + resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); + count = resetcount; + + /* Clear ERRIE interrupt to avoid error interrupts generation during Abort procedure */ + CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_ERRIE); + + /* Disable TXEIE, RXNEIE and ERRIE(mode fault event, overrun error, TI frame error) interrupts */ + if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)) + { + hspi->TxISR = SPI_AbortTx_ISR; + /* Wait HAL_SPI_STATE_ABORT state */ + do + { + if (count == 0U) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); + break; + } + count--; + } while (hspi->State != HAL_SPI_STATE_ABORT); + /* Reset Timeout Counter */ + count = resetcount; + } + + if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) + { + hspi->RxISR = SPI_AbortRx_ISR; + /* Wait HAL_SPI_STATE_ABORT state */ + do + { + if (count == 0U) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); + break; + } + count--; + } while (hspi->State != HAL_SPI_STATE_ABORT); + /* Reset Timeout Counter */ + count = resetcount; + } + + /* Disable the SPI DMA Tx request if enabled */ + if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) + { + /* Abort the SPI DMA Tx Stream/Channel : use blocking DMA Abort API (no callback) */ + if (hspi->hdmatx != NULL) + { + /* Set the SPI DMA Abort callback : + will lead to call HAL_SPI_AbortCpltCallback() at end of DMA abort procedure */ + hspi->hdmatx->XferAbortCallback = NULL; + + /* Abort DMA Tx Handle linked to SPI Peripheral */ + if (HAL_DMA_Abort(hspi->hdmatx) != HAL_OK) + { + hspi->ErrorCode = HAL_SPI_ERROR_ABORT; + } + + /* Disable Tx DMA Request */ + CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN)); + + /* Wait until TXE flag is set */ + do + { + if (count == 0U) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); + break; + } + count--; + } while ((hspi->Instance->SR & SPI_FLAG_TXE) == RESET); + } + } + + /* Disable the SPI DMA Rx request if enabled */ + if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) + { + /* Abort the SPI DMA Rx Stream/Channel : use blocking DMA Abort API (no callback) */ + if (hspi->hdmarx != NULL) + { + /* Set the SPI DMA Abort callback : + will lead to call HAL_SPI_AbortCpltCallback() at end of DMA abort procedure */ + hspi->hdmarx->XferAbortCallback = NULL; + + /* Abort DMA Rx Handle linked to SPI Peripheral */ + if (HAL_DMA_Abort(hspi->hdmarx) != HAL_OK) + { + hspi->ErrorCode = HAL_SPI_ERROR_ABORT; + } + + /* Disable peripheral */ + __HAL_SPI_DISABLE(hspi); + + /* Disable Rx DMA Request */ + CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXDMAEN)); + } + } + /* Reset Tx and Rx transfer counters */ + hspi->RxXferCount = 0U; + hspi->TxXferCount = 0U; + + /* Check error during Abort procedure */ + if (hspi->ErrorCode == HAL_SPI_ERROR_ABORT) + { + /* return HAL_Error in case of error during Abort procedure */ + errorcode = HAL_ERROR; + } + else + { + /* Reset errorCode */ + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + } + + /* Clear the Error flags in the SR register */ + __HAL_SPI_CLEAR_OVRFLAG(hspi); +#if defined(SPI_CR2_FRF) + __HAL_SPI_CLEAR_FREFLAG(hspi); +#endif /* SPI_CR2_FRF */ + + /* Restore hspi->state to ready */ + hspi->State = HAL_SPI_STATE_READY; + + return errorcode; +} + +/** + * @brief Abort ongoing transfer (Interrupt mode). + * @param hspi SPI handle. + * @note This procedure could be used for aborting any ongoing transfer (Tx and Rx), + * started in Interrupt or DMA mode. + * This procedure performs following operations : + * - Disable SPI Interrupts (depending of transfer direction) + * - Disable the DMA transfer in the peripheral register (if enabled) + * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) + * - Set handle State to READY + * - At abort completion, call user abort complete callback + * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be + * considered as completed only when user abort complete callback is executed (not when exiting function). + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_Abort_IT(SPI_HandleTypeDef *hspi) +{ + HAL_StatusTypeDef errorcode; + uint32_t abortcplt ; + __IO uint32_t count; + __IO uint32_t resetcount; + + /* Initialized local variable */ + errorcode = HAL_OK; + abortcplt = 1U; + resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); + count = resetcount; + + /* Clear ERRIE interrupt to avoid error interrupts generation during Abort procedure */ + CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_ERRIE); + + /* Change Rx and Tx Irq Handler to Disable TXEIE, RXNEIE and ERRIE interrupts */ + if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)) + { + hspi->TxISR = SPI_AbortTx_ISR; + /* Wait HAL_SPI_STATE_ABORT state */ + do + { + if (count == 0U) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); + break; + } + count--; + } while (hspi->State != HAL_SPI_STATE_ABORT); + /* Reset Timeout Counter */ + count = resetcount; + } + + if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) + { + hspi->RxISR = SPI_AbortRx_ISR; + /* Wait HAL_SPI_STATE_ABORT state */ + do + { + if (count == 0U) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); + break; + } + count--; + } while (hspi->State != HAL_SPI_STATE_ABORT); + /* Reset Timeout Counter */ + count = resetcount; + } + + /* If DMA Tx and/or DMA Rx Handles are associated to SPI Handle, DMA Abort complete callbacks should be initialised + before any call to DMA Abort functions */ + /* DMA Tx Handle is valid */ + if (hspi->hdmatx != NULL) + { + /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. + Otherwise, set it to NULL */ + if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) + { + hspi->hdmatx->XferAbortCallback = SPI_DMATxAbortCallback; + } + else + { + hspi->hdmatx->XferAbortCallback = NULL; + } + } + /* DMA Rx Handle is valid */ + if (hspi->hdmarx != NULL) + { + /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. + Otherwise, set it to NULL */ + if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) + { + hspi->hdmarx->XferAbortCallback = SPI_DMARxAbortCallback; + } + else + { + hspi->hdmarx->XferAbortCallback = NULL; + } + } + + /* Disable the SPI DMA Tx request if enabled */ + if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) + { + /* Abort the SPI DMA Tx Stream/Channel */ + if (hspi->hdmatx != NULL) + { + /* Abort DMA Tx Handle linked to SPI Peripheral */ + if (HAL_DMA_Abort_IT(hspi->hdmatx) != HAL_OK) + { + hspi->hdmatx->XferAbortCallback = NULL; + hspi->ErrorCode = HAL_SPI_ERROR_ABORT; + } + else + { + abortcplt = 0U; + } + } + } + /* Disable the SPI DMA Rx request if enabled */ + if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) + { + /* Abort the SPI DMA Rx Stream/Channel */ + if (hspi->hdmarx != NULL) + { + /* Abort DMA Rx Handle linked to SPI Peripheral */ + if (HAL_DMA_Abort_IT(hspi->hdmarx) != HAL_OK) + { + hspi->hdmarx->XferAbortCallback = NULL; + hspi->ErrorCode = HAL_SPI_ERROR_ABORT; + } + else + { + abortcplt = 0U; + } + } + } + + if (abortcplt == 1U) + { + /* Reset Tx and Rx transfer counters */ + hspi->RxXferCount = 0U; + hspi->TxXferCount = 0U; + + /* Check error during Abort procedure */ + if (hspi->ErrorCode == HAL_SPI_ERROR_ABORT) + { + /* return HAL_Error in case of error during Abort procedure */ + errorcode = HAL_ERROR; + } + else + { + /* Reset errorCode */ + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + } + + /* Clear the Error flags in the SR register */ + __HAL_SPI_CLEAR_OVRFLAG(hspi); +#if defined(SPI_CR2_FRF) + __HAL_SPI_CLEAR_FREFLAG(hspi); +#endif /* SPI_CR2_FRF */ + + /* Restore hspi->State to Ready */ + hspi->State = HAL_SPI_STATE_READY; + + /* As no DMA to be aborted, call directly user Abort complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->AbortCpltCallback(hspi); +#else + HAL_SPI_AbortCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } + + return errorcode; +} + +/** + * @brief Pause the DMA Transfer. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for the specified SPI module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi) +{ + /* Process Locked */ + __HAL_LOCK(hspi); + + /* Disable the SPI DMA Tx & Rx requests */ + CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + + return HAL_OK; +} + +/** + * @brief Resume the DMA Transfer. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for the specified SPI module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi) +{ + /* Process Locked */ + __HAL_LOCK(hspi); + + /* Enable the SPI DMA Tx & Rx requests */ + SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + + return HAL_OK; +} + +/** + * @brief Stop the DMA Transfer. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for the specified SPI module. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi) +{ + HAL_StatusTypeDef errorcode = HAL_OK; + /* The Lock is not implemented on this API to allow the user application + to call the HAL SPI API under callbacks HAL_SPI_TxCpltCallback() or HAL_SPI_RxCpltCallback() or + HAL_SPI_TxRxCpltCallback(): + when calling HAL_DMA_Abort() API the DMA TX/RX Transfer complete interrupt is generated + and the correspond call back is executed HAL_SPI_TxCpltCallback() or HAL_SPI_RxCpltCallback() or + HAL_SPI_TxRxCpltCallback() + */ + + /* Abort the SPI DMA tx Stream/Channel */ + if (hspi->hdmatx != NULL) + { + if (HAL_OK != HAL_DMA_Abort(hspi->hdmatx)) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); + errorcode = HAL_ERROR; + } + } + /* Abort the SPI DMA rx Stream/Channel */ + if (hspi->hdmarx != NULL) + { + if (HAL_OK != HAL_DMA_Abort(hspi->hdmarx)) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); + errorcode = HAL_ERROR; + } + } + + /* Disable the SPI DMA Tx & Rx requests */ + CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); + hspi->State = HAL_SPI_STATE_READY; + return errorcode; +} + +/** + * @brief Handle SPI interrupt request. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for the specified SPI module. + * @retval None + */ +void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi) +{ + uint32_t itsource = hspi->Instance->CR2; + uint32_t itflag = hspi->Instance->SR; + + /* SPI in mode Receiver ----------------------------------------------------*/ + if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) == RESET) && + (SPI_CHECK_FLAG(itflag, SPI_FLAG_RXNE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_RXNE) != RESET)) + { + hspi->RxISR(hspi); + return; + } + + /* SPI in mode Transmitter -------------------------------------------------*/ + if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_TXE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_TXE) != RESET)) + { + hspi->TxISR(hspi); + return; + } + + /* SPI in Error Treatment --------------------------------------------------*/ +#if defined(SPI_CR2_FRF) + if (((SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) || (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != RESET) + || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_ERR) != RESET)) +#else + if (((SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) || (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != RESET)) + && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_ERR) != RESET)) +#endif /* SPI_CR2_FRF */ + { + /* SPI Overrun error interrupt occurred ----------------------------------*/ + if (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != RESET) + { + if (hspi->State != HAL_SPI_STATE_BUSY_TX) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_OVR); + __HAL_SPI_CLEAR_OVRFLAG(hspi); + } + else + { + __HAL_SPI_CLEAR_OVRFLAG(hspi); + return; + } + } + + /* SPI Mode Fault error interrupt occurred -------------------------------*/ + if (SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_MODF); + __HAL_SPI_CLEAR_MODFFLAG(hspi); + } + + /* SPI Frame error interrupt occurred ------------------------------------*/ +#if defined(SPI_CR2_FRF) + if (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FRE); + __HAL_SPI_CLEAR_FREFLAG(hspi); + } +#endif /* SPI_CR2_FRF */ + + if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) + { + /* Disable all interrupts */ + __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE | SPI_IT_TXE | SPI_IT_ERR); + + hspi->State = HAL_SPI_STATE_READY; + /* Disable the SPI DMA requests if enabled */ + if ((HAL_IS_BIT_SET(itsource, SPI_CR2_TXDMAEN)) || (HAL_IS_BIT_SET(itsource, SPI_CR2_RXDMAEN))) + { + CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN)); + + /* Abort the SPI DMA Rx channel */ + if (hspi->hdmarx != NULL) + { + /* Set the SPI DMA Abort callback : + will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ + hspi->hdmarx->XferAbortCallback = SPI_DMAAbortOnError; + if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); + } + } + /* Abort the SPI DMA Tx channel */ + if (hspi->hdmatx != NULL) + { + /* Set the SPI DMA Abort callback : + will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ + hspi->hdmatx->XferAbortCallback = SPI_DMAAbortOnError; + if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); + } + } + } + else + { + /* Call user error callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->ErrorCallback(hspi); +#else + HAL_SPI_ErrorCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } + } + return; + } +} + +/** + * @brief Tx Transfer completed callback. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +__weak void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hspi); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_SPI_TxCpltCallback should be implemented in the user file + */ +} + +/** + * @brief Rx Transfer completed callback. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +__weak void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hspi); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_SPI_RxCpltCallback should be implemented in the user file + */ +} + +/** + * @brief Tx and Rx Transfer completed callback. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +__weak void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hspi); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_SPI_TxRxCpltCallback should be implemented in the user file + */ +} + +/** + * @brief Tx Half Transfer completed callback. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +__weak void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hspi); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_SPI_TxHalfCpltCallback should be implemented in the user file + */ +} + +/** + * @brief Rx Half Transfer completed callback. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +__weak void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hspi); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_SPI_RxHalfCpltCallback() should be implemented in the user file + */ +} + +/** + * @brief Tx and Rx Half Transfer callback. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +__weak void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hspi); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_SPI_TxRxHalfCpltCallback() should be implemented in the user file + */ +} + +/** + * @brief SPI error callback. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +__weak void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hspi); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_SPI_ErrorCallback should be implemented in the user file + */ + /* NOTE : The ErrorCode parameter in the hspi handle is updated by the SPI processes + and user can use HAL_SPI_GetError() API to check the latest error occurred + */ +} + +/** + * @brief SPI Abort Complete callback. + * @param hspi SPI handle. + * @retval None + */ +__weak void HAL_SPI_AbortCpltCallback(SPI_HandleTypeDef *hspi) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hspi); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_SPI_AbortCpltCallback can be implemented in the user file. + */ +} + +/** + * @} + */ + +/** @defgroup SPI_Exported_Functions_Group3 Peripheral State and Errors functions + * @brief SPI control functions + * +@verbatim + =============================================================================== + ##### Peripheral State and Errors functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to control the SPI. + (+) HAL_SPI_GetState() API can be helpful to check in run-time the state of the SPI peripheral + (+) HAL_SPI_GetError() check in run-time Errors occurring during communication +@endverbatim + * @{ + */ + +/** + * @brief Return the SPI handle state. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval SPI state + */ +HAL_SPI_StateTypeDef HAL_SPI_GetState(const SPI_HandleTypeDef *hspi) +{ + /* Return SPI handle state */ + return hspi->State; +} + +/** + * @brief Return the SPI error code. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval SPI error code in bitmap format + */ +uint32_t HAL_SPI_GetError(const SPI_HandleTypeDef *hspi) +{ + /* Return SPI ErrorCode */ + return hspi->ErrorCode; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup SPI_Private_Functions + * @brief Private functions + * @{ + */ + +/** + * @brief DMA SPI transmit process complete callback. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA module. + * @retval None + */ +static void SPI_DMATransmitCplt(DMA_HandleTypeDef *hdma) +{ + SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + uint32_t tickstart; + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + /* DMA Normal Mode */ + if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) + { + /* Disable ERR interrupt */ + __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); + + /* Disable Tx DMA Request */ + CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); + + /* Check the end of the transaction */ + if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + } + + /* Clear overrun flag in 2 Lines communication mode because received data is not read */ + if (hspi->Init.Direction == SPI_DIRECTION_2LINES) + { + __HAL_SPI_CLEAR_OVRFLAG(hspi); + } + + hspi->TxXferCount = 0U; + hspi->State = HAL_SPI_STATE_READY; + + if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) + { + /* Call user error callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->ErrorCallback(hspi); +#else + HAL_SPI_ErrorCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + return; + } + } + /* Call user Tx complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->TxCpltCallback(hspi); +#else + HAL_SPI_TxCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA SPI receive process complete callback. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA module. + * @retval None + */ +static void SPI_DMAReceiveCplt(DMA_HandleTypeDef *hdma) +{ + SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + uint32_t tickstart; +#if (USE_SPI_CRC != 0U) + __IO uint32_t tmpreg = 0U; +#endif /* USE_SPI_CRC */ + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + /* DMA Normal Mode */ + if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) + { + /* Disable ERR interrupt */ + __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); + +#if (USE_SPI_CRC != 0U) + /* CRC handling */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + /* Wait until RXNE flag */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) + { + /* Error on the CRC reception */ + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); + } + /* Read CRC */ + tmpreg = READ_REG(hspi->Instance->DR); + /* To avoid GCC warning */ + UNUSED(tmpreg); + } +#endif /* USE_SPI_CRC */ + + /* Check if we are in Master RX 2 line mode */ + if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) + { + /* Disable Rx/Tx DMA Request (done by default to handle the case master rx direction 2 lines) */ + CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); + } + else + { + /* Normal case */ + CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); + } + + /* Check the end of the transaction */ + if (SPI_EndRxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) + { + hspi->ErrorCode = HAL_SPI_ERROR_FLAG; + } + + hspi->RxXferCount = 0U; + hspi->State = HAL_SPI_STATE_READY; + +#if (USE_SPI_CRC != 0U) + /* Check if CRC error occurred */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); + __HAL_SPI_CLEAR_CRCERRFLAG(hspi); + } +#endif /* USE_SPI_CRC */ + + if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) + { + /* Call user error callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->ErrorCallback(hspi); +#else + HAL_SPI_ErrorCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + return; + } + } + /* Call user Rx complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->RxCpltCallback(hspi); +#else + HAL_SPI_RxCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA SPI transmit receive process complete callback. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA module. + * @retval None + */ +static void SPI_DMATransmitReceiveCplt(DMA_HandleTypeDef *hdma) +{ + SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + uint32_t tickstart; +#if (USE_SPI_CRC != 0U) + __IO uint32_t tmpreg = 0U; +#endif /* USE_SPI_CRC */ + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + /* DMA Normal Mode */ + if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) + { + /* Disable ERR interrupt */ + __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); + +#if (USE_SPI_CRC != 0U) + /* CRC handling */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + /* Wait the CRC data */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); + } + /* Read CRC to Flush DR and RXNE flag */ + tmpreg = READ_REG(hspi->Instance->DR); + /* To avoid GCC warning */ + UNUSED(tmpreg); + } +#endif /* USE_SPI_CRC */ + + /* Check the end of the transaction */ + if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + } + + /* Disable Rx/Tx DMA Request */ + CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); + + hspi->TxXferCount = 0U; + hspi->RxXferCount = 0U; + hspi->State = HAL_SPI_STATE_READY; + +#if (USE_SPI_CRC != 0U) + /* Check if CRC error occurred */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); + __HAL_SPI_CLEAR_CRCERRFLAG(hspi); + } +#endif /* USE_SPI_CRC */ + + if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) + { + /* Call user error callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->ErrorCallback(hspi); +#else + HAL_SPI_ErrorCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + return; + } + } + /* Call user TxRx complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->TxRxCpltCallback(hspi); +#else + HAL_SPI_TxRxCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA SPI half transmit process complete callback. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA module. + * @retval None + */ +static void SPI_DMAHalfTransmitCplt(DMA_HandleTypeDef *hdma) +{ + SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + + /* Call user Tx half complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->TxHalfCpltCallback(hspi); +#else + HAL_SPI_TxHalfCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA SPI half receive process complete callback + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA module. + * @retval None + */ +static void SPI_DMAHalfReceiveCplt(DMA_HandleTypeDef *hdma) +{ + SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + + /* Call user Rx half complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->RxHalfCpltCallback(hspi); +#else + HAL_SPI_RxHalfCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA SPI half transmit receive process complete callback. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA module. + * @retval None + */ +static void SPI_DMAHalfTransmitReceiveCplt(DMA_HandleTypeDef *hdma) +{ + SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + + /* Call user TxRx half complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->TxRxHalfCpltCallback(hspi); +#else + HAL_SPI_TxRxHalfCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA SPI communication error callback. + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA module. + * @retval None + */ +static void SPI_DMAError(DMA_HandleTypeDef *hdma) +{ + SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + + /* Stop the disable DMA transfer on SPI side */ + CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); + + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); + hspi->State = HAL_SPI_STATE_READY; + /* Call user error callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->ErrorCallback(hspi); +#else + HAL_SPI_ErrorCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA SPI communication abort callback, when initiated by HAL services on Error + * (To be called at end of DMA Abort procedure following error occurrence). + * @param hdma DMA handle. + * @retval None + */ +static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma) +{ + SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + hspi->RxXferCount = 0U; + hspi->TxXferCount = 0U; + + /* Call user error callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->ErrorCallback(hspi); +#else + HAL_SPI_ErrorCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA SPI Tx communication abort callback, when initiated by user + * (To be called at end of DMA Tx Abort procedure following user abort request). + * @note When this callback is executed, User Abort complete call back is called only if no + * Abort still ongoing for Rx DMA Handle. + * @param hdma DMA handle. + * @retval None + */ +static void SPI_DMATxAbortCallback(DMA_HandleTypeDef *hdma) +{ + SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + __IO uint32_t count; + + hspi->hdmatx->XferAbortCallback = NULL; + count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); + + /* Disable Tx DMA Request */ + CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); + + /* Wait until TXE flag is set */ + do + { + if (count == 0U) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); + break; + } + count--; + } while ((hspi->Instance->SR & SPI_FLAG_TXE) == RESET); + + /* Check if an Abort process is still ongoing */ + if (hspi->hdmarx != NULL) + { + if (hspi->hdmarx->XferAbortCallback != NULL) + { + return; + } + } + + /* No Abort process still ongoing : All DMA Stream/Channel are aborted, call user Abort Complete callback */ + hspi->RxXferCount = 0U; + hspi->TxXferCount = 0U; + + /* Check no error during Abort procedure */ + if (hspi->ErrorCode != HAL_SPI_ERROR_ABORT) + { + /* Reset errorCode */ + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + } + + /* Clear the Error flags in the SR register */ + __HAL_SPI_CLEAR_OVRFLAG(hspi); +#if defined(SPI_CR2_FRF) + __HAL_SPI_CLEAR_FREFLAG(hspi); +#endif /* SPI_CR2_FRF */ + + /* Restore hspi->State to Ready */ + hspi->State = HAL_SPI_STATE_READY; + + /* Call user Abort complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->AbortCpltCallback(hspi); +#else + HAL_SPI_AbortCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +} + +/** + * @brief DMA SPI Rx communication abort callback, when initiated by user + * (To be called at end of DMA Rx Abort procedure following user abort request). + * @note When this callback is executed, User Abort complete call back is called only if no + * Abort still ongoing for Tx DMA Handle. + * @param hdma DMA handle. + * @retval None + */ +static void SPI_DMARxAbortCallback(DMA_HandleTypeDef *hdma) +{ + SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); + + /* Disable SPI Peripheral */ + __HAL_SPI_DISABLE(hspi); + + hspi->hdmarx->XferAbortCallback = NULL; + + /* Disable Rx DMA Request */ + CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); + + /* Check Busy flag */ + if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); + } + + /* Check if an Abort process is still ongoing */ + if (hspi->hdmatx != NULL) + { + if (hspi->hdmatx->XferAbortCallback != NULL) + { + return; + } + } + + /* No Abort process still ongoing : All DMA Stream/Channel are aborted, call user Abort Complete callback */ + hspi->RxXferCount = 0U; + hspi->TxXferCount = 0U; + + /* Check no error during Abort procedure */ + if (hspi->ErrorCode != HAL_SPI_ERROR_ABORT) + { + /* Reset errorCode */ + hspi->ErrorCode = HAL_SPI_ERROR_NONE; + } + + /* Clear the Error flags in the SR register */ + __HAL_SPI_CLEAR_OVRFLAG(hspi); +#if defined(SPI_CR2_FRF) + __HAL_SPI_CLEAR_FREFLAG(hspi); +#endif /* SPI_CR2_FRF */ + + /* Restore hspi->State to Ready */ + hspi->State = HAL_SPI_STATE_READY; + + /* Call user Abort complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->AbortCpltCallback(hspi); +#else + HAL_SPI_AbortCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ +} + +/** + * @brief Rx 8-bit handler for Transmit and Receive in Interrupt mode. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_2linesRxISR_8BIT(struct __SPI_HandleTypeDef *hspi) +{ + /* Receive data in 8bit mode */ + *hspi->pRxBuffPtr = *((__IO uint8_t *)&hspi->Instance->DR); + hspi->pRxBuffPtr++; + hspi->RxXferCount--; + + /* Check end of the reception */ + if (hspi->RxXferCount == 0U) + { +#if (USE_SPI_CRC != 0U) + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + hspi->RxISR = SPI_2linesRxISR_8BITCRC; + return; + } +#endif /* USE_SPI_CRC */ + + /* Disable RXNE and ERR interrupt */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); + + if (hspi->TxXferCount == 0U) + { + SPI_CloseRxTx_ISR(hspi); + } + } +} + +#if (USE_SPI_CRC != 0U) +/** + * @brief Rx 8-bit handler for Transmit and Receive in Interrupt mode. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_2linesRxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi) +{ + __IO uint8_t *ptmpreg8; + __IO uint8_t tmpreg8 = 0; + + /* Initialize the 8bit temporary pointer */ + ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; + /* Read 8bit CRC to flush Data Register */ + tmpreg8 = *ptmpreg8; + /* To avoid GCC warning */ + UNUSED(tmpreg8); + + /* Disable RXNE and ERR interrupt */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); + + if (hspi->TxXferCount == 0U) + { + SPI_CloseRxTx_ISR(hspi); + } +} +#endif /* USE_SPI_CRC */ + +/** + * @brief Tx 8-bit handler for Transmit and Receive in Interrupt mode. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_2linesTxISR_8BIT(struct __SPI_HandleTypeDef *hspi) +{ + *(__IO uint8_t *)&hspi->Instance->DR = *((const uint8_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr++; + hspi->TxXferCount--; + + /* Check the end of the transmission */ + if (hspi->TxXferCount == 0U) + { +#if (USE_SPI_CRC != 0U) + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + /* Set CRC Next Bit to send CRC */ + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + /* Disable TXE interrupt */ + __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); + return; + } +#endif /* USE_SPI_CRC */ + + /* Disable TXE interrupt */ + __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); + + if (hspi->RxXferCount == 0U) + { + SPI_CloseRxTx_ISR(hspi); + } + } +} + +/** + * @brief Rx 16-bit handler for Transmit and Receive in Interrupt mode. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_2linesRxISR_16BIT(struct __SPI_HandleTypeDef *hspi) +{ + /* Receive data in 16 Bit mode */ + *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); + hspi->pRxBuffPtr += sizeof(uint16_t); + hspi->RxXferCount--; + + if (hspi->RxXferCount == 0U) + { +#if (USE_SPI_CRC != 0U) + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + hspi->RxISR = SPI_2linesRxISR_16BITCRC; + return; + } +#endif /* USE_SPI_CRC */ + + /* Disable RXNE interrupt */ + __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE); + + if (hspi->TxXferCount == 0U) + { + SPI_CloseRxTx_ISR(hspi); + } + } +} + +#if (USE_SPI_CRC != 0U) +/** + * @brief Manage the CRC 16-bit receive for Transmit and Receive in Interrupt mode. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_2linesRxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi) +{ + __IO uint32_t tmpreg = 0U; + + /* Read 16bit CRC to flush Data Register */ + tmpreg = READ_REG(hspi->Instance->DR); + /* To avoid GCC warning */ + UNUSED(tmpreg); + + /* Disable RXNE interrupt */ + __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE); + + SPI_CloseRxTx_ISR(hspi); +} +#endif /* USE_SPI_CRC */ + +/** + * @brief Tx 16-bit handler for Transmit and Receive in Interrupt mode. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_2linesTxISR_16BIT(struct __SPI_HandleTypeDef *hspi) +{ + /* Transmit data in 16 Bit mode */ + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr += sizeof(uint16_t); + hspi->TxXferCount--; + + /* Enable CRC Transmission */ + if (hspi->TxXferCount == 0U) + { +#if (USE_SPI_CRC != 0U) + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + /* Set CRC Next Bit to send CRC */ + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + /* Disable TXE interrupt */ + __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); + return; + } +#endif /* USE_SPI_CRC */ + + /* Disable TXE interrupt */ + __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); + + if (hspi->RxXferCount == 0U) + { + SPI_CloseRxTx_ISR(hspi); + } + } +} + +#if (USE_SPI_CRC != 0U) +/** + * @brief Manage the CRC 8-bit receive in Interrupt context. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_RxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi) +{ + __IO uint8_t *ptmpreg8; + __IO uint8_t tmpreg8 = 0; + + /* Initialize the 8bit temporary pointer */ + ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; + /* Read 8bit CRC to flush Data Register */ + tmpreg8 = *ptmpreg8; + /* To avoid GCC warning */ + UNUSED(tmpreg8); + + SPI_CloseRx_ISR(hspi); +} +#endif /* USE_SPI_CRC */ + +/** + * @brief Manage the receive 8-bit in Interrupt context. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_RxISR_8BIT(struct __SPI_HandleTypeDef *hspi) +{ + *hspi->pRxBuffPtr = (*(__IO uint8_t *)&hspi->Instance->DR); + hspi->pRxBuffPtr++; + hspi->RxXferCount--; + +#if (USE_SPI_CRC != 0U) + /* Enable CRC Transmission */ + if ((hspi->RxXferCount == 1U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) + { + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + + if (hspi->RxXferCount == 0U) + { +#if (USE_SPI_CRC != 0U) + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + hspi->RxISR = SPI_RxISR_8BITCRC; + return; + } +#endif /* USE_SPI_CRC */ + SPI_CloseRx_ISR(hspi); + } +} + +#if (USE_SPI_CRC != 0U) +/** + * @brief Manage the CRC 16-bit receive in Interrupt context. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_RxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi) +{ + __IO uint32_t tmpreg = 0U; + + /* Read 16bit CRC to flush Data Register */ + tmpreg = READ_REG(hspi->Instance->DR); + /* To avoid GCC warning */ + UNUSED(tmpreg); + + /* Disable RXNE and ERR interrupt */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); + + SPI_CloseRx_ISR(hspi); +} +#endif /* USE_SPI_CRC */ + +/** + * @brief Manage the 16-bit receive in Interrupt context. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_RxISR_16BIT(struct __SPI_HandleTypeDef *hspi) +{ + *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); + hspi->pRxBuffPtr += sizeof(uint16_t); + hspi->RxXferCount--; + +#if (USE_SPI_CRC != 0U) + /* Enable CRC Transmission */ + if ((hspi->RxXferCount == 1U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) + { + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + + if (hspi->RxXferCount == 0U) + { +#if (USE_SPI_CRC != 0U) + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + hspi->RxISR = SPI_RxISR_16BITCRC; + return; + } +#endif /* USE_SPI_CRC */ + SPI_CloseRx_ISR(hspi); + } +} + +/** + * @brief Handle the data 8-bit transmit in Interrupt mode. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_TxISR_8BIT(struct __SPI_HandleTypeDef *hspi) +{ + *(__IO uint8_t *)&hspi->Instance->DR = *((const uint8_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr++; + hspi->TxXferCount--; + + if (hspi->TxXferCount == 0U) + { +#if (USE_SPI_CRC != 0U) + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + /* Enable CRC Transmission */ + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + SPI_CloseTx_ISR(hspi); + } +} + +/** + * @brief Handle the data 16-bit transmit in Interrupt mode. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_TxISR_16BIT(struct __SPI_HandleTypeDef *hspi) +{ + /* Transmit data in 16 Bit mode */ + hspi->Instance->DR = *((const uint16_t *)hspi->pTxBuffPtr); + hspi->pTxBuffPtr += sizeof(uint16_t); + hspi->TxXferCount--; + + if (hspi->TxXferCount == 0U) + { +#if (USE_SPI_CRC != 0U) + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + /* Enable CRC Transmission */ + SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); + } +#endif /* USE_SPI_CRC */ + SPI_CloseTx_ISR(hspi); + } +} + +/** + * @brief Handle SPI Communication Timeout. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @param Flag SPI flag to check + * @param State flag state to check + * @param Timeout Timeout duration + * @param Tickstart tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, FlagStatus State, + uint32_t Timeout, uint32_t Tickstart) +{ + __IO uint32_t count; + uint32_t tmp_timeout; + uint32_t tmp_tickstart; + + /* Adjust Timeout value in case of end of transfer */ + tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); + tmp_tickstart = HAL_GetTick(); + + /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ + count = tmp_timeout * ((SystemCoreClock * 32U) >> 20U); + + while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) + { + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) + { + /* Disable the SPI and reset the CRC: the CRC value should be cleared + on both master and slave sides in order to resynchronize the master + and slave for their respective CRC calculation */ + + /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); + + if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) + || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXONLY))) + { + /* Disable SPI peripheral */ + __HAL_SPI_DISABLE(hspi); + } + + /* Reset CRC Calculation */ + if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) + { + SPI_RESET_CRC(hspi); + } + + hspi->State = HAL_SPI_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hspi); + + return HAL_TIMEOUT; + } + /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop procedure */ + if (count == 0U) + { + tmp_timeout = 0U; + } + count--; + } + } + + return HAL_OK; +} + +/** + * @brief Handle the check of the RX transaction complete. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @param Timeout Timeout duration + * @param Tickstart tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef SPI_EndRxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart) +{ + if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) + || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXONLY))) + { + /* Disable SPI peripheral */ + __HAL_SPI_DISABLE(hspi); + } + + /* Erratasheet: BSY bit may stay high at the end of a data transfer in Slave mode */ + if (hspi->Init.Mode == SPI_MODE_MASTER) + { + if (hspi->Init.Direction != SPI_DIRECTION_2LINES_RXONLY) + { + /* Control the BSY flag */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + return HAL_TIMEOUT; + } + } + else + { + /* Wait the RXNE reset */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, RESET, Timeout, Tickstart) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + return HAL_TIMEOUT; + } + } + } + else + { + /* Wait the RXNE reset */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, RESET, Timeout, Tickstart) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + return HAL_TIMEOUT; + } + } + return HAL_OK; +} + +/** + * @brief Handle the check of the RXTX or TX transaction complete. + * @param hspi SPI handle + * @param Timeout Timeout duration + * @param Tickstart tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart) +{ + /* Wait until TXE flag */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_TXE, SET, Timeout, Tickstart) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + return HAL_TIMEOUT; + } + + /* Timeout in us */ + __IO uint32_t count = SPI_BSY_FLAG_WORKAROUND_TIMEOUT * (SystemCoreClock / 24U / 1000000U); + /* Erratasheet: BSY bit may stay high at the end of a data transfer in Slave mode */ + if (hspi->Init.Mode == SPI_MODE_MASTER) + { + /* Control the BSY flag */ + if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + return HAL_TIMEOUT; + } + } + else + { + /* Wait BSY flag during 1 Byte time transfer in case of Full-Duplex and Tx transfer + * If Timeout is reached, the transfer is considered as finish. + * User have to calculate the timeout value to fit with the time of 1 byte transfer. + * This time is directly link with the SPI clock from Master device. + */ + do + { + if (count == 0U) + { + break; + } + count--; + } while (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_BSY) != RESET); + } + + return HAL_OK; +} + +/** + * @brief Handle the end of the RXTX transaction. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_CloseRxTx_ISR(SPI_HandleTypeDef *hspi) +{ + uint32_t tickstart; + __IO uint32_t count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); + + /* Init tickstart for timeout management */ + tickstart = HAL_GetTick(); + + /* Disable ERR interrupt */ + __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); + + /* Wait until TXE flag is set */ + do + { + if (count == 0U) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + break; + } + count--; + } while ((hspi->Instance->SR & SPI_FLAG_TXE) == RESET); + + /* Check the end of the transaction */ + if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + } + + /* Clear overrun flag in 2 Lines communication mode because received is not read */ + if (hspi->Init.Direction == SPI_DIRECTION_2LINES) + { + __HAL_SPI_CLEAR_OVRFLAG(hspi); + } + +#if (USE_SPI_CRC != 0U) + /* Check if CRC error occurred */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR) != RESET) + { + hspi->State = HAL_SPI_STATE_READY; + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); + __HAL_SPI_CLEAR_CRCERRFLAG(hspi); + /* Call user error callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->ErrorCallback(hspi); +#else + HAL_SPI_ErrorCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } + else + { +#endif /* USE_SPI_CRC */ + if (hspi->ErrorCode == HAL_SPI_ERROR_NONE) + { + if (hspi->State == HAL_SPI_STATE_BUSY_RX) + { + hspi->State = HAL_SPI_STATE_READY; + /* Call user Rx complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->RxCpltCallback(hspi); +#else + HAL_SPI_RxCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } + else + { + hspi->State = HAL_SPI_STATE_READY; + /* Call user TxRx complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->TxRxCpltCallback(hspi); +#else + HAL_SPI_TxRxCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } + } + else + { + hspi->State = HAL_SPI_STATE_READY; + /* Call user error callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->ErrorCallback(hspi); +#else + HAL_SPI_ErrorCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } +#if (USE_SPI_CRC != 0U) + } +#endif /* USE_SPI_CRC */ +} + +/** + * @brief Handle the end of the RX transaction. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_CloseRx_ISR(SPI_HandleTypeDef *hspi) +{ + /* Disable RXNE and ERR interrupt */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); + + /* Check the end of the transaction */ + if (SPI_EndRxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + } + + /* Clear overrun flag in 2 Lines communication mode because received is not read */ + if (hspi->Init.Direction == SPI_DIRECTION_2LINES) + { + __HAL_SPI_CLEAR_OVRFLAG(hspi); + } + hspi->State = HAL_SPI_STATE_READY; + +#if (USE_SPI_CRC != 0U) + /* Check if CRC error occurred */ + if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR) != RESET) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); + __HAL_SPI_CLEAR_CRCERRFLAG(hspi); + /* Call user error callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->ErrorCallback(hspi); +#else + HAL_SPI_ErrorCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } + else + { +#endif /* USE_SPI_CRC */ + if (hspi->ErrorCode == HAL_SPI_ERROR_NONE) + { + /* Call user Rx complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->RxCpltCallback(hspi); +#else + HAL_SPI_RxCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } + else + { + /* Call user error callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->ErrorCallback(hspi); +#else + HAL_SPI_ErrorCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } +#if (USE_SPI_CRC != 0U) + } +#endif /* USE_SPI_CRC */ +} + +/** + * @brief Handle the end of the TX transaction. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_CloseTx_ISR(SPI_HandleTypeDef *hspi) +{ + uint32_t tickstart; + __IO uint32_t count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); + + /* Init tickstart for timeout management*/ + tickstart = HAL_GetTick(); + + /* Wait until TXE flag is set */ + do + { + if (count == 0U) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + break; + } + count--; + } while ((hspi->Instance->SR & SPI_FLAG_TXE) == RESET); + + /* Disable TXE and ERR interrupt */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); + + /* Check the end of the transaction */ + if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); + } + + /* Clear overrun flag in 2 Lines communication mode because received is not read */ + if (hspi->Init.Direction == SPI_DIRECTION_2LINES) + { + __HAL_SPI_CLEAR_OVRFLAG(hspi); + } + + hspi->State = HAL_SPI_STATE_READY; + if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) + { + /* Call user error callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->ErrorCallback(hspi); +#else + HAL_SPI_ErrorCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } + else + { + /* Call user Rx complete callback */ +#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) + hspi->TxCpltCallback(hspi); +#else + HAL_SPI_TxCpltCallback(hspi); +#endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ + } +} + +/** + * @brief Handle abort a Rx transaction. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_AbortRx_ISR(SPI_HandleTypeDef *hspi) +{ + __IO uint32_t tmpreg = 0U; + __IO uint32_t count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); + + /* Wait until TXE flag is set */ + do + { + if (count == 0U) + { + SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); + break; + } + count--; + } while ((hspi->Instance->SR & SPI_FLAG_TXE) == RESET); + + /* Disable SPI Peripheral */ + __HAL_SPI_DISABLE(hspi); + + /* Disable TXEIE, RXNEIE and ERRIE(mode fault event, overrun error, TI frame error) interrupts */ + CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXEIE | SPI_CR2_RXNEIE | SPI_CR2_ERRIE)); + + /* Flush Data Register by a blank read */ + tmpreg = READ_REG(hspi->Instance->DR); + /* To avoid GCC warning */ + UNUSED(tmpreg); + + hspi->State = HAL_SPI_STATE_ABORT; +} + +/** + * @brief Handle abort a Tx or Rx/Tx transaction. + * @param hspi pointer to a SPI_HandleTypeDef structure that contains + * the configuration information for SPI module. + * @retval None + */ +static void SPI_AbortTx_ISR(SPI_HandleTypeDef *hspi) +{ + /* Disable TXEIE interrupt */ + CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXEIE)); + + /* Disable SPI Peripheral */ + __HAL_SPI_DISABLE(hspi); + + hspi->State = HAL_SPI_STATE_ABORT; +} + +/** + * @} + */ + +#endif /* HAL_SPI_MODULE_ENABLED */ + +/** + * @} + */ + +/** + * @} + */ + diff --git a/TP2_ISEN_DISPLAY/STM32L152RETX_FLASH.ld b/TP2_ISEN_DISPLAY/STM32L152RETX_FLASH.ld new file mode 100644 index 0000000..c25a2cf --- /dev/null +++ b/TP2_ISEN_DISPLAY/STM32L152RETX_FLASH.ld @@ -0,0 +1,187 @@ +/* +****************************************************************************** +** +** @file : LinkerScript.ld +** +** @author : Auto-generated by STM32CubeIDE +** +** @brief : Linker script for STM32L152RETx Device from STM32L1 series +** 512KBytes FLASH +** 80KBytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used +** +** Target : STMicroelectronics STM32 +** +** Distribution: The file is distributed as is, without any warranty +** of any kind. +** +****************************************************************************** +** @attention +** +** Copyright (c) 2025 STMicroelectronics. +** All rights reserved. +** +** This software is licensed under terms that can be found in the LICENSE file +** in the root directory of this software component. +** If no LICENSE file comes with this software, it is provided AS-IS. +** +****************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */ + +_Min_Heap_Size = 0x200; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Memories definition */ +MEMORY +{ + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 80K + 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 (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + *(.ARM.extab* .gnu.linkonce.armextab.*) + . = ALIGN(4); + } >FLASH + + .ARM (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + . = ALIGN(4); + } >FLASH + + .preinit_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(4); + } >FLASH + + .init_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + . = ALIGN(4); + } >FLASH + + .fini_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(4); + } >FLASH + + /* Used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections into "RAM" Ram type memory */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + *(.RamFunc) /* .RamFunc sections */ + *(.RamFunc*) /* .RamFunc* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + + } >RAM AT> FLASH + + /* Uninitialized data section into "RAM" Ram type memory */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss section */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + /* Remove information from the compiler libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} diff --git a/TP2_ISEN_DISPLAY/STM32L152RETX_RAM.ld b/TP2_ISEN_DISPLAY/STM32L152RETX_RAM.ld new file mode 100644 index 0000000..5686e2c --- /dev/null +++ b/TP2_ISEN_DISPLAY/STM32L152RETX_RAM.ld @@ -0,0 +1,187 @@ +/* +****************************************************************************** +** +** @file : LinkerScript.ld (debug in RAM dedicated) +** +** @author : Auto-generated by STM32CubeIDE +** +** @brief : Linker script for STM32L152RETx Device from STM32L1 series +** 512KBytes FLASH +** 80KBytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used +** +** Target : STMicroelectronics STM32 +** +** Distribution: The file is distributed as is, without any warranty +** of any kind. +** +****************************************************************************** +** @attention +** +** Copyright (c) 2025 STMicroelectronics. +** All rights reserved. +** +** This software is licensed under terms that can be found in the LICENSE file +** in the root directory of this software component. +** If no LICENSE file comes with this software, it is provided AS-IS. +** +****************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */ + +_Min_Heap_Size = 0x200; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Memories definition */ +MEMORY +{ + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 80K + FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K +} + +/* Sections */ +SECTIONS +{ + /* The startup code into "RAM" Ram type memory */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >RAM + + /* The program code and other data into "RAM" Ram 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) + *(.RamFunc) /* .RamFunc sections */ + *(.RamFunc*) /* .RamFunc* sections */ + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >RAM + + /* Constant data into "RAM" Ram type memory */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >RAM + + .ARM.extab (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + *(.ARM.extab* .gnu.linkonce.armextab.*) + . = ALIGN(4); + } >RAM + + .ARM (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + . = ALIGN(4); + } >RAM + + .preinit_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(4); + } >RAM + + .init_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + . = ALIGN(4); + } >RAM + + .fini_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + . = ALIGN(4); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(4); + } >RAM + + /* 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 */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + + } >RAM + + /* Uninitialized data section into "RAM" Ram type memory */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss section */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + /* Remove information from the compiler libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} diff --git a/TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY Debug.launch b/TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY Debug.launch new file mode 100644 index 0000000..92883b5 --- /dev/null +++ b/TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY Debug.launch @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY.ioc b/TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY.ioc new file mode 100644 index 0000000..a641682 --- /dev/null +++ b/TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY.ioc @@ -0,0 +1,114 @@ +#MicroXplorer Configuration settings - do not modify +CAD.formats= +CAD.pinconfig= +CAD.provider= +File.Version=6 +KeepUserPlacement=false +Mcu.CPN=STM32L152RET6 +Mcu.Family=STM32L1 +Mcu.IP0=NVIC +Mcu.IP1=RCC +Mcu.IP2=SPI1 +Mcu.IP3=SYS +Mcu.IPNb=4 +Mcu.Name=STM32L152RETx +Mcu.Package=LQFP64 +Mcu.Pin0=PC0 +Mcu.Pin1=PA5 +Mcu.Pin2=PA6 +Mcu.Pin3=PA7 +Mcu.Pin4=VP_SYS_VS_Systick +Mcu.PinsNb=5 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32L152RETx +MxCube.Version=6.14.1 +MxDb.Version=DB.6.0.141 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVC_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true +NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PA5.Locked=true +PA5.Mode=Full_Duplex_Master +PA5.Signal=SPI1_SCK +PA6.Locked=true +PA6.Mode=Full_Duplex_Master +PA6.Signal=SPI1_MISO +PA7.Locked=true +PA7.Mode=Full_Duplex_Master +PA7.Signal=SPI1_MOSI +PC0.Locked=true +PC0.Signal=GPIO_Output +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerLinker=GCC +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32L152RETx +ProjectManager.FirmwarePackage=STM32Cube FW_L1 V1.10.5 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=TP2_INIT_DISPLAY.ioc +ProjectManager.ProjectName=TP2_INIT_DISPLAY +ProjectManager.ProjectStructure= +ProjectManager.RegisterCallBack= +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UAScriptAfterPath= +ProjectManager.UAScriptBeforePath= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_SPI1_Init-SPI1-false-HAL-true +RCC.AHBFreq_Value=16000000 +RCC.APB1Freq_Value=16000000 +RCC.APB1TimFreq_Value=16000000 +RCC.APB2Freq_Value=16000000 +RCC.APB2TimFreq_Value=16000000 +RCC.FCLKCortexFreq_Value=16000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=16000000 +RCC.HSE_VALUE=24000000 +RCC.HSI_VALUE=16000000 +RCC.IPParameters=AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,LSE_VALUE,LSI_VALUE,MCOPinFreq_Value,MSI_VALUE,PLLCLKFreq_Value,PWRFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,TIMFreq_Value,TimerFreq_Value,VCOOutputFreq_Value +RCC.LSE_VALUE=32768 +RCC.LSI_VALUE=37000 +RCC.MCOPinFreq_Value=16000000 +RCC.MSI_VALUE=2097000 +RCC.PLLCLKFreq_Value=24000000 +RCC.PWRFreq_Value=16000000 +RCC.RTCFreq_Value=37000 +RCC.RTCHSEDivFreq_Value=12000000 +RCC.SYSCLKFreq_VALUE=16000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_HSI +RCC.TIMFreq_Value=16000000 +RCC.TimerFreq_Value=16000000 +RCC.VCOOutputFreq_Value=48000000 +SPI1.CalculateBaudRate=8.0 MBits/s +SPI1.Direction=SPI_DIRECTION_2LINES +SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate +SPI1.Mode=SPI_MODE_MASTER +SPI1.VirtualType=VM_MASTER +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +board=custom +isbadioc=false diff --git a/TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY.launch b/TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY.launch new file mode 100644 index 0000000..52395e4 --- /dev/null +++ b/TP2_ISEN_DISPLAY/TP2_ISEN_DISPLAY.launch @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

MRiwAHcU}b$h@acT zDP1yxl>Z`-ASZ<)CzKl`#Ye!raRFd`s3|P;i5cC-Akg`9vqa%F(xp;^lpJ4mpD?MY z=n8NA*PLEuHLq?~G}%hwz(uBbgfs;^p>FLW+YrLfw%4Z@_!fT#O9FnjO`~05A%aE` z=*p)II&4K1LW&7MpMAjc;uue=^jny* z5dNKL6SRtqb{L5jMLACN?lcXMT-FS|q{rQcUVBnW1vu!`IRm`ZY}{NaFN8J2gxE1i zfkkoyTyrU;$`R#`WchfyrYb|S=FH;U6Rt;C^=HqJKHr#s9}aIWk=!| z1}03#)+A+0?roB9VoU*H>O6Wq1m=2_1|5r+lxiduZq<-8g>xVX2lX9OHs9g0JDZOx zaEI8@?{%HjM47D(n*hlSD4Mn0;Ac(!yGCd(>`Sm)X}duwAUl@uw|wz;Ka!I$9iSc! zJr?PZPLuT8L`FZ7VNXMw28hoG-?E|MFn>c11Gazx&?txd7Z7pTkC9^`~I#d zFDMhrys;96o=%h~^sDD{c*<_?7a!if|M2$yUxDGxQ|>MStyaZbfQy>L zJO<3Z3zLij=q$sY4O;kZ3&K(k_zz>T*DW>_*?sw^HcgQfu&*R2Fj%X}TdX8(9HFT# zBoKQWI!URXUet^8QwT20Qn<&CRTc{Xi1CT!qB%R;m1})cknD7UCT*^Q3Bc-M5K3~% zwdvW{FrUMyif#KfHYopn+>^nJ%omo9>Dgn}^v4e<6gRb;q9C868+Dc=RUmuNrq_^2fw^hpA8EQG0RHY=_dpB zCpa0V1_eqJ#xqRmOfJZJFV-+2Oj>LB-r0>jmNRRBG<-`Ew?ZR@?mg26V%aucer8VV zCkh&9CqYgtRy$T=#eRYnnnDJJJwF3$)8C_LN6$F}Z*f<6V9!_CNxQ?UMT*vR)yAQY zRD3E$hS&}ZX!R>BBUC7|WklMA?)Mqf$U|2>WE+v7k_sLq1b{O@l!ej>_$;>WhL(&P z0~$bIQ{o^M1(G*q_)^vwvsK3YYJ(a8(j0aH&By>Uaj~L?5IB#bwS3zugPQyF9C>ON z=pl;CA;uBR4Z!+KaD*`z>>#xf0~(Cw%F0K^Vi?+hl^!pyOI<;; zSy7wJAfX4h<9fu9Q5stM9y!GcvZdv>cG?~a$AMB#&8}h5(kWhQTAx%ZRggf}4rJ#c zThD5&Pw-9fb;xRBw#!PY@0HiUgmnxsvA?*#G?`>uD0es6j^M+({rHi_D#SVWn&&3B zKdAdSc$8|SEFsG+Z?>D|bue532?m924m7VpaY@r$ub!23hTSF9;yku#WoeC|-?T)N zPPn*>UjGKN;_Y_v>dmcoPvhM7&p79u+IA_Kv zkE!)bd}e$#Xr+Fq@-z^jnx}qag1MrxP3)qp=$HNdPmr!4UUgjXANl^$v*c~FE3&Q3 zUlh~8_uR2YHl=Bd7Ku3%b0!zl@p5Kao026Np=+xzMhV6PSAw{Fvdq~j;fahPTek3p z(^i-WFYMbIZ7Z+Ms_t>qubQx zww%@|a|yt>XT~-64A-o!-vn1Vqn70!5=aYDdSR;znF*OAVJqiegw(=&V$hX*9&kpsCUj zU02?JxSia7_vsBv9LuCYjndQKf!!w5>>Q-IH@%8t6g<|)hwxY*A7zg(^|hjL^e?R5wyhuk zi^MVvMm*#6?iE6O;w^XF?D78yS54l2{L;&knC^y?7&mta2}K5%Utv5!T5s;=lT%n& z^u+bd6fR0KUBNYjB6A&KGBu&=81P7~i#xQR>`wGB)y^UQY_PH1lA}#wJD^FvV9#ba z$%M?-!5Ow9DsA)%qig&83f(2~hb&f@nhNpK2%ToeX_28SqF6kz-!^U0VJrfvA~cmC zNrAa$PZFVZ8GeyFnQ-OY9GhNlHRG)6dZF!1CVg7cruv_pV)1Ie)cQwCV*!>mz!;apuD4ngTgKpn5+&P&Y&l~&yB##U#w}tD9(_8Q%w+Q zUrO$S-$T)lO2Tbs{z)Ej!!D~9g1j`z1m{X2`GPs7ff7oRcY*Z4gJ6Stj0-2*~UBP-9QzQ8OcL>hT@4YUe{ zl&y|X^Q=(I3?1Mso}Omuy3~<|5bHwPRyx#Y8QO=EF}0(Os~%1N(Gp`U}xyxQpA0u z1hz}LM@=FEpI)N_)a63=$wzvy7kxP#{K6`L@)KNLFJ%?Q>P_Jgo+z3Nj^W-8D69>% zEXZ!6x?J}B{a-xtD*!YX0Z%RwVJwVo#Os2q6J%3I-3y*4Z{TVvwa~jD>L>$_^)hh} zN!5(Jp~?qLKqIqha7fu|u_MzW$aZ*( z*{2-U2cZBRx)ag0BTc{53(Jk6AJFZkV}hW3b3!CSka=U8_W1f#YwSFXBUHLXBi~U(%)XBFT_uM-t}a4!w`nI z_gA0(`W@2$(}}VW0UM$og;j{MbSfi`HAB1ABsbHL)g?lj$<*eH zug1EWs=&X!x}2kV98Q6!z~M2&F{l*3!MHm+J1RtP3y-EO065bxr%H6n<%2!I9jK2Z zHN_eu*D3_v+Ju=h%b1bbz?2&h>7gUi zEc~B~qwt4N1rhx>WJ?ihI1{xTg(P~KvX?eT$X_t#vtP5Pbg1v6)MF?{n*w}#I2P`m zgVE`f*yIZA$iJ7D@qJvZBeRN7%_&343^$wP$|^&3kt<7r#NvZI69p(SF~EtxWfM;V zJ*82-Vuzmw2B_q_p%GC*1Nac8%DWZ&8W{*L_ZG{!eo#v(zyAQD*GK*suC%~SIP5P` zAbg(UrW?n+x^)WbjxGkFHJI)vEMsMea*K3|nIf~8mDgCc`o<-#$ zBGytFa@(r^7T*l}s97R{gsrfiq9#eE+By=hSeUgGR799<*XNtdQ(>=l^SmApFDpMP zzd3+}8LmpONYbz_#8N@xSf!Vr80$|}(|xdmG}?%i=DDgO^ZeDjPqz|g=!FYKWDst+ znI?WDHtQwkQz>JAh=cSHGnv2?prDieW7tgk`zP6G0-Fh?LheM_)Xg%Ra+UH~-O3_> zRJD7G781>v(-zo2QnrSZ9r8Yvp$cZ7m+cTwDgjF07hrmVwq_OiCA*n_LmOHyy3X-s zlG5Z)WSM&)VCkDuvLTDJrB{ABp53uc%1`$nUcdd}2Q*3{VzN#OOs&mnsz7=du&1eL%r!~xc9t;+72|4>gcy775vX6J273rHbqb&L@f~vi5YIV-1 zE0vb=3{yIh5J0$CbM-}7tny?&UprS-OkoZ!cbfb!-q6DqFDz69RA&BWncjSbrWya0Z zO|t}84bw*^feoAoh$Zs^2F7$#e;k5yYRvmU9k9M8Zjr)TWEo z9Qe(kv0wTwooPypvYHTGWbg{4JCU`4%S_Rg;B+&C-G?QND(1Ei|Dl9^R3L{kg=QUS z=GQzSbTFQe<{PwSa&kev%yOb=p}-v&31r^S6OZxwrhEp0IfsR2bn2!H5sFMnsicRN6OQ&o0L~-uvg!Jv zS0$%iGZG~vU5CIFxG_B88mN1Y8Ym^CI&7Z?ghENt z^Qu4p>F(p(H!KRuLiB3$Mbj{-BZ6qHt>WG{!{cPD;1ZBp!Bvvk4d(xg18mPxUna%Z z>bKqP!SLFLu6Zc97S;+deJllxTC6$VI1Y$KV)rc)>X1*j{nqTbxRT--Rx&qpiHf<{Z*ghTE^Fbz^^#x=MI!82r2v*pY;_ptJGS|mHsAr+e% z7}|OCEX(vW;6$AbcgY)VV3+U@#ikh-TV`a?++Y<*U!T?wsk;-#o#SLG+DTLfI|eH6 zibUNpBGUzg4&}fvu0dAGL^TBUm!M~i=_FSpWI@qSqd0GB4&{}-HzG~-Mp3CUgbSqf zxf_#;1Y%V_*Z45eU940ze1y|_zaj+EV+AHx_IJz)G>#q!tQb5lVK`NxuXLfs0N$2d z+C4xY&9p8>+@&8qPDMH>KY;nbuf!L$xqszr^P2j-dAC3eWDsylkj&!noup0Y@-L?n zRE7XeB~|s^3AqWRp?)b$?Y;6-Tbx0c7i1&fe~+MMdt$Os*C5@9FU{==R3eH?lnatv z0OjFcVq<7UZj(*P$&}eM?Q?)Rq@ob2PoYIMB%~Us3!tX3!SLn^g}hm4h_Mu;SgZ5- z3|a(MvhSV+(Vk@SD#Vo(N$&w$9{t3N!AXU?O_;qV+&>|qCw1)1sa@D^G~L;@0^x*5 zhMTAUoF+6+mXH8{4(vrzxhB3z0p;nU9%ZqH7RAEfqK;hvzCyM-L$+Zvaoou}yUb3l zLUZvVZt|(xkLZHxD0K;uO~Q*>$^9hLgPfSWJ=;Qu#V*#J(9+CNq-ESe1HnV%O365M zNFPJ6KO$r9bh_NLf8-EIKOxDs#wD5fp)pA)erQaRiXR%2#Nvm>B)RyZF-b6fXiTbc z_|TYRNY5q|LTLpGBfS=esWaj7_Ia-H*8yamKO=x<{IV>0D@oozCbz0mp_X+Lw>(z6%DHmG^ z$J)VOSHwbkTKvwwEHKq1=y*9}R!f)o6-@;m0@oa(Pk`_VlN*w*u0Zb5vlrH=d{nHQ z7pskT80VIU!MK2`-r_wZz5|!^mKImt4o9Ldrh0D7NmH`= zh!WGJO2hh(XR>EJLIq<-dMS}#(zm`ux-RG6{7G{5pz2&-x2%`dz%5aFVb}x`GnVw4 zP70%hjuFw?g*{Nio-8|A24HGF-F5_C>%|1ry74uDu5kQZ+vC%LQxDtFoi_9)2&+fj zcp4O!7QyKr@JMd~3+d_0HB#S6_F+=3b`D2)%3d0rTiZfw!E$DQFhZ7`UnI2$YYH-M zp-l2M+Ul@psZ1vj!cJ-p2~Hxfv}&?fA6ljYWVm$#51K9vqPa}MF*~cEZl1UWXq)Q- zEI51n;q6a9LWQxgZf#7E(d*^Q?fRPSDe$Y81Wz2YTSb<^2Jo2-4Wq;UrCl;R{{fAg zae6sg=x$DrYvM`Bl0!0ucKD-Tkbw<>50Wb)0c|clY_Nv-vtoDV9oFAnLm2b|^>2^P zk`TJfvmUxjg&%Kox_YTJKl>@%lv`u;?#=tv?Ymp6eX%+p_2Ke>yJK{5#x8bf*vxno zo|mj2^GxMKi6?Yda;()2t8W5f^e^@b#a_y-Bo1iL2_GghffJ5pnWTbhZnSI3{SkL| z5bY%gnI_XM=5ySl$p*7orlITz(oU#zob(MCXf78A6{~B2bPGx>3`|p%C1_&71JCSI z2{flrkWwZpJ{rgit!W9<@{YWe77XL9GG>q|dWCqmU>J`NL-NR1Xso-Owk?uV3FJH?JxJYFcYHa$+oxmZ>3xl?8ej8*BHRjNb%NHpuXlC*!$|! z$5;2g|Gxiq@4xr)|G`)2QS#LvKYYcQOI*kb$6w8Hq{n>S`^q4^*W;e`*-*2 zIPLsAr*}$QbNY=~Jwc+t>Um*eIk`QEnx%=4(31&9x9JL*5Qs^2)ax7S8D7GLj`sFK zRVtL(s<^sonxZO@P=lDu>)UN1?5qX}ncXAmdm`EBXoQ^1W}b+v-`Y$RZX`Z}kXW5_ zl?X)KZ{xJYekp=79X(vy#H_}2{Hu)Z{x9@K1CeH^w9;)oZ$MmFP>jRMr3E|CTa)CZ zf@jDVKx}ulw>rR@AMUxNbPw8Is{+cSS@qNm30W#@BrYYWF0pOIIpqXuIh``eFjuk9g-kGM-CE z6+9hYj)2NQZY~W~9i>srR=$B}3e2t7dDbKGx^Oy7a*?BLX9x>?Ckul3HeaJ0+Z@Q%@HKv%vj;OU*!nf-l;IqI1 z6eAI<_7C*+ppF1&`~6>k`f&ROm{=Dhh4-z?KV;WDQN}Ifj(nfAkR4A5278Z|0R>nbR$f|>U0|7_O zl;6@Z8W4O8o0HY?v^_e3xB~n}83z7SxMXxM7v>QW#N8gmrH8J02$urQVIIy7a+Fha zuydKjY?c@#hXhLuzkNJHalwZ?Ox*)~GE)uc@il@c$C=nbeTJ2+)M)i%aaB_e&mVjy zw{^z|vq(^oFmYmO{dC9+Trc5;5-G|6p$YJoTacIT@sCWt_5<69AS523enHQ}2`bQd zz8r7RQ-m@Yw5(Im1ms&HiO>T$)L5mr8-#Y2#>2=SQ_Y|k3`87oCUCM*Gpx4)>DH~8^q3#cOqyItE5HPN z`mR>oJgg1Je(>PT>ePv*ejP(qj=1`YN4Vnea?^m=fp&zl71t594K)h0WtFXlLGJgaY=p;uPu<0T@o$4}V+QV(}~ zIm4-21N2Cd`2b&9gwd%24$G@nOE0Bp;*Fr zG(OL9KK&N1$h!Ri%U6P~hz&Nbk`B6(7aZg`g8tnoMzEftdWpgTY^JY~>3m0TA1hJx zI?ib+MG&k;;&Kb?9+pBSGGR*wG9wagHNlR+nmlJ@#x-L4k-Hj8BoTRWjjB)!BqpHf_k)TXEG|da z&mpDb5(q^Z7c1@`lga?KB}y=cZ2Jjp~_?$Wkfbd$_nzHict95aa%_ zp#btjvA6LzGDg;o@Qq-4NUat@Ys~m>E@oU1V|y}nwW7cA6B{5+CcgsZhqmYrSyRLS z&_MKgLSZX2yPJie9D5a6up~t4pFeNh$v!p%^JC#y27SRFpFBSjw((U>N0w%Oo;+E_ ztBz9|*w3~v!gMRx8eRx-3&hVtN|;@&CEdH3aQOR!{lUp# zcyM$yJUJYkoE)La)yXUyd05^6nH7eCvXeNcwwNQs+`9H#h(;>35i3!-qbpHK_>dc< zf<)44#w!$bAn_zS`8xWSQuaX@28x9SSc{} zq>x3Q0W;PawLsCBGl7@OjmcyOMA1AXvt6Bu&qpYmlhLM_22cQ$FvWy2i!cSH%>K3n z5~jKE#+evH5aPcm+cYMfA=$uxncZ0xpO*HIFN%=7zA)ld)sAT;z$V8((cd83fq5J< zuVzRVf>G)X*M$16BbpZLOfs9o{B7^~54Y{uZPQFA!|yI5Pv_`XP@5LC*rruf>rpCU zv9_k@EMdX5=duj7E=e#aMxmtq_}%;O|1x>|^IQ6797P2}o`h7aq+ywQK;m+S_)1|W z={0q8O3n0vB@uas)FuAc= z$KS=r=5Ria&=ZP13=%X8?Qnh5VIGy9#XQO|wecXg$ZvK$>?6M-h&9JU)~wpGBM2Mm z07!0wU?blRYRwfoNY`L{g5L_YpSEo5FWVOxIpXH3A`hdxQ$>1Mc--4w!F1Z7u_E0C z?%kAHP_A|Aq23Nn?ecs^NgIy@Rd>S8ZjiILTDdsHy8zXj33-(h2?2X#hTnXtjc_zB zWi>z<+^m#Rb;>1d48+GW*-J^}9GJ(ZVu^m$JShLaY98Wkf91Si_dNJLf7SC4&yS=1 ztEOHf%L*w_ZUHGSexg;6Ca-!(8)8OtASAkE^l4P6$$bl~edey+Yv0S-Tk>Hn!5B;rrI<<4=YhzIYYn%WKfBJfg z9>+SNejLLH;OBVh1!6jnj-I1dJ~=E-@AZ6PWugb4LKdxEsSyWNj>ul|N4pxy57;o-xZZ$6>!^p0hQ zZ5*YcJWU}Pb+T2))pdPG0qUuVOv*8}YMMlwP~BqO9t>$YxmYi+S+YJ!Bot-bR+&nG zqu`qeZMhbTQ8rM(4atKDpq$;jnp{{R5R1oY!EBez;F}N=zJGK7|L1?2k;lQlaDTtQ z`&)C_IEDqQ8O{}Qbr+k>xWRC)?%qAT`S|e;2tyCwUi(uMhWV)qMY0Vk;f5}l~t`01xMq zT+epzaE(v2z{^s}0oefPrLhL*2=%0LMTZR4qE63Np=y?{@}b9P+X-ii+O9YFd@wjV zJb|Kdihl-&{n7n1bkv=r)0UjUI03WU8#w6jU`tu@1INrNX*}*4U;&=+{fqTw)0SHn zN5G7(UcdB8ADu3=9Oit6RA5d$w-?1OwKxNKiw0aIDVXq`Ko%^dmJr~Mh{AfraNRDp z6Zm%ImSju{Nc4t53al0b;>iL(E3|#wAPp}QTg)RxyHwBO#}@XIav@z@=d)`hVM9Z_ zMGYXzg&gGH#AAFFN@r(BU#|!&O^~C^2?!O0e<+!TLit+jC`v&a@s-+wp zy3{9<3MWTRsMe^nka@;OE&zV1(kbgVuRt>Lgo^x|AMZZgk3ZbsNl)$quwFkm$rOJR z=h#mR&9oriGdNoxDm4vRAk+zkwWR%-89_Fo#Q|A?amZ_1^^dtde9Ca(ZK7a$NiK`Z zvyui?C?0nl8Q1aX-992g^xG*DO=9N>6K24BcV|j`mMJdf4RPPPCPm}~o6-V1zE>%C z(VPSMeUC+xx4T6XvKsk;upV~xpLgeIua&|+=O6C>KcnRe=jwNIs|3<3ay5fxW!AQ= zU`W_lB#GL29>(=VGjzc@q0&ktb@>^2mmj7O<9~R6ZdOqxD#u#`q=&kxL>fuI{{0%H z*}0m@?Klp~{P_%Z?O+s2Q%qJG;`{}^VYW1L{hPllIgZ7nIuXNtFDd# z-^lSya#o|JuE}B%fgcOgQ1gYDD+$NdRUFEFp-`!4uQU=FfLh^v z0M)asoKkHePH97aYsM;8@|)PDxr|G!V0mOhqY$3mHBGOTb|nSa#Sdx1bc5LwI}*_C zv-=P|Sen*QQ>|cayOjNNp4Ewxzr<}$K>Y$TUm#|owe~eizA64_wONsONYItkoxLG&@UgXZ3 zh(NgG`La^n&^4`kgyQs$OE_5rT(-cPs}J&t^}TbVK?AGXe+#NJTBjn_ZA4E5A(~!9 zx*6)@gxcegB&d&(`U3j`kRZCeMrIk~S^Q#rg8+S7OfG}&iXjmO6HD~U3_#ZLzU%_Q zv_jqL<;>&QjJoN+bDTFGW7(Kfi=!0EA|C;rG(M2ke)%x zyX%!CYF@xLM1_*^^XK64$pA`ouw*E2mUcUSF~ece+&BjnaK|smjal)thY+On_s*&a zZYJ+2oWm)5i6gMs%$F!~kVPeELY)(Qr4_Fu9FL#dE11pOs}IqGeu_ zvZhLn1aX3;FEKcBExedA5uh`lhtA@g&nfR1St(q_{!4cp?1;ATt1efU41w!hYsB;A&nG-M~)WW zg+FMWs0$2|X5@I40Lw)N6Ht`CNUn86JRBER@5QCH%w%Oy$Q)58u8RfY#84uq?_-M2 z8kQt8U@R#rvcj9qzhGq1%O-PVy1@Q*-Ion>d*|t?w8;gT3+(_8ndmRFD_?6Cx(wvb zi7&B3Udjx{is@tp~OcW z+CD>lkqsO;5bx-&lWf`;dy+JBBm{j14P6Huom3U-#cLjuhwo8C+=3^l7vO}!vWJ?^ zcw-zToTT|J$_i&QNe}f4;W&cL9`rorzG8}Nl5lCj4Ba0o*rAjbpnws^^V5tG!bf!D zzsI91HrOnOj9`Sm+2k6D)C6R=11xcsskQS_RtqJ7av^v@D)gRQ41QCQ^uZC=G@8m* zFkhg|{}}y!0#Op>>t;11lmVh8f++a)jUAno=4b*UMul1)PX%!ge_6TGv#+yEW@23T z96NLt;0HLaGqgrdP{OkKB=?SDhA~N3ID7PI#Epm2nBAgT*mG<^v z!=9XaOM$aKjLPYUwW1{vfWsfe!Z) zN9i#Quw){B0n4KyXiMF(&m|X?QP2%Sq#pzu2E+gviRvMJF{!tDO(7G_wK-P^B1Fqa znxN|BaDkwxlP3lpo;pXAO$}z<+@K;0iAas3R&x$HVLC&fg)H%tTFDk~enmE{7n^nT zrh!XKU0Oj~!P_&pD&;hpfvwjUQW?Y)+ssZQMs34gxe$NvS|ulqtMiV4*fhdX#k@8Y8!9yInFG!=B==M-89>*0V}zW~#&t zTM&Dt^WblIK_rs5;|kM0_5Hy8@(sRVTrW1Q z>*}9*`6OqxLMTP$9Uc5U<_^;m0Rn#cjk9u|2hdtronaiC@7hgY62xBv(g!f#?E)PO z-U%0JBBH^moqPJ##`*&EA4)VC548Lv|FKFf*cazDRGgP+7kmUXmrTD7^Ld4r$^o)roud&({CLT?!qvtSZ{<_s98CojGdo|G@l_lm0M1Qb1))GJt z1qftM_I@zGv%8P?&;Was<#|ccyIk7=WjX{*S`cU%^aYbssx?|y=kJc-qqITBH~#~wuxkY9Cg;X*aEdcC96?x9_+Sza z(qg`R{rb)O!PWbBZyw%%nB2X6`wgNE%($aK=uUV#6bjvhtcfG-B#X@7gwF}m^qD#) zO~(<#-$5rA6GfwQ{`YCcvzss>J-NShd8B)M1y>ih5ZtFdDB|&Ay?Zf3cl9pMe?) z`t;df7Vkbj+`W5s4=*pgA?O!f-yqXaYwWLd5F=|uHcIG^hG;Z08X2<@w#XT#bFUy0lmRm;;2|YeRm90G!%JP-2~ukSCgMe^ zx<$_krc#4_LUNPi65&ZR2|M0`72h_5D|8DZ*+Xo)ZPC)P~mXdjP zLiP4?Dtf^@W9?*n_zOndE6*tiBf_B#65qEIG>t;3PZX5SOtpJF$h}GYmGmn~*hlnO zG8LI0+kImRDIbyu~EIDnU@puMI!AH#^l;HKftUZ)5 zy_?pG*-|sK8@8SH+$rn3SqyTA!Q(6wmIWxME)Wc|N^vkKg%3$4l^mM(;)Q-yGJ3-> zk#{i$X13-Cqg>om+8FH|BzAS6x`Q-ZpPr=}TZw#W8)WLdL`?~yOxLKWeUU=(Eo_(U zY6N}&epz`zAbqgZ?+_cAXum4V7_-FrfM-;N^MeM4_h!ds1cIotCnE6%jKtFe)DPI? zXR$Xv03L+t^7h(Q;Dn%ofO{L;)u*>_Z+_%|nd#!Smon*;A)?;SB4mLG0439o;k!Km zfuj|tvs`;jurNBH>k0n9Md$~Q5PIp5up+4EJCvW7$*jdUaB0p;QHY@hQx0j2LA1r7 z8`4$L-2iOfNs{AH4byZXy$ZX`xBcga^{LLw^F)qBjP8DX`1IjE5u(OWju~LF&_Rxq zbyA3fsel3p>W8DA(or!bg*f}VAP%VEdhAP6?8?UL!2_FFETR&WR_zPXD6x{DdZTNg z6%g{L_itW9;6rs2t&O=N@`-dcv;ygFXpf+n))=bdNm3oYVRNan-wwoLj1mp;N@TwnC-5>B3lROJQL-{0aLoB`d4k8x+%1{#b+~s3TQW)bCbVp%ZNcbe*ac#}@5D0XZkqLbRP;4gwS_#pZ zs&bM>RP}`-Hm}s7N41k8%tE--dVZ7Q6S??h4lMP$;15}I+|y4E&pBu?CptA!NDB;G z+pFQ=vj6kXdPnsAVMV#5x!R`C0Bt>UkM}rTFzz4eEEHe80_9~yfa2DHYl#Zj41D9& zRiaNf19a$tBXrswPPV z5Qf)!_elL3N7k>=JCWsspIqcH1mO$P2}+h{l7_|%KSHS5p0uX6ci$+ADRi1S-O-D2iFCfuK4L7?uX zHFl}74cBcze+ZKxH2B&ekduUi(_nafdCU5MRndqhw7F-9dyul}dOtUWbXeupZtwnf z|LModM8t7W?i!*ya*hXH6K|niy*QRUV6s^?4!xPaAf913gVds%XyFH<0n|IQ{xe*i zvnBmKJ-eFurDTj$YOte>Rsq?gV9&uCBb$6VwepP+5cs#@B9sbL8h?z&83N>pa#koPUl<$o@w1qsoj^*oiaRJW_gnYSZi>4| ztfzyi;Rd8cl{>LfEX=`)*g;B(xF^OYdPv0Ru~<8i2#+e@%0Os*>d#7L1Fc(y>m7{8}$D27xsfupcz>) zmk$T+_&1()-eOpSzsQbbMS%X+D*|Mn7fR-^=I=QIH~Xm|0Ei7JhAG9ayp@G)Kx7D? ztqz-nvkYh>Na`37v^ndQKLydM!8HVea<%dUJ)o~QQO9dE2}WqdL2M&OYiY%(~t97z#IvkHIC0QBPVeM}w2NR9UV64Z-cC%ynf|JPm|rf0bUNSl#zL z7TVrn$cH){{8GxVASXkvKbCum&(Y^1RtZtkhy!40c9xuk)!EhsVpHPpz8w|&4`3~3 zdiHk1-Vv|v-rn<&GLS<~_71RalS(6t-Wj7vsQ#oY9r7*3`^9{TmYG`=4e~chIYJb3!t9@}JV{Z#!EB`;Z=CnX4rE1kco^PY_dp(c(Rgcj=$Rz^E)0j-tp+)e#hVKiTNF& zUsmgQjCbTg^&^BfyGbUY+O|T)QF%zClR1a7cpXOL0Weg*z=Oj1MwG~E1-~tyzL+6< z3j@6H^G}b||E1?9(}QP!Y2JbI?0>|Jc-Q~tEpg!U)!hfQ;IW6;=+@V)#VSL=-69$OJnw*RqyGV}QNRN&V&z4wB4at0=24cn$bVqy{ z_KL!l#R%oUVP4^=dnvD%*QG9y&#q@+uvlsK%}529_xuWO!-;p+#D$u`phE*9PzD|B z%%ENk$skP4zxFN!lU*{sgb7+Ks0p%dTyD_L;7G!(>14}_Tj`=W@2t-?q*DQ~b5_|WjG7WLyUzl{C;sbQr zA@(KnwJ63p!tr?+Y0y9ctYZ@!Ao-&&(;VxIx(9ee&)}Dc$fm(+33pFDq??1hJxc^XX7vv`0JzFc*VhUkzdN!^d$vg-Npk>g? zWQU%2?atS;^|9BSW%So(gxwh=1arhJ;bIQfWBG{-sG&Ple9o~R*=QYMnvTv&*XLn@ zThyWpoVku@&ht*D;~@PAs0+z9WOo#rRE!J@TI9&34AbPCMZhG1&31xQuY;A2V@fh8 zVBJKbXoFx5bR$n?a%xL69nKa7|}!?aNo-f7gNv58JJ zS^7rSD3c#jbaA0(U?detkD&z}Yla1hPB~#xhG->j89T!KX-ZW20=!y`4-^OaR>^kh z7eb6mht_W)-*$!I6$@3tIiv-PCp1;(c908^0b)C1%Ip~ePjQ`eTklw4nHV0!eNuP>@e%7)%pZH( zp{AuoDa$|i3|s2e%C5;m&SEWdJ9^2i0BcO#<`&RaSdM6LXvA%;L_*9p?IT)a@Px@^ zh9u3*F=Ew^6Q+(f5_tmY*;E%kd*pk;Hl z*v`>MV20e$?Rt61mV)VYtW#CrLq>rhZVCsJ2_7K6=N;zA3^FWea=E?bm?A5*NqRtB z?13LQU;BaNlGG&v7=!9LYv>lsdV=p73N9d|KDrNFzT!b`14Z)SWUeDMYS|Iw z8Zzs@Na)1`q<`Qzcx|5j3Sq|t;S>5vTbSU*Syz-`U&Xegyh}8rbguVyW*mHE`wkV` zojvWj*GCFf|9N;sSW13P1Z4#PLElmUdcySL3y^KnP>u52ZjXDuF#yW{3YdaWI$fBMN#BsS(I!}f?YXW zp@}6Db?(8xsSIm3L0v7TFEzHP;}#?&`Y}w|HQ^j~J79TJ)HTgTrTA(V=YXS||G*Is z!3(5?wW;f_+A=9LM}rbLz8>FF4GdX9X-F&M_|b8{-1WwzY4PUI}ZcfUCuJ_L4GjE!{Msxi{8UW>&LgSO9_V9O-f&=r>T4$1YAB-uahKl)}ZC4u` zS98TC2^&_rbQ`J{F_C`s$aqEJIp-_xf%G})0f2&!?oxP zZ8U$y>ouIADs644tw^~78B1~72~S;i4iJ54AfgPE`q$WbjZo!@~T!x_mXEfFKsw>+86X}F-#1j=eug{Bb zT|Ff%EVWFo1>1tGRj?oJ!;tvM5*%Nk_|$AFF7f!3ny+N5OCy;_T*f^RhQ836QA?pq z*AzsrDXBA<#Ngk+xZ5ZB_GDn@`RH!5o?v=f^E92BuoHxS>!=a5$CGR>RkFwv9Vct8 z*y3Y2OcC+~sUN)wT3z*rpASFp_XdZ9(cv+QM?CxC)sLV4{0emF{^w^u3~~MK+xK@5 z&+fi?^XHH6zkR@fiZ|ikyAQ9v|MT64AAUM{_CxR4cbL08>^=MV@cPf+z59emKl}FE zPw!qa2ld&L0J(zW)Jp6$0?d9TZhZ3uZ9AId= zr2Q*MjyS>MKj5_~=`p0J3QNfDk<3$7>-MWi#*%#iWx@^ha&TSXKRm#kpa=W7+2%w5 z`KQx|#F33}skK*RWE#-VizZwzndH)-*W}n%XnBc#OQ|y%d8@8XVI$3Mc=V zT%5$9a!4&@yi%pCBp0=L{g17f5dfh$O1*_guM7y3VI^9+~9bttB=J8o&hs~6g%tGl(aL5iksHmR< zjSTq4A-Xw;@1d7AT$ga3q%I=`A+s@r z28Y%(;ihaM5+ac8^m4KE)Y5{K=ng2PWbamDB=Ti-_JMb&k4WWRU|Yl$NXTODe2W+B z!z_;;QaT(S8r_1N=+{Ea`kZ$=FzuXs{6z`LW60k(|9H56ML)2s;2j+pImQ951b$ek`rjvJkj6YGw_%N?CvR;J?Xr%?Z3-CwGOsuWfd%_7RrWW;5Ys zG1aoevyouh?xd4UXX9z5wpIX5^+pS9J-4}kYoe+bFn}Kk$sJ#!0pZ1e^~eXGNJqE* zRX*+YSr5|9r8buD2KmQH9*`%S6PSpytE=(Ktr5~3x$7w9IP_NMnbsylUjwc;M{xu8 zqAfhBCHHs2P0JmV9kR0V>IP&Xoh6s5r3W`=_)m%?Kk}2E@FbRL^YrNuEU<1&v3H40 zApeaJx1VDy?Ascc3ehZvR!~v{LXK*ib9$OYv|q%3cQWM1MyEsSKn%`6;*gcG?W8DU zv<;pZhR6v44ZvwY@&_G?tzOKpuOLdT7bwIqM=btzbbA`<;fqu2&-J@(4XU_#s1y{| zA*Xv@H$|Gy6oV@XM_7snkU?3Ilt(0(?g_$U=5X~6h|%&Jq-p|^uGP61CA8dI*6*Vr zQh(qUIf{^{{2qRddNw10e!XNxqDve(h5br!V2L7B^fIVmwu;8Hy~K!L82|QUi0xOd zXRz%P{B|gfhC;NkEI6AvMNBXq%79uUGq0nRtZ!8zC7oHCV4)Qx1FTx~guuV99?_Nm zSCV^5=*eV_E0NaW&BwcM-rhr&f%*5{>u>&X_5Ss}mcqpwFG5pKFz>1yqjX|biK;+* zH{t=LW0a|n90w2p7$aqWOPwe&QhDZ(bgHUqlN67WiQb(vS*TXsbMhblCMVhD(mhRY zU_(S6r|7Ka~9*rmEkwRnirDT+DK*XK}N=yU_^k%&@S%14c>+?}E+9LpPnMx1rUJ z%+`z51qeHRG?a@|xh;5(acv0M%rD`WPE@_kB)a^Px+U@m zk|z79s|~B*z+c5kuBlFB29$BE2OCAhU60AAhPXhx!(FeR!mlQ`H_hM&x7Q1z4*=K8 zp=HhdnF!Nl(|}CqMt2<+fAcTx?FDhq;IF0cZP&AIdeg};vr|_EVgomb7;ShgfiffM zL05W+>R%f9am)&3QmQ%jr8EYw&KkvD8sy87r8%iQAhF>MLJ)*THTl#1tvTg(;Gs;- z5dZM6ofrm1@jmOs%Brf(U28()^Jr$Hu+cwEmK~M`k&Wegx&?*Af9-dS@mQxnoGrG| zJU&DtO`(jbHqw7k^uGS68m1q|^C4tfipjuT_!?_)f z3(B36CPA#JM)?j;q~!iWjU#d^e7}TdB)PNLHY|et{9M=^)qdn>y@B&z5Dztrit4`3 zUPCnYqKNDz)T}NwO#gfY%Q3<|#g5fPBL&nw7au5{igA~t^ zMKu+a!O?ZgEvEko6yfG6bXb4k#W(GkVxNb5%{^3sM*KzUsme^`>x=cSr+D>`!SzaCQZ9v8>9E7TgB!sAh%Tz9#wceTA<+7|_&aM)nLxoD zj?-P}T`GEHzIYOe<8IS&Jpn&xXoao1y_vj#KfQ{6<1z)1rn8U-ll2%y@af}jj&g;H zkkyza(!n@#N%3YqU9ngS9*Qu(oI-v0^LUKUP>CimG_c^=`FQem&(6+r4#UhBhBqM< z(CsZcUiB2c6wM5H(b+YM668O%#!MLSdVEO=iV_h2UOi*R08$2w`eEr~`NVRTsK__f zP{u)E<*n!fxdeadnYh}rJ7P4?t0ky`!;aYQ`n!{}X)doj7{B8Fu zu@{Kp3dpupu=Wv>T(fCR)vE&kIg)T%F7+g01$J%uGKYG&ln?+~4`Q1_>oyn2#GJo* z_vYjGlDHHG83v8cWLtf`)-5}J>_dq-)J?^LNWsi=B9QG%bFq($oJxw$O5ikhPsWoA zxQkFN?)rAz1HsV;WiPKMt;6C5ssPPn2z`LPyU`O7&T65I%w9}=!0+}BD1Yefjb?Uc zrzB8bu;~O=1J@2GXtixhV;ubO{zv)M*ud61+tR!Ycixz-dvqiT%OmBaL6gRg(uj%; zq*_gWOB3k@EvIb0yoDOTmq*SrC_I#2{C|I0uW<#?ix(n^MF~`rNVpt>69AXM4!9`v z6o_}onugN;W*_kQjP(3=)WepUiB!(y|_Ae5Jw$*&!6xSm0 zDbykn=CfU%=CB{0c8Y>TK@Yc?SEk7dpmpKDZ$3)F?e--6gb>^< zUnjllN_#0wBLkDJkO?0z4EMg?(4xxQm~_d1nbFZII)}wjA3mT#m3SeFDM-HwlDI&- z0UE)aYMy-87~w!Tm|o#bC(#O=84-c(jGp$MXd@F5-okVV_Jwc(qEB)l;*1jnUu3D% z!wY>RxdkbztS|YGd>U-OWt!9SrE(jPZX7eQJ%q^Am&_?~05+9!yJqpS|FrklUU<01 z^q}CoZY#j2w--XfK&4sEeXAJ*_jI-*XOPYg z4~T6h8c1t@eY2qphYcLL^sk6Fk~&}uL>FYetl{J0{*We#Nw=Z;A^F!Hrx!RD9TS>1 zr{`?eapJ~B5(~y)H$Am5&^iC}Kx30N4qf8{*k6ikyn1bEbh;UT`B%&HdL;R4tu8Uy_L=RZL^(tOolFzT}xf^2`#H!PRMqM4Dyv5p(s zfQYHeu8DG(o{grzba=RUyeXY)_zs6@@e-86U0qzT(hA# zUjfk?bB*s3hsIlVp*Cg!l;UaNsb`WbJ$=(RKfU>g*fhs2f#61&Fi(aVhxEwToEo2F z`IKF&m_rL=^nYVbJ;Jaf=M5YU8hpxmlZAquP!)_ez(b@vzSwNU9UEg>GaQ&)V0QxT zbpuJwLMB-{R1Y425u-E}^H{cDQ8(OCE2IrOb#Hf?$bK!$N&l)-Xm(J+r4VrJof6}S zzuYaY@UHFs{H^~FrIo>g;0ZhsXA0Ve4K&PI%(xO|xLsYrBGqkO*|dPZ@jRl~VH6r8 z!)f}zYEjYC9g3*vCQ02-EG`M#T2YupkxT1)*N0Ctg|XDtj~YHtSE=ebWnCMX1Cggb za$P8xs#&|0U^>aQeekEY!Z?LBC?iUNOe_9P9m_ZnW`UnDEDoBj@SZ{p){fMVCH!6FFw%d~_P*CfSmXWqjVhfp0|rSj2O%Oq+ED(OONr#_mjj5?Xj zt<$gx!;^Vz6KO^^ykaoI9HMV{QQ;*TYT?DhV$8b5XFhh6wQ}fS=P{as1>A&QYHu@^ZAL?{PElG-siB3 z-4#p{faY&K0dG6Bfz&b@zv#0ocF{N$Mm(fKbNoE16Ma-J` zIdVCNnMYYjsBu-Vekzq1v7}~3GLTcbYKAHI-k>jRWJYJ2hT(>ljl|5MQVz3k#BGmU zDhKFIofvP==T{rrw-QB0=S)e7h&lLb#~QSW5{vT{RK}71a-d~27m0lV36F0++E)cN zxY@VL^k+t4gh`dI4Ep8WC7@b(yQ^rbT24k+EptE$@&!m=nFF2~>MSl07;ZKoMIoeu z`!gsE`QGFbuWTR#>p}SroA7A;T5CF^60d7j7os1O7x~8I2f&yK<#VB$M>#cN`UQ%e?u8hpC~lb*hQ_hOs^&%Q=+xR+TjhSm zc-s`(2z5$}MdAx?&X18Ow5z#vvE*>rN2kpowN(PI+i)0Xk*SH9 z#Z-!`LrV@E3JkJiLgEaFPa<}J2OxMGlqHQH=W&EoXgn!>s!tDTKa&KHRDzd+M$lm* z|H;>GG=WRe2{&#jGc|f5)pZ~G1IVJ>PBdhO09tF{d}0gsgrjawLgu5}jM=Qb6n4xT zN~<8m?9<*KzW@FYPVcY^s=4jOSxOOZb63bltPTKEB_j{;w;d%#_UF{$@p^KBl*h^T zW^K%b*ppI4TEcYLEsx!3ircnIIqu)%y7KjG{oG_F2Cl36vtFvoTIO2iK-R>YY5H{M zPgl%`?upX7+maHi0XAZ3c_4vh>Szfra@0!$^muXrU(N`GJ)77BrGOB&rHgvLtO!_b z42urPt|!CX08Ca_)}dQ1R{AHOsQUyJcKivwC-0G&_1f2)ugLjDj$_oEnt)Kmkh^63?`K)wohj}@3K&3l9c~jhva=7p@ zztyPCTcSyueu0#EUKx=RAS9oAC=I@6Gesqhg3{HE`pz!6DbAw$etyV_Dxzm*(#)P+ zg6W)6R^D@%+WD&#kifuXUyh9rrFud7Bvy&c1rL1pQwGe^)h|*;MRC@t`33ctp5bk9 zSBRAxug^DO&v~A5&GhIzjq3Dcv9#`lO{F1tBpBx^2^n5$*bK~Q>1={_3i^h?w}|XB z$bQMN7%YrXMboIvjl_#CVk-z5r)Rmz*ezfN~&%xrj7${PaOVznCB#vk~jU+Dd z?&BqlDUF8OjKtwIesNbv?LBvB1Iy_Vll&z+$G(l>&9#w(cu&K**rZqzbNDdA0pNp$ zHC>IdUsE*O+4YWwPp;ONFQ=Q`*_(&!Pd|KvdURN^N>*!dBxT#W3TbwU0F0j~ z5e_0W%@OD%b0U?Joo3Yy<0E$ce6JFM^$pv z9vgfB>xE^YV3g5(bF*2=+M=K%UHb7NQRk`>gJP*WC!@ummv<}_3OA#wZnaIreq63d z;`W)yI-nAhC^R#Su@wO40=2>7HuyVd63{{S_p#xsZGu}81~k7smqi82u3c$~Tu-63 zIJC_;F*6ii$h5U2sxynogqWmx%RaNklH{`Y*g`M|Qb-aKa{EsoK0aLDzx(dt``u{k zmHj*GfsInZqfJZss(W;bAOzJ5l$OCgsktkxp{$e^E?Fz>=M{G0OT9kRb|eO*oPl0- z<;ZiZvTKa*^z&o_UqR2T+RM(DIAJqcuVRk%* zE^w}`8sKbI2K2%vz~r2o7tEwJ#gtdU=WgyGp_BCn%^O3s3B+t)Kh74(E6RN)di_U;o*z9oQcuxmiu3Z!KvS!D#NQAwQj=lm=Ao*KhK zP}loT_nJsaS{u;%m?F4~>!ZGhM0Z$vmg`JmnQhhIM`9hQS0`a2;X+ptX(0Z$UeXDs z>{YqwR1z0zU|t3WFw$595xMpASfvWAn@U<_BUe}F$Z5geNqU4fWQC)#?yQWVq8m7^ zTrMiLMSw99;}VRk-r$2}f;>h|xYXrFgV6fW3m+`$p2W{Ph(49J310`i<(7*@r8<75 zLcbbteWAS(P;=Lp?gqLSFHA8|Sl<$HB3%hPH1E-=MyMWXd;=|#8{pIypto$YsCd==G|m0Q^2An!axYm zcG~22kVz?f1jxAuUMQ&1PuxNJPV8Q&b1pA#4`aoh>jl#7bOqX2Fg{T73a;l%cjek5 zd9>{@p#~+8<_b|gxDW;CFopwc4im;}KcWwIflV;THJ`F+$vK!AftUarO$adygDB8~ zhvUKYbEL{F&emgAqBC#!c>2Z72KH$HTQJx~pj734$_$THi(PAZV%>IeAIp7!8GL&4 z?qR4d8hakbj7`vt>OLVa&+r5d&AMFBgmeHLZ9)Qc(`3pbIw?6?yJZ^b^$Zb>^A&y( zq>@5kw@a%H6q(SD>&U|I1KXOLTqrEyY0o1u!h!x5%j5A*m&z?vc?|>WTv~gMa%9Ak z3{dUkl|lMye8?~rY=k77BK%>M%6**`E!0Z8!i`6Kiw3uJ-dF;OZIXV=EJ1L1_CwnO zMBc|xykybPVWGV++vVlSYK7TAxbl8X@N>aI<%reKV&R|95Bjt)D^Xxuc;<yuuk|vNye&Dl@jItC7m%M_Mg@_f-x|KR{E#xF=a39B z!2u1p!;+9?6@VWuAYRoIuvcMm1+onSCz8;bN-Hwtx7>q(=WfJzD@ewBlR#DF30Pkq zU}A5GY--EA6)@bYQ`e9vc=Adv3^QR$NR!%-q=T1=dB`V$Z9$_Evn1Q!T2|_H;WxJq2kaf*X6FdN(t;PgI29Bvc`Q zQd;d8-Yj|(P1C3dmNdsIf?gy1CbyD?O#spO7azwvT~e?_iI5>tC^F-Z66#SpHQu9Q z-t+DBwt??WsCI>iV4JIY47clMv(SzSx)JoWly?}NBCTQcToqW9(_pq4)+lANv8NEG zqH*-$9k{;>Qxe8|Oo*to*%^9v6x`?#;7_h!qN@W6Gt)%5g$W{^Y?VgI9s$`RfJ$;8 zSm@BNu{dxq_gMCSPY*#-rog_C^kK2<5gWZ#W&d%rCct`J#Y^19pJl)e8m1p0 z>jz4(u9aJ~Gea~q$30L8ECCx8P7e4Czubi=)@qsrPIJ}aT%PYuPeNn`iG> zf2H#gPtnJ&G28R)x~G$*F~X2(eJD`N;tY(=N|L&>h?=ee#YSK?$p>Y?M`NvchnyZo zpu%#(pr`d$hO#b=JYe1EF##Av6D1Y#hn)%JNhbku=mO#%cR>Ja*(INlkDH(paNPzh zJv3_z=z-Jl8Da$8Z#1ZwNE$V(7R1D0KbiDL*KoZ9=nN9U6hh;;#)2h$WKc=O=J_6^ zN(MbbG){iAq{m>8h#&I(L6(dC1EBGS@35yX-JvPHCFB&ZkG0L(v!5eBl4V#QBFdv| zT`FENTUXcGL~^@h2v8x1l!O7<*zj_APPX-Es)uy5?FrFha|CAShF007;j_J()QYV0 zUM^7!mWh+qEA|k{J{6)Myl&4gIzsEibIH-z3A$^VQ33ju9Y>_!`O4*ebC}i-OJjw7 zL=ovrt4HWglbM(+@NzwyqmlqrZ`|u_!OTdj$p%$hnvudljH^0SxIeM-RaR_e^Y-qi z``zW6j}Q0n5EUw7VGyS(38L@fIizxr1ALNRfvSTT2ZM!?J`n!4t*`qK{JiqjPa}f)_FnBC%mv9SB$5J9NJ@fSj6BS6C z(_}U;DZQZ!!W#P<(&-+VrpEwJ7wg$A?b&vWH{&y;FBhci0ynVrDDzUoUL{i4oG)Q{ z+kC0E9CmWWbx|s0hIHnd4Mm7vP5ZSP({}d@4Z}4<_f$;1JJMC^r3bnOC8+2}FpPxp ztQ_@K_Sk|L*m0-b3!%XDE_w*10~43m5J=lYj){~zU=UW4$gcPH{k!jKBNUlB(0B`} zt6sGL(2tr*GRE9XAj9>w}z%5Q@ zUbt!03`;o=RwctsBa$g0bU}a$YBn;fr?d;;1Bo7x^icEpXY#;{I87tLQPvS>9ZH(93x>4RS9 z1UKz)-7>8|;JQFYz!!Q0ma0~8V8DB3WF9}Kd- zNM2<3zLjf7)^AHd=uFojzX^~-7zS)CfQ(YTBrGz1EleRzDgj(MFI}9jV_f$nN~vPG zhO+}QJSbgwI=J`wt{t+RAX**nrn?j`+yW+hk5R~xXeTDxsZS>awv<9qefy2DRx^D0 z$rXufBwG7qaH-f)2CsB(kh=V(us@aBAGAh!`#OBb?fAv)X0_YgtQgT+6Xz;;MsG>x zJ-Zs<|FhoU*LgdvpRPI$)HKdk=LqyKwIRS8!lq{NFU!rA*nvC(t{hAJ;Ojj#GMIKb z>JA)Fngq3|%5bJ&&_F9X;kZvBanjP8;(Y_+^qh>8Dab%ClJ|6}Pv?t4u3& z46jU?M?ra}STH-#g4D7k2=RMYt0u^#p22Ts20YPr2H1U1Jxv2evNY&CAxKJr7 zSBqx=`7LG-w*2VWX@lR(&q$$I=CPEYmW?=!hVhI5Taf>@$jRWk&}xCO$YFeOJHK4s z{u*1kmb{a%3({#v7lg5U7Obi&ytzj(0-Zoay99VKA%0-YWo+cR$*2*n5av;|iYFH9 z$knIHOo`^%Usftt#9fhu6CyzHej<>d%j4VW=KQi(UuwY$#$BGF`fg(jn$QLj;YT8c z2$)`R)1uEm9^gI84k9qTN0>qfRK~UqjtzW8Mrvuh!RZ1ILRF`0cvQVkU%J9kW5DoX z(TyD2d^1{LeXCnIfpE0WLPfep8SY-^sFqU+e|U%Hk_4gwde<=_b6x4nxh!EN8N!S&Ojw7@%08O?nERlqjZRs$$QR>qp^%ksp->wis*20?hNj|_Y zrW}}!em`I7sES{N6D%Vgo`LsP3KR@vtZ;)qSD+aPkTQ%dq5H*>} zpzUTkq_7`95{RI}po#1tVhQ2aZb0)3{aC|+zg-@?5TpelKL|{?7}$V|p32r>y#%BP zg!TE0+1K(m_lNya|44)Z{>m@EOx4E^B?V8Qq9S}ZsHj8+dRWMqYI!C?gpb+)DXhrL zHWK3M>rlwXvUzaTe5FEq`~&i#Rn@CTedVdiA*Io6njL*t&D|PY42paD_FE^bJTi!= zrK0aFRPsVSgt=VQT${c_DDH&kSV|;7Uu-MoIVn8`(ZcXE;ZrFBjVTlQeD}AwdXcAu zkC4DfDHJa^0ax5Eu5Xq%)=zB@EMf}I;|68ASh_Ik_yL!~485+1&6n6Jgo(RxK3!>V z$P2x*!4N+98Y>z=J&;+uS1?2d{?;qJuLaZM@@zwQJlkghGMFCEpQMg)bya6@$8p~W zsv~&tWZQHfm}KZ6e`(x5uyCOk@os`rK`EL%LJAzpzEBNv`KlA>*q#IdJlKLW_eh|b z(EKq6tEC~*D1`_oN@M&R_Mv)*gku?|Z!P3mg^3$CG@-hMM3En4(N@54{$X@|z#{ue z+uRqbYr19yO~h(OtK%B2%gnB*@F`wvsXCY*aDutZ%V z_lU;cq{Z2gW@bL66u4|bF)p3rF!oJqEHd42vI|)8=j5=%nps@_Io1}=P^z8>AD;I9 z@aGSI=;05uQ;3UNpjo}IVVhDITG5!kAo0N0@obZv`*r>_I9NOq)%K9Vdh)J&%#Z&R z?J;gwx6JjDqLG4SSV*+#f2?7Cyx6S-X{PE|LM0Qzy7wy?ef}J+ZjX*fN2jCyV03&m zx<|qB5rVZLQQCdk9PmCYuSZBc<5BiVoW)6bXsU8Ey+dVaJFe zJ4TpECtn&OU5;NQfvJbOW9e_Ji&#W-c=?lv-pg`(7}Ue!at(46l2vHMMpS}}0`+?b zJaX017>L~*^|}W2BVqt4xwOcQZmeiRwPzqOlxU$mA|aO#p@ddYq6X^@q8mDSP|N^Hj3pmt3%|lP{qH@SSM7=1nsWB1nP+AQ| z4sx59cyB7kWWLEco*Ei3x_eA}zg{7g$+Qb<- z$RADgwtJqclo06bC(A9I{dE8CVe|gehgbKzn;&0u)kp+XTganFZ&r}PXC{pDT*5o# zZb!cUh}){)bHhWwZeY+qdD3XV)Bp0*-G_(!4_$3|`d^Z%&(@G}FWs*SLkl|yxL4J$ zv>Ilwf&8Uzgu@e7h95qc;a6qh@pgDOeom?oIrL_g)KIXNlrkCO!xEqhy|!yGZn%K0 zGN?(aa3)&hkmS;IrI)Z6$>D&mKVcbSC82Ix9%wh3w}G|fXgo3V{{4nTg*Q;-0B11L zSCL`8Yz?V)abVG2iMhGHVO!kGk-gY%QY93#L)lQQ*`6%o4ro~V#boHU`MC5(vwayD z8HIi)Yt~B+v5PI}A(~vLDrDF@Qd!g@SR#M_>x1-%g4)XkN;1Z2XkmKW^E8(IlZ;gU z;xyKw`o&2oG5)oB$3ZZZP61p->X!LORdNi-$#Q8c#W8~NZ$eioR>IJfQ_OV%q z`&)u9Mw@tB%jlkvXc}^W5Dn@3!{X(X;gM{w$dWxFh=S?oO|_s&86n8C%TV+NByol^ z6~&jD`S9~T zG7L~o;kZBggUL;133daiUz86Cm(1D6Q&t`$5j6%il&k)Z5m zkXz*;L%I(h3OU2_`e5z&tJzRNkV@tz>1{xgUyZ_z0+xz5EewfVf$b|W1HyTEa*W080^?m$QHV+m3`DgP zF5LpF2Gwxk@^md>lF>&h9j!sssw-=d)NI~i)}UC#$CI$J+^y1ISglfed@mofcsqcb z{G~(??6ERPs@yU=HKwn#dMWvgKF-#xwTXLXnBWKAisB%TBoZg6UKl@RjTkp@?#7_1 z3ZSVe%<2rb2(`%}?t08n4byZndezBAXc_wfyhIe3+kj~VhCrGPU5JJ8&Sm-w_hTj| zK#ACF5kaREn;1HJ__GWXVv)fPmKC!6Lx+c^hncw_X!pw|ex6u4qegZ6^87)F>I&%% z9&*=&Y7O)#93<3@`7ck%XPgPY8@hHe<22$G0Bgl7P>Yz~T%(d5@RR8~lQ;Cr9{z@0m}^%sMnGq={v`U0$K& zh1(-~LldTC21A^UmX5ox;_!!qPqhMGD_9NHynHhfi|w2Fhb*LAiE6Y+YVGJBTSHnr zEVCIkQlJUt{UmPp}6odG!4Ev^U}1>6Sj zsL3xF&JAA(*KI>fvi|@%PI6v@-`rwX5xG$>o9$nL>Nj`0D>%A$Y!1gnRPGe(-K}RY z;YeX%A_f$~XPRq=&dT_{3MjpFZ>4wmmY^spXg4gIf&|V$$^MJYdSmW|4Qkuc2Yivf z&o+!$-%NMzzeq}x_eDYhJU5XIcIP-8X=xNN?;Bf9@YNy1Ch4SXz5sFOVd>fNEW@6Q ztdv7`dRl#d_whaz6W|ln{wa|mB*GA2Qd)>{3W;|A&VwC zAiXVdF*xcmW*m;=AZ9rUZa15vUzJz=ZvtWCe;MG(sNfD;{9}cG5)rZOa?3+=lHQ6W zqH1fcTT?zo6R2CV@tZ>69{I$7vN^++43P&|Gvvh8O?>#Rj7mr_dp~pBp^kI|2i>Db zfF?>12sL{K=GciNA_?49ueaC>e+yP@Fq1XDwfPv;x`ojimj=!}A`o%MuU-X(5+PceW2W9l8N zNp^{YiulBdgoI}j3`JPGX2KY#6iHW3xzaw$gr^E!N?~~S`pvuV7V9tZuI)j$p~E49 zWv5#tV?ypH1ifc7!ta083l&T>AR4Kda!@|Fvok;UBP&+OZVL&lk0bHZ{%mKXtdBCn z4J8wR(~wWiRIF{zSK8ey3!l`1S-LcgF{7w>bVs@(teu5@>y)DoP$Hz64-78ibSmC&j|zT=l(R=~}U$HPeU`%Sk3sf9BH!1Rck zWC59Yrt3Q1ElSuj>ZaoCmBQ+U+3jwIe8>h4qGvv&4ymdEGHE%4W2RPI)sQx@94Lqk zh@$Q`><5t{OfaYVcs^2osN3FLfH1zUv_E5y(LHc?|t`L*P%>t?kI!84d{#bdHLR1sb?HC{D)r4&tt@YYo#{85!hz zQUE7O)Zbbq92I0S9q_~?q4rNt$!?!}5jZ*EkklJ6DeO2V)-X}2!hWbvm0)OeHu>gng# z41fe@Mj8mY_QBoj*9eD(l=134?D@Tq4@OO$pe}ybJ2_S1bvN_8<&AsYuqoN%|T}xwN26 z=Wej^+GPnBfIr8;l|UUMDp(k8N6FjchzrCi<%?UBbZ}GrkCq?j3&2K4VO04FVvSuJl7XE8g!LA|IY;x4X@?*O*i zOgC!@^Atu!^D3Fg(#ISkbi%O*p$4xujBzO^CzH#2PY8KVxi^d1bRT zTSh8=%UG|kJY-DB*HCnIK=V~Y9N~(mcdbrpjpQaP1vGcziMN~Rl&U*R{2ZeKD&r<< zx{Eg0Nw7z*-0h9?G#)-&>BWdL9s!7qv}h`?A->cuTsBI15BrxfEg7{d*~enS-DUjZ z<#Ie#GmC(DoD(2repYedyyz+w(x`Wq-V*5rE02>?Axx~3)S2nbI&pfegMTe%UtQmr zYMbPy8kA5giPMcQJ_b*%z8Q;e&W$cnxaql3953&15g48JhJ&wQgJeF-;Pb)Y=^FfeK(P+>} zraW8jgOj&X#a8tYxv6-GEHSom?RA0h%p}N30%(ZMl}B5sUuslj3mtB>li-q$aygCd z)+EfBasU^MOnsV4`Cx<$W5*#~iZM(k)6{_tvJoz{&)KMSetDvko`M{np#2tj%^1Zp zE)lZ8m@ZdS;E?QwNWsHAwIRytkZe=%X0!3P5ow%4SPv_%Hd6>1tn&edVqCwh6A;H!HWd)_Y$H)Emic**t#6k zDm9&sWNyt@TEfA9n}G#`zaSBeY3`y2+`CI zc^$^REU$Y}QQ-~Tc0`s@&0iWI`+ci1joB9iHPsFj3;c*Bs~nc5hicUWtWya}^XZV; zX6MLtfeiGp=Z^1D)vy}IXMel-aee_%Qet8rMF_jJMZvS<*RRQoYzp*((|pzFykv^k#gSd|Zi9aPivXPh^N z&rj0YsK`mZHZrw%0u0v%qDE3vOocf797+Mylj>N2sp5Df^oTk@Iu$;{m(L5z{`|A} zxdf%zS9GC=&qvF*fw3al2PkMSA(=CV=Nzg?Qb!fCovEH6o_<9gdv=w~_^xpe@I{x* z*taZytPH}ZKRfO#YAfi@Xw*iG%52QQby=xoG;g;(DlkJc99Ad;h<|JrVwIABaZK~C z8^VXaw?KUW>cR83ci%Ck_|r!m5ldL4k`cEn9INgLxHD;U9M zV4k#d0ZM==f6h{H_EcKRKoLDPAvxVm4qiR&y?R2uz1b}?iGS9qv(ZY@fo5$;ifN+# zL>zi1M3tr5^gXS{FZ2e2T7B@5eHJ4$Nx$StvhcEA<63u~vECzb3*_w#$^(UhJmx*! z+~Cew8Yt6J=#SE@ssS4i)IPRK)sFD&FvlFJN2c0sy_d9xw9rr zkIeCP7xU|@1<1Je10IjeP2hM$siDg71W`zlr2Kx9XVZsFRu{Q)waWqJLj<&Cg+dD% zh6PVT%yl9)zzNWy{3DsKHmv0)hST|f2Di)QOge!liNSgZA)Ykre75N$Eqz#IAS*3j zXh9AoYqRGROO|k6i^AZY8R|8-g+4`#7XjDfTk)mtYBEedS$DQp?X$INc^i_2^Om8l z5U5mt_n)ZjDv{U+i3yJ3g3)-M9q>I3sl91htSDlW-+G_kTD9?FFtJZraq>OJeh0%ejlbPSl{M~uSIANC(CXS8DMvw6|N zkzyF}#@0YU7|0E!vbLe%dv%8HC*zw-=O$!bTz;HIFZ{&D2u^N_h4 z+0CGVe}xfgemrSd=aU%UQeha4FO@Nu1GL7R;18TI`}P5r4#OajdKc-9deKG%UEN2i zdxqAaB7tV@rKLA1R1FHaxc*``*&;&3t9x2O%+@GQ?cIkTsCO2sE={}+*0Z1otT&}q zENVKsNQ*1M^+BKk#}h~|Zb#S23xiCF{FGXSRMh*N_{oZ<{`%65??zBKAdL9-f9)ojAd4btPXia)tH{HDWD2^s_d zjB+jpi#N5sm5q&Y!c1QnRuLXj$5oy;a@@r=u<6DUg^)DQ*kN0z+BgkcsG&W4spGeA z9moKjr(Sf<(-m`2cE6%sHOB{`x4afIYqp!B8BN`+nXg0yHddWMaELyj=o&%Tgd{rS z3>^P9!pu8FmWfedO`sL%Ad}FG&sD2 z?6Opziv04zJu^}e<45(%_h!{F2?5Cp2@#-`a#+KBy^%=qZW^!KH1 z7)TFDWw2;5$3`hn?X;N;Q-p|IXhA861Fyf}ALN=tW6l%Me>i4PC5VdKnWXA^$OQUS z8QSX$H7$t*FuxwlKrIsYJB|)!~ix%^Qky3 zAVEv4E$=Om3~^~HwX$dTIfG;#M9%X6A#*>{DY#6lf<$$0oP3pIgJ)wtz3&3!E>ft=Eu8U}D>HwB@}Zs7vK?ahma`4g&F!&7IM7X1v)Hnd#7?L~)#>2L`@rFF-1i1A`6hK=!DCWfUnnpB!j|Y zI-$WC5iz^czdV~~op#id>;zJsgEGheT-wj7ZAOGIwur6<9X-3*SX?8jLMPiX#p&H1+p%Cyr-*dfEoa{oqXE0XlJ<+w3lD-C zir3+bGS&z2Ozg_k5R{ux{k{fat(Wmn58}p%;HI>3Fc>=eJ!>4<0-T}faja;ha}oU( zR}EmN$^o1xDu?AEl*N|VU_ykIgQghajEI;co0lyZOaTkT?wO!v#cDbLwm#`&U5h2( z;s1)*J4rKqgI>;8JNzHdbI>&&QA1o0p$Jfl;>#n}x9b}0`trL!soGbmaeg?lQf-hpob{S7B_44LsK6fs=>bpK)c;muEW zUJYix`3!Nrm*uq=lfk^w4%6~DNI&xa+iySKKfM3;fZ;)(0fk`!WVYEipWeKEc=K+T z;60nr^BJ|J((Fn=(?iGAf>Jcyx>iXto5N#8gz$y)+vR%dIVasfAb#2lg%cGX))Gvy z`V<@*RWLLJUnx?>Ev3kXU$lUc_#PASWVvl-?NYX{$1I#;3GE-xLSq~>YvDujZyC|K zu_ZT?i08cZ8Hmj<5-(lfzr91}pLqTL?sYA?ixPN_Mq6;#36a=1-}ZauYP;?mx~E{D z+Af>)7=;D-`Qcbg*Ap+d#cPm1n4uTSpFx z&nCE|e1B7xPeV2R&e~S9NCv8jp(cpF+^nfscv@4B2P5`nDNT?NftXek+h=9TQ#=Rx zj%k(5F2jngUCB(B+AH!`sz{fq3U0c{I|*YEl<1~U2_J6&yk$6g`oSER?o6|ygN#{@ z;pkM<(kq36!VGO%uU^l|!4|gF)HETwC^Eh&8l7=oc+G z!t+r4LYr*_boJ5;;3l((55rX11ciO40kIM}iWvaZRu;Wt2JjJbEwkvUK@w!&$>NHF zr;OVy)C6f;@hspu;PMJd)qju>)lh2s{e4;uAQXxi1_DoSYWYB!fkf9E$qZW7ga%N{ zN4*2%lG7Kmj8CP2)MGKO1&socC{1&#NA_qSA1&%Z#&%3D=ijDlBw3F$lKHdGbu=)E zjqQsI^gzKCLUqt0v~atE%r*(#4X-Aj_52R}jdO=05qcC>6j_D4w4-=oe-6rY^qjL| zPzY2YhEVPm8#q_Vm-JJwsV~c-lX5(HO)D#4x+BOz^8jzcfP|A@r^! zq3AYfLv@qbN~V(iD!!%((+#`bm$~ZVNm`lN)p!NrW{D{NIaUzH_3@Q2kT2}IYl@I9 zmYaq+Ai*=%n#PzI1f9#;bnH*wa<#R|HEph!tM#0jtqqq?sY&i|eM!o*HzBajz0YI# zLbxu}s=Zrt?SQ(X$Q-$jrtlO(0H|8R(*p%IUg|<3F{R%hTvn*m-TEPUU%l`%Ph;wo zgMV=>?QD1!AZ&*n_--35{YR{^{z&biNP>h5zD^IDgZ(u9~@frxr zlwT|9<@7n6!Oy)7gZTkO=0Yo<6w8ndhyf%-7WKC_J=ifx;WU}6z7ry7P(rO^>rnUUcrGL0RQ^N@w=c=fI5yJ*X9yd^8 zca5;)CmSYM>>{`9=ttTh+vI+P4&;mkAZ29Yi_ zySAYAnZKV%z*E4iarBXIJkyp>uKKgw9op6FQeGPUu{>I022A+Zz-ooa~v99W47kGf&v}nR&v# z&&(6{eP*73+PhCwE1nKpnD)Se6e%SKuCAjh2eVq>zer`_A;=@Mt3d?2cSRwA4zRy< zmz@ThLe;YZKB>c>J+HX|(vgsTJRWU>z2-okCB@u>^uyl`C7o|bq86GIa)!$! zO{h`AqT%5+-6F(DUmEPDlPeU1cz5^B+xy8H6@;5(AKw3%1O}#;ED$Pre0X&9T!w9y zkxv;s>0kULQht&<1Gb?v^dr8IaFPx_Iptj*l@$=d4 zRif?{+MFuSGh)-8)N=PNrwpCSND{yz*!Ta^1v7P zC(~lq?jR)$nex^K;9J`9ugpZl$7dmz(t-?eHQDQ)V_3oB)62^#?J?IMP+Fv$r` z9*}zwT~13(dNaHn-5RB4v{~^|g}X4WjhW!(M71-3SJK`$S8&##4|n7^`T`%<{ZMdn zid|okhg3!@4$Ca%L{hQbihFLFBiiF2vaz;A32TtVb?743zDasFvO5YY%PUll>Xzk` zfG_O@lSw@|I|m-WM1hmYrD?^-vT#_xVV*K93##8Bu4jr^kS(HKsd)Ox*>ZbS%b%XVpliuZV5n zapF(-lFXmnirt7c>tIm4DLUzcg~Q4kEZrL5l^u_GaunFK$C}fEWp^Tu^TvfoqB%*9 z{HPGbdhtRhiYH{cSo?kqXtvpeb7CjhEk{6>VAG9JEZq|*Oz|{?s?@mtsvFH(+Hj|a zgvWI%Mi}qZhcMo$?P2^m)FV+;i1PcxTpGY9GJYS6-XF}cgi-=5fqTdwYJNvqyCIQwejYKPm#yphln)|0&;5R%+_#D zv$|fw0}V&E2d`1%Fl@KOhH5AxFwHFc9aBf^Zpkr0^|3ge^s2&w z;CLT`qD$mDV}!C-(ie`BQc6~FkEExEcAGtArVk)$Jh^3WN0L&8rS}w}z%R{q<}zm> zQ&Nu#Otam2Ls}Axu}<@e8ahu*v_uBeaHuMWr^v{kd;e`|LMHf<_*!6zL%V?3P_iWZlO4jsQ1fVRSk zJ|WHnIBJJSRntH|c&=oBRptSFOR%M#; zwp1|N)aC@85jwt*T$X8=DT*={cpd0LXIXxgh=zbgO99s^>qatiP&v{Pwuk+lH!SN{ znxG{6{unCodWk*ILoGr~kxnskO?#6fTs;UXDnG9I_37~`d=}56;{Y#$V} z>i0>P_+bg8(t=nE7^*MDrqCY=cy{;p&37!tdw_;+zEX(SAPuLqZ8SUx4qD23g5F4S zJhV9wVuV`BluG5!F14g~E?_Wtr2R*M>Y>g4lQr{bLUl_pjzBPR3yAey44@ifYN|=! zO%qHI%pIB1jxe;eKd(YC8X&z8KiloJsRPytI|8L`P7xye=IJ3WDe{1{&JKR`M4Zqd zD#trstf>QmdcT-`oqnnWBC}FTJw?AlM#fFM0+~!Vx!6;I@^?w=Q4xliz3BsC(~a8E zmSOZJH*4RQj3OCu1FvqI#k&+pJnWu82`dRk2nx=Mc}r^Y+Mq`FmPH z)$$VI2K*-rdFjGMIDp1%SI)A{S<2ftNBzY?QBB^51m9@~pu8`boj@GS&4r?JUjmCR zQzdOQfaB*RgHN<~#Bn`?egkSKi)(bJvhzkhlZwoEftih5@2fHTASmR=>VV#uGPT}) zF#!Xp$*owfL+oW^m&JhsFTmI$r)C&@jN(@0I3?4RrkRyM)!ML^^+*a9Wf0%b)gl#{ zBxc6)qX9bt=7617Ae@jS(y?C`%b-h8ra+gY9}bw=D-j=51yLrHo~^V{El7hux|HKd z=4R=FL~?kj!Ut*TS&SYD3HAClfLcO(J8q5mj72+A1oKZKB=!j`6T*j?Eym3w#ss2u z#PZV`UY&%N+^}6cQM{vivh#c}g2#mdpWvT|E6euXS81mU9s-x(YBcI=flG*mp5e>M z$zMFm8urXED-{kus$?0qDgQqSH4^0c0r-TqR=_&9iy4Vb@Zw>&=mSFD}K7G%ZOLUumg zosQ)0;4+Isf$E(lc%@Q5CGg);vP7m;OVs6G++t}el!#;;fWX*`7up5z2Np#DXaHBAH`xeX~S2z|K)AhLQy3wdkW)gp@Q9 zbC`zpKYT!NPg-aq^fNPrPLcjDvqNvlu8cR{ly6~UhptM<9ydq^JiiKv3kC|09qe~9 z=G;K6fGxb&Ia*%%sBUo4T{x~WNy`+~o@5p_$t4}4J*_y(N!p)-uUo0g;Vh+WNgySv z5D6=jt<&=;4WhRqHkJBlISA{>1G_v3i(wqQIgF=uWJefcct;l82f5Lw{_=y-ZuHrh z=h(!aj8oR`V_k=rkRsXm@^}>SxhOP{Byn4>6W0X-dVujl$Z1;0dW9i&Pk6!rh}{_7 zW0opi8y(65`TOGh~gQ1(g6h)=jvMf^qcMpvP@bRETv`k$S%UQ=wWuQ z3n69P3>$35PNAyQk7U}Wb+c*i_Axy*2@^D-;F~Bd@vNGWEuvp>Ep#Le0+nRB3c75s zQfxt9q{Qio(hZd-4ojglxH3%JAwgJ7v6kT;(YXzbK5C22a*CQ=(YN-N=z_R}9E6fP z*B}AGzQksg@7{m7fB5v_9WWf)5R?-r0Q0M+Ln;8Az!3Lm4Y4&4m@crJiS?x{VgyVG33UN7{hEd%U7nfSS8i6aUs6l#O;Qroj!NNaO5X#JMF|J!#F*qr-4@uyHAi2JJ=_w5+ zssn*k4(xV%V?jBr4Tg*Ib~!(4AVI9O){tFi4?|^yCs8Vy4AZ{|cscZdAb7qQoR*w5 zNluedCm(XkHd!K&K=gQ(tO}K~WB*s9QWbWF{Dbv$#p-9$4Px852@Cu-AA*&T`8U>L$Qrdc93xXzR0i=a>otX8lFCeU)fVj; z6xm}TdvXtfD>2Cf;V<}MhTxV(=Wjs8DCs*<2B#WaD%xEzsSgF*c!%k-l)sTFzdQTK z!~OWxD?^&JstuT}5m78xR%%6Q3e6%|H$i$pVNQ7c#|)9Rgd1L|71Mk%Ujk{is9VHu zL;JZ9Ksf@|y8=RQmth9YfV2hv|IEE>b6eMyCaj-=^3Gp0(D#oO3|Y?R;pJE#aKC&u#Cu*ZsobLJV%*$s)NS z#0-jK$5MWFl|4sin7Ws91H-Ov9`u zOp_*~6_#dld%bYGbR6k}oN(`>2BhlL!_el@TNOn2O0;b+X*>FrX7CT!NKyavhwty- zz5V&eyO00-^ZmmguI_(+`1ak0&)@xF@$ti7k-Lr_ryt(`L2-j zhtvCSKAQr-IoO~#w$Rn7Q20xT%oSX(M==69o&$Is(s;|n^_`dD8gFqhKmY`+>l5S( zgICPLsZcPe*yiPO)9GVT0T~DCQC7V(tCI+g&k@T}BK6|JjbB`#tJCuv z7f9n!>qYcK+ict%f9=MHItDa=jjzm@ZnW7vbd23Ag@YzcH{sMqAYUoUuBF~VLmvfdDT zggVo7svrx`r6;2;u#ZYtJ=#Y$U;pUPl}rot#9q|i9++RJO_;H_YuFayqg(Qjcn?9) zV@S&;0w}PoCm)y8x+W?WDD2kOQZnYpF~)7$4$BKj2R5b*-tEfCSxz`%xF2j~iZ7~K?9&!p^thLO4%1@41)fxl!wslRIzs#_IOrl%2^lqm%Z6Q!ENR*|8< zpJS4dBIL~;yc})h3|JvH;zN3B0ZQNNQ51bdFZ1j2p<_7GXJI&cLiQ}IJcdUo$DWyQ zy_|yzCe)CVZlw;sGqg&be*Ey`&D-zpKa4-T|NgD@G~y5xRoXhpCL@y4eKxcVhW=O> zGu7-J(NuF_qKxknELNI%h-)6U>hax2_DR)S*I!hDeA#Jb#5VG+$el=(i16{mYA9caj8HD3T=P^pgu3Y#BpS0rZWi@6r3+pf2@>^+EyxQ--V@^IO#ix_3$EZ?Rc zrCZB)EMN7x$2e(AKsq!1m;s;C2yPDcjLVW{pOY#hmQiGdto#xMyRGC4Wae-XZUIQT z98WP1mrz1rQHV;8#WXa)dR0*Z3!zC}Fa44Vq`{I=M$=sMyp|_gU|qzzAu4cbq91Zr7~L zlnl(zh?sR4RyODy1at4-g2BWTbGD-@ujNE9A&fLUgS$8jEfT2}+Wf z<2WP`A~VWj@QZN7DBb?Sv*HNesO-$wcf07q3-?Ud0~(+-O_|k$1AVBg4Ec!J4x1M=Cd1e&rq(al`-CG-=ID}wRsapf z+I#Pf$pxmajP%F_sik)ypaR;kye4HWCk9&hdA!S6Whiw!X`jA_)jvM1-+ucy7MPu# zpwY^e#s1Lzp(sKa4zT55r5LS^s8UuNH&R?si0%PGb&E8;xBx95ME!V~l<;--LQrBUs||;2SF-Pl z3X4=qhN^M{a?#voZa}fO_d2~}W+c$+rCndP#lz-zX$tZ^*9%%BmnM0;awQ_vrpO^U z-GyG1^;Ham(g2H%6`MxYh<_J}*X`HizC2|Ag*!rf`xoCaz2l(qj)PzQj{mYdrgt1R z-f{S=-|=5|$MlYfO|I5@?^nO$zwD0b9Z~S2ddK}={f_^#JEnI$XuRVA-jRy9Z=pj_ zO4NdLovP^31RcrDKhVj~uT2(p6JdE?WT7EkH)Z-lD0eCnzBE!lhAzs={WK4VE-Aff z_?Wbv_x(F`PARmZ7Vhru(goiP!i$e~3!ciM^evND&_Yt!c=ba6dH zkQvHRLE^+|>ov)@b-xl#yQqXVIbA~57u)is<*OM*bD(|_2LzrtqY6~W9~ezsmq0Q zPDS0BWXq7^Rc&%(l82Rfv+HV^pbR5i;&heDB~B<);*D@F?y^k9aJRZ;6PDjZF*ESa zqE#Y9#NJMEj4Yl6ut$r_vMHJpt^|r z9(|=y5c6tuaxoDdpeV|7ZjM1blv&|qdQiYrw#q%@4J@RBiIT8p5YJ_op`k*NZo}jx z;4j^!<2*l8PZVs|+E^67lR3x>(87(eIeGhV_4&tdP!O434Q1w;t=?=>Q6$<+#73); zy=Nz<_(T?1*p;CLt#h>J+owHe4vlPYFek0#*%iD-Ui{6ME=8wz#&H%<%{~!^nmv*Q znibG0kOo5}M=nkk*j((b7OeClA~dqZ1yXDGFIv!K1WdXD)85!CRQ-l~z#5kAe7*a+ zzc@U98UMN?4IjcP8IA%FNjtJQThgvnYEbJGqGlr`?nbZ;{l(jIkPt=z&BF%xH0hS; zO^I8!9|r}#1esWkb-_kM%H386WCH6M$qYnQZUtBRS|2?)xMsdN;(d@na6VEV0a_VG zvZz`Y;vn(}P{kLGnJ4(RB8|YtS3?FG!pepSYC&GYYQcS9QurF8R}3?u;tXk4Bt$bd3-6 z=y|A%+_FukBegccY_8i02A*-q*q3nKO|H&T(wrL^Dv)kPHjIRCmY9;#;rZV5_P7_WJwSI=!9$g{Qn`!?M4!oKPZ<_7Mb&<3z^Xa<2nnud9w&^@VrrC+E;^kv z(7Avj@T?(<9HwNUhuSAI;moBV?x-#kISQqq-oDW=_|BkTZuXA!4)Ua3U+f*(0~!I- z$5jML7fbaTx0w2<8(EXl0-)J6KY7(0te|oycTTPKzy=#dnzhn)BF7XlV#Sj(mQbyJJ?GL7S_B1pebywx_p?$_%>XZAr}uJ zJ(O!00w#fpQ7$CySWhxaPA-0wEIJe~Mz8LdD3arTKs4&WA3veG#ry7o&oTuH2f7?M zWFQMWQVOfn;|5R{kn5@6l~+)#$Wseg zTmm5%Z+5-NGOi9q7;^j&exah4?`@hCwQy!1R}2>-GMTyNry@UI7(I z9>AB-pfM-Zw@zy&3kFf>zS|SCk+MV9W=2zp%3A~9Dp>6tMDb@h2l;)?-e7tg=a{b0 z(@qMd-Y3wL!J9&g<}Sgsgqg&@85blTB}7ng5$d?ws)2JAr9sPc%pd`cMp+Ux672rU zHjtD?9hSRD4Hb&@YdTb}A&^5#m5f%})`K!QgE!AgVPHPM{m;?e9IRt9zP?a`5E6~2 z6OSRTS=9aL8H=tw8#22&PI%gp;_P%o7lwA+M3&Xv;!8 zfvS!D>`E0II+_<#<&>y~`ziP`qnZo3og(H4-h@tDH?k zNkC|EDR+fYz#tlITuEu3ixGQE!cgV8{q;$03!B2THTM%b3Dk!g(exD=2e-EEhS%T< zh*n0H0iF*t5_zel7wmiT7{mZY#g_7nZeDBxvjM@1QPMk@wOjP4DM)qw zVoP_jD6#dFa}Z{*h%r`F*fop``YiI7=EetqDtCDY*j@xE1=AH?fZ-ilK6CELy{Gu4 zs@diB`*$C_nu8|0?sjQVpqS(DWU-oEASQg%W9`!2y}g6oz2m|D?yx`X-+$ddP=^OY z3ajk^>sO=v!^J`sAnZf6d_Xw7G0aUT6HQzkI7aYGnc-WQYs$R!E-+pg9fHgv6{)aZ z4ZNgZNzB})ziX9%V0=TopEVxUD!_5?QCbyDOAsw+79Zb!`1tnWA7>vweE#X}`@i-iFU6+FK(1+bAx<{t=&iqv9?vSuzp6!uyIjIE$@a4-kC=q&={UKxyr z1>FrgHOpv}#H2j0S&RLly3R*cj8_As;j#kkmD&iVH#8O8yaH(jA)Zd*ms(w)&p^r1jL+@_h&c+I}f4JM#owh;wkO!qo(Xt z0Bkx;?WN|*+`3%O!NbS>oNg+5JA&~*UxIDd;2bS_+-sfDeZ;N7%fI^JD^MvSEJez5 z1l&OfaYIsWL`E2s3;{3edze`Q!&14HY#J|f;OC1P*XkD$*Y_CG8Cak%x{hmhHBFmPVqY783NCitJF6r$k zI*Or&2o;)+5Tr=i4S?SvRwXZ$OUC{ASwAzmad&6jZO~S76rdvt-g?+yLo$h0u9XnMO+t2kFy1 zt8j8Pu=nV*91w94%M90<>So$c&Ap3+DLR|et>|oW6zo`K$WolLXnRkP zqZSUed}DGbL*x-_Ai`k3H31TLiv*W*e2L8*rKzp}E==r5wm#dplrA?kI-oDY2KiKz zG0Ig_ zxypHj$$-w-FRqEtTxC2DSbm3&it3Vp3K2KGuN=foSvpa3IE{;hwQYk8A?dKjlCLMT zsq-GC8aw8xQv3AwmVuF^-|f>9dWedjKYn_+xPSlGhaV8#zy5gl{?qqJdP|6Tjg`BA zUkcTm07k*7)fDlcCNeR_n=$D{iDf?)5{S9XQ=o;FujBH1?<3Pq8S5vxg*QW$N9rLS zO0ZZ6BaGVkIVq2t0^L4J@pxha@6O}|$ium;*h*n5qv@8Al}I`8 z$W&s~v8a(AQ|*11HX-9+@pF4ut^!K0U83+Bhig$-4xS!4@9alHJ{_MoJtB#b3#N6j z2|dJZ7MrNC+uNbmLh3jK3hw;O$o%5S*BXx)uU9==Tssi%i|FGR4jhwi_%b{YG`#}$ zn{p5(9@7It9(a1bJi<1`&v75WjihsS^pS2&c8g>j>9)Ffo-RdH8NLp?o8Liu7GyRc z6)AFsR)jcaW$6O@s9lJy+J4*Yt-R6=uK9L)Y)a5KR%yGdk*Z*K{Y@{bhT3We*R7bslGI`K+;YoGGzd1el|P-JeeTed(M1Q1k0h;C1wY?g6Y zU6S3j8IQ$Y=Mr)}0|g6`#VN*@U(Vds5wqnj=d-FZzps3wiL> z*=*X3S7-ojqNIjE^0-7!N3Et6c<5&OF>1Cb4I4rPn~B_D7Ur-lOd{SzbpuqsEP5|R z2D5v%&9v@xN*RTb#dm!QnXT~#HB9g8bd98uZ_WohHCLGyMO~ah7|i236shtG>=_q$ zI?8e+!lmXYX59#xb5%>6tEGtn5IjLZiri0H`N)V(Ztza4uorj=cRry}6??@O!{!;~ zGC?HzgXL+W7%H3DJgJ-TlcGdkV@fMfF{8w2mnCb{Tcv7rr5M>&(lxxpJ?{l45;JnF z@H{4sJvS5t9S3HHm^~orlA4(0`pNFP$k07Uvfnb zz7Xgl0SbXGqxJlfi5WmBB>1ED=h+MV>q(N4KG6I7-MfFYyh;2*#v`+cmy_4GtY}m= zPyX%m-|!aCS(1H+_xZQpfA;>*4{zVygE&)W(M7n&i)|M^clwtu+(Af^VKw&L8a8rF zJcD~FH^DJGomqt^KTC0H_2Ki!Z|{x#`P2`W=E<^Bb`%NS7+}1y01G$BbIH;enWa!z z&&JLapY%8NhO2a=lH#XYeNOPp)~u&a?h!a)vH>C!wne5iL8iZFsel}Je|vA={ZLgc zUB$%1+6`YMvH;^&NOoM0N7!`Gf3b|I9W%>}R6vEATDTYGW%^h^`cESD3&yNS@=YMk zFvh0z!j3*n38ulRxW#IMVka#8jMG%ITz!U3EYxTG^t}{DQUol*329{W%hDD%R-RY8 z7Lj_MOl=}6(Pz(9F~*9~(YAbjay^Awvtgzz8x|nU1(Man^WC5KN27iI4>^Se+)SPJ zHz~Gr1A?)2V>7-P(uvxPzqFmUp_)L8CEF_$`AYT|H93x}u6f}EWAOdoA08hb9K#>9cXTiq_V*9(e>dDcx?t2RJQxT% z0)4Z}QxWu}jg`nVJE?Tg^ zg4h8>;VeKVs!JbX<8190C&mASEw(@WoMNpc@G9DB!k@OFv}Z~v1Br#aHcUaBJn-#H zXRotE#F3psuHCTyr=I2U>u$6N-zXCW=GSQYL?%q`aK+?US?>UfcwU3aM&_YlO2!Cp zs_E-~O0N>CW^_y{=d=m)DNXN=Ze^(#ryiN#F+y95S7UIiQ#8a7du0cH9oTs?`Kd}> zFU~|!yuq_VMn&fp+4xd$G?v5?!a-9~(OlI2;Cn^|p4nAz=j+PHZm<4z4=v!iSTsK` zF0@qk(-%tiQ%-k_q%lttPyuzSFp+M!P3?3HCVj1oP8q`|1rbmf#WmjA?GbV zl#+2&yF5bzzkj%|B1d+7v@LbI4%722V$?QF305C8Zki4`U~~mHat7IS6h-x1Afg9pXf! zCdN0%t?p z2Ie&)PV`XM5v zN-2nWKOZ8@r)xvwJQWG%NRY{u@>+3PZ^2pxrxP}&x_tZo?NTi>F=ESl={Ne*`kJD5RCK5% z9fM1_4>4AAVfJ0R1fZqU1(52~r(?~AHYV+dG$DF|Vz`-0m|mX`;ZO@<(=VG+FhCaz z@f9%pq+7Wj+k)$M(Z7deyD|nimmr(r{j4l$H3B4sweH;vb8B(TNEaEu+|Y;78wAZm ztCqm=xw#xyrBHX%v$IiEOK@C3B@NLHs}_5_u~#U6HGQn*VjCU ziKb&*`IL=^P~pP3JuZU4HJiSn_j6}SUxk{)q>cNc*M3a0F_pvlz8DKWgWM_-{YNigxC{}`ZiTtYhir@C1vOdv>#6_5|#xq3Bp^KxOfY9$lfPw&|G&-bT z5AgpL;+(IbN?_a3=D~AiQUcG5G(c;I+c$-UJ4=Wi4d~>mUg48D5*O>`9i!SNo{?qf zGVZSpY^!;W?v+Wa&;o^`c)-<(HLzUqi_9#WPVpsS()x2LdGs>3ZNXH94r<2aYSq{x z(jg7tdjn*32#I_?*gbd{TxtiJ1 ziKS*el@r<9_b8JTUU|0}j1luGXGU-5|4|T>4P7V1|Df@T+ZAp#Ah_}UXq35Fo}un5 zNVfeOM*jM&kyvcdV$(->W|3;W%P36KcEH=L;$oi#M`37*?dtlDtt>(m;0?S)r9{q5 zf;`aBEXYGLJ`2@TQG#l0!2YI+i;o2tUFl*Y+?6{XQ9Ya$S^Zh*;*MR z;{rngM@12n?@Kpf@v!az5-`}9?!m0vo0E_CcYhnm5TN8tH+`HSU+HCK4N(6yc)dHz z@)lNua-8-Ql~AvtFG)e>%z;P2@KZS1MS#l{T13D!i#X4yNky5Xdw@wdz9*2}ga>+* zyWN&lPYPk&Do$W=&oTi7M?tlN;P%F%iNMy0Q9ykPN&mTR(3`#~eXNN_MQ?dU~tDBFlJ>FT^RIEFk(-Ys?! zk0a`Ve5+$ySWj#{es}j&k4GZl=-ppGTz>fO9!sz~2h#J@#o1go5FUxwF~u2sTypeY z3Z9~9ne0<2paLroS#{$S^RT+&5q+vduId`13D=i4Re09nC;&;d$9c_vCOeJ~A^K@C z(ER;%G>K}jcx#BQd#w|5)gPhT8Y46_>zG6A+t}` z!G-m5)iB*iyD!OOG2DZMYoNx6jY7m0s5N~2z$28?3 z*O%_QYFi1WdzZpnzwE)%S-&=!Q0;D=V{ERt@r!uYQD33GR%yLC7uwDqM!*R|0(~krImvUdpp6%*%`PnD6DaLZ=Zuz4*Gn|B~O5T+tn# z=LFNdXIWc2wG`Z3PORi@dAn+X+Zi&HBPbuX)n(*2eEKT0riV=_pQmT7m;Hmzc#BI_>av< z7DtJ+d)?msHf2u`Ew&a3?>Qu;_E>YOB2GQXlzYW*-9I7!SiPuf%x(bn5Ue12P^6f;*XGA?fmh%hsQW*OCMg5{v^$UdN)NO{5MMe_A>4KGnm)8sc`+Qm^al`*@3 ze;jQ<=pC+?j;gSzFJ4rI^^bM4L-!b6?tJ6+8nN*x*i_kcjim(0o(6)TBIpyN20%~h zPNWklf3%+H3S^H2#vyJ6-d+^5a%x3WC-)xP>=L6s!UbrIw?f9_#_YKg4U!#ml{;Oo%Wmz`unA8l3F_C0dUB$no&8HfjRe ztGK%ZEY^Ex;Q20EV~dzvLYPMTG^0_xadw1TLW9P73u~FMV6D7s3?PbSm~LctfDslL z?0}k1Rkf}O)g?xVJa$}0Z{z1qp`5uFaI{oPm1a=8S&}0ItGm>ky-wvv?-e8lityQ% z{?h^#-=+A;#YC3Gt}iR$x~!yJ?W&!07D(&R*h<{6rUD6dokVmF@kzW`kV$ng%YxEx z9TRN=ux^-dH>cyqm|IM&995uN*N6i|7L(4CMkm>RkIImweEssNX}6tijMJNQ)zJA| z?ktFEK>~Q3d|G45jeH)NvqBP1UN%sxhUw0g?;epu>-q7qX^Yy7wjCishmZwsg5BDZ zvDm5Gl8sm-fkG|c076+G?O%-*u8D)Lyy%RK0(uEbOxz=iveC>DRqZn6VC|O-bf1Ej zMb7tjw#>$Xl+&;U(a0835qHuR`f^iU$!ZAHlXMy`gZG~v?%scU|Mj2n6)$>WG>4GQ+p^zPwqv%LR1(u(e3@3_Fsvy)2))Z>kjMfun=4t*J01UNZ?%PA}= zG>90re_P{}3nS|#YQIY8YQQwUiy(yEYe>Xy3TEDau@Kc1j$-3fybpSe5ClRt!wjX- z_;Q-u-at!zt3&ioM(wO9pG#&i1Hnvsy$G{g4O~NO)w zCqvF@3BeR5uUEhjw`4}#Ts}lp+?J~t&5=q+KIsC8*uV6GT%7VrPq08UNC7s@v}V$H z=_Js}XPmWNSmIdm2DH-4$|#YLvHYR^-r zWh5swsai=}E|*n5B*evmpBD(}jj9Yg&4N%`UffL|#VBf!<1#CCPp_}WnBc1A?k6-L zKzqHNuYSM0`*HgD{kLCHG_yq^IzhTRmSd-K%RWu5xV79Hio%^%hxWgyN56(Xlpc2YMNmWi5UM^h-zQ=_VM-9?}h{9!ZN)Vx;uG8 zEk=|Oy)cDrMIRzxb8o8_KX9lnu~Hf+Q2=i?PC$?+R`~0iFN(tLZt?#0S$zN>Z0$Sy zXR=(xfqx!(zsF#ijen&I&UuNu2NXD98EYwq5sUw;dPMPd(DZ*O*Pb;{tj z!bl~OH9(sGJOyMgxb(mDiHeE!c2+r`_3@%rk6rWF2UcRG8M+X+SGep%R|;;LBZ|5^ z7VpYju|Ry&DH^dpy#4$A^8UvU5BIlsf4l$ulVphk2+KtY4q3ErM&+)`VE5Ziem4Ew z1hC{HauD@!d)1L|Kb2x#ouy8Vh3%R09sIxqYDHTD%b>AsI|djkFuN0?LYW9Jlu^lN z)KGon0mq4MyLZleA;ppJIm%$VTy-N-*o%n~CGoVPh#iINi0@82v%u`B9XqV00wM(~ zK$|r8GFEpFs3Vy~cc>zS%{VLYQt9mw0)7n-9S*TUY-MDYLb5eFKuN^Rq%5_pVFNBf zntRfp$>Pw$m$o!<%uro|dxXq{-du^VCaYcs+Hk19QPyVlvWXK^j!UR632}S*dVUpM z+C-j(K^EK(JyAz+%P`MM!Tr0ROYX^?cv{DHUWLt{t1Lo84NCW%M0*M= zpy(+mc*bhTc=4hloSo2PrI{k=4i%YJQ8Beo{~U^9tj|!RiA1@QJqiThG6L6f1Lh=m zI-%7!&#$d5738sp&vI$bRDHST_#Fd;DUjBozoL-N$(u+4d0a|QqtWeig@B~=?#L0I(w;Go#Nl9jLYtN3Gz!EeO071kc`W0BAIrp>8X00adagNfNJ{hS0#!d{ z(&4_x9{{C8!_kOHM09zGQny@AVo;;Huh2_Zp;;egQ$?w1n)sw#f`(N;RuA1?bC;hMjR<_YnC36-Z9MNSh~F(s}=6cTykHkOidRBHC}EA}m>s zikxr6B|>My-}I6BZVn@U3-0$f!xgkQ6laKQT;d2u>_B_(E-Ue?Ehgeu+C8VUC0zT+ zuds3&qQn$rPG+ZSya|LyJ1A*`MPn4X z0!1qgWHLKhu&`jf`UnXP;ay&h*6?pq5TfdpDsvk4(?4abKT4NiLVG*h6eP7ZL16qw z)5f}Ol-9+FMpdZ1K{YCv8Se3jc`zZXS4YX@fanL07s!bjCBu%@0499ET##mZ8Fl__ zAd+UJJxDh&%R4sX$*O1$YZJxlG@vt4O|KtBr^mX;;c)YD3P`TSDCG5Y&XRSI3vsh?11^Au@Nhf z?p!{sYV+PV^I4%l$ZH)6gH^}UT$Ryjo>o+yDs~(flD0}RF~)_$qiC5hlF(Bq2x>o! z;6Py=iSd|beX|;X!s9|*L(3apEUc1N&dVxMFp$3h=^KS`*mn>S;jz74;$NGC(wUD1ntsCU;Kv4+qD4%A*cf~TubK4tMDaBjfU+O@T#T{efwn7Ag=xaXKLNdAm1usyFhA*nBw4Swyl}M_l8ET4;)^fE+V4~3SKt0c9 zEChmZvVpcR;?O|O$DUYP`tuoZB#^!yd%7#G*-R!xf7C|9WI|Jff{c(fbfBYZt7CbD z;)RLDJ+K8)a_d66GjYX( zVHm!V4|Q{dnZbWgLCBM709g!g!m(_lsp{*VL2ELPXtu{TegT(tT`yWvK2&N)4Ygt2#K*#u2D_ z@bA%zX2c|1-K<()Yf*IE>pH2`<7_Z65qcu71`^Qx8KS9;V{#$e;SGn~>RncEf+zKs7$00P3mi zp=aIbs8qxDG8tJPy~at-0I8!&1`VFTQG=MO^&C@{5H)2McT_if4Mru5cN16_ zTyN4rxVVU>tzm>Aqjojfoijh*_Y~I>M>IPsn&X|$Z^bN~lbu=>_BOz@PH*Dt!Mt7* z;}{>#ZO!L^@U#WE?2QRt*x`%gmChWM(zUooQH2@&a}!j+VrlEd0t`F42WgsO?}!s~ zTPTP%X%qEnLqoiJwA*4XULx%f4Y9o&>6s?DmKoA~M#|oFu&iAQ7DkoXRvrtkut;J9 z+Iw4CfCN`p&LHW;UZ`bSZG~hbu3LXLVY<2U>!8|=cfNhz`_`6|u`ci+m|Cj9mjiJF zsJiEEqqv>b&B%SjmffP(6->jW_Uis{65$NY541pXoum^fAEc}Wfm%@p2Ew8wRd@Wf z0T4f}+dFEytJqOl}d zv3eP(XR(|h3Q1fBum` z541ySoa)X^G+zezDrvPP^P~CY78?Lxw*ie%2O2{{FvC7MHu~0(3FK;2?0I{rUVtP? zZw(nAMHHByEm^g3j%lYfa#&Oue4)ao@IbXoOJPJ=*4E21Ri&kj52)n7v4D#DOLj-L zyEtNz?9OATXkox*k`&rtGlCR*1lhG65KQtGjii@J@|F?4K&Z$*XT3Vhz0X&1c`8`3 zIHlCgHE&DJbVfoV$uI6XJv(lYrZAFzR`%sc{*kd5?}+t>GkhBobwIV_ix}pvJhAOD z%mX4WF(>7W`_6$e&F7TbL~Fgs~DPE&iETNp}JRaO8QZNmo0Iq4cBF2UJzhTPeuxcJGI}&N{f*2 zp}vLDD*OYS;NGJx68|zGr1bPOKzdG*6MmE`FdkurC}$mofR%RFw?Eu{bZd-aV#358 zGazeBPGU%0X*L~raU=1lL8^Dd30=NfY(>A(1VO|leRCv$GmBM%wuISas6LX>Sg1FO z7^~CMX2fj`OG_3>HOyp!Z`;&4`Z$;qZ0Bq()<|YkQRPAug#O|uUD?Nc!dV4pRyNJG z*#)VVyR=%ve9I77z*Pn%f2u^k&UO;KLMD+?rf?}?Kq*1=I)%lUXjTjT5P&^m#)O7K zlH1F31B)d@JIi%ROTUar8>POJ=%EhTOEx!rdC;p5ZASTxb>5^k=g~8jH#sTf5%is? z%VrJau#s_t@)OHb?aM-+j`SES$fS<1r?;c!6mvRNuvc=@;9@4yR{2Cm84MEphjxu_ z3NMpK0iru%vq1VJ_T_}d6hXag<7(?h9E2R%-GLC9GLb`ez8rNc0sZ}w-k@?Y<(rn6 zqk!B}XRrue6WD;vbm?R##A#b}b@v1ydak9yK+aZSm*F1jSoVkeZV#p}NMBrTz9a}b zEvaF}$DE^Nz~u&g2ghvo$iAoF-o3m3=)A+BleJ9o$%7R*F75T8T__Pbq7KrN_^lu> z-tLm?RL5};pn<-1SXf&gIWeRu?-&fh;4ADI+`V;^=`QIzwNuhobuoH-S+<*zuWPzf48mp z(nl@qFD=UUi-G80zL+xR#pwweGfd!PLTOT#)adQ~{&;WqVEA<+6t#U289eaqXEDE6E&ylUtaXGp{T7$@#$s!5QG>}Pl#o3lJ-bk?5A_0M54*s zK_go1zY)hI^GX@XWcC*FdH%}LOki?X*QjGMqoWN@J-k;)86J|lT@0xQ_!Ln9i3kD9 zj}jB9;{jF?5CA@jZ-ux7?!j-Q{9*OEK*1*n6-;r5Fe!U2Fs7%X^6>!+9~bUJ`J*H) zlm>B+XQ)nTP9^EcH-|Jx$fGidsFp51fJR@NF)42R=_BZ)By))bnBiq5KsP`l={%=2 z_H|wHwmh$aE&^U(Kn7?na4)Ncu|SX(yT@k#mE7iA!(GI~Mx2E8=yEY^N((Kp-qQHC zFGBx#u$~WgJrja43~s9ngyn*mv7{_>mgS0w$NlFYJ6dCSK(4%3h%)W0n`L>rO;4;O z%tH0ctIcp-=y+xwK@uZ0!szkb|2;lu_jqu0yuZJDc+?;4-+z5Lr4G%@Eiweg0AQ&+ zbF;rpb{M`Zc5FYuaW#|!tOz*UA39guHUv{u#&B&L=8;>Bh?a&q9?hm^D5k#2BjI&r zKr=rXVii!+APJJR3sj3Z#2W6UCBzDbLmetF3`xj4P^3v6pA#@cabT=f;2nMX$NTZS zzs=rjzw9%nndW$=nUzKGtu2zNqImm1Pv$F+iK4GhySU}8lq_3-Qr$4~RhpdxH$y5u z+__7)*yIyVN>{V9NQ8@i0tjU&5CoyYkD!mB`e@(K)028>5b!L4s}Oz*e!stsSzkFBDs|4pt`xlci8x$-=gibZsZCs zG{@Bh%j5G><m|OsLEAC~5B@Dk1wqS5w!^bf68WHbSLytdtoo7Wy zxU;jJFTD96HfH#PpO0vp7M%vv%ASAhBp6#(`tQLW8{8ipXk%0NWlSn|(`NIECV?yt zv;wv|;r8T|M;>*<(+OlSSvN9;_w3V3mVY_owrgcH#%bb0;$gSeL8{ZkAeu~4X<;eI zJGWGn*%K>I%pj=g#kce5D@dF~+f{cdki`2glxOs5Sr(;65lc}@c)wU5 z@!okP17rxRcXxlk->mNc_h*#4eS7zAvt|+fAKyOE2hbW+Lbpf{EREGEJODt{)jyQ%>b&G!q zmW{!^{*4MpXjAfBCO?{Nstma=6!$jJc6Mw?*2w}XLa;|6Uz2P*H$!O}SRohpAK(7;14y{H zA_U&RbI&*s6h%C+C=h*|l5HvAA8t>1Jd8PJfORR=Nn4{q^4jE|idcc%(BDv_TGt58 zt7b99HFWpJFh8@Xx(n=KvqzS)Hd;Q`q*aQEXY|(rUVc)e^$IW!pmRs#txJgBR{Rn2 z));nkMf=gd%>&)Y;|`%HTVgkSY!@mOZOR9RE|An$PYfTyn-G$*vY>*&%&Sv++|LWh z0A?&0Vk3%CA-$2k#r+wPmRExGki-(o3devrcLc3YWuaJM6OuyCL6lHNZA}ng5LO3@ zQC=Jf%z|>NuY9g6r|Ko~hT*C+Zr2>7cil+!G4vM)q{#<|Y^-2bACo{V>B93;Y+KXB zgwQ>fH-Aj5**3)P>!Br`Wrh<>Z_2d{VZ$pkM{aBl(rD3Hlj0!R>&slqqo9u!%%oM4 zVqNyeBxiTEVw$<4Da2XCHy!C-HM>Qf=lTTG%yAEDOsT+>H1Q~!*MR8@D0O)f%Nq3} z6*iuXXb=@t&RYxv4^zyAn8x0EI7R|?o=QRj*x|hjM&R^3%UJq2ri)``DD{% z05Pkk2{zXbGF+)PUt6R*Y4-%+!!!&#NM8Ov-g#w@LF2<~n7%ww zDhaPAhynXcd%8;b)`$4oNVeW4Gqr(vRbUm@E7MGC7A#;H)u-cwT~yLLRK%CL4kZ+e zRfK#IvVlt*+{>J5NC!wjpIND(WFx~q2_~SvX}Xv!!MdpN;!u2GD;e)it>JZ8g>kGc zQ{h{xYVphEWISun?e;DwBf0D1FFi2;mNVUKzWMz2-NW1Wn{VI!-)FYr78A63kgNXa zcyuy8okZ7y$K`8GN|N%D6rKfafPtu5rNVDr?5rlp(YlJ*p^?Lbw&>+<^wO(_`c^1L z`{%Ksr_Ch7%j>;r-(L-I)RVH@{oYLwN_xU5j(7`1%FLNAjg*Ti`avR}4_y&aEOv7~ zJ3CKLc8~7UF4EgjU`sx6xqQ-*kjJ6 zKy?X(Bv?lMNOELqrHSpXxr5ZvRz8qLTXCj5(wmV>&c=+MM&QeGbcGev{R+XM0oL=s zFgLI;#xg!_GR-7uVF&sy#LM~}JdY@S86b`UB(bugi>~Et@FF!(Y1+UcB@x0-n};U> z9WKUycbqqaJcM>LwqsvTVAWCNC+a9wl(Mx3VK@Pb1*C0 z5T!j2)FJ8M4wZyggy1xZy5yXkknPNxzCSOSE^p}W?{}}yU*h@K2)Un{!h+troK+R< zhOhwFVf0vY+^c|^bduQ!t%*u0H1pSNq!y);$Dy=u6wJ%hc*`?FO(=bc>P4Ik@(r$^ ztm(vW->|X6{X5i5{SP*IXO(pS^V6M>@o7`p8LjxfrngOQ4KljBOy0o3Vq1G~(URLBXzZy3%wTAm7;6=;x;V zRP*E$cP}npKI61N?pnY7_HWM82XHq*^o3D?GGr0OM*Yb_x+hDp<8{%P4mtZb2w%Q3 zn{@Yi8FqM!*%~e2TQr$Ww}k2ml@PN}A!gr%7-BvCkl34?fw)w}Y{HmfyDjJ7)nMIK zl+Cpu-*3?*);Ua9&UOLPT{v;%#FO`T-@LoO`R=>79|o5n-oJhL@KNXj7|a_TQ27!f zS{C}JgsL3ypMq@jyN0FGHh>)Yi9i+6l(+ys9NLtO!2@N`D+Us-T}RivvUb$L3YyP! zbbYZNp|^}Cjm*i5zu^LOpY^Hquq}Qn7#ab3F=JMZ{xdh1yI$O@0hrBq3wt*r3Yr90 zG%&&q2KET!PP7bMi~X-x`pp*;ZJaES-gdg4pV36@Z=3vR)GQ0I-kCcaLF(H?>o!n3 z0{hE$*k43?$ z(DJAPMt9btD8(lKPTtuR@W(Tto8_e$7Qt|hJ8T^vNqJ8lf0SIl`I(QsPygT-Uci z`dL1fSENu47RxDVyl4g^9*9%PO#{iJ<+`zRLQEhO?_M_gEJ7N0ir>Hoj6~C1Ne4{S z=SG*Upik2~kH+U#k<2>6wO|ylXydUW6rqXcjnD?dVvIV1Xdk+QaHD#lwE5$u3lkx@ ze6kis<)QKfUc4BMcSOXUqsybiB8arUed}%+`5wJngp_{aZW%Kly&Iw>pYjQLCp~(% z!>8RX?}10}hG@yByc+`_pET}?>(GDVLiC@w68$GGMgNIwfqn%~``#zc-{6V!H+bUw z4W2lEgD1}4;ED4$c+&jcP;`FU1P-2v&IL_>6rTrAT#(@t7i9RP1vz8k)u)eq(&Fi! zPg*{We9{7*Ef1dhn#eSG$_nz1PkhOP%@f}d1uviWXf%3z>cA(yBSg)o-Er@!kKTLQ z^nlTQ^OPr#&-+gtH+bT>;SIHaY-H&n_%b zo@G{^kvIuKD+R%|lhOku1q;S=YN02vG<(1lW!Lmd`+TL^P?k!9(_VnF5Cd7qzLZ^i zILBL*=iItYs|++lrgH5^o2arbusYkAn-2A+ zmX$T9IISt@3et)0o3w{?!S|{=c8}1_B}`+6;k;!rIxV`4EYcs5c>!z1!~(BW%~Ph= z!!jkVP*GuesX(<$=(4KMXJ(p9n1|pkx-|Vi>{u2`;cW?B!EeI!_JzT~9HwDa0Tzex zzy_8Edbumyd=SA0)P|CYUITQUFj_`#*ll#cxm3M(RBdrfG=gA(P~3xI5X;I6KC=b3 zfED;sCa7n)LeU{w*5gurQYQ@Cy{N;mp1?T)PpIN!*URe(Dx)F~)1FM*4dV$0RE$ul zL|Xr336ot=2{&fJV0HTT6YW_x{KNYPgqJPv`8RsQXaQ-6M6>p0Nmwpm0%@|mvO~8w z30OTW(FSj77A4WJ$7Y%&$|&=mucqJX4%7bsZ^W{W^s#MWX4-s@#Kz zqk|?R00%U>Rpy5CntNSZO?C^rU%{h&0t2c{E^#0P6aBG9%*UO%uzQH-6IsUNt3U`y z=$L`d&?JIVyuZ9L$9i&P-XH7HxLq#PB80^}=BV)u)9jP6O%}UuD22%dXL~!ccU!^) zjIAe|cHArD)CDTm5FO_xFu{5)JQUE?y#~A)ZBi>-fSHFAgofoNTC@k~&J6ae)A5Uq z(geBL7ffDx4tl(bDdxSUf@2K=T*N*jaZMTio=s(k=2ukOpN9{K>;nDpn9Bv@#1>=V zZR@Oms#EYt6dN>yJ#<~lBLi4pUP%QJ+gD^FAy5Moo4*VsvlWqDeHls=EK^uF=mfJ* zcu|?pm_#LorsSyV*u(Bw-Zo4xF2-lUYJmgl4N`e)4hQho91bPVQS|c7&b^ixt6bwE zF!iZG^Q2*q&j-NJ)}CQxac7%HX!9*raoA!NijKnsH;d1-Z0+3xve>Cmw>n1M;?VHj z9?wn`ppTb5S*JpzbfmAfWxl>DT9xc~wkoNIm{SG!Whg>3r6&B!2Gi1kcCZ)bfCkNP z8auRx*>J2DV&P6N`(UHq&2NF9TC*+ytCEy?y9+d_J{ME*+7qiv5*6j8n|*cbZYAf@ z2$_O~7JnzVg#V@`6)(l3I%!NJODHRtlHrLmsk{8LM@e$@lrfi zKn8PAH5WL~Ik-#}38g_{zIYV)v+f6X!f34&ri?5aaU9#l<&!g@Ig`k|Mul)F7DcaI0tl|yuI2_q_) zQ)wH;X$?cSFUIIGn~Kq-CvcgvQOI-&?#Qw*)57aVEru`1R@CLa8zGS;c(mt_&_WLCNv0sip)MjxCOrw!65yk zrD&-A)ZBoKUueA|5C=)Cg`!K@)5I6gcyAQ+9Twre-h!Zk!De~DD&`Iamb}4cMnkqV zV({Bgez*FR-j8I6s4-nhq_dy(s#xuBW_-wNfmLl}ht-niiR6uP%D4IuV3Io@Z+H0X+)hSEQpw@PKb$Z*}_bGP8fE{Q# zXh$jysJGG=St^LVEC@A0zRr|P@xQvaQ{o`&1<@0_C9R3_kVs`c3tI*ilfe-z5nkcB zD|aQLM`eUU5c5(AxY`jNY>ID&TWMyo=}(o;icn8*y)@eq#ax}hwK|UCe|2p?PbW&b zDJcQKqd01_i7Hq%6A^O}9w*(5PE%wC(-bB1+dfoCAtPm)N^=6_R3cM$~qDTvqd|`%^Wc+;4f^e!ATRh+0oxBG~mB5O&ksR5M}w%sieAY62|o> z4G!D>lLikVbyR}A*Tx^zsXTGk2mnwE+Z(hEkqEIpBSN!+X+lW@FVdw{wHru+lib(`Cyod!za0^rUBFi?Fcc*f%YK3s(XYk&NLeAt_s+oq6!kK>OZD||FQS~OcZb(oL5j& z1&?1XHQ%XAO_L;XF$$nR`Wp37XJ=QFQ&liPmdWjMww~yS6#029vi)Z?2zO(ouf(I$* zViy;}A1RJ!Q}dNjZIr2a;H>x$&oWh_()Ev+oPQL#`PB5qdEKN}HwA9gjP4wxFG{3C z+I6;67=?0N+%`yeAiEah8u#)~eLE2!63ckJH=p*(1DhG!n*EL92N(y$o$7}+!bzR1 z#@i%u2kKS$jL;sy-zBGH!bbQyOheR=0vARGuPE5FU42 zczX&twE=m?<_njXV>Gix2AZc*^$(5|nx==?1Ly~ut=RPfb$B4=om_*8(R?oX#(qG& zDXzGhqjNl40=ehDYm9nxEN{O&VspKmKQapHCQ4R6?P-tQ$KGeIrv;voK$5;O9pb;N zO^#}9GP5M;)TKg^Ig+AicmG6Lh-!M2%Qp~lB zA413g*`6jV!B|-9;CFE`Ms}!cQ`J4mf476@l@jX~o~Lc?ar{jYp@!Mp*n$p@lkEUM zHTi2wo-h%fpdj)tHXXb3y@B%s%nrUi;35$dMGTl4QkW$DH};~#E0bggRML&l2?#it zviFjg3q@Z^4VM2KmotHo0w$jT1g1$}ts`6c6CDH6SA+K>et`(9U-r!s3|WV1KJLRg z3UmZNOvf6N7^k=A zV^c?XnE$vWRt%?w6JHRMBt`o?hK}wM(RO=46giaOq+xn1SMU~>XtsqH1b@(bQKzSs z&s&cCm`f@sxDQwMov^^RyO(TQjjh5!LuJh%y6#^R8U$E1C6>y_$1JslRpU}sc$Of=P~5aS>neD?v_fQ-EFMc>xm!;e3G zy#MRJrFaBfnlxH#;YuBh7;QI%KKpNe5%kEq>8p?2dfD|Avov??k+{u&_WsWgZ{OX^ zkz?8yY;m%A^yzBtqd0grB4C=ag?x*QN8@w&b8b&ISGS|y5S1m!Okfg~RtTi(@8VZu zvb)D*B4Du(2xh9(nR1_sfwo1vO4w)#VZTXc0h7v19>nWGo1jtT^n7^)_a%Og2l$-{ zFOV%YA2Jg#&A*{NB#=J9O^L}kh<3bgCNvXbK5{eSmias-J~b>9p*id*GxXv7O`SM9byP{c)=a))>gT{ zU~Dz{LQatE4Pj1O0Z3jFoX7TnmWI5_W}uS4GBKok0InQO(WQV_Mub`3YfVs)`T-(l z28q<$kw|^e5wLL7T5Ve>LpAgUY^KmMhVlFqb{coyrDNUF>hqk8#^`6Gt}7^Be2a|bpYMuT~gW^%nfWMxPc&eXmx78H!;wJ4e!+D z2b!C1)#&gs)yROldbYjE4kGRmNu?i)dh^xEsySxT?P>XPb;Ho`N5=OaOL&t#f>tQSJe z!$R-h9W~ho1}%4{!|phIob@xV91#{_1eecQu!%!6)2YsmrgI0yscd2;<%@v2oC4PW z`QxXDi~IL~efVM1KUlNe;P>|*KPAb49UURdp25fgF!=XsI$5q17}m(^h6GRclt>lY zjPv99S}rhFAZ-rNfK)k^&g$KtRs1pNdxF_uP$ro$7ueh&v{4U|YdS8aVrm##*R`ZK%MMZphh$(?c#speRZ>g7ApGVVq0{{k{{@O~{K zkG14G`Xz2Fd*fuisAHHYlxK+U?^2LhShs-WAdTiM(4(a4vGD_3tK+O_1oe2#1V;AJ z%vB08)ro?OXZFsXiv=LDcbpf!$I5g@lGu5@p7x@wEYo#ZPu=JuM?IL0d3wrX9|fc7 zgk%4~j#$NOpl}MrhSPBs7GB(^3Cf{wP^^bNDc-V6(Mb(Fvk4hZm*)^hAP0D;cyYoh zE*9`0>}E;7%k-fOTvyjRVuARhs1R>X$DnU1*`*`-#g{BcMrWpPM2d(FqmRUNuHuMd zx>nps81bx%(#j|7-rRF$S44W8p$dhGE{s5UYxn7da}0%@EY0hHu*$@WU~T3s@54n1R;Cf{M{P%mGLSVxE0D*dA)k2g=QLft2CO`ojdgzjbZA=Qa%8@Wj%nqaAo zKt2!%L~eyMomKtFgU3wfm_eJonW12Srj#;B2ndzu%ZWpn;x;VJ1_jn?Re?>oJB-Bf zg-rG$ok|y?J4`&pD&Wn=!^LV`g~F1JR6wm9h$kye_QT}|_uZ$y;DOzQ1rPe_f zS_`k<7OsZ7o7b;|KT~zv*_hr0q#^pd4?RM&2I|d;UL=gGlV&1;YjJ8>+rFK=A#k!#&!(i_nyast};a#{tEMWBX*G(2%Bs&jp+ za~?zjb#7nUTp_t+*_TPL1t7`3IBybAFsebkxi4D9)IheZ7m`fHGh`~v)?!cY6YGD-;hUuFSn3YlN%{VHF32*6|?Ibcg(ns!7hFDEGXjR=!7R4Vcpd1dzd zgO?4zOcFxD;So(h@!UI^7AHgy?DKcwa$2aBZkCYzghu%n#p-zdA8DLM%kViAJISP% zGnnid&jZVQME0!4mz);$yQ3dv@_Ip$@$3FB3ZZ15w?2pS2&I$y2H7AI2fgYpNe=lR zD)vjg+cm_FV$?NAYg=k^VR19H4wRi#vWO52&Pf|ameCOQ2#wzK2I>r94*|s&NRL4l zop$T$;qKw{r_IIvr%(M?pYJ|C+<%;Ye)q1I;6O{%nYutAN&gk?gOeqrJqn*D3b#eq zTfGCsM>cap=zG|d_VIBo8e33lNi12aVSXnIsrk93-C<|q_KHEz6 zGWK>4kWfo;SqcJ0UusSMydcXiQCCCs*zt#th=cm(^Izd<(8l!|x+SaKHbyrP*&}hA zyr04|_Moq)k-``qHs`!~^YEyy=7yQ8y6X z&R?=3;Fj-cjPlo^k^-`Y9mhJmz6J9M-po`936_)bYURavJvUR_xs#hWAR>`8fhb%! z{lII`tOkkQI`C4ircIImLKlHA+M}tEWr$IhUwce+V2{k9bWqCfoA2(wfBXLa zJEZ7Gne&_bZ&^Ar*FCor+I^B2&Mr`Op5X@?g$J5IbJ@0QON&LkWl}wqHicMXf(-v8wGu{>VrlFtaPiWn^$oawlEeYWyJPV z)O+mDCfF7OXCcH~w)=Y6Sq&n?$bJ|vPa>a8h-OiqL<+(T@&X)aX2tdct!&J6>W2sn zBn=C?kFJPF@e<|rP|g}+Zwxv^oK4A-s1jl-m?b^3YKZL|uQkkWDYz2PiqM6u_)}t4 z42t${vX$40e;TCc=LN^dGM9b>LHv5+3tOE7dWiiY$q$;qlzFOe*ng!#cIqgbnk0FM zO~)n$FXBgWb8>ySv8!x9k(Ab1twSdFQ1gair!%eV7YQr8ycSl}0B1NrCuw{#G6N2F z_xF$W%~YmFVC;~Xm$S3w91$)202r)Dt>-QSs*05>uhO)Vq9VW7D z^FZu_{NQD4)AaoL71RRnZllZdaZS3cvnvcJTS*so3*=>f!UQ7oCh^?EB4e-~Ae@o( zTZoQ_m6@Uq)kP`x&q#`9i;5oJ0eL!*l13L6fR>JoX;>gLOG1=p4Vs0XOQ!>=W8`3s z@vhK#NMVv^`K(l19CTCyJ5GuYXNc25ZW{^^=HE_~@Ye->@P5BM<|AG8SjY!(^y)GLBpV>p z1>ngfcHe#abpP>T^V8kOyB~Kj5FZX`F$y;95C^C$nMCx0*6-Qe?*n@iI_#A}NyhAB zci$qlh1=1${;gV-k$#0<(vAiTNWv_*ppZtU``AxS0A83@si(z3U?h@PS`z(ovYtU@ zc3%n#W;;os9kK8RM-_N9mXZ8rWnwW60YHAx?ER;QyZ7JTfBh$S{-&|!Jj{pBRDO*% zuhYrJ=*{GGv7E0bN-syJRh554HMZIA-2y!y>yeQxL$?(u41= zu210Itm(c`DnJ^XL~JlqoG{LsB?c0&iR^#BoW3j8+Jo~f?pk+yl)685&11CPWOArw z$WvtlsO!~Iq@?3~mkI>eURHr95up2zdb3c09bJuXVP5GM1$hLg3S_q;$QZu3%C(E0eBicx8!RDSh8-hfZ37e91L_r~L8C^8 zwD_`h5DQ7OS&|**7ev^g#3;3~qJcpP)7>u?t5duc%tDOVLZzqPV!oO&xPgN5j*Re( zUEnCMVa=4|`@8S{F}{2E?wh-B|5nliE!r|hoZda$rBUUu7dfC5Q8eFu_;EP+=IsME zBj$iO&e@^F=J|n|H3({(zM^i$kzv}Zx&X(Q@AAus)l%>yD!*!oMtE8aR_;~=21sRU z^K(EneSBGRFJn%eY|EZWRrE64#^aI6G6PDu_XW#L4AI4s)}gdgL3wpOgEjAJ1f~WJ zMTj8B!*mU{ln>WSu-KX$qzsu3-9g(oSvm8jKdUU9z%e{Qo#7aBKiq(5BayJjB`5(f zLf$wG?*Qe{JP}5TiZy6J$R+6$1A!j90g(p3uumkA&q-yKF72NFeU)YU5!0u+RbXa* z#NM`bj934ny(*L8F3B~xR{SlxqJ8zW}MC|xMS&Rf`ceE0pxGdLyd}30cpnTu2?uq7mf%bQcm;wdUdm$ zpj#ZDXF-kr@oH1&x@lLxT(50m{)0nE4UhO-3a};lwET-qbq>-O+iFBxmh1s@7SjUjB8ufi$Y@#1hxr8+s4=H1Pxcr&v-)MN z5zkEOnxn3l6gJ!zm}honJP##?xAeen13`YSXIJY5^%swr_JHZ{6CJrkR8`$6)Cr6M z^igIjVs74SJaB)COzYe~=Ri>HqauY{=N%)9ScW!bz@06O!9g<5sd3I^B%_@F7EKak z^}2r^&K5_4`?_P-;ukg?(s(p^Rv?2t(mdZ2p?=)Ox$UeF2(i{epBkhINOaY^9aUvV zuz#Xn0cA_OAln%_Rn2T?NI^gmWea)G$!&H{bq%tWfdp^{szz5M@zQmzNXC-~QUgV` zAex$h)~|ftO_(kaPlEv4k)Ka)hq|Oif4m%d9zzCri^n&J0)u> z>l&}b0FW~Dw_D6FMksvpCc@MhrPg}{Zni1dx#zsfjNRr?<|6JYRdI`3znN~ygkVPo zkUi+LXvG`YuzMhEFp7=HF`9Aks>!xnY&OyRa)>@Lc8OI3mqm&9?zC>G&|L)FVdBRq zEfc%iS%=ZofawWYQ@~r6(mI6bUu75O?H)B8z*}ANViyq_0Fo%gM3ysW-=O#Ml zAB43I#yYGFCy;#9TJ$P}26-5Xjbu+qdXNh}f5xD|yQ(ZsWHozXf@M zsH)lU9@1!z_f4)uPy+wp@x{K*d)}iy8pZeyT%u21y_MM*mBCEfPq6g1&@3&Z5i>{U zzmXg9Ntd%w-W=fya8DOSv0X(V+D?5kO$bA1lZ()V&DUpy-;Q2R;0!WOs7zW66N$^- z%*Aqi-s1+YPidlT5+sI^C2orwz1^c++*mFJ2vfi z+G9+rH;QY)+Tb&A=EY9rJJE1zunb5(O?V?w1XI#3NScoH);hC*ncvKPc$`0l%Kt$@ z*TDc#$!^UGgq=d5XQ;+Xc86l@EEhLv40<`nM*|U2RUVF!}Tayt`RS_-E>{# z^D)(k0cM_Oieg{u(bX6QU>q=j`$nM?;8)k{H!5#Lu?xSoV0e~M1cdMGEby0dTkHpJ zA=uU2j@3@92Jz@R8Yi_ur}JA@vM@Or;u50z&u?tz7}zBxH{x$d#jqDm&2602t8z5f zi^0g*3a7OKUg5~osc0?4GdK-!;G7}!8q#Q_J;WQ-tVlwsoy1k(QkWrI3`Wf_QQY!Asr~Y!FQ!>|bVR(mwP+Tj3gOj?RzXsS$NFMtjfRhgLsqhrec!Mq>}3dIjzEMl>u!Mn$UP zK(s1Lo(~I?Rkcg*;->lFA$OyUfd`nKxv2LkRKoiUPt9@|`SYf9UOYA*xF@NL@0BIJE z#PQD0%qPqT#?oG4u2Hk%s521KLBe#tD`Wvk1q@cn*v9j@dDt|y-*&&Grq^(e6O@Wi z2ioJ6g6nj`rL#@YUST{Qo@HKWs;`&&x-?}@vDc^sraFy=8bu7)uwwt(JQY+QNiD%k zU!fVrp~b3N=_?-F5=sSGUb1Pz>ZNs5VQ_#SYfOrLcq~u?X&{J{I6VG^krIBHh)o11 zp^R};xG6yTG)YQKREJH&BMlS`n&%(-;rZ(Nf&xef`7IWTx1ut6j-GSdh8G^qHS9$~ zgG1kCg%_Qn_cd=2K0zXffJRd&2k8A_A56hej9Ltehh5!>T0~`kkrybTC?OO1-aJ|& z+nekQ^2p-!RC<5Gl}d;`lBn%vWa+$yLt9o`^M#3$7Unet(>BvYc1KXQPEf{oL2uOA zWYs@BU~%Vcow77(;iH)lvSq>OVgZ7%ZVdngae<8tOK%C}mG^Y=s@HMu8FoHg&+v93 zDMWODM>6Su-9w-!1!Bw#&}K9d?}`Hp#!(ub6UP=f@Y%(?R zK(+bF1@t?#wBdRK_54^Ljwu?S!y^m#xA%l%t~)e@WF8qrc^-J){d`XQi zslki05y*pwT4E;b*d{`e7L>|d>dS;f8z%vPmSVO@d=+-}e}8yEpy(N=L&r^VE(m*@QnvyS0{1X@$${Kl*%T^LJ(-*L*QhU_0U(( zAX|GrVs%S~Ofq0P)Gk#mvX{x<(J^rK;q%9D?`icAk5Oe)e_5O>`XpN!CJC8ixg}f>7^e%FTJQ3S6jj> zuUxK;SF5_M^KOz&K^DDc&;{m_h@+rE*jvszf>$z3GekrI-Bpc2)~FYj@B~Xp@I>M_ z7tBh#5tnvEqg2GjQgP5o7ROz!3R>K`$o=l`t{*K~w41ZP?Y{6=>AtDzC<&-r7{CuN z$1f3E=m_MhSrh7bK>CmL)@CMhQ(^7`Mko;On#L8@$w+GD{KQ0kaLnE%0AF1eSp6)%ciX3PEsn8eV)2b9o=X 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 literal 0 HcmV?d00001 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.su b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.su new file mode 100644 index 0000000..fd9bbc1 --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.su @@ -0,0 +1,8 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c:90:19:HAL_RCCEx_PeriphCLKConfig 32 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c:229:6:HAL_RCCEx_GetPeriphCLKConfig 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c:266:10:HAL_RCCEx_GetPeriphCLKFreq 24 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c:358:6:HAL_RCCEx_EnableLSECSS 4 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c:371:6:HAL_RCCEx_DisableLSECSS 4 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c:385:6:HAL_RCCEx_EnableLSECSS_IT 4 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c:402:6:HAL_RCCEx_LSECSS_IRQHandler 8 static +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c:419:13:HAL_RCCEx_LSECSS_Callback 4 static diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.cyclo b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.cyclo new file mode 100644 index 0000000..e52466e --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.cyclo @@ -0,0 +1,55 @@ +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:313:19:HAL_SPI_Init 5 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:446:19:HAL_SPI_DeInit 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:490:13:HAL_SPI_MspInit 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:506:13:HAL_SPI_MspDeInit 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:778:19:HAL_SPI_Transmit 25 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:947:19:HAL_SPI_Receive 22 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1147:19:HAL_SPI_TransmitReceive 38 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1398:19:HAL_SPI_Transmit_IT 8 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1480:19:HAL_SPI_Receive_IT 10 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1571:19:HAL_SPI_TransmitReceive_IT 12 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1658:19:HAL_SPI_Transmit_DMA 8 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1762:19:HAL_SPI_Receive_DMA 10 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:1872:19:HAL_SPI_TransmitReceive_DMA 14 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2015:19:HAL_SPI_Abort 16 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2162:19:HAL_SPI_Abort_IT 19 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2325:19:HAL_SPI_DMAPause 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2345:19:HAL_SPI_DMAResume 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2365:19:HAL_SPI_DMAStop 5 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2407:6:HAL_SPI_IRQHandler 21 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2521:13:HAL_SPI_TxCpltCallback 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2537:13:HAL_SPI_RxCpltCallback 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2553:13:HAL_SPI_TxRxCpltCallback 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2569:13:HAL_SPI_TxHalfCpltCallback 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2585:13:HAL_SPI_RxHalfCpltCallback 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2601:13:HAL_SPI_TxRxHalfCpltCallback 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2617:13:HAL_SPI_ErrorCallback 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2635:13:HAL_SPI_AbortCpltCallback 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2670:22:HAL_SPI_GetState 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2682:10:HAL_SPI_GetError 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2707:13:SPI_DMATransmitCplt 5 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2764:13:SPI_DMAReceiveCplt 6 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2853:13:SPI_DMATransmitReceiveCplt 4 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2933:13:SPI_DMAHalfTransmitCplt 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2951:13:SPI_DMAHalfReceiveCplt 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2969:13:SPI_DMAHalfTransmitReceiveCplt 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:2987:13:SPI_DMAError 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3010:13:SPI_DMAAbortOnError 1 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3032:13:SPI_DMATxAbortCallback 6 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3099:13:SPI_DMARxAbortCallback 5 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3160:13:SPI_2linesRxISR_8BIT 3 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3223:13:SPI_2linesTxISR_8BIT 3 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3259:13:SPI_2linesRxISR_16BIT 3 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3315:13:SPI_2linesTxISR_16BIT 3 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3375:13:SPI_RxISR_8BIT 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3431:13:SPI_RxISR_16BIT 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3464:13:SPI_TxISR_8BIT 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3489:13:SPI_TxISR_16BIT 2 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3519:26:SPI_WaitFlagStateUntilTimeout 10 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3586:26:SPI_EndRxTransaction 9 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3636:26:SPI_EndRxTxTransaction 6 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3683:13:SPI_CloseRxTx_ISR 7 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3778:13:SPI_CloseRx_ISR 4 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3841:13:SPI_CloseTx_ISR 6 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3902:13:SPI_AbortRx_ISR 3 +../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c:3938:13:SPI_AbortTx_ISR 1 diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.d b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.d new file mode 100644 index 0000000..67fa3ac --- /dev/null +++ b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.d @@ -0,0 +1,52 @@ +Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o: \ + ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h \ + ../Core/Inc/stm32l1xx_hal_conf.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h \ + ../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal.h: +../Core/Inc/stm32l1xx_hal_conf.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_def.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l1xx.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/stm32l152xe.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/Include/mpu_armv7.h: +../Drivers/CMSIS/Device/ST/STM32L1xx/Include/system_stm32l1xx.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_rcc_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_dma.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_cortex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_flash_ramfunc.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_pwr_ex.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_spi.h: +../Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_exti.h: diff --git a/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o b/TP2_ISEN_DISPLAY/Debug/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.o new file mode 100644 index 0000000000000000000000000000000000000000..1710b46dfa5c77c6b4ad491519bd565fd5b94d20 GIT binary patch literal 748208 zcmd431$Y(L)&@Lt=8PW4-AnOO+})uqTDVy82G?SNl3)q$mINobI|L2x1b2eFJ3;>U zopVkI+}`i@-tT+<|36QeHEZo<+t*%u(g77~R1!r|@c%?1oA3n_g#A@)ERqYD4B3S9 z!a1{i6!6jbN8T~`H`ez)4sg8heFES_-}@xM$-eg~fKz?%(*VPK@8N(EzW3>XGkote z0cZK%X9Ldhz0U=l=X;L?obP*I0JzZiz6fx!?|lj2Qs4VBz~#R86@V*!@2db;``*_8 zuJygI16=QW-vGGL_r3{mv+q3$aEtGKE8sTY`*y$`zW1Gg(Z2UxfV+L~djR+P-uD6S z_q`tgJm`Br1bEo@egyC+{spZYxKdcryIEj>kW-8iGY7^71~h6X76%P0{trE1P+L-QHdA~0aW+gf=qt`>4C;1@CtdRsF??|{#5K79@humG!-Auu3y zK&k*fGd(S1Nd-HN0;HD%y9EY>16s?cDjyhd5pP0EzNKy}J+(-DYlJt^d<$=j((Wc7 zXhlp~>UPr8AgSDaNrawuD6dTmMtSNFZ=2dKJ+-2w5xCqIZ%IRxqz<^ymd{Ktg%%gQ z^=KU!Aew#(nNw8K3U93xwDsE-NfrCA>f)~{+5>u6d)C+63JLVB9b~q!u-#7mTe?&Z z`e(|zQ1HBMwy9b1W{E4s1+fL+HjfJp92DnkVKJw8+>$xRwJ7wH<#=4Ex3@A~V|mTI zD2=gXP7RE;shJ@zKr+3FV_&t73)mcxs%2cj`_QnVd|tp)$P@+&o*{f*FrN)u@jVru z;plnc7gtOiS}RompWfd4f|q+4R4!FB;;93qr)8uvIo0C{O3l8GL(f7_=i1QI$n-mK zgqX7;wYEa8k=ZXicdG@)qC8jv6>(JrtYu1vjBxN25E3_))+!s>^?_a#E4DM9z>4QCg zqTZ>x(9ec{;b;D@{7n2erT%kIbH{tSH|BlYq5*HsSteC7M?*jcvzNnBOCv_e9N3(G zUkvcVaKON}-_{*(OWZX7qh9Ta0T2`-j$@fL3$l zy$>xOAWTSHX>-7)cwcXt{nH!XeHpVCpu<0Ay^?Y09q*Xs2*sGi*uV0B0M?|JYkk#28OpEzdBVAA!p0~-e$UZn|ovW{)_SS^=$ce z#H8?znBl&at8cTwAnYG4I0uWg@Q$3gUYt`=%>zT@2F48#bJ~wbwdHtGeB;Fu6F0zW zu51I$u_be_!TJ^$>RsP@e6_xHOt8Lr_Z@3a39F9$)mqorY@NR5i0NyN9`EW03dRj6 z=IHq{Zc?*n|IG^aC;V+>dKNca%-Mmx@^4qLf5i7BSFqHO@vbzmbKrN@_7jN)mIm{r4lo-y@bv#oJ+3Y#&z6ajtlKu8KM|eBHxR<}Dl*=6X0Q z-cooBSIIB6?~0PYvobdMs{U!>>z~}Lf0DncUUrqm;2!ONVBJ6QirK{Gkl?D3J0+un`-YGlT( zHoWFf4lnj_pZLp&DQ*O_5Jm$vGq%WvGuQ4U;kRmRo1uS`qpFai8$4H07JIH0G;%hbE}^-U~ty-7~zpuvFC%gk<9l)s_xC5oE#Cc@Tp9+wx6?a}n zgf_HoqmJcq_K6E%B;{Y9GNUH{Y0G9n%TmfeTP^=$?6IByr}?_*n>L;eU&8;^d>skS zFY)3KVEz^EZ_HP-AH2Qc-S-&-{QG|J&&-Ryez@rChl?G&{czFO59inq=mGXbczd%S zusi?1(GTMP*bhVh%XQ$G*-PK91G~TKfvpL8;D5Ic_-6?F$FE7_e%qmnIr=YlsEpCC z!rsLW6@8Qn=6tx=p}aXC{&)Srxcke#9_Pz z`eX0`{xi5Y{&|+Nr|j?Bg#9XJj%wZwecSD;zGZY7_;35R4f;0lFZwnReM{*tee2hj zux}fnZ~qf%_NFVo-Py-hvyUrRYuHjk3;BDQJ@JK){X@Qs9ZLE5{5|CDKk7;98!H}Y zPdG+Y6GzLp^o|t~nT;s3Rag)2Io|B?oRm!1?2HQSrU(%^1f04}Bfq=e`^vd&M8!yU}Xiy^nVMvq18VL}s)YM}M1T{C674 zJ^hy&%=p_}Pr94^W%kpzE$)ppxJqE`gU{ce-?s0!eBaiYd_%ses9T*u?$saEu6>JGgFrdB?SwV;vap6c^7WJY5#_g)cKSdFPE}jw;sDYOa~g!_o7L%)gnlAF!`eDTumlhS-rUyna#`+fn(msV%Y9KZUY z6}e7YW8!@6S>P*P?+9Vf`eqL1=GQZbF#~<}?ib$Cf=mbIr^Dn;IBJZqc%@kHtUw-e zyRhAxhxD$2e~~Bu=gj&42NZvg|J7V;)G+~d9pf;L-$v~Mo11wtv*%M|HOe4m$XWb& zU|X|4@bvA*32^Ri#oD&Y*t@NN4@4WcWgBO(1h&PEL)&n~&&)Mod_c}ze*nY1`$}7^ zT0^n2o4GN{@l@~CWr_7de+G}IY_FGb&1h?*Ipe-~8E1|fKD}PX!G@625r5KV%*J|n zIXG4rvwfj(uiPBaD&v>j32rdrb0^H~`sO}H5WV#BSz^7=yBc`U7XRAIAE5DzMMgGX zTa0Nei7FC~Pmagp-sr&`g_!9Wg?empL=RZW%#jx#ZMEfEfmIf; z5prx<5iOd#sBcu7u@XwXQPN+HUvvL7b(;I9ZybBaEmsO(6l~@`7%P2SCv%;IyzkbL z{xB{81^cE+=cx3~tW=f$YLNj)H|5`uqEa*4yEC|E?w*O`Rmj9`d zIcE(naHTS}|KEE5pY_21O*{N+E&oYx{cA0Mzs>$x$5*%0T{&wkm7>~(ZyQ$5ay|~LNXf7Ej9Bz~oG)+dL5Vj* zW5t@yx1i3d$(_o#!|*!-l(a)e`nRv{sPP>DOE~xWEa$`hyNfpuCS^_@ir~(=@V8i9DHA&&A8ThZ%O<9$6hxwbJIC|bqwm9 z2(gebAqx9XP=ft2_gA}>lsRjxpG!=@mFgR=#DB@fdwFlvz@1O>-S;MpvHf-N+7L5Y z64>}wI$vyR^mA(OKH>P~W#4Yz-uCxiBA%E2sXocR@xf*G0OG*-)(=Na#2m!)<7OO) z7XOmx2%gzAnSXsR2*4>oa-;!`R}$Xd&1uzvoOE^H|_kD@5jA9 zfARgFVgd91%sjU?ON)A>{i+^}C%%jf?DFQwhzdY{s~LU%GBSvz@{K6(w@Y7Y#1)I> z91(HgQO!78*dBk2g@e2qm&BjrzsLspWWUz!*Wf?DpH70$<^<8oj6j+WClw*>nsR!bcLzmK3QbW2OVO0|Sz=MQmQe-6 zDtBlIneHPc!SYMWt}L;tJ%(BYLz91d00vDB%m<@ZxoxK&Ec^8rK~QFAmjo$A;vd1D zoS)_?Q$&j(Wl2&U?}_*gopM1@1u1Wm)+F$Qw{(l!%Yt6i!}r8)>nA(D_;ZynUmKtP z@jEubK5CLGh~~T1zPYkRu$b?fea8)GHs9?+l7r<1!782ve+o?zi%>_^I<*DOEEnu6 zUswg*e76coD!W+!C8=e-X|MK=LUM~~&sDy5J|TtqZgoLLO7m57Rj4hbGGFcX ziujl=wfXM0FX|`?Y0UQ|_8k4KLR#}Zg}wDetB}roPh+2UUlG!q?-_(7>s3+6U?~r) z9(IJh>O5ZMr={?ozD~uu_~22ga?L8pYo(niFf{8jN%pcT-@7efJ=h3Cf!Z=&xMTL%(VzUjg#JC@JCDW;^%=rEy*`7L?MUAaNQs&pbe>^bSQ( z^V-<~f|P!zB&Y>U#46pvSCVRB6VaqqS!F>jW+HZ}SqiX~G!eH{@^>gGVdU(<%B?2VEe@XYi4yDBFw4sKbWa7&wBG5mixZTULT85jj)Z z2P#4Zwc}{iL3*@K71YkD`7TH!Z$NX`l&pbOIur~?yQgG*Gf3&niGun^x>z6?rID$u zg4!$91juBOa#w*&pEQv`vPrA6SOhiDL~=fM$F%*=Lstkh6kd$nSjktZ4=2RDC>&Kf>u|G zg41SqX$`~SrkuSVoR)t)YC(5Jp`|Rcfypk(5v9@ia<*SZL6%G8z&av3R-m=e?aAPM zOX)WVC!&Uw-_??Z23kNr3|+GuwRY+G?(IgcLprvGRoasY&U8v2jFP-)8|dhgE)rY? zq+@O2ShsZidbW_1;uh-JBmGdY6_JKqLv!>r*-A(^|A9*PHrYx^&o4oyuMrNmGSY)8 zf}r&?kqXi;&A|3&`dKKcBIT(GB*;W+m;*^0n2rOfra6$b!RZ#jw_4^n(1xaqh6i;8 zm8*t23-2mdxm1&($-#%9E(Nzb0TLlrFW)WWdI&0=NNroL2&GKUktXM#e$G;U&JLDyvlO9>%fkvo(9$KFB$V}|T?A`L zMMV%z6}wFp7yK$jzlv6tRcSG)UFP8OtFXqa(Efy6GHTz3NuR+bdo6XqK)85A5u%+a z638P)q)>eoiFW!b(m^YSl6dLkPM>rSNLR!-ZD~s1HKlv_rCU1ld7HuOS!?H4p0#oM z>e}UN&j$K+!?R?)b6SN0PWB#u=11TW2mSgBI4gMdcMxY}wt%k=yTvjtK&*&Gq=2)v z7j0#>WhuY89zrt5C$Pn9H9yCW@Myj|Tb$*5oo8ybIBR>=bTPGBoUOcQ2O-&`BNk!1 z!|$9MLsX2I>sPbgQQcR0(LP21Uqi24Gm-1%c1L^eLzZ#BnMQUv%6dy1m_~Lud^HhF z*P|W2mg-=sKGZ7ga>Tde+~KmY+mB+9jCmvrvmI=z3iu~R?Du;!+fkI$g(K3sXQWjK zHJK`zOpp9bp^hT)Oq2Imh2Ik}CDMJ(^LqkK)2^$+4<=JJQ&V9-(+>$WP06MRFYG86 znwm_F{Y)?HrQ^+Qs$>YDgjgW!KyGN0n>ax(-eEDcuj52T7(8BQ!7)` zAwN@t1Wd&qScTLk(+-oVpn=-87$AaJm@9;3Tq_GFa$0*b-&k-C24gb(OAS_Y29>i* z-Wk+I(D)Y*oB1!2}<5g&FV4g$39CynMHGbuG*T$yS*D$zv@JA*wVjB%``1Uml@ZH>pR$*AXhy9@n zos47*5%^1me`3TVKYJ&mjGx`s6=6qp)9FMeQzA@rQ)hLfm~To5wwt@GLeT_Fh5bxL zjY9EEA$bKMdjh7$ex~e3$#|x=DJ3Cg0;XU;Q%a+FJk#4ZqM#>Wn(t@Q6EJl=CkyW| z=Mf2+jvw+fz0-@vYpS0^7Vafrdg^Dorx%WAdVr|?d;+GVm}q7bod3dLhTRnc+?lH$IwDY4~oZBGEp6dxovx|r8y1$E^XMBYd z{Dq_ag#m(7!5)$h3@cf_EX8H@734(qyt0a`v{TtVx;1MG% zh%L<8mDGKG*TJ%)t16V%lakRgu9x8c{<$n<*Ax2%%b9|?{DRr_BL22>i=9*<>9?G} z`Z<$+X+S;aEvwK?^Q(MmZlcfpjNLR}cQiJA>7n_3vE-R534dt*NoKB@J+=64vUi{; z^zx$t&Kc0k20jbDW&?lFeDMpKX>G!0`s6QQGkrurc~$khcFuIIzuVVLSJeXk-eogg zQ{!D@a>I{yaE|r)(h`bHUm9q>eI!88<|p)}p}zndncljlEYytm<*n(< zGruo2RbR-`LF|arT}`z9S|*PE#Rx_HPXd2a$Wg{*GMNp zuL;-t#;a*%su|!{(^v7&Z&OWQrKZ<)ubRF}Grt;lJ|sahEAfLbjj89QUr%PGthYP7 zO^{jnHDMEERss?>K^CQO!Y0V7eANWsD_@$Rbrnh2FZ-JyuW7S578Y}+?3ev3is}1) zxk|z&*e^GT_dRH$DD;%$eb-DqgZz4W%3n2QPx+UGZO~Kx&96sKJ-{jiTK(?S#`qK? zY9#i#6KE~v8$GVA;~rD*S0p z;Vo@rj*$UYUjqf0V#j^B5Nf73S_qH8mXe!^8nNHHBvpFZ>HyKBws+@%yed>e4eKA%OBi=}; zX{1yVUuzkXZ)s^|8Zo3A-qvbn8Zo5CUL#FSBZk!8+dK_SBldVBW@|YlyO+6}Rs%-3 z(wH-QvgE6A2SKpa@F>E2^t*pwYUy|6z34k7^$={)bu7aD1WciRru$<2iBg|7%pz

qOBMbfxoM^b{=!gSN;7olB%Yd<;&JK~{TD#`Q4qz#7YnzQ~gDWKS zyy3W!p>Ou>0=2wWTd3TX5&?N9Z|8{XS}dNQoQ+CPXun{^+~N6;-y$guBZim%g6ldehxjJtrl*pQwmDJ zn8-}vP#j&{AXc|o6-*g?@K1gt_PsxqnbP<+RLa}6>T+iO7sV!EbQnq>2Z&J_56-2%jds(BM^ivZF6_SEB#+h{5dayVn zOyY`D+u{s<3wEQ!^m){%v_(0#2)#c$IT`P!pzDWe2cMT6OqqoX0>#wisZ%qaL{cmr zGsare3P&#tPw^;crV8{{t=y$sCp<1Jr`r@^qJaW^vKB4*Ct&kwl9ia*B!x6VT@ZS6 zlsr0A^R1Z6SLnox>{60IEz&#b7ar|lvQK!}D+38gJ*PnwNPx@j#I;;uGGRD#5O$!P z;$oGtY4-IG$Dl&lqk#zP)Eo$0x4+LQp4>@az5jdK+0#MGB7&3)Z79GB@E zj0wbBe|M~u;zm4Fs@B*>2srFXAAkPk{libNK{11q*{nPk2Z(RaJ%X-BxX^`sR( zTac#JoGhUhIvJIpyOW~OLDsph6-tO2xJ;n5G|qy64rDJ^a>{^MQg|?L*%cN0i7h-& zNBAKor!ktpgxJ2jP8{AS}gd|X2bI@prM50i0wvA(um z+N&`srrPdiSHsK$>B*hb>eTUgCMPCn8H*1SsRoygTbrR1HFl=b-U`#28Y2#sb1!H% zL)2AYP2O;^FHpch>a5)ZmkAi;9%BTehrJ-IOH+ug8Tru{2|E#0GyqUnQ*gs5gRE$D zkZ-YA7phyTGNGFZsE7(pmz)a7dl>0gID_1EjKk%ugF?=3n`nzs#VB16dK1Z5=Bs@M z+dVzR0brZnBc3J9XU_X~vgSWu-ro3;f`1FNrJbDmR{fU(&g`PMpu`{rWQ&6n#M0s~ zUj6rn`(Ng7-hKbyDJG1#E3^ZRd5|)bfS!m7yQ&l$6bShEYpfg++0>uH!(2LPSf$Xa zzkGoio1nnQef>065hJ%&d%3^3(o4+2N2eTa15mZg>l)^NVCMr~#$gPn@Xdgu_(r>- z5=)R=QcX=ruT`(@=u^fg)Tf~8GSrMFM^4Dw083)(VMyy)GBQNpDH0myP0w6gF7-;^ zgo=*?s|a?B(Ippj(WghkilJh_dn9nLK74q1|8e)rtM{*dKA=3X+yR<;frf=j;0_7_ z%a#M|n4W{YNXT+gohRr6L0TJTw9VI6i8@_tnB-bR1Lr1uc@{<3ed6J#y~@Z7Od59~ zCtY*~m}`n3d@|=Y%yL6rG>sSYuZ7()zmR;wK+tRbj3zQoxsef5xyWvIdx0!{fqCf& zS(LZ_@)oAI8U^Ihyj|UPPUrLWI33+Se7Qoh_&zz{R99*sPMPO~YA40Ilpj7beShk< zo5rbKr@93&Ky9Qkhyc1H#X1@{zNXli)~@wMh_Z5>RwvgrhTwS6!94&95Qpxu?cfH0#YC^k84#lZjo__-qHI+b z21a!#ePG$8MqFp`mf2PksC3iZ!&@cOvOmM8vgx5s5eFPTRVbPs$`mpjyIr;AOySXz zj5(nwnjuNl-SRmSN^|LIF1P`gn+nux>(^=kdmVjY@*sU`gB3)v>^}Si=fOqfd;X|Woy&N;&j*Nt|dRIbp7Ag+(pJ0;7?zRZ+q2O>{q1l6WN08FG{=n!gfA*aDtG?i zqoWe>WWAX;rmG%M6T_o{y(a9J_L{D3s|9jFwCC&^Rrm^mi3WX@sD4H+J?;bp?!#q_ zfSDL_qz5Kh`6-B-zH#qX&ww$p?Qc=hf;bJaSCBCMm;0qQ*I!2VFS|!yG5XV=@Rd!s ze`&kHTNJeR1za&K-R5o=zwwTIirPX4NuEq6E%nhX8wmeCqn{-7E_Wkq!rFU7P1*H) zKHGvtlt`A`Xq3*&VZNtj!`i}TWZ2FW%;vX0AnInY9?+^xe%r@Q8kpKmc@nZVnZ zHXwDTcR`@bz?0!|&}rA!=js0nsFSoh(+TeV4Aa9Ki68Gi0rymNFJh{^(M}4CqMjI(^s$Tr~sw3iu^(X;hz*8r)uajqb52Y2LY=VzdUeF%uq3%neGZ9*~r zTf+_{neqNnx9a6NP`eH=rJ>9D)wG&Kd8G&OOH{s64yXvNZpYRGm&FDrDrW)wZM_B9 zKnC%f-4aeBGGwNRod__5nHi;9%zz1fgiGWYCmHnKASj*(Oe3H-tChC^LBH5MSJ5?U zb<#oU!prUmjXf0XNAapi6c1fc1J+ICn~dqWdwBK3{N2ycg;{3U)cWd|kDuN@{P6tM zn@ByL@^42X33xjc zvlo@FNetX>FdM*p1eXESDB%a@2AxrNR`sRN5rmvbBd}=gMcrM(S40?V5*Z(nOny8; z!f?5IFK+0}&)DInnXSyTDW(t`$-+CZx+Ts-6trF;yzTb>8W|Lz@0~#6$Guz~8&`I- z8i3Y=@}i1OS$g0ZB1rQ}FJ$m2caSP-UIShlheAF~N3J0fwbhQ3xJjsCDR3J*X&0Jm z&Oe1c>2sbRL&VpL(4-fcnbBy9O*y{NCk~kkT^-gm>48IA56Zvnd%35JMr(47CD@=s z*@QXr1)f=>Z8RH!RAsCA5sGC8u0dP|uj`OVW{n8f=(^0pH*gIlJO|c=gLgJN0n`!e z&)2?0tN}{mZRy2z5I<;7Nf*dfgRW6$yLPhnsn-MOwjb?jKL+F0Nb1P*0T)G_%UX^I z&Z?k_iV^Uv<>2owAbszUk*Ijgt~a&3vZ=Dyb7k7!+^g`I)F;s-2^6{*L3nbwW!Bh2 zI5YfHc+{#%6RWzegAO&=>rOoU_-$0BgGlfQK-j0gNetWC2pfCS(qmTDI&UKjd%oWdpSY{$n)jbbIW=yrGW{E{|)NI2(`?a#v3XpX}NiJ+*`X~}#oB-v-k639-kk7@e^LqnBAY!-nbGfNQ%q=tP zU}%>{3^BElQQwNY38cOzMU8h~&F;4zwNY%NElk~Qi*3NWpKo?)OPp~_us@0M{)7vY zQ(#~*3*@R@g&esCUR*qb7BY;<1~kv1J?i5n?r`<73H7_9kAK_EzXkUToeP+OBcOI& z+R^A_r}d?y6HTU+)1J>u7iy~q?r5o$HmuD#XxU9r-4gn%%=uQYdr}32qO>-Xs+RS9 zAjt3LZULfYDzkYGUf*~FGi}p=TP&4r4~@h43ck6rBmod)9koT zggL-!L-T{w4D*BUpNzf_TOC~2?-0WhRiAL7-n7Q}27pu5BO5?aeXyS42Q#d+73Y;R ztG+Nrg00`(eKTKAMt-rqS;Pw1IaB!mk+M?aRO!4zQbx>(DKXr*7@B|49Wxuc0<>-~ zcu7D>-WZ|G^_ue9R9W%Tc zZv~TJ3Ia}zGY~jVq2)sD98MG*-1dn5#p{NdvsezdC=^v*yX78dTX>s+fA&QlMaJ%pHtb_n-F2lZ{P zwKseOyqTHI_!sPW70wP1NeeOc=POvZp@+Ep);7`wU7;4EfXI3ko*BM9&0=XuJY}Ga zE!qS4HpS-xhvB4=@bra=A+XIz5%MFzpfoJ*CWnv3G!++--xJLgot0F_G&IP2faFbM zTo~>RqjPA6u@Kmz#K+WI-P^IzJK+`0`-xrv*Is&V3QCqA0rFN{@2m}qPKHS zlAxe$$+%FP)24}y1{{lgGeFHa!4P@V5@A6(b*A6(e+A6(h- zA6(ioHBffKXwG_mf#7D#ssJQIb^M~A1-9GKk9{P?QV}j=N)W?~=&4H>!93zgGI-8) zWhfP)EmhWa2S8$DSWH*fIHjxGlkbF{Ys2p3T<%5Jbl#r-{KLWbKmQ>1n}7fHUky7x z8T~iuy#kBBWtFO(ZgKt#DCEE9E?&5*)5jeGp`AD|;Ug(?y+y3;UxFB^E_3A9a>295 zrI@A44alt+(tt#)Tvi-^_?TtIF~Goxkb-KTzI_g;4=}T0hbk&utdh#wM$xiLtyw^ z8O$~>IblnkxRdUg@2iDi} z-H4pbg~G+Bd;`rS3Rje8ILFk$^Z>K>DV728wX?hB7C}KMv5aJE7ta=>{a{IE@Z>Td zHrbEBV#&~y-U59a?ML<)dI*U#UVv0Dpvgc^w+(Wn;{ZcFy+)&o^Yy!^hiwV>ER;?Xj_^9#(kA4Es^T}JihQ!m?m zJ$QfyipzBrI`RcHhbGTmc#F5Xq)PdXUr>WbAaIrf=q8OLj)d$zdcx(0av5TwEtfgD z&u&{xvV|95&+$juMQ%ql4yx@EA5VLk6d%_Mhz0Sc%B1Ps_c|0e6u1Ux*k?~?=O`%4 z@*J*FTVBjrZwv*%VNo}86F#fe%d~xbNM2>?*I(grjopUSx)!9nxkp|O9>F6`4P2m^ zOq{vY`SaXor`sIcUWs1EuH|)ohwpm_>Gc$X`Z=aT(zW>~S0K z1D)aGJd*TX_RmutaLLtDM4QOgqFY@-;3%mUTP_Gng_a8nfpa^O^$>yR7iQF?FZ(`H zpqm9!GhAHkt~cj$mrK`vhM}u-$FF-NLo{_w(-xbps0PO(9^&i5Poco#6j)Fs5;;YD zq)3|^+Yw%Ob30H7myx&x=pj)dV0hhnO5-@^NOtkf_|#6+HxTi8WnTcw%iu0#!9?**9u@)4If}xJX79p^GK5Ae~4qOIOOBLiQO3c%XN# z^W+$rhN5`OGF}lit(wYqW~GeX1@Q}c z-kU4kUa=7rs4&kKZ4l7Le7D{5>PWwPdw=4ybuOvn>NFfVOHNP1Bu@sX7_V9^8A+E z4Ub0lt(6jTaaDOymU*?AFOldTwq&WG5tpBI+C%|$fv_7;->*$xul%oACevor9AHoq zTcQfF_{sogxBDv5mjYobg)rEaMupTDySJZy{_f$u3>-MeaN=@~JJ~ruvqU{P{*D{f zlQp=X7DYv*U4Vm@Rw5#v-O6j>ULo#M@8USfU)Ra~B3qcHc%Y$!qBZUzS3|`lIZB=Y z`OZ>KU|AyWa@8$2$PsAW5TvpUmMlp}soSW@ab}+HPnjJ~W$|VQE?&#i4|mlrB5=xW`G@XBERw@oBd2(8-DZfzuz?ON1ir>e->&ht?Kitib8j9` zPH|1&DX?LXsBgDO;dp<$L~WD{c$J}aj}u`KAWT#C{A(fldVFpP-54Wuqj>NkbaBpx za+Ir^DALvtgBL$iIp7Pccl=fgZdW_rXQAoENuis&hj^VH8Fn$esP;Uzt&eq)Azl7HASui$!sn6swQc<||&5T(=aT^TIJjX>4cWZE#&8#j^Sw5g*#MUclK_@X-yHPEThpQ+zhqBd_1;?ksBSs3lM4v>^-SB@@umsMn%* zrODh^yw(;%P|Xl$4NN&0<|$9Qd#BY_bu#DBi+kkDv#6M2%-RP5;tCJ!HGD#CR*BGB zN8^#7M0NH_rD^w^#T}p+L0r=Y3l2BZ;%G)j63+?VRw04LSv!SnAoh(WqHrZ_Ak`g) zgnWhakBGd!y+u)`&b4h`Qc}#Ar*sC75j2dwN$pAOOKCYeaOpXN5a$pO!+haI=)kb! zx1G7{{ox8ces2}}$(G7fgkMsF?zit>z5Vd>>yJj1suo{9BwSb5Hi~9tu%2R~mL)sw z2hStBI#UA%Dex!#u6y)!TVg|aSkKD^BaTq1gLp&RP5L_DHw&5p^W*bP~u}O65_xV88uD%9n=<>pT_=wmCp!l}B z8qU5za)k92x(g7jdnDn9%D%E`u`)~|g{6_01g*x$C!Je3Yu8(xoQ8g;!SsQ+Lrz`$ z?&t$?2fqnnWSRRFC1k#wtA`vLyqKC z_Rrn`6f+*ttxhm)195w`0Q3wFxhi>@P#hqH+NbyjcDf8JVNSYQ7*bmt)AMV*bc4Nn zxrCqVx8j<7hu5E?N>m=lk{gc3cFxe(K> z>NGW+v7uM{I{CrX-cDw@G&5aLMJ-EMg}Whc1;H4w;)O}0dQH#Al(aB0JP}iHWUQW2 z(E+ckMC1{snr!OjT67NjDe33VoP4``u%zb#(m?Pk_`>vwPU@lLfT79cokFI9sJ{;g00yItkw z%iYx|dscZo0$q^HW|KO($=PoVARY4fANuM&9phIN<)aXmQO>v)A~E9H0s3y^Tyh9e zv5uid6oPz7(sJZ> zrqLTx$5R};Czk?mAr9~5tW^2<9x-Eb2Yds!eg<$ahUDY zc93FCgtj8<2Ld{1~jNqeo&A ze=^CasyZ%oKo@J)RdN^3%p-ES8erK$l*_b%;s@}F=}wzgjhez;*g}dnKLtcqm>v)2 z)-le(?2;Zk{1+Jw#Nhd9vf{Bc32|HGA-j2q&3c;Se)Cai=wJg;U*5F%I}!_R-hF!i z{R4u&UjOvd!+UK#sR`Y4#PggOLW*FeZfR#*FjSO-4V(Be$~2~Zn$)mK>s2>uz%{t8 z^#%+g5DrfmgI||# zfBE!rck$}uE2MDx`@{PW7Mc#w;@1Hn4jCqTUQ|=eBtACUt;b?hM1FivU#&AeLJG$O z(&&bW5Cj>GP!VFz3A~s+UrfB2#7Vr-9FqNu)*~Rb*XO55R7i<=`|9;AShvYS7CP2#Vl>bPLqOE$dq+M#u3Q*=Y`{1O2QC?PIB}=lNx^33B{j z?WC95HdhAV1yXY^T(+(aIzVaq6w4lw?5REGhryUoix*LbUE)Qn0t%>&!Y^Q@AZ}|nBRSi6p64dHe5m4IWur1J-9J? zd6Q%7auue0IyaW4;C2O`j;L0^39}}_CuF|9hY^moAz*c$%TL=kxbN>howV*cT`7}O zQ4afl?Zb7ORMAE5FuGhWwN2Th@Py#y$T7BzqBp9yOQAfVC%~;;Jy8#=K~x2&1==|S zPo#ndDZL@oUrD(?9d)iX`HsJtc*irzyOh`f zG$+*u3CHmnyvd#1I`1+7)@=;n#Q9eoXJXoQZO6Z%A-;VBWm@=bAun#6z@(r!Oq(fO zhd%&%bK&umRc3;DD<7 z*7&!|a}9KuIQpf1l|`OS)|88Eq`V9BuHosXW9Tw-kr6Buc8E}K&HBMh-yf!_E6fv= zD_%U6TR*XR-PA)`mp(Vx?dGdOl0wbe&XdHq9}$qD-0*fTcV91WOFWmqHABjtgt`VZ zhYYg}jFXABY0NA720XBdV*1#}26B)%d&4GsK>eND5}(O_C6!{nRFY~PW z)mJBxQ6<%{5THe_8op%+ zyDLNsnf{-{anPXVW{|dav^#EowJ%`!T=iiw9Dg%|SwAb67B_B-v=~0>|0I=Tvd@u9 z>K^-wE^X3Z()Z@iGzP3jQQUd-=O;$KF?Tp_pwi5M{;wmWb>?--ny=@VSC_Xp%V&1# zzy}gh)(Ykkrs#XmQTK44vKho#nWYwIpCh6$`nArQxw-67FA+1ejskxn9 zizi6Q(u^_?w`mk~nV^D6N)>P^$iw24!8cUSurvr4L#yf@;9MuQ#tr$~iTMh^AX9=# zPN+wxDq~vp9Qf*yqEsmz+)xWM8#opL(HzkTLwmML5M4HMTL+}>JH&WE9)!rS7?oe2 z(IkSJaLoKjiD-BJExhXXsE9qmqaNb?8Rzc6dxu|bsDvEG{I!FcdgFS6iVF8w7{5(mkcc26s}f4 zF752t;#H`I6QTn-cAB12RgK!DmFDf)C!!pdJ%B;9Tv(+n@^sL$#Ia&8Y(px58|1>~ zjvKD#Y5Ul!6$in^u`%MnxpZqdHqK3sA>iE#op1^+-mL=lERyKzj@yegsvz~26lb3V zw!^;-27^7JY5+8vyfQ;RARPhM^7+j0%*lzzs7<@d9pEEF(jiQvt%D^bsg%ZE$I8@8 zLViR;UwZ;yRZOZ9VQ+T4w>*e;6b^*slr1)I{{Ako`(NV~20;4+~4zZ91Ib$Wlszsgqa)X2h zoQDqR74pY_`0z@PYbduu7rDzN*M#atGX%|KvW$|yKr?(pJd4dgprqDuZUS9EwZWA} zKA4o|#ZOX9viW;KgT?ezW1Gt?xcEbmnoWAI5RT8_%IUDGKdntv%U*D86 z1%Ff?Y7j1^LKqTgH$XxNn{tE_1riaB3E+@PozYa3v{DluFKIbncm;xdxCT^IyJXK>hGttddy* z&FlS-+<-~`qc<%6*bOi<;p50uny4ZxCnc4lyz+hQZS~|C^Npw-ox`{ioU|wmnI~db z%9Y^8>8#*&WO=TtqgPfUWVkSgwyp^s&HASOfxSD>L7RG=BV@*}V?Rg*NUJ9?%YV@P@iz^8`OruqR(yUv+~ahCI= z%f?9*hg^Qd4$@q=Nb~80Nb~8`kfx#}wSd~DYpNgyiMvDeK+&7oCE`M8*=hwL&T>uS zH;YVh$PyQJ7)j9*CG;@c?D)6jM&A<=Csh~c>nmvXdpcXPKMANu^PEBXgi_Y_FB-9H zg^mL$@>8A#VzyIba&AV7C48`uF5yVoe4aT@L^fPL*}ev@c#vvn?2!c6ZLIoxrs`ch zhm+(?8(@M^8BOkaq&p}sww_hI?gp=D({e98u;zi%8*DogWDzm}VyUOaf)to__Ja(! z^_$JtQ)!}ju>HCsIPD0;>S8+ zk*-vX)VFmYtSrX<@FCs>jIE=|rO!bG_ypt79Zx#D-gd!}UR++5W%fj41!G+DWgB z6A#l8%r%8t*rnFa)xE^;M3DSjG#FtI%-Lk3i=9?W9$QqryT7>?o4d8TRgwz|c2HQA z-aS}=5w5xEETP@+9g$msO#f-6O8Z` zPO8(XJYlgusfxGEKJm^5s9Q1*X)3SaAtjq>!Z}nUMYpTnOZfKJ%sNN+pS}F?;r-RC zH$TpQdGisd=goJozNazKwdR+>l3-=U8hEXQ>%D>*zkacKzd#DDa{5& zd;vBnG!eaAMx2N6q^dvsT=pwhPRPlY{(2FaqYE7Mi*qBli5E~ zqftKULAApeAvX+PBa!5%wnFyXFaUi5E`fnzQ=LCwuJAqNglL^1Lr4;xz`;rS09qSAbYrZPYPgxaVtDr>#M4Mkw{&tF&) zE)>)e2BK^L1av+i#}$wknC=>M$e^e-yM2Z{+{uB1_)c_lP0CtRlp0+P--xD1Ieys+ zKGP{|TKq5~{t2OJmc4oOU;fMJ`dWb(_$c~A!nePblj!MLVfHRyHZT~pCrImB*n09d zJT@4fDj&^JJteNeh9LLuR>#$q;P)3k&!ZVML;(6JbH#Vb#sGMdS z<0f$=YNv4ADEi{zUWTGENv5jZUYsN5LD6eWjn-?#;=rS#zb5Il55jE?Qn>kGS(XN_ z2~Xy7Wok!tY^0?^g~`4-y@eM^h=LFvl@(`0L=mR?|FhH(rBR0o=x!Wox~W8j9cX%t zG9}X!uSvlSS*DRDs|sGmGLnQ%u9oXifEaQ)D?kipWkex9!%LwYJNg9L7mO~geOVl9 z0Gi_nYXz#P=)3ElaoS-OZ9yY2VsJGpP_Ib@Tuu>M6e{T}Z-wnWkUQ&lpZ6m_?~pv2 zn08BUA}mmL*m!JWMrlAbEQY-?sIwo&Q_}1mHAFC2ML0FxtffhGWaFQHYVU|E9d>3d zhr;Lv;r+|i{YIzKg^UEc2guH~!HNJOaSQXL+$Akj5W+*##aFm73%`Wr7#>#xZPh=X z)x&XWCJ?lR3wy%h9!opw(105Yg)3N%_EJ-z4QITUf2Cs(S@a4;V~ask(MFqXE7~ZPpKK1?ywHW-tign3Oc1*_VET?a zlcZaNmT=HHZn36Xf%Y8kz+cdk5dAUA5;Iig)CQ`TrWQ8`0R@Ko-K{ZrmRNgZ_sMz= zDmB%vhl+OHA%q@j=`>js75a2N&qyC?!*kJjTG;TG@#g|i$_Cu}1NSl>53aCBVhwOX zw^({I+M!GHI;u0?gT=l^Sl0@OiXzntEDcD0xdz!+wzpRwK0LhtxclYR`&U070Fz@% zqfguY$zMmWe+1vqKI6+TN60)%Bhcu{=zpdR40lUxNan3mn&fySxs5-8)Ofv~OFZ;H zMh|Zg!Zmd7quif6}m;xdLl)_gHt;gkV+!Gy}7 zq^0}|tp_Z|c9xmO%n$OwIR;dx)q3IV)chzsol>M8`4KC9O3Ip`LF5i3m?Y|Gyu|>2 zRlJ<~G7WZ4oqEP`R-O?L`cGt@q@v>%U-$9nUyxi64%-Y=k%|yQmjf1b8 zV`?xeWh@ui6|_txcabkt7plb)ALVW_+>s<|jzqBN+>HGM4@0|hZ?FE=&%vic4p9qL zsX~biJiw;|^v#vA6f$uR00$W z$SjeHwT*MJwtNVrPsAb6%DN+@DH(Y(h@sWn-4`&kkK~iL$-sda=%fc+uURpTDIVRYi|#7SvbsY?+XHS>98`4*PU#SKwVvagm=4LU zms@uMbSd_z2w|AVFtSqAaecYf0nON^0ceoUU?`m`eYSz$I=qL2)Ei9m=3>1bBgkRYTG?r=~F@ES^M**2ue}@{BeP^yXi|$gdi5%<$%=ZB< z_5s3~v-b{U!;lWU2Y9v*a0R-oPmK5vcdIU!+VAQ?JZ0GGE{Y*CjSrmusQkEC%$LwN zLwI>cccIgUm)f9iLI*h~X`fK7Sl==Wsf9ImxgrQiG36ZAsb>I{4aER@lJGDNy5Zw= z#H|5tFEC+vWgfUrzy`G1n{80rff9mSm=G9p%UFxf7j>Z;2gRwfuY3mF`J@3^XUqwR z%S~_%6g~Xp&0pNRfr^cA%2JtuJLKap21Otm`JsU74M0WMYb;QkZK?RiWfdaiD& ztQ(1HfHZ31w>73v?80sYmKXz+{g!?hx3lwWYMznQ^5RWeRzZ$H2<=KF^) zzJz(2%7MC;(g@i6O;-pGjmgA?wxu!KknrUeKc+r(JPw5@zJ(!e#-Cusb9hZd->ucG zLfr&$pD!8k?Wdk9{zkzyq0;NRReD*QhG2}9>2%gcC|tuM?GI+6K5ce8dx1B-Ob?4D zVZqG{h73ah)nABz4Ld`0*zMs9z{v)WGut6Mm5TM4m*Hrj?Xx*-k=n`C-0IBDgPRZu4*9)7kAymF`ZHo|hT!Nv{^(EcZ^WW-uGz&u^aEvbpuG8AWnGyN0O_gQ=_`z_L;ZPk)WaS;LoL8}v|*3P0fv2y2B16H zQw00s%gr5C92F$|pDvx9qnD!9DD8~XUXj2WXuH!76##Nr0zi0d4KHvfaL&n$gMTfF zU~SzxjU|H#d~ugZ)w8_&<^cca*XYleR(hHE28SB89xH~ywtw0>bYy8z%vw?*1c%4F zOw-qh$!BM9%|3hT;Vc#bieqRq5s8kB+Ve~CAD}=6w8TSuj%dq*z>2qZfob~0I23iJ zJjIf5)P=^3D~6E#Ys38V<(17rW%|wnwlF=*6@C9db8p(*#+9WB>!;v#$5c>Nb_D@& z({#5xKrAFIl7O&?Qhh{AQk)^v1ATU4t7Pm?J#ona%dhJ z+%?*;2^QN8T03qwTT)Ux-6(4|XoD{JTA8vB4?kI60!|`UW%}X6d&|`q7kV^i5;Z@7 zDy2BUm0?XRuOXCkL{{DO7@|psHok&hVf+_yrO47^e%PK6lPBCvXj>a3*UJo#;Flr< zfCJZJDM{4T7418|A;ZU>OIbj*8A>G@tl(Gqy!%}p9du)Qm*;iV^uanyq8_xuI8?~G zWQ2kl1WCy~q!?*+s3*q!=b@3D#KeG5Q@}66{Jpjm-S8q|lH=;Vo%9tU5@3t(ODiCd zI%_jVBvHi3Vk}DJmcI$lG!0+UX8&&}q4}`isD)0qJfwy;)UZR=lKJ#%q7z8PtX=8| za%#wbQ%&u}Dwh;+s#JPXonm3LA>hlrXsrSZb~Dj7j=SyZ;=CI^H<=oTXNgS7!-1lP zM90lq1gp$YTf;51HAqXx&xKzhHBHnu=zEK6eQG05r`$$RddFrHB;h6kD1g9CMBe@vVEjuREZ)#~!oqo(`yZ zS+pak5b~_hoU|OHARlpJ)woy>3~?t1nkc=R8cEISp=S^(yVCTCTwRYh z^Az0ChvmP!zSO`=@JMI+AfaV-J@%;5` zl*Z2Sk5H~|JROlEf8RkV!(q`wn@E%}RQReuu#f3$chUpm*cbzyVqM)n)P(95tehN2 zJ*ZYfmM6q(fYjYKu{^C|>L8ByeO)%CBdm;AkWYPMlPqGhxI6X;?$|Y()&Sa^lmWNx zBu0&ZTb*v>GlJ_kKBIqRYaSH~#2^t-IcX}>5PfLNv<(ckq01 zpA2oP0NXkeON^M;g}8%Jhou=nIHZE=Cet85{Fmio+vRYy(wd{;h}y&*O5RAJCs7NIwnO-Gllk7N&$Ld!BWdeunZ?_BSib zkgBi-qXe*2cBza>21*e2bFha5A@(oxhFR6K-&bTLUlHd&JOvQcOsLKrqH@)!t(sqn z&y@BGuBlL+;R+9tQDrr$-=A%oq=wf8f+`(36HG7 zldz=q-I5k1^~k^Z%wd7?i>$*9J*>4CDMIkX>!{-4S4%teVjpldb6ldRLu@|Ja>T$y zE@fQDzi4-Mq*gkb_p5X$bfKExJV&ZH4Is5`*B6SP1DJq6^f)w1p8RYCGUlIJU#>w^ z>=@(~Sz*YPhB8)@fr9+^XK&I^mLP(@Vr5dLehB`2#>X? zSGWpOY3M~NrllDQ;h}|wgV|=TswSDJVR}a=>Vj#JK}Mn~1y5m=1?i?ahfsJgq4Qoy zlyVH?ZL+f1)5X|I0qRl?B%BD71Y;{m8V7a~3SNz$LTRqAB}U_dP@5%Pjd=JhVQ2T) z$>pj)z|>17o?cJkoJ(6o)y!7=B-12SiI?=LZU*k3_3F#Cb{q(!kic3THxiv$lX_al z?YsNs-MiOs-u(nUbq~4pl!m)(v?DNrMFK<(=)Lq_I41cPS=`6pwt=2-3!@u&zAgOR z0gbmvSE<-(L$w?=vsKqrZNhW|xh*euF{sO3;8N4#BwFV0?5yM@w+7md;K~=iN;53H zPGqxDPe;I=sX#hOM+>G|kt_Eam;psqwc$v3Gls_}4QiPrQx)Hll>x!_DDT2Zfta_T zza&ub07(dz^%y~!$4}QR%ah;5GY#v8={G9Qtn`n0DBH=@m5qp$F|Cd%8~ZdfQR~Pb zKuR60w!NLR^%Rtv4$B1Ap8f`&aGSNBSLv+v{Y^AC)9e1*o4${jx zeA%z1*gY(NCti67Ce!#di|EJUlwIgWNa86&YrJGnypXtC3P~kwq2_SUq!WBM5pQZ`+ z_^Bb?!c8P{i6TLN;%G|i37$`J6w4$nLE94ST+nCk(R2#QA&WE1v>L*pPN-7ddX5E& zaK>^B4lk|Bn2+)lPN=TidG3vy&fZK@06191*f zA3#bx_2w%_M9vEAz4}rkA|AGK5AXks+APZCQ)btYK7<{h5E*xODR~Ds0vID9TkWIl zT2GQn(t<;?Hd|V{a-50jZ)8g9Wm3=v7Fd=ia#qucHnM$)Oeke##<(1-Wl`YJxbWTa zAF%vrrr{zCw$|d8+Ny&V3?qjW1XJBJs|!EBxd3NO#<?J^(%!mq;D83`J57Y;_ zvZh#_U34>85X|#AbRf#Q05qt7-2z zC%ndK*?A%bb?pI8(&bQDb0JDnOmjzB)di7ghK*oFLNXUg)Gp~5Bg}3=xjr-vjxA7$ zl~K`NAMEm-6v$%XE@7@gOda+|(9}5f5~F@2*UEcJt~Hoq5ba4vqWVTQAntaiIvDI0 z;~`=QH7N1{*n3N&#{HC`6D~;xv*}6Fdc^4YQdmMY{DuR#o5AK`Y~jH-{lfvGwVm*T zj>1LBaFH~vUR#WWUoagl4IKkV5-1m#=tZa9sEpUN@1ZwmS)v2x)wCet>w6GC9o=mio*gCHXvA_*fp34 zFxbUirC^A?0YT@Vd;cjFANWExka_GMie3bU_f|kns?E9uG-=&REyMt1gA(|N4Zm$TzRvqF|wwW#{@}*t`Ip}oIf3h3Dy+eIX zo(l@MQ=}YOKQ+yyqr!;}%^o1ckF}Hc!(XSMN4 zM;9a(D{3iR0-$4M6boT9pjBiI5~+#{#;*Q~xAG5?*n;yR2Xz7S9R9LxL0%^Ckoa!c zkHA=vuSoi~hOvqKQ|0edS~OZfjkHVFfe0`6GEO;P>8ij7yXs*Ds&-#}5(+AA5n%;o z?i$fV)9E$prgP&X9Nd;1I}4L;>utZa*e)?r=Wc-Q@UYTs^izD7bRQGGH=WEJuC5a%Bgg zJ_;U?>R@51v{MDT+|wgv-=84nQMKPmD|n%GYZqdqvdV%65#NG0qsYjdK|j0R37J=t zNK4~tf=@AmCMb-Ks8wyJBrA-?YmBaD^dW?KW=6MkNwUz-RgH8&=H7zE1;-PA+v!X{ zLAo3)3XT#hd5&5GWFdkkm|qBWa+!~y_@pMtc5_6&xceUQ4L7pvfy?U=ZKI8A&2^TG zZxIm3csw4o^{sJ@{0xOnY{sO>~55}F(^8BbuXgcOH^&%|v+3fO7$ zxAe3k|L2!wpdy-cH}|vT{&z_k+)kIMJdoOn17KWV9X07~Km`{67Y4|>dP|dwb#zvD z(%SHd=-Z*?hsKmoMfoB4gc!YM_I$0o@l;btALH@Sg(y#4=vXP;F}^ihpNr+SX~>{Z zDKj_0lUfcIN;f|=5kye*!UTc`(ZJw)o~E(nh=aIZc%b1(mK#$1fCVNE%D^OC*r@5M zvDv|O6uQ8Ojb4JZzHF66>gwUUd&|h@83Lb?CJAb1#=0=>nSZt#J_L2x_ZKUwF|vv4 z^JT+yhpe7pc(RFG6-Sd#TbLb};Oh*Ru^_29WuH87-{xPAlhi-t&tSHj?V1#yaI)q+ z&CF%5GeP;R5|z4jq!4~=$QCOFGIx!7jR;9nU{tzHuadM2nnHXFx9D>DSlgKhnL=;T zL(?um@}xHNT7idJU|%bKkvU0}?(D^0?d~9^Mkd_}-2~h?3r98<2s4c|p7HAb{==K^ zKi%J94;=Ik-o1bG?k&>qJ_f@PcCaN*e>fV{b}&qBcsV*sCBKpw*MR9eps>J3qS~Tx z?&KvA3u!QvaC^-rEm(+-k`CeKM`fIA;Q;4}h+iNA>e+b$sLDp)?rHZXF4;#4KI z0Jb?2F?uY;(I1~29iAMY937v*3FzqL_~`DN;oxXC9Q^98ix$2|xo}GQv^z83Mbrpd z+^pSuaZew0>7>>kYVIdmq_jcLmEe%0W~3L)TxI3l#OdD-VX?k_Vn6N)Wl0 zW8_US`9$*PJ}LPm3(2Mk*xryEw<=OkmyH{V{p|KVSe?}Lg1>pz_!PDx=( z*lTI;aGhMhrxwkWa)?DmHA8Uyyu_YbqJS=%7~|HGJW=2q$Bw!I7{WK#!@*VmS6DJi z=@h4CFU%xY;G6+9kPr03d-~K3!Mp2o{RZrJhMY?eJ#RJEMg$dc!zC%msS%L$H!{W& zL!?l;wrHDRj_RWR>0f{N`PBzjKLsMDvmZR%q%XCfem=1kQlL-L2vo|R7C3XM(<%ky zTIrR75}qRe2eb}U&L*At0aa#B>8%*B_M|yYhki*~N%9lMW<$I5#eV;$MeAA+(GS z=qu5!Qzwb`Q1i!A6kf|s=F0tM`|+N39x-_P6@vf?z;jObv_IL?j`B*~59;@I_~f&D zJD)%m2!8>%fb*&v=5#lygc;Y7iT{IZ?1*;=*gq54BvfWN$b^*4woAC}-q?icUs9hl7R!FCwWvDYO3 z_|e<bOxfKmLJJoB#uQbI zYXQ_55d!pJE~F)h+Q3qz#@<1VY0$+amy#vS+U&3-r=(dC)5-hH;i%C6^DQ`e6w0Y- z$y~dq5C|1Eg_k6J9h&eZLCk*ZL_-1Q!dD>{ow{=0J^U+3`eNdC(7iuJ0vB#xvBW^b zi}Nc8A}z;#*L(z2kD@4zg}u2!-Fj(;%7#3ARbR`Jqj8WvzVwZaPWF6HJHXrnJ~13= zraO?j%B6A2l-CAGTcS;6YiLv=!g+Bn>X8Ref;GmpA*f-sxPpRSmsIbYS|RC~kKmmK zG%J-cmUP->9Lhj_5JwK1bN4Q8f*$RZjc|ortT69Vh{WkJb{qSY_VF`v+h@USn}M7w ziQ`X)1tdYlTd`HpmU1Z0-p=1GKfM1*Abf%7sTaLb&HsDsa2r(g)VD@MTwdZ)M_Kc!tH$O3EiaTmZOf{UU;j_#+P0NV4$iZl=fp)nMJ-7 zSAAi<)j1c;8?%~Ze#2NM)4Gv|2KAtK!6&)gY9z?d3%$$cCCZD;XB!}AGnrbBfW zQ^k!|u=1T=7n;Oj*6lmC^l((3PGyP<)xRDi$)ofStJUruVBJ=rq9>hxf~N0DeMur% zySYUo_@Dx)8^8%JktFKFoBO}H8+?=wf|DcnxOqe5MqrWcq)30@^sG_tqB2YE>7w`l zilCvL2etY#c$2_(Y@z#5n9H%kT#kzrH!!vcu@NW3dFhs?o$7q1+k(pv5?s+sA>0$n zqz*lH@TyT>`bT}sJ`GfS4lN;S`_-t|8g*!Fut2yP>O~uXtAU57rtDBZ%g9{q zpR!%=#s{ny*fr1R>pAVlgF_@Cr@GKF76s+v63nEbEf_VI2%m6d#oroAIqBe)YR0Dl z)ce&|8XCIpso=VeCg+^&x_(U!Q+KLH!FS?6@0t}?8Kj=za{GdUhc%vjP;5_tdz4$PTDc1~%jib@QoK8Fgk3^{-@ zB0E)iaa#|LEX&#AGxc`&^*^e8{c)+!=~TKmQ{Z%VN^=#){K2fUd-BT*kh&MzBFwKd zJlZzB0#rko{&0GO{DJT+8@(Xk^P}@#%jXlrNS4GV@KQzaTtQ>~4C19!l#E84#CMAs zmI8mzu%;D-hH6Y?!ak4-FJhTkq#k6X_Fy%0|0HCHlp8D`fK$!hW8aN!E z=^9ocM0V|IujL`n9MP);phzddrPqA2zU=z;yVm|8DZ&|1Oz}@|?q9vN{F88~efQ&= zpM>oUYz>n)MJJ*0=`xJ%G{{g6aO<5Nj{>N5ryk%MHE|J(U^-cPz!cF%f>=*rH;4rj zWRSvjuT;W7HOQparqFll=G5FldV-w|;rFh1cuYQaCejB~F8RgEc0i5agg^KgY6uOB zQj^}D@<8F>n~kv%1dXA={TZw>-JeVJ_atucPpM(*jzk}~S91i4!r_PNe2V=j0(FZ$ zvtdH{u{reA<|OFyx_an=VQ_%U1ya6@ZEwOp;n%_lb`Yt`!8wFSjLkPiyi9YkLdbOz z(O-j{lm^UxFlp^wQ2;d>+bdxEpqdM$Y`da_*i3lZXy`Ty>s?tNgf0cgVe}5=AQl_@ zxI;KA*1NkyV|D97jP=SN+S(>eKd@qOJQTjP704Ds2ZGE^@`7_w)Q*ZE>dB*ewE?PF z-+%b@!~Oi-oBP>^_kSL}e)X68yVvl5|1;`<7U!0Iajrk#+YBn6%pw-q2kfj1cI~-+ z9KV=u*%Qdvu~x-KPaqB1P9S#>WS9#^vEL$cS;_+Pm!?~xpAUV2NG|8=wdt=KpjYrV z`}pw{hal&aF$yW5lA=eBnk%LxN2&!-5y+R_bY8|}OIrb?nlU#!O6OH|hILt6!WS_cx3Ve4fQ@8BjJBa(*B&IJ={(YsaIJ^0tO)2=y*M6J5%|9>(lp2-+8# zPz{4(z8znbVr3q(7@Naj}1rsLkIy!@ExY8Ot&!n!87&EMfjmor8_>U zXBiqLGZ#lTb-UT}ghLYr=Sn#B>G{V_p0GR(u;ymIxkjM~diAZ-rz4Gl7%nnB2w)f= zA=#Gr$Fe~vR*Nf51L`g5g7X3iAK!KQ$(3Nr+61n^qM7y0{NRLyLDc!>g>99WW?N0W z2RdkD&}}OrkuLXJQe9AU)uFqHW)0RB6AbSIN#!y$b`G%r0XI-FJX~7%MX5VeT5sX> z-)=$CxvG-!d(pw)l)yjV^N{_7GQw<*4MYdGtMz#b%))QA%bPaJ2N!OVS_=BPPmyNF z)*`&#r6N;6z<5nn70h89DvUl20}y&P{LnmSLb#=wH=kx+vNZC*1Hz1oa@(lBG6I8EeggOfonmj5<;Cm#n_ z``>2oOgBArUQK0@)H0!X4NLX*N~oINVVmqIhGHlbouEAh(*off-?`6+c25u7OH_Ut zjHn^Cl27ddJHZ4N74y8Z@bBp|H~6>$13=SuxrVbWxX3idO6=uYai>xxcZp5g)zz1k z+ORNLkoozd%-W2akcu8O5DQrB5Qb6IvQ=pav1Go5mpl(&FdCLk>dZLe(sGniwMq$J zsy{sJY~i_D6UUtuB)Nx>nz46XT7eGZ0Ep(-It)6aBG}M5lwV7!Bl#ToV)J_+45rsj zWn7ZDqQDAG%-jI#E9~=(frV@PbCH2&BNnBs$ue64=|7*2nREy^1v%g06f{ngFVA&} zGC+-36f%UHwdGteougl9D{4^Ts-Jih(;w^3lw)bRf{x3%u}DhEN7o(nReGo?g|c>N zZ~gZjD<$$ka4|cxXaj&GK5Hd2AZ1Z@?N$nH`;;}r5ya?Z&6g8~gq`QJswR9Kp7V?A z@fIFK-~y*GWa8Vg{J$wBBBzU4e{EasJPFuo@o~g816l$ZCO|#WbcGtxe%^fsAo5M$ zz54#`oppZy?jE5!t2_Sv=KZ@z)J6es(nZIS%t50hO9hKCDN7GZK-Uj#{0b|t~|L~>d;$n$~nXNYZ5?wZ~K8!2Q$ z=`b~~CTvl9S23uE21>dv!e#N`!{gppAHM40Um?}=4MU-J{tupS*&R9O9_o!4cmK?A zW2|5r(r)*H`gPZjm#NDount;SxI}p-tW|{y&0b;m@;99&@O|M9(-9GrU>c9Dgfii& zifPw6WvG7wHwrN=6X)-~yOKEPzfHEy5k15b7*;mvDMOqwipi{3cG4@bi=gnu$%V4p zwRcnu@tx8SgpZ0Mpz&tkc$-PO2|)E?D=eg%pIHSr1uLq*ap;Qf8$99dWLW9^APbS z2f2>?cL3=|SHwsiB%T!~C)cE;4Jm7ir0XiVv!3Bc@&b_4ONhCG;1iYTRYrEo8kY7I zyU7;~p@FybtgiQ$Eoi`On0N)HN~#@jRKe33*I6}b?(&c(Gb~H7YR-ccgI13YHcT6J z%sgVSla@Kdz#jYVQSPGdih>SGaf?$j( z8#H+D&$45@r{u;u_?L2k9bk(%hb<`KGF%@<$}UtX*hU<`zw$O+*O zW8Wl(n;fE7j**JOl`76fRXx2DMov+PTwbOo8d$ID1;6jvg4X4ZW z&1j)dNl(YlehX$CaI(E1Z6`E>`U5ww+I$r0kR)4bqJ_PD6}t0kRAq^0r65NN4>A!zWvGtBDxTySlv>daZd}~s6oT3wz!hy z1R0t6a7b5$Jg9|UZ!M%Oh&euGhQEUA&Y7H0qQZut!?uC6y z6l^=s&QSFrGK0|{aR&TM*gWOR+u_fvZxtGY`wcxL>Dxy+Z=D!$ihuBlRVVBV79oS+ z0CgXZOmb%|xvVS!`X;M$>$+e}UdhpqgyoFj;egqWdI$`!nKqUfm~6U2tr>bP9PTzJ zaI3ml2qBaZNPW)(DD10q(k_*#FCdpazU&V?or{=)%x@`-xL{4v6!8etGE#{sGL`Ta z{D633j+<2Wyqm$;c+Vv+5Jd~DJ*=IGlnl_A!*X{3@$75-R-hDqtFjfZC6RL$^H`x; zssgd{SWUT^hw92s-e4nbhpAtWShE}>>M0bCIJRWF+URmmkKipSe1JdS=Z6riyQ`F? zc36#%ELEPapvOKs3+Hf*9D#>(n0e|cbrsK49 zXQlJY3V58J14(8ejvRVohpCc8bTW7lwAn$TX=;6|HW3o*4+8wWpF3PaQ=z78k2s+{ zLej>V<_TRovfvo!wcfCo_d^HNtQk`D&o+_v-}U}T`EPXO6yx*)>^{4dOKAbtjBvk$ z)w7DOh2=^|$1H2atYPJ8YU*m3o=62;;m;*?`^gbFvC^T-e3wgI-Luu?`h^+jd8ko- z?J)TXkR6~Iogvzk17Hw`YgcvUb7~Bsr)20;jn9C*-N!foc88d}pBV&U8IoU60j$kr z%!VCCk@kIFGHqaSe8Kt+N+~EG-@T}Yx7Y!06ONWn^G0{hxo zXlUjZR1s>DY14i3mu9tG;|Q$SB&=N1i5so^3~#ImJ<78e)=OAa*-rwLbhg^^7%ItU5SohoDC!YL?9o zwEBx;QYrWF@-u-T@HzjRPZb1hfixJ zPtn!Yf(-@X;&LXC9{ri<3nkJFrkwUTvGB=20d0&FSy*oYyjYFv)%!f@mn%vn_#eJB zqnFbOd}KDzx6!}LTcGr$r_J;^Vk%N^=+#C$?4aoM&}~A>h(+(aMx%+lnH&Xe>ITc8 z$wAynBMAZegqk2*M$Y{jwmLV4pGUB9R!k2?cgfJf{%{Kpa(eLU_3IB`|MKcBSb<;O zzj^)m0DnHpy{WgUdiH+*SUvbJZ+iUrn{R&szkvI2cjy-B%eSs59_L=MU1-;;B4yi^ z)uD5Aco=h(+%@Om+sGys^9Dj4^*o3~xNn?(NDgJ2J)U!?((6!3p%DRjrN*EQ)tE?s zi+ukiJfDD{;X?cc`Tmg+jt6fsf@TrURbCom*NY+%SMv?BhQUZ+bs`KmmUR`~k+NhF zYOuzr@01b=-gTzica_p{Z8IOp!xmcnB0^Lug9aZHY7sh6N@){8KhlN|8R-ok7DY7p z!vcRAkaXhQVpYy`9L8+SdTg1V&LJMaKOXjUoqzvoQRWP?RlydJ;&G5!AP_q%G0+51 zBRFug$#QjJu{i#(BO1%+6v|=O+&8-V76nciRCE)osX4-sS}0xM)iCK*#!Tw|E$ygZBz%G$$)-y~)v}X=IBxBfTiDcxOan3=J zUwAVQ5wHstO%5SfK|NhaVNi|$+fgBvcl<#lnL$cWIavBIrsiG~ZOg zHGyqRP_w0NcrovIu|i=^EfyvR!*Jp;yI`S&^q4AIsHrA(EwCOf9WrH6{1BTH7pYa`8IpK|Uo7^0 z6O>NBISVAIsc=T6k77X6H@dZNi87e{Oclnk!?;hCqP2{O%@; zEzGg<25wD$0R(B|mpPZ0jO%nr!zcYF>$;rS%)DNVuo(OPgO1=O>=mi(OzWqeVDKAqo0 z;l|vc&EPi!@y5-{o}y;p(DiJCZR1{ga@e;87;iz>G2hKRC0O}(Bb>F7Hd9GOfQA2# zW7@n8V$wMh2_e_S_!=(L6X@9)H$2*|d#yHT6&}ftR?ctp=gRikrkddLHjC>y7_*{0 z6I4ms2G{GSUqk7~TRrtguuwg4i2rEWIPi-sBX~ffvRi%`ylqp*-#`8xbyLto{SK*M zJNyp(*{Ni;<^{?!J_pbJdf&66QbxLwIb=+<-ItRcB)(t4vdHL((YD0O@gjK3OgzSWXHstsMuRJ#fv^rpoT^_Ng$SS1>)wIF>{?Pm#&JfBHl$BTt>@ zh5G)(o1cEZe|PusqsU7g57r}7SvTpUoUyfpKqV7e0W^vbk!Hkwchn7Ms<0`E;Z8MQlBeNPI2PHG+;8D};hcv!AKi z9wo5uDAgL=NSL%IVG*vZ3}v~VAcjTR8@FQecB73wq(dQ_)hsTIGGx%=>jV05&&`&? z4ogB95jBC@S8~RIGmD9@5sguU)SCjdxw9&PAJJK(iGjIs0>Jkp-48h(k&tYg#;-ov z)k~zrja+=GO*@9Tfl9}yz)&NTCRAff@n$y*%W%jC5ktA0)rRXfo%2vX$PHiWhx*<< zoor5^Qe*Xr)eDqFtZ$=MErHazP{YE={d~7t?6xcBT_7QF4hNMGiM?QK2Tj7?3{b+& z_!KO>gv)1OYoY!>>-5}lkY4938Idou9P!_?I$F~kHRS*%v5praY@C%~c%~KSL$InsEaB;KQPyC)(-WsKJY9TH7*P?l~S)6j%0_?MCi@2mN z#n&GC$8~0yE`aStPBqI%i8zz7tK%+`yO%y~3eWQ|KhganpOyzJz>Bi9I|Qh19{!&AG(7Lg-#!_kKb4 zkoz}p?|KJcy?g(cugcB96c1Uf`+bY?)Nwc06QO}~@VwSPlLatB@W9<;pB7NtntPAJ zKJ=dm69!AyY!J>ec?zNt3k{2>BTI!pG$V5JNjEUfNu1o#q5|oC?!MCW-10@@%jLn+ zg!^h!Q>Zxl#TG8oD@@Fn1ToM6=^Xi4@CPa%WzRKua%7H5K=rDa+ zG)%Uem*TQ{7cVr0O3w1kNS7l7Z?bieR|tjAb`CXF=t8@_#ZJ5FOaIRt_Wx?mI`-P|Fx$FF&%<7jaMx4lZ6Mxmm&ljAQQ{;|Z_qRT zPx%bMkVt}a*Ct!#0|5Mud?Wf9j5%?sK2)!*ozsO4k83GV<-t*A#3DD=QQG)v3Y_M|s?^ z4IIaNSc(`0#%Y4Y7y_-sS;Gd+8KQv~A1U#qS6*n>u|^f#worZhtDnCrK2SQTYMC-! z4+D9&*?Nn@xlOp?Zl(e zLbbV)K6b(pcu2G80OKJTW%TaV+xI^`oK~dlL&=3(oX!qM1vN241)a4p zk#zxoKvG9$u9nONzEy`V&UFqiA-5}#p;RYr*gMRC;k%u?p_&IXXC+OFQ?AY~dMtHI z=P&}$91{gS555^5o~G5X#ljxZTGhgeFIe5hpNoA6MI<%5H80G2TCiMSaXe~ep^z5~ z83e)n@kGyj6p8t)JPLVBJ|Jzo69FGUe!(Uc9=LcoBu{FzftBd@fZ-c)ElyYs0ID>l zD&iD2?QCmJsD|&FmTL&I3=;!d@@208>WWjE%}A6Z$_B>u8jXsC71W4K*K6<+{wt+W zEv~=)XZOaGYf$fZzmsyX= zHW=xhJcr>kEV(W>>si>VsD^V5U%`gCpjewdJuJgKs_H1=byzsEdB7$STWq=~BGW+{ zhYc$Ql%vhk{lGIC0cbZDP*<&yyOu7H(!q7K+ho#SL9%juc=>O&JP(~~sY>bBCe9k< zbHf86+RRjUW@^A!UHIG(QVI;YgV~vjibBWzK^QoFf>4r!#{t{?q&#WGw6}rwg%KMH zgNmj}N6WX$)zx;HDYC>WtgiH}16HmpGb!=oF0YZcetkI_9Agx3-o5$wv!X|p_p@q# zgy0|Z@zM0BD`S9xsX+%?;&teU45m57;gT>$%#8z;e*2MXHc<($J~)e(0F&DNNPkJo znza4qH3}!8Pte=*YVrl`hZIghmFxn$xLzIw({$ruN&pPb&?Xb>*)5N#s*H;keI| zH(GfO)yEnB@#t`HHW(hAoD9#72WMv|Fw>l&x`y~`CGAsqf}#Qo1WaWQupi?ucosHr zwVSTy%S-cn2HP>2uY3+jfNX?Jo=cfh3MPvS>H<7sw)aQm{Y#^A@jGR;Kn$*@<4sz4 zY>=ImLjp*PL#-`Ctr5MoakCv9C)U>zTTAUZm^pJ&UU8hAyl4Z`5<>T41J!WwJ^81Km&9nm378B?pGJWO7mZGJB?C)>hzgyqG|4ZONpP@_* zQU@)ZD--)W51h`PCk+pbCl!ql$I$BG=QJb%@y>}e^aGTofsi{3-E%Y%lT(HPk+UYq+(-Is{CtN?17ve9gPtSUmy23uF0G;Bj0b<}U|@!X{=!FRi7 zGLkoE+2@9z*WJPONpRMJW*hOD1#bYa45J(gr~&6g-`|f908(dHs8j}|)D{LLnR;k* zgB)J`)`$73^5{lTpq8EvIN_h&3Dn)%p26xC`I>Fpx}rI3R@@CbqlPNNS>Q?d3Q+h2 z=Sghfn3y<1HmU>ttvDqA1^b6OW;EiAVF%n#1a^;3A)L(yO7RIDgQQ+VlsrvQ)(>fx z@cr@(PNn{ewo>(RQigeC9Y$zIG%2QL0aaxB*1K1%-}37IZt=_Ahsg()a^b5T`sO23 zf+Udn3&`E33LiD$8te&{wD_$>k!&y3>DATs_6l)K(*Btm4Rh?=A69|OloB89HMK{f z3NX)nbme}2Y1kty?Onk$!$GrRy@HnVQH4sp$&mOV4rRG{;XK(Rf?>ZRf~#;l2=`v% zd3paAct5glJW4}_H}S#h?kD72`TG3T$GZ`n*5Ov7y;fcSu9uvTsW9MF%i+jxrY}S2MaeYo`r$db<4ViO?Hz%!&A6o+CQN`ziL8|d1l5ueYCvhB(`22(Y(L7nawYHfKpN}K^eDOqQ#8P zbK*sb-i%iPYEjkh0_SuQcW4ev(PB>*&9xD-<;4giyg@t)%#zNvppC;;h)I-1 zr_sldpoO`da;J&Ea|zDb6y}>yqKc+^UjA%S)C+Zzb>ilRJP6$z9uCfJJ43Z|l{2p# zHK5qRw2Qvtlu6k!3_?q7oV6IIPUM9R#4Izgq4vs6<6*fqv5_QDa+DY{*0UWgsWkcUBg3VE34g?{6Mm2?>PQ~fJdrP&i;2ER12 zL8^VsujW(5!fmD~#TdwGI-eoGwaNYc0g~?Gx9JA7LB!_r&BSED>Ld4OB?&Oa6W(`o z;aYwA&K5h+^U8&@O9jcZS}0~yf^Lub(Zp78-DX_Z5VCzSJ^pk#1O;Qj&rWKD+J7iF z>yfgBc)kgJIB(6mEmjODbXdw8+duw9S`2au|IjJzPVO~V@RV&}%n$3^0V8US%EWum zU^yW~qtZ7ecIU7nvrU+8;F3giWSUHuY-*T&HQ0d^GGVEB>$AX<+vuPhlRCp~eqKaG z2ZJ7-{DTS9!4Ic~IA(U9o>&2}1kX=dEJ?XMnXPEOd784S z`Foo%eUB?6UUZt1w8r?*{cGF+is*sEKy8sKvm(!tH|wnmE@4F$=Wh^eqC9ZU;c>y% z%PB(nNVMe2kS{|Izq;IwP(GF&OHOgs1}(?5COE^}&JniGIM%skRyiqU32JEX5G$Q4PG*`EfxtMiG= z)#T-I7$bedEJRUSCBtPd12tssvQTPZm<(z*B0b>4cut7Uzq7hrEW^*BTi> zEP_6T#|*o7zM9^u2wNBb*a3AGyKwdrzsQXS{?44fD0L9e^RTC+Z9_3h`O^28r<3vQ zwkFRn-0 z&Ze!WL7lTdJ?}&JJd~YRdysPId{z|@%51^KRZib?!OBco&cwDx`Hswxcc`e$p|Da> z6+VV?oPf-f4B{;B)~l|xkzlNQ_AC-|o00~{F+l2+ms1|*r%00EWlinyY42=_NTpJCx-+Tg&2#yBQVsa*0%t{mV=rxP_6vv8YmO|}O zX?#J%I?@B-4gj#bNoc&xR6lutU~j|uoI@(I&K@Yr5fjN2Seq64 z9Mf1~C#&8^3z)x`n{fMpZRr}054)?yZJ~|d-$^s7L72ikhYaqEc4V+4F*HItDDis1 z48PFhxVzTZi^b;BlShUFq2C6%{@LKPCI&S~-)QGPfxw%+Ma6TK(XiER&@#Pt|q&xryz8#Tq; zisX4fAjbVVDMSP0QyHYwL@=D3N^@DA0{LfEM8#e3cyDF+FjkY^=i%@Q!=$;s((6Gq z`OS}V7b=>eg|-``t^c_9?>0-;4q+IHR)Vzu0Ng}&@HI;>%u%|u%yh~-+2qy|m$Q+CnK>+w5EL!6~h zs7iVZ^^ZuU1y&XAvHipE-Rd(e(q+ItehEkt`=OYBHV{{<5!6~K2kPA-Bd#Z+5NI4; zp*TXDZ2Caj*^TUgDANPt|6nHmxOQ$loM{=PBXOT$ZKxpXoDV8pxZ$yl_}NgL zniCI(h)nBq&$M0w<#5xuq10AmU-c^?gtaHZ;>&5eQiM9oj<_7sIw`?Nm^Brs>LJSQ z5l#V;33R&SvGV4N2m0F8(7k=w@5odmR@@q0+Ajyw!?%uv;GMrC$vJymCG7{fd+wXen())*h=yB+e zd*6Orv}h1Xi*UU~pwE6KLk2h2m4pdg19QuRGAV|_n_M2sNK1ZJE#U8Lmts8t3Ymy@ z9Btl4^S_sP%eIb}V8-#n{TK$&6*kSj*F>+!LSv4|aKy3yBYhM2qnq{hd;`z)YkKQP z747*16;8ux8B%;*VXA+`IHltprUXj^A4*?9XY>59k#+Cn4o)F57XTmxsYzC7FPJR} z8S+AiR{%Q&utX~7B7&0U&w`z_Wx7iHJjEn{xfABroT1iBc^;aq)=!*&Q~ z9mVfexE}l+`k*)__``cTDg5Q`bzo%*JU+h~Hku zJWWtOrRTHJ$}C~n)QH#z4N-3J^XxoEU$03EV_M2%MZ0OCO7brFmLQ^`%kGV^>na5lFa zK3@#-6kbEa)R@BcB|XJqIoBM5C~L)S65)+MeUAMKRb(Bq_VMl)gsky%p}#_Q9@K>@ zd^3a!;3aMV=8G=;6WbDF>ADzvJ;x-+i%ir_!fd!qHij=Gt^v96lbTv}wd&O%C9 z<5?a{6?_5H2xJ?uOs}Wk_o^#?2gg7kSqAwje#q0$Fh@|RA9LdM(o(LY0cr9(U<_h# zy-j!q$P=+n>y|*=0NU^}`+!uRMBpw?Th?TnMa73-Eykg1n{HOLogw1<|8kUS@9)U) z(TalouLZhkA>3qBY^S9EV5tU(V=_%4)+CTr959}>*o3$TTNg!MXWJXg3z&Xjijjjr zC(QZ7p)kofJ7^43JofDEr;k6cex1Gf@x6RPfI{IhQnUh%q3yV(IVo^iCp`8!V|9+* zYGkO9XxzBBA&%V!y2wq`vdRtGrip+lok`YJ`7A`ekA2>$brZ{$|LHv=RW&@9NqNh^fTZyz|#yA|Y1|uv6Nnh|pS~_Ux(0>27XqLx;Znwr3?q&W?qAse+Q;RkLSmnz<{b@a zy2X4pi1n6ZR3PHA<|c@dqwUp3(wj{5AWa_F?Ow-{+?ao$8(dgf#^a;5)4f?(1k#8) zFx-3teeC}$*ey&I`#3gQD=L@_h{EEm2FBnEIA@fUBhJyNfcu_mmiH`BOA`ca6uKBi z3M0KSZ7x|RA;VGj;Av6FmtX}BprwE-&TNt|ZZdv_Q@OhMJ9v*Nw3 zv(k5m-z9{E#YW}m_39xQM?(Cwbg|(`ac2(1T29`83`_WNggm>3Ha!}%IePDO`m0u+>h78b@pmKlrLG;-KzOia-lk;8YM+Wk>>SFY$6 zKCSjw?tto0kcK%QHaN;;7){XA4USAfaK2t)Fl!i&F*W*{z7D-}jPiDjFO8YAniJU( zk{d%Sr7$uJERyNFj720YkONccBOVJxC%e-hL8F2*1KytQeY>xz#RD`H(yu;#y!&v! z`^&2jul{@hB8KsycYO~PE*<^Kw;->Qy!NH@v&Z8mV9`)iujb!;i>M0JZHD53%Q?T6 za=I8AUlTk>)xG!{MrAzwV1;ey(dj$kBwuB5@gb&y!d8uSRd*{Pgb6 zD56N7H|L!LlH@)o_O1+^!0mDZYebVrrl;ja+5?A&a#w)_d~MO`iTw}x6E6&y&QGDp zIqW*bMto9HJStvJ#oBk^nI_DccDP%j#6xUTqfOl7WQ0Xgh1-VssmjK#z=RviEE^ZkA2m%a-4BG3dfMMe{NqL9FPa0CnH;Mlc9DRHBARi$hzs44A|r8ZID zC`sAnq>BB(w3IN-ERF3{wctsZi|Q)xbh9E14$X>TR)m42m*)YonZxSwhtq8)Kd(No zKOn_B3NpaND#jNos{}%`ch9zSEa=UM8CGaz;Krp#zfP1pJQUyF1=b;#qF810(k~H` zbY-e!^#DprZnX%6LCV{jcd!W|wIob4X4+(^l5ud}zrKqbXtOsr0Yv7}G>c*u*kk%( zfAL+wc$Vb`>a&5*g;}dHU#5;*PLN|=GW={bJD-hblLUfn0$m;*EVYNoRzLvI`k}GN zOR6i|!d!IRX9~P@n~jV%@1$XGlaVF@Q=%bT|N98lQ zC*K&2e&tK_GvJ>-TA!y^vlS=7)^1Y@NLi%jVDqFs8hmT+b#t`Vi+&lP2_F`Qs zvih5zs#jRX9JEYdEQ!^SB+z%lWi8hAvP{Np(14mv2UvPEiOkoAJ4wVI+ESfxV>qNi z2eBzN=;HQFF)REweKDRsM>aF}*-IV{DcNc6pv~bQp_73W1VG(P9yX%`0eR&G-|1%7 z4i+2GqE~}IHWy@Lb>lh8(%nPHIh0I+`==p=t z@q^IGgV5=N(Ak4f6ql23zkAG=;gAVLz(SENby2 z0HMTbCZQ0;psehrEo26u848%S>6Tf;v|1GF3Q;lQ$P@R72NVC0EoF|fm>-5xhad}~Q;_;IWTxpC zPQ{*ZODWV%Qq**Yw!<`pTtdtAYS>RU5$y#d6y{9C2JIA}zm&!&8h~u_U25bdJmdbw z$%5Hg*k*D~e)8kq|7`XdwEEaQtBNtwU~sy~wK-3~B}gDm2u=(*(*yjoD+&a%RYoHy z4q(cJTNWSU9#xtbHR}m}s3@C(t+-i(Q-DY)v9M@+v>qX&^2?j?n*GYqmckfHb|eAmRL63Y}aK?&3NwCLgG zxu>RjfK97H1u+7LYW*-9N;K>#PQYV!<6%2$#5&0y=BSNr)Rm@oKDO|b4cb=v$udH) zGmk9N$WmrzP9R7U6QiO@inZ;F$0uiojuHn6rs)d5)5}S!P$N=tCmYk_9MbC=x$UlD*R@!sc$C`a)L&< zMnDQZ?sx$;YBsS96)fS`%VF}SD`L7!sBS5?;ds}se;HfU9Y_?MI^35R6tAygGK>N5 zF$D$jTQgREH8d+Xq^R+DqVz@u733C^#}PrkDxQ$LGQatbl!N z0Y@k?G0LsS&cVa-^6}9KDzV_;6KN+K0l_EsmcpV1j{v=^YI1^t%?`ICQ=)}|ul$M* zaLokzR`7*wvw=mqFXe%vZk;wsjmUH~aL}?3WV|{*5OEF6hR?Y{E`I}(UFAWzdjG?} zhV_axm7DzeVm&kObHC8X2~nYe2MS_;RDPniK{O&Oy}{zT>yhD}7C81NJ@SbCcjg~U zqg-Md17v;i6*(Vlld00kQnuKn0)po*GE>5vwVOJ1fr;w&iR!^W!yCxUrHkv4zfjaq z$9FrIeUy6nVkotc*&CrNN5N<=Iec}9TV=-lWzf|69-OCxAt{ANVjb2^-k zldARDG+R`-N!Uq0;&3FFN;07dnto^;aomkM6v(Fls3SiiVKQ)lajm2utHGnI<<)bb zshsjH8gjljS+N*?p&VA#Ra!LV_e(StE*oN*K*hOi0*X7&0AMdY>15CTZ36?}?L30( z?fZ8>_4F4C(wMOVV?@dlI8O=Hxs2$(R9(CotR*CM+@%Z+mGIhwUMF2Z)8jjyX~HO1 zLiYA`^1wPSl1@p0HSHKu?+=n3LlMXj9Pt7o4UD_dxV2C7!9LxP<7jY;d*oZD49V z!MHw#G-#|&p&&H(GNkkX$Q`7DvQ$PmAX6;m^%6l4)-suT!Ra1IA7Ab55AM&6(T?sDt1dv0XHH*S?b+UaeHwT8;(E$@Rh8O%k zW~2p^%Gkp+`-3_ai_o%{?H1=)gtu-X+WShnfFSHMhmwyVTT0SCoZCn=SoaUA9MI|( zECr@*$3idNcNHDdZk#Ur51-@$oZnV>kdgwx>aUTtnzb%MdB)(jl6KTEye})Uno$qkYFQpqQc~Ch@vJJM>d^|uB&dPpk&Ljq~ z?}U;IT#3%E`QA`iEg6=4tf9&rffL*ldeQ(H|3rlj>>K<$(%ZM+m*R^Its;MBO63-0d2%wTfqikqyuR??6TBYRoz^5MQniGyI7CsR|r9cVE_vW z>X93gp`dQ^IIr9&ibngFE0aHzx(0+ zr+4>(@B9Gm>!m>@5`5CO8-zBSsx&hKQfLwqxx1f_m&nEV!>hM<9~#&NkcfN~_prTT zc*@k$Tyt8+D1l|d0DcN58m)SucnlJ37U;y3i;$k6sCZUaAu#2cLmW|n+oHZ^_xkQf z6gYVeEtQTjh5}tC`aqlE`AvCXFP%9RImb1b)xa6%^(w9vc*1>PL0v2(3Fy@2Cg&re z&qRwIE_m@8rm=Evp}|HB&u(>{BB=`MSO9ec=aH@s$zlFb_7yr+2KhG{D)HglG`W8XjczTqB@z6mOlyl_%adt5U!&FEVD zhMy0o*q7}rrPiuX0V1XvjwA%=j{hXY8y7&i(FMHH=y_m|+`a5!mPj{yQooJ3qXGW+ zy~O#?JeG@ut`@1%A(S~);O?x&YS&D)2N3vJIEp7R)LSqu&5Yral`Y7zS+J8sNK;`m zz@l>359s`XBAR;jVg{s*VEHAg*p<=K=`R|bXQ;)dB! zGk1MTDwyNvi~>5^OQf>V$=)nEAKpmduTeq9#QwN+8b|6W4j)wMf#$1f z421;n3Q2*fl!&|1jDsgpKA3%L-T@6drf`FkpksDr2vxRh*xY8+M!l1UKv+>C?Nml^`u;P1^#ZY+8-5n?v#JsM0I( zTpYV>W}JUZsRZfTveo3v<{;A;VbSawAj03sedds;%k^%1ML%6g#VvIYS7NcbK$u^% zlQY!J_d9|xqr)UN5(Ecmc6N;rh4iyI$UKvgsI+M@9~gqAi-g<@_BtIoR2vB=h^y@i zOmc49tIW9BZx@wA$>}m*>RN-39tMX?*Pgr29=^LD<(~K4-v7+w2cH?;@H5XpIt$JN z`10ZcYtjhIH4|YCj2O&l^$=b&oQZt&N88DKf!*YpYf#0VZurt~?du>XfWl@zgw5p3 zqZx)stYBK{W)6<)zH6r&fce5)c35I(mUsnZqBUH`UGE_6E1?j41FeF96=4~v#SWEJ z{-Dy+F}PFYqEr?EIjfFejyDJg<1u-%m5i$ltJ5i}Ib9pxklyga>m7!LbUbzmcLQA(CmUWs{IG(N zGGUpgo-n;Bv%6wr4TogMvc$rF0q^}KOnrX-{~?CHenI}aZf3sdZAu?d*h246Fw~^I z1q92$H7ZN=K(lU)s^8^YYu!bTX(mrXmxPq@)G3J(My6u;taXB93(@SR>dEN$bcd=( zcf!+MFmT0%A3O4Bd!#Ee)$GRG)e54QHZ-`0J(Pyq{a`>%iRoUyD<`0s8s1*P%8lMO z3B?i6_S36F>Nqu;mo9ZILq>vYK60&zK@YWrOGgIr-Mqa)8S0B0xIocr2Q?5gG9A1^ zArW~;$`021c>m$k5BEJ(m&$#5zkhsS&|luadCe=`^!S@^e=(z0{N9POV-`HG&kY6sqg}HP~ z=LXp(*SE{-c|X$=D%V6zx&VyKG68WfH{AvHyUI)~ex`~|${Ra+;ND?>yacVmn3*?5cQ=!QuLVU=Q1M2N&t0d)B#wlWO`gA~1`EW-nb&bT$( zgW+nnAMfc;7k-mvEG3StGEPsM#(u~?0{bb30($r3tB*}Bv_%`urX!YT1MP53rHI68 z7jhri=7U)D#VN>*$3bK`WhQ5MxGf*dLH^)P4<#YDsezaW4k^3Wr)$IA#Yng^EzM3j zRPUfEG%1+DSm~D@$PM+~1T55dV!(Vg? zT9!~TXN)VX^MbI2`yPZ;!kaZpsEvDcP*@B91)4G(~td z7)D@A7WUcePGLaZpe+E^&=p>f)r6Xld!lI2F4LQqz}zc@{?{@?1=1t!OVBNRTIQm9j9@6P>w4;gpGdq2mF$4ON2 zkosf%@s^GObEz&GU!7V^dWm38lBnvxBv`I_#BKyE1JmKKOrw!{OaE zhm&y=nRMUr#7e)1_6DxWk&GA2blP_4i4{FR@1bU-2|lE(IyUc0Pf3+OBtUB#$#`3XlG;vp>nYN6fGyT5eMIkZTxG&E7PY|#M1M|~O@QI&v+C{JQwBOQl@@%fJ1 z*C}>g5jkkw^Uj!XGJ|buVti2sIjeeHJdG#5rdfC!W=&jthrn|$W##orBT zX1BONt`^z=;*w^F_-)*&UrAM_u1%5t^S-Fu$iwsva*3r^teN0_cLVNUz>UiigLD|0 zePET@_wTY?gp8LAm&#t&(U85YZ=TQLtA2OC{P5=ehd1|s!wzpYxd8%XfTA1EF0T!W<8HH1~U_c0eClLK0{`3N)SC0!<^T7rE|)N=(!$a7Y6pu0#ZW2~Vd1 z7d1If3>b7)OfqtLGoyG?5#hHjh^1l?S`24P1hu7~Iy9LH!MPF-LVu?w*|O}WWe-hl zMu9ln5O;DS@GQApo|8H1{r#U4>K3!a8}LH{uc2Jj8)pS>tq&t>?9`!9nVlyCFb5a- zos^nvdhsqz`Jy?D&r^d_sYi7l+wd+?tJ=~hT8FjO4G z128K4G-n|*l|RLYp;t4xYQIjdn)pp@u~T^MFP8DZ{3N(B+tYm$v|iPh^L`l?&kSnC z`guGqupOdLg!S~VCXkCxxpFeTh6UjLyC2{DG+v>kceCxo`@e{0D$n)xjZ)cI{x4J7 z#7RFJFwg$kFcR%6Iu`FRc{YrCHMXr`+Ax{CiU}_xT^b4S-G(cmdEf*MKnvDb5r0x@4xvCU^@JS>2`LHow03@$SR=&A;9GzTl0d`eo@R z?2O-_H=($Z^d>3M{NZO5ClB5Akmf|ZMnw9@8Y-J9){qPa&?8RYmU@nQ5gR~X7H%Vo z5yVi6O(nZ9X4QuI%@)D$k}LKBO$C9Iezm6jP!JE5i}jPI*k2yCON32b!R-sNFLbW+ zOJyD?uD7IuGi=#tD?9x{j zh{zn2U_A>Bi`Sijx*CDRRHHE3jj$ z+ue4xDAZcm1OrmI5H>ikz53GT9ibjGxR*(#XGtlM&!tF8d1}+joDzkI(&8>U;UW+k z{w>(OyWR5DPj@;!jkev{_sR7RMxPUNlLf}$g>6)Z_lrZz3}<5RI=sGzvHj?1&P}R4 z1SP}^AR$=G8`pXVcMVlJ;vR4^KBsDlE(ONoBZ#%zQ&sLfcalvEOSsM2t-kfN$0^`n zn%j!iiP&hQ#<)OPrFcBV$7=s%Bbg7w{1r>vOF0VP|HUZW>VpqB@vO@oD&U6zoHB}7$k5=9XI@EdcH&@a~IYfNt5OS z#WZl7oRUIS7t2VHoFmjni^KqfIb&UEmbtJvM9rNW_CiSq!qY6sVojQTX*yK$csO9R zgQo)eQGdcb1n;_MkR6Qlc<5kKiwUF=RW%)^C{AQ?>|9U8(58x39)9machRhekdeai zSfh#|a?{w)EFqn+91z$DhA7(aI2(tEw{p~+vFTv5YUZ`8(XBe@y^Wa$s?olY28jpB zS0LJb^5BXxzb4~|ND`!YJ2lb(R1T(z-(BfU{TYst4X%1EIL1=7(~Uj_TlxIdFb%a} zPm+VU#bw3>;4nFF8u$YEhta_HQa18?ktdYmFV;0%DcCMr3n2MEq_Wc<_F#U`qZd~` z4P+vCBTieHlCDrV0;-JSHV3s~#-^6{@)x8D2wep^)S#63UiNslVG(mL1=f1G>SI)DhiiFv^Sb z^?-3159#QThfsSx_}0@hLw;RAx5?y%<4fdvrkWw-j+f)cBArrkTvc$4H040 zK->{rHRAB#h=>`YFE+w)(gkodKZ=;@GksjBgV)xzh*F7x$)2qZqR%0{3ThSQz0Tz|i0w zQ>KeXB9?&aWoF|Zt+2pwj+@QlpmutyokX8J@D%1N9~XK}qR~y|0(tI~{YcI$=}I?p z^Q&ON^}6X|T7fh&E+`&2d-d_2$#s{g?_;v~fwSce;MYI=`L+2B@n5L4?N~ql7qMmN z3@5+oyH{|RDIdA#VUPc3ao6O{$1lAt*mPG&l+I+w;83J9`3?FHM7m1vRn_f~ev+}#6{($F{M{f`shmU`!*)P}zhF6Gn9!W1 zuq$mJ+Ki`ba5yM*h`&f;wNoR@EcM7SGlder0{h^CM45k5g=i{9QtG#MX+qs*8aOUZ z<_K`;WpwjnoAS<*NS}wd74*EH9Aoir9;eUQaDwG1!q0*SF-|cDL14{KfY*7T3XcJ{ zdf+o{MyOhVY6Wu2khkudxfq>5PkNv0fx%yGsKLngjABnULBxF#@dnd{Tmlub+6;#i zKjOMs`l189G|_~pY=Ze>0uzdpcZT%^mHo?a&bF5@%K~3}{N?4gS6yjK3D>IDC43Rw z_UEN9k<}bB0*dMsl(=oz>F!W?`Z48dl&s};Adb9QK>8^%2wPg4W^1A70A=x*Eel#@ z&XOV6x+0b-F7;W4p^Ky^wX(1)VTmKi&Tf zj$rfQ)w_?-?tM&b%oeBOYI<`4J1M{{OFEmb)|uTmOkk&!XVmgdfKG2vz36(W=cFsW z*wdIC4}N9-I;r|^7Aq+>v3jT{58qMR31K$w?SVquK+S^mCdwdX??3$2{lW@>wp6iC zuHkm89oukX1yv_V-6ea$c;w|oEzT5j7g!yIg)!43o*}N9emN8pu@jINa$4Aw>@r)F zAjp{z)`R4kE|}6rT$wWy&N{)|9jB>INv91iDVA)9u851k+hG*5Ps!&GOaY2V2hz1G zO~1qo3mBm(*5bMjh2IKL4KW#^u%Sa=kC}4QQNtzG>pDYXBh-#>F=)M3-ME*x0tMN>EQ6@{^rx4zelWmG~|US zc0(ygVHHYVI`U^@&F&v-g?N7U@zTc)&9TqVfCnUY@q^7z? zu1P;ZwI5KGyrJn=ceqta{XXAY6t4$h)uD^2mmZAqT@nS2mD6i znJRYEDdL*?FeJwH=GY|2sA~tn#3sy?X~qoA7DTxLdBg#Xh_moN7f1fTMgBe%myj++ zTf>Q{IqnDRnN8_l%K`5G`Zgmzhc$VMOMM?_)wURQ3NXvzT6^yjgicK&lWQCx|6bl! zh+!mFB{a<`&)fvr_Ui8Z*np^Ofw?kLQkguYX6n{%|?m08D zqE=j4Gs>yMu9X`AzKh}H%6Pq+FW}t&@&MXx{h-j2fBzG3U>`A7xYN8mVS>K~b2bkr z>&7+jZZ$#r(apfS2GjF64a%O79~MuQ;FK?LKRW++d2G`&8ysWJq#^#R`m_9I*heA{ z;U~=FW{N}|35n}UTc?m$;f{t#26%R9Gh1QG#dvt#$^lq_wE8YtFpbc#&Q4N6%DxK0 zJ~K`rvWI(T2dTH=EX{M3f#o@i+l#lMQLae90^h{#G{}>vuBTd$oV@-L2k9lIL4jsK zZX}1NP@(h>&yo%WDikt_q*_w3o1!*Syrot>%6xj1etL>h3QY&q7T7;hs)w^Z>_26r z3TB^|)DllBeoEh0!1M+k&&roe%H}e|cm>TjSvD?ujEQN(T=0*~2f0Q_ju_1OcYFD# z@3VI-3G$cw53k?+_#=vfaAPu;2(+@zX{taP3#eIyO}Xbu_^=lc^&|=*lYkR0&#t5E z^NLgKgHymgWa<=%*iJ^8KzSC5$zcIbqIboG(H@PeT4zuY;U_$jFIT;eHcbHV4;eK^ zOu{-nXHs^m)OvM0?bT|}L~suIfjo&`t5i#L+icaRC&7aME$Nyvd+wH($ip>XQub)H zq7nEb6nwPfV#c8hx?kP>FY$AA6Z&p1pY4(lL*&$)(BWRAQZc$jgPf8(frUFmrbqC@ zr+))iAZ1tUN?xs)fhdOOosVH_+(`>fUxCD)^Em=(xp+#UO}yn9QN2)xN;QB7Zjyx;SFAvY) zc{6-shsKN|98e?x14m{qmbjCV!qP6#m;?_8M0cfM1dBle6pe0Mjq7&-6 z$EwkBnh-a5f=<0n8)&=AJ@(y~Fs}4OPM9i2+&vr8Z1 zc=Zy#qZnX|g>67e-45$#m)f1Er~QaXgNc^mPkX$Zy?OWMjLU{(v|C-YG>Jc(F4uGHZ&`l(&Xj3N%pze-GE~q0#0sP*k)naP zOp#Upd^>~ohZ%e-nsx{)qF8<~>JX_=Yy$P_nhn|x#t5Kh4K^le5;6uqG0_3X+_rA@+FJwDeNE|#u@0a&)U){fXd)GVo>id8F%YE;w ze=xA^8z`9RQ$VgCvw(*f!XxhS_@$#3-_rp4n|b7Bpd7Ec(}~t#398YY69I{(6z%n5u*N1 zx`Nc>{jKRRr4-rQ1(kWc^w!=kAw?ChZN4Z%U?1ob(XbD6iNM$gx}3;m*wnw>kpmPR zf?-01AgsCe0%ci~>)})Et~tGCgKzt=tzgSG4M4Q5JXlVg_t5Cy^Pp^O-Akkg$-dFW z@o7NFq!ng{A(;@lNQGiF1GPI`y5@$u8QmgvQqz00ql0cVPAFXT;FSEV!Wtc5-S+Y4 z_aBf|y#I)Xb9AEC@mw3OYgJEJwN$rGI+&5%rmoAQOlX{bpBE5Cc2H zmDZ{X9(*%A4StJTnb-=UE{U3A{=eAGR&^QN%Qn|&Kt2{!*}MPqUq0OZ1b@*wh!rc6 zJ#(A)Jmg{vB?X8+<^>ur=F)Cl7aNOs@H>R1Bj#@RooRFPCAO$J1wwB$j;%{~co%X| zPI!`P4u|AZHR?@{YZ0LT4D?16p&^btNb4#JxP-g|*1A_-=vmwi3`IeheXy^t_Q?7( zhuh{Ng$`>Ul{ZVOF6|Hwc?v-^h^6V>;2aWLNTz11nV->N%I;-1N*{m+M;@kuZ9Dg& zg@?qDZYL`2SD8YK!`23NG5-*3n%=Q_Mh49TR)O^Ov3>~eoiLdh8hZz2SP8fCK7Ukh zb`b1lkAxTCK$P6SxCTii6Jik52SEhMxR9IC(-39c*)k8=O9N72Z+MU*Lve$IJ~w7k zkbo`Vb9Mg$?_#A&eMix(@nt5Eb}JCMe7?)DKcncS!I%Udx77HRhP2X+x5ajMcS!kZ zbF9<9u^qt*>Qd!(bRW^r;dL3;qK!{d!xUv0n&pwXdX>$8*b;)kk|mF?w)dE z*qNu_RF?KR*d@f6V4%+-F*UfM8mJo}lCWOx_6B*bnQw>Q6U0vI%lQlv17hv^Zc7lJ z38hv>q{Kc#jZoLoPP`nPRr|CF(_6_SR`y&Ts7QQW!PMQ35|AZbi*R7-&uT(-3ty|v zfWMAxKvB@52B|lxB4sD@GBp1c{uV~;0&oaP!R$4%@gy%hGCQ|~#o2ziO-+Rbk;_4B zOH&f|K`CT#KqbsZnYr0fl*o|c!jnSDQYHO_?42AB%Oh(AEPqQ@0Xd$lV0wvgnfpG# zIGit`Bs!-3q0miQWZr@OBV$4Q1TWj_7mV{meS&j-s86uY5A_M&`Jq0+JU`SYxaWuZ zM2^6R`kaErHqH@}Eo4pv(?WZ7p-{Bl^OPg61IRpihB-|`X5sdh3CbmE(^9(^N(B)S zV!Z4T=}`LN=ZD4?BX>MP37URrKV+<(DXG6I`$UPWD;#z+mj{NH&bofSq=gVUXV8HW za;1MQHj9NaUo;fn6B13baTgnMRgs7*&U6E&kxM9V*z7zxS+iBgnP-8z{LT6~OL>c) z6xZrQXETh#ynk9mu>}im$kPEc+qihN@~FGFT(gTl0URpya){5m0e(PTTd1tkRaS*w zt+!r<8#nc!RnDNQ{&o*x?$}EjrMY0YJ(p;wsbC_dn3c(P^RhxwB!|(i!3tHlhiX&1 zS;KPo!W(4JH)K;aY0~kQtL1tEvIfzp@J&8I8i4uo60H%bbl^Ta78u6vzwa>z=O20p z@q~nb0Xkwj9VYB^$2SBP(a>CE^6LOp#z-l3NW7ffON)zv(liO)ktIj94YM0Wni)TO zEwFCNr;fzfHX4uHm*wQJ{uKFqM>?;SJ}p1KyMv!Kdk2gN3a!YZhD)uUzx4V&P4y09@|1M9+3h@EOkB<IHKO01G=L{%imn%Fs4%aa6gDlMeu(<++<)kCu9xquzR< z2wAa9LdFh%^eaNEVaSI&6HLuEW6ssq5Pw%$ZFrA1cwZN~!Z0R>#*@OKm#yy5O9cQ% zbH0A5;6MAR9Vj!$=a=cU@T6r#h z8IDSBn8ay)%cR8E7Wx+_f-EsvRNjFalCWuRll7sHwo9nyM)ZP&9^Pn2rT*k7p@~EO}4Uir|=7jEQ%FNVo*+dYBc$aesQEsv4 zM`MdZvRXmayeC?v1w((!rdbH?y^N<@F!aZVA*AH1w_ib-K@BQYK<3k`R85RPK|v+- z0|MV1j8+%@ukjbC;cj>L>-`mB@iPVodK@pSz)Ic00s4!`dGk3Rk%e1&ozU;Xokujq-18<`CFt2wUpny-6b8HCSz+|yIg=^uOlVfWM19~X1f--v8aZl0^(68+ z;w16amNHyv2U&x@Zk7ZfnNX^xhjW@>t6)#jQNV*dX}!hzjG;X#96y9l1G}kI)ecaG2 zQC>zV0g;qpg*YajIEO%weSUF0-tOiTreMWZevY5CjnbnW7ExI`I{Rp@LXjv(m{J#2 z0o2v#_L20+ktwxzKxHR4x;uP=C1@Uj4Dr=TM*DqQ+wKnGtADkGb4%lxIOlI5e+`Zf zj3C`Rw*|vK=b};oQXIC_>|6NPf(}|08pd;%t+@io^mgt!PEig77uxMYTOhlUw9!^u zYP51EfNnySABf3W&|;?;Twk<-*t>pt11<_4?kc!)Ils8?9rkH6^cp4w2C|d<`ohRP>j&4`IyZlQ1Y4OhwsY=sGI$}i=5cTIU{?Lm+F<1m@qX{Um|McsMCkm zL4H25$;`;ml4%+cd<-j!DIhgD`1WX?lE{heC~d@lX)_u^PKkqro$<5>H{(P1JhT}L zG|4!jJ$N#O5aH-U)8sM;f>#Rl55IjpLjJ;*WviDbrMrVqW@NA)FW}8NHgOTy3NkxX zb2-DTUkjs|Fp41YrZug2C-+N74^xAXH!;R#WkqmEq+CMcjbdJM2W=DVTS(F z&ul+%j0l363HcRz?sQRsAOMfICDcImRwEdP*2dz98g6Xq_F{mvAjWPkpRcEs0Vj(s!3NH(895Bovq@yN( zSb_BD)=auLQaSr#qp%b3>HDg+H$ld>P4F3(w_6`i;m+6s#1%#=VVf3G8V#lJf_hTz z`8HJJAKgxX_E=U>JbAuMn-t&d>YeN*K^YW#g==YkJqRM1D}ps57>eZc$iot?k#RoE z3eEN~B{bW^e9&wUlR>lniSN&5JHk55Tc`!-yZ!|W4`+ZTi(or~08JVxoJ6WQGcVW* zU;#2Rz{J4WG5gG9?LD?O74tcvpf_+Xj{)H@ibTc@&awn)Bt<-$(m{ZkxIt;M4eJna zT*&icqoSG}@&>i9LAxB0xK6yI!y}!W2*z~{gGyp*;pJZsANIA*G>H@tC@zJ*TIXUI zbGi=&K?O(^E?muNQU`K0(cbBt{5?91i&13O6~H=VC@Hy56@Y;^q4t%Ykkhb(U+6>Z zQ-MiQdE&;RV~ebtJP6tiv@J4rs#jg<38l+&k-wN922pr%wI$bk_Px$uZrGijxAC~X z5}^ciCuz-aN)51Yh7~g!+cdd);{*FhUMbY;Tf*^h-9xK@UfLD% zbn0$((4vNPI@n#E!E^7T?AGgUdi z(1>@N_in+G&I{?mB5FKg*AcW}xC0R-WhgQ9Qu*jB(amT0Kb-kJj4$u589-$S7>~x6 z$=j&kTKdneye~Yk2M(!1AG$&)9He=Lf{f_}wwoC;smM{mW_p3B>vuFKGAl-}qfJYx zt!eohS3Bqwu@uU`g^=`*rGWC0u$u=P>s(||B{wLosuT|lupT0niX z1Tve=7|jJeD11T|$WXOJcmzU^_V&=|uz2- zX0CuE%uwnjPT-V<78aM2>sOG-aR~&VjEfbgkI_n7IK4fr1drPNcsosqR}!|mN{Pam z6Uq`g;McggP)`LXa^gTCM|=Y)PF zY~!n1RHoGUv*ao(ZhM^4$PPgtrN?hWqmiKzaaV~QtT9Rl4RgI7LM+azLb##&~O)Ry5{0_qy8C9GsTQrnmZe52i#7Py} zh?S`P-IZ7*e8?S4K_Y3o;}ygSW764O-P2%{Bp7iXC|nxkF6U=lgDy~vo4N)CGTE9) z*tE;^jl`RzdXEtWk;NQXHl{qGRpU%RPMR;#oQMt?86#1^51DjVr{d`miW;-8XxK~x zDC|jaLh4$NZ#02~X)dTyD4W8a!het8<}=$P2}fafR#B*<>EnwcB(E?0DOK@gS_H7k z@lW(}$WCB>j?AkWB!+00dc(C)-*rUOVu?w%TNu^tJw4GUnQe0Q#&qI0+i~o+X{M9) zd7D9}cXTJ*P76x?GKJq!0Gz?p9;z!7Z%~JR`tHN)zt7(O{Fc5SM?`_Zv7|I5oyi1# za->(Bo`Hn?d?+NN=1rNHzP2QkFsgcS|MBflKb*gREgFtd$DugP^Yvr3VV;-LFd|XD z;jqX#{iJCYE$ng0#%3!Lbh|!N^s;~VBTY9!u&wj&@?d*9?=J}X#h3;0msNZ?m1%eG zl`g^Do3N8{SvvGIyEC@Y)2u`!OBX$d2{D*ufSfrpE%5+)%P@5vBkB}{mz$p&5!jY?e(Y-hLoq%5Cuh^<@?_F5DHNSMMJNUpoQ!yH&K*m0HWN0m{Fh7f|yksNQX`tLu&ms zjqZRA%dmvFANgSL@p7%)_TwB9%oZX9JpG+|t5)ZejoSB$m*#e}_k?_sL=7q!eK6Vv zxq+3!Z<*?iNeTRHifsbd`*Jq%t>jxSoUu0}F9dFgZ-S|bA6;Kfl4wow%dk+5T+Bs2wXQz1!9{wiCnkpq7b&P)puW#YU~ zhud4r6Qmj6Y<{|X{dZ&(Z8mog4_N2=TU9Sg`Z@H$%Yiyy7e6esJkZO zNH6zr(ONNEs4g+44K8y%JzHL1u?jvlX#QcemfIUrRdLji6L~GiLORjS6wo8GCr>!Z z$MnpKiC8dC2WG2eHrj-$3|dK1v-(O0`^5d@{_gMXwDBA!tY$NpNc=rtttJhdxx9P- z@b=TEJ0J|bdRt9KEezvRC5vRvQT7hKCdtr$d;-t@D+Km{UC>Q65(cZm(vy z$>hxBQhQ;Eb-_FWA}|uktW_&Z+D4Lv;fUg4Fc%~=&-Sbh!;v! z<*E=Fs!5$4FG3+M9pz9De75cROXRz42BWV>qy61O=nF^qXS6%qyMKm;wp8qPvLGPoSAaVX>Yj-G@`Ao{A~J*p^m@fu2bw29Nm(Cgffkc1 zG|k93fN>;m7wRVb*qmO_)=r1i>HG@G+|coEC#XQ-C;1z<;a8y$cXrD)9~?op*J$LN zUyfXra+Bv6n8@6#od2N-4#%2f5fISw>7`pxD3FOunBV}bxRfJO5T{ZtRP(2@eQn9~ zjHa9%JgL$c>#wRnGU0^U|Er(wKHg70-rq?J?gOwh02k2IdK2B)d<&ho5R=K+Zhfef zuyfE+5CS1HS%SXD6H35(ULo@^p7JVM!-M1|8IQc-87#@k`4HS9T^Gr|F(Xg?9wOL8 z&raEHl0grZB8Lk4$4ai2p)HlU;X3vWiiivDr3v=E@J~4Ed3o)q54*gVQz=9Y24}qo zrz{vp=3V0mP6_3TTv7YF!+G7&Y*o0uN;B=L@6Vq1{b2?n{$Taey1KRyeZvh%H_goF zayfF+Wz~Fcp~|sj-Spe(8X>B+h?UEuI8?WC!->=xO#&ng1#NOBpft%Y%+1ap%?&kM zoiR3%bt%NrchN@Y3grkqcsTlw+e%~=$9>eI1H*Xk61_P+t62vgbyO@j5z#%7C^zh^ zt^84e^!kN3Q>ti+@pg61$Kof{wIQaj!y|nP-xqrD&_&5g7`sm7piHGU)X}(T6fgkw zig`b&Um2nwebWI5M#d!+mLx%}jbdzo^(`eNm0Kn>3US&cs;~^xJ<_VAki7UIEld}f z@sB*b$yvA09zwuiORaXwQ{XxD4fX#)pwP6lvGM#eVvMkxJ09kSpY^#6pWXgF-;Vz4jc zf?*$cNj&dB0x^zz%<6nY&$NmX^1&XIV6g^VmcjD=vekCz>*rgZ7Ew3Y7IbGQO+|gX z$euQQG_4qwz{O5`-C{10d;*Oe_5&b7^il1V_}jluZV<Cy_({l2qW-gDOg9j~N}xJYtS>rHgG*S1IQ- zOr$5F^6GjfiFjwQ{ZMtJRreHZJ6SAgzZJS(!_|O6x04rhY#5D=V^BVK@`4OjRYVaV zlzwll=HP1jo?s2A7<=c|)z)JDkC&wu>Kpm%`Jw1R1bjH}ddw-4$;{iDioB)r+ zDL#79W3gccaVmb3lm+@Fyhw^?TjuVMd@o%it0oLtneux`Q7_@oFs!BM}ilXoslF5t3#QaaCR_z;a2#1QfL|!e|{BKPGE%(TtNRnxE@6 zWOk<=*T)92V<=?PS%JEL*8uff;eO^Xm{at!$rPCmuzr2lWux5Iak?w*aY61v zFTq{b3=r9c*E|=Y9&HTd-h`J}A+UnOT9D=1!Ora<;R)4zt~2s@(kdI*+OKy zKnrP*`IfnoUYWZbi`9}Ddhba`I92g?o~?ft&kj(7{bIRoiRyw0Th@`x#oX=g&pJU@ z7|!$J0);HaxM=78Lb!Nt{CV8EVuO}I4F=?y)Ceyan)R(ottKG56<~9#%&fh) zvJxr*lpi8Uh2GP%(Qm4-KHBG;Mx)pQCJgiln4mdOAWEWq{j7$BGC(v%Nc{Qs#}e`Z$|7v>@(8bqj58LH)S1B`4qV>Ov7*m@7K+BW7j+ zwE^^66fPG6+&wa977Ix-^|hI6?&b{AN0ZbQQ<}DGIdo!_jCCkQOM$}8_vLe0qSj9O zhvr80vVxeVFSU&GZ)vWJjpEAi4rY*aJ$Ss8luDd!z>=UutQBoRIs=*_DXN^s8P*|} zHWBO_sLdrSQGH5ZEH4h*S|O{=^*>i1B1F?i3L=LIoF%9nf^Ol zo7C^z(^TuRZ|vQjp@;-DN@vyrE)ulAq>%d@xTn_EFo5+IqFdZOcx(O*`WG!ZJz$$Z zYpF(a$kBIcvXhyzf|cn8FTgtVT4YL8v<)|E#CpR14W2y5b;SA-pn=MCMb{M6LcBP~ zM6HlXDXTs7OD@xTea&DCyNkab^@RqkdzHw`ROK1gBerGHD};+JJhK_3TVOL#*d*V@ z&i2Z8RlPe?^%d%L@dB9K9P?QuQ3~x#N^O#;2W98>4s3P{*r|Bizhi%79#91q6Lic zqf9{%A^6pkm8SG;^qn())r!+6!<=@q>GqewJPG2jK~u>7BNN^W7il7*!Tp`v2iDg5 z0`vzZnv5G(T&Pkapdi&c1T`jJp)fAdE;tEjT$z0viq57Jjz!tvNQt;=86!t+Bhk8( zi7F6xS#pitRK>Ash(5`T$9TQutHw{bs`-+z#YzXon?LW}_RRp@Pl-`TAi#D`NaX}9 zLNwHT4yyZqvgkBLZK1vZq-Ze@Fzl)pgq;{guhseG4A!kxRlO<~eZ}nuqZ=78!4=Ht zQL@{0Y;j-Evq-j9H^*dpELz|jd9D|-z@R_Y=5C%7A17qOH zlZ=qI!k>u-RgSRRSCUDla>iE!4N}=`o>+Z<7AHU|1c>86egLqyfmD7(i@FVTYgLg9jIls#HoqxTko)x&F{pkzrQ z32WVgB$ALz^BMDGWn%LyMC2w{$ar*wE*0ZFh;MT1CvhQ7@vAp)-hLQeet7@(;ls!2 z-Me?+Auhp;LyCOvg{Q5eSWQZxS>>QOV8ZJZ)c}|mCQT{Ht@aL*3NTPqI|S85F5bel z6(|qL7NAzI*60=dsC!c6~=!)b2+J2lfO*Iui8hv%j3b|MYP8{`Eba!tkh|S#^DZ z5~Vul{*(S>q@>D@O?`l`L28BfH*Zem!mH@AOvW{3HY+l(HRGpa3=O)d+`l(QTa&## zV?V+ciI<`V@^YXw*PtAsWL+e_j3;&ZC&;l*nLXH)U%*hE$r>Flm}m`#3RzCROoTSg zk#x!r#IA&K68Js+@Z*o4A5cR3!~5w^?;f~adjaN&k)yE`;WJS}@9Pj@k}-QSLi~ae z_|lUI!WrSv>Jnn>6dkKjVH9<&vs}}EK1jkzAeKBV+1StMwp=``tVJycPw?Hzok6Kw zp%hDmMXgv7#fcDs6SD+i3L5<+(1|Wk@1>2Sw)W+hFBN-sD>y3erDmMw%<--%J~d%F z22mDmY!Dz~w%;$QK9x-~srD4=orL?q{@c`bh{YNqzDTla&S`SB*dFHKsOn)3Ly;W7 zbJ+H1v&MhR(`&OH1qe+_3HU_#nxcQuO#t#+s>L)L!~?y6G?2zflQA*|p?1b-o?Vz# z>Kko7B${=Uy@NDbqE(jJY*O-}A)6%@O2&3AIYkRd4t4R{?p6d-C`mX4KeaqUkgr%R zc?_gX+)YJ!OdJ6Ez*DT=13|yUdyl~c5d)(*LPR8v7?G$O49%aH*wBJEfH!4!eS75! ze%fq-8F@e8#pieLZhqq5Ow+O6#0AA=l-XsW8h6$1`W$lqfS_S}r4_@JczgxVR=nJb z0$_jz58~28{BPF=LEQMfWh+B_dzGws9Oxn`qU=$xL;N>bu1FFMV)G7yaE)$17hssE z=tljJC|>v_6Ly5ys%>+!9zHiBoJ!q1Pc%~$^X{jI&mZp-wQNr1FbEb^9pyk^Cjp=y z3b1yd-mZ=a>otI4NVaoJL+dFzlj6B$Iv^Lo*Q$SP^1}}MlMRV5a7kx*0ryvuw^OgC zN=<_5&98u0z{sCJynTa;O(+nfIW)ga-jc2;S0G&tOjK%Bh(k8>ua8ZzV=Y*_>|2O zyA}3z5@qJ|GbZ)l2QayupHQkgMKvr4G*f!-thpo}A`%{6jaNiMpNI2?{x!tH$8U@Q z*Ql8lUSt42X=R7^SI|g4^#A0NK#(Bdo&4eM{rmfOv}99a_QROwQVsLEUL2b9FD(2W zq}8%9X!anxr0Ele6D$47AA{brqQp+wvl%wr7(=uSjOU_{9!Z(`Up^Ocf^8Z;+>sY^m@)}wAy`g`f*g7ZHl_3S4C3Sh z`~dM5Nqlw}TrkG^09|1-OF0o4v&1;piJhV5oK@&=fI5a~CPe0{`d2!W@~ujvB~`$R zFbkktF>-U2LO{t9%NTf0bifB$r{kl~4$nz^FxWalRG1M{jxWcfi{UT7NUuTrCKdur z_5oXz;sra{;snEa|43)!_-YCjjL^8EX&She2$79IGpWnzR|6l8-w2O8-YoDvZU~Zg z3pEMqa9CthWDA}ykEaxz0%u6W>knigX?x~Ds@pAKFR z{@4E+++5VclVvG#nNN}kbC9JcumDngv>}d_&?5b|eOKEt_S9{2&$?}TLph0K-1sSE z0p>P*LE1sdw%;?tw-5^QCoQxaZDAC}lw~g3gg*@tJP^?ebn&!LjC$J5XFI>J0A!Wd zaraIQWB_6G0B-H6FX>%fD~J%iBOi?VqVVe+uiQY6iDYU9Kc3tFa&mqJW=u;9!XB_- zMP}p>aXSzW5Hpo~4dfEDW?z>~0Y*+O#Fai#Vq^ls2?4uP6!x>7hvU}kBAu7QD>i;w99(acu0k`5>{S~>JY!Z;jx z?IgH4gy-?Wk0$?Bw|zAIuNn!*4^-Aysm4*vgY0`>AD&7aec|wl7@kzUio&z;D;oU%OUCQN z-eNQX?lCTqo-g6aY+eX7%pxWP(`%R=dW0Aapk%U8a|;$ui6P@?ZSV5Qz;G=rj+aD+ z>oFzeJ;y=PFyOPla6(W1>#Kne=3%OIhK-ArL0Od)91UVegMP@bue{*_tgqyDOF9bL z7sMk@kr89Fh7GHvpW)bG9=hIf!1%kyYCt1=S}7X;WgiE1Tp!0Ru1FGSac(K3ZQOq% zlDT#mc|Zdg++>Y7tMgeE&`?%T#O$}Op9o{mCZNHxAj%#8>sE3wB4XpB2 z@iE#`dP-DWh32+psZ`!3A8D0?=a3bVn$6Kd%SKO<4Dd!fzLsy& zSv{gN=RQ~VfxkXgHtCuzk6U-bvh5K8-Gr!O@~?+bbG_!|Aik0)0zVwC$%VdyGR zbbN9=8vNxi?8~F@J~CWR7&h9$Z`|v=#IOXv$aG_!h2h%kEM)&7DhsVI=2xc(mmQ`u z3m`V27%@B=qG5Wa1|oaHe6iaS&T>KvK~l%as@3tJ{1im928S95%H_g0^oW+jL>;ft z(HS8o(=%Pk2(x@fHxT*A5u#%wC*?Tc0cre+N6J&L$`SCV2o82Xt$!(pGG-pbW6Zqa zO}P-^^%X%1ecmJmmn?u>_sS)@4%qM;lAAl8&azIBH_tj*v1G9AquG)fVb=|9u(S5TC2Ql@j7uyk zWg-_yZ_`18iKT5Xfm*oj8(~w`R}8x?W8>_ju9&UMO*}v?OR+hW!NOUn&NS7O$>JbR zRaV}ALrMX)^qf*4l^u7(JZ^8F34Xlwn#U3fdRzujdV@DlSuG6BLv;mA_ccC8pNp6; z#HJ&rf_3v*g%jp&n-_>pkFoy%)?}u8uUBl}@%rxFJvS+PH_D;c1J-4bTp=!Te;hL! zCmv~&ui@lAIX}5Zf73N;D>-5$H(>+S9X$*~4IF@dwFh(0*xNa)=dfQVU@TXh+?&e@G!^q*1H5j!(|5FrC zw?BiM``_G|1!Kp|FApecSKvN zYOVKv_dEV!cg*j&-@N1g?|#QW?2h>zpcz}20M)fU(p2$fiq1v`U5mx!LqdPkX z09AELVUB)*8-@Li*qX%x9%A18e2$zsoZx})e+C}>Z@P#wJ$Uw)_6jt0_!o?bSN%IL zi6_2Z+?^OpQRM|fVIW%5m0-V-DJ5S*jg8LiCQQ_Po4S8zgd>R}bVozTTWx^;BJnmiCbf$EfbXbr@qFw8l=3=2z1EG2*W zZ`fk^%YCO;*H@)%Q|}0zEGC_8BT@nD{KWbxxD4dM`53=&3i}Lgioh?l9W)zzbxJm3 znh9!$L$KmerD+CevY=DQ5OT3PJ~@X%l6bc(RvoY|l0q5!q{8Zzu1gX#RnBIFFAn8f zm08@d{N0BiS%AYA$WKG#KoH1e$$}**_j-G_*%;K}#S@0HQb4k(lFbhLF3o>=IC*>j z?#)-{pH@HMDR|0a_&yhKPMGf=GUS6F_PufD@`@oqci^e|h<;V`wL!5&_ zu|cs?#WATTyY!0))8L${!c3IadI~BhKCOX-mn7NM8jia*@G-7%48_xe=~V+`XJZ~C$j}2Za2j! zj4*eFIY9qr=(eWWoOQt-99azs`L@IeF)JUCmxrCVuWwM|*^51DaZ0^NKdVp)=)#DA zSkCc58+TSVne4D*LAioiAfkIQqhw+dt@h@k;FU&Anngs2AMt<%mSn0kc_{^~7f}g} zvjXWh^sr&hFd@+|DNM=`&BQIkXPDAYaWfx4HW8x-#X(YEGVJ<+5Ti0M=vhbsU$lXN z+=Z#ayQnv70_Xi13%t9ge~egWes(&v4i`rL8Y|~fGIM_FwR0XNL+7fJbS-MNdW|Fm zYd(Z%9?Ccxl%w@>^n^SttKf;DG3Y8qcn}{kU&S`GwP$adO7uVc^T76pN#tp^vUj$B zx@_wun+r@;ahW?neVO^t)S{c4WwE0p&+3je!gWEE1BNF3;B|=tVI{==geheZgj!X?HAH6gA}h2(x`C;*sm~J72Cu~?nDF&i6XiDBdVntt z3VrZHLv)f0QQVDPpy(Rh>~%y6a~ld4f+j=o{3ofoq(muIz)2PY1qpq$LiYhg&o+8$nr$hlC<2ejs!% z-Vj-5#XsHKfn*la^?W20ZudamkFMW!;aYe40A|-Y3JA$^oin<97J3wYFEK~IeA9Om zOqy|e7-h%l;s%{Hp)0Nt(1EkejxHD@AL8RUvo(&?u5}rJ6U4qwo}`N$Nh~Q%3BcDm zYkjQHQUo>Q!dd0-+UYDpNK77z%0nPDzniUx^17VU!)84Q9|3g4*Z&jYdEO`rjeuR~ zH~b68Qv<|FsSU2DxqNpz(yIByvI9#pn^6E|-JERsf~FRZ&>Iz*Soh$jR1LN2tkb5< zv{b3B4zZBP=KG~z|AUDmYJYC=KpJk*{LGuCm~&Qdf%3?I5HkRh3L4Pu!A_#oIU7{6 z$<^eRN?AzzN~bh4jvqs~ULA$&5T*bZ>P}ZH%kU0a-}#(lSw-`^>D@KWuQyakX3;kX zjj-&sGDxq4iB|;J`Fj3}5^BwVTc|D(5lBv&!p|AKCc;f2wp0oD^uvdb4}+>!fO~yz zIt6_LpgbwGvPnt^pOe%L7_XMvlf-+I(&a4*GR{JF74e?wb|KWLVBQC!C>O`a$09zW3I z3={bxl{yw4+<`q|WDlblj_FkxR7bV~CSVESh$pIqU+))Rx_U^MSn7P73pRRLswLv} z)hRMt>8JcFs*}xU;u4P!srgE_fiwwDVmj_DG4zE%i}D$Lnx7zgP06sqKm}I}&bu`* z*)hyXvsVd)ElhW7chiwcB|!u~(#!^3?l2oCl|b`E+sPVZcK8@JQ-nN0F3Mnv=4He2 z*W<5;gVFA2Z}$N8LZ1Ej`lru-ehoTw|I4!<$2k7}-G{q}XLsMd{qv^}-#_4ls(azz zyN|Db`19SzAAdf4_T%8$-!S%ickt}f!<#?dyZ5{MU*10axANc5?%uz7cTeN)4lG)3@G)BKTzwFj{G=PqVa;yq5Rj1;EszSv z5u3baYXmCs8v-#{N+SnisIGks&8zJzsybQ*H=U1mZB_E2PxaOO_Tn72{BwpqFnZoKL+xBy zTS4OgAM0Cuy=NQT466%;AYWuBsjze?o3oof>MURvvb>jd!hl4K%{c6Ko68rg+-C9 z+;f9M|C2sh!C6iY`Ipppj=lg^&uLUt_ByRu&{@4B@H- zjfp}tc$QeYLNN(=i}N{*AEUvC7#*6S!nAKN|4x`0~a*Jb6g@jGKxfoTnA{ghw)%;Nm3A9N1 zwzP8GLg3C>5kLAaS)+O9|B|tqS9ZBf{sXx~yZjk`7(ujxKne!v z@W1B9aJyb#u8(A@8l|Vn{u! z!FEV_va+|H7G;mN$3sK0R6fcHOmYqFstoPf$<-w!u;n?5Uz{K<;VL>gjjr*>K`E7W;)wohgdELLaN9h zS^a5UQENCvMXlk;Eq)k*Dm0iaevP_(qhi4FnkB6+&^c5Q(2`16;|hi13@Vt-q6q|E z{>2YWIPkoX^*64yu)`Rq6EAd(WZ+fX zrx4cI*Hygo_DT;(xlNg7awgI|y#2(GEeJ|5FTa2D-G5(xcyq6*aM{T#|I`D_mnt_X zy;+ri5nBNai>w_WZQo3h;kDGM^(={F%8a zRLzveKvsnV%}ZE8mOVt!NDF-_~7t)`hIpR$J%L2iH?|alS_K=Sr!m-gtcW} zN<9e2!d6!QfwvT*ONs>Ke8oSgJ3mfk=jV&0hzvNHLUv8NA+LU*dy20t6ol`P0CXFp~xNinL(Ri<8jvab~f} zH8m(R39+LKk2PQBq%W7ygV-Zjo8B=i)Pt21IXFwm``mM&po1iIGmMiNxR^?pXI z#@S|3S=KwiYCg3-oKUWm)D&V(b(Zh&L>lz3)QKXu!uLy%M!rAmx5K{3&(F2;QQn9X zv%0wq1Qeecwcu^-<;LhPN3oe92Qc1PsdKm%NP}VKM+3$Fu#pCWv82h5O7;B%3~wPB zGK!97iJ-0Tq`;0Ws;PnwwyxWOG5lXa5pJGBffmT`0!rcD+f@&v@NnL<7re z32fu!GdkGVp()YH2rn&qh#IM8x|P<{O#`VFDo!Ozud(Es75BipE2N`7dA%AwnScC< zvb_+NWXw>FcsTrNrK0PJD~xh3njL(N`i}^c(gF6kKFSN9jII{?rgA6@OWPi1BwU~n zb}TLpWQ=a6lF@b+uv|`x8_ZQX+JuI=qD&w^bn|0A5Bg2g^#I!!m=!GA?alNBJoi=9 z8z(G)G@La|n8C<+h0mWhC#V*w$XK1T>_SLq7Zh}svjywK;HF?aGV_>-JelAVRh>#Y z)5ZLBGW~X7yXg7^{OGTSK_NfV1wL)GdWc?%)(pJp{0fyC@=wh%6C=DDVv>iVEX3c7 zXUvR1YJ|~2Ont0gS@;(11+9|$Mc!RpXx0*LTBN<0S$lg>RnGv|jrKf+9RbianKY6Y zz_zrCUp3yZ&7t~6NkgtpD#kraj=-3&oXBHyS~E))WL@j2idr}7aI7&<+~JOZl7meh ze%tlRb_Qa&D&kH(l#@*5Jh=ZosR=~oRSp?(X@JOp#UemoOX*6nbgMHYpPsyZ|Mt@l zlB^Wm7)}~JNv51;CMz3|-I(OboGOSeT~(~60okm#Q+ZJ2QBv-dfis;<&rsA3W$><9O`ALssDjSGC}9@kfh&Ms+_Wo_Kuk)Yfkd(E2^1u#jNl03!wz!2jKzM5Rd1E8uf>yy*I#HC57?XIh;GPe6?3&)U4RLJ|pF(XB;X>={ zqZ~fOy-bmhC}L@Q~o<^sd9wtK#AAttlBnv@?El9!u?E~l`bR@bd zM;^}bL=j<@Ub;;?(JHqY5rK?6osK+xMy4RVh3O1zDdOV6kmNw57dr?J%~G0(2l`0z z0@_SuWywGCZm{*13C?KUU^^+7YZMQMPY3@w2shU` zvnTp}TZ7`iwZlh`4KHfO{Pt$y+uPDhh;<~M+_;@UA$eAMAtVe`fE5y8x-rYdXa1N# z+B@7JwwRkSq((d9VngQ*3%KV}zRGTp)B#%{n0Ntnt`Bqrdqfwi2gynIIK9BO=o!Gz zDM4**-H-~X2Q{Xs=LaxF9lFhtw1qL+t#=r9I~P1WzS#tiU01{a_HW>lEM8sOf-cc1 z8s&Su@oP>0%<%l!K!y;Pz5wS}a8qAR=T*1&Z~){KNdh|l50g#PcvYw{Vzm{5dI%tg zm|Y8jGuwwFDObFKhzHBu*)8jD@dCUkkpcKC$7%8slC@w>o@_Wk8d%ejUQt!eu1w`{whhu9 zWEX6T0egH~dzPR5BsnutGQM(V)(E(5RGuA%2N-*HuchXub5@T8rdi|ybN}Z{$e*Bv zYA>Aa$N30|){HeaO&pr6)gj$@2T+Q;fkc9tvhU!Hn7#e^?I(o9Ic^E0dPgvVGVPF2 z05xOB=U7r@-z;WVWlTC~=F|fldlKKk0HN5^bHP6{T##`p&tU~TM9$-j)k@5?Ij1?p zhRKD7r%+{A5bP{clO)yjZF{5I8z-T3@?KAemzDfy)HQ>& zur{Sce(HOq?r=ACt+J->W*?htzqlk?WzFz<4VhtbJ?eHeTbSwUi$-Ze$oSxo+!2oq zT8*7(3~0>g64AL`T*3y{Z_inEfR0m~089_6y!jM7;>-604)n(1RmD=O>$yRSH(!ed zBP?=t9W93Ntfr`(y7W}zd39y39i5(-586+@72}&)7Z!7=pDo8 ze5#eQ4MmH}NUGgs@+Z=$pUAo}dH1&utNV8r;Jmqu}8jyy+E9MaC1iuT`m>AEV2;CRkKk)}_Nl3S7*Zg}K32?|>D= z550SK1Lurf z$O%|Ag1AdlGTgS=b;D)LszL_Z3t$bUfo4Zb8d(4u=yY~{dUCm%r(Y}CWCTU#f>!545UDQg+*)XV5$U&{VJqUb(-h9n04k^fZ z@3Lca2q1msX5+EgjKUUy4+%=yN)<(y3hwuy2<2;&OXspb5KI*1J8ZzCb%Cv?kV@wU zW&`Eh(w7nYCb%jYHx zF{)mLwDr&`tD4i3m6ODdX;SqXO?@#Vx+cov*#5DYoyk(%gFq}bS_R|SAEXnMh(+u&KneRIMuULN4VZ15*4CH3PzJxz*gMj|-ga_+s-85%!_SEY@pYi;7|fBgX^C zI*6`djCp(XEJwex$cy57l-uEBeyg#Zmqb%J{S7HI-ZrdHR04$Lcvo-nJ*ye&ZWNTR zF4TAS!A-*!q4)hm=2Ou*Grwkz>_SWLkTUb$<*=JyOPL6KNp|blc~iO-$O5rSlr4Dh z`|mPh7O|d4u@rS~XXZ`RFWtktGcOQpH(8#p!kTkGo(Px;Fe&V ztb}6tw&995>!x!C8Z_v^2dg5o&mjjU3uG`wvId^pF=dw|Ui4WdaXytmY{#bt7w!4| zE%$j2uExngwToQ1ZkTIcq*8X~L5Q{v7-X6r?~LT(tn-Wen!InhLJL@SkND!RSuM6L z3@@%t7S8Lzq`(<@5X`QlCo~;A{PN^-dGTtt+8n=qxcdC#cPLkvPUMgj=Sj()4HgtV zYT2le%8A8qlJOm4G7SvqwROrc7zil8zklnViQwJ`mOc0exe1@W5m>0+Xp40|fc3&M zIWR2gWOcJz$bO8u`BdA!&P^^wLMXrm`jvQK!9GYPXFJuvL zNgQWRlLUmFq+QG6vc{C;mH}8oa08M=QVz2B&mTWMT-?9^+rtl=y|s5m=q(qvm+B#{ zIttdP;^?9PLA?TLMfuAosRb`WWLQWo9I}+!FAHc3FZKFNB9au4k_-mbkt5HosTc2?sW-!%3u$6hA{aOwD#gK(Sa_Hw%#2Z}6;Mw|4bvx3 zJs_jY1!rARF6T8YgvO%Ef}+Q6--A^F5ve)RN=_rs<>Y3zJfDx6=XSulr`{$=yrFcV z)A5Gpp=b5gKST100?*c`W(jW zV+x(TABkr)?Q zT)hS#EFz5@J}q3Dd(%R--t@u;%lRkq^B${DrC!2&0YADWZ&8bmpUJH27OpR}Hv(#I zhEmo*_u_$R0*d~-M!-p5h7V16^u!UWTN>X$BYHYmT-4o_2~;U9Inon_pJLqSDEs~3 zz{gIL@9%aAJstI@*XOV1$>hn*y;>RZUY9VT73ZWS$0UQ8;uwz~ptEEsPu($Y?}zagWQvg)aJ}cQh^lrthtLsofiS@P5e2XhY=S{9LY2)&&cV#k!*tweGlQJ|c3?1sK#R&vucuRXyGTFcMUe(?IncJax0cR^$KvcE#-zfsO&>td=OnhB^}zDqW|b1W%yqoTvRA zG76`O?Z`oJnI2aszoICU(oB*ub{kf4hrXzB&Wo|Kw_8f%fs^UTI^Z#N#f1^24VZzr zsIB_tgx0m%tBCMIyeWjPSrRRF$L?QQ z!Q>CG)O@izXA05=0>g0e?C|V`V|L)yO8U+{Txgu)gbRTnFB(OiiAPX=^kcmYGeB%IBtFDPbjBG)+K;SnL zO;bh3;_ub_ElnWkG0!McJ>$K}nJOg(tS_>w3AZ8qs4Ll4z;LN{T_ZPe=ed_7ZM__K zlv0%Tqgh?9223)#tC)e^@X&g2Pap0IDZOl?lh2MZciw6BWS{=c@wlGcR=GXSf}R z#y@#GUdbB^9Z1eYLItKg<@n5z;}c|1lZaK(`(!=4ZScK?YE`%i*0})4c)e`fsrC%e zg%+qx!5CQ(dq>EE*n6(3FG_(hb)KbBnS<<^g{d+fU2{9`#=?-a03O{TDs9$;fvt?2 z76Saq)ho1iSgp@#$X~O_kJ~W;*6k{`;(q%q>h(Fa@)%uCf!9?quey&6nVb(0l`}T$vS33- z9P+zae7@!sY!*()jtGSI5-1fT@UoB1EfzJ*zJz@CT~R75Wz>%8TD8HLKYhNHj>C#{?npN_z0|@vLdF`^)#=KS^SM z_p0T4y8MtJMYsueN~Q3xks{>L0Z41kL4puA<}QjvOKKDB!uf`|k4OteQC!&$J-!1c z<%olM3tQ7)hWflwnt0aM4x1doCCau*+uWC*D;uC%B8vMU7^orhkHv?7Fzn&|_iz8U zv$+5G_NO1ddi~=Y1(o98!P7tg*$6zk`uSCt(;Hnpf6odny|;LZrhm<7&(!N5PU=Qm zCldluBA4YG7;=>=Nt^M3COgzpGbx(NKmTOTRMS7;-yT>}D*R)>N29BFgPLat!&s2{d6N*a^!i z)kbAB4I1V&E<>C_s~nwF6eQ=XYUWJz_E(@gx`x}<{TA#3?gZeaBO>da@RmV!(WI}x zfg}bAvnmIG2#jLwklw*(Y^jO2Yl>|N88!NwHRM{JFQ@gQB0CDzW$ECU!mDE~61m<1 z1gVgEN~(YqZTK`iQQI0e)u(i^%{iBSwGXD~W>s0CQQG8kS}Uu88+BlrGFd5Q4|*I@ zF)A_@x?!K0{c2mV50QpFv-^e_32>|+4oDSBZX6PT0MqLKYA28ibuzHTmRVfg5=KwQFO-eYF!4F^RQq${c|r+Gyw4ow)A z*!3X`?~!3zW8mrea(+wewQb_nlNB1VvsC1Vtf8%!M- z3z;#sn#}%SHc7cHF*47XUjXV0?CcQK7KpC;ki4f;unsU>GRl{@h+j_V>wKz^Zh$fh zZj&+t#7$FdjP_Cfv7#DgJdvmgSqySjP{ffSB{wx_=4}2At2W|}toTYwi*?s{F?FMQ z#!FZ@Yc?+>vPAYWC_<9Y8%05yg?Dc^0h$9!{VCVCuUSQc*%a&D>tF)4z!fk-Mz~1Q)C|Ib7ZP^IXP|#-to&xnzB4g3qx`x@SSjynQc2)`|0UNF2L$uEd zP**~Fr`Yv{etQhYkk#Bx3I z7;1m*(FiNcxE>2u#I20Xb4M}ie|1(;N}QEdAU!)w;HX`<8m8f{WWVa>%S4EVlIUZW z=Sx&^rhYWstVhrfrY6xv2oviQ&_39-_7I{Yt^-Q|c(b>eBpnm^vm%wNtkRLrQO2)U zxSqM;h)V(~0bl4HV75thTSjCqJc3td0T*iAQiAt(rg2GGdTd*4D@VEBT??=t5%{@jT_e48&mU|)X5SUU5MfK%3!di{+>8A~V zxJIJ&8zn+sQba<1Da=o$Xb6o_7W2#RxShP1-z;FrTQGvPCeBr`jNXz=dVV>=|5(F-&Kzq4;p^eBVY*{5@=8(w4Rr{{ zf?8B{I#cjx6xU-N&jiPH5(=cHw*r0xae7Wh$|Pc-7s-1%)Ti^sAippIm;xAy9sdxo z0O3s2G)On-@F2-MIE!z_&6&&$PLG+O1lKoh1u6uoY@QZ21ESofD)GtUUbF!KC2C0w zvsmiQ)uI?ceu?T#fooD!2wf>!j?@9`E&0{J8058`&yzn)2bwVu7rBPdZci?*Z@4-8Qscs~(I(B{eQY;}4us1G$^1?w)3QKGklCkZDFsud{j#*ajv zP@D2pwED+`y64$lgr$CjG4w!XQd?o`z;k58k`^57Fd8K%S6A?_dI`UDygy^a2YqFKD) zX&JG@YhAnwQEDJJ!nW#^PXOQLY)S5q%q`lmKcuWJKRaJDIOTd)NzKtl){&WOjDx6s z&3@&g>=D;Mje;@b?3l;OEo2Q{d<6+Gvi^o6be_TQkOC+p8uw5#&5@|?6^*PIbN5Wt zWL@|9<-W~=6?xzHJr4o>8vmD4+zcv|Bp~AiP7Q#bRn!ebxQeffK z12}=QaDepi9{T$ifM9Ty!@n!t(Y>62Sc_kI|H|($n&hHe|a`Wp=|o@Rq6y z4wDyMaOkH6%7CCK!|xO>>LE<|Fzj(|7koM5Av3YFwJTc^w&F*E4^$a65tqdh6f2p; z{6G(Doc8PMgK?0BNc97&EhaNyo@b>s43+?o`9W9l7xQoBRvwOrd&7OVrQf`KnF^8b zW>Fh~xj`A_($kwl_EU>i5hCo<0!WKTR<#if*XhSvW>(gNTjm?p+T)J_5w3IAXP!D6 zvJ;6wSg)QIujW?`?gR{zch!g}Hwa>7snR>6lvGfk0%mYhbD8=i-iBS-3x7gncQ5|g zx>A#Ch$e=g3IB=aM`DYq4f=fdt+*nQhv3CXlK2s#)RZ;xa#QfW_4(D!^^Nsy+X9Q2 zg59@5X)abbjM{v_r7%LTE7I~3ON9V%H^iqStqnPzH#r!ihgFRg4Nx~^0`4VzSAm;_ z3GTo&x!l{B;Nwn~gHr*6>GpgiwTa8iIvG2j_jRCIFKsbFrPy#F!Gt#~woSFF8Oh(H_z$#RVryW84~+pn8Rb zV;QDzrFPm>A|~mHo+3FtRkzsWcD^h>$RezO;rwBYVZ?g-Nw3@%dTUx|1x>_i4snxN z18y=@$P|w?RXr>YSyr({580BwG01F3MvmecyIWAqU~{@aR#8;O?36}|HmD zj3=l3h;4(KNv6w9766-bdEl@{m@|vGKgHa_@ks@9=i}4CpZ@&uPXqiAh4y7qa9O>s zVG#w@Lq$NamH$fOfv;EZDf3e|zhDnS=@Dcr9badrrOLlSm|+saMZePYb+6K4I%hlYt4 zlNU+88lcEn`fbG&i$sr*fF#imvX~!E>Sl4iM>$@}s=yM_v^`wZ(F_cBxM!=qH4?wt zAM~BnL&QN+-f0mtooKXBO*1Jn&=fi*a&^=46r8HTx`OzMj%<6s(vdB}^EDLx&2{{| zSN2aZU;W$pAAkCI|2LF!Ub5vL40cr{@V2WSZ$P}5Okbcu=*<;Ui{Rh2+L_e{{)7(F z_iw%$+`W7IxA*sNc82UMfl9_|*a|VNh`Y{)Fhhw?Z69RFCBYUBgqlPN?-EE;Pl_q) z9SG11_%)jgI$&MomNAF`lVTdPBVneaENrV)>DGkG?Ri~e_G>uXPrOWE>~#$LwIF(W zwIN)Af_!|Mg!Mx+T)Gqm{p{sv*jswgLAq&~8JCt5@)pP$bDsa;=qW=2<LGJ$NVVo&;vyv7`it|8&R8_s98JXn~DAX^MO8Z(FpAu5h z*|vtaAs%SP%k~7wOm95`B>N)`qWGwWNxVWK?UaAWxnAMD>6@V>keu(S0mJd;b~&M& zL9dYNYuXE?BfU|PNmy*XmU+yJ;&)Ja!*m0yb;yY(lzdjrsomR^5A}pBa;bq{k<0Y% z%4ZQLk_u!^M=$5I^P9`GTd`SLeTKKO#;WKJA;l~o*@q-o%hffuDp#7PqmbMkAT;XX zgYb8mQ379wzFz%WQ3vKo$K^3kk2eHRh!#wqxj%pmp!w+8U)Xo%9=t^+E-o%(y6hen z3RzSwO&Sws_129&VSmtjR@0M|UWDb$Ze*JQIlk19;II{hoW0&$$9>P)ONs@slyzrI zp1*je&e$zop|*NjXe@fg($k`&(y>#4yXwrpm>yu)JXMJzIGa9Og~s{M_wOH8A3lG4 zeZRT+=?!O%L_jr*JS_EQ0hM50#Ra>!lSZmNE~}pBR*+%caAA1(q-h2;eEIqAJQZg9AftA_I*cW%esvJalz*$*-jEZeV!)Du^fTiVrt~NI5F00&PGG?JU7|8? z_nRfcqaw&ZQv9M}lj`S1@VIntNtnu;78~ilJLaTUTwjMpIbFO^>Ow!Kbhy7ISX;EQca@I*0f{UjLIClSzCJ8m?oo=0JlPVZ zSfWx))1WaL;mh-jP#y_!Ilcqy}IHbAPGVU|GV@%mnIEE_p33pe+NeS*nS0%MBzACJ&W zx~IXSlc{2-VS`2WSJdSt{}G)P)mV`N(gMoY`kU+m10hf)bDBWcAK(7%{JoIu$f9hR zG=|LWCs_!btL;rpJI6 zNU8ZZ2;8OCN_-Z|v%LR=HsY`Ed+rGK_y^xHzas*5t9KkBE$;Wd;~#d%{Ei4Js@`$@ zyWjB-yJLPwP=x9o_kQ;~{$Y2_@3`N*f*)B58Q6 zlG3B_4+!z)&N12-uMbyz4aU15k5Ly?;$k4Gy>RIum^Fm-oV(nu_zctE7(Ih`FkLk% zaX1mq*38*+xxvLdCBrZ$-bxQ;m9}y=i`fHMs}h(}iBH&KHjs?DX53QDf@jrJa+5GK zou%3`!o)yuTa+7lBp*3J^}=`*f`qW5E4YqhU{(dt&=jh54C8_t<`6^OvsA-0T&!Oy zE(lL!uYgyGB*PUn6YRo54Dl*kt`JuPV>^9|`i1K;5(5}Pv_=#jvT5t^)7@WWY0z{B z!&X+$@`HAFO)E2B0Fdj~?f=}D@>K2BebVy>Awn#qNqE>^3)LLxR+wB=qWLe+>t_@T zzZ;r&vCA~k5P)@}A*fTF++3jo9`a76-%b&81Vx@Rh4QMde_tLWUdv2lhz9WTQTaH> zFdd_CqNbP|hwnm}A8{rYmZBd5(<;c%qUN6Vl&l(fN|nU4y44A@Rl?eU5L9?2NVI5s z(2)oQZ-#^?G(be2gdeaS;vPQW2WF-+6AzsdX)~FuuP;$V!-cfL*hD7TwGhRlspIOa ziu~^AbFGfo`eCD}mv2UjvVAju$mGeHsLmF7tg!`xpxGQ!Pp}+m6rV?&^g6rsd~Y;B zToo{XH)Fnj`HPQ}k2&v}^rQ(C!FtdqB#zk;KML5?_~a6r>zdo)>HW~0q1HbA}#9I3?Sj<+NutOYvdPr^OFvl|UNiXtR)A&bL|oxY$Kr%&y)6|^nJ&o} zPx*#dl?i!#Wj17@Jo2@G^DhziBx@=h6-qd+L3&%B3Z8kKGp@z+AW%6$ZZn^uKb4pK zZ-FqxzY1_U@TykVntTr_;Fhj{X#q?Sr1Z7LTjJC z7)nAnXb}J!DBc{Z@r=xQ63_4sS`{ytIN%C};)&WIw7$=0_M*ADn#F}4RZ9bd-^-y} z0JJqr%9X7PaNF!sUXT@)ZLVIZT^V@f3Ti9y4!__{hO$^6BVOLFRWXpkzn~>zJ>Wme z0NxaCS6HzuYIp?e$b|%QW-;KmzPp_tZ)+OnN2#qzT*cE-dk6I(Kx-#RiuMJ~r|A$E z%CbkDe zC=(GVBib=DyFfC`8w`x3saLy7Rx=gVQl7#4H*eqn?R@zX@7g`-CTsW~Fxm7%=nm#? z47Ek}@ceHE?FkVqH8ublf&(}+%#edtfraX%L|TaTd@rkYOp`+m18NcIz$DA8WS)E^ zEXcyZ=S=gSyuvEcTsYMcRC>LZkYBj_NO8qH_ZXI3SFCs68OSZT9+;+9 z&jdP%o(iRf=QvYGm-S34<%(Z;p1)iA4#trJ4_hmKpw574UTXs60vEmU1xGt{tz$<; zfm91juN?jsv}srKw@l6;Vdk>w5nCFNiK8K!GWEf#PHBqE%Yr8(2)f^n9(ZyXU}nk5 z$(|B9-Gt>L3i@XH*Hap1yF>m96Xjx>)gQ}8u@G-8bf4Z&oQa@BX<1_gH&e(wDsAUw z27h#r*2vLQZUm#sRoD>Tt9TfUf?mTZeuMqs1T`IMt|+Q&C#{Zi&>sA2;`P46JZ=;w z0Pe6caDgs}%9snfKq-oQuLCo;9j;cZY|#euWSw7M4u1ad?(X63yZe$?dUXw53p-v^ z1ZlohNpt0LD$Fu`+KL<>12ws!b5N_796~|3=oMcFdD7;U3x^y}eiLAt*Bp+G$lmZ< zvxKdJl%pN)m?Sm+>r*n%=U%K${w`$S222Wbf`K(mRH}qBQ(@trFv_XQOOi5k9Y)mO zd080?dccMpNjQatLx|*fl!aEae54J{)z6Vabp!ZHhONdK#KkL#T4~da$Oci9FD%h6 z+Dh}`w7V@=t_E9Gl7unb4>=pcZeF`EV_;Y*!GEH_u>a@JsOiVgxj}J+^V2JaAA&O@ zi-Wv*=kCoLL^DISc>Mup@xiBukDp&Z4AybX;9s9Q^yd$6-|$Emp~dFUysv2Rb}_FH zjH@+mp0b6L7U;AzFF zwav1(WrQ?APz(fuRjKZ_Nu1IM=v%~j7xd3>Sj7{4I~b}_k*v(%nnAh)WmZ0JcH*eu zWyTUN0Dle|yCoA5s@T-FQ#h}QxIikT#BS?rPW{mWuAE2#8y$sFkSm-cNyq?WH&)cW zDmA?qBK|z}4qXzobK#w<_(QIkTv7!XaAcKoxTU;M;Hx)p-hLQeet7>Do%j?p1>pRb zUa%w3ArOe=gJ4d8&>BWdU9#)5(vuLiaA({hj zJl0I;R#bp!+FQDNJiJ%}1JmwDVKjE9m~!12E_iW0nW;rZ+NP52C3_@D8K3ndxEA^f zf;833()%MbVBukDDrhN!4&0i}t)ZrO=Jk2N=*z1c3$1o#INXS!gmg(3Z;F*4fFW1k zjAb#`L!TVo8#c=;Tz)>eKvgx=pHME#=ZbozJOkQ5 zp*Zu^$Mwg%*Z1e|fBO6&@&O~J6VARkc|O?aog4d3~x~>1N#vX zcGq<_9~fW(XsFe0WMXP2B%M=|NKc?wW&y|Z;Hj4L zPa>bIJGRnjySCH;0yj$1&lcNa|A3B-{a~-HO$sABeY`Lw!rq&I`HLcD zd5M@N&wlRKXe>I@a_uE5k_LsB{>SSd?mj})MLWR{-+%w<{^7&-jr{_1jM>NBsoJXU zChrmtk@>|ot%E*L*ewzo8eyFBA-06YpPAv|e^6_q-X*xujSe*l0ll$m@CkE`CT-Z4*#;=sHWgMCDEnjYMP9*r8t2DY%lcOSQi` zGQxqHk>J|_*?R@yp_Vg-W|zI5(3CZs?a4BmkMzh)P?}WNO1RrLNH4*cc7vG323Q)2 zx(6V(4*&TQyZbl*bUoR4Qc@ds7a$ty*g*{D6ZtPZW?9Jh(x5^G1-?(Gdo^EaK=yog zSQhG>jnor6P%7}D087Kquffaclb)W9Fi*k(?B9o{J{(dUDiyEb7Gc3oy9GoIlodxk zY7fIa@@g%^+_0TkOg7G~W;KeB|9?5Mori+Z zT*Z$iW%We1gvJ)+*j9mPp_&kXmV6T9UQd#PZ2GWIXn#=^8!U&a0yfLuH$)e6?!d>f zo9DYph@jtk1gaCSB4L@S!v*@3@>M!oyLgiTDTp+h#%Q@qrSll4 zoWe&~-poJ1_jiQo^||ZdLIxGVUqk2!@lczWN>|#>xww+QR1MP&O;w`1U@Uh*dOnkK z@y94|J1D4}b85)qA$9)Bu}h0zTy6seeKu8k9 zPKB?RK0CXaTqJi`qWzq_?)fLOUNIp()_dnCc|Z?rGxglaK2x<3fD&Q~nW+xDUqcyy zT9TNiwgo5v{!Qo+W&gBse1uP5T`^12-TWImw!`ONuF&EPY+GL5*aL z;Q)ZRJ(pVd{4&}8T?ZdQM7UsXzh(BT>BaEt!{>(w&&R{@-qFEmJlsFL|9_zkU4$?@ z^kZhW0qQPQnym-CQ$sHUYWx$IdfaytZGec$k2b(W{?)wmvJzn%ke-T3qCZMjeZz8^ zvrpTRxj4b_GTV z(a_22pitcw1Z08J8Psx0^WVpN7=_=yeh|SZ#HGmoRZv3SW%AyYK{ktpO%EUA;RNb} z?PlWg_S{GIWkwaiF1|ReNgTve`3pBWgYjT{{{LgwJeJfHQs}m5Ejh(5!ab4;=#fzM z&^bWH8=I??ZGL&q)^?Mt)g^@A*q>JP?MAW-R~%vr9M)%d@87(;H>0ZXpq$f!tM+N9 z3W-oU#9=sxYU%|7;}yZ7rPRiye7m%6yn`K22Rgr6+(5EltZz^=5EWL?VbQ3K7?l~O zf$OqP$~>j8^yXraf;qB|tRs6~^!9p+mqqw;x~V_Kd_^}Knx!WL z^){L+w_kw2)Q5Uh4s1I+xwjz>97m2ta={_vyW+i?i%wbM{@{ zOF)|?Xqyl{SXv|mFeeIuRR#Hgn55Xx!VVkbwn@))^dq+m9*Sj*5!dI3vJ=XKGj1b2Pq^bCA((xPt10egB?L9HZ?i((KkPyQ>mt=)nk%EZRi8yXRbsn zA(OTL><`0mC4yc~;AfkmR>NknZ&HrXc}o4u`G~K6Ms>lo_%OO!&xK!p5k-{}E*ZMa zf{+GAr6TK;8Aw%Bat@=NK=cQ&klD=q05}b>)AL)7_F|OKUMkzJy#GCw+KV1U(W4}N z0#&i#ArAJIL2<59+$7i25ObpvhRWv`OC`G)nRrMDJazRPp7$pcZ{%o#fY(oh$A5K5^qL$O0}YY-W%B<++NKFASqqf+NJSFYSBG^I?o-sW6PnVYjUjF98G?X5T(a?8ZqC=Tk4*M9bAp zjQU6D?J5#zc30Y5lOEJi!1JrW&ZlccgLolMt6kYSi|ugt@keIG7OKuNp-o_(1vp^7 zDP-b9($+;LS&38+A_*9nKw(;)yfC1Y$WOT=3-qaXAFbcd{sOP~S7r#Oe>`_2Q!onR zBTwcCacA?p6+75FHF(6kt*xJ2%1HoeiZ?+an#|Mz!mI>Rzp`dNJ=^`R$G!*}1OTke zF1?C3b)AdN!pOv6$_Qo=G|4G2@q--q{0iuGV_7%IM`v`f%~Neth6&Tq9xp(T8AzD?1K6Me!GHOH@@52K5yG}P_-%w4yGF4q z!YHsN&qr$SAR8x{(_@NbWy304IkC$UrWyI=nfptm z*Ts(-l<&}G%#tERLrb+HgKa6pp)vzicRQtxsSJ^hWH*O30%^-a9Kx+@S(b@yh zTITSY+#N;WFo}I&Tty0Xv4)H6V)8Al1?8tqzOxe)Xc*#+JSqVC??{;50@&+kq)W)o zB!Rv{S##SJOe;7;>M4mQYn@Z0$4*9&mI~b3PwfYyB?E=fDrT};713#zOn^~jm(UN% zlPh(71a*C58JIi6qSx+aAOLY)Y5$Y+Q8`QV+6?NUaV!9sj!An29HMt*&4iUg;t(Wr7Z57bDvb;xoCbG@)+h zb7a_D(lhrFiEZ-KNzY*rA>al!Aig@J3wCg`11o#5F?rhl3kIb=H|y2FCHq~2>u5=Ui%pY9#H`7kkq4}F8f9_0pl}hAVr+%|$mE24QAA??@6PvK(BMWM4`^C1NB7m%Fx% z7a3DmPVPGsG*O2Sq5%KyDT@=dFIP4B22k6u11As_e@11$>!0sG&OW~V+4iTw%#)rW zuI{pj{rPlsQYnRLdK{z=O_4S`4BGh$hze6M6Ux5({Px|$+xMFUAJ~9_k1)|WnHbHS z1T@`sTrDWY{p$WYlGPmEDx!lgJh{DI&OEK89|(M~W+huuzYpvft8E3HNHltj6pJ;Z zlu?%#^%C*ar(BG6Ng0h?uybYa)u!Ys$xw^*VVNV11DbudK4&2l*Dw{}UTANFmMgp| z{w-&OrM6IJKk;O^A>*+5EHU2Y{kuE#?TN=9?%vdLzUYT1Z*--6Z63*(C+nfvE|bKW zwH^iZ)Hd0q^f*W;#B-^e;-1`h`6%;hWe`&2MeG>(wli$0iuf+yl?tyY26`tDH8AW> z0(f7@VV4uOm_Uk)9^amHT(JH|tNVxPhtKa(z7kl@3G~xgJr=W=Gn&{Dsy`K{3l#B2 zkRHt%kgnLAxnTrE!)Aa!#8d-xm1$LjbgJeHS$S&UHRrW}L;AqjC0Nw8xGt zrP&eU57T_-Fvk?tL4IaRDihN%r%Tsa)1g+Awi#+%7pdfII>>7c+Y@y1*0TiR%>a1I zusQX>9ItM?r3qB8=_~Yo=AuF2Q3$iDq2k4<8{!e&9OnQCxMPYARvTsyHbF%4{T2Nd z*Hi!y;YtVT-KS6YA0IY9-F>|KaR=i}JqV-V11&Y|mT2}S&1(3SJRs>#>gF}T(El^| z#}CL;+kq~@IdqFQ(l1b;ESFI!&KgF*24@YMFBFD1uJ>qv5Ucj6Tvu-C2p+8**zEod zF{lcz$8{6LFs`)BdWtIZ}Wi=T$&vjv59r#-R~Wr|e+^jHSMVpZ@n>SS5%9&-%$Xn{z5KQqazK6+ms|gD1$H<1peOC?18dK`res^ zn&P=p=I0mXOgIPGK5}{Hnwb=u`do~1K|?^~TGNW_aXvbcw;0tc@hq=X%iqS7 zk}Sy)qDOefkn?F^Dn0fYt{?yv7YN)zJ5YaRtV2O+8-y-~m(#BXeg%GG|DouEZiSge zV&cYc$`?+b-c5}v5EJX%cZQe`;aNV^XCgB41=lkdn02Kb%Gblw;l7LBAW|TT*(+v( zWhGjs5yI!L92UJ1U8pV+1IpBLSVh~kFefoDbFIX~G&A$d$pXUDHDdWsFoUq!Pc8@5 zQY`z1NS=!|p4qgS@Qn_PG1>Uyy}VRCHaNh*cF9j-4)srn{l z*6I8C9KH}95&HGFXu>^ES3H?!*VE{o;tBv&n|C_4!0=0jMx>_b+5<|-q#1p3HJ$IIA5U4FP4ND%>{<0tq3%u z(ygSJqv!B3Klk1T=3Wq)W3Utz9b}#+zM1Tj0VG5g7qCV>STV`#G}5aE6XI!5=B(%3 z6I9HyPBs7L0wSrad50N(zf9@!>IJ2!6ipE%t7F($ST#jEna4`_ zTTSt9o{;tHafr&wa#KeEtq0Q1v*GRt4%!g>FZ26eYkog=4FP`C)ZZcd0x7RG_FAlsEZxpLu_w<;b$=a+ z!KA%$fno*c_@ca7(g}@H57t~eYgeM1#WK&W<3c*n=-LiDWX6Bm@xK~VKeYN)o-XEl zfp~6A0!Gj|3er8|cc?~~;sA*lr30Z{)YM+2EW@-xv=L)~rqe_`-<21WH@N?;(m?l? z&~Vy8y0;12jQUv|_v}=YnhDcr$`XiUbG)(LBKgj9yiz$~i$$dj z9FqzKh|^)yw82hkB8uPs7>Z)e|MNds{Pz5K%lW-6=l8dqf4=4X zaCaL36@ZJ{(c=rr)<)7-Od&oQbP3WYtbV`#$ry^fkW?AC=iB3e-pPprdS@vP=$)=O zpm*Nl0Q6VxE>IkBxMe{0=JfU?#~t#3ZJ(J3Z2QbSVB2Tr0VsO=M8(|c_JySo97pk1 zas%twq$3YEj-uAAV;ylj-J0m-%E(k7-RV`ss{v6H~fubq0wz`8th4 z<^}>Y#5|u4{&P@n?EqGm2oHFwddU#|9>1$qB*lurl-P6c3f%LA@)oQWf_v~z5DH;V zZNHdR=&>+|BS_%qs6vq!1ObFt5Vx2zpqVDO+4K^HGTz^P_wIhWM3Lh5+{X_;f$K>U zV%W(!B1I2&_xGR6BfzTmDN!l?3;aN-g5(E+@#`3^7PVY-bEN}7P3NJpcOLrG*Lr9iTMvnRq@>jBIcnnXqZNCzS*(}nvy2c2 z56nFDz)bK>i@*gI&pSaW4N!~X8^>hq90Adt0uw&+9Jnk3!Bl~kX%14@3vTCl=bsS( zdTjA^ug1Wg{MD`$b-=nvc-TbLWjk}U4tB=qa&WwCp@E-MP0D!A$`owSpu4xz3yO*4 zN`b`@e*iL7Y&o_W4Z#hfC-Q`dvZ@|K?4a?~erv~rI8!}yF;JEN7*DL-k&i^`L1JKu zq4&P>3?=G|`R;{-G+Co1UTKROE@?rcgzH>~YjFcBn23LK&fh4hNTIRpmZ}`sYa&$c zwt-`p+A}A!_M<5;%Cyoh0N>J$7iPj8K0b@{l#66xtjS*g7{dxyzP`Sg(a@Cs^^0Yk zBbfj*L0Ozi{|wXE1GUe!f=Vz3=;JL@VK@}=QeMIJ6m_h3j8q~9`+ABx@Kv_zAZ;7Z zT*dZwgzAdLiQ^wmg-{AC$>Ea}wbs|6khEu~v8J?E6W?HgXk&EeiwA<{$0{n~@pMZv zNb0MQ@DPnp6H|IKU^@LarC_z0CsXyma9#^D#mk9mX8@06mQYD~v>1;ZM=#A%^Ej{T zp~~fS!J#5Gm8%{(tg;L>7z+RSE5(Voc9!n>vIq}JC z>epJ5DkD7&gGoI&ItOaMLj9J=rD@d1=kv6lVa`HK3yS+74r+#=nKhz>sbc$?n$59Bqt3T(hDM7EN+G|YiZu4LJO$3)Yfn@zv@*p zRD?S=9}$ZC7hjV3lbh#j?;Ew_mO=5N7~K#II99#k+U*`*^>UxvU4dX*%v2qi$9a=p z!RWKzgm`s1F!}0oDWgpIARcIEai`4Am%c6|6;coT#cV2W8UxaV@U2+XtA7B6D(;Hl z>c{an{pi-w|9f>p+^$y@#Q9zg5a)aKTbzFmFdGh>Ke{?`1C#6kD7;Jy=_X=B%Xfw5w6{PpBg{SD1b}EE6uZm zHTB%CMXw}YCa69ZyOicg*i0P%Loj)X_-Bw+cE9?>QDRC-J~D&zZ512cZ`W->)O@ln zyeGLU!_s@E7~uKFVgncnRuL1tg_6gbtfo@1c9wV4*m+~3DY6TPO;uTyMNZn}B3_}? zB8e2mB)8W!$>CJyo@#cxx`79&MniIm0@EkwG>6BeJ&E!#uCxN7XmTlF(etzbv>8tH z2_Y}QQQJH!4hQnVeI<*tdZxp924_LC68LY}2l6PMx?CN*Jt_}xhrnu$&Cdz6_BQBH zvtVSy0GLEuiCS;NU_zP-J-YbDKfnK^PU-_X$&=^~@>%cr9Q&vY&U~b`;6qtwg;oib^!$WKNP|F^V>doMeLuR0h)oPER1~&?&M46^F<(y@ctAVXDo^{KD9HYB*sv zd*sY9^Ts98zUg@P${275zcAVn!4Zo2!YqttTPbJ{6xSr|C-POaw?cpT8JajVo}oY8 zd@8(JiM5Y)mfw{LOO59=cfC~%yxmJjihLH!)h zg{JuisWXpfL0D=9`oxen?_o}HA;Mr8hHLtTUV=WH?D_)#u;Va8IVH5CJEe?J19*B) ziJF83MNb@)gS%ulJ6@#Hp7<$rOzT(napys{gzW(B9{T*c>iv)q4-&MVe6EInG1uVaGvzvVTSO)qC*bPD#0;eA@p6g(_jo9l+I9=UF) zkoUrYVY+4G2B)2_>UY5QL9x8RHu)0|mdHxpWhFV#QDIQEZvtxGy)$aFqt2ClbB3zW z2Sa(>sCy78dIso?IP28+AhaUdOlIYBs42Cr1jE52olFW;H*Fhc)@-GP>XKkSp{T0H zRxoGt$^fb%rpUUTJdJ3OhPPa2Sh^RwM%jo7mCD=l*hj@dR& zH*pz~8>F*$@X$l?NZ+Nb2QxWG)FWaurt25;Z_^i*81L>7J%ucei*`v8SkH9@%HJiu z$g36)Y<-6yFkZ$OcW~{=2&6b2t{v>;=I|8H`qFzO9j<2Q*Inih1Wu&Ae*k5#Bu*jT zTKiH?v{s(-;;2R{nOXlHG=Fn^a@-o~`bKCDNb^9Vy{Pf4>x(slJU1(3gv^JD3Q|?w z#SX+W4SQsn@HtyXc5Z=SFW6DEUokHr2B<42p3-AVSItVDN{HCYG5`cY zLM%=pZk_8_DwIkrh=o!6*BeZ@0s%eJ9%mCUmVTEoOVKUIZ|pF`St2`l65_Ea;aX*+ zTG)js<+6z<+nWW8HtAgzfJjqMM;bCT>iKJcnnHU!E{(WD@dNs1Cd8!Kc0l+rv$43j z!$^0uc37TXb@^9TkVT4b0ZmDAQ32=R0+}1PZG51;$O69BD%BUXC`vxHOi4rZ6S*93>N(AHd=mTyA3`Tt?p>VQ>RuH|F$*lVx+m-{< z$_dR^G}nY^mt?__f4Yk1N`n4~-8_63bt|X~s#(=9M?JQVoUxc8D`vccGzs;6aIhDV zzbH14C~;Y@W@8{>i?^%ZCLw~?LmKKB*%&IZnV<*HwQBiB*Rw$WzSyieUFiR3?p>SP zNUk(t{S>^tu@1`awsGNg=N(UgAV9(*2?zj5$zKraZnj%twd9p3PkYC+zkQ$QIVUqu zRuw4r*dIm_-9**Nx@Dd`_e=6v^a>sA0=q;D;YtOofZLnJU}%ZL!g5Rhr%9}31sM&S z70{1Ud?DtVrFhI6qx+yCLa7;Irs1P%>q|PysRUlpSSP(r;^FSP!yb1*tp*l>bB5bD zT)XjfV%?G`+cw@>pcJ7~`%{{U5LUz!KWC$4K7!40j|XG6M(^J!2q_FsU>G9*tvA>S zo)A3T2}Tpff9s8Qf~N%U?*v~Ee6SNdBlwVD^9YFT?i7kTpwE706Pk^-0i*)iA4_Js z7hX~Fv}L|xHx_@q5Ktyemshx$q1%hpjuetg8)nl0?&m}$$VQUs1TRW?i+j`TaS^AA zv!NrS68J$QL)2k=@j#DC?8$UObgX_&HB_3L9wb$fW=4X=iJ2uPtiJ zDQI?5-`QKDcjN+3M)9I+Z277!_;&mL!^iuF&mZ3dZ7m)UM0s`vX})q%QNDJ76BHu! zv?2Hgg3<*x{=`yskPxSv5L;r$wm!M_2PZUzbrT=Dsg=v*cQjXXrutm2zbalh~<#Niq6_7?A@2f5hqwkApmkLYY)D%G;>u*8w}oXIGa)}WsYw2~B=W(N#mF}R^u9ugP}w0{`l57G z!EO3d8ECdKH}e5R6#UCRT5IM&ur9ET490}IoOIULG_MJ@XJ98Vw-gc5b#f@*8Ab0P zpSgI|Achr8vi}r14je+~d>4yA13yw2u(!Gl6pwd@I#IHfqP$Jbx@an%P_HXY$t52G zX_LhlwSUNLgig5vRVzBP1=hEN;bWrUl49iqBCc1)Q3Js~d$G2ckrzl`R zzeeLVFAA;3zgPeXdlwW1|VTh}n zeH%pg;<5lMfidVA@Jl?FHeN{o{Mqkrkf8tRcR$>}d;9ZGZ$AF-&-V|%yT1SV;k$Pq zK7aqa<;M?yLgqf2!+v=GI|VuZZnFf5gu#=Ty+r)h@6PVO{cJM7oCRnlt}1Z8eUht$ zrko0H-+&E-%+?{C4SBrfANwvXaE-U%7+?va*>S=JH8|^0!-{6bP=>pl^y1vlRAA@D zYTM~vi9kKdN})O2gr6E93Qz}Y5A_$up$6MbLq4xGYCKp+aaiQODS^Ckg{5UX>6o`YSnu3$qq_| z2UnnE{I*7$X?`4I+%WF2vVcCREdAE$*T!@brVH>uSnE)!yCkvKY5#G6uHc8!*FlX; z`VRJ9A=3jeFG%vma^mlr{fiFOt%5}A*;FQxO2@)PserT9qZk~NfMsM#dBY2@?VAz` z@KH6dPGTX`%**$B%*6nq&HTD@=opSv8SL~Y%k9q6XYBa*3|tfQ{6p0_Ynlmhe%OLs_E>e;eDgYlJSX z>MdIBci?!_&B;efC*Lk6gIq1p9Ucv!-4;?B+>7wjuF>skI=zAqT&or&wIFFNUZ%Y`VtI|pRkILfs>^42JM}1=rNGPbE(P|dTK&W`__7So^aGbswv<;E zI^EUHCBBvBUP#}rt4i1I07y=q%rFC2P*q@}NJTTl1T?^UNs$W+vB_;g{gMi#!4hP~ zvr=Zh7CKsBUBr?qGI5g;cVGTFT zT}>?H#wzTW{b}lo8#OBA0#u&6bm@N7rIRLR z4f$p!sX=k`V=*$V3{ZBt>i5EL!Gd}*v~8SnTq=lWDkn7^3=u+(bf#B7+<%<>$B}0d#l3kY`xH+cMMK2Puy2zTbcrh@yK>+d`^VubA-$b z6r$vRSt(@YM%;&rADI{8JytYq!o}6r3|j+qU!OM*!X#U*CzJpU%rbcv-Dkn@kST+=N6~Hofw1Kvf#!N)m1Lbz)O0Mcg!L{Pc`rgrfhOgag<-fU z)V@?31MVk2MYrEf26Ca55ThsG5o+K+`HuM=hjfvJcO3r1@AyxZ@y*pd?*GH@_)oiIen%7#sowG6AAZMw+8y&d9yZ?b5bqe!^9Xc8zHqNakRw-+ zA8mFd$nqCAW=3~|WIS&?sg}!|T0#)nHM|H%q#q2Vl)e0EZWmn=U3mDIyqynR$<#UN zn@PXy_Yd&)CUWF}L&m{M?5NI|)Sx`03w19{W_W5C2$BG4@jTn8G9_aCPHX| zOd;IE)bs#@*kB><5D9TD=q9p;w(suWe0qQZBDN^a>}vzDn#CNMgA`e7=KxJFEu|^L zXxNZvYM6%8{esGVarGJn2G#|}cQFwk*VMH~I%lG83$tU0 z-n0ugs?4F?BXn_)H4pcrtO=WrSRfpgeKwRF^{ZPpVdYJvg2D5PU@S<3y}fXZ9H9&_ zoD(y5vnK4*X<1x%jY2I=qa0B`2$DWDJ}i;Aychk~=jwcd>LPA$)QLl3o$K-G*oI zz4kkskGxzjd?VY_w-48!fBF^$rs*nCdY{?$&4!hVZhJx9RCRm*+36W1Z-(^rWuZae zBCT@!v?tS{`R^@ewF+2e@@XIyB2YW9gRbY~&2pjkMs0%AxB*k1k%MzwVvG zhp^;^qX00VBNenI)JnSsQO-eXHbPQuiqD}hdRMvJ>DA0&J%h@dY(do8)^O8r^wGn^8z!yOCCeU>5HZy%GG&~m1J5VL2yETK z6yKIJPCJJTHRL&hco7G)V0jAe`$*txh+Z+-7l+(@W+(E_cIhCW)y{L8H}I}9R0u9# zXjde1qyos7FN}YQfK6|i>v{+_sn=h|=u(yhpanU;je2k91`G*0i3TfJk9OD@e5jal^o z-BooWRVPceH>P0y)9t>}I_3(z{nCK7kPrkvO+E@q)-#V2MrbiLN@^FKE@|u}#M;5E zw2E}6rmYYk?iO{JT)Rx_sJepw1xCZ*Yl9lO-M3Cb^1R(#?jJ|FCCer!Rdh-hOZ7^? zc!Lm^6>Js(pxHF%d)1jOP&r!2DwyH|z=IT(MccD^Z9FK8C&aNyWKjq&q%Z17m~SE` zF)!B?R|U7k61(7HmR9J^BNMFm$-XyJRi56eu~b z1yeQtuDv{-VSF2|%aF8(Fn>xl3@($n#K0L} zE3!#W?r9Ey6N65sXY$2^h$1Ce$h|ZrS}3_~bdCG#i$sAMgf0b+=!f9P{b4af_7eV& z&a#{RgiF~K)-gmM1j`K;5mQDFRnB#FYTN+o0`k1+av!Y4%1&0qsRay|K%~W+-7JfQ zt3#285|V^pD9+_OoOVMkoR!p6bQoeinJnk0A=bSddL_cXOW`$0ZvgzWM?A3rtOj?M zL=^-Upf+`BhLbcg$W+XdlgJ5onc@=rcy@WSz95rVECu{eNUk%y0xDRF3kdTee~E8V zZmUmgCIfp2itp|WZX^Jav6*EQg7VHdxe8X>GD{Ve)CotyAXp{6jq}Sx?G}6(fq-d# zJZrouqSP=gVIlOdCxOtT3du7in5cO&_*Tp?3FlZ<6*L-^P0+)!`zzZ(QW|qqSe22A z)KHz+yrLuJ2I4qmR7q&jfSxFWvv>2T1S|3(?tg(k@n9X(3A3P?ow^>+rXIWO?ZP4p zvxO|)h!&E0vX=2vk|k+-4Z**nJ3^w0@EBU*LjC}%?=o#5DMAVmG@92YobSo)qL-52 z%gfr?Zy}mdh!LYS$FNMla%xacXcS+Z3d3Z*-lgLSB+O{Cvy(~>YeRJrZAWGYQ!H%M z+!`PaZ>B#U?l-a@55NS1BY9}9D7W4vY>zA1iSqRTJ-Mu;;*ztz^^Zm=;BLP-L?K=C zSbPFqIOvPDU4Fd(gj8@Yrv+ltSdpB(V4pglg`End@5XE@_Ytn-cD_%7_zZcIfkuBD zA`!H3YFC4M7C_bmqEen0=M= zaOe*R#)v{$vKJUcgNIQhUax@O;C~hE@#qp++>lMaJHzujo=X zqzB7DOOk& z{@n+!38BfZ+m9L)DCYP(U9RVsU;*16Yozw~_YeE~C&PpOXfPVwe=|5#iwr{ws}KRh zSfhx<_fGDm@B+7EK#RZOBlc;Jz>Mu?40jNIiU(AK!lX`1av%=N~_O{>$6n&Ak0-Mw2Q#I zmj+|3lI{i-oP{|eVTtE8gK4j*T=a1jL)HLkxQqq+QEkCgCzS>_uRvN&$gwkcsn$2A zC8MMS<#D~M5w^3e5-U~!u{7nk7KfHc5EEs~xbLU;>*tm*Lz7DfW$6r(irASMn^!0k?)-!{9vy38l6ijI6w(5~ zrh`nxBhX>)D5WOqbGoT$?-*7FaWHJb1{Z13=3eWJ?jz0(zW&vZUx8u~VJUlFAViP7 z0nB899p;lv7;0S;9&3-}Vb8DvvCS5`ccr=Y0Q?47$ZUE*$CQ<1 zQTbA@pi`Y}anGaH5{R=Gx;sH>7z!^mI;GNoW<>|SAMS~QsI?~V0w)Z zFDdnnvt-K2(gB=!iKu%~l15Vz2kFzKB)~XxJ+${2upALl6Uz)Qn(A=cPtCoHfGBLo z7{KE`ryH@J#!ZsRm*P{8Y=kH1PvHrD1ujQ1Mv!M%sKQ2t6%Wr~26b1VMu7YhDtu;TXdMLCEr#1KILJ3>R7aH@I{MaFHKXehU7*cxzcm38Z$oa( z1%sryAND9cb%ktUV#mdlp)h+@Bt^dk1T>`zl-b8GA+y z@pY`M{|Q!Rq@!*;h=2d*AYkX&lee0=SEuUjr*SDgZ`UB(9`vLG0XNh6%(7+ z9{ud@4l|^30PWKfv$zjFfBf`tdH?=T4?iMbVe|3L`%ehU{gk)K4e;m^4l~rU0vP4D z)-%MQnvll4c1FyH0@8jgloUH#a51oD;Z#=m4$WrX%gQuk#u`de@|J-he9t__VYw83 znh5RZWGvSd5TWD`U+0K@m(U|bL-i)9JdtN*@I{!JA$v#eb;dWz2XSL1llXX-eR$$_9!ERvPk3fG0~HW)*BBVHksRaA8$5QD&{PMeTQO~)9K?hvEZ)|WDYdry-y zweo5h@}j5F&Vj&W?u?{>Z)NXIXCp~$h8sXDIY#6ZEJgs!`ps@cf z1iu_pA*5-XbVQ_Hp+FtiL2IBl1F50Q z-i3kepP5%ctFj;Y(t>VGHtU|Pr5y;> z#hh>quaik(#E(h%Sg;C-AY{ct)7zW6&Opm&D2P= zu)F@MCvzN(Ox^_AuD9E!u0c&1|F{y4+fXevh1bo`OO)kgeSGEiwNIsJLMt1dl&ZU% zmW`59B;;U0bbC&nne&0+*`C`BA!9Rp31gl=1FLrl0RtbJ>XERaU)@x?I3H(cGukSm zOJy`_$w3^#GHXSd!Jj-{?0i0JhFCO!Hc?WEAR%3OvEPP=!7$H#3lmhPQKmVB9X35ScC0TURN`giFm~YT0;QOUCP!2?#7I4uhkK1Ad@w zYZ8UG&}EEo^MpoK+!S97TWl&TYN4TLnPRBCX!E3QLP8e{1BNNBKw(CS(Ju4WCc#Q2 z>PnEZtE3ZoDIeYoo-Za0SrL7@!EiLxT+4;bdSk^01ntdF==G6(JXOkn@2hw3sKReh zw5Oq|`2vfEwV}%OUA*9m9DX4-$0{7dt-M)W%`pcqOhe558Vtx2LQ`Tx@2_v({fp&@ z;uo?znJB%QzPh9E9lK)x`uVR=X7&6zYt--YKL67D&)&cP`1ajBh%-eLU4(mlz3al~ zPXF?Sdx)Yktj3<(z;=&`XE-v&BzTi&bE{+JXDL0cKYaf9-Mx`NpZXC^0&u@U1@W!s zHVos90W91g&m~J^Fd5t&LdU|uIr*f&xi?;=!$pdpD-b%tkNtJeoZKVY!)^_8(XMcs zCded!A{CJ19_()2e2`RXOQbPru#O!FDK@~kHBvP~l%Y$4}o& z$zY2ZOL$I=Y<^kV;@XyZwQCVv==tJE9U}z;rQT1DPFN1;09?H~y_rGb*)qfTHIN;S zGRRU7&-*_gjK>H3PXZv*(1U;*Z6lwoYcSdJKvk(iD}N+;d8<=;6&abcqqPpTXu^C-^Sh&4Tkb`wN0xU?(YWE& z7?0}|4Pnn-yn%odlqC=ls%9wGRJdcNi3ZmG$oe;MtKvyXDTu@ zzeWUp<@>i+|E4#v#iE&fd8wtcpT1DC^K!adB&7jqDD6kRG<&e-!pmd^bVEAnm(cW> z!2ra%)zFmEz!QZGQX{ANM}gu|BVR5ngU#3t$!xcnSW>dzc-Irr15^>Xz&$Z{@Q^3l zx?RzRYrS*MHA>&k&k-WEvS@;l7v4EaGMsCKVPj!on^2(%gEUZE8GMGuC;X%GY#v)0 zW07%t)ZgDMj=1}5j9bdM$#XBOVXr>ag6Shp*A~&8<4pJrJc5h>*h6jNYGGTa9L_{v zk~=BcjI3QER1iI^!=bdAujvY|bPo~~y@*-M^^@mxXlvU_Wjp9;SgTfdF?Pc)m|d08 z1@C2Mywsk3Bg+FIiw)4GBh(mlft2bIiSmZEPL{|bEWh<7X%E3HgPK)lQbjaAdq~wFAu+#$ zE-Cfl%|9If+b*eknC>8%nIxhv(h^Q4J65b1PX#`p%ik58ImeEoT&>Ml%=3Lx?3$QvTS+=C7(w(p)kMsz! zLS4HL=ecCe!61){!c{n}w_wSGvnhLIUA=vO`uT_T|B)kepGdT45km{LwIPRZTe-i1P0_{8NLE$mwYQ{+AX+lm%0OyY*xy6 z;I+J;l|HRTfEcrazMDbryh@9lZ1f@Yh8Q3b87*a|SLo&zV-wAfIT&(AcS zTCDld|CIHIMjW&I(JiNn>8c*10{9YPu!%rL#Fe+Fr!`|fJ=M;Jh79LxjvIH1o;D<) z)9ZRQPZx*>s+V$t;+JkHsNx8I<=BTN+`0prNo&1R&eV2VidZc6#XW9olCdYVV6put}JrL20jHe@!lt>K|U#B?1O)Vax;`fk} z2BCfswd?u-71~H;+_`*2=0Mm2#K>BJ0=2KPe%duDO9O0Y=hnojE=Kd8l8fy zAbdN}E#-Lvp~~eL>~}^NE61SCN3P3F49tL$fWIaeN3ug0L$1zCTVke)#MQ8icx>id zlZHCBh4tMwg`5C@n6_kO!OmyhHU=&x^u|x0>Lf#T4bg-L!JP3kR^EkWIszb`*Zdc< zW3QU)>1tunVEz>%jm)E2xhA>dts%DVwf@PKOqP}a(NGcD%vQV_U?bgQHv_Zfjg{a8N$VyaKF zybddWUYG&fCjp%AS-gV9HRaQ07bPDdz`986PVVH+ToQ+9sF}i-=VMsRt|_42UJX2( z1}Et})7kkoB83>PZ^Gq#F-QUj+TavC^tW=6!$A2ngc8GoHNA`{;iOm+*ZvRdmk0u0 zzhu)53V(j<8l-!Zm=v2S+I5Pc1e+;NiRp+GkTysS89JFbjC7&_NxWU^Jp%i{lGtt? z@jchvqv%11NXngZJfL9|E2Pk8^jJVon>&dMbqxqIYzf7Ww z(I)*kBh^k{>aWr@L>Id-$X8>36aGbwfLtv2kY7Wt?P*RV@{n(*uav+Gp^0;jDQxem#xh`IF`J#An%8j>>TkcjC@M2`sbQlzLg*ngHYLf zdjrgdd34)@#RfWe%o2COn!ZR!sa8w&md8KvBcNVPY$ccaV2h4$uY>ACaaT0vIO zkP%Q@S=A_8H^7=p3Q7`9ROU7968~_Y}5eElt29P28F54Kaf-;$mvi9q-8x5c? zaMD7i-V49=;Jh;?YNOTI>}Gk!gHn$z$ZiOB7{j6{69US1EEK@9P^mMbOACmQFoPBu z*GrC-(Cw7bKsl50hEJH}^VJ3(otofjw=&h^I7oz+?BQsL-Ry9iGN6dHz(M`rTwB&Z zHqBh;7@I)jNOw1ga7R6;%A{L^@&c(i`!uEV4XAr@X>tx~J<%1&9tl)Lj0rrmbt@T? zXy(KlU?v06<#Kg%O#@M&czccTjNkP3-0NVqK{))^z0vSFQhxUQ26&z&?E-?bob80V zVKa(Q%MudmFd)BuiR8rB4OFF~if`!u6ved<2U?)6x2 zVJ!s?YfoNd0QpaW=|*NpK*4^p7ivnC($R$K5~ENa=dDahWA;wEobv~`RKuhnrN8@~ zT9RIXw4Y{qgc+RgXr3)l_y9#YE~iE>IzA!7by*})UM?gB&_|HQRzin$D9AYKqFLt< zpRLO!xmyR94YYpem}fqnSRnjz8#`_c@g2x1hZM-u4TAHK0;Th`D`h2MpIVcv{1(Aa zxxd}vwlPj`F5%4GRuI_IUS}Lu_FYXVJ@R?v>WULMebK<78m2o}4t0d{Y!)XcrdDd# z*}en6O`;Y!1GZ&L(qg9<%MD^h1!E(aX7&k6%y1KQLD3Oe5A+gA`c~+RW{!dRnTMjq zNMxZ0l+cEc&&Hv&*km-K#E`@(ZkcQJ3#VRF^cCna`E;p*&HSms*F9dY30)%TnDPX} z)E1u~{_^=@d-mqx&31MFS7ZU*!!RNk^8GuYZu^IML*a8fmT~0E*rK#e2Uo`c&84kz z&PS1%^Vp@e22A56u(bjT41Y&N?50HLJtBjQrx+0%ry_tOM-YhGjQx{ddC@HGzY5XL|O)E z2=r$=g-K@(Q6pE(K{KwDw$@5P@Up?BnkF4i^#sz3Nv{Rvkr5XGsjtAi#UP^I+kpFA zs-4r9s!UuKLZ$XPb*e%3)jB8E2bn-ywJ}1h7x-RSPwy{fiz^hCDtfGtt|yrMs#)$Ql>0|lyuGh}yL$7}?DPBYzM=?Ys6$Bs^2Lc9D3z=8Y3dZO zwb1138cJ1(qcA8d0Bm>(mQV0oyUzTdSrD$0!>5+JjYV zZFZBo0J-nUcx6H1jG@sx7m1XW`|GIG#w(ph6}isS0#pqj#DIC;+&UEr1RW&V||Rt0Fop^l}>E$bIeoS?E6p}HhVg{xPK>(rS{WUx{| zQkBGB=UFFoX*o>H-{D?2J8j5*ZWwNx%x}NxU?x^QTHpfvYd_Yv;1`1MKu(`Y2KL{2 zX--M0Nwi!+)W@uV2(cQC_~J`&AA~fxwK_|Zl=^kg>B_<#5Ijbp=Q7|K>k$KwL&-Bc zp~rHq(W(rCZq}(@=zz{ARDsx>qwvsU*uGr8jq7*Y9PhhQq<&e)xY;homO;C}E zq2IouvCQqD(vXwXDx6&0Af2Zkq~%6^vgsXrUoFS*RCxYNuW#g!N+osV+`)`R$ME&W z6tERQD_<;2t0-$vXoP3TjIUJOj^r5*78MX!-#?sweEX*#AKu@8`Xn0^$S*2&M!}W4 z*UsuCQ%PI`P@^M6$byOtH}3xj!9_3eM-#?17!;N|LGc6))K#VpuIQ6yru>7p_e?cD<~ zqYlhTat>N0a{g@KoMxmwNH;LsGIsRo`n9ofQXzX73wYa`^qMEck!|@2N?9>xRSWhK z0z2|U%D60A!gtav6$Oh81Ll8PLj7-$Qosqivd{?Gz190B!g z3aarcGnM&mzI4Z6$Z#{ZdwlW*8mzYjU4f4PvwS^~2bRaNWVx>dikGyD9W?-#})X9|K(Y&Mq%!}xz zaPZZB3bQiv9O$m|!Mq$`=#ve^pXM^9^Tk$-{HLb$EuO3U~_0quAkS8%mOrB;z zvMZ{Kp;PHC61Ld1iGg}X$cNYli)9sZ)d1I1WW1-(Sh*`$ZaO5--vn3S?TMue*1YC$~XgI@* zC4-~Yp0eTyOqB{CeWS20nW?ZrX^_$c4paB!oPO6A(I|()LCq11i%j7sG|Rq~8W{}8 z*DTDUw?~I!*ZxjT$|0@EZUt^I!H#jZoV>d=Q12~q6NOkNl32l6nSpO5D-UtrB#)KjI8c_nbR>H;gLNw=#LE~JI0@2gI`|-`k-f#L~S4ikYMA(k- z^foXvGt9GsD-ZC)_IO$ZOa)Kc4#%T0?&`XuU7(%T>m=kIfv7wppa|#})J5z{xSL7C zMPf4C6y-)S4<;9n&p~eahqO1PU|@jZB582~0^OL!jd@2$E=dyR00@k<0g2isWF5S# zRq^vZeuYl8zQ2i`!~w3nI0 zGn7XleLc2)SKxe3x5XZzJO#BB+BhP&(CUqb3>`yaKz{^3ZR{N%&qmeyHikzSRoO?# zm=RUnF4cb)DH234lI0Fh=`Vsv%JIiSrsO~pmkD~J@God?2}o0KjkeC&#(~mv&$DGk zXk7R3;jUCfh+fsnGQ+j6rdJCjuFbCKx!}aO1xQhv1(+PiXE&SNh{f;jE@eSckZf3t=EbIn>P&zy$|4 z1wx;Rs)kI0`LZQX^a8=P$F}k^Qs=j9Xv`z2Uf$ny*PzaO*Q=Ol8$|2$WGK}$mlo33 z!E#Wak)``~HJveD-8{JK`*(0N39o(my5PpQTiMzs35kI>9jpQwF=8!1l>+o{uv)C- zyP{PYtnU_4HASxeH>y(y+Rpx{fCX62A;erEx?Yxa6sB`R!?mx>lNMM3)R<(0 z4V<_fWxB2eNJy#pE2YzZN(7?nTiA(Tyw|AW0WpbD85VGYI+dcufOi78XiUcVgISfbOQHs|}XXiqZkr zW!&tn&a{Qa@Fjv?`xk$dWvWP>Q>3@o>sQ0d(@RCrY$O7m1NgXno;_s%ON(yH${(%<65x3Z;AI`X<@ojGVtm%)@5Z^rioHKmwVmB2>>#~U zB}Xzar!Cl|v%)DVbP(%+45uu#nsuhVq&!KlD+kcjFdiXqGMP5dk9M5j-*FyIp~X^L zJe7n>sU&wVyw6oW(rc%Mf)sMPYoP?wq{MkTcFq`WW-nndKuu_oQxB>j9-ie6QvK0q ztphm&f?kji+CVivAprGM_Lj4*Y)VN*E#tBEmusBl4CHK{5jGzbY)BUGKA;st)h9_Z zeiaj8f_`;M)6+qzxN4?uW$e>7CNpx@^8FuKdI>Epvv`WLzG%KH?f+k z2>xLMHu45d4veY0d`3EsleM`;Pb-*) z3ng`bICyXdQV;Fs#3X4S%0h@W22e1_z`!u%fprJw8UTU0y1nC4-#*51N!ES{rHDXf za;C^)A=Cw+x9lL)imD+e?uu|UTJGc^ks7jYcPq%0l2$J<45=6(>B}3MlrB>MJSRnE zJVP}A=qu-q{BhD7(2GtNN(%3q0GC$4| z%F&^5hhoh)Yd}+Y0xbnG1}8$(DDe}hw}y0#I`qsDmf+Yp2eu^( zf<;`xWhunjT}lWeVj0t}QbI?tH%^B9hmWFlo24mvfL>ZBbI zl7H~&SR>DAY_Axkc8u@^LSX)a^~o&%yIjTPsbFDoq6o`1Z;P<>8A3e3K1OOPU)=Ld z_T1!4$sqr%EVwBlMdnz%Bi0{2>s?6H0mU_3`J8v`6H=OtP&Ds=x;hoBpK_097ZF1q zGEfL+wTfv&qV6m$m&&tQO%?E(taS;d%ZfJC@EA%$hCFN)9&=|Ce}g7e_u@(F6s#Es zylTl7ZMZHIp8)|pI~^;~i%sJ3+qhnc79Qza7$L%cSX1sDnrrZvNdeIp(g5i>R=Z6V zWRG*jyko2og_h$at>oQ7lbqWj6vdwG&uIo^hbZywnSsn_L$7Zmb~4QMQOLkoua`T~ zXFNp#lt`bXQAvl-qJ=B}S=R^hki0SO2~{Bx&2)Cwj4!QWd7-4HF>{nX%^Quc{hY19 z2Ki0uBN2ovC`5kJ^<~T=oH%gu6jM~k-Y>46)-c~FL=k)(l8g!isREulYy9&H)%cH0 z-`V((Y+O_}$DEk#RLji}DLov;xVokX1~|Au_Dx$Gs$?j!pE1soPJI*>Ua9|>+{d(=$y z>~6f8VNPet*T{YgT+IB+Dh*G2yDZqPy+da zyJHCoJtAN0d^zq20sZ|*V1+kU-z&UM#2kf~#z;AfIW>t2$V@LsvCE&eWlOi%1ES~F zB|%2}s5Uql9k~6I?h%owxcRcA<`krcg^#&Fvia2(UF#-n709lc-@SQv|FLJh#G%uT zOwZY=lW<%L;9`JC7I`UA0XmUU$KhD!&V!RQg?TCb^k0p!IIJ z^uO)9!6NbB_T3Kt8^7DhKmKkz@nwLD#a~*K-4_GVzkD%O8s%;vd>< zzkhgexPNfGKN#*G9_-(LGaBw+I(KzzN{LlG0fkH+Hv@k2dnz%rKYraSrkA!(!>7l% z8i+2Uo)E_1FYJ-H*iUhy)z9EexZ?c!2E{7o^Z~)&gcDRg82jO&nY$&1dVqfoX@2r= zTTrCveeKO&CwDej8eR*M4G29s21Nxc!USSFg}po5$Y4PAf=@8KvEb7oE6E1WmRu#` z^U?h4-uUX2K3_tK0vQn#2Z2$>1r;a72T)!%YmYP|{`3)apOFuw?2FM=CE+$eqP{$* zT;ok$Vl|zZek52!>}JeK*udpFYBKf~SZ`@8 z))!%LGTbbNeNPXd2j1;oiT!gy%<#}1E$<;OMFdDOFuITv56s|igj9AGM?#PU1e>Ol zaK9m=l+|X~D*TjYen6oMsBEd3@8Gxioc_u1_~hWAe{?(;9^8L(G^3Kr%Pp<}+BUFM zeyI5$r+W-z73Z`cV2&Ef0ajI+l>(iC?HYoqieX5*hI#N&4m6#N=d)gQB)qPSQRWqb zhaHLMR&W{XL&dvV#1YnTKQAFhBwsIdQdnvbj4!`)9bJ-OhT_0jtCBkY^tbnucYmJ0 z*M2!*EomB`nd20zid&x<(-lDj*mDyY#XU&RmUeN=H>V{Hpj;fvJacA9z|GKV87{Q($itcbJGT(K2ZwBkswp zfM*Mgxvw3l2fI9vyehS3P%=_%)j*}Keq~b3mRV;XK1hqHG}<9O)BAkMnhDG$>L#;A z>@Nv}NU26StZptj9@cm$x`=tvja<{E8+3~0@p-ATtJz7gRuJ_%$rc;1lZGsWXwMgx zR|e-f_u?gT49=0q*D4F%9BxQlu24a62?&nsE*wOc1}C!tb%TwZ5S<2_;+}9klm*9v z>?><{E^MH0q)m-UkR(w~;Hr2OK{PV$RLB80>Nv`@MD+f&l^^)xc4Be>>QIOLa zLI{AtbqycG*knYHTNyU~=yjeImEz830->4tl4m@e(5SrVw0~CS_!B4a*s`jPdAQF$ z>4%5f*dXxuhg3ewi!Wug+8wFX3D>mc2*Cq=NIBHI@!J&Da*%5%=$E5yyM{tzoTe>F zQ*639%!OK*Gg-(r4K0Cna6_e3WwCirvgECB(dnB{_w=NiNi%h#SjCE|tQ63|-$2CG zXd_c_YrCNmzA+pgkpa1@UdImU0?VgGu@goQh-34s5q^lmH%}UZ1PiQjXRfJBUwQ5i zP5LWIFkZ)&V^dBaF^xtv7#(S@g=G!Z-XJUli*Cd-cau4(F|)SU8foN++U9JSVuLT) zi|EHQ`m`eF%H-%v5v9jQhJpn3yd+t2=hZb!B@rMySigJo*Zb}I{(pZ)t<<+~-fcH5 zqW;s{2RZ;+gCcZ?WWw4=oq`DfREuaiVz~`kx!Z1(E-_drt6%lu13ARm?UTGKSCS8qN& z+<%Nyzq^)-?y|Lj%ulTKy`J z1{)gs1F#G)df_*g2dV=L{y@RcwJY|%8TF4qo3h(6JHcdHWiWcs-`haj*=a+vP!dQH zq9}swZbX~YS*9@%QSK zZu;{QVu4vFM%bO=UdTmYGiZNC%6f|+JtXsqST`3CXPF@2xrPvnGD3K06%n#>jU!(W zmXb-Mypjw!4MkU9dDnM94pploy0MD&1W?-(VvDpf;SdF}CT3;=mZP4W z`lC0suwLOQyM|P*oz4=q9vLDBmS?+yzEIfks=g@}nv0o45SQr7^YQ7idkZ9sf2h0# zZ}*GKTjYx#D{qmJLo#b!TgGH~mk_YJ9Gjzz#R&3|aJ0r|c)#ltOe@DdsJrDNNEYet z72FyyAp|8rPc_+~c%dSs!>`gi~z!@$Cn+LH`@xp?L}$lhecn zbA1w>!g@``*Oel*|9`8|HfiOauBn@L`rtr+mc*s8+ zrnQFYV8|)-Mjze2*cIjro3ob)#OoNT3kw@ z?KU4@*dygwcwFv}(r4BVir^1$TK3?_?v>fmq6d(FK@~X_y9j8W-SYA}_1aZsT9drssCM`NTaWOZT`;EC2 zpc=ylRDxuP0%{WVOu;QkD2rcUZ%V5(hiw11{hNyyc>WFYiDryOSCdxGs>(eE#W@ygM$eV@u3@G|9Q+UwVhP8zgRth|W z@#1R@O_`h-1OSS_|IvH<19M7~Pyoh%i6|RlDc_G*Op&MmAH9$F51&82*GYtwzGhc~ z`**10`5(QmtHZ?{X-&QGDi%k5F}uD(0dS-+olQ{$KZjQ9JkU`n@b_Lm?;{-&YQ9Vm z(#+hfgfd30if_)rLKWD|nt z=(%%{?!%hjctvzSL-zbFVx6ze0^WUIh9ur%zCnNR79A!tjZi(I5@-%6&>WaRLrlj% z5_pq2km`v5Q5a8bhn4KP8mzmDnz`!bdn|Pjb*|EtH61{@3vq}XcKZI!x9{$6zyJR2 zhvC%+6b=3GQ78f!D!_I?<+(_qxlnB-V3kCG9MN0eHCaZDt0^cU6QvT^Y0x2USlMrh z<|dG84Z<*k(ia2TjXGzH(F{eCMuz0o-EaX~m-`?d z16c1&T7batU1D|{s2xE+n|9WIYexi7m=yC!c8Woli#wm7#|P;fEtSDURoh#EkrgS{ zK>1an?}5L1y*0(ef&f$BOWi<2d5CTKoqfSM&X8w7E90dFmSXT4ci1^TrPDoi{Bd?L zmuEiqK7+$wcmZqRdkwXxJ>l?|e!^h*OFv?GaOg2hZf9hO1C8p-OJwVkLN3R!bnr(7 z;aMZzDz`pfzeb&0>1yRzUYH>AFIO|tc%UszbD#_)C=ENRRMo~gAtn%tcaOzsLL}v0 z_zir(NHl4cM3CB-$uKaW6OY?|a$&W^tc6(%2Gg=72CpHWn85`$NxVX^C4x_9v!c}f z#tFPe7>y?)Y|j@zUe_9yB2nwxw}ur|dh~87F7*p{D|q(k-4Js5lus!8;?cVuJ?(A< zqaVE+LN1^3Zj7FM(zqwC!{CVvF?ixi44$|YgD0*9s^CBEd!IOe!za$)@QL#`eB%5K zpE!TRC(hsSN%MD0;rD41ID8^H2MYZtJ`bO`AfqQP$mmH6a?aAIPapZD#nU~Xw0s)* zqy;=*9X|Cnk*@HR733YC_>za)C%z*JPd@F@Xd?F1flqu#2#!y??2#VH*PM%kTZ~6Y zkPGs^M|cEau@R}!mf|M#OEMl!C2l@}nKYlub|ux|>06A2{dUc?-)CS|+a=KVeY3Zv4MYhetC^D~lcrB)+ug|^zW*Aq#=tjFcY8dJppq~=4hJg@qtn1>BT znpTxPCY;t3$V1pD3zRxL(z?+F->>f2Jwi7(2ONuesrsxIT_zK0gYZSc_As@uEtSfY z@$_g%1|SS66^QM8VJ@7rUe)|sZqnNSb5)hXGdqm8m$)(;LNZQS7>0Mia}B-;(+35M zfO!y;*#vgMWF4@9(dsTAgxd#F;DW4^$tkM0$Z>P%q3G+9zs1JR=`V_>XSNQuxy3`44WxD4sdTO+;+3NnW7RY z@;mLxG|n(eVMtvG6-uPmPgk(XB`=;^t6-5jd;5t7D;xgd{R86FR`>irx~OOYu_aJR z5g8V>NrelTL7FUt04?XE9q7^o;Z4n_;al!iYZLMeM&UWb-E|Q=pwa~~^_WQoX{d-g zsQ}l*PI@#4=bC0b26L94xSg+Fn%gZ}7Z6+kvIfysJ_QdAHrUmS# zr`vYOECbvH3TtSs(NpU`R!HQ%hP;{07R`vK@L`N^kk3?8f{p>YGeZLFg#KP3j7^YR zaKYh~1EI&O{9w66RlgdfHiS)E{fQW)t8x@9Ag1;e|DUxU;Laxc;W1ZBMw2Zkz}wbY z|5T^dDSvI)jA_wzIlT>FeR(AkqzJ%}Acgn~Ol@QR}1&r*;jjt@Xsd<7S zfQN0GAX+f#FzP)3N^eaF63M5Qq=>a#%f@R0StT3HK?-8BU?;Aa5qR|mV=8cpF2r8838bfLYYsy zYNk*IRg<7-Vorj7=%p)Fai6NPLtvyF>j62%1XQhtw!nhlK%^m-N`18m7k*lk+N4Smz=N zzguTHpW<7NawtOXGwirUidA5`y$FBM-3O^KuVSWxlmpWclu;rP#h0|^rPS>+79$efSl=Kbucw!B$=rBs zvOs}h)f1p^3{cw{iosP#3M1#U?rcF|)hWvlq3U;ceRkK}qdBU@fE@@rY{xJSsr=GA zxkCYMg4~pX5CS%$Q&Vvok;v6S{^}K`sP#oO$b-UU@HVX1?e+n~_>`_!NqFASFX4Pn zF~il4@?cnQ;?m4w`=2Sr7J;7Ne|ff3d~)+R9_vxtUOYQN zB8Vb17@Jlq1UV6B;A4PlP9!WdSd#HHO>J9Ihy;}7W}FM`Csmv0!GSD_DPG2fP*m|5aMSe_@(98lop^?VmI_`3#;k zcm(;Q(iyx^{jkm@N@s0@1GTX8F{d;#`1VY(n-wh2J%+35TXX8uc?}GKJ#kz(ZTAZ* zW=E~TTE`3whbycAMbEovfOPMgM?Y@y#jaxqE{Tlxw~`t=z2{f7o4Vl)aY{0q%qy zab%DP?LmH3_Xu5FR1vT<>+aFgL6UNxRS-KtiCs!?mUmRCon}?^ok+M9&S~p#S#mCU zlX5kH{)RV5?wOxoPtR0*VKm&{t>&BQ-ka~g|M>M^-@F46`Rj+b-#lprSuoE;P0YHI$Mb2;C$B)m2KgeRRoSx5dm5j#E#vBST_T1l%eh%qq)iSMB04N<+Xo8h@gCA zjX}BtdAPXQq*s3G+qoMc#!M#ri&-xo2r8zV%)H(cJs;ZKMH}=kL0txF=Zt(tQZCIz z=mx?F&`aCCqKF97!%O3N5);cI2?_=16gZy+XoQkT93G3%#2?XmmV`z-Xdrh3SPnU-ZC zmScEKJ#=GKQV$Dffs!2cf@s_#K?5O%<;DLI4Y4bcSTGnsRxJ_aC5k-2g<4K~OvkXk zDnNikpi*}}eg+EhxSLcfVR}nvT`inTB4wfIog<+4kd&XNi8EY`^>VtvxJs;lm-NvF z+GZGo+HIyez}lq-m3zVaHU{LchW3VN3F5zg34cjynbye~Is-JTY#eJ$7OQ$-6W*)yH;EAT z_b0%NOrPQLHFed=b1}ys=1M>M<$JST>8CMHZ%@)LS35RR)w#TlfM1Z48iEoz80((H z94H4azcbCfK53Z%`4=D?LjJ(XpmA>Njj8eXaQX zq!8(h#t9)rL6C{&)wz(41fC4P1u}LJ(qPliU&%_~<9ubzE#$5AXo*<=?bGJ%cYn5C z5fYtjdinK9>hB(+FPBvT`7#T%lPbU0Db*iQNw9puFjdbckwmtZRbB3d=}_Hn z+AVKD{l;iKHC0C%>lcX2*OnUf2(a5AP<5{B^Od;S)XC*0wb4^ZkG7;~aLp;S?U`VP zg@}RJOvbA-zA2Lx^`bH_DT%AMjsxPS7_+gr@Y+|4)kq`&_)F0bl>p4n>9XWbF*4=% zXCV+|^K7e1Q4C7T7M|n=R|E#K+?9DmTjCgZ%;7r#DeYP=?@@=qDT3bhp8QBE@ z52LI|w6pCTf`1@c{6p0??1u2`{!8!Sr@wr>{}V)$x=$;G3=kY^*6IiT9=hzYiW{bD z!Luu~$AFI90g9JP57K7AG-JE?c9@JO7f7JKJKbL2je8@Dbios?fI84<&eH(TZG(i~xhE^b6Dl86fN8&ZE%_J=WE;=WrqUs|20-vN^;FoksS`UTcC9SswyvhMBC}k;pn# z-xOeTT!q`HHkW(w7!P@I2BV9+?((tjVMT#X#}l;0QFEGvhvCIKpjrWlg`+{15b;xY z%+`n@os`8IG14yd2*zE5v@@ z5?{d*cBzF(LND(p0{oIkNeOANCZzsOM^=sZ2NUv4l%F-G z%bstpwzNUe0KwmC3*T8X4HOL6vRg$npl)5;i&119g!91c#iE;LfYriiqo}}zZ4f(_ z%>~J^uLTK-w>RtaoOsLK2r?@H1>P7uAE}%BCa{!ay$~WEmU{nC5+p2I8<v6A6MFVlKd!d21PbK?$(b(v{^D?TMe2~ zG!;mLWncGNlk{_2jmpdo8l_>unygL)CWDda<}fJoCkT1{=t9y|}zlK*g7b7=j=x6njD{OSp2nw| zFFMgt1Y-pS10mX8I|eDHltgT~FE6idF6)5v2277oM3J>h#=R&jd=1e$NeWs-9&5?> z^h>;1b^NEBWgY%Rp}jzKf7fHg@Vdn*2Wd1n5nWI!f}4JT<#n7DfuV|znZU>ay1PTSzu*4gHY_eUQc^b2AJ68rbb%0YY!eYqIJw3G9yZNX z;r+Y7bpfwq*3dsrMfA-}2@<1;%aJ=BSvdBFrDO1*NDM}#h}baqR8q68xREg8S!LfY zC+yzbb7sLro}Qr!C6O+SK&Wl^>5Ov>%bl*&anR(dj?@VB@1SB?!L@f0Y>Iu2O}oCu zmeacoVPh|3SRTg8yvkGwh_>tTW^cSYAAF7f!OOqh-v5kriBCwE zK#89{RGE4I0RP|v03c#t;|~YZ)5pJ1>u_QXIpwQQpWZz5{%8N|-v1onzu{LXc=Xl3 ze*B6>W^f_vAAL2)k)HB(?<<4o9zER!gHUj$kveu_)0;wbEUcWHT!G?VUS7LCp0LR$ z8e}^a@KNQ|2qNKkb|GA857HL4vVAke^c?ic?=1p05_Ob)MhKGHKRB#y#kw19@00z zCvp5*&H+&XB`Lv8kP6^1#D6{+E!UGO9)fJdD)2c_^9$nHBLPkBKv;}r`O5CVK1w!} zO~i;=e@pJ3Ujt*26!keFKICq#I6fI8*^BuU=?47! zBBCf;B{~W!ss{vdu?g3O1v@Ys&}?HN@Q^;JVGl)p)YpEO%HY zI^oY4DS$hk&c|yb2aLAHR$&5Ew}qn#QoyuYF;8AkrngAt%VFZa9t@Ul4A62^vUqX; zB^vIMdy&NzX(YvAaXY)3_u?`9(UL=u6n24PML-Ychh5witxN$Ek85Rdh~AHL1B?Wz zw5j1%s+3TVb=yzq?bzKtMz^HrZ8o1R(CZva?8}=j_rSRBG5L+?TsZ|LeKD(I)KbWY zgKUBmPg{aK4XFHiI0}@%1L=N2&MA^Ib9DnCOUgKJ@={`J!}R99XcY?tk+bGfGD9O` z;cmW}ARb?p6xVkwH8s7icm_dGBFQr3*cCar164O#M`sIL&lFPV6V?Lj!FCpdbrDYW z_MD;1nKT(MH#Z1MoKFU6FX5+sUyL^b0`gLMEXBl<&X?#iFyGtt6=(SNdfem zK_B&9imzUu!+C}Z3oo^>kj z-RXyDKtw`mP*Fxv{(;w^k*>kk%(jY-HE?=+6d01FF)9h>9z)Ss`zBQ1h(##&IahVi zaw%=60!yP)e&FcaL`5KoT#S@0XmV4GhYMPth;xSNcH1q)ed-6>@9%$j`~LoW6dy=c z*>CT^W7W%2rrl0xPfE%-zZ_&s3brRbM#3N4IY#|(d3LhO1HnCGAPgr6w?Yyclqxhy z$rN)hk<2}TK{h9==U)dML*ro@4Wtd#5sgy0zEFc~_B`O{IJ zPrJ4W&bNc;bJgy4VrMmoY{a|Wz)|G2SmZQH0$r-bLiA7!09<-zW}idkpns28PO6`Z zP=mk{%&rq8Jw_ z=PK?~J9>w4ArI2?%Yx%$Svz10@%?7%3tOE7dWb0^2NC+ijCr}Q!5Ie)VpIqD)P%|- zd@5tJF1>K=&j*{`g2>CA(aCmtw z;HZ<(Xo$|-m=Gj09QF?mPBbI5O^hK7Knh>Y&sPhC+i=ZbG9!gwxLm1%UjD)~Z9NAt zae0>d(!?@54fTL6VNIkQ1O&5GPb?~0k*-AXB69~#?ek}UcnKxMdj;|0aLl(VWX&4$ z!nm`Or+Lpz~H36Ieao7{r+De=Xx9MFzEmPS0@yH1Nx=G1GJQl zoJ>^e@VRysXvZKeI#-ujl?>2dzsSmJp#2eQmq?z(2I(rz0clbYjg%cS8QOd`xgney z7`0^&PX^c;Elx)Xwel98Trf#X7#4T%&N2%q#c8|R`ww{rYC6*WmlH*dnS@S{J0t*cg}oNy}-+wIxW#EV##zE~oq0Pu&AAOdHtK z0z5FX%7k|PU^U&$p`b&@z{7gbi<~6T#u+@-sZ>7t=SXgIr!}YA8tWj7Y5xAx!<+Zt z-GB3YcTDH8=GZKU&s3w1-0y69IetAoTdo$Hsj}vgqOCLF>tM6f+r#5t9t?~bZy^b# zF^^o;U^Y3ByHnke^}!a6fja$+X!w~HD>0k#t}sO9sc6BnC2sl(2Du5ifaVrXQ{jcv zfwQdDrBuyAK>*83501RPIfdu7ru#yv1k&IvnnMKST8177)G0~4rqV~Vg#6_2M1_cZ zn4yJ>>u!%y_s6bzEHKezdBndV>6Q(yZq_T2l8*DWozSE*xE+f^MTwva3%wrS!B{g0 zHU7qaO6xpkd%Hhs_E^rV68fy3Un39KPugw_F=in)8h*mc?TikGSPfd;u!MLSHpWP6 zn=qk0pk85`M{0D)i!aLwO@c|OgehA;@&dvXvku7abyY&Y|#@85j?x5=A#@4kKW-Jd}gGd<9vt07A)>o1T9F_YV&hIG<|$oaxY^}oNP}b3KFKnZ9E=HJxE3zP{RE$*m=?r zT`V~s$}Sa~mp60R2Cv6pYS3(i2y%1GHegHTaI*r7Evf})F6Rk#XcgMN*=AZc{W&(h z$a#|J@dP!zqs0~q4eSULi&KjLm^5!4hIfEcX?_o*L}3jY5K8&<*MUG!OkI%qFxfRS z$mc{>f-Wnne_v$>f5eb#P8=Auo5s2DraQ+ddW~h|pcCS~j0_7;8{%c=NsmaE&Y7Ub zGVOE$X2OVo=_b5L0|H$XA~ZJ2a7#yUs^d?4r!78r2bTkWB$!GSmZ?bj-Y!7S?zmix z&$xT|hhGK?30E=qB-~Lj*u1L0cplD!a`-ba6}MY1i=S^E(ij-I7Lv*e0dRqE@`#Kzne>=`gE3W z*0-xE`s(r3_7vFZ^MrmSF9)v1c6BfInjYr3ID&xjh%+dFZFbN`Z9Dn#&HMNF?^qg0 z#v?ma9IodA<8&FO&j7i%MSwZu0DK!@5oFXf~0C|{mbPVBrwGMiC9eU zv80PfE_zI|=}b$vN|{vh&34f_NS|#>k~-HE|D3a=7FZWij3;iVhQZ`ZenAD&;KChL zrR_2DXJy=4Bc7R*wm@xTDR{Uo(2uM_nE9><*M!*x#dOiBy%y6&j(JK!#Sk%_f*0>u*C1ON2o>ibl=Ox28(e)$ z-eI{&HBi(I60OO6gHGFGg6RUWNyx+lv+4Gv42U0n(+k|_`LjHyz<@Fwco4E@{^#!jo%er~Iv3~eRpU955 zgJ#|-Q==UjSYmy}CdLUH`iH^>BkBm01J$44RkOJ`Y&NlkI7FYAc94}^S6USB-DxmU zNxii{^9X~78E++p)3t;<-!`X+Vp6H;8i^8bWoXtV z?G1l>xF3J_ogl+xeI%C8d>&1#LnxPv3xq8;=Y-#lUrgbsGRCR&WDFBUEPmMKYI4!z zey>kyj_mtEl2{zUYnO3q&}<&F!&rzlg1Qh3B}U_Hi|Sg)M3T?1t_z&wzu2@MH?pTQ zm>rA>j>xoid7j2w3v@4l?2m;f74=0WMuP_GNbjvPOSl>kih{YuKJ};2z;GBC0XPOq z18!K-u~V@0eBZQ;ony3^q7E@D7h)YFhBSjI0nsB5ID?2jz;^>*W1dXn`-b36sGeiw z4P-Y3XXx`(dK5QfxN$pL$CA3)HW8KQC3gCQoD{X;dK9hahydGdJ`c%~NaE$#RQC_n z(>CMl2}str0@+_4CV$==vf$a=WAHN+r6;zVal6R8_EqG(9-q+XSyp|LYqyI2CXR=_Kr z$LwY6qS{|}_vdhs=2|;6r>0C9-9@xDs|3V_?GJB0HDgHpnZSAr91lLLy(Dzx@*%1Z ziy1cog>mM;?v3#Az28{rSiej8qF?v$a7>!S_k-kQcQHLy%mE{7fer1)h$a)^OQp_S zY(ZV}`g>ves84_ppuj9?k{Xv{HOg--0=Gd4_$a?LYiYCVVz>&TypwN~T?lCpvRF2Z zsaamIJk`YYgC!WTO5AVtj!!$PHoC+lec|xw8by##*KJw~w9CaACzPQK0T_HDTPAG0 z=hR%D7}ZDn?K^+sYQ+c+?(%D`gkNJkXX5)7Nay+)K)~Q}Y9|A2c+9 za1MKt=*J6~s{bFw31}IZ<_iJ7VFU)`#?X)5XEx)Ff(o$XR*#N2eZ73r(=ZOT4!`i` zcC+l?-0?oS=k=p6rdfD&M0$1Wi)|4hUS0x`Scuw$kPrX)<=)~mLOUma`FajJlKy^L z|M=$PJ$utU?Bh?(eA+^G3 zIobP}d6nfLu_b7!FNepS!I};d9`nt?^TGWY7*lYG=S%mtS?+G`K2S}sVH77QSM5$n zjaN!Mr4ug2Yzo)MWHLH0oDN9fc1Bc3yE2VUQR6%;s1el4QN`SaI2BYMNo~L?Y_kc- zk@SUdY)dFrV|4|?EW(pU+Qke+@MDe1aTbpSWgx)?Q5i=kzc4DpFB2(Afl#Rb+!S2` zNS{{b85-Zk`sR{iLfWq{Ii_5+U|TqOjKq zrb8S~a+z(-zb1MZ>}v|_Z6>nx#|Vx%MFHa_onPnE_2B4`)vt?r%F@DxcV-VLW&&#q z5kL^Wt;2yJE_RXa=q-Vy%4?avG)E)fyqsgpK)AEnE^zM~?ROrHUqK}NriZXninW** zpvQPB+)W2UT)jj^J~2b4U2qDN73Wq2EvFd{=?KI!k!c6hJ`c_GD+cQ-Z!+&Btrm%o zcmt3XSfV}JMkyuoZEvj=o8PqQ5^;obLAvcPv5!p~Vf|w0#GcxALchi7C3HBn7$Ob; z9sO97foYpu!1Ie&@g7~Q0}I(dn*hj&w==6vsyxH0lUf7g-6ZgZYlM;5m`?+rvWhSZzZI4yQeE;bZ}JxJDRhPtUOgmtA8ES$j;nd@9Kd+t^|*-?x1j*B&29)VnYiahRWmEzKk zLdN@`zj?IEQ@`ZA+kN4-(tY9G(tQWC3AwcZT=8o10#S>OK(1yrp^gXS0!XvY`c*yC z+&()-=nGFbti!qWKk0!L#@0jhRAM7ZHN+^yfr)RXCXE$DgE3vqb=>2$1&*WBDGUN{ znPqbED5u@ zmoOo&0pOBZCH^)*j?{rbK*~q){u{KbOq!}wsYl0Xb5k}#9?hng=%h}Vxg}E*%79yo z(voXAMcI|eXG8f&eDa66umm&W%i(C-a%82XVvlE2WEADDS4`7~8wX*g*XPReW+V)R z*NPnuYkoKkX^I{ok=>O}BE$zWOz&NNI&?zMEH^gF4`vtz_p=h@*3J4D5n}Uzq4Z~? z@CLb5*!Ff-gD6d+#^_)OzK-82II2Lo=1J{Y3Cj@Y{xDsv2PP(`qYP)*uIxIfsA$Hg zhKJUHdc0O8U64C>bzOkyDjKXH!jZb3AtgZ3_}ErL6$|$-2e6M;YqsUmS;6 zhQ;;eYp;R&$nXJg3wbXs9@>*Jm!oGoR0;!0Rjji_H2jQMhWAQon{1GA1?qQ&ct?7| zG-;*)F>N9AJGeGLzzv&FFznFOa;zsyc5Cq} zTSi`;L2Y7}HN#g&dJfwRg56{vBLhK*xgmhAV-wdAbY#79Dj@5J`J`U5BXfRwh;h%_ zY2i&vf*0pl5hGSJaD9txwo7zAEHeyZ$t7sQHK`_F5kEJ01KRR(-9I6I>#Qcr0x%E( zi)TT~VpCD-y@$3}D2XF86^$t~09|GfEVZORC@AC|?js@?#@6m5d5?5?@wl{o+%p(M~fjgpzDCwqg zr`xO4g{lEy`zh(A7A3i(8UclkAUv7MgzJ)>3m=f(VE=_wR9;@Eq9(x>^a?35iJ18w zYygEaP!z|ge+^0L8cH#Lp0Wr{$7u<4!f#cZ`BGus#vsQ}X0^lk8nfD^g3aahfjJRq zMnQORf}NsDI0}f`qo$nPlZ@C+tqn%pQ*dOFR**wLwoQdJO(`k>y#X1HI^lJs9;EX& zP_cLlkL}v{t?FsPfaswf@eJSU8CCb;?DA~yhqw3dzGqvj&v3ni}wFUF;0j}jQr`VWC^$Ld6%-*L+pUwwYs}q>B@S4Di zAYbFi3_4CCCFeN#Ou;r0x{WU@)IR>{GZAXs9Em@5KnwD>5!7H8#OUw8kc8Av3{^F;3ESh%T%Qfu;$F z2w`3%^&9g85i3Tmjo&dq&rAdXkC~=oQ9W6NS4ti0nnpRie6%^}Ev-HRu%-!|x` z5QPH8c7XEkIx=rC9EkAY4L>`_vmri$WM1(80C2BP!OTeUB9Csgx2sP|mXwSB?yRjE zW`Mp9=$FdU^}=thSw$9rJ6NlZsOJ-85fiaMWbiLZ1QOjLb5D0AEefVr*lyEe2^H2r zKy17opYFf)Hkvhwgml9B9JzXdjzyTMG6M5&F^W~7SvC`+x_^|MCEPTE&Qb#a5#C_y zuG|J#@Ms6u*Ca`Le73k=8*1(`-VU_Lx~w=Sb{}l7@VQQSvOg;kGufYWR%XU(*klp+ zj_Bb7hPu_eC?R$|#&J6|A%xkx@+nhP%N+_OTVk(zG?C2hd-}hqv;Rr~MLM*OZ)hsu z!uIYlSE!6|bM?hxl-0gCD3>?S?seu8pDqxfMP%{$_PMS=XhqB#BoOh9u;P=gF=tT#8dW*rQ{Ze_z>euw6{#%lQT+&l#dMw~W2vXutl5x*AFKeZu5ez?c9DljLY#-C!p?;4x&uY?%Yp^RB2@R&&LZaKcu3c&WdyTOk{9CK)9r(jHE_R!4& z$8}@)C(4Pi8*2a&9}SH_*e(2y=H8y4i%IZ2uQ@e04ay?OO_L_Z6)etdJ-`==Attja ziiyFicDmt;t1Q2nB)l?NyT}p=IFMDo`IvLOK4iwRAtr5`O{ZK}eYuJe!KXgAWgLvO0cp?cH9BJR$hKsNSW|E~a-Soj6qAto!F&6P&^xN|A#QzRZ1YpFn9> z4my~M$7?$6=w5=HRGJ=v=|}U;ab>+ZHsehpxYWFy8vhsc3S3>Q75WspQwL2_T7k-U zXN7h+GK9`2rmNvdCOcJBf<(n66v@CY)F^E$2M@4vyv-fyk8CgS)@+cCSua6^=rwqP zDgn!!`q1L=h(L{&JPkKdm*xqXDneX>hKdAsj{nEImnWF>tPIjqq|rdOTHW6C!f)O| z=K0CR6p|wJViSR2D58jLMqy|B?)pn0mAMz{m{b68stb`N1)cjh+HO(wTA8lcFf?9D z$CZF%Xe=@g}NpgN$3T zevNNJYUil{)$Z~&{IX!g0GAAT)QnC8A5d_b`c(D)4(~KM1GJRVxXMeur`W?-9&~V? zOiSJz?hNm1q6>s;Yp$gpF=#5D1$4_VaGTQ-Za00Z6$OTw7&!uwAI50p4rus3Z*P_< z13s^OylI317A}+m(|jx^C(jOJ^_ro3c9nwnJZh`S+=d5-%_OE%$*+`>n;quJ%F}rT zpIeW-teOIYR!eClR8(~&bT;eSaa`B%*_4bbSP34Wq#1(;?6{CP;Ns>L)y{>V#+u- z#9Qf^)UiV7fa-BxA$;HK5HO9fQeLfo3QBb3219r-Be6utN~enQRuIJjre6i`v4Lon zWPS=JiEg7S#OkV79qDyVXSWi`c=b>`a1WK5d1J(zh+1%sxy@NXiUr#)*hz9|L*qj1-~k@DZI=7-oehRuMhNqE zrR+e0<6?;QcPWJppwTwjwP5waS}r!M5+UJ0 z9R-si2LqBFhx0C$gsB4cSG5|2vW58MR<)Wu@mPj_wG4f#2_!@wBCg(rbnfpdhyXo8G5~kDtGL0R4IM@c)>5lOD;k>`ct6 zk~3M=WHs3wx|?k*QPmMynNeoX%qJGJ2y=7uA;YI|GY^j}G-UGdu*i&NWJD^4tSmM~ zNP;E^LQ4=p?F9V+t+Wz)rJbOaw)zL!3DQCWv}m-x?>py?@0mv?yEO!m>2~kAZ@R;o zhc~aDJ%%g$a(U;@7f6n?dh$X4`uVd@ks=L3e13g`T zUFk=|FYOpx-aPZ9!6$T}34CBe6DUN6QRx$~AK~%obThYc^%6e>7ARq{Tmtq zjuV1p8EA|GCc;W(7bBBh5uaaybYrg6>>Ltp%jw9LocP&xD#VMFb1FD}0tXZSH_REEI+lDr;_8PI$;tP*GCc$6JEI(f zfsA1v7Bk+4>Y^H1=G&}>>4KPF0j`PemlnISybKr%a~0hQdB8QrO2Y>Id1PHJY>Z1r z?L*4Rh@bj$OI6t^obuHY0B09sA1PtBd3^U|LPT_P@Cg*&FW|+LU{#UtV@s%#G{f6^ zHJqSKiU3QI%vn;pb58`C4@GwDLp=oqp6J0`kV!h0gSYWmVyo{i>trtB%nGRYEZ>1P zooG^v&s*~j2rC5h2$q%cABzk4L+v9tXW1XS#%D-n1M)RM<->(E4NgLkeD!J0BPZF% zYq3Ppr(!2bs*0&Y%8#%A+M6+y5VZY4({#pcI7m~JUK#AMS8)zed(=ctP7i1iznsx2 z1&1d3g;9=^LeHY}qK~$&fFD->#Y@lWO)QkT(Hm~FqH1H6iR29&r+fr z2%S4RI0fg6$>_s53NA&gZPubEG}FfIxR_OrP=;5mA>$s|@TEMC?`K3WJKn^{Ij9G;e~HvGpo$;E`401{Trr|#-5}zF zU^cczAWJNvj@-zQ%t@HDr0uQX`U3G8nJo->j%ymyE`Ve85CR5}=S=SWLP65mBDzsX zYq+H)6C zCp-U&Va!tzDk{M@L0_EOdQn4A<3vV%zq!G%1=iFheC-lTCN3um3uU78XCL+dDry&% zphnhcYS6ft(MiuAoE9wy>anGSHy&(5!W+YYK^Fj7D$HZT*)vFV|bt9Lt=#>N2E87lF`@@duh2(z`4 zyB?i$=37))W!Zb z@*NF66Yqml^d#t<8mbE|YZtwUP1B4U&z4q|5sE(qvdulQSN9N&@HaLJZ+u$y zsyPUw$=;EbK=?GCC)*Y@FUmNuCuH9NF#i+aPf{H?p;7$8ig{D(WC(#Y9&wzbP2hvk zwxNU4R|4w^bZ$rr0i)am=tA2uJb-km<%zfG^LC11t8KNt_Eb@aUqQuIAqYV1v zaFBM9wshqSRHiuS9-)i1+PC{+ZcTw6;ftB6s$-NJRS3a*$ItXF!}P>LR|P-8M+;;j zINytm2V6fz&ODrdHa&v62eZtKC$2R1sqr-3gFH`n1nF5^u%Pb;x}c4!I_O;^(yZp# zcU%Y&E%Yn;X`X>}0Ym0zD#EL$1qZPJ)svux^PE;zo|zA&b%*=51uzBx?8@~1o{%2p zaQxP`PIQN_XZnL&yO$FmIs#lI174oXU}{bRMt}m@uQ8-1AOY=5P@f1mj9;0#l%m-L z$IF+mR(q?*Z$AZ#dICoEA^hd2H-?u!ZqVOyEjwJ7aWo}~P3^Znk9G`%f^6f9@pC%F z?=Zh1RLQaGB_ska{Bij|k-al#+Hw*2x<}icBsR>T0I8k0N%~=wPhS}k5 zuobvg4P_oJb)9O#tCLp*aVKrs0hNBY*WJyB=oJ%YbsdxvV`Y;N^iS$94p{@Mo}F(y zbZBcK#WHx}2D5FV0x8v#H1)cfls8^%rnM45Gj%LOK+~K+r$vPg{PJ&Ls z$8v=Q{k4UHLqz0G$&CWAWc?F-YhJ9}a)d6QzFMJ1IX$T_L*7vD%dgLk3iFE}_lsPi z9M53TP!9;}TCfOa^&a)RIyI5m?r?e9aJdQ8@T!@fV1_#FvNedtP*0O7>vtf-d7lIt zy5-9`nZyl0gxTs&y&Z`mmnZm#`)|Q;;*!(3S?y`DFJejI7vpJDs2YgsrkaLTK-(GS zz0LXIQ~4J(gQq9xD)`1?1jyF%NBoYWw|Lori-8)kR3uZW_?Gq28z|p#F@h|M@R8Wf z?RTlb1A0e}Ko}>F7@S=9!O^WZg#+;75xE7Ftv!P?y+kFKX%}58h+=pISyV{7MSC6r?nEhs^HCwsc< zx3F27+w@iyYaqnq@|*H8pzsgr7*Gx~;T8{6l`GEtoguZ>I{#oqnAA#jFq}k^?MS)1 zf~^B0n5UfxnK<1W513|u@ACY3hN_|Nc%Nm)MNnYql|PLTMrWQ}K^ph1 zX40~`Ig~(~VzZkd-LJ3~%JHd67;{jSblku_uW)fcbm$MogPXHV`LmuyOxZg#c>Gd2?< z#D-N@Wx!x@z>yKp5t358dPquDFUCRIa-RHn_h0VlR~OG>%05;)cL$32%0k`UoIBNWx2|U>caH zn)euj1A_z)hUM%5T|oN2K+50r5ERF?p}sDpMKQIL&5~_e!}iiZ9Bw`~F3?NOkU8S~ zW9~<}h?lfQ&g>>_QQ&@gi5V;0A-?-a;dCILDi!217CKis?UUc+=W?GrZQwgWd1ss` zXUhgfq)nHaaSG_cLgM;NJu^Xgmlf;ESf)_pTS~}sl4zkK9 zGZnN>StlIVJ&+6^ksllse9)UwUjhL&9Bu+4* z;8&O%h8epdaK-Yx{}Q!%Mwa}^3;pH<+`fytwk9au^uy)~bHYM#$MZ{;iSs`MLD#xm zLaITE#-h4l+ihh1AXlf5F@CgGMMsckGCKk7hs4eApq`TYInr{J}n_zaY@c7cuV7L#=NS9Z#@~jY`JxPvO z?8X_Gmb{_2!yyQs_#3kGxLdxxyDAG?z73e3@z&hlWY5ad zZ3tD5ycu`8p8~!t)CUjBbniSL5uy(>ws8m~9E#HEcl<2oBLUqmf>U+aG^PCTI70X1 zZo#}JqcZ$9&~SmAFUU94%uncDHi6sI31pC*K7{p>#jrIadHmta=XZy4EB_( zi>3a9FA64kv0r$Uk*Y?3-q4QT}T1IT)u*Sw}V%YAUzs575rgP{|4DPAvK5D zSiE5H5#YoKF>9)*B(vQ`-KtQpi&Rk#CLkApBV3{<{9>?!VQ(YO2n}r#tw6@;clc`* z&}>49k&>KE+o2fgvdhq2=A>v^TB+>qlejL<$sjPDJYe8IM4{goSEzF1(6KXvA1@$R zNtZ;i3y3(M_u;-4b)9$qs=5tUO_BlF3(H~1Z_mW03aF3N%%m7>mx{9v&7UpC2?)_e zaD+9ZPcsmln^?H=Vz*}d3XmRINDN68E%Cxs(NZ$1>{6v^be<09A@XlbgHy?%X-Ek`?I-K`gs zfM`BpZ8jHcQh=oNq!$LX%D2(9FhXx0gl8}no;FJ~j628^6VcAgfpKs*bTpW z^mO%V{_HPS!polU9p1)y=p$D)LF~Fn5sAd%Qq+6V}s6ejC-_#xaB8VO7mk{0U8{BVu!v<2%F z-+_aZYuCW?6WG~2;}*aNxuGIqB^*cCWRkr$(Fq7QbXrO-v(`b))!1l6+5s%w;kPFq zx8p#|IXEz_d3FdZpk_J5HWN7nLsl8vOpE0Hv*%cI*~0p2TX7t9IM=bx_Dn=qz?AI9 z!*Gkh*;3og#BiA_dtCeA0+j>(OFVz6*1ZUj5Bpm#ek6AIT42y@^83ZQlrSAdXyK53 zUh8Ps$R8%xAoH@&7EAs@$@M}zG9^<=sV8+i%gg2~x?3lQE&>{I$LIo}2_Vmn-Fg7y z*eD7cG?b0XEo?Q1*xIA~kmf z(hG>nx$rBVZVe%=W{mWBjsfK8}Kt3Xi zL_(f?Bk&Mf!L_8s25b}?8>*ZPE#%^hZSD##)lrr}-t*Kip|GI)gZ-ldO3X-e+c^M7 z(uPX`gL&aQG2&)&G!%zwUCBM006Zh;$AAiAfO6q6pI4R(;>Zs?xlNEpc(Dm1tYjKF z8Ze>SW4`!77U%v8AT7RlR`$ITMZhHpJ!R z&XGD8u9vF4Vn|XVNRQ+Wvv0&XzEsjest@=2!8Y8`r4$S?IUYq>Etj8Nf4N#R6&(ND z93y*fAr1hO(#cHwI?4#%sk6C;$JZk)q;8H9jXGN`>QX_p)*(}JPEo`!Q;tP8UVW&X zJrn>C@b3CN=J|+tu>v2#)=nQDp|Yvg(oaFe=n<-m^a_QC#?f}a-ANA(9vXymf<(ag zBUV6O}~V;1C;JZE>`QTel&u?g4J0WCiBQ z8N9B~k=kh=D!B#g@1V-}87dZWj}X7WRSU^R5T0r1UoKmDN7ygsi>U2Dd#rCVdinAE zTW!7OAbzuvrvj8FT1rMrOO2bq$vz7|WqM~=xcQC@7UaeU2}9w}^M@zXmoJ_^`&7b? z^;riXMD(T?V-|yDfADB)|NO(P!;9<&vlsNxntB zO@Jhz^?}?L%TXk~YX;M&k|L_q8EC0uU`o>60_!5*Ksw0@gO@Si4z&3s4Pa7b>1q!_ zt1{w8O`;fX6Lwk$6w8xCw34)X%2EHM@MPdhW*|K~(L7*3qn|G9zgwQ-6_TgYjZuMx zDX??Q&;shYz~^K$p$<4gId4mRsN94!q)5~0Aa&-X8RoGyp_1-yPzrw7=TLb}JXq3D zuVp`^d6`U-Ap^DHu3(ENDvaE5fW$Z&P4-JJuiyLWZ9 zcR-SlKT%QQh^+wW0p)>08pg5%xlP6?5)ayb3d^~!Lwi=$>?OA^wK3>{ZfRuMSa)I4roKRviz;Sa+1y4=;J4jD*Qk+) z_ZO?|gqY9j0{4<88^2(KTbHvJ6CVd?GMr^Vbkw1z8sSF*c@we9Q0r;{UnB3bYaw;g zy=0W!OGe;;Y$A0AS^Y=!g^WyO_XDV7iLs(VvJAQyvGgOF#36E@U7jxNcf=7RS!m~o zeDfUb?jAi~>_J%z<RGO1Q$_ z;dcQ|f`o!z{~K^4(JB7f=h_3qknmSu9_5uW<&`9@h<6+~^SEx1EdaKILMnhW12a$b z$!%hx79}9WTvL`pU25Jts5TRQau@H1Po4k{%tH#lU*eo>H+DdS!lP+y_nQYi_6o@* z^54QM*DLPG9cozR0L^ZWm8hZ7yn=$Vsd54vT0wr9Bt#V{gcyH}%=-srjj95K4>X3L zoBwOU9DnTtff?rn_b{0(4SA_QuI}s{=i!!=$qA}UEKoVtS2J3d%aFiasr;IQ3%_)a z;a1=RCfuAK!oKwL7yIKDqB{gl^z`Z6NH!}!@!U-H2)i_|+GUAI$@B%AcuIZaA2&ta znasT{TjvU5vHahout9HJyLB^ELkY$PK4K|qh9lcugMQN?b3 zt=RrLrc8c#ruwV=?aV_@)-$QrwnK(*s$Hmx1QMplZThLFh_s5Z0%-4xilD*7I$VA{ zx!MD#A%qQ%&zib2UoH9eTIpUIB2Qp2-=ClWOz|Bp;3_jcLtx~LQkc#gcejgxna{+AZGpVUR?{>P zbU2W`FgqWS3n9qP#>vC|WtmauLS0d}Xxa{sszPoNp0=FJpsl;1yN>QhqY}-7;7BQE zB(F+q>ji@`W4?zyvc{Yt{s#s`T4-~YNcCbUsvMkNPM23lEROhSHbvP<=vAkOlM7DT z>EvYA|NiA-|3hT!oqgYg=lT=@!+S27>JSm&tcN&woN?@;jHOqHz9gy$E)iXEAN_WC zVt3Fu;MfrhSb{!o$Ed9y6nu0A(u`^=VNOx5XU`Kh370^;gg#d@ACYq4hPaIbP&ct7 zfLk!{lf9%WZRq5S*u@M+T#TPordVncN=pU$NWoKtNA1e zD7*E#32oywB%?3;QkT<73t}ow!1n1}|0GdMiwp)dP^=_TAMTb0O0{Wn1RDY-Jp|4{ z2aS}YkAMDVb@TG=i#L23o^to4SvN}i$}^2TLI#CAGsbXB-;c2RA~%=qCMfUJj~hg+ zD9eql{gvQbWG&Zo@X;&Ai7Chkd74TX-UFIi18}RbM-s=sJWM_4uT9sF1+695jB+{ z2U7JwHM3U(q=&$FA3-DKd*0U#A7i#M;U{?x>zN_+EsLA`|2T+F6vMR0Tjk;v5Zij- zb!jF5E4+KPFP(L23I!SejC8Q5)rd=g1p<<_ND~xa6Uq%Ozlgp)bY?g^ox!cLA1GGn z&?ribhy_BCa_Ejmk`yuZETDj{5m;)tcF?*0{_5upMOe;1d->`O8qjY!gmy}y#rYw& zAR1}?0+UUeAPF0bJwXnVFIN|<&tJY-U0whA>g^Y}6_mpPbp56PiuJ>yi^J>K!2wim zVfhu@ZUW_p^90YXF5yg5?z0l6TN_@dMTfPu@**uERkDhAyLW!{Uk|{$d3FPY60`0@ z=}ia3&#eLW^6Xe_(-1Y9%N`_A-E~tKi4J0hhFcBO)NPGTX#$if9uQ;*xY^5oEf4#~ zX(ji#sFrqdQQ}Mv)+dMLt}00jeF}7ER||NGy7e&NQUv`LKwWG6ruj-cv+0i0m}xU6 z7wMfz*pk+W(>zUZ-I2^2QmJ8YBCvRlT7me5qX28gCJ|MvO+jA*vQV_#F_|H#i3FYaxKSSe4lhQjpgYK0t+C0ST3=`;g}LD!|iAxMkoNLogZ*o%6!k#$FmpkINrw=~(kF%3A^QM@jhMzHVG}T^O0SyfGV{ zSc)kJaPnyB;+haG$tA|H5a%MYddP!oNJt;o_|)kF$2|J2x6AJ}uFhTw)1&naSIgTo zyrG*#=;HN?~$$q!0%9u&%B`w?}u<1$% zI_@(4Pp1KgG5DPmn$eBoA1+g_fC4v_i}} zYOhU$L@@6fZxum&p|`KQ-)}DI{@oRV0NDA~(c#kBDCYL5+w7+s&{B z5SFC>QqJ+Ya1m5r&ckU!klhQ@6Ffx1%q7ixfM_Vu#y*~j{D6)kqZ5H^E};9?rie}L zgJ36hVbY{-O9Y9MO0;-^M&9{w*lf6R?g)ke{%3XUc(A68&u8g$C|smarPMjwr# z=fa8|G(Z~Z21j|v*qbWi|pcXUrNq3by2Uj2sS4iZ1 z_2&H5vzM=)z4`gUtCw%Tc=qB`AkcLnLuk|&Um!=1@cQ;!nTNCpaC?J&0`3pDA%p6r;7-YvW(v_x5jb=zjSNPLXr;0?!LFauC?=ThADL(tLC9yQ z0BC4Brx%Ohs1T0rm?6GU1gKc??&S17C@lX(DJe9-g5|?fAn%$1sQJ|5;Spj1A4D7+ zW7tQRt@5y&zGAPay#?!j^%k+WIJ=HW?M|Mst7EQm0d3dZ7tEKzbswUwmLIY z8pM_txSFghd^Nz>ipXXUCYjEmy2Nj9nI>)jg(OuL0GJ=s3g>u9banIu@C>u_`EAxJvCgy@Y!(HeqIK;0ox6wZV zfNF#;6tT=)`hA8)5=}V6$H1F`9unc6zFsYGx?yF|C_Uo4=(FtEQgfZ{&K}{^SdkVN zTw;UA25C&sP8oHlQ)b0ol5Gn4u^G?X7@g&2%$&*!7iVV(iFknq&9|%=fNks>65=$@ zncF_>o)kL|FNi;ZDyPq1-u(IbtJUk9>*uHnVQjiXXAt1w@&>^MvAD;x3%rlCKv2ry z=qd$Th?ukhdxu8qc=Q4xHE{o<3hDBT<7Y2cdNJiyhYDpsO9ZB-h(wnc(y-aC(1Aiq zc!uZLIWRSGjj@Q%5t)estiALvqa7B48xLX;5NF%%b2y7Qs?nJ|D5q%(AiIYmscs91 zPUIwOyo8p3+=1NOo|1a{96zOn?gAhQS@2v$@YjMoUF~evF(4ipoGnI@HH8g~CnW+j zl&&M-;8Mn(Z0}T%97~6s&M?Bo)8l6+)5lb!{DIsBzBQ495NLyX^kRGFF8aZqlNDKY z0}poSu=3J}`x=cRMG+J41D^-?q+RUNU?R0#LERBww)7q==uF%a&Uu*~D22MyL+`_% zK&|ybKRWC28jQyd=(R&>`Sq<{$t&Wma|?@xx?ssFBT29%XP*&@;9_F>YD?}|E7d}1 zh9^bfHXktDJG>7B7bwm`0KATn=$-P@hJD{R5}5bdsig`H&i4#kkvh$O>y2RpYMm(} z`fT4N%UbXOjdi!YgKQG4Phb}ko`Jh@wj|1HmynDz*BCRrbN9zx{SErXjYC-stduSo zt+`;#3t|FWzKI-;x=lef$lse(Qk)i*(4aI-z^gXgyr|BgU{UpeIK-hLJ({MFT6%Hv?tEBw$`Ag-KJw&{tXf7Zlq*Z#>n2@SK;cUwVb@OQ9+o(To&Eks z@Rjb~lO-U`lTsEAOw|xFgXXwJIR!e6qfjiv6Cr53Hlt0;l)KKW5LNNpJb(MBOy`cK z-kKx8-yjNNc?xS+x~urbjJ3l4bS}&tyfat@@*~G@0igj)vACK*4{J=lmyhb-3Qb(> z!#sMxiCtuI4Ome)z8ARMukSvf3*(`#fMt;&$Dv>n+S_ zvh=nm^MVWX7MvOCw?D=yh)!yu>02$3b7H&kH^k_=CgAj>PKNO2J{qrSsqDXf@mlqP z<+8z(rDBgD^#=%|!T*;1Z6iU{)?eMfJeLEO^LnlprDMo)|EF>t$4=XkgL(fppuUeU z1x@z!&R47%pSAEnnr0zF0PEJ$UV>CR0u+{NQ&gytPor`Flf92G=Sa)}U<(Fn06WL+ zwH$FB1B%L0j@>t7Ry%A6D`(`_N%_d_g4KrgsmrOMf~0tb{plgNX!6yK*OfX(cJD`! z1E6I)h3bo;Axnh2Wn3Xp5N!bmS1(-bYBP@c5T8M;8Tg8>m#ZKl!GemQhg57<5uHLS zw={S21?u$C09lE=(st-f;WI;kszaaNG6HgE=&s9dhFe+o=Oyq{b0qP2t&Jue9sQ~gy=u4vL z79*0194M|4h9v5-VVMRNIYP$$sx1b9?2V}d^$d8gtI+k3ekIhQjbQU-v;-ce<&t`l z>lDH?n`u=QhDq8$h>U+w@W(;$>++W1&hp%RcKynjXRP7guEz$3@(6s8c@ZkZjs#M0 zELh;IeE1~;{4-rF@@R=;r<;*@YkoIePv9Q|f~HxBExn51&@jX0DCLb{L(n9O;cePs z(uH6z*W8r-4g9A$>+(we!ZFL3`NZg(Ad!J0pD&1XCkW#k;v2|}Pz_GnqCA?uTa*Z}4M40$zk~sSX6DB594lX&im{6Pi~( zkjEa|h&zP}0Iqy8^2CI!5-xE3gEQCNxSBzGmDgq0XrISWwk;TE$)tH!68Ac=L?tkh zTiXOw=u9UUp_-95wAOfV?)+{uO#}nRdwyBis#C8f&t`}xwk?Q-(!OgXu>f{VAc+PX z_Qu!H9oqKFbcep*q?)k}7ZkL?Ul1AqKgpOYeuO&)p}vInmU5}%j422R9s;m+!cbi} znDh88`;zy01NpwplT+x$+(UK2iQk&_V? zaXy3toe6(vhtNtZV_Bs`vgAJy@~4^5O`)A6-f#Nmg&GV%5}CjU|uDs(^Kl5bX^B3)G!t;+R%n2}753EJ(`vng!AYh{^wm`w^z zRxEJXmGje-L9%L9Lv$_ApeH}*4orq$skX4W5HLo6K07#J1pyWT3X4ZiP5!f|Q5)MD zsmEnVH{s)T@jVRhDd<7;*$L`nk^?uJ1nq;{O{_`9;U)<|IG2#RV@Y+&-=l`IIP{sX z-@JNz^QOO$R6c5uxe@?4gMArPAKaFS=Loe#+NCX8j7K(9y75^3S49TQq7v%oL}?ms zUj`0~Bs)BePrGpW)oCHIEh0+=wBa2G6$hg807qiC6JyqgNX$l_LTlyeUd_*%6drUQ zJ6G~O;Q(3d+(^ z^aK_TLvbUg+3@lW0jRn26PL3i02MPw-44}O*g8AOyCmz<VVyO-&j9LMNJOFA=nAj<@8gut`v~J-2rU-pe4` z40eDV>31YH!VA)w6TV7!Y!FP4I6V75{UFn4MM?o9s6qx2RE7Cr-N{OkJJw4Ni8Uhn z-_(|g)~qQCL?_!8TbfbMU)=T^+8)(W+0ZsBN)+G|!8DOznE?)2ZlEfH5q<$S>4+}i z%ZDce7{g(`WKNtKcyu;MbV-R0MWOhs9|=*}@5>*EHuQN2ZbTUEvX4zEDl|KpoO2~e z1U6~AMZBZQ1Ilt;_KQb4o67%qGM|5PGJ_%s;c8cq(QpIQs&LRJCmAS9^c;K{4lksi zvh2^PQ?Fa0|65Do8WGVDZJ-Qg$73lKKGs*5;1V&|?(2rSp&HIt#{T605u};#&d?4nz@oqwaC?~mACugN7_|lC7)@d67NI&;o#@}M z9!Fy#ui=LrmQ15Dy}7-4T}n7z>>T4CSxz`jj9DTQW!wf6oB`teqhB!?lcNjZfrqei z$dJXg#&M9sK5(E9&x}D7(J+cpfE-E0?0_D+G~+ z5!)L?SEcCpX=XJnqR#C%!iQ8f3FF(iZAB3yxG7~vY7H0GZmEh7SNco*2#d#PyJ?BD|+b1_D< zgS(Vg*o@|Vw_=(MTY73aNb{~wps>b-0(y#hlNH(v$O>o?@=GzL#0+*}k;g;4_E-Bx{HiZkMC(u5UcjCoj$LzB1tGJ`M z(V=AN3wm6|NP$fJ&bx~Mf{P)F6(Hh-M`ZU1S@n?BfKv;DwYlAyCtF#HK6A(;@v!2p z7G)D;B|FG9R4d2brkab#NTj%j{}NV!!KMw>MLc=TTr`YaAbx7*)8vY|S>t43tWD-* zQFAt2z!+7yRYetUiJV+!mI!jd=(j;L zBD!OaCH}(}iOdIVOxrdg5lNLWO$P{XvxIXXOkv>XPR>b*iw;dqSlBu2aOJ|}kZ{AK z!?Vh~&bN@phtS<(Gvol>Bj2NCJpaIAv7-BDjOKG=Shi2#94emLyc8CX;NA~bmw&WR z^A2DBIUMw$om29?ueP2(eHv=o!B~36Tteh|%Bpq_!NEjW{POwg`t=(m^jbbyJ%v}^ z6BzJNHgGzhTgbUNQboKPLHK5VRiO8!8|sS*L2ZS{Kx8;ra8@C`09usI zA84_|rjo}IIAy?w-jAgM87|`z0!7u?bQ`qN>ObeLSJZFtP4YOl^ zZHW@B%ZN;l8f4#Ho-tm&@C7en8t&x9yq*e-Qb2q$C_*BJ%{?D143B!qR8iYn;Fd9| zF&$3~$v`R|-j*y9ScMpX<%p*M`4h9Mis0Oh&z#L&MALn;ZaY{ZTt`^lPCQ)k@AmMP zGCjSR!r}$Zsb-M5S6Mtq+YDq)>lgIrDp{hQf5rZB*#rI`@{p^ZkUp^6M=l=@?vK=j zOvu@}S1PgJ+RCb%RaT_)E-e|Ecq6r6(lhcARR3Iylr%&I4YxPNZoAdwa9p%L5=j;?H zSf7;pv|qKg4}mMD(=k$v;+~d<%mfH#@{ye5Ih5`h8ptHQAaUcGK3Bc}J zDbZ{gZ+69GW6QDvGOeSgt--DROI$)RdJ%y=V!sd(TJzN3Dbk3T2;=d z@5=I84bmNmu;zFo>WHPEdQB;3LfWb}y@9BMm!zG5`;6CmIGZJ@heW0T2ARZ^UdF53 z<%Kni+=Ad;ZDwQ(V|rs0H-j?3e?|ZMto@UZ9J^&@4xpuhnx?$&PpfgTY=Df5bqOBh z@jUsWR=_yhv-1X%HCtQ;`!4n6_TEIXBdV4%l&iL;vs|iFfG1nv&LQ#1Ql@JO{bE2c z%Z%-h;uh5PG|;%Ck$*}Xs(Y4f{R1erK)<;6KZZhO`SEdqR`Y(p+A998rJ-HmWFAlo zp}1d@d7$jKeHgYDx2adakj5{02}qwqwcAx9I_G5Bq=FRssi#yv7S--7c?mWirR%507Y zi?hv*RKdkeh(^(@o&j_#?Ro}I;%*tC7vM6JSz;t5fQ*h~CJRu~ znl0v+^Ydi0Q&acTehsP(+l{W*k}4K-7tBhzhYNtdopL3F1e~Ka>iRCQp+ZSF(nC-J3AHi#$=HGfFWcyb-WL>1v9%WM35EYO6{6)Cu(a?b7Ps! zB29@cy{jG*T=(S0!j6l<8uFqvO>qrku*M9@MFa&R;XasUXD0jF8idi1I-8~~4`mmv z8Icg~#q@1s`HI!xIH;(fx=$5W#RmC15#i*?XC=QzOB(7d`dS!0h` zG$p<5)(MB}hL}bQ+%yZ*G3#JvbERoNfiu@U)XHJkYubDgp+IA6+~+yngY7c`O{HQdV$3D}X)M<;Ye0P;OR0<7T0kUn)H-An3p8e|i1< z$L6YvU;U4;hQ|;mA02Yae1d$X*S?y2h=u7*VYV(IB-AZM2uK$Zh^GU?xhV4yQG3dbpICf0}RZ(xVNh z0+o-*MAI=2KA3ntFrsAKDb(!E9>V+L8d0L;y{J zY<6;K51{&k{H!@$Wu8-!Mmy)&IY>_-`9tM0+;kQrxSg3QKpHIcmzk&B44n5kl?XT= zWZuFsi&K(&B?hl{<~bzq!K1BXLk?nOivonh+#JX{x=RL*P8hTY_rL+sGVIo()G}+4 zvEPi|bQYYko8b}eV#&ZKtrZ7R>K7nOV4M}j>TVgkf930NrsxN z$XKE?oH%LVham&Fh%JK)R+-khmwA5wX#9g=A~ zDsbEzQlUT*=xJs3OB0qMEjo;-{2;bGyR}W+eBjzaYnwd?)b3Te^4P+y=?pWPn2jZw{ck{+BPGU%z?weAT~s`Qr5(H&1}w zhLWzAzHnfsYGsIu!YEgch;{#3JwlX-`hMWW}5Hxxv?rNDf-E)vV=0p&=nFT2YEC6 zrDHBJV?)f9(OArFZoe)e`Wk0a!1XirTHl(^-0gcW-aN(K!!g$5?!`Rle?{!QpFA4m zjr7yBS9lEwq^EN-==cluO!EDr8nZako0?ea!FBkp$PU+K0;m78gMF*A?o6*xMhC$4 zD5@y3zu3ES*(0{KPxV-!>@!-PMQS*o{*p|(1yz}8gLD2+_|;uk!r)lIgAR>I>?wNU zfjq#(2nIPi2j75XCCCVBrkO42qv6zq4Q@4HcE!47?MiFuNpvg;x)fU}iB6%b+a98j z?)FHW7?#8A7g^{|!_dUr)2JI#2=R^QZ3n@FIT5|p-lZ35co?1+v2kB={WrrvTnMbs$?FiejYVd)FB2CmM z=CY*r+tqWf=J?CLMi4!Lj_=MzMRI%yK(fLY2gApn_83 zNi3xVjH{r-rxRuu%>#`rn`}%D0bc1F1dvgG_JO9Cd=!}+OG$cb{MaoQ-4;H^?6V?x z7x1(94790j>mXav{vyBJ+SA^ja9 zyvt+cn*h8bK)T1nv*QIkuMik^ivN!ttyaAehcXg`PQK+`1JVpo-FS)>Ts)%X15qja zlOtBoF8sv#s&t%=rR=AlOjXUkx_kE+J%h3UG70KGbYLEEPZduC_fOwz?Cr(H*)b9q zBA@N?Ea?oP6bv+qku&GbI1(vu`#CaYPuzA+VfDpG3709KG)GZPhh)(b-K|geC61V# zyLK&xl~XPXZv}xIH3c^ctX9J`2NM4vUBSU>+Rqz$kSum`az`OSL@8&AO3-v8j@)xz zMF)>FVg~e-O_9BfGbxIG53gdAHK-;}+YWf2-hPt{y6s<_fy|TXgItZ+^dC08%5|ct zT_>caPpY@!;QqPg=H;s)Gc@K3axL)-v*%u1PF2FpR5*8Jy0o+{G-4{GqJZ|q`klSDT7CN)H zx<5_cqbbM!&?`>%wMQnW(^*z|C_>>p7ZNZhu%snVW;Sd&P!RECz%;u;yR|EO!nz?* z?CAnyQc$_J1n8Z@$rIhxbxs>xkffurG5OMiAbBfGj>W94>IC@||A9Q1)Hmp;%9Ibj z7+?Cac)!$(9&*gWJRaUidyuF~76Flg^tpjjf&BwLa)RJ`l@b<*r;OtZ^AX8Av|^P1 zq!NK!)&hGv1sx?hl2IKMOV7$|83`WBd%%{W6eMCNzAXuadnM2`JeyVfyHB>7_ zft{9n)W9$V#6723cV$H@ZMfdb>~D~L826UB;e(7wuJGcY?a3rgkz0@LljH>8L9{^j zNdO5B0>X_v3SMz1MLHr((3IhYuBUH@h6uI`Y`T#P=mCy~bImxnI~)2oVUY~IKwi(~ z@(!@Rg)8S+qABwsqG^*xB`4e$#A**W={Xaoe{X+ZZ#DaJ_2SL^<=a;`tL5&i)%Bn2 z^_0BR!?t(9>D+N9WZ=O`!&2-1dACYPXddNV67ch!{DlL zLT0DK5cy;+t(=@6G;uUGNAs`m)EcT=3gte)R3r6LayE37SpqdaGKs-`sC@4hSQq7} zH##u8O1*?>c)fK8w{C2g8KAnG96{%>#xJA|%v1YYU=hVg+D;IFbQc^a@Os=5Doj~O zK4G&6qSrR<2ssf3jWqB?Z${A(-HV3shDh6ON^^ea0e|+pyS1j^2<(uoDbxVC)K=XL z1J^@zSApp*&pOStg%(|S5p7fCP-cnON|O`4*}_h3C1I(C*~-`7t4}u+PMw_XmjOu6 z#Ho&c>&rDME*Wd@j>1e;of<7-5c$X%ltp-f{vBFkN{RyYy|i#qDkTR9^5blU?jtr) z9}p)&zzD9Z=MJ?u6NSZ0q?(7>Ry_kS!6Dr~%%6`QUPP=}Fj#uDhVX z_6kM}x+bcuXfLrA&U@$a_nE7p}wDK9B&&^MIX|SfG=zH2wlE!mrkxRE@b>$c?qya z=6-K(u;&X?I@r7#0nDa#{U9#W;sgb~hhKdq-;=%BKC%j6_kqk^T~6;uCorB?VPhQ< zY4)>2Vw!%k(|#@Fv?0pX7XfeuNbgTc1nE;0-tqvJN5yhV5=p(o`-eZ3x|53H+{d2v zl^3MOS77DMp%qC0z-82B=vjy!^M9ejN({W+1$Dl^FVFeZv~x#v=}Bd z2f=s3ty8qn$IMntK9o7Jgj__!fgC2>EmH)*%V2_E5ji9^Hg)zsj^3!BelN2ss6rhu zLXQ^8u}6=*|dYrr{sxqI$6W?DhMmvKf)P>w2A_r(PQDx_kZ^E+4u1-*jaElM=ZQ# z5Bhge_<%hwR^kJZn8#XtYUoWeW%Zb@^SQEG9U7&XID^)b|K(Ph$aV(XUSk9`Hg$Qn z!Jr~9T7pCG0|sTAnaxNt5Ff5e-qin;h7?&*W;Mzy>?mP~rcJnxV|M6}t>r zfSOA=JhoIpX**Oe z3Vh~R&IOj#p$Vb35Zeg}OlHwl1iyW4H_vB7hyOU zFlDFKtw7XnR>7V;$PhItjMk*&8-`oAG7bPo&Orw?W%+fwOp_AHYpAAN8Y<+MuEpvo zp`0ZEHW8+Z?FFszHFH7HP=!UEL@yw{2hfz;fTdZ_5xnWy1B(eX7B?I=d*kesR>#+ZPu{+6kfRZF%0fM*>72tLbv(cqfw;VH$4AE61zNV1&wa z(B7*uojiMtaQYq{QIsYP&edh3ZZ|T=-C-ZofQHM>jYU5=!$?Gz>6?UUN>z&{iaIp@ z)1HEU1&QclLdA}Bf)aypYd%`D5p*0m%WDY_4w+AidD4LDPT<%Kw|iseb&%jwG(PoI4%sW}d?zI<4&ZIx`<9E57u zrfwa==SGuQ*=|*b=4;q&jjLmRxU);tEVN)9odAr1;m}6 z0v-#pd$|u;bFzDkN-*Xd0IA-8c`caM$WC7ZA9V_=M!F~62*419cv$-zwyjf&jse=~ zvI2r?&!MBsJ*G_d@-TMzHH&a=54Pc22!19z`lSw8lubNB*>4!vu=@~GB^1KB)-k8_ zI6Db$OfKe{7n3nT^5xr|Oi{3jY&<7&PbAHGB=hwv2UI>V-Ol2$qQE~!3g(>baR)#R z57JQZE|lA`K~=}o8JFl-pR-p|nPXMRUU*)fupG{8ic~=L zcrZcoL+eh*-GYhbP*#XMXg{%ZL~7quAH{2Ob<}hpJ9Pqj3nM*r6VsEuKBMQWK6yJs zvQnnUVEnYSk6?v>vEi7}EoQGEX3OVu0(sIct$uQ{Zp{uzbrx3Azy>T9XVgF{2h7S! zGq`q+;83^;#Xk6xHQPpm(q0j%P}Nx5Ein8-sE7Iw2bs2FIsMMigp;EL0o)eeaP$7H zV>G1TXx!z*`I{X>kC7pD;zt4juSfVpCf0O*rH+^maXOhE!U+VG1^9ze%G`o5SVGr{ zSSe-(#4rCCisSVbEP@8K(=(G??dj2mYYlYIN>+*9OSgzB?#D#@f^CApqv?IBcZ#N_ zX8(L|p2c)qGlg>#$A!|n)6bvWx%vEwy!QC_qmN8%zx!umc!FT~;`;IPm0yEB_$N8g zLqa3e_M+k)vM_8}Xhc@wVE_+Z{*-qU*#4QguM{iJsBrT8qKx99-D%%`3ri%YeK5+> z(U`A$pMicw4}JW~yQTXE`7i{KuN$Xzi@*W-dw(VSUAbnvpr$TFyHOlB6+DgUoy$q&u9Z~@m%!}o)Pxtzk6<}L=~KirIAQ243MOk~26 zRYwSL;sNg)Zcg2(K1zld&Ntv&rxR5EAi`lyX}2H138x#9CU$n>$t{hWqJt+-iL2Dl zuJDa}XIH0wN1On;!3&IhTYJ>CBTUtYvpM{+wYs6rk0V17l6Jv$89BS`4*0#ixC8~> z%i~!&O(U}&DzuP zniWVm3MUh3e3%ZSR8Kh-c9?E1d>X69D^My_mn%X3D%|#mTHp4&v|!0cKPDi`FhNX~ zVL&~=#QG^H$kD~|dB1FGD;i0*bthPG?H#xb9&yL>>i#4u8RIj zh@TdEh3gNwU}H9!Lg$z=={&M!*tO!zu<5oUTSl&|q{IVb6hw)`f)55@5HM1&=6qvW zWPGG|bd-&ZiAx4J+Oead5ZH_rQ^dw#{`#m+;Hw7zga=>)rLhZM`Xxy79cB|QrEwzh z+h&@1>E$(fGCPq|27{r4@yHnk`u27X((TiS?Ju@$1^hF&jGMw~vA{zl<>J;bDN-RE z`P)XuGq}5zK;JsEez~30hA@LadhZ*cqO@;~VorS>~O8~?EQw|AIL8g+B z8iFVq`C@sY{nY!!ZP#Js4VrGLx_NJ7XyEOq$r6tPV&Z|jFvdoYSYK|*!WPymX#6C) zy;#H#XbLBuN67ZAv)&hPU!1@E+3MBa%b&dvXD%r8m>qCA3nJtT*=4hulWgb{`P!Zc z5{8d_#!E=?b|KSdZ7SxQ2beA}TBdc9D>0U7j$;q*N|A7;8tH;)Iu+p#Jd!_#Zx#CW z2pCWCEhyZ6e0CMKy{NOLxDigGPSJAmLM=G|g!VvkdkN;fsl*7Pri|3q6=b&ua!izvxZER$lfjmTY`{bRYmgS4e zwIQbuS<~s_=nUz9J~_BJgObvSqhToG_iV47%Kzqx$5IAxJ(8-}<}r4+ zDjAsN4tp`GccQ8^v0PnXp;tS9hG5~h2m&8qh^N_OPvZM zWU&YdAEq9i&CDNSgZ>cg%%-IU*1YJjfe3#LRmcKjke#utL$}TjCNz}@*uPwyT}==e zq05V|j3JdPfDD4tF{dqQA5)Zf)3@LP?u2}Ok!L%1Sj*NHkZkwa(b+3f66=WJsX;kQ zn)u;QAi{MPevPWI$zpLa*Y=>-Xki!}Zf+w%=Wuf;W$1*LA9kethQNz3A&Yhq@ zm~t!TEM79UD)~gxG6n-xUVcH$Z7fAUslEcy^|W&ur*RrET@Vtd822 zWzZI|u$Vyin1J3(O?eO?D>zJMRS$AxeweHnd+8Enfgt6dgkZK%EWBb5k=gHzC&S7qfQ zR&^5fZmy8(0PC%M?V&ivw$QVyj4(lViH3GMB%&myvEAmKXn~N4S1VN-M58%O&-Lv= zkrE|zKvvJN`MWyf>@%-%{|=|PNP+^w$yZ~4R1O6n0QCF!0kwkP60eO%T1$5}3`pZW z<9arb^`zMfj&w|YAC69-Q8=F{B&!>hUAkK$o+#+hQa2?U5%QnKLRrBih|5gZln%6F zQ&NDA33-nG;)bgRX^Mp=G96?{%PaR(;Th-y8f+Si`XCn0{LjoQS3uoOtM~vOn)3%> zn4S3g_yVTUMvqZ_2^>jLg!6plda^d`=!~jIpq>%r;%*C88yJ%>$i#9&8^+{hmStf; z#gdB&tAHZ0m#1)*s|mgN=X)o}Sky_@YLEorkaM;XYYie$V!sXhvn9p9u6KmTA}phdsGMnb}nGjbNJ!T zmT;U@oeZX&7YH@@{0;^JBLSL?f&wk@9~a<0q#7Jq^@TILPg3GC zw_v1h_cPylNBj`*c9&-JCEF2d8WZme6n7ylCm-XpDHaRGIrbI1mceuZ;&oZ)#CZ|b zEn_C2WBGjXPDsP~kSV-L^0KzCDfrk{WvXluyTGP_FdZP(dOU&W$1u+E3Fo_;dQt&E zXYWW!o0;y}C~6;wsqVA2c8Bmc>#z)D zY`OO^EeBq4IR)>9&B;I9!D0eJ1Fkb161g+*Ozt(4E~v*aln)HM9T=|O7H#)1K44lV zmTIu*!ARD?bqhb7);NPy%0TgvGNrJgsVBRyIJ`Oh0sVl|ZyTJ;;_w6k?MU_4onG7C|S5(4+`H|z=xOQBl9`&np>{)(7BzxTFVPn*D=02}Jb$^3d%bjM^k%yS& zs!l)TTObp3R-@!_($9WtbLlvF;##K)4Ydo2L!nTKgY!4DiQ(eXCPv(X<;=sXMvL3R zsz%8-1O-$o@4PTL6rS(~s{j*$wGV;6~ZP4^jV!AQDZ zK3R!0t6qHWF~gcUS+HNOqpLvvXaklJ`^?t{()ax zDZPTcf|6zqE<5Y;rtTnbYB+ie6as}~u!IiVA971hyP|E6=^mi-M>gO5L(A(sFL^Q z{S_@gQInTr!A;^0QIKoeAlB65HCdB=SeS@Uj;59VMw$C~LM)H~ddN^LA(~ZZh+$yA zQ$%r&#xhri(8N<_oYO`w)hYnh4`_&(?I(}1JMSm=vHtsar4-dLil=vf0AULMu#~#} z`31DTaH`K6HsM%EatNw?jd=v~PBm01*xl|fuSpBFSL&$Q3aFLB+-`VvGOl%3YSF=z z{DbX7yxsy8b^6?6{#&meNRCiwYoFB6xJ_Y*>at^~SA&wDah5I`l*&mAl-y9}mYKD{ z>V;k@buhGX_O9+9t?3`H>EBq>zqzJ=OB^F!Aj%DHDsT>l=cfZ|W{NXlPmn4EC&6Ur z=Z?EboE&Kw`m+(5E^R4ygm!auXla>}Y8=0Y5JOSCqdd}GBYY)z*e*|9$%og54xvlS zR}P6dhe~~ZYg=K0u3`@j84AeURDq*mQzQIj^DC#Y+wm`*u(R;2Eh0?j8{Q7-IZ~rX zrl0r#cCOQy4Vu5f2`NW0B{B1!qq4d)Q*59%=f{QlE$g<;?YL7&RbRs5=ha*X^jQtc zrkf)yy?7$RwuQ1C6xeS>j@6?i+0yl3?-H3MByGl)W>lG#P(0|2krXgOB6Kowg}~wk zsNgAJ9T`v)nUJ8sn@~AxIPWVl@@2?EeZ9WFo0_%S&h2ZPyn5331Sz|Lwa($ zHVZXDK37aWm2y4Zx%1@ZTli_-?aoZbs^C;ZnoG)-s8eWYQi7;y<}=wqyA#(D^h7aYlVix4gygGAS=hwc=@Ah}6oAAP`?;eGTNw|Q*fVV9VYj0O z07kWg*nx$P3^HYp5FH3S#C|%Y0-G!z1kr!kSVYSF@Mxdp?s7L&qL8TVxk!TVCNLx< z8Bo?4GOeTsaYvefGk<>lv;DMY);ssD}j{=fsN$Si&J)A^H<^iei61Gy>67pyt7ga(tbeM6*T^2 zL$YdS2GqI4s|V|+(i+^+|E1jVUwD*{P{(rMTXhY1cvnYd4K#2KYrvyhFAglknu|AX zy*Tg_Yc3{RA=(iv1)x4z@PTCe4(9^tM`^~uKblFLnnHC#XCVBM`*KJkTXkyz_)t1% zKuHXmB^NFtyxegogJS!-Y)N@|3P0yso+s6`{E!0b0uqD}l7_rUtkIYog*(8yj6^U` zE|t!X@ez10=3urn#jkfQK#VKlhq!&L0O{_eiA&G&xZOj#V(5sr zB^+)R&R7*FzB1)y!Y z&id};at}s1q(TcWaEz(H6Zk?ToNo|*l{JTD6RIwMHsld(-}2GB&J9pc3OUd{UrlS; zjDl)qxSdob+Y+|uh)s{{luwtflu4I#I(bscnv$BDB_qkF@b|qySn*-7=Y>qDEdcfu zseCRyfo<>bq9{ffZxT}Dx>7hc^&+AK)90(}SLdr2PoBN_6jjP_IJ>&>4vWLf6D&XL zrGuNg4>@S)dQQgr;M5);3$=)fXyqRvS=Q{;tCx`@(P9U-Xxq(r96urxU?wpveB!SC z(|JaV(sg;_p*_4Z=O+$|-fG3DR6_dX5~_jwP@LK^Z#xmgs3Oo0`_8jT-VDatSOVV2 zN9qvw zr*t0TB$IEE_%6Q{WR>x0&K(a}7ZiRW+kMUg8uSri;XfV#i#u*>Xj?Edyn5}WQxN{b zd5#-96lMZY2tlvqn<}|U8)YeB8Xj=1OZ>=8Rz0I*fG)HZb_D~GG?9q{n7YnE$GC#& zb%vZr6_^43KVNeANhS*K7edMaf3Qw!b_jaJGa1h%0vUs`M zZZoWf#{jvCINm8d0O`V!96VAzDq;cY>wJJOD|zJIeat%8YB)Y&hzcz)jvgXNRRy#8 zL8^W@Md@%{)kgwHeBJKR0X*<{!O_9#3G%RmLWTmjoZo}ho1^LZtJUk9Yt~w|4I}{L zW9i*z(GLKJ|LCUQffVR3goBMR!gbyK}kL39F+I;I6 zA6X>-@VDb>=^g;bc$EoSzCbL186O!}k;>O#mqT_1$VyTjQ`uP+(9C!vRm+OV%XdRA zND3zwlB8kDphN&INeCqKp5**yj)3`Ds6d*j0zCkwN&n3ywmePXgWzrl>PI{r_G~s+ z9Z<}POI&i}+B>_1-CH|@`|s)!m1Z7Tw7epmb$8Xx(05VRXbC)XWJE~KPWgx$qx zY2*B|u2KKUWx9Cvnkx@ah(;$w|z1a2|9)Ky>!96_OP!AR3p(nSxS6z{^k zrATWG*8CV*t>hkRv2P(^5V_W4Os;rtU$;O&oT-iAxN1D><8;=?cGih9UBqj05wDS4 zLmUROmU-qIa(Yt$^nFQ_%rvqnnG!Y2Y73)?B4v8hLoAs| z3RR~@E3j6RA%UDt(2$2#o%bfJ-Wnn?Y%)Y)MLg!7 zKV2AgKqf6{La|BU^41hu-5O^5(3s=kRuh52(9<_1xTP zy^|H^X>1ITA4tqqOC}=;ueT5QGy07qm5$8MK@#OFW6n>YXy;ExS6%eGI)hUVkmYnlp;!Wm`%&1ttJHKA06gs1=74 zI>2$Ki_<2%iyZv+P(k@WV_y8WLDFHg8Th(CsRuX35e{Cv8XP8xVQeb|Z94;U%ea(;8p4vTgblGN2_r<)q4c*gN&q_v zT55t1^B{q|+s{cWsbX_wy^0G z*}=4DsQ_+a%ys)QIU?bx)YLZ8t&PdfTnDsy1$#8g%u@1JpYlL32NWgx4dLMDfk!$cx*EvKNi{MUZ#+@ME^#nOV$WZHCTNTB; zyZ+|r1iQw?LgSMNfZepfVKnEj5jU4KPdZd4j<8Y^eGtiBDN%%V=ss=*#oFu}%RnKZ zFoFuCuWBuMj3i%2h$RjKi!PQ|NSk{B78&mVMI(h<#;as@MS5yB< z9!hpJl-Qeg>Amw%OCoOpA7~j!VBINzA9+WGI2N;$^ZD#_4zvsjqG7ZQej&URnQgur z?(ah)+@Bfa@_@|kgJ#RW(N~Q09-dha(uAlh*@E>jXzNJXaIPWW76x>ujeNxpsADEV z-R&{zO`L+Wm_y)yjT*N`*!MH7Da)oerDc^nG=XeIZO5cE0GxNORM@30xGsx9`;SZj zpntlEMCRw@Za&OC2^S=uAcTVE{sh_Abb(u_9S)vC?VIAKE&hx17`pM82eQm2(w#k` z2DMRaR9vq+Z?3-fLrqUYukk@;LUF1E(@ber%gT<{ zb-T>OGI3z;?U&l?<9bnl6S5(KF9Qh?yB7AOveg%U00kt?Wwyg&YQua&3%D+Gtmx(! zyq~NxYc_iP2pgmuh|$NnM`mD{&dr&{vqF@h^p?RtFDg&+S4=>AKVUhaqE8_HgSmrL1$RrrA-kB*nNbogDL~N0 zn&-n52y{vom%NN2CwLM-84WF18`J}j4&QMou&4^3T|7kEYtCD{+uxIHq7DbeZwhaI zjM<;-1p>Hzlw+*Hx}z+=NqH$5?SqCRkU`16fs|UNGa_4jf3*T(Uy0g=AzB6^X|g_^ z=xP7?_3O{dR8WAXL{KH%CqZRdmh;t{^VO?oFQ51ncrW}h5g&cFm)ni!Km@>@Y^x)Sc^s zH%9US3xc1XP9s}bNdHLocdj$+42Mewpx$5oTxm*zSPmr@m&n*c?ZNx(IqQ1~Rs_uSH5|MgeT9utn9b+NBwAg{@0goK$G!0e zz2|tNzW#@bu11ZK)rKtB6RW7pd(X!4fRz_O>5oU? zQ(5Tt78Q6Wyhj1SD<2_?ZV(7!k7dY4G=|5z;(M5A&`1XS^&!bHcNn{~Xkgw3w#W6l zg&6!#Jo4dB=q}QkeF&$XVf^C4J94N;m`)4Pv$3NHix#quEg@_k`SL)YJJKbA|uA z-5~yk`rF|Me%W8RXImE-nwCB6E2N=)*C0z)%e9Al3HLS5CBI~Gc!BuQn6xsW#3*{G z(1(a{@)`qfvicvy60i&(;SP(V{ZC@qioAoYSdma9>0adYO7iIp7VHkLm&R$GU0t3x zE>a3Hc8Zia%B0yFQ%kO(jWFB5-qD(b6~qb*$(K`oR6loB8Fu}%h@J~lurK)*=#a7i z)CMSax|uK_r6W^8$iXX0o1`klfUFm}1k`OoDEE*S>K3-B6D|vW%3;g5@OQ^Thvc?; z0Cxw>u#VV}36GD0|4p>XhALAT$d^!Djbv(2iQrx@f+&dH9z2cP=Jx_6rUFY7fh~bA zt!K9Y`6PH^MQ4Li_FNqKnY7jPXFOX!e$fTbOLstdQD zOV^WUHKjPKOfBZsNoj%gQhcbYOe|4q!jLlAP{XVPmlhXRu5)&tI`l-b_+ZbE=Ty-m zcp@CIDenPwE%(Hvurc0pSm=7Q8@iRi7HN3f9!#&J7V91pzgoGLX|Wqq%`G%-cGZnvq!-s1<gX|I-h$;M^t)&V}0AD!g%@I8i$cM2#m?^uaPkZb;^UIfrQ@18pj*Y_T562y(1$Qx*0W0EQ1$I=3z%qpkyEp4Oq)xb)*?u&RwXE$<)ZWT>C=9+-oVQ>jXL@rVe zgUc7`4xCMMD8e>l1~y7y}Je0Z-J zG~>Zev-#n0Yls9a0u1}=-5id4z20x&zkh*$-|Bt)FTeX6-|77x+Tq{(_%ZqJulz^f z{-@uXeCL;Y1?)HfUx4+)i{S4cXV3fYZ{l@MzWXba?|i41kNKb;^WbZYIs2Q9;oOC} z(feGq@AIein1}5#t?#;TV(%w+XT5KIA3uL_>%)`YFa6ptpZw~#zxNBj{jJ~m z*6+Ued*Ax~Z~eiy{_vN+|1H4le|g_8^#1pMk;C8X{cCx%_nu}qb-ma7*HZ((-s}CK z_v=N^4~o`%y?@yIZqf4(i`IL+yA}Ly1^;0M|6v9Hu!4VB!GBc2e^kMT6?|C1M-_Zj z!8a=ShUVi=9JLXD@yC0;t!n&MHGZoazf+Ch(fC0ewG)5w$9ugWSL1)&`z`cy&AFex z-TO$_Z{xT9`*HZ8zwZHFu9uDP$59`}U;Oc2@6W3Cq-yV0?Y*kKU$y_!s{K!^_F>ij zxN09)?bE7#UbQc(_M&P(tlE#N_D`$!KdRdQM%Df|tM=on{iJF?t=gYe?SEXgpI7Y{ zRr`yo{iU++CG+P~5J>!SUg-v3y%zuWugMf-2{hVSL~`_0~GMfE9pqZi@Ez69~WF>-}d{`@g8##o}Rn zG5Kg0lZjR_8E6+Dhj#I@XcsSs_ODdW|JADfYgN0XzVC@^OGDo4eJ3^W>%9uQzt{U) z75q1=HmOJY_g?RNsexbb_5OC%{_U#$J5~GdRPEob+BuiW`~Q9g|AVUicdPc_tJ;6R zYX4!?{s&dNU$y_JYJb1?*S=(&sow(s^IxOQUGhHu`yTk6|Hj+o@xBLo{Lj42@!#wH zu=hU|?H~327jKiT`(AI<`#-$>$7&CIzm6@z``h(*dw*24KkWU9x9$3k-f7X^>iuJH zlP~>VZ>RSkpdJ44p8sXl?tOm!)mAgyxp&k1<0rj8e$zvK4z}UK@#4wu&)=+iKl>cD zsO}A}pR9JSpYB{gUTtn)Ki*kwKYiLXqwVqa=JjT?^;E-NzxjOBJRg4b)$+6J=gXUy zFP`4}>|O)u}+gZ zkDokku2-vVaM8MI`C|36=g%H5zg)d~{p{rnT#0&H!{L+1B?VIt=Xv1C-ju@}se!(jS z_r}}!`p1tqw?{jJjhpe4>+A8x=En8*20rU?vpKdaUcW(Rk~en6O*4LaJ-U86dVDk7 z8f=UJ z#LefgpS{lJZPeTwKiSxBpadP?42IX+&Cd1C)<&~ASZ!~NA8$O}w*7PS^3`g2^Z5wx zwz+xl>CJfa=K5y1vppPOUp(E}ezLjs=XAt9MULb%u3>$$$?{C@ZM zJkIaj_xa;I?#KPtbHA^>hUvWs&fD>fEk<+t>lYI0_diUbuKb6^n@qJYC>9;!4D} zZ5Mc=;2sVfbJ71{yS#ow_bpnyKy0DtqLIbpBBP2&MHX*YD86l>=%|>e$k>>+k@3Zf z#}xXH8<()IJrnj@kzxg+0?*K{ZFI5dVljbT9#^bgWZ(`(;v?G?i;RkjjW71^@7uav zFr&hS3KS2%B8$fqjtRcR3J31hF0w>ik>Y_PIzBRR428GzzaMtmckkFOc<0Ch@x@9M zk1rGxc$GyJEgByfr%DuwEm9;dFf6o-E!H-&?Z0{M;GI2rWP#$*MPrHaxt6wZOFpfpF4ZK2PqyF8P7uTh2=(*cQ#}p2XbM1mdWPD`dzyT3BOrqKqD;D^B zV)22!{coN-@FM9Q+V02#aWS!h;j&PP_}I9>t1B*$c;JT;kx_vIx?Q2j_|Vw$ABWrc z;B>uEYJrh6KB`c3WQmx-9&Q&HB4UdbFI+S(Hnwnd(Lf~sZo?Dq{jb=A574eqbm928 z!tpVMqoa$)M+HXwBGG|yAaIly4-E$Y@#(ww>uJlQiU-HGqOq|t(UF0+Q?a5kfnlw9 zY+zuFi!a))@W0vezfqND!Z9`Dt? zW9X>^2YI}}@`q#q16wdCQ+YV^du2=8> zusq>USpDl(foYl*dvTeD#>fAUf7dnescYb?!GX{I8wLNrL6^Xmb_nd!$b_@wixvERVU}k#2D===-?v~}#WqgaCFSd~o~%kCV)iJZ;l+{{mTfWd3_;Ch_rpUfV(+zc)+%8IPZ*VvJxIE@Rr zhTFJ@Kk+Ot@+xof9)p*=!SzYTRLsJc7|qJ8&)31dnQ@_Ch92zum={;Y)IB4KfeWUtQ?hYEb#6P4y8Z^)n_*s1}Xo`r4 ztLmFU11*P#>Lh^yGjZVOz-B}w&J`MWgLQD+4BjqV(7^o@#>>FtCX9=L=PMpu9$269 zK?CbqJ!oKi>IDtlxmnOaK5c>qa_kT^kaMtG5q$h$S0VWL!K?q^;|H(OgXf(BORK+qBq5yyg-jED%2*B9LG zO3+df5jTUD4)hIz<82_6mw+}@ypojWjSAnY+gYeqy&4O%O(ok0V)TNpI(rnM?)ors7H zmcP%B_!;-|Ykte5!R-n>UJ3>dv4lDu!}~F(Iv>OPGZ1yc?E?`dSb>2}N~i;?mSA}Q zHdlxDb31h>hWB?r^$?EY1Wx5F&gT-YV#59pY+u6u54hd(o!r9%Ji_mJisyKV*La)v z8Gc`XT)wH8hUuAboCMYh2?9xncMgYcQg3eMKIUH zJkFC0pLbnQU*S#Ox#dEyGYrM_-Oys=nai(G#re{{>;>(O=G|R9O zYcPC1+F0F^ZP}h(*oy-=jAJ;7(>a^r^VwzU)!fLf+`(Pk$Adh|6FklHyv!TC!{BFO z!Q(wi;EgKilT6LD%*gD_!~Be536^6O)?)a)xv9DpW7(12*oT8Sg5x-uGdY*x^X(Pt zwcN~Y{Dix?pNDyzCwYb!c!f84myej#`E&|C!|?fiW_9>HKcBiFi?S3euo~;IA)B)` z+p!aSupftT6en;h6Rsx$$Hjd060YKUZsB(Bd6=J3EWvWD z!dk4)rfkJnc4Rm9;UJFSI8NqF&gCMm;973xHh#k0+|R>2&XYXD3%tUcyvs*S`eZ1t z6nuv1n3*}5j|EwjrC5R0SceVSoUPf8o!Eo@IE14(fm1n)^SOkpxSm_MojbXQ2Y7_v z^AykV60h+#?=w+gIzjOGdz`75hUuA=x%e_88O<`R#2T#2#%#&9Y|k$2#Q_|~F`UHd zoXv$?#?{=&t=z#~+{eJ%OhO(h_Hs)cVwUe;l!~KCk>m;GB#G0(n zW(@ZQ;?-T)n}ax#6Zl`sf{2&jtQhAOHWf{>TE`vy5xF znIAIT7ul;m$b|k_Ag7b+v%Jnbe8~URyu$nAe|K*GZ`UKxI!rho%CItPu>r$Frn`mSl(Y9?oW+XPiFXYuleew z4ELorskiY{?qRt98SY2@X!-x_IQgIbKC>MEtGD~lB#{c&T&lWp9gXe z_fh|=<3xBnQ+k{<%)so-%kcL7|F5Ue@&Etz*V7rVtBbtGzZmZ8K9)F?M+!d6^vuR^ zKevFoC`+>vYckx&ZKiI`cy?iL{^!rTCs;m>v-u9gecN^FEewAizDxZj!~NRt)Tj6> zFY`}^`?SFi*b=TM_!QGJ6T|)4m(-Cg&j0**dbls!$nRS+h8-FHoITu+9cuX)zR8)K z$8aC^UG+wOz)$!E!~NH9)hGB1FYqeEeb;}~N%RSm^BKOtaKAOTIzNlB6vLnQhx@Gc zEN{x!*^ZqV?ynA1kKlMt<=YJRRhO&R@;z>6@Vf!Q{U7e99#S7?cs{{7_3sS#QU6vy z;(wk;@LXUZ4?cdlf0{#`kA)bXUr<&Z?wi(DH)IR8We0})rG3>yIGU3fo{tdjlPB^mC6R#(?$6DG`$ z2;?584);HMst0g5$8ie7ea{8zWn9C}{E*>(=U(+e9^*-#Ww_6IU44fSnN(jcCByyA z4C?I6%YrP%a9^{sx)vL-IomMY&+Mx1!@(TIi46BK=ct3%vWDe$IAx5(-tFSg3vIX0+ z1G}*=hj26}aR%pdF;{T|xAJ4|=2twzA9$L-@d|J8K7(`Og84kjr)oW%uP#x>l`54n?jd636=l4p5|*LjBzne?epPAQp&8JL}U zS&+q8hLssO{YuC^aF{0ef6C_s{jARrj^YGPWw?J5{=8s`<*T@!|GVd*{SW)EuCr4z zJpU|%I&c~n8VC3sGcpJB@xR(9Z|L?d*p?mGjeQx;b+mdCXK*eTGo0rJ^;Uk&-TaD2 z_ybS#H(uc_-e+PtJ;{W5o`G>8ojMD{^Y>m+N3kR;Fk#+j;Qrxxdrd5F#qj+8PU@Zv z&(|BS9>*yRepfy?UM*mFp57YuW`4+>49^D*&(Aw%`AMGTC0=KEUfx4>QvHgQOv4Ne z&&SKFF34gm!^#ZL!)u^!&Ngh%t_*))VX%4>CvrOH@IQZlVZG(=a|b_Xc)r~?>hJk8 z&+`w4=h@v;C(@q?fA1l+I{f{I@cgsf{nf)b zmXrAw!}I8ts#kLpw=w*EitzlouPr~yA9;os8J;)ym-+!8)1OGeXBnO^mrb3A1sMLG zMrn0;o?K0JeKuoj#xp!WuD5y+M{)wg-|q;|i+jiN6%!`~x$Qyre? zHc!2T?{XtQV0eDp7wQB2mM0kg-br{~+f~bN^B*SBpGeN|e6|KQ-{c5BPI$iBXX<@C#N+&l z;dyGmt8egcK4LO`itzlj=hPXQgZWs9;dyCg)m2!V4cUU>`Dh)~-Po5yIGW*kXfxDv znecs_Kpv~q8yKE{_OW_5zv2=8!0^1Y-_%!li}#sWe}hp6W??SA!tgw^;NOr4 z?!OAG&bn;E@cgnkbtm@Z01jt(UfC4&EH2mS*@x<#+{=SJ#_&9{v+7H{&O3a_ z@cglq`W0!If!Udt;dx`l)MZ$iwb+2+`C@I=@FwpuJRj@{eTvk4o|*X~!}Gujt4pvvtMOHa=YPGXj^!Kd!Tt=- z`x>jB%(pn7OBtT;wMo5=pK=es=28C0GrY)a{EH9xSc=f=B?X^ldS+uD7GP19W+m2S zeKuoj#-DA33Z9!F0wHJ@i@zQ~tZm?c=A)%YqK^EJlu4fbGv z4&zu(=3AW4rCiNT+{RD2hhOt3f8-fnv9%*H${z@jY8O03EH zY{u4%XBYP7Adch&PUCF8!xdb|E&PbP_$3eXJD%dNyv#p&m%%UaC%pgjDW+v6=HyF^ zWO0^bRn}o6wqy)DvOD{6D97+k&g48U;k(?(5BLec-~oQi6a0l2c$K&L50eBM*}Tyu|Cg!-q_oE|gPBreOwVXI>U$F_vLv)?x!TXB)O>SN7pxj^ad4=NvBL zO0MVo+`-SepWpC%{>=0IgEx7PiCzfh^8{1#d1mH|e3^w=g5_C_ud*>;V=Uib5BBFU zj^$*&#ra&y)!f8w{FHn6HIMQ~p5aAa<6nHh#{yp@N_hY0vrNxy%)Wm$!_*^n*RmL1rQeK~}qIf*kkmy5ZI8@QDpb2q=@5&po_ z{Eb(5i}#s0@P(e>ar7jgW;$kJF22GjmShE1XI(a7E5@-CdvXAWa~!8|78h_C*KjjG zkG$(Ne=W;PuaRayVWA5fxJi;G%n!oW1 zZ}C18zZlBrNj}YV%)(rJg;6ZY3ark$Y{FKIV<-0H01oFkPT?#r;4-e^W`4+>+{=SJ z#*;kDOT5lIe8{A^LOG>m8fIX2=4C+^V;NRvEjD0twqbjAWgiaaC{E;b&fy}i-D0e8ICzzVgGc#Z0%Phv9%*H${z@jY8O03EHY{u4%XBYP7 zAdch&PUCF8!xdb|E&PbP_$3eXJD%dNyv#p&ml1hG`8>|2n3kEClP@un#aWJ3S%;0- zk}>Sa?(D~*9K$y`lk>QQ?{XtQ;3xco2ly>d@E2a-Ro>=5Op-5@Q*u7T7nqf~nV&^i ziWOOd_1KiJvmHCL7YA|#$8##*=0Yy#TE55a{EYi}h{yR8&+&KO;NN`2WG{tsO2y}x zkvW);g&57UtisxC$QEqN4(!Ih9Kz9@#2K8+#azV=+{%x+n_uw=f8c5U#w)zV`wU+D zCtUyYX{KWq=He@iVo6qDb=GAQwqhJRu_p&`ILC1cXK?|SaSb=~L+<2W9^^5e87aCVeH8Q%a^`24-ho7GyD&VP)2012$(Hwr5xN;b4y9L{8@%F5*hA=lk5j&$*x9 z@O%Eu^ZbK1d5?+mhw^!XsrfuJ^F_YQ!Ysk^tj1T_n6ELGZ?FgZa~Q{RGT-8SF6C-& z;x>NDJ^Y$S`6JKpBCqi;KHy^oLOG@2vrNxy%)xg1_(ruktqkVUj|joRaeyzQC-^&HOCFQmn`t ztjDH&o$c6}y*Q8~IG$7aHWzX^*YZ7X=V#oCf3#rq8Y zZ;6EWe?HB0%)(rJg;6ZY3ark$Y{FKIV<-0H01oFkPT?#r;4-e^W`4+>+{=SJ#*;kD zOT5lIe8{9xp`21O4Kpx1^Rgg|u?#D-78|fR+ps;mvJVGy6en^z=Wr2May{SY4t~!4 z{D$B2XP)ODyvch^R3wzo6HLwLnVB#0Wfo=$mS;7-%Eo++v3!F)*q_5VmXrAw=W{7n za}&4mQ|{r{Jjx$=h8KB_fAIkyD;mlv1)pVlW@8=}U{RK4CDvqpHe+kXvkQB35Jz$X zr*Ssl;R>$f7JkHC{E~?%ZOs3d>-dhOv_Bn$(I<(;w;CitiwiZ$ryHI zclP5@j^Ue}$$4DDce#-t@DqN)1N@dJ_zN%aDsS^2CW#K^l$_7-1!iS#=4TO>Vnx4DPT~yC%y1)pVlW@8=}U{RK4CDvqpHe+kXvkQB35Jz$X zr*Ssl;R>$f7JkHC{E~?%iuraOSt~$Q%uWD%*mG+$>J=>s;t9CY{?jQ zWOw%CP>$i7oXL4y!gslmAMg`?!2|r3C-@65@G5WfA0{aq$|*UY;S0>l+|17+EX9hf z!Fp`U*V&Gp*^2`?g5x=rZ*w7+b1mQFc7DcvJjCPtiRbt`Z}4wEVzP3foKo>QW@HZL zVJ>TaJe$M^;hTrpN zp64ID$$LyxF_g~}OwH$+nJ@BX7G?>SXEnac#(a&je1kpMpTjtolld0sb17GI6SwhG z?%~%w${%@#7kQ0;@c|#J6v`!K z3a;Z8e#Bk;l85;nPw`h?=AXRFh{~aS9_Ld`%S_D4ml(<7EXS&>!$xe$74(4MaMzbud zur?dA1>3R%yRk2aa5N`z2Iq1yS8)Tk@?-AiS3JTWc$&ZQ3UBc~ga4B`;rgFXGaa)q z7hho%OR@s1vo4#k730{6Jvo5GIgV2}iwn4nYq*&oawqrlAdm4R&+-zl^9~;}Y4uP} zDVc^Dn4Ni9ki}Srm061o*qm+Ho?Y38gE@*5Ih}L3h%33C?{fz~=YD>}@A)&&^AFzS zJtnFV%I68D=JU+V7x^*^vjoet8ee5&zQ$O-!5-|-VI0fJe2eqBl&iUk+xRK>@M|9B zk37SRyvD!yfREJ-<&=WYGCi{~4-2p;OS2MdvOb%!HRIWZy*Y>@If2tSo9}Q1*KrF! z;x2y4!~Bk?_$x2-Pu^ujtx!IX^C_lfCg$WzjAU_^V^!8+BerA=JF+|baVW>|P0r*z zF5$b}$Pf4lzu*CW%M<*C7kHJo`45xS4&{`b&+r9iWp3tY5td>_)?ht0wF?aJT9^nr>&EI&1w|Jk4Uk&B+B%fwFW??SA!YGzx z1y*NWHeoBqu@if80EcrNr*IY*a2eNdGe6``?&U!q<4K<7C0^$pK4j9mp`21O4Kpx1 z^Rgg|u?#D-78|fR+ps;mvJVGy6en^z=Wr2May{SY4t~!4{D$B2XP)ODyvch^R4$f7JkHC{E~?%ZLV{d>-dhOv_Bn$(I<(;w;CitiwiZ$ryHIclP5@j^Ue}$$4DDce#-t z@DqN)1N@dJ_zN%aDsS^2CTSSTDLJ3v3(U&g%+De$#fq%KdTh$q*^Zsrivu}=<2jXY zb0L>=E#KpIe#U(~#N+&l=lDBs@NYh1vPPktQt>%vWDe$IAx5(-tFSg3vIX0+1G}*= zhj26}aR%pdF;{T|xAJ4|=2twzA9$L-@d|J8J`*<%kG$(Ne z=W;PuaRayVWA5fxJi;G%n!oW1Z}C18zZS~pNj}YV%)(rJg;6ZY3ark$Y{FKIV<-0H z01oFkPT?#r;4-e^W`4+>+{=SJ#*;kDOT5lIe8{A&LOG>m8fIX2=4C+^V;NRvEjD0t zwqbjAWgiaaC{E;b&fy}i-==D%OPcSu~XJ)?0msyx4 zSf17RDjV}P#_|pJV1EwdSWf0!oX@3P%}w0KPq~L*^C*Ah8D8Wy{>2A;taT`-6nvKH znT>f^fJIrFl~|MY*^I3j&o1oEK^(~moW|LFhby>_Tlf)o@k<`&cRa;kd6|FmE+g86 z@_C$3F)cGOCtqSDi?bZ7vJM-uC1co;-Pw;rIfid?Cg*Vp-{nSrz)$!E5Aa)_;4i$u ztGvyBn51ner{sKwFEA@}Ge3*46f3d@>#-?cXFGOgFAn4gj^|Xq&4pafwS14;`5E`| z5RdaGp5yPl!N2*4$znn|rQ&nU$Q;baLX2ivR$*;6WDB-s2X}@A)&&^AFzSJtk@w%I68D=JU+V7x^*^vjoet8ee5& zzQ$O-!5-|-VI0fJe2eqBl&iUk+xRK>@M|9Bk37SRyvD!yfRDw8a!SExnV#90hXq)a zrCEtJS)a|=n(^$y-W$rsjv1MQ`B;e2EXyja&4z5jw(P)e?8_k>%}JcWxm?Uu+`z5;n7jEE zkMIYc=5M^hTfEQ2Z-nxBl20=ovoIH5VH8WU0;{two3It**oi$kfWtYCQ#gwYxQuJK znICc|_wpc*@g&dk60h?PA2MmDP);eCh8dWhd0CLfSca8Ziw)SEZP=b&*@uHUiW51V zbGV2rxt{NH2S4Y2e#7tiGtcu6-sC+d>Kw}F38v=r%*+@0G7GZ=%d;9^Wn;d^SiZp? z?9X8w%gKC;^SP9(xry8ODfjSe9_5cb!;8GezxaTUbqVE^g3mHNvoQ|~uqaEj5^J(P zo3SR;&a0SVnxP!n5(#fTlq0}^D7?V4?NA^ zc!jrkpNV^f@_CX^Gaa)q7hho%OR@s1vo4#k730{6Jvo5GIgV2}iwn4nYq*&oawqrl zAdm4R&+-zl^9~;}Y0pqjDVc^Dn4Ni9ki}Srm061o*qm+Ho?Y38gE@*5Ih}L3h%33C z?{fz~=YD>}@A)&&^AFzSJtpcE%I68D=JU+V7x^*^vjoet8ee5&zQ$O-!5-|-VI0fJ ze2eqBl&iUk+xRK>@M|9Bk37SRyvD!yfRFVK<&=WYGCi{~4-2p;OS2MdvOb%!HRIWZ zy*Y>@If2tSo9}Q1*KrF!;x2y4!~Bk?_$x2-Pu^ujpHM!J^C_lfCg$WzjAU_^V^!8+ zBerA=JF+|baVW>|P0r*zF5$b}$Pf4lzu*CW%M<*C7kHJo`45xy4ds-a&+r9iWp3tY z5td>_)?ht0wF?aJT9^nr>&EI&1w|Jk4 z`-k#*l20=ovoIH5VH8WU0;{two3It**oi$kfWtYCQ#gwYxQuJKnICc|_wpc*@g&dk z60h?PA2R8HP);eCh8dWhd0CLfSca8Ziw)SEZP=b&*@uHUiW51VbGV2rxt{NH2S4Y2 ze#7tiGtcu6-sC+d8W_sw38v=r%*+@0G7GZ=%d;9^Wn;d^SiZp??9X8w%gKC;^SP9( zxry8ODfjSe9_5cb!;8GezxaTU4GQIyg3mHNvoQ|~uqaEj5^J(Po3SR;&a0SVnxP!n5(#fTlq0}^D7?V4?NA^c!jrkpNWTs@_CX^ zGaa)q7hho%OR@s1vo4#k730{6Jvo5GIgV2}iwn4nYq*&oawqrlAdm4R&+-zl^9~;} z>F`iaDVc^Dn4Ni9ki}Srm061o*qm+Ho?Y38gE@*5Ih}L3h%33C?{fz~=YD>}@A)&& z^AFzSJti6v%I68D=JU+V7x^*^vjoet8ee5&zQ$O-!5-|-VI0fJe2eqBl&iUk+xRK> z@M|9Bk37SRyvD!yfRBv~<&=WYGCi{~4-2p;OS2MdvOb%!HRIWZy*Y>@If2tSo9}Q1 z*KrF!;x2y4!~Bk?_$x2-Pu^w3s8BwS^C_lfCg$WzjAU_^V^!8+BerA=JF+|baVW>| zP0r*zF5$b}$Pf4lzu*CW%M<*C7kHJo`45wf4&{`b&+r9iWp3tY5td>_)?ht0wF?aJT9^nr>&EI&1w|Jk4$AR;&a0SVnx%vWDe$IAx5(-tFSg3vIX0+ z1G}*=hj26}aR%pdF;{T|xAJ4|=2twzA9$L-@d|J8J`+z4wQZfxQFgx?I zAd9gKE3+0GusPeXJ-f0G2XhoBaysX55m$0O-{%f~&i(v`-}7gl=O4VudrUMnl+P1P z&F7h!FY;v;W(k&OHNMKme2uYugFV=v!#I|c`4;DMDOYn7xA9Z%;nzIMA9;osd5wSZ z0Uw(d$|(h(WqM{~9u{CxmS!c^WPLVcYsRw+dvg#+assDuHs9e2uHzPd#9jQ7hxr{( z@mF5vpS;V6>7jfc=Tl6}Ow7rb7|G%+$EvKuMr_F#c4T+<<4}&_o1DpcT*7y`kst6A ze!&C$mM8cNFYqdF^B*Re5y~k!pWzG4%G}J)A}qyk zG$(Ne=W;PuaRayVWA5fxJi;G%n!oW1Z}C18zZJ^oNj}YV%)(rJg;6ZY3ark$Y{FKI zV<-0H01oFkPT?#r;4-e^W`4+>+{=SJ#*;kDOT5lIe8{A;LOG>m8fIX2=4C+^V;NRv zEjD0twqbjAWgiaaC{E;b&fy}i-=2A;Y<4K8 z6nvKHnT>f^fJIrFl~|MY*^I3j&o1oEK^(~moW|LFhby>_Tlf)o@k<`&cRa;kd6|Fm zE+giI@_C$3F)cGOCtqSDi?bZ7vJM-uC1co;-Pw;rIfid?Cg*Vp-{nSrz)$!E5Aa)_ z;4i$utGvyBm}G7!r{sKwFEA@}Ge3*46f3d@>#-?cXFGOgFAn4gj^|Xq&4pafwS14; z`5E`|5RdaGp5yPl!N2*4$>xP}O2y}xkvW);g&57UtisxC$QEqN4(!Ih9Kz9@#2K8+ z#azV=+{%x+n_uw=f8c5U#w)zV`%FAPl+TlVn(3H@x%djBSdtZ3opsrStr*8n?8yNf z&T*W=SzN$nT*J-$kUP1T2YHMqd6t)Wop<<bsBktmtJk0NSiofzQ|KwdpEDGiG zIG-gLc!5`W zoBuG$;!sY>`3zrRR_11Y7GWt?WDVA1Q@+l2?95&q$PpaRseGFYxtweH9=G!|?&BdI z=TAJx-+6<7^AVFR3FVZE&oLu&Fdqvsnq^sqwb_s@*p?mGjeR+UqdAE)IG2mLiW|6< zA9FXq;t~G9)BKHBc#HR$cxfn~C;2qfF$;6?6-KcnE3i82vI$!;j-A+(12~-HIEAyg zfXldsoB1JkaxV|^7*FynFY!9>@F9~f3+0rOX_$f8nU@7wjAdAvwb+2o*@o@em3=sv zqd1Y%Ifsk5lI!_CckpxW=QsSGKl42Q;7#6RqUE7{o?vP|&&+(0FS9U9uso~rRW{~p zjO82b!Tub^v7F4eIG;RS9^kh;!C!cRS9zQNFv+S= zPRaQUUtm_|W_}i7DOO|+)?-t?&UWm~UL42~9M7qIn+v&|Yxy3x^E2+_As**XJjdU8 zgMaf8lf4_tDHWe%M&@8X7GgBZvI=XnAzQF5JFpx3atKFr5@&EO7jqRia4SFNZhplh z{DG(W8?W#d?=$i0P(DxcX{KWq=He@iVo6qDb=GAQwqhJRu_p&`ILC1cXK?|SaSb=~ zL+<2W9^^5e87aCS4QCDJ9b|1G6(P3$hr?urh100h_Z8+p{bCa4<)4BByf> z7jY%m^L_5%=iJY4_&tB-dH%thyvIaqL-{i(HSRcygaX!Vg%*330iIFVM za;(ZaY{Zs~VMlgnKMv&>zR8)K$0dB18~Fi0;TJr>Z+U{h@B**$HveIg4WXQp^BKOt ztjx{)EW%Q($QrE2rhJ|4*qOaJkRv#rQ~5R*ayi%XJ#Ob`+{Z&a&YyUWzw-wF<|8KC z7|JOXpJPVmU_KUNG|RFIYqKF+uq`{V8~btyM{^Qqa4r{f6*q7zKjveCStGn;{ch0|i@B6>^zMt3gY5DH8*KhyUvwv&tHSXP6%$s;S@8v44<kN73O=PyjGO4g?^i?S4tU?m>U+HA;E*^=$pnLXK;gE@-l z^8#MV*}R(9aT)LAeSDaYb3I?=D}0OZ@l$@yJ>16v4<+lA&Jrxkqj(HYU_CZwbGBhe zcH?=>rqBwoZBoXbVLfw%G=KFBp($LF}2uX8&;4V&X^*YHVh;EUYKH@Sl!@^gN}J>1KD`I7S~%!7F-%kd~yVKvrf z1D?#&cm~g6clPE04rdl8^J32AJYK^ac^j8=B_HKe+{l;t26ylye#!6o3lsU(i$z(A zN3ar)XKgm*scgx1?986*%fTGQ^LYU;$r?}@;*My$GM&_@)f?t_xLHl<{s{2 zfda`orLzRf@+cm|6IhRp*_>_Ik==M6GdYZ7If)l>2Iq1SZ{V%GhYxZM*YP=S=Ih+f z5BUYZh7)-qFXxq9 z$R)gmck=;0!YBDGU*c&`dZ{qE|m#eszPxEqPUB^q!v(yaH}fvu&((Z_8@P$D@@>A)&-e|08SmtMe3*}OJzwN2e2ee# zQ+~}o+{Xgx$vUO81k3U$9>Wt@kB!-!ZP=0Bcpfu3jAJ>87jXvXauILft-Oa1at+t< zId10b+|CdA1;69Z{DXxKOxEdOmgM2A$f~Tx20VqQvn@NZ2QxT`BRQT^Ii0gOpVx9J z@8AkP#K-syU*J}5Z}?7*%(m;E`EV>po) z@^W6ug~DlXW_Xhw?BU&Er^;C-P*r;F&y| z=dce4as>U_%r`tp+k~&I+!JSI4iO$Yq0@O;puG4PVB)94&q3T=TuJT zEY9b(T*^DRf)DXAKEoHdmD~6(KjBy0&ArTjXtF+OEY31Kl2urpb$Jq-u{AreE6-(r z4&@k5@mP6zT3mSY7T%NnfDCOnO2@GN#`Zw}yaW^pnv=1k7xHN26xaXDA=Q9i|ue3@@> z2S4JM{GPus5pFa^pR>X&%2GUnm3TaBvmsAqOSWTY_GDiU<|v-e3wSAK^J-qlWxSL3 z@nJsB^?Z@9@GZW_Px&?Xa32elP1Y%$C0Le6@fe=KdTh+*Y{QQ1#`BoTVI0dzyofV6 zmy37yyUfEW;yNh1FS?C$Sk@ zvje;GT=wTsj^RXJ$jf;p7jg-2;oW?IkMK!8%a`~X-{A-RoZs>%{>}r!jrZ*RKM&<$ zJetR`CQszaY{4^mHqT)n4&(@q;}l-PD|i(b^CsTTd%22h`81#B7QV@y{FuA=1Ak?{ zBa-zg!eT7V@~q5itiwiZ%2sU8F6_mA9Kz9@z-hdUbGU%l^Jd<~`?;D=a055-Rld#l z`5C|AkNk}V!xt!`_2@tz!g8#@V_Ads*@UO@44%dA?9Blj&MZ#m#hl4`yoNXOHZJE% zKFX)KkuUQN?%+rKlHcy*wCEX$*K3{PM^HfD3SVMli3dCcT6 zj^!j?#2K8+MZAHx@*Y0OHC)H%xS6kWJ3r(X{Ek2K4;HGBtkc0P$-`NZRauJ-cnVKv zTXtd(W^fQkay+MUI%jb{ujNwS!4-UnkMSA4z^&ZIclimw;%@F`{-cxiNn>%A;gPJu z>a5F?*o>{&fn9kn`*SGAa3U|{<-C#$xrDdyZa%#@Z|A*S#kG8z&vOgk8CZ}=mBW5LSFIvvPESdJBVENienoA5NA!L!(%y*YrxnZ?Pxm@_$#*YHN( z#^qeeNBI;t@@2lk9sG!2@_YWmM3rQH3bQCn@d#Gp@vO~;Je4ikj-A<)eL0w;cs?)S zrJT*Hc^#MWPTt3d`8e0}MZUtf_#Qvy*WAN>EO1P+PU$ScvOJ2%@C4RlV>V|Sc4Rl6 z$4n06SWeO; zPvPlo%TDaU3=ZN*j^|WP=Pb_WwOq$}29BcAKp3D|JlV|fB_TfN|;5bgyp#9wVLs0Fe37s4ExyN3`8D@&9}Aq2tW!Emuq=<_F+73w*qF`P zh8@|B=P{GRIF^%m5od5N7x4z(%6s@A*Ki%5<7U3j?fj5m@H_s@KUk72#+yp~IO2UqYRKE`MG0=IG--{mL#io3a&`D-TY zlg8pK!y{RR)mfJ(u^C&l1H1BE_UBNJ;Y41@%XuXiatUwY-F$$L@JT+)m-rgr;RpPj z-|{E^&I4*C>vRwgDHsNVJgJ-cjdvgGXGmDdX zF=uifui=fnjmx=`kMb#QV|Sc4Rl6$4n06SWemCn9bRS9odcNF_XhMmXml9XK*eT@dnnt{E%Pp zJO0c+SSVle{l>pLE@}L5R%BJyV*GpKQ;eU^w(P_n%-|r7Z^rAFd$JDuf6tz*!~Wm1C+o2P z_w30!?EgJ`vJU%y&z`Kq{@=4F>#+a#?8!R(tAEe_AHB{HZVzW)YJe4gOUtj2K zyeIo|Fh?=Iu5f|zOF5fY^Exi$oxG0^^Kq_cd>!Ex<8Sdje#)=8hx=H-`F}b~uq@;M zFWxc6PhdSZW^=Y-M|R_R%;YeRSyn(m!9zMu5T*v3QnXhv@Kjatujz9Ac z7RsMoKMrO|9?pua%35r|Q+PVtvJ-nSgM&Dd<2jYnIg9goEtm2RuHZv_jL+}|Zsj(< z%TM?fcXKcE7f9A8jm24pN3sg5vo23!Gqz?2cIAKcbNzR(SN>03KfKxJ@GjoZ)qH~S zb;C`@U*+3;pP%vnm+OW9udfgP+4~dm`##9>K9q;?XdcI!Jdr1}1<&N!jIW#bF+PwZ zIF3_z39sN)T+EwzJLBu*tBkMZ(|n#=7+)XXY5ZgE;t%|l`E0j~uoz3TJS(#r>#z}< zvK8C23wyC2hj26}a2hY;94_GXyqS0Ley-*d+`vtIm2dNXe#US3BY$H-+wTK;2+J{E z&kj`A5-h{=ti=E5_O`v(bzv{|;}DMK1Ww~+oWli-@6X(9eE;?}xqqH#xnIK@c^j8= zB_HKe+{l;t26ylye#!6o3;(PCf8l@i`WPSIce38}UrpWzGK%58j?pYSX0=3eGk_cRvg{yHW<5C7FVmQl|mS%uYEmnX3qTeAbZ@?7@k zP>$h5UdYRNB^PoDZ{gj1fRFG=KFgQ*8sFgu{G8wNC;rX@>^BbLp*)O7^ElSzi9DGt zcqY&0IqbuM9Kms%!b^Asui|3f#M^l0aG+xFzT)^vjGwFj@ zlXW_fhp-$g@L1MheKz4~JcDPkJ9~2ghckIrqQuc}Q>b&E!z- zKQ2rzkM6d=y*YrxnZ?Pxm^1m`bzJy&*Pl3U|M_il`R+fzP1fQ6_W5lE`{j6j``@-* zi|-%A=NFgQ?#<*}E@XV(yUh6i^m)dA*YWZHmgP50-N$kgFX9Zw%k4jV{qH$>HuH6E z=ZE})-|=Vu!9uqG2eTv(XGK#D|13tqDKFWtc*mBzGKHGYK$2f zjnwEja>V%F4aQ~;49{c^s}Y6OXxFTJgF3Yv^=>m_aCpr>Jl$!~xUBvo&mYk#D`QOF z(?^c_i#OKe4%H?WQ-V?87;B!CX-K%88L9!;IUc%?z!O^{lx2utnl{IE?-*H*doCb~=Ic`)~pZ;cx_9J2S{ zM_hE@F^=n!M_jaBh~v8E5w{>Eu3H{)OH<;a_nzDPU7ivbUBk#N?va$Z=w3r^aqCm! zdgc+gB_%GpmzG<;=r}R1%ei^PMcd0b?z}wWcBjNe*J^T`Zz60r<9vPch>Nz%aa=|o zab;8D`sNWA-RF(-^~)nJ+WyCJ{qu-xk`kAhM_hEBKh8HGkGN<*6UPnABd$+M+@L(- zhNZ*}&Lb|`pT+Zy?zQH&+@j<1I4-*OmRsDsl(=De#6|Zf;(WvNh`Tc-ZbTk&t5V`d z<`K6pB`(_5#P1{Q>Z4UN5e{dv+ootFrG?FHb~`%!8%+v_b=fUvT>P?Q!_*>S_-Ap| zLrnCVIDeF{co>gc)W4`T4?`3e_iuX`IX;@8#jigljEBRfL{rc2>ywtK6&^?Xg{V(a zzNlZ(HYqh<^!>Kf`NsL8ZEI@2>KSR-uaELo4MUu7Vvc;JbICU@N4|O~`KqPlTbv`` zF}dW6w%e)wYm$=hgp_=1bL5NeH~rQ7U7aIeien2#WHx2t%Cj#~k@u7Y*l@agq=hKa9RdlG?u}1Je@g!gEo+mVcEmtWQy^5LV_* z>B+~@zyFX=+`d7fe_`HHzSd#*hyID%by(;}oFtEYy}}=`Y^r}}R;P1l`KW*Kc}4Vb`Ez|ympvh0bbb=I-14mt`TB&QC|~C=vI7x_$ALd*hl_!P$YM2=1i_a_ms()?5HG}B5DsH*u>pVFvF(U*;`MQT8xBjgR z`J!u=af=`3?BDi~FZzx}lrKK7_^bZSuaHQD68_n8%U3Y`A=VI@ov&9gxBjgNL4Rlc zs~qwjCtrMC@mKxZ67oGB;^LND|JsIppM{|4{q_k%ZvC5cbRy9ve9q&RTfTbJ(h?oR zwj;{dHw?Mudm|ha92F-Caq+{P%VYZ7w8W?|G0N9Jk9>P-B@)Y`gAgsZe7onRCAMu% z=8MlO{;Gb9LQ$gQ>$v5XZ&Tm&?EOO2zd>Qh?fn+`Jdt=mWk;P`z83w`6L&UA_Agrh zbIbQp`Fx4!oFQ)U!<_ZobyIp`W0)BAZ&(;|%a;`vM$b4|Ft>cGmZc{~h3Qeg5n;$J z-^(FigTJx9RK7VqG06H7<;^W$p&FroVc#FO-1;{={9)d0Auj6Qm@wp)FQaz8#3ON% z5EnnpS-<`drzfI&7g4^fJo1$b2YMUA^tk1gFYA%?#Lpop$`^eHGPnNi4EdsaByr0v z->~ophzIFkbbOLqzJ2xcC8A^ZxaF4bwYBMqdGbZ~;Bw1Xr(wQCbgUe=_~Ad)?}_w8 zbS@vg-zj0pEnllf`4R&Uh_mIsJeEJ1o@f|O=AwKTU$8|aT_tA#*L{sng z!aVX_(=^}T+dgkh|8x6%aUS{BgnZGxuejw_zqTRYDE*tBN4}lS^JQ-*|5?7rUP%A* z`0uhj^0jY~FEKw_SXyrVn-UHZTZiQqEsq&t$Zh$)7gmDsG5@pWmT&#m@OcYSQNAm} z5a%l#Y7oCBO7d;Uw=>)eiCa9aK!{5{-hD0P>l1>ae6zz4=Zn5y8NH@f7^1ehW4=V^ zz5kXlnidVwXD~IcV%xOr=p_5Vts*sKuo`Hb?*Jy%Ls3h>7|)FAQ=2 z8iu&A85nb~`+NwJrVGSn)W2X$u;dC z0jJcorvgr^X-@~7QPchj@aLNLOu$(+?b(2HYT9!F=hd|511_j(F9cjv)BXi;aZP&( z;IB39-vEEFY5xJZw5GibaCuF81>m1G?Y{t5*0fgvI@PqD0aw?w*8r}qX}bWr*0k3F zuCHmk0lL?;HvoFnv^N5J*0j9|>f%{-SJDRq?S( z@3<-lGi?;vEU4^VqE;@eHCX&KWw295>d|EZD#n=n-XHeo8~ z!0Jp@0;@BXbeX2LpvUx33~-8rr&L%ux@gFMwBy$zhNV*w#S+`_y0e%zO|q@S>&!Bv zJ@VD^Uk+53l^w)yt-)lEV$vM&Ii+&ep%+#CRoN13ze67? z(F5Wt1|OMqsm?pZP;m`?N&R=g85Z-A(&-;Q(Y<&nBP^(N(Hk*Rd5^Ai0aXNfmx{< zxrt|1v5oh_5Bp~;fnnK<+dQLSKl&;dB^&T9OtSWgN`_$of~|XjWm>Y|-c>QJ*Z~JwrZu}ShGjls&&=SMHtg|Io@vWAd#GgEv#&T6(}68Y zRxlme_;8!E;iwqP~h{lnSond>%mfuCKr-Rb0$i$mMt_8Rf{@FY)Y@Dq)Z-?z+gS9zj49 zO1tumO~uV#@GJ3_f5R|BQROH`PM$|$Nn zV;L@~8dFJQKl_T|lB+RMk%nG#M--+Okkl}S?&qL*RM7@l?Sb<+M(AlI^K}f0m(o!* z)D60E%qxf4x&ucsiq}SJtJE*2D4B9 zg8dzDxRMdR^Tyz5tBin8 zlWUL{K*rP{#=aVkSIfs`5C$n%btH*X4qDYQddunzG~6vrS8r3R1Y=x072P|QLFo@l{(Bf z4k7e|YtQtr4Y9^7$+fI)WKH~lTFYx=ApRF;sQKSK!B%ZrO{OsbIEH`(hvGjS%3VpU z+VoJf0`HjG5mRGDZ*|Yc#_Fgv)k0!*oc(L}fp2YBW{8;-;egb1Dz=|m-IyI}hIy#6 zEZphMtXl1G*H|LlP!kl_v$2xGF}7!`yC%VOW4R?PlbDJ7@1V?ohY8EJ>NqX`?mURv zf8H0Xk!`Ls<1W_KjjW%3&2ckowQzvi4%-wo?o@T>>eR#y62()u z=B_y;=rPr+iQDnyTGk$Fu8zC@f0C;o#-ENZHTX}~-%qNV+3;UXcp!8C)NJIq88zY2 zoo-yyaR=$2(ntmVFGF|>Z{n9`MZ8&#D_!XAq#t^B>F4ik>u*Ryg??xt(GLwV`uQ8u zfTo|n@j=z7W3r(pO*-`RH=m|3`uQ9FP5*EBx8DC>NH%xkm#gWUK!lEtYaho|^N;JV zj&?K0)$)()H~(l4ah@BZtCI%~h#2R-;PYf6zJYPB#UkQua6fLt44S%+)DJa;@xG-91&c zjj&nWd;-L%OJFz*$_e*1^nMwxNTn3{p0#W~-Dg zipDjPVTvZzEhLfQ=b%u7^)neku3LFOdhWwtL2!(E6C%>GP1w!9Z3#8L|VZ`)E+R6B=aWGwa-VAv~4EIs7BN- zzeLwo{*D-MqdDgJ2x>=SC&V$aT}d+h3hD0mCCSXybZw2D3dbx;B+1ijsO{W=c8Zml57pekxF{*AQC zeGp=MIe4Qv zW>O(Zj%`7d8II=_caQp;;7oSvEGLf{k;Luagy`d^lGbGx(wbaATrbDnj+;c>ju#zt z6M3v%NLt;aD27N+vNrN2(Z^uB!!flS7A`rS(TBEVC$t~YOLNH1fnaLSt{@Bg*+kic z3LeK~6_EWj>JU=BT4IF;(GR=XzRIAJH?Oad7Vk}@B*TY;7NX{<5~Fj zB(7H=$;%^2=K3hIyz*0`_?bzv*Adbh?~qyNh~c#3y-izBy=Xt0WCl9o=Rc$N)R7eJ zoa5Ip(2?%VDHKnv8|faLN!RsHi9YQF$w)tuwWFuV+I4IgF^@U=n}3!l=jM^kct@Q2 zqhz_z@ubd7Bi+rNv_0p2(#HMx_ShV{H;LpmG77hCaxx}&Kyx9FOu#% zY_)K2QE}mzc8KcVk|}h3`H<+pH>ao~Q2*eVnJHw!Qc3ipc4Q}_ z8_{3Aq3gn5iMzBp#W1NZUE4eEXMfah@a6~7b;w|%>pGJBl01sxF&1vjNMBO>)H328 zx=!4%M&x&tW3C>ZMV1$0i^nm^Gl`z1BdsB8iLOZ^Eg^&2tYh}>H=2AM?@ko=S=9dJ zbJCsDnA+!V5S_b0b_P1`Ngc=7Y}SLgIb*3`(cQ@Aj>ROY@*rPHvDE$ydpV4k<)mA@ zlw_WbqsYHLOxJlSL^TQ_8>XKx^ z8nV1`BVFHIqU(or@^~MaHQpsX#jrS*+TETLH~t5rbZAS~>UcV?SfvsFY|;uoN7uU8 z`f*I(0VFwaA^AFrUyfO}nk2v8M|5R6>9)Ez_;ccp{E8xscuQA{ zV^$oA^9az_ljK>4?rsBdrOxD~?M7;!O`-N8EnTOC5oO(RYA>fDne z>0~6C_P^6rd58RdiG+`1oEB009O{vHZ)1rvz8hV~Ii5)59D2S!1r$$=V^sE;Nfy*^ zh_c3yBFu8krJ|1P1Pr0;ARqERVHvdtcO}dFkCFT|FQOlNPVL{Y`9)TcO_ULX$YZ{V zD2F-_MLC6Z>z0uHQ;w`)^BCUysiBb?i z*4iJZJFufK_2Mg7=9x|Ni0k`+V)ITXUw1Idc;?HQ)ZUG)Kk|*oWZx;2d=(C(zO?v` z?1Z!>JI7EJhV7dqX8y6Wg#B zTspJPwDzrLT}vUbhCP!6Y#ZB-QfOZmizdTuXKQ~6q96Nu5`aHDbs7xrVEb%`zW{a} z1s=#|{sm$X>zxSGJJ~^$(+0CY&?_6lDk(46#Xh_Xu$%pn#zrW+atU~0tnoU)UUtBC zlo82Ui-t5@x;neU>a6Uqah=`vcZkesT>$#rEr$@oJS9>yhjg<_bQS4XlkBNlZAD=Gi%Za1O&|u^*7E@UPgNtx;N_?#Vx+ z63iLyV|?*#yq9B)v^|gA2j4E@4|J-1ZbwwPJ5Z^g@AzRT-seu?Rp53`?TGNY%)g9l zSNSto?sgI5i|hVu6Z-P$L>kdOW+sEub9^^YdUX{+88{^izJ^VwoP1R11cWuI{Q}6$ zTD}J|za(|Qb!jKsLpifo7r^LxwlnR+HnaQpqes5%U#KSIO^Lb+ESBXlX1N5m(MklJ z$U0(AVjaOJvySMGu#WJLvX1yuSPGgy!8-bp&QeFJZ-ECqqZJwI6qO5c!hwEG{+gv_8cN-2iA(=tEe ztPzrq48_%j}eX5V^uWr-?O> z4LFIA90z_ZMh;6{OE8;r=3s*R|1-3^qa2Fg!D5Bi}5)>2tfD07s$w?H`L`7JDQUQ^NPK|+?<>?ZVC8|rht|{*h1v^Pxnivqz)9KZ zQxIL0?^6+(hthr?#x^R4(avYPvSbC+{gmZ2Q-&&geTI7$rd*7}2kwB2O!%Lib)?NXd2avd^JmFGG?qO7&sFI^Eqk37nMdWY_WWWTb*xPI1S z55gVvM=;u7m3DyccfTKj%nwEy_A@560(ahsZ*gN5y3nq6amH=XkMQ#Y0FLroQ1anY zcyF3!GWf+g0B8BpD?!ZV2W|wo&XHT@cX10d0$LuUxb1GSPoOg2X*<~-m+oov#0>Swz z&Rv3npW@>h5d9Tb)BpjBp*H{m70W3d+NqdI^^{=6ELw{Ug4-`TjfMSLE4;b@Sj_d)RkMhO^5H~A-*a^2=lt=N&3%5;KM)RVtvXaUp ze#%ek1M^odxdjlQY)!j~KxO976ufe16cj>~2Pl@^%6areLX{;G!3$TGQg*RN`6Z2y zNag+S;V4S!^b@cc8DlZoTyR2MI`@bv7xwMvDRraGj%r#}n4EW1e z2KI%O8_M=NV7HXZegL?w%`1Z%iUKtqxrW`X`KL2q@3Riykcc0t-KGF8rqnb zC>K#(sZ=>=ApAX5PSiv1nR4d05P6|An?QW2jHOxRl`>-;6kaRyXxmYt3>g5MZr@SP16!}U zNi)B@DsBc$Z&00}`?*o&ULQ6+Rek*cyj5r0K+;F$ISXL3YAEftwx~uW0&K%{fpC3Q z(`nP>rEF4gL0(A%xDKL!@2ni~zh za8(nWgmRIpbY$XOlR7Yq!h*S9u1}{OS zuMeAtRS`}gCaDIUhF-F2EtM*cs(n$*>a4Z9WBJ2=_-GV%g1&X8}UFSzaK9bFm%>X%Dx=10khyx*g!9ao4&4 zJHf@!9xI*8{~jVIIoIj%aEe<HyRg`CoB8dp5d0Rt z8HsG;OYt27=gVJ=grpyz?GF)uK7J9b1n|k%zzgI%3Q*X|U#0{-nAcL4vWve=Y1D3h z6)hoQ{Ea)n!ucbUfkp6MG)G4AuiL{zG{2Rqa4~%A&fx9iHxGlO{ruA^bmb5qK>17@ zpLG}DFh7?nEs1h0 zPkG%FC_LvM)86U@pAv&0%J{o9QNQ9xhXE_+GiY(E;FBo*ddm;&550H%NETM!^XDkj z`oIqu4l7lBVSR`=3FUJkvRdGF!rvO9J&w^h7s34sVsRCUo8k7X7a9@IO_J1B=n;_%@)C*R++8B_gWBrg#b!#w+nr<0sMts zb0M-ru+nrGC~WnBNRZI{dk}+#WZDdc2t%nf94ZvjPzw`UtU)Xh!Xa7_B88|sa2q2G z_!%Hp=sW}=?H8=H>>dz?(;6NpjDH2w@xoLKc!@&eW$=(B(1{OsRERHvWQy=LrTVFY zl}^sn1aA~1xD$eoYA@+RQ4bJL3KOvn<4y_dR3M%a7E$7#DfGJyy>r5{IAG_6H`vQ@ zSwcc0JX{oJ{{&u+@PVFmu5hD199X0T@CnVk&f>7IAhKEvhyc+=yg}=`tN5N? z1~+km9wP2y#%}OD#ND)pZxpk8z>$|&$b;xDCUk|!Cb7f~#LeQ#I{@3ny}<~=SG?5( z;rfYtzJ)P=ao-{E0>wBTh(Tg|D(8iWmuOh*66bvdkx;Q|2N1)=uK0w5+au=Ft&0%n z=fOjiIMoHbXz}DZV6oz!QNZ?!RS~ecU;K3r6b^{%XyhCczc~$KabhV=@Q20WwDcs3 zvD1Mii}{+P_4S$sm()hpsmI+VC7CeqAs zO-!R(cSF4P5ZF!8xjwKv;-L~?cf}@DkiIWI#8-PdO_#F^uPm57H5fR&2Rw!_g=@%wD(Jrgl-uy~72LLpKn%2Q$bwb;rJpj?b70N5)1 zP7CdJsR`{T{G?Au0ql?tP+=lKO6dceK~f86fSr=51jcqrPbeYZEv=jl5GJ)N0tlDh zbO0|xIz}bANNJc8f{2kydIF1;j)nMP%P=vu~pE^kTN^K^eG7&MLZ*^ z?jjH~CHkvJiC@|Ty=bb3@}Qaw6{cr7uL0LrDoYXIIzuie3Wi#rG_mC~;?(BDfx z(>woBI!GnnDrpJLrp_|Q0j!pDmOx~!d^#S$MLszl>g#0D2;O?R=@htim#@4A*dV`Q zVRNG#eipz}9wve4Ef|hv$?=39iYKZKodqrQL&a#MOQKB$FLFLc4|N`cIQW< zKbOpUz;9JnUw=DtX(-tA%_BcXoWY4o((e5>K0c3jHLvZbLNJMw~o}x`( z|IaAr9Pof@Yo9sOeEoS0?P zr=YZmI?gG2;5%6-Pgo3Pe-DMRNVf8GfW2(Sr!?U4Zw+^l&N$X`Gaf?Pg}eU^{J3(a zVc@OfK3fLe_1qqs#oV~0h0t~9dJP1&f%AC{Jr8c>FTgf(UFlTSo9k8xq7S$5B#dq1 z)?@(N%K4zO&TZqGEP%Q%*ES2Lw{yQIK*5ijgJK)!&yB1?^bUHvIrR(J4CM+a+X>@Ft$<`W=Qke4BDo$Z z@DRlvq`5bi3qWKgw0?0+z~c3I{KZn_Uda=jEVpq8uyfpx)RpsGZv%)I zxHEHrWpM*(5xdCUbwXs>+`@eTIotxO@Z@qIi-BF@*1m*?%iK%aR9)fvkj*@Tse2IrFtViEVO1&9y0xvg-oi@EKzfIsB6&<^GiH)9!y zkGZcY8z|v|X(X3&C)M!&gnKv_R-R(P1NMxYy%P%0xq)d=c)?9r2Hs01zkz@90hkAWmbNt;`Dv#i;>mkl zN1R@KwktgN@K1NZ*d~4o)tI*M)*|q>@$43;`||m;tKH5&bOq0kALR?8Kkr1d$_`$< z4=jKWp=C0VubK_XAbw^du${c=8-QT`*VB*;;lCjdyLi7r0K56$=_o3c_omaMu<&F`i}IEL4pfJiLgd?0S?UcQJb;`{hH z_!9(dUD9Y&9pFE~=a1Y$UitvjsrE-9Fg7$tUeZNVoWVRCT}2?=nH;4lmGIYNhv$y<+ z3P`@=ucw1p$+swihxh#F?jU~PGY3KaBmd(fs5=RDXt{G1LOtMNwa~LCz#1VW4|;2b zb3I|qMVLURC9XmhW&i60ANp)%y>LDbn44h818^5U84J@Jgk|4C(nFZ#3XzS%kpm!l z3ei+R_7aLO!qp+g&heZr;X zaJyefqTmk**N#Bsppa(<7ALIBhhDs(G5|{uoEN}Dl5mMOamm7E`p_ap_(*3G$AlAm zA(AQ#r*Dwbgm&X#<+$K#1@VNCOaIv}d^|Jc)u{f$)x2ghJu)W<*^iOrZ_z1Hsi33dOLN0r@}Vs!!zLw9RoZUHj~H;!9EuvFNF%KHIxbKsFeL$cueE3T=*>? zQCA4pN#u?2J)Kv)6|NkBdZqA9FnI3;nf!eahSTVG5|=ds&skJn23RdNn+f6?al-cy zSu5tK0bIoX)W3CNTry%=FP=LN;3h&F@4V2|SGYXCp7{!{>eF@!33 z0b;*dPzV&=q7X}vSVa5uo#KjSP!AT<=rgepG2}87c8h-$Kp|8Np>jl+IK>$v;o=d> zfcJ<>I--sc19L%)5)abpTeP@Az%z;wvpoP}MSLcQmtD*XhlhP)@8i%rAVyb0@}M}T zDX>FgU<^Qtqq==Jt zA+l7_G7vV?#CmlR(s41J5~UMjRTi*xakmRVhPZ@IYEFx7{s4AHWQId8Q*3t?{?3ZW zUjjQPhHe8mFV>9!F-x3AE9^z_=jU*gE$(@ZAacYjrLdAK#%uw&B5-W73J2CzKw z6iupE#i?ds*Tn1xaCBX4-4A`w7t5)Dds8&fOLR+29S#q-#a;~n?udT00^JpbB>?xt z3d#oyM48^6LNSlN7%CD+)BfUtsG;g?vABdLkB8#YWl(=Co__?lC1TZGm@XAJ4M9jx z#7U{Zo{BPUHlK;h>6qe$nD;xZycCztgL;|hN#&$hqC3@NUyCJE0LsM`;Q(*Mp0pi$ zi?;{r@5CpxrK=P-<1d1__u_@m0X~SoZvwGOG&sS#leFkJxOJA|{D7^NuF&MaMrzX? zV68Oy3&iOvJyO8tI%x^5zU!r^g9yn@Dqar{?$XQl02`z`F0kS$UBTxdoR_4eH_}`B zEDU-+l6f_-P0|J0yl<8U(u}fII<^*8wn<~@!vJ6Da(#g9l9Gz1eo_@Jb^g)@N_YaK zhg820l=3MN43cKjLBUR`^dqofsq`&)A<{#dSawVC^!Zn))MW#BVN#usa1<^*yNXWl zk^bzA03)RD>1ZcPnn-z1w6yL#L}H{jluyJ;@!=5JEA^w^?voyOMl1&;Pb#S#l%{L| z@sOmVGnP2179BFjOC3(bN`lnt14I&~0ry}!N$Nn7$qHP(L9hQi(BLQY?ddhBR*sVmT#^P=a_`@_7l#Gt#%TzGq52 z)$h+r&uQy+PWqG*&kNFZ+5lup;;%4$QF=;Ca<+71H$-xzmL^!qm11bAyCQAbgpTD& z5Br07Ra%Q#mCKhh>D1_k6uk??n^Iqz67ERH72w^K{GS2blU_E0NTJmKF#Hus#ghRZ zNb~bx^N}=Z0Yn~4ODMn+sTR!zPo+)czHH@!_CYG8oApszxB*y|v?B_}oMa{C z49@b7wJ^3?R{n`N*T}D_IPW5_dk0BZxi!5+>*Ta2u(@6~(W7#c$9#mkyPQCC)&_Y_ zJ`_CUNvk2^Dc>3c1uuCKO~2mqcZ0$6k+t*=Zjx6~U3Ig(ARpKkIl~*+R{2dT-1^F0 z1W0a|?R0qLCqLZ|EB>-K9p&zj^M8awfSg4GC{Rv23oJ;kpwu=*?j8?pmz+Rn3A^P6 z)1enCUyg%bnCyNPyl}Z4ogVLzcYFtt2)PesB~fy#bnv3(pJ|DVk>~XSFIH|$8`Qn> zWj{o=PY$Dk)qeT$M_>nJkCyO$NUkaeF-{)82w1#qx($B`GDD;Iuzb-`;+NO!aVL`G zw;|vq%dWKNKPvz72zn`U7@eaWlgHCH6{#|B21t`fd^S^pHENcN|L@&|GP zRf>z{KzdCd%4OSO`mtR40&Yv>jaLv^sq96ShbQv9{lK2e+n+%1nS6}CCVnn=q|Eq* z+-wFE%H#?3xxg#gz8^MU%YXHUWV!6O1)xF>p~B%C`8eI(xAI7;^}UnpbwVuf<&npL zeUQJX3-D3iTny7yayFeMIH@aWqIOnap|gwCYOx=JSfehb>W7PZ_dXC^)kpmR)~VfG zKwPh`m;nVh^)kvs+||A5M1F(1eHt(i_0IDM&`Z6RG6-*V&QoAM>Ul??zDYfqru)rm z9i0+yQ75khwpCp~1+r~wy9r>sy01Hke(I!$Q1@3ipb@u2-JLS=0QK27@E)kXNW1GG zwNEU-PPLMXm?7$cKR|t#I)@HEcdKhr9WYewL33o7Ix!mR;p%pF@b;*ymII4WFQt_$ zN_~OyvuL$19VEx7ooQnftNy@3Z?C$0ec0TmPCE%~zj_%JdJd?s(rS1}?LvF)IJN&@ za1^hWYk`-bw$u7>SiQUe#6)!yUl5bjT`9XrR-5J`&ZBB^2}DxV&uM`^rf#qlk1AEY zfC?yS>UupuJgy!Z1?+^nq7fXWtA8B|y;ExAP!Lb6C*K7)qwY)TL8kgB?XJ(NYjuan zIrUb`ZO*G-QEl;pI)T0)zNp@_8pLe%K-xm(s7qvEx$6G3XTGHF!2-Li4*3$suBaC! z!C0R96nVI&9z~z`Tvwl@IV)eiA`OwLtX5L_|DpQcR{)RIW9I{us7KN_ z4W;VxcTj(#P6-C_sd~r&V9(UGs-X8=T}1Wm7wUpK0A=cQnj>GS+tFFXTF`_^9?-50NVMw0XdsG<_+Vb=IJof)Sv}i-FBG znjJTQt<~6WLDEIDJPso3G@b9k(R$6(GVt6qGb0g%yXM(hh-}bod$? zrvGDz_-i~Lfw)6cm!_Ej&4$HL2-J-Bhoc}(!`|TS)J(1f7OZJyMJ&5CgQ&Q&Tho6z zBttd$-wqfqOw-#RAY8)?hv`VoPZU{{X52XFMQgICBC%I9h(3(jrzyf;;dA>ni|zm% z(u`~YD{-1OouCk}@x2B0M9nywsFO7PDcergY~6$4Q#3Cr-#w-oN+pa`jVCRGCp1M< zfu(D5$X|vgi!#8I8W$?xoYLIF_pID$P31fgGc{{Ihr(IS8Y)Gc({!MU*?G-%+8ABX zJRAa$rHQ1%QjR8u%5S-vGxTa)(wtoiE0;C9Y5`o)d`m&(Y4+06dR0?W0OB=GH!V7L zU8ARTD_^tg1w?LWdhP}BrshwYJZ@>~(|+Z)<_QD6JDNMRMBde0q_XQhO?G{N`A==$-#-R#y>|F4MD3=X`4mKV?P1D=H)wCt z9I{b+4_`)ep4xkjq35OjfzBX&w6g}l^d@b+mLP7{ehfwsTeP=yFt$~zpklx_?F{Ol zul6C``R&?qZ2|nWYFdc=wQssYeTO!mW|RQ!!Dp}%tX1|?bgm& zgiSwwMc$u2uL$FGCwgTeg$hrj&A=($1me>$LV(FMu=JO~(K-wJ}st zI;%~ll>eOeOR7km*QOT3-vw>G9nj0tcKH+7MXk?67|Yh$?*Zg!XCy*0SL=EKdY80K z-U3|KE~Bl`743v`P{`9p&?I+NTaSjtHEkgM?ZI{Jkmbngu-p@4l1|b(Xym>SG&;&$$Q%1XArrsok=-+fp(?@UZFO>HHbx8^C{>((54G; zTde(=UcQIg4y(a?q`mwp6dr3IQZc7QoA?q~sdiw0czB}yhIUI&wHJz^@J!oeJc!S= zJq+l>3+-d@Iii>Vs z2^3s)!S8^r)8!^3i1oU=G{)R?L#M!syDonjunoE^MG*1O9j7F5qwX-3EIoCDXleD* zsTzXlt()HhB0jnWDkyByh0;>KS@)s{{pt@Z2+{dawLVIh)EZWzbx&#c8Kb*> z3B-N6&~^~nuj~2(HV^0;OaT_ByN|OxE?&2D1h531$5q%&)rE`$mZtlYwvWekO$R{z zgf2@Do9VivgF(#D{rCsKNu7fB#iw*DmV$R$_YG|-GIhRD;GNa|*b%1B=_2Wj;k<5E z3t$&?#WYs3bf+r-vULZXz{}B1I1VgV*PPD8FX=9vL4cQad(VKEr{gINy{gN60!P<$ zAykgOuFG!(5Ba*6`4G9G3!@-z>Q>!>_uD!Z%{_N?w=*GmSI5)7Rx;Yy)xYZs*S$ZIVl0kbs27ySm>PrK?@Q0Zfx{uG_Muh&1m1U+}X91h71`sEym9{N+`p}tYSoBnXZQ~v`k zOJ4fnEr4y(ucJ@AHtS=0LS&1666H3&`XA|Fe!D(_Hqw6j?5@B9^a?s@3e*Rtz(bJ! z+qd9_=v~%8VV8bhM}Xb>d+y+c>&sjL_UPSd8ja8o34)_&{T51CWAw3i;XPJAYaP`0 z>wOzS?|@!S&-S3c%U|$tNME!G3UT_?JK;87Uqq*RiTV#zmrBx~9uH!&elD#YNAyE! zV{}x1?>bDU=*yhJOVejxh5B**M~eD{{^xS&rR(!1fS92_-X6r0`uDWeJEQMUJ<8NK zGlO_mpHdGZ7xbrS%FEKLX{NoX|AOALTz$!4c(|l*GaGI%>x*b=zM{WP1%^ER#$O?F zRe${n6z=Lb{|xM&{_`?``}*!Q%@pe6XofD*7tuGo5A>~R8&Rw;xsQ%L)PJB7;v;?F zLST>eK^E{z^v`K9m+H?h26&>6iiV@7`iTdi{!IVPOa%B`-zN~*3w=C2;+Ohiv{5P3 z2l)WJ(tkY*dav~+Dw&k))1Lvn)h`Q&!aIGp0l+Ht;W4oCUcZqN&ky>;&jCK_Pti`e zO223ltT-96Zo#dyq0}41)rLYfh-(bxgFswssG{PntDzAU!`B(sQZZ+}q2~th+zemT zfr7hX+f4vZ!>jXf>t%=^3k7dO1byh>V|dmU*d_xT1Ch;!+Yh0>#V}$9LfUFLLFcL4 z4284_^)W%3o)Fo0Jh68_-i=YZMZ%WafTZ7IpBpELTLjYZg4vY;vU0h`rJCg(1;d|NW%}8 zz>6|O{0w5Wp@izDF@~>cvWhhfbcW5nhUau64;t>zf%+jsY7TgDhGvZrZoEO!8N38T zr3vbX4b9cS5)Fp+aGPZK-4E)?27?WH>4u)0ppaqsgxMg^^7T9frk%!GYhWS)yziaq<0>C{(-~fR8hFYEg1%?G<5n!RA)hmD^ zLpfm&3~`?$z+%H@s;NFS)cz7y9vRj)g1^TGmoea#7$%YFQp1V{@b|Z7uM85sw66`<@?fkS9)MLC@@PqZW0+2V zv-H*wNM(_ChHXwDRvIQ>gNOHqLB9fgFwCNz{zrqFcCA&0FJA$3GIl6|2WO+pd=OU~ zPo9D4HO8f-Ft*khPx-Ekar=8nx*EIx0+Dsbu|t5ZH`?sDgKoyr%b@OVtnh%|24l}8 zhEIyM>G(IN6?<5jBcZ80vU>fKf& zOGTM ui?q|%RB9OmvB7MWO!?=$&90A7fRzV@qSUVe%K}OqE*xYGsK^w+kV~Ygn zg%}6g0CpLFD}v;1V;$Nwg&N<}8XjicItn1%7{ns#J;p1!kc=?CqE$4~c$4;xQO1(j za1?Fq_XZ%wSTPSCVvQ=Qk?l49Kp(g4Gft*2n)Vy-Q8n~{@dQ1pgT}lxNFFi{rvunH z;{?h8;H4482TrzH?{#`cq=mHN{j34Pc;pn>2d=envIAt;% z-7v0v1<9MndVOK~mT@lC`EDCOP`&Ps@%aEax@){ZBlVtf`8Tj~-&jFQNP*Ez|Mg0t zao=)?6d4!N9`=FJ_7_BojekZ%m2b+7d9{JPGWyWtcx^QG1}Ha%x`J0>TsR$8-WXreoAuUs z_AbCXqZ`d3l}1wo^zXg#J&oHBMv119k47&lBv%=ikAh7nQ{PzdoK5K@x!SaW=Fc^z zXe#!vHO-7H}s5qhTe{6w?k^l4&5t zl5CPAU^B(EBM99*W=g*dkZQUb4`U}xdwM}V-E?#|L^4e6(t({eZKF<~F{QkMdZx*l zGP(1n3DlJfrXh4rl4VlAfrlK^kbAI_YkK<$z$MevzOa&K>OrZ|Rg>2^h+H!*qKxdO zsow`!xn;UTHQd{#>&rmAXR1Tl;eAtsScFtyx=0n)2c~QEQAM$-|7|EdGbiXcrl8w$njQ zg82yTeGi*s87L&0KeNDQlG%&)K*?r*Dp?*e51_kr)ZBa~K#FYFVgBqIOsAXM(8eLdJe3OiC(T1?mvzeQL52C#=I(Uhd&XQ64J^}~ zOT4q@Ncz_DoY{v8is#MTFVMSS4oCu)Wscnmg^T839w6Ji_yKNDj=7B+6mrcw_Ce&5 z`8NZIm(9_C!sZq8iqXLG%u$~LyK27iGeoYLBUoV9&FV|Q^34nV(T5x6z+hOpX|{a^ zaLfEH?T>Dojg*Li#rC zrMdD9urhNTCC{(SK_w7*Z9Z%PC^s)^2fYgOAbLh`%)97woww$T^f|;kbEoalt2EE0 z^Og7JX`e&kgSqu1fRE;}-$1g;oa+reCrdbe7Pi{b=OiT8SZ+>+`dZ8TGl}@{3gl+_YXwByEeB>neS>9K6o?)chQ55*Xz`$|%hO_A4x*Rki>A=?wtR9JR(vdr zDf!xDnMT86v*p!L_}gOnga_DaF~`8zHj5`6TKigjC@~ z38p10z|w)T^gv6{TJVA_R~x{?PRs3d5Q8lN??DW)^riHCm!;``*xYToOX+#2C3`T4 zVV2ijKn%C690Fr|EFYgjFT!H6K`+u$N+qu-O9~yDMOy~Zb}q(pmTGIUmi#PO*=w0k zo1cA_)^z~(TN+(}u>+Q3HB2A09DfGvkmWkfk#Uv;TI%90t!W%3SmIM)^RT7w0uU1| zp;Yrovh1ZvJlPUYM@&a7uYUw~)N+*eD=C&Mln5TPJfc&*R7+oX*i5tBwZqYIOCg;Q zpRg>TdQZBg;x0gjrIa?{CoM;)LU77*`6d)jTQ(jCIAaN-a&4xiA#GmITEZRxoU;T> z1vqc%-4^~XSc;XvvMja6z{*97ZUkb4XhUJG%@P5;BlJ?rSEahoXzik;wd%QcAZdC~Bt|dVU zaL>|#Ua9*Q)#p$zu+*j#xI#;S8*CO?n$xuXz_PF&B#SNAN&y~PergQx$YQ6=ztoaT zYyT5V2Ra~mY8iD9;F+aiD_D7M$*Y9O3rmj~aQo7dLBpcV(yJUIuPock!Fz2n)P>t} zORr)$s<5~O1AAjJy#e;t^64EYytA~S_odQuvk4U5TOOYR_+aT>4v~+RL7u>>EcVmz z;AHJi8xCh{A%_50Tcreutg+4?4BlGnx72AD>-IAU*VQ_XHUR6adRoWUTi?>*vzv7* zC0Op(rZiwTSf_6W=3y<~f{->^lW5-cv~F(%%*%RA11sLvU)^BS$C~X4;wGyb&Cr{z zv*_E+oEFSnHiCi0rjKP6ThC^%%`(`>jo> zG;qNBf;R34t+i-gI%J(dCn^cnMwG}OwiY}FG0_@IhYLy88MN#sTRYT&!VzoF6j(WG zt#uj16zdDxK_9c`)kptQtuK2*JRJ@ignC+>m58S6Y+pfjykLg4nS)rYd?bJiIpP&jWLxeg*1tQ}}*XImH1jy=bE z=?h@F);+}lm#obqLA-4JW;h&Ov3939InUaSQt+$Rzdi@JW>vg{vFp~Yl-}iALpvg} z8`eGBLA+@_V}{#X){V5(-L@_n2HqWOC;CL~uGNhW>F!xwf&lJYThanuU>#$Cl|ri@ zRa}a!Q&)ocz&e?ROtH0g7f3#|UVa7QBkQ#r@bK7rn&K?6M$Q3NYIV7X-afH*@dWnN zdQ%T$&#d3k_q)%np1%UTu*SOpytFnv4J&2Vv>d3vvbLiF%4=)sQ1HsFdp5#fh4t=I z7<*$KNp;M(R3V0u_sqr9IS+~%UvXiaPMyNa6 z2DbrNZTtE>z#3amJ9ukt$q~R@Yzt^IcC}SSLVcZ$?F`;}n|2C-n{DM>@Z4?h210U! zEhGmb9=61RxGx)RZXLn%w57EK@Urp0K*8Got%hSO}b+qUQe)I)6z=#TiqY*q9vK)9{d1X$T)>w6s{5w^8sAQEXCa2LEN z+x=;{^U=1q?jXk4hR%SoSeqwpaQ521*aMM$wz^b6*>7u?0PhEE^J!BNXJhDI$J>%k z0137(6F@v{(~Gc@XnRc4MUw3v)hCi|{b}4DvE|WQaMZSfiv20JhBTWVv(=dlkZM~$ z6#mj|Lw*DAxb2t)*a_Qp+B2uye!^!TT!wAuWdwiH)|+OxQ#OgV>Zff#$AEXncCZnM znYOR)gLu|fmmbwQTOs8==WUggkzKI$pjFz6Q@A$vMuj4`hLZ><287Bw%G9?UbVgTg~B!4UixO}x-FN!vCg+W$bjAr+gti* z`KB!~8`v#dRR@UNw$-AS_Kq!$4qfir!f6+B&({4sMDE)jOarmNW}vE3p=}twv_&@M z4@c6KcK@YwcSLl8@B7wf`UsjYDnfG4&U-68VSCeH(S zW~-#n#h=?IH-nWIwuoq8FKuVf1C-f@(t-9X+l1Y~UfXU`W?XJ-LWx9$t@HqhZ)`=g z5cOM|?*@Q(wuX@)R@&C~M}Qw~>64*QWjlNdZk_Dk4MZ%?_Pk>tuC^a-1%)+sCK$xE z_PKPp=VFgs45F+3Fnvz8&OTxyi0kdiWw7aHKS*QD-M*W0%nf!+I4}>p=QBudv~TPP z51#hx^#6T$*}cQy!Q1|X&S-t?Vf1b2CcEhxOmDWEnm}QTy)E6It@aZEz_!~>v@P?q z@0|e=f4j?<@UX+~mJMQn{RQ@Ywzq2^?mkHR0P^@-&Y&F1NQG}#yn^bq>*#T9=8p|IQxkPFdc6{*aE}^ zdpTvehwXn*Svk>ONV~HndqhL{OSb>o55|tzCoY1AqxL%IAd+Ig{Q##05RRZmF`)FT~G7wNqa$0D4eo;F90}g_oU%_#@=BXjAhzA z2ExNx`)N8EIcJZdO7MC6B>Mj4g8e{Wh-BHX(mlIqPdy9uZ2Jk?Xy({&QwcHG{xTTY zCA-)E$I*4iWnFb~vuRppRy=#}y&uxFa+Rg+rS_VYrDdj8RyG0IAh=LAGDMUu8%017 z1q5770ofo+mVk)xeoud$&l%ry?r+_D&bjvi>Mz}NxV9Bsl|wvDI@J#QP6Jotuy6>j zYaKcRKbX1cV0}dz!!fT064~Ylv1ilMp7h% zQH(d~7+N&r^f0&>hKWAk;|#A8AhC?JUXT-vOO$KGF@(Ru@+2eT3vj0xdGs#DGpZ=1 zN??rrg+U}TYA8Yy!`6vgm&|zc6Wo^+MiZ4+sf=V=t4=e1Q$m-<_?9N>bjBV!+?m0+ z{1|YVj9MFfW-;b0gk?6PdlI-D#&-!2<}zL=06D{`-vn}w@tO|+`HWppgA_1ydmy~P z7^cd!h~c>&@QVyDItp@`G294J!q|8YmZc2QVT`k!apGHqtzbxp5uuXt;j7SHXZW6l z?gr!J5(sZHZqr0v#ZV>yUd`Cs0FxTVi864tjD%mHt79z9gO_?n<`Up;F>X=)-oOxj z0j`np-p2skX0&l((##lo3&Ivg0g+b59BPKQF&5Nexb2K*T)=fO!f5*KWV9Ryu8YwW z1z|TsyB8*R7<(3i^f2tyUG8Og#v@Q4BlAnR?q^)=#I+AH+G)Rkh!Oi4$S@W49gk#>m3897cM6ATvhlkYRkzX3PNc$9_c4;UZOZr~InK@HtQ zhF=u8X~uiG@G`^rumhG(%;$c9(3$zH9zI=|x@vHHnaiXYpeu9pn-F?1Pta}kWDZe7 z*o(>e5ZB<%bUF{8KFsJaME7N`dk4aO%xyg&e$3VN(D^fMZ-Lv-oOKRf4lvW_AnZZr zCCX8PnS1GsSqQTs2f|RMV+Fi~F`uJd^>C)X59Ang<|cHJ%v(EP8O40!M+_;N8ARWE z3{yvQT`W^i*M5Q-whDkaW-(PSCz%tpPM>1_Mm_%oW;=Dv5}BXUG?T=9hnf$`%*W_+ zN@2bw1Ub!IdJTcnn4Sf=%yg#T`v7DxU#2c>>&M{kPz0GGCg*N)jn1?RI=M`oGWeMd>-5;>5V47S&t}^FPEB+dDHWlvInXhJp zyTO#wd7GO|Ddj!Y%(ZmnsD{}>4VzkKgbQ?a%!4Hm)-!+H3ev!Qi_Tm&GOwk=q>1T8 zU*m1&>%MT-%xs~2qLul=(-5{XbLi`6XGT)B)WNK#WUrH%Pp2EYnLgiw++n^?gOhUEaWhz4<&x#9xIAoG2s_TqZUHyJ{G8T+2TX@m5Kb|#PQdj;=1O=CDbQf6HXkl#6)PEN(ow8rGi|z}2!w=$6;96i49t7K_6GX<)tQ2zVpwA$_7v zEc|;QyzDIYIpA7Y){OwPvfjB4(#ASS2}nE3Zwp8VYyAMm(#7(mq_mq=|1KijVSV%> z;5{tXD17#^CN$6uu=Y^hahG-AB6NeS;S>mmSi?8rbC{J#i~b1f&Wj+Utl2dA-(wwm z6=aNcl2*KN)+WkrCRhzh0PeFcr-4kez6ix29|VGPP5j#Al?jX zzW`U{#J;o}LTC05df;5xT$;%CvOlEC&6WLT6LfCusWq^4XWyXI$bLv&evma2aEP%bs7p{-6{r?5-D0|*P_zYyrR|6izX3$aVV0NSp@j}=g4FH6) zn}5L|!q~^D#~IGP@H$8Y`%)GxkFo#ef<&@=xd245U$($mH2Y*9BE+z_P<3{ko%I6% zvFtOn19yULq3Jh{o%arKC)ozd(oeC=_0Yw$tKJ15fgMM$R3dxz1?ZC4=6^A=WcHPJ zKvLL=bUY}Pozn=*)9fKC;L_L`l*Xj9@s|Vf$*})k1ItYIGMZbn*iQz-GMoKB%B6DH z;!h#WWe-!idWJpa338VG2|fNib}(IS0s9_J_l4{i^8h%{j{FYr3+(=#AVusGw_sV! zX3#Ca#1>K4=rWs4iC_s^PUnJ3*#ZN|74|ouLRik`y^IJI?5uo*tz=h!4RV$J#VCZ= z*>kCTaD%;)UZR`qjWlCcv0MHEyqf(SO{2B!1yt_TvD@=-(e>;F)OfkYE}=51fxXxc z(!?GUz~^mtNFXem*+d$gc|D#EugMIW9Sa!0H9e`yQ+vW>lH+#up zkRJ9I-@~$({mPT@*~gA&!K9!4&u1V5?A|zB${^dh3}lFXfx0-u?23iZjj%tNg=-jP zzcUWkW9&Cy#Hh#F$A;i#f-R+Uj`!I&XkD3PH_#F?#ZFxU-9vW&4S1Pm_qW2!4BM|9 zoD(N)8iR1*yiMoN_Htgk4WTP1a}fY;oJiWpapzol8$wS`9+jP5obz;4!kdHC8(#;< znKq7mIr1P3$&d5QI{^4|rl`HKpYvP+ga}eVVqmk;y%VX-iEM|oSzpXUKD4V zQvPU;^mUlTaME?)j&o|Cgh?#tUF!3l;0S((WgO?}DhN+#1as(3~Nt}7lz*#cKm!9-#&d)}`(>T}Zm~uMDatGtg;ApOcWOBZxHboX^Atk}t zobv(*b2#arfXn4_;oaHp_0++{meH~2BanvgiJ)gs^0x96EP6MEjQ#Xv^ z7IEC=@OhE*12w#hIq&x)>?O_vy7QMg2`gYy!a4B)yp(eKmq1v?nNN%270!8@w#zxs zeg}93NAMfsRdRCZ#L`vHEUKWdamE^9d7V=?0h1e?%YOrKlXIQkEzHqB7VG!Q%faAH>c!T_`Ji}{||&coJ;2*?B$3e0Po}U zOhMSs(XNHb0H^UKaCbS*zhQuboM&h=YKW8S1HdrnjR6QpIA`gGjB>h`1AdRQl-e+3 zoRygnj&t^=z+{5Mq33s>lM)T#BW7>eT5qR0%ep{jID7+e zPTV)>)T1-^$Yxxo3s*|j=U(pSl@PjeeUC%v#;vDrwmbLUA?Q4~Ig4;d(a!9?F$Hh9QMuhPtr!gZYulT@yX8d;~g zf&YTb;AR+MlF40Q1ee9VxeS)s+|L%lB!|28I^yMW{prr1;r>O(W6yH;c_4Zo_ax;Z z=eXq&Ao<*cr!j~Eu5c3oh1`p4VR@d*rR3xSw|^8@Tg07Dn*dFWWAQFq;`89cWFH=>$%$~p-lNpI^5>0z2;6>NF6Ezxc(p;$9p<%BK^4IJ;xV{B!aGZi>!ZBF z5m*NDw$Pjv#GCgjOoDm7pMiw%UZn*rjQ7L$fQR$k%RnM{>D>Sv8>$-InWI7{Vyz6soE-uKloN#nUl08i&VM<7aV-GZyi-)b zTtKp@9w^oJ)$rb-z4=<6_X=3n z@j~hmp`MrUE_98&H)#rL;z=k`y3K3d2$NRcW-0^QcxP8)WbHf)y@MURoCt88yyaBp zcJWTsS?BpSj%{_E6y2;%Rj z>?xQ(N%MRNe+dJ^Q2s({?S%2g)G!U_$1Vgef?pW}?ihcDmgGqOHhNp5_#fv&7|nOv z4|oi}jK0+4{L^#*H;%7W;ZjcWB{u*+#XmzwMC18hv4AJ=*KLPoBL98TCGkI42QSI| zdyep#!spOZm&Sja3tc*&n+re&e`FP$o#QW|6K?tZO*DrT@c&%`-35L$9YrqUXVVvO zk-vx1`eJ^p7UU8if8YwQH~)7YNEu&7`TQ0B_G{qE`Px%}U*)$_EASe>h!)}N{LiV3 zzrlZtHX3j8YdtZ}Dt;sN`I`7Gw94G($5Vf|nSYlij~4z<8{o5*-$a|_ZTwTTW!J&q zMqfuKKjtFF*~M2=qqUpw8UfuMzLj3@9{y{TO84;}(q?x*e{Lsq1N@a&z}@9Pcpf)o zkiU&K^N0CIV&P?kzgPg1QGV|b;N$!>N=GL6Ic5m&^L^=RC;34KKpyaa831mIe^7uc zddQD^2?LzwKSRCk8NN0PoU@?)U%*`iPtmCN3O@J%oU7n@F96&G+i8!_U7-FFLQla) zPx$l_#M35-w_tEL;64J+R&c%oy8)K_1l{p4@fQ@+*5ZCa(gFlJAaJ7d69)xz=mgjy z!GfdE9Tr4TLU2SdK_^0v3To(`2o${XJFYfJa6A!3R>7=8h+V+Aj^!sLXY^fFB11W6?z@d6Hg zTnPf^L6{^8k^;dc38v{&OBUF^N1znJJFkJH3YZlAw7_u+KGOt`K8pzH0tTH?$`Gt4 zT&7_BACN3T-fp*!5Ecnmy$Q=pf)^;QzbsHtL!(6S7?lIp1WI4HzA0Ew#cP#d?rU&e zEnv(8u14@Xby#Z!_h~<;PH=7)xO%}aE8+T<;J72gHVCF^CTbK!p90q;sL27jE%=*C zlV*WO5uCLM6stj61#6uUuU+tMB%E~!mOld0DF~$*x=XO=bC7PqYAJ+w1lOs$?h}0H z2CiQaN>#{!K>HQ~-4*OmLN_Sj)51O^c!f?n4GT6<&M+c~pwjZ5K)euSOt6hAsd0f9 zm4Oq2ZNFkj_XXv&7EcN?DG7cc7{==T_>@3$8Qep`?h^Q%5zL{F(n+}DFSvFV`o}=$ zBE0lpmM&aKhs#`r@6zP&CS0EY6L;Yk{@}cXPLwQo3!lk@iI4D7D2T7{BMnBjPw2iH zKK+CrQa8q57(u%V`-MX4^BoXs`Z0)u!h>|s2LJb@3FNR)umHjU;hr^ceMC59gYc-Z zmX5>)3ayKQ3leI6gh{Yau@1se;iF|BVZyH2unZTrQNJ}p_}!bZJSKdJGO|eFZYnCG zgh&4c7cEqUfr}9q)5MY_yv~I%RoD^*pQnX$SHnx1a7#GuS-NmZ223)9&LiM5g-bW! zQnG~}^mXJ2pP}<$xx)2cfS(bzhJZUOoEr--c|uzpBIFB`i-0Q-4kbWXD9nt4v-3h- zB6Jso_)zhF3ZJrvY7&MA19w}vA|Iqh_$w8YtwJH)i8kTuEC}0$Z%c3u z9m4M>;j>e?&4379!uRO*bPFHZg$Q?qLDa785zeE%mtLXh0RVl%4+KF5T1Ep+3;S1C1`6n-@a!Uw|4_hC6D z?4y3jL*cBw@G>KO%M78D=p|bJoJBbd5Es#W4s?4($Bclxi;hr@?jiD`x!hBf^(%B< zq9-pQo{#7Ws+N33%cykTC;C1MLO)T$eGq?j5K#OIXAvk>biD<_bkXQdc*zj$q^vnpw0ARfS)yf>muHJA zC|N%vy8AK6SX`Oilw5w*I-gEa-b$&h3F$!kV;WgozMHIaW18fz| zn*!G+3a2unUGy7uM><4(Z$Z~7`kmTgU82sNAl;(S3mEPlQ8qO+`b6mzpT-s0@j^zQ=G!MWqKJyeImh5Zst3UjZ^M3VInP6QUCgc)2fn@^6qy z(YG|$JrMQIg2|Mqj`nsRih`(!nHEj`25v^=)dZcBxR8Dd;4FS!4B{fbwiG6N#XIO1 z#jawN9M0UttLI~6?&2Tsg7XmXl!NmWze4+zUg88=AAH1rY(+d@@kOdv_KB^OB>IWB z&}N3e_(l5j2m8f~XyH2~{$w6>hs6?Vum^~>{qT82TpbPFQSl#iz$#cAMzq{q(Hoq0-YC!ZiDWExPYe0BJlt%Sr^4` zP~A~1PW%*>m&6;T;4X{bXFyjXUPjNoRQv?BI?KefED&B1?^y)Pa`A`PF_sE(d=i9} z;(FRQyeeK<4EQy1BmE5Ux|s1_@+{VNU}QJNv!g+(#LXEPZngN~K5(_-kEmd*6Ca{Y zmwK^V5a74OpS=ODLHsm5l}7QpPzamE>!~|=TihiBpjqss1=k|Jy&r*E#g}MXu1&m! z1JW*DScl1xmrn5>T3))uAxpt^i+`vExg*~69B@5ie|q(M#pV!PL!UU9_9^?t zr!FAEfOr|zD|f}k7a$xKAE({25%F6N7|W=5*9?5#6TiCzWK8@yEfeG7of9yb5PL*} z+!y~rx#^@>R14h$F`srgro?}Q!SzFNMisbe@fXt|GvfMom^ew|&Vx8h{{0CiE|T}? z_Ux4`qNcB_q>fI9xkP8Bxr}QF zlmyt}B}npnBZR>c2iidmksQAZ5-Qng1|UrGK5c%5OR5_Ih>$eeVR=lFLQSAZ$t!g9 zIZER6HUQC*F3N&pBzd&ea9py9#u6(Dy92-p$ztk|$4SmEz_p*0tW*PjN|F)=E?$yx z77-F84wOM8OSs>FOOd?tIdrL#oe$yqv}Cs@glUp;dc^6Hi5|c+Bt=I-G9^A=0hc9N zOzrk;iT7h5ITD{M7(}jQ&Uu)ek+^FiJS%CSZKOPjcOl3*$rn`g=1V%ifa?OuP$Db~ zC5z}oKQEaaNAwF4hYnmrktCZ3?xIBbJ^~d>Fx%sEl9bayzRMCewKGd3MO65eN>+IR zUMAU>iU?OE^R@wAF8P|asw9T~1jjYWxn∑6n8!Z#$bU%>LF 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